diff --git a/README.md b/README.md index 60b79eda..d1bb9716 100644 --- a/README.md +++ b/README.md @@ -77,7 +77,7 @@ Explanations: Html, Html_Light, Html_Dark, Html_BlueRed HtmlChart, HtmlInline, HtmlSummary, Html_BlueRed_Summary HtmlInline_AzurePipelines, HtmlInline_AzurePipelines_Light, HtmlInline_AzurePipelines_Dark - JsonSummary, Latex, LatexSummary, lcov, MHtml, SvgChart, SonarQube, TeamCitySummary + JsonSummary, CodeClimate, Latex, LatexSummary, lcov, MHtml, SvgChart, SonarQube, TeamCitySummary TextSummary, TextDeltaSummary Xml, XmlSummary Source directories: Optional directories which contain the corresponding source code (separated by semicolon). diff --git a/docs/404.html b/docs/404.html index bc9245d5..dab51381 100644 --- a/docs/404.html +++ b/docs/404.html @@ -11,5 +11,5 @@ - + \ No newline at end of file diff --git a/docs/contact.html b/docs/contact.html index 88ea7ad0..c8743735 100644 --- a/docs/contact.html +++ b/docs/contact.html @@ -11,5 +11,5 @@ - + \ No newline at end of file diff --git a/docs/features.html b/docs/features.html index 2bc5cea0..2ca6a58b 100644 --- a/docs/features.html +++ b/docs/features.html @@ -11,5 +11,5 @@ - + \ No newline at end of file diff --git a/docs/getstarted.html b/docs/getstarted.html index 01e33ae9..1070dca4 100644 --- a/docs/getstarted.html +++ b/docs/getstarted.html @@ -11,5 +11,5 @@ - + \ No newline at end of file diff --git a/docs/index.html b/docs/index.html index e8f90dac..1a2018c8 100644 --- a/docs/index.html +++ b/docs/index.html @@ -11,5 +11,5 @@ - + \ No newline at end of file diff --git a/docs/main.bb4e858b1b0ffe7e.js b/docs/main.b23e8716e2e1f014.js similarity index 92% rename from docs/main.bb4e858b1b0ffe7e.js rename to docs/main.b23e8716e2e1f014.js index e7838aa8..b93ddf7e 100644 --- a/docs/main.bb4e858b1b0ffe7e.js +++ b/docs/main.b23e8716e2e1f014.js @@ -1 +1 @@ -"use strict";(self.webpackChunkReportGenerator_io=self.webpackChunkReportGenerator_io||[]).push([[179],{985:()=>{let Re=null,ha=1;const Qr=Symbol("SIGNAL");function Ae(e){const n=Re;return Re=e,n}function cg(e){if((!Ai(e)||e.dirty)&&(e.dirty||e.lastCleanEpoch!==ha)){if(!e.producerMustRecompute(e)&&!cu(e))return e.dirty=!1,void(e.lastCleanEpoch=ha);e.producerRecomputeValue(e),e.dirty=!1,e.lastCleanEpoch=ha}}function cu(e){Xr(e);for(let n=0;n0}function Xr(e){e.producerNode??=[],e.producerIndexOfThis??=[],e.producerLastReadVersion??=[]}let yg=null;function we(e){return"function"==typeof e}function du(e){const t=e(r=>{Error.call(r),r.stack=(new Error).stack});return t.prototype=Object.create(Error.prototype),t.prototype.constructor=t,t}const fu=du(e=>function(t){e(this),this.message=t?`${t.length} errors occurred during unsubscription:\n${t.map((r,o)=>`${o+1}) ${r.toString()}`).join("\n ")}`:"",this.name="UnsubscriptionError",this.errors=t});function hu(e,n){if(e){const t=e.indexOf(n);0<=t&&e.splice(t,1)}}class gt{constructor(n){this.initialTeardown=n,this.closed=!1,this._parentage=null,this._finalizers=null}unsubscribe(){let n;if(!this.closed){this.closed=!0;const{_parentage:t}=this;if(t)if(this._parentage=null,Array.isArray(t))for(const i of t)i.remove(this);else t.remove(this);const{initialTeardown:r}=this;if(we(r))try{r()}catch(i){n=i instanceof fu?i.errors:[i]}const{_finalizers:o}=this;if(o){this._finalizers=null;for(const i of o)try{bg(i)}catch(s){n=n??[],s instanceof fu?n=[...n,...s.errors]:n.push(s)}}if(n)throw new fu(n)}}add(n){var t;if(n&&n!==this)if(this.closed)bg(n);else{if(n instanceof gt){if(n.closed||n._hasParent(this))return;n._addParent(this)}(this._finalizers=null!==(t=this._finalizers)&&void 0!==t?t:[]).push(n)}}_hasParent(n){const{_parentage:t}=this;return t===n||Array.isArray(t)&&t.includes(n)}_addParent(n){const{_parentage:t}=this;this._parentage=Array.isArray(t)?(t.push(n),t):t?[t,n]:n}_removeParent(n){const{_parentage:t}=this;t===n?this._parentage=null:Array.isArray(t)&&hu(t,n)}remove(n){const{_finalizers:t}=this;t&&hu(t,n),n instanceof gt&&n._removeParent(this)}}gt.EMPTY=(()=>{const e=new gt;return e.closed=!0,e})();const Dg=gt.EMPTY;function wg(e){return e instanceof gt||e&&"closed"in e&&we(e.remove)&&we(e.add)&&we(e.unsubscribe)}function bg(e){we(e)?e():e.unsubscribe()}const Cr={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},ga={setTimeout(e,n,...t){const{delegate:r}=ga;return r?.setTimeout?r.setTimeout(e,n,...t):setTimeout(e,n,...t)},clearTimeout(e){const{delegate:n}=ga;return(n?.clearTimeout||clearTimeout)(e)},delegate:void 0};function Eg(e){ga.setTimeout(()=>{const{onUnhandledError:n}=Cr;if(!n)throw e;n(e)})}function pu(){}const XM=gu("C",void 0,void 0);function gu(e,n,t){return{kind:e,value:n,error:t}}let Dr=null;function ma(e){if(Cr.useDeprecatedSynchronousErrorHandling){const n=!Dr;if(n&&(Dr={errorThrown:!1,error:null}),e(),n){const{errorThrown:t,error:r}=Dr;if(Dr=null,t)throw r}}else e()}class mu extends gt{constructor(n){super(),this.isStopped=!1,n?(this.destination=n,wg(n)&&n.add(this)):this.destination=o0}static create(n,t,r){return new yu(n,t,r)}next(n){this.isStopped?_u(function KM(e){return gu("N",e,void 0)}(n),this):this._next(n)}error(n){this.isStopped?_u(function JM(e){return gu("E",void 0,e)}(n),this):(this.isStopped=!0,this._error(n))}complete(){this.isStopped?_u(XM,this):(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe(),this.destination=null)}_next(n){this.destination.next(n)}_error(n){try{this.destination.error(n)}finally{this.unsubscribe()}}_complete(){try{this.destination.complete()}finally{this.unsubscribe()}}}const t0=Function.prototype.bind;function vu(e,n){return t0.call(e,n)}class n0{constructor(n){this.partialObserver=n}next(n){const{partialObserver:t}=this;if(t.next)try{t.next(n)}catch(r){va(r)}}error(n){const{partialObserver:t}=this;if(t.error)try{t.error(n)}catch(r){va(r)}else va(n)}complete(){const{partialObserver:n}=this;if(n.complete)try{n.complete()}catch(t){va(t)}}}class yu extends mu{constructor(n,t,r){let o;if(super(),we(n)||!n)o={next:n??void 0,error:t??void 0,complete:r??void 0};else{let i;this&&Cr.useDeprecatedNextContext?(i=Object.create(n),i.unsubscribe=()=>this.unsubscribe(),o={next:n.next&&vu(n.next,i),error:n.error&&vu(n.error,i),complete:n.complete&&vu(n.complete,i)}):o=n}this.destination=new n0(o)}}function va(e){Cr.useDeprecatedSynchronousErrorHandling?function e0(e){Cr.useDeprecatedSynchronousErrorHandling&&Dr&&(Dr.errorThrown=!0,Dr.error=e)}(e):Eg(e)}function _u(e,n){const{onStoppedNotification:t}=Cr;t&&ga.setTimeout(()=>t(e,n))}const o0={closed:!0,next:pu,error:function r0(e){throw e},complete:pu},Cu="function"==typeof Symbol&&Symbol.observable||"@@observable";function wr(e){return e}function Ig(e){return 0===e.length?wr:1===e.length?e[0]:function(t){return e.reduce((r,o)=>o(r),t)}}let Ve=(()=>{class e{constructor(t){t&&(this._subscribe=t)}lift(t){const r=new e;return r.source=this,r.operator=t,r}subscribe(t,r,o){const i=function l0(e){return e&&e instanceof mu||function a0(e){return e&&we(e.next)&&we(e.error)&&we(e.complete)}(e)&&wg(e)}(t)?t:new yu(t,r,o);return ma(()=>{const{operator:s,source:a}=this;i.add(s?s.call(i,a):a?this._subscribe(i):this._trySubscribe(i))}),i}_trySubscribe(t){try{return this._subscribe(t)}catch(r){t.error(r)}}forEach(t,r){return new(r=Mg(r))((o,i)=>{const s=new yu({next:a=>{try{t(a)}catch(l){i(l),s.unsubscribe()}},error:i,complete:o});this.subscribe(s)})}_subscribe(t){var r;return null===(r=this.source)||void 0===r?void 0:r.subscribe(t)}[Cu](){return this}pipe(...t){return Ig(t)(this)}toPromise(t){return new(t=Mg(t))((r,o)=>{let i;this.subscribe(s=>i=s,s=>o(s),()=>r(i))})}}return e.create=n=>new e(n),e})();function Mg(e){var n;return null!==(n=e??Cr.Promise)&&void 0!==n?n:Promise}const c0=du(e=>function(){e(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"});let an=(()=>{class e extends Ve{constructor(){super(),this.closed=!1,this.currentObservers=null,this.observers=[],this.isStopped=!1,this.hasError=!1,this.thrownError=null}lift(t){const r=new Sg(this,this);return r.operator=t,r}_throwIfClosed(){if(this.closed)throw new c0}next(t){ma(()=>{if(this._throwIfClosed(),!this.isStopped){this.currentObservers||(this.currentObservers=Array.from(this.observers));for(const r of this.currentObservers)r.next(t)}})}error(t){ma(()=>{if(this._throwIfClosed(),!this.isStopped){this.hasError=this.isStopped=!0,this.thrownError=t;const{observers:r}=this;for(;r.length;)r.shift().error(t)}})}complete(){ma(()=>{if(this._throwIfClosed(),!this.isStopped){this.isStopped=!0;const{observers:t}=this;for(;t.length;)t.shift().complete()}})}unsubscribe(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null}get observed(){var t;return(null===(t=this.observers)||void 0===t?void 0:t.length)>0}_trySubscribe(t){return this._throwIfClosed(),super._trySubscribe(t)}_subscribe(t){return this._throwIfClosed(),this._checkFinalizedStatuses(t),this._innerSubscribe(t)}_innerSubscribe(t){const{hasError:r,isStopped:o,observers:i}=this;return r||o?Dg:(this.currentObservers=null,i.push(t),new gt(()=>{this.currentObservers=null,hu(i,t)}))}_checkFinalizedStatuses(t){const{hasError:r,thrownError:o,isStopped:i}=this;r?t.error(o):i&&t.complete()}asObservable(){const t=new Ve;return t.source=this,t}}return e.create=(n,t)=>new Sg(n,t),e})();class Sg extends an{constructor(n,t){super(),this.destination=n,this.source=t}next(n){var t,r;null===(r=null===(t=this.destination)||void 0===t?void 0:t.next)||void 0===r||r.call(t,n)}error(n){var t,r;null===(r=null===(t=this.destination)||void 0===t?void 0:t.error)||void 0===r||r.call(t,n)}complete(){var n,t;null===(t=null===(n=this.destination)||void 0===n?void 0:n.complete)||void 0===t||t.call(n)}_subscribe(n){var t,r;return null!==(r=null===(t=this.source)||void 0===t?void 0:t.subscribe(n))&&void 0!==r?r:Dg}}class Ft extends an{constructor(n){super(),this._value=n}get value(){return this.getValue()}_subscribe(n){const t=super._subscribe(n);return!t.closed&&n.next(this._value),t}getValue(){const{hasError:n,thrownError:t,_value:r}=this;if(n)throw t;return this._throwIfClosed(),r}next(n){super.next(this._value=n)}}function Tg(e){return we(e?.lift)}function Xe(e){return n=>{if(Tg(n))return n.lift(function(t){try{return e(t,this)}catch(r){this.error(r)}});throw new TypeError("Unable to lift unknown Observable type")}}function $e(e,n,t,r,o){return new u0(e,n,t,r,o)}class u0 extends mu{constructor(n,t,r,o,i,s){super(n),this.onFinalize=i,this.shouldUnsubscribe=s,this._next=t?function(a){try{t(a)}catch(l){n.error(l)}}:super._next,this._error=o?function(a){try{o(a)}catch(l){n.error(l)}finally{this.unsubscribe()}}:super._error,this._complete=r?function(){try{r()}catch(a){n.error(a)}finally{this.unsubscribe()}}:super._complete}unsubscribe(){var n;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){const{closed:t}=this;super.unsubscribe(),!t&&(null===(n=this.onFinalize)||void 0===n||n.call(this))}}}function J(e,n){return Xe((t,r)=>{let o=0;t.subscribe($e(r,i=>{r.next(e.call(n,i,o++))}))})}const Ag="https://g.co/ng/security#xss";class M extends Error{constructor(n,t){super(function Jr(e,n){return`NG0${Math.abs(e)}${n?": "+n:""}`}(n,t)),this.code=n}}function ue(e){for(let n in e)if(e[n]===ue)return n;throw Error("Could not find renamed property on target object.")}function f0(e,n){for(const t in n)n.hasOwnProperty(t)&&!e.hasOwnProperty(t)&&(e[t]=n[t])}function He(e){if("string"==typeof e)return e;if(Array.isArray(e))return"["+e.map(He).join(", ")+"]";if(null==e)return""+e;if(e.overriddenName)return`${e.overriddenName}`;if(e.name)return`${e.name}`;const n=e.toString();if(null==n)return""+n;const t=n.indexOf("\n");return-1===t?n:n.substring(0,t)}function Du(e,n){return null==e||""===e?null===n?"":n:null==n||""===n?e:e+" "+n}const h0=ue({__forward_ref__:ue});function ve(e){return e.__forward_ref__=ve,e.toString=function(){return He(this())},e}function V(e){return ya(e)?e():e}function ya(e){return"function"==typeof e&&e.hasOwnProperty(h0)&&e.__forward_ref__===ve}function wu(e){return e&&!!e.\u0275providers}const Ni=ue({\u0275cmp:ue}),bu=ue({\u0275dir:ue}),Eu=ue({\u0275pipe:ue}),Rg=ue({\u0275mod:ue}),Tn=ue({\u0275fac:ue}),xi=ue({__NG_ELEMENT_ID__:ue}),Og=ue({__NG_ENV_ID__:ue});function G(e){return"string"==typeof e?e:null==e?"":String(e)}function Iu(e,n){throw new M(-201,!1)}function mt(e,n){null==e&&function j(e,n,t,r){throw new Error(`ASSERTION ERROR: ${e}`+(null==r?"":` [Expected=> ${t} ${r} ${n} <=Actual]`))}(n,e,null,"!=")}function R(e){return{token:e.token,providedIn:e.providedIn||null,factory:e.factory,value:void 0}}function An(e){return{providers:e.providers||[],imports:e.imports||[]}}function _a(e){return kg(e,Da)||kg(e,Pg)}function kg(e,n){return e.hasOwnProperty(n)?e[n]:null}function Ca(e){return e&&(e.hasOwnProperty(Mu)||e.hasOwnProperty(w0))?e[Mu]:null}const Da=ue({\u0275prov:ue}),Mu=ue({\u0275inj:ue}),Pg=ue({ngInjectableDef:ue}),w0=ue({ngInjectorDef:ue});var X=function(e){return e[e.Default=0]="Default",e[e.Host=1]="Host",e[e.Self=2]="Self",e[e.SkipSelf=4]="SkipSelf",e[e.Optional=8]="Optional",e}(X||{});let Su;function Fg(){return Su}function vt(e){const n=Su;return Su=e,n}function Lg(e,n,t){const r=_a(e);return r&&"root"==r.providedIn?void 0===r.value?r.value=r.factory():r.value:t&X.Optional?null:void 0!==n?n:void Iu()}const ce=globalThis;class N{constructor(n,t){this._desc=n,this.ngMetadataName="InjectionToken",this.\u0275prov=void 0,"number"==typeof t?this.__NG_ELEMENT_ID__=t:void 0!==t&&(this.\u0275prov=R({token:this,providedIn:t.providedIn||"root",factory:t.factory}))}get multi(){return this}toString(){return`InjectionToken ${this._desc}`}}const Ri={},Ru="__NG_DI_FLAG__",wa="ngTempTokenPath",I0=/\n/gm,jg="__source";let Kr;function Zn(e){const n=Kr;return Kr=e,n}function T0(e,n=X.Default){if(void 0===Kr)throw new M(-203,!1);return null===Kr?Lg(e,void 0,n):Kr.get(e,n&X.Optional?null:void 0,n)}function P(e,n=X.Default){return(Fg()||T0)(V(e),n)}function T(e,n=X.Default){return P(e,ba(n))}function ba(e){return typeof e>"u"||"number"==typeof e?e:0|(e.optional&&8)|(e.host&&1)|(e.self&&2)|(e.skipSelf&&4)}function Ou(e){const n=[];for(let t=0;tn){s=i-1;break}}}for(;ii?"":o[d+1].toLowerCase();const m=8&r?g:null;if(m&&-1!==Bg(m,c,0)||2&r&&c!==g){if(Wt(r))return!1;s=!0}}}}else{if(!s&&!Wt(r)&&!Wt(l))return!1;if(s&&Wt(l))continue;s=!1,r=l|1&r}}return Wt(r)||s}function Wt(e){return 0==(1&e)}function P0(e,n,t,r){if(null===n)return-1;let o=0;if(r||!t){let i=!1;for(;o-1)for(t++;t0?'="'+a+'"':"")+"]"}else 8&r?o+="."+s:4&r&&(o+=" "+s);else""!==o&&!Wt(s)&&(n+=Zg(i,o),o=""),r=s,i=i||!Wt(r);t++}return""!==o&&(n+=Zg(i,o)),n}function St(e){return Nn(()=>{const n=Qg(e),t={...n,decls:e.decls,vars:e.vars,template:e.template,consts:e.consts||null,ngContentSelectors:e.ngContentSelectors,onPush:e.changeDetection===Ea.OnPush,directiveDefs:null,pipeDefs:null,dependencies:n.standalone&&e.dependencies||null,getStandaloneInjector:null,signals:e.signals??!1,data:e.data||{},encapsulation:e.encapsulation||qt.Emulated,styles:e.styles||ne,_:null,schemas:e.schemas||null,tView:null,id:""};Xg(t);const r=e.dependencies;return t.directiveDefs=Ia(r,!1),t.pipeDefs=Ia(r,!0),t.id=function q0(e){let n=0;const t=[e.selectors,e.ngContentSelectors,e.hostVars,e.hostAttrs,e.consts,e.vars,e.decls,e.encapsulation,e.standalone,e.signals,e.exportAs,JSON.stringify(e.inputs),JSON.stringify(e.outputs),Object.getOwnPropertyNames(e.type.prototype),!!e.contentQueries,!!e.viewQuery].join("|");for(const o of t)n=Math.imul(31,n)+o.charCodeAt(0)<<0;return n+=2147483648,"c"+n}(t),t})}function H0(e){return Q(e)||Ge(e)}function G0(e){return null!==e}function Yn(e){return Nn(()=>({type:e.type,bootstrap:e.bootstrap||ne,declarations:e.declarations||ne,imports:e.imports||ne,exports:e.exports||ne,transitiveCompileScopes:null,schemas:e.schemas||null,id:e.id||null}))}function Yg(e,n){if(null==e)return ln;const t={};for(const r in e)if(e.hasOwnProperty(r)){const o=e[r];let i,s,a=be.None;Array.isArray(o)?(a=o[0],i=o[1],s=o[2]??i):(i=o,s=o),n?(t[i]=a!==be.None?[r,a]:r,n[i]=s):t[i]=r}return t}function $(e){return Nn(()=>{const n=Qg(e);return Xg(n),n})}function Q(e){return e[Ni]||null}function Ge(e){return e[bu]||null}function Je(e){return e[Eu]||null}function et(e,n){const t=e[Rg]||null;if(!t&&!0===n)throw new Error(`Type ${He(e)} does not have '\u0275mod' property.`);return t}function Qg(e){const n={};return{type:e.type,providersResolver:null,factory:null,hostBindings:e.hostBindings||null,hostVars:e.hostVars||0,hostAttrs:e.hostAttrs||null,contentQueries:e.contentQueries||null,declaredInputs:n,inputTransforms:null,inputConfig:e.inputs||ln,exportAs:e.exportAs||null,standalone:!0===e.standalone,signals:!0===e.signals,selectors:e.selectors||ne,viewQuery:e.viewQuery||null,features:e.features||null,setInput:null,findHostDirectiveDefs:null,hostDirectives:null,inputs:Yg(e.inputs,n),outputs:Yg(e.outputs),debugInfo:null}}function Xg(e){e.features?.forEach(n=>n(e))}function Ia(e,n){if(!e)return null;const t=n?Je:H0;return()=>("function"==typeof e?e():e).map(r=>t(r)).filter(G0)}const Ie=0,A=1,F=2,Oe=3,Zt=4,tt=5,Yt=6,eo=7,ye=8,lt=9,xn=10,W=11,Pi=12,Jg=13,to=14,Te=15,Fi=16,no=17,cn=18,Li=19,Kg=20,Xn=21,Ma=22,br=23,z=25,Pu=1,un=7,ro=9,ke=10;var Fu=function(e){return e[e.None=0]="None",e[e.HasTransplantedViews=2]="HasTransplantedViews",e}(Fu||{});function nt(e){return Array.isArray(e)&&"object"==typeof e[Pu]}function rt(e){return Array.isArray(e)&&!0===e[Pu]}function Lu(e){return 0!=(4&e.flags)}function Er(e){return e.componentOffset>-1}function Ta(e){return 1==(1&e.flags)}function Qt(e){return!!e.template}function Vu(e){return 0!=(512&e[F])}function Ir(e,n){return e.hasOwnProperty(Tn)?e[Tn]:null}class Q0{constructor(n,t,r){this.previousValue=n,this.currentValue=t,this.firstChange=r}isFirstChange(){return this.firstChange}}function rm(e,n,t,r){null!==n?n.applyValueToInputSignal(n,r):e[t]=r}function Lt(){return om}function om(e){return e.type.prototype.ngOnChanges&&(e.setInput=J0),X0}function X0(){const e=sm(this),n=e?.current;if(n){const t=e.previous;if(t===ln)e.previous=n;else for(let r in n)t[r]=n[r];e.current=null,this.ngOnChanges(n)}}function J0(e,n,t,r,o){const i=this.declaredInputs[r],s=sm(e)||function K0(e,n){return e[im]=n}(e,{previous:ln,current:null}),a=s.current||(s.current={}),l=s.previous,c=l[i];a[i]=new Q0(c&&c.currentValue,t,l===ln),rm(e,n,o,t)}Lt.ngInherit=!0;const im="__ngSimpleChanges__";function sm(e){return e[im]||null}const dn=function(e,n,t){};let cm=!1;function fe(e){for(;Array.isArray(e);)e=e[Ie];return e}function ji(e,n){return fe(n[e])}function ct(e,n){return fe(n[e.index])}function Ui(e,n){return e.data[n]}function Tt(e,n){const t=n[e];return nt(t)?t:t[Ie]}function Hu(e){return 128==(128&e[F])}function fn(e,n){return null==n?null:e[n]}function um(e){e[no]=0}function i1(e){1024&e[F]||(e[F]|=1024,Hu(e)&&Bi(e))}function fm(e){return 9216&e[F]||e[br]?.dirty}function Gu(e){fm(e)?Bi(e):64&e[F]&&(function t1(){return cm}()?(e[F]|=1024,Bi(e)):e[xn].changeDetectionScheduler?.notify())}function Bi(e){e[xn].changeDetectionScheduler?.notify();let n=Mr(e);for(;null!==n&&!(8192&n[F])&&(n[F]|=8192,Hu(n));)n=Mr(n)}function Aa(e,n){if(256==(256&e[F]))throw new M(911,!1);null===e[Xn]&&(e[Xn]=[]),e[Xn].push(n)}function Mr(e){const n=e[Oe];return rt(n)?n[Oe]:n}const U={lFrame:wm(null),bindingsEnabled:!0,skipHydrationRootTNode:null};function pm(){return U.bindingsEnabled}function b(){return U.lFrame.lView}function K(){return U.lFrame.tView}function oe(e){return U.lFrame.contextLView=e,e[ye]}function ie(e){return U.lFrame.contextLView=null,e}function he(){let e=gm();for(;null!==e&&64===e.type;)e=e.parent;return e}function gm(){return U.lFrame.currentTNode}function hn(e,n){const t=U.lFrame;t.currentTNode=e,t.isParent=n}function qu(){return U.lFrame.isParent}function Wu(){U.lFrame.isParent=!1}function ut(){const e=U.lFrame;let n=e.bindingRootIndex;return-1===n&&(n=e.bindingRootIndex=e.tView.bindingStartIndex),n}function pn(){return U.lFrame.bindingIndex++}function m1(e,n){const t=U.lFrame;t.bindingIndex=t.bindingRootIndex=e,Zu(n)}function Zu(e){U.lFrame.currentDirectiveIndex=e}function _m(){return U.lFrame.currentQueryIndex}function Qu(e){U.lFrame.currentQueryIndex=e}function y1(e){const n=e[A];return 2===n.type?n.declTNode:1===n.type?e[tt]:null}function Cm(e,n,t){if(t&X.SkipSelf){let o=n,i=e;for(;!(o=o.parent,null!==o||t&X.Host||(o=y1(i),null===o||(i=i[to],10&o.type))););if(null===o)return!1;n=o,e=i}const r=U.lFrame=Dm();return r.currentTNode=n,r.lView=e,!0}function Xu(e){const n=Dm(),t=e[A];U.lFrame=n,n.currentTNode=t.firstChild,n.lView=e,n.tView=t,n.contextLView=e,n.bindingIndex=t.bindingStartIndex,n.inI18n=!1}function Dm(){const e=U.lFrame,n=null===e?null:e.child;return null===n?wm(e):n}function wm(e){const n={currentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:-1,contextLView:null,elementDepthCount:0,currentNamespace:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:e,child:null,inI18n:!1};return null!==e&&(e.child=n),n}function bm(){const e=U.lFrame;return U.lFrame=e.parent,e.currentTNode=null,e.lView=null,e}const Em=bm;function Ju(){const e=bm();e.isParent=!0,e.tView=null,e.selectedIndex=-1,e.contextLView=null,e.elementDepthCount=0,e.currentDirectiveIndex=-1,e.currentNamespace=null,e.bindingRootIndex=-1,e.bindingIndex=-1,e.currentQueryIndex=0}function ot(){return U.lFrame.selectedIndex}function Sr(e){U.lFrame.selectedIndex=e}function Ee(){const e=U.lFrame;return Ui(e.tView,e.selectedIndex)}let Mm=!0;function Na(){return Mm}function Jn(e){Mm=e}function xa(e,n){for(let t=n.directiveStart,r=n.directiveEnd;t=r)break}else n[l]<0&&(e[no]+=65536),(a>14>16&&(3&e[F])===n&&(e[F]+=16384,Tm(a,i)):Tm(a,i)}const so=-1;class Hi{constructor(n,t,r){this.factory=n,this.resolving=!1,this.canSeeViewProviders=t,this.injectImpl=r}}function td(e){return e!==so}function Gi(e){return 32767&e}function zi(e,n){let t=function N1(e){return e>>16}(e),r=n;for(;t>0;)r=r[to],t--;return r}let nd=!0;function ka(e){const n=nd;return nd=e,n}const Am=255,Nm=5;let x1=0;const gn={};function Pa(e,n){const t=xm(e,n);if(-1!==t)return t;const r=n[A];r.firstCreatePass&&(e.injectorIndex=n.length,rd(r.data,e),rd(n,null),rd(r.blueprint,null));const o=Fa(e,n),i=e.injectorIndex;if(td(o)){const s=Gi(o),a=zi(o,n),l=a[A].data;for(let c=0;c<8;c++)n[i+c]=a[s+c]|l[s+c]}return n[i+8]=o,i}function rd(e,n){e.push(0,0,0,0,0,0,0,0,n)}function xm(e,n){return-1===e.injectorIndex||e.parent&&e.parent.injectorIndex===e.injectorIndex||null===n[e.injectorIndex+8]?-1:e.injectorIndex}function Fa(e,n){if(e.parent&&-1!==e.parent.injectorIndex)return e.parent.injectorIndex;let t=0,r=null,o=n;for(;null!==o;){if(r=Vm(o),null===r)return so;if(t++,o=o[to],-1!==r.injectorIndex)return r.injectorIndex|t<<16}return so}function od(e,n,t){!function R1(e,n,t){let r;"string"==typeof t?r=t.charCodeAt(0)||0:t.hasOwnProperty(xi)&&(r=t[xi]),null==r&&(r=t[xi]=x1++);const o=r&Am;n.data[e+(o>>Nm)]|=1<=0?n&Am:F1:n}(t);if("function"==typeof i){if(!Cm(n,e,r))return r&X.Host?Rm(o,0,r):Om(n,t,r,o);try{let s;if(s=i(r),null!=s||r&X.Optional)return s;Iu()}finally{Em()}}else if("number"==typeof i){let s=null,a=xm(e,n),l=so,c=r&X.Host?n[Te][tt]:null;for((-1===a||r&X.SkipSelf)&&(l=-1===a?Fa(e,n):n[a+8],l!==so&&Lm(r,!1)?(s=n[A],a=Gi(l),n=zi(l,n)):a=-1);-1!==a;){const u=n[A];if(Fm(i,a,u.data)){const d=k1(a,n,t,s,r,c);if(d!==gn)return d}l=n[a+8],l!==so&&Lm(r,n[A].data[a+8]===c)&&Fm(i,a,n)?(s=u,a=Gi(l),n=zi(l,n)):a=-1}}return o}function k1(e,n,t,r,o,i){const s=n[A],a=s.data[e+8],u=La(a,s,t,null==r?Er(a)&&nd:r!=s&&0!=(3&a.type),o&X.Host&&i===a);return null!==u?Tr(n,s,u,a):gn}function La(e,n,t,r,o){const i=e.providerIndexes,s=n.data,a=1048575&i,l=e.directiveStart,u=i>>20,g=o?a+u:e.directiveEnd;for(let m=r?a:a+u;m=l&&v.type===t)return m}if(o){const m=s[l];if(m&&Qt(m)&&m.type===t)return l}return null}function Tr(e,n,t,r){let o=e[t];const i=n.data;if(function M1(e){return e instanceof Hi}(o)){const s=o;s.resolving&&function g0(e,n){const t=n?`. Dependency path: ${n.join(" > ")} > ${e}`:"";throw new M(-200,`Circular dependency in DI detected for ${e}${t}`)}(function re(e){return"function"==typeof e?e.name||e.toString():"object"==typeof e&&null!=e&&"function"==typeof e.type?e.type.name||e.type.toString():G(e)}(i[t]));const a=ka(s.canSeeViewProviders);s.resolving=!0;const c=s.injectImpl?vt(s.injectImpl):null;Cm(e,r,X.Default);try{o=e[t]=s.factory(void 0,i,e,r),n.firstCreatePass&&t>=r.directiveStart&&function E1(e,n,t){const{ngOnChanges:r,ngOnInit:o,ngDoCheck:i}=n.type.prototype;if(r){const s=om(n);(t.preOrderHooks??=[]).push(e,s),(t.preOrderCheckHooks??=[]).push(e,s)}o&&(t.preOrderHooks??=[]).push(0-e,o),i&&((t.preOrderHooks??=[]).push(e,i),(t.preOrderCheckHooks??=[]).push(e,i))}(t,i[t],n)}finally{null!==c&&vt(c),ka(a),s.resolving=!1,Em()}}return o}function Fm(e,n,t){return!!(t[n+(e>>Nm)]&1<{const n=e.prototype.constructor,t=n[Tn]||id(n),r=Object.prototype;let o=Object.getPrototypeOf(e.prototype).constructor;for(;o&&o!==r;){const i=o[Tn]||id(o);if(i&&i!==t)return i;o=Object.getPrototypeOf(o)}return i=>new i})}function id(e){return ya(e)?()=>{const n=id(V(e));return n&&n()}:Ir(e)}function Vm(e){const n=e[A],t=n.type;return 2===t?n.declTNode:1===t?e[tt]:null}const uo="__parameters__";function ho(e,n,t){return Nn(()=>{const r=function sd(e){return function(...t){if(e){const r=e(...t);for(const o in r)this[o]=r[o]}}}(n);function o(...i){if(this instanceof o)return r.apply(this,i),this;const s=new o(...i);return a.annotation=s,a;function a(l,c,u){const d=l.hasOwnProperty(uo)?l[uo]:Object.defineProperty(l,uo,{value:[]})[uo];for(;d.length<=u;)d.push(null);return(d[u]=d[u]||[]).push(s),l}}return t&&(o.prototype=Object.create(t.prototype)),o.prototype.ngMetadataName=e,o.annotationCls=o,o})}function go(e,n){e.forEach(t=>Array.isArray(t)?go(t,n):n(t))}function Um(e,n,t){n>=e.length?e.push(t):e.splice(n,0,t)}function ja(e,n){return n>=e.length-1?e.pop():e.splice(n,1)[0]}function At(e,n,t){let r=mo(e,n);return r>=0?e[1|r]=t:(r=~r,function Bm(e,n,t,r){let o=e.length;if(o==n)e.push(t,r);else if(1===o)e.push(r,e[0]),e[0]=t;else{for(o--,e.push(e[o-1],e[o]);o>n;)e[o]=e[o-2],o--;e[n]=t,e[n+1]=r}}(e,r,n,t)),r}function ld(e,n){const t=mo(e,n);if(t>=0)return e[1|t]}function mo(e,n){return function $m(e,n,t){let r=0,o=e.length>>t;for(;o!==r;){const i=r+(o-r>>1),s=e[i<n?o=i:r=i+1}return~(o<{t.push(s)};return go(n,s=>{const a=s;Wa(a,i,[],r)&&(o||=[],o.push(a))}),void 0!==o&&Ym(o,i),t}function Ym(e,n){for(let t=0;t{n(i,r)})}}function Wa(e,n,t,r){if(!(e=V(e)))return!1;let o=null,i=Ca(e);const s=!i&&Q(e);if(i||s){if(s&&!s.standalone)return!1;o=e}else{const l=e.ngModule;if(i=Ca(l),!i)return!1;o=l}const a=r.has(o);if(s){if(a)return!1;if(r.add(o),s.dependencies){const l="function"==typeof s.dependencies?s.dependencies():s.dependencies;for(const c of l)Wa(c,n,t,r)}}else{if(!i)return!1;{if(null!=i.imports&&!a){let c;r.add(o);try{go(i.imports,u=>{Wa(u,n,t,r)&&(c||=[],c.push(u))})}finally{}void 0!==c&&Ym(c,n)}if(!a){const c=Ir(o)||(()=>new o);n({provide:o,useFactory:c,deps:ne},o),n({provide:dd,useValue:o,multi:!0},o),n({provide:Ar,useValue:()=>P(o),multi:!0},o)}const l=i.providers;if(null!=l&&!a){const c=e;fd(l,u=>{n(u,c)})}}}return o!==e&&void 0!==e.providers}function fd(e,n){for(let t of e)wu(t)&&(t=t.\u0275providers),Array.isArray(t)?fd(t,n):n(t)}const iS=ue({provide:String,useValue:ue});function hd(e){return null!==e&&"object"==typeof e&&iS in e}function Nr(e){return"function"==typeof e}const pd=new N(""),Za={},aS={};let gd;function Ya(){return void 0===gd&&(gd=new za),gd}class Nt{}class yo extends Nt{get destroyed(){return this._destroyed}constructor(n,t,r,o){super(),this.parent=t,this.source=r,this.scopes=o,this.records=new Map,this._ngOnDestroyHooks=new Set,this._onDestroyHooks=[],this._destroyed=!1,vd(n,s=>this.processProvider(s)),this.records.set(qm,_o(void 0,this)),o.has("environment")&&this.records.set(Nt,_o(void 0,this));const i=this.records.get(pd);null!=i&&"string"==typeof i.value&&this.scopes.add(i.value),this.injectorDefTypes=new Set(this.get(dd,ne,X.Self))}destroy(){this.assertNotDestroyed(),this._destroyed=!0;try{for(const t of this._ngOnDestroyHooks)t.ngOnDestroy();const n=this._onDestroyHooks;this._onDestroyHooks=[];for(const t of n)t()}finally{this.records.clear(),this._ngOnDestroyHooks.clear(),this.injectorDefTypes.clear()}}onDestroy(n){return this.assertNotDestroyed(),this._onDestroyHooks.push(n),()=>this.removeOnDestroy(n)}runInContext(n){this.assertNotDestroyed();const t=Zn(this),r=vt(void 0);try{return n()}finally{Zn(t),vt(r)}}get(n,t=Ri,r=X.Default){if(this.assertNotDestroyed(),n.hasOwnProperty(Og))return n[Og](this);r=ba(r);const i=Zn(this),s=vt(void 0);try{if(!(r&X.SkipSelf)){let l=this.records.get(n);if(void 0===l){const c=function fS(e){return"function"==typeof e||"object"==typeof e&&e instanceof N}(n)&&_a(n);l=c&&this.injectableDefInScope(c)?_o(md(n),Za):null,this.records.set(n,l)}if(null!=l)return this.hydrate(n,l)}return(r&X.Self?Ya():this.parent).get(n,t=r&X.Optional&&t===Ri?null:t)}catch(a){if("NullInjectorError"===a.name){if((a[wa]=a[wa]||[]).unshift(He(n)),i)throw a;return function N0(e,n,t,r){const o=e[wa];throw n[jg]&&o.unshift(n[jg]),e.message=function x0(e,n,t,r=null){e=e&&"\n"===e.charAt(0)&&"\u0275"==e.charAt(1)?e.slice(2):e;let o=He(n);if(Array.isArray(n))o=n.map(He).join(" -> ");else if("object"==typeof n){let i=[];for(let s in n)if(n.hasOwnProperty(s)){let a=n[s];i.push(s+":"+("string"==typeof a?JSON.stringify(a):He(a)))}o=`{${i.join(", ")}}`}return`${t}${r?"("+r+")":""}[${o}]: ${e.replace(I0,"\n ")}`}("\n"+e.message,o,t,r),e.ngTokenPath=o,e[wa]=null,e}(a,n,"R3InjectorError",this.source)}throw a}finally{vt(s),Zn(i)}}resolveInjectorInitializers(){const n=Zn(this),t=vt(void 0);try{const o=this.get(Ar,ne,X.Self);for(const i of o)i()}finally{Zn(n),vt(t)}}toString(){const n=[],t=this.records;for(const r of t.keys())n.push(He(r));return`R3Injector[${n.join(", ")}]`}assertNotDestroyed(){if(this._destroyed)throw new M(205,!1)}processProvider(n){let t=Nr(n=V(n))?n:V(n&&n.provide);const r=function cS(e){return hd(e)?_o(void 0,e.useValue):_o(Jm(e),Za)}(n);if(!Nr(n)&&!0===n.multi){let o=this.records.get(t);o||(o=_o(void 0,Za,!0),o.factory=()=>Ou(o.multi),this.records.set(t,o)),t=n,o.multi.push(n)}this.records.set(t,r)}hydrate(n,t){return t.value===Za&&(t.value=aS,t.value=t.factory()),"object"==typeof t.value&&t.value&&function dS(e){return null!==e&&"object"==typeof e&&"function"==typeof e.ngOnDestroy}(t.value)&&this._ngOnDestroyHooks.add(t.value),t.value}injectableDefInScope(n){if(!n.providedIn)return!1;const t=V(n.providedIn);return"string"==typeof t?"any"===t||this.scopes.has(t):this.injectorDefTypes.has(t)}removeOnDestroy(n){const t=this._onDestroyHooks.indexOf(n);-1!==t&&this._onDestroyHooks.splice(t,1)}}function md(e){const n=_a(e),t=null!==n?n.factory:Ir(e);if(null!==t)return t;if(e instanceof N)throw new M(204,!1);if(e instanceof Function)return function lS(e){if(e.length>0)throw new M(204,!1);const t=function D0(e){return e&&(e[Da]||e[Pg])||null}(e);return null!==t?()=>t.factory(e):()=>new e}(e);throw new M(204,!1)}function Jm(e,n,t){let r;if(Nr(e)){const o=V(e);return Ir(o)||md(o)}if(hd(e))r=()=>V(e.useValue);else if(function Xm(e){return!(!e||!e.useFactory)}(e))r=()=>e.useFactory(...Ou(e.deps||[]));else if(function Qm(e){return!(!e||!e.useExisting)}(e))r=()=>P(V(e.useExisting));else{const o=V(e&&(e.useClass||e.provide));if(!function uS(e){return!!e.deps}(e))return Ir(o)||md(o);r=()=>new o(...Ou(e.deps))}return r}function _o(e,n,t=!1){return{factory:e,value:n,multi:t?[]:void 0}}function vd(e,n){for(const t of e)Array.isArray(t)?vd(t,n):t&&wu(t)?vd(t.\u0275providers,n):n(t)}function Kn(e,n){e instanceof yo&&e.assertNotDestroyed();const r=Zn(e),o=vt(void 0);try{return n()}finally{Zn(r),vt(o)}}function nv(e,n=null,t=null,r){const o=rv(e,n,t,r);return o.resolveInjectorInitializers(),o}function rv(e,n=null,t=null,r,o=new Set){const i=[t||ne,Wm(e)];return r=r||("object"==typeof e?void 0:He(e)),new yo(i,n||Ya(),r||null,o)}let Cd,Ct=(()=>{class e{static#e=this.THROW_IF_NOT_FOUND=Ri;static#t=this.NULL=new za;static create(t,r){if(Array.isArray(t))return nv({name:""},r,t,"");{const o=t.name??"";return nv({name:o},t.parent,t.providers,o)}}static#n=this.\u0275prov=R({token:e,providedIn:"any",factory:()=>P(qm)});static#r=this.__NG_ELEMENT_ID__=-1}return e})();const Xa=new N("",{providedIn:"root",factory:()=>DS}),DS="ng",iv=new N(""),nr=new N("",{providedIn:"platform",factory:()=>"unknown"}),sv=new N("",{providedIn:"root",factory:()=>function tr(){if(void 0!==Cd)return Cd;if(typeof document<"u")return document;throw new M(210,!1)}().body?.querySelector("[ngCspNonce]")?.getAttribute("ngCspNonce")||null});function xt(e){return e instanceof Function?e():e}function tl(e){return 128==(128&e.flags)}var ir=function(e){return e[e.Important=1]="Important",e[e.DashCase=2]="DashCase",e}(ir||{});const xS=/^>|^->||--!>|)/g,OS="\u200b$1\u200b";const Id=new Map;let kS=0;const Sd="__ngContext__";function it(e,n){nt(n)?(e[Sd]=n[Li],function FS(e){Id.set(e[Li],e)}(n)):e[Sd]=n}let Td;function Ad(e,n){return Td(e,n)}function Do(e,n,t,r,o){if(null!=r){let i,s=!1;rt(r)?i=r:nt(r)&&(s=!0,r=r[Ie]);const a=fe(r);0===e&&null!==t?null==o?Tv(n,t,a):xr(n,t,a,o||null,!0):1===e&&null!==t?xr(n,t,a,o||null,!0):2===e?function ll(e,n,t){const r=sl(e,n);r&&function JS(e,n,t,r){e.removeChild(n,t,r)}(e,r,n,t)}(n,a,s):3===e&&n.destroyNode(a),null!=i&&function tT(e,n,t,r,o){const i=t[un];i!==fe(t)&&Do(n,e,r,i,o);for(let a=ke;an.replace(RS,OS))}(n))}function ol(e,n,t){return e.createElement(n,t)}function Iv(e,n){cl(e,n,n[W],2,null,null)}function Mv(e,n){const t=e[ro],r=t.indexOf(n);t.splice(r,1)}function Ji(e,n){if(e.length<=ke)return;const t=ke+n,r=e[t];if(r){const o=r[Fi];null!==o&&o!==e&&Mv(o,r),n>0&&(e[t-1][Zt]=r[Zt]);const i=ja(e,ke+n);!function zS(e,n){Iv(e,n),n[Ie]=null,n[tt]=null}(r[A],r);const s=i[cn];null!==s&&s.detachView(i[A]),r[Oe]=null,r[Zt]=null,r[F]&=-129}return r}function il(e,n){if(!(256&n[F])){const t=n[W];t.destroyNode&&cl(e,n,t,3,null,null),function WS(e){let n=e[Pi];if(!n)return xd(e[A],e);for(;n;){let t=null;if(nt(n))t=n[Pi];else{const r=n[ke];r&&(t=r)}if(!t){for(;n&&!n[Zt]&&n!==e;)nt(n)&&xd(n[A],n),n=n[Oe];null===n&&(n=e),nt(n)&&xd(n[A],n),t=n&&n[Zt]}n=t}}(n)}}function xd(e,n){if(!(256&n[F])){n[F]&=-129,n[F]|=256,n[br]&&function gg(e){if(Xr(e),Ai(e))for(let n=0;n=0?r[s]():r[-s].unsubscribe(),i+=2}else t[i].call(r[t[i+1]]);null!==r&&(n[eo]=null);const o=n[Xn];if(null!==o){n[Xn]=null;for(let i=0;i-1){const{encapsulation:i}=e.data[r.directiveStart+o];if(i===qt.None||i===qt.Emulated)return null}return ct(r,t)}}(e,n.parent,t)}function xr(e,n,t,r,o){e.insertBefore(n,t,r,o)}function Tv(e,n,t){e.appendChild(n,t)}function Av(e,n,t,r,o){null!==r?xr(e,n,t,r,o):Tv(e,n,t)}function sl(e,n){return e.parentNode(n)}let Od,dl,Rv=function xv(e,n,t){return 40&e.type?ct(e,t):null};function al(e,n,t,r){const o=Rd(e,r,n),i=n[W],a=function Nv(e,n,t){return Rv(e,n,t)}(r.parent||n[tt],r,n);if(null!=o)if(Array.isArray(t))for(let l=0;le,createScript:e=>e,createScriptURL:e=>e})}catch{}return dl}()?.createScriptURL(e)||e}class $v{constructor(n){this.changingThisBreaksApplicationSecurity=n}toString(){return`SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity} (see ${Ag})`}}function sr(e){return e instanceof $v?e.changingThisBreaksApplicationSecurity:e}function es(e,n){const t=function fT(e){return e instanceof $v&&e.getTypeName()||null}(e);if(null!=t&&t!==n){if("ResourceURL"===t&&"URL"===n)return!0;throw new Error(`Required a safe ${n}, got a ${t} (see ${Ag})`)}return t===n}const mT=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:\/?#]*(?:[\/?#]|$))/i;var bo=function(e){return e[e.NONE=0]="NONE",e[e.HTML=1]="HTML",e[e.STYLE=2]="STYLE",e[e.SCRIPT=3]="SCRIPT",e[e.URL=4]="URL",e[e.RESOURCE_URL=5]="RESOURCE_URL",e}(bo||{});function Eo(e){const n=ns();return n?n.sanitize(bo.URL,e)||"":es(e,"URL")?sr(e):function Vd(e){return(e=String(e)).match(mT)?e:"unsafe:"+e}(G(e))}function Yv(e){const n=ns();if(n)return Bv(n.sanitize(bo.RESOURCE_URL,e)||"");if(es(e,"ResourceURL"))return Bv(sr(e));throw new M(904,!1)}function ns(){const e=b();return e&&e[xn].sanitizer}class Xv{}let Jv=()=>null;function Yd(e,n,t=!1){return Jv(e,n,t)}class LT{}class ry{}class jT{resolveComponentFactory(n){throw function VT(e){const n=Error(`No component factory found for ${He(e)}.`);return n.ngComponent=e,n}(n)}}let yl=(()=>{class e{static#e=this.NULL=new jT}return e})();function UT(){return To(he(),b())}function To(e,n){return new Rt(ct(e,n))}let Rt=(()=>{class e{constructor(t){this.nativeElement=t}static#e=this.__NG_ELEMENT_ID__=UT}return e})();function BT(e){return e instanceof Rt?e.nativeElement:e}class iy{}let Pn=(()=>{class e{constructor(){this.destroyNode=null}static#e=this.__NG_ELEMENT_ID__=()=>function $T(){const e=b(),t=Tt(he().index,e);return(nt(t)?t:e)[W]}()}return e})(),HT=(()=>{class e{static#e=this.\u0275prov=R({token:e,providedIn:"root",factory:()=>null})}return e})();const Kd={};function _l(e){return!!function ef(e){return null!==e&&("function"==typeof e||"object"==typeof e)}(e)&&(Array.isArray(e)||!(e instanceof Map)&&Symbol.iterator in e)}class ay{constructor(){}supports(n){return _l(n)}create(n){return new YT(n)}}const ZT=(e,n)=>n;class YT{constructor(n){this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=n||ZT}forEachItem(n){let t;for(t=this._itHead;null!==t;t=t._next)n(t)}forEachOperation(n){let t=this._itHead,r=this._removalsHead,o=0,i=null;for(;t||r;){const s=!r||t&&t.currentIndex{s=this._trackByFn(o,a),null!==t&&Object.is(t.trackById,s)?(r&&(t=this._verifyReinsertion(t,a,s,o)),Object.is(t.item,a)||this._addIdentityChange(t,a)):(t=this._mismatch(t,a,s,o),r=!0),t=t._next,o++}),this.length=o;return this._truncate(t),this.collection=n,this.isDirty}get isDirty(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}_reset(){if(this.isDirty){let n;for(n=this._previousItHead=this._itHead;null!==n;n=n._next)n._nextPrevious=n._next;for(n=this._additionsHead;null!==n;n=n._nextAdded)n.previousIndex=n.currentIndex;for(this._additionsHead=this._additionsTail=null,n=this._movesHead;null!==n;n=n._nextMoved)n.previousIndex=n.currentIndex;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(n,t,r,o){let i;return null===n?i=this._itTail:(i=n._prev,this._remove(n)),null!==(n=null===this._unlinkedRecords?null:this._unlinkedRecords.get(r,null))?(Object.is(n.item,t)||this._addIdentityChange(n,t),this._reinsertAfter(n,i,o)):null!==(n=null===this._linkedRecords?null:this._linkedRecords.get(r,o))?(Object.is(n.item,t)||this._addIdentityChange(n,t),this._moveAfter(n,i,o)):n=this._addAfter(new QT(t,r),i,o),n}_verifyReinsertion(n,t,r,o){let i=null===this._unlinkedRecords?null:this._unlinkedRecords.get(r,null);return null!==i?n=this._reinsertAfter(i,n._prev,o):n.currentIndex!=o&&(n.currentIndex=o,this._addToMoves(n,o)),n}_truncate(n){for(;null!==n;){const t=n._next;this._addToRemovals(this._unlink(n)),n=t}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(n,t,r){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(n);const o=n._prevRemoved,i=n._nextRemoved;return null===o?this._removalsHead=i:o._nextRemoved=i,null===i?this._removalsTail=o:i._prevRemoved=o,this._insertAfter(n,t,r),this._addToMoves(n,r),n}_moveAfter(n,t,r){return this._unlink(n),this._insertAfter(n,t,r),this._addToMoves(n,r),n}_addAfter(n,t,r){return this._insertAfter(n,t,r),this._additionsTail=null===this._additionsTail?this._additionsHead=n:this._additionsTail._nextAdded=n,n}_insertAfter(n,t,r){const o=null===t?this._itHead:t._next;return n._next=o,n._prev=t,null===o?this._itTail=n:o._prev=n,null===t?this._itHead=n:t._next=n,null===this._linkedRecords&&(this._linkedRecords=new ly),this._linkedRecords.put(n),n.currentIndex=r,n}_remove(n){return this._addToRemovals(this._unlink(n))}_unlink(n){null!==this._linkedRecords&&this._linkedRecords.remove(n);const t=n._prev,r=n._next;return null===t?this._itHead=r:t._next=r,null===r?this._itTail=t:r._prev=t,n}_addToMoves(n,t){return n.previousIndex===t||(this._movesTail=null===this._movesTail?this._movesHead=n:this._movesTail._nextMoved=n),n}_addToRemovals(n){return null===this._unlinkedRecords&&(this._unlinkedRecords=new ly),this._unlinkedRecords.put(n),n.currentIndex=null,n._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=n,n._prevRemoved=null):(n._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=n),n}_addIdentityChange(n,t){return n.item=t,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=n:this._identityChangesTail._nextIdentityChange=n,n}}class QT{constructor(n,t){this.item=n,this.trackById=t,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null}}class XT{constructor(){this._head=null,this._tail=null}add(n){null===this._head?(this._head=this._tail=n,n._nextDup=null,n._prevDup=null):(this._tail._nextDup=n,n._prevDup=this._tail,n._nextDup=null,this._tail=n)}get(n,t){let r;for(r=this._head;null!==r;r=r._nextDup)if((null===t||t<=r.currentIndex)&&Object.is(r.trackById,n))return r;return null}remove(n){const t=n._prevDup,r=n._nextDup;return null===t?this._head=r:t._nextDup=r,null===r?this._tail=t:r._prevDup=t,null===this._head}}class ly{constructor(){this.map=new Map}put(n){const t=n.trackById;let r=this.map.get(t);r||(r=new XT,this.map.set(t,r)),r.add(n)}get(n,t){const o=this.map.get(n);return o?o.get(n,t):null}remove(n){const t=n.trackById;return this.map.get(t).remove(n)&&this.map.delete(t),n}get isEmpty(){return 0===this.map.size}clear(){this.map.clear()}}function cy(e,n,t){const r=e.previousIndex;if(null===r)return r;let o=0;return t&&r{class e{static#e=this.\u0275prov=R({token:e,providedIn:"root",factory:dy});constructor(t){this.factories=t}static create(t,r){if(null!=r){const o=r.factories.slice();t=t.concat(o)}return new e(t)}static extend(t){return{provide:e,useFactory:r=>e.create(t,r||dy()),deps:[[e,new Ha,new $a]]}}find(t){const r=this.factories.find(o=>o.supports(t));if(null!=r)return r;throw new M(901,!1)}}return e})();function ss(e,n,t,r,o=!1){for(;null!==t;){const i=n[t.index];null!==i&&r.push(fe(i)),rt(i)&&hy(i,r);const s=t.type;if(8&s)ss(e,n,t.child,r);else if(32&s){const a=Ad(t,n);let l;for(;l=a();)r.push(l)}else if(16&s){const a=kv(n,t);if(Array.isArray(a))r.push(...a);else{const l=Mr(n[Te]);ss(l[A],l,a,r,!0)}}t=o?t.projectionNext:t.next}return r}function hy(e,n){for(let t=ke;t!1,producerRecomputeValue:()=>{},consumerMarkedDirty:()=>{},consumerOnSignalRead:()=>{},consumerIsAlwaysLive:!0,consumerMarkedDirty:e=>{Bi(e.lView)},consumerOnSignalRead(){this.lView[br]=this}};function gy(e){return vy(e[Pi])}function my(e){return vy(e[Zt])}function vy(e){for(;null!==e&&!rt(e);)e=e[Zt];return e}function nf(e){return e.ngOriginalError}class Fn{constructor(){this._console=console}handleError(n){const t=this._findOriginalError(n);this._console.error("ERROR",n),t&&this._console.error("ORIGINAL ERROR",t)}_findOriginalError(n){let t=n&&nf(n);for(;t&&nf(t);)t=nf(t);return t||null}}const _y=new N("",{providedIn:"root",factory:()=>T(Fn).handleError.bind(void 0)}),Dy=new N("",{providedIn:"root",factory:()=>!1}),Z={};function C(e=1){Iy(K(),b(),ot()+e,!1)}function Iy(e,n,t,r){if(!r)if(3==(3&n[F])){const i=e.preOrderCheckHooks;null!==i&&Ra(n,i,t)}else{const i=e.preOrderHooks;null!==i&&Oa(n,i,0,t)}Sr(t)}function S(e,n=X.Default){const t=b();return null===t?P(e,n):km(he(),t,V(e),n)}function Sy(e,n,t,r,o,i){const s=Ae(null);try{let a=null;o&be.SignalBased&&(a=n[r][Qr]),null!==a&&void 0!==a.transformFn&&(i=a.transformFn(i)),o&be.HasDecoratorInputTransform&&(i=e.inputTransforms[r].call(n,i)),null!==e.setInput?e.setInput(n,a,i,t,r):rm(n,a,r,i)}finally{Ae(s)}}function wl(e,n,t,r,o,i,s,a,l,c,u){const d=n.blueprint.slice();return d[Ie]=o,d[F]=204|r,(null!==c||e&&2048&e[F])&&(d[F]|=2048),um(d),d[Oe]=d[to]=e,d[ye]=t,d[xn]=s||e&&e[xn],d[W]=a||e&&e[W],d[lt]=l||e&&e[lt]||null,d[tt]=i,d[Li]=function PS(){return kS++}(),d[Yt]=u,d[Kg]=c,d[Te]=2==n.type?e[Te]:d,d}function Ao(e,n,t,r,o){let i=e.data[n];if(null===i)i=function rf(e,n,t,r,o){const i=gm(),s=qu(),l=e.data[n]=function _A(e,n,t,r,o,i){let s=n?n.injectorIndex:-1,a=0;return function io(){return null!==U.skipHydrationRootTNode}()&&(a|=128),{type:t,index:r,insertBeforeIndex:null,injectorIndex:s,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,componentOffset:-1,propertyBindings:null,flags:a,providerIndexes:0,value:o,attrs:i,mergedAttrs:null,localNames:null,initialInputs:void 0,inputs:null,outputs:null,tView:null,next:null,prev:null,projectionNext:null,child:null,parent:n,projection:null,styles:null,stylesWithoutHost:null,residualStyles:void 0,classes:null,classesWithoutHost:null,residualClasses:void 0,classBindings:0,styleBindings:0}}(0,s?i:i&&i.parent,t,n,r,o);return null===e.firstChild&&(e.firstChild=l),null!==i&&(s?null==i.child&&null!==l.parent&&(i.child=l):null===i.next&&(i.next=l,l.prev=i)),l}(e,n,t,r,o),function g1(){return U.lFrame.inI18n}()&&(i.flags|=32);else if(64&i.type){i.type=t,i.value=r,i.attrs=o;const s=function $i(){const e=U.lFrame,n=e.currentTNode;return e.isParent?n:n.parent}();i.injectorIndex=null===s?-1:s.injectorIndex}return hn(i,!0),i}function as(e,n,t,r){if(0===t)return-1;const o=n.length;for(let i=0;iz&&Iy(e,n,z,!1),dn(s?2:0,o),t(r,o)}finally{Sr(i),dn(s?3:1,o)}}function sf(e,n,t){if(Lu(n)){const r=Ae(null);try{const i=n.directiveEnd;for(let s=n.directiveStart;snull;function xy(e,n,t,r,o){for(let i in n){if(!n.hasOwnProperty(i))continue;const s=n[i];if(void 0===s)continue;r??={};let a,l=be.None;Array.isArray(s)?(a=s[0],l=s[1]):a=s;let c=i;if(null!==o){if(!o.hasOwnProperty(i))continue;c=o[i]}0===e?Ry(r,t,c,a,l):Ry(r,t,c,a)}return r}function Ry(e,n,t,r,o){let i;e.hasOwnProperty(t)?(i=e[t]).push(n,r):i=e[t]=[n,r],void 0!==o&&i.push(o)}function Ot(e,n,t,r,o,i,s,a){const l=ct(n,t);let u,c=n.inputs;!a&&null!=c&&(u=c[r])?(pf(e,t,u,r,o),Er(n)&&function wA(e,n){const t=Tt(n,e);16&t[F]||(t[F]|=64)}(t,n.index)):3&n.type&&(r=function DA(e){return"class"===e?"className":"for"===e?"htmlFor":"formaction"===e?"formAction":"innerHtml"===e?"innerHTML":"readonly"===e?"readOnly":"tabindex"===e?"tabIndex":e}(r),o=null!=s?s(o,n.value||"",r):o,i.setProperty(l,r,o))}function uf(e,n,t,r){if(pm()){const o=null===r?null:{"":-1},i=function TA(e,n){const t=e.directiveRegistry;let r=null,o=null;if(t)for(let i=0;i0;){const t=e[--n];if("number"==typeof t&&t<0)return t}return 0})(s)!=a&&s.push(a),s.push(t,r,i)}}(e,n,r,as(e,t,o.hostVars,Z),o)}function mn(e,n,t,r,o,i){const s=ct(e,n);!function ff(e,n,t,r,o,i,s){if(null==i)e.removeAttribute(n,o,t);else{const a=null==s?G(i):s(i,r||"",o);e.setAttribute(n,o,a,t)}}(n[W],s,i,e.value,t,r,o)}function kA(e,n,t,r,o,i){const s=i[n];if(null!==s)for(let a=0;ae.nextProducerIndex;)e.producerNode.pop(),e.producerLastReadVersion.pop(),e.producerIndexOfThis.pop()}}(a,s),function rA(e){e.lView[br]!==e&&(e.lView=null,py.push(e))}(a)),Ju()}}function Uy(e,n){for(let t=gy(e);null!==t;t=my(t))for(let r=ke;r-1&&(Ji(n,r),ja(t,r))}this._attachedToViewContainer=!1}il(this._lView[A],this._lView)}onDestroy(n){Aa(this._lView,n)}markForCheck(){ls(this._cdRefInjectingView||this._lView)}detach(){this._lView[F]&=-129}reattach(){Gu(this._lView),this._lView[F]|=128}detectChanges(){this._lView[F]|=1024,function gf(e,n=!0){const t=e[xn],r=t.rendererFactory;r.begin?.();try{!function LA(e){mf(e,0);let n=0;for(;fm(e);){if(100===n)throw new M(103,!1);n++,mf(e,1)}}(e)}catch(i){throw n&&El(e,i),i}finally{r.end?.(),t.inlineEffectRunner?.flush()}}(this._lView,this.notifyErrorHandler)}checkNoChanges(){}attachToViewContainerRef(){if(this._appRef)throw new M(902,!1);this._attachedToViewContainer=!0}detachFromAppRef(){this._appRef=null,Iv(this._lView[A],this._lView)}attachToAppRef(n){if(this._attachedToViewContainer)throw new M(902,!1);this._appRef=n,Gu(this._lView)}}let us=(()=>{class e{static#e=this.__NG_ELEMENT_ID__=$A}return e})();function $A(e){return function HA(e,n,t){if(Er(e)&&!t){const r=Tt(e.index,n);return new cs(r,r)}return 47&e.type?new cs(n[Te],n):null}(he(),b(),16==(16&e))}let Il=(()=>{class e{static#e=this.__NG_ELEMENT_ID__=WA;static#t=this.__NG_ENV_ID__=t=>t}return e})();class qA extends Il{constructor(n){super(),this._lView=n}onDestroy(n){return Aa(this._lView,n),()=>function zu(e,n){if(null===e[Xn])return;const t=e[Xn].indexOf(n);-1!==t&&e[Xn].splice(t,1)}(this._lView,n)}}function WA(){return new qA(b())}const Hy=new Set;function Rr(e){Hy.has(e)||(Hy.add(e),performance?.mark?.("mark_feature_usage",{detail:{feature:e}}))}function vf(e){return n=>{setTimeout(e,void 0,n)}}const Ne=class KA extends an{constructor(n=!1){super(),this.__isAsync=n}emit(n){super.next(n)}subscribe(n,t,r){let o=n,i=t||(()=>null),s=r;if(n&&"object"==typeof n){const l=n;o=l.next?.bind(l),i=l.error?.bind(l),s=l.complete?.bind(l)}this.__isAsync&&(i=vf(i),o&&(o=vf(o)),s&&(s=vf(s)));const a=super.subscribe({next:o,error:i,complete:s});return n instanceof gt&&n.add(a),a}};function Gy(...e){}class se{constructor({enableLongStackTrace:n=!1,shouldCoalesceEventChangeDetection:t=!1,shouldCoalesceRunChangeDetection:r=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new Ne(!1),this.onMicrotaskEmpty=new Ne(!1),this.onStable=new Ne(!1),this.onError=new Ne(!1),typeof Zone>"u")throw new M(908,!1);Zone.assertZonePatched();const o=this;o._nesting=0,o._outer=o._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(o._inner=o._inner.fork(new Zone.TaskTrackingZoneSpec)),n&&Zone.longStackTraceZoneSpec&&(o._inner=o._inner.fork(Zone.longStackTraceZoneSpec)),o.shouldCoalesceEventChangeDetection=!r&&t,o.shouldCoalesceRunChangeDetection=r,o.lastRequestAnimationFrameId=-1,o.nativeRequestAnimationFrame=function eN(){const e="function"==typeof ce.requestAnimationFrame;let n=ce[e?"requestAnimationFrame":"setTimeout"],t=ce[e?"cancelAnimationFrame":"clearTimeout"];if(typeof Zone<"u"&&n&&t){const r=n[Zone.__symbol__("OriginalDelegate")];r&&(n=r);const o=t[Zone.__symbol__("OriginalDelegate")];o&&(t=o)}return{nativeRequestAnimationFrame:n,nativeCancelAnimationFrame:t}}().nativeRequestAnimationFrame,function rN(e){const n=()=>{!function nN(e){e.isCheckStableRunning||-1!==e.lastRequestAnimationFrameId||(e.lastRequestAnimationFrameId=e.nativeRequestAnimationFrame.call(ce,()=>{e.fakeTopEventTask||(e.fakeTopEventTask=Zone.root.scheduleEventTask("fakeTopEventTask",()=>{e.lastRequestAnimationFrameId=-1,_f(e),e.isCheckStableRunning=!0,yf(e),e.isCheckStableRunning=!1},void 0,()=>{},()=>{})),e.fakeTopEventTask.invoke()}),_f(e))}(e)};e._inner=e._inner.fork({name:"angular",properties:{isAngularZone:!0},onInvokeTask:(t,r,o,i,s,a)=>{if(function oN(e){return!(!Array.isArray(e)||1!==e.length)&&!0===e[0].data?.__ignore_ng_zone__}(a))return t.invokeTask(o,i,s,a);try{return zy(e),t.invokeTask(o,i,s,a)}finally{(e.shouldCoalesceEventChangeDetection&&"eventTask"===i.type||e.shouldCoalesceRunChangeDetection)&&n(),qy(e)}},onInvoke:(t,r,o,i,s,a,l)=>{try{return zy(e),t.invoke(o,i,s,a,l)}finally{e.shouldCoalesceRunChangeDetection&&n(),qy(e)}},onHasTask:(t,r,o,i)=>{t.hasTask(o,i),r===o&&("microTask"==i.change?(e._hasPendingMicrotasks=i.microTask,_f(e),yf(e)):"macroTask"==i.change&&(e.hasPendingMacrotasks=i.macroTask))},onHandleError:(t,r,o,i)=>(t.handleError(o,i),e.runOutsideAngular(()=>e.onError.emit(i)),!1)})}(o)}static isInAngularZone(){return typeof Zone<"u"&&!0===Zone.current.get("isAngularZone")}static assertInAngularZone(){if(!se.isInAngularZone())throw new M(909,!1)}static assertNotInAngularZone(){if(se.isInAngularZone())throw new M(909,!1)}run(n,t,r){return this._inner.run(n,t,r)}runTask(n,t,r,o){const i=this._inner,s=i.scheduleEventTask("NgZoneEvent: "+o,n,tN,Gy,Gy);try{return i.runTask(s,t,r)}finally{i.cancelTask(s)}}runGuarded(n,t,r){return this._inner.runGuarded(n,t,r)}runOutsideAngular(n){return this._outer.run(n)}}const tN={};function yf(e){if(0==e._nesting&&!e.hasPendingMicrotasks&&!e.isStable)try{e._nesting++,e.onMicrotaskEmpty.emit(null)}finally{if(e._nesting--,!e.hasPendingMicrotasks)try{e.runOutsideAngular(()=>e.onStable.emit(null))}finally{e.isStable=!0}}}function _f(e){e.hasPendingMicrotasks=!!(e._hasPendingMicrotasks||(e.shouldCoalesceEventChangeDetection||e.shouldCoalesceRunChangeDetection)&&-1!==e.lastRequestAnimationFrameId)}function zy(e){e._nesting++,e.isStable&&(e.isStable=!1,e.onUnstable.emit(null))}function qy(e){e._nesting--,yf(e)}var Or=function(e){return e[e.EarlyRead=0]="EarlyRead",e[e.Write=1]="Write",e[e.MixedReadWrite=2]="MixedReadWrite",e[e.Read=3]="Read",e}(Or||{});const Zy={destroy(){}};function Qy(e,n){!n&&function yd(e){if(!Fg()&&!function S0(){return Kr}())throw new M(-203,!1)}();const t=n?.injector??T(Ct);if(!function rr(e){return"browser"===(e??T(Ct)).get(nr)}(t))return Zy;Rr("NgAfterNextRender");const r=t.get(ds),o=r.handler??=new Jy,i=n?.phase??Or.MixedReadWrite,s=()=>{o.unregister(l),a()},a=t.get(Il).onDestroy(s),l=new Xy(t,i,()=>{s(),e()});return o.register(l),{destroy:s}}class Xy{constructor(n,t,r){this.phase=t,this.callbackFn=r,this.zone=n.get(se),this.errorHandler=n.get(Fn,null,{optional:!0})}invoke(){try{this.zone.runOutsideAngular(this.callbackFn)}catch(n){this.errorHandler?.handleError(n)}}}class Jy{constructor(){this.executingCallbacks=!1,this.buckets={[Or.EarlyRead]:new Set,[Or.Write]:new Set,[Or.MixedReadWrite]:new Set,[Or.Read]:new Set},this.deferredCallbacks=new Set}register(n){(this.executingCallbacks?this.deferredCallbacks:this.buckets[n.phase]).add(n)}unregister(n){this.buckets[n.phase].delete(n),this.deferredCallbacks.delete(n)}execute(){let n=!1;this.executingCallbacks=!0;for(const t of Object.values(this.buckets))for(const r of t)n=!0,r.invoke();this.executingCallbacks=!1;for(const t of this.deferredCallbacks)this.buckets[t.phase].add(t);return this.deferredCallbacks.clear(),n}destroy(){for(const n of Object.values(this.buckets))n.clear();this.deferredCallbacks.clear()}}let ds=(()=>{class e{constructor(){this.handler=null,this.internalCallbacks=[]}execute(){const t=[...this.internalCallbacks];this.internalCallbacks.length=0;for(const o of t)o();return!!this.handler?.execute()||t.length>0}ngOnDestroy(){this.handler?.destroy(),this.handler=null,this.internalCallbacks.length=0}static#e=this.\u0275prov=R({token:e,providedIn:"root",factory:()=>new e})}return e})();function aN(e,n){const t=Tt(n,e),r=t[A];!function lN(e,n){for(let t=n.length;t0&&Lv(e,t,i.join(" "))}}(g,H,v,r),void 0!==t&&function yN(e,n,t){const r=e.projection=[];for(let o=0;o=0;r--){const o=e[r];o.hostVars=n+=o.hostVars,o.hostAttrs=ki(o.hostAttrs,t=ki(t,o.hostAttrs))}}(r)}function CN(e,n){for(const t in n.inputs){if(!n.inputs.hasOwnProperty(t)||e.inputs.hasOwnProperty(t))continue;const r=n.inputs[t];if(void 0!==r&&(e.inputs[t]=r,e.declaredInputs[t]=n.declaredInputs[t],null!==n.inputTransforms)){const o=Array.isArray(r)?r[0]:r;if(!n.inputTransforms.hasOwnProperty(o))continue;e.inputTransforms??={},e.inputTransforms[o]=n.inputTransforms[o]}}}function Sl(e){return e===ln?{}:e===ne?[]:e}function wN(e,n){const t=e.viewQuery;e.viewQuery=t?(r,o)=>{n(r,o),t(r,o)}:n}function bN(e,n){const t=e.contentQueries;e.contentQueries=t?(r,o,i)=>{n(r,o,i),t(r,o,i)}:n}function EN(e,n){const t=e.hostBindings;e.hostBindings=t?(r,o)=>{n(r,o),t(r,o)}:n}function i_(e){const n=e.inputConfig,t={};for(const r in n)if(n.hasOwnProperty(r)){const o=n[r];Array.isArray(o)&&o[3]&&(t[r]=o[3])}e.inputTransforms=t}let d_=()=>null;function No(e,n){return d_(e,n)}function vs(e,n,t,r){const o=n.tView,a=wl(e,o,t,4096&e[F]?4096:16,null,n,null,null,null,r?.injector??null,r?.dehydratedView??null);a[Fi]=e[n.index];const c=e[cn];return null!==c&&(a[cn]=c.createEmbeddedView(o)),Cf(o,a,t),a}function xo(e,n){return!n||null===n.firstChild||tl(e)}function ys(e,n,t,r=!0){const o=n[A];if(function ZS(e,n,t,r){const o=ke+r,i=t.length;r>0&&(t[o-1][Zt]=n),r{class e{static#e=this.__NG_ELEMENT_ID__=XN}return e})();function XN(){return g_(he(),b())}const JN=Xt,h_=class extends JN{constructor(n,t,r){super(),this._lContainer=n,this._hostTNode=t,this._hostLView=r}get element(){return To(this._hostTNode,this._hostLView)}get injector(){return new ze(this._hostTNode,this._hostLView)}get parentInjector(){const n=Fa(this._hostTNode,this._hostLView);if(td(n)){const t=zi(n,this._hostLView),r=Gi(n);return new ze(t[A].data[r+8],t)}return new ze(null,this._hostLView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(n){const t=p_(this._lContainer);return null!==t&&t[n]||null}get length(){return this._lContainer.length-ke}createEmbeddedView(n,t,r){let o,i;"number"==typeof r?o=r:null!=r&&(o=r.index,i=r.injector);const s=No(this._lContainer,n.ssrId),a=n.createEmbeddedViewImpl(t||{},i,s);return this.insertImpl(a,o,xo(this._hostTNode,s)),a}createComponent(n,t,r,o,i){const s=n&&!function qi(e){return"function"==typeof e}(n);let a;if(s)a=t;else{const v=t||{};a=v.index,r=v.injector,o=v.projectableNodes,i=v.environmentInjector||v.ngModuleRef}const l=s?n:new fs(Q(n)),c=r||this.parentInjector;if(!i&&null==l.ngModule){const _=(s?c:this.parentInjector).get(Nt,null);_&&(i=_)}const u=Q(l.componentType??{}),d=No(this._lContainer,u?.id??null),m=l.create(c,o,d?.firstChild??null,i);return this.insertImpl(m.hostView,a,xo(this._hostTNode,d)),m}insert(n,t){return this.insertImpl(n,t,!0)}insertImpl(n,t,r){const o=n._lView;if(function o1(e){return rt(e[Oe])}(o)){const a=this.indexOf(n);if(-1!==a)this.detach(a);else{const l=o[Oe],c=new h_(l,l[tt],l[Oe]);c.detach(c.indexOf(n))}}const i=this._adjustIndex(t),s=this._lContainer;return ys(s,o,i,r),n.attachToViewContainerRef(),Um(Sf(s),i,n),n}move(n,t){return this.insert(n,t)}indexOf(n){const t=p_(this._lContainer);return null!==t?t.indexOf(n):-1}remove(n){const t=this._adjustIndex(n,-1),r=Ji(this._lContainer,t);r&&(ja(Sf(this._lContainer),t),il(r[A],r))}detach(n){const t=this._adjustIndex(n,-1),r=Ji(this._lContainer,t);return r&&null!=ja(Sf(this._lContainer),t)?new cs(r):null}_adjustIndex(n,t=0){return n??this.length+t}};function p_(e){return e[8]}function Sf(e){return e[8]||(e[8]=[])}function g_(e,n){let t;const r=n[e.index];return rt(r)?t=r:(t=Py(r,n,null,e),n[e.index]=t,bl(n,t)),m_(t,n,e,r),new h_(t,e,n)}let m_=function y_(e,n,t,r){if(e[un])return;let o;o=8&t.type?fe(r):function KN(e,n){const t=e[W],r=t.createComment(""),o=ct(n,e);return xr(t,sl(t,o),r,function KS(e,n){return e.nextSibling(n)}(t,o),!1),r}(n,t),e[un]=o},Tf=()=>!1;function vn(e,n,t){return e[n]=t}function je(e,n,t){return!Object.is(e[n],t)&&(e[n]=t,!0)}function q(e,n,t,r,o,i,s,a){const l=b(),c=K(),u=e+z,d=c.firstCreatePass?function rx(e,n,t,r,o,i,s,a,l){const c=n.consts,u=Ao(n,e,4,s||null,fn(c,a));uf(n,t,u,fn(c,l)),xa(n,u);const d=u.tView=cf(2,u,r,o,i,n.directiveRegistry,n.pipeRegistry,null,n.schemas,c,null);return null!==n.queries&&(n.queries.template(n,u),d.queries=n.queries.embeddedTView(u)),u}(u,c,l,n,t,r,o,i,s):c.data[u];hn(d,!1);const g=__(c,l,d,e);Na()&&al(c,l,g,d),it(g,l);const m=Py(g,l,g,d);return l[u]=m,bl(l,m),function v_(e,n,t){return Tf(e,n,t)}(m,d,l),Ta(d)&&af(c,l,d),null!=s&&lf(l,d,a),q}let __=function C_(e,n,t,r){return Jn(!0),n[W].createComment("")};function Jt(e,n,t,r){const o=b();return je(o,pn(),n)&&(K(),mn(Ee(),o,e,n,t,r)),Jt}function jo(e,n,t,r){return je(e,pn(),t)?n+G(t)+r:Z}function Vl(e,n){return e<<17|n<<2}function lr(e){return e>>17&32767}function Lf(e){return 2|e}function Fr(e){return(131068&e)>>2}function Vf(e,n){return-131069&e|n<<2}function jf(e){return 1|e}function J_(e,n,t,r){const o=e[t+1],i=null===n;let s=r?lr(o):Fr(o),a=!1;for(;0!==s&&(!1===a||i);){const c=e[s+1];Bx(e[s],n)&&(a=!0,e[s+1]=r?jf(c):Lf(c)),s=r?lr(c):Fr(c)}a&&(e[t+1]=r?Lf(o):jf(o))}function Bx(e,n){return null===e||null==n||(Array.isArray(e)?e[1]:e)===n||!(!Array.isArray(e)||"string"!=typeof n)&&mo(e,n)>=0}function E(e,n,t){const r=b();return je(r,pn(),n)&&Ot(K(),Ee(),r,e,n,r[W],t,!1),E}function Uf(e,n,t,r,o){const s=o?"class":"style";pf(e,t,n.inputs[s],s,r)}function jl(e,n){return function Kt(e,n,t,r){const o=b(),i=K(),s=function On(e){const n=U.lFrame,t=n.bindingIndex;return n.bindingIndex=n.bindingIndex+e,t}(2);i.firstUpdatePass&&function aC(e,n,t,r){const o=e.data;if(null===o[t+1]){const i=o[ot()],s=function sC(e,n){return n>=e.expandoStartIndex}(e,t);(function dC(e,n){return 0!=(e.flags&(n?8:16))})(i,r)&&null===n&&!s&&(n=!1),n=function Qx(e,n,t,r){const o=function Yu(e){const n=U.lFrame.currentDirectiveIndex;return-1===n?null:e[n]}(e);let i=r?n.residualClasses:n.residualStyles;if(null===o)0===(r?n.classBindings:n.styleBindings)&&(t=bs(t=Bf(null,e,n,t,r),n.attrs,r),i=null);else{const s=n.directiveStylingLast;if(-1===s||e[s]!==o)if(t=Bf(o,e,n,t,r),null===i){let l=function Xx(e,n,t){const r=t?n.classBindings:n.styleBindings;if(0!==Fr(r))return e[lr(r)]}(e,n,r);void 0!==l&&Array.isArray(l)&&(l=Bf(null,e,n,l[1],r),l=bs(l,n.attrs,r),function Jx(e,n,t,r){e[lr(t?n.classBindings:n.styleBindings)]=r}(e,n,r,l))}else i=function Kx(e,n,t){let r;const o=n.directiveEnd;for(let i=1+n.directiveStylingLast;i0)&&(c=!0)):u=t,o)if(0!==l){const g=lr(e[a+1]);e[r+1]=Vl(g,a),0!==g&&(e[g+1]=Vf(e[g+1],r)),e[a+1]=function Lx(e,n){return 131071&e|n<<17}(e[a+1],r)}else e[r+1]=Vl(a,0),0!==a&&(e[a+1]=Vf(e[a+1],r)),a=r;else e[r+1]=Vl(l,0),0===a?a=r:e[l+1]=Vf(e[l+1],r),l=r;c&&(e[r+1]=Lf(e[r+1])),J_(e,u,r,!0),J_(e,u,r,!1),function Ux(e,n,t,r,o){const i=o?e.residualClasses:e.residualStyles;null!=i&&"string"==typeof n&&mo(i,n)>=0&&(t[r+1]=jf(t[r+1]))}(n,u,e,r,i),s=Vl(a,l),i?n.classBindings=s:n.styleBindings=s}(o,i,n,t,s,r)}}(i,e,s,r),n!==Z&&je(o,s,n)&&function cC(e,n,t,r,o,i,s,a){if(!(3&n.type))return;const l=e.data,c=l[a+1],u=function Vx(e){return 1==(1&e)}(c)?uC(l,n,t,o,Fr(c),s):void 0;Ul(u)||(Ul(i)||function Fx(e){return 2==(2&e)}(c)&&(i=uC(l,null,t,o,a,s)),function nT(e,n,t,r,o){if(n)o?e.addClass(t,r):e.removeClass(t,r);else{let i=-1===r.indexOf("-")?void 0:ir.DashCase;null==o?e.removeStyle(t,r,i):("string"==typeof o&&o.endsWith("!important")&&(o=o.slice(0,-10),i|=ir.Important),e.setStyle(t,r,o,i))}}(r,s,ji(ot(),t),o,i))}(i,i.data[ot()],o,o[W],e,o[s+1]=function rR(e,n){return null==e||""===e||("string"==typeof n?e+=n:"object"==typeof e&&(e=He(sr(e)))),e}(n,t),r,s)}(e,n,null,!0),jl}function Bf(e,n,t,r,o){let i=null;const s=t.directiveEnd;let a=t.directiveStylingLast;for(-1===a?a=t.directiveStart:a++;a0;){const l=e[o],c=Array.isArray(l),u=c?l[1]:l,d=null===u;let g=t[o+1];g===Z&&(g=d?ne:void 0);let m=d?ld(g,r):u===r?g:void 0;if(c&&!Ul(m)&&(m=ld(l,r)),Ul(m)&&(a=m,s))return a;const v=e[o+1];o=s?lr(v):Fr(v)}if(null!==n){let l=i?n.residualClasses:n.residualStyles;null!=l&&(a=ld(l,r))}return a}function Ul(e){return void 0!==e}function Zo(e,n,t){Rr("NgControlFlow");const r=b(),o=pn(),i=function Gf(e,n){return e[n]}(r,z+e);if(je(r,o,n)){const a=Ae(null);try{if(function Mf(e,n){const t=Ji(e,n);return void 0!==t&&il(t[A],t),t}(i,0),-1!==n){const l=function zf(e,n){return Ui(e,n)}(r[A],z+n),c=No(i,l.tView.ssrId);ys(i,vs(r,l,t,{dehydratedView:c}),0,xo(l,c))}}finally{Ae(a)}}else{const a=function f_(e,n){const t=ke+n;if(t(Jn(!0),ol(r,o,function Im(){return U.lFrame.currentNamespace}()));function wt(e,n,t){const r=b(),o=K(),i=e+z,s=o.firstCreatePass?function TR(e,n,t,r,o){const i=n.consts,s=fn(i,r),a=Ao(n,e,8,"ng-container",s);return null!==s&&Ml(a,s,!0),uf(n,t,a,fn(i,o)),null!==n.queries&&n.queries.elementStart(n,a),a}(i,o,r,n,t):o.data[i];hn(s,!0);const a=vC(o,r,s,e);return r[i]=a,Na()&&al(o,r,a,s),it(a,r),Ta(s)&&(af(o,r,s),sf(o,s,r)),null!=t&&lf(r,s),wt}function bt(){let e=he();const n=K();return qu()?Wu():(e=e.parent,hn(e,!1)),n.firstCreatePass&&(xa(n,e),Lu(e)&&n.queries.elementEnd(e)),bt}let vC=(e,n,t,r)=>(Jn(!0),Nd(n[W],""));function Fe(){return b()}const Qo="en-US";let wC=Qo;function As(e){return!!e&&"function"==typeof e.then}function WC(e){return!!e&&"function"==typeof e.subscribe}function O(e,n,t,r){const o=b(),i=K(),s=he();return function YC(e,n,t,r,o,i,s){const a=Ta(r),c=e.firstCreatePass&&Vy(e),u=n[ye],d=Ly(n);let g=!0;if(3&r.type||s){const _=ct(r,n),D=s?s(_):_,I=d.length,w=s?L=>s(fe(L[r.index])):r.index;let x=null;if(!s&&a&&(x=function SO(e,n,t,r){const o=e.cleanup;if(null!=o)for(let i=0;il?a[l]:null}"string"==typeof s&&(i+=2)}return null}(e,n,o,r.index)),null!==x)(x.__ngLastListenerFn__||x).__ngNextListenerFn__=i,x.__ngLastListenerFn__=i,g=!1;else{i=XC(r,n,u,i,!1);const L=t.listen(D,o,i);d.push(i,L),c&&c.push(o,w,I,I+1)}}else i=XC(r,n,u,i,!1);const m=r.outputs;let v;if(g&&null!==m&&(v=m[o])){const _=v.length;if(_)for(let D=0;D<_;D+=2){const H=n[v[D]][v[D+1]].subscribe(i),ge=d.length;d.push(i,H),c&&c.push(o,r.index,ge,-(ge+1))}}}(i,o,o[W],s,e,n,r),O}function QC(e,n,t,r){try{return dn(6,n,t),!1!==t(r)}catch(o){return El(e,o),!1}finally{dn(7,n,t)}}function XC(e,n,t,r,o){return function i(s){if(s===Function)return r;ls(e.componentOffset>-1?Tt(e.index,n):n);let l=QC(n,t,r,s),c=i.__ngNextListenerFn__;for(;c;)l=QC(n,t,c,s)&&l,c=c.__ngNextListenerFn__;return o&&!1===l&&s.preventDefault(),l}}function k(e=1){return function _1(e){return(U.lFrame.contextLView=function dm(e,n){for(;e>0;)n=n[to],e--;return n}(e,U.lFrame.contextLView))[ye]}(e)}function Vn(e,n,t,r,o){const i=b(),s=jo(i,n,t,r);return s!==Z&&Ot(K(),Ee(),i,e,s,i[W],o,!1),Vn}function xO(){return this._results[Symbol.iterator]()}class Zf{static#e=Symbol.iterator;get changes(){return this._changes??=new Ne}constructor(n=!1){this._emitDistinctChangesOnly=n,this.dirty=!0,this._results=[],this._changesDetected=!1,this._changes=void 0,this.length=0,this.first=void 0,this.last=void 0;const t=Zf.prototype;t[Symbol.iterator]||(t[Symbol.iterator]=xO)}get(n){return this._results[n]}map(n){return this._results.map(n)}filter(n){return this._results.filter(n)}find(n){return this._results.find(n)}reduce(n,t){return this._results.reduce(n,t)}forEach(n){this._results.forEach(n)}some(n){return this._results.some(n)}toArray(){return this._results.slice()}toString(){return this._results.toString()}reset(n,t){this.dirty=!1;const r=function _t(e){return e.flat(Number.POSITIVE_INFINITY)}(n);(this._changesDetected=!function $1(e,n,t){if(e.length!==n.length)return!1;for(let r=0;r{class e{static#e=this.__NG_ELEMENT_ID__=kO}return e})();const RO=jn,OO=class extends RO{constructor(n,t,r){super(),this._declarationLView=n,this._declarationTContainer=t,this.elementRef=r}get ssrId(){return this._declarationTContainer.tView?.ssrId||null}createEmbeddedView(n,t){return this.createEmbeddedViewImpl(n,t)}createEmbeddedViewImpl(n,t,r){const o=vs(this._declarationLView,this._declarationTContainer,n,{injector:t,dehydratedView:r});return new cs(o)}};function kO(){return zl(he(),b())}function zl(e,n){return 4&e.type?new OO(n,e,To(e,n)):null}class Yf{constructor(n){this.queryList=n,this.matches=null}clone(){return new Yf(this.queryList)}setDirty(){this.queryList.setDirty()}}class Qf{constructor(n=[]){this.queries=n}createEmbeddedView(n){const t=n.queries;if(null!==t){const r=null!==n.contentQueries?n.contentQueries[0]:t.length,o=[];for(let i=0;i0)r.push(s[a/2]);else{const c=i[a+1],u=n[-l];for(let d=ke;d(Jn(!0),function rl(e,n){return e.createText(n)}(n[W],r));function Me(e){return Un("",e,""),Me}function Un(e,n,t){const r=b(),o=jo(r,e,n,t);return o!==Z&&function Ln(e,n,t){const r=ji(n,e);!function Ev(e,n,t){e.setValue(n,t)}(e[W],r,t)}(r,ot(),o),Un}function th(e,n,t,r,o){if(e=V(e),Array.isArray(e))for(let i=0;i>20;if(Nr(e)||!e.multi){const m=new Hi(c,o,S),v=rh(l,n,o?u:u+g,d);-1===v?(od(Pa(a,s),i,l),nh(i,e,n.length),n.push(l),a.directiveStart++,a.directiveEnd++,o&&(a.providerIndexes+=1048576),t.push(m),s.push(m)):(t[v]=m,s[v]=m)}else{const m=rh(l,n,u+g,d),v=rh(l,n,u,u+g),D=v>=0&&t[v];if(o&&!D||!o&&!(m>=0&&t[m])){od(Pa(a,s),i,l);const I=function rk(e,n,t,r,o){const i=new Hi(e,t,S);return i.multi=[],i.index=n,i.componentProviders=0,OD(i,o,r&&!t),i}(o?nk:tk,t.length,o,r,c);!o&&D&&(t[v].providerFactory=I),nh(i,e,n.length,0),n.push(l),a.directiveStart++,a.directiveEnd++,o&&(a.providerIndexes+=1048576),t.push(I),s.push(I)}else nh(i,e,m>-1?m:v,OD(t[o?v:m],c,!o&&r));!o&&r&&D&&t[v].componentProviders++}}}function nh(e,n,t,r){const o=Nr(n),i=function sS(e){return!!e.useClass}(n);if(o||i){const l=(i?V(n.useClass):n).prototype.ngOnDestroy;if(l){const c=e.destroyHooks||(e.destroyHooks=[]);if(!o&&n.multi){const u=c.indexOf(t);-1===u?c.push(t,[r,l]):c[u+1].push(r,l)}else c.push(t,l)}}}function OD(e,n,t){return t&&e.componentProviders++,e.multi.push(n)-1}function rh(e,n,t,r){for(let o=t;o{t.providersResolver=(r,o)=>function ek(e,n,t){const r=K();if(r.firstCreatePass){const o=Qt(e);th(t,r.data,r.blueprint,o,!0),th(n,r.data,r.blueprint,o,!1)}}(r,o?o(e):e,n)}}class Vr{}class kD{}class ih extends Vr{constructor(n,t,r){super(),this._parent=t,this._bootstrapComponents=[],this.destroyCbs=[],this.componentFactoryResolver=new Ky(this);const o=et(n);this._bootstrapComponents=xt(o.bootstrap),this._r3Injector=rv(n,t,[{provide:Vr,useValue:this},{provide:yl,useValue:this.componentFactoryResolver},...r],He(n),new Set(["environment"])),this._r3Injector.resolveInjectorInitializers(),this.instance=this._r3Injector.get(n)}get injector(){return this._r3Injector}destroy(){const n=this._r3Injector;!n.destroyed&&n.destroy(),this.destroyCbs.forEach(t=>t()),this.destroyCbs=null}onDestroy(n){this.destroyCbs.push(n)}}class sh extends kD{constructor(n){super(),this.moduleType=n}create(n){return new ih(this.moduleType,n,[])}}class PD extends Vr{constructor(n){super(),this.componentFactoryResolver=new Ky(this),this.instance=null;const t=new yo([...n.providers,{provide:Vr,useValue:this},{provide:yl,useValue:this.componentFactoryResolver}],n.parent||Ya(),n.debugName,new Set(["environment"]));this.injector=t,n.runEnvironmentInitializers&&t.resolveInjectorInitializers()}destroy(){this.injector.destroy()}onDestroy(n){this.injector.onDestroy(n)}}function ah(e,n,t=null){return new PD({providers:e,parent:n,debugName:t,runEnvironmentInitializers:!0}).injector}let sk=(()=>{class e{constructor(t){this._injector=t,this.cachedInjectors=new Map}getOrCreateStandaloneInjector(t){if(!t.standalone)return null;if(!this.cachedInjectors.has(t)){const r=Zm(0,t.type),o=r.length>0?ah([r],this._injector,`Standalone[${t.type.name}]`):null;this.cachedInjectors.set(t,o)}return this.cachedInjectors.get(t)}ngOnDestroy(){try{for(const t of this.cachedInjectors.values())null!==t&&t.destroy()}finally{this.cachedInjectors.clear()}}static#e=this.\u0275prov=R({token:e,providedIn:"environment",factory:()=>new e(P(Nt))})}return e})();function kt(e){Rr("NgStandalone"),e.getStandaloneInjector=n=>n.get(sk).getOrCreateStandaloneInjector(e)}function te(e,n,t){const r=ut()+e,o=b();return o[r]===Z?vn(o,r,t?n.call(t):n()):function _s(e,n){return e[n]}(o,r)}function Ns(e,n,t,r){return function zD(e,n,t,r,o,i){const s=n+t;return je(e,s,o)?vn(e,s+1,i?r.call(i,o):r(o)):xs(e,s+1)}(b(),ut(),e,n,t,r)}function GD(e,n,t,r,o){return function qD(e,n,t,r,o,i,s){const a=n+t;return function kr(e,n,t,r){const o=je(e,n,t);return je(e,n+1,r)||o}(e,a,o,i)?vn(e,a+2,s?r.call(s,o,i):r(o,i)):xs(e,a+2)}(b(),ut(),e,n,t,r,o)}function xs(e,n){const t=e[n];return t===Z?void 0:t}let dw=(()=>{class e{log(t){console.log(t)}warn(t){console.warn(t)}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=R({token:e,factory:e.\u0275fac,providedIn:"platform"})}return e})();class Kk{constructor(n,t){this.ngModuleFactory=n,this.componentFactories=t}}let fw=(()=>{class e{compileModuleSync(t){return new sh(t)}compileModuleAsync(t){return Promise.resolve(this.compileModuleSync(t))}compileModuleAndAllComponentsSync(t){const r=this.compileModuleSync(t),i=xt(et(t).declarations).reduce((s,a)=>{const l=Q(a);return l&&s.push(new fs(l)),s},[]);return new Kk(r,i)}compileModuleAndAllComponentsAsync(t){return Promise.resolve(this.compileModuleAndAllComponentsSync(t))}clearCache(){}clearCacheFor(t){}getModuleId(t){}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=R({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})(),Ko=(()=>{class e{constructor(){this.taskId=0,this.pendingTasks=new Set,this.hasPendingTasks=new Ft(!1)}get _hasPendingTasks(){return this.hasPendingTasks.value}add(){this._hasPendingTasks||this.hasPendingTasks.next(!0);const t=this.taskId++;return this.pendingTasks.add(t),t}remove(t){this.pendingTasks.delete(t),0===this.pendingTasks.size&&this._hasPendingTasks&&this.hasPendingTasks.next(!1)}ngOnDestroy(){this.pendingTasks.clear(),this._hasPendingTasks&&this.hasPendingTasks.next(!1)}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=R({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();const vw=new N(""),Ql=new N("");let mh,ph=(()=>{class e{constructor(t,r,o){this._ngZone=t,this.registry=r,this._pendingCount=0,this._isZoneStable=!0,this._callbacks=[],this.taskTrackingZone=null,mh||(function MP(e){mh=e}(o),o.addToWindow(r)),this._watchAngularEvents(),t.run(()=>{this.taskTrackingZone=typeof Zone>"u"?null:Zone.current.get("TaskTrackingZone")})}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._isZoneStable=!1}}),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.subscribe({next:()=>{se.assertNotInAngularZone(),queueMicrotask(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}})})}increasePendingRequestCount(){return this._pendingCount+=1,this._pendingCount}decreasePendingRequestCount(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error("pending async requests below zero");return this._runCallbacksIfReady(),this._pendingCount}isStable(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())queueMicrotask(()=>{for(;0!==this._callbacks.length;){let t=this._callbacks.pop();clearTimeout(t.timeoutId),t.doneCb()}});else{let t=this.getPendingTasks();this._callbacks=this._callbacks.filter(r=>!r.updateCb||!r.updateCb(t)||(clearTimeout(r.timeoutId),!1))}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(t=>({source:t.source,creationLocation:t.creationLocation,data:t.data})):[]}addCallback(t,r,o){let i=-1;r&&r>0&&(i=setTimeout(()=>{this._callbacks=this._callbacks.filter(s=>s.timeoutId!==i),t()},r)),this._callbacks.push({doneCb:t,timeoutId:i,updateCb:o})}whenStable(t,r,o){if(o&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is "zone.js/plugins/task-tracking" loaded?');this.addCallback(t,r,o),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}registerApplication(t){this.registry.registerApplication(t,this)}unregisterApplication(t){this.registry.unregisterApplication(t)}findProviders(t,r,o){return[]}static#e=this.\u0275fac=function(r){return new(r||e)(P(se),P(gh),P(Ql))};static#t=this.\u0275prov=R({token:e,factory:e.\u0275fac})}return e})(),gh=(()=>{class e{constructor(){this._applications=new Map}registerApplication(t,r){this._applications.set(t,r)}unregisterApplication(t){this._applications.delete(t)}unregisterAllApplications(){this._applications.clear()}getTestability(t){return this._applications.get(t)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(t,r=!0){return mh?.findTestabilityInTree(this,t,r)??null}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=R({token:e,factory:e.\u0275fac,providedIn:"platform"})}return e})();const vh=new N("");let yh=(()=>{class e{constructor(){this.initialized=!1,this.done=!1,this.donePromise=new Promise((t,r)=>{this.resolve=t,this.reject=r}),this.appInits=T(vh,{optional:!0})??[]}runInitializers(){if(this.initialized)return;const t=[];for(const o of this.appInits){const i=o();if(As(i))t.push(i);else if(WC(i)){const s=new Promise((a,l)=>{i.subscribe({complete:a,error:l})});t.push(s)}}const r=()=>{this.done=!0,this.resolve()};Promise.all(t).then(()=>{r()}).catch(o=>{this.reject(o)}),0===t.length&&r(),this.initialized=!0}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=R({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();const _h=new N("");let jr=(()=>{class e{constructor(){this._bootstrapListeners=[],this._runningTick=!1,this._destroyed=!1,this._destroyListeners=[],this._views=[],this.internalErrorHandler=T(_y),this.afterRenderEffectManager=T(ds),this.componentTypes=[],this.components=[],this.isStable=T(Ko).hasPendingTasks.pipe(J(t=>!t)),this._injector=T(Nt)}get destroyed(){return this._destroyed}get injector(){return this._injector}bootstrap(t,r){const o=t instanceof ry;if(!this._injector.get(yh).done)throw!o&&function Qn(e){const n=Q(e)||Ge(e)||Je(e);return null!==n&&n.standalone}(t),new M(405,!1);let s;s=o?t:this._injector.get(yl).resolveComponentFactory(t),this.componentTypes.push(s.componentType);const a=function TP(e){return e.isBoundToModule}(s)?void 0:this._injector.get(Vr),c=s.create(Ct.NULL,[],r||s.selector,a),u=c.location.nativeElement,d=c.injector.get(vw,null);return d?.registerApplication(u),c.onDestroy(()=>{this.detachView(c.hostView),Xl(this.components,c),d?.unregisterApplication(u)}),this._loadComponent(c),c}tick(){if(this._runningTick)throw new M(101,!1);try{this._runningTick=!0;for(let t of this._views)t.detectChanges()}catch(t){this.internalErrorHandler(t)}finally{try{this.afterRenderEffectManager.execute()}catch(t){this.internalErrorHandler(t)}this._runningTick=!1}}attachView(t){const r=t;this._views.push(r),r.attachToAppRef(this)}detachView(t){const r=t;Xl(this._views,r),r.detachFromAppRef()}_loadComponent(t){this.attachView(t.hostView),this.tick(),this.components.push(t);const r=this._injector.get(_h,[]);[...this._bootstrapListeners,...r].forEach(o=>o(t))}ngOnDestroy(){if(!this._destroyed)try{this._destroyListeners.forEach(t=>t()),this._views.slice().forEach(t=>t.destroy())}finally{this._destroyed=!0,this._views=[],this._bootstrapListeners=[],this._destroyListeners=[]}}onDestroy(t){return this._destroyListeners.push(t),()=>Xl(this._destroyListeners,t)}destroy(){if(this._destroyed)throw new M(406,!1);const t=this._injector;t.destroy&&!t.destroyed&&t.destroy()}get viewCount(){return this._views.length}warnIfDestroyed(){}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=R({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();function Xl(e,n){const t=e.indexOf(n);t>-1&&e.splice(t,1)}let NP=(()=>{class e{constructor(){this.zone=T(se),this.applicationRef=T(jr)}initialize(){this._onMicrotaskEmptySubscription||(this._onMicrotaskEmptySubscription=this.zone.onMicrotaskEmpty.subscribe({next:()=>{this.zone.run(()=>{this.applicationRef.tick()})}}))}ngOnDestroy(){this._onMicrotaskEmptySubscription?.unsubscribe()}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=R({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();function ww(e){return[{provide:se,useFactory:e},{provide:Ar,multi:!0,useFactory:()=>{const n=T(NP,{optional:!0});return()=>n.initialize()}},{provide:Ar,multi:!0,useFactory:()=>{const n=T(OP);return()=>{n.initialize()}}},{provide:_y,useFactory:xP}]}function xP(){const e=T(se),n=T(Fn);return t=>e.runOutsideAngular(()=>n.handleError(t))}function RP(e){return qa([[],ww(()=>new se(function bw(e){return{enableLongStackTrace:!1,shouldCoalesceEventChangeDetection:e?.eventCoalescing??!1,shouldCoalesceRunChangeDetection:e?.runCoalescing??!1}}(e)))])}let OP=(()=>{class e{constructor(){this.subscription=new gt,this.initialized=!1,this.zone=T(se),this.pendingTasks=T(Ko)}initialize(){if(this.initialized)return;this.initialized=!0;let t=null;!this.zone.isStable&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(t=this.pendingTasks.add()),this.zone.runOutsideAngular(()=>{this.subscription.add(this.zone.onStable.subscribe(()=>{se.assertNotInAngularZone(),queueMicrotask(()=>{null!==t&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(this.pendingTasks.remove(t),t=null)})}))}),this.subscription.add(this.zone.onUnstable.subscribe(()=>{se.assertInAngularZone(),t??=this.pendingTasks.add()}))}ngOnDestroy(){this.subscription.unsubscribe()}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=R({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();const Bn=new N("",{providedIn:"root",factory:()=>T(Bn,X.Optional|X.SkipSelf)||function kP(){return typeof $localize<"u"&&$localize.locale||Qo}()}),Ch=new N("");let cr=null;let GP=(()=>{class e{constructor(t){}static#e=this.\u0275fac=function(r){return new(r||e)(P(jr))};static#t=this.\u0275mod=Yn({type:e});static#n=this.\u0275inj=An({})}return e})();function iF(e){try{const{rootComponent:n,appProviders:t,platformProviders:r}=e,o=function jP(e=[]){if(cr)return cr;const n=function Mw(e=[],n){return Ct.create({name:n,providers:[{provide:pd,useValue:"platform"},{provide:Ch,useValue:new Set([()=>cr=null])},...e]})}(e);return cr=n,function yw(){!function qM(e){yg=e}(()=>{throw new M(600,!1)})}(),function Sw(e){e.get(iv,null)?.forEach(t=>t())}(n),n}(r),i=[RP(),...t||[]],a=new PD({providers:i,parent:o,debugName:"",runEnvironmentInitializers:!1}).injector,l=a.get(se);return l.run(()=>{a.resolveInjectorInitializers();const c=a.get(Fn,null);let u;l.runOutsideAngular(()=>{u=l.onError.subscribe({next:m=>{c.handleError(m)}})});const d=()=>a.destroy(),g=o.get(Ch);return g.add(d),a.onDestroy(()=>{u.unsubscribe(),g.delete(d)}),function _w(e,n,t){try{const r=t();return As(r)?r.catch(o=>{throw n.runOutsideAngular(()=>e.handleError(o)),o}):r}catch(r){throw n.runOutsideAngular(()=>e.handleError(r)),r}}(c,l,()=>{const m=a.get(yh);return m.runInitializers(),m.donePromise.then(()=>{!function bC(e){mt(e,"Expected localeId to be defined"),"string"==typeof e&&(wC=e.toLowerCase().replace(/_/g,"-"))}(a.get(Bn,Qo)||Qo);const _=a.get(jr);return void 0!==n&&_.bootstrap(n),_})})})}catch(n){return Promise.reject(n)}}function ti(e){return"boolean"==typeof e?e:null!=e&&"false"!==e}const Ce_apiBaseUrl="https://www.palmmedia.de/api/";let Xw=null;function ur(){return Xw}class DF{}const It=new N("");let Th=(()=>{class e{historyGo(t){throw new Error("")}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=R({token:e,factory:()=>T(bF),providedIn:"platform"})}return e})();const wF=new N("");let bF=(()=>{class e extends Th{constructor(){super(),this._doc=T(It),this._location=window.location,this._history=window.history}getBaseHrefFromDOM(){return ur().getBaseHref(this._doc)}onPopState(t){const r=ur().getGlobalEventTarget(this._doc,"window");return r.addEventListener("popstate",t,!1),()=>r.removeEventListener("popstate",t)}onHashChange(t){const r=ur().getGlobalEventTarget(this._doc,"window");return r.addEventListener("hashchange",t,!1),()=>r.removeEventListener("hashchange",t)}get href(){return this._location.href}get protocol(){return this._location.protocol}get hostname(){return this._location.hostname}get port(){return this._location.port}get pathname(){return this._location.pathname}get search(){return this._location.search}get hash(){return this._location.hash}set pathname(t){this._location.pathname=t}pushState(t,r,o){this._history.pushState(t,r,o)}replaceState(t,r,o){this._history.replaceState(t,r,o)}forward(){this._history.forward()}back(){this._history.back()}historyGo(t=0){this._history.go(t)}getState(){return this._history.state}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=R({token:e,factory:()=>new e,providedIn:"platform"})}return e})();function Ah(e,n){if(0==e.length)return n;if(0==n.length)return e;let t=0;return e.endsWith("/")&&t++,n.startsWith("/")&&t++,2==t?e+n.substring(1):1==t?e+n:e+"/"+n}function Jw(e){const n=e.match(/#|\?|$/),t=n&&n.index||e.length;return e.slice(0,t-("/"===e[t-1]?1:0))+e.slice(t)}function $n(e){return e&&"?"!==e[0]?"?"+e:e}let Br=(()=>{class e{historyGo(t){throw new Error("")}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=R({token:e,factory:()=>T(eb),providedIn:"root"})}return e})();const Kw=new N("");let eb=(()=>{class e extends Br{constructor(t,r){super(),this._platformLocation=t,this._removeListenerFns=[],this._baseHref=r??this._platformLocation.getBaseHrefFromDOM()??T(It).location?.origin??""}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(t){this._removeListenerFns.push(this._platformLocation.onPopState(t),this._platformLocation.onHashChange(t))}getBaseHref(){return this._baseHref}prepareExternalUrl(t){return Ah(this._baseHref,t)}path(t=!1){const r=this._platformLocation.pathname+$n(this._platformLocation.search),o=this._platformLocation.hash;return o&&t?`${r}${o}`:r}pushState(t,r,o,i){const s=this.prepareExternalUrl(o+$n(i));this._platformLocation.pushState(t,r,s)}replaceState(t,r,o,i){const s=this.prepareExternalUrl(o+$n(i));this._platformLocation.replaceState(t,r,s)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(t=0){this._platformLocation.historyGo?.(t)}static#e=this.\u0275fac=function(r){return new(r||e)(P(Th),P(Kw,8))};static#t=this.\u0275prov=R({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})(),EF=(()=>{class e extends Br{constructor(t,r){super(),this._platformLocation=t,this._baseHref="",this._removeListenerFns=[],null!=r&&(this._baseHref=r)}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(t){this._removeListenerFns.push(this._platformLocation.onPopState(t),this._platformLocation.onHashChange(t))}getBaseHref(){return this._baseHref}path(t=!1){const r=this._platformLocation.hash??"#";return r.length>0?r.substring(1):r}prepareExternalUrl(t){const r=Ah(this._baseHref,t);return r.length>0?"#"+r:r}pushState(t,r,o,i){let s=this.prepareExternalUrl(o+$n(i));0==s.length&&(s=this._platformLocation.pathname),this._platformLocation.pushState(t,r,s)}replaceState(t,r,o,i){let s=this.prepareExternalUrl(o+$n(i));0==s.length&&(s=this._platformLocation.pathname),this._platformLocation.replaceState(t,r,s)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(t=0){this._platformLocation.historyGo?.(t)}static#e=this.\u0275fac=function(r){return new(r||e)(P(Th),P(Kw,8))};static#t=this.\u0275prov=R({token:e,factory:e.\u0275fac})}return e})(),Vs=(()=>{class e{constructor(t){this._subject=new Ne,this._urlChangeListeners=[],this._urlChangeSubscription=null,this._locationStrategy=t;const r=this._locationStrategy.getBaseHref();this._basePath=function SF(e){if(new RegExp("^(https?:)?//").test(e)){const[,t]=e.split(/\/\/[^\/]+/);return t}return e}(Jw(tb(r))),this._locationStrategy.onPopState(o=>{this._subject.emit({url:this.path(!0),pop:!0,state:o.state,type:o.type})})}ngOnDestroy(){this._urlChangeSubscription?.unsubscribe(),this._urlChangeListeners=[]}path(t=!1){return this.normalize(this._locationStrategy.path(t))}getState(){return this._locationStrategy.getState()}isCurrentPathEqualTo(t,r=""){return this.path()==this.normalize(t+$n(r))}normalize(t){return e.stripTrailingSlash(function MF(e,n){if(!e||!n.startsWith(e))return n;const t=n.substring(e.length);return""===t||["/",";","?","#"].includes(t[0])?t:n}(this._basePath,tb(t)))}prepareExternalUrl(t){return t&&"/"!==t[0]&&(t="/"+t),this._locationStrategy.prepareExternalUrl(t)}go(t,r="",o=null){this._locationStrategy.pushState(o,"",t,r),this._notifyUrlChangeListeners(this.prepareExternalUrl(t+$n(r)),o)}replaceState(t,r="",o=null){this._locationStrategy.replaceState(o,"",t,r),this._notifyUrlChangeListeners(this.prepareExternalUrl(t+$n(r)),o)}forward(){this._locationStrategy.forward()}back(){this._locationStrategy.back()}historyGo(t=0){this._locationStrategy.historyGo?.(t)}onUrlChange(t){return this._urlChangeListeners.push(t),this._urlChangeSubscription??=this.subscribe(r=>{this._notifyUrlChangeListeners(r.url,r.state)}),()=>{const r=this._urlChangeListeners.indexOf(t);this._urlChangeListeners.splice(r,1),0===this._urlChangeListeners.length&&(this._urlChangeSubscription?.unsubscribe(),this._urlChangeSubscription=null)}}_notifyUrlChangeListeners(t="",r){this._urlChangeListeners.forEach(o=>o(t,r))}subscribe(t,r,o){return this._subject.subscribe({next:t,error:r,complete:o})}static#e=this.normalizeQueryParams=$n;static#t=this.joinWithSlash=Ah;static#n=this.stripTrailingSlash=Jw;static#r=this.\u0275fac=function(r){return new(r||e)(P(Br))};static#o=this.\u0275prov=R({token:e,factory:()=>function IF(){return new Vs(P(Br))}(),providedIn:"root"})}return e})();function tb(e){return e.replace(/\/index.html$/,"")}function ub(e,n){n=encodeURIComponent(n);for(const t of e.split(";")){const r=t.indexOf("="),[o,i]=-1==r?[t,""]:[t.slice(0,r),t.slice(r+1)];if(o.trim()===n)return decodeURIComponent(i)}return null}const jh=/\s+/,db=[];let vc=(()=>{class e{constructor(t,r){this._ngEl=t,this._renderer=r,this.initialClasses=db,this.stateMap=new Map}set klass(t){this.initialClasses=null!=t?t.trim().split(jh):db}set ngClass(t){this.rawClass="string"==typeof t?t.trim().split(jh):t}ngDoCheck(){for(const r of this.initialClasses)this._updateState(r,!0);const t=this.rawClass;if(Array.isArray(t)||t instanceof Set)for(const r of t)this._updateState(r,!0);else if(null!=t)for(const r of Object.keys(t))this._updateState(r,!!t[r]);this._applyStateDiff()}_updateState(t,r){const o=this.stateMap.get(t);void 0!==o?(o.enabled!==r&&(o.changed=!0,o.enabled=r),o.touched=!0):this.stateMap.set(t,{enabled:r,changed:!0,touched:!0})}_applyStateDiff(){for(const t of this.stateMap){const r=t[0],o=t[1];o.changed?(this._toggleClass(r,o.enabled),o.changed=!1):o.touched||(o.enabled&&this._toggleClass(r,!1),this.stateMap.delete(r)),o.touched=!1}}_toggleClass(t,r){(t=t.trim()).length>0&&t.split(jh).forEach(o=>{r?this._renderer.addClass(this._ngEl.nativeElement,o):this._renderer.removeClass(this._ngEl.nativeElement,o)})}static#e=this.\u0275fac=function(r){return new(r||e)(S(Rt),S(Pn))};static#t=this.\u0275dir=$({type:e,selectors:[["","ngClass",""]],inputs:{klass:[be.None,"class","klass"],ngClass:"ngClass"},standalone:!0})}return e})();class f2{constructor(n,t,r,o){this.$implicit=n,this.ngForOf=t,this.index=r,this.count=o}get first(){return 0===this.index}get last(){return this.index===this.count-1}get even(){return this.index%2==0}get odd(){return!this.even}}let Uh=(()=>{class e{set ngForOf(t){this._ngForOf=t,this._ngForOfDirty=!0}set ngForTrackBy(t){this._trackByFn=t}get ngForTrackBy(){return this._trackByFn}constructor(t,r,o){this._viewContainer=t,this._template=r,this._differs=o,this._ngForOf=null,this._ngForOfDirty=!0,this._differ=null}set ngForTemplate(t){t&&(this._template=t)}ngDoCheck(){if(this._ngForOfDirty){this._ngForOfDirty=!1;const t=this._ngForOf;!this._differ&&t&&(this._differ=this._differs.find(t).create(this.ngForTrackBy))}if(this._differ){const t=this._differ.diff(this._ngForOf);t&&this._applyChanges(t)}}_applyChanges(t){const r=this._viewContainer;t.forEachOperation((o,i,s)=>{if(null==o.previousIndex)r.createEmbeddedView(this._template,new f2(o.item,this._ngForOf,-1,-1),null===s?void 0:s);else if(null==s)r.remove(null===i?void 0:i);else if(null!==i){const a=r.get(i);r.move(a,s),hb(a,o)}});for(let o=0,i=r.length;o{hb(r.get(o.currentIndex),o)})}static ngTemplateContextGuard(t,r){return!0}static#e=this.\u0275fac=function(r){return new(r||e)(S(Xt),S(jn),S(tf))};static#t=this.\u0275dir=$({type:e,selectors:[["","ngFor","","ngForOf",""]],inputs:{ngForOf:"ngForOf",ngForTrackBy:"ngForTrackBy",ngForTemplate:"ngForTemplate"},standalone:!0})}return e})();function hb(e,n){e.context.$implicit=n.item}let Bh=(()=>{class e{constructor(t,r){this._viewContainer=t,this._context=new h2,this._thenTemplateRef=null,this._elseTemplateRef=null,this._thenViewRef=null,this._elseViewRef=null,this._thenTemplateRef=r}set ngIf(t){this._context.$implicit=this._context.ngIf=t,this._updateView()}set ngIfThen(t){pb("ngIfThen",t),this._thenTemplateRef=t,this._thenViewRef=null,this._updateView()}set ngIfElse(t){pb("ngIfElse",t),this._elseTemplateRef=t,this._elseViewRef=null,this._updateView()}_updateView(){this._context.$implicit?this._thenViewRef||(this._viewContainer.clear(),this._elseViewRef=null,this._thenTemplateRef&&(this._thenViewRef=this._viewContainer.createEmbeddedView(this._thenTemplateRef,this._context))):this._elseViewRef||(this._viewContainer.clear(),this._thenViewRef=null,this._elseTemplateRef&&(this._elseViewRef=this._viewContainer.createEmbeddedView(this._elseTemplateRef,this._context)))}static ngTemplateContextGuard(t,r){return!0}static#e=this.\u0275fac=function(r){return new(r||e)(S(Xt),S(jn))};static#t=this.\u0275dir=$({type:e,selectors:[["","ngIf",""]],inputs:{ngIf:"ngIf",ngIfThen:"ngIfThen",ngIfElse:"ngIfElse"},standalone:!0})}return e})();class h2{constructor(){this.$implicit=null,this.ngIf=null}}function pb(e,n){if(n&&!n.createEmbeddedView)throw new Error(`${e} must be a TemplateRef, but received '${He(n)}'.`)}let j2=(()=>{class e{static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275mod=Yn({type:e});static#n=this.\u0275inj=An({})}return e})();const vb="browser";function yb(e){return"server"===e}let G2=(()=>{class e{static#e=this.\u0275prov=R({token:e,providedIn:"root",factory:()=>function H2(e){return e===vb}(T(nr))?new z2(T(It),window):new W2})}return e})();class z2{constructor(n,t){this.document=n,this.window=t,this.offset=()=>[0,0]}setOffset(n){this.offset=Array.isArray(n)?()=>n:n}getScrollPosition(){return[this.window.scrollX,this.window.scrollY]}scrollToPosition(n){this.window.scrollTo(n[0],n[1])}scrollToAnchor(n){const t=function q2(e,n){const t=e.getElementById(n)||e.getElementsByName(n)[0];if(t)return t;if("function"==typeof e.createTreeWalker&&e.body&&"function"==typeof e.body.attachShadow){const r=e.createTreeWalker(e.body,NodeFilter.SHOW_ELEMENT);let o=r.currentNode;for(;o;){const i=o.shadowRoot;if(i){const s=i.getElementById(n)||i.querySelector(`[name="${n}"]`);if(s)return s}o=r.nextNode()}}return null}(this.document,n);t&&(this.scrollToElement(t),t.focus())}setHistoryScrollRestoration(n){this.window.history.scrollRestoration=n}scrollToElement(n){const t=n.getBoundingClientRect(),r=t.left+this.window.pageXOffset,o=t.top+this.window.pageYOffset,i=this.offset();this.window.scrollTo(r-i[0],o-i[1])}}class W2{setOffset(n){}getScrollPosition(){return[0,0]}scrollToPosition(n){}scrollToAnchor(n){}setHistoryScrollRestoration(n){}}class _b{}function dr(e){return this instanceof dr?(this.v=e,this):new dr(e)}function Mb(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,n=e[Symbol.asyncIterator];return n?n.call(e):(e=function Xh(e){var n="function"==typeof Symbol&&Symbol.iterator,t=n&&e[n],r=0;if(t)return t.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(n?"Object is not iterable.":"Symbol.iterator is not defined.")}(e),t={},r("next"),r("throw"),r("return"),t[Symbol.asyncIterator]=function(){return this},t);function r(i){t[i]=e[i]&&function(s){return new Promise(function(a,l){!function o(i,s,a,l){Promise.resolve(l).then(function(c){i({value:c,done:a})},s)}(a,l,(s=e[i](s)).done,s.value)})}}}"function"==typeof SuppressedError&&SuppressedError;const Sb=e=>e&&"number"==typeof e.length&&"function"!=typeof e;function Tb(e){return we(e?.then)}function Ab(e){return we(e[Cu])}function Nb(e){return Symbol.asyncIterator&&we(e?.[Symbol.asyncIterator])}function xb(e){return new TypeError(`You provided ${null!==e&&"object"==typeof e?"an invalid object":`'${e}'`} where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.`)}const Rb=function VL(){return"function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator"}();function Ob(e){return we(e?.[Rb])}function kb(e){return function Ib(e,n,t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var o,r=t.apply(e,n||[]),i=[];return o={},s("next"),s("throw"),s("return"),o[Symbol.asyncIterator]=function(){return this},o;function s(g){r[g]&&(o[g]=function(m){return new Promise(function(v,_){i.push([g,m,v,_])>1||a(g,m)})})}function a(g,m){try{!function l(g){g.value instanceof dr?Promise.resolve(g.value.v).then(c,u):d(i[0][2],g)}(r[g](m))}catch(v){d(i[0][3],v)}}function c(g){a("next",g)}function u(g){a("throw",g)}function d(g,m){g(m),i.shift(),i.length&&a(i[0][0],i[0][1])}}(this,arguments,function*(){const t=e.getReader();try{for(;;){const{value:r,done:o}=yield dr(t.read());if(o)return yield dr(void 0);yield yield dr(r)}}finally{t.releaseLock()}})}function Pb(e){return we(e?.getReader)}function Cn(e){if(e instanceof Ve)return e;if(null!=e){if(Ab(e))return function jL(e){return new Ve(n=>{const t=e[Cu]();if(we(t.subscribe))return t.subscribe(n);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}(e);if(Sb(e))return function UL(e){return new Ve(n=>{for(let t=0;t{e.then(t=>{n.closed||(n.next(t),n.complete())},t=>n.error(t)).then(null,Eg)})}(e);if(Nb(e))return Fb(e);if(Ob(e))return function $L(e){return new Ve(n=>{for(const t of e)if(n.next(t),n.closed)return;n.complete()})}(e);if(Pb(e))return function HL(e){return Fb(kb(e))}(e)}throw xb(e)}function Fb(e){return new Ve(n=>{(function GL(e,n){var t,r,o,i;return function bb(e,n,t,r){return new(t||(t=Promise))(function(i,s){function a(u){try{c(r.next(u))}catch(d){s(d)}}function l(u){try{c(r.throw(u))}catch(d){s(d)}}function c(u){u.done?i(u.value):function o(i){return i instanceof t?i:new t(function(s){s(i)})}(u.value).then(a,l)}c((r=r.apply(e,n||[])).next())})}(this,void 0,void 0,function*(){try{for(t=Mb(e);!(r=yield t.next()).done;)if(n.next(r.value),n.closed)return}catch(s){o={error:s}}finally{try{r&&!r.done&&(i=t.return)&&(yield i.call(t))}finally{if(o)throw o.error}}n.complete()})})(e,n).catch(t=>n.error(t))})}function zn(e,n,t,r=0,o=!1){const i=n.schedule(function(){t(),o?e.add(this.schedule(null,r)):this.unsubscribe()},r);if(e.add(i),!o)return i}function Lb(e,n=0){return Xe((t,r)=>{t.subscribe($e(r,o=>zn(r,e,()=>r.next(o),n),()=>zn(r,e,()=>r.complete(),n),o=>zn(r,e,()=>r.error(o),n)))})}function Vb(e,n=0){return Xe((t,r)=>{r.add(e.schedule(()=>t.subscribe(r),n))})}function jb(e,n){if(!e)throw new Error("Iterable cannot be null");return new Ve(t=>{zn(t,n,()=>{const r=e[Symbol.asyncIterator]();zn(t,n,()=>{r.next().then(o=>{o.done?t.complete():t.next(o.value)})},0,!0)})})}function Ye(e,n){return n?function QL(e,n){if(null!=e){if(Ab(e))return function zL(e,n){return Cn(e).pipe(Vb(n),Lb(n))}(e,n);if(Sb(e))return function WL(e,n){return new Ve(t=>{let r=0;return n.schedule(function(){r===e.length?t.complete():(t.next(e[r++]),t.closed||this.schedule())})})}(e,n);if(Tb(e))return function qL(e,n){return Cn(e).pipe(Vb(n),Lb(n))}(e,n);if(Nb(e))return jb(e,n);if(Ob(e))return function ZL(e,n){return new Ve(t=>{let r;return zn(t,n,()=>{r=e[Rb](),zn(t,n,()=>{let o,i;try{({value:o,done:i}=r.next())}catch(s){return void t.error(s)}i?t.complete():t.next(o)},0,!0)}),()=>we(r?.return)&&r.return()})}(e,n);if(Pb(e))return function YL(e,n){return jb(kb(e),n)}(e,n)}throw xb(e)}(e,n):Cn(e)}function Jh(e){return e[e.length-1]}function Ub(e){return we(Jh(e))?e.pop():void 0}function Cc(e){return function XL(e){return e&&we(e.schedule)}(Jh(e))?e.pop():void 0}function B(...e){return Ye(e,Cc(e))}const{isArray:JL}=Array,{getPrototypeOf:KL,prototype:eV,keys:tV}=Object;function Bb(e){if(1===e.length){const n=e[0];if(JL(n))return{args:n,keys:null};if(function nV(e){return e&&"object"==typeof e&&KL(e)===eV}(n)){const t=tV(n);return{args:t.map(r=>n[r]),keys:t}}}return{args:e,keys:null}}const{isArray:rV}=Array;function $b(e){return J(n=>function oV(e,n){return rV(n)?e(...n):e(n)}(e,n))}function Hb(e,n){return e.reduce((t,r,o)=>(t[r]=n[o],t),{})}function Kh(...e){const n=Cc(e),t=Ub(e),{args:r,keys:o}=Bb(e);if(0===r.length)return Ye([],n);const i=new Ve(function iV(e,n,t=wr){return r=>{Gb(n,()=>{const{length:o}=e,i=new Array(o);let s=o,a=o;for(let l=0;l{const c=Ye(e[l],n);let u=!1;c.subscribe($e(r,d=>{i[l]=d,u||(u=!0,a--),a||r.next(t(i.slice()))},()=>{--s||r.complete()}))},r)},r)}}(r,n,o?s=>Hb(o,s):wr));return t?i.pipe($b(t)):i}function Gb(e,n,t){e?zn(t,e,n):n()}const Dc=du(e=>function(){e(this),this.name="EmptyError",this.message="no elements in sequence"});function Ke(e,n,t=1/0){return we(n)?Ke((r,o)=>J((i,s)=>n(r,i,o,s))(Cn(e(r,o))),t):("number"==typeof n&&(t=n),Xe((r,o)=>function sV(e,n,t,r,o,i,s,a){const l=[];let c=0,u=0,d=!1;const g=()=>{d&&!l.length&&!c&&n.complete()},m=_=>c{i&&n.next(_),c++;let D=!1;Cn(t(_,u++)).subscribe($e(n,I=>{o?.(I),i?m(I):n.next(I)},()=>{D=!0},void 0,()=>{if(D)try{for(c--;l.length&&cv(I)):v(I)}g()}catch(I){n.error(I)}}))};return e.subscribe($e(n,m,()=>{d=!0,g()})),()=>{a?.()}}(r,o,e,t)))}function Bs(e=1/0){return Ke(wr,e)}function ep(...e){return function aV(){return Bs(1)}()(Ye(e,Cc(e)))}function zb(e){return new Ve(n=>{Cn(e()).subscribe(n)})}function wc(e,n){const t=we(e)?e:()=>e,r=o=>o.error(t());return new Ve(n?o=>n.schedule(r,0,o):r)}const qn=new Ve(e=>e.complete());function tp(){return Xe((e,n)=>{let t=null;e._refCount++;const r=$e(n,void 0,void 0,void 0,()=>{if(!e||e._refCount<=0||0<--e._refCount)return void(t=null);const o=e._connection,i=t;t=null,o&&(!i||o===i)&&o.unsubscribe(),n.unsubscribe()});e.subscribe(r),r.closed||(t=e.connect())})}class qb extends Ve{constructor(n,t){super(),this.source=n,this.subjectFactory=t,this._subject=null,this._refCount=0,this._connection=null,Tg(n)&&(this.lift=n.lift)}_subscribe(n){return this.getSubject().subscribe(n)}getSubject(){const n=this._subject;return(!n||n.isStopped)&&(this._subject=this.subjectFactory()),this._subject}_teardown(){this._refCount=0;const{_connection:n}=this;this._subject=this._connection=null,n?.unsubscribe()}connect(){let n=this._connection;if(!n){n=this._connection=new gt;const t=this.getSubject();n.add(this.source.subscribe($e(t,void 0,()=>{this._teardown(),t.complete()},r=>{this._teardown(),t.error(r)},()=>this._teardown()))),n.closed&&(this._connection=null,n=gt.EMPTY)}return n}refCount(){return tp()(this)}}function rn(e,n){return Xe((t,r)=>{let o=null,i=0,s=!1;const a=()=>s&&!o&&r.complete();t.subscribe($e(r,l=>{o?.unsubscribe();let c=0;const u=i++;Cn(e(l,u)).subscribe(o=$e(r,d=>r.next(n?n(l,d,u,c++):d),()=>{o=null,a()}))},()=>{s=!0,a()}))})}function ri(e){return e<=0?()=>qn:Xe((n,t)=>{let r=0;n.subscribe($e(t,o=>{++r<=e&&(t.next(o),e<=r&&t.complete())}))})}function on(e,n){return Xe((t,r)=>{let o=0;t.subscribe($e(r,i=>e.call(n,i,o++)&&r.next(i)))})}function bc(e){return Xe((n,t)=>{let r=!1;n.subscribe($e(t,o=>{r=!0,t.next(o)},()=>{r||t.next(e),t.complete()}))})}function Wb(e=uV){return Xe((n,t)=>{let r=!1;n.subscribe($e(t,o=>{r=!0,t.next(o)},()=>r?t.complete():t.error(e())))})}function uV(){return new Dc}function $r(e,n){const t=arguments.length>=2;return r=>r.pipe(e?on((o,i)=>e(o,i,r)):wr,ri(1),t?bc(n):Wb(()=>new Dc))}function oi(e,n){return we(n)?Ke(e,n,1):Ke(e,1)}function st(e,n,t){const r=we(e)||n||t?{next:e,error:n,complete:t}:e;return r?Xe((o,i)=>{var s;null===(s=r.subscribe)||void 0===s||s.call(r);let a=!0;o.subscribe($e(i,l=>{var c;null===(c=r.next)||void 0===c||c.call(r,l),i.next(l)},()=>{var l;a=!1,null===(l=r.complete)||void 0===l||l.call(r),i.complete()},l=>{var c;a=!1,null===(c=r.error)||void 0===c||c.call(r,l),i.error(l)},()=>{var l,c;a&&(null===(l=r.unsubscribe)||void 0===l||l.call(r)),null===(c=r.finalize)||void 0===c||c.call(r)}))}):wr}function ii(e){return Xe((n,t)=>{let i,r=null,o=!1;r=n.subscribe($e(t,void 0,void 0,s=>{i=Cn(e(s,ii(e)(n))),r?(r.unsubscribe(),r=null,i.subscribe(t)):o=!0})),o&&(r.unsubscribe(),r=null,i.subscribe(t))})}function np(e){return e<=0?()=>qn:Xe((n,t)=>{let r=[];n.subscribe($e(t,o=>{r.push(o),e{for(const o of r)t.next(o);t.complete()},void 0,()=>{r=null}))})}function $s(e){return Xe((n,t)=>{try{n.subscribe(t)}finally{t.add(e)}})}class mV extends DF{constructor(){super(...arguments),this.supportsDOMEvents=!0}}class rp extends mV{static makeCurrent(){!function CF(e){Xw??=e}(new rp)}onAndCancel(n,t,r){return n.addEventListener(t,r),()=>{n.removeEventListener(t,r)}}dispatchEvent(n,t){n.dispatchEvent(t)}remove(n){n.parentNode&&n.parentNode.removeChild(n)}createElement(n,t){return(t=t||this.getDefaultDocument()).createElement(n)}createHtmlDocument(){return document.implementation.createHTMLDocument("fakeTitle")}getDefaultDocument(){return document}isElementNode(n){return n.nodeType===Node.ELEMENT_NODE}isShadowRoot(n){return n instanceof DocumentFragment}getGlobalEventTarget(n,t){return"window"===t?window:"document"===t?n:"body"===t?n.body:null}getBaseHref(n){const t=function vV(){return Hs=Hs||document.querySelector("base"),Hs?Hs.getAttribute("href"):null}();return null==t?null:function yV(e){return new URL(e,document.baseURI).pathname}(t)}resetBaseElement(){Hs=null}getUserAgent(){return window.navigator.userAgent}getCookie(n){return ub(document.cookie,n)}}let Hs=null,CV=(()=>{class e{build(){return new XMLHttpRequest}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=R({token:e,factory:e.\u0275fac})}return e})();const op=new N("");let Zb=(()=>{class e{constructor(t,r){this._zone=r,this._eventNameToPlugin=new Map,t.forEach(o=>{o.manager=this}),this._plugins=t.slice().reverse()}addEventListener(t,r,o){return this._findPluginFor(r).addEventListener(t,r,o)}getZone(){return this._zone}_findPluginFor(t){let r=this._eventNameToPlugin.get(t);if(r)return r;if(r=this._plugins.find(i=>i.supports(t)),!r)throw new M(5101,!1);return this._eventNameToPlugin.set(t,r),r}static#e=this.\u0275fac=function(r){return new(r||e)(P(op),P(se))};static#t=this.\u0275prov=R({token:e,factory:e.\u0275fac})}return e})();class Yb{constructor(n){this._doc=n}}const ip="ng-app-id";let Qb=(()=>{class e{constructor(t,r,o,i={}){this.doc=t,this.appId=r,this.nonce=o,this.platformId=i,this.styleRef=new Map,this.hostNodes=new Set,this.styleNodesInDOM=this.collectServerRenderedStyles(),this.platformIsServer=yb(i),this.resetHostNodes()}addStyles(t){for(const r of t)1===this.changeUsageCount(r,1)&&this.onStyleAdded(r)}removeStyles(t){for(const r of t)this.changeUsageCount(r,-1)<=0&&this.onStyleRemoved(r)}ngOnDestroy(){const t=this.styleNodesInDOM;t&&(t.forEach(r=>r.remove()),t.clear());for(const r of this.getAllStyles())this.onStyleRemoved(r);this.resetHostNodes()}addHost(t){this.hostNodes.add(t);for(const r of this.getAllStyles())this.addStyleToHost(t,r)}removeHost(t){this.hostNodes.delete(t)}getAllStyles(){return this.styleRef.keys()}onStyleAdded(t){for(const r of this.hostNodes)this.addStyleToHost(r,t)}onStyleRemoved(t){const r=this.styleRef;r.get(t)?.elements?.forEach(o=>o.remove()),r.delete(t)}collectServerRenderedStyles(){const t=this.doc.head?.querySelectorAll(`style[${ip}="${this.appId}"]`);if(t?.length){const r=new Map;return t.forEach(o=>{null!=o.textContent&&r.set(o.textContent,o)}),r}return null}changeUsageCount(t,r){const o=this.styleRef;if(o.has(t)){const i=o.get(t);return i.usage+=r,i.usage}return o.set(t,{usage:r,elements:[]}),r}getStyleElement(t,r){const o=this.styleNodesInDOM,i=o?.get(r);if(i?.parentNode===t)return o.delete(r),i.removeAttribute(ip),i;{const s=this.doc.createElement("style");return this.nonce&&s.setAttribute("nonce",this.nonce),s.textContent=r,this.platformIsServer&&s.setAttribute(ip,this.appId),t.appendChild(s),s}}addStyleToHost(t,r){const o=this.getStyleElement(t,r),i=this.styleRef,s=i.get(r)?.elements;s?s.push(o):i.set(r,{elements:[o],usage:1})}resetHostNodes(){const t=this.hostNodes;t.clear(),t.add(this.doc.head)}static#e=this.\u0275fac=function(r){return new(r||e)(P(It),P(Xa),P(sv,8),P(nr))};static#t=this.\u0275prov=R({token:e,factory:e.\u0275fac})}return e})();const sp={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/",math:"http://www.w3.org/1998/MathML/"},ap=/%COMP%/g,EV=new N("",{providedIn:"root",factory:()=>!0});function Jb(e,n){return n.map(t=>t.replace(ap,e))}let Kb=(()=>{class e{constructor(t,r,o,i,s,a,l,c=null){this.eventManager=t,this.sharedStylesHost=r,this.appId=o,this.removeStylesOnCompDestroy=i,this.doc=s,this.platformId=a,this.ngZone=l,this.nonce=c,this.rendererByCompId=new Map,this.platformIsServer=yb(a),this.defaultRenderer=new lp(t,s,l,this.platformIsServer)}createRenderer(t,r){if(!t||!r)return this.defaultRenderer;this.platformIsServer&&r.encapsulation===qt.ShadowDom&&(r={...r,encapsulation:qt.Emulated});const o=this.getOrCreateRenderer(t,r);return o instanceof tE?o.applyToHost(t):o instanceof cp&&o.applyStyles(),o}getOrCreateRenderer(t,r){const o=this.rendererByCompId;let i=o.get(r.id);if(!i){const s=this.doc,a=this.ngZone,l=this.eventManager,c=this.sharedStylesHost,u=this.removeStylesOnCompDestroy,d=this.platformIsServer;switch(r.encapsulation){case qt.Emulated:i=new tE(l,c,r,this.appId,u,s,a,d);break;case qt.ShadowDom:return new TV(l,c,t,r,s,a,this.nonce,d);default:i=new cp(l,c,r,u,s,a,d)}o.set(r.id,i)}return i}ngOnDestroy(){this.rendererByCompId.clear()}static#e=this.\u0275fac=function(r){return new(r||e)(P(Zb),P(Qb),P(Xa),P(EV),P(It),P(nr),P(se),P(sv))};static#t=this.\u0275prov=R({token:e,factory:e.\u0275fac})}return e})();class lp{constructor(n,t,r,o){this.eventManager=n,this.doc=t,this.ngZone=r,this.platformIsServer=o,this.data=Object.create(null),this.throwOnSyntheticProps=!0,this.destroyNode=null}destroy(){}createElement(n,t){return t?this.doc.createElementNS(sp[t]||t,n):this.doc.createElement(n)}createComment(n){return this.doc.createComment(n)}createText(n){return this.doc.createTextNode(n)}appendChild(n,t){(eE(n)?n.content:n).appendChild(t)}insertBefore(n,t,r){n&&(eE(n)?n.content:n).insertBefore(t,r)}removeChild(n,t){n&&n.removeChild(t)}selectRootElement(n,t){let r="string"==typeof n?this.doc.querySelector(n):n;if(!r)throw new M(-5104,!1);return t||(r.textContent=""),r}parentNode(n){return n.parentNode}nextSibling(n){return n.nextSibling}setAttribute(n,t,r,o){if(o){t=o+":"+t;const i=sp[o];i?n.setAttributeNS(i,t,r):n.setAttribute(t,r)}else n.setAttribute(t,r)}removeAttribute(n,t,r){if(r){const o=sp[r];o?n.removeAttributeNS(o,t):n.removeAttribute(`${r}:${t}`)}else n.removeAttribute(t)}addClass(n,t){n.classList.add(t)}removeClass(n,t){n.classList.remove(t)}setStyle(n,t,r,o){o&(ir.DashCase|ir.Important)?n.style.setProperty(t,r,o&ir.Important?"important":""):n.style[t]=r}removeStyle(n,t,r){r&ir.DashCase?n.style.removeProperty(t):n.style[t]=""}setProperty(n,t,r){null!=n&&(n[t]=r)}setValue(n,t){n.nodeValue=t}listen(n,t,r){if("string"==typeof n&&!(n=ur().getGlobalEventTarget(this.doc,n)))throw new Error(`Unsupported event target ${n} for event ${t}`);return this.eventManager.addEventListener(n,t,this.decoratePreventDefault(r))}decoratePreventDefault(n){return t=>{if("__ngUnwrap__"===t)return n;!1===(this.platformIsServer?this.ngZone.runGuarded(()=>n(t)):n(t))&&t.preventDefault()}}}function eE(e){return"TEMPLATE"===e.tagName&&void 0!==e.content}class TV extends lp{constructor(n,t,r,o,i,s,a,l){super(n,i,s,l),this.sharedStylesHost=t,this.hostEl=r,this.shadowRoot=r.attachShadow({mode:"open"}),this.sharedStylesHost.addHost(this.shadowRoot);const c=Jb(o.id,o.styles);for(const u of c){const d=document.createElement("style");a&&d.setAttribute("nonce",a),d.textContent=u,this.shadowRoot.appendChild(d)}}nodeOrShadowRoot(n){return n===this.hostEl?this.shadowRoot:n}appendChild(n,t){return super.appendChild(this.nodeOrShadowRoot(n),t)}insertBefore(n,t,r){return super.insertBefore(this.nodeOrShadowRoot(n),t,r)}removeChild(n,t){return super.removeChild(this.nodeOrShadowRoot(n),t)}parentNode(n){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(n)))}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}}class cp extends lp{constructor(n,t,r,o,i,s,a,l){super(n,i,s,a),this.sharedStylesHost=t,this.removeStylesOnCompDestroy=o,this.styles=l?Jb(l,r.styles):r.styles}applyStyles(){this.sharedStylesHost.addStyles(this.styles)}destroy(){this.removeStylesOnCompDestroy&&this.sharedStylesHost.removeStyles(this.styles)}}class tE extends cp{constructor(n,t,r,o,i,s,a,l){const c=o+"-"+r.id;super(n,t,r,i,s,a,l,c),this.contentAttr=function IV(e){return"_ngcontent-%COMP%".replace(ap,e)}(c),this.hostAttr=function MV(e){return"_nghost-%COMP%".replace(ap,e)}(c)}applyToHost(n){this.applyStyles(),this.setAttribute(n,this.hostAttr,"")}createElement(n,t){const r=super.createElement(n,t);return super.setAttribute(r,this.contentAttr,""),r}}let AV=(()=>{class e extends Yb{constructor(t){super(t)}supports(t){return!0}addEventListener(t,r,o){return t.addEventListener(r,o,!1),()=>this.removeEventListener(t,r,o)}removeEventListener(t,r,o){return t.removeEventListener(r,o)}static#e=this.\u0275fac=function(r){return new(r||e)(P(It))};static#t=this.\u0275prov=R({token:e,factory:e.\u0275fac})}return e})();const nE=["alt","control","meta","shift"],NV={"\b":"Backspace","\t":"Tab","\x7f":"Delete","\x1b":"Escape",Del:"Delete",Esc:"Escape",Left:"ArrowLeft",Right:"ArrowRight",Up:"ArrowUp",Down:"ArrowDown",Menu:"ContextMenu",Scroll:"ScrollLock",Win:"OS"},xV={alt:e=>e.altKey,control:e=>e.ctrlKey,meta:e=>e.metaKey,shift:e=>e.shiftKey};let RV=(()=>{class e extends Yb{constructor(t){super(t)}supports(t){return null!=e.parseEventName(t)}addEventListener(t,r,o){const i=e.parseEventName(r),s=e.eventCallback(i.fullKey,o,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>ur().onAndCancel(t,i.domEventName,s))}static parseEventName(t){const r=t.toLowerCase().split("."),o=r.shift();if(0===r.length||"keydown"!==o&&"keyup"!==o)return null;const i=e._normalizeKey(r.pop());let s="",a=r.indexOf("code");if(a>-1&&(r.splice(a,1),s="code."),nE.forEach(c=>{const u=r.indexOf(c);u>-1&&(r.splice(u,1),s+=c+".")}),s+=i,0!=r.length||0===i.length)return null;const l={};return l.domEventName=o,l.fullKey=s,l}static matchEventFullKeyCode(t,r){let o=NV[t.key]||t.key,i="";return r.indexOf("code.")>-1&&(o=t.code,i="code."),!(null==o||!o)&&(o=o.toLowerCase()," "===o?o="space":"."===o&&(o="dot"),nE.forEach(s=>{s!==o&&(0,xV[s])(t)&&(i+=s+".")}),i+=o,i===r)}static eventCallback(t,r,o){return i=>{e.matchEventFullKeyCode(i,t)&&o.runGuarded(()=>r(i))}}static _normalizeKey(t){return"esc"===t?"escape":t}static#e=this.\u0275fac=function(r){return new(r||e)(P(It))};static#t=this.\u0275prov=R({token:e,factory:e.\u0275fac})}return e})();function rE(e){return{appProviders:[...iE,...e?.providers??[]],platformProviders:LV}}const LV=[{provide:nr,useValue:vb},{provide:iv,useValue:function kV(){rp.makeCurrent()},multi:!0},{provide:It,useFactory:function FV(){return function CS(e){Cd=e}(document),document},deps:[]}],VV=new N(""),oE=[{provide:Ql,useClass:class _V{addToWindow(n){ce.getAngularTestability=(r,o=!0)=>{const i=n.findTestabilityInTree(r,o);if(null==i)throw new M(5103,!1);return i},ce.getAllAngularTestabilities=()=>n.getAllTestabilities(),ce.getAllAngularRootElements=()=>n.getAllRootElements(),ce.frameworkStabilizers||(ce.frameworkStabilizers=[]),ce.frameworkStabilizers.push(r=>{const o=ce.getAllAngularTestabilities();let i=o.length;const s=function(){i--,0==i&&r()};o.forEach(a=>{a.whenStable(s)})})}findTestabilityInTree(n,t,r){return null==t?null:n.getTestability(t)??(r?ur().isShadowRoot(t)?this.findTestabilityInTree(n,t.host,!0):this.findTestabilityInTree(n,t.parentElement,!0):null)}},deps:[]},{provide:vw,useClass:ph,deps:[se,gh,Ql]},{provide:ph,useClass:ph,deps:[se,gh,Ql]}],iE=[{provide:pd,useValue:"root"},{provide:Fn,useFactory:function PV(){return new Fn},deps:[]},{provide:op,useClass:AV,multi:!0,deps:[It,se,nr]},{provide:op,useClass:RV,multi:!0,deps:[It]},Kb,Qb,Zb,{provide:iy,useExisting:Kb},{provide:_b,useClass:CV,deps:[]},[]];let jV=(()=>{class e{constructor(t){}static withServerTransition(t){return{ngModule:e,providers:[{provide:Xa,useValue:t.appId}]}}static#e=this.\u0275fac=function(r){return new(r||e)(P(VV,12))};static#t=this.\u0275mod=Yn({type:e});static#n=this.\u0275inj=An({providers:[...iE,...oE],imports:[j2,GP]})}return e})(),UV=(()=>{class e{constructor(t){this._doc=t}getTitle(){return this._doc.title}setTitle(t){this._doc.title=t||""}static#e=this.\u0275fac=function(r){return new(r||e)(P(It))};static#t=this.\u0275prov=R({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();const Y="primary",zs=Symbol("RouteTitle");class GV{constructor(n){this.params=n||{}}has(n){return Object.prototype.hasOwnProperty.call(this.params,n)}get(n){if(this.has(n)){const t=this.params[n];return Array.isArray(t)?t[0]:t}return null}getAll(n){if(this.has(n)){const t=this.params[n];return Array.isArray(t)?t:[t]}return[]}get keys(){return Object.keys(this.params)}}function si(e){return new GV(e)}function zV(e,n,t){const r=t.path.split("/");if(r.length>e.length||"full"===t.pathMatch&&(n.hasChildren()||r.lengthr[i]===o)}return e===n}function uE(e){return e.length>0?e[e.length-1]:null}function fr(e){return function mL(e){return!!e&&(e instanceof Ve||we(e.lift)&&we(e.subscribe))}(e)?e:As(e)?Ye(Promise.resolve(e)):B(e)}const WV={exact:function hE(e,n,t){if(!Hr(e.segments,n.segments)||!Ec(e.segments,n.segments,t)||e.numberOfChildren!==n.numberOfChildren)return!1;for(const r in n.children)if(!e.children[r]||!hE(e.children[r],n.children[r],t))return!1;return!0},subset:pE},dE={exact:function ZV(e,n){return Dn(e,n)},subset:function YV(e,n){return Object.keys(n).length<=Object.keys(e).length&&Object.keys(n).every(t=>cE(e[t],n[t]))},ignored:()=>!0};function fE(e,n,t){return WV[t.paths](e.root,n.root,t.matrixParams)&&dE[t.queryParams](e.queryParams,n.queryParams)&&!("exact"===t.fragment&&e.fragment!==n.fragment)}function pE(e,n,t){return gE(e,n,n.segments,t)}function gE(e,n,t,r){if(e.segments.length>t.length){const o=e.segments.slice(0,t.length);return!(!Hr(o,t)||n.hasChildren()||!Ec(o,t,r))}if(e.segments.length===t.length){if(!Hr(e.segments,t)||!Ec(e.segments,t,r))return!1;for(const o in n.children)if(!e.children[o]||!pE(e.children[o],n.children[o],r))return!1;return!0}{const o=t.slice(0,e.segments.length),i=t.slice(e.segments.length);return!!(Hr(e.segments,o)&&Ec(e.segments,o,r)&&e.children[Y])&&gE(e.children[Y],n,i,r)}}function Ec(e,n,t){return n.every((r,o)=>dE[t](e[o].parameters,r.parameters))}class ai{constructor(n=new pe([],{}),t={},r=null){this.root=n,this.queryParams=t,this.fragment=r}get queryParamMap(){return this._queryParamMap??=si(this.queryParams),this._queryParamMap}toString(){return JV.serialize(this)}}class pe{constructor(n,t){this.segments=n,this.children=t,this.parent=null,Object.values(t).forEach(r=>r.parent=this)}hasChildren(){return this.numberOfChildren>0}get numberOfChildren(){return Object.keys(this.children).length}toString(){return Ic(this)}}class qs{constructor(n,t){this.path=n,this.parameters=t}get parameterMap(){return this._parameterMap??=si(this.parameters),this._parameterMap}toString(){return yE(this)}}function Hr(e,n){return e.length===n.length&&e.every((t,r)=>t.path===n[r].path)}let li=(()=>{class e{static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=R({token:e,factory:()=>new dp,providedIn:"root"})}return e})();class dp{parse(n){const t=new c3(n);return new ai(t.parseRootSegment(),t.parseQueryParams(),t.parseFragment())}serialize(n){const t=`/${Ws(n.root,!0)}`,r=function t3(e){const n=Object.entries(e).map(([t,r])=>Array.isArray(r)?r.map(o=>`${Mc(t)}=${Mc(o)}`).join("&"):`${Mc(t)}=${Mc(r)}`).filter(t=>t);return n.length?`?${n.join("&")}`:""}(n.queryParams);return`${t}${r}${"string"==typeof n.fragment?`#${function KV(e){return encodeURI(e)}(n.fragment)}`:""}`}}const JV=new dp;function Ic(e){return e.segments.map(n=>yE(n)).join("/")}function Ws(e,n){if(!e.hasChildren())return Ic(e);if(n){const t=e.children[Y]?Ws(e.children[Y],!1):"",r=[];return Object.entries(e.children).forEach(([o,i])=>{o!==Y&&r.push(`${o}:${Ws(i,!1)}`)}),r.length>0?`${t}(${r.join("//")})`:t}{const t=function XV(e,n){let t=[];return Object.entries(e.children).forEach(([r,o])=>{r===Y&&(t=t.concat(n(o,r)))}),Object.entries(e.children).forEach(([r,o])=>{r!==Y&&(t=t.concat(n(o,r)))}),t}(e,(r,o)=>o===Y?[Ws(e.children[Y],!1)]:[`${o}:${Ws(r,!1)}`]);return 1===Object.keys(e.children).length&&null!=e.children[Y]?`${Ic(e)}/${t[0]}`:`${Ic(e)}/(${t.join("//")})`}}function mE(e){return encodeURIComponent(e).replace(/%40/g,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",")}function Mc(e){return mE(e).replace(/%3B/gi,";")}function fp(e){return mE(e).replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/%26/gi,"&")}function Sc(e){return decodeURIComponent(e)}function vE(e){return Sc(e.replace(/\+/g,"%20"))}function yE(e){return`${fp(e.path)}${function e3(e){return Object.entries(e).map(([n,t])=>`;${fp(n)}=${fp(t)}`).join("")}(e.parameters)}`}const n3=/^[^\/()?;#]+/;function hp(e){const n=e.match(n3);return n?n[0]:""}const r3=/^[^\/()?;=#]+/,i3=/^[^=?&#]+/,a3=/^[^&#]+/;class c3{constructor(n){this.url=n,this.remaining=n}parseRootSegment(){return this.consumeOptional("/"),""===this.remaining||this.peekStartsWith("?")||this.peekStartsWith("#")?new pe([],{}):new pe([],this.parseChildren())}parseQueryParams(){const n={};if(this.consumeOptional("?"))do{this.parseQueryParam(n)}while(this.consumeOptional("&"));return n}parseFragment(){return this.consumeOptional("#")?decodeURIComponent(this.remaining):null}parseChildren(){if(""===this.remaining)return{};this.consumeOptional("/");const n=[];for(this.peekStartsWith("(")||n.push(this.parseSegment());this.peekStartsWith("/")&&!this.peekStartsWith("//")&&!this.peekStartsWith("/(");)this.capture("/"),n.push(this.parseSegment());let t={};this.peekStartsWith("/(")&&(this.capture("/"),t=this.parseParens(!0));let r={};return this.peekStartsWith("(")&&(r=this.parseParens(!1)),(n.length>0||Object.keys(t).length>0)&&(r[Y]=new pe(n,t)),r}parseSegment(){const n=hp(this.remaining);if(""===n&&this.peekStartsWith(";"))throw new M(4009,!1);return this.capture(n),new qs(Sc(n),this.parseMatrixParams())}parseMatrixParams(){const n={};for(;this.consumeOptional(";");)this.parseParam(n);return n}parseParam(n){const t=function o3(e){const n=e.match(r3);return n?n[0]:""}(this.remaining);if(!t)return;this.capture(t);let r="";if(this.consumeOptional("=")){const o=hp(this.remaining);o&&(r=o,this.capture(r))}n[Sc(t)]=Sc(r)}parseQueryParam(n){const t=function s3(e){const n=e.match(i3);return n?n[0]:""}(this.remaining);if(!t)return;this.capture(t);let r="";if(this.consumeOptional("=")){const s=function l3(e){const n=e.match(a3);return n?n[0]:""}(this.remaining);s&&(r=s,this.capture(r))}const o=vE(t),i=vE(r);if(n.hasOwnProperty(o)){let s=n[o];Array.isArray(s)||(s=[s],n[o]=s),s.push(i)}else n[o]=i}parseParens(n){const t={};for(this.capture("(");!this.consumeOptional(")")&&this.remaining.length>0;){const r=hp(this.remaining),o=this.remaining[r.length];if("/"!==o&&")"!==o&&";"!==o)throw new M(4010,!1);let i;r.indexOf(":")>-1?(i=r.slice(0,r.indexOf(":")),this.capture(i),this.capture(":")):n&&(i=Y);const s=this.parseChildren();t[i]=1===Object.keys(s).length?s[Y]:new pe([],s),this.consumeOptional("//")}return t}peekStartsWith(n){return this.remaining.startsWith(n)}consumeOptional(n){return!!this.peekStartsWith(n)&&(this.remaining=this.remaining.substring(n.length),!0)}capture(n){if(!this.consumeOptional(n))throw new M(4011,!1)}}function _E(e){return e.segments.length>0?new pe([],{[Y]:e}):e}function CE(e){const n={};for(const[r,o]of Object.entries(e.children)){const i=CE(o);if(r===Y&&0===i.segments.length&&i.hasChildren())for(const[s,a]of Object.entries(i.children))n[s]=a;else(i.segments.length>0||i.hasChildren())&&(n[r]=i)}return function u3(e){if(1===e.numberOfChildren&&e.children[Y]){const n=e.children[Y];return new pe(e.segments.concat(n.segments),n.children)}return e}(new pe(e.segments,n))}function ci(e){return e instanceof ai}function DE(e){let n;const o=_E(function t(i){const s={};for(const l of i.children){const c=t(l);s[l.outlet]=c}const a=new pe(i.url,s);return i===e&&(n=a),a}(e.root));return n??o}function wE(e,n,t,r){let o=e;for(;o.parent;)o=o.parent;if(0===n.length)return pp(o,o,o,t,r);const i=function f3(e){if("string"==typeof e[0]&&1===e.length&&"/"===e[0])return new EE(!0,0,e);let n=0,t=!1;const r=e.reduce((o,i,s)=>{if("object"==typeof i&&null!=i){if(i.outlets){const a={};return Object.entries(i.outlets).forEach(([l,c])=>{a[l]="string"==typeof c?c.split("/"):c}),[...o,{outlets:a}]}if(i.segmentPath)return[...o,i.segmentPath]}return"string"!=typeof i?[...o,i]:0===s?(i.split("/").forEach((a,l)=>{0==l&&"."===a||(0==l&&""===a?t=!0:".."===a?n++:""!=a&&o.push(a))}),o):[...o,i]},[]);return new EE(t,n,r)}(n);if(i.toRoot())return pp(o,o,new pe([],{}),t,r);const s=function h3(e,n,t){if(e.isAbsolute)return new Ac(n,!0,0);if(!t)return new Ac(n,!1,NaN);if(null===t.parent)return new Ac(t,!0,0);const r=Tc(e.commands[0])?0:1;return function p3(e,n,t){let r=e,o=n,i=t;for(;i>o;){if(i-=o,r=r.parent,!r)throw new M(4005,!1);o=r.segments.length}return new Ac(r,!1,o-i)}(t,t.segments.length-1+r,e.numberOfDoubleDots)}(i,o,e),a=s.processChildren?Ys(s.segmentGroup,s.index,i.commands):IE(s.segmentGroup,s.index,i.commands);return pp(o,s.segmentGroup,a,t,r)}function Tc(e){return"object"==typeof e&&null!=e&&!e.outlets&&!e.segmentPath}function Zs(e){return"object"==typeof e&&null!=e&&e.outlets}function pp(e,n,t,r,o){let s,i={};r&&Object.entries(r).forEach(([l,c])=>{i[l]=Array.isArray(c)?c.map(u=>`${u}`):`${c}`}),s=e===n?t:bE(e,n,t);const a=_E(CE(s));return new ai(a,i,o)}function bE(e,n,t){const r={};return Object.entries(e.children).forEach(([o,i])=>{r[o]=i===n?t:bE(i,n,t)}),new pe(e.segments,r)}class EE{constructor(n,t,r){if(this.isAbsolute=n,this.numberOfDoubleDots=t,this.commands=r,n&&r.length>0&&Tc(r[0]))throw new M(4003,!1);const o=r.find(Zs);if(o&&o!==uE(r))throw new M(4004,!1)}toRoot(){return this.isAbsolute&&1===this.commands.length&&"/"==this.commands[0]}}class Ac{constructor(n,t,r){this.segmentGroup=n,this.processChildren=t,this.index=r}}function IE(e,n,t){if(e??=new pe([],{}),0===e.segments.length&&e.hasChildren())return Ys(e,n,t);const r=function m3(e,n,t){let r=0,o=n;const i={match:!1,pathIndex:0,commandIndex:0};for(;o=t.length)return i;const s=e.segments[o],a=t[r];if(Zs(a))break;const l=`${a}`,c=r0&&void 0===l)break;if(l&&c&&"object"==typeof c&&void 0===c.outlets){if(!SE(l,c,s))return i;r+=2}else{if(!SE(l,{},s))return i;r++}o++}return{match:!0,pathIndex:o,commandIndex:r}}(e,n,t),o=t.slice(r.commandIndex);if(r.match&&r.pathIndexi!==Y)&&e.children[Y]&&1===e.numberOfChildren&&0===e.children[Y].segments.length){const i=Ys(e.children[Y],n,t);return new pe(e.segments,i.children)}return Object.entries(r).forEach(([i,s])=>{"string"==typeof s&&(s=[s]),null!==s&&(o[i]=IE(e.children[i],n,s))}),Object.entries(e.children).forEach(([i,s])=>{void 0===r[i]&&(o[i]=s)}),new pe(e.segments,o)}}function gp(e,n,t){const r=e.segments.slice(0,n);let o=0;for(;o{"string"==typeof r&&(r=[r]),null!==r&&(n[t]=gp(new pe([],{}),0,r))}),n}function ME(e){const n={};return Object.entries(e).forEach(([t,r])=>n[t]=`${r}`),n}function SE(e,n,t){return e==t.path&&Dn(n,t.parameters)}const Qs="imperative";var ee=function(e){return e[e.NavigationStart=0]="NavigationStart",e[e.NavigationEnd=1]="NavigationEnd",e[e.NavigationCancel=2]="NavigationCancel",e[e.NavigationError=3]="NavigationError",e[e.RoutesRecognized=4]="RoutesRecognized",e[e.ResolveStart=5]="ResolveStart",e[e.ResolveEnd=6]="ResolveEnd",e[e.GuardsCheckStart=7]="GuardsCheckStart",e[e.GuardsCheckEnd=8]="GuardsCheckEnd",e[e.RouteConfigLoadStart=9]="RouteConfigLoadStart",e[e.RouteConfigLoadEnd=10]="RouteConfigLoadEnd",e[e.ChildActivationStart=11]="ChildActivationStart",e[e.ChildActivationEnd=12]="ChildActivationEnd",e[e.ActivationStart=13]="ActivationStart",e[e.ActivationEnd=14]="ActivationEnd",e[e.Scroll=15]="Scroll",e[e.NavigationSkipped=16]="NavigationSkipped",e}(ee||{});class wn{constructor(n,t){this.id=n,this.url=t}}class Nc extends wn{constructor(n,t,r="imperative",o=null){super(n,t),this.type=ee.NavigationStart,this.navigationTrigger=r,this.restoredState=o}toString(){return`NavigationStart(id: ${this.id}, url: '${this.url}')`}}class bn extends wn{constructor(n,t,r){super(n,t),this.urlAfterRedirects=r,this.type=ee.NavigationEnd}toString(){return`NavigationEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}')`}}var $t=function(e){return e[e.Redirect=0]="Redirect",e[e.SupersededByNewNavigation=1]="SupersededByNewNavigation",e[e.NoDataFromResolver=2]="NoDataFromResolver",e[e.GuardRejected=3]="GuardRejected",e}($t||{}),xc=function(e){return e[e.IgnoredSameUrlNavigation=0]="IgnoredSameUrlNavigation",e[e.IgnoredByUrlHandlingStrategy=1]="IgnoredByUrlHandlingStrategy",e}(xc||{});class ui extends wn{constructor(n,t,r,o){super(n,t),this.reason=r,this.code=o,this.type=ee.NavigationCancel}toString(){return`NavigationCancel(id: ${this.id}, url: '${this.url}')`}}class di extends wn{constructor(n,t,r,o){super(n,t),this.reason=r,this.code=o,this.type=ee.NavigationSkipped}}class Rc extends wn{constructor(n,t,r,o){super(n,t),this.error=r,this.target=o,this.type=ee.NavigationError}toString(){return`NavigationError(id: ${this.id}, url: '${this.url}', error: ${this.error})`}}class TE extends wn{constructor(n,t,r,o){super(n,t),this.urlAfterRedirects=r,this.state=o,this.type=ee.RoutesRecognized}toString(){return`RoutesRecognized(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class y3 extends wn{constructor(n,t,r,o){super(n,t),this.urlAfterRedirects=r,this.state=o,this.type=ee.GuardsCheckStart}toString(){return`GuardsCheckStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class _3 extends wn{constructor(n,t,r,o,i){super(n,t),this.urlAfterRedirects=r,this.state=o,this.shouldActivate=i,this.type=ee.GuardsCheckEnd}toString(){return`GuardsCheckEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state}, shouldActivate: ${this.shouldActivate})`}}class C3 extends wn{constructor(n,t,r,o){super(n,t),this.urlAfterRedirects=r,this.state=o,this.type=ee.ResolveStart}toString(){return`ResolveStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class D3 extends wn{constructor(n,t,r,o){super(n,t),this.urlAfterRedirects=r,this.state=o,this.type=ee.ResolveEnd}toString(){return`ResolveEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class w3{constructor(n){this.route=n,this.type=ee.RouteConfigLoadStart}toString(){return`RouteConfigLoadStart(path: ${this.route.path})`}}class b3{constructor(n){this.route=n,this.type=ee.RouteConfigLoadEnd}toString(){return`RouteConfigLoadEnd(path: ${this.route.path})`}}class E3{constructor(n){this.snapshot=n,this.type=ee.ChildActivationStart}toString(){return`ChildActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class I3{constructor(n){this.snapshot=n,this.type=ee.ChildActivationEnd}toString(){return`ChildActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class M3{constructor(n){this.snapshot=n,this.type=ee.ActivationStart}toString(){return`ActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class S3{constructor(n){this.snapshot=n,this.type=ee.ActivationEnd}toString(){return`ActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class AE{constructor(n,t,r){this.routerEvent=n,this.position=t,this.anchor=r,this.type=ee.Scroll}toString(){return`Scroll(anchor: '${this.anchor}', position: '${this.position?`${this.position[0]}, ${this.position[1]}`:null}')`}}class mp{}class vp{constructor(n){this.url=n}}class T3{constructor(){this.outlet=null,this.route=null,this.injector=null,this.children=new Xs,this.attachRef=null}}let Xs=(()=>{class e{constructor(){this.contexts=new Map}onChildOutletCreated(t,r){const o=this.getOrCreateContext(t);o.outlet=r,this.contexts.set(t,o)}onChildOutletDestroyed(t){const r=this.getContext(t);r&&(r.outlet=null,r.attachRef=null)}onOutletDeactivated(){const t=this.contexts;return this.contexts=new Map,t}onOutletReAttached(t){this.contexts=t}getOrCreateContext(t){let r=this.getContext(t);return r||(r=new T3,this.contexts.set(t,r)),r}getContext(t){return this.contexts.get(t)||null}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=R({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();class NE{constructor(n){this._root=n}get root(){return this._root.value}parent(n){const t=this.pathFromRoot(n);return t.length>1?t[t.length-2]:null}children(n){const t=yp(n,this._root);return t?t.children.map(r=>r.value):[]}firstChild(n){const t=yp(n,this._root);return t&&t.children.length>0?t.children[0].value:null}siblings(n){const t=_p(n,this._root);return t.length<2?[]:t[t.length-2].children.map(o=>o.value).filter(o=>o!==n)}pathFromRoot(n){return _p(n,this._root).map(t=>t.value)}}function yp(e,n){if(e===n.value)return n;for(const t of n.children){const r=yp(e,t);if(r)return r}return null}function _p(e,n){if(e===n.value)return[n];for(const t of n.children){const r=_p(e,t);if(r.length)return r.unshift(n),r}return[]}class sn{constructor(n,t){this.value=n,this.children=t}toString(){return`TreeNode(${this.value})`}}function fi(e){const n={};return e&&e.children.forEach(t=>n[t.value.outlet]=t),n}class xE extends NE{constructor(n,t){super(n),this.snapshot=t,wp(this,n)}toString(){return this.snapshot.toString()}}function RE(e){const n=function A3(e){const i=new Dp([],{},{},"",{},Y,e,null,{});return new OE("",new sn(i,[]))}(e),t=new Ft([new qs("",{})]),r=new Ft({}),o=new Ft({}),i=new Ft({}),s=new Ft(""),a=new Gr(t,r,i,s,o,Y,e,n.root);return a.snapshot=n.root,new xE(new sn(a,[]),n)}class Gr{constructor(n,t,r,o,i,s,a,l){this.urlSubject=n,this.paramsSubject=t,this.queryParamsSubject=r,this.fragmentSubject=o,this.dataSubject=i,this.outlet=s,this.component=a,this._futureSnapshot=l,this.title=this.dataSubject?.pipe(J(c=>c[zs]))??B(void 0),this.url=n,this.params=t,this.queryParams=r,this.fragment=o,this.data=i}get routeConfig(){return this._futureSnapshot.routeConfig}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap??=this.params.pipe(J(n=>si(n))),this._paramMap}get queryParamMap(){return this._queryParamMap??=this.queryParams.pipe(J(n=>si(n))),this._queryParamMap}toString(){return this.snapshot?this.snapshot.toString():`Future(${this._futureSnapshot})`}}function Cp(e,n,t="emptyOnly"){let r;const{routeConfig:o}=e;return r=null===n||"always"!==t&&""!==o?.path&&(n.component||n.routeConfig?.loadComponent)?{params:{...e.params},data:{...e.data},resolve:{...e.data,...e._resolvedData??{}}}:{params:{...n.params,...e.params},data:{...n.data,...e.data},resolve:{...e.data,...n.data,...o?.data,...e._resolvedData}},o&&PE(o)&&(r.resolve[zs]=o.title),r}class Dp{get title(){return this.data?.[zs]}constructor(n,t,r,o,i,s,a,l,c){this.url=n,this.params=t,this.queryParams=r,this.fragment=o,this.data=i,this.outlet=s,this.component=a,this.routeConfig=l,this._resolve=c}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap??=si(this.params),this._paramMap}get queryParamMap(){return this._queryParamMap??=si(this.queryParams),this._queryParamMap}toString(){return`Route(url:'${this.url.map(r=>r.toString()).join("/")}', path:'${this.routeConfig?this.routeConfig.path:""}')`}}class OE extends NE{constructor(n,t){super(t),this.url=n,wp(this,t)}toString(){return kE(this._root)}}function wp(e,n){n.value._routerState=e,n.children.forEach(t=>wp(e,t))}function kE(e){const n=e.children.length>0?` { ${e.children.map(kE).join(", ")} } `:"";return`${e.value}${n}`}function bp(e){if(e.snapshot){const n=e.snapshot,t=e._futureSnapshot;e.snapshot=t,Dn(n.queryParams,t.queryParams)||e.queryParamsSubject.next(t.queryParams),n.fragment!==t.fragment&&e.fragmentSubject.next(t.fragment),Dn(n.params,t.params)||e.paramsSubject.next(t.params),function qV(e,n){if(e.length!==n.length)return!1;for(let t=0;tDn(t.parameters,n[r].parameters))}(e.url,n.url);return t&&!(!e.parent!=!n.parent)&&(!e.parent||Ep(e.parent,n.parent))}function PE(e){return"string"==typeof e.title||null===e.title}let Ip=(()=>{class e{constructor(){this.activated=null,this._activatedRoute=null,this.name=Y,this.activateEvents=new Ne,this.deactivateEvents=new Ne,this.attachEvents=new Ne,this.detachEvents=new Ne,this.parentContexts=T(Xs),this.location=T(Xt),this.changeDetector=T(us),this.environmentInjector=T(Nt),this.inputBinder=T(Oc,{optional:!0}),this.supportsBindingToComponentInputs=!0}get activatedComponentRef(){return this.activated}ngOnChanges(t){if(t.name){const{firstChange:r,previousValue:o}=t.name;if(r)return;this.isTrackedInParentContexts(o)&&(this.deactivate(),this.parentContexts.onChildOutletDestroyed(o)),this.initializeOutletWithName()}}ngOnDestroy(){this.isTrackedInParentContexts(this.name)&&this.parentContexts.onChildOutletDestroyed(this.name),this.inputBinder?.unsubscribeFromRouteData(this)}isTrackedInParentContexts(t){return this.parentContexts.getContext(t)?.outlet===this}ngOnInit(){this.initializeOutletWithName()}initializeOutletWithName(){if(this.parentContexts.onChildOutletCreated(this.name,this),this.activated)return;const t=this.parentContexts.getContext(this.name);t?.route&&(t.attachRef?this.attach(t.attachRef,t.route):this.activateWith(t.route,t.injector))}get isActivated(){return!!this.activated}get component(){if(!this.activated)throw new M(4012,!1);return this.activated.instance}get activatedRoute(){if(!this.activated)throw new M(4012,!1);return this._activatedRoute}get activatedRouteData(){return this._activatedRoute?this._activatedRoute.snapshot.data:{}}detach(){if(!this.activated)throw new M(4012,!1);this.location.detach();const t=this.activated;return this.activated=null,this._activatedRoute=null,this.detachEvents.emit(t.instance),t}attach(t,r){this.activated=t,this._activatedRoute=r,this.location.insert(t.hostView),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.attachEvents.emit(t.instance)}deactivate(){if(this.activated){const t=this.component;this.activated.destroy(),this.activated=null,this._activatedRoute=null,this.deactivateEvents.emit(t)}}activateWith(t,r){if(this.isActivated)throw new M(4013,!1);this._activatedRoute=t;const o=this.location,s=t.snapshot.component,a=this.parentContexts.getOrCreateContext(this.name).children,l=new N3(t,a,o.injector);this.activated=o.createComponent(s,{index:o.length,injector:l,environmentInjector:r??this.environmentInjector}),this.changeDetector.markForCheck(),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.activateEvents.emit(this.activated.instance)}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275dir=$({type:e,selectors:[["router-outlet"]],inputs:{name:"name"},outputs:{activateEvents:"activate",deactivateEvents:"deactivate",attachEvents:"attach",detachEvents:"detach"},exportAs:["outlet"],standalone:!0,features:[Lt]})}return e})();class N3{constructor(n,t,r){this.route=n,this.childContexts=t,this.parent=r}get(n,t){return n===Gr?this.route:n===Xs?this.childContexts:this.parent.get(n,t)}}const Oc=new N("");let FE=(()=>{class e{constructor(){this.outletDataSubscriptions=new Map}bindActivatedRouteToOutletComponent(t){this.unsubscribeFromRouteData(t),this.subscribeToRouteData(t)}unsubscribeFromRouteData(t){this.outletDataSubscriptions.get(t)?.unsubscribe(),this.outletDataSubscriptions.delete(t)}subscribeToRouteData(t){const{activatedRoute:r}=t,o=Kh([r.queryParams,r.params,r.data]).pipe(rn(([i,s,a],l)=>(a={...i,...s,...a},0===l?B(a):Promise.resolve(a)))).subscribe(i=>{if(!t.isActivated||!t.activatedComponentRef||t.activatedRoute!==r||null===r.component)return void this.unsubscribeFromRouteData(t);const s=function _F(e){const n=Q(e);if(!n)return null;const t=new fs(n);return{get selector(){return t.selector},get type(){return t.componentType},get inputs(){return t.inputs},get outputs(){return t.outputs},get ngContentSelectors(){return t.ngContentSelectors},get isStandalone(){return n.standalone},get isSignal(){return n.signals}}}(r.component);if(s)for(const{templateName:a}of s.inputs)t.activatedComponentRef.setInput(a,i[a]);else this.unsubscribeFromRouteData(t)});this.outletDataSubscriptions.set(t,o)}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=R({token:e,factory:e.\u0275fac})}return e})();function Js(e,n,t){if(t&&e.shouldReuseRoute(n.value,t.value.snapshot)){const r=t.value;r._futureSnapshot=n.value;const o=function R3(e,n,t){return n.children.map(r=>{for(const o of t.children)if(e.shouldReuseRoute(r.value,o.value.snapshot))return Js(e,r,o);return Js(e,r)})}(e,n,t);return new sn(r,o)}{if(e.shouldAttach(n.value)){const i=e.retrieve(n.value);if(null!==i){const s=i.route;return s.value._futureSnapshot=n.value,s.children=n.children.map(a=>Js(e,a)),s}}const r=function O3(e){return new Gr(new Ft(e.url),new Ft(e.params),new Ft(e.queryParams),new Ft(e.fragment),new Ft(e.data),e.outlet,e.component,e)}(n.value),o=n.children.map(i=>Js(e,i));return new sn(r,o)}}const LE="ngNavigationCancelingError";function VE(e,n){const{redirectTo:t,navigationBehaviorOptions:r}=ci(n)?{redirectTo:n,navigationBehaviorOptions:void 0}:n,o=jE(!1,$t.Redirect);return o.url=t,o.navigationBehaviorOptions=r,o}function jE(e,n){const t=new Error(`NavigationCancelingError: ${e||""}`);return t[LE]=!0,t.cancellationCode=n,t}function UE(e){return!!e&&e[LE]}let BE=(()=>{class e{static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275cmp=St({type:e,selectors:[["ng-component"]],standalone:!0,features:[kt],decls:1,vars:0,template:function(r,o){1&r&&y(0,"router-outlet")},dependencies:[Ip],encapsulation:2})}return e})();function Mp(e){const n=e.children&&e.children.map(Mp),t=n?{...e,children:n}:{...e};return!t.component&&!t.loadComponent&&(n||t.loadChildren)&&t.outlet&&t.outlet!==Y&&(t.component=BE),t}function En(e){return e.outlet||Y}function Ks(e){if(!e)return null;if(e.routeConfig?._injector)return e.routeConfig._injector;for(let n=e.parent;n;n=n.parent){const t=n.routeConfig;if(t?._loadedInjector)return t._loadedInjector;if(t?._injector)return t._injector}return null}class B3{constructor(n,t,r,o,i){this.routeReuseStrategy=n,this.futureState=t,this.currState=r,this.forwardEvent=o,this.inputBindingEnabled=i}activate(n){const t=this.futureState._root,r=this.currState?this.currState._root:null;this.deactivateChildRoutes(t,r,n),bp(this.futureState.root),this.activateChildRoutes(t,r,n)}deactivateChildRoutes(n,t,r){const o=fi(t);n.children.forEach(i=>{const s=i.value.outlet;this.deactivateRoutes(i,o[s],r),delete o[s]}),Object.values(o).forEach(i=>{this.deactivateRouteAndItsChildren(i,r)})}deactivateRoutes(n,t,r){const o=n.value,i=t?t.value:null;if(o===i)if(o.component){const s=r.getContext(o.outlet);s&&this.deactivateChildRoutes(n,t,s.children)}else this.deactivateChildRoutes(n,t,r);else i&&this.deactivateRouteAndItsChildren(t,r)}deactivateRouteAndItsChildren(n,t){n.value.component&&this.routeReuseStrategy.shouldDetach(n.value.snapshot)?this.detachAndStoreRouteSubtree(n,t):this.deactivateRouteAndOutlet(n,t)}detachAndStoreRouteSubtree(n,t){const r=t.getContext(n.value.outlet),o=r&&n.value.component?r.children:t,i=fi(n);for(const s of Object.values(i))this.deactivateRouteAndItsChildren(s,o);if(r&&r.outlet){const s=r.outlet.detach(),a=r.children.onOutletDeactivated();this.routeReuseStrategy.store(n.value.snapshot,{componentRef:s,route:n,contexts:a})}}deactivateRouteAndOutlet(n,t){const r=t.getContext(n.value.outlet),o=r&&n.value.component?r.children:t,i=fi(n);for(const s of Object.values(i))this.deactivateRouteAndItsChildren(s,o);r&&(r.outlet&&(r.outlet.deactivate(),r.children.onOutletDeactivated()),r.attachRef=null,r.route=null)}activateChildRoutes(n,t,r){const o=fi(t);n.children.forEach(i=>{this.activateRoutes(i,o[i.value.outlet],r),this.forwardEvent(new S3(i.value.snapshot))}),n.children.length&&this.forwardEvent(new I3(n.value.snapshot))}activateRoutes(n,t,r){const o=n.value,i=t?t.value:null;if(bp(o),o===i)if(o.component){const s=r.getOrCreateContext(o.outlet);this.activateChildRoutes(n,t,s.children)}else this.activateChildRoutes(n,t,r);else if(o.component){const s=r.getOrCreateContext(o.outlet);if(this.routeReuseStrategy.shouldAttach(o.snapshot)){const a=this.routeReuseStrategy.retrieve(o.snapshot);this.routeReuseStrategy.store(o.snapshot,null),s.children.onOutletReAttached(a.contexts),s.attachRef=a.componentRef,s.route=a.route.value,s.outlet&&s.outlet.attach(a.componentRef,a.route.value),bp(a.route.value),this.activateChildRoutes(n,null,s.children)}else{const a=Ks(o.snapshot);s.attachRef=null,s.route=o,s.injector=a,s.outlet&&s.outlet.activateWith(o,s.injector),this.activateChildRoutes(n,null,s.children)}}else this.activateChildRoutes(n,null,r)}}class $E{constructor(n){this.path=n,this.route=this.path[this.path.length-1]}}class kc{constructor(n,t){this.component=n,this.route=t}}function $3(e,n,t){const r=e._root;return ea(r,n?n._root:null,t,[r.value])}function hi(e,n){const t=Symbol(),r=n.get(e,t);return r===t?"function"!=typeof e||function C0(e){return null!==_a(e)}(e)?n.get(e):e:r}function ea(e,n,t,r,o={canDeactivateChecks:[],canActivateChecks:[]}){const i=fi(n);return e.children.forEach(s=>{(function G3(e,n,t,r,o={canDeactivateChecks:[],canActivateChecks:[]}){const i=e.value,s=n?n.value:null,a=t?t.getContext(e.value.outlet):null;if(s&&i.routeConfig===s.routeConfig){const l=function z3(e,n,t){if("function"==typeof t)return t(e,n);switch(t){case"pathParamsChange":return!Hr(e.url,n.url);case"pathParamsOrQueryParamsChange":return!Hr(e.url,n.url)||!Dn(e.queryParams,n.queryParams);case"always":return!0;case"paramsOrQueryParamsChange":return!Ep(e,n)||!Dn(e.queryParams,n.queryParams);default:return!Ep(e,n)}}(s,i,i.routeConfig.runGuardsAndResolvers);l?o.canActivateChecks.push(new $E(r)):(i.data=s.data,i._resolvedData=s._resolvedData),ea(e,n,i.component?a?a.children:null:t,r,o),l&&a&&a.outlet&&a.outlet.isActivated&&o.canDeactivateChecks.push(new kc(a.outlet.component,s))}else s&&ta(n,a,o),o.canActivateChecks.push(new $E(r)),ea(e,null,i.component?a?a.children:null:t,r,o)})(s,i[s.value.outlet],t,r.concat([s.value]),o),delete i[s.value.outlet]}),Object.entries(i).forEach(([s,a])=>ta(a,t.getContext(s),o)),o}function ta(e,n,t){const r=fi(e),o=e.value;Object.entries(r).forEach(([i,s])=>{ta(s,o.component?n?n.children.getContext(i):null:n,t)}),t.canDeactivateChecks.push(new kc(o.component&&n&&n.outlet&&n.outlet.isActivated?n.outlet.component:null,o))}function na(e){return"function"==typeof e}function HE(e){return e instanceof Dc||"EmptyError"===e?.name}const Pc=Symbol("INITIAL_VALUE");function pi(){return rn(e=>Kh(e.map(n=>n.pipe(ri(1),function cV(...e){const n=Cc(e);return Xe((t,r)=>{(n?ep(e,t,n):ep(e,t)).subscribe(r)})}(Pc)))).pipe(J(n=>{for(const t of n)if(!0!==t){if(t===Pc)return Pc;if(!1===t||t instanceof ai)return t}return!0}),on(n=>n!==Pc),ri(1)))}function GE(e){return function s0(...e){return Ig(e)}(st(n=>{if(ci(n))throw VE(0,n)}),J(n=>!0===n))}class Sp{constructor(n){this.segmentGroup=n||null}}class Tp extends Error{constructor(n){super(),this.urlTree=n}}function gi(e){return wc(new Sp(e))}class uj{constructor(n,t){this.urlSerializer=n,this.urlTree=t}lineralizeSegments(n,t){let r=[],o=t.root;for(;;){if(r=r.concat(o.segments),0===o.numberOfChildren)return B(r);if(o.numberOfChildren>1||!o.children[Y])return wc(new M(4e3,!1));o=o.children[Y]}}applyRedirectCommands(n,t,r){const o=this.applyRedirectCreateUrlTree(t,this.urlSerializer.parse(t),n,r);if(t.startsWith("/"))throw new Tp(o);return o}applyRedirectCreateUrlTree(n,t,r,o){const i=this.createSegmentGroup(n,t.root,r,o);return new ai(i,this.createQueryParams(t.queryParams,this.urlTree.queryParams),t.fragment)}createQueryParams(n,t){const r={};return Object.entries(n).forEach(([o,i])=>{if("string"==typeof i&&i.startsWith(":")){const a=i.substring(1);r[o]=t[a]}else r[o]=i}),r}createSegmentGroup(n,t,r,o){const i=this.createSegments(n,t.segments,r,o);let s={};return Object.entries(t.children).forEach(([a,l])=>{s[a]=this.createSegmentGroup(n,l,r,o)}),new pe(i,s)}createSegments(n,t,r,o){return t.map(i=>i.path.startsWith(":")?this.findPosParam(n,i,o):this.findOrReturn(i,r))}findPosParam(n,t,r){const o=r[t.path.substring(1)];if(!o)throw new M(4001,!1);return o}findOrReturn(n,t){let r=0;for(const o of t){if(o.path===n.path)return t.splice(r),o;r++}return n}}const Ap={matched:!1,consumedSegments:[],remainingSegments:[],parameters:{},positionalParamSegments:{}};function dj(e,n,t,r,o){const i=Np(e,n,t);return i.matched?(r=function P3(e,n){return e.providers&&!e._injector&&(e._injector=ah(e.providers,n,`Route: ${e.path}`)),e._injector??n}(n,r),function aj(e,n,t,r){const o=n.canMatch;return o&&0!==o.length?B(o.map(s=>{const a=hi(s,e);return fr(function X3(e){return e&&na(e.canMatch)}(a)?a.canMatch(n,t):Kn(e,()=>a(n,t)))})).pipe(pi(),GE()):B(!0)}(r,n,t).pipe(J(s=>!0===s?i:{...Ap}))):B(i)}function Np(e,n,t){if("**"===n.path)return function fj(e){return{matched:!0,parameters:e.length>0?uE(e).parameters:{},consumedSegments:e,remainingSegments:[],positionalParamSegments:{}}}(t);if(""===n.path)return"full"===n.pathMatch&&(e.hasChildren()||t.length>0)?{...Ap}:{matched:!0,consumedSegments:[],remainingSegments:t,parameters:{},positionalParamSegments:{}};const o=(n.matcher||zV)(t,e,n);if(!o)return{...Ap};const i={};Object.entries(o.posParams??{}).forEach(([a,l])=>{i[a]=l.path});const s=o.consumed.length>0?{...i,...o.consumed[o.consumed.length-1].parameters}:i;return{matched:!0,consumedSegments:o.consumed,remainingSegments:t.slice(o.consumed.length),parameters:s,positionalParamSegments:o.posParams??{}}}function zE(e,n,t,r){return t.length>0&&function gj(e,n,t){return t.some(r=>Fc(e,n,r)&&En(r)!==Y)}(e,t,r)?{segmentGroup:new pe(n,pj(r,new pe(t,e.children))),slicedSegments:[]}:0===t.length&&function mj(e,n,t){return t.some(r=>Fc(e,n,r))}(e,t,r)?{segmentGroup:new pe(e.segments,hj(e,t,r,e.children)),slicedSegments:t}:{segmentGroup:new pe(e.segments,e.children),slicedSegments:t}}function hj(e,n,t,r){const o={};for(const i of t)if(Fc(e,n,i)&&!r[En(i)]){const s=new pe([],{});o[En(i)]=s}return{...r,...o}}function pj(e,n){const t={};t[Y]=n;for(const r of e)if(""===r.path&&En(r)!==Y){const o=new pe([],{});t[En(r)]=o}return t}function Fc(e,n,t){return(!(e.hasChildren()||n.length>0)||"full"!==t.pathMatch)&&""===t.path}class _j{}class wj{constructor(n,t,r,o,i,s,a){this.injector=n,this.configLoader=t,this.rootComponentType=r,this.config=o,this.urlTree=i,this.paramsInheritanceStrategy=s,this.urlSerializer=a,this.applyRedirects=new uj(this.urlSerializer,this.urlTree),this.absoluteRedirectCount=0,this.allowRedirects=!0}noMatchError(n){return new M(4002,`'${n.segmentGroup}'`)}recognize(){const n=zE(this.urlTree.root,[],[],this.config).segmentGroup;return this.match(n).pipe(J(t=>{const r=new Dp([],Object.freeze({}),Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,{},Y,this.rootComponentType,null,{}),o=new sn(r,t),i=new OE("",o),s=function d3(e,n,t=null,r=null){return wE(DE(e),n,t,r)}(r,[],this.urlTree.queryParams,this.urlTree.fragment);return s.queryParams=this.urlTree.queryParams,i.url=this.urlSerializer.serialize(s),this.inheritParamsAndData(i._root,null),{state:i,tree:s}}))}match(n){return this.processSegmentGroup(this.injector,this.config,n,Y).pipe(ii(r=>{if(r instanceof Tp)return this.urlTree=r.urlTree,this.match(r.urlTree.root);throw r instanceof Sp?this.noMatchError(r):r}))}inheritParamsAndData(n,t){const r=n.value,o=Cp(r,t,this.paramsInheritanceStrategy);r.params=Object.freeze(o.params),r.data=Object.freeze(o.data),n.children.forEach(i=>this.inheritParamsAndData(i,r))}processSegmentGroup(n,t,r,o){return 0===r.segments.length&&r.hasChildren()?this.processChildren(n,t,r):this.processSegment(n,t,r,r.segments,o,!0).pipe(J(i=>i instanceof sn?[i]:[]))}processChildren(n,t,r){const o=[];for(const i of Object.keys(r.children))"primary"===i?o.unshift(i):o.push(i);return Ye(o).pipe(oi(i=>{const s=r.children[i],a=function j3(e,n){const t=e.filter(r=>En(r)===n);return t.push(...e.filter(r=>En(r)!==n)),t}(t,i);return this.processSegmentGroup(n,a,s,i)}),function fV(e,n){return Xe(function dV(e,n,t,r,o){return(i,s)=>{let a=t,l=n,c=0;i.subscribe($e(s,u=>{const d=c++;l=a?e(l,u,d):(a=!0,u),r&&s.next(l)},o&&(()=>{a&&s.next(l),s.complete()})))}}(e,n,arguments.length>=2,!0))}((i,s)=>(i.push(...s),i)),bc(null),function hV(e,n){const t=arguments.length>=2;return r=>r.pipe(e?on((o,i)=>e(o,i,r)):wr,np(1),t?bc(n):Wb(()=>new Dc))}(),Ke(i=>{if(null===i)return gi(r);const s=qE(i);return function bj(e){e.sort((n,t)=>n.value.outlet===Y?-1:t.value.outlet===Y?1:n.value.outlet.localeCompare(t.value.outlet))}(s),B(s)}))}processSegment(n,t,r,o,i,s){return Ye(t).pipe(oi(a=>this.processSegmentAgainstRoute(a._injector??n,t,a,r,o,i,s).pipe(ii(l=>{if(l instanceof Sp)return B(null);throw l}))),$r(a=>!!a),ii(a=>{if(HE(a))return function yj(e,n,t){return 0===n.length&&!e.children[t]}(r,o,i)?B(new _j):gi(r);throw a}))}processSegmentAgainstRoute(n,t,r,o,i,s,a){return function vj(e,n,t,r){return!!(En(e)===r||r!==Y&&Fc(n,t,e))&&Np(n,e,t).matched}(r,o,i,s)?void 0===r.redirectTo?this.matchSegmentAgainstRoute(n,o,r,i,s):this.allowRedirects&&a?this.expandSegmentAgainstRouteUsingRedirect(n,o,t,r,i,s):gi(o):gi(o)}expandSegmentAgainstRouteUsingRedirect(n,t,r,o,i,s){const{matched:a,consumedSegments:l,positionalParamSegments:c,remainingSegments:u}=Np(t,o,i);if(!a)return gi(t);o.redirectTo.startsWith("/")&&(this.absoluteRedirectCount++,this.absoluteRedirectCount>31&&(this.allowRedirects=!1));const d=this.applyRedirects.applyRedirectCommands(l,o.redirectTo,c);return this.applyRedirects.lineralizeSegments(o,d).pipe(Ke(g=>this.processSegment(n,r,t,g.concat(u),s,!1)))}matchSegmentAgainstRoute(n,t,r,o,i){const s=dj(t,r,o,n);return"**"===r.path&&(t.children={}),s.pipe(rn(a=>a.matched?this.getChildConfig(n=r._injector??n,r,o).pipe(rn(({routes:l})=>{const c=r._loadedInjector??n,{consumedSegments:u,remainingSegments:d,parameters:g}=a,m=new Dp(u,g,Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,function Ij(e){return e.data||{}}(r),En(r),r.component??r._loadedComponent??null,r,function Mj(e){return e.resolve||{}}(r)),{segmentGroup:v,slicedSegments:_}=zE(t,u,d,l);if(0===_.length&&v.hasChildren())return this.processChildren(c,l,v).pipe(J(I=>null===I?null:new sn(m,I)));if(0===l.length&&0===_.length)return B(new sn(m,[]));const D=En(r)===i;return this.processSegment(c,l,v,_,D?Y:i,!0).pipe(J(I=>new sn(m,I instanceof sn?[I]:[])))})):gi(t)))}getChildConfig(n,t,r){return t.children?B({routes:t.children,injector:n}):t.loadChildren?void 0!==t._loadedRoutes?B({routes:t._loadedRoutes,injector:t._loadedInjector}):function sj(e,n,t,r){const o=n.canLoad;return void 0===o||0===o.length?B(!0):B(o.map(s=>{const a=hi(s,e);return fr(function W3(e){return e&&na(e.canLoad)}(a)?a.canLoad(n,t):Kn(e,()=>a(n,t)))})).pipe(pi(),GE())}(n,t,r).pipe(Ke(o=>o?this.configLoader.loadChildren(n,t).pipe(st(i=>{t._loadedRoutes=i.routes,t._loadedInjector=i.injector})):function cj(e){return wc(jE(!1,$t.GuardRejected))}())):B({routes:[],injector:n})}}function Ej(e){const n=e.value.routeConfig;return n&&""===n.path}function qE(e){const n=[],t=new Set;for(const r of e){if(!Ej(r)){n.push(r);continue}const o=n.find(i=>r.value.routeConfig===i.value.routeConfig);void 0!==o?(o.children.push(...r.children),t.add(o)):n.push(r)}for(const r of t){const o=qE(r.children);n.push(new sn(r.value,o))}return n.filter(r=>!t.has(r))}function WE(e){const n=e.children.map(t=>WE(t)).flat();return[e,...n]}function xp(e){return rn(n=>{const t=e(n);return t?Ye(t).pipe(J(()=>n)):B(n)})}let ZE=(()=>{class e{buildTitle(t){let r,o=t.root;for(;void 0!==o;)r=this.getResolvedTitleForRoute(o)??r,o=o.children.find(i=>i.outlet===Y);return r}getResolvedTitleForRoute(t){return t.data[zs]}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=R({token:e,factory:()=>T(Rj),providedIn:"root"})}return e})(),Rj=(()=>{class e extends ZE{constructor(t){super(),this.title=t}updateTitle(t){const r=this.buildTitle(t);void 0!==r&&this.title.setTitle(r)}static#e=this.\u0275fac=function(r){return new(r||e)(P(UV))};static#t=this.\u0275prov=R({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();const mi=new N("",{providedIn:"root",factory:()=>({})}),vi=new N("");let Rp=(()=>{class e{constructor(){this.componentLoaders=new WeakMap,this.childrenLoaders=new WeakMap,this.compiler=T(fw)}loadComponent(t){if(this.componentLoaders.get(t))return this.componentLoaders.get(t);if(t._loadedComponent)return B(t._loadedComponent);this.onLoadStartListener&&this.onLoadStartListener(t);const r=fr(t.loadComponent()).pipe(J(YE),st(i=>{this.onLoadEndListener&&this.onLoadEndListener(t),t._loadedComponent=i}),$s(()=>{this.componentLoaders.delete(t)})),o=new qb(r,()=>new an).pipe(tp());return this.componentLoaders.set(t,o),o}loadChildren(t,r){if(this.childrenLoaders.get(r))return this.childrenLoaders.get(r);if(r._loadedRoutes)return B({routes:r._loadedRoutes,injector:r._loadedInjector});this.onLoadStartListener&&this.onLoadStartListener(r);const i=function Oj(e,n,t,r){return fr(e.loadChildren()).pipe(J(YE),Ke(o=>o instanceof kD||Array.isArray(o)?B(o):Ye(n.compileModuleAsync(o))),J(o=>{r&&r(e);let i,s,a=!1;return Array.isArray(o)?(s=o,!0):(i=o.create(t).injector,s=i.get(vi,[],{optional:!0,self:!0}).flat()),{routes:s.map(Mp),injector:i}}))}(r,this.compiler,t,this.onLoadEndListener).pipe($s(()=>{this.childrenLoaders.delete(r)})),s=new qb(i,()=>new an).pipe(tp());return this.childrenLoaders.set(r,s),s}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=R({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();function YE(e){return function kj(e){return e&&"object"==typeof e&&"default"in e}(e)?e.default:e}let Op=(()=>{class e{static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=R({token:e,factory:()=>T(Pj),providedIn:"root"})}return e})(),Pj=(()=>{class e{shouldProcessUrl(t){return!0}extract(t){return t}merge(t,r){return t}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=R({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();const QE=new N(""),XE=new N("");function Fj(e,n,t){const r=e.get(XE),o=e.get(It);return e.get(se).runOutsideAngular(()=>{if(!o.startViewTransition||r.skipNextTransition)return r.skipNextTransition=!1,Promise.resolve();let i;const s=new Promise(c=>{i=c}),a=o.startViewTransition(()=>(i(),function Lj(e){return new Promise(n=>{Qy(n,{injector:e})})}(e))),{onViewTransitionCreated:l}=r;return l&&Kn(e,()=>l({transition:a,from:n,to:t})),s})}let Lc=(()=>{class e{get hasRequestedNavigation(){return 0!==this.navigationId}constructor(){this.currentNavigation=null,this.currentTransition=null,this.lastSuccessfulNavigation=null,this.events=new an,this.transitionAbortSubject=new an,this.configLoader=T(Rp),this.environmentInjector=T(Nt),this.urlSerializer=T(li),this.rootContexts=T(Xs),this.location=T(Vs),this.inputBindingEnabled=null!==T(Oc,{optional:!0}),this.titleStrategy=T(ZE),this.options=T(mi,{optional:!0})||{},this.paramsInheritanceStrategy=this.options.paramsInheritanceStrategy||"emptyOnly",this.urlHandlingStrategy=T(Op),this.createViewTransition=T(QE,{optional:!0}),this.navigationId=0,this.afterPreactivation=()=>B(void 0),this.rootComponentType=null,this.configLoader.onLoadEndListener=o=>this.events.next(new b3(o)),this.configLoader.onLoadStartListener=o=>this.events.next(new w3(o))}complete(){this.transitions?.complete()}handleNavigationRequest(t){const r=++this.navigationId;this.transitions?.next({...this.transitions.value,...t,id:r})}setupNavigations(t,r,o){return this.transitions=new Ft({id:0,currentUrlTree:r,currentRawUrl:r,extractedUrl:this.urlHandlingStrategy.extract(r),urlAfterRedirects:this.urlHandlingStrategy.extract(r),rawUrl:r,extras:{},resolve:null,reject:null,promise:Promise.resolve(!0),source:Qs,restoredState:null,currentSnapshot:o.snapshot,targetSnapshot:null,currentRouterState:o,targetRouterState:null,guards:{canActivateChecks:[],canDeactivateChecks:[]},guardsResult:null}),this.transitions.pipe(on(i=>0!==i.id),J(i=>({...i,extractedUrl:this.urlHandlingStrategy.extract(i.rawUrl)})),rn(i=>{this.currentTransition=i;let s=!1,a=!1;return B(i).pipe(st(l=>{this.currentNavigation={id:l.id,initialUrl:l.rawUrl,extractedUrl:l.extractedUrl,trigger:l.source,extras:l.extras,previousNavigation:this.lastSuccessfulNavigation?{...this.lastSuccessfulNavigation,previousNavigation:null}:null}}),rn(l=>{const c=!t.navigated||this.isUpdatingInternalState()||this.isUpdatedBrowserUrl();if(!c&&"reload"!==(l.extras.onSameUrlNavigation??t.onSameUrlNavigation)){const d="";return this.events.next(new di(l.id,this.urlSerializer.serialize(l.rawUrl),d,xc.IgnoredSameUrlNavigation)),l.resolve(null),qn}if(this.urlHandlingStrategy.shouldProcessUrl(l.rawUrl))return B(l).pipe(rn(d=>{const g=this.transitions?.getValue();return this.events.next(new Nc(d.id,this.urlSerializer.serialize(d.extractedUrl),d.source,d.restoredState)),g!==this.transitions?.getValue()?qn:Promise.resolve(d)}),function Sj(e,n,t,r,o,i){return Ke(s=>function Cj(e,n,t,r,o,i,s="emptyOnly"){return new wj(e,n,t,r,o,s,i).recognize()}(e,n,t,r,s.extractedUrl,o,i).pipe(J(({state:a,tree:l})=>({...s,targetSnapshot:a,urlAfterRedirects:l}))))}(this.environmentInjector,this.configLoader,this.rootComponentType,t.config,this.urlSerializer,this.paramsInheritanceStrategy),st(d=>{i.targetSnapshot=d.targetSnapshot,i.urlAfterRedirects=d.urlAfterRedirects,this.currentNavigation={...this.currentNavigation,finalUrl:d.urlAfterRedirects};const g=new TE(d.id,this.urlSerializer.serialize(d.extractedUrl),this.urlSerializer.serialize(d.urlAfterRedirects),d.targetSnapshot);this.events.next(g)}));if(c&&this.urlHandlingStrategy.shouldProcessUrl(l.currentRawUrl)){const{id:d,extractedUrl:g,source:m,restoredState:v,extras:_}=l,D=new Nc(d,this.urlSerializer.serialize(g),m,v);this.events.next(D);const I=RE(this.rootComponentType).snapshot;return this.currentTransition=i={...l,targetSnapshot:I,urlAfterRedirects:g,extras:{..._,skipLocationChange:!1,replaceUrl:!1}},this.currentNavigation.finalUrl=g,B(i)}{const d="";return this.events.next(new di(l.id,this.urlSerializer.serialize(l.extractedUrl),d,xc.IgnoredByUrlHandlingStrategy)),l.resolve(null),qn}}),st(l=>{const c=new y3(l.id,this.urlSerializer.serialize(l.extractedUrl),this.urlSerializer.serialize(l.urlAfterRedirects),l.targetSnapshot);this.events.next(c)}),J(l=>(this.currentTransition=i={...l,guards:$3(l.targetSnapshot,l.currentSnapshot,this.rootContexts)},i)),function J3(e,n){return Ke(t=>{const{targetSnapshot:r,currentSnapshot:o,guards:{canActivateChecks:i,canDeactivateChecks:s}}=t;return 0===s.length&&0===i.length?B({...t,guardsResult:!0}):function K3(e,n,t,r){return Ye(e).pipe(Ke(o=>function ij(e,n,t,r,o){const i=n&&n.routeConfig?n.routeConfig.canDeactivate:null;return i&&0!==i.length?B(i.map(a=>{const l=Ks(n)??o,c=hi(a,l);return fr(function Q3(e){return e&&na(e.canDeactivate)}(c)?c.canDeactivate(e,n,t,r):Kn(l,()=>c(e,n,t,r))).pipe($r())})).pipe(pi()):B(!0)}(o.component,o.route,t,n,r)),$r(o=>!0!==o,!0))}(s,r,o,e).pipe(Ke(a=>a&&function q3(e){return"boolean"==typeof e}(a)?function ej(e,n,t,r){return Ye(n).pipe(oi(o=>ep(function nj(e,n){return null!==e&&n&&n(new E3(e)),B(!0)}(o.route.parent,r),function tj(e,n){return null!==e&&n&&n(new M3(e)),B(!0)}(o.route,r),function oj(e,n,t){const r=n[n.length-1],i=n.slice(0,n.length-1).reverse().map(s=>function H3(e){const n=e.routeConfig?e.routeConfig.canActivateChild:null;return n&&0!==n.length?{node:e,guards:n}:null}(s)).filter(s=>null!==s).map(s=>zb(()=>B(s.guards.map(l=>{const c=Ks(s.node)??t,u=hi(l,c);return fr(function Y3(e){return e&&na(e.canActivateChild)}(u)?u.canActivateChild(r,e):Kn(c,()=>u(r,e))).pipe($r())})).pipe(pi())));return B(i).pipe(pi())}(e,o.path,t),function rj(e,n,t){const r=n.routeConfig?n.routeConfig.canActivate:null;if(!r||0===r.length)return B(!0);const o=r.map(i=>zb(()=>{const s=Ks(n)??t,a=hi(i,s);return fr(function Z3(e){return e&&na(e.canActivate)}(a)?a.canActivate(n,e):Kn(s,()=>a(n,e))).pipe($r())}));return B(o).pipe(pi())}(e,o.route,t))),$r(o=>!0!==o,!0))}(r,i,e,n):B(a)),J(a=>({...t,guardsResult:a})))})}(this.environmentInjector,l=>this.events.next(l)),st(l=>{if(i.guardsResult=l.guardsResult,ci(l.guardsResult))throw VE(0,l.guardsResult);const c=new _3(l.id,this.urlSerializer.serialize(l.extractedUrl),this.urlSerializer.serialize(l.urlAfterRedirects),l.targetSnapshot,!!l.guardsResult);this.events.next(c)}),on(l=>!!l.guardsResult||(this.cancelNavigationTransition(l,"",$t.GuardRejected),!1)),xp(l=>{if(l.guards.canActivateChecks.length)return B(l).pipe(st(c=>{const u=new C3(c.id,this.urlSerializer.serialize(c.extractedUrl),this.urlSerializer.serialize(c.urlAfterRedirects),c.targetSnapshot);this.events.next(u)}),rn(c=>{let u=!1;return B(c).pipe(function Tj(e,n){return Ke(t=>{const{targetSnapshot:r,guards:{canActivateChecks:o}}=t;if(!o.length)return B(t);const i=new Set(o.map(l=>l.route)),s=new Set;for(const l of i)if(!s.has(l))for(const c of WE(l))s.add(c);let a=0;return Ye(s).pipe(oi(l=>i.has(l)?function Aj(e,n,t,r){const o=e.routeConfig,i=e._resolve;return void 0!==o?.title&&!PE(o)&&(i[zs]=o.title),function Nj(e,n,t,r){const o=up(e);if(0===o.length)return B({});const i={};return Ye(o).pipe(Ke(s=>function xj(e,n,t,r){const o=Ks(n)??r,i=hi(e,o);return fr(i.resolve?i.resolve(n,t):Kn(o,()=>i(n,t)))}(e[s],n,t,r).pipe($r(),st(a=>{i[s]=a}))),np(1),function pV(e){return J(()=>e)}(i),ii(s=>HE(s)?qn:wc(s)))}(i,e,n,r).pipe(J(s=>(e._resolvedData=s,e.data=Cp(e,e.parent,t).resolve,null)))}(l,r,e,n):(l.data=Cp(l,l.parent,e).resolve,B(void 0))),st(()=>a++),np(1),Ke(l=>a===s.size?B(t):qn))})}(this.paramsInheritanceStrategy,this.environmentInjector),st({next:()=>u=!0,complete:()=>{u||this.cancelNavigationTransition(c,"",$t.NoDataFromResolver)}}))}),st(c=>{const u=new D3(c.id,this.urlSerializer.serialize(c.extractedUrl),this.urlSerializer.serialize(c.urlAfterRedirects),c.targetSnapshot);this.events.next(u)}))}),xp(l=>{const c=u=>{const d=[];u.routeConfig?.loadComponent&&!u.routeConfig._loadedComponent&&d.push(this.configLoader.loadComponent(u.routeConfig).pipe(st(g=>{u.component=g}),J(()=>{})));for(const g of u.children)d.push(...c(g));return d};return Kh(c(l.targetSnapshot.root)).pipe(bc(null),ri(1))}),xp(()=>this.afterPreactivation()),rn(()=>{const{currentSnapshot:l,targetSnapshot:c}=i,u=this.createViewTransition?.(this.environmentInjector,l.root,c.root);return u?Ye(u).pipe(J(()=>i)):B(i)}),J(l=>{const c=function x3(e,n,t){const r=Js(e,n._root,t?t._root:void 0);return new xE(r,n)}(t.routeReuseStrategy,l.targetSnapshot,l.currentRouterState);return this.currentTransition=i={...l,targetRouterState:c},this.currentNavigation.targetRouterState=c,i}),st(()=>{this.events.next(new mp)}),((e,n,t,r)=>J(o=>(new B3(n,o.targetRouterState,o.currentRouterState,t,r).activate(e),o)))(this.rootContexts,t.routeReuseStrategy,l=>this.events.next(l),this.inputBindingEnabled),ri(1),st({next:l=>{s=!0,this.lastSuccessfulNavigation=this.currentNavigation,this.events.next(new bn(l.id,this.urlSerializer.serialize(l.extractedUrl),this.urlSerializer.serialize(l.urlAfterRedirects))),this.titleStrategy?.updateTitle(l.targetRouterState.snapshot),l.resolve(!0)},complete:()=>{s=!0}}),function gV(e){return Xe((n,t)=>{Cn(e).subscribe($e(t,()=>t.complete(),pu)),!t.closed&&n.subscribe(t)})}(this.transitionAbortSubject.pipe(st(l=>{throw l}))),$s(()=>{!s&&!a&&this.cancelNavigationTransition(i,"",$t.SupersededByNewNavigation),this.currentNavigation?.id===i.id&&(this.currentNavigation=null)}),ii(l=>{if(a=!0,UE(l))this.events.next(new ui(i.id,this.urlSerializer.serialize(i.extractedUrl),l.message,l.cancellationCode)),function k3(e){return UE(e)&&ci(e.url)}(l)?this.events.next(new vp(l.url)):i.resolve(!1);else{this.events.next(new Rc(i.id,this.urlSerializer.serialize(i.extractedUrl),l,i.targetSnapshot??void 0));try{i.resolve(t.errorHandler(l))}catch(c){this.options.resolveNavigationPromiseOnError?i.resolve(!1):i.reject(c)}}return qn}))}))}cancelNavigationTransition(t,r,o){const i=new ui(t.id,this.urlSerializer.serialize(t.extractedUrl),r,o);this.events.next(i),t.resolve(!1)}isUpdatingInternalState(){return this.currentTransition?.extractedUrl.toString()!==this.currentTransition?.currentUrlTree.toString()}isUpdatedBrowserUrl(){return this.urlHandlingStrategy.extract(this.urlSerializer.parse(this.location.path(!0))).toString()!==this.currentTransition?.extractedUrl.toString()&&!this.currentTransition?.extras.skipLocationChange}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=R({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();function Vj(e){return e!==Qs}let jj=(()=>{class e{static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=R({token:e,factory:()=>T(Bj),providedIn:"root"})}return e})();class Uj{shouldDetach(n){return!1}store(n,t){}shouldAttach(n){return!1}retrieve(n){return null}shouldReuseRoute(n,t){return n.routeConfig===t.routeConfig}}let Bj=(()=>{class e extends Uj{static#e=this.\u0275fac=(()=>{let t;return function(o){return(t||(t=Qe(e)))(o||e)}})();static#t=this.\u0275prov=R({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})(),JE=(()=>{class e{static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=R({token:e,factory:()=>T($j),providedIn:"root"})}return e})(),$j=(()=>{class e extends JE{constructor(){super(...arguments),this.location=T(Vs),this.urlSerializer=T(li),this.options=T(mi,{optional:!0})||{},this.canceledNavigationResolution=this.options.canceledNavigationResolution||"replace",this.urlHandlingStrategy=T(Op),this.urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred",this.currentUrlTree=new ai,this.rawUrlTree=this.currentUrlTree,this.currentPageId=0,this.lastSuccessfulId=-1,this.routerState=RE(null),this.stateMemento=this.createStateMemento()}getCurrentUrlTree(){return this.currentUrlTree}getRawUrlTree(){return this.rawUrlTree}restoredState(){return this.location.getState()}get browserPageId(){return"computed"!==this.canceledNavigationResolution?this.currentPageId:this.restoredState()?.\u0275routerPageId??this.currentPageId}getRouterState(){return this.routerState}createStateMemento(){return{rawUrlTree:this.rawUrlTree,currentUrlTree:this.currentUrlTree,routerState:this.routerState}}registerNonRouterCurrentEntryChangeListener(t){return this.location.subscribe(r=>{"popstate"===r.type&&t(r.url,r.state)})}handleRouterEvent(t,r){if(t instanceof Nc)this.stateMemento=this.createStateMemento();else if(t instanceof di)this.rawUrlTree=r.initialUrl;else if(t instanceof TE){if("eager"===this.urlUpdateStrategy&&!r.extras.skipLocationChange){const o=this.urlHandlingStrategy.merge(r.finalUrl,r.initialUrl);this.setBrowserUrl(o,r)}}else t instanceof mp?(this.currentUrlTree=r.finalUrl,this.rawUrlTree=this.urlHandlingStrategy.merge(r.finalUrl,r.initialUrl),this.routerState=r.targetRouterState,"deferred"===this.urlUpdateStrategy&&(r.extras.skipLocationChange||this.setBrowserUrl(this.rawUrlTree,r))):t instanceof ui&&(t.code===$t.GuardRejected||t.code===$t.NoDataFromResolver)?this.restoreHistory(r):t instanceof Rc?this.restoreHistory(r,!0):t instanceof bn&&(this.lastSuccessfulId=t.id,this.currentPageId=this.browserPageId)}setBrowserUrl(t,r){const o=this.urlSerializer.serialize(t);if(this.location.isCurrentPathEqualTo(o)||r.extras.replaceUrl){const s={...r.extras.state,...this.generateNgRouterState(r.id,this.browserPageId)};this.location.replaceState(o,"",s)}else{const i={...r.extras.state,...this.generateNgRouterState(r.id,this.browserPageId+1)};this.location.go(o,"",i)}}restoreHistory(t,r=!1){if("computed"===this.canceledNavigationResolution){const i=this.currentPageId-this.browserPageId;0!==i?this.location.historyGo(i):this.currentUrlTree===t.finalUrl&&0===i&&(this.resetState(t),this.resetUrlToCurrentUrlTree())}else"replace"===this.canceledNavigationResolution&&(r&&this.resetState(t),this.resetUrlToCurrentUrlTree())}resetState(t){this.routerState=this.stateMemento.routerState,this.currentUrlTree=this.stateMemento.currentUrlTree,this.rawUrlTree=this.urlHandlingStrategy.merge(this.currentUrlTree,t.finalUrl??this.rawUrlTree)}resetUrlToCurrentUrlTree(){this.location.replaceState(this.urlSerializer.serialize(this.rawUrlTree),"",this.generateNgRouterState(this.lastSuccessfulId,this.currentPageId))}generateNgRouterState(t,r){return"computed"===this.canceledNavigationResolution?{navigationId:t,\u0275routerPageId:r}:{navigationId:t}}static#e=this.\u0275fac=(()=>{let t;return function(o){return(t||(t=Qe(e)))(o||e)}})();static#t=this.\u0275prov=R({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();var ra=function(e){return e[e.COMPLETE=0]="COMPLETE",e[e.FAILED=1]="FAILED",e[e.REDIRECTING=2]="REDIRECTING",e}(ra||{});function KE(e,n){e.events.pipe(on(t=>t instanceof bn||t instanceof ui||t instanceof Rc||t instanceof di),J(t=>t instanceof bn||t instanceof di?ra.COMPLETE:t instanceof ui&&(t.code===$t.Redirect||t.code===$t.SupersededByNewNavigation)?ra.REDIRECTING:ra.FAILED),on(t=>t!==ra.REDIRECTING),ri(1)).subscribe(()=>{n()})}function Hj(e){throw e}const Gj={paths:"exact",fragment:"ignored",matrixParams:"ignored",queryParams:"exact"},zj={paths:"subset",fragment:"ignored",matrixParams:"ignored",queryParams:"subset"};let Ht=(()=>{class e{get currentUrlTree(){return this.stateManager.getCurrentUrlTree()}get rawUrlTree(){return this.stateManager.getRawUrlTree()}get events(){return this._events}get routerState(){return this.stateManager.getRouterState()}constructor(){this.disposed=!1,this.isNgZoneEnabled=!1,this.console=T(dw),this.stateManager=T(JE),this.options=T(mi,{optional:!0})||{},this.pendingTasks=T(Ko),this.urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred",this.navigationTransitions=T(Lc),this.urlSerializer=T(li),this.location=T(Vs),this.urlHandlingStrategy=T(Op),this._events=new an,this.errorHandler=this.options.errorHandler||Hj,this.navigated=!1,this.routeReuseStrategy=T(jj),this.onSameUrlNavigation=this.options.onSameUrlNavigation||"ignore",this.config=T(vi,{optional:!0})?.flat()??[],this.componentInputBindingEnabled=!!T(Oc,{optional:!0}),this.eventsSubscription=new gt,this.isNgZoneEnabled=T(se)instanceof se&&se.isInAngularZone(),this.resetConfig(this.config),this.navigationTransitions.setupNavigations(this,this.currentUrlTree,this.routerState).subscribe({error:t=>{this.console.warn(t)}}),this.subscribeToNavigationEvents()}subscribeToNavigationEvents(){const t=this.navigationTransitions.events.subscribe(r=>{try{const o=this.navigationTransitions.currentTransition,i=this.navigationTransitions.currentNavigation;if(null!==o&&null!==i)if(this.stateManager.handleRouterEvent(r,i),r instanceof ui&&r.code!==$t.Redirect&&r.code!==$t.SupersededByNewNavigation)this.navigated=!0;else if(r instanceof bn)this.navigated=!0;else if(r instanceof vp){const s=this.urlHandlingStrategy.merge(r.url,o.currentRawUrl),a={info:o.extras.info,skipLocationChange:o.extras.skipLocationChange,replaceUrl:"eager"===this.urlUpdateStrategy||Vj(o.source)};this.scheduleNavigation(s,Qs,null,a,{resolve:o.resolve,reject:o.reject,promise:o.promise})}(function Wj(e){return!(e instanceof mp||e instanceof vp)})(r)&&this._events.next(r)}catch(o){this.navigationTransitions.transitionAbortSubject.next(o)}});this.eventsSubscription.add(t)}resetRootComponentType(t){this.routerState.root.component=t,this.navigationTransitions.rootComponentType=t}initialNavigation(){this.setUpLocationChangeListener(),this.navigationTransitions.hasRequestedNavigation||this.navigateToSyncWithBrowser(this.location.path(!0),Qs,this.stateManager.restoredState())}setUpLocationChangeListener(){this.nonRouterCurrentEntryChangeSubscription??=this.stateManager.registerNonRouterCurrentEntryChangeListener((t,r)=>{setTimeout(()=>{this.navigateToSyncWithBrowser(t,"popstate",r)},0)})}navigateToSyncWithBrowser(t,r,o){const i={replaceUrl:!0},s=o?.navigationId?o:null;if(o){const l={...o};delete l.navigationId,delete l.\u0275routerPageId,0!==Object.keys(l).length&&(i.state=l)}const a=this.parseUrl(t);this.scheduleNavigation(a,r,s,i)}get url(){return this.serializeUrl(this.currentUrlTree)}getCurrentNavigation(){return this.navigationTransitions.currentNavigation}get lastSuccessfulNavigation(){return this.navigationTransitions.lastSuccessfulNavigation}resetConfig(t){this.config=t.map(Mp),this.navigated=!1}ngOnDestroy(){this.dispose()}dispose(){this.navigationTransitions.complete(),this.nonRouterCurrentEntryChangeSubscription&&(this.nonRouterCurrentEntryChangeSubscription.unsubscribe(),this.nonRouterCurrentEntryChangeSubscription=void 0),this.disposed=!0,this.eventsSubscription.unsubscribe()}createUrlTree(t,r={}){const{relativeTo:o,queryParams:i,fragment:s,queryParamsHandling:a,preserveFragment:l}=r,c=l?this.currentUrlTree.fragment:s;let d,u=null;switch(a){case"merge":u={...this.currentUrlTree.queryParams,...i};break;case"preserve":u=this.currentUrlTree.queryParams;break;default:u=i||null}null!==u&&(u=this.removeEmptyProps(u));try{d=DE(o?o.snapshot:this.routerState.snapshot.root)}catch{("string"!=typeof t[0]||!t[0].startsWith("/"))&&(t=[]),d=this.currentUrlTree.root}return wE(d,t,u,c??null)}navigateByUrl(t,r={skipLocationChange:!1}){const o=ci(t)?t:this.parseUrl(t),i=this.urlHandlingStrategy.merge(o,this.rawUrlTree);return this.scheduleNavigation(i,Qs,null,r)}navigate(t,r={skipLocationChange:!1}){return function qj(e){for(let n=0;n(null!=i&&(r[o]=i),r),{})}scheduleNavigation(t,r,o,i,s){if(this.disposed)return Promise.resolve(!1);let a,l,c;s?(a=s.resolve,l=s.reject,c=s.promise):c=new Promise((d,g)=>{a=d,l=g});const u=this.pendingTasks.add();return KE(this,()=>{queueMicrotask(()=>this.pendingTasks.remove(u))}),this.navigationTransitions.handleNavigationRequest({source:r,restoredState:o,currentUrlTree:this.currentUrlTree,currentRawUrl:this.currentUrlTree,rawUrl:t,extras:i,resolve:a,reject:l,promise:c,currentSnapshot:this.routerState.snapshot,currentRouterState:this.routerState}),c.catch(d=>Promise.reject(d))}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=R({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})(),In=(()=>{class e{constructor(t,r,o,i,s,a){this.router=t,this.route=r,this.tabIndexAttribute=o,this.renderer=i,this.el=s,this.locationStrategy=a,this.href=null,this.commands=null,this.onChanges=new an,this.preserveFragment=!1,this.skipLocationChange=!1,this.replaceUrl=!1;const l=s.nativeElement.tagName?.toLowerCase();this.isAnchorElement="a"===l||"area"===l,this.isAnchorElement?this.subscription=t.events.subscribe(c=>{c instanceof bn&&this.updateHref()}):this.setTabIndexIfNotOnNativeEl("0")}setTabIndexIfNotOnNativeEl(t){null!=this.tabIndexAttribute||this.isAnchorElement||this.applyAttributeValue("tabindex",t)}ngOnChanges(t){this.isAnchorElement&&this.updateHref(),this.onChanges.next(this)}set routerLink(t){null!=t?(this.commands=Array.isArray(t)?t:[t],this.setTabIndexIfNotOnNativeEl("0")):(this.commands=null,this.setTabIndexIfNotOnNativeEl(null))}onClick(t,r,o,i,s){const a=this.urlTree;return!!(null===a||this.isAnchorElement&&(0!==t||r||o||i||s||"string"==typeof this.target&&"_self"!=this.target))||(this.router.navigateByUrl(a,{skipLocationChange:this.skipLocationChange,replaceUrl:this.replaceUrl,state:this.state,info:this.info}),!this.isAnchorElement)}ngOnDestroy(){this.subscription?.unsubscribe()}updateHref(){const t=this.urlTree;this.href=null!==t&&this.locationStrategy?this.locationStrategy?.prepareExternalUrl(this.router.serializeUrl(t)):null;const r=null===this.href?null:function Qv(e,n,t){return function TT(e,n){return"src"===n&&("embed"===e||"frame"===e||"iframe"===e||"media"===e||"script"===e)||"href"===n&&("base"===e||"link"===e)?Yv:Eo}(n,t)(e)}(this.href,this.el.nativeElement.tagName.toLowerCase(),"href");this.applyAttributeValue("href",r)}applyAttributeValue(t,r){const o=this.renderer,i=this.el.nativeElement;null!==r?o.setAttribute(i,t,r):o.removeAttribute(i,t)}get urlTree(){return null===this.commands?null:this.router.createUrlTree(this.commands,{relativeTo:void 0!==this.relativeTo?this.relativeTo:this.route,queryParams:this.queryParams,fragment:this.fragment,queryParamsHandling:this.queryParamsHandling,preserveFragment:this.preserveFragment})}static#e=this.\u0275fac=function(r){return new(r||e)(S(Ht),S(Gr),function Va(e){return function O1(e,n){if("class"===n)return e.classes;if("style"===n)return e.styles;const t=e.attrs;if(t){const r=t.length;let o=0;for(;o{class e{get isActive(){return this._isActive}constructor(t,r,o,i,s){this.router=t,this.element=r,this.renderer=o,this.cdr=i,this.link=s,this.classes=[],this._isActive=!1,this.routerLinkActiveOptions={exact:!1},this.isActiveChange=new Ne,this.routerEventsSubscription=t.events.subscribe(a=>{a instanceof bn&&this.update()})}ngAfterContentInit(){B(this.links.changes,B(null)).pipe(Bs()).subscribe(t=>{this.update(),this.subscribeToEachLinkOnChanges()})}subscribeToEachLinkOnChanges(){this.linkInputChangesSubscription?.unsubscribe();const t=[...this.links.toArray(),this.link].filter(r=>!!r).map(r=>r.onChanges);this.linkInputChangesSubscription=Ye(t).pipe(Bs()).subscribe(r=>{this._isActive!==this.isLinkActive(this.router)(r)&&this.update()})}set routerLinkActive(t){const r=Array.isArray(t)?t:t.split(" ");this.classes=r.filter(o=>!!o)}ngOnChanges(t){this.update()}ngOnDestroy(){this.routerEventsSubscription.unsubscribe(),this.linkInputChangesSubscription?.unsubscribe()}update(){!this.links||!this.router.navigated||queueMicrotask(()=>{const t=this.hasActiveLinks();this._isActive!==t&&(this._isActive=t,this.cdr.markForCheck(),this.classes.forEach(r=>{t?this.renderer.addClass(this.element.nativeElement,r):this.renderer.removeClass(this.element.nativeElement,r)}),t&&void 0!==this.ariaCurrentWhenActive?this.renderer.setAttribute(this.element.nativeElement,"aria-current",this.ariaCurrentWhenActive.toString()):this.renderer.removeAttribute(this.element.nativeElement,"aria-current"),this.isActiveChange.emit(t))})}isLinkActive(t){const r=function Zj(e){return!!e.paths}(this.routerLinkActiveOptions)?this.routerLinkActiveOptions:this.routerLinkActiveOptions.exact||!1;return o=>{const i=o.urlTree;return!!i&&t.isActive(i,r)}}hasActiveLinks(){const t=this.isLinkActive(this.router);return this.link&&t(this.link)||this.links.some(t)}static#e=this.\u0275fac=function(r){return new(r||e)(S(Ht),S(Rt),S(Pn),S(us),S(In,8))};static#t=this.\u0275dir=$({type:e,selectors:[["","routerLinkActive",""]],contentQueries:function(r,o,i){if(1&r&&fD(i,In,5),2&r){let s;hD(s=function pD(){return function jO(e,n){return e[cn].queries[n].queryList}(b(),_m())}())&&(o.links=s)}},inputs:{routerLinkActiveOptions:"routerLinkActiveOptions",ariaCurrentWhenActive:"ariaCurrentWhenActive",routerLinkActive:"routerLinkActive"},outputs:{isActiveChange:"isActiveChange"},exportAs:["routerLinkActive"],standalone:!0,features:[Lt]})}return e})();class tI{}let Yj=(()=>{class e{constructor(t,r,o,i,s){this.router=t,this.injector=o,this.preloadingStrategy=i,this.loader=s}setUpPreloading(){this.subscription=this.router.events.pipe(on(t=>t instanceof bn),oi(()=>this.preload())).subscribe(()=>{})}preload(){return this.processRoutes(this.injector,this.router.config)}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}processRoutes(t,r){const o=[];for(const i of r){i.providers&&!i._injector&&(i._injector=ah(i.providers,t,`Route: ${i.path}`));const s=i._injector??t,a=i._loadedInjector??s;(i.loadChildren&&!i._loadedRoutes&&void 0===i.canLoad||i.loadComponent&&!i._loadedComponent)&&o.push(this.preloadConfig(s,i)),(i.children||i._loadedRoutes)&&o.push(this.processRoutes(a,i.children??i._loadedRoutes))}return Ye(o).pipe(Bs())}preloadConfig(t,r){return this.preloadingStrategy.preload(r,()=>{let o;o=r.loadChildren&&void 0===r.canLoad?this.loader.loadChildren(t,r):B(null);const i=o.pipe(Ke(s=>null===s?B(void 0):(r._loadedRoutes=s.routes,r._loadedInjector=s.injector,this.processRoutes(s.injector??t,s.routes))));return r.loadComponent&&!r._loadedComponent?Ye([i,this.loader.loadComponent(r)]).pipe(Bs()):i})}static#e=this.\u0275fac=function(r){return new(r||e)(P(Ht),P(fw),P(Nt),P(tI),P(Rp))};static#t=this.\u0275prov=R({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();const kp=new N("");let nI=(()=>{class e{constructor(t,r,o,i,s={}){this.urlSerializer=t,this.transitions=r,this.viewportScroller=o,this.zone=i,this.options=s,this.lastId=0,this.lastSource="imperative",this.restoredId=0,this.store={},s.scrollPositionRestoration||="disabled",s.anchorScrolling||="disabled"}init(){"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.setHistoryScrollRestoration("manual"),this.routerEventsSubscription=this.createScrollEvents(),this.scrollEventsSubscription=this.consumeScrollEvents()}createScrollEvents(){return this.transitions.events.subscribe(t=>{t instanceof Nc?(this.store[this.lastId]=this.viewportScroller.getScrollPosition(),this.lastSource=t.navigationTrigger,this.restoredId=t.restoredState?t.restoredState.navigationId:0):t instanceof bn?(this.lastId=t.id,this.scheduleScrollEvent(t,this.urlSerializer.parse(t.urlAfterRedirects).fragment)):t instanceof di&&t.code===xc.IgnoredSameUrlNavigation&&(this.lastSource=void 0,this.restoredId=0,this.scheduleScrollEvent(t,this.urlSerializer.parse(t.url).fragment))})}consumeScrollEvents(){return this.transitions.events.subscribe(t=>{t instanceof AE&&(t.position?"top"===this.options.scrollPositionRestoration?this.viewportScroller.scrollToPosition([0,0]):"enabled"===this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition(t.position):t.anchor&&"enabled"===this.options.anchorScrolling?this.viewportScroller.scrollToAnchor(t.anchor):"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition([0,0]))})}scheduleScrollEvent(t,r){this.zone.runOutsideAngular(()=>{setTimeout(()=>{this.zone.run(()=>{this.transitions.events.next(new AE(t,"popstate"===this.lastSource?this.store[this.restoredId]:null,r))})},0)})}ngOnDestroy(){this.routerEventsSubscription?.unsubscribe(),this.scrollEventsSubscription?.unsubscribe()}static#e=this.\u0275fac=function(r){!function My(){throw new Error("invalid")}()};static#t=this.\u0275prov=R({token:e,factory:e.\u0275fac})}return e})();function Mn(e,n){return{\u0275kind:e,\u0275providers:n}}function oI(){const e=T(Ct);return n=>{const t=e.get(jr);if(n!==t.components[0])return;const r=e.get(Ht),o=e.get(iI);1===e.get(Pp)&&r.initialNavigation(),e.get(sI,null,X.Optional)?.setUpPreloading(),e.get(kp,null,X.Optional)?.init(),r.resetRootComponentType(t.componentTypes[0]),o.closed||(o.next(),o.complete(),o.unsubscribe())}}const iI=new N("",{factory:()=>new an}),Pp=new N("",{providedIn:"root",factory:()=>1}),sI=new N("");function Kj(e){return Mn(0,[{provide:sI,useExisting:Yj},{provide:tI,useExisting:e}])}function tU(e){return Mn(9,[{provide:QE,useValue:Fj},{provide:XE,useValue:{skipNextTransition:!!e?.skipInitialTransition,...e}}])}const aI=new N("ROUTER_FORROOT_GUARD"),nU=[Vs,{provide:li,useClass:dp},Ht,Xs,{provide:Gr,useFactory:function rI(e){return e.routerState.root},deps:[Ht]},Rp,[]];let lI=(()=>{class e{constructor(t){}static forRoot(t,r){return{ngModule:e,providers:[nU,[],{provide:vi,multi:!0,useValue:t},{provide:aI,useFactory:sU,deps:[[Ht,new $a,new Ha]]},{provide:mi,useValue:r||{}},r?.useHash?{provide:Br,useClass:EF}:{provide:Br,useClass:eb},{provide:kp,useFactory:()=>{const e=T(G2),n=T(se),t=T(mi),r=T(Lc),o=T(li);return t.scrollOffset&&e.setOffset(t.scrollOffset),new nI(o,r,e,n,t)}},r?.preloadingStrategy?Kj(r.preloadingStrategy).\u0275providers:[],r?.initialNavigation?aU(r):[],r?.bindToComponentInputs?Mn(8,[FE,{provide:Oc,useExisting:FE}]).\u0275providers:[],r?.enableViewTransitions?tU().\u0275providers:[],[{provide:cI,useFactory:oI},{provide:_h,multi:!0,useExisting:cI}]]}}static forChild(t){return{ngModule:e,providers:[{provide:vi,multi:!0,useValue:t}]}}static#e=this.\u0275fac=function(r){return new(r||e)(P(aI,8))};static#t=this.\u0275mod=Yn({type:e});static#n=this.\u0275inj=An({})}return e})();function sU(e){return"guarded"}function aU(e){return["disabled"===e.initialNavigation?Mn(3,[{provide:vh,multi:!0,useFactory:()=>{const n=T(Ht);return()=>{n.setUpLocationChangeListener()}}},{provide:Pp,useValue:2}]).\u0275providers:[],"enabledBlocking"===e.initialNavigation?Mn(2,[{provide:Pp,useValue:0},{provide:vh,multi:!0,deps:[Ct],useFactory:n=>{const t=n.get(wF,Promise.resolve());return()=>t.then(()=>new Promise(r=>{const o=n.get(Ht),i=n.get(iI);KE(o,()=>{r(!0)}),n.get(Lc).afterPreactivation=()=>(r(!0),i.closed?B(void 0):i),o.initialNavigation()}))}}]).\u0275providers:[]]}const cI=new N(""),cU=()=>["/pro"];let uU=(()=>{class e{constructor(){this.years=(new Date).getFullYear()-2009}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275cmp=St({type:e,selectors:[["app-footer"]],standalone:!0,features:[kt],decls:94,vars:3,consts:[[1,"container-fluid","mt-5"],[1,"p-5"],[1,"container"],[1,"row"],[1,"col-xs-12","col-md-4","text-center"],["src","resources/portrait_600.jpg","alt","Portrait",1,"img-fluid","img-thumbnail","mb-5","portrait"],[1,"col-xs-12","col-md-8"],[3,"routerLink"],[1,"fa-solid","fa-heart","githubheart"],["href","https://github.com/sponsors/danielpalme","target","_blank"],[1,"col-md-3","offset-md-2"],["href","https://github.com/danielpalme/ReportGenerator","target","_blank"],["href","https://github.com/danielpalme/ReportGenerator/wiki","target","_blank"],["href","https://github.com/danielpalme/ReportGenerator/wiki/FAQ","target","_blank"],[1,"col-md-4","mt-4","mt-md-0"],["href","https://www.nuget.org/packages/ReportGenerator","target","_blank"],["href","https://www.nuget.org/packages/dotnet-reportgenerator-globaltool","target","_blank"],["href","https://www.nuget.org/packages/ReportGenerator.Core","target","_blank"],["href","https://github.com/marketplace/actions/reportgenerator","target","_blank"],["href","https://marketplace.visualstudio.com/items?itemName=Palmmedia.reportgenerator","target","_blank"],[1,"col-md-3","mt-4","mt-md-0"],[1,"fa-brands","fa-github"],["href","https://twitter.com/danielpalme","target","_blank"],[1,"fa-brands","fa-twitter"],["href","https://www.palmmedia.de/Privacy","target","_blank"],["href","https://www.palmmedia.de/Imprint","target","_blank"]],template:function(r,o){1&r&&(h(0,"footer",0)(1,"div",1)(2,"div",2)(3,"div",3)(4,"div",4),y(5,"img",5),p(),h(6,"div",6)(7,"h2"),f(8,"Who's behind"),p(),h(9,"p"),f(10,"My name is Daniel Palme. I'm a software developer from Germany."),p(),h(11,"p"),f(12," Back in 2009 I wanted to create code coverage reports based on "),h(13,"i"),f(14,"PartCover"),p(),f(15," files."),y(16,"br"),f(17," Since no existing tool was able to merge several coverage files and generate a visual appealing report, I decided to create my own."),y(18,"br"),f(19),h(20,"i"),f(21,"ReportGenerator"),p(),f(22,". "),p(),h(23,"p"),f(24," You can support the ongoing maintenance by buying a "),h(25,"a",7),f(26,"PRO license"),p(),f(27," or by becoming a "),y(28,"i",8),f(29,"\xa0"),h(30,"a",9),f(31,"GitHub sponsor"),p(),f(32,". "),p()()()()(),h(33,"div",2)(34,"div",3),y(35,"hr"),p()(),h(36,"div",1)(37,"div",2)(38,"div",3)(39,"div",10)(40,"p")(41,"b"),f(42,"GitHub"),p()(),h(43,"a",11),f(44,"Source code"),p(),y(45,"br"),h(46,"a",12),f(47,"Wiki"),p(),y(48,"br"),h(49,"a",13),f(50,"FAQ"),p()(),h(51,"div",14)(52,"p")(53,"b"),f(54,"Download"),p()(),h(55,"i"),f(56,"NuGet"),p(),y(57,"br"),h(58,"a",15),f(59,"ReportGenerator"),p(),y(60,"br"),h(61,"a",16),f(62,"dotnet-reportgenerator-globaltool"),p(),y(63,"br"),h(64,"a",17),f(65,"ReportGenerator.Core"),p(),y(66,"br")(67,"br"),h(68,"i"),f(69,"Integration"),p(),y(70,"br"),h(71,"a",18),f(72,"GitHub actions"),p(),y(73,"br"),h(74,"a",19),f(75,"Azure DevOps"),p()(),h(76,"div",20)(77,"p")(78,"b"),f(79,"Community"),p()(),h(80,"a",11),y(81,"i",21),f(82," GitHub"),p(),y(83,"br"),h(84,"a",22),y(85,"i",23),f(86," Twitter"),p(),y(87,"br")(88,"br"),h(89,"a",24),f(90,"Privacy"),p(),y(91,"br"),h(92,"a",25),f(93,"Imprint"),p()()()()()()),2&r&&(C(19),Un(" Fast forward ",o.years," years, I'm still maintaining "),C(6),E("routerLink",te(2,cU)))},dependencies:[In],styles:["footer[_ngcontent-%COMP%]{background-color:#464646}footer[_ngcontent-%COMP%], a[_ngcontent-%COMP%]{color:#fff}.portrait[_ngcontent-%COMP%]{max-height:300px}"]})}return e})();const uI=()=>["/"],dU=e=>({show:e}),yi=()=>["link-active"],dI=()=>({exact:!0}),fU=()=>["/features"],hU=()=>["/getstarted"],pU=()=>["/usage"],gU=()=>["/contact"],mU=()=>["/pro"];let vU=(()=>{class e{constructor(){this.isExpanded=!1}collapse(){this.isExpanded=!1}toggle(){this.isExpanded=!this.isExpanded}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275cmp=St({type:e,selectors:[["app-nav-menu"]],standalone:!0,features:[kt],decls:42,vars:34,consts:[[1,"mb-5"],[1,"navbar","fixed-top","navbar-expand-sm","navbar-toggleable-sm","navbar-light","bg-white","border-bottom","box-shadow","mb-3"],[1,"container-xxl","flex-wrap","flex-md-nowrap"],[1,"navbar-brand",3,"routerLink"],["src","resources/logo.svg","height","40","alt","Icon",1,"me-2"],[1,"d-sm-none","d-md-none","d-lg-inline","ms-2"],["type","button","data-toggle","collapse","data-target",".navbar-collapse","aria-label","Toggle navigation",1,"navbar-toggler",3,"click"],[1,"navbar-toggler-icon"],[1,"navbar-collapse","collapse","d-sm-inline-flex",3,"ngClass"],[1,"navbar-nav","flex-grow"],[1,"nav-item",3,"routerLinkActive","routerLinkActiveOptions"],[1,"nav-link","text-dark",3,"routerLink"],[1,"nav-item",3,"routerLinkActive"],[1,"nav-link","text-dark","text-nowrap",3,"routerLink"],[1,"pro-button"],[1,"d-md-none","text-secondary"],[1,"navbar-nav","flex-row","flex-wrap","ms-md-auto","d-sm-none","d-md-flex"],[1,"nav-item","col-6","col-md-auto"],["href","https://github.com/danielpalme/ReportGenerator","target","_blank","title","GitHub",1,"nav-link","text-dark"],[1,"fa-brands","fa-github"],[1,"d-inline","d-sm-none","ms-2"],["href","https://twitter.com/danielpalme","target","_blank","title","Twitter",1,"nav-link","text-dark"],[1,"fa-brands","fa-twitter"]],template:function(r,o){1&r&&(h(0,"header",0)(1,"nav",1)(2,"div",2)(3,"a",3),y(4,"img",4),h(5,"span",5),f(6,"ReportGenerator"),p()(),h(7,"button",6),O("click",function(){return o.toggle()}),y(8,"span",7),p(),h(9,"div",8)(10,"ul",9)(11,"li",10)(12,"a",11),f(13,"Home"),p()(),h(14,"li",10)(15,"a",11),f(16,"Features"),p()(),h(17,"li",12)(18,"a",13),f(19,"Get started"),p()(),h(20,"li",12)(21,"a",11),f(22,"Usage"),p()(),h(23,"li",12)(24,"a",11),f(25,"Contact"),p()(),h(26,"li",12)(27,"a",11)(28,"span",14),f(29,"PRO"),p()()()(),y(30,"hr",15),h(31,"ul",16)(32,"li",17)(33,"a",18),y(34,"i",19),h(35,"span",20),f(36,"GitHub"),p()()(),h(37,"li",17)(38,"a",21),y(39,"i",22),h(40,"span",20),f(41,"Twitter"),p()()()()()()()()),2&r&&(C(3),E("routerLink",te(17,uI)),C(4),Jt("aria-expanded",o.isExpanded),C(2),E("ngClass",Ns(18,dU,o.isExpanded)),C(2),E("routerLinkActive",te(20,yi))("routerLinkActiveOptions",te(21,dI)),C(),E("routerLink",te(22,uI)),C(2),E("routerLinkActive",te(23,yi))("routerLinkActiveOptions",te(24,dI)),C(),E("routerLink",te(25,fU)),C(2),E("routerLinkActive",te(26,yi)),C(),E("routerLink",te(27,hU)),C(2),E("routerLinkActive",te(28,yi)),C(),E("routerLink",te(29,pU)),C(2),E("routerLinkActive",te(30,yi)),C(),E("routerLink",te(31,gU)),C(2),E("routerLinkActive",te(32,yi)),C(),E("routerLink",te(33,mU)))},dependencies:[In,vc,eI],styles:[".box-shadow[_ngcontent-%COMP%]{box-shadow:0 .25rem .75rem #0000000d}@keyframes _ngcontent-%COMP%_pro-button-animation{0%{background-color:var(--rg-primary-color);background-image:linear-gradient(50deg,var(--rg-gradient-from) 0%,var(--rg-gradient-to) 100%)}50%{background-color:vvar(--rg-primary-hover-color);background-image:linear-gradient(50deg,var(--rg-gradient-hover-from) 0%,var(--rg-gradient-hover-from) 100%);box-shadow:0 0 6px 1px var(--rg-primary-color)}to{background-color:var(--rg-primary-color);background-image:linear-gradient(50deg,var(--rg-gradient-from) 0%,var(--rg-gradient-to) 100%)}}.pro-button[_ngcontent-%COMP%]{animation-name:_ngcontent-%COMP%_pro-button-animation;animation-duration:2s;animation-iteration-count:2}.pro-button[_ngcontent-%COMP%]:hover, .link-active[_ngcontent-%COMP%] .pro-button[_ngcontent-%COMP%]{background-color:var(--rg-primary-hover-color);background-image:linear-gradient(50deg,var(--rg-gradient-hover-from) 0%,var(--rg-gradient-hover-from) 100%);box-shadow:0 0 6px 1px var(--rg-primary-color)}.nav-link[_ngcontent-%COMP%]{text-transform:uppercase;font-weight:500}.nav-link[_ngcontent-%COMP%]:hover{text-decoration:underline;text-underline-offset:2px}.link-active[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{color:var(--rg-primary-hover-color)!important;font-weight:400}"]})}return e})(),yU=(()=>{class e{constructor(t,r,o){this.dom=t,this.router=r,this.activatedRoute=o}ngOnInit(){this.router.events.pipe(on(t=>t instanceof bn),J(()=>this.activatedRoute),J(t=>{for(;t.firstChild;)t=t.firstChild;return t}),on(t=>"primary"===t.outlet),Ke(t=>t.data)).subscribe(t=>{const r=`${window.location.protocol}//${window.location.hostname}`;this.updateCanonicalUrl(t.canonical?r+t.canonical:r+this.router.url)})}updateCanonicalUrl(t){const r=this.dom.getElementsByTagName("head")[0];var o=this.dom.querySelector("link[rel='canonical']")||null;null==o&&(o=this.dom.createElement("link"),r.appendChild(o)),o.setAttribute("rel","canonical"),o.setAttribute("href",t)}static#e=this.\u0275fac=function(r){return new(r||e)(S(It),S(Ht),S(Gr))};static#t=this.\u0275cmp=St({type:e,selectors:[["app-root"]],standalone:!0,features:[kt],decls:3,vars:0,template:function(r,o){1&r&&y(0,"app-nav-menu")(1,"router-outlet")(2,"app-footer")},dependencies:[vU,Ip,uU],encapsulation:2})}return e})(),fI=(()=>{class e{constructor(t,r){this._renderer=t,this._elementRef=r,this.onChange=o=>{},this.onTouched=()=>{}}setProperty(t,r){this._renderer.setProperty(this._elementRef.nativeElement,t,r)}registerOnTouched(t){this.onTouched=t}registerOnChange(t){this.onChange=t}setDisabledState(t){this.setProperty("disabled",t)}static#e=this.\u0275fac=function(r){return new(r||e)(S(Pn),S(Rt))};static#t=this.\u0275dir=$({type:e})}return e})(),zr=(()=>{class e extends fI{static#e=this.\u0275fac=(()=>{let t;return function(o){return(t||(t=Qe(e)))(o||e)}})();static#t=this.\u0275dir=$({type:e,features:[de]})}return e})();const Sn=new N(""),DU={provide:Sn,useExisting:ve(()=>_i),multi:!0},bU=new N("");let _i=(()=>{class e extends fI{constructor(t,r,o){super(t,r),this._compositionMode=o,this._composing=!1,null==this._compositionMode&&(this._compositionMode=!function wU(){const e=ur()?ur().getUserAgent():"";return/android (\d+)/.test(e.toLowerCase())}())}writeValue(t){this.setProperty("value",t??"")}_handleInput(t){(!this._compositionMode||this._compositionMode&&!this._composing)&&this.onChange(t)}_compositionStart(){this._composing=!0}_compositionEnd(t){this._composing=!1,this._compositionMode&&this.onChange(t)}static#e=this.\u0275fac=function(r){return new(r||e)(S(Pn),S(Rt),S(bU,8))};static#t=this.\u0275dir=$({type:e,selectors:[["input","formControlName","",3,"type","checkbox"],["textarea","formControlName",""],["input","formControl","",3,"type","checkbox"],["textarea","formControl",""],["input","ngModel","",3,"type","checkbox"],["textarea","ngModel",""],["","ngDefaultControl",""]],hostBindings:function(r,o){1&r&&O("input",function(s){return o._handleInput(s.target.value)})("blur",function(){return o.onTouched()})("compositionstart",function(){return o._compositionStart()})("compositionend",function(s){return o._compositionEnd(s.target.value)})},features:[Se([DU]),de]})}return e})();function hr(e){return null==e||("string"==typeof e||Array.isArray(e))&&0===e.length}const at=new N(""),pr=new N(""),EU=/^(?=.{1,254}$)(?=.{1,64}@)[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;function vI(e){return hr(e.value)?{required:!0}:null}function _I(e){return hr(e.value)||EU.test(e.value)?null:{email:!0}}function Vc(e){return null}function bI(e){return null!=e}function EI(e){return As(e)?Ye(e):e}function II(e){let n={};return e.forEach(t=>{n=null!=t?{...n,...t}:n}),0===Object.keys(n).length?null:n}function MI(e,n){return n.map(t=>t(e))}function SI(e){return e.map(n=>function IU(e){return!e.validate}(n)?n:t=>n.validate(t))}function Fp(e){return null!=e?function TI(e){if(!e)return null;const n=e.filter(bI);return 0==n.length?null:function(t){return II(MI(t,n))}}(SI(e)):null}function Lp(e){return null!=e?function AI(e){if(!e)return null;const n=e.filter(bI);return 0==n.length?null:function(t){return function _U(...e){const n=Ub(e),{args:t,keys:r}=Bb(e),o=new Ve(i=>{const{length:s}=t;if(!s)return void i.complete();const a=new Array(s);let l=s,c=s;for(let u=0;u{d||(d=!0,c--),a[u]=g},()=>l--,void 0,()=>{(!l||!d)&&(c||i.next(r?Hb(r,a):a),i.complete())}))}});return n?o.pipe($b(n)):o}(MI(t,n).map(EI)).pipe(J(II))}}(SI(e)):null}function NI(e,n){return null===e?[n]:Array.isArray(e)?[...e,n]:[e,n]}function Vp(e){return e?Array.isArray(e)?e:[e]:[]}function jc(e,n){return Array.isArray(e)?e.includes(n):e===n}function OI(e,n){const t=Vp(n);return Vp(e).forEach(o=>{jc(t,o)||t.push(o)}),t}function kI(e,n){return Vp(n).filter(t=>!jc(e,t))}class PI{constructor(){this._rawValidators=[],this._rawAsyncValidators=[],this._onDestroyCallbacks=[]}get value(){return this.control?this.control.value:null}get valid(){return this.control?this.control.valid:null}get invalid(){return this.control?this.control.invalid:null}get pending(){return this.control?this.control.pending:null}get disabled(){return this.control?this.control.disabled:null}get enabled(){return this.control?this.control.enabled:null}get errors(){return this.control?this.control.errors:null}get pristine(){return this.control?this.control.pristine:null}get dirty(){return this.control?this.control.dirty:null}get touched(){return this.control?this.control.touched:null}get status(){return this.control?this.control.status:null}get untouched(){return this.control?this.control.untouched:null}get statusChanges(){return this.control?this.control.statusChanges:null}get valueChanges(){return this.control?this.control.valueChanges:null}get path(){return null}_setValidators(n){this._rawValidators=n||[],this._composedValidatorFn=Fp(this._rawValidators)}_setAsyncValidators(n){this._rawAsyncValidators=n||[],this._composedAsyncValidatorFn=Lp(this._rawAsyncValidators)}get validator(){return this._composedValidatorFn||null}get asyncValidator(){return this._composedAsyncValidatorFn||null}_registerOnDestroy(n){this._onDestroyCallbacks.push(n)}_invokeOnDestroyCallbacks(){this._onDestroyCallbacks.forEach(n=>n()),this._onDestroyCallbacks=[]}reset(n=void 0){this.control&&this.control.reset(n)}hasError(n,t){return!!this.control&&this.control.hasError(n,t)}getError(n,t){return this.control?this.control.getError(n,t):null}}class pt extends PI{get formDirective(){return null}get path(){return null}}class gr extends PI{constructor(){super(...arguments),this._parent=null,this.name=null,this.valueAccessor=null}}class FI{constructor(n){this._cd=n}get isTouched(){return!!this._cd?.control?.touched}get isUntouched(){return!!this._cd?.control?.untouched}get isPristine(){return!!this._cd?.control?.pristine}get isDirty(){return!!this._cd?.control?.dirty}get isValid(){return!!this._cd?.control?.valid}get isInvalid(){return!!this._cd?.control?.invalid}get isPending(){return!!this._cd?.control?.pending}get isSubmitted(){return!!this._cd?.submitted}}let Uc=(()=>{class e extends FI{constructor(t){super(t)}static#e=this.\u0275fac=function(r){return new(r||e)(S(gr,2))};static#t=this.\u0275dir=$({type:e,selectors:[["","formControlName",""],["","ngModel",""],["","formControl",""]],hostVars:14,hostBindings:function(r,o){2&r&&jl("ng-untouched",o.isUntouched)("ng-touched",o.isTouched)("ng-pristine",o.isPristine)("ng-dirty",o.isDirty)("ng-valid",o.isValid)("ng-invalid",o.isInvalid)("ng-pending",o.isPending)},features:[de]})}return e})(),Bc=(()=>{class e extends FI{constructor(t){super(t)}static#e=this.\u0275fac=function(r){return new(r||e)(S(pt,10))};static#t=this.\u0275dir=$({type:e,selectors:[["","formGroupName",""],["","formArrayName",""],["","ngModelGroup",""],["","formGroup",""],["form",3,"ngNoForm",""],["","ngForm",""]],hostVars:16,hostBindings:function(r,o){2&r&&jl("ng-untouched",o.isUntouched)("ng-touched",o.isTouched)("ng-pristine",o.isPristine)("ng-dirty",o.isDirty)("ng-valid",o.isValid)("ng-invalid",o.isInvalid)("ng-pending",o.isPending)("ng-submitted",o.isSubmitted)},features:[de]})}return e})();const oa="VALID",Hc="INVALID",Ci="PENDING",ia="DISABLED";function Bp(e){return(Gc(e)?e.validators:e)||null}function $p(e,n){return(Gc(n)?n.asyncValidators:e)||null}function Gc(e){return null!=e&&!Array.isArray(e)&&"object"==typeof e}class UI{constructor(n,t){this._pendingDirty=!1,this._hasOwnPendingAsyncValidator=!1,this._pendingTouched=!1,this._onCollectionChange=()=>{},this._parent=null,this.pristine=!0,this.touched=!1,this._onDisabledChange=[],this._assignValidators(n),this._assignAsyncValidators(t)}get validator(){return this._composedValidatorFn}set validator(n){this._rawValidators=this._composedValidatorFn=n}get asyncValidator(){return this._composedAsyncValidatorFn}set asyncValidator(n){this._rawAsyncValidators=this._composedAsyncValidatorFn=n}get parent(){return this._parent}get valid(){return this.status===oa}get invalid(){return this.status===Hc}get pending(){return this.status==Ci}get disabled(){return this.status===ia}get enabled(){return this.status!==ia}get dirty(){return!this.pristine}get untouched(){return!this.touched}get updateOn(){return this._updateOn?this._updateOn:this.parent?this.parent.updateOn:"change"}setValidators(n){this._assignValidators(n)}setAsyncValidators(n){this._assignAsyncValidators(n)}addValidators(n){this.setValidators(OI(n,this._rawValidators))}addAsyncValidators(n){this.setAsyncValidators(OI(n,this._rawAsyncValidators))}removeValidators(n){this.setValidators(kI(n,this._rawValidators))}removeAsyncValidators(n){this.setAsyncValidators(kI(n,this._rawAsyncValidators))}hasValidator(n){return jc(this._rawValidators,n)}hasAsyncValidator(n){return jc(this._rawAsyncValidators,n)}clearValidators(){this.validator=null}clearAsyncValidators(){this.asyncValidator=null}markAsTouched(n={}){this.touched=!0,this._parent&&!n.onlySelf&&this._parent.markAsTouched(n)}markAllAsTouched(){this.markAsTouched({onlySelf:!0}),this._forEachChild(n=>n.markAllAsTouched())}markAsUntouched(n={}){this.touched=!1,this._pendingTouched=!1,this._forEachChild(t=>{t.markAsUntouched({onlySelf:!0})}),this._parent&&!n.onlySelf&&this._parent._updateTouched(n)}markAsDirty(n={}){this.pristine=!1,this._parent&&!n.onlySelf&&this._parent.markAsDirty(n)}markAsPristine(n={}){this.pristine=!0,this._pendingDirty=!1,this._forEachChild(t=>{t.markAsPristine({onlySelf:!0})}),this._parent&&!n.onlySelf&&this._parent._updatePristine(n)}markAsPending(n={}){this.status=Ci,!1!==n.emitEvent&&this.statusChanges.emit(this.status),this._parent&&!n.onlySelf&&this._parent.markAsPending(n)}disable(n={}){const t=this._parentMarkedDirty(n.onlySelf);this.status=ia,this.errors=null,this._forEachChild(r=>{r.disable({...n,onlySelf:!0})}),this._updateValue(),!1!==n.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors({...n,skipPristineCheck:t}),this._onDisabledChange.forEach(r=>r(!0))}enable(n={}){const t=this._parentMarkedDirty(n.onlySelf);this.status=oa,this._forEachChild(r=>{r.enable({...n,onlySelf:!0})}),this.updateValueAndValidity({onlySelf:!0,emitEvent:n.emitEvent}),this._updateAncestors({...n,skipPristineCheck:t}),this._onDisabledChange.forEach(r=>r(!1))}_updateAncestors(n){this._parent&&!n.onlySelf&&(this._parent.updateValueAndValidity(n),n.skipPristineCheck||this._parent._updatePristine(),this._parent._updateTouched())}setParent(n){this._parent=n}getRawValue(){return this.value}updateValueAndValidity(n={}){this._setInitialStatus(),this._updateValue(),this.enabled&&(this._cancelExistingSubscription(),this.errors=this._runValidator(),this.status=this._calculateStatus(),(this.status===oa||this.status===Ci)&&this._runAsyncValidator(n.emitEvent)),!1!==n.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._parent&&!n.onlySelf&&this._parent.updateValueAndValidity(n)}_updateTreeValidity(n={emitEvent:!0}){this._forEachChild(t=>t._updateTreeValidity(n)),this.updateValueAndValidity({onlySelf:!0,emitEvent:n.emitEvent})}_setInitialStatus(){this.status=this._allControlsDisabled()?ia:oa}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(n){if(this.asyncValidator){this.status=Ci,this._hasOwnPendingAsyncValidator=!0;const t=EI(this.asyncValidator(this));this._asyncValidationSubscription=t.subscribe(r=>{this._hasOwnPendingAsyncValidator=!1,this.setErrors(r,{emitEvent:n})})}}_cancelExistingSubscription(){this._asyncValidationSubscription&&(this._asyncValidationSubscription.unsubscribe(),this._hasOwnPendingAsyncValidator=!1)}setErrors(n,t={}){this.errors=n,this._updateControlsErrors(!1!==t.emitEvent)}get(n){let t=n;return null==t||(Array.isArray(t)||(t=t.split(".")),0===t.length)?null:t.reduce((r,o)=>r&&r._find(o),this)}getError(n,t){const r=t?this.get(t):this;return r&&r.errors?r.errors[n]:null}hasError(n,t){return!!this.getError(n,t)}get root(){let n=this;for(;n._parent;)n=n._parent;return n}_updateControlsErrors(n){this.status=this._calculateStatus(),n&&this.statusChanges.emit(this.status),this._parent&&this._parent._updateControlsErrors(n)}_initObservables(){this.valueChanges=new Ne,this.statusChanges=new Ne}_calculateStatus(){return this._allControlsDisabled()?ia:this.errors?Hc:this._hasOwnPendingAsyncValidator||this._anyControlsHaveStatus(Ci)?Ci:this._anyControlsHaveStatus(Hc)?Hc:oa}_anyControlsHaveStatus(n){return this._anyControls(t=>t.status===n)}_anyControlsDirty(){return this._anyControls(n=>n.dirty)}_anyControlsTouched(){return this._anyControls(n=>n.touched)}_updatePristine(n={}){this.pristine=!this._anyControlsDirty(),this._parent&&!n.onlySelf&&this._parent._updatePristine(n)}_updateTouched(n={}){this.touched=this._anyControlsTouched(),this._parent&&!n.onlySelf&&this._parent._updateTouched(n)}_registerOnCollectionChange(n){this._onCollectionChange=n}_setUpdateStrategy(n){Gc(n)&&null!=n.updateOn&&(this._updateOn=n.updateOn)}_parentMarkedDirty(n){return!n&&!(!this._parent||!this._parent.dirty)&&!this._parent._anyControlsDirty()}_find(n){return null}_assignValidators(n){this._rawValidators=Array.isArray(n)?n.slice():n,this._composedValidatorFn=function AU(e){return Array.isArray(e)?Fp(e):e||null}(this._rawValidators)}_assignAsyncValidators(n){this._rawAsyncValidators=Array.isArray(n)?n.slice():n,this._composedAsyncValidatorFn=function NU(e){return Array.isArray(e)?Lp(e):e||null}(this._rawAsyncValidators)}}class Hp extends UI{constructor(n,t,r){super(Bp(t),$p(r,t)),this.controls=n,this._initObservables(),this._setUpdateStrategy(t),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}registerControl(n,t){return this.controls[n]?this.controls[n]:(this.controls[n]=t,t.setParent(this),t._registerOnCollectionChange(this._onCollectionChange),t)}addControl(n,t,r={}){this.registerControl(n,t),this.updateValueAndValidity({emitEvent:r.emitEvent}),this._onCollectionChange()}removeControl(n,t={}){this.controls[n]&&this.controls[n]._registerOnCollectionChange(()=>{}),delete this.controls[n],this.updateValueAndValidity({emitEvent:t.emitEvent}),this._onCollectionChange()}setControl(n,t,r={}){this.controls[n]&&this.controls[n]._registerOnCollectionChange(()=>{}),delete this.controls[n],t&&this.registerControl(n,t),this.updateValueAndValidity({emitEvent:r.emitEvent}),this._onCollectionChange()}contains(n){return this.controls.hasOwnProperty(n)&&this.controls[n].enabled}setValue(n,t={}){(function jI(e,n,t){e._forEachChild((r,o)=>{if(void 0===t[o])throw new M(1002,"")})})(this,0,n),Object.keys(n).forEach(r=>{(function VI(e,n,t){const r=e.controls;if(!(n?Object.keys(r):r).length)throw new M(1e3,"");if(!r[t])throw new M(1001,"")})(this,!0,r),this.controls[r].setValue(n[r],{onlySelf:!0,emitEvent:t.emitEvent})}),this.updateValueAndValidity(t)}patchValue(n,t={}){null!=n&&(Object.keys(n).forEach(r=>{const o=this.controls[r];o&&o.patchValue(n[r],{onlySelf:!0,emitEvent:t.emitEvent})}),this.updateValueAndValidity(t))}reset(n={},t={}){this._forEachChild((r,o)=>{r.reset(n?n[o]:null,{onlySelf:!0,emitEvent:t.emitEvent})}),this._updatePristine(t),this._updateTouched(t),this.updateValueAndValidity(t)}getRawValue(){return this._reduceChildren({},(n,t,r)=>(n[r]=t.getRawValue(),n))}_syncPendingControls(){let n=this._reduceChildren(!1,(t,r)=>!!r._syncPendingControls()||t);return n&&this.updateValueAndValidity({onlySelf:!0}),n}_forEachChild(n){Object.keys(this.controls).forEach(t=>{const r=this.controls[t];r&&n(r,t)})}_setUpControls(){this._forEachChild(n=>{n.setParent(this),n._registerOnCollectionChange(this._onCollectionChange)})}_updateValue(){this.value=this._reduceValue()}_anyControls(n){for(const[t,r]of Object.entries(this.controls))if(this.contains(t)&&n(r))return!0;return!1}_reduceValue(){return this._reduceChildren({},(t,r,o)=>((r.enabled||this.disabled)&&(t[o]=r.value),t))}_reduceChildren(n,t){let r=n;return this._forEachChild((o,i)=>{r=t(r,o,i)}),r}_allControlsDisabled(){for(const n of Object.keys(this.controls))if(this.controls[n].enabled)return!1;return Object.keys(this.controls).length>0||this.disabled}_find(n){return this.controls.hasOwnProperty(n)?this.controls[n]:null}}const Di=new N("CallSetDisabledState",{providedIn:"root",factory:()=>zc}),zc="always";function sa(e,n,t=zc){Gp(e,n),n.valueAccessor.writeValue(e.value),(e.disabled||"always"===t)&&n.valueAccessor.setDisabledState?.(e.disabled),function OU(e,n){n.valueAccessor.registerOnChange(t=>{e._pendingValue=t,e._pendingChange=!0,e._pendingDirty=!0,"change"===e.updateOn&&BI(e,n)})}(e,n),function PU(e,n){const t=(r,o)=>{n.valueAccessor.writeValue(r),o&&n.viewToModelUpdate(r)};e.registerOnChange(t),n._registerOnDestroy(()=>{e._unregisterOnChange(t)})}(e,n),function kU(e,n){n.valueAccessor.registerOnTouched(()=>{e._pendingTouched=!0,"blur"===e.updateOn&&e._pendingChange&&BI(e,n),"submit"!==e.updateOn&&e.markAsTouched()})}(e,n),function RU(e,n){if(n.valueAccessor.setDisabledState){const t=r=>{n.valueAccessor.setDisabledState(r)};e.registerOnDisabledChange(t),n._registerOnDestroy(()=>{e._unregisterOnDisabledChange(t)})}}(e,n)}function Zc(e,n){e.forEach(t=>{t.registerOnValidatorChange&&t.registerOnValidatorChange(n)})}function Gp(e,n){const t=function xI(e){return e._rawValidators}(e);null!==n.validator?e.setValidators(NI(t,n.validator)):"function"==typeof t&&e.setValidators([t]);const r=function RI(e){return e._rawAsyncValidators}(e);null!==n.asyncValidator?e.setAsyncValidators(NI(r,n.asyncValidator)):"function"==typeof r&&e.setAsyncValidators([r]);const o=()=>e.updateValueAndValidity();Zc(n._rawValidators,o),Zc(n._rawAsyncValidators,o)}function BI(e,n){e._pendingDirty&&e.markAsDirty(),e.setValue(e._pendingValue,{emitModelToViewChange:!1}),n.viewToModelUpdate(e._pendingValue),e._pendingChange=!1}const UU={provide:pt,useExisting:ve(()=>wi)},aa=Promise.resolve();let wi=(()=>{class e extends pt{constructor(t,r,o){super(),this.callSetDisabledState=o,this.submitted=!1,this._directives=new Set,this.ngSubmit=new Ne,this.form=new Hp({},Fp(t),Lp(r))}ngAfterViewInit(){this._setUpdateStrategy()}get formDirective(){return this}get control(){return this.form}get path(){return[]}get controls(){return this.form.controls}addControl(t){aa.then(()=>{const r=this._findContainer(t.path);t.control=r.registerControl(t.name,t.control),sa(t.control,t,this.callSetDisabledState),t.control.updateValueAndValidity({emitEvent:!1}),this._directives.add(t)})}getControl(t){return this.form.get(t.path)}removeControl(t){aa.then(()=>{const r=this._findContainer(t.path);r&&r.removeControl(t.name),this._directives.delete(t)})}addFormGroup(t){aa.then(()=>{const r=this._findContainer(t.path),o=new Hp({});(function $I(e,n){Gp(e,n)})(o,t),r.registerControl(t.name,o),o.updateValueAndValidity({emitEvent:!1})})}removeFormGroup(t){aa.then(()=>{const r=this._findContainer(t.path);r&&r.removeControl(t.name)})}getFormGroup(t){return this.form.get(t.path)}updateModel(t,r){aa.then(()=>{this.form.get(t.path).setValue(r)})}setValue(t){this.control.setValue(t)}onSubmit(t){return this.submitted=!0,function HI(e,n){e._syncPendingControls(),n.forEach(t=>{const r=t.control;"submit"===r.updateOn&&r._pendingChange&&(t.viewToModelUpdate(r._pendingValue),r._pendingChange=!1)})}(this.form,this._directives),this.ngSubmit.emit(t),"dialog"===t?.target?.method}onReset(){this.resetForm()}resetForm(t=void 0){this.form.reset(t),this.submitted=!1}_setUpdateStrategy(){this.options&&null!=this.options.updateOn&&(this.form._updateOn=this.options.updateOn)}_findContainer(t){return t.pop(),t.length?this.form.get(t):this.form}static#e=this.\u0275fac=function(r){return new(r||e)(S(at,10),S(pr,10),S(Di,8))};static#t=this.\u0275dir=$({type:e,selectors:[["form",3,"ngNoForm","",3,"formGroup",""],["ng-form"],["","ngForm",""]],hostBindings:function(r,o){1&r&&O("submit",function(s){return o.onSubmit(s)})("reset",function(){return o.onReset()})},inputs:{options:[be.None,"ngFormOptions","options"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],features:[Se([UU]),de]})}return e})();function GI(e,n){const t=e.indexOf(n);t>-1&&e.splice(t,1)}function zI(e){return"object"==typeof e&&null!==e&&2===Object.keys(e).length&&"value"in e&&"disabled"in e}const qI=class extends UI{constructor(n=null,t,r){super(Bp(t),$p(r,t)),this.defaultValue=null,this._onChange=[],this._pendingChange=!1,this._applyFormState(n),this._setUpdateStrategy(t),this._initObservables(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator}),Gc(t)&&(t.nonNullable||t.initialValueIsDefault)&&(this.defaultValue=zI(n)?n.value:n)}setValue(n,t={}){this.value=this._pendingValue=n,this._onChange.length&&!1!==t.emitModelToViewChange&&this._onChange.forEach(r=>r(this.value,!1!==t.emitViewToModelChange)),this.updateValueAndValidity(t)}patchValue(n,t={}){this.setValue(n,t)}reset(n=this.defaultValue,t={}){this._applyFormState(n),this.markAsPristine(t),this.markAsUntouched(t),this.setValue(this.value,t),this._pendingChange=!1}_updateValue(){}_anyControls(n){return!1}_allControlsDisabled(){return this.disabled}registerOnChange(n){this._onChange.push(n)}_unregisterOnChange(n){GI(this._onChange,n)}registerOnDisabledChange(n){this._onDisabledChange.push(n)}_unregisterOnDisabledChange(n){GI(this._onDisabledChange,n)}_forEachChild(n){}_syncPendingControls(){return!("submit"!==this.updateOn||(this._pendingDirty&&this.markAsDirty(),this._pendingTouched&&this.markAsTouched(),!this._pendingChange)||(this.setValue(this._pendingValue,{onlySelf:!0,emitModelToViewChange:!1}),0))}_applyFormState(n){zI(n)?(this.value=this._pendingValue=n.value,n.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this.value=this._pendingValue=n}},HU={provide:gr,useExisting:ve(()=>la)},YI=Promise.resolve();let la=(()=>{class e extends gr{constructor(t,r,o,i,s,a){super(),this._changeDetectorRef=s,this.callSetDisabledState=a,this.control=new qI,this._registered=!1,this.name="",this.update=new Ne,this._parent=t,this._setValidators(r),this._setAsyncValidators(o),this.valueAccessor=function Wp(e,n){if(!n)return null;let t,r,o;return Array.isArray(n),n.forEach(i=>{i.constructor===_i?t=i:function VU(e){return Object.getPrototypeOf(e.constructor)===zr}(i)?r=i:o=i}),o||r||t||null}(0,i)}ngOnChanges(t){if(this._checkForErrors(),!this._registered||"name"in t){if(this._registered&&(this._checkName(),this.formDirective)){const r=t.name.previousValue;this.formDirective.removeControl({name:r,path:this._getPath(r)})}this._setUpControl()}"isDisabled"in t&&this._updateDisabled(t),function qp(e,n){if(!e.hasOwnProperty("model"))return!1;const t=e.model;return!!t.isFirstChange()||!Object.is(n,t.currentValue)}(t,this.viewModel)&&(this._updateValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}get path(){return this._getPath(this.name)}get formDirective(){return this._parent?this._parent.formDirective:null}viewToModelUpdate(t){this.viewModel=t,this.update.emit(t)}_setUpControl(){this._setUpdateStrategy(),this._isStandalone()?this._setUpStandalone():this.formDirective.addControl(this),this._registered=!0}_setUpdateStrategy(){this.options&&null!=this.options.updateOn&&(this.control._updateOn=this.options.updateOn)}_isStandalone(){return!this._parent||!(!this.options||!this.options.standalone)}_setUpStandalone(){sa(this.control,this,this.callSetDisabledState),this.control.updateValueAndValidity({emitEvent:!1})}_checkForErrors(){this._isStandalone()||this._checkParentType(),this._checkName()}_checkParentType(){}_checkName(){this.options&&this.options.name&&(this.name=this.options.name),this._isStandalone()}_updateValue(t){YI.then(()=>{this.control.setValue(t,{emitViewToModelChange:!1}),this._changeDetectorRef?.markForCheck()})}_updateDisabled(t){const r=t.isDisabled.currentValue,o=0!==r&&ti(r);YI.then(()=>{o&&!this.control.disabled?this.control.disable():!o&&this.control.disabled&&this.control.enable(),this._changeDetectorRef?.markForCheck()})}_getPath(t){return this._parent?function qc(e,n){return[...n.path,e]}(t,this._parent):[t]}static#e=this.\u0275fac=function(r){return new(r||e)(S(pt,9),S(at,10),S(pr,10),S(Sn,10),S(us,8),S(Di,8))};static#t=this.\u0275dir=$({type:e,selectors:[["","ngModel","",3,"formControlName","",3,"formControl",""]],inputs:{name:"name",isDisabled:[be.None,"disabled","isDisabled"],model:[be.None,"ngModel","model"],options:[be.None,"ngModelOptions","options"]},outputs:{update:"ngModelChange"},exportAs:["ngModel"],features:[Se([HU]),de,Lt]})}return e})(),Qc=(()=>{class e{static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275dir=$({type:e,selectors:[["form",3,"ngNoForm","",3,"ngNativeValidate",""]],hostAttrs:["novalidate",""]})}return e})();const zU={provide:Sn,useExisting:ve(()=>Zp),multi:!0};let qU=(()=>{class e{constructor(){this._accessors=[]}add(t,r){this._accessors.push([t,r])}remove(t){for(let r=this._accessors.length-1;r>=0;--r)if(this._accessors[r][1]===t)return void this._accessors.splice(r,1)}select(t){this._accessors.forEach(r=>{this._isSameGroup(r,t)&&r[1]!==t&&r[1].fireUncheck(t.value)})}_isSameGroup(t,r){return!!t[0].control&&t[0]._parent===r._control._parent&&t[1].name===r.name}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=R({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})(),Zp=(()=>{class e extends zr{constructor(t,r,o,i){super(t,r),this._registry=o,this._injector=i,this.setDisabledStateFired=!1,this.onChange=()=>{},this.callSetDisabledState=T(Di,{optional:!0})??zc}ngOnInit(){this._control=this._injector.get(gr),this._checkName(),this._registry.add(this._control,this)}ngOnDestroy(){this._registry.remove(this)}writeValue(t){this._state=t===this.value,this.setProperty("checked",this._state)}registerOnChange(t){this._fn=t,this.onChange=()=>{t(this.value),this._registry.select(this)}}setDisabledState(t){(this.setDisabledStateFired||t||"whenDisabledForLegacyCode"===this.callSetDisabledState)&&this.setProperty("disabled",t),this.setDisabledStateFired=!0}fireUncheck(t){this.writeValue(t)}_checkName(){!this.name&&this.formControlName&&(this.name=this.formControlName)}static#e=this.\u0275fac=function(r){return new(r||e)(S(Pn),S(Rt),S(qU),S(Ct))};static#t=this.\u0275dir=$({type:e,selectors:[["input","type","radio","formControlName",""],["input","type","radio","formControl",""],["input","type","radio","ngModel",""]],hostBindings:function(r,o){1&r&&O("change",function(){return o.onChange()})("blur",function(){return o.onTouched()})},inputs:{name:"name",formControlName:"formControlName",value:"value"},features:[Se([zU]),de]})}return e})();const KU={provide:Sn,useExisting:ve(()=>Xc),multi:!0};function nM(e,n){return null==e?`${n}`:(n&&"object"==typeof n&&(n="Object"),`${e}: ${n}`.slice(0,50))}let Xc=(()=>{class e extends zr{constructor(){super(...arguments),this._optionMap=new Map,this._idCounter=0,this._compareWith=Object.is}set compareWith(t){this._compareWith=t}writeValue(t){this.value=t;const o=nM(this._getOptionId(t),t);this.setProperty("value",o)}registerOnChange(t){this.onChange=r=>{this.value=this._getOptionValue(r),t(this.value)}}_registerOption(){return(this._idCounter++).toString()}_getOptionId(t){for(const r of this._optionMap.keys())if(this._compareWith(this._optionMap.get(r),t))return r;return null}_getOptionValue(t){const r=function eB(e){return e.split(":")[0]}(t);return this._optionMap.has(r)?this._optionMap.get(r):t}static#e=this.\u0275fac=(()=>{let t;return function(o){return(t||(t=Qe(e)))(o||e)}})();static#t=this.\u0275dir=$({type:e,selectors:[["select","formControlName","",3,"multiple",""],["select","formControl","",3,"multiple",""],["select","ngModel","",3,"multiple",""]],hostBindings:function(r,o){1&r&&O("change",function(s){return o.onChange(s.target.value)})("blur",function(){return o.onTouched()})},inputs:{compareWith:"compareWith"},features:[Se([KU]),de]})}return e})(),rM=(()=>{class e{constructor(t,r,o){this._element=t,this._renderer=r,this._select=o,this._select&&(this.id=this._select._registerOption())}set ngValue(t){null!=this._select&&(this._select._optionMap.set(this.id,t),this._setElementValue(nM(this.id,t)),this._select.writeValue(this._select.value))}set value(t){this._setElementValue(t),this._select&&this._select.writeValue(this._select.value)}_setElementValue(t){this._renderer.setProperty(this._element.nativeElement,"value",t)}ngOnDestroy(){this._select&&(this._select._optionMap.delete(this.id),this._select.writeValue(this._select.value))}static#e=this.\u0275fac=function(r){return new(r||e)(S(Rt),S(Pn),S(Xc,9))};static#t=this.\u0275dir=$({type:e,selectors:[["option"]],inputs:{ngValue:"ngValue",value:"value"}})}return e})();const tB={provide:Sn,useExisting:ve(()=>Jp),multi:!0};function oM(e,n){return null==e?`${n}`:("string"==typeof n&&(n=`'${n}'`),n&&"object"==typeof n&&(n="Object"),`${e}: ${n}`.slice(0,50))}let Jp=(()=>{class e extends zr{constructor(){super(...arguments),this._optionMap=new Map,this._idCounter=0,this._compareWith=Object.is}set compareWith(t){this._compareWith=t}writeValue(t){let r;if(this.value=t,Array.isArray(t)){const o=t.map(i=>this._getOptionId(i));r=(i,s)=>{i._setSelected(o.indexOf(s.toString())>-1)}}else r=(o,i)=>{o._setSelected(!1)};this._optionMap.forEach(r)}registerOnChange(t){this.onChange=r=>{const o=[],i=r.selectedOptions;if(void 0!==i){const s=i;for(let a=0;a{let t;return function(o){return(t||(t=Qe(e)))(o||e)}})();static#t=this.\u0275dir=$({type:e,selectors:[["select","multiple","","formControlName",""],["select","multiple","","formControl",""],["select","multiple","","ngModel",""]],hostBindings:function(r,o){1&r&&O("change",function(s){return o.onChange(s.target)})("blur",function(){return o.onTouched()})},inputs:{compareWith:"compareWith"},features:[Se([tB]),de]})}return e})(),iM=(()=>{class e{constructor(t,r,o){this._element=t,this._renderer=r,this._select=o,this._select&&(this.id=this._select._registerOption(this))}set ngValue(t){null!=this._select&&(this._value=t,this._setElementValue(oM(this.id,t)),this._select.writeValue(this._select.value))}set value(t){this._select?(this._value=t,this._setElementValue(oM(this.id,t)),this._select.writeValue(this._select.value)):this._setElementValue(t)}_setElementValue(t){this._renderer.setProperty(this._element.nativeElement,"value",t)}_setSelected(t){this._renderer.setProperty(this._element.nativeElement,"selected",t)}ngOnDestroy(){this._select&&(this._select._optionMap.delete(this.id),this._select.writeValue(this._select.value))}static#e=this.\u0275fac=function(r){return new(r||e)(S(Rt),S(Pn),S(Jp,9))};static#t=this.\u0275dir=$({type:e,selectors:[["option"]],inputs:{ngValue:"ngValue",value:"value"}})}return e})();let qr=(()=>{class e{constructor(){this._validator=Vc}ngOnChanges(t){if(this.inputName in t){const r=this.normalizeInput(t[this.inputName].currentValue);this._enabled=this.enabled(r),this._validator=this._enabled?this.createValidator(r):Vc,this._onChange&&this._onChange()}}validate(t){return this._validator(t)}registerOnValidatorChange(t){this._onChange=t}enabled(t){return null!=t}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275dir=$({type:e,features:[Lt]})}return e})();const iB={provide:at,useExisting:ve(()=>bi),multi:!0};let bi=(()=>{class e extends qr{constructor(){super(...arguments),this.inputName="required",this.normalizeInput=ti,this.createValidator=t=>vI}enabled(t){return t}static#e=this.\u0275fac=(()=>{let t;return function(o){return(t||(t=Qe(e)))(o||e)}})();static#t=this.\u0275dir=$({type:e,selectors:[["","required","","formControlName","",3,"type","checkbox"],["","required","","formControl","",3,"type","checkbox"],["","required","","ngModel","",3,"type","checkbox"]],hostVars:1,hostBindings:function(r,o){2&r&&Jt("required",o._enabled?"":null)},inputs:{required:"required"},features:[Se([iB]),de]})}return e})();const aB={provide:at,useExisting:ve(()=>Jc),multi:!0};let Jc=(()=>{class e extends qr{constructor(){super(...arguments),this.inputName="email",this.normalizeInput=ti,this.createValidator=t=>_I}enabled(t){return t}static#e=this.\u0275fac=(()=>{let t;return function(o){return(t||(t=Qe(e)))(o||e)}})();static#t=this.\u0275dir=$({type:e,selectors:[["","email","","formControlName",""],["","email","","formControl",""],["","email","","ngModel",""]],inputs:{email:"email"},features:[Se([aB]),de]})}return e})();const cB={provide:at,useExisting:ve(()=>Kp),multi:!0};let Kp=(()=>{class e extends qr{constructor(){super(...arguments),this.inputName="maxlength",this.normalizeInput=t=>function sM(e){return"number"==typeof e?e:parseInt(e,10)}(t),this.createValidator=t=>function DI(e){return n=>function pI(e){return null!=e&&"number"==typeof e.length}(n.value)&&n.value.length>e?{maxlength:{requiredLength:e,actualLength:n.value.length}}:null}(t)}static#e=this.\u0275fac=(()=>{let t;return function(o){return(t||(t=Qe(e)))(o||e)}})();static#t=this.\u0275dir=$({type:e,selectors:[["","maxlength","","formControlName",""],["","maxlength","","formControl",""],["","maxlength","","ngModel",""]],hostVars:1,hostBindings:function(r,o){2&r&&Jt("maxlength",o._enabled?o.maxlength:null)},inputs:{maxlength:"maxlength"},features:[Se([cB]),de]})}return e})();const uB={provide:at,useExisting:ve(()=>eg),multi:!0};let eg=(()=>{class e extends qr{constructor(){super(...arguments),this.inputName="pattern",this.normalizeInput=t=>t,this.createValidator=t=>function wI(e){if(!e)return Vc;let n,t;return"string"==typeof e?(t="","^"!==e.charAt(0)&&(t+="^"),t+=e,"$"!==e.charAt(e.length-1)&&(t+="$"),n=new RegExp(t)):(t=e.toString(),n=e),r=>{if(hr(r.value))return null;const o=r.value;return n.test(o)?null:{pattern:{requiredPattern:t,actualValue:o}}}}(t)}static#e=this.\u0275fac=(()=>{let t;return function(o){return(t||(t=Qe(e)))(o||e)}})();static#t=this.\u0275dir=$({type:e,selectors:[["","pattern","","formControlName",""],["","pattern","","formControl",""],["","pattern","","ngModel",""]],hostVars:1,hostBindings:function(r,o){2&r&&Jt("pattern",o._enabled?o.pattern:null)},inputs:{pattern:"pattern"},features:[Se([uB]),de]})}return e})(),dB=(()=>{class e{static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275mod=Yn({type:e});static#n=this.\u0275inj=An({})}return e})(),Kc=(()=>{class e{static withConfig(t){return{ngModule:e,providers:[{provide:Di,useValue:t.callSetDisabledState??zc}]}}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275mod=Yn({type:e});static#n=this.\u0275inj=An({imports:[dB]})}return e})();class eu{}class tu{}class Gt{constructor(n){this.normalizedNames=new Map,this.lazyUpdate=null,n?"string"==typeof n?this.lazyInit=()=>{this.headers=new Map,n.split("\n").forEach(t=>{const r=t.indexOf(":");if(r>0){const o=t.slice(0,r),i=o.toLowerCase(),s=t.slice(r+1).trim();this.maybeSetNormalizedName(o,i),this.headers.has(i)?this.headers.get(i).push(s):this.headers.set(i,[s])}})}:typeof Headers<"u"&&n instanceof Headers?(this.headers=new Map,n.forEach((t,r)=>{this.setHeaderEntries(r,t)})):this.lazyInit=()=>{this.headers=new Map,Object.entries(n).forEach(([t,r])=>{this.setHeaderEntries(t,r)})}:this.headers=new Map}has(n){return this.init(),this.headers.has(n.toLowerCase())}get(n){this.init();const t=this.headers.get(n.toLowerCase());return t&&t.length>0?t[0]:null}keys(){return this.init(),Array.from(this.normalizedNames.values())}getAll(n){return this.init(),this.headers.get(n.toLowerCase())||null}append(n,t){return this.clone({name:n,value:t,op:"a"})}set(n,t){return this.clone({name:n,value:t,op:"s"})}delete(n,t){return this.clone({name:n,value:t,op:"d"})}maybeSetNormalizedName(n,t){this.normalizedNames.has(t)||this.normalizedNames.set(t,n)}init(){this.lazyInit&&(this.lazyInit instanceof Gt?this.copyFrom(this.lazyInit):this.lazyInit(),this.lazyInit=null,this.lazyUpdate&&(this.lazyUpdate.forEach(n=>this.applyUpdate(n)),this.lazyUpdate=null))}copyFrom(n){n.init(),Array.from(n.headers.keys()).forEach(t=>{this.headers.set(t,n.headers.get(t)),this.normalizedNames.set(t,n.normalizedNames.get(t))})}clone(n){const t=new Gt;return t.lazyInit=this.lazyInit&&this.lazyInit instanceof Gt?this.lazyInit:this,t.lazyUpdate=(this.lazyUpdate||[]).concat([n]),t}applyUpdate(n){const t=n.name.toLowerCase();switch(n.op){case"a":case"s":let r=n.value;if("string"==typeof r&&(r=[r]),0===r.length)return;this.maybeSetNormalizedName(n.name,t);const o=("a"===n.op?this.headers.get(t):void 0)||[];o.push(...r),this.headers.set(t,o);break;case"d":const i=n.value;if(i){let s=this.headers.get(t);if(!s)return;s=s.filter(a=>-1===i.indexOf(a)),0===s.length?(this.headers.delete(t),this.normalizedNames.delete(t)):this.headers.set(t,s)}else this.headers.delete(t),this.normalizedNames.delete(t)}}setHeaderEntries(n,t){const r=(Array.isArray(t)?t:[t]).map(i=>i.toString()),o=n.toLowerCase();this.headers.set(o,r),this.maybeSetNormalizedName(n,o)}forEach(n){this.init(),Array.from(this.normalizedNames.keys()).forEach(t=>n(this.normalizedNames.get(t),this.headers.get(t)))}}class hB{encodeKey(n){return fM(n)}encodeValue(n){return fM(n)}decodeKey(n){return decodeURIComponent(n)}decodeValue(n){return decodeURIComponent(n)}}const gB=/%(\d[a-f0-9])/gi,mB={40:"@","3A":":",24:"$","2C":",","3B":";","3D":"=","3F":"?","2F":"/"};function fM(e){return encodeURIComponent(e).replace(gB,(n,t)=>mB[t]??n)}function nu(e){return`${e}`}class mr{constructor(n={}){if(this.updates=null,this.cloneFrom=null,this.encoder=n.encoder||new hB,n.fromString){if(n.fromObject)throw new Error("Cannot specify both fromString and fromObject.");this.map=function pB(e,n){const t=new Map;return e.length>0&&e.replace(/^\?/,"").split("&").forEach(o=>{const i=o.indexOf("="),[s,a]=-1==i?[n.decodeKey(o),""]:[n.decodeKey(o.slice(0,i)),n.decodeValue(o.slice(i+1))],l=t.get(s)||[];l.push(a),t.set(s,l)}),t}(n.fromString,this.encoder)}else n.fromObject?(this.map=new Map,Object.keys(n.fromObject).forEach(t=>{const r=n.fromObject[t],o=Array.isArray(r)?r.map(nu):[nu(r)];this.map.set(t,o)})):this.map=null}has(n){return this.init(),this.map.has(n)}get(n){this.init();const t=this.map.get(n);return t?t[0]:null}getAll(n){return this.init(),this.map.get(n)||null}keys(){return this.init(),Array.from(this.map.keys())}append(n,t){return this.clone({param:n,value:t,op:"a"})}appendAll(n){const t=[];return Object.keys(n).forEach(r=>{const o=n[r];Array.isArray(o)?o.forEach(i=>{t.push({param:r,value:i,op:"a"})}):t.push({param:r,value:o,op:"a"})}),this.clone(t)}set(n,t){return this.clone({param:n,value:t,op:"s"})}delete(n,t){return this.clone({param:n,value:t,op:"d"})}toString(){return this.init(),this.keys().map(n=>{const t=this.encoder.encodeKey(n);return this.map.get(n).map(r=>t+"="+this.encoder.encodeValue(r)).join("&")}).filter(n=>""!==n).join("&")}clone(n){const t=new mr({encoder:this.encoder});return t.cloneFrom=this.cloneFrom||this,t.updates=(this.updates||[]).concat(n),t}init(){null===this.map&&(this.map=new Map),null!==this.cloneFrom&&(this.cloneFrom.init(),this.cloneFrom.keys().forEach(n=>this.map.set(n,this.cloneFrom.map.get(n))),this.updates.forEach(n=>{switch(n.op){case"a":case"s":const t=("a"===n.op?this.map.get(n.param):void 0)||[];t.push(nu(n.value)),this.map.set(n.param,t);break;case"d":if(void 0===n.value){this.map.delete(n.param);break}{let r=this.map.get(n.param)||[];const o=r.indexOf(nu(n.value));-1!==o&&r.splice(o,1),r.length>0?this.map.set(n.param,r):this.map.delete(n.param)}}}),this.cloneFrom=this.updates=null)}}class vB{constructor(){this.map=new Map}set(n,t){return this.map.set(n,t),this}get(n){return this.map.has(n)||this.map.set(n,n.defaultValue()),this.map.get(n)}delete(n){return this.map.delete(n),this}has(n){return this.map.has(n)}keys(){return this.map.keys()}}function hM(e){return typeof ArrayBuffer<"u"&&e instanceof ArrayBuffer}function pM(e){return typeof Blob<"u"&&e instanceof Blob}function gM(e){return typeof FormData<"u"&&e instanceof FormData}class ca{constructor(n,t,r,o){let i;if(this.url=t,this.body=null,this.reportProgress=!1,this.withCredentials=!1,this.responseType="json",this.method=n.toUpperCase(),function yB(e){switch(e){case"DELETE":case"GET":case"HEAD":case"OPTIONS":case"JSONP":return!1;default:return!0}}(this.method)||o?(this.body=void 0!==r?r:null,i=o):i=r,i&&(this.reportProgress=!!i.reportProgress,this.withCredentials=!!i.withCredentials,i.responseType&&(this.responseType=i.responseType),i.headers&&(this.headers=i.headers),i.context&&(this.context=i.context),i.params&&(this.params=i.params),this.transferCache=i.transferCache),this.headers??=new Gt,this.context??=new vB,this.params){const s=this.params.toString();if(0===s.length)this.urlWithParams=t;else{const a=t.indexOf("?");this.urlWithParams=t+(-1===a?"?":ad.set(g,n.setHeaders[g]),l)),n.setParams&&(c=Object.keys(n.setParams).reduce((d,g)=>d.set(g,n.setParams[g]),c)),new ca(t,r,i,{params:c,headers:l,context:u,reportProgress:a,responseType:o,withCredentials:s})}}var vr=function(e){return e[e.Sent=0]="Sent",e[e.UploadProgress=1]="UploadProgress",e[e.ResponseHeader=2]="ResponseHeader",e[e.DownloadProgress=3]="DownloadProgress",e[e.Response=4]="Response",e[e.User=5]="User",e}(vr||{});class tg{constructor(n,t=ua.Ok,r="OK"){this.headers=n.headers||new Gt,this.status=void 0!==n.status?n.status:t,this.statusText=n.statusText||r,this.url=n.url||null,this.ok=this.status>=200&&this.status<300}}class ru extends tg{constructor(n={}){super(n),this.type=vr.ResponseHeader}clone(n={}){return new ru({headers:n.headers||this.headers,status:void 0!==n.status?n.status:this.status,statusText:n.statusText||this.statusText,url:n.url||this.url||void 0})}}class Wr extends tg{constructor(n={}){super(n),this.type=vr.Response,this.body=void 0!==n.body?n.body:null}clone(n={}){return new Wr({body:void 0!==n.body?n.body:this.body,headers:n.headers||this.headers,status:void 0!==n.status?n.status:this.status,statusText:n.statusText||this.statusText,url:n.url||this.url||void 0})}}class Ei extends tg{constructor(n){super(n,0,"Unknown Error"),this.name="HttpErrorResponse",this.ok=!1,this.message=this.status>=200&&this.status<300?`Http failure during parsing for ${n.url||"(unknown url)"}`:`Http failure response for ${n.url||"(unknown url)"}: ${n.status} ${n.statusText}`,this.error=n.error||null}}var ua=function(e){return e[e.Continue=100]="Continue",e[e.SwitchingProtocols=101]="SwitchingProtocols",e[e.Processing=102]="Processing",e[e.EarlyHints=103]="EarlyHints",e[e.Ok=200]="Ok",e[e.Created=201]="Created",e[e.Accepted=202]="Accepted",e[e.NonAuthoritativeInformation=203]="NonAuthoritativeInformation",e[e.NoContent=204]="NoContent",e[e.ResetContent=205]="ResetContent",e[e.PartialContent=206]="PartialContent",e[e.MultiStatus=207]="MultiStatus",e[e.AlreadyReported=208]="AlreadyReported",e[e.ImUsed=226]="ImUsed",e[e.MultipleChoices=300]="MultipleChoices",e[e.MovedPermanently=301]="MovedPermanently",e[e.Found=302]="Found",e[e.SeeOther=303]="SeeOther",e[e.NotModified=304]="NotModified",e[e.UseProxy=305]="UseProxy",e[e.Unused=306]="Unused",e[e.TemporaryRedirect=307]="TemporaryRedirect",e[e.PermanentRedirect=308]="PermanentRedirect",e[e.BadRequest=400]="BadRequest",e[e.Unauthorized=401]="Unauthorized",e[e.PaymentRequired=402]="PaymentRequired",e[e.Forbidden=403]="Forbidden",e[e.NotFound=404]="NotFound",e[e.MethodNotAllowed=405]="MethodNotAllowed",e[e.NotAcceptable=406]="NotAcceptable",e[e.ProxyAuthenticationRequired=407]="ProxyAuthenticationRequired",e[e.RequestTimeout=408]="RequestTimeout",e[e.Conflict=409]="Conflict",e[e.Gone=410]="Gone",e[e.LengthRequired=411]="LengthRequired",e[e.PreconditionFailed=412]="PreconditionFailed",e[e.PayloadTooLarge=413]="PayloadTooLarge",e[e.UriTooLong=414]="UriTooLong",e[e.UnsupportedMediaType=415]="UnsupportedMediaType",e[e.RangeNotSatisfiable=416]="RangeNotSatisfiable",e[e.ExpectationFailed=417]="ExpectationFailed",e[e.ImATeapot=418]="ImATeapot",e[e.MisdirectedRequest=421]="MisdirectedRequest",e[e.UnprocessableEntity=422]="UnprocessableEntity",e[e.Locked=423]="Locked",e[e.FailedDependency=424]="FailedDependency",e[e.TooEarly=425]="TooEarly",e[e.UpgradeRequired=426]="UpgradeRequired",e[e.PreconditionRequired=428]="PreconditionRequired",e[e.TooManyRequests=429]="TooManyRequests",e[e.RequestHeaderFieldsTooLarge=431]="RequestHeaderFieldsTooLarge",e[e.UnavailableForLegalReasons=451]="UnavailableForLegalReasons",e[e.InternalServerError=500]="InternalServerError",e[e.NotImplemented=501]="NotImplemented",e[e.BadGateway=502]="BadGateway",e[e.ServiceUnavailable=503]="ServiceUnavailable",e[e.GatewayTimeout=504]="GatewayTimeout",e[e.HttpVersionNotSupported=505]="HttpVersionNotSupported",e[e.VariantAlsoNegotiates=506]="VariantAlsoNegotiates",e[e.InsufficientStorage=507]="InsufficientStorage",e[e.LoopDetected=508]="LoopDetected",e[e.NotExtended=510]="NotExtended",e[e.NetworkAuthenticationRequired=511]="NetworkAuthenticationRequired",e}(ua||{});function ng(e,n){return{body:n,headers:e.headers,context:e.context,observe:e.observe,params:e.params,reportProgress:e.reportProgress,responseType:e.responseType,withCredentials:e.withCredentials,transferCache:e.transferCache}}let rg=(()=>{class e{constructor(t){this.handler=t}request(t,r,o={}){let i;if(t instanceof ca)i=t;else{let l,c;l=o.headers instanceof Gt?o.headers:new Gt(o.headers),o.params&&(c=o.params instanceof mr?o.params:new mr({fromObject:o.params})),i=new ca(t,r,void 0!==o.body?o.body:null,{headers:l,context:o.context,params:c,reportProgress:o.reportProgress,responseType:o.responseType||"json",withCredentials:o.withCredentials,transferCache:o.transferCache})}const s=B(i).pipe(oi(l=>this.handler.handle(l)));if(t instanceof ca||"events"===o.observe)return s;const a=s.pipe(on(l=>l instanceof Wr));switch(o.observe||"body"){case"body":switch(i.responseType){case"arraybuffer":return a.pipe(J(l=>{if(null!==l.body&&!(l.body instanceof ArrayBuffer))throw new Error("Response is not an ArrayBuffer.");return l.body}));case"blob":return a.pipe(J(l=>{if(null!==l.body&&!(l.body instanceof Blob))throw new Error("Response is not a Blob.");return l.body}));case"text":return a.pipe(J(l=>{if(null!==l.body&&"string"!=typeof l.body)throw new Error("Response is not a string.");return l.body}));default:return a.pipe(J(l=>l.body))}case"response":return a;default:throw new Error(`Unreachable: unhandled observe type ${o.observe}}`)}}delete(t,r={}){return this.request("DELETE",t,r)}get(t,r={}){return this.request("GET",t,r)}head(t,r={}){return this.request("HEAD",t,r)}jsonp(t,r){return this.request("JSONP",t,{params:(new mr).append(r,"JSONP_CALLBACK"),observe:"body",responseType:"json"})}options(t,r={}){return this.request("OPTIONS",t,r)}patch(t,r,o={}){return this.request("PATCH",t,ng(o,r))}post(t,r,o={}){return this.request("POST",t,ng(o,r))}put(t,r,o={}){return this.request("PUT",t,ng(o,r))}static#e=this.\u0275fac=function(r){return new(r||e)(P(eu))};static#t=this.\u0275prov=R({token:e,factory:e.\u0275fac})}return e})();function vM(e,n){return n(e)}function EB(e,n){return(t,r)=>n.intercept(t,{handle:o=>e(o,r)})}const MB=new N(""),da=new N(""),yM=new N(""),_M=new N("");function SB(){let e=null;return(n,t)=>{null===e&&(e=(T(MB,{optional:!0})??[]).reduceRight(EB,vM));const r=T(Ko),o=r.add();return e(n,t).pipe($s(()=>r.remove(o)))}}let CM=(()=>{class e extends eu{constructor(t,r){super(),this.backend=t,this.injector=r,this.chain=null,this.pendingTasks=T(Ko);const o=T(_M,{optional:!0});this.backend=o??t}handle(t){if(null===this.chain){const o=Array.from(new Set([...this.injector.get(da),...this.injector.get(yM,[])]));this.chain=o.reduceRight((i,s)=>function IB(e,n,t){return(r,o)=>Kn(t,()=>n(r,i=>e(i,o)))}(i,s,this.injector),vM)}const r=this.pendingTasks.add();return this.chain(t,o=>this.backend.handle(o)).pipe($s(()=>this.pendingTasks.remove(r)))}static#e=this.\u0275fac=function(r){return new(r||e)(P(tu),P(Nt))};static#t=this.\u0275prov=R({token:e,factory:e.\u0275fac})}return e})();const RB=/^\)\]\}',?\n/;let wM=(()=>{class e{constructor(t){this.xhrFactory=t}handle(t){if("JSONP"===t.method)throw new M(-2800,!1);const r=this.xhrFactory;return(r.\u0275loadImpl?Ye(r.\u0275loadImpl()):B(null)).pipe(rn(()=>new Ve(i=>{const s=r.build();if(s.open(t.method,t.urlWithParams),t.withCredentials&&(s.withCredentials=!0),t.headers.forEach((_,D)=>s.setRequestHeader(_,D.join(","))),t.headers.has("Accept")||s.setRequestHeader("Accept","application/json, text/plain, */*"),!t.headers.has("Content-Type")){const _=t.detectContentTypeHeader();null!==_&&s.setRequestHeader("Content-Type",_)}if(t.responseType){const _=t.responseType.toLowerCase();s.responseType="json"!==_?_:"text"}const a=t.serializeBody();let l=null;const c=()=>{if(null!==l)return l;const _=s.statusText||"OK",D=new Gt(s.getAllResponseHeaders()),I=function OB(e){return"responseURL"in e&&e.responseURL?e.responseURL:/^X-Request-URL:/m.test(e.getAllResponseHeaders())?e.getResponseHeader("X-Request-URL"):null}(s)||t.url;return l=new ru({headers:D,status:s.status,statusText:_,url:I}),l},u=()=>{let{headers:_,status:D,statusText:I,url:w}=c(),x=null;D!==ua.NoContent&&(x=typeof s.response>"u"?s.responseText:s.response),0===D&&(D=x?ua.Ok:0);let L=D>=200&&D<300;if("json"===t.responseType&&"string"==typeof x){const H=x;x=x.replace(RB,"");try{x=""!==x?JSON.parse(x):null}catch(ge){x=H,L&&(L=!1,x={error:ge,text:x})}}L?(i.next(new Wr({body:x,headers:_,status:D,statusText:I,url:w||void 0})),i.complete()):i.error(new Ei({error:x,headers:_,status:D,statusText:I,url:w||void 0}))},d=_=>{const{url:D}=c(),I=new Ei({error:_,status:s.status||0,statusText:s.statusText||"Unknown Error",url:D||void 0});i.error(I)};let g=!1;const m=_=>{g||(i.next(c()),g=!0);let D={type:vr.DownloadProgress,loaded:_.loaded};_.lengthComputable&&(D.total=_.total),"text"===t.responseType&&s.responseText&&(D.partialText=s.responseText),i.next(D)},v=_=>{let D={type:vr.UploadProgress,loaded:_.loaded};_.lengthComputable&&(D.total=_.total),i.next(D)};return s.addEventListener("load",u),s.addEventListener("error",d),s.addEventListener("timeout",d),s.addEventListener("abort",d),t.reportProgress&&(s.addEventListener("progress",m),null!==a&&s.upload&&s.upload.addEventListener("progress",v)),s.send(a),i.next({type:vr.Sent}),()=>{s.removeEventListener("error",d),s.removeEventListener("abort",d),s.removeEventListener("load",u),s.removeEventListener("timeout",d),t.reportProgress&&(s.removeEventListener("progress",m),null!==a&&s.upload&&s.upload.removeEventListener("progress",v)),s.readyState!==s.DONE&&s.abort()}})))}static#e=this.\u0275fac=function(r){return new(r||e)(P(_b))};static#t=this.\u0275prov=R({token:e,factory:e.\u0275fac})}return e})();const sg=new N(""),bM=new N("",{providedIn:"root",factory:()=>"XSRF-TOKEN"}),EM=new N("",{providedIn:"root",factory:()=>"X-XSRF-TOKEN"});class IM{}let FB=(()=>{class e{constructor(t,r,o){this.doc=t,this.platform=r,this.cookieName=o,this.lastCookieString="",this.lastToken=null,this.parseCount=0}getToken(){if("server"===this.platform)return null;const t=this.doc.cookie||"";return t!==this.lastCookieString&&(this.parseCount++,this.lastToken=ub(t,this.cookieName),this.lastCookieString=t),this.lastToken}static#e=this.\u0275fac=function(r){return new(r||e)(P(It),P(nr),P(bM))};static#t=this.\u0275prov=R({token:e,factory:e.\u0275fac})}return e})();function LB(e,n){const t=e.url.toLowerCase();if(!T(sg)||"GET"===e.method||"HEAD"===e.method||t.startsWith("http://")||t.startsWith("https://"))return n(e);const r=T(IM).getToken(),o=T(EM);return null!=r&&!e.headers.has(o)&&(e=e.clone({headers:e.headers.set(o,r)})),n(e)}var yr=function(e){return e[e.Interceptors=0]="Interceptors",e[e.LegacyInterceptors=1]="LegacyInterceptors",e[e.CustomXsrfConfiguration=2]="CustomXsrfConfiguration",e[e.NoXsrfProtection=3]="NoXsrfProtection",e[e.JsonpSupport=4]="JsonpSupport",e[e.RequestsMadeViaParent=5]="RequestsMadeViaParent",e[e.Fetch=6]="Fetch",e}(yr||{});const MM=new N("");class zB{constructor(){this.name="",this.email="",this.message=""}}let OM=(()=>{class e{constructor(t){this.httpClient=t}postContactForm(t){return this.httpClient.post(`${Ce_apiBaseUrl}contact`,t)}static#e=this.\u0275fac=function(r){return new(r||e)(P(rg))};static#t=this.\u0275prov=R({token:e,factory:e.\u0275fac})}return e})();function qB(e,n){if(1&e){const t=Fe();h(0,"form",4,5),O("ngSubmit",function(){return oe(t),ie(k().submit())}),h(2,"div",6)(3,"label",7),f(4,"Name "),h(5,"span",8),f(6,"*"),p()(),h(7,"input",9),O("ngModelChange",function(o){return oe(t),ie(k().contactViewModel.name=o)}),p()(),h(8,"div",6)(9,"label",10),f(10,"Email address "),h(11,"span",8),f(12,"*"),p()(),h(13,"input",11),O("ngModelChange",function(o){return oe(t),ie(k().contactViewModel.email=o)}),p()(),h(14,"div",6)(15,"label",12),f(16,"Message "),h(17,"span",8),f(18,"*"),p()(),h(19,"textarea",13),O("ngModelChange",function(o){return oe(t),ie(k().contactViewModel.message=o)}),p()(),h(20,"button",14),f(21,"Submit"),p()()}if(2&e){const t=eh(1),r=k();C(7),E("ngModel",r.contactViewModel.name),C(6),E("ngModel",r.contactViewModel.email),C(6),E("ngModel",r.contactViewModel.message),C(),E("disabled",!t.valid||r.enableFormCountDown>0)}}function WB(e,n){1&e&&(h(0,"p"),f(1,"Thanks for your message."),p())}function ZB(e,n){1&e&&(h(0,"p",15),f(1,"Something went wrong. Please try again later."),p())}let YB=(()=>{class e{constructor(t){this.contactService=t,this.contactViewModel=new zB,this.success=!1,this.error=!1,this.enableFormCountDown=100,this.intervalId=null}ngOnInit(){this.intervalId=setInterval(()=>{this.enableFormCountDown-=1,0===this.enableFormCountDown&&clearInterval(this.intervalId)},50)}ngOnDestroy(){this.intervalId&&clearInterval(this.intervalId)}submit(){this.contactService.postContactForm(this.contactViewModel).subscribe({next:t=>{console.log("Submitted form"),this.success=!0},error:t=>{console.error(t),this.error=!0},complete:()=>console.info("complete")})}static#e=this.\u0275fac=function(r){return new(r||e)(S(OM))};static#t=this.\u0275cmp=St({type:e,selectors:[["app-contact-component"]],standalone:!0,features:[kt],decls:6,vars:3,consts:[[1,"container"],[1,"mb-4"],["method","post"],["class","text-danger"],["method","post",3,"ngSubmit"],["contactForm","ngForm"],[1,"mb-3"],["for","Name"],[1,"required"],["type","text","id","Name","name","Name","required","",1,"form-control",3,"ngModel","ngModelChange"],["for","Email"],["type","email","id","Email","name","Email","email","","required","",1,"form-control",3,"ngModel","ngModelChange"],["for","Message"],["rows","7","id","Message","name","Message","required","",1,"form-control",3,"ngModel","ngModelChange"],["type","submit",1,"btn","btn-primary",3,"disabled"],[1,"text-danger"]],template:function(r,o){1&r&&(h(0,"div",0)(1,"h1",1),f(2,"Contact"),p(),q(3,qB,22,4,"form",2)(4,WB,2,0,"p")(5,ZB,2,0,"p",3),p()),2&r&&(C(3),Zo(3,o.success||o.error?-1:3),C(),Zo(4,o.success?4:-1),C(),Zo(5,o.error?5:-1))},dependencies:[Kc,Qc,_i,Uc,Bc,bi,Jc,la,wi]})}return e})();const kM=()=>["/pro"];let QB=(()=>{class e{scrollToAnchor(t){return document.querySelector(t)?.scrollIntoView(!0),!1}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275cmp=St({type:e,selectors:[["app-features-component"]],standalone:!0,features:[kt],decls:131,vars:4,consts:[[1,"container"],[1,"mb-4"],["id","coveragequota"],[1,"pro-text"],["href","https://en.wikipedia.org/wiki/Code_coverage","target","_blank"],[1,"fa-solid","fa-arrow-up-right-from-square"],[3,"routerLink"],[1,"pro-button","pro-button-tiny"],["loading","lazy","srcset","resources/features/quota@1x.webp 1x, resources/features/quota@2x.webp 2x","src","resources/features/quota1x.webp","alt","Coverage quotas",1,"img-fluid"],["id","coveragehistory",1,"mt-5"],["loading","lazy","srcset","resources/features/history@1x.webp 1x, resources/features/history@2x.webp 2x","src","resources/features/history@1x.webp","alt","Coverage history",1,"img-fluid"],["id","summary",1,"mt-5"],["loading","lazy","srcset","resources/features/summary@1x.webp 1x, resources/features/summary@2x.webp 2x","src","resources/features/summary.webp","alt","Summary table / Overview",1,"img-fluid"],["id","details",1,"mt-5"],["loading","lazy","srcset","resources/features/details@1x.webp 1x, resources/features/details@2x.webp 2x","src","resources/features/details.webp","alt","Details",1,"img-fluid"],["id","metrics",1,"mt-5"],["href","https://github.com/danielpalme/ReportGenerator/wiki/FAQ#which-coverage-tool-supports-which-features-in-the-html-report","target","_blank"],["href","",3,"click"],["loading","lazy","srcset","resources/features/metrics_details@1x.webp 1x, resources/features/metrics_details@2x.webp 2x","src","resources/features/metrics_details.webp","alt","Metrics - Details",1,"img-fluid"],["loading","lazy","srcset","resources/features/metrics_summary@1x.webp 1x, resources/features/metrics_summary@2x.webp 2x","src","resources/features/metrics_summary.webp","alt","Metrics - Summary",1,"img-fluid"],["id","riskhotspots",1,"mt-5"],["href","https://en.wikipedia.org/wiki/Cyclomatic_complexity","target","_blank"],["href","https://modess.io/npath-complexity-cyclomatic-complexity-explained","target","_blank"],["href","https://testing.googleblog.com/2011/02/this-code-is-crap.html","target","_blank"],["loading","lazy","srcset","resources/features/riskhotspots@1x.webp 1x, resources/features/riskhotspots@2x.webp 2x","src","resources/features/riskhotspots.webp","alt","Risk Hotspots",1,"img-fluid"]],template:function(r,o){1&r&&(h(0,"div",0)(1,"h1",1),f(2,"Features"),p(),h(3,"h2",2),f(4,"Coverage quotas"),p(),h(5,"p"),f(6," The overiew cards provide a quick "),h(7,"span",3),f(8,"overview"),p(),f(9," of your coverage quotas."),y(10,"br"),f(11," You can use them to get a glimpse into the different "),h(12,"a",4),f(13,"coverage metrics"),p(),f(14,"\xa0"),h(15,"a",4),y(16,"i",5),p(),f(17,": "),p(),h(18,"ul")(19,"li"),f(20,"Line coverage"),p(),h(21,"li"),f(22,"Branch coverage"),p(),h(23,"li"),f(24,"Method coverage "),h(25,"a",6)(26,"span",7),f(27,"PRO"),p()()()(),y(28,"img",8)(29,"br"),h(30,"h2",9),f(31,"Coverage history"),p(),h(32,"p"),f(33," The history chart helps you to understand how your coverage quotas are "),h(34,"span",3),f(35,"evolving over time"),p(),f(36,". "),p(),y(37,"img",10)(38,"br"),h(39,"h2",11),f(40,"Summary table / Overview"),p(),h(41,"p"),f(42," The summary table helps you to identify classes with "),h(43,"span",3),f(44,"low test coverage"),p(),f(45,"."),y(46,"br"),f(47," The table offers various "),h(48,"span",3),f(49,"filter and sorting"),p(),f(50," options for quick navigation. "),p(),y(51,"img",12)(52,"br"),h(53,"h2",13),f(54,"Details page"),p(),h(55,"p"),f(56," The details page visualizes your "),h(57,"span",3),f(58,"line and branch coverage"),p(),f(59,". "),p(),h(60,"ul")(61,"li"),f(62,"Colors indicate the coverage status of each line."),p(),h(63,"li"),f(64,"Branch indicators help you to identity uncovered conditions."),p()(),y(65,"img",14)(66,"br"),h(67,"h2",15),f(68,"Metrics"),p(),h(69,"p"),f(70," Depending on your "),h(71,"a",16),f(72,"coverage tool"),p(),f(73,", metrics are provided to get further insigths in your "),h(74,"span",3),f(75,"code quality"),p(),f(76,". "),p(),h(77,"ul")(78,"li"),f(79,"The "),h(80,"a",17),O("click",function(){return o.scrollToAnchor("#details")}),f(81,"details page"),p(),f(82," contains information about the metrics of all methods of a class."),p(),h(83,"li"),f(84,"The "),h(85,"a",17),O("click",function(){return o.scrollToAnchor("#summary")}),f(86,"summary table"),p(),f(87," shows the lowest metrics of all methods of a class "),h(88,"a",6)(89,"span",7),f(90,"PRO"),p()()()(),h(91,"b"),f(92,"Details page"),p(),y(93,"br")(94,"img",18)(95,"br")(96,"br"),h(97,"b"),f(98,"Summary table"),p(),y(99,"br")(100,"img",19)(101,"br"),h(102,"h2",20),f(103,"Risk Hotspots"),p(),h(104,"p"),f(105," Based on the "),h(106,"a",17),O("click",function(){return o.scrollToAnchor("#metrics")}),f(107,"metrics"),p(),f(108," you get a list of potential risk hotspots."),y(109,"br"),f(110," The following metrics are analyzed if available, the warning thresholds are configurable: "),p(),h(111,"ul")(112,"li")(113,"a",21),f(114,"Cyclomatic complexity"),p(),f(115,"\xa0"),h(116,"a",21),y(117,"i",5),p()(),h(118,"li")(119,"a",22),f(120,"NPath complexity"),p(),f(121,"\xa0"),h(122,"a",22),y(123,"i",5),p()(),h(124,"li")(125,"a",23),f(126,"Crap score"),p(),f(127,"\xa0"),h(128,"a",23),y(129,"i",5),p()()(),y(130,"img",24),p()),2&r&&(C(25),E("routerLink",te(2,kM)),C(63),E("routerLink",te(3,kM)))},dependencies:[In]})}return e})();const zt={dotnetSDKVersion:"8.x",majorVersion:"5",version:"5.2.0"},XB=()=>["/usage"];let JB=(()=>{class e{constructor(){this.versions=zt}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275cmp=St({type:e,selectors:[["app-getstarted"]],standalone:!0,features:[kt],decls:72,vars:6,consts:[[1,"container"],[1,"mb-4"],[3,"routerLink"],["id","net",1,"mt-5"],["href","https://github.com/coverlet-coverage/coverlet"],["href","https://github.com/SteveGilham/altcover"],[1,"text-dark","bg-light","p-2","border"],["id","java",1,"mt-5"],["href","https://github.com/jacoco/jacoco"],["id","nodejs",1,"mt-5"],["href","https://github.com/istanbuljs/nyc"]],template:function(r,o){1&r&&(h(0,"div",0)(1,"h1",1),f(2,"Get started"),p(),h(3,"h2"),f(4,"General"),p(),h(5,"p"),f(6,"In general you need a tool that instruments your test code and collects coverage information."),y(7,"br"),f(8,"This information is typically stored in a XML file (e.g. in Cobertura format)."),y(9,"br"),h(10,"em"),f(11,"ReportGenerator"),p(),f(12," uses this file and generates a report in HTML format (other formats are available)."),p(),h(13,"p"),f(14,"Use the online "),h(15,"a",2),f(16,"configuration tool"),p(),f(17," to get started quickly."),p(),h(18,"h2",3),f(19,".NET"),p(),h(20,"p"),f(21,"For .NET you can use "),h(22,"a",4),f(23,"coverlet"),p(),f(24," or "),h(25,"a",5),f(26,"altcover"),p(),f(27," for instrumenting your test code."),p(),h(28,"p"),f(29,"After adding the dependencies to your project, you can execute your tests and generate the coverage report."),p(),h(30,"p")(31,"strong"),f(32,"Add dependencies to your "),h(33,"code"),f(34,"*.csproj"),p(),f(35," file:"),p()(),h(36,"pre",6),f(37),p(),h(38,"p")(39,"strong"),f(40,"Execute tests and create coverage report"),p()(),h(41,"pre",6),f(42),p(),h(43,"h2",7),f(44,"Java"),p(),h(45,"p"),f(46,"For Java you can use "),h(47,"a",8),f(48,"JaCoCo"),p(),f(49," for instrumenting your test code.\nAfter adding JaCoCo to your project (here with Maven), you can execute your tests and generate the coverage report."),p(),h(50,"p")(51,"strong"),f(52,"Add dependencies to your "),h(53,"code"),f(54,"pom.xml"),p(),f(55," file:"),p()(),h(56,"pre",6),f(57,"\n \n \n \n org.jacoco\n jacoco-maven-plugin\n 0.8.6\n \n \n \n prepare-agent\n \n \n \n report\n prepare-package\n \n report\n \n \n \n \n \n \n \n \n \n org.jacoco\n jacoco-maven-plugin\n \n \n \n report\n \n \n \n \n \n \n\n"),p(),h(58,"p")(59,"strong"),f(60,"Execute tests and create coverage report"),p()(),h(61,"pre",6),f(62),p(),h(63,"h2",9),f(64,"NodeJS"),p(),h(65,"p"),f(66,"For NodeJS you can use "),h(67,"a",10),f(68,"Istanbul"),p(),f(69," for instrumenting your test code.\nAfter installing Istanbul, you can execute your tests and generate the coverage report."),p(),h(70,"pre",6),f(71),p()()),2&r&&(C(15),E("routerLink",te(5,XB)),C(22),Un('\n \n runtime; build; native; contentfiles; analyzers; buildtransitive\n all\n \n \n \n \n all\n runtime; build; native; contentfiles; analyzers\n \n\n'),C(5),Un('dotnet test --collect:"XPlat Code Coverage"\n"%UserProfile%\\.nuget\\packages\\reportgenerator\\',o.versions.version,'\\tools\\net8.0\\ReportGenerator.exe" -reports:*\\TestResults\\*\\coverage.cobertura.xml -targetdir:coveragereport\n'),C(20),Un("mvn test jacoco:report\n\ndotnet tool update dotnet-reportgenerator-globaltool --tool-path tools --version ",o.versions.version,"\ntools\\reportgenerator -reports:target\\site\\jacoco\\jacoco.xml -targetdir:coveragereport -sourcedirs:src\\main\\java\n"),C(9),Un("npm i nyc --save-dev\nnyc --reporter=coberatura mocha\n\ndotnet tool update dotnet-reportgenerator-globaltool --tool-path tools --version ",o.versions.version,"\ntools\\reportgenerator -reports:coverage/cobertura-coverage.xml -targetdir:coveragereport\n"))},dependencies:[In]})}return e})(),PM=(()=>{class e{static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275cmp=St({type:e,selectors:[["app-testimonials"]],standalone:!0,features:[kt],decls:30,vars:0,consts:[[1,"container-fluid","mt-5","pt-5","pb-5","bg-light"],[1,"container"],[1,"text-center"],[1,"row","mt-5"],[1,"col","text-center"],[1,"fa-brands","fa-microsoft","h1","text-secondary"],["href","https://github.com/dotnet/runtime/blob/main/docs/workflow/building/libraries/code-coverage.md","target","_blank",1,"text-dark","d-none","d-lg-block"],[1,"fa-brands","fa-google","h1","text-secondary"],["href","https://github.com/GoogleCloudPlatform/iam-windows-authenticator","target","_blank",1,"text-dark","d-none","d-lg-block"],[1,"fa-brands","fa-aws","h1","text-secondary"],["href","https://github.com/aws/aws-encryption-sdk-dafny/blob/mainline/aws-encryption-sdk-net/README.md","target","_blank",1,"text-dark","d-none","d-lg-block"],[1,"col","text-center","d-none","d-lg-block"],[1,"fa-solid","fa-heart","h1","text-secondary"],["href","https://github.com/danielpalme/ReportGenerator/network/dependents","target","_blank",1,"text-dark"],["href","https://www.nuget.org/packages?q=ReportGenerator+danielpalme","target","_blank",1,"btn","btn-outline-secondary"],[1,"fa-solid","fa-download"]],template:function(r,o){1&r&&(h(0,"section",0)(1,"div",1)(2,"h2",2),f(3,"Code coverage reports trusted by"),p(),h(4,"div",3)(5,"div",4),y(6,"i",5)(7,"br"),h(8,"a",6),f(9,".NET Runtime"),p()(),h(10,"div",4),y(11,"i",7)(12,"br"),h(13,"a",8),f(14,"Google Cloud"),p()(),h(15,"div",4),y(16,"i",9)(17,"br"),h(18,"a",10),f(19,"AWS Encryption SDK"),p()(),h(20,"div",11),y(21,"i",12)(22,"br"),h(23,"a",13),f(24,"Many more"),p()()(),h(25,"div",3)(26,"div",4)(27,"a",14),y(28,"i",15),f(29," Over 70 million downloads on Nuget"),p()()()()())},encapsulation:2})}return e})();const KB=()=>["/pro"],e$=()=>["/usage"],t$=()=>["/getstarted"],n$=()=>["/features"];let r$=(()=>{class e{static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275cmp=St({type:e,selectors:[["app-home"]],standalone:!0,features:[kt],decls:114,vars:8,consts:[[1,"container"],[1,"row"],[1,"col-4","col-md-3"],["src","resources/logo.svg","alt","Logo ReportGenerator",1,"img-fluid"],[1,"col-xs-12","col-md-9","ps-4"],[1,"mt-5"],[1,"line","btn-primary"],[1,"mt-4","h5"],[1,"pro-text"],["href","resources/reports/Html/index.html","target","_blank",1,"btn","btn-primary","me-2","mb-2"],[1,"fa-solid","fa-eye"],[1,"row","mt-5"],[1,"col-sm-12","col-md-4"],[1,"icon"],[1,"fa-solid","fa-scale-balanced"],[1,"h5","ms-3","mt-3"],[1,"mt-3"],[3,"routerLink"],[1,"col-sm-12","col-md-4","mt-4","mt-md-0"],[1,"fa-solid","fa-lightbulb"],[1,"fa-solid","fa-plug"],["href","https://github.com/marketplace/actions/reportgenerator","target","_blank"],["href","https://marketplace.visualstudio.com/items?itemName=Palmmedia.reportgenerator","target","_blank"],[1,"col"],[1,"btn","btn-primary","me-2","mb-2",3,"routerLink"],[1,"fa-solid","fa-wrench"],["href","https://github.com/danielpalme/ReportGenerator","target","_blank",1,"btn","btn-outline-dark","mb-2"],[1,"fa-brands","fa-github"],[1,"container-fluid","mt-5","pt-5","pb-5"],["href","resources/reports/Html/index.html","target","_blank"],["href","https://danielpalme.github.io/ReportGenerator/resources/SampleReports.zip"],[1,"col-sm-12","col-md-6","pb-2"],["href","resources/screenshot1@2x.webp"],["loading","lazy","srcset","resources/screenshot1.webp 1x, resources/screenshot1@2x.webp 2x","src","resources/screenshot1.webp","alt","Screenshot",1,"img-fluid"],[1,"col-sm-12","col-md-6"],["href","resources/screenshot2@2x.webp"],["loading","lazy","srcset","resources/screenshot2.webp 1x, resources/screenshot2@2x.webp 2x","src","resources/screenshot2.webp","alt","Screenshot",1,"img-fluid"]],template:function(r,o){1&r&&(h(0,"section",0)(1,"div",1)(2,"div",2),y(3,"img",3),p(),h(4,"div",4)(5,"h1"),f(6,"ReportGenerator"),p(),h(7,"h2",5),f(8,"Powerful code coverage visualization"),p(),h(9,"div",6),f(10,"\xa0"),p(),h(11,"div",7)(12,"p")(13,"i"),f(14,"ReportGenerator"),p(),f(15," converts "),h(16,"span",8),f(17,"coverage reports"),p(),f(18," generated by coverlet, OpenCover, dotCover, Visual Studio, NCover, Cobertura, JaCoCo, Clover, gcov or lcov into "),h(19,"span",8),f(20,"human readable reports in various formats"),p(),f(21,"."),p(),h(22,"p"),f(23,"The reports show the "),h(24,"span",8),f(25,"coverage quotas"),p(),f(26," and also visualize which lines of your source code have been covered."),p(),h(27,"p")(28,"a",9),y(29,"i",10),f(30," Browse example report"),p()()()()(),h(31,"div",11)(32,"div",12)(33,"div",13),y(34,"i",14),p(),h(35,"span",15),f(36,"Open source"),p(),h(37,"p",16)(38,"i"),f(39,"ReportGenerator"),p(),f(40," is open source under the permissive Apache License."),p(),h(41,"p"),f(42,"It's free to use."),y(43,"br"),f(44,"The "),h(45,"a",17),f(46,"PRO"),p(),f(47," version offers additional features."),p()(),h(48,"div",18)(49,"div",13),y(50,"i",19),p(),h(51,"span",15),f(52,"Easy to use"),p(),h(53,"p",16)(54,"i"),f(55,"ReportGenerator"),p(),f(56," is a command line tool which only requires a "),h(57,"a",17),f(58,"few parameters"),p(),f(59,"."),p(),h(60,"p"),f(61,"Integration into your build pipeline will only take a couple of minutes."),p()(),h(62,"div",18)(63,"div",13),y(64,"i",20),p(),h(65,"span",15),f(66,"Integration"),p(),h(67,"p",16)(68,"i"),f(69,"ReportGenerator"),p(),f(70," works on Windows, Linux and macOS."),p(),h(71,"p"),f(72,"Support for "),h(73,"a",21),f(74,"GitHub actions"),p(),f(75," and "),h(76,"a",22),f(77,"Azure DevOps"),p(),f(78," is available."),p()()(),h(79,"div",11)(80,"div",23)(81,"a",24),y(82,"i",25),f(83," Learn how to use"),p(),h(84,"a",26),y(85,"i",27),f(86," GitHub"),p()()()(),y(87,"app-testimonials"),h(88,"section",28)(89,"div",0)(90,"h2"),f(91,"Screenshots"),p(),h(92,"p"),f(93,"The screenshots show two snippets of the generated code coverage reports."),p(),h(94,"p"),f(95," Have a look the "),h(96,"a",17),f(97,"features page"),p(),f(98," to explore the elements in a coverage report or "),h(99,"a",29),f(100,"browse the example report"),p(),f(101,". "),y(102,"br"),f(103," You can also download "),h(104,"a",30),f(105,"sample reports"),p(),f(106," of all supported output formats."),p(),h(107,"div",1)(108,"div",31)(109,"a",32),y(110,"img",33),p()(),h(111,"div",34)(112,"a",35),y(113,"img",36),p()()()()()),2&r&&(C(45),E("routerLink",te(4,KB)),C(12),E("routerLink",te(5,e$)),C(24),E("routerLink",te(6,t$)),C(15),E("routerLink",te(7,n$)))},dependencies:[In,PM],styles:[".h5[_ngcontent-%COMP%]{font-weight:300}section[_ngcontent-%COMP%]:first-of-type{padding-top:120px;min-height:calc(100vh - 171px)}.icon[_ngcontent-%COMP%]{background-color:#2e89df;background-image:linear-gradient(50deg,var(--rg-gradient-from) 0%,var(--rg-gradient-to) 100%);height:50px;width:50px;border-radius:8px;text-align:center;color:#fff;line-height:50px;font-size:1.5rem;display:inline-block}@media (max-width: 767px){section[_ngcontent-%COMP%]:first-of-type{padding-top:40px}}"]})}return e})(),o$=(()=>{class e{static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275cmp=St({type:e,selectors:[["app-not-found"]],standalone:!0,features:[kt],decls:5,vars:0,consts:[[1,"container"],[1,"mb-4"],[1,"fa-solid","fa-triangle-exclamation","fs-1","me-4"]],template:function(r,o){1&r&&(h(0,"div",0)(1,"h1",1),f(2,"Not found"),p(),y(3,"i",2),f(4," The requested page does not exist.\n"),p())}})}return e})();class FM{constructor(){this.error=null,this.licenses=[]}}class i${constructor(){this.error=null,this.isSponsor=!1,this.license=null}}let LM=(()=>{class e{initCodeFlow(){const o=`https://github.com/login/oauth/authorize?response_type=code&client_id=ecab9484932b59a12fd4&state=${this.createAndSaveNonce()}&redirect_uri=${window.location.origin}/pro`;console.log("Redirecting to: "+o),location.href=o}validateStateAndExtractCode(){let t=location.href;const r=t.indexOf("?");r>-1&&(t=t.substring(r+1));const o=this.parseQueryString(t);return o.state&&o.code&&this.validateNonce(o.state)?o.code:null}createAndSaveNonce(){const t=this.createNonce();return typeof window.localStorage<"u"&&localStorage.setItem("nonce",t),t}validateNonce(t){let r;return typeof window.localStorage<"u"&&(r=localStorage.getItem("nonce"),localStorage.removeItem("nonce")),r&&0!==r.length?r===t||(console.error("Validating nonce failed. Values do not match.",r,t),!1):(console.error("Validating nonce failed. No saved nonce available.",r,t),!1)}createNonce(){const t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~";let r=45,o="";const i=typeof self>"u"?null:self.crypto||self.msCrypto;if(i){let a=new Uint8Array(r);i.getRandomValues(a),a.map||(a.map=Array.prototype.map);const l=[];for(var s=0;s0&&(c=decodeURIComponent(a),u=decodeURIComponent(l),"/"===c.substring(0,1)&&(c=c.substring(1)),r[c]=u);return r}base64UrlEncode(t){return btoa(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=R({token:e,factory:e.\u0275fac})}return e})(),VM=(()=>{class e{constructor(t){this.httpClient=t}getLicense(t){return this.httpClient.get(`${Ce_apiBaseUrl}reportgenerator/license?code=${encodeURIComponent(t)}`)}getTrialLicense(t){return this.httpClient.post(`${Ce_apiBaseUrl}reportgenerator/triallicense`,t)}getPaddleLicense(t){return this.httpClient.post(`${Ce_apiBaseUrl}reportgenerator/paddlelicense`,t)}static#e=this.\u0275fac=function(r){return new(r||e)(P(rg))};static#t=this.\u0275prov=R({token:e,factory:e.\u0275fac})}return e})(),s$=(()=>{class e{constructor(){this.isActive=!1,this.isActive=new Date({active:e});function a$(e,n){if(1&e){const t=Fe();h(0,"span",70)(1,"span",71),O("click",function(){return oe(t),ie(k().lifetimeLicense=!1)}),y(2,"i",72),f(3," Annual subscription"),p(),h(4,"span",71),O("click",function(){return oe(t),ie(k().lifetimeLicense=!0)}),y(5,"i",73),f(6," Lifetime license"),p()()}if(2&e){const t=k();C(),E("ngClass",Ns(2,jM,!t.lifetimeLicense)),C(3),E("ngClass",Ns(4,jM,t.lifetimeLicense))}}function l$(e,n){if(1&e){const t=Fe();h(0,"button",93),O("click",function(){return oe(t),ie(k(2).requestTrial())}),y(1,"i",31),f(2," Start trial"),p()}2&e&&E("disabled",k(2).trialDisabled)}function c$(e,n){1&e&&(h(0,"button",94),f(1,"Coming soon"),p())}function u$(e,n){1&e&&(wt(0),y(1,"i",72),f(2," Annual subscription"),bt())}function d$(e,n){1&e&&(wt(0),y(1,"i",73),f(2," Lifetime license"),bt())}function f$(e,n){if(1&e){const t=Fe();h(0,"button",95),O("click",function(){return oe(t),ie(k(2).openPaddleCheckout("individual"))}),y(1,"i",96),f(2," Buy now"),p()}}function h$(e,n){1&e&&(h(0,"button",94),f(1,"Coming soon"),p())}function p$(e,n){1&e&&(wt(0),y(1,"i",72),f(2," Annual subscription"),bt())}function g$(e,n){1&e&&(wt(0),y(1,"i",73),f(2," Lifetime license"),bt())}function m$(e,n){if(1&e){const t=Fe();h(0,"button",95),O("click",function(){return oe(t),ie(k(2).openPaddleCheckout("team"))}),y(1,"i",96),f(2," Buy now"),p()}}function v$(e,n){1&e&&(h(0,"button",94),f(1,"Coming soon"),p())}function y$(e,n){1&e&&(wt(0),y(1,"i",72),f(2," Annual subscription"),bt())}function _$(e,n){1&e&&(wt(0),y(1,"i",73),f(2," Lifetime license"),bt())}function C$(e,n){if(1&e){const t=Fe();h(0,"button",95),O("click",function(){return oe(t),ie(k(2).openPaddleCheckout("enterprise"))}),y(1,"i",96),f(2," Buy now"),p()}}function D$(e,n){1&e&&(h(0,"button",94),f(1,"Coming soon"),p())}function w$(e,n){if(1&e&&(h(0,"div",2)(1,"div",74)(2,"div",75),y(3,"img",76),h(4,"h4",77),f(5,"Free"),y(6,"br"),f(7,"Trial"),p(),h(8,"p"),y(9,"i",78),f(10," Get full access"),y(11,"br")(12,"i",79),f(13," 10 day trial period "),p(),q(14,l$,3,1,"button",80)(15,c$,2,0,"button",81),p()(),h(16,"div",82)(17,"div",83),y(18,"img",84),h(19,"h4",77),f(20,"Individual"),y(21,"br"),f(22),p(),h(23,"p"),y(24,"i",85),f(25," Per developer license."),y(26,"br"),q(27,u$,3,0,"ng-container",24)(28,d$,3,0,"ng-container",24),p(),q(29,f$,3,0,"button",86)(30,h$,2,0,"button",81),p()(),h(31,"div",87)(32,"div",83),y(33,"img",88),h(34,"h4",77),f(35,"Team"),y(36,"br"),f(37),p(),h(38,"p"),y(39,"i",89),f(40," Up to 10 developers."),y(41,"br"),q(42,p$,3,0,"ng-container",24)(43,g$,3,0,"ng-container",24),p(),q(44,m$,3,0,"button",86)(45,v$,2,0,"button",81),p()(),h(46,"div",90)(47,"div",83),y(48,"img",91),h(49,"h4",77),f(50,"Enterprise"),y(51,"br"),f(52),p(),h(53,"p"),y(54,"i",92),f(55," Unlimited developers."),y(56,"br"),q(57,y$,3,0,"ng-container",24)(58,_$,3,0,"ng-container",24),p(),q(59,C$,3,0,"button",86)(60,D$,2,0,"button",81),p()()()),2&e){const t=k();C(14),E("ngIf",t.enablePaddle),C(),E("ngIf",!t.enablePaddle),C(7),Me(t.lifetimeLicense?t.paddleIndividualLifetimeLicensePrice:t.paddleIndividualLicensePrice),C(5),E("ngIf",!t.lifetimeLicense),C(),E("ngIf",t.lifetimeLicense),C(),E("ngIf",t.enablePaddle),C(),E("ngIf",!t.enablePaddle),C(7),Me(t.lifetimeLicense?t.paddleTeamLifetimeLicensePrice:t.paddleTeamLicensePrice),C(5),E("ngIf",!t.lifetimeLicense),C(),E("ngIf",t.lifetimeLicense),C(),E("ngIf",t.enablePaddle),C(),E("ngIf",!t.enablePaddle),C(7),Me(t.lifetimeLicense?t.paddleEnterpriseLifetimeLicensePrice:t.paddleEnterpriseLicensePrice),C(5),E("ngIf",!t.lifetimeLicense),C(),E("ngIf",t.lifetimeLicense),C(),E("ngIf",t.enablePaddle),C(),E("ngIf",!t.enablePaddle)}}function b$(e,n){1&e&&(wt(0),h(1,"div",98)(2,"span",99),f(3,"Loading..."),p()(),h(4,"span",100),f(5,"Your license is being generated. Please wait."),p(),bt())}const ag=()=>["/contact"];function E$(e,n){if(1&e&&(h(0,"div")(1,"p"),f(2),p(),h(3,"p"),f(4,"Please try again later or use the "),h(5,"a",18),f(6," contact form"),p(),f(7,"."),p()()),2&e){const t=k(3);C(2),Me(t.paddleLicense.error),C(3),E("routerLink",te(2,ag))}}function I$(e,n){1&e&&(h(0,"span"),y(1,"i",107),f(2," Copy"),p())}function M$(e,n){1&e&&(h(0,"span"),y(1,"i",108),f(2," Copied"),p())}function S$(e,n){if(1&e){const t=Fe();h(0,"div",104)(1,"textarea",105),f(2),p(),h(3,"button",106),O("click",function(){const i=oe(t).$implicit;return ie(k(4).copyPaddle(i))}),q(4,I$,3,0,"span",24)(5,M$,3,0,"span",24),p()()}if(2&e){const t=n.$implicit,r=k(4);C(2),Me(t),C(2),E("ngIf",-1===r.copiedPaddledLicenses.indexOf(t)),C(),E("ngIf",r.copiedPaddledLicenses.indexOf(t)>-1)}}function T$(e,n){if(1&e&&(h(0,"div")(1,"label",102),f(2,"Thank you! Please save your license key persistently:"),p(),q(3,S$,6,3,"div",103),p()),2&e){const t=k(3);C(3),E("ngForOf",t.paddleLicense.licenses)}}function A$(e,n){if(1&e&&(h(0,"div",101),q(1,E$,8,3,"div",24)(2,T$,4,1,"div",24),p()),2&e){const t=k(2);C(),E("ngIf",t.paddleLicense.error),C(),E("ngIf",!t.paddleLicense.error)}}function N$(e,n){if(1&e&&(h(0,"div",2),q(1,b$,6,0,"ng-container",24)(2,A$,3,2,"div",97),p()),2&e){const t=k();C(),E("ngIf",t.paddleLicenseRequested&&!t.paddleLicense),C(),E("ngIf",t.paddleLicense)}}function x$(e,n){1&e&&(h(0,"p")(1,"i"),f(2,"ReportGenerator"),p(),f(3," subscription based licences are provided with a 30 day money back guarantee."),p())}function R$(e,n){1&e&&(h(0,"div",98)(1,"span",99),f(2,"Loading..."),p()())}function O$(e,n){1&e&&(h(0,"div",109),y(1,"i",110),p())}function k$(e,n){if(1&e&&(h(0,"div")(1,"p"),f(2),p(),h(3,"p"),f(4,"Please try again later or use the "),h(5,"a",18),f(6," contact form"),p(),f(7,"."),p()()),2&e){const t=k(2);C(2),Me(t.license.error),C(3),E("routerLink",te(2,ag))}}function P$(e,n){1&e&&(h(0,"div")(1,"p"),f(2,"Please become a "),h(3,"a",111),f(4,"GitHub sponsor"),p(),f(5," first."),p()())}function F$(e,n){1&e&&(h(0,"span"),y(1,"i",107),f(2," Copy"),p())}function L$(e,n){1&e&&(h(0,"span"),y(1,"i",108),f(2," Copied"),p())}function V$(e,n){if(1&e){const t=Fe();h(0,"div")(1,"label",112),f(2,"Thank you for becoming a sponsor. Here's your license:"),p(),h(3,"textarea",113),f(4),p(),h(5,"button",106),O("click",function(){return oe(t),ie(k(2).copy())}),q(6,F$,3,0,"span",24)(7,L$,3,0,"span",24),p()()}if(2&e){const t=k(2);C(4),Me(t.license.license),C(2),E("ngIf",!t.licenseCopied),C(),E("ngIf",t.licenseCopied)}}function j$(e,n){if(1&e&&(h(0,"div",26),q(1,k$,8,3,"div",24)(2,P$,6,0,"div",24)(3,V$,8,3,"div",24),p()),2&e){const t=k();C(),E("ngIf",t.license.error),C(),E("ngIf",!t.license.error&&!t.license.isSponsor),C(),E("ngIf",!t.license.error&&t.license.isSponsor&&t.license.license)}}const Ii=()=>["/features"];let U$=(()=>{class e{get lifetimeLicense(){return this._lifetimeLicense}set lifetimeLicense(t){this._lifetimeLicense=t,this.lifetimeLicenseChangeTracked||(this.lifetimeLicenseChangeTracked=!0,this.trackingService.track("Licensetype changed"))}constructor(t,r,o){this.oauthService=t,this.licenseService=r,this.trackingService=o,this.paddleIndividualLicensePrice="US$49",this.paddleTeamLicensePrice="US$149",this.paddleEnterpriseLicensePrice="US$299",this.paddleIndividualLifetimeLicensePrice="US$79",this.paddleTeamLifetimeLicensePrice="US$249",this.paddleEnterpriseLifetimeLicensePrice="US$449",this.licenseRequested=!1,this.licenseCopied=!1,this.license=null,this.enablePaddle=!0,this.trialDisabled=!1,this.requestTrialData={name:"",email:""},this.paddleLicenseRequested=!1,this.paddleLicense=null,this.copiedPaddledLicenses=[],this.self=this,this.lifetimeLicenseChangeTracked=!1,this._lifetimeLicense=!0,window.paddleCheckoutComplete=i=>{this.paddleCheckoutComplete(i)},window.Paddle.Setup({vendor:144162}),window.Paddle.Product.Prices(762579,i=>{this.paddleIndividualLicensePrice=i.recurring.price.gross}),window.Paddle.Product.Prices(762580,i=>{this.paddleTeamLicensePrice=i.recurring.price.gross}),window.Paddle.Product.Prices(762581,i=>{this.paddleEnterpriseLicensePrice=i.recurring.price.gross}),window.Paddle.Product.Prices(833943,i=>{this.paddleIndividualLifetimeLicensePrice=i.price.gross}),window.Paddle.Product.Prices(833944,i=>{this.paddleTeamLifetimeLicensePrice=i.price.gross}),window.Paddle.Product.Prices(833945,i=>{this.paddleEnterpriseLifetimeLicensePrice=i.price.gross})}ngOnInit(){const t=this.oauthService.validateStateAndExtractCode();null!==t?(console.log("Code received",t),this.licenseRequested=!0,this.licenseService.getLicense(t).subscribe({next:r=>{console.log("Received license response"),this.license=r,this.scrollToGithub()},error:r=>{console.error(r),this.license=new i$,this.license.error="Unable to generate license.",this.scrollToGithub()},complete:()=>console.info("complete")})):console.log("No code available"),location.href.indexOf("?source=trial")>-1&&this.trackingService.track("Trial2Pro"),this.requestTrialModal=new window.bootstrap.Modal("#requestTrialModal");try{this.trialDisabled=null!==window.localStorage.getItem("trialRequested")}catch{}}requestLicense(){this.licenseRequested=!0,this.oauthService.initCodeFlow()}copy(){try{navigator.clipboard.writeText(this.license.license),this.licenseCopied=!0}catch(t){console.error("Failed to copy license",t)}}copyPaddle(t){try{navigator.clipboard.writeText(t),this.copiedPaddledLicenses.push(t)}catch(r){console.error("Failed to copy paddle license",r)}}scrollToGithub(){return document.querySelector("#github").scrollIntoView(!0),!1}scrollToPaddle(){return document.querySelector("#paddle").scrollIntoView(!0),!1}requestTrial(){this.requestTrialModal.show(),this.trackingService.track("Trial-Started")}completeTrial(){console.log("Trial completed"),this.requestTrialModal.hide(),this.paddleLicenseRequested=!0,this.licenseService.getTrialLicense(this.requestTrialData).subscribe({next:t=>{console.log("Received trial license response"),this.paddleLicense=t,this.scrollToPaddle();try{window.localStorage.setItem("trialRequested","true"),this.trialDisabled=!0}catch{}this.trackingService.track("Trial-Completed")},error:t=>{console.error(t),this.paddleLicense=new FM,this.paddleLicense.error="Unable to generate trial license."},complete:()=>{console.info("complete"),this.requestTrialData={name:"",email:""}}})}openPaddleCheckout(t){"enterprise"===t?window.Paddle.Checkout.open({product:this.lifetimeLicense?833945:762581,successCallback:"paddleCheckoutComplete"}):"team"===t?window.Paddle.Checkout.open({product:this.lifetimeLicense?833944:762580,successCallback:"paddleCheckoutComplete"}):window.Paddle.Checkout.open({product:this.lifetimeLicense?833943:762579,successCallback:"paddleCheckoutComplete"}),this.trackingService.track("Paddle-Started",{props:{product:t,lifetimeLicense:this.lifetimeLicense}})}paddleCheckoutComplete(t){console.log("Checkout completed",t),this.paddleLicenseRequested=!0,this.licenseService.getPaddleLicense(t).subscribe({next:r=>{console.log("Received paddle license response"),this.paddleLicense=r,this.scrollToPaddle(),this.trackingService.track("Paddle-Completed",{props:{product:t.product.name,lifetimeLicense:this.lifetimeLicense}})},error:r=>{console.error(r),this.paddleLicense=new FM,this.paddleLicense.error="Unable to generate Paddle license."},complete:()=>console.info("complete")})}static#e=this.\u0275fac=function(r){return new(r||e)(S(LM),S(VM),S(s$))};static#t=this.\u0275cmp=St({type:e,selectors:[["app-pro-component"]],standalone:!0,features:[kt],decls:229,vars:25,consts:[[1,"container"],[1,"mb-4"],[1,"row"],[1,"col-xs-12","col-md-6","order-2","order-md-1"],[1,"table"],["scope","col"],["scope","col",1,"text-center"],[1,"pro-button"],["scope","row"],["fragment","metrics","title","Show feature details",3,"routerLink"],[1,"fa-solid","fa-circle-info","text-secondary"],[1,"text-center"],[1,"fa-solid","fa-circle-check","text-secondary"],["fragment","riskhotspots","title","Show feature details",3,"routerLink"],["title","Show feature details",3,"routerLink"],[1,"fa-solid","fa-circle-check","pro-text"],[1,"col-xs-12","col-md-6","order-1","order-md-2"],["href","",3,"click"],[3,"routerLink"],["id","paddle",1,"container-fluid","mt-5","pt-5","pb-5","bg-light"],[1,"text-center","mb-3"],["class","togglecontainer",4,"ngIf"],["class","row",4,"ngIf"],[1,"mt-5"],[4,"ngIf"],["id","github",1,"container-fluid","mt-5","pt-5","pb-5","bg-light"],[1,"col-xs-12","col-md-6","pb-3"],[1,"fs-2","me-3","number"],["href","https://github.com/sponsors/danielpalme","target","_blank",1,"btn","btn-outline-dark"],[1,"fa-solid","fa-heart","githubheart"],["type","button",1,"btn","btn-primary","me-3",3,"disabled","click"],[1,"fa-solid","fa-rocket"],["class","spinner-border text-info","role","status",4,"ngIf"],["class","col-md-6 pb-3 d-none d-lg-block position-relative",4,"ngIf"],["class","col-xs-12 col-md-6 pb-3",4,"ngIf"],[1,"container-fluid","mt-4","pt-5","pb-5","bg-light"],[1,"container","text-center"],[1,"row","mt-5","testimonial"],["href","https://twitter.com/fredyfx/status/1642807795828543488","target","_blank"],["loading","lazy","src","resources/twitter_light.webp","alt","Testimonial",1,"img-fluid"],["id","faq",1,"container","mt-5","pt-5","pb-5"],["id","accordionFaq",1,"accordion","accordion-flush"],[1,"accordion-item"],["id","headingOne",1,"accordion-header"],["type","button","data-bs-toggle","collapse","data-bs-target","#collapseOne","aria-expanded","true","aria-controls","collapseOne",1,"accordion-button"],["id","collapseOne","aria-labelledby","headingOne","data-bs-parent","#accordionFaq",1,"accordion-collapse","collapse","show"],[1,"accordion-body"],["id","headingTwo",1,"accordion-header"],["type","button","data-bs-toggle","collapse","data-bs-target","#collapseTwo","aria-expanded","false","aria-controls","collapseTwo",1,"accordion-button","collapsed"],["id","collapseTwo","aria-labelledby","headingTwo","data-bs-parent","#accordionFaq",1,"accordion-collapse","collapse"],["id","headingThree",1,"accordion-header"],["type","button","data-bs-toggle","collapse","data-bs-target","#collapseThree","aria-expanded","false","aria-controls","collapseThree",1,"accordion-button","collapsed"],["id","collapseThree","aria-labelledby","headingThree","data-bs-parent","#accordionFaq",1,"accordion-collapse","collapse"],["tabindex","-1","id","requestTrialModal",1,"modal"],[1,"modal-dialog"],[1,"modal-content"],["method","post",3,"ngSubmit"],["trialForm","ngForm"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal","aria-label","Close",1,"btn-close"],[1,"modal-body"],[1,"form-floating","mb-3"],["type","text","id","name","name","name","required","","maxlength","150",1,"form-control",3,"ngModel","ngModelChange"],["for","floatingInput"],[1,"required"],["type","email","id","email","name","email","required","","email","","maxlength","150",1,"form-control",3,"ngModel","ngModelChange"],[1,"modal-footer"],["type","button","data-bs-dismiss","modal",1,"btn","btn-secondary"],["type","submit",1,"btn","btn-primary",3,"disabled"],[1,"togglecontainer"],[1,"option",3,"ngClass","click"],[1,"fa-solid","fa-rotate-right"],[1,"fa-solid","fa-infinity"],[1,"col-xs-12","col-md-6","col-lg-3","mt-0","pb-3","text-center","paddle-container"],[1,"paddle","trial"],["src","resources/trial.svg","alt","Trial",1,"img-fluid"],[1,"mt-3"],[1,"fa-solid","fa-magnifying-glass"],[1,"fa-solid","fa-calendar-days"],["type","button","class","btn btn-primary",3,"disabled","click",4,"ngIf"],["type","button","class","btn btn-primary","disabled","",4,"ngIf"],[1,"col-xs-12","col-md-6","col-lg-3","mt-4","mt-md-0","pb-3","text-center","paddle-container"],[1,"paddle"],["src","resources/individual.svg","alt","Individual",1,"img-fluid"],[1,"fa-solid","fa-user"],["type","button","class","btn btn-primary",3,"click",4,"ngIf"],[1,"col-xs-12","col-md-6","col-lg-3","mt-4","mt-lg-0","pb-3","text-center","paddle-container"],["src","resources/team.svg","alt","Team",1,"img-fluid"],[1,"fa-solid","fa-users"],[1,"col-xs-6","col-md-6","col-lg-3","mt-4","mt-lg-0","pb-3","text-center","paddle-container"],["src","resources/enterprise.svg","alt","Enterprise",1,"img-fluid"],[1,"fa-solid","fa-industry"],["type","button",1,"btn","btn-primary",3,"disabled","click"],["type","button","disabled","",1,"btn","btn-primary"],["type","button",1,"btn","btn-primary",3,"click"],[1,"fa-solid","fa-cart-shopping"],["class","col-xs-12 col-md-6",4,"ngIf"],["role","status",1,"spinner-border","text-info"],[1,"visually-hidden"],[1,"position-relative","paddle-loading"],[1,"col-xs-12","col-md-6"],["for","paddlelicensetext"],["class","mt-2",4,"ngFor","ngForOf"],[1,"mt-2"],["id","paddlelicensetext","rows","5","readonly","",1,"form-control"],[1,"btn","btn-outline-dark","mt-2",3,"click"],[1,"fa-solid","fa-copy"],[1,"fa-solid","fa-check","text-success"],[1,"col-md-6","pb-3","d-none","d-lg-block","position-relative"],[1,"fa-solid","fa-heart","githubheartlarge"],["href","https://github.com/sponsors/danielpalme","target","_blank"],["for","licensetext"],["id","licensetext","rows","5","readonly","",1,"form-control","mt-2"]],template:function(r,o){if(1&r&&(h(0,"div",0)(1,"h1",1),f(2,"PRO"),p(),h(3,"div",2)(4,"div",3)(5,"table",4)(6,"thead")(7,"tr"),y(8,"th",5),h(9,"th",6),f(10,"Free"),p(),h(11,"th",6)(12,"span",7),f(13,"PRO"),p()()()(),h(14,"tbody")(15,"tr")(16,"th",8),f(17,"Metrics "),h(18,"a",9),y(19,"i",10),p()(),h(20,"td",11),y(21,"i",12),p(),h(22,"td",11),y(23,"i",12),p()(),h(24,"tr")(25,"th",8),f(26,"Risk Hotspots "),h(27,"a",13),y(28,"i",10),p()(),h(29,"td",11),y(30,"i",12),p(),h(31,"td",11),y(32,"i",12),p()(),h(33,"tr")(34,"th",8),f(35,"Line coverage "),h(36,"a",14),y(37,"i",10),p()(),h(38,"td",11),y(39,"i",12),p(),h(40,"td",11),y(41,"i",12),p()(),h(42,"tr")(43,"th",8),f(44,"Branch coverage "),h(45,"a",14),y(46,"i",10),p()(),h(47,"td",11),y(48,"i",12),p(),h(49,"td",11),y(50,"i",12),p()(),h(51,"tr")(52,"th",8),f(53,"Method coverage "),h(54,"a",14),y(55,"i",10),p()(),y(56,"td",11),h(57,"td",11),y(58,"i",15),p()(),h(59,"tr")(60,"th",8),f(61,"Metrics on summary page "),h(62,"a",9),y(63,"i",10),p()(),y(64,"td",11),h(65,"td",11),y(66,"i",15),p()(),h(67,"tr")(68,"th",8)(69,"i"),f(70,"OpenCover"),p(),f(71," output format"),p(),y(72,"td",11),h(73,"td",11),y(74,"i",15),p()()()()(),h(75,"div",16)(76,"p")(77,"i"),f(78,"ReportGenerator"),p(),f(79," is Open Source and free to use."),y(80,"br"),f(81," Some of the advanced features require a PRO license. "),p(),h(82,"p"),f(83," You can either "),h(84,"a",17),O("click",function(){return o.scrollToPaddle()}),f(85,"buy a license"),p(),f(86," or you can become a "),h(87,"a",17),O("click",function(){return o.scrollToGithub()}),f(88,"GitHub sponsor"),p(),f(89,"."),y(90,"br"),f(91," A "),h(92,"a",17),O("click",function(){return o.scrollToPaddle()}),f(93,"free trial version"),p(),f(94," is available too. "),p(),h(95,"p"),f(96," Get "),h(97,"a",18),f(98,"in touch"),p(),f(99," if you have any issues and we will figure it out. "),p()()()(),h(100,"section",19)(101,"div",0)(102,"h2",1),f(103,"Buy a license"),p(),h(104,"div",20),q(105,a$,7,6,"span",21),p(),q(106,w$,61,17,"div",22)(107,N$,3,2,"div",22),h(108,"div",23),q(109,x$,4,0,"p",24),h(110,"p"),f(111,"The order process is conducted by Paddle.com. Paddle.com is the Merchant of Record for all orders. Paddle provides all customer service inquiries and handles returns."),p()()()(),h(112,"section",25)(113,"div",0)(114,"h2",1),f(115,"Get your license as a GitHub sponsor"),p(),h(116,"div",2)(117,"div",26)(118,"p"),f(119,"You can obtain your license in two easy steps (no sign up required):"),p(),h(120,"span",27),f(121,"1."),p(),h(122,"a",28),y(123,"i",29),f(124," Become a GitHub sponsor"),p(),y(125,"br"),h(126,"span",27),f(127,"2."),p(),h(128,"button",30),O("click",function(){return o.requestLicense()}),y(129,"i",31),f(130," Get license"),p(),q(131,R$,3,0,"div",32),p(),q(132,O$,2,0,"div",33)(133,j$,4,3,"div",34),p()()(),y(134,"app-testimonials"),h(135,"section",35)(136,"div",36)(137,"h3"),f(138,"Customers"),p(),h(139,"div",37)(140,"a",38),y(141,"img",39),p()()()(),h(142,"section",40)(143,"h2",1),f(144,"Frequently Asked Questions"),p(),h(145,"div",41)(146,"div",42)(147,"h2",43)(148,"button",44),f(149," How do I use/activate my license? "),p()(),h(150,"div",45)(151,"div",46),f(152," Your license key is passed to "),h(153,"i"),f(154,"ReportGenerator"),p(),f(155," via a command line parameter: "),h(156,"i"),f(157,"-license:YOUR_KEY"),p()()()(),h(158,"div",42)(159,"h2",47)(160,"button",48),f(161," Are there limitations on number of users? "),p()(),h(162,"div",49)(163,"div",46)(164,"b"),f(165,"GitHub sponsors"),p(),y(166,"br"),h(167,"p"),f(168,"There's no enforced limit. Please pick a sponsor level that fits your company size and budget."),p(),h(169,"b"),f(170,"Bought license"),p(),y(171,"br"),h(172,"p"),f(173,"There's no enforced limit. Please choose a plan that matches the number of developers using "),h(174,"i"),f(175,"ReportGenerator"),p(),f(176,"."),p()()()(),h(177,"div",42)(178,"h2",50)(179,"button",51),f(180," Will my license expire? "),p()(),h(181,"div",52)(182,"div",46)(183,"b"),f(184,"GitHub sponsors"),p(),y(185,"br"),h(186,"p"),f(187,"Your license will not expire."),p(),h(188,"b"),f(189,"Bought license"),p(),y(190,"br"),h(191,"p")(192,"b"),f(193,"Annual subscription"),p(),f(194,": Your license may get revoked for new releases of "),h(195,"i"),f(196,"ReportGenerator"),p(),f(197,", if you cancel your subscription."),y(198,"br"),h(199,"b"),f(200,"Lifetime licenses"),p(),f(201,": Lifetime licenses will not expire. "),p()()()()()(),h(202,"div",53)(203,"div",54)(204,"div",55)(205,"form",56,57),O("ngSubmit",function(){return o.completeTrial()}),h(207,"div",58)(208,"h5",59),f(209,"Free Trial"),p(),y(210,"button",60),p(),h(211,"div",61)(212,"div",62)(213,"input",63),O("ngModelChange",function(s){return o.requestTrialData.name=s}),p(),h(214,"label",64),f(215,"Name "),h(216,"span",65),f(217,"*"),p()()(),h(218,"div",62)(219,"input",66),O("ngModelChange",function(s){return o.requestTrialData.email=s}),p(),h(220,"label",64),f(221,"Email address "),h(222,"span",65),f(223,"*"),p()()()(),h(224,"div",67)(225,"button",68),f(226,"Close"),p(),h(227,"button",69),f(228,"Get trial license"),p()()()()()()),2&r){const i=eh(206);C(18),E("routerLink",te(18,Ii)),C(9),E("routerLink",te(19,Ii)),C(9),E("routerLink",te(20,Ii)),C(9),E("routerLink",te(21,Ii)),C(9),E("routerLink",te(22,Ii)),C(8),E("routerLink",te(23,Ii)),C(35),E("routerLink",te(24,ag)),C(8),E("ngIf",!o.paddleLicenseRequested),C(),E("ngIf",!o.paddleLicenseRequested),C(),E("ngIf",o.paddleLicenseRequested),C(2),E("ngIf",!o.lifetimeLicense),C(19),E("disabled",o.licenseRequested),C(3),E("ngIf",o.licenseRequested&&!o.license),C(),E("ngIf",!o.license),C(),E("ngIf",o.license),C(80),E("ngModel",o.requestTrialData.name),C(6),E("ngModel",o.requestTrialData.email),C(8),E("disabled",!i.valid)}},dependencies:[In,Uh,Bh,vc,Kc,Qc,_i,Uc,Bc,bi,Kp,Jc,la,wi,PM],styles:[".number[_ngcontent-%COMP%]{display:inline-block;position:relative;top:8px}.spinner-border[_ngcontent-%COMP%]{position:relative;top:9px}.paddle-container[_ngcontent-%COMP%]{padding:10px}.paddle[_ngcontent-%COMP%]{border:1px solid #8c8888;border-radius:20px;padding:20px;background-color:#d8e8f0}.trial[_ngcontent-%COMP%]{background-color:#b2cad7}.githubheartlarge[_ngcontent-%COMP%]{position:absolute;top:-120px;left:40%;font-size:20rem;color:#ffd2ed}.togglecontainer[_ngcontent-%COMP%]{background-color:#fff;display:inline-block;border-radius:20px;white-space:nowrap}.togglecontainer[_ngcontent-%COMP%] .option[_ngcontent-%COMP%]{background-color:#fff;padding:8px 15px;border-radius:20px;cursor:pointer;display:inline-block}.togglecontainer[_ngcontent-%COMP%] .option.active[_ngcontent-%COMP%]{color:#fff;background-color:var(--rg-primary-color);background-image:linear-gradient(50deg,var(--rg-gradient-from) 0%,var(--rg-gradient-to) 100%)}@media only screen and (max-width: 400px){.togglecontainer[_ngcontent-%COMP%] .option[_ngcontent-%COMP%] .fa-solid[_ngcontent-%COMP%]{display:none}}.paddle-loading[_ngcontent-%COMP%]{position:relative;left:35px;top:-20px}.testimonial[_ngcontent-%COMP%]{max-width:550px;margin:auto}"]})}return e})();class iu{constructor(n,t,r,o,i,s){this.name=n,this.url=t,this.runtimes=r,this.description=o,this.installOptions=i,this.executables=s}formatExecutable(n){return n.tool}formatArgument(n,t){if(""===(t=t.trim()))return"";const r=t.indexOf(" ")>-1?'"':"";return`\r\n${r}-${n}:${t}${r}`}formatArguments(n,t){return this.formatArgument(n,t.filter(r=>null!=r&&0!==r.length&&0!==r.trim().length).join(";"))}}class B$ extends iu{formatExecutable(n){let t=`- task: ${n.tool}@${zt.majorVersion}`;return t+="\r\n displayName: ReportGenerator",t+="\r\n inputs:",console.log("hello",t),t}formatArgument(n,t){if(""===(t=t.trim()))return"";const r=t.indexOf(" ")>-1?"'":"";return`\r\n ${n}: ${r}${t}${r}`}}class $${constructor(){this.verbosities=["Verbose","Info","Warning","Error","Off"],this.types=["Html","Coverage tool","Json","Markdown","Xml","Text","Image"],this.reports=["cobertura.xml"],this.targetdir="coveragereport",this.reporttypes=[{name:"Html",types:["Html"],description:"The default output format. Creates a summary overview (index.html) and detailed reports for each class.",requiresHistoryDir:!1,checked:!0,sampleReport:"resources/reports/Html/index.html"},{name:"Html_Light",types:["Html"],description:"Same as Html but with a light theme.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/Html_Light/index.html"},{name:"Html_Dark",types:["Html"],description:"Same as Html but with a dark theme.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/Html_Dark/index.html"},{name:"Html_BlueRed",types:["Html"],description:"Same as Html but with the colors blue/red instead of green/red.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/Html_BlueRed/index.html"},{name:"HtmlSummary",types:["Html"],description:"Creates a single HTML file (summary.html) without links.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/HtmlSummary/summary.html"},{name:"Html_BlueRed_Summary",types:["Html"],description:"Same as HtmlSummary but with the colors blue/red instead of green/red.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/Html_BlueRed_Summary/summary.html"},{name:"HtmlChart",types:["Html"],description:"Creates a single HTML file containing a chart with historic coverage information.",requiresHistoryDir:!0,checked:!1,sampleReport:"resources/reports/HtmlChart/CoverageHistory.html"},{name:"HtmlInline",types:["Html"],description:"Same as HTML but CSS and JavaScript is included in every HTML page. This results in larger file sizes, but can be useful for integration into build servers like Azure DevOps (VSTS), since they may block referenced CSS and JavaScript files.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/HtmlInline/index.html"},{name:"HtmlInline_AzurePipelines",types:["Html"],description:"Same as HtmlInline but with an adaptive light/dark theme matching the look and feel of Azure Pipelines",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/HtmlInline_AzurePipelines/index.html"},{name:"HtmlInline_AzurePipelines_Light",types:["Html"],description:"Same as HtmlInline but with a light theme matching the look and feel of Azure Pipelines.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/HtmlInline_AzurePipelines_Light/index.html"},{name:"HtmlInline_AzurePipelines_Dark",types:["Html"],description:"Same as HtmlInline but with a dark theme matching the look and feel of Azure Pipelines.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/HtmlInline_AzurePipelines_Dark/index.html"},{name:"MHtml",types:["Html"],description:"Same as HTML but packaged into a single MHTML file.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/MHtml/Summary.mht"},{name:"Clover",types:["Coverage tool"],description:"Creates a XML file in Clover format. This format integrates with tools like Atlassian Bamboo.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/Clover/Clover.xml"},{name:"Cobertura",types:["Coverage tool"],description:"Creates a XML file in Cobertura format. This format integrates with tools like Azure DevOps (VSTS) or Jenkins.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/Cobertura/Cobertura.xml"},{name:"OpenCover",types:["Coverage tool"],description:"Creates a XML file in OpenCover format (PRO version only).",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/OpenCover/OpenCover.xml"},{name:"SonarQube",types:["Coverage tool"],description:"Creates a XML file in SonarQube 'Generic Test Data' format.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/SonarQube/SonarQube.xml"},{name:"lcov",types:["Coverage tool"],description:"Creates a text file in 'lcov' format.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/lcov/lcov.info"},{name:"XML",types:["Xml"],description:"Creates a XML file containing a summary for all classes and detailed reports for each class.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/Xml/Summary.xml"},{name:"XMLSummary",types:["Xml"],description:"Creates a single XML file containing a summary for all classes.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/XmlSummary/Summary.xml"},{name:"JsonSummary",types:["Json"],description:"Creates a single JSON file containing a summary for all classes.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/JsonSummary/Summary.json"},{name:"Latex",types:["Text"],description:"Creates a single TEX file containing a summary for all classes and detailed reports for each class.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/Summary/Summary.tex"},{name:"LatexSummary",types:["Text"],description:"Creates a single TEX file containing a summary for all classes.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/LatexSummary/Summary.tex"},{name:"TeamCitySummary",types:["Coverage tool"],description:"Command line output interpreted by TeamCity.",requiresHistoryDir:!1,checked:!1,sampleReport:null},{name:"TextSummary",types:["Text"],description:"Creates a single TXT file containing coverage information per class.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/TextSummary/Summary.txt"},{name:"TextDeltaSummary",types:["Text"],description:"Creates a single TXT file containing delta coverage information.",requiresHistoryDir:!0,checked:!1,sampleReport:"resources/reports/TextDeltaSummary/DeltaSummary.txt"},{name:"CsvSummary",types:["Text"],description:"Creates a single CSV file containing coverage information per class.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/CsvSummary/Summary.csv"},{name:"MarkdownSummary",types:["Text","Markdown"],description:"Creates a single Markdown file containing coverage information per class.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/MarkdownSummary/Summary.md"},{name:"MarkdownSummaryGithub",types:["Text","Markdown"],description:"Creates a single Markdown file containing coverage information per class. The report is optimized for GitHub.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/MarkdownSummaryGithub/SummaryGithub.md"},{name:"MarkdownDeltaSummary",types:["Text","Markdown"],description:"Creates a single Markdown file containing delta coverage information.",requiresHistoryDir:!0,checked:!1,sampleReport:"resources/reports/MarkdownDeltaSummary/DeltaSummary.md"},{name:"SvgChart",types:["Image"],description:"Creates a single SVG file containing a chart with historic coverage information.",requiresHistoryDir:!0,checked:!1,sampleReport:"resources/reports/SvgChart/CoverageHistory.svg"},{name:"Badges",types:["Image"],description:"Creates SVG files that show line and/or branch coverage information.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/Badges/index.html"}],this.sourcedirectories=[],this.historydir="",this.plugins=[],this.assemblyfilters=[],this.classfilters=[],this.filefilters=[],this.selectedverbosity=this.verbosities[1],this.selectedType=null,this.title="",this.tag="",this.license=""}addSourceDirectory(){return this.sourcedirectories.push(""),!1}removeSourceDirectory(n){return this.sourcedirectories.splice(n,1),!1}addReport(){return this.reports.push(""),!1}removeReport(n){return this.reports.splice(n,1),!1}addPlugin(){return this.plugins.push(""),!1}removePlugin(n){return this.plugins.splice(n,1),!1}addAssemblyFilter(){return this.assemblyfilters.push(""),!1}removeAssemblyFilter(n){return this.assemblyfilters.splice(n,1),!1}addClassFilter(){return this.classfilters.push(""),!1}removeClassFilter(n){return this.classfilters.splice(n,1),!1}addFileFilter(){return this.filefilters.push(""),!1}removeFileFilter(n){return this.filefilters.splice(n,1),!1}getUsage(n,t){const r=n.executables.find(a=>a.runtime==t);let o=void 0!==r?n.formatExecutable(r):"";o+=n.formatArguments("reports",this.reports),o+=n.formatArgument("targetdir",this.targetdir);for(var i="",s=0;s0&&(i+=";"),i+=this.reporttypes[s].name);return i.length>0&&"Html"!==i&&(o+=n.formatArgument("reporttypes",i)),o+=n.formatArguments("sourcedirs",this.sourcedirectories),o+=n.formatArgument("historydir",this.historydir),o+=n.formatArguments("plugins",this.plugins),o+=n.formatArguments("assemblyfilters",this.assemblyfilters),o+=n.formatArguments("classfilters",this.classfilters),o+=n.formatArguments("filefilters",this.filefilters),"Info"!==this.selectedverbosity&&(o+=n.formatArgument("verbosity",this.selectedverbosity)),o+=n.formatArgument("title",this.title),o+=n.formatArgument("tag",this.tag),o+=n.formatArgument("license",this.license),o}historyDirRequired(){for(let n=0;n-1?"'":"";return`\r\n ${n}: ${r}${t}${r}`}}class lg{constructor(n,t){this.tool=n,this.command=t}}function G$(e,n){if(1&e){const t=Fe();h(0,"div",35)(1,"label",36)(2,"input",37),O("ngModelChange",function(o){return oe(t),ie(k().selectedEnvironment=o)})("ngModelChange",function(){return oe(t),ie(k().selectedEnvironmentChanged())}),p(),h(3,"b"),f(4),p(),y(5,"br"),h(6,"div",38),f(7),p()()()}if(2&e){const t=n.$implicit,r=k();C(2),E("ngModel",r.selectedEnvironment)("value",t)("checked",r.selectedEnvironment.name===t.name),C(2),Me(t.name),C(3),Me(t.description)}}function z$(e,n){if(1&e){const t=Fe();h(0,"div",35)(1,"label",36)(2,"input",41),O("ngModelChange",function(o){return oe(t),ie(k(3).selectedPackage=o)}),p(),h(3,"b"),f(4),p(),y(5,"br"),h(6,"div",38),f(7),p()()()}if(2&e){const t=k().$implicit,r=k(2);C(2),E("ngModel",r.selectedPackage)("value",t),C(2),Me(t.name),C(3),Me(t.description)}}function q$(e,n){if(1&e&&(wt(0),q(1,z$,8,4,"div",40),bt()),2&e){const t=n.$implicit,r=k(2);C(),E("ngIf",t.runtimes.indexOf(r.selectedEnvironment.name)>-1)}}function W$(e,n){if(1&e&&(wt(0),h(1,"h4"),f(2,"NuGet Package"),p(),q(3,q$,2,1,"ng-container",39),bt()),2&e){const t=k();C(3),E("ngForOf",t.packages)}}function Z$(e,n){if(1&e){const t=Fe();h(0,"span",45),O("click",function(){oe(t);const o=k().index;return ie(k().configuration.removeReport(o))}),h(1,"a",46),y(2,"i",47),p()()}}const Y$=e=>({"input-group":e});function Q$(e,n){if(1&e){const t=Fe();h(0,"div",38)(1,"div",42)(2,"input",43),O("ngModelChange",function(o){const s=oe(t).index;return ie(k().configuration.reports[s]=o)}),p(),q(3,Z$,3,0,"span",44),p()()}if(2&e){const t=n.index,r=k();C(),E("ngClass",Ns(4,Y$,t>0)),C(),Vn("name","report_",t,""),E("ngModel",r.configuration.reports[t]),C(),E("ngIf",t>0)}}const X$=(e,n)=>({"btn-outline-primary":e,"btn-primary":n});function J$(e,n){if(1&e){const t=Fe();h(0,"button",48),O("click",function(){const i=oe(t).$implicit,s=k();return ie(s.configuration.selectedType=s.configuration.selectedType===i?null:i)}),f(1),p()}if(2&e){const t=n.$implicit,r=k();E("ngClass",GD(2,X$,t!==r.configuration.selectedType,t===r.configuration.selectedType)),C(),Me(t)}}function K$(e,n){if(1&e){const t=Fe();h(0,"span",53),y(1,"i",54),f(2," Please specify a "),h(3,"a",9),O("click",function(){return oe(t),ie(k(3).scrollToHistoryDir())}),f(4,"history directory"),p()()}}function eH(e,n){if(1&e&&(wt(0),y(1,"br",55),h(2,"a",29),f(3,"Sample report"),p(),f(4,"\xa0"),h(5,"a",29),y(6,"i",56),p(),bt()),2&e){const t=k(2).$implicit;C(2),E("href",t.sampleReport,Eo),C(3),E("href",t.sampleReport,Eo)}}function tH(e,n){if(1&e){const t=Fe();h(0,"div",50)(1,"label",36)(2,"input",51),O("change",function(){oe(t);const o=k().$implicit;return ie(o.checked=!o.checked)}),p(),h(3,"b"),f(4),p(),q(5,K$,5,0,"span",52),y(6,"br"),h(7,"div",38),f(8),q(9,eH,7,2,"ng-container",5),p()()()}if(2&e){const t=k().$implicit,r=k();C(2),E("checked",t.checked),C(2),Me(t.name),C(),E("ngIf",t.checked&&t.requiresHistoryDir&&!r.configuration.historydir),C(3),Un("",t.description," "),C(),E("ngIf",t.sampleReport)}}function nH(e,n){if(1&e&&(wt(0),q(1,tH,10,5,"div",49),bt()),2&e){const t=n.$implicit,r=k();C(),E("ngIf",!r.configuration.selectedType||t.types.indexOf(r.configuration.selectedType)>-1)}}function rH(e,n){if(1&e){const t=Fe();h(0,"div",8)(1,"div",57)(2,"input",58),O("ngModelChange",function(o){const s=oe(t).index;return ie(k().configuration.sourcedirectories[s]=o)}),p(),h(3,"span",45),O("click",function(){const i=oe(t).index;return ie(k().configuration.removeSourceDirectory(i))}),h(4,"a",46),y(5,"i",47),p()()()()}if(2&e){const t=n.index,r=k();C(2),Vn("name","sourcedir_",t,""),E("ngModel",r.configuration.sourcedirectories[t])}}function oH(e,n){if(1&e){const t=Fe();h(0,"div",8)(1,"div",57)(2,"input",59),O("ngModelChange",function(o){const s=oe(t).index;return ie(k().configuration.plugins[s]=o)}),p(),h(3,"span",45),O("click",function(){const i=oe(t).index;return ie(k().configuration.removePlugin(i))}),h(4,"a",46),y(5,"i",47),p()()()()}if(2&e){const t=n.index,r=k();C(2),Vn("name","plugin_",t,""),E("ngModel",r.configuration.plugins[t])}}function iH(e,n){if(1&e){const t=Fe();h(0,"div",8)(1,"div",57)(2,"input",60),O("ngModelChange",function(o){const s=oe(t).index;return ie(k().configuration.assemblyfilters[s]=o)}),p(),h(3,"span",45),O("click",function(){const i=oe(t).index;return ie(k().configuration.removeAssemblyFilter(i))}),h(4,"a",46),y(5,"i",47),p()()()()}if(2&e){const t=n.index,r=k();C(2),Vn("name","assemblyfilter_",t,""),E("ngModel",r.configuration.assemblyfilters[t])}}function sH(e,n){if(1&e){const t=Fe();h(0,"div",8)(1,"div",57)(2,"input",61),O("ngModelChange",function(o){const s=oe(t).index;return ie(k().configuration.classfilters[s]=o)}),p(),h(3,"span",45),O("click",function(){const i=oe(t).index;return ie(k().configuration.removeClassFilter(i))}),h(4,"a",46),y(5,"i",47),p()()()()}if(2&e){const t=n.index,r=k();C(2),Vn("name","classfilter_",t,""),E("ngModel",r.configuration.classfilters[t])}}function aH(e,n){if(1&e){const t=Fe();h(0,"div",8)(1,"div",57)(2,"input",62),O("ngModelChange",function(o){const s=oe(t).index;return ie(k().configuration.filefilters[s]=o)}),p(),h(3,"span",45),O("click",function(){const i=oe(t).index;return ie(k().configuration.removeFileFilter(i))}),h(4,"a",46),y(5,"i",47),p()()()()}if(2&e){const t=n.index,r=k();C(2),Vn("name","filefilter_",t,""),E("ngModel",r.configuration.filefilters[t])}}function lH(e,n){if(1&e&&(h(0,"option",63),f(1),p()),2&e){const t=n.$implicit;E("value",t),C(),Me(t)}}function cH(e,n){if(1&e&&(h(0,"div",64)(1,"b"),f(2),p(),y(3,"br"),h(4,"pre",32),f(5),p()()),2&e){const t=n.$implicit;C(2),Me(t.tool),C(3),Me(t.command)}}function uH(e,n){1&e&&(y(0,"i",65),f(1," Copied "))}function dH(e,n){1&e&&(y(0,"i",66),f(1," Copy "))}function fH(e,n){if(1&e&&(h(0,"div",64)(1,"b"),f(2),p(),y(3,"br"),h(4,"pre",32),f(5),p()()),2&e){const t=n.$implicit;C(2),Me(t.tool),C(3),Me(t.command)}}function hH(e,n){1&e&&(y(0,"i",65),f(1," Copied "))}function pH(e,n){1&e&&(y(0,"i",66),f(1," Copy "))}const gH=()=>["/pro"],Yr=" | ReportGenerator - Code coverage reports",vH=[{path:"",component:r$,pathMatch:"full",title:"Home"+Yr,data:{canonical:"/"}},{path:"features",component:QB,title:"Features"+Yr,data:{canonical:"/features"}},{path:"features.html",redirectTo:"/features"},{path:"getstarted",component:JB,title:"Get started"+Yr,data:{canonical:"/getstarted"}},{path:"getstarted.html",redirectTo:"/getstarted"},{path:"usage",component:(()=>{class e{constructor(){this.versions=zt,this.lastResult="",this.usageCopied=!1,this.configuration=new $$,this.environments=[new su(".NET Core",".NET Core"),new su(".NET Framework","The full .NET framework"),new su("Azure DevOps",null),new su("Github Action",null)],this.packages=[new iu("ReportGenerator","https://www.nuget.org/packages/ReportGenerator",[".NET Framework",".NET Core"],"Use this package if your project is based on .NET Framework or .NET Core and you want to use ReportGenerator via the command line or a build script.",[new lg("Package Manager",`Install-Package ReportGenerator -Version ${zt.version}`),new lg(".NET CLI",`dotnet add package ReportGenerator --version ${zt.version}`)],[new fa(".NET Framework",`$(UserProfile)\\.nuget\\packages\\reportgenerator\\${zt.version}\\tools\\net47\\ReportGenerator.exe`),new fa(".NET Core",`dotnet $(UserProfile)\\.nuget\\packages\\reportgenerator\\${zt.version}\\tools\\net6.0\\ReportGenerator.dll`)]),new iu("dotnet-reportgenerator-globaltool","https://www.nuget.org/packages/dotnet-reportgenerator-globaltool",[".NET Core"],"Use this package if your project is based on .NET Core and you want to use ReportGenerator as a (global) 'DotnetTool'.",[new lg(".NET CLI",`dotnet tool install --global dotnet-reportgenerator-globaltool --version ${zt.version}\r\n\r\ndotnet tool install dotnet-reportgenerator-globaltool --tool-path tools --version ${zt.version}\r\n\r\ndotnet new tool-manifest\r\ndotnet tool install dotnet-reportgenerator-globaltool --version ${zt.version}`)],[new fa(".NET Core","reportgenerator")]),new B$("Azure DevOps","https://marketplace.visualstudio.com/items?itemName=Palmmedia.reportgenerator",["Azure DevOps"],"Use this package within Azure DevOps",[],[new fa("Azure DevOps","reportgenerator")]),new H$("GitHub Action","https://github.com/marketplace/actions/reportgenerator",["Github Action"],"Use this package within Github Actions",[],[new fa("Github Action","danielpalme/ReportGenerator-GitHub-Action")])],this.selectedEnvironment=this.environments[0],this.selectedPackage=this.packages[0]}selectedEnvironmentChanged(){this.selectedPackage=this.packages.find(t=>t.runtimes.indexOf(this.selectedEnvironment.name)>-1)}severalPackagesAvailable(){return this.packages.filter(t=>t.runtimes.indexOf(this.selectedEnvironment.name)>-1).length>1}getUsage(){const t=this.configuration.getUsage(this.selectedPackage,this.selectedEnvironment.name);return this.lastResult!==t&&(this.lastResult=t,this.usageCopied=!1),t}copy(){try{navigator.clipboard.writeText(this.getUsage()),this.usageCopied=!0}catch(t){console.error("Failed to copy license",t)}}scrollToHistoryDir(){return document.querySelector("#historydir").scrollIntoView(!0),!1}trackByIndex(t,r){return t}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275cmp=St({type:e,selectors:[["app-usage-component"]],standalone:!0,features:[kt],decls:219,vars:39,consts:[[1,"container"],[1,"mb-4"],[1,"row"],[1,"col-md-7"],["class","form-check",4,"ngFor","ngForOf"],[4,"ngIf"],[1,"alert","alert-info"],["class","mb-3",4,"ngFor","ngForOf","ngForTrackBy"],[1,"input-group","mb-3"],["href","",3,"click"],[1,"fa","fa-plus-circle"],["type","text","name","targetdir","placeholder","The target directory","required","",1,"form-control",3,"ngModel","ngModelChange"],["href","https://danielpalme.github.io/ReportGenerator/resources/SampleReports.zip"],[1,"me-2"],["type","button","class","btn btn-sm me-1 mb-1",3,"ngClass","click",4,"ngFor","ngForOf","ngForTrackBy"],[4,"ngFor","ngForOf","ngForTrackBy"],["class","input-group mb-3",4,"ngFor","ngForOf","ngForTrackBy"],["id","historydir"],["type","text","name","historydir","placeholder","The history directory",1,"form-control",3,"ngModel","required","ngModelChange"],["href","https://github.com/danielpalme/ReportGenerator/wiki/Custom-reports"],["href","https://github.com/danielpalme/ReportGenerator/wiki/Custom-history-storage"],["name","verbosity",1,"form-select",3,"ngModel","ngModelChange"],[3,"value",4,"ngFor","ngForOf","ngForTrackBy"],["type","text","name","title","placeholder","Title",1,"form-control",3,"ngModel","ngModelChange"],["type","text","name","tag","placeholder","Optional tag or build version",1,"form-control",3,"ngModel","ngModelChange"],[3,"routerLink"],["type","text","name","license","placeholder","Optional license for PRO version","rows","4",1,"form-control",3,"ngModel","ngModelChange"],[1,"col-md-5"],[1,"d-md-none","mt-5"],["target","_blank",3,"href"],["class","mt-2",4,"ngFor","ngForOf"],[1,"mt-4"],[1,"text-dark","bg-light","p-2","border"],[1,"btn","btn-outline-dark","mt-2",3,"click"],[1,"d-none","d-md-block","sticky"],[1,"form-check"],[1,"form-check-label"],["type","radio","name","environment",1,"form-check-input",3,"ngModel","value","checked","ngModelChange"],[1,"mb-3"],[4,"ngFor","ngForOf"],["class","form-check",4,"ngIf"],["type","radio","name","package",1,"form-check-input",3,"ngModel","value","ngModelChange"],[3,"ngClass"],["type","text","placeholder","The path of the coverage file","required","",1,"form-control",3,"name","ngModel","ngModelChange"],["class","input-group-text",3,"click",4,"ngIf"],[1,"input-group-text",3,"click"],["href",""],[1,"fa","fa-trash","text-danger"],["type","button",1,"btn","btn-sm","me-1","mb-1",3,"ngClass","click"],["class","form-check mt-1",4,"ngIf"],[1,"form-check","mt-1"],["type","checkbox","name","reporttype",1,"form-check-input",3,"checked","change"],["class","text-danger ms-2",4,"ngIf"],[1,"text-danger","ms-2"],[1,"fa-solid","fa-triangle-exclamation"],[1,"mt-1"],[1,"fa-solid","fa-arrow-up-right-from-square"],[1,"input-group"],["type","text","placeholder","The source directory","required","",1,"form-control",3,"name","ngModel","ngModelChange"],["type","text","placeholder","The path of the plugin","required","",1,"form-control",3,"name","ngModel","ngModelChange"],["type","text","placeholder","The include or exclude filter for assemlies","pattern","^[+-].+$","required","",1,"form-control",3,"name","ngModel","ngModelChange"],["type","text","placeholder","The include or exclude filter for classes","pattern","^[+-].+$","required","",1,"form-control",3,"name","ngModel","ngModelChange"],["type","text","placeholder","The include or exclude filter for files","pattern","^[+-].+$","required","",1,"form-control",3,"name","ngModel","ngModelChange"],[3,"value"],[1,"mt-2"],[1,"fa-solid","fa-check","text-success"],[1,"fa-solid","fa-copy"]],template:function(r,o){1&r&&(h(0,"div",0)(1,"h1",1),f(2,"Usage"),p(),h(3,"div",2)(4,"div",3)(5,"form")(6,"h3"),f(7,"Environment"),p(),q(8,G$,8,5,"div",4),y(9,"hr"),q(10,W$,4,1,"ng-container",5),y(11,"hr"),h(12,"h3"),f(13,"Reports"),p(),h(14,"div",6),f(15,"Path to the coverage report(s) that should be parsed."),y(16,"br"),f(17,"Globbing is supported."),p(),q(18,Q$,4,6,"div",7),h(19,"div",8)(20,"a",9),O("click",function(){return o.configuration.addReport()}),y(21,"i",10),f(22," Add report"),p()(),y(23,"br"),h(24,"h3"),f(25,"Target directory"),p(),h(26,"div",6),f(27,"The directory where the generated report(s) should be saved."),p(),h(28,"div",8)(29,"input",11),O("ngModelChange",function(s){return o.configuration.targetdir=s}),p()(),y(30,"br"),h(31,"h3"),f(32,"Report types"),p(),h(33,"div",6),f(34,"Download "),h(35,"a",12),f(36,"sample reports"),p()(),h(37,"span",13),f(38,"Filter:"),p(),q(39,J$,2,5,"button",14),y(40,"br"),q(41,nH,2,1,"ng-container",15),h(42,"h3"),f(43,"Source directories"),p(),h(44,"div",6),f(45,"Optional directories which contain the corresponding source code."),y(46,"br"),f(47,"The source directories are used if coverage report contains classes without path information."),p(),q(48,rH,6,2,"div",16),h(49,"div",8)(50,"a",9),O("click",function(){return o.configuration.addSourceDirectory()}),y(51,"i",10),f(52," Add source directory"),p()(),y(53,"br"),h(54,"h3",17),f(55,"History directory"),p(),h(56,"div",6),f(57,"Optional directory for storing "),h(58,"b"),f(59,"persistent"),p(),f(60," coverage information. Choose a directory which does not get deleted between builds."),y(61,"br"),f(62,"Required to show the history chart in the HTML reports."),p(),h(63,"div",8)(64,"input",18),O("ngModelChange",function(s){return o.configuration.historydir=s}),p()(),y(65,"br"),h(66,"h3"),f(67,"Plugins"),p(),h(68,"div",6),f(69,"Optional plugin files for "),h(70,"a",19),f(71,"custom reports"),p(),f(72," or "),h(73,"a",20),f(74,"custom history storage"),p(),f(75,"."),p(),q(76,oH,6,2,"div",16),h(77,"div",8)(78,"a",9),O("click",function(){return o.configuration.addPlugin()}),y(79,"i",10),f(80," Add plugin"),p()(),y(81,"br"),h(82,"h3"),f(83,"Assembly filters"),p(),h(84,"div",6),f(85,"Optional list of "),h(86,"b"),f(87,"assemblies"),p(),f(88," that should be included or excluded in the report. "),y(89,"br"),f(90,"Exclusion filters take precedence over inclusion filters. "),y(91,"br"),f(92,"Wildcards are allowed."),y(93,"br"),h(94,"p"),f(95,"Examples:"),y(96,"br"),h(97,"code"),f(98,"+Included"),p(),y(99,"br"),h(100,"code"),f(101,"-Excluded"),p()()(),q(102,iH,6,2,"div",16),h(103,"div",8)(104,"a",9),O("click",function(){return o.configuration.addAssemblyFilter()}),y(105,"i",10),f(106," Add assembly filter"),p()(),y(107,"br"),h(108,"h3"),f(109,"Class filters"),p(),h(110,"div",6),f(111,"Optional list of "),h(112,"b"),f(113,"classes"),p(),f(114," that should be included or excluded in the report. "),y(115,"br"),f(116,"Exclusion filters take precedence over inclusion filters. "),y(117,"br"),f(118,"Wildcards are allowed."),y(119,"br"),h(120,"p"),f(121,"Examples:"),y(122,"br"),h(123,"code"),f(124,"+Included"),p(),y(125,"br"),h(126,"code"),f(127,"-Excluded"),p()()(),q(128,sH,6,2,"div",16),h(129,"div",8)(130,"a",9),O("click",function(){return o.configuration.addClassFilter()}),y(131,"i",10),f(132," Add class filter"),p()(),y(133,"br"),h(134,"h3"),f(135,"File filters"),p(),h(136,"div",6),f(137,"Optional list of "),h(138,"b"),f(139,"files"),p(),f(140," that should be included or excluded in the report. "),y(141,"br"),f(142,"Exclusion filters take precedence over inclusion filters. "),y(143,"br"),f(144,"Wildcards are allowed."),y(145,"br"),h(146,"p"),f(147,"Examples:"),y(148,"br"),h(149,"code"),f(150,"+Included"),p(),y(151,"br"),h(152,"code"),f(153,"-Excluded"),p()()(),q(154,aH,6,2,"div",16),h(155,"div",8)(156,"a",9),O("click",function(){return o.configuration.addFileFilter()}),y(157,"i",10),f(158," Add file filter"),p()(),y(159,"br"),h(160,"h3"),f(161,"Verbosity"),p(),h(162,"div",6),f(163,"The verbosity level of the log messages."),p(),h(164,"div",8)(165,"select",21),O("ngModelChange",function(s){return o.configuration.selectedverbosity=s}),q(166,lH,2,2,"option",22),p()(),y(167,"br"),h(168,"h3"),f(169,"Title"),p(),h(170,"div",6),f(171,"Optional title."),p(),h(172,"div",8)(173,"input",23),O("ngModelChange",function(s){return o.configuration.title=s}),p()(),y(174,"br"),h(175,"h3"),f(176,"Tag"),p(),h(177,"div",6),f(178,"Optional tag or build version."),p(),h(179,"div",8)(180,"input",24),O("ngModelChange",function(s){return o.configuration.tag=s}),p()(),y(181,"br"),h(182,"h3"),f(183,"License"),p(),h(184,"div",6),f(185,"Optional license. Get your license here: "),h(186,"a",25),f(187,"https://reportgenerator.io/pro"),p()(),h(188,"div",8)(189,"textarea",26),O("ngModelChange",function(s){return o.configuration.license=s}),p()()()(),h(190,"div",27)(191,"div",28)(192,"h3"),f(193,"Instructions"),p(),f(194," Install "),h(195,"a",29),f(196),p(),q(197,cH,6,2,"div",30),h(198,"h4",31),f(199,"Usage"),p(),h(200,"pre",32),f(201),p(),h(202,"button",33),O("click",function(){return o.copy()}),q(203,uH,2,0)(204,dH,2,0),p()(),h(205,"div",34)(206,"h3"),f(207,"Instructions"),p(),f(208," Install "),h(209,"a",29),f(210),p(),q(211,fH,6,2,"div",30),h(212,"h4",31),f(213,"Usage"),p(),h(214,"pre",32),f(215),p(),h(216,"button",33),O("click",function(){return o.copy()}),q(217,hH,2,0)(218,pH,2,0),p()()()()()),2&r&&(C(8),E("ngForOf",o.environments),C(2),E("ngIf",o.severalPackagesAvailable()),C(8),E("ngForOf",o.configuration.reports)("ngForTrackBy",o.trackByIndex),C(11),E("ngModel",o.configuration.targetdir),C(10),E("ngForOf",o.configuration.types)("ngForTrackBy",o.trackByIndex),C(2),E("ngForOf",o.configuration.reporttypes)("ngForTrackBy",o.trackByIndex),C(7),E("ngForOf",o.configuration.sourcedirectories)("ngForTrackBy",o.trackByIndex),C(16),E("ngModel",o.configuration.historydir)("required",o.configuration.historyDirRequired()),C(12),E("ngForOf",o.configuration.plugins)("ngForTrackBy",o.trackByIndex),C(26),E("ngForOf",o.configuration.assemblyfilters)("ngForTrackBy",o.trackByIndex),C(26),E("ngForOf",o.configuration.classfilters)("ngForTrackBy",o.trackByIndex),C(26),E("ngForOf",o.configuration.filefilters)("ngForTrackBy",o.trackByIndex),C(11),E("ngModel",o.configuration.selectedverbosity),C(),E("ngForOf",o.configuration.verbosities)("ngForTrackBy",o.trackByIndex),C(7),E("ngModel",o.configuration.title),C(7),E("ngModel",o.configuration.tag),C(6),E("routerLink",te(38,gH)),C(3),E("ngModel",o.configuration.license),C(6),E("href",o.selectedPackage.url,Eo),C(),Me(o.selectedPackage.name),C(),E("ngForOf",o.selectedPackage.installOptions),C(4),Me(o.getUsage()),C(2),Zo(203,o.usageCopied?203:204),C(6),E("href",o.selectedPackage.url,Eo),C(),Me(o.selectedPackage.name),C(),E("ngForOf",o.selectedPackage.installOptions),C(4),Me(o.getUsage()),C(2),Zo(217,o.usageCopied?217:218))},dependencies:[Kc,Qc,rM,iM,_i,Xc,Zp,Uc,Bc,bi,eg,la,wi,Uh,Bh,vc,In],styles:[".sticky[_ngcontent-%COMP%]{position:sticky;top:100px}"]})}return e})(),title:"Usage"+Yr,data:{canonical:"/usage"}},{path:"usage.html",redirectTo:"/usage"},{path:"pro",component:U$,title:"PRO"+Yr,data:{canonical:"/pro"}},{path:"pro.html",redirectTo:"/pro"},{path:"contact",component:YB,title:"Contact"+Yr,data:{canonical:"/contact"}},{path:"contact.html",redirectTo:"/contact"},{path:"404",component:o$,title:"404 - Not found"+Yr},{path:"**",redirectTo:"/404"}];(function OV(e,n){return iF({rootComponent:e,...rE(n)})})(yU,{providers:[Wm(jV,(()=>{class e{static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275mod=Yn({type:e});static#n=this.\u0275inj=An({imports:[lI.forRoot(vH,{scrollPositionRestoration:"enabled",scrollOffset:[0,0],anchorScrolling:"enabled"}),lI]})}return e})(),Kc),LM,VM,OM,function VB(...e){const n=[rg,wM,CM,{provide:eu,useExisting:CM},{provide:tu,useExisting:wM},{provide:da,useValue:LB,multi:!0},{provide:sg,useValue:!0},{provide:IM,useClass:FB}];for(const t of e)n.push(...t.\u0275providers);return qa(n)}(function jB(){return function Zr(e,n){return{\u0275kind:e,\u0275providers:n}}(yr.LegacyInterceptors,[{provide:MM,useFactory:SB},{provide:da,useExisting:MM,multi:!0}])}())]}).catch(e=>console.error(e))}},Mi=>{Mi(Mi.s=985)}]); \ No newline at end of file +"use strict";(self.webpackChunkReportGenerator_io=self.webpackChunkReportGenerator_io||[]).push([[179],{985:()=>{let Re=null,ha=1;const Qr=Symbol("SIGNAL");function Ae(e){const n=Re;return Re=e,n}function cg(e){if((!Ai(e)||e.dirty)&&(e.dirty||e.lastCleanEpoch!==ha)){if(!e.producerMustRecompute(e)&&!cu(e))return e.dirty=!1,void(e.lastCleanEpoch=ha);e.producerRecomputeValue(e),e.dirty=!1,e.lastCleanEpoch=ha}}function cu(e){Xr(e);for(let n=0;n0}function Xr(e){e.producerNode??=[],e.producerIndexOfThis??=[],e.producerLastReadVersion??=[]}let yg=null;function we(e){return"function"==typeof e}function du(e){const t=e(r=>{Error.call(r),r.stack=(new Error).stack});return t.prototype=Object.create(Error.prototype),t.prototype.constructor=t,t}const fu=du(e=>function(t){e(this),this.message=t?`${t.length} errors occurred during unsubscription:\n${t.map((r,o)=>`${o+1}) ${r.toString()}`).join("\n ")}`:"",this.name="UnsubscriptionError",this.errors=t});function hu(e,n){if(e){const t=e.indexOf(n);0<=t&&e.splice(t,1)}}class gt{constructor(n){this.initialTeardown=n,this.closed=!1,this._parentage=null,this._finalizers=null}unsubscribe(){let n;if(!this.closed){this.closed=!0;const{_parentage:t}=this;if(t)if(this._parentage=null,Array.isArray(t))for(const i of t)i.remove(this);else t.remove(this);const{initialTeardown:r}=this;if(we(r))try{r()}catch(i){n=i instanceof fu?i.errors:[i]}const{_finalizers:o}=this;if(o){this._finalizers=null;for(const i of o)try{bg(i)}catch(s){n=n??[],s instanceof fu?n=[...n,...s.errors]:n.push(s)}}if(n)throw new fu(n)}}add(n){var t;if(n&&n!==this)if(this.closed)bg(n);else{if(n instanceof gt){if(n.closed||n._hasParent(this))return;n._addParent(this)}(this._finalizers=null!==(t=this._finalizers)&&void 0!==t?t:[]).push(n)}}_hasParent(n){const{_parentage:t}=this;return t===n||Array.isArray(t)&&t.includes(n)}_addParent(n){const{_parentage:t}=this;this._parentage=Array.isArray(t)?(t.push(n),t):t?[t,n]:n}_removeParent(n){const{_parentage:t}=this;t===n?this._parentage=null:Array.isArray(t)&&hu(t,n)}remove(n){const{_finalizers:t}=this;t&&hu(t,n),n instanceof gt&&n._removeParent(this)}}gt.EMPTY=(()=>{const e=new gt;return e.closed=!0,e})();const Dg=gt.EMPTY;function wg(e){return e instanceof gt||e&&"closed"in e&&we(e.remove)&&we(e.add)&&we(e.unsubscribe)}function bg(e){we(e)?e():e.unsubscribe()}const Cr={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},ga={setTimeout(e,n,...t){const{delegate:r}=ga;return r?.setTimeout?r.setTimeout(e,n,...t):setTimeout(e,n,...t)},clearTimeout(e){const{delegate:n}=ga;return(n?.clearTimeout||clearTimeout)(e)},delegate:void 0};function Eg(e){ga.setTimeout(()=>{const{onUnhandledError:n}=Cr;if(!n)throw e;n(e)})}function pu(){}const XM=gu("C",void 0,void 0);function gu(e,n,t){return{kind:e,value:n,error:t}}let Dr=null;function ma(e){if(Cr.useDeprecatedSynchronousErrorHandling){const n=!Dr;if(n&&(Dr={errorThrown:!1,error:null}),e(),n){const{errorThrown:t,error:r}=Dr;if(Dr=null,t)throw r}}else e()}class mu extends gt{constructor(n){super(),this.isStopped=!1,n?(this.destination=n,wg(n)&&n.add(this)):this.destination=o0}static create(n,t,r){return new yu(n,t,r)}next(n){this.isStopped?_u(function KM(e){return gu("N",e,void 0)}(n),this):this._next(n)}error(n){this.isStopped?_u(function JM(e){return gu("E",void 0,e)}(n),this):(this.isStopped=!0,this._error(n))}complete(){this.isStopped?_u(XM,this):(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe(),this.destination=null)}_next(n){this.destination.next(n)}_error(n){try{this.destination.error(n)}finally{this.unsubscribe()}}_complete(){try{this.destination.complete()}finally{this.unsubscribe()}}}const t0=Function.prototype.bind;function vu(e,n){return t0.call(e,n)}class n0{constructor(n){this.partialObserver=n}next(n){const{partialObserver:t}=this;if(t.next)try{t.next(n)}catch(r){va(r)}}error(n){const{partialObserver:t}=this;if(t.error)try{t.error(n)}catch(r){va(r)}else va(n)}complete(){const{partialObserver:n}=this;if(n.complete)try{n.complete()}catch(t){va(t)}}}class yu extends mu{constructor(n,t,r){let o;if(super(),we(n)||!n)o={next:n??void 0,error:t??void 0,complete:r??void 0};else{let i;this&&Cr.useDeprecatedNextContext?(i=Object.create(n),i.unsubscribe=()=>this.unsubscribe(),o={next:n.next&&vu(n.next,i),error:n.error&&vu(n.error,i),complete:n.complete&&vu(n.complete,i)}):o=n}this.destination=new n0(o)}}function va(e){Cr.useDeprecatedSynchronousErrorHandling?function e0(e){Cr.useDeprecatedSynchronousErrorHandling&&Dr&&(Dr.errorThrown=!0,Dr.error=e)}(e):Eg(e)}function _u(e,n){const{onStoppedNotification:t}=Cr;t&&ga.setTimeout(()=>t(e,n))}const o0={closed:!0,next:pu,error:function r0(e){throw e},complete:pu},Cu="function"==typeof Symbol&&Symbol.observable||"@@observable";function wr(e){return e}function Ig(e){return 0===e.length?wr:1===e.length?e[0]:function(t){return e.reduce((r,o)=>o(r),t)}}let Ve=(()=>{class e{constructor(t){t&&(this._subscribe=t)}lift(t){const r=new e;return r.source=this,r.operator=t,r}subscribe(t,r,o){const i=function l0(e){return e&&e instanceof mu||function a0(e){return e&&we(e.next)&&we(e.error)&&we(e.complete)}(e)&&wg(e)}(t)?t:new yu(t,r,o);return ma(()=>{const{operator:s,source:a}=this;i.add(s?s.call(i,a):a?this._subscribe(i):this._trySubscribe(i))}),i}_trySubscribe(t){try{return this._subscribe(t)}catch(r){t.error(r)}}forEach(t,r){return new(r=Mg(r))((o,i)=>{const s=new yu({next:a=>{try{t(a)}catch(l){i(l),s.unsubscribe()}},error:i,complete:o});this.subscribe(s)})}_subscribe(t){var r;return null===(r=this.source)||void 0===r?void 0:r.subscribe(t)}[Cu](){return this}pipe(...t){return Ig(t)(this)}toPromise(t){return new(t=Mg(t))((r,o)=>{let i;this.subscribe(s=>i=s,s=>o(s),()=>r(i))})}}return e.create=n=>new e(n),e})();function Mg(e){var n;return null!==(n=e??Cr.Promise)&&void 0!==n?n:Promise}const c0=du(e=>function(){e(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"});let an=(()=>{class e extends Ve{constructor(){super(),this.closed=!1,this.currentObservers=null,this.observers=[],this.isStopped=!1,this.hasError=!1,this.thrownError=null}lift(t){const r=new Sg(this,this);return r.operator=t,r}_throwIfClosed(){if(this.closed)throw new c0}next(t){ma(()=>{if(this._throwIfClosed(),!this.isStopped){this.currentObservers||(this.currentObservers=Array.from(this.observers));for(const r of this.currentObservers)r.next(t)}})}error(t){ma(()=>{if(this._throwIfClosed(),!this.isStopped){this.hasError=this.isStopped=!0,this.thrownError=t;const{observers:r}=this;for(;r.length;)r.shift().error(t)}})}complete(){ma(()=>{if(this._throwIfClosed(),!this.isStopped){this.isStopped=!0;const{observers:t}=this;for(;t.length;)t.shift().complete()}})}unsubscribe(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null}get observed(){var t;return(null===(t=this.observers)||void 0===t?void 0:t.length)>0}_trySubscribe(t){return this._throwIfClosed(),super._trySubscribe(t)}_subscribe(t){return this._throwIfClosed(),this._checkFinalizedStatuses(t),this._innerSubscribe(t)}_innerSubscribe(t){const{hasError:r,isStopped:o,observers:i}=this;return r||o?Dg:(this.currentObservers=null,i.push(t),new gt(()=>{this.currentObservers=null,hu(i,t)}))}_checkFinalizedStatuses(t){const{hasError:r,thrownError:o,isStopped:i}=this;r?t.error(o):i&&t.complete()}asObservable(){const t=new Ve;return t.source=this,t}}return e.create=(n,t)=>new Sg(n,t),e})();class Sg extends an{constructor(n,t){super(),this.destination=n,this.source=t}next(n){var t,r;null===(r=null===(t=this.destination)||void 0===t?void 0:t.next)||void 0===r||r.call(t,n)}error(n){var t,r;null===(r=null===(t=this.destination)||void 0===t?void 0:t.error)||void 0===r||r.call(t,n)}complete(){var n,t;null===(t=null===(n=this.destination)||void 0===n?void 0:n.complete)||void 0===t||t.call(n)}_subscribe(n){var t,r;return null!==(r=null===(t=this.source)||void 0===t?void 0:t.subscribe(n))&&void 0!==r?r:Dg}}class Ft extends an{constructor(n){super(),this._value=n}get value(){return this.getValue()}_subscribe(n){const t=super._subscribe(n);return!t.closed&&n.next(this._value),t}getValue(){const{hasError:n,thrownError:t,_value:r}=this;if(n)throw t;return this._throwIfClosed(),r}next(n){super.next(this._value=n)}}function Tg(e){return we(e?.lift)}function Xe(e){return n=>{if(Tg(n))return n.lift(function(t){try{return e(t,this)}catch(r){this.error(r)}});throw new TypeError("Unable to lift unknown Observable type")}}function $e(e,n,t,r,o){return new u0(e,n,t,r,o)}class u0 extends mu{constructor(n,t,r,o,i,s){super(n),this.onFinalize=i,this.shouldUnsubscribe=s,this._next=t?function(a){try{t(a)}catch(l){n.error(l)}}:super._next,this._error=o?function(a){try{o(a)}catch(l){n.error(l)}finally{this.unsubscribe()}}:super._error,this._complete=r?function(){try{r()}catch(a){n.error(a)}finally{this.unsubscribe()}}:super._complete}unsubscribe(){var n;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){const{closed:t}=this;super.unsubscribe(),!t&&(null===(n=this.onFinalize)||void 0===n||n.call(this))}}}function J(e,n){return Xe((t,r)=>{let o=0;t.subscribe($e(r,i=>{r.next(e.call(n,i,o++))}))})}const Ag="https://g.co/ng/security#xss";class M extends Error{constructor(n,t){super(function Jr(e,n){return`NG0${Math.abs(e)}${n?": "+n:""}`}(n,t)),this.code=n}}function ue(e){for(let n in e)if(e[n]===ue)return n;throw Error("Could not find renamed property on target object.")}function f0(e,n){for(const t in n)n.hasOwnProperty(t)&&!e.hasOwnProperty(t)&&(e[t]=n[t])}function He(e){if("string"==typeof e)return e;if(Array.isArray(e))return"["+e.map(He).join(", ")+"]";if(null==e)return""+e;if(e.overriddenName)return`${e.overriddenName}`;if(e.name)return`${e.name}`;const n=e.toString();if(null==n)return""+n;const t=n.indexOf("\n");return-1===t?n:n.substring(0,t)}function Du(e,n){return null==e||""===e?null===n?"":n:null==n||""===n?e:e+" "+n}const h0=ue({__forward_ref__:ue});function ve(e){return e.__forward_ref__=ve,e.toString=function(){return He(this())},e}function V(e){return ya(e)?e():e}function ya(e){return"function"==typeof e&&e.hasOwnProperty(h0)&&e.__forward_ref__===ve}function wu(e){return e&&!!e.\u0275providers}const Ni=ue({\u0275cmp:ue}),bu=ue({\u0275dir:ue}),Eu=ue({\u0275pipe:ue}),Rg=ue({\u0275mod:ue}),Tn=ue({\u0275fac:ue}),xi=ue({__NG_ELEMENT_ID__:ue}),Og=ue({__NG_ENV_ID__:ue});function G(e){return"string"==typeof e?e:null==e?"":String(e)}function Iu(e,n){throw new M(-201,!1)}function mt(e,n){null==e&&function j(e,n,t,r){throw new Error(`ASSERTION ERROR: ${e}`+(null==r?"":` [Expected=> ${t} ${r} ${n} <=Actual]`))}(n,e,null,"!=")}function R(e){return{token:e.token,providedIn:e.providedIn||null,factory:e.factory,value:void 0}}function An(e){return{providers:e.providers||[],imports:e.imports||[]}}function _a(e){return kg(e,Da)||kg(e,Pg)}function kg(e,n){return e.hasOwnProperty(n)?e[n]:null}function Ca(e){return e&&(e.hasOwnProperty(Mu)||e.hasOwnProperty(w0))?e[Mu]:null}const Da=ue({\u0275prov:ue}),Mu=ue({\u0275inj:ue}),Pg=ue({ngInjectableDef:ue}),w0=ue({ngInjectorDef:ue});var X=function(e){return e[e.Default=0]="Default",e[e.Host=1]="Host",e[e.Self=2]="Self",e[e.SkipSelf=4]="SkipSelf",e[e.Optional=8]="Optional",e}(X||{});let Su;function Fg(){return Su}function vt(e){const n=Su;return Su=e,n}function Lg(e,n,t){const r=_a(e);return r&&"root"==r.providedIn?void 0===r.value?r.value=r.factory():r.value:t&X.Optional?null:void 0!==n?n:void Iu()}const ce=globalThis;class N{constructor(n,t){this._desc=n,this.ngMetadataName="InjectionToken",this.\u0275prov=void 0,"number"==typeof t?this.__NG_ELEMENT_ID__=t:void 0!==t&&(this.\u0275prov=R({token:this,providedIn:t.providedIn||"root",factory:t.factory}))}get multi(){return this}toString(){return`InjectionToken ${this._desc}`}}const Ri={},Ru="__NG_DI_FLAG__",wa="ngTempTokenPath",I0=/\n/gm,jg="__source";let Kr;function Zn(e){const n=Kr;return Kr=e,n}function T0(e,n=X.Default){if(void 0===Kr)throw new M(-203,!1);return null===Kr?Lg(e,void 0,n):Kr.get(e,n&X.Optional?null:void 0,n)}function P(e,n=X.Default){return(Fg()||T0)(V(e),n)}function T(e,n=X.Default){return P(e,ba(n))}function ba(e){return typeof e>"u"||"number"==typeof e?e:0|(e.optional&&8)|(e.host&&1)|(e.self&&2)|(e.skipSelf&&4)}function Ou(e){const n=[];for(let t=0;tn){s=i-1;break}}}for(;ii?"":o[d+1].toLowerCase();const m=8&r?g:null;if(m&&-1!==Bg(m,c,0)||2&r&&c!==g){if(Wt(r))return!1;s=!0}}}}else{if(!s&&!Wt(r)&&!Wt(l))return!1;if(s&&Wt(l))continue;s=!1,r=l|1&r}}return Wt(r)||s}function Wt(e){return 0==(1&e)}function P0(e,n,t,r){if(null===n)return-1;let o=0;if(r||!t){let i=!1;for(;o-1)for(t++;t0?'="'+a+'"':"")+"]"}else 8&r?o+="."+s:4&r&&(o+=" "+s);else""!==o&&!Wt(s)&&(n+=Zg(i,o),o=""),r=s,i=i||!Wt(r);t++}return""!==o&&(n+=Zg(i,o)),n}function St(e){return Nn(()=>{const n=Qg(e),t={...n,decls:e.decls,vars:e.vars,template:e.template,consts:e.consts||null,ngContentSelectors:e.ngContentSelectors,onPush:e.changeDetection===Ea.OnPush,directiveDefs:null,pipeDefs:null,dependencies:n.standalone&&e.dependencies||null,getStandaloneInjector:null,signals:e.signals??!1,data:e.data||{},encapsulation:e.encapsulation||qt.Emulated,styles:e.styles||ne,_:null,schemas:e.schemas||null,tView:null,id:""};Xg(t);const r=e.dependencies;return t.directiveDefs=Ia(r,!1),t.pipeDefs=Ia(r,!0),t.id=function q0(e){let n=0;const t=[e.selectors,e.ngContentSelectors,e.hostVars,e.hostAttrs,e.consts,e.vars,e.decls,e.encapsulation,e.standalone,e.signals,e.exportAs,JSON.stringify(e.inputs),JSON.stringify(e.outputs),Object.getOwnPropertyNames(e.type.prototype),!!e.contentQueries,!!e.viewQuery].join("|");for(const o of t)n=Math.imul(31,n)+o.charCodeAt(0)<<0;return n+=2147483648,"c"+n}(t),t})}function H0(e){return Q(e)||Ge(e)}function G0(e){return null!==e}function Yn(e){return Nn(()=>({type:e.type,bootstrap:e.bootstrap||ne,declarations:e.declarations||ne,imports:e.imports||ne,exports:e.exports||ne,transitiveCompileScopes:null,schemas:e.schemas||null,id:e.id||null}))}function Yg(e,n){if(null==e)return ln;const t={};for(const r in e)if(e.hasOwnProperty(r)){const o=e[r];let i,s,a=be.None;Array.isArray(o)?(a=o[0],i=o[1],s=o[2]??i):(i=o,s=o),n?(t[i]=a!==be.None?[r,a]:r,n[i]=s):t[i]=r}return t}function $(e){return Nn(()=>{const n=Qg(e);return Xg(n),n})}function Q(e){return e[Ni]||null}function Ge(e){return e[bu]||null}function Je(e){return e[Eu]||null}function et(e,n){const t=e[Rg]||null;if(!t&&!0===n)throw new Error(`Type ${He(e)} does not have '\u0275mod' property.`);return t}function Qg(e){const n={};return{type:e.type,providersResolver:null,factory:null,hostBindings:e.hostBindings||null,hostVars:e.hostVars||0,hostAttrs:e.hostAttrs||null,contentQueries:e.contentQueries||null,declaredInputs:n,inputTransforms:null,inputConfig:e.inputs||ln,exportAs:e.exportAs||null,standalone:!0===e.standalone,signals:!0===e.signals,selectors:e.selectors||ne,viewQuery:e.viewQuery||null,features:e.features||null,setInput:null,findHostDirectiveDefs:null,hostDirectives:null,inputs:Yg(e.inputs,n),outputs:Yg(e.outputs),debugInfo:null}}function Xg(e){e.features?.forEach(n=>n(e))}function Ia(e,n){if(!e)return null;const t=n?Je:H0;return()=>("function"==typeof e?e():e).map(r=>t(r)).filter(G0)}const Ie=0,A=1,F=2,Oe=3,Zt=4,tt=5,Yt=6,eo=7,ye=8,lt=9,xn=10,W=11,Pi=12,Jg=13,to=14,Te=15,Fi=16,no=17,cn=18,Li=19,Kg=20,Xn=21,Ma=22,br=23,z=25,Pu=1,un=7,ro=9,ke=10;var Fu=function(e){return e[e.None=0]="None",e[e.HasTransplantedViews=2]="HasTransplantedViews",e}(Fu||{});function nt(e){return Array.isArray(e)&&"object"==typeof e[Pu]}function rt(e){return Array.isArray(e)&&!0===e[Pu]}function Lu(e){return 0!=(4&e.flags)}function Er(e){return e.componentOffset>-1}function Ta(e){return 1==(1&e.flags)}function Qt(e){return!!e.template}function Vu(e){return 0!=(512&e[F])}function Ir(e,n){return e.hasOwnProperty(Tn)?e[Tn]:null}class Q0{constructor(n,t,r){this.previousValue=n,this.currentValue=t,this.firstChange=r}isFirstChange(){return this.firstChange}}function rm(e,n,t,r){null!==n?n.applyValueToInputSignal(n,r):e[t]=r}function Lt(){return om}function om(e){return e.type.prototype.ngOnChanges&&(e.setInput=J0),X0}function X0(){const e=sm(this),n=e?.current;if(n){const t=e.previous;if(t===ln)e.previous=n;else for(let r in n)t[r]=n[r];e.current=null,this.ngOnChanges(n)}}function J0(e,n,t,r,o){const i=this.declaredInputs[r],s=sm(e)||function K0(e,n){return e[im]=n}(e,{previous:ln,current:null}),a=s.current||(s.current={}),l=s.previous,c=l[i];a[i]=new Q0(c&&c.currentValue,t,l===ln),rm(e,n,o,t)}Lt.ngInherit=!0;const im="__ngSimpleChanges__";function sm(e){return e[im]||null}const dn=function(e,n,t){};let cm=!1;function fe(e){for(;Array.isArray(e);)e=e[Ie];return e}function ji(e,n){return fe(n[e])}function ct(e,n){return fe(n[e.index])}function Ui(e,n){return e.data[n]}function Tt(e,n){const t=n[e];return nt(t)?t:t[Ie]}function Hu(e){return 128==(128&e[F])}function fn(e,n){return null==n?null:e[n]}function um(e){e[no]=0}function i1(e){1024&e[F]||(e[F]|=1024,Hu(e)&&Bi(e))}function fm(e){return 9216&e[F]||e[br]?.dirty}function Gu(e){fm(e)?Bi(e):64&e[F]&&(function t1(){return cm}()?(e[F]|=1024,Bi(e)):e[xn].changeDetectionScheduler?.notify())}function Bi(e){e[xn].changeDetectionScheduler?.notify();let n=Mr(e);for(;null!==n&&!(8192&n[F])&&(n[F]|=8192,Hu(n));)n=Mr(n)}function Aa(e,n){if(256==(256&e[F]))throw new M(911,!1);null===e[Xn]&&(e[Xn]=[]),e[Xn].push(n)}function Mr(e){const n=e[Oe];return rt(n)?n[Oe]:n}const U={lFrame:wm(null),bindingsEnabled:!0,skipHydrationRootTNode:null};function pm(){return U.bindingsEnabled}function b(){return U.lFrame.lView}function K(){return U.lFrame.tView}function oe(e){return U.lFrame.contextLView=e,e[ye]}function ie(e){return U.lFrame.contextLView=null,e}function he(){let e=gm();for(;null!==e&&64===e.type;)e=e.parent;return e}function gm(){return U.lFrame.currentTNode}function hn(e,n){const t=U.lFrame;t.currentTNode=e,t.isParent=n}function qu(){return U.lFrame.isParent}function Wu(){U.lFrame.isParent=!1}function ut(){const e=U.lFrame;let n=e.bindingRootIndex;return-1===n&&(n=e.bindingRootIndex=e.tView.bindingStartIndex),n}function pn(){return U.lFrame.bindingIndex++}function m1(e,n){const t=U.lFrame;t.bindingIndex=t.bindingRootIndex=e,Zu(n)}function Zu(e){U.lFrame.currentDirectiveIndex=e}function _m(){return U.lFrame.currentQueryIndex}function Qu(e){U.lFrame.currentQueryIndex=e}function y1(e){const n=e[A];return 2===n.type?n.declTNode:1===n.type?e[tt]:null}function Cm(e,n,t){if(t&X.SkipSelf){let o=n,i=e;for(;!(o=o.parent,null!==o||t&X.Host||(o=y1(i),null===o||(i=i[to],10&o.type))););if(null===o)return!1;n=o,e=i}const r=U.lFrame=Dm();return r.currentTNode=n,r.lView=e,!0}function Xu(e){const n=Dm(),t=e[A];U.lFrame=n,n.currentTNode=t.firstChild,n.lView=e,n.tView=t,n.contextLView=e,n.bindingIndex=t.bindingStartIndex,n.inI18n=!1}function Dm(){const e=U.lFrame,n=null===e?null:e.child;return null===n?wm(e):n}function wm(e){const n={currentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:-1,contextLView:null,elementDepthCount:0,currentNamespace:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:e,child:null,inI18n:!1};return null!==e&&(e.child=n),n}function bm(){const e=U.lFrame;return U.lFrame=e.parent,e.currentTNode=null,e.lView=null,e}const Em=bm;function Ju(){const e=bm();e.isParent=!0,e.tView=null,e.selectedIndex=-1,e.contextLView=null,e.elementDepthCount=0,e.currentDirectiveIndex=-1,e.currentNamespace=null,e.bindingRootIndex=-1,e.bindingIndex=-1,e.currentQueryIndex=0}function ot(){return U.lFrame.selectedIndex}function Sr(e){U.lFrame.selectedIndex=e}function Ee(){const e=U.lFrame;return Ui(e.tView,e.selectedIndex)}let Mm=!0;function Na(){return Mm}function Jn(e){Mm=e}function xa(e,n){for(let t=n.directiveStart,r=n.directiveEnd;t=r)break}else n[l]<0&&(e[no]+=65536),(a>14>16&&(3&e[F])===n&&(e[F]+=16384,Tm(a,i)):Tm(a,i)}const so=-1;class Hi{constructor(n,t,r){this.factory=n,this.resolving=!1,this.canSeeViewProviders=t,this.injectImpl=r}}function td(e){return e!==so}function Gi(e){return 32767&e}function zi(e,n){let t=function N1(e){return e>>16}(e),r=n;for(;t>0;)r=r[to],t--;return r}let nd=!0;function ka(e){const n=nd;return nd=e,n}const Am=255,Nm=5;let x1=0;const gn={};function Pa(e,n){const t=xm(e,n);if(-1!==t)return t;const r=n[A];r.firstCreatePass&&(e.injectorIndex=n.length,rd(r.data,e),rd(n,null),rd(r.blueprint,null));const o=Fa(e,n),i=e.injectorIndex;if(td(o)){const s=Gi(o),a=zi(o,n),l=a[A].data;for(let c=0;c<8;c++)n[i+c]=a[s+c]|l[s+c]}return n[i+8]=o,i}function rd(e,n){e.push(0,0,0,0,0,0,0,0,n)}function xm(e,n){return-1===e.injectorIndex||e.parent&&e.parent.injectorIndex===e.injectorIndex||null===n[e.injectorIndex+8]?-1:e.injectorIndex}function Fa(e,n){if(e.parent&&-1!==e.parent.injectorIndex)return e.parent.injectorIndex;let t=0,r=null,o=n;for(;null!==o;){if(r=Vm(o),null===r)return so;if(t++,o=o[to],-1!==r.injectorIndex)return r.injectorIndex|t<<16}return so}function od(e,n,t){!function R1(e,n,t){let r;"string"==typeof t?r=t.charCodeAt(0)||0:t.hasOwnProperty(xi)&&(r=t[xi]),null==r&&(r=t[xi]=x1++);const o=r&Am;n.data[e+(o>>Nm)]|=1<=0?n&Am:F1:n}(t);if("function"==typeof i){if(!Cm(n,e,r))return r&X.Host?Rm(o,0,r):Om(n,t,r,o);try{let s;if(s=i(r),null!=s||r&X.Optional)return s;Iu()}finally{Em()}}else if("number"==typeof i){let s=null,a=xm(e,n),l=so,c=r&X.Host?n[Te][tt]:null;for((-1===a||r&X.SkipSelf)&&(l=-1===a?Fa(e,n):n[a+8],l!==so&&Lm(r,!1)?(s=n[A],a=Gi(l),n=zi(l,n)):a=-1);-1!==a;){const u=n[A];if(Fm(i,a,u.data)){const d=k1(a,n,t,s,r,c);if(d!==gn)return d}l=n[a+8],l!==so&&Lm(r,n[A].data[a+8]===c)&&Fm(i,a,n)?(s=u,a=Gi(l),n=zi(l,n)):a=-1}}return o}function k1(e,n,t,r,o,i){const s=n[A],a=s.data[e+8],u=La(a,s,t,null==r?Er(a)&&nd:r!=s&&0!=(3&a.type),o&X.Host&&i===a);return null!==u?Tr(n,s,u,a):gn}function La(e,n,t,r,o){const i=e.providerIndexes,s=n.data,a=1048575&i,l=e.directiveStart,u=i>>20,g=o?a+u:e.directiveEnd;for(let m=r?a:a+u;m=l&&v.type===t)return m}if(o){const m=s[l];if(m&&Qt(m)&&m.type===t)return l}return null}function Tr(e,n,t,r){let o=e[t];const i=n.data;if(function M1(e){return e instanceof Hi}(o)){const s=o;s.resolving&&function g0(e,n){const t=n?`. Dependency path: ${n.join(" > ")} > ${e}`:"";throw new M(-200,`Circular dependency in DI detected for ${e}${t}`)}(function re(e){return"function"==typeof e?e.name||e.toString():"object"==typeof e&&null!=e&&"function"==typeof e.type?e.type.name||e.type.toString():G(e)}(i[t]));const a=ka(s.canSeeViewProviders);s.resolving=!0;const c=s.injectImpl?vt(s.injectImpl):null;Cm(e,r,X.Default);try{o=e[t]=s.factory(void 0,i,e,r),n.firstCreatePass&&t>=r.directiveStart&&function E1(e,n,t){const{ngOnChanges:r,ngOnInit:o,ngDoCheck:i}=n.type.prototype;if(r){const s=om(n);(t.preOrderHooks??=[]).push(e,s),(t.preOrderCheckHooks??=[]).push(e,s)}o&&(t.preOrderHooks??=[]).push(0-e,o),i&&((t.preOrderHooks??=[]).push(e,i),(t.preOrderCheckHooks??=[]).push(e,i))}(t,i[t],n)}finally{null!==c&&vt(c),ka(a),s.resolving=!1,Em()}}return o}function Fm(e,n,t){return!!(t[n+(e>>Nm)]&1<{const n=e.prototype.constructor,t=n[Tn]||id(n),r=Object.prototype;let o=Object.getPrototypeOf(e.prototype).constructor;for(;o&&o!==r;){const i=o[Tn]||id(o);if(i&&i!==t)return i;o=Object.getPrototypeOf(o)}return i=>new i})}function id(e){return ya(e)?()=>{const n=id(V(e));return n&&n()}:Ir(e)}function Vm(e){const n=e[A],t=n.type;return 2===t?n.declTNode:1===t?e[tt]:null}const uo="__parameters__";function ho(e,n,t){return Nn(()=>{const r=function sd(e){return function(...t){if(e){const r=e(...t);for(const o in r)this[o]=r[o]}}}(n);function o(...i){if(this instanceof o)return r.apply(this,i),this;const s=new o(...i);return a.annotation=s,a;function a(l,c,u){const d=l.hasOwnProperty(uo)?l[uo]:Object.defineProperty(l,uo,{value:[]})[uo];for(;d.length<=u;)d.push(null);return(d[u]=d[u]||[]).push(s),l}}return t&&(o.prototype=Object.create(t.prototype)),o.prototype.ngMetadataName=e,o.annotationCls=o,o})}function go(e,n){e.forEach(t=>Array.isArray(t)?go(t,n):n(t))}function Um(e,n,t){n>=e.length?e.push(t):e.splice(n,0,t)}function ja(e,n){return n>=e.length-1?e.pop():e.splice(n,1)[0]}function At(e,n,t){let r=mo(e,n);return r>=0?e[1|r]=t:(r=~r,function Bm(e,n,t,r){let o=e.length;if(o==n)e.push(t,r);else if(1===o)e.push(r,e[0]),e[0]=t;else{for(o--,e.push(e[o-1],e[o]);o>n;)e[o]=e[o-2],o--;e[n]=t,e[n+1]=r}}(e,r,n,t)),r}function ld(e,n){const t=mo(e,n);if(t>=0)return e[1|t]}function mo(e,n){return function $m(e,n,t){let r=0,o=e.length>>t;for(;o!==r;){const i=r+(o-r>>1),s=e[i<n?o=i:r=i+1}return~(o<{t.push(s)};return go(n,s=>{const a=s;Wa(a,i,[],r)&&(o||=[],o.push(a))}),void 0!==o&&Ym(o,i),t}function Ym(e,n){for(let t=0;t{n(i,r)})}}function Wa(e,n,t,r){if(!(e=V(e)))return!1;let o=null,i=Ca(e);const s=!i&&Q(e);if(i||s){if(s&&!s.standalone)return!1;o=e}else{const l=e.ngModule;if(i=Ca(l),!i)return!1;o=l}const a=r.has(o);if(s){if(a)return!1;if(r.add(o),s.dependencies){const l="function"==typeof s.dependencies?s.dependencies():s.dependencies;for(const c of l)Wa(c,n,t,r)}}else{if(!i)return!1;{if(null!=i.imports&&!a){let c;r.add(o);try{go(i.imports,u=>{Wa(u,n,t,r)&&(c||=[],c.push(u))})}finally{}void 0!==c&&Ym(c,n)}if(!a){const c=Ir(o)||(()=>new o);n({provide:o,useFactory:c,deps:ne},o),n({provide:dd,useValue:o,multi:!0},o),n({provide:Ar,useValue:()=>P(o),multi:!0},o)}const l=i.providers;if(null!=l&&!a){const c=e;fd(l,u=>{n(u,c)})}}}return o!==e&&void 0!==e.providers}function fd(e,n){for(let t of e)wu(t)&&(t=t.\u0275providers),Array.isArray(t)?fd(t,n):n(t)}const iS=ue({provide:String,useValue:ue});function hd(e){return null!==e&&"object"==typeof e&&iS in e}function Nr(e){return"function"==typeof e}const pd=new N(""),Za={},aS={};let gd;function Ya(){return void 0===gd&&(gd=new za),gd}class Nt{}class yo extends Nt{get destroyed(){return this._destroyed}constructor(n,t,r,o){super(),this.parent=t,this.source=r,this.scopes=o,this.records=new Map,this._ngOnDestroyHooks=new Set,this._onDestroyHooks=[],this._destroyed=!1,vd(n,s=>this.processProvider(s)),this.records.set(qm,_o(void 0,this)),o.has("environment")&&this.records.set(Nt,_o(void 0,this));const i=this.records.get(pd);null!=i&&"string"==typeof i.value&&this.scopes.add(i.value),this.injectorDefTypes=new Set(this.get(dd,ne,X.Self))}destroy(){this.assertNotDestroyed(),this._destroyed=!0;try{for(const t of this._ngOnDestroyHooks)t.ngOnDestroy();const n=this._onDestroyHooks;this._onDestroyHooks=[];for(const t of n)t()}finally{this.records.clear(),this._ngOnDestroyHooks.clear(),this.injectorDefTypes.clear()}}onDestroy(n){return this.assertNotDestroyed(),this._onDestroyHooks.push(n),()=>this.removeOnDestroy(n)}runInContext(n){this.assertNotDestroyed();const t=Zn(this),r=vt(void 0);try{return n()}finally{Zn(t),vt(r)}}get(n,t=Ri,r=X.Default){if(this.assertNotDestroyed(),n.hasOwnProperty(Og))return n[Og](this);r=ba(r);const i=Zn(this),s=vt(void 0);try{if(!(r&X.SkipSelf)){let l=this.records.get(n);if(void 0===l){const c=function fS(e){return"function"==typeof e||"object"==typeof e&&e instanceof N}(n)&&_a(n);l=c&&this.injectableDefInScope(c)?_o(md(n),Za):null,this.records.set(n,l)}if(null!=l)return this.hydrate(n,l)}return(r&X.Self?Ya():this.parent).get(n,t=r&X.Optional&&t===Ri?null:t)}catch(a){if("NullInjectorError"===a.name){if((a[wa]=a[wa]||[]).unshift(He(n)),i)throw a;return function N0(e,n,t,r){const o=e[wa];throw n[jg]&&o.unshift(n[jg]),e.message=function x0(e,n,t,r=null){e=e&&"\n"===e.charAt(0)&&"\u0275"==e.charAt(1)?e.slice(2):e;let o=He(n);if(Array.isArray(n))o=n.map(He).join(" -> ");else if("object"==typeof n){let i=[];for(let s in n)if(n.hasOwnProperty(s)){let a=n[s];i.push(s+":"+("string"==typeof a?JSON.stringify(a):He(a)))}o=`{${i.join(", ")}}`}return`${t}${r?"("+r+")":""}[${o}]: ${e.replace(I0,"\n ")}`}("\n"+e.message,o,t,r),e.ngTokenPath=o,e[wa]=null,e}(a,n,"R3InjectorError",this.source)}throw a}finally{vt(s),Zn(i)}}resolveInjectorInitializers(){const n=Zn(this),t=vt(void 0);try{const o=this.get(Ar,ne,X.Self);for(const i of o)i()}finally{Zn(n),vt(t)}}toString(){const n=[],t=this.records;for(const r of t.keys())n.push(He(r));return`R3Injector[${n.join(", ")}]`}assertNotDestroyed(){if(this._destroyed)throw new M(205,!1)}processProvider(n){let t=Nr(n=V(n))?n:V(n&&n.provide);const r=function cS(e){return hd(e)?_o(void 0,e.useValue):_o(Jm(e),Za)}(n);if(!Nr(n)&&!0===n.multi){let o=this.records.get(t);o||(o=_o(void 0,Za,!0),o.factory=()=>Ou(o.multi),this.records.set(t,o)),t=n,o.multi.push(n)}this.records.set(t,r)}hydrate(n,t){return t.value===Za&&(t.value=aS,t.value=t.factory()),"object"==typeof t.value&&t.value&&function dS(e){return null!==e&&"object"==typeof e&&"function"==typeof e.ngOnDestroy}(t.value)&&this._ngOnDestroyHooks.add(t.value),t.value}injectableDefInScope(n){if(!n.providedIn)return!1;const t=V(n.providedIn);return"string"==typeof t?"any"===t||this.scopes.has(t):this.injectorDefTypes.has(t)}removeOnDestroy(n){const t=this._onDestroyHooks.indexOf(n);-1!==t&&this._onDestroyHooks.splice(t,1)}}function md(e){const n=_a(e),t=null!==n?n.factory:Ir(e);if(null!==t)return t;if(e instanceof N)throw new M(204,!1);if(e instanceof Function)return function lS(e){if(e.length>0)throw new M(204,!1);const t=function D0(e){return e&&(e[Da]||e[Pg])||null}(e);return null!==t?()=>t.factory(e):()=>new e}(e);throw new M(204,!1)}function Jm(e,n,t){let r;if(Nr(e)){const o=V(e);return Ir(o)||md(o)}if(hd(e))r=()=>V(e.useValue);else if(function Xm(e){return!(!e||!e.useFactory)}(e))r=()=>e.useFactory(...Ou(e.deps||[]));else if(function Qm(e){return!(!e||!e.useExisting)}(e))r=()=>P(V(e.useExisting));else{const o=V(e&&(e.useClass||e.provide));if(!function uS(e){return!!e.deps}(e))return Ir(o)||md(o);r=()=>new o(...Ou(e.deps))}return r}function _o(e,n,t=!1){return{factory:e,value:n,multi:t?[]:void 0}}function vd(e,n){for(const t of e)Array.isArray(t)?vd(t,n):t&&wu(t)?vd(t.\u0275providers,n):n(t)}function Kn(e,n){e instanceof yo&&e.assertNotDestroyed();const r=Zn(e),o=vt(void 0);try{return n()}finally{Zn(r),vt(o)}}function nv(e,n=null,t=null,r){const o=rv(e,n,t,r);return o.resolveInjectorInitializers(),o}function rv(e,n=null,t=null,r,o=new Set){const i=[t||ne,Wm(e)];return r=r||("object"==typeof e?void 0:He(e)),new yo(i,n||Ya(),r||null,o)}let Cd,Ct=(()=>{class e{static#e=this.THROW_IF_NOT_FOUND=Ri;static#t=this.NULL=new za;static create(t,r){if(Array.isArray(t))return nv({name:""},r,t,"");{const o=t.name??"";return nv({name:o},t.parent,t.providers,o)}}static#n=this.\u0275prov=R({token:e,providedIn:"any",factory:()=>P(qm)});static#r=this.__NG_ELEMENT_ID__=-1}return e})();const Xa=new N("",{providedIn:"root",factory:()=>DS}),DS="ng",iv=new N(""),nr=new N("",{providedIn:"platform",factory:()=>"unknown"}),sv=new N("",{providedIn:"root",factory:()=>function tr(){if(void 0!==Cd)return Cd;if(typeof document<"u")return document;throw new M(210,!1)}().body?.querySelector("[ngCspNonce]")?.getAttribute("ngCspNonce")||null});function xt(e){return e instanceof Function?e():e}function tl(e){return 128==(128&e.flags)}var ir=function(e){return e[e.Important=1]="Important",e[e.DashCase=2]="DashCase",e}(ir||{});const xS=/^>|^->||--!>|)/g,OS="\u200b$1\u200b";const Id=new Map;let kS=0;const Sd="__ngContext__";function it(e,n){nt(n)?(e[Sd]=n[Li],function FS(e){Id.set(e[Li],e)}(n)):e[Sd]=n}let Td;function Ad(e,n){return Td(e,n)}function Do(e,n,t,r,o){if(null!=r){let i,s=!1;rt(r)?i=r:nt(r)&&(s=!0,r=r[Ie]);const a=fe(r);0===e&&null!==t?null==o?Tv(n,t,a):xr(n,t,a,o||null,!0):1===e&&null!==t?xr(n,t,a,o||null,!0):2===e?function ll(e,n,t){const r=sl(e,n);r&&function JS(e,n,t,r){e.removeChild(n,t,r)}(e,r,n,t)}(n,a,s):3===e&&n.destroyNode(a),null!=i&&function tT(e,n,t,r,o){const i=t[un];i!==fe(t)&&Do(n,e,r,i,o);for(let a=ke;an.replace(RS,OS))}(n))}function ol(e,n,t){return e.createElement(n,t)}function Iv(e,n){cl(e,n,n[W],2,null,null)}function Mv(e,n){const t=e[ro],r=t.indexOf(n);t.splice(r,1)}function Ji(e,n){if(e.length<=ke)return;const t=ke+n,r=e[t];if(r){const o=r[Fi];null!==o&&o!==e&&Mv(o,r),n>0&&(e[t-1][Zt]=r[Zt]);const i=ja(e,ke+n);!function zS(e,n){Iv(e,n),n[Ie]=null,n[tt]=null}(r[A],r);const s=i[cn];null!==s&&s.detachView(i[A]),r[Oe]=null,r[Zt]=null,r[F]&=-129}return r}function il(e,n){if(!(256&n[F])){const t=n[W];t.destroyNode&&cl(e,n,t,3,null,null),function WS(e){let n=e[Pi];if(!n)return xd(e[A],e);for(;n;){let t=null;if(nt(n))t=n[Pi];else{const r=n[ke];r&&(t=r)}if(!t){for(;n&&!n[Zt]&&n!==e;)nt(n)&&xd(n[A],n),n=n[Oe];null===n&&(n=e),nt(n)&&xd(n[A],n),t=n&&n[Zt]}n=t}}(n)}}function xd(e,n){if(!(256&n[F])){n[F]&=-129,n[F]|=256,n[br]&&function gg(e){if(Xr(e),Ai(e))for(let n=0;n=0?r[s]():r[-s].unsubscribe(),i+=2}else t[i].call(r[t[i+1]]);null!==r&&(n[eo]=null);const o=n[Xn];if(null!==o){n[Xn]=null;for(let i=0;i-1){const{encapsulation:i}=e.data[r.directiveStart+o];if(i===qt.None||i===qt.Emulated)return null}return ct(r,t)}}(e,n.parent,t)}function xr(e,n,t,r,o){e.insertBefore(n,t,r,o)}function Tv(e,n,t){e.appendChild(n,t)}function Av(e,n,t,r,o){null!==r?xr(e,n,t,r,o):Tv(e,n,t)}function sl(e,n){return e.parentNode(n)}let Od,dl,Rv=function xv(e,n,t){return 40&e.type?ct(e,t):null};function al(e,n,t,r){const o=Rd(e,r,n),i=n[W],a=function Nv(e,n,t){return Rv(e,n,t)}(r.parent||n[tt],r,n);if(null!=o)if(Array.isArray(t))for(let l=0;le,createScript:e=>e,createScriptURL:e=>e})}catch{}return dl}()?.createScriptURL(e)||e}class $v{constructor(n){this.changingThisBreaksApplicationSecurity=n}toString(){return`SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity} (see ${Ag})`}}function sr(e){return e instanceof $v?e.changingThisBreaksApplicationSecurity:e}function es(e,n){const t=function fT(e){return e instanceof $v&&e.getTypeName()||null}(e);if(null!=t&&t!==n){if("ResourceURL"===t&&"URL"===n)return!0;throw new Error(`Required a safe ${n}, got a ${t} (see ${Ag})`)}return t===n}const mT=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:\/?#]*(?:[\/?#]|$))/i;var bo=function(e){return e[e.NONE=0]="NONE",e[e.HTML=1]="HTML",e[e.STYLE=2]="STYLE",e[e.SCRIPT=3]="SCRIPT",e[e.URL=4]="URL",e[e.RESOURCE_URL=5]="RESOURCE_URL",e}(bo||{});function Eo(e){const n=ns();return n?n.sanitize(bo.URL,e)||"":es(e,"URL")?sr(e):function Vd(e){return(e=String(e)).match(mT)?e:"unsafe:"+e}(G(e))}function Yv(e){const n=ns();if(n)return Bv(n.sanitize(bo.RESOURCE_URL,e)||"");if(es(e,"ResourceURL"))return Bv(sr(e));throw new M(904,!1)}function ns(){const e=b();return e&&e[xn].sanitizer}class Xv{}let Jv=()=>null;function Yd(e,n,t=!1){return Jv(e,n,t)}class LT{}class ry{}class jT{resolveComponentFactory(n){throw function VT(e){const n=Error(`No component factory found for ${He(e)}.`);return n.ngComponent=e,n}(n)}}let yl=(()=>{class e{static#e=this.NULL=new jT}return e})();function UT(){return To(he(),b())}function To(e,n){return new Rt(ct(e,n))}let Rt=(()=>{class e{constructor(t){this.nativeElement=t}static#e=this.__NG_ELEMENT_ID__=UT}return e})();function BT(e){return e instanceof Rt?e.nativeElement:e}class iy{}let Pn=(()=>{class e{constructor(){this.destroyNode=null}static#e=this.__NG_ELEMENT_ID__=()=>function $T(){const e=b(),t=Tt(he().index,e);return(nt(t)?t:e)[W]}()}return e})(),HT=(()=>{class e{static#e=this.\u0275prov=R({token:e,providedIn:"root",factory:()=>null})}return e})();const Kd={};function _l(e){return!!function ef(e){return null!==e&&("function"==typeof e||"object"==typeof e)}(e)&&(Array.isArray(e)||!(e instanceof Map)&&Symbol.iterator in e)}class ay{constructor(){}supports(n){return _l(n)}create(n){return new YT(n)}}const ZT=(e,n)=>n;class YT{constructor(n){this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=n||ZT}forEachItem(n){let t;for(t=this._itHead;null!==t;t=t._next)n(t)}forEachOperation(n){let t=this._itHead,r=this._removalsHead,o=0,i=null;for(;t||r;){const s=!r||t&&t.currentIndex{s=this._trackByFn(o,a),null!==t&&Object.is(t.trackById,s)?(r&&(t=this._verifyReinsertion(t,a,s,o)),Object.is(t.item,a)||this._addIdentityChange(t,a)):(t=this._mismatch(t,a,s,o),r=!0),t=t._next,o++}),this.length=o;return this._truncate(t),this.collection=n,this.isDirty}get isDirty(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}_reset(){if(this.isDirty){let n;for(n=this._previousItHead=this._itHead;null!==n;n=n._next)n._nextPrevious=n._next;for(n=this._additionsHead;null!==n;n=n._nextAdded)n.previousIndex=n.currentIndex;for(this._additionsHead=this._additionsTail=null,n=this._movesHead;null!==n;n=n._nextMoved)n.previousIndex=n.currentIndex;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(n,t,r,o){let i;return null===n?i=this._itTail:(i=n._prev,this._remove(n)),null!==(n=null===this._unlinkedRecords?null:this._unlinkedRecords.get(r,null))?(Object.is(n.item,t)||this._addIdentityChange(n,t),this._reinsertAfter(n,i,o)):null!==(n=null===this._linkedRecords?null:this._linkedRecords.get(r,o))?(Object.is(n.item,t)||this._addIdentityChange(n,t),this._moveAfter(n,i,o)):n=this._addAfter(new QT(t,r),i,o),n}_verifyReinsertion(n,t,r,o){let i=null===this._unlinkedRecords?null:this._unlinkedRecords.get(r,null);return null!==i?n=this._reinsertAfter(i,n._prev,o):n.currentIndex!=o&&(n.currentIndex=o,this._addToMoves(n,o)),n}_truncate(n){for(;null!==n;){const t=n._next;this._addToRemovals(this._unlink(n)),n=t}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(n,t,r){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(n);const o=n._prevRemoved,i=n._nextRemoved;return null===o?this._removalsHead=i:o._nextRemoved=i,null===i?this._removalsTail=o:i._prevRemoved=o,this._insertAfter(n,t,r),this._addToMoves(n,r),n}_moveAfter(n,t,r){return this._unlink(n),this._insertAfter(n,t,r),this._addToMoves(n,r),n}_addAfter(n,t,r){return this._insertAfter(n,t,r),this._additionsTail=null===this._additionsTail?this._additionsHead=n:this._additionsTail._nextAdded=n,n}_insertAfter(n,t,r){const o=null===t?this._itHead:t._next;return n._next=o,n._prev=t,null===o?this._itTail=n:o._prev=n,null===t?this._itHead=n:t._next=n,null===this._linkedRecords&&(this._linkedRecords=new ly),this._linkedRecords.put(n),n.currentIndex=r,n}_remove(n){return this._addToRemovals(this._unlink(n))}_unlink(n){null!==this._linkedRecords&&this._linkedRecords.remove(n);const t=n._prev,r=n._next;return null===t?this._itHead=r:t._next=r,null===r?this._itTail=t:r._prev=t,n}_addToMoves(n,t){return n.previousIndex===t||(this._movesTail=null===this._movesTail?this._movesHead=n:this._movesTail._nextMoved=n),n}_addToRemovals(n){return null===this._unlinkedRecords&&(this._unlinkedRecords=new ly),this._unlinkedRecords.put(n),n.currentIndex=null,n._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=n,n._prevRemoved=null):(n._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=n),n}_addIdentityChange(n,t){return n.item=t,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=n:this._identityChangesTail._nextIdentityChange=n,n}}class QT{constructor(n,t){this.item=n,this.trackById=t,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null}}class XT{constructor(){this._head=null,this._tail=null}add(n){null===this._head?(this._head=this._tail=n,n._nextDup=null,n._prevDup=null):(this._tail._nextDup=n,n._prevDup=this._tail,n._nextDup=null,this._tail=n)}get(n,t){let r;for(r=this._head;null!==r;r=r._nextDup)if((null===t||t<=r.currentIndex)&&Object.is(r.trackById,n))return r;return null}remove(n){const t=n._prevDup,r=n._nextDup;return null===t?this._head=r:t._nextDup=r,null===r?this._tail=t:r._prevDup=t,null===this._head}}class ly{constructor(){this.map=new Map}put(n){const t=n.trackById;let r=this.map.get(t);r||(r=new XT,this.map.set(t,r)),r.add(n)}get(n,t){const o=this.map.get(n);return o?o.get(n,t):null}remove(n){const t=n.trackById;return this.map.get(t).remove(n)&&this.map.delete(t),n}get isEmpty(){return 0===this.map.size}clear(){this.map.clear()}}function cy(e,n,t){const r=e.previousIndex;if(null===r)return r;let o=0;return t&&r{class e{static#e=this.\u0275prov=R({token:e,providedIn:"root",factory:dy});constructor(t){this.factories=t}static create(t,r){if(null!=r){const o=r.factories.slice();t=t.concat(o)}return new e(t)}static extend(t){return{provide:e,useFactory:r=>e.create(t,r||dy()),deps:[[e,new Ha,new $a]]}}find(t){const r=this.factories.find(o=>o.supports(t));if(null!=r)return r;throw new M(901,!1)}}return e})();function ss(e,n,t,r,o=!1){for(;null!==t;){const i=n[t.index];null!==i&&r.push(fe(i)),rt(i)&&hy(i,r);const s=t.type;if(8&s)ss(e,n,t.child,r);else if(32&s){const a=Ad(t,n);let l;for(;l=a();)r.push(l)}else if(16&s){const a=kv(n,t);if(Array.isArray(a))r.push(...a);else{const l=Mr(n[Te]);ss(l[A],l,a,r,!0)}}t=o?t.projectionNext:t.next}return r}function hy(e,n){for(let t=ke;t!1,producerRecomputeValue:()=>{},consumerMarkedDirty:()=>{},consumerOnSignalRead:()=>{},consumerIsAlwaysLive:!0,consumerMarkedDirty:e=>{Bi(e.lView)},consumerOnSignalRead(){this.lView[br]=this}};function gy(e){return vy(e[Pi])}function my(e){return vy(e[Zt])}function vy(e){for(;null!==e&&!rt(e);)e=e[Zt];return e}function nf(e){return e.ngOriginalError}class Fn{constructor(){this._console=console}handleError(n){const t=this._findOriginalError(n);this._console.error("ERROR",n),t&&this._console.error("ORIGINAL ERROR",t)}_findOriginalError(n){let t=n&&nf(n);for(;t&&nf(t);)t=nf(t);return t||null}}const _y=new N("",{providedIn:"root",factory:()=>T(Fn).handleError.bind(void 0)}),Dy=new N("",{providedIn:"root",factory:()=>!1}),Z={};function C(e=1){Iy(K(),b(),ot()+e,!1)}function Iy(e,n,t,r){if(!r)if(3==(3&n[F])){const i=e.preOrderCheckHooks;null!==i&&Ra(n,i,t)}else{const i=e.preOrderHooks;null!==i&&Oa(n,i,0,t)}Sr(t)}function S(e,n=X.Default){const t=b();return null===t?P(e,n):km(he(),t,V(e),n)}function Sy(e,n,t,r,o,i){const s=Ae(null);try{let a=null;o&be.SignalBased&&(a=n[r][Qr]),null!==a&&void 0!==a.transformFn&&(i=a.transformFn(i)),o&be.HasDecoratorInputTransform&&(i=e.inputTransforms[r].call(n,i)),null!==e.setInput?e.setInput(n,a,i,t,r):rm(n,a,r,i)}finally{Ae(s)}}function wl(e,n,t,r,o,i,s,a,l,c,u){const d=n.blueprint.slice();return d[Ie]=o,d[F]=204|r,(null!==c||e&&2048&e[F])&&(d[F]|=2048),um(d),d[Oe]=d[to]=e,d[ye]=t,d[xn]=s||e&&e[xn],d[W]=a||e&&e[W],d[lt]=l||e&&e[lt]||null,d[tt]=i,d[Li]=function PS(){return kS++}(),d[Yt]=u,d[Kg]=c,d[Te]=2==n.type?e[Te]:d,d}function Ao(e,n,t,r,o){let i=e.data[n];if(null===i)i=function rf(e,n,t,r,o){const i=gm(),s=qu(),l=e.data[n]=function _A(e,n,t,r,o,i){let s=n?n.injectorIndex:-1,a=0;return function io(){return null!==U.skipHydrationRootTNode}()&&(a|=128),{type:t,index:r,insertBeforeIndex:null,injectorIndex:s,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,componentOffset:-1,propertyBindings:null,flags:a,providerIndexes:0,value:o,attrs:i,mergedAttrs:null,localNames:null,initialInputs:void 0,inputs:null,outputs:null,tView:null,next:null,prev:null,projectionNext:null,child:null,parent:n,projection:null,styles:null,stylesWithoutHost:null,residualStyles:void 0,classes:null,classesWithoutHost:null,residualClasses:void 0,classBindings:0,styleBindings:0}}(0,s?i:i&&i.parent,t,n,r,o);return null===e.firstChild&&(e.firstChild=l),null!==i&&(s?null==i.child&&null!==l.parent&&(i.child=l):null===i.next&&(i.next=l,l.prev=i)),l}(e,n,t,r,o),function g1(){return U.lFrame.inI18n}()&&(i.flags|=32);else if(64&i.type){i.type=t,i.value=r,i.attrs=o;const s=function $i(){const e=U.lFrame,n=e.currentTNode;return e.isParent?n:n.parent}();i.injectorIndex=null===s?-1:s.injectorIndex}return hn(i,!0),i}function as(e,n,t,r){if(0===t)return-1;const o=n.length;for(let i=0;iz&&Iy(e,n,z,!1),dn(s?2:0,o),t(r,o)}finally{Sr(i),dn(s?3:1,o)}}function sf(e,n,t){if(Lu(n)){const r=Ae(null);try{const i=n.directiveEnd;for(let s=n.directiveStart;snull;function xy(e,n,t,r,o){for(let i in n){if(!n.hasOwnProperty(i))continue;const s=n[i];if(void 0===s)continue;r??={};let a,l=be.None;Array.isArray(s)?(a=s[0],l=s[1]):a=s;let c=i;if(null!==o){if(!o.hasOwnProperty(i))continue;c=o[i]}0===e?Ry(r,t,c,a,l):Ry(r,t,c,a)}return r}function Ry(e,n,t,r,o){let i;e.hasOwnProperty(t)?(i=e[t]).push(n,r):i=e[t]=[n,r],void 0!==o&&i.push(o)}function Ot(e,n,t,r,o,i,s,a){const l=ct(n,t);let u,c=n.inputs;!a&&null!=c&&(u=c[r])?(pf(e,t,u,r,o),Er(n)&&function wA(e,n){const t=Tt(n,e);16&t[F]||(t[F]|=64)}(t,n.index)):3&n.type&&(r=function DA(e){return"class"===e?"className":"for"===e?"htmlFor":"formaction"===e?"formAction":"innerHtml"===e?"innerHTML":"readonly"===e?"readOnly":"tabindex"===e?"tabIndex":e}(r),o=null!=s?s(o,n.value||"",r):o,i.setProperty(l,r,o))}function uf(e,n,t,r){if(pm()){const o=null===r?null:{"":-1},i=function TA(e,n){const t=e.directiveRegistry;let r=null,o=null;if(t)for(let i=0;i0;){const t=e[--n];if("number"==typeof t&&t<0)return t}return 0})(s)!=a&&s.push(a),s.push(t,r,i)}}(e,n,r,as(e,t,o.hostVars,Z),o)}function mn(e,n,t,r,o,i){const s=ct(e,n);!function ff(e,n,t,r,o,i,s){if(null==i)e.removeAttribute(n,o,t);else{const a=null==s?G(i):s(i,r||"",o);e.setAttribute(n,o,a,t)}}(n[W],s,i,e.value,t,r,o)}function kA(e,n,t,r,o,i){const s=i[n];if(null!==s)for(let a=0;ae.nextProducerIndex;)e.producerNode.pop(),e.producerLastReadVersion.pop(),e.producerIndexOfThis.pop()}}(a,s),function rA(e){e.lView[br]!==e&&(e.lView=null,py.push(e))}(a)),Ju()}}function Uy(e,n){for(let t=gy(e);null!==t;t=my(t))for(let r=ke;r-1&&(Ji(n,r),ja(t,r))}this._attachedToViewContainer=!1}il(this._lView[A],this._lView)}onDestroy(n){Aa(this._lView,n)}markForCheck(){ls(this._cdRefInjectingView||this._lView)}detach(){this._lView[F]&=-129}reattach(){Gu(this._lView),this._lView[F]|=128}detectChanges(){this._lView[F]|=1024,function gf(e,n=!0){const t=e[xn],r=t.rendererFactory;r.begin?.();try{!function LA(e){mf(e,0);let n=0;for(;fm(e);){if(100===n)throw new M(103,!1);n++,mf(e,1)}}(e)}catch(i){throw n&&El(e,i),i}finally{r.end?.(),t.inlineEffectRunner?.flush()}}(this._lView,this.notifyErrorHandler)}checkNoChanges(){}attachToViewContainerRef(){if(this._appRef)throw new M(902,!1);this._attachedToViewContainer=!0}detachFromAppRef(){this._appRef=null,Iv(this._lView[A],this._lView)}attachToAppRef(n){if(this._attachedToViewContainer)throw new M(902,!1);this._appRef=n,Gu(this._lView)}}let us=(()=>{class e{static#e=this.__NG_ELEMENT_ID__=$A}return e})();function $A(e){return function HA(e,n,t){if(Er(e)&&!t){const r=Tt(e.index,n);return new cs(r,r)}return 47&e.type?new cs(n[Te],n):null}(he(),b(),16==(16&e))}let Il=(()=>{class e{static#e=this.__NG_ELEMENT_ID__=WA;static#t=this.__NG_ENV_ID__=t=>t}return e})();class qA extends Il{constructor(n){super(),this._lView=n}onDestroy(n){return Aa(this._lView,n),()=>function zu(e,n){if(null===e[Xn])return;const t=e[Xn].indexOf(n);-1!==t&&e[Xn].splice(t,1)}(this._lView,n)}}function WA(){return new qA(b())}const Hy=new Set;function Rr(e){Hy.has(e)||(Hy.add(e),performance?.mark?.("mark_feature_usage",{detail:{feature:e}}))}function vf(e){return n=>{setTimeout(e,void 0,n)}}const Ne=class KA extends an{constructor(n=!1){super(),this.__isAsync=n}emit(n){super.next(n)}subscribe(n,t,r){let o=n,i=t||(()=>null),s=r;if(n&&"object"==typeof n){const l=n;o=l.next?.bind(l),i=l.error?.bind(l),s=l.complete?.bind(l)}this.__isAsync&&(i=vf(i),o&&(o=vf(o)),s&&(s=vf(s)));const a=super.subscribe({next:o,error:i,complete:s});return n instanceof gt&&n.add(a),a}};function Gy(...e){}class se{constructor({enableLongStackTrace:n=!1,shouldCoalesceEventChangeDetection:t=!1,shouldCoalesceRunChangeDetection:r=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new Ne(!1),this.onMicrotaskEmpty=new Ne(!1),this.onStable=new Ne(!1),this.onError=new Ne(!1),typeof Zone>"u")throw new M(908,!1);Zone.assertZonePatched();const o=this;o._nesting=0,o._outer=o._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(o._inner=o._inner.fork(new Zone.TaskTrackingZoneSpec)),n&&Zone.longStackTraceZoneSpec&&(o._inner=o._inner.fork(Zone.longStackTraceZoneSpec)),o.shouldCoalesceEventChangeDetection=!r&&t,o.shouldCoalesceRunChangeDetection=r,o.lastRequestAnimationFrameId=-1,o.nativeRequestAnimationFrame=function eN(){const e="function"==typeof ce.requestAnimationFrame;let n=ce[e?"requestAnimationFrame":"setTimeout"],t=ce[e?"cancelAnimationFrame":"clearTimeout"];if(typeof Zone<"u"&&n&&t){const r=n[Zone.__symbol__("OriginalDelegate")];r&&(n=r);const o=t[Zone.__symbol__("OriginalDelegate")];o&&(t=o)}return{nativeRequestAnimationFrame:n,nativeCancelAnimationFrame:t}}().nativeRequestAnimationFrame,function rN(e){const n=()=>{!function nN(e){e.isCheckStableRunning||-1!==e.lastRequestAnimationFrameId||(e.lastRequestAnimationFrameId=e.nativeRequestAnimationFrame.call(ce,()=>{e.fakeTopEventTask||(e.fakeTopEventTask=Zone.root.scheduleEventTask("fakeTopEventTask",()=>{e.lastRequestAnimationFrameId=-1,_f(e),e.isCheckStableRunning=!0,yf(e),e.isCheckStableRunning=!1},void 0,()=>{},()=>{})),e.fakeTopEventTask.invoke()}),_f(e))}(e)};e._inner=e._inner.fork({name:"angular",properties:{isAngularZone:!0},onInvokeTask:(t,r,o,i,s,a)=>{if(function oN(e){return!(!Array.isArray(e)||1!==e.length)&&!0===e[0].data?.__ignore_ng_zone__}(a))return t.invokeTask(o,i,s,a);try{return zy(e),t.invokeTask(o,i,s,a)}finally{(e.shouldCoalesceEventChangeDetection&&"eventTask"===i.type||e.shouldCoalesceRunChangeDetection)&&n(),qy(e)}},onInvoke:(t,r,o,i,s,a,l)=>{try{return zy(e),t.invoke(o,i,s,a,l)}finally{e.shouldCoalesceRunChangeDetection&&n(),qy(e)}},onHasTask:(t,r,o,i)=>{t.hasTask(o,i),r===o&&("microTask"==i.change?(e._hasPendingMicrotasks=i.microTask,_f(e),yf(e)):"macroTask"==i.change&&(e.hasPendingMacrotasks=i.macroTask))},onHandleError:(t,r,o,i)=>(t.handleError(o,i),e.runOutsideAngular(()=>e.onError.emit(i)),!1)})}(o)}static isInAngularZone(){return typeof Zone<"u"&&!0===Zone.current.get("isAngularZone")}static assertInAngularZone(){if(!se.isInAngularZone())throw new M(909,!1)}static assertNotInAngularZone(){if(se.isInAngularZone())throw new M(909,!1)}run(n,t,r){return this._inner.run(n,t,r)}runTask(n,t,r,o){const i=this._inner,s=i.scheduleEventTask("NgZoneEvent: "+o,n,tN,Gy,Gy);try{return i.runTask(s,t,r)}finally{i.cancelTask(s)}}runGuarded(n,t,r){return this._inner.runGuarded(n,t,r)}runOutsideAngular(n){return this._outer.run(n)}}const tN={};function yf(e){if(0==e._nesting&&!e.hasPendingMicrotasks&&!e.isStable)try{e._nesting++,e.onMicrotaskEmpty.emit(null)}finally{if(e._nesting--,!e.hasPendingMicrotasks)try{e.runOutsideAngular(()=>e.onStable.emit(null))}finally{e.isStable=!0}}}function _f(e){e.hasPendingMicrotasks=!!(e._hasPendingMicrotasks||(e.shouldCoalesceEventChangeDetection||e.shouldCoalesceRunChangeDetection)&&-1!==e.lastRequestAnimationFrameId)}function zy(e){e._nesting++,e.isStable&&(e.isStable=!1,e.onUnstable.emit(null))}function qy(e){e._nesting--,yf(e)}var Or=function(e){return e[e.EarlyRead=0]="EarlyRead",e[e.Write=1]="Write",e[e.MixedReadWrite=2]="MixedReadWrite",e[e.Read=3]="Read",e}(Or||{});const Zy={destroy(){}};function Qy(e,n){!n&&function yd(e){if(!Fg()&&!function S0(){return Kr}())throw new M(-203,!1)}();const t=n?.injector??T(Ct);if(!function rr(e){return"browser"===(e??T(Ct)).get(nr)}(t))return Zy;Rr("NgAfterNextRender");const r=t.get(ds),o=r.handler??=new Jy,i=n?.phase??Or.MixedReadWrite,s=()=>{o.unregister(l),a()},a=t.get(Il).onDestroy(s),l=new Xy(t,i,()=>{s(),e()});return o.register(l),{destroy:s}}class Xy{constructor(n,t,r){this.phase=t,this.callbackFn=r,this.zone=n.get(se),this.errorHandler=n.get(Fn,null,{optional:!0})}invoke(){try{this.zone.runOutsideAngular(this.callbackFn)}catch(n){this.errorHandler?.handleError(n)}}}class Jy{constructor(){this.executingCallbacks=!1,this.buckets={[Or.EarlyRead]:new Set,[Or.Write]:new Set,[Or.MixedReadWrite]:new Set,[Or.Read]:new Set},this.deferredCallbacks=new Set}register(n){(this.executingCallbacks?this.deferredCallbacks:this.buckets[n.phase]).add(n)}unregister(n){this.buckets[n.phase].delete(n),this.deferredCallbacks.delete(n)}execute(){let n=!1;this.executingCallbacks=!0;for(const t of Object.values(this.buckets))for(const r of t)n=!0,r.invoke();this.executingCallbacks=!1;for(const t of this.deferredCallbacks)this.buckets[t.phase].add(t);return this.deferredCallbacks.clear(),n}destroy(){for(const n of Object.values(this.buckets))n.clear();this.deferredCallbacks.clear()}}let ds=(()=>{class e{constructor(){this.handler=null,this.internalCallbacks=[]}execute(){const t=[...this.internalCallbacks];this.internalCallbacks.length=0;for(const o of t)o();return!!this.handler?.execute()||t.length>0}ngOnDestroy(){this.handler?.destroy(),this.handler=null,this.internalCallbacks.length=0}static#e=this.\u0275prov=R({token:e,providedIn:"root",factory:()=>new e})}return e})();function aN(e,n){const t=Tt(n,e),r=t[A];!function lN(e,n){for(let t=n.length;t0&&Lv(e,t,i.join(" "))}}(g,H,v,r),void 0!==t&&function yN(e,n,t){const r=e.projection=[];for(let o=0;o=0;r--){const o=e[r];o.hostVars=n+=o.hostVars,o.hostAttrs=ki(o.hostAttrs,t=ki(t,o.hostAttrs))}}(r)}function CN(e,n){for(const t in n.inputs){if(!n.inputs.hasOwnProperty(t)||e.inputs.hasOwnProperty(t))continue;const r=n.inputs[t];if(void 0!==r&&(e.inputs[t]=r,e.declaredInputs[t]=n.declaredInputs[t],null!==n.inputTransforms)){const o=Array.isArray(r)?r[0]:r;if(!n.inputTransforms.hasOwnProperty(o))continue;e.inputTransforms??={},e.inputTransforms[o]=n.inputTransforms[o]}}}function Sl(e){return e===ln?{}:e===ne?[]:e}function wN(e,n){const t=e.viewQuery;e.viewQuery=t?(r,o)=>{n(r,o),t(r,o)}:n}function bN(e,n){const t=e.contentQueries;e.contentQueries=t?(r,o,i)=>{n(r,o,i),t(r,o,i)}:n}function EN(e,n){const t=e.hostBindings;e.hostBindings=t?(r,o)=>{n(r,o),t(r,o)}:n}function i_(e){const n=e.inputConfig,t={};for(const r in n)if(n.hasOwnProperty(r)){const o=n[r];Array.isArray(o)&&o[3]&&(t[r]=o[3])}e.inputTransforms=t}let d_=()=>null;function No(e,n){return d_(e,n)}function vs(e,n,t,r){const o=n.tView,a=wl(e,o,t,4096&e[F]?4096:16,null,n,null,null,null,r?.injector??null,r?.dehydratedView??null);a[Fi]=e[n.index];const c=e[cn];return null!==c&&(a[cn]=c.createEmbeddedView(o)),Cf(o,a,t),a}function xo(e,n){return!n||null===n.firstChild||tl(e)}function ys(e,n,t,r=!0){const o=n[A];if(function ZS(e,n,t,r){const o=ke+r,i=t.length;r>0&&(t[o-1][Zt]=n),r{class e{static#e=this.__NG_ELEMENT_ID__=XN}return e})();function XN(){return g_(he(),b())}const JN=Xt,h_=class extends JN{constructor(n,t,r){super(),this._lContainer=n,this._hostTNode=t,this._hostLView=r}get element(){return To(this._hostTNode,this._hostLView)}get injector(){return new ze(this._hostTNode,this._hostLView)}get parentInjector(){const n=Fa(this._hostTNode,this._hostLView);if(td(n)){const t=zi(n,this._hostLView),r=Gi(n);return new ze(t[A].data[r+8],t)}return new ze(null,this._hostLView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(n){const t=p_(this._lContainer);return null!==t&&t[n]||null}get length(){return this._lContainer.length-ke}createEmbeddedView(n,t,r){let o,i;"number"==typeof r?o=r:null!=r&&(o=r.index,i=r.injector);const s=No(this._lContainer,n.ssrId),a=n.createEmbeddedViewImpl(t||{},i,s);return this.insertImpl(a,o,xo(this._hostTNode,s)),a}createComponent(n,t,r,o,i){const s=n&&!function qi(e){return"function"==typeof e}(n);let a;if(s)a=t;else{const v=t||{};a=v.index,r=v.injector,o=v.projectableNodes,i=v.environmentInjector||v.ngModuleRef}const l=s?n:new fs(Q(n)),c=r||this.parentInjector;if(!i&&null==l.ngModule){const _=(s?c:this.parentInjector).get(Nt,null);_&&(i=_)}const u=Q(l.componentType??{}),d=No(this._lContainer,u?.id??null),m=l.create(c,o,d?.firstChild??null,i);return this.insertImpl(m.hostView,a,xo(this._hostTNode,d)),m}insert(n,t){return this.insertImpl(n,t,!0)}insertImpl(n,t,r){const o=n._lView;if(function o1(e){return rt(e[Oe])}(o)){const a=this.indexOf(n);if(-1!==a)this.detach(a);else{const l=o[Oe],c=new h_(l,l[tt],l[Oe]);c.detach(c.indexOf(n))}}const i=this._adjustIndex(t),s=this._lContainer;return ys(s,o,i,r),n.attachToViewContainerRef(),Um(Sf(s),i,n),n}move(n,t){return this.insert(n,t)}indexOf(n){const t=p_(this._lContainer);return null!==t?t.indexOf(n):-1}remove(n){const t=this._adjustIndex(n,-1),r=Ji(this._lContainer,t);r&&(ja(Sf(this._lContainer),t),il(r[A],r))}detach(n){const t=this._adjustIndex(n,-1),r=Ji(this._lContainer,t);return r&&null!=ja(Sf(this._lContainer),t)?new cs(r):null}_adjustIndex(n,t=0){return n??this.length+t}};function p_(e){return e[8]}function Sf(e){return e[8]||(e[8]=[])}function g_(e,n){let t;const r=n[e.index];return rt(r)?t=r:(t=Py(r,n,null,e),n[e.index]=t,bl(n,t)),m_(t,n,e,r),new h_(t,e,n)}let m_=function y_(e,n,t,r){if(e[un])return;let o;o=8&t.type?fe(r):function KN(e,n){const t=e[W],r=t.createComment(""),o=ct(n,e);return xr(t,sl(t,o),r,function KS(e,n){return e.nextSibling(n)}(t,o),!1),r}(n,t),e[un]=o},Tf=()=>!1;function vn(e,n,t){return e[n]=t}function je(e,n,t){return!Object.is(e[n],t)&&(e[n]=t,!0)}function q(e,n,t,r,o,i,s,a){const l=b(),c=K(),u=e+z,d=c.firstCreatePass?function rx(e,n,t,r,o,i,s,a,l){const c=n.consts,u=Ao(n,e,4,s||null,fn(c,a));uf(n,t,u,fn(c,l)),xa(n,u);const d=u.tView=cf(2,u,r,o,i,n.directiveRegistry,n.pipeRegistry,null,n.schemas,c,null);return null!==n.queries&&(n.queries.template(n,u),d.queries=n.queries.embeddedTView(u)),u}(u,c,l,n,t,r,o,i,s):c.data[u];hn(d,!1);const g=__(c,l,d,e);Na()&&al(c,l,g,d),it(g,l);const m=Py(g,l,g,d);return l[u]=m,bl(l,m),function v_(e,n,t){return Tf(e,n,t)}(m,d,l),Ta(d)&&af(c,l,d),null!=s&&lf(l,d,a),q}let __=function C_(e,n,t,r){return Jn(!0),n[W].createComment("")};function Jt(e,n,t,r){const o=b();return je(o,pn(),n)&&(K(),mn(Ee(),o,e,n,t,r)),Jt}function jo(e,n,t,r){return je(e,pn(),t)?n+G(t)+r:Z}function Vl(e,n){return e<<17|n<<2}function lr(e){return e>>17&32767}function Lf(e){return 2|e}function Fr(e){return(131068&e)>>2}function Vf(e,n){return-131069&e|n<<2}function jf(e){return 1|e}function J_(e,n,t,r){const o=e[t+1],i=null===n;let s=r?lr(o):Fr(o),a=!1;for(;0!==s&&(!1===a||i);){const c=e[s+1];Bx(e[s],n)&&(a=!0,e[s+1]=r?jf(c):Lf(c)),s=r?lr(c):Fr(c)}a&&(e[t+1]=r?Lf(o):jf(o))}function Bx(e,n){return null===e||null==n||(Array.isArray(e)?e[1]:e)===n||!(!Array.isArray(e)||"string"!=typeof n)&&mo(e,n)>=0}function E(e,n,t){const r=b();return je(r,pn(),n)&&Ot(K(),Ee(),r,e,n,r[W],t,!1),E}function Uf(e,n,t,r,o){const s=o?"class":"style";pf(e,t,n.inputs[s],s,r)}function jl(e,n){return function Kt(e,n,t,r){const o=b(),i=K(),s=function On(e){const n=U.lFrame,t=n.bindingIndex;return n.bindingIndex=n.bindingIndex+e,t}(2);i.firstUpdatePass&&function aC(e,n,t,r){const o=e.data;if(null===o[t+1]){const i=o[ot()],s=function sC(e,n){return n>=e.expandoStartIndex}(e,t);(function dC(e,n){return 0!=(e.flags&(n?8:16))})(i,r)&&null===n&&!s&&(n=!1),n=function Qx(e,n,t,r){const o=function Yu(e){const n=U.lFrame.currentDirectiveIndex;return-1===n?null:e[n]}(e);let i=r?n.residualClasses:n.residualStyles;if(null===o)0===(r?n.classBindings:n.styleBindings)&&(t=bs(t=Bf(null,e,n,t,r),n.attrs,r),i=null);else{const s=n.directiveStylingLast;if(-1===s||e[s]!==o)if(t=Bf(o,e,n,t,r),null===i){let l=function Xx(e,n,t){const r=t?n.classBindings:n.styleBindings;if(0!==Fr(r))return e[lr(r)]}(e,n,r);void 0!==l&&Array.isArray(l)&&(l=Bf(null,e,n,l[1],r),l=bs(l,n.attrs,r),function Jx(e,n,t,r){e[lr(t?n.classBindings:n.styleBindings)]=r}(e,n,r,l))}else i=function Kx(e,n,t){let r;const o=n.directiveEnd;for(let i=1+n.directiveStylingLast;i0)&&(c=!0)):u=t,o)if(0!==l){const g=lr(e[a+1]);e[r+1]=Vl(g,a),0!==g&&(e[g+1]=Vf(e[g+1],r)),e[a+1]=function Lx(e,n){return 131071&e|n<<17}(e[a+1],r)}else e[r+1]=Vl(a,0),0!==a&&(e[a+1]=Vf(e[a+1],r)),a=r;else e[r+1]=Vl(l,0),0===a?a=r:e[l+1]=Vf(e[l+1],r),l=r;c&&(e[r+1]=Lf(e[r+1])),J_(e,u,r,!0),J_(e,u,r,!1),function Ux(e,n,t,r,o){const i=o?e.residualClasses:e.residualStyles;null!=i&&"string"==typeof n&&mo(i,n)>=0&&(t[r+1]=jf(t[r+1]))}(n,u,e,r,i),s=Vl(a,l),i?n.classBindings=s:n.styleBindings=s}(o,i,n,t,s,r)}}(i,e,s,r),n!==Z&&je(o,s,n)&&function cC(e,n,t,r,o,i,s,a){if(!(3&n.type))return;const l=e.data,c=l[a+1],u=function Vx(e){return 1==(1&e)}(c)?uC(l,n,t,o,Fr(c),s):void 0;Ul(u)||(Ul(i)||function Fx(e){return 2==(2&e)}(c)&&(i=uC(l,null,t,o,a,s)),function nT(e,n,t,r,o){if(n)o?e.addClass(t,r):e.removeClass(t,r);else{let i=-1===r.indexOf("-")?void 0:ir.DashCase;null==o?e.removeStyle(t,r,i):("string"==typeof o&&o.endsWith("!important")&&(o=o.slice(0,-10),i|=ir.Important),e.setStyle(t,r,o,i))}}(r,s,ji(ot(),t),o,i))}(i,i.data[ot()],o,o[W],e,o[s+1]=function rR(e,n){return null==e||""===e||("string"==typeof n?e+=n:"object"==typeof e&&(e=He(sr(e)))),e}(n,t),r,s)}(e,n,null,!0),jl}function Bf(e,n,t,r,o){let i=null;const s=t.directiveEnd;let a=t.directiveStylingLast;for(-1===a?a=t.directiveStart:a++;a0;){const l=e[o],c=Array.isArray(l),u=c?l[1]:l,d=null===u;let g=t[o+1];g===Z&&(g=d?ne:void 0);let m=d?ld(g,r):u===r?g:void 0;if(c&&!Ul(m)&&(m=ld(l,r)),Ul(m)&&(a=m,s))return a;const v=e[o+1];o=s?lr(v):Fr(v)}if(null!==n){let l=i?n.residualClasses:n.residualStyles;null!=l&&(a=ld(l,r))}return a}function Ul(e){return void 0!==e}function Zo(e,n,t){Rr("NgControlFlow");const r=b(),o=pn(),i=function Gf(e,n){return e[n]}(r,z+e);if(je(r,o,n)){const a=Ae(null);try{if(function Mf(e,n){const t=Ji(e,n);return void 0!==t&&il(t[A],t),t}(i,0),-1!==n){const l=function zf(e,n){return Ui(e,n)}(r[A],z+n),c=No(i,l.tView.ssrId);ys(i,vs(r,l,t,{dehydratedView:c}),0,xo(l,c))}}finally{Ae(a)}}else{const a=function f_(e,n){const t=ke+n;if(t(Jn(!0),ol(r,o,function Im(){return U.lFrame.currentNamespace}()));function wt(e,n,t){const r=b(),o=K(),i=e+z,s=o.firstCreatePass?function TR(e,n,t,r,o){const i=n.consts,s=fn(i,r),a=Ao(n,e,8,"ng-container",s);return null!==s&&Ml(a,s,!0),uf(n,t,a,fn(i,o)),null!==n.queries&&n.queries.elementStart(n,a),a}(i,o,r,n,t):o.data[i];hn(s,!0);const a=vC(o,r,s,e);return r[i]=a,Na()&&al(o,r,a,s),it(a,r),Ta(s)&&(af(o,r,s),sf(o,s,r)),null!=t&&lf(r,s),wt}function bt(){let e=he();const n=K();return qu()?Wu():(e=e.parent,hn(e,!1)),n.firstCreatePass&&(xa(n,e),Lu(e)&&n.queries.elementEnd(e)),bt}let vC=(e,n,t,r)=>(Jn(!0),Nd(n[W],""));function Fe(){return b()}const Qo="en-US";let wC=Qo;function As(e){return!!e&&"function"==typeof e.then}function WC(e){return!!e&&"function"==typeof e.subscribe}function O(e,n,t,r){const o=b(),i=K(),s=he();return function YC(e,n,t,r,o,i,s){const a=Ta(r),c=e.firstCreatePass&&Vy(e),u=n[ye],d=Ly(n);let g=!0;if(3&r.type||s){const _=ct(r,n),D=s?s(_):_,I=d.length,w=s?L=>s(fe(L[r.index])):r.index;let x=null;if(!s&&a&&(x=function SO(e,n,t,r){const o=e.cleanup;if(null!=o)for(let i=0;il?a[l]:null}"string"==typeof s&&(i+=2)}return null}(e,n,o,r.index)),null!==x)(x.__ngLastListenerFn__||x).__ngNextListenerFn__=i,x.__ngLastListenerFn__=i,g=!1;else{i=XC(r,n,u,i,!1);const L=t.listen(D,o,i);d.push(i,L),c&&c.push(o,w,I,I+1)}}else i=XC(r,n,u,i,!1);const m=r.outputs;let v;if(g&&null!==m&&(v=m[o])){const _=v.length;if(_)for(let D=0;D<_;D+=2){const H=n[v[D]][v[D+1]].subscribe(i),ge=d.length;d.push(i,H),c&&c.push(o,r.index,ge,-(ge+1))}}}(i,o,o[W],s,e,n,r),O}function QC(e,n,t,r){try{return dn(6,n,t),!1!==t(r)}catch(o){return El(e,o),!1}finally{dn(7,n,t)}}function XC(e,n,t,r,o){return function i(s){if(s===Function)return r;ls(e.componentOffset>-1?Tt(e.index,n):n);let l=QC(n,t,r,s),c=i.__ngNextListenerFn__;for(;c;)l=QC(n,t,c,s)&&l,c=c.__ngNextListenerFn__;return o&&!1===l&&s.preventDefault(),l}}function k(e=1){return function _1(e){return(U.lFrame.contextLView=function dm(e,n){for(;e>0;)n=n[to],e--;return n}(e,U.lFrame.contextLView))[ye]}(e)}function Vn(e,n,t,r,o){const i=b(),s=jo(i,n,t,r);return s!==Z&&Ot(K(),Ee(),i,e,s,i[W],o,!1),Vn}function xO(){return this._results[Symbol.iterator]()}class Zf{static#e=Symbol.iterator;get changes(){return this._changes??=new Ne}constructor(n=!1){this._emitDistinctChangesOnly=n,this.dirty=!0,this._results=[],this._changesDetected=!1,this._changes=void 0,this.length=0,this.first=void 0,this.last=void 0;const t=Zf.prototype;t[Symbol.iterator]||(t[Symbol.iterator]=xO)}get(n){return this._results[n]}map(n){return this._results.map(n)}filter(n){return this._results.filter(n)}find(n){return this._results.find(n)}reduce(n,t){return this._results.reduce(n,t)}forEach(n){this._results.forEach(n)}some(n){return this._results.some(n)}toArray(){return this._results.slice()}toString(){return this._results.toString()}reset(n,t){this.dirty=!1;const r=function _t(e){return e.flat(Number.POSITIVE_INFINITY)}(n);(this._changesDetected=!function $1(e,n,t){if(e.length!==n.length)return!1;for(let r=0;r{class e{static#e=this.__NG_ELEMENT_ID__=kO}return e})();const RO=jn,OO=class extends RO{constructor(n,t,r){super(),this._declarationLView=n,this._declarationTContainer=t,this.elementRef=r}get ssrId(){return this._declarationTContainer.tView?.ssrId||null}createEmbeddedView(n,t){return this.createEmbeddedViewImpl(n,t)}createEmbeddedViewImpl(n,t,r){const o=vs(this._declarationLView,this._declarationTContainer,n,{injector:t,dehydratedView:r});return new cs(o)}};function kO(){return zl(he(),b())}function zl(e,n){return 4&e.type?new OO(n,e,To(e,n)):null}class Yf{constructor(n){this.queryList=n,this.matches=null}clone(){return new Yf(this.queryList)}setDirty(){this.queryList.setDirty()}}class Qf{constructor(n=[]){this.queries=n}createEmbeddedView(n){const t=n.queries;if(null!==t){const r=null!==n.contentQueries?n.contentQueries[0]:t.length,o=[];for(let i=0;i0)r.push(s[a/2]);else{const c=i[a+1],u=n[-l];for(let d=ke;d(Jn(!0),function rl(e,n){return e.createText(n)}(n[W],r));function Me(e){return Un("",e,""),Me}function Un(e,n,t){const r=b(),o=jo(r,e,n,t);return o!==Z&&function Ln(e,n,t){const r=ji(n,e);!function Ev(e,n,t){e.setValue(n,t)}(e[W],r,t)}(r,ot(),o),Un}function th(e,n,t,r,o){if(e=V(e),Array.isArray(e))for(let i=0;i>20;if(Nr(e)||!e.multi){const m=new Hi(c,o,S),v=rh(l,n,o?u:u+g,d);-1===v?(od(Pa(a,s),i,l),nh(i,e,n.length),n.push(l),a.directiveStart++,a.directiveEnd++,o&&(a.providerIndexes+=1048576),t.push(m),s.push(m)):(t[v]=m,s[v]=m)}else{const m=rh(l,n,u+g,d),v=rh(l,n,u,u+g),D=v>=0&&t[v];if(o&&!D||!o&&!(m>=0&&t[m])){od(Pa(a,s),i,l);const I=function rk(e,n,t,r,o){const i=new Hi(e,t,S);return i.multi=[],i.index=n,i.componentProviders=0,OD(i,o,r&&!t),i}(o?nk:tk,t.length,o,r,c);!o&&D&&(t[v].providerFactory=I),nh(i,e,n.length,0),n.push(l),a.directiveStart++,a.directiveEnd++,o&&(a.providerIndexes+=1048576),t.push(I),s.push(I)}else nh(i,e,m>-1?m:v,OD(t[o?v:m],c,!o&&r));!o&&r&&D&&t[v].componentProviders++}}}function nh(e,n,t,r){const o=Nr(n),i=function sS(e){return!!e.useClass}(n);if(o||i){const l=(i?V(n.useClass):n).prototype.ngOnDestroy;if(l){const c=e.destroyHooks||(e.destroyHooks=[]);if(!o&&n.multi){const u=c.indexOf(t);-1===u?c.push(t,[r,l]):c[u+1].push(r,l)}else c.push(t,l)}}}function OD(e,n,t){return t&&e.componentProviders++,e.multi.push(n)-1}function rh(e,n,t,r){for(let o=t;o{t.providersResolver=(r,o)=>function ek(e,n,t){const r=K();if(r.firstCreatePass){const o=Qt(e);th(t,r.data,r.blueprint,o,!0),th(n,r.data,r.blueprint,o,!1)}}(r,o?o(e):e,n)}}class Vr{}class kD{}class ih extends Vr{constructor(n,t,r){super(),this._parent=t,this._bootstrapComponents=[],this.destroyCbs=[],this.componentFactoryResolver=new Ky(this);const o=et(n);this._bootstrapComponents=xt(o.bootstrap),this._r3Injector=rv(n,t,[{provide:Vr,useValue:this},{provide:yl,useValue:this.componentFactoryResolver},...r],He(n),new Set(["environment"])),this._r3Injector.resolveInjectorInitializers(),this.instance=this._r3Injector.get(n)}get injector(){return this._r3Injector}destroy(){const n=this._r3Injector;!n.destroyed&&n.destroy(),this.destroyCbs.forEach(t=>t()),this.destroyCbs=null}onDestroy(n){this.destroyCbs.push(n)}}class sh extends kD{constructor(n){super(),this.moduleType=n}create(n){return new ih(this.moduleType,n,[])}}class PD extends Vr{constructor(n){super(),this.componentFactoryResolver=new Ky(this),this.instance=null;const t=new yo([...n.providers,{provide:Vr,useValue:this},{provide:yl,useValue:this.componentFactoryResolver}],n.parent||Ya(),n.debugName,new Set(["environment"]));this.injector=t,n.runEnvironmentInitializers&&t.resolveInjectorInitializers()}destroy(){this.injector.destroy()}onDestroy(n){this.injector.onDestroy(n)}}function ah(e,n,t=null){return new PD({providers:e,parent:n,debugName:t,runEnvironmentInitializers:!0}).injector}let sk=(()=>{class e{constructor(t){this._injector=t,this.cachedInjectors=new Map}getOrCreateStandaloneInjector(t){if(!t.standalone)return null;if(!this.cachedInjectors.has(t)){const r=Zm(0,t.type),o=r.length>0?ah([r],this._injector,`Standalone[${t.type.name}]`):null;this.cachedInjectors.set(t,o)}return this.cachedInjectors.get(t)}ngOnDestroy(){try{for(const t of this.cachedInjectors.values())null!==t&&t.destroy()}finally{this.cachedInjectors.clear()}}static#e=this.\u0275prov=R({token:e,providedIn:"environment",factory:()=>new e(P(Nt))})}return e})();function kt(e){Rr("NgStandalone"),e.getStandaloneInjector=n=>n.get(sk).getOrCreateStandaloneInjector(e)}function te(e,n,t){const r=ut()+e,o=b();return o[r]===Z?vn(o,r,t?n.call(t):n()):function _s(e,n){return e[n]}(o,r)}function Ns(e,n,t,r){return function zD(e,n,t,r,o,i){const s=n+t;return je(e,s,o)?vn(e,s+1,i?r.call(i,o):r(o)):xs(e,s+1)}(b(),ut(),e,n,t,r)}function GD(e,n,t,r,o){return function qD(e,n,t,r,o,i,s){const a=n+t;return function kr(e,n,t,r){const o=je(e,n,t);return je(e,n+1,r)||o}(e,a,o,i)?vn(e,a+2,s?r.call(s,o,i):r(o,i)):xs(e,a+2)}(b(),ut(),e,n,t,r,o)}function xs(e,n){const t=e[n];return t===Z?void 0:t}let dw=(()=>{class e{log(t){console.log(t)}warn(t){console.warn(t)}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=R({token:e,factory:e.\u0275fac,providedIn:"platform"})}return e})();class Kk{constructor(n,t){this.ngModuleFactory=n,this.componentFactories=t}}let fw=(()=>{class e{compileModuleSync(t){return new sh(t)}compileModuleAsync(t){return Promise.resolve(this.compileModuleSync(t))}compileModuleAndAllComponentsSync(t){const r=this.compileModuleSync(t),i=xt(et(t).declarations).reduce((s,a)=>{const l=Q(a);return l&&s.push(new fs(l)),s},[]);return new Kk(r,i)}compileModuleAndAllComponentsAsync(t){return Promise.resolve(this.compileModuleAndAllComponentsSync(t))}clearCache(){}clearCacheFor(t){}getModuleId(t){}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=R({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})(),Ko=(()=>{class e{constructor(){this.taskId=0,this.pendingTasks=new Set,this.hasPendingTasks=new Ft(!1)}get _hasPendingTasks(){return this.hasPendingTasks.value}add(){this._hasPendingTasks||this.hasPendingTasks.next(!0);const t=this.taskId++;return this.pendingTasks.add(t),t}remove(t){this.pendingTasks.delete(t),0===this.pendingTasks.size&&this._hasPendingTasks&&this.hasPendingTasks.next(!1)}ngOnDestroy(){this.pendingTasks.clear(),this._hasPendingTasks&&this.hasPendingTasks.next(!1)}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=R({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();const vw=new N(""),Ql=new N("");let mh,ph=(()=>{class e{constructor(t,r,o){this._ngZone=t,this.registry=r,this._pendingCount=0,this._isZoneStable=!0,this._callbacks=[],this.taskTrackingZone=null,mh||(function MP(e){mh=e}(o),o.addToWindow(r)),this._watchAngularEvents(),t.run(()=>{this.taskTrackingZone=typeof Zone>"u"?null:Zone.current.get("TaskTrackingZone")})}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._isZoneStable=!1}}),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.subscribe({next:()=>{se.assertNotInAngularZone(),queueMicrotask(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}})})}increasePendingRequestCount(){return this._pendingCount+=1,this._pendingCount}decreasePendingRequestCount(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error("pending async requests below zero");return this._runCallbacksIfReady(),this._pendingCount}isStable(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())queueMicrotask(()=>{for(;0!==this._callbacks.length;){let t=this._callbacks.pop();clearTimeout(t.timeoutId),t.doneCb()}});else{let t=this.getPendingTasks();this._callbacks=this._callbacks.filter(r=>!r.updateCb||!r.updateCb(t)||(clearTimeout(r.timeoutId),!1))}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(t=>({source:t.source,creationLocation:t.creationLocation,data:t.data})):[]}addCallback(t,r,o){let i=-1;r&&r>0&&(i=setTimeout(()=>{this._callbacks=this._callbacks.filter(s=>s.timeoutId!==i),t()},r)),this._callbacks.push({doneCb:t,timeoutId:i,updateCb:o})}whenStable(t,r,o){if(o&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is "zone.js/plugins/task-tracking" loaded?');this.addCallback(t,r,o),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}registerApplication(t){this.registry.registerApplication(t,this)}unregisterApplication(t){this.registry.unregisterApplication(t)}findProviders(t,r,o){return[]}static#e=this.\u0275fac=function(r){return new(r||e)(P(se),P(gh),P(Ql))};static#t=this.\u0275prov=R({token:e,factory:e.\u0275fac})}return e})(),gh=(()=>{class e{constructor(){this._applications=new Map}registerApplication(t,r){this._applications.set(t,r)}unregisterApplication(t){this._applications.delete(t)}unregisterAllApplications(){this._applications.clear()}getTestability(t){return this._applications.get(t)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(t,r=!0){return mh?.findTestabilityInTree(this,t,r)??null}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=R({token:e,factory:e.\u0275fac,providedIn:"platform"})}return e})();const vh=new N("");let yh=(()=>{class e{constructor(){this.initialized=!1,this.done=!1,this.donePromise=new Promise((t,r)=>{this.resolve=t,this.reject=r}),this.appInits=T(vh,{optional:!0})??[]}runInitializers(){if(this.initialized)return;const t=[];for(const o of this.appInits){const i=o();if(As(i))t.push(i);else if(WC(i)){const s=new Promise((a,l)=>{i.subscribe({complete:a,error:l})});t.push(s)}}const r=()=>{this.done=!0,this.resolve()};Promise.all(t).then(()=>{r()}).catch(o=>{this.reject(o)}),0===t.length&&r(),this.initialized=!0}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=R({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();const _h=new N("");let jr=(()=>{class e{constructor(){this._bootstrapListeners=[],this._runningTick=!1,this._destroyed=!1,this._destroyListeners=[],this._views=[],this.internalErrorHandler=T(_y),this.afterRenderEffectManager=T(ds),this.componentTypes=[],this.components=[],this.isStable=T(Ko).hasPendingTasks.pipe(J(t=>!t)),this._injector=T(Nt)}get destroyed(){return this._destroyed}get injector(){return this._injector}bootstrap(t,r){const o=t instanceof ry;if(!this._injector.get(yh).done)throw!o&&function Qn(e){const n=Q(e)||Ge(e)||Je(e);return null!==n&&n.standalone}(t),new M(405,!1);let s;s=o?t:this._injector.get(yl).resolveComponentFactory(t),this.componentTypes.push(s.componentType);const a=function TP(e){return e.isBoundToModule}(s)?void 0:this._injector.get(Vr),c=s.create(Ct.NULL,[],r||s.selector,a),u=c.location.nativeElement,d=c.injector.get(vw,null);return d?.registerApplication(u),c.onDestroy(()=>{this.detachView(c.hostView),Xl(this.components,c),d?.unregisterApplication(u)}),this._loadComponent(c),c}tick(){if(this._runningTick)throw new M(101,!1);try{this._runningTick=!0;for(let t of this._views)t.detectChanges()}catch(t){this.internalErrorHandler(t)}finally{try{this.afterRenderEffectManager.execute()}catch(t){this.internalErrorHandler(t)}this._runningTick=!1}}attachView(t){const r=t;this._views.push(r),r.attachToAppRef(this)}detachView(t){const r=t;Xl(this._views,r),r.detachFromAppRef()}_loadComponent(t){this.attachView(t.hostView),this.tick(),this.components.push(t);const r=this._injector.get(_h,[]);[...this._bootstrapListeners,...r].forEach(o=>o(t))}ngOnDestroy(){if(!this._destroyed)try{this._destroyListeners.forEach(t=>t()),this._views.slice().forEach(t=>t.destroy())}finally{this._destroyed=!0,this._views=[],this._bootstrapListeners=[],this._destroyListeners=[]}}onDestroy(t){return this._destroyListeners.push(t),()=>Xl(this._destroyListeners,t)}destroy(){if(this._destroyed)throw new M(406,!1);const t=this._injector;t.destroy&&!t.destroyed&&t.destroy()}get viewCount(){return this._views.length}warnIfDestroyed(){}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=R({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();function Xl(e,n){const t=e.indexOf(n);t>-1&&e.splice(t,1)}let NP=(()=>{class e{constructor(){this.zone=T(se),this.applicationRef=T(jr)}initialize(){this._onMicrotaskEmptySubscription||(this._onMicrotaskEmptySubscription=this.zone.onMicrotaskEmpty.subscribe({next:()=>{this.zone.run(()=>{this.applicationRef.tick()})}}))}ngOnDestroy(){this._onMicrotaskEmptySubscription?.unsubscribe()}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=R({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();function ww(e){return[{provide:se,useFactory:e},{provide:Ar,multi:!0,useFactory:()=>{const n=T(NP,{optional:!0});return()=>n.initialize()}},{provide:Ar,multi:!0,useFactory:()=>{const n=T(OP);return()=>{n.initialize()}}},{provide:_y,useFactory:xP}]}function xP(){const e=T(se),n=T(Fn);return t=>e.runOutsideAngular(()=>n.handleError(t))}function RP(e){return qa([[],ww(()=>new se(function bw(e){return{enableLongStackTrace:!1,shouldCoalesceEventChangeDetection:e?.eventCoalescing??!1,shouldCoalesceRunChangeDetection:e?.runCoalescing??!1}}(e)))])}let OP=(()=>{class e{constructor(){this.subscription=new gt,this.initialized=!1,this.zone=T(se),this.pendingTasks=T(Ko)}initialize(){if(this.initialized)return;this.initialized=!0;let t=null;!this.zone.isStable&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(t=this.pendingTasks.add()),this.zone.runOutsideAngular(()=>{this.subscription.add(this.zone.onStable.subscribe(()=>{se.assertNotInAngularZone(),queueMicrotask(()=>{null!==t&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(this.pendingTasks.remove(t),t=null)})}))}),this.subscription.add(this.zone.onUnstable.subscribe(()=>{se.assertInAngularZone(),t??=this.pendingTasks.add()}))}ngOnDestroy(){this.subscription.unsubscribe()}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=R({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();const Bn=new N("",{providedIn:"root",factory:()=>T(Bn,X.Optional|X.SkipSelf)||function kP(){return typeof $localize<"u"&&$localize.locale||Qo}()}),Ch=new N("");let cr=null;let GP=(()=>{class e{constructor(t){}static#e=this.\u0275fac=function(r){return new(r||e)(P(jr))};static#t=this.\u0275mod=Yn({type:e});static#n=this.\u0275inj=An({})}return e})();function iF(e){try{const{rootComponent:n,appProviders:t,platformProviders:r}=e,o=function jP(e=[]){if(cr)return cr;const n=function Mw(e=[],n){return Ct.create({name:n,providers:[{provide:pd,useValue:"platform"},{provide:Ch,useValue:new Set([()=>cr=null])},...e]})}(e);return cr=n,function yw(){!function qM(e){yg=e}(()=>{throw new M(600,!1)})}(),function Sw(e){e.get(iv,null)?.forEach(t=>t())}(n),n}(r),i=[RP(),...t||[]],a=new PD({providers:i,parent:o,debugName:"",runEnvironmentInitializers:!1}).injector,l=a.get(se);return l.run(()=>{a.resolveInjectorInitializers();const c=a.get(Fn,null);let u;l.runOutsideAngular(()=>{u=l.onError.subscribe({next:m=>{c.handleError(m)}})});const d=()=>a.destroy(),g=o.get(Ch);return g.add(d),a.onDestroy(()=>{u.unsubscribe(),g.delete(d)}),function _w(e,n,t){try{const r=t();return As(r)?r.catch(o=>{throw n.runOutsideAngular(()=>e.handleError(o)),o}):r}catch(r){throw n.runOutsideAngular(()=>e.handleError(r)),r}}(c,l,()=>{const m=a.get(yh);return m.runInitializers(),m.donePromise.then(()=>{!function bC(e){mt(e,"Expected localeId to be defined"),"string"==typeof e&&(wC=e.toLowerCase().replace(/_/g,"-"))}(a.get(Bn,Qo)||Qo);const _=a.get(jr);return void 0!==n&&_.bootstrap(n),_})})})}catch(n){return Promise.reject(n)}}function ti(e){return"boolean"==typeof e?e:null!=e&&"false"!==e}const Ce_apiBaseUrl="https://www.palmmedia.de/api/";let Xw=null;function ur(){return Xw}class DF{}const It=new N("");let Th=(()=>{class e{historyGo(t){throw new Error("")}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=R({token:e,factory:()=>T(bF),providedIn:"platform"})}return e})();const wF=new N("");let bF=(()=>{class e extends Th{constructor(){super(),this._doc=T(It),this._location=window.location,this._history=window.history}getBaseHrefFromDOM(){return ur().getBaseHref(this._doc)}onPopState(t){const r=ur().getGlobalEventTarget(this._doc,"window");return r.addEventListener("popstate",t,!1),()=>r.removeEventListener("popstate",t)}onHashChange(t){const r=ur().getGlobalEventTarget(this._doc,"window");return r.addEventListener("hashchange",t,!1),()=>r.removeEventListener("hashchange",t)}get href(){return this._location.href}get protocol(){return this._location.protocol}get hostname(){return this._location.hostname}get port(){return this._location.port}get pathname(){return this._location.pathname}get search(){return this._location.search}get hash(){return this._location.hash}set pathname(t){this._location.pathname=t}pushState(t,r,o){this._history.pushState(t,r,o)}replaceState(t,r,o){this._history.replaceState(t,r,o)}forward(){this._history.forward()}back(){this._history.back()}historyGo(t=0){this._history.go(t)}getState(){return this._history.state}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=R({token:e,factory:()=>new e,providedIn:"platform"})}return e})();function Ah(e,n){if(0==e.length)return n;if(0==n.length)return e;let t=0;return e.endsWith("/")&&t++,n.startsWith("/")&&t++,2==t?e+n.substring(1):1==t?e+n:e+"/"+n}function Jw(e){const n=e.match(/#|\?|$/),t=n&&n.index||e.length;return e.slice(0,t-("/"===e[t-1]?1:0))+e.slice(t)}function $n(e){return e&&"?"!==e[0]?"?"+e:e}let Br=(()=>{class e{historyGo(t){throw new Error("")}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=R({token:e,factory:()=>T(eb),providedIn:"root"})}return e})();const Kw=new N("");let eb=(()=>{class e extends Br{constructor(t,r){super(),this._platformLocation=t,this._removeListenerFns=[],this._baseHref=r??this._platformLocation.getBaseHrefFromDOM()??T(It).location?.origin??""}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(t){this._removeListenerFns.push(this._platformLocation.onPopState(t),this._platformLocation.onHashChange(t))}getBaseHref(){return this._baseHref}prepareExternalUrl(t){return Ah(this._baseHref,t)}path(t=!1){const r=this._platformLocation.pathname+$n(this._platformLocation.search),o=this._platformLocation.hash;return o&&t?`${r}${o}`:r}pushState(t,r,o,i){const s=this.prepareExternalUrl(o+$n(i));this._platformLocation.pushState(t,r,s)}replaceState(t,r,o,i){const s=this.prepareExternalUrl(o+$n(i));this._platformLocation.replaceState(t,r,s)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(t=0){this._platformLocation.historyGo?.(t)}static#e=this.\u0275fac=function(r){return new(r||e)(P(Th),P(Kw,8))};static#t=this.\u0275prov=R({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})(),EF=(()=>{class e extends Br{constructor(t,r){super(),this._platformLocation=t,this._baseHref="",this._removeListenerFns=[],null!=r&&(this._baseHref=r)}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(t){this._removeListenerFns.push(this._platformLocation.onPopState(t),this._platformLocation.onHashChange(t))}getBaseHref(){return this._baseHref}path(t=!1){const r=this._platformLocation.hash??"#";return r.length>0?r.substring(1):r}prepareExternalUrl(t){const r=Ah(this._baseHref,t);return r.length>0?"#"+r:r}pushState(t,r,o,i){let s=this.prepareExternalUrl(o+$n(i));0==s.length&&(s=this._platformLocation.pathname),this._platformLocation.pushState(t,r,s)}replaceState(t,r,o,i){let s=this.prepareExternalUrl(o+$n(i));0==s.length&&(s=this._platformLocation.pathname),this._platformLocation.replaceState(t,r,s)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(t=0){this._platformLocation.historyGo?.(t)}static#e=this.\u0275fac=function(r){return new(r||e)(P(Th),P(Kw,8))};static#t=this.\u0275prov=R({token:e,factory:e.\u0275fac})}return e})(),Vs=(()=>{class e{constructor(t){this._subject=new Ne,this._urlChangeListeners=[],this._urlChangeSubscription=null,this._locationStrategy=t;const r=this._locationStrategy.getBaseHref();this._basePath=function SF(e){if(new RegExp("^(https?:)?//").test(e)){const[,t]=e.split(/\/\/[^\/]+/);return t}return e}(Jw(tb(r))),this._locationStrategy.onPopState(o=>{this._subject.emit({url:this.path(!0),pop:!0,state:o.state,type:o.type})})}ngOnDestroy(){this._urlChangeSubscription?.unsubscribe(),this._urlChangeListeners=[]}path(t=!1){return this.normalize(this._locationStrategy.path(t))}getState(){return this._locationStrategy.getState()}isCurrentPathEqualTo(t,r=""){return this.path()==this.normalize(t+$n(r))}normalize(t){return e.stripTrailingSlash(function MF(e,n){if(!e||!n.startsWith(e))return n;const t=n.substring(e.length);return""===t||["/",";","?","#"].includes(t[0])?t:n}(this._basePath,tb(t)))}prepareExternalUrl(t){return t&&"/"!==t[0]&&(t="/"+t),this._locationStrategy.prepareExternalUrl(t)}go(t,r="",o=null){this._locationStrategy.pushState(o,"",t,r),this._notifyUrlChangeListeners(this.prepareExternalUrl(t+$n(r)),o)}replaceState(t,r="",o=null){this._locationStrategy.replaceState(o,"",t,r),this._notifyUrlChangeListeners(this.prepareExternalUrl(t+$n(r)),o)}forward(){this._locationStrategy.forward()}back(){this._locationStrategy.back()}historyGo(t=0){this._locationStrategy.historyGo?.(t)}onUrlChange(t){return this._urlChangeListeners.push(t),this._urlChangeSubscription??=this.subscribe(r=>{this._notifyUrlChangeListeners(r.url,r.state)}),()=>{const r=this._urlChangeListeners.indexOf(t);this._urlChangeListeners.splice(r,1),0===this._urlChangeListeners.length&&(this._urlChangeSubscription?.unsubscribe(),this._urlChangeSubscription=null)}}_notifyUrlChangeListeners(t="",r){this._urlChangeListeners.forEach(o=>o(t,r))}subscribe(t,r,o){return this._subject.subscribe({next:t,error:r,complete:o})}static#e=this.normalizeQueryParams=$n;static#t=this.joinWithSlash=Ah;static#n=this.stripTrailingSlash=Jw;static#r=this.\u0275fac=function(r){return new(r||e)(P(Br))};static#o=this.\u0275prov=R({token:e,factory:()=>function IF(){return new Vs(P(Br))}(),providedIn:"root"})}return e})();function tb(e){return e.replace(/\/index.html$/,"")}function ub(e,n){n=encodeURIComponent(n);for(const t of e.split(";")){const r=t.indexOf("="),[o,i]=-1==r?[t,""]:[t.slice(0,r),t.slice(r+1)];if(o.trim()===n)return decodeURIComponent(i)}return null}const jh=/\s+/,db=[];let vc=(()=>{class e{constructor(t,r){this._ngEl=t,this._renderer=r,this.initialClasses=db,this.stateMap=new Map}set klass(t){this.initialClasses=null!=t?t.trim().split(jh):db}set ngClass(t){this.rawClass="string"==typeof t?t.trim().split(jh):t}ngDoCheck(){for(const r of this.initialClasses)this._updateState(r,!0);const t=this.rawClass;if(Array.isArray(t)||t instanceof Set)for(const r of t)this._updateState(r,!0);else if(null!=t)for(const r of Object.keys(t))this._updateState(r,!!t[r]);this._applyStateDiff()}_updateState(t,r){const o=this.stateMap.get(t);void 0!==o?(o.enabled!==r&&(o.changed=!0,o.enabled=r),o.touched=!0):this.stateMap.set(t,{enabled:r,changed:!0,touched:!0})}_applyStateDiff(){for(const t of this.stateMap){const r=t[0],o=t[1];o.changed?(this._toggleClass(r,o.enabled),o.changed=!1):o.touched||(o.enabled&&this._toggleClass(r,!1),this.stateMap.delete(r)),o.touched=!1}}_toggleClass(t,r){(t=t.trim()).length>0&&t.split(jh).forEach(o=>{r?this._renderer.addClass(this._ngEl.nativeElement,o):this._renderer.removeClass(this._ngEl.nativeElement,o)})}static#e=this.\u0275fac=function(r){return new(r||e)(S(Rt),S(Pn))};static#t=this.\u0275dir=$({type:e,selectors:[["","ngClass",""]],inputs:{klass:[be.None,"class","klass"],ngClass:"ngClass"},standalone:!0})}return e})();class f2{constructor(n,t,r,o){this.$implicit=n,this.ngForOf=t,this.index=r,this.count=o}get first(){return 0===this.index}get last(){return this.index===this.count-1}get even(){return this.index%2==0}get odd(){return!this.even}}let Uh=(()=>{class e{set ngForOf(t){this._ngForOf=t,this._ngForOfDirty=!0}set ngForTrackBy(t){this._trackByFn=t}get ngForTrackBy(){return this._trackByFn}constructor(t,r,o){this._viewContainer=t,this._template=r,this._differs=o,this._ngForOf=null,this._ngForOfDirty=!0,this._differ=null}set ngForTemplate(t){t&&(this._template=t)}ngDoCheck(){if(this._ngForOfDirty){this._ngForOfDirty=!1;const t=this._ngForOf;!this._differ&&t&&(this._differ=this._differs.find(t).create(this.ngForTrackBy))}if(this._differ){const t=this._differ.diff(this._ngForOf);t&&this._applyChanges(t)}}_applyChanges(t){const r=this._viewContainer;t.forEachOperation((o,i,s)=>{if(null==o.previousIndex)r.createEmbeddedView(this._template,new f2(o.item,this._ngForOf,-1,-1),null===s?void 0:s);else if(null==s)r.remove(null===i?void 0:i);else if(null!==i){const a=r.get(i);r.move(a,s),hb(a,o)}});for(let o=0,i=r.length;o{hb(r.get(o.currentIndex),o)})}static ngTemplateContextGuard(t,r){return!0}static#e=this.\u0275fac=function(r){return new(r||e)(S(Xt),S(jn),S(tf))};static#t=this.\u0275dir=$({type:e,selectors:[["","ngFor","","ngForOf",""]],inputs:{ngForOf:"ngForOf",ngForTrackBy:"ngForTrackBy",ngForTemplate:"ngForTemplate"},standalone:!0})}return e})();function hb(e,n){e.context.$implicit=n.item}let Bh=(()=>{class e{constructor(t,r){this._viewContainer=t,this._context=new h2,this._thenTemplateRef=null,this._elseTemplateRef=null,this._thenViewRef=null,this._elseViewRef=null,this._thenTemplateRef=r}set ngIf(t){this._context.$implicit=this._context.ngIf=t,this._updateView()}set ngIfThen(t){pb("ngIfThen",t),this._thenTemplateRef=t,this._thenViewRef=null,this._updateView()}set ngIfElse(t){pb("ngIfElse",t),this._elseTemplateRef=t,this._elseViewRef=null,this._updateView()}_updateView(){this._context.$implicit?this._thenViewRef||(this._viewContainer.clear(),this._elseViewRef=null,this._thenTemplateRef&&(this._thenViewRef=this._viewContainer.createEmbeddedView(this._thenTemplateRef,this._context))):this._elseViewRef||(this._viewContainer.clear(),this._thenViewRef=null,this._elseTemplateRef&&(this._elseViewRef=this._viewContainer.createEmbeddedView(this._elseTemplateRef,this._context)))}static ngTemplateContextGuard(t,r){return!0}static#e=this.\u0275fac=function(r){return new(r||e)(S(Xt),S(jn))};static#t=this.\u0275dir=$({type:e,selectors:[["","ngIf",""]],inputs:{ngIf:"ngIf",ngIfThen:"ngIfThen",ngIfElse:"ngIfElse"},standalone:!0})}return e})();class h2{constructor(){this.$implicit=null,this.ngIf=null}}function pb(e,n){if(n&&!n.createEmbeddedView)throw new Error(`${e} must be a TemplateRef, but received '${He(n)}'.`)}let j2=(()=>{class e{static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275mod=Yn({type:e});static#n=this.\u0275inj=An({})}return e})();const vb="browser";function yb(e){return"server"===e}let G2=(()=>{class e{static#e=this.\u0275prov=R({token:e,providedIn:"root",factory:()=>function H2(e){return e===vb}(T(nr))?new z2(T(It),window):new W2})}return e})();class z2{constructor(n,t){this.document=n,this.window=t,this.offset=()=>[0,0]}setOffset(n){this.offset=Array.isArray(n)?()=>n:n}getScrollPosition(){return[this.window.scrollX,this.window.scrollY]}scrollToPosition(n){this.window.scrollTo(n[0],n[1])}scrollToAnchor(n){const t=function q2(e,n){const t=e.getElementById(n)||e.getElementsByName(n)[0];if(t)return t;if("function"==typeof e.createTreeWalker&&e.body&&"function"==typeof e.body.attachShadow){const r=e.createTreeWalker(e.body,NodeFilter.SHOW_ELEMENT);let o=r.currentNode;for(;o;){const i=o.shadowRoot;if(i){const s=i.getElementById(n)||i.querySelector(`[name="${n}"]`);if(s)return s}o=r.nextNode()}}return null}(this.document,n);t&&(this.scrollToElement(t),t.focus())}setHistoryScrollRestoration(n){this.window.history.scrollRestoration=n}scrollToElement(n){const t=n.getBoundingClientRect(),r=t.left+this.window.pageXOffset,o=t.top+this.window.pageYOffset,i=this.offset();this.window.scrollTo(r-i[0],o-i[1])}}class W2{setOffset(n){}getScrollPosition(){return[0,0]}scrollToPosition(n){}scrollToAnchor(n){}setHistoryScrollRestoration(n){}}class _b{}function dr(e){return this instanceof dr?(this.v=e,this):new dr(e)}function Mb(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,n=e[Symbol.asyncIterator];return n?n.call(e):(e=function Xh(e){var n="function"==typeof Symbol&&Symbol.iterator,t=n&&e[n],r=0;if(t)return t.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(n?"Object is not iterable.":"Symbol.iterator is not defined.")}(e),t={},r("next"),r("throw"),r("return"),t[Symbol.asyncIterator]=function(){return this},t);function r(i){t[i]=e[i]&&function(s){return new Promise(function(a,l){!function o(i,s,a,l){Promise.resolve(l).then(function(c){i({value:c,done:a})},s)}(a,l,(s=e[i](s)).done,s.value)})}}}"function"==typeof SuppressedError&&SuppressedError;const Sb=e=>e&&"number"==typeof e.length&&"function"!=typeof e;function Tb(e){return we(e?.then)}function Ab(e){return we(e[Cu])}function Nb(e){return Symbol.asyncIterator&&we(e?.[Symbol.asyncIterator])}function xb(e){return new TypeError(`You provided ${null!==e&&"object"==typeof e?"an invalid object":`'${e}'`} where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.`)}const Rb=function VL(){return"function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator"}();function Ob(e){return we(e?.[Rb])}function kb(e){return function Ib(e,n,t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var o,r=t.apply(e,n||[]),i=[];return o={},s("next"),s("throw"),s("return"),o[Symbol.asyncIterator]=function(){return this},o;function s(g){r[g]&&(o[g]=function(m){return new Promise(function(v,_){i.push([g,m,v,_])>1||a(g,m)})})}function a(g,m){try{!function l(g){g.value instanceof dr?Promise.resolve(g.value.v).then(c,u):d(i[0][2],g)}(r[g](m))}catch(v){d(i[0][3],v)}}function c(g){a("next",g)}function u(g){a("throw",g)}function d(g,m){g(m),i.shift(),i.length&&a(i[0][0],i[0][1])}}(this,arguments,function*(){const t=e.getReader();try{for(;;){const{value:r,done:o}=yield dr(t.read());if(o)return yield dr(void 0);yield yield dr(r)}}finally{t.releaseLock()}})}function Pb(e){return we(e?.getReader)}function Cn(e){if(e instanceof Ve)return e;if(null!=e){if(Ab(e))return function jL(e){return new Ve(n=>{const t=e[Cu]();if(we(t.subscribe))return t.subscribe(n);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}(e);if(Sb(e))return function UL(e){return new Ve(n=>{for(let t=0;t{e.then(t=>{n.closed||(n.next(t),n.complete())},t=>n.error(t)).then(null,Eg)})}(e);if(Nb(e))return Fb(e);if(Ob(e))return function $L(e){return new Ve(n=>{for(const t of e)if(n.next(t),n.closed)return;n.complete()})}(e);if(Pb(e))return function HL(e){return Fb(kb(e))}(e)}throw xb(e)}function Fb(e){return new Ve(n=>{(function GL(e,n){var t,r,o,i;return function bb(e,n,t,r){return new(t||(t=Promise))(function(i,s){function a(u){try{c(r.next(u))}catch(d){s(d)}}function l(u){try{c(r.throw(u))}catch(d){s(d)}}function c(u){u.done?i(u.value):function o(i){return i instanceof t?i:new t(function(s){s(i)})}(u.value).then(a,l)}c((r=r.apply(e,n||[])).next())})}(this,void 0,void 0,function*(){try{for(t=Mb(e);!(r=yield t.next()).done;)if(n.next(r.value),n.closed)return}catch(s){o={error:s}}finally{try{r&&!r.done&&(i=t.return)&&(yield i.call(t))}finally{if(o)throw o.error}}n.complete()})})(e,n).catch(t=>n.error(t))})}function zn(e,n,t,r=0,o=!1){const i=n.schedule(function(){t(),o?e.add(this.schedule(null,r)):this.unsubscribe()},r);if(e.add(i),!o)return i}function Lb(e,n=0){return Xe((t,r)=>{t.subscribe($e(r,o=>zn(r,e,()=>r.next(o),n),()=>zn(r,e,()=>r.complete(),n),o=>zn(r,e,()=>r.error(o),n)))})}function Vb(e,n=0){return Xe((t,r)=>{r.add(e.schedule(()=>t.subscribe(r),n))})}function jb(e,n){if(!e)throw new Error("Iterable cannot be null");return new Ve(t=>{zn(t,n,()=>{const r=e[Symbol.asyncIterator]();zn(t,n,()=>{r.next().then(o=>{o.done?t.complete():t.next(o.value)})},0,!0)})})}function Ye(e,n){return n?function QL(e,n){if(null!=e){if(Ab(e))return function zL(e,n){return Cn(e).pipe(Vb(n),Lb(n))}(e,n);if(Sb(e))return function WL(e,n){return new Ve(t=>{let r=0;return n.schedule(function(){r===e.length?t.complete():(t.next(e[r++]),t.closed||this.schedule())})})}(e,n);if(Tb(e))return function qL(e,n){return Cn(e).pipe(Vb(n),Lb(n))}(e,n);if(Nb(e))return jb(e,n);if(Ob(e))return function ZL(e,n){return new Ve(t=>{let r;return zn(t,n,()=>{r=e[Rb](),zn(t,n,()=>{let o,i;try{({value:o,done:i}=r.next())}catch(s){return void t.error(s)}i?t.complete():t.next(o)},0,!0)}),()=>we(r?.return)&&r.return()})}(e,n);if(Pb(e))return function YL(e,n){return jb(kb(e),n)}(e,n)}throw xb(e)}(e,n):Cn(e)}function Jh(e){return e[e.length-1]}function Ub(e){return we(Jh(e))?e.pop():void 0}function Cc(e){return function XL(e){return e&&we(e.schedule)}(Jh(e))?e.pop():void 0}function B(...e){return Ye(e,Cc(e))}const{isArray:JL}=Array,{getPrototypeOf:KL,prototype:eV,keys:tV}=Object;function Bb(e){if(1===e.length){const n=e[0];if(JL(n))return{args:n,keys:null};if(function nV(e){return e&&"object"==typeof e&&KL(e)===eV}(n)){const t=tV(n);return{args:t.map(r=>n[r]),keys:t}}}return{args:e,keys:null}}const{isArray:rV}=Array;function $b(e){return J(n=>function oV(e,n){return rV(n)?e(...n):e(n)}(e,n))}function Hb(e,n){return e.reduce((t,r,o)=>(t[r]=n[o],t),{})}function Kh(...e){const n=Cc(e),t=Ub(e),{args:r,keys:o}=Bb(e);if(0===r.length)return Ye([],n);const i=new Ve(function iV(e,n,t=wr){return r=>{Gb(n,()=>{const{length:o}=e,i=new Array(o);let s=o,a=o;for(let l=0;l{const c=Ye(e[l],n);let u=!1;c.subscribe($e(r,d=>{i[l]=d,u||(u=!0,a--),a||r.next(t(i.slice()))},()=>{--s||r.complete()}))},r)},r)}}(r,n,o?s=>Hb(o,s):wr));return t?i.pipe($b(t)):i}function Gb(e,n,t){e?zn(t,e,n):n()}const Dc=du(e=>function(){e(this),this.name="EmptyError",this.message="no elements in sequence"});function Ke(e,n,t=1/0){return we(n)?Ke((r,o)=>J((i,s)=>n(r,i,o,s))(Cn(e(r,o))),t):("number"==typeof n&&(t=n),Xe((r,o)=>function sV(e,n,t,r,o,i,s,a){const l=[];let c=0,u=0,d=!1;const g=()=>{d&&!l.length&&!c&&n.complete()},m=_=>c{i&&n.next(_),c++;let D=!1;Cn(t(_,u++)).subscribe($e(n,I=>{o?.(I),i?m(I):n.next(I)},()=>{D=!0},void 0,()=>{if(D)try{for(c--;l.length&&cv(I)):v(I)}g()}catch(I){n.error(I)}}))};return e.subscribe($e(n,m,()=>{d=!0,g()})),()=>{a?.()}}(r,o,e,t)))}function Bs(e=1/0){return Ke(wr,e)}function ep(...e){return function aV(){return Bs(1)}()(Ye(e,Cc(e)))}function zb(e){return new Ve(n=>{Cn(e()).subscribe(n)})}function wc(e,n){const t=we(e)?e:()=>e,r=o=>o.error(t());return new Ve(n?o=>n.schedule(r,0,o):r)}const qn=new Ve(e=>e.complete());function tp(){return Xe((e,n)=>{let t=null;e._refCount++;const r=$e(n,void 0,void 0,void 0,()=>{if(!e||e._refCount<=0||0<--e._refCount)return void(t=null);const o=e._connection,i=t;t=null,o&&(!i||o===i)&&o.unsubscribe(),n.unsubscribe()});e.subscribe(r),r.closed||(t=e.connect())})}class qb extends Ve{constructor(n,t){super(),this.source=n,this.subjectFactory=t,this._subject=null,this._refCount=0,this._connection=null,Tg(n)&&(this.lift=n.lift)}_subscribe(n){return this.getSubject().subscribe(n)}getSubject(){const n=this._subject;return(!n||n.isStopped)&&(this._subject=this.subjectFactory()),this._subject}_teardown(){this._refCount=0;const{_connection:n}=this;this._subject=this._connection=null,n?.unsubscribe()}connect(){let n=this._connection;if(!n){n=this._connection=new gt;const t=this.getSubject();n.add(this.source.subscribe($e(t,void 0,()=>{this._teardown(),t.complete()},r=>{this._teardown(),t.error(r)},()=>this._teardown()))),n.closed&&(this._connection=null,n=gt.EMPTY)}return n}refCount(){return tp()(this)}}function rn(e,n){return Xe((t,r)=>{let o=null,i=0,s=!1;const a=()=>s&&!o&&r.complete();t.subscribe($e(r,l=>{o?.unsubscribe();let c=0;const u=i++;Cn(e(l,u)).subscribe(o=$e(r,d=>r.next(n?n(l,d,u,c++):d),()=>{o=null,a()}))},()=>{s=!0,a()}))})}function ri(e){return e<=0?()=>qn:Xe((n,t)=>{let r=0;n.subscribe($e(t,o=>{++r<=e&&(t.next(o),e<=r&&t.complete())}))})}function on(e,n){return Xe((t,r)=>{let o=0;t.subscribe($e(r,i=>e.call(n,i,o++)&&r.next(i)))})}function bc(e){return Xe((n,t)=>{let r=!1;n.subscribe($e(t,o=>{r=!0,t.next(o)},()=>{r||t.next(e),t.complete()}))})}function Wb(e=uV){return Xe((n,t)=>{let r=!1;n.subscribe($e(t,o=>{r=!0,t.next(o)},()=>r?t.complete():t.error(e())))})}function uV(){return new Dc}function $r(e,n){const t=arguments.length>=2;return r=>r.pipe(e?on((o,i)=>e(o,i,r)):wr,ri(1),t?bc(n):Wb(()=>new Dc))}function oi(e,n){return we(n)?Ke(e,n,1):Ke(e,1)}function st(e,n,t){const r=we(e)||n||t?{next:e,error:n,complete:t}:e;return r?Xe((o,i)=>{var s;null===(s=r.subscribe)||void 0===s||s.call(r);let a=!0;o.subscribe($e(i,l=>{var c;null===(c=r.next)||void 0===c||c.call(r,l),i.next(l)},()=>{var l;a=!1,null===(l=r.complete)||void 0===l||l.call(r),i.complete()},l=>{var c;a=!1,null===(c=r.error)||void 0===c||c.call(r,l),i.error(l)},()=>{var l,c;a&&(null===(l=r.unsubscribe)||void 0===l||l.call(r)),null===(c=r.finalize)||void 0===c||c.call(r)}))}):wr}function ii(e){return Xe((n,t)=>{let i,r=null,o=!1;r=n.subscribe($e(t,void 0,void 0,s=>{i=Cn(e(s,ii(e)(n))),r?(r.unsubscribe(),r=null,i.subscribe(t)):o=!0})),o&&(r.unsubscribe(),r=null,i.subscribe(t))})}function np(e){return e<=0?()=>qn:Xe((n,t)=>{let r=[];n.subscribe($e(t,o=>{r.push(o),e{for(const o of r)t.next(o);t.complete()},void 0,()=>{r=null}))})}function $s(e){return Xe((n,t)=>{try{n.subscribe(t)}finally{t.add(e)}})}class mV extends DF{constructor(){super(...arguments),this.supportsDOMEvents=!0}}class rp extends mV{static makeCurrent(){!function CF(e){Xw??=e}(new rp)}onAndCancel(n,t,r){return n.addEventListener(t,r),()=>{n.removeEventListener(t,r)}}dispatchEvent(n,t){n.dispatchEvent(t)}remove(n){n.parentNode&&n.parentNode.removeChild(n)}createElement(n,t){return(t=t||this.getDefaultDocument()).createElement(n)}createHtmlDocument(){return document.implementation.createHTMLDocument("fakeTitle")}getDefaultDocument(){return document}isElementNode(n){return n.nodeType===Node.ELEMENT_NODE}isShadowRoot(n){return n instanceof DocumentFragment}getGlobalEventTarget(n,t){return"window"===t?window:"document"===t?n:"body"===t?n.body:null}getBaseHref(n){const t=function vV(){return Hs=Hs||document.querySelector("base"),Hs?Hs.getAttribute("href"):null}();return null==t?null:function yV(e){return new URL(e,document.baseURI).pathname}(t)}resetBaseElement(){Hs=null}getUserAgent(){return window.navigator.userAgent}getCookie(n){return ub(document.cookie,n)}}let Hs=null,CV=(()=>{class e{build(){return new XMLHttpRequest}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=R({token:e,factory:e.\u0275fac})}return e})();const op=new N("");let Zb=(()=>{class e{constructor(t,r){this._zone=r,this._eventNameToPlugin=new Map,t.forEach(o=>{o.manager=this}),this._plugins=t.slice().reverse()}addEventListener(t,r,o){return this._findPluginFor(r).addEventListener(t,r,o)}getZone(){return this._zone}_findPluginFor(t){let r=this._eventNameToPlugin.get(t);if(r)return r;if(r=this._plugins.find(i=>i.supports(t)),!r)throw new M(5101,!1);return this._eventNameToPlugin.set(t,r),r}static#e=this.\u0275fac=function(r){return new(r||e)(P(op),P(se))};static#t=this.\u0275prov=R({token:e,factory:e.\u0275fac})}return e})();class Yb{constructor(n){this._doc=n}}const ip="ng-app-id";let Qb=(()=>{class e{constructor(t,r,o,i={}){this.doc=t,this.appId=r,this.nonce=o,this.platformId=i,this.styleRef=new Map,this.hostNodes=new Set,this.styleNodesInDOM=this.collectServerRenderedStyles(),this.platformIsServer=yb(i),this.resetHostNodes()}addStyles(t){for(const r of t)1===this.changeUsageCount(r,1)&&this.onStyleAdded(r)}removeStyles(t){for(const r of t)this.changeUsageCount(r,-1)<=0&&this.onStyleRemoved(r)}ngOnDestroy(){const t=this.styleNodesInDOM;t&&(t.forEach(r=>r.remove()),t.clear());for(const r of this.getAllStyles())this.onStyleRemoved(r);this.resetHostNodes()}addHost(t){this.hostNodes.add(t);for(const r of this.getAllStyles())this.addStyleToHost(t,r)}removeHost(t){this.hostNodes.delete(t)}getAllStyles(){return this.styleRef.keys()}onStyleAdded(t){for(const r of this.hostNodes)this.addStyleToHost(r,t)}onStyleRemoved(t){const r=this.styleRef;r.get(t)?.elements?.forEach(o=>o.remove()),r.delete(t)}collectServerRenderedStyles(){const t=this.doc.head?.querySelectorAll(`style[${ip}="${this.appId}"]`);if(t?.length){const r=new Map;return t.forEach(o=>{null!=o.textContent&&r.set(o.textContent,o)}),r}return null}changeUsageCount(t,r){const o=this.styleRef;if(o.has(t)){const i=o.get(t);return i.usage+=r,i.usage}return o.set(t,{usage:r,elements:[]}),r}getStyleElement(t,r){const o=this.styleNodesInDOM,i=o?.get(r);if(i?.parentNode===t)return o.delete(r),i.removeAttribute(ip),i;{const s=this.doc.createElement("style");return this.nonce&&s.setAttribute("nonce",this.nonce),s.textContent=r,this.platformIsServer&&s.setAttribute(ip,this.appId),t.appendChild(s),s}}addStyleToHost(t,r){const o=this.getStyleElement(t,r),i=this.styleRef,s=i.get(r)?.elements;s?s.push(o):i.set(r,{elements:[o],usage:1})}resetHostNodes(){const t=this.hostNodes;t.clear(),t.add(this.doc.head)}static#e=this.\u0275fac=function(r){return new(r||e)(P(It),P(Xa),P(sv,8),P(nr))};static#t=this.\u0275prov=R({token:e,factory:e.\u0275fac})}return e})();const sp={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/",math:"http://www.w3.org/1998/MathML/"},ap=/%COMP%/g,EV=new N("",{providedIn:"root",factory:()=>!0});function Jb(e,n){return n.map(t=>t.replace(ap,e))}let Kb=(()=>{class e{constructor(t,r,o,i,s,a,l,c=null){this.eventManager=t,this.sharedStylesHost=r,this.appId=o,this.removeStylesOnCompDestroy=i,this.doc=s,this.platformId=a,this.ngZone=l,this.nonce=c,this.rendererByCompId=new Map,this.platformIsServer=yb(a),this.defaultRenderer=new lp(t,s,l,this.platformIsServer)}createRenderer(t,r){if(!t||!r)return this.defaultRenderer;this.platformIsServer&&r.encapsulation===qt.ShadowDom&&(r={...r,encapsulation:qt.Emulated});const o=this.getOrCreateRenderer(t,r);return o instanceof tE?o.applyToHost(t):o instanceof cp&&o.applyStyles(),o}getOrCreateRenderer(t,r){const o=this.rendererByCompId;let i=o.get(r.id);if(!i){const s=this.doc,a=this.ngZone,l=this.eventManager,c=this.sharedStylesHost,u=this.removeStylesOnCompDestroy,d=this.platformIsServer;switch(r.encapsulation){case qt.Emulated:i=new tE(l,c,r,this.appId,u,s,a,d);break;case qt.ShadowDom:return new TV(l,c,t,r,s,a,this.nonce,d);default:i=new cp(l,c,r,u,s,a,d)}o.set(r.id,i)}return i}ngOnDestroy(){this.rendererByCompId.clear()}static#e=this.\u0275fac=function(r){return new(r||e)(P(Zb),P(Qb),P(Xa),P(EV),P(It),P(nr),P(se),P(sv))};static#t=this.\u0275prov=R({token:e,factory:e.\u0275fac})}return e})();class lp{constructor(n,t,r,o){this.eventManager=n,this.doc=t,this.ngZone=r,this.platformIsServer=o,this.data=Object.create(null),this.throwOnSyntheticProps=!0,this.destroyNode=null}destroy(){}createElement(n,t){return t?this.doc.createElementNS(sp[t]||t,n):this.doc.createElement(n)}createComment(n){return this.doc.createComment(n)}createText(n){return this.doc.createTextNode(n)}appendChild(n,t){(eE(n)?n.content:n).appendChild(t)}insertBefore(n,t,r){n&&(eE(n)?n.content:n).insertBefore(t,r)}removeChild(n,t){n&&n.removeChild(t)}selectRootElement(n,t){let r="string"==typeof n?this.doc.querySelector(n):n;if(!r)throw new M(-5104,!1);return t||(r.textContent=""),r}parentNode(n){return n.parentNode}nextSibling(n){return n.nextSibling}setAttribute(n,t,r,o){if(o){t=o+":"+t;const i=sp[o];i?n.setAttributeNS(i,t,r):n.setAttribute(t,r)}else n.setAttribute(t,r)}removeAttribute(n,t,r){if(r){const o=sp[r];o?n.removeAttributeNS(o,t):n.removeAttribute(`${r}:${t}`)}else n.removeAttribute(t)}addClass(n,t){n.classList.add(t)}removeClass(n,t){n.classList.remove(t)}setStyle(n,t,r,o){o&(ir.DashCase|ir.Important)?n.style.setProperty(t,r,o&ir.Important?"important":""):n.style[t]=r}removeStyle(n,t,r){r&ir.DashCase?n.style.removeProperty(t):n.style[t]=""}setProperty(n,t,r){null!=n&&(n[t]=r)}setValue(n,t){n.nodeValue=t}listen(n,t,r){if("string"==typeof n&&!(n=ur().getGlobalEventTarget(this.doc,n)))throw new Error(`Unsupported event target ${n} for event ${t}`);return this.eventManager.addEventListener(n,t,this.decoratePreventDefault(r))}decoratePreventDefault(n){return t=>{if("__ngUnwrap__"===t)return n;!1===(this.platformIsServer?this.ngZone.runGuarded(()=>n(t)):n(t))&&t.preventDefault()}}}function eE(e){return"TEMPLATE"===e.tagName&&void 0!==e.content}class TV extends lp{constructor(n,t,r,o,i,s,a,l){super(n,i,s,l),this.sharedStylesHost=t,this.hostEl=r,this.shadowRoot=r.attachShadow({mode:"open"}),this.sharedStylesHost.addHost(this.shadowRoot);const c=Jb(o.id,o.styles);for(const u of c){const d=document.createElement("style");a&&d.setAttribute("nonce",a),d.textContent=u,this.shadowRoot.appendChild(d)}}nodeOrShadowRoot(n){return n===this.hostEl?this.shadowRoot:n}appendChild(n,t){return super.appendChild(this.nodeOrShadowRoot(n),t)}insertBefore(n,t,r){return super.insertBefore(this.nodeOrShadowRoot(n),t,r)}removeChild(n,t){return super.removeChild(this.nodeOrShadowRoot(n),t)}parentNode(n){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(n)))}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}}class cp extends lp{constructor(n,t,r,o,i,s,a,l){super(n,i,s,a),this.sharedStylesHost=t,this.removeStylesOnCompDestroy=o,this.styles=l?Jb(l,r.styles):r.styles}applyStyles(){this.sharedStylesHost.addStyles(this.styles)}destroy(){this.removeStylesOnCompDestroy&&this.sharedStylesHost.removeStyles(this.styles)}}class tE extends cp{constructor(n,t,r,o,i,s,a,l){const c=o+"-"+r.id;super(n,t,r,i,s,a,l,c),this.contentAttr=function IV(e){return"_ngcontent-%COMP%".replace(ap,e)}(c),this.hostAttr=function MV(e){return"_nghost-%COMP%".replace(ap,e)}(c)}applyToHost(n){this.applyStyles(),this.setAttribute(n,this.hostAttr,"")}createElement(n,t){const r=super.createElement(n,t);return super.setAttribute(r,this.contentAttr,""),r}}let AV=(()=>{class e extends Yb{constructor(t){super(t)}supports(t){return!0}addEventListener(t,r,o){return t.addEventListener(r,o,!1),()=>this.removeEventListener(t,r,o)}removeEventListener(t,r,o){return t.removeEventListener(r,o)}static#e=this.\u0275fac=function(r){return new(r||e)(P(It))};static#t=this.\u0275prov=R({token:e,factory:e.\u0275fac})}return e})();const nE=["alt","control","meta","shift"],NV={"\b":"Backspace","\t":"Tab","\x7f":"Delete","\x1b":"Escape",Del:"Delete",Esc:"Escape",Left:"ArrowLeft",Right:"ArrowRight",Up:"ArrowUp",Down:"ArrowDown",Menu:"ContextMenu",Scroll:"ScrollLock",Win:"OS"},xV={alt:e=>e.altKey,control:e=>e.ctrlKey,meta:e=>e.metaKey,shift:e=>e.shiftKey};let RV=(()=>{class e extends Yb{constructor(t){super(t)}supports(t){return null!=e.parseEventName(t)}addEventListener(t,r,o){const i=e.parseEventName(r),s=e.eventCallback(i.fullKey,o,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>ur().onAndCancel(t,i.domEventName,s))}static parseEventName(t){const r=t.toLowerCase().split("."),o=r.shift();if(0===r.length||"keydown"!==o&&"keyup"!==o)return null;const i=e._normalizeKey(r.pop());let s="",a=r.indexOf("code");if(a>-1&&(r.splice(a,1),s="code."),nE.forEach(c=>{const u=r.indexOf(c);u>-1&&(r.splice(u,1),s+=c+".")}),s+=i,0!=r.length||0===i.length)return null;const l={};return l.domEventName=o,l.fullKey=s,l}static matchEventFullKeyCode(t,r){let o=NV[t.key]||t.key,i="";return r.indexOf("code.")>-1&&(o=t.code,i="code."),!(null==o||!o)&&(o=o.toLowerCase()," "===o?o="space":"."===o&&(o="dot"),nE.forEach(s=>{s!==o&&(0,xV[s])(t)&&(i+=s+".")}),i+=o,i===r)}static eventCallback(t,r,o){return i=>{e.matchEventFullKeyCode(i,t)&&o.runGuarded(()=>r(i))}}static _normalizeKey(t){return"esc"===t?"escape":t}static#e=this.\u0275fac=function(r){return new(r||e)(P(It))};static#t=this.\u0275prov=R({token:e,factory:e.\u0275fac})}return e})();function rE(e){return{appProviders:[...iE,...e?.providers??[]],platformProviders:LV}}const LV=[{provide:nr,useValue:vb},{provide:iv,useValue:function kV(){rp.makeCurrent()},multi:!0},{provide:It,useFactory:function FV(){return function CS(e){Cd=e}(document),document},deps:[]}],VV=new N(""),oE=[{provide:Ql,useClass:class _V{addToWindow(n){ce.getAngularTestability=(r,o=!0)=>{const i=n.findTestabilityInTree(r,o);if(null==i)throw new M(5103,!1);return i},ce.getAllAngularTestabilities=()=>n.getAllTestabilities(),ce.getAllAngularRootElements=()=>n.getAllRootElements(),ce.frameworkStabilizers||(ce.frameworkStabilizers=[]),ce.frameworkStabilizers.push(r=>{const o=ce.getAllAngularTestabilities();let i=o.length;const s=function(){i--,0==i&&r()};o.forEach(a=>{a.whenStable(s)})})}findTestabilityInTree(n,t,r){return null==t?null:n.getTestability(t)??(r?ur().isShadowRoot(t)?this.findTestabilityInTree(n,t.host,!0):this.findTestabilityInTree(n,t.parentElement,!0):null)}},deps:[]},{provide:vw,useClass:ph,deps:[se,gh,Ql]},{provide:ph,useClass:ph,deps:[se,gh,Ql]}],iE=[{provide:pd,useValue:"root"},{provide:Fn,useFactory:function PV(){return new Fn},deps:[]},{provide:op,useClass:AV,multi:!0,deps:[It,se,nr]},{provide:op,useClass:RV,multi:!0,deps:[It]},Kb,Qb,Zb,{provide:iy,useExisting:Kb},{provide:_b,useClass:CV,deps:[]},[]];let jV=(()=>{class e{constructor(t){}static withServerTransition(t){return{ngModule:e,providers:[{provide:Xa,useValue:t.appId}]}}static#e=this.\u0275fac=function(r){return new(r||e)(P(VV,12))};static#t=this.\u0275mod=Yn({type:e});static#n=this.\u0275inj=An({providers:[...iE,...oE],imports:[j2,GP]})}return e})(),UV=(()=>{class e{constructor(t){this._doc=t}getTitle(){return this._doc.title}setTitle(t){this._doc.title=t||""}static#e=this.\u0275fac=function(r){return new(r||e)(P(It))};static#t=this.\u0275prov=R({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();const Y="primary",zs=Symbol("RouteTitle");class GV{constructor(n){this.params=n||{}}has(n){return Object.prototype.hasOwnProperty.call(this.params,n)}get(n){if(this.has(n)){const t=this.params[n];return Array.isArray(t)?t[0]:t}return null}getAll(n){if(this.has(n)){const t=this.params[n];return Array.isArray(t)?t:[t]}return[]}get keys(){return Object.keys(this.params)}}function si(e){return new GV(e)}function zV(e,n,t){const r=t.path.split("/");if(r.length>e.length||"full"===t.pathMatch&&(n.hasChildren()||r.lengthr[i]===o)}return e===n}function uE(e){return e.length>0?e[e.length-1]:null}function fr(e){return function mL(e){return!!e&&(e instanceof Ve||we(e.lift)&&we(e.subscribe))}(e)?e:As(e)?Ye(Promise.resolve(e)):B(e)}const WV={exact:function hE(e,n,t){if(!Hr(e.segments,n.segments)||!Ec(e.segments,n.segments,t)||e.numberOfChildren!==n.numberOfChildren)return!1;for(const r in n.children)if(!e.children[r]||!hE(e.children[r],n.children[r],t))return!1;return!0},subset:pE},dE={exact:function ZV(e,n){return Dn(e,n)},subset:function YV(e,n){return Object.keys(n).length<=Object.keys(e).length&&Object.keys(n).every(t=>cE(e[t],n[t]))},ignored:()=>!0};function fE(e,n,t){return WV[t.paths](e.root,n.root,t.matrixParams)&&dE[t.queryParams](e.queryParams,n.queryParams)&&!("exact"===t.fragment&&e.fragment!==n.fragment)}function pE(e,n,t){return gE(e,n,n.segments,t)}function gE(e,n,t,r){if(e.segments.length>t.length){const o=e.segments.slice(0,t.length);return!(!Hr(o,t)||n.hasChildren()||!Ec(o,t,r))}if(e.segments.length===t.length){if(!Hr(e.segments,t)||!Ec(e.segments,t,r))return!1;for(const o in n.children)if(!e.children[o]||!pE(e.children[o],n.children[o],r))return!1;return!0}{const o=t.slice(0,e.segments.length),i=t.slice(e.segments.length);return!!(Hr(e.segments,o)&&Ec(e.segments,o,r)&&e.children[Y])&&gE(e.children[Y],n,i,r)}}function Ec(e,n,t){return n.every((r,o)=>dE[t](e[o].parameters,r.parameters))}class ai{constructor(n=new pe([],{}),t={},r=null){this.root=n,this.queryParams=t,this.fragment=r}get queryParamMap(){return this._queryParamMap??=si(this.queryParams),this._queryParamMap}toString(){return JV.serialize(this)}}class pe{constructor(n,t){this.segments=n,this.children=t,this.parent=null,Object.values(t).forEach(r=>r.parent=this)}hasChildren(){return this.numberOfChildren>0}get numberOfChildren(){return Object.keys(this.children).length}toString(){return Ic(this)}}class qs{constructor(n,t){this.path=n,this.parameters=t}get parameterMap(){return this._parameterMap??=si(this.parameters),this._parameterMap}toString(){return yE(this)}}function Hr(e,n){return e.length===n.length&&e.every((t,r)=>t.path===n[r].path)}let li=(()=>{class e{static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=R({token:e,factory:()=>new dp,providedIn:"root"})}return e})();class dp{parse(n){const t=new c3(n);return new ai(t.parseRootSegment(),t.parseQueryParams(),t.parseFragment())}serialize(n){const t=`/${Ws(n.root,!0)}`,r=function t3(e){const n=Object.entries(e).map(([t,r])=>Array.isArray(r)?r.map(o=>`${Mc(t)}=${Mc(o)}`).join("&"):`${Mc(t)}=${Mc(r)}`).filter(t=>t);return n.length?`?${n.join("&")}`:""}(n.queryParams);return`${t}${r}${"string"==typeof n.fragment?`#${function KV(e){return encodeURI(e)}(n.fragment)}`:""}`}}const JV=new dp;function Ic(e){return e.segments.map(n=>yE(n)).join("/")}function Ws(e,n){if(!e.hasChildren())return Ic(e);if(n){const t=e.children[Y]?Ws(e.children[Y],!1):"",r=[];return Object.entries(e.children).forEach(([o,i])=>{o!==Y&&r.push(`${o}:${Ws(i,!1)}`)}),r.length>0?`${t}(${r.join("//")})`:t}{const t=function XV(e,n){let t=[];return Object.entries(e.children).forEach(([r,o])=>{r===Y&&(t=t.concat(n(o,r)))}),Object.entries(e.children).forEach(([r,o])=>{r!==Y&&(t=t.concat(n(o,r)))}),t}(e,(r,o)=>o===Y?[Ws(e.children[Y],!1)]:[`${o}:${Ws(r,!1)}`]);return 1===Object.keys(e.children).length&&null!=e.children[Y]?`${Ic(e)}/${t[0]}`:`${Ic(e)}/(${t.join("//")})`}}function mE(e){return encodeURIComponent(e).replace(/%40/g,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",")}function Mc(e){return mE(e).replace(/%3B/gi,";")}function fp(e){return mE(e).replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/%26/gi,"&")}function Sc(e){return decodeURIComponent(e)}function vE(e){return Sc(e.replace(/\+/g,"%20"))}function yE(e){return`${fp(e.path)}${function e3(e){return Object.entries(e).map(([n,t])=>`;${fp(n)}=${fp(t)}`).join("")}(e.parameters)}`}const n3=/^[^\/()?;#]+/;function hp(e){const n=e.match(n3);return n?n[0]:""}const r3=/^[^\/()?;=#]+/,i3=/^[^=?&#]+/,a3=/^[^&#]+/;class c3{constructor(n){this.url=n,this.remaining=n}parseRootSegment(){return this.consumeOptional("/"),""===this.remaining||this.peekStartsWith("?")||this.peekStartsWith("#")?new pe([],{}):new pe([],this.parseChildren())}parseQueryParams(){const n={};if(this.consumeOptional("?"))do{this.parseQueryParam(n)}while(this.consumeOptional("&"));return n}parseFragment(){return this.consumeOptional("#")?decodeURIComponent(this.remaining):null}parseChildren(){if(""===this.remaining)return{};this.consumeOptional("/");const n=[];for(this.peekStartsWith("(")||n.push(this.parseSegment());this.peekStartsWith("/")&&!this.peekStartsWith("//")&&!this.peekStartsWith("/(");)this.capture("/"),n.push(this.parseSegment());let t={};this.peekStartsWith("/(")&&(this.capture("/"),t=this.parseParens(!0));let r={};return this.peekStartsWith("(")&&(r=this.parseParens(!1)),(n.length>0||Object.keys(t).length>0)&&(r[Y]=new pe(n,t)),r}parseSegment(){const n=hp(this.remaining);if(""===n&&this.peekStartsWith(";"))throw new M(4009,!1);return this.capture(n),new qs(Sc(n),this.parseMatrixParams())}parseMatrixParams(){const n={};for(;this.consumeOptional(";");)this.parseParam(n);return n}parseParam(n){const t=function o3(e){const n=e.match(r3);return n?n[0]:""}(this.remaining);if(!t)return;this.capture(t);let r="";if(this.consumeOptional("=")){const o=hp(this.remaining);o&&(r=o,this.capture(r))}n[Sc(t)]=Sc(r)}parseQueryParam(n){const t=function s3(e){const n=e.match(i3);return n?n[0]:""}(this.remaining);if(!t)return;this.capture(t);let r="";if(this.consumeOptional("=")){const s=function l3(e){const n=e.match(a3);return n?n[0]:""}(this.remaining);s&&(r=s,this.capture(r))}const o=vE(t),i=vE(r);if(n.hasOwnProperty(o)){let s=n[o];Array.isArray(s)||(s=[s],n[o]=s),s.push(i)}else n[o]=i}parseParens(n){const t={};for(this.capture("(");!this.consumeOptional(")")&&this.remaining.length>0;){const r=hp(this.remaining),o=this.remaining[r.length];if("/"!==o&&")"!==o&&";"!==o)throw new M(4010,!1);let i;r.indexOf(":")>-1?(i=r.slice(0,r.indexOf(":")),this.capture(i),this.capture(":")):n&&(i=Y);const s=this.parseChildren();t[i]=1===Object.keys(s).length?s[Y]:new pe([],s),this.consumeOptional("//")}return t}peekStartsWith(n){return this.remaining.startsWith(n)}consumeOptional(n){return!!this.peekStartsWith(n)&&(this.remaining=this.remaining.substring(n.length),!0)}capture(n){if(!this.consumeOptional(n))throw new M(4011,!1)}}function _E(e){return e.segments.length>0?new pe([],{[Y]:e}):e}function CE(e){const n={};for(const[r,o]of Object.entries(e.children)){const i=CE(o);if(r===Y&&0===i.segments.length&&i.hasChildren())for(const[s,a]of Object.entries(i.children))n[s]=a;else(i.segments.length>0||i.hasChildren())&&(n[r]=i)}return function u3(e){if(1===e.numberOfChildren&&e.children[Y]){const n=e.children[Y];return new pe(e.segments.concat(n.segments),n.children)}return e}(new pe(e.segments,n))}function ci(e){return e instanceof ai}function DE(e){let n;const o=_E(function t(i){const s={};for(const l of i.children){const c=t(l);s[l.outlet]=c}const a=new pe(i.url,s);return i===e&&(n=a),a}(e.root));return n??o}function wE(e,n,t,r){let o=e;for(;o.parent;)o=o.parent;if(0===n.length)return pp(o,o,o,t,r);const i=function f3(e){if("string"==typeof e[0]&&1===e.length&&"/"===e[0])return new EE(!0,0,e);let n=0,t=!1;const r=e.reduce((o,i,s)=>{if("object"==typeof i&&null!=i){if(i.outlets){const a={};return Object.entries(i.outlets).forEach(([l,c])=>{a[l]="string"==typeof c?c.split("/"):c}),[...o,{outlets:a}]}if(i.segmentPath)return[...o,i.segmentPath]}return"string"!=typeof i?[...o,i]:0===s?(i.split("/").forEach((a,l)=>{0==l&&"."===a||(0==l&&""===a?t=!0:".."===a?n++:""!=a&&o.push(a))}),o):[...o,i]},[]);return new EE(t,n,r)}(n);if(i.toRoot())return pp(o,o,new pe([],{}),t,r);const s=function h3(e,n,t){if(e.isAbsolute)return new Ac(n,!0,0);if(!t)return new Ac(n,!1,NaN);if(null===t.parent)return new Ac(t,!0,0);const r=Tc(e.commands[0])?0:1;return function p3(e,n,t){let r=e,o=n,i=t;for(;i>o;){if(i-=o,r=r.parent,!r)throw new M(4005,!1);o=r.segments.length}return new Ac(r,!1,o-i)}(t,t.segments.length-1+r,e.numberOfDoubleDots)}(i,o,e),a=s.processChildren?Ys(s.segmentGroup,s.index,i.commands):IE(s.segmentGroup,s.index,i.commands);return pp(o,s.segmentGroup,a,t,r)}function Tc(e){return"object"==typeof e&&null!=e&&!e.outlets&&!e.segmentPath}function Zs(e){return"object"==typeof e&&null!=e&&e.outlets}function pp(e,n,t,r,o){let s,i={};r&&Object.entries(r).forEach(([l,c])=>{i[l]=Array.isArray(c)?c.map(u=>`${u}`):`${c}`}),s=e===n?t:bE(e,n,t);const a=_E(CE(s));return new ai(a,i,o)}function bE(e,n,t){const r={};return Object.entries(e.children).forEach(([o,i])=>{r[o]=i===n?t:bE(i,n,t)}),new pe(e.segments,r)}class EE{constructor(n,t,r){if(this.isAbsolute=n,this.numberOfDoubleDots=t,this.commands=r,n&&r.length>0&&Tc(r[0]))throw new M(4003,!1);const o=r.find(Zs);if(o&&o!==uE(r))throw new M(4004,!1)}toRoot(){return this.isAbsolute&&1===this.commands.length&&"/"==this.commands[0]}}class Ac{constructor(n,t,r){this.segmentGroup=n,this.processChildren=t,this.index=r}}function IE(e,n,t){if(e??=new pe([],{}),0===e.segments.length&&e.hasChildren())return Ys(e,n,t);const r=function m3(e,n,t){let r=0,o=n;const i={match:!1,pathIndex:0,commandIndex:0};for(;o=t.length)return i;const s=e.segments[o],a=t[r];if(Zs(a))break;const l=`${a}`,c=r0&&void 0===l)break;if(l&&c&&"object"==typeof c&&void 0===c.outlets){if(!SE(l,c,s))return i;r+=2}else{if(!SE(l,{},s))return i;r++}o++}return{match:!0,pathIndex:o,commandIndex:r}}(e,n,t),o=t.slice(r.commandIndex);if(r.match&&r.pathIndexi!==Y)&&e.children[Y]&&1===e.numberOfChildren&&0===e.children[Y].segments.length){const i=Ys(e.children[Y],n,t);return new pe(e.segments,i.children)}return Object.entries(r).forEach(([i,s])=>{"string"==typeof s&&(s=[s]),null!==s&&(o[i]=IE(e.children[i],n,s))}),Object.entries(e.children).forEach(([i,s])=>{void 0===r[i]&&(o[i]=s)}),new pe(e.segments,o)}}function gp(e,n,t){const r=e.segments.slice(0,n);let o=0;for(;o{"string"==typeof r&&(r=[r]),null!==r&&(n[t]=gp(new pe([],{}),0,r))}),n}function ME(e){const n={};return Object.entries(e).forEach(([t,r])=>n[t]=`${r}`),n}function SE(e,n,t){return e==t.path&&Dn(n,t.parameters)}const Qs="imperative";var ee=function(e){return e[e.NavigationStart=0]="NavigationStart",e[e.NavigationEnd=1]="NavigationEnd",e[e.NavigationCancel=2]="NavigationCancel",e[e.NavigationError=3]="NavigationError",e[e.RoutesRecognized=4]="RoutesRecognized",e[e.ResolveStart=5]="ResolveStart",e[e.ResolveEnd=6]="ResolveEnd",e[e.GuardsCheckStart=7]="GuardsCheckStart",e[e.GuardsCheckEnd=8]="GuardsCheckEnd",e[e.RouteConfigLoadStart=9]="RouteConfigLoadStart",e[e.RouteConfigLoadEnd=10]="RouteConfigLoadEnd",e[e.ChildActivationStart=11]="ChildActivationStart",e[e.ChildActivationEnd=12]="ChildActivationEnd",e[e.ActivationStart=13]="ActivationStart",e[e.ActivationEnd=14]="ActivationEnd",e[e.Scroll=15]="Scroll",e[e.NavigationSkipped=16]="NavigationSkipped",e}(ee||{});class wn{constructor(n,t){this.id=n,this.url=t}}class Nc extends wn{constructor(n,t,r="imperative",o=null){super(n,t),this.type=ee.NavigationStart,this.navigationTrigger=r,this.restoredState=o}toString(){return`NavigationStart(id: ${this.id}, url: '${this.url}')`}}class bn extends wn{constructor(n,t,r){super(n,t),this.urlAfterRedirects=r,this.type=ee.NavigationEnd}toString(){return`NavigationEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}')`}}var $t=function(e){return e[e.Redirect=0]="Redirect",e[e.SupersededByNewNavigation=1]="SupersededByNewNavigation",e[e.NoDataFromResolver=2]="NoDataFromResolver",e[e.GuardRejected=3]="GuardRejected",e}($t||{}),xc=function(e){return e[e.IgnoredSameUrlNavigation=0]="IgnoredSameUrlNavigation",e[e.IgnoredByUrlHandlingStrategy=1]="IgnoredByUrlHandlingStrategy",e}(xc||{});class ui extends wn{constructor(n,t,r,o){super(n,t),this.reason=r,this.code=o,this.type=ee.NavigationCancel}toString(){return`NavigationCancel(id: ${this.id}, url: '${this.url}')`}}class di extends wn{constructor(n,t,r,o){super(n,t),this.reason=r,this.code=o,this.type=ee.NavigationSkipped}}class Rc extends wn{constructor(n,t,r,o){super(n,t),this.error=r,this.target=o,this.type=ee.NavigationError}toString(){return`NavigationError(id: ${this.id}, url: '${this.url}', error: ${this.error})`}}class TE extends wn{constructor(n,t,r,o){super(n,t),this.urlAfterRedirects=r,this.state=o,this.type=ee.RoutesRecognized}toString(){return`RoutesRecognized(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class y3 extends wn{constructor(n,t,r,o){super(n,t),this.urlAfterRedirects=r,this.state=o,this.type=ee.GuardsCheckStart}toString(){return`GuardsCheckStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class _3 extends wn{constructor(n,t,r,o,i){super(n,t),this.urlAfterRedirects=r,this.state=o,this.shouldActivate=i,this.type=ee.GuardsCheckEnd}toString(){return`GuardsCheckEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state}, shouldActivate: ${this.shouldActivate})`}}class C3 extends wn{constructor(n,t,r,o){super(n,t),this.urlAfterRedirects=r,this.state=o,this.type=ee.ResolveStart}toString(){return`ResolveStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class D3 extends wn{constructor(n,t,r,o){super(n,t),this.urlAfterRedirects=r,this.state=o,this.type=ee.ResolveEnd}toString(){return`ResolveEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class w3{constructor(n){this.route=n,this.type=ee.RouteConfigLoadStart}toString(){return`RouteConfigLoadStart(path: ${this.route.path})`}}class b3{constructor(n){this.route=n,this.type=ee.RouteConfigLoadEnd}toString(){return`RouteConfigLoadEnd(path: ${this.route.path})`}}class E3{constructor(n){this.snapshot=n,this.type=ee.ChildActivationStart}toString(){return`ChildActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class I3{constructor(n){this.snapshot=n,this.type=ee.ChildActivationEnd}toString(){return`ChildActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class M3{constructor(n){this.snapshot=n,this.type=ee.ActivationStart}toString(){return`ActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class S3{constructor(n){this.snapshot=n,this.type=ee.ActivationEnd}toString(){return`ActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class AE{constructor(n,t,r){this.routerEvent=n,this.position=t,this.anchor=r,this.type=ee.Scroll}toString(){return`Scroll(anchor: '${this.anchor}', position: '${this.position?`${this.position[0]}, ${this.position[1]}`:null}')`}}class mp{}class vp{constructor(n){this.url=n}}class T3{constructor(){this.outlet=null,this.route=null,this.injector=null,this.children=new Xs,this.attachRef=null}}let Xs=(()=>{class e{constructor(){this.contexts=new Map}onChildOutletCreated(t,r){const o=this.getOrCreateContext(t);o.outlet=r,this.contexts.set(t,o)}onChildOutletDestroyed(t){const r=this.getContext(t);r&&(r.outlet=null,r.attachRef=null)}onOutletDeactivated(){const t=this.contexts;return this.contexts=new Map,t}onOutletReAttached(t){this.contexts=t}getOrCreateContext(t){let r=this.getContext(t);return r||(r=new T3,this.contexts.set(t,r)),r}getContext(t){return this.contexts.get(t)||null}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=R({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();class NE{constructor(n){this._root=n}get root(){return this._root.value}parent(n){const t=this.pathFromRoot(n);return t.length>1?t[t.length-2]:null}children(n){const t=yp(n,this._root);return t?t.children.map(r=>r.value):[]}firstChild(n){const t=yp(n,this._root);return t&&t.children.length>0?t.children[0].value:null}siblings(n){const t=_p(n,this._root);return t.length<2?[]:t[t.length-2].children.map(o=>o.value).filter(o=>o!==n)}pathFromRoot(n){return _p(n,this._root).map(t=>t.value)}}function yp(e,n){if(e===n.value)return n;for(const t of n.children){const r=yp(e,t);if(r)return r}return null}function _p(e,n){if(e===n.value)return[n];for(const t of n.children){const r=_p(e,t);if(r.length)return r.unshift(n),r}return[]}class sn{constructor(n,t){this.value=n,this.children=t}toString(){return`TreeNode(${this.value})`}}function fi(e){const n={};return e&&e.children.forEach(t=>n[t.value.outlet]=t),n}class xE extends NE{constructor(n,t){super(n),this.snapshot=t,wp(this,n)}toString(){return this.snapshot.toString()}}function RE(e){const n=function A3(e){const i=new Dp([],{},{},"",{},Y,e,null,{});return new OE("",new sn(i,[]))}(e),t=new Ft([new qs("",{})]),r=new Ft({}),o=new Ft({}),i=new Ft({}),s=new Ft(""),a=new Gr(t,r,i,s,o,Y,e,n.root);return a.snapshot=n.root,new xE(new sn(a,[]),n)}class Gr{constructor(n,t,r,o,i,s,a,l){this.urlSubject=n,this.paramsSubject=t,this.queryParamsSubject=r,this.fragmentSubject=o,this.dataSubject=i,this.outlet=s,this.component=a,this._futureSnapshot=l,this.title=this.dataSubject?.pipe(J(c=>c[zs]))??B(void 0),this.url=n,this.params=t,this.queryParams=r,this.fragment=o,this.data=i}get routeConfig(){return this._futureSnapshot.routeConfig}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap??=this.params.pipe(J(n=>si(n))),this._paramMap}get queryParamMap(){return this._queryParamMap??=this.queryParams.pipe(J(n=>si(n))),this._queryParamMap}toString(){return this.snapshot?this.snapshot.toString():`Future(${this._futureSnapshot})`}}function Cp(e,n,t="emptyOnly"){let r;const{routeConfig:o}=e;return r=null===n||"always"!==t&&""!==o?.path&&(n.component||n.routeConfig?.loadComponent)?{params:{...e.params},data:{...e.data},resolve:{...e.data,...e._resolvedData??{}}}:{params:{...n.params,...e.params},data:{...n.data,...e.data},resolve:{...e.data,...n.data,...o?.data,...e._resolvedData}},o&&PE(o)&&(r.resolve[zs]=o.title),r}class Dp{get title(){return this.data?.[zs]}constructor(n,t,r,o,i,s,a,l,c){this.url=n,this.params=t,this.queryParams=r,this.fragment=o,this.data=i,this.outlet=s,this.component=a,this.routeConfig=l,this._resolve=c}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap??=si(this.params),this._paramMap}get queryParamMap(){return this._queryParamMap??=si(this.queryParams),this._queryParamMap}toString(){return`Route(url:'${this.url.map(r=>r.toString()).join("/")}', path:'${this.routeConfig?this.routeConfig.path:""}')`}}class OE extends NE{constructor(n,t){super(t),this.url=n,wp(this,t)}toString(){return kE(this._root)}}function wp(e,n){n.value._routerState=e,n.children.forEach(t=>wp(e,t))}function kE(e){const n=e.children.length>0?` { ${e.children.map(kE).join(", ")} } `:"";return`${e.value}${n}`}function bp(e){if(e.snapshot){const n=e.snapshot,t=e._futureSnapshot;e.snapshot=t,Dn(n.queryParams,t.queryParams)||e.queryParamsSubject.next(t.queryParams),n.fragment!==t.fragment&&e.fragmentSubject.next(t.fragment),Dn(n.params,t.params)||e.paramsSubject.next(t.params),function qV(e,n){if(e.length!==n.length)return!1;for(let t=0;tDn(t.parameters,n[r].parameters))}(e.url,n.url);return t&&!(!e.parent!=!n.parent)&&(!e.parent||Ep(e.parent,n.parent))}function PE(e){return"string"==typeof e.title||null===e.title}let Ip=(()=>{class e{constructor(){this.activated=null,this._activatedRoute=null,this.name=Y,this.activateEvents=new Ne,this.deactivateEvents=new Ne,this.attachEvents=new Ne,this.detachEvents=new Ne,this.parentContexts=T(Xs),this.location=T(Xt),this.changeDetector=T(us),this.environmentInjector=T(Nt),this.inputBinder=T(Oc,{optional:!0}),this.supportsBindingToComponentInputs=!0}get activatedComponentRef(){return this.activated}ngOnChanges(t){if(t.name){const{firstChange:r,previousValue:o}=t.name;if(r)return;this.isTrackedInParentContexts(o)&&(this.deactivate(),this.parentContexts.onChildOutletDestroyed(o)),this.initializeOutletWithName()}}ngOnDestroy(){this.isTrackedInParentContexts(this.name)&&this.parentContexts.onChildOutletDestroyed(this.name),this.inputBinder?.unsubscribeFromRouteData(this)}isTrackedInParentContexts(t){return this.parentContexts.getContext(t)?.outlet===this}ngOnInit(){this.initializeOutletWithName()}initializeOutletWithName(){if(this.parentContexts.onChildOutletCreated(this.name,this),this.activated)return;const t=this.parentContexts.getContext(this.name);t?.route&&(t.attachRef?this.attach(t.attachRef,t.route):this.activateWith(t.route,t.injector))}get isActivated(){return!!this.activated}get component(){if(!this.activated)throw new M(4012,!1);return this.activated.instance}get activatedRoute(){if(!this.activated)throw new M(4012,!1);return this._activatedRoute}get activatedRouteData(){return this._activatedRoute?this._activatedRoute.snapshot.data:{}}detach(){if(!this.activated)throw new M(4012,!1);this.location.detach();const t=this.activated;return this.activated=null,this._activatedRoute=null,this.detachEvents.emit(t.instance),t}attach(t,r){this.activated=t,this._activatedRoute=r,this.location.insert(t.hostView),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.attachEvents.emit(t.instance)}deactivate(){if(this.activated){const t=this.component;this.activated.destroy(),this.activated=null,this._activatedRoute=null,this.deactivateEvents.emit(t)}}activateWith(t,r){if(this.isActivated)throw new M(4013,!1);this._activatedRoute=t;const o=this.location,s=t.snapshot.component,a=this.parentContexts.getOrCreateContext(this.name).children,l=new N3(t,a,o.injector);this.activated=o.createComponent(s,{index:o.length,injector:l,environmentInjector:r??this.environmentInjector}),this.changeDetector.markForCheck(),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.activateEvents.emit(this.activated.instance)}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275dir=$({type:e,selectors:[["router-outlet"]],inputs:{name:"name"},outputs:{activateEvents:"activate",deactivateEvents:"deactivate",attachEvents:"attach",detachEvents:"detach"},exportAs:["outlet"],standalone:!0,features:[Lt]})}return e})();class N3{constructor(n,t,r){this.route=n,this.childContexts=t,this.parent=r}get(n,t){return n===Gr?this.route:n===Xs?this.childContexts:this.parent.get(n,t)}}const Oc=new N("");let FE=(()=>{class e{constructor(){this.outletDataSubscriptions=new Map}bindActivatedRouteToOutletComponent(t){this.unsubscribeFromRouteData(t),this.subscribeToRouteData(t)}unsubscribeFromRouteData(t){this.outletDataSubscriptions.get(t)?.unsubscribe(),this.outletDataSubscriptions.delete(t)}subscribeToRouteData(t){const{activatedRoute:r}=t,o=Kh([r.queryParams,r.params,r.data]).pipe(rn(([i,s,a],l)=>(a={...i,...s,...a},0===l?B(a):Promise.resolve(a)))).subscribe(i=>{if(!t.isActivated||!t.activatedComponentRef||t.activatedRoute!==r||null===r.component)return void this.unsubscribeFromRouteData(t);const s=function _F(e){const n=Q(e);if(!n)return null;const t=new fs(n);return{get selector(){return t.selector},get type(){return t.componentType},get inputs(){return t.inputs},get outputs(){return t.outputs},get ngContentSelectors(){return t.ngContentSelectors},get isStandalone(){return n.standalone},get isSignal(){return n.signals}}}(r.component);if(s)for(const{templateName:a}of s.inputs)t.activatedComponentRef.setInput(a,i[a]);else this.unsubscribeFromRouteData(t)});this.outletDataSubscriptions.set(t,o)}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=R({token:e,factory:e.\u0275fac})}return e})();function Js(e,n,t){if(t&&e.shouldReuseRoute(n.value,t.value.snapshot)){const r=t.value;r._futureSnapshot=n.value;const o=function R3(e,n,t){return n.children.map(r=>{for(const o of t.children)if(e.shouldReuseRoute(r.value,o.value.snapshot))return Js(e,r,o);return Js(e,r)})}(e,n,t);return new sn(r,o)}{if(e.shouldAttach(n.value)){const i=e.retrieve(n.value);if(null!==i){const s=i.route;return s.value._futureSnapshot=n.value,s.children=n.children.map(a=>Js(e,a)),s}}const r=function O3(e){return new Gr(new Ft(e.url),new Ft(e.params),new Ft(e.queryParams),new Ft(e.fragment),new Ft(e.data),e.outlet,e.component,e)}(n.value),o=n.children.map(i=>Js(e,i));return new sn(r,o)}}const LE="ngNavigationCancelingError";function VE(e,n){const{redirectTo:t,navigationBehaviorOptions:r}=ci(n)?{redirectTo:n,navigationBehaviorOptions:void 0}:n,o=jE(!1,$t.Redirect);return o.url=t,o.navigationBehaviorOptions=r,o}function jE(e,n){const t=new Error(`NavigationCancelingError: ${e||""}`);return t[LE]=!0,t.cancellationCode=n,t}function UE(e){return!!e&&e[LE]}let BE=(()=>{class e{static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275cmp=St({type:e,selectors:[["ng-component"]],standalone:!0,features:[kt],decls:1,vars:0,template:function(r,o){1&r&&y(0,"router-outlet")},dependencies:[Ip],encapsulation:2})}return e})();function Mp(e){const n=e.children&&e.children.map(Mp),t=n?{...e,children:n}:{...e};return!t.component&&!t.loadComponent&&(n||t.loadChildren)&&t.outlet&&t.outlet!==Y&&(t.component=BE),t}function En(e){return e.outlet||Y}function Ks(e){if(!e)return null;if(e.routeConfig?._injector)return e.routeConfig._injector;for(let n=e.parent;n;n=n.parent){const t=n.routeConfig;if(t?._loadedInjector)return t._loadedInjector;if(t?._injector)return t._injector}return null}class B3{constructor(n,t,r,o,i){this.routeReuseStrategy=n,this.futureState=t,this.currState=r,this.forwardEvent=o,this.inputBindingEnabled=i}activate(n){const t=this.futureState._root,r=this.currState?this.currState._root:null;this.deactivateChildRoutes(t,r,n),bp(this.futureState.root),this.activateChildRoutes(t,r,n)}deactivateChildRoutes(n,t,r){const o=fi(t);n.children.forEach(i=>{const s=i.value.outlet;this.deactivateRoutes(i,o[s],r),delete o[s]}),Object.values(o).forEach(i=>{this.deactivateRouteAndItsChildren(i,r)})}deactivateRoutes(n,t,r){const o=n.value,i=t?t.value:null;if(o===i)if(o.component){const s=r.getContext(o.outlet);s&&this.deactivateChildRoutes(n,t,s.children)}else this.deactivateChildRoutes(n,t,r);else i&&this.deactivateRouteAndItsChildren(t,r)}deactivateRouteAndItsChildren(n,t){n.value.component&&this.routeReuseStrategy.shouldDetach(n.value.snapshot)?this.detachAndStoreRouteSubtree(n,t):this.deactivateRouteAndOutlet(n,t)}detachAndStoreRouteSubtree(n,t){const r=t.getContext(n.value.outlet),o=r&&n.value.component?r.children:t,i=fi(n);for(const s of Object.values(i))this.deactivateRouteAndItsChildren(s,o);if(r&&r.outlet){const s=r.outlet.detach(),a=r.children.onOutletDeactivated();this.routeReuseStrategy.store(n.value.snapshot,{componentRef:s,route:n,contexts:a})}}deactivateRouteAndOutlet(n,t){const r=t.getContext(n.value.outlet),o=r&&n.value.component?r.children:t,i=fi(n);for(const s of Object.values(i))this.deactivateRouteAndItsChildren(s,o);r&&(r.outlet&&(r.outlet.deactivate(),r.children.onOutletDeactivated()),r.attachRef=null,r.route=null)}activateChildRoutes(n,t,r){const o=fi(t);n.children.forEach(i=>{this.activateRoutes(i,o[i.value.outlet],r),this.forwardEvent(new S3(i.value.snapshot))}),n.children.length&&this.forwardEvent(new I3(n.value.snapshot))}activateRoutes(n,t,r){const o=n.value,i=t?t.value:null;if(bp(o),o===i)if(o.component){const s=r.getOrCreateContext(o.outlet);this.activateChildRoutes(n,t,s.children)}else this.activateChildRoutes(n,t,r);else if(o.component){const s=r.getOrCreateContext(o.outlet);if(this.routeReuseStrategy.shouldAttach(o.snapshot)){const a=this.routeReuseStrategy.retrieve(o.snapshot);this.routeReuseStrategy.store(o.snapshot,null),s.children.onOutletReAttached(a.contexts),s.attachRef=a.componentRef,s.route=a.route.value,s.outlet&&s.outlet.attach(a.componentRef,a.route.value),bp(a.route.value),this.activateChildRoutes(n,null,s.children)}else{const a=Ks(o.snapshot);s.attachRef=null,s.route=o,s.injector=a,s.outlet&&s.outlet.activateWith(o,s.injector),this.activateChildRoutes(n,null,s.children)}}else this.activateChildRoutes(n,null,r)}}class $E{constructor(n){this.path=n,this.route=this.path[this.path.length-1]}}class kc{constructor(n,t){this.component=n,this.route=t}}function $3(e,n,t){const r=e._root;return ea(r,n?n._root:null,t,[r.value])}function hi(e,n){const t=Symbol(),r=n.get(e,t);return r===t?"function"!=typeof e||function C0(e){return null!==_a(e)}(e)?n.get(e):e:r}function ea(e,n,t,r,o={canDeactivateChecks:[],canActivateChecks:[]}){const i=fi(n);return e.children.forEach(s=>{(function G3(e,n,t,r,o={canDeactivateChecks:[],canActivateChecks:[]}){const i=e.value,s=n?n.value:null,a=t?t.getContext(e.value.outlet):null;if(s&&i.routeConfig===s.routeConfig){const l=function z3(e,n,t){if("function"==typeof t)return t(e,n);switch(t){case"pathParamsChange":return!Hr(e.url,n.url);case"pathParamsOrQueryParamsChange":return!Hr(e.url,n.url)||!Dn(e.queryParams,n.queryParams);case"always":return!0;case"paramsOrQueryParamsChange":return!Ep(e,n)||!Dn(e.queryParams,n.queryParams);default:return!Ep(e,n)}}(s,i,i.routeConfig.runGuardsAndResolvers);l?o.canActivateChecks.push(new $E(r)):(i.data=s.data,i._resolvedData=s._resolvedData),ea(e,n,i.component?a?a.children:null:t,r,o),l&&a&&a.outlet&&a.outlet.isActivated&&o.canDeactivateChecks.push(new kc(a.outlet.component,s))}else s&&ta(n,a,o),o.canActivateChecks.push(new $E(r)),ea(e,null,i.component?a?a.children:null:t,r,o)})(s,i[s.value.outlet],t,r.concat([s.value]),o),delete i[s.value.outlet]}),Object.entries(i).forEach(([s,a])=>ta(a,t.getContext(s),o)),o}function ta(e,n,t){const r=fi(e),o=e.value;Object.entries(r).forEach(([i,s])=>{ta(s,o.component?n?n.children.getContext(i):null:n,t)}),t.canDeactivateChecks.push(new kc(o.component&&n&&n.outlet&&n.outlet.isActivated?n.outlet.component:null,o))}function na(e){return"function"==typeof e}function HE(e){return e instanceof Dc||"EmptyError"===e?.name}const Pc=Symbol("INITIAL_VALUE");function pi(){return rn(e=>Kh(e.map(n=>n.pipe(ri(1),function cV(...e){const n=Cc(e);return Xe((t,r)=>{(n?ep(e,t,n):ep(e,t)).subscribe(r)})}(Pc)))).pipe(J(n=>{for(const t of n)if(!0!==t){if(t===Pc)return Pc;if(!1===t||t instanceof ai)return t}return!0}),on(n=>n!==Pc),ri(1)))}function GE(e){return function s0(...e){return Ig(e)}(st(n=>{if(ci(n))throw VE(0,n)}),J(n=>!0===n))}class Sp{constructor(n){this.segmentGroup=n||null}}class Tp extends Error{constructor(n){super(),this.urlTree=n}}function gi(e){return wc(new Sp(e))}class uj{constructor(n,t){this.urlSerializer=n,this.urlTree=t}lineralizeSegments(n,t){let r=[],o=t.root;for(;;){if(r=r.concat(o.segments),0===o.numberOfChildren)return B(r);if(o.numberOfChildren>1||!o.children[Y])return wc(new M(4e3,!1));o=o.children[Y]}}applyRedirectCommands(n,t,r){const o=this.applyRedirectCreateUrlTree(t,this.urlSerializer.parse(t),n,r);if(t.startsWith("/"))throw new Tp(o);return o}applyRedirectCreateUrlTree(n,t,r,o){const i=this.createSegmentGroup(n,t.root,r,o);return new ai(i,this.createQueryParams(t.queryParams,this.urlTree.queryParams),t.fragment)}createQueryParams(n,t){const r={};return Object.entries(n).forEach(([o,i])=>{if("string"==typeof i&&i.startsWith(":")){const a=i.substring(1);r[o]=t[a]}else r[o]=i}),r}createSegmentGroup(n,t,r,o){const i=this.createSegments(n,t.segments,r,o);let s={};return Object.entries(t.children).forEach(([a,l])=>{s[a]=this.createSegmentGroup(n,l,r,o)}),new pe(i,s)}createSegments(n,t,r,o){return t.map(i=>i.path.startsWith(":")?this.findPosParam(n,i,o):this.findOrReturn(i,r))}findPosParam(n,t,r){const o=r[t.path.substring(1)];if(!o)throw new M(4001,!1);return o}findOrReturn(n,t){let r=0;for(const o of t){if(o.path===n.path)return t.splice(r),o;r++}return n}}const Ap={matched:!1,consumedSegments:[],remainingSegments:[],parameters:{},positionalParamSegments:{}};function dj(e,n,t,r,o){const i=Np(e,n,t);return i.matched?(r=function P3(e,n){return e.providers&&!e._injector&&(e._injector=ah(e.providers,n,`Route: ${e.path}`)),e._injector??n}(n,r),function aj(e,n,t,r){const o=n.canMatch;return o&&0!==o.length?B(o.map(s=>{const a=hi(s,e);return fr(function X3(e){return e&&na(e.canMatch)}(a)?a.canMatch(n,t):Kn(e,()=>a(n,t)))})).pipe(pi(),GE()):B(!0)}(r,n,t).pipe(J(s=>!0===s?i:{...Ap}))):B(i)}function Np(e,n,t){if("**"===n.path)return function fj(e){return{matched:!0,parameters:e.length>0?uE(e).parameters:{},consumedSegments:e,remainingSegments:[],positionalParamSegments:{}}}(t);if(""===n.path)return"full"===n.pathMatch&&(e.hasChildren()||t.length>0)?{...Ap}:{matched:!0,consumedSegments:[],remainingSegments:t,parameters:{},positionalParamSegments:{}};const o=(n.matcher||zV)(t,e,n);if(!o)return{...Ap};const i={};Object.entries(o.posParams??{}).forEach(([a,l])=>{i[a]=l.path});const s=o.consumed.length>0?{...i,...o.consumed[o.consumed.length-1].parameters}:i;return{matched:!0,consumedSegments:o.consumed,remainingSegments:t.slice(o.consumed.length),parameters:s,positionalParamSegments:o.posParams??{}}}function zE(e,n,t,r){return t.length>0&&function gj(e,n,t){return t.some(r=>Fc(e,n,r)&&En(r)!==Y)}(e,t,r)?{segmentGroup:new pe(n,pj(r,new pe(t,e.children))),slicedSegments:[]}:0===t.length&&function mj(e,n,t){return t.some(r=>Fc(e,n,r))}(e,t,r)?{segmentGroup:new pe(e.segments,hj(e,t,r,e.children)),slicedSegments:t}:{segmentGroup:new pe(e.segments,e.children),slicedSegments:t}}function hj(e,n,t,r){const o={};for(const i of t)if(Fc(e,n,i)&&!r[En(i)]){const s=new pe([],{});o[En(i)]=s}return{...r,...o}}function pj(e,n){const t={};t[Y]=n;for(const r of e)if(""===r.path&&En(r)!==Y){const o=new pe([],{});t[En(r)]=o}return t}function Fc(e,n,t){return(!(e.hasChildren()||n.length>0)||"full"!==t.pathMatch)&&""===t.path}class _j{}class wj{constructor(n,t,r,o,i,s,a){this.injector=n,this.configLoader=t,this.rootComponentType=r,this.config=o,this.urlTree=i,this.paramsInheritanceStrategy=s,this.urlSerializer=a,this.applyRedirects=new uj(this.urlSerializer,this.urlTree),this.absoluteRedirectCount=0,this.allowRedirects=!0}noMatchError(n){return new M(4002,`'${n.segmentGroup}'`)}recognize(){const n=zE(this.urlTree.root,[],[],this.config).segmentGroup;return this.match(n).pipe(J(t=>{const r=new Dp([],Object.freeze({}),Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,{},Y,this.rootComponentType,null,{}),o=new sn(r,t),i=new OE("",o),s=function d3(e,n,t=null,r=null){return wE(DE(e),n,t,r)}(r,[],this.urlTree.queryParams,this.urlTree.fragment);return s.queryParams=this.urlTree.queryParams,i.url=this.urlSerializer.serialize(s),this.inheritParamsAndData(i._root,null),{state:i,tree:s}}))}match(n){return this.processSegmentGroup(this.injector,this.config,n,Y).pipe(ii(r=>{if(r instanceof Tp)return this.urlTree=r.urlTree,this.match(r.urlTree.root);throw r instanceof Sp?this.noMatchError(r):r}))}inheritParamsAndData(n,t){const r=n.value,o=Cp(r,t,this.paramsInheritanceStrategy);r.params=Object.freeze(o.params),r.data=Object.freeze(o.data),n.children.forEach(i=>this.inheritParamsAndData(i,r))}processSegmentGroup(n,t,r,o){return 0===r.segments.length&&r.hasChildren()?this.processChildren(n,t,r):this.processSegment(n,t,r,r.segments,o,!0).pipe(J(i=>i instanceof sn?[i]:[]))}processChildren(n,t,r){const o=[];for(const i of Object.keys(r.children))"primary"===i?o.unshift(i):o.push(i);return Ye(o).pipe(oi(i=>{const s=r.children[i],a=function j3(e,n){const t=e.filter(r=>En(r)===n);return t.push(...e.filter(r=>En(r)!==n)),t}(t,i);return this.processSegmentGroup(n,a,s,i)}),function fV(e,n){return Xe(function dV(e,n,t,r,o){return(i,s)=>{let a=t,l=n,c=0;i.subscribe($e(s,u=>{const d=c++;l=a?e(l,u,d):(a=!0,u),r&&s.next(l)},o&&(()=>{a&&s.next(l),s.complete()})))}}(e,n,arguments.length>=2,!0))}((i,s)=>(i.push(...s),i)),bc(null),function hV(e,n){const t=arguments.length>=2;return r=>r.pipe(e?on((o,i)=>e(o,i,r)):wr,np(1),t?bc(n):Wb(()=>new Dc))}(),Ke(i=>{if(null===i)return gi(r);const s=qE(i);return function bj(e){e.sort((n,t)=>n.value.outlet===Y?-1:t.value.outlet===Y?1:n.value.outlet.localeCompare(t.value.outlet))}(s),B(s)}))}processSegment(n,t,r,o,i,s){return Ye(t).pipe(oi(a=>this.processSegmentAgainstRoute(a._injector??n,t,a,r,o,i,s).pipe(ii(l=>{if(l instanceof Sp)return B(null);throw l}))),$r(a=>!!a),ii(a=>{if(HE(a))return function yj(e,n,t){return 0===n.length&&!e.children[t]}(r,o,i)?B(new _j):gi(r);throw a}))}processSegmentAgainstRoute(n,t,r,o,i,s,a){return function vj(e,n,t,r){return!!(En(e)===r||r!==Y&&Fc(n,t,e))&&Np(n,e,t).matched}(r,o,i,s)?void 0===r.redirectTo?this.matchSegmentAgainstRoute(n,o,r,i,s):this.allowRedirects&&a?this.expandSegmentAgainstRouteUsingRedirect(n,o,t,r,i,s):gi(o):gi(o)}expandSegmentAgainstRouteUsingRedirect(n,t,r,o,i,s){const{matched:a,consumedSegments:l,positionalParamSegments:c,remainingSegments:u}=Np(t,o,i);if(!a)return gi(t);o.redirectTo.startsWith("/")&&(this.absoluteRedirectCount++,this.absoluteRedirectCount>31&&(this.allowRedirects=!1));const d=this.applyRedirects.applyRedirectCommands(l,o.redirectTo,c);return this.applyRedirects.lineralizeSegments(o,d).pipe(Ke(g=>this.processSegment(n,r,t,g.concat(u),s,!1)))}matchSegmentAgainstRoute(n,t,r,o,i){const s=dj(t,r,o,n);return"**"===r.path&&(t.children={}),s.pipe(rn(a=>a.matched?this.getChildConfig(n=r._injector??n,r,o).pipe(rn(({routes:l})=>{const c=r._loadedInjector??n,{consumedSegments:u,remainingSegments:d,parameters:g}=a,m=new Dp(u,g,Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,function Ij(e){return e.data||{}}(r),En(r),r.component??r._loadedComponent??null,r,function Mj(e){return e.resolve||{}}(r)),{segmentGroup:v,slicedSegments:_}=zE(t,u,d,l);if(0===_.length&&v.hasChildren())return this.processChildren(c,l,v).pipe(J(I=>null===I?null:new sn(m,I)));if(0===l.length&&0===_.length)return B(new sn(m,[]));const D=En(r)===i;return this.processSegment(c,l,v,_,D?Y:i,!0).pipe(J(I=>new sn(m,I instanceof sn?[I]:[])))})):gi(t)))}getChildConfig(n,t,r){return t.children?B({routes:t.children,injector:n}):t.loadChildren?void 0!==t._loadedRoutes?B({routes:t._loadedRoutes,injector:t._loadedInjector}):function sj(e,n,t,r){const o=n.canLoad;return void 0===o||0===o.length?B(!0):B(o.map(s=>{const a=hi(s,e);return fr(function W3(e){return e&&na(e.canLoad)}(a)?a.canLoad(n,t):Kn(e,()=>a(n,t)))})).pipe(pi(),GE())}(n,t,r).pipe(Ke(o=>o?this.configLoader.loadChildren(n,t).pipe(st(i=>{t._loadedRoutes=i.routes,t._loadedInjector=i.injector})):function cj(e){return wc(jE(!1,$t.GuardRejected))}())):B({routes:[],injector:n})}}function Ej(e){const n=e.value.routeConfig;return n&&""===n.path}function qE(e){const n=[],t=new Set;for(const r of e){if(!Ej(r)){n.push(r);continue}const o=n.find(i=>r.value.routeConfig===i.value.routeConfig);void 0!==o?(o.children.push(...r.children),t.add(o)):n.push(r)}for(const r of t){const o=qE(r.children);n.push(new sn(r.value,o))}return n.filter(r=>!t.has(r))}function WE(e){const n=e.children.map(t=>WE(t)).flat();return[e,...n]}function xp(e){return rn(n=>{const t=e(n);return t?Ye(t).pipe(J(()=>n)):B(n)})}let ZE=(()=>{class e{buildTitle(t){let r,o=t.root;for(;void 0!==o;)r=this.getResolvedTitleForRoute(o)??r,o=o.children.find(i=>i.outlet===Y);return r}getResolvedTitleForRoute(t){return t.data[zs]}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=R({token:e,factory:()=>T(Rj),providedIn:"root"})}return e})(),Rj=(()=>{class e extends ZE{constructor(t){super(),this.title=t}updateTitle(t){const r=this.buildTitle(t);void 0!==r&&this.title.setTitle(r)}static#e=this.\u0275fac=function(r){return new(r||e)(P(UV))};static#t=this.\u0275prov=R({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();const mi=new N("",{providedIn:"root",factory:()=>({})}),vi=new N("");let Rp=(()=>{class e{constructor(){this.componentLoaders=new WeakMap,this.childrenLoaders=new WeakMap,this.compiler=T(fw)}loadComponent(t){if(this.componentLoaders.get(t))return this.componentLoaders.get(t);if(t._loadedComponent)return B(t._loadedComponent);this.onLoadStartListener&&this.onLoadStartListener(t);const r=fr(t.loadComponent()).pipe(J(YE),st(i=>{this.onLoadEndListener&&this.onLoadEndListener(t),t._loadedComponent=i}),$s(()=>{this.componentLoaders.delete(t)})),o=new qb(r,()=>new an).pipe(tp());return this.componentLoaders.set(t,o),o}loadChildren(t,r){if(this.childrenLoaders.get(r))return this.childrenLoaders.get(r);if(r._loadedRoutes)return B({routes:r._loadedRoutes,injector:r._loadedInjector});this.onLoadStartListener&&this.onLoadStartListener(r);const i=function Oj(e,n,t,r){return fr(e.loadChildren()).pipe(J(YE),Ke(o=>o instanceof kD||Array.isArray(o)?B(o):Ye(n.compileModuleAsync(o))),J(o=>{r&&r(e);let i,s,a=!1;return Array.isArray(o)?(s=o,!0):(i=o.create(t).injector,s=i.get(vi,[],{optional:!0,self:!0}).flat()),{routes:s.map(Mp),injector:i}}))}(r,this.compiler,t,this.onLoadEndListener).pipe($s(()=>{this.childrenLoaders.delete(r)})),s=new qb(i,()=>new an).pipe(tp());return this.childrenLoaders.set(r,s),s}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=R({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();function YE(e){return function kj(e){return e&&"object"==typeof e&&"default"in e}(e)?e.default:e}let Op=(()=>{class e{static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=R({token:e,factory:()=>T(Pj),providedIn:"root"})}return e})(),Pj=(()=>{class e{shouldProcessUrl(t){return!0}extract(t){return t}merge(t,r){return t}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=R({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();const QE=new N(""),XE=new N("");function Fj(e,n,t){const r=e.get(XE),o=e.get(It);return e.get(se).runOutsideAngular(()=>{if(!o.startViewTransition||r.skipNextTransition)return r.skipNextTransition=!1,Promise.resolve();let i;const s=new Promise(c=>{i=c}),a=o.startViewTransition(()=>(i(),function Lj(e){return new Promise(n=>{Qy(n,{injector:e})})}(e))),{onViewTransitionCreated:l}=r;return l&&Kn(e,()=>l({transition:a,from:n,to:t})),s})}let Lc=(()=>{class e{get hasRequestedNavigation(){return 0!==this.navigationId}constructor(){this.currentNavigation=null,this.currentTransition=null,this.lastSuccessfulNavigation=null,this.events=new an,this.transitionAbortSubject=new an,this.configLoader=T(Rp),this.environmentInjector=T(Nt),this.urlSerializer=T(li),this.rootContexts=T(Xs),this.location=T(Vs),this.inputBindingEnabled=null!==T(Oc,{optional:!0}),this.titleStrategy=T(ZE),this.options=T(mi,{optional:!0})||{},this.paramsInheritanceStrategy=this.options.paramsInheritanceStrategy||"emptyOnly",this.urlHandlingStrategy=T(Op),this.createViewTransition=T(QE,{optional:!0}),this.navigationId=0,this.afterPreactivation=()=>B(void 0),this.rootComponentType=null,this.configLoader.onLoadEndListener=o=>this.events.next(new b3(o)),this.configLoader.onLoadStartListener=o=>this.events.next(new w3(o))}complete(){this.transitions?.complete()}handleNavigationRequest(t){const r=++this.navigationId;this.transitions?.next({...this.transitions.value,...t,id:r})}setupNavigations(t,r,o){return this.transitions=new Ft({id:0,currentUrlTree:r,currentRawUrl:r,extractedUrl:this.urlHandlingStrategy.extract(r),urlAfterRedirects:this.urlHandlingStrategy.extract(r),rawUrl:r,extras:{},resolve:null,reject:null,promise:Promise.resolve(!0),source:Qs,restoredState:null,currentSnapshot:o.snapshot,targetSnapshot:null,currentRouterState:o,targetRouterState:null,guards:{canActivateChecks:[],canDeactivateChecks:[]},guardsResult:null}),this.transitions.pipe(on(i=>0!==i.id),J(i=>({...i,extractedUrl:this.urlHandlingStrategy.extract(i.rawUrl)})),rn(i=>{this.currentTransition=i;let s=!1,a=!1;return B(i).pipe(st(l=>{this.currentNavigation={id:l.id,initialUrl:l.rawUrl,extractedUrl:l.extractedUrl,trigger:l.source,extras:l.extras,previousNavigation:this.lastSuccessfulNavigation?{...this.lastSuccessfulNavigation,previousNavigation:null}:null}}),rn(l=>{const c=!t.navigated||this.isUpdatingInternalState()||this.isUpdatedBrowserUrl();if(!c&&"reload"!==(l.extras.onSameUrlNavigation??t.onSameUrlNavigation)){const d="";return this.events.next(new di(l.id,this.urlSerializer.serialize(l.rawUrl),d,xc.IgnoredSameUrlNavigation)),l.resolve(null),qn}if(this.urlHandlingStrategy.shouldProcessUrl(l.rawUrl))return B(l).pipe(rn(d=>{const g=this.transitions?.getValue();return this.events.next(new Nc(d.id,this.urlSerializer.serialize(d.extractedUrl),d.source,d.restoredState)),g!==this.transitions?.getValue()?qn:Promise.resolve(d)}),function Sj(e,n,t,r,o,i){return Ke(s=>function Cj(e,n,t,r,o,i,s="emptyOnly"){return new wj(e,n,t,r,o,s,i).recognize()}(e,n,t,r,s.extractedUrl,o,i).pipe(J(({state:a,tree:l})=>({...s,targetSnapshot:a,urlAfterRedirects:l}))))}(this.environmentInjector,this.configLoader,this.rootComponentType,t.config,this.urlSerializer,this.paramsInheritanceStrategy),st(d=>{i.targetSnapshot=d.targetSnapshot,i.urlAfterRedirects=d.urlAfterRedirects,this.currentNavigation={...this.currentNavigation,finalUrl:d.urlAfterRedirects};const g=new TE(d.id,this.urlSerializer.serialize(d.extractedUrl),this.urlSerializer.serialize(d.urlAfterRedirects),d.targetSnapshot);this.events.next(g)}));if(c&&this.urlHandlingStrategy.shouldProcessUrl(l.currentRawUrl)){const{id:d,extractedUrl:g,source:m,restoredState:v,extras:_}=l,D=new Nc(d,this.urlSerializer.serialize(g),m,v);this.events.next(D);const I=RE(this.rootComponentType).snapshot;return this.currentTransition=i={...l,targetSnapshot:I,urlAfterRedirects:g,extras:{..._,skipLocationChange:!1,replaceUrl:!1}},this.currentNavigation.finalUrl=g,B(i)}{const d="";return this.events.next(new di(l.id,this.urlSerializer.serialize(l.extractedUrl),d,xc.IgnoredByUrlHandlingStrategy)),l.resolve(null),qn}}),st(l=>{const c=new y3(l.id,this.urlSerializer.serialize(l.extractedUrl),this.urlSerializer.serialize(l.urlAfterRedirects),l.targetSnapshot);this.events.next(c)}),J(l=>(this.currentTransition=i={...l,guards:$3(l.targetSnapshot,l.currentSnapshot,this.rootContexts)},i)),function J3(e,n){return Ke(t=>{const{targetSnapshot:r,currentSnapshot:o,guards:{canActivateChecks:i,canDeactivateChecks:s}}=t;return 0===s.length&&0===i.length?B({...t,guardsResult:!0}):function K3(e,n,t,r){return Ye(e).pipe(Ke(o=>function ij(e,n,t,r,o){const i=n&&n.routeConfig?n.routeConfig.canDeactivate:null;return i&&0!==i.length?B(i.map(a=>{const l=Ks(n)??o,c=hi(a,l);return fr(function Q3(e){return e&&na(e.canDeactivate)}(c)?c.canDeactivate(e,n,t,r):Kn(l,()=>c(e,n,t,r))).pipe($r())})).pipe(pi()):B(!0)}(o.component,o.route,t,n,r)),$r(o=>!0!==o,!0))}(s,r,o,e).pipe(Ke(a=>a&&function q3(e){return"boolean"==typeof e}(a)?function ej(e,n,t,r){return Ye(n).pipe(oi(o=>ep(function nj(e,n){return null!==e&&n&&n(new E3(e)),B(!0)}(o.route.parent,r),function tj(e,n){return null!==e&&n&&n(new M3(e)),B(!0)}(o.route,r),function oj(e,n,t){const r=n[n.length-1],i=n.slice(0,n.length-1).reverse().map(s=>function H3(e){const n=e.routeConfig?e.routeConfig.canActivateChild:null;return n&&0!==n.length?{node:e,guards:n}:null}(s)).filter(s=>null!==s).map(s=>zb(()=>B(s.guards.map(l=>{const c=Ks(s.node)??t,u=hi(l,c);return fr(function Y3(e){return e&&na(e.canActivateChild)}(u)?u.canActivateChild(r,e):Kn(c,()=>u(r,e))).pipe($r())})).pipe(pi())));return B(i).pipe(pi())}(e,o.path,t),function rj(e,n,t){const r=n.routeConfig?n.routeConfig.canActivate:null;if(!r||0===r.length)return B(!0);const o=r.map(i=>zb(()=>{const s=Ks(n)??t,a=hi(i,s);return fr(function Z3(e){return e&&na(e.canActivate)}(a)?a.canActivate(n,e):Kn(s,()=>a(n,e))).pipe($r())}));return B(o).pipe(pi())}(e,o.route,t))),$r(o=>!0!==o,!0))}(r,i,e,n):B(a)),J(a=>({...t,guardsResult:a})))})}(this.environmentInjector,l=>this.events.next(l)),st(l=>{if(i.guardsResult=l.guardsResult,ci(l.guardsResult))throw VE(0,l.guardsResult);const c=new _3(l.id,this.urlSerializer.serialize(l.extractedUrl),this.urlSerializer.serialize(l.urlAfterRedirects),l.targetSnapshot,!!l.guardsResult);this.events.next(c)}),on(l=>!!l.guardsResult||(this.cancelNavigationTransition(l,"",$t.GuardRejected),!1)),xp(l=>{if(l.guards.canActivateChecks.length)return B(l).pipe(st(c=>{const u=new C3(c.id,this.urlSerializer.serialize(c.extractedUrl),this.urlSerializer.serialize(c.urlAfterRedirects),c.targetSnapshot);this.events.next(u)}),rn(c=>{let u=!1;return B(c).pipe(function Tj(e,n){return Ke(t=>{const{targetSnapshot:r,guards:{canActivateChecks:o}}=t;if(!o.length)return B(t);const i=new Set(o.map(l=>l.route)),s=new Set;for(const l of i)if(!s.has(l))for(const c of WE(l))s.add(c);let a=0;return Ye(s).pipe(oi(l=>i.has(l)?function Aj(e,n,t,r){const o=e.routeConfig,i=e._resolve;return void 0!==o?.title&&!PE(o)&&(i[zs]=o.title),function Nj(e,n,t,r){const o=up(e);if(0===o.length)return B({});const i={};return Ye(o).pipe(Ke(s=>function xj(e,n,t,r){const o=Ks(n)??r,i=hi(e,o);return fr(i.resolve?i.resolve(n,t):Kn(o,()=>i(n,t)))}(e[s],n,t,r).pipe($r(),st(a=>{i[s]=a}))),np(1),function pV(e){return J(()=>e)}(i),ii(s=>HE(s)?qn:wc(s)))}(i,e,n,r).pipe(J(s=>(e._resolvedData=s,e.data=Cp(e,e.parent,t).resolve,null)))}(l,r,e,n):(l.data=Cp(l,l.parent,e).resolve,B(void 0))),st(()=>a++),np(1),Ke(l=>a===s.size?B(t):qn))})}(this.paramsInheritanceStrategy,this.environmentInjector),st({next:()=>u=!0,complete:()=>{u||this.cancelNavigationTransition(c,"",$t.NoDataFromResolver)}}))}),st(c=>{const u=new D3(c.id,this.urlSerializer.serialize(c.extractedUrl),this.urlSerializer.serialize(c.urlAfterRedirects),c.targetSnapshot);this.events.next(u)}))}),xp(l=>{const c=u=>{const d=[];u.routeConfig?.loadComponent&&!u.routeConfig._loadedComponent&&d.push(this.configLoader.loadComponent(u.routeConfig).pipe(st(g=>{u.component=g}),J(()=>{})));for(const g of u.children)d.push(...c(g));return d};return Kh(c(l.targetSnapshot.root)).pipe(bc(null),ri(1))}),xp(()=>this.afterPreactivation()),rn(()=>{const{currentSnapshot:l,targetSnapshot:c}=i,u=this.createViewTransition?.(this.environmentInjector,l.root,c.root);return u?Ye(u).pipe(J(()=>i)):B(i)}),J(l=>{const c=function x3(e,n,t){const r=Js(e,n._root,t?t._root:void 0);return new xE(r,n)}(t.routeReuseStrategy,l.targetSnapshot,l.currentRouterState);return this.currentTransition=i={...l,targetRouterState:c},this.currentNavigation.targetRouterState=c,i}),st(()=>{this.events.next(new mp)}),((e,n,t,r)=>J(o=>(new B3(n,o.targetRouterState,o.currentRouterState,t,r).activate(e),o)))(this.rootContexts,t.routeReuseStrategy,l=>this.events.next(l),this.inputBindingEnabled),ri(1),st({next:l=>{s=!0,this.lastSuccessfulNavigation=this.currentNavigation,this.events.next(new bn(l.id,this.urlSerializer.serialize(l.extractedUrl),this.urlSerializer.serialize(l.urlAfterRedirects))),this.titleStrategy?.updateTitle(l.targetRouterState.snapshot),l.resolve(!0)},complete:()=>{s=!0}}),function gV(e){return Xe((n,t)=>{Cn(e).subscribe($e(t,()=>t.complete(),pu)),!t.closed&&n.subscribe(t)})}(this.transitionAbortSubject.pipe(st(l=>{throw l}))),$s(()=>{!s&&!a&&this.cancelNavigationTransition(i,"",$t.SupersededByNewNavigation),this.currentNavigation?.id===i.id&&(this.currentNavigation=null)}),ii(l=>{if(a=!0,UE(l))this.events.next(new ui(i.id,this.urlSerializer.serialize(i.extractedUrl),l.message,l.cancellationCode)),function k3(e){return UE(e)&&ci(e.url)}(l)?this.events.next(new vp(l.url)):i.resolve(!1);else{this.events.next(new Rc(i.id,this.urlSerializer.serialize(i.extractedUrl),l,i.targetSnapshot??void 0));try{i.resolve(t.errorHandler(l))}catch(c){this.options.resolveNavigationPromiseOnError?i.resolve(!1):i.reject(c)}}return qn}))}))}cancelNavigationTransition(t,r,o){const i=new ui(t.id,this.urlSerializer.serialize(t.extractedUrl),r,o);this.events.next(i),t.resolve(!1)}isUpdatingInternalState(){return this.currentTransition?.extractedUrl.toString()!==this.currentTransition?.currentUrlTree.toString()}isUpdatedBrowserUrl(){return this.urlHandlingStrategy.extract(this.urlSerializer.parse(this.location.path(!0))).toString()!==this.currentTransition?.extractedUrl.toString()&&!this.currentTransition?.extras.skipLocationChange}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=R({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();function Vj(e){return e!==Qs}let jj=(()=>{class e{static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=R({token:e,factory:()=>T(Bj),providedIn:"root"})}return e})();class Uj{shouldDetach(n){return!1}store(n,t){}shouldAttach(n){return!1}retrieve(n){return null}shouldReuseRoute(n,t){return n.routeConfig===t.routeConfig}}let Bj=(()=>{class e extends Uj{static#e=this.\u0275fac=(()=>{let t;return function(o){return(t||(t=Qe(e)))(o||e)}})();static#t=this.\u0275prov=R({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})(),JE=(()=>{class e{static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=R({token:e,factory:()=>T($j),providedIn:"root"})}return e})(),$j=(()=>{class e extends JE{constructor(){super(...arguments),this.location=T(Vs),this.urlSerializer=T(li),this.options=T(mi,{optional:!0})||{},this.canceledNavigationResolution=this.options.canceledNavigationResolution||"replace",this.urlHandlingStrategy=T(Op),this.urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred",this.currentUrlTree=new ai,this.rawUrlTree=this.currentUrlTree,this.currentPageId=0,this.lastSuccessfulId=-1,this.routerState=RE(null),this.stateMemento=this.createStateMemento()}getCurrentUrlTree(){return this.currentUrlTree}getRawUrlTree(){return this.rawUrlTree}restoredState(){return this.location.getState()}get browserPageId(){return"computed"!==this.canceledNavigationResolution?this.currentPageId:this.restoredState()?.\u0275routerPageId??this.currentPageId}getRouterState(){return this.routerState}createStateMemento(){return{rawUrlTree:this.rawUrlTree,currentUrlTree:this.currentUrlTree,routerState:this.routerState}}registerNonRouterCurrentEntryChangeListener(t){return this.location.subscribe(r=>{"popstate"===r.type&&t(r.url,r.state)})}handleRouterEvent(t,r){if(t instanceof Nc)this.stateMemento=this.createStateMemento();else if(t instanceof di)this.rawUrlTree=r.initialUrl;else if(t instanceof TE){if("eager"===this.urlUpdateStrategy&&!r.extras.skipLocationChange){const o=this.urlHandlingStrategy.merge(r.finalUrl,r.initialUrl);this.setBrowserUrl(o,r)}}else t instanceof mp?(this.currentUrlTree=r.finalUrl,this.rawUrlTree=this.urlHandlingStrategy.merge(r.finalUrl,r.initialUrl),this.routerState=r.targetRouterState,"deferred"===this.urlUpdateStrategy&&(r.extras.skipLocationChange||this.setBrowserUrl(this.rawUrlTree,r))):t instanceof ui&&(t.code===$t.GuardRejected||t.code===$t.NoDataFromResolver)?this.restoreHistory(r):t instanceof Rc?this.restoreHistory(r,!0):t instanceof bn&&(this.lastSuccessfulId=t.id,this.currentPageId=this.browserPageId)}setBrowserUrl(t,r){const o=this.urlSerializer.serialize(t);if(this.location.isCurrentPathEqualTo(o)||r.extras.replaceUrl){const s={...r.extras.state,...this.generateNgRouterState(r.id,this.browserPageId)};this.location.replaceState(o,"",s)}else{const i={...r.extras.state,...this.generateNgRouterState(r.id,this.browserPageId+1)};this.location.go(o,"",i)}}restoreHistory(t,r=!1){if("computed"===this.canceledNavigationResolution){const i=this.currentPageId-this.browserPageId;0!==i?this.location.historyGo(i):this.currentUrlTree===t.finalUrl&&0===i&&(this.resetState(t),this.resetUrlToCurrentUrlTree())}else"replace"===this.canceledNavigationResolution&&(r&&this.resetState(t),this.resetUrlToCurrentUrlTree())}resetState(t){this.routerState=this.stateMemento.routerState,this.currentUrlTree=this.stateMemento.currentUrlTree,this.rawUrlTree=this.urlHandlingStrategy.merge(this.currentUrlTree,t.finalUrl??this.rawUrlTree)}resetUrlToCurrentUrlTree(){this.location.replaceState(this.urlSerializer.serialize(this.rawUrlTree),"",this.generateNgRouterState(this.lastSuccessfulId,this.currentPageId))}generateNgRouterState(t,r){return"computed"===this.canceledNavigationResolution?{navigationId:t,\u0275routerPageId:r}:{navigationId:t}}static#e=this.\u0275fac=(()=>{let t;return function(o){return(t||(t=Qe(e)))(o||e)}})();static#t=this.\u0275prov=R({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();var ra=function(e){return e[e.COMPLETE=0]="COMPLETE",e[e.FAILED=1]="FAILED",e[e.REDIRECTING=2]="REDIRECTING",e}(ra||{});function KE(e,n){e.events.pipe(on(t=>t instanceof bn||t instanceof ui||t instanceof Rc||t instanceof di),J(t=>t instanceof bn||t instanceof di?ra.COMPLETE:t instanceof ui&&(t.code===$t.Redirect||t.code===$t.SupersededByNewNavigation)?ra.REDIRECTING:ra.FAILED),on(t=>t!==ra.REDIRECTING),ri(1)).subscribe(()=>{n()})}function Hj(e){throw e}const Gj={paths:"exact",fragment:"ignored",matrixParams:"ignored",queryParams:"exact"},zj={paths:"subset",fragment:"ignored",matrixParams:"ignored",queryParams:"subset"};let Ht=(()=>{class e{get currentUrlTree(){return this.stateManager.getCurrentUrlTree()}get rawUrlTree(){return this.stateManager.getRawUrlTree()}get events(){return this._events}get routerState(){return this.stateManager.getRouterState()}constructor(){this.disposed=!1,this.isNgZoneEnabled=!1,this.console=T(dw),this.stateManager=T(JE),this.options=T(mi,{optional:!0})||{},this.pendingTasks=T(Ko),this.urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred",this.navigationTransitions=T(Lc),this.urlSerializer=T(li),this.location=T(Vs),this.urlHandlingStrategy=T(Op),this._events=new an,this.errorHandler=this.options.errorHandler||Hj,this.navigated=!1,this.routeReuseStrategy=T(jj),this.onSameUrlNavigation=this.options.onSameUrlNavigation||"ignore",this.config=T(vi,{optional:!0})?.flat()??[],this.componentInputBindingEnabled=!!T(Oc,{optional:!0}),this.eventsSubscription=new gt,this.isNgZoneEnabled=T(se)instanceof se&&se.isInAngularZone(),this.resetConfig(this.config),this.navigationTransitions.setupNavigations(this,this.currentUrlTree,this.routerState).subscribe({error:t=>{this.console.warn(t)}}),this.subscribeToNavigationEvents()}subscribeToNavigationEvents(){const t=this.navigationTransitions.events.subscribe(r=>{try{const o=this.navigationTransitions.currentTransition,i=this.navigationTransitions.currentNavigation;if(null!==o&&null!==i)if(this.stateManager.handleRouterEvent(r,i),r instanceof ui&&r.code!==$t.Redirect&&r.code!==$t.SupersededByNewNavigation)this.navigated=!0;else if(r instanceof bn)this.navigated=!0;else if(r instanceof vp){const s=this.urlHandlingStrategy.merge(r.url,o.currentRawUrl),a={info:o.extras.info,skipLocationChange:o.extras.skipLocationChange,replaceUrl:"eager"===this.urlUpdateStrategy||Vj(o.source)};this.scheduleNavigation(s,Qs,null,a,{resolve:o.resolve,reject:o.reject,promise:o.promise})}(function Wj(e){return!(e instanceof mp||e instanceof vp)})(r)&&this._events.next(r)}catch(o){this.navigationTransitions.transitionAbortSubject.next(o)}});this.eventsSubscription.add(t)}resetRootComponentType(t){this.routerState.root.component=t,this.navigationTransitions.rootComponentType=t}initialNavigation(){this.setUpLocationChangeListener(),this.navigationTransitions.hasRequestedNavigation||this.navigateToSyncWithBrowser(this.location.path(!0),Qs,this.stateManager.restoredState())}setUpLocationChangeListener(){this.nonRouterCurrentEntryChangeSubscription??=this.stateManager.registerNonRouterCurrentEntryChangeListener((t,r)=>{setTimeout(()=>{this.navigateToSyncWithBrowser(t,"popstate",r)},0)})}navigateToSyncWithBrowser(t,r,o){const i={replaceUrl:!0},s=o?.navigationId?o:null;if(o){const l={...o};delete l.navigationId,delete l.\u0275routerPageId,0!==Object.keys(l).length&&(i.state=l)}const a=this.parseUrl(t);this.scheduleNavigation(a,r,s,i)}get url(){return this.serializeUrl(this.currentUrlTree)}getCurrentNavigation(){return this.navigationTransitions.currentNavigation}get lastSuccessfulNavigation(){return this.navigationTransitions.lastSuccessfulNavigation}resetConfig(t){this.config=t.map(Mp),this.navigated=!1}ngOnDestroy(){this.dispose()}dispose(){this.navigationTransitions.complete(),this.nonRouterCurrentEntryChangeSubscription&&(this.nonRouterCurrentEntryChangeSubscription.unsubscribe(),this.nonRouterCurrentEntryChangeSubscription=void 0),this.disposed=!0,this.eventsSubscription.unsubscribe()}createUrlTree(t,r={}){const{relativeTo:o,queryParams:i,fragment:s,queryParamsHandling:a,preserveFragment:l}=r,c=l?this.currentUrlTree.fragment:s;let d,u=null;switch(a){case"merge":u={...this.currentUrlTree.queryParams,...i};break;case"preserve":u=this.currentUrlTree.queryParams;break;default:u=i||null}null!==u&&(u=this.removeEmptyProps(u));try{d=DE(o?o.snapshot:this.routerState.snapshot.root)}catch{("string"!=typeof t[0]||!t[0].startsWith("/"))&&(t=[]),d=this.currentUrlTree.root}return wE(d,t,u,c??null)}navigateByUrl(t,r={skipLocationChange:!1}){const o=ci(t)?t:this.parseUrl(t),i=this.urlHandlingStrategy.merge(o,this.rawUrlTree);return this.scheduleNavigation(i,Qs,null,r)}navigate(t,r={skipLocationChange:!1}){return function qj(e){for(let n=0;n(null!=i&&(r[o]=i),r),{})}scheduleNavigation(t,r,o,i,s){if(this.disposed)return Promise.resolve(!1);let a,l,c;s?(a=s.resolve,l=s.reject,c=s.promise):c=new Promise((d,g)=>{a=d,l=g});const u=this.pendingTasks.add();return KE(this,()=>{queueMicrotask(()=>this.pendingTasks.remove(u))}),this.navigationTransitions.handleNavigationRequest({source:r,restoredState:o,currentUrlTree:this.currentUrlTree,currentRawUrl:this.currentUrlTree,rawUrl:t,extras:i,resolve:a,reject:l,promise:c,currentSnapshot:this.routerState.snapshot,currentRouterState:this.routerState}),c.catch(d=>Promise.reject(d))}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=R({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})(),In=(()=>{class e{constructor(t,r,o,i,s,a){this.router=t,this.route=r,this.tabIndexAttribute=o,this.renderer=i,this.el=s,this.locationStrategy=a,this.href=null,this.commands=null,this.onChanges=new an,this.preserveFragment=!1,this.skipLocationChange=!1,this.replaceUrl=!1;const l=s.nativeElement.tagName?.toLowerCase();this.isAnchorElement="a"===l||"area"===l,this.isAnchorElement?this.subscription=t.events.subscribe(c=>{c instanceof bn&&this.updateHref()}):this.setTabIndexIfNotOnNativeEl("0")}setTabIndexIfNotOnNativeEl(t){null!=this.tabIndexAttribute||this.isAnchorElement||this.applyAttributeValue("tabindex",t)}ngOnChanges(t){this.isAnchorElement&&this.updateHref(),this.onChanges.next(this)}set routerLink(t){null!=t?(this.commands=Array.isArray(t)?t:[t],this.setTabIndexIfNotOnNativeEl("0")):(this.commands=null,this.setTabIndexIfNotOnNativeEl(null))}onClick(t,r,o,i,s){const a=this.urlTree;return!!(null===a||this.isAnchorElement&&(0!==t||r||o||i||s||"string"==typeof this.target&&"_self"!=this.target))||(this.router.navigateByUrl(a,{skipLocationChange:this.skipLocationChange,replaceUrl:this.replaceUrl,state:this.state,info:this.info}),!this.isAnchorElement)}ngOnDestroy(){this.subscription?.unsubscribe()}updateHref(){const t=this.urlTree;this.href=null!==t&&this.locationStrategy?this.locationStrategy?.prepareExternalUrl(this.router.serializeUrl(t)):null;const r=null===this.href?null:function Qv(e,n,t){return function TT(e,n){return"src"===n&&("embed"===e||"frame"===e||"iframe"===e||"media"===e||"script"===e)||"href"===n&&("base"===e||"link"===e)?Yv:Eo}(n,t)(e)}(this.href,this.el.nativeElement.tagName.toLowerCase(),"href");this.applyAttributeValue("href",r)}applyAttributeValue(t,r){const o=this.renderer,i=this.el.nativeElement;null!==r?o.setAttribute(i,t,r):o.removeAttribute(i,t)}get urlTree(){return null===this.commands?null:this.router.createUrlTree(this.commands,{relativeTo:void 0!==this.relativeTo?this.relativeTo:this.route,queryParams:this.queryParams,fragment:this.fragment,queryParamsHandling:this.queryParamsHandling,preserveFragment:this.preserveFragment})}static#e=this.\u0275fac=function(r){return new(r||e)(S(Ht),S(Gr),function Va(e){return function O1(e,n){if("class"===n)return e.classes;if("style"===n)return e.styles;const t=e.attrs;if(t){const r=t.length;let o=0;for(;o{class e{get isActive(){return this._isActive}constructor(t,r,o,i,s){this.router=t,this.element=r,this.renderer=o,this.cdr=i,this.link=s,this.classes=[],this._isActive=!1,this.routerLinkActiveOptions={exact:!1},this.isActiveChange=new Ne,this.routerEventsSubscription=t.events.subscribe(a=>{a instanceof bn&&this.update()})}ngAfterContentInit(){B(this.links.changes,B(null)).pipe(Bs()).subscribe(t=>{this.update(),this.subscribeToEachLinkOnChanges()})}subscribeToEachLinkOnChanges(){this.linkInputChangesSubscription?.unsubscribe();const t=[...this.links.toArray(),this.link].filter(r=>!!r).map(r=>r.onChanges);this.linkInputChangesSubscription=Ye(t).pipe(Bs()).subscribe(r=>{this._isActive!==this.isLinkActive(this.router)(r)&&this.update()})}set routerLinkActive(t){const r=Array.isArray(t)?t:t.split(" ");this.classes=r.filter(o=>!!o)}ngOnChanges(t){this.update()}ngOnDestroy(){this.routerEventsSubscription.unsubscribe(),this.linkInputChangesSubscription?.unsubscribe()}update(){!this.links||!this.router.navigated||queueMicrotask(()=>{const t=this.hasActiveLinks();this._isActive!==t&&(this._isActive=t,this.cdr.markForCheck(),this.classes.forEach(r=>{t?this.renderer.addClass(this.element.nativeElement,r):this.renderer.removeClass(this.element.nativeElement,r)}),t&&void 0!==this.ariaCurrentWhenActive?this.renderer.setAttribute(this.element.nativeElement,"aria-current",this.ariaCurrentWhenActive.toString()):this.renderer.removeAttribute(this.element.nativeElement,"aria-current"),this.isActiveChange.emit(t))})}isLinkActive(t){const r=function Zj(e){return!!e.paths}(this.routerLinkActiveOptions)?this.routerLinkActiveOptions:this.routerLinkActiveOptions.exact||!1;return o=>{const i=o.urlTree;return!!i&&t.isActive(i,r)}}hasActiveLinks(){const t=this.isLinkActive(this.router);return this.link&&t(this.link)||this.links.some(t)}static#e=this.\u0275fac=function(r){return new(r||e)(S(Ht),S(Rt),S(Pn),S(us),S(In,8))};static#t=this.\u0275dir=$({type:e,selectors:[["","routerLinkActive",""]],contentQueries:function(r,o,i){if(1&r&&fD(i,In,5),2&r){let s;hD(s=function pD(){return function jO(e,n){return e[cn].queries[n].queryList}(b(),_m())}())&&(o.links=s)}},inputs:{routerLinkActiveOptions:"routerLinkActiveOptions",ariaCurrentWhenActive:"ariaCurrentWhenActive",routerLinkActive:"routerLinkActive"},outputs:{isActiveChange:"isActiveChange"},exportAs:["routerLinkActive"],standalone:!0,features:[Lt]})}return e})();class tI{}let Yj=(()=>{class e{constructor(t,r,o,i,s){this.router=t,this.injector=o,this.preloadingStrategy=i,this.loader=s}setUpPreloading(){this.subscription=this.router.events.pipe(on(t=>t instanceof bn),oi(()=>this.preload())).subscribe(()=>{})}preload(){return this.processRoutes(this.injector,this.router.config)}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}processRoutes(t,r){const o=[];for(const i of r){i.providers&&!i._injector&&(i._injector=ah(i.providers,t,`Route: ${i.path}`));const s=i._injector??t,a=i._loadedInjector??s;(i.loadChildren&&!i._loadedRoutes&&void 0===i.canLoad||i.loadComponent&&!i._loadedComponent)&&o.push(this.preloadConfig(s,i)),(i.children||i._loadedRoutes)&&o.push(this.processRoutes(a,i.children??i._loadedRoutes))}return Ye(o).pipe(Bs())}preloadConfig(t,r){return this.preloadingStrategy.preload(r,()=>{let o;o=r.loadChildren&&void 0===r.canLoad?this.loader.loadChildren(t,r):B(null);const i=o.pipe(Ke(s=>null===s?B(void 0):(r._loadedRoutes=s.routes,r._loadedInjector=s.injector,this.processRoutes(s.injector??t,s.routes))));return r.loadComponent&&!r._loadedComponent?Ye([i,this.loader.loadComponent(r)]).pipe(Bs()):i})}static#e=this.\u0275fac=function(r){return new(r||e)(P(Ht),P(fw),P(Nt),P(tI),P(Rp))};static#t=this.\u0275prov=R({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();const kp=new N("");let nI=(()=>{class e{constructor(t,r,o,i,s={}){this.urlSerializer=t,this.transitions=r,this.viewportScroller=o,this.zone=i,this.options=s,this.lastId=0,this.lastSource="imperative",this.restoredId=0,this.store={},s.scrollPositionRestoration||="disabled",s.anchorScrolling||="disabled"}init(){"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.setHistoryScrollRestoration("manual"),this.routerEventsSubscription=this.createScrollEvents(),this.scrollEventsSubscription=this.consumeScrollEvents()}createScrollEvents(){return this.transitions.events.subscribe(t=>{t instanceof Nc?(this.store[this.lastId]=this.viewportScroller.getScrollPosition(),this.lastSource=t.navigationTrigger,this.restoredId=t.restoredState?t.restoredState.navigationId:0):t instanceof bn?(this.lastId=t.id,this.scheduleScrollEvent(t,this.urlSerializer.parse(t.urlAfterRedirects).fragment)):t instanceof di&&t.code===xc.IgnoredSameUrlNavigation&&(this.lastSource=void 0,this.restoredId=0,this.scheduleScrollEvent(t,this.urlSerializer.parse(t.url).fragment))})}consumeScrollEvents(){return this.transitions.events.subscribe(t=>{t instanceof AE&&(t.position?"top"===this.options.scrollPositionRestoration?this.viewportScroller.scrollToPosition([0,0]):"enabled"===this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition(t.position):t.anchor&&"enabled"===this.options.anchorScrolling?this.viewportScroller.scrollToAnchor(t.anchor):"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition([0,0]))})}scheduleScrollEvent(t,r){this.zone.runOutsideAngular(()=>{setTimeout(()=>{this.zone.run(()=>{this.transitions.events.next(new AE(t,"popstate"===this.lastSource?this.store[this.restoredId]:null,r))})},0)})}ngOnDestroy(){this.routerEventsSubscription?.unsubscribe(),this.scrollEventsSubscription?.unsubscribe()}static#e=this.\u0275fac=function(r){!function My(){throw new Error("invalid")}()};static#t=this.\u0275prov=R({token:e,factory:e.\u0275fac})}return e})();function Mn(e,n){return{\u0275kind:e,\u0275providers:n}}function oI(){const e=T(Ct);return n=>{const t=e.get(jr);if(n!==t.components[0])return;const r=e.get(Ht),o=e.get(iI);1===e.get(Pp)&&r.initialNavigation(),e.get(sI,null,X.Optional)?.setUpPreloading(),e.get(kp,null,X.Optional)?.init(),r.resetRootComponentType(t.componentTypes[0]),o.closed||(o.next(),o.complete(),o.unsubscribe())}}const iI=new N("",{factory:()=>new an}),Pp=new N("",{providedIn:"root",factory:()=>1}),sI=new N("");function Kj(e){return Mn(0,[{provide:sI,useExisting:Yj},{provide:tI,useExisting:e}])}function tU(e){return Mn(9,[{provide:QE,useValue:Fj},{provide:XE,useValue:{skipNextTransition:!!e?.skipInitialTransition,...e}}])}const aI=new N("ROUTER_FORROOT_GUARD"),nU=[Vs,{provide:li,useClass:dp},Ht,Xs,{provide:Gr,useFactory:function rI(e){return e.routerState.root},deps:[Ht]},Rp,[]];let lI=(()=>{class e{constructor(t){}static forRoot(t,r){return{ngModule:e,providers:[nU,[],{provide:vi,multi:!0,useValue:t},{provide:aI,useFactory:sU,deps:[[Ht,new $a,new Ha]]},{provide:mi,useValue:r||{}},r?.useHash?{provide:Br,useClass:EF}:{provide:Br,useClass:eb},{provide:kp,useFactory:()=>{const e=T(G2),n=T(se),t=T(mi),r=T(Lc),o=T(li);return t.scrollOffset&&e.setOffset(t.scrollOffset),new nI(o,r,e,n,t)}},r?.preloadingStrategy?Kj(r.preloadingStrategy).\u0275providers:[],r?.initialNavigation?aU(r):[],r?.bindToComponentInputs?Mn(8,[FE,{provide:Oc,useExisting:FE}]).\u0275providers:[],r?.enableViewTransitions?tU().\u0275providers:[],[{provide:cI,useFactory:oI},{provide:_h,multi:!0,useExisting:cI}]]}}static forChild(t){return{ngModule:e,providers:[{provide:vi,multi:!0,useValue:t}]}}static#e=this.\u0275fac=function(r){return new(r||e)(P(aI,8))};static#t=this.\u0275mod=Yn({type:e});static#n=this.\u0275inj=An({})}return e})();function sU(e){return"guarded"}function aU(e){return["disabled"===e.initialNavigation?Mn(3,[{provide:vh,multi:!0,useFactory:()=>{const n=T(Ht);return()=>{n.setUpLocationChangeListener()}}},{provide:Pp,useValue:2}]).\u0275providers:[],"enabledBlocking"===e.initialNavigation?Mn(2,[{provide:Pp,useValue:0},{provide:vh,multi:!0,deps:[Ct],useFactory:n=>{const t=n.get(wF,Promise.resolve());return()=>t.then(()=>new Promise(r=>{const o=n.get(Ht),i=n.get(iI);KE(o,()=>{r(!0)}),n.get(Lc).afterPreactivation=()=>(r(!0),i.closed?B(void 0):i),o.initialNavigation()}))}}]).\u0275providers:[]]}const cI=new N(""),cU=()=>["/pro"];let uU=(()=>{class e{constructor(){this.years=(new Date).getFullYear()-2009}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275cmp=St({type:e,selectors:[["app-footer"]],standalone:!0,features:[kt],decls:94,vars:3,consts:[[1,"container-fluid","mt-5"],[1,"p-5"],[1,"container"],[1,"row"],[1,"col-xs-12","col-md-4","text-center"],["src","resources/portrait_600.jpg","alt","Portrait",1,"img-fluid","img-thumbnail","mb-5","portrait"],[1,"col-xs-12","col-md-8"],[3,"routerLink"],[1,"fa-solid","fa-heart","githubheart"],["href","https://github.com/sponsors/danielpalme","target","_blank"],[1,"col-md-3","offset-md-2"],["href","https://github.com/danielpalme/ReportGenerator","target","_blank"],["href","https://github.com/danielpalme/ReportGenerator/wiki","target","_blank"],["href","https://github.com/danielpalme/ReportGenerator/wiki/FAQ","target","_blank"],[1,"col-md-4","mt-4","mt-md-0"],["href","https://www.nuget.org/packages/ReportGenerator","target","_blank"],["href","https://www.nuget.org/packages/dotnet-reportgenerator-globaltool","target","_blank"],["href","https://www.nuget.org/packages/ReportGenerator.Core","target","_blank"],["href","https://github.com/marketplace/actions/reportgenerator","target","_blank"],["href","https://marketplace.visualstudio.com/items?itemName=Palmmedia.reportgenerator","target","_blank"],[1,"col-md-3","mt-4","mt-md-0"],[1,"fa-brands","fa-github"],["href","https://twitter.com/danielpalme","target","_blank"],[1,"fa-brands","fa-twitter"],["href","https://www.palmmedia.de/Privacy","target","_blank"],["href","https://www.palmmedia.de/Imprint","target","_blank"]],template:function(r,o){1&r&&(h(0,"footer",0)(1,"div",1)(2,"div",2)(3,"div",3)(4,"div",4),y(5,"img",5),p(),h(6,"div",6)(7,"h2"),f(8,"Who's behind"),p(),h(9,"p"),f(10,"My name is Daniel Palme. I'm a software developer from Germany."),p(),h(11,"p"),f(12," Back in 2009 I wanted to create code coverage reports based on "),h(13,"i"),f(14,"PartCover"),p(),f(15," files."),y(16,"br"),f(17," Since no existing tool was able to merge several coverage files and generate a visual appealing report, I decided to create my own."),y(18,"br"),f(19),h(20,"i"),f(21,"ReportGenerator"),p(),f(22,". "),p(),h(23,"p"),f(24," You can support the ongoing maintenance by buying a "),h(25,"a",7),f(26,"PRO license"),p(),f(27," or by becoming a "),y(28,"i",8),f(29,"\xa0"),h(30,"a",9),f(31,"GitHub sponsor"),p(),f(32,". "),p()()()()(),h(33,"div",2)(34,"div",3),y(35,"hr"),p()(),h(36,"div",1)(37,"div",2)(38,"div",3)(39,"div",10)(40,"p")(41,"b"),f(42,"GitHub"),p()(),h(43,"a",11),f(44,"Source code"),p(),y(45,"br"),h(46,"a",12),f(47,"Wiki"),p(),y(48,"br"),h(49,"a",13),f(50,"FAQ"),p()(),h(51,"div",14)(52,"p")(53,"b"),f(54,"Download"),p()(),h(55,"i"),f(56,"NuGet"),p(),y(57,"br"),h(58,"a",15),f(59,"ReportGenerator"),p(),y(60,"br"),h(61,"a",16),f(62,"dotnet-reportgenerator-globaltool"),p(),y(63,"br"),h(64,"a",17),f(65,"ReportGenerator.Core"),p(),y(66,"br")(67,"br"),h(68,"i"),f(69,"Integration"),p(),y(70,"br"),h(71,"a",18),f(72,"GitHub actions"),p(),y(73,"br"),h(74,"a",19),f(75,"Azure DevOps"),p()(),h(76,"div",20)(77,"p")(78,"b"),f(79,"Community"),p()(),h(80,"a",11),y(81,"i",21),f(82," GitHub"),p(),y(83,"br"),h(84,"a",22),y(85,"i",23),f(86," Twitter"),p(),y(87,"br")(88,"br"),h(89,"a",24),f(90,"Privacy"),p(),y(91,"br"),h(92,"a",25),f(93,"Imprint"),p()()()()()()),2&r&&(C(19),Un(" Fast forward ",o.years," years, I'm still maintaining "),C(6),E("routerLink",te(2,cU)))},dependencies:[In],styles:["footer[_ngcontent-%COMP%]{background-color:#464646}footer[_ngcontent-%COMP%], a[_ngcontent-%COMP%]{color:#fff}.portrait[_ngcontent-%COMP%]{max-height:300px}"]})}return e})();const uI=()=>["/"],dU=e=>({show:e}),yi=()=>["link-active"],dI=()=>({exact:!0}),fU=()=>["/features"],hU=()=>["/getstarted"],pU=()=>["/usage"],gU=()=>["/contact"],mU=()=>["/pro"];let vU=(()=>{class e{constructor(){this.isExpanded=!1}collapse(){this.isExpanded=!1}toggle(){this.isExpanded=!this.isExpanded}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275cmp=St({type:e,selectors:[["app-nav-menu"]],standalone:!0,features:[kt],decls:42,vars:34,consts:[[1,"mb-5"],[1,"navbar","fixed-top","navbar-expand-sm","navbar-toggleable-sm","navbar-light","bg-white","border-bottom","box-shadow","mb-3"],[1,"container-xxl","flex-wrap","flex-md-nowrap"],[1,"navbar-brand",3,"routerLink"],["src","resources/logo.svg","height","40","alt","Icon",1,"me-2"],[1,"d-sm-none","d-md-none","d-lg-inline","ms-2"],["type","button","data-toggle","collapse","data-target",".navbar-collapse","aria-label","Toggle navigation",1,"navbar-toggler",3,"click"],[1,"navbar-toggler-icon"],[1,"navbar-collapse","collapse","d-sm-inline-flex",3,"ngClass"],[1,"navbar-nav","flex-grow"],[1,"nav-item",3,"routerLinkActive","routerLinkActiveOptions"],[1,"nav-link","text-dark",3,"routerLink"],[1,"nav-item",3,"routerLinkActive"],[1,"nav-link","text-dark","text-nowrap",3,"routerLink"],[1,"pro-button"],[1,"d-md-none","text-secondary"],[1,"navbar-nav","flex-row","flex-wrap","ms-md-auto","d-sm-none","d-md-flex"],[1,"nav-item","col-6","col-md-auto"],["href","https://github.com/danielpalme/ReportGenerator","target","_blank","title","GitHub",1,"nav-link","text-dark"],[1,"fa-brands","fa-github"],[1,"d-inline","d-sm-none","ms-2"],["href","https://twitter.com/danielpalme","target","_blank","title","Twitter",1,"nav-link","text-dark"],[1,"fa-brands","fa-twitter"]],template:function(r,o){1&r&&(h(0,"header",0)(1,"nav",1)(2,"div",2)(3,"a",3),y(4,"img",4),h(5,"span",5),f(6,"ReportGenerator"),p()(),h(7,"button",6),O("click",function(){return o.toggle()}),y(8,"span",7),p(),h(9,"div",8)(10,"ul",9)(11,"li",10)(12,"a",11),f(13,"Home"),p()(),h(14,"li",10)(15,"a",11),f(16,"Features"),p()(),h(17,"li",12)(18,"a",13),f(19,"Get started"),p()(),h(20,"li",12)(21,"a",11),f(22,"Usage"),p()(),h(23,"li",12)(24,"a",11),f(25,"Contact"),p()(),h(26,"li",12)(27,"a",11)(28,"span",14),f(29,"PRO"),p()()()(),y(30,"hr",15),h(31,"ul",16)(32,"li",17)(33,"a",18),y(34,"i",19),h(35,"span",20),f(36,"GitHub"),p()()(),h(37,"li",17)(38,"a",21),y(39,"i",22),h(40,"span",20),f(41,"Twitter"),p()()()()()()()()),2&r&&(C(3),E("routerLink",te(17,uI)),C(4),Jt("aria-expanded",o.isExpanded),C(2),E("ngClass",Ns(18,dU,o.isExpanded)),C(2),E("routerLinkActive",te(20,yi))("routerLinkActiveOptions",te(21,dI)),C(),E("routerLink",te(22,uI)),C(2),E("routerLinkActive",te(23,yi))("routerLinkActiveOptions",te(24,dI)),C(),E("routerLink",te(25,fU)),C(2),E("routerLinkActive",te(26,yi)),C(),E("routerLink",te(27,hU)),C(2),E("routerLinkActive",te(28,yi)),C(),E("routerLink",te(29,pU)),C(2),E("routerLinkActive",te(30,yi)),C(),E("routerLink",te(31,gU)),C(2),E("routerLinkActive",te(32,yi)),C(),E("routerLink",te(33,mU)))},dependencies:[In,vc,eI],styles:[".box-shadow[_ngcontent-%COMP%]{box-shadow:0 .25rem .75rem #0000000d}@keyframes _ngcontent-%COMP%_pro-button-animation{0%{background-color:var(--rg-primary-color);background-image:linear-gradient(50deg,var(--rg-gradient-from) 0%,var(--rg-gradient-to) 100%)}50%{background-color:vvar(--rg-primary-hover-color);background-image:linear-gradient(50deg,var(--rg-gradient-hover-from) 0%,var(--rg-gradient-hover-from) 100%);box-shadow:0 0 6px 1px var(--rg-primary-color)}to{background-color:var(--rg-primary-color);background-image:linear-gradient(50deg,var(--rg-gradient-from) 0%,var(--rg-gradient-to) 100%)}}.pro-button[_ngcontent-%COMP%]{animation-name:_ngcontent-%COMP%_pro-button-animation;animation-duration:2s;animation-iteration-count:2}.pro-button[_ngcontent-%COMP%]:hover, .link-active[_ngcontent-%COMP%] .pro-button[_ngcontent-%COMP%]{background-color:var(--rg-primary-hover-color);background-image:linear-gradient(50deg,var(--rg-gradient-hover-from) 0%,var(--rg-gradient-hover-from) 100%);box-shadow:0 0 6px 1px var(--rg-primary-color)}.nav-link[_ngcontent-%COMP%]{text-transform:uppercase;font-weight:500}.nav-link[_ngcontent-%COMP%]:hover{text-decoration:underline;text-underline-offset:2px}.link-active[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{color:var(--rg-primary-hover-color)!important;font-weight:400}"]})}return e})(),yU=(()=>{class e{constructor(t,r,o){this.dom=t,this.router=r,this.activatedRoute=o}ngOnInit(){this.router.events.pipe(on(t=>t instanceof bn),J(()=>this.activatedRoute),J(t=>{for(;t.firstChild;)t=t.firstChild;return t}),on(t=>"primary"===t.outlet),Ke(t=>t.data)).subscribe(t=>{const r=`${window.location.protocol}//${window.location.hostname}`;this.updateCanonicalUrl(t.canonical?r+t.canonical:r+this.router.url)})}updateCanonicalUrl(t){const r=this.dom.getElementsByTagName("head")[0];var o=this.dom.querySelector("link[rel='canonical']")||null;null==o&&(o=this.dom.createElement("link"),r.appendChild(o)),o.setAttribute("rel","canonical"),o.setAttribute("href",t)}static#e=this.\u0275fac=function(r){return new(r||e)(S(It),S(Ht),S(Gr))};static#t=this.\u0275cmp=St({type:e,selectors:[["app-root"]],standalone:!0,features:[kt],decls:3,vars:0,template:function(r,o){1&r&&y(0,"app-nav-menu")(1,"router-outlet")(2,"app-footer")},dependencies:[vU,Ip,uU],encapsulation:2})}return e})(),fI=(()=>{class e{constructor(t,r){this._renderer=t,this._elementRef=r,this.onChange=o=>{},this.onTouched=()=>{}}setProperty(t,r){this._renderer.setProperty(this._elementRef.nativeElement,t,r)}registerOnTouched(t){this.onTouched=t}registerOnChange(t){this.onChange=t}setDisabledState(t){this.setProperty("disabled",t)}static#e=this.\u0275fac=function(r){return new(r||e)(S(Pn),S(Rt))};static#t=this.\u0275dir=$({type:e})}return e})(),zr=(()=>{class e extends fI{static#e=this.\u0275fac=(()=>{let t;return function(o){return(t||(t=Qe(e)))(o||e)}})();static#t=this.\u0275dir=$({type:e,features:[de]})}return e})();const Sn=new N(""),DU={provide:Sn,useExisting:ve(()=>_i),multi:!0},bU=new N("");let _i=(()=>{class e extends fI{constructor(t,r,o){super(t,r),this._compositionMode=o,this._composing=!1,null==this._compositionMode&&(this._compositionMode=!function wU(){const e=ur()?ur().getUserAgent():"";return/android (\d+)/.test(e.toLowerCase())}())}writeValue(t){this.setProperty("value",t??"")}_handleInput(t){(!this._compositionMode||this._compositionMode&&!this._composing)&&this.onChange(t)}_compositionStart(){this._composing=!0}_compositionEnd(t){this._composing=!1,this._compositionMode&&this.onChange(t)}static#e=this.\u0275fac=function(r){return new(r||e)(S(Pn),S(Rt),S(bU,8))};static#t=this.\u0275dir=$({type:e,selectors:[["input","formControlName","",3,"type","checkbox"],["textarea","formControlName",""],["input","formControl","",3,"type","checkbox"],["textarea","formControl",""],["input","ngModel","",3,"type","checkbox"],["textarea","ngModel",""],["","ngDefaultControl",""]],hostBindings:function(r,o){1&r&&O("input",function(s){return o._handleInput(s.target.value)})("blur",function(){return o.onTouched()})("compositionstart",function(){return o._compositionStart()})("compositionend",function(s){return o._compositionEnd(s.target.value)})},features:[Se([DU]),de]})}return e})();function hr(e){return null==e||("string"==typeof e||Array.isArray(e))&&0===e.length}const at=new N(""),pr=new N(""),EU=/^(?=.{1,254}$)(?=.{1,64}@)[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;function vI(e){return hr(e.value)?{required:!0}:null}function _I(e){return hr(e.value)||EU.test(e.value)?null:{email:!0}}function Vc(e){return null}function bI(e){return null!=e}function EI(e){return As(e)?Ye(e):e}function II(e){let n={};return e.forEach(t=>{n=null!=t?{...n,...t}:n}),0===Object.keys(n).length?null:n}function MI(e,n){return n.map(t=>t(e))}function SI(e){return e.map(n=>function IU(e){return!e.validate}(n)?n:t=>n.validate(t))}function Fp(e){return null!=e?function TI(e){if(!e)return null;const n=e.filter(bI);return 0==n.length?null:function(t){return II(MI(t,n))}}(SI(e)):null}function Lp(e){return null!=e?function AI(e){if(!e)return null;const n=e.filter(bI);return 0==n.length?null:function(t){return function _U(...e){const n=Ub(e),{args:t,keys:r}=Bb(e),o=new Ve(i=>{const{length:s}=t;if(!s)return void i.complete();const a=new Array(s);let l=s,c=s;for(let u=0;u{d||(d=!0,c--),a[u]=g},()=>l--,void 0,()=>{(!l||!d)&&(c||i.next(r?Hb(r,a):a),i.complete())}))}});return n?o.pipe($b(n)):o}(MI(t,n).map(EI)).pipe(J(II))}}(SI(e)):null}function NI(e,n){return null===e?[n]:Array.isArray(e)?[...e,n]:[e,n]}function Vp(e){return e?Array.isArray(e)?e:[e]:[]}function jc(e,n){return Array.isArray(e)?e.includes(n):e===n}function OI(e,n){const t=Vp(n);return Vp(e).forEach(o=>{jc(t,o)||t.push(o)}),t}function kI(e,n){return Vp(n).filter(t=>!jc(e,t))}class PI{constructor(){this._rawValidators=[],this._rawAsyncValidators=[],this._onDestroyCallbacks=[]}get value(){return this.control?this.control.value:null}get valid(){return this.control?this.control.valid:null}get invalid(){return this.control?this.control.invalid:null}get pending(){return this.control?this.control.pending:null}get disabled(){return this.control?this.control.disabled:null}get enabled(){return this.control?this.control.enabled:null}get errors(){return this.control?this.control.errors:null}get pristine(){return this.control?this.control.pristine:null}get dirty(){return this.control?this.control.dirty:null}get touched(){return this.control?this.control.touched:null}get status(){return this.control?this.control.status:null}get untouched(){return this.control?this.control.untouched:null}get statusChanges(){return this.control?this.control.statusChanges:null}get valueChanges(){return this.control?this.control.valueChanges:null}get path(){return null}_setValidators(n){this._rawValidators=n||[],this._composedValidatorFn=Fp(this._rawValidators)}_setAsyncValidators(n){this._rawAsyncValidators=n||[],this._composedAsyncValidatorFn=Lp(this._rawAsyncValidators)}get validator(){return this._composedValidatorFn||null}get asyncValidator(){return this._composedAsyncValidatorFn||null}_registerOnDestroy(n){this._onDestroyCallbacks.push(n)}_invokeOnDestroyCallbacks(){this._onDestroyCallbacks.forEach(n=>n()),this._onDestroyCallbacks=[]}reset(n=void 0){this.control&&this.control.reset(n)}hasError(n,t){return!!this.control&&this.control.hasError(n,t)}getError(n,t){return this.control?this.control.getError(n,t):null}}class pt extends PI{get formDirective(){return null}get path(){return null}}class gr extends PI{constructor(){super(...arguments),this._parent=null,this.name=null,this.valueAccessor=null}}class FI{constructor(n){this._cd=n}get isTouched(){return!!this._cd?.control?.touched}get isUntouched(){return!!this._cd?.control?.untouched}get isPristine(){return!!this._cd?.control?.pristine}get isDirty(){return!!this._cd?.control?.dirty}get isValid(){return!!this._cd?.control?.valid}get isInvalid(){return!!this._cd?.control?.invalid}get isPending(){return!!this._cd?.control?.pending}get isSubmitted(){return!!this._cd?.submitted}}let Uc=(()=>{class e extends FI{constructor(t){super(t)}static#e=this.\u0275fac=function(r){return new(r||e)(S(gr,2))};static#t=this.\u0275dir=$({type:e,selectors:[["","formControlName",""],["","ngModel",""],["","formControl",""]],hostVars:14,hostBindings:function(r,o){2&r&&jl("ng-untouched",o.isUntouched)("ng-touched",o.isTouched)("ng-pristine",o.isPristine)("ng-dirty",o.isDirty)("ng-valid",o.isValid)("ng-invalid",o.isInvalid)("ng-pending",o.isPending)},features:[de]})}return e})(),Bc=(()=>{class e extends FI{constructor(t){super(t)}static#e=this.\u0275fac=function(r){return new(r||e)(S(pt,10))};static#t=this.\u0275dir=$({type:e,selectors:[["","formGroupName",""],["","formArrayName",""],["","ngModelGroup",""],["","formGroup",""],["form",3,"ngNoForm",""],["","ngForm",""]],hostVars:16,hostBindings:function(r,o){2&r&&jl("ng-untouched",o.isUntouched)("ng-touched",o.isTouched)("ng-pristine",o.isPristine)("ng-dirty",o.isDirty)("ng-valid",o.isValid)("ng-invalid",o.isInvalid)("ng-pending",o.isPending)("ng-submitted",o.isSubmitted)},features:[de]})}return e})();const oa="VALID",Hc="INVALID",Ci="PENDING",ia="DISABLED";function Bp(e){return(Gc(e)?e.validators:e)||null}function $p(e,n){return(Gc(n)?n.asyncValidators:e)||null}function Gc(e){return null!=e&&!Array.isArray(e)&&"object"==typeof e}class UI{constructor(n,t){this._pendingDirty=!1,this._hasOwnPendingAsyncValidator=!1,this._pendingTouched=!1,this._onCollectionChange=()=>{},this._parent=null,this.pristine=!0,this.touched=!1,this._onDisabledChange=[],this._assignValidators(n),this._assignAsyncValidators(t)}get validator(){return this._composedValidatorFn}set validator(n){this._rawValidators=this._composedValidatorFn=n}get asyncValidator(){return this._composedAsyncValidatorFn}set asyncValidator(n){this._rawAsyncValidators=this._composedAsyncValidatorFn=n}get parent(){return this._parent}get valid(){return this.status===oa}get invalid(){return this.status===Hc}get pending(){return this.status==Ci}get disabled(){return this.status===ia}get enabled(){return this.status!==ia}get dirty(){return!this.pristine}get untouched(){return!this.touched}get updateOn(){return this._updateOn?this._updateOn:this.parent?this.parent.updateOn:"change"}setValidators(n){this._assignValidators(n)}setAsyncValidators(n){this._assignAsyncValidators(n)}addValidators(n){this.setValidators(OI(n,this._rawValidators))}addAsyncValidators(n){this.setAsyncValidators(OI(n,this._rawAsyncValidators))}removeValidators(n){this.setValidators(kI(n,this._rawValidators))}removeAsyncValidators(n){this.setAsyncValidators(kI(n,this._rawAsyncValidators))}hasValidator(n){return jc(this._rawValidators,n)}hasAsyncValidator(n){return jc(this._rawAsyncValidators,n)}clearValidators(){this.validator=null}clearAsyncValidators(){this.asyncValidator=null}markAsTouched(n={}){this.touched=!0,this._parent&&!n.onlySelf&&this._parent.markAsTouched(n)}markAllAsTouched(){this.markAsTouched({onlySelf:!0}),this._forEachChild(n=>n.markAllAsTouched())}markAsUntouched(n={}){this.touched=!1,this._pendingTouched=!1,this._forEachChild(t=>{t.markAsUntouched({onlySelf:!0})}),this._parent&&!n.onlySelf&&this._parent._updateTouched(n)}markAsDirty(n={}){this.pristine=!1,this._parent&&!n.onlySelf&&this._parent.markAsDirty(n)}markAsPristine(n={}){this.pristine=!0,this._pendingDirty=!1,this._forEachChild(t=>{t.markAsPristine({onlySelf:!0})}),this._parent&&!n.onlySelf&&this._parent._updatePristine(n)}markAsPending(n={}){this.status=Ci,!1!==n.emitEvent&&this.statusChanges.emit(this.status),this._parent&&!n.onlySelf&&this._parent.markAsPending(n)}disable(n={}){const t=this._parentMarkedDirty(n.onlySelf);this.status=ia,this.errors=null,this._forEachChild(r=>{r.disable({...n,onlySelf:!0})}),this._updateValue(),!1!==n.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors({...n,skipPristineCheck:t}),this._onDisabledChange.forEach(r=>r(!0))}enable(n={}){const t=this._parentMarkedDirty(n.onlySelf);this.status=oa,this._forEachChild(r=>{r.enable({...n,onlySelf:!0})}),this.updateValueAndValidity({onlySelf:!0,emitEvent:n.emitEvent}),this._updateAncestors({...n,skipPristineCheck:t}),this._onDisabledChange.forEach(r=>r(!1))}_updateAncestors(n){this._parent&&!n.onlySelf&&(this._parent.updateValueAndValidity(n),n.skipPristineCheck||this._parent._updatePristine(),this._parent._updateTouched())}setParent(n){this._parent=n}getRawValue(){return this.value}updateValueAndValidity(n={}){this._setInitialStatus(),this._updateValue(),this.enabled&&(this._cancelExistingSubscription(),this.errors=this._runValidator(),this.status=this._calculateStatus(),(this.status===oa||this.status===Ci)&&this._runAsyncValidator(n.emitEvent)),!1!==n.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._parent&&!n.onlySelf&&this._parent.updateValueAndValidity(n)}_updateTreeValidity(n={emitEvent:!0}){this._forEachChild(t=>t._updateTreeValidity(n)),this.updateValueAndValidity({onlySelf:!0,emitEvent:n.emitEvent})}_setInitialStatus(){this.status=this._allControlsDisabled()?ia:oa}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(n){if(this.asyncValidator){this.status=Ci,this._hasOwnPendingAsyncValidator=!0;const t=EI(this.asyncValidator(this));this._asyncValidationSubscription=t.subscribe(r=>{this._hasOwnPendingAsyncValidator=!1,this.setErrors(r,{emitEvent:n})})}}_cancelExistingSubscription(){this._asyncValidationSubscription&&(this._asyncValidationSubscription.unsubscribe(),this._hasOwnPendingAsyncValidator=!1)}setErrors(n,t={}){this.errors=n,this._updateControlsErrors(!1!==t.emitEvent)}get(n){let t=n;return null==t||(Array.isArray(t)||(t=t.split(".")),0===t.length)?null:t.reduce((r,o)=>r&&r._find(o),this)}getError(n,t){const r=t?this.get(t):this;return r&&r.errors?r.errors[n]:null}hasError(n,t){return!!this.getError(n,t)}get root(){let n=this;for(;n._parent;)n=n._parent;return n}_updateControlsErrors(n){this.status=this._calculateStatus(),n&&this.statusChanges.emit(this.status),this._parent&&this._parent._updateControlsErrors(n)}_initObservables(){this.valueChanges=new Ne,this.statusChanges=new Ne}_calculateStatus(){return this._allControlsDisabled()?ia:this.errors?Hc:this._hasOwnPendingAsyncValidator||this._anyControlsHaveStatus(Ci)?Ci:this._anyControlsHaveStatus(Hc)?Hc:oa}_anyControlsHaveStatus(n){return this._anyControls(t=>t.status===n)}_anyControlsDirty(){return this._anyControls(n=>n.dirty)}_anyControlsTouched(){return this._anyControls(n=>n.touched)}_updatePristine(n={}){this.pristine=!this._anyControlsDirty(),this._parent&&!n.onlySelf&&this._parent._updatePristine(n)}_updateTouched(n={}){this.touched=this._anyControlsTouched(),this._parent&&!n.onlySelf&&this._parent._updateTouched(n)}_registerOnCollectionChange(n){this._onCollectionChange=n}_setUpdateStrategy(n){Gc(n)&&null!=n.updateOn&&(this._updateOn=n.updateOn)}_parentMarkedDirty(n){return!n&&!(!this._parent||!this._parent.dirty)&&!this._parent._anyControlsDirty()}_find(n){return null}_assignValidators(n){this._rawValidators=Array.isArray(n)?n.slice():n,this._composedValidatorFn=function AU(e){return Array.isArray(e)?Fp(e):e||null}(this._rawValidators)}_assignAsyncValidators(n){this._rawAsyncValidators=Array.isArray(n)?n.slice():n,this._composedAsyncValidatorFn=function NU(e){return Array.isArray(e)?Lp(e):e||null}(this._rawAsyncValidators)}}class Hp extends UI{constructor(n,t,r){super(Bp(t),$p(r,t)),this.controls=n,this._initObservables(),this._setUpdateStrategy(t),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}registerControl(n,t){return this.controls[n]?this.controls[n]:(this.controls[n]=t,t.setParent(this),t._registerOnCollectionChange(this._onCollectionChange),t)}addControl(n,t,r={}){this.registerControl(n,t),this.updateValueAndValidity({emitEvent:r.emitEvent}),this._onCollectionChange()}removeControl(n,t={}){this.controls[n]&&this.controls[n]._registerOnCollectionChange(()=>{}),delete this.controls[n],this.updateValueAndValidity({emitEvent:t.emitEvent}),this._onCollectionChange()}setControl(n,t,r={}){this.controls[n]&&this.controls[n]._registerOnCollectionChange(()=>{}),delete this.controls[n],t&&this.registerControl(n,t),this.updateValueAndValidity({emitEvent:r.emitEvent}),this._onCollectionChange()}contains(n){return this.controls.hasOwnProperty(n)&&this.controls[n].enabled}setValue(n,t={}){(function jI(e,n,t){e._forEachChild((r,o)=>{if(void 0===t[o])throw new M(1002,"")})})(this,0,n),Object.keys(n).forEach(r=>{(function VI(e,n,t){const r=e.controls;if(!(n?Object.keys(r):r).length)throw new M(1e3,"");if(!r[t])throw new M(1001,"")})(this,!0,r),this.controls[r].setValue(n[r],{onlySelf:!0,emitEvent:t.emitEvent})}),this.updateValueAndValidity(t)}patchValue(n,t={}){null!=n&&(Object.keys(n).forEach(r=>{const o=this.controls[r];o&&o.patchValue(n[r],{onlySelf:!0,emitEvent:t.emitEvent})}),this.updateValueAndValidity(t))}reset(n={},t={}){this._forEachChild((r,o)=>{r.reset(n?n[o]:null,{onlySelf:!0,emitEvent:t.emitEvent})}),this._updatePristine(t),this._updateTouched(t),this.updateValueAndValidity(t)}getRawValue(){return this._reduceChildren({},(n,t,r)=>(n[r]=t.getRawValue(),n))}_syncPendingControls(){let n=this._reduceChildren(!1,(t,r)=>!!r._syncPendingControls()||t);return n&&this.updateValueAndValidity({onlySelf:!0}),n}_forEachChild(n){Object.keys(this.controls).forEach(t=>{const r=this.controls[t];r&&n(r,t)})}_setUpControls(){this._forEachChild(n=>{n.setParent(this),n._registerOnCollectionChange(this._onCollectionChange)})}_updateValue(){this.value=this._reduceValue()}_anyControls(n){for(const[t,r]of Object.entries(this.controls))if(this.contains(t)&&n(r))return!0;return!1}_reduceValue(){return this._reduceChildren({},(t,r,o)=>((r.enabled||this.disabled)&&(t[o]=r.value),t))}_reduceChildren(n,t){let r=n;return this._forEachChild((o,i)=>{r=t(r,o,i)}),r}_allControlsDisabled(){for(const n of Object.keys(this.controls))if(this.controls[n].enabled)return!1;return Object.keys(this.controls).length>0||this.disabled}_find(n){return this.controls.hasOwnProperty(n)?this.controls[n]:null}}const Di=new N("CallSetDisabledState",{providedIn:"root",factory:()=>zc}),zc="always";function sa(e,n,t=zc){Gp(e,n),n.valueAccessor.writeValue(e.value),(e.disabled||"always"===t)&&n.valueAccessor.setDisabledState?.(e.disabled),function OU(e,n){n.valueAccessor.registerOnChange(t=>{e._pendingValue=t,e._pendingChange=!0,e._pendingDirty=!0,"change"===e.updateOn&&BI(e,n)})}(e,n),function PU(e,n){const t=(r,o)=>{n.valueAccessor.writeValue(r),o&&n.viewToModelUpdate(r)};e.registerOnChange(t),n._registerOnDestroy(()=>{e._unregisterOnChange(t)})}(e,n),function kU(e,n){n.valueAccessor.registerOnTouched(()=>{e._pendingTouched=!0,"blur"===e.updateOn&&e._pendingChange&&BI(e,n),"submit"!==e.updateOn&&e.markAsTouched()})}(e,n),function RU(e,n){if(n.valueAccessor.setDisabledState){const t=r=>{n.valueAccessor.setDisabledState(r)};e.registerOnDisabledChange(t),n._registerOnDestroy(()=>{e._unregisterOnDisabledChange(t)})}}(e,n)}function Zc(e,n){e.forEach(t=>{t.registerOnValidatorChange&&t.registerOnValidatorChange(n)})}function Gp(e,n){const t=function xI(e){return e._rawValidators}(e);null!==n.validator?e.setValidators(NI(t,n.validator)):"function"==typeof t&&e.setValidators([t]);const r=function RI(e){return e._rawAsyncValidators}(e);null!==n.asyncValidator?e.setAsyncValidators(NI(r,n.asyncValidator)):"function"==typeof r&&e.setAsyncValidators([r]);const o=()=>e.updateValueAndValidity();Zc(n._rawValidators,o),Zc(n._rawAsyncValidators,o)}function BI(e,n){e._pendingDirty&&e.markAsDirty(),e.setValue(e._pendingValue,{emitModelToViewChange:!1}),n.viewToModelUpdate(e._pendingValue),e._pendingChange=!1}const UU={provide:pt,useExisting:ve(()=>wi)},aa=Promise.resolve();let wi=(()=>{class e extends pt{constructor(t,r,o){super(),this.callSetDisabledState=o,this.submitted=!1,this._directives=new Set,this.ngSubmit=new Ne,this.form=new Hp({},Fp(t),Lp(r))}ngAfterViewInit(){this._setUpdateStrategy()}get formDirective(){return this}get control(){return this.form}get path(){return[]}get controls(){return this.form.controls}addControl(t){aa.then(()=>{const r=this._findContainer(t.path);t.control=r.registerControl(t.name,t.control),sa(t.control,t,this.callSetDisabledState),t.control.updateValueAndValidity({emitEvent:!1}),this._directives.add(t)})}getControl(t){return this.form.get(t.path)}removeControl(t){aa.then(()=>{const r=this._findContainer(t.path);r&&r.removeControl(t.name),this._directives.delete(t)})}addFormGroup(t){aa.then(()=>{const r=this._findContainer(t.path),o=new Hp({});(function $I(e,n){Gp(e,n)})(o,t),r.registerControl(t.name,o),o.updateValueAndValidity({emitEvent:!1})})}removeFormGroup(t){aa.then(()=>{const r=this._findContainer(t.path);r&&r.removeControl(t.name)})}getFormGroup(t){return this.form.get(t.path)}updateModel(t,r){aa.then(()=>{this.form.get(t.path).setValue(r)})}setValue(t){this.control.setValue(t)}onSubmit(t){return this.submitted=!0,function HI(e,n){e._syncPendingControls(),n.forEach(t=>{const r=t.control;"submit"===r.updateOn&&r._pendingChange&&(t.viewToModelUpdate(r._pendingValue),r._pendingChange=!1)})}(this.form,this._directives),this.ngSubmit.emit(t),"dialog"===t?.target?.method}onReset(){this.resetForm()}resetForm(t=void 0){this.form.reset(t),this.submitted=!1}_setUpdateStrategy(){this.options&&null!=this.options.updateOn&&(this.form._updateOn=this.options.updateOn)}_findContainer(t){return t.pop(),t.length?this.form.get(t):this.form}static#e=this.\u0275fac=function(r){return new(r||e)(S(at,10),S(pr,10),S(Di,8))};static#t=this.\u0275dir=$({type:e,selectors:[["form",3,"ngNoForm","",3,"formGroup",""],["ng-form"],["","ngForm",""]],hostBindings:function(r,o){1&r&&O("submit",function(s){return o.onSubmit(s)})("reset",function(){return o.onReset()})},inputs:{options:[be.None,"ngFormOptions","options"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],features:[Se([UU]),de]})}return e})();function GI(e,n){const t=e.indexOf(n);t>-1&&e.splice(t,1)}function zI(e){return"object"==typeof e&&null!==e&&2===Object.keys(e).length&&"value"in e&&"disabled"in e}const qI=class extends UI{constructor(n=null,t,r){super(Bp(t),$p(r,t)),this.defaultValue=null,this._onChange=[],this._pendingChange=!1,this._applyFormState(n),this._setUpdateStrategy(t),this._initObservables(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator}),Gc(t)&&(t.nonNullable||t.initialValueIsDefault)&&(this.defaultValue=zI(n)?n.value:n)}setValue(n,t={}){this.value=this._pendingValue=n,this._onChange.length&&!1!==t.emitModelToViewChange&&this._onChange.forEach(r=>r(this.value,!1!==t.emitViewToModelChange)),this.updateValueAndValidity(t)}patchValue(n,t={}){this.setValue(n,t)}reset(n=this.defaultValue,t={}){this._applyFormState(n),this.markAsPristine(t),this.markAsUntouched(t),this.setValue(this.value,t),this._pendingChange=!1}_updateValue(){}_anyControls(n){return!1}_allControlsDisabled(){return this.disabled}registerOnChange(n){this._onChange.push(n)}_unregisterOnChange(n){GI(this._onChange,n)}registerOnDisabledChange(n){this._onDisabledChange.push(n)}_unregisterOnDisabledChange(n){GI(this._onDisabledChange,n)}_forEachChild(n){}_syncPendingControls(){return!("submit"!==this.updateOn||(this._pendingDirty&&this.markAsDirty(),this._pendingTouched&&this.markAsTouched(),!this._pendingChange)||(this.setValue(this._pendingValue,{onlySelf:!0,emitModelToViewChange:!1}),0))}_applyFormState(n){zI(n)?(this.value=this._pendingValue=n.value,n.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this.value=this._pendingValue=n}},HU={provide:gr,useExisting:ve(()=>la)},YI=Promise.resolve();let la=(()=>{class e extends gr{constructor(t,r,o,i,s,a){super(),this._changeDetectorRef=s,this.callSetDisabledState=a,this.control=new qI,this._registered=!1,this.name="",this.update=new Ne,this._parent=t,this._setValidators(r),this._setAsyncValidators(o),this.valueAccessor=function Wp(e,n){if(!n)return null;let t,r,o;return Array.isArray(n),n.forEach(i=>{i.constructor===_i?t=i:function VU(e){return Object.getPrototypeOf(e.constructor)===zr}(i)?r=i:o=i}),o||r||t||null}(0,i)}ngOnChanges(t){if(this._checkForErrors(),!this._registered||"name"in t){if(this._registered&&(this._checkName(),this.formDirective)){const r=t.name.previousValue;this.formDirective.removeControl({name:r,path:this._getPath(r)})}this._setUpControl()}"isDisabled"in t&&this._updateDisabled(t),function qp(e,n){if(!e.hasOwnProperty("model"))return!1;const t=e.model;return!!t.isFirstChange()||!Object.is(n,t.currentValue)}(t,this.viewModel)&&(this._updateValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}get path(){return this._getPath(this.name)}get formDirective(){return this._parent?this._parent.formDirective:null}viewToModelUpdate(t){this.viewModel=t,this.update.emit(t)}_setUpControl(){this._setUpdateStrategy(),this._isStandalone()?this._setUpStandalone():this.formDirective.addControl(this),this._registered=!0}_setUpdateStrategy(){this.options&&null!=this.options.updateOn&&(this.control._updateOn=this.options.updateOn)}_isStandalone(){return!this._parent||!(!this.options||!this.options.standalone)}_setUpStandalone(){sa(this.control,this,this.callSetDisabledState),this.control.updateValueAndValidity({emitEvent:!1})}_checkForErrors(){this._isStandalone()||this._checkParentType(),this._checkName()}_checkParentType(){}_checkName(){this.options&&this.options.name&&(this.name=this.options.name),this._isStandalone()}_updateValue(t){YI.then(()=>{this.control.setValue(t,{emitViewToModelChange:!1}),this._changeDetectorRef?.markForCheck()})}_updateDisabled(t){const r=t.isDisabled.currentValue,o=0!==r&&ti(r);YI.then(()=>{o&&!this.control.disabled?this.control.disable():!o&&this.control.disabled&&this.control.enable(),this._changeDetectorRef?.markForCheck()})}_getPath(t){return this._parent?function qc(e,n){return[...n.path,e]}(t,this._parent):[t]}static#e=this.\u0275fac=function(r){return new(r||e)(S(pt,9),S(at,10),S(pr,10),S(Sn,10),S(us,8),S(Di,8))};static#t=this.\u0275dir=$({type:e,selectors:[["","ngModel","",3,"formControlName","",3,"formControl",""]],inputs:{name:"name",isDisabled:[be.None,"disabled","isDisabled"],model:[be.None,"ngModel","model"],options:[be.None,"ngModelOptions","options"]},outputs:{update:"ngModelChange"},exportAs:["ngModel"],features:[Se([HU]),de,Lt]})}return e})(),Qc=(()=>{class e{static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275dir=$({type:e,selectors:[["form",3,"ngNoForm","",3,"ngNativeValidate",""]],hostAttrs:["novalidate",""]})}return e})();const zU={provide:Sn,useExisting:ve(()=>Zp),multi:!0};let qU=(()=>{class e{constructor(){this._accessors=[]}add(t,r){this._accessors.push([t,r])}remove(t){for(let r=this._accessors.length-1;r>=0;--r)if(this._accessors[r][1]===t)return void this._accessors.splice(r,1)}select(t){this._accessors.forEach(r=>{this._isSameGroup(r,t)&&r[1]!==t&&r[1].fireUncheck(t.value)})}_isSameGroup(t,r){return!!t[0].control&&t[0]._parent===r._control._parent&&t[1].name===r.name}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=R({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})(),Zp=(()=>{class e extends zr{constructor(t,r,o,i){super(t,r),this._registry=o,this._injector=i,this.setDisabledStateFired=!1,this.onChange=()=>{},this.callSetDisabledState=T(Di,{optional:!0})??zc}ngOnInit(){this._control=this._injector.get(gr),this._checkName(),this._registry.add(this._control,this)}ngOnDestroy(){this._registry.remove(this)}writeValue(t){this._state=t===this.value,this.setProperty("checked",this._state)}registerOnChange(t){this._fn=t,this.onChange=()=>{t(this.value),this._registry.select(this)}}setDisabledState(t){(this.setDisabledStateFired||t||"whenDisabledForLegacyCode"===this.callSetDisabledState)&&this.setProperty("disabled",t),this.setDisabledStateFired=!0}fireUncheck(t){this.writeValue(t)}_checkName(){!this.name&&this.formControlName&&(this.name=this.formControlName)}static#e=this.\u0275fac=function(r){return new(r||e)(S(Pn),S(Rt),S(qU),S(Ct))};static#t=this.\u0275dir=$({type:e,selectors:[["input","type","radio","formControlName",""],["input","type","radio","formControl",""],["input","type","radio","ngModel",""]],hostBindings:function(r,o){1&r&&O("change",function(){return o.onChange()})("blur",function(){return o.onTouched()})},inputs:{name:"name",formControlName:"formControlName",value:"value"},features:[Se([zU]),de]})}return e})();const KU={provide:Sn,useExisting:ve(()=>Xc),multi:!0};function nM(e,n){return null==e?`${n}`:(n&&"object"==typeof n&&(n="Object"),`${e}: ${n}`.slice(0,50))}let Xc=(()=>{class e extends zr{constructor(){super(...arguments),this._optionMap=new Map,this._idCounter=0,this._compareWith=Object.is}set compareWith(t){this._compareWith=t}writeValue(t){this.value=t;const o=nM(this._getOptionId(t),t);this.setProperty("value",o)}registerOnChange(t){this.onChange=r=>{this.value=this._getOptionValue(r),t(this.value)}}_registerOption(){return(this._idCounter++).toString()}_getOptionId(t){for(const r of this._optionMap.keys())if(this._compareWith(this._optionMap.get(r),t))return r;return null}_getOptionValue(t){const r=function eB(e){return e.split(":")[0]}(t);return this._optionMap.has(r)?this._optionMap.get(r):t}static#e=this.\u0275fac=(()=>{let t;return function(o){return(t||(t=Qe(e)))(o||e)}})();static#t=this.\u0275dir=$({type:e,selectors:[["select","formControlName","",3,"multiple",""],["select","formControl","",3,"multiple",""],["select","ngModel","",3,"multiple",""]],hostBindings:function(r,o){1&r&&O("change",function(s){return o.onChange(s.target.value)})("blur",function(){return o.onTouched()})},inputs:{compareWith:"compareWith"},features:[Se([KU]),de]})}return e})(),rM=(()=>{class e{constructor(t,r,o){this._element=t,this._renderer=r,this._select=o,this._select&&(this.id=this._select._registerOption())}set ngValue(t){null!=this._select&&(this._select._optionMap.set(this.id,t),this._setElementValue(nM(this.id,t)),this._select.writeValue(this._select.value))}set value(t){this._setElementValue(t),this._select&&this._select.writeValue(this._select.value)}_setElementValue(t){this._renderer.setProperty(this._element.nativeElement,"value",t)}ngOnDestroy(){this._select&&(this._select._optionMap.delete(this.id),this._select.writeValue(this._select.value))}static#e=this.\u0275fac=function(r){return new(r||e)(S(Rt),S(Pn),S(Xc,9))};static#t=this.\u0275dir=$({type:e,selectors:[["option"]],inputs:{ngValue:"ngValue",value:"value"}})}return e})();const tB={provide:Sn,useExisting:ve(()=>Jp),multi:!0};function oM(e,n){return null==e?`${n}`:("string"==typeof n&&(n=`'${n}'`),n&&"object"==typeof n&&(n="Object"),`${e}: ${n}`.slice(0,50))}let Jp=(()=>{class e extends zr{constructor(){super(...arguments),this._optionMap=new Map,this._idCounter=0,this._compareWith=Object.is}set compareWith(t){this._compareWith=t}writeValue(t){let r;if(this.value=t,Array.isArray(t)){const o=t.map(i=>this._getOptionId(i));r=(i,s)=>{i._setSelected(o.indexOf(s.toString())>-1)}}else r=(o,i)=>{o._setSelected(!1)};this._optionMap.forEach(r)}registerOnChange(t){this.onChange=r=>{const o=[],i=r.selectedOptions;if(void 0!==i){const s=i;for(let a=0;a{let t;return function(o){return(t||(t=Qe(e)))(o||e)}})();static#t=this.\u0275dir=$({type:e,selectors:[["select","multiple","","formControlName",""],["select","multiple","","formControl",""],["select","multiple","","ngModel",""]],hostBindings:function(r,o){1&r&&O("change",function(s){return o.onChange(s.target)})("blur",function(){return o.onTouched()})},inputs:{compareWith:"compareWith"},features:[Se([tB]),de]})}return e})(),iM=(()=>{class e{constructor(t,r,o){this._element=t,this._renderer=r,this._select=o,this._select&&(this.id=this._select._registerOption(this))}set ngValue(t){null!=this._select&&(this._value=t,this._setElementValue(oM(this.id,t)),this._select.writeValue(this._select.value))}set value(t){this._select?(this._value=t,this._setElementValue(oM(this.id,t)),this._select.writeValue(this._select.value)):this._setElementValue(t)}_setElementValue(t){this._renderer.setProperty(this._element.nativeElement,"value",t)}_setSelected(t){this._renderer.setProperty(this._element.nativeElement,"selected",t)}ngOnDestroy(){this._select&&(this._select._optionMap.delete(this.id),this._select.writeValue(this._select.value))}static#e=this.\u0275fac=function(r){return new(r||e)(S(Rt),S(Pn),S(Jp,9))};static#t=this.\u0275dir=$({type:e,selectors:[["option"]],inputs:{ngValue:"ngValue",value:"value"}})}return e})();let qr=(()=>{class e{constructor(){this._validator=Vc}ngOnChanges(t){if(this.inputName in t){const r=this.normalizeInput(t[this.inputName].currentValue);this._enabled=this.enabled(r),this._validator=this._enabled?this.createValidator(r):Vc,this._onChange&&this._onChange()}}validate(t){return this._validator(t)}registerOnValidatorChange(t){this._onChange=t}enabled(t){return null!=t}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275dir=$({type:e,features:[Lt]})}return e})();const iB={provide:at,useExisting:ve(()=>bi),multi:!0};let bi=(()=>{class e extends qr{constructor(){super(...arguments),this.inputName="required",this.normalizeInput=ti,this.createValidator=t=>vI}enabled(t){return t}static#e=this.\u0275fac=(()=>{let t;return function(o){return(t||(t=Qe(e)))(o||e)}})();static#t=this.\u0275dir=$({type:e,selectors:[["","required","","formControlName","",3,"type","checkbox"],["","required","","formControl","",3,"type","checkbox"],["","required","","ngModel","",3,"type","checkbox"]],hostVars:1,hostBindings:function(r,o){2&r&&Jt("required",o._enabled?"":null)},inputs:{required:"required"},features:[Se([iB]),de]})}return e})();const aB={provide:at,useExisting:ve(()=>Jc),multi:!0};let Jc=(()=>{class e extends qr{constructor(){super(...arguments),this.inputName="email",this.normalizeInput=ti,this.createValidator=t=>_I}enabled(t){return t}static#e=this.\u0275fac=(()=>{let t;return function(o){return(t||(t=Qe(e)))(o||e)}})();static#t=this.\u0275dir=$({type:e,selectors:[["","email","","formControlName",""],["","email","","formControl",""],["","email","","ngModel",""]],inputs:{email:"email"},features:[Se([aB]),de]})}return e})();const cB={provide:at,useExisting:ve(()=>Kp),multi:!0};let Kp=(()=>{class e extends qr{constructor(){super(...arguments),this.inputName="maxlength",this.normalizeInput=t=>function sM(e){return"number"==typeof e?e:parseInt(e,10)}(t),this.createValidator=t=>function DI(e){return n=>function pI(e){return null!=e&&"number"==typeof e.length}(n.value)&&n.value.length>e?{maxlength:{requiredLength:e,actualLength:n.value.length}}:null}(t)}static#e=this.\u0275fac=(()=>{let t;return function(o){return(t||(t=Qe(e)))(o||e)}})();static#t=this.\u0275dir=$({type:e,selectors:[["","maxlength","","formControlName",""],["","maxlength","","formControl",""],["","maxlength","","ngModel",""]],hostVars:1,hostBindings:function(r,o){2&r&&Jt("maxlength",o._enabled?o.maxlength:null)},inputs:{maxlength:"maxlength"},features:[Se([cB]),de]})}return e})();const uB={provide:at,useExisting:ve(()=>eg),multi:!0};let eg=(()=>{class e extends qr{constructor(){super(...arguments),this.inputName="pattern",this.normalizeInput=t=>t,this.createValidator=t=>function wI(e){if(!e)return Vc;let n,t;return"string"==typeof e?(t="","^"!==e.charAt(0)&&(t+="^"),t+=e,"$"!==e.charAt(e.length-1)&&(t+="$"),n=new RegExp(t)):(t=e.toString(),n=e),r=>{if(hr(r.value))return null;const o=r.value;return n.test(o)?null:{pattern:{requiredPattern:t,actualValue:o}}}}(t)}static#e=this.\u0275fac=(()=>{let t;return function(o){return(t||(t=Qe(e)))(o||e)}})();static#t=this.\u0275dir=$({type:e,selectors:[["","pattern","","formControlName",""],["","pattern","","formControl",""],["","pattern","","ngModel",""]],hostVars:1,hostBindings:function(r,o){2&r&&Jt("pattern",o._enabled?o.pattern:null)},inputs:{pattern:"pattern"},features:[Se([uB]),de]})}return e})(),dB=(()=>{class e{static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275mod=Yn({type:e});static#n=this.\u0275inj=An({})}return e})(),Kc=(()=>{class e{static withConfig(t){return{ngModule:e,providers:[{provide:Di,useValue:t.callSetDisabledState??zc}]}}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275mod=Yn({type:e});static#n=this.\u0275inj=An({imports:[dB]})}return e})();class eu{}class tu{}class Gt{constructor(n){this.normalizedNames=new Map,this.lazyUpdate=null,n?"string"==typeof n?this.lazyInit=()=>{this.headers=new Map,n.split("\n").forEach(t=>{const r=t.indexOf(":");if(r>0){const o=t.slice(0,r),i=o.toLowerCase(),s=t.slice(r+1).trim();this.maybeSetNormalizedName(o,i),this.headers.has(i)?this.headers.get(i).push(s):this.headers.set(i,[s])}})}:typeof Headers<"u"&&n instanceof Headers?(this.headers=new Map,n.forEach((t,r)=>{this.setHeaderEntries(r,t)})):this.lazyInit=()=>{this.headers=new Map,Object.entries(n).forEach(([t,r])=>{this.setHeaderEntries(t,r)})}:this.headers=new Map}has(n){return this.init(),this.headers.has(n.toLowerCase())}get(n){this.init();const t=this.headers.get(n.toLowerCase());return t&&t.length>0?t[0]:null}keys(){return this.init(),Array.from(this.normalizedNames.values())}getAll(n){return this.init(),this.headers.get(n.toLowerCase())||null}append(n,t){return this.clone({name:n,value:t,op:"a"})}set(n,t){return this.clone({name:n,value:t,op:"s"})}delete(n,t){return this.clone({name:n,value:t,op:"d"})}maybeSetNormalizedName(n,t){this.normalizedNames.has(t)||this.normalizedNames.set(t,n)}init(){this.lazyInit&&(this.lazyInit instanceof Gt?this.copyFrom(this.lazyInit):this.lazyInit(),this.lazyInit=null,this.lazyUpdate&&(this.lazyUpdate.forEach(n=>this.applyUpdate(n)),this.lazyUpdate=null))}copyFrom(n){n.init(),Array.from(n.headers.keys()).forEach(t=>{this.headers.set(t,n.headers.get(t)),this.normalizedNames.set(t,n.normalizedNames.get(t))})}clone(n){const t=new Gt;return t.lazyInit=this.lazyInit&&this.lazyInit instanceof Gt?this.lazyInit:this,t.lazyUpdate=(this.lazyUpdate||[]).concat([n]),t}applyUpdate(n){const t=n.name.toLowerCase();switch(n.op){case"a":case"s":let r=n.value;if("string"==typeof r&&(r=[r]),0===r.length)return;this.maybeSetNormalizedName(n.name,t);const o=("a"===n.op?this.headers.get(t):void 0)||[];o.push(...r),this.headers.set(t,o);break;case"d":const i=n.value;if(i){let s=this.headers.get(t);if(!s)return;s=s.filter(a=>-1===i.indexOf(a)),0===s.length?(this.headers.delete(t),this.normalizedNames.delete(t)):this.headers.set(t,s)}else this.headers.delete(t),this.normalizedNames.delete(t)}}setHeaderEntries(n,t){const r=(Array.isArray(t)?t:[t]).map(i=>i.toString()),o=n.toLowerCase();this.headers.set(o,r),this.maybeSetNormalizedName(n,o)}forEach(n){this.init(),Array.from(this.normalizedNames.keys()).forEach(t=>n(this.normalizedNames.get(t),this.headers.get(t)))}}class hB{encodeKey(n){return fM(n)}encodeValue(n){return fM(n)}decodeKey(n){return decodeURIComponent(n)}decodeValue(n){return decodeURIComponent(n)}}const gB=/%(\d[a-f0-9])/gi,mB={40:"@","3A":":",24:"$","2C":",","3B":";","3D":"=","3F":"?","2F":"/"};function fM(e){return encodeURIComponent(e).replace(gB,(n,t)=>mB[t]??n)}function nu(e){return`${e}`}class mr{constructor(n={}){if(this.updates=null,this.cloneFrom=null,this.encoder=n.encoder||new hB,n.fromString){if(n.fromObject)throw new Error("Cannot specify both fromString and fromObject.");this.map=function pB(e,n){const t=new Map;return e.length>0&&e.replace(/^\?/,"").split("&").forEach(o=>{const i=o.indexOf("="),[s,a]=-1==i?[n.decodeKey(o),""]:[n.decodeKey(o.slice(0,i)),n.decodeValue(o.slice(i+1))],l=t.get(s)||[];l.push(a),t.set(s,l)}),t}(n.fromString,this.encoder)}else n.fromObject?(this.map=new Map,Object.keys(n.fromObject).forEach(t=>{const r=n.fromObject[t],o=Array.isArray(r)?r.map(nu):[nu(r)];this.map.set(t,o)})):this.map=null}has(n){return this.init(),this.map.has(n)}get(n){this.init();const t=this.map.get(n);return t?t[0]:null}getAll(n){return this.init(),this.map.get(n)||null}keys(){return this.init(),Array.from(this.map.keys())}append(n,t){return this.clone({param:n,value:t,op:"a"})}appendAll(n){const t=[];return Object.keys(n).forEach(r=>{const o=n[r];Array.isArray(o)?o.forEach(i=>{t.push({param:r,value:i,op:"a"})}):t.push({param:r,value:o,op:"a"})}),this.clone(t)}set(n,t){return this.clone({param:n,value:t,op:"s"})}delete(n,t){return this.clone({param:n,value:t,op:"d"})}toString(){return this.init(),this.keys().map(n=>{const t=this.encoder.encodeKey(n);return this.map.get(n).map(r=>t+"="+this.encoder.encodeValue(r)).join("&")}).filter(n=>""!==n).join("&")}clone(n){const t=new mr({encoder:this.encoder});return t.cloneFrom=this.cloneFrom||this,t.updates=(this.updates||[]).concat(n),t}init(){null===this.map&&(this.map=new Map),null!==this.cloneFrom&&(this.cloneFrom.init(),this.cloneFrom.keys().forEach(n=>this.map.set(n,this.cloneFrom.map.get(n))),this.updates.forEach(n=>{switch(n.op){case"a":case"s":const t=("a"===n.op?this.map.get(n.param):void 0)||[];t.push(nu(n.value)),this.map.set(n.param,t);break;case"d":if(void 0===n.value){this.map.delete(n.param);break}{let r=this.map.get(n.param)||[];const o=r.indexOf(nu(n.value));-1!==o&&r.splice(o,1),r.length>0?this.map.set(n.param,r):this.map.delete(n.param)}}}),this.cloneFrom=this.updates=null)}}class vB{constructor(){this.map=new Map}set(n,t){return this.map.set(n,t),this}get(n){return this.map.has(n)||this.map.set(n,n.defaultValue()),this.map.get(n)}delete(n){return this.map.delete(n),this}has(n){return this.map.has(n)}keys(){return this.map.keys()}}function hM(e){return typeof ArrayBuffer<"u"&&e instanceof ArrayBuffer}function pM(e){return typeof Blob<"u"&&e instanceof Blob}function gM(e){return typeof FormData<"u"&&e instanceof FormData}class ca{constructor(n,t,r,o){let i;if(this.url=t,this.body=null,this.reportProgress=!1,this.withCredentials=!1,this.responseType="json",this.method=n.toUpperCase(),function yB(e){switch(e){case"DELETE":case"GET":case"HEAD":case"OPTIONS":case"JSONP":return!1;default:return!0}}(this.method)||o?(this.body=void 0!==r?r:null,i=o):i=r,i&&(this.reportProgress=!!i.reportProgress,this.withCredentials=!!i.withCredentials,i.responseType&&(this.responseType=i.responseType),i.headers&&(this.headers=i.headers),i.context&&(this.context=i.context),i.params&&(this.params=i.params),this.transferCache=i.transferCache),this.headers??=new Gt,this.context??=new vB,this.params){const s=this.params.toString();if(0===s.length)this.urlWithParams=t;else{const a=t.indexOf("?");this.urlWithParams=t+(-1===a?"?":ad.set(g,n.setHeaders[g]),l)),n.setParams&&(c=Object.keys(n.setParams).reduce((d,g)=>d.set(g,n.setParams[g]),c)),new ca(t,r,i,{params:c,headers:l,context:u,reportProgress:a,responseType:o,withCredentials:s})}}var vr=function(e){return e[e.Sent=0]="Sent",e[e.UploadProgress=1]="UploadProgress",e[e.ResponseHeader=2]="ResponseHeader",e[e.DownloadProgress=3]="DownloadProgress",e[e.Response=4]="Response",e[e.User=5]="User",e}(vr||{});class tg{constructor(n,t=ua.Ok,r="OK"){this.headers=n.headers||new Gt,this.status=void 0!==n.status?n.status:t,this.statusText=n.statusText||r,this.url=n.url||null,this.ok=this.status>=200&&this.status<300}}class ru extends tg{constructor(n={}){super(n),this.type=vr.ResponseHeader}clone(n={}){return new ru({headers:n.headers||this.headers,status:void 0!==n.status?n.status:this.status,statusText:n.statusText||this.statusText,url:n.url||this.url||void 0})}}class Wr extends tg{constructor(n={}){super(n),this.type=vr.Response,this.body=void 0!==n.body?n.body:null}clone(n={}){return new Wr({body:void 0!==n.body?n.body:this.body,headers:n.headers||this.headers,status:void 0!==n.status?n.status:this.status,statusText:n.statusText||this.statusText,url:n.url||this.url||void 0})}}class Ei extends tg{constructor(n){super(n,0,"Unknown Error"),this.name="HttpErrorResponse",this.ok=!1,this.message=this.status>=200&&this.status<300?`Http failure during parsing for ${n.url||"(unknown url)"}`:`Http failure response for ${n.url||"(unknown url)"}: ${n.status} ${n.statusText}`,this.error=n.error||null}}var ua=function(e){return e[e.Continue=100]="Continue",e[e.SwitchingProtocols=101]="SwitchingProtocols",e[e.Processing=102]="Processing",e[e.EarlyHints=103]="EarlyHints",e[e.Ok=200]="Ok",e[e.Created=201]="Created",e[e.Accepted=202]="Accepted",e[e.NonAuthoritativeInformation=203]="NonAuthoritativeInformation",e[e.NoContent=204]="NoContent",e[e.ResetContent=205]="ResetContent",e[e.PartialContent=206]="PartialContent",e[e.MultiStatus=207]="MultiStatus",e[e.AlreadyReported=208]="AlreadyReported",e[e.ImUsed=226]="ImUsed",e[e.MultipleChoices=300]="MultipleChoices",e[e.MovedPermanently=301]="MovedPermanently",e[e.Found=302]="Found",e[e.SeeOther=303]="SeeOther",e[e.NotModified=304]="NotModified",e[e.UseProxy=305]="UseProxy",e[e.Unused=306]="Unused",e[e.TemporaryRedirect=307]="TemporaryRedirect",e[e.PermanentRedirect=308]="PermanentRedirect",e[e.BadRequest=400]="BadRequest",e[e.Unauthorized=401]="Unauthorized",e[e.PaymentRequired=402]="PaymentRequired",e[e.Forbidden=403]="Forbidden",e[e.NotFound=404]="NotFound",e[e.MethodNotAllowed=405]="MethodNotAllowed",e[e.NotAcceptable=406]="NotAcceptable",e[e.ProxyAuthenticationRequired=407]="ProxyAuthenticationRequired",e[e.RequestTimeout=408]="RequestTimeout",e[e.Conflict=409]="Conflict",e[e.Gone=410]="Gone",e[e.LengthRequired=411]="LengthRequired",e[e.PreconditionFailed=412]="PreconditionFailed",e[e.PayloadTooLarge=413]="PayloadTooLarge",e[e.UriTooLong=414]="UriTooLong",e[e.UnsupportedMediaType=415]="UnsupportedMediaType",e[e.RangeNotSatisfiable=416]="RangeNotSatisfiable",e[e.ExpectationFailed=417]="ExpectationFailed",e[e.ImATeapot=418]="ImATeapot",e[e.MisdirectedRequest=421]="MisdirectedRequest",e[e.UnprocessableEntity=422]="UnprocessableEntity",e[e.Locked=423]="Locked",e[e.FailedDependency=424]="FailedDependency",e[e.TooEarly=425]="TooEarly",e[e.UpgradeRequired=426]="UpgradeRequired",e[e.PreconditionRequired=428]="PreconditionRequired",e[e.TooManyRequests=429]="TooManyRequests",e[e.RequestHeaderFieldsTooLarge=431]="RequestHeaderFieldsTooLarge",e[e.UnavailableForLegalReasons=451]="UnavailableForLegalReasons",e[e.InternalServerError=500]="InternalServerError",e[e.NotImplemented=501]="NotImplemented",e[e.BadGateway=502]="BadGateway",e[e.ServiceUnavailable=503]="ServiceUnavailable",e[e.GatewayTimeout=504]="GatewayTimeout",e[e.HttpVersionNotSupported=505]="HttpVersionNotSupported",e[e.VariantAlsoNegotiates=506]="VariantAlsoNegotiates",e[e.InsufficientStorage=507]="InsufficientStorage",e[e.LoopDetected=508]="LoopDetected",e[e.NotExtended=510]="NotExtended",e[e.NetworkAuthenticationRequired=511]="NetworkAuthenticationRequired",e}(ua||{});function ng(e,n){return{body:n,headers:e.headers,context:e.context,observe:e.observe,params:e.params,reportProgress:e.reportProgress,responseType:e.responseType,withCredentials:e.withCredentials,transferCache:e.transferCache}}let rg=(()=>{class e{constructor(t){this.handler=t}request(t,r,o={}){let i;if(t instanceof ca)i=t;else{let l,c;l=o.headers instanceof Gt?o.headers:new Gt(o.headers),o.params&&(c=o.params instanceof mr?o.params:new mr({fromObject:o.params})),i=new ca(t,r,void 0!==o.body?o.body:null,{headers:l,context:o.context,params:c,reportProgress:o.reportProgress,responseType:o.responseType||"json",withCredentials:o.withCredentials,transferCache:o.transferCache})}const s=B(i).pipe(oi(l=>this.handler.handle(l)));if(t instanceof ca||"events"===o.observe)return s;const a=s.pipe(on(l=>l instanceof Wr));switch(o.observe||"body"){case"body":switch(i.responseType){case"arraybuffer":return a.pipe(J(l=>{if(null!==l.body&&!(l.body instanceof ArrayBuffer))throw new Error("Response is not an ArrayBuffer.");return l.body}));case"blob":return a.pipe(J(l=>{if(null!==l.body&&!(l.body instanceof Blob))throw new Error("Response is not a Blob.");return l.body}));case"text":return a.pipe(J(l=>{if(null!==l.body&&"string"!=typeof l.body)throw new Error("Response is not a string.");return l.body}));default:return a.pipe(J(l=>l.body))}case"response":return a;default:throw new Error(`Unreachable: unhandled observe type ${o.observe}}`)}}delete(t,r={}){return this.request("DELETE",t,r)}get(t,r={}){return this.request("GET",t,r)}head(t,r={}){return this.request("HEAD",t,r)}jsonp(t,r){return this.request("JSONP",t,{params:(new mr).append(r,"JSONP_CALLBACK"),observe:"body",responseType:"json"})}options(t,r={}){return this.request("OPTIONS",t,r)}patch(t,r,o={}){return this.request("PATCH",t,ng(o,r))}post(t,r,o={}){return this.request("POST",t,ng(o,r))}put(t,r,o={}){return this.request("PUT",t,ng(o,r))}static#e=this.\u0275fac=function(r){return new(r||e)(P(eu))};static#t=this.\u0275prov=R({token:e,factory:e.\u0275fac})}return e})();function vM(e,n){return n(e)}function EB(e,n){return(t,r)=>n.intercept(t,{handle:o=>e(o,r)})}const MB=new N(""),da=new N(""),yM=new N(""),_M=new N("");function SB(){let e=null;return(n,t)=>{null===e&&(e=(T(MB,{optional:!0})??[]).reduceRight(EB,vM));const r=T(Ko),o=r.add();return e(n,t).pipe($s(()=>r.remove(o)))}}let CM=(()=>{class e extends eu{constructor(t,r){super(),this.backend=t,this.injector=r,this.chain=null,this.pendingTasks=T(Ko);const o=T(_M,{optional:!0});this.backend=o??t}handle(t){if(null===this.chain){const o=Array.from(new Set([...this.injector.get(da),...this.injector.get(yM,[])]));this.chain=o.reduceRight((i,s)=>function IB(e,n,t){return(r,o)=>Kn(t,()=>n(r,i=>e(i,o)))}(i,s,this.injector),vM)}const r=this.pendingTasks.add();return this.chain(t,o=>this.backend.handle(o)).pipe($s(()=>this.pendingTasks.remove(r)))}static#e=this.\u0275fac=function(r){return new(r||e)(P(tu),P(Nt))};static#t=this.\u0275prov=R({token:e,factory:e.\u0275fac})}return e})();const RB=/^\)\]\}',?\n/;let wM=(()=>{class e{constructor(t){this.xhrFactory=t}handle(t){if("JSONP"===t.method)throw new M(-2800,!1);const r=this.xhrFactory;return(r.\u0275loadImpl?Ye(r.\u0275loadImpl()):B(null)).pipe(rn(()=>new Ve(i=>{const s=r.build();if(s.open(t.method,t.urlWithParams),t.withCredentials&&(s.withCredentials=!0),t.headers.forEach((_,D)=>s.setRequestHeader(_,D.join(","))),t.headers.has("Accept")||s.setRequestHeader("Accept","application/json, text/plain, */*"),!t.headers.has("Content-Type")){const _=t.detectContentTypeHeader();null!==_&&s.setRequestHeader("Content-Type",_)}if(t.responseType){const _=t.responseType.toLowerCase();s.responseType="json"!==_?_:"text"}const a=t.serializeBody();let l=null;const c=()=>{if(null!==l)return l;const _=s.statusText||"OK",D=new Gt(s.getAllResponseHeaders()),I=function OB(e){return"responseURL"in e&&e.responseURL?e.responseURL:/^X-Request-URL:/m.test(e.getAllResponseHeaders())?e.getResponseHeader("X-Request-URL"):null}(s)||t.url;return l=new ru({headers:D,status:s.status,statusText:_,url:I}),l},u=()=>{let{headers:_,status:D,statusText:I,url:w}=c(),x=null;D!==ua.NoContent&&(x=typeof s.response>"u"?s.responseText:s.response),0===D&&(D=x?ua.Ok:0);let L=D>=200&&D<300;if("json"===t.responseType&&"string"==typeof x){const H=x;x=x.replace(RB,"");try{x=""!==x?JSON.parse(x):null}catch(ge){x=H,L&&(L=!1,x={error:ge,text:x})}}L?(i.next(new Wr({body:x,headers:_,status:D,statusText:I,url:w||void 0})),i.complete()):i.error(new Ei({error:x,headers:_,status:D,statusText:I,url:w||void 0}))},d=_=>{const{url:D}=c(),I=new Ei({error:_,status:s.status||0,statusText:s.statusText||"Unknown Error",url:D||void 0});i.error(I)};let g=!1;const m=_=>{g||(i.next(c()),g=!0);let D={type:vr.DownloadProgress,loaded:_.loaded};_.lengthComputable&&(D.total=_.total),"text"===t.responseType&&s.responseText&&(D.partialText=s.responseText),i.next(D)},v=_=>{let D={type:vr.UploadProgress,loaded:_.loaded};_.lengthComputable&&(D.total=_.total),i.next(D)};return s.addEventListener("load",u),s.addEventListener("error",d),s.addEventListener("timeout",d),s.addEventListener("abort",d),t.reportProgress&&(s.addEventListener("progress",m),null!==a&&s.upload&&s.upload.addEventListener("progress",v)),s.send(a),i.next({type:vr.Sent}),()=>{s.removeEventListener("error",d),s.removeEventListener("abort",d),s.removeEventListener("load",u),s.removeEventListener("timeout",d),t.reportProgress&&(s.removeEventListener("progress",m),null!==a&&s.upload&&s.upload.removeEventListener("progress",v)),s.readyState!==s.DONE&&s.abort()}})))}static#e=this.\u0275fac=function(r){return new(r||e)(P(_b))};static#t=this.\u0275prov=R({token:e,factory:e.\u0275fac})}return e})();const sg=new N(""),bM=new N("",{providedIn:"root",factory:()=>"XSRF-TOKEN"}),EM=new N("",{providedIn:"root",factory:()=>"X-XSRF-TOKEN"});class IM{}let FB=(()=>{class e{constructor(t,r,o){this.doc=t,this.platform=r,this.cookieName=o,this.lastCookieString="",this.lastToken=null,this.parseCount=0}getToken(){if("server"===this.platform)return null;const t=this.doc.cookie||"";return t!==this.lastCookieString&&(this.parseCount++,this.lastToken=ub(t,this.cookieName),this.lastCookieString=t),this.lastToken}static#e=this.\u0275fac=function(r){return new(r||e)(P(It),P(nr),P(bM))};static#t=this.\u0275prov=R({token:e,factory:e.\u0275fac})}return e})();function LB(e,n){const t=e.url.toLowerCase();if(!T(sg)||"GET"===e.method||"HEAD"===e.method||t.startsWith("http://")||t.startsWith("https://"))return n(e);const r=T(IM).getToken(),o=T(EM);return null!=r&&!e.headers.has(o)&&(e=e.clone({headers:e.headers.set(o,r)})),n(e)}var yr=function(e){return e[e.Interceptors=0]="Interceptors",e[e.LegacyInterceptors=1]="LegacyInterceptors",e[e.CustomXsrfConfiguration=2]="CustomXsrfConfiguration",e[e.NoXsrfProtection=3]="NoXsrfProtection",e[e.JsonpSupport=4]="JsonpSupport",e[e.RequestsMadeViaParent=5]="RequestsMadeViaParent",e[e.Fetch=6]="Fetch",e}(yr||{});const MM=new N("");class zB{constructor(){this.name="",this.email="",this.message=""}}let OM=(()=>{class e{constructor(t){this.httpClient=t}postContactForm(t){return this.httpClient.post(`${Ce_apiBaseUrl}contact`,t)}static#e=this.\u0275fac=function(r){return new(r||e)(P(rg))};static#t=this.\u0275prov=R({token:e,factory:e.\u0275fac})}return e})();function qB(e,n){if(1&e){const t=Fe();h(0,"form",4,5),O("ngSubmit",function(){return oe(t),ie(k().submit())}),h(2,"div",6)(3,"label",7),f(4,"Name "),h(5,"span",8),f(6,"*"),p()(),h(7,"input",9),O("ngModelChange",function(o){return oe(t),ie(k().contactViewModel.name=o)}),p()(),h(8,"div",6)(9,"label",10),f(10,"Email address "),h(11,"span",8),f(12,"*"),p()(),h(13,"input",11),O("ngModelChange",function(o){return oe(t),ie(k().contactViewModel.email=o)}),p()(),h(14,"div",6)(15,"label",12),f(16,"Message "),h(17,"span",8),f(18,"*"),p()(),h(19,"textarea",13),O("ngModelChange",function(o){return oe(t),ie(k().contactViewModel.message=o)}),p()(),h(20,"button",14),f(21,"Submit"),p()()}if(2&e){const t=eh(1),r=k();C(7),E("ngModel",r.contactViewModel.name),C(6),E("ngModel",r.contactViewModel.email),C(6),E("ngModel",r.contactViewModel.message),C(),E("disabled",!t.valid||r.enableFormCountDown>0)}}function WB(e,n){1&e&&(h(0,"p"),f(1,"Thanks for your message."),p())}function ZB(e,n){1&e&&(h(0,"p",15),f(1,"Something went wrong. Please try again later."),p())}let YB=(()=>{class e{constructor(t){this.contactService=t,this.contactViewModel=new zB,this.success=!1,this.error=!1,this.enableFormCountDown=100,this.intervalId=null}ngOnInit(){this.intervalId=setInterval(()=>{this.enableFormCountDown-=1,0===this.enableFormCountDown&&clearInterval(this.intervalId)},50)}ngOnDestroy(){this.intervalId&&clearInterval(this.intervalId)}submit(){this.contactService.postContactForm(this.contactViewModel).subscribe({next:t=>{console.log("Submitted form"),this.success=!0},error:t=>{console.error(t),this.error=!0},complete:()=>console.info("complete")})}static#e=this.\u0275fac=function(r){return new(r||e)(S(OM))};static#t=this.\u0275cmp=St({type:e,selectors:[["app-contact-component"]],standalone:!0,features:[kt],decls:6,vars:3,consts:[[1,"container"],[1,"mb-4"],["method","post"],["class","text-danger"],["method","post",3,"ngSubmit"],["contactForm","ngForm"],[1,"mb-3"],["for","Name"],[1,"required"],["type","text","id","Name","name","Name","required","",1,"form-control",3,"ngModel","ngModelChange"],["for","Email"],["type","email","id","Email","name","Email","email","","required","",1,"form-control",3,"ngModel","ngModelChange"],["for","Message"],["rows","7","id","Message","name","Message","required","",1,"form-control",3,"ngModel","ngModelChange"],["type","submit",1,"btn","btn-primary",3,"disabled"],[1,"text-danger"]],template:function(r,o){1&r&&(h(0,"div",0)(1,"h1",1),f(2,"Contact"),p(),q(3,qB,22,4,"form",2)(4,WB,2,0,"p")(5,ZB,2,0,"p",3),p()),2&r&&(C(3),Zo(3,o.success||o.error?-1:3),C(),Zo(4,o.success?4:-1),C(),Zo(5,o.error?5:-1))},dependencies:[Kc,Qc,_i,Uc,Bc,bi,Jc,la,wi]})}return e})();const kM=()=>["/pro"];let QB=(()=>{class e{scrollToAnchor(t){return document.querySelector(t)?.scrollIntoView(!0),!1}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275cmp=St({type:e,selectors:[["app-features-component"]],standalone:!0,features:[kt],decls:131,vars:4,consts:[[1,"container"],[1,"mb-4"],["id","coveragequota"],[1,"pro-text"],["href","https://en.wikipedia.org/wiki/Code_coverage","target","_blank"],[1,"fa-solid","fa-arrow-up-right-from-square"],[3,"routerLink"],[1,"pro-button","pro-button-tiny"],["loading","lazy","srcset","resources/features/quota@1x.webp 1x, resources/features/quota@2x.webp 2x","src","resources/features/quota1x.webp","alt","Coverage quotas",1,"img-fluid"],["id","coveragehistory",1,"mt-5"],["loading","lazy","srcset","resources/features/history@1x.webp 1x, resources/features/history@2x.webp 2x","src","resources/features/history@1x.webp","alt","Coverage history",1,"img-fluid"],["id","summary",1,"mt-5"],["loading","lazy","srcset","resources/features/summary@1x.webp 1x, resources/features/summary@2x.webp 2x","src","resources/features/summary.webp","alt","Summary table / Overview",1,"img-fluid"],["id","details",1,"mt-5"],["loading","lazy","srcset","resources/features/details@1x.webp 1x, resources/features/details@2x.webp 2x","src","resources/features/details.webp","alt","Details",1,"img-fluid"],["id","metrics",1,"mt-5"],["href","https://github.com/danielpalme/ReportGenerator/wiki/FAQ#which-coverage-tool-supports-which-features-in-the-html-report","target","_blank"],["href","",3,"click"],["loading","lazy","srcset","resources/features/metrics_details@1x.webp 1x, resources/features/metrics_details@2x.webp 2x","src","resources/features/metrics_details.webp","alt","Metrics - Details",1,"img-fluid"],["loading","lazy","srcset","resources/features/metrics_summary@1x.webp 1x, resources/features/metrics_summary@2x.webp 2x","src","resources/features/metrics_summary.webp","alt","Metrics - Summary",1,"img-fluid"],["id","riskhotspots",1,"mt-5"],["href","https://en.wikipedia.org/wiki/Cyclomatic_complexity","target","_blank"],["href","https://modess.io/npath-complexity-cyclomatic-complexity-explained","target","_blank"],["href","https://testing.googleblog.com/2011/02/this-code-is-crap.html","target","_blank"],["loading","lazy","srcset","resources/features/riskhotspots@1x.webp 1x, resources/features/riskhotspots@2x.webp 2x","src","resources/features/riskhotspots.webp","alt","Risk Hotspots",1,"img-fluid"]],template:function(r,o){1&r&&(h(0,"div",0)(1,"h1",1),f(2,"Features"),p(),h(3,"h2",2),f(4,"Coverage quotas"),p(),h(5,"p"),f(6," The overiew cards provide a quick "),h(7,"span",3),f(8,"overview"),p(),f(9," of your coverage quotas."),y(10,"br"),f(11," You can use them to get a glimpse into the different "),h(12,"a",4),f(13,"coverage metrics"),p(),f(14,"\xa0"),h(15,"a",4),y(16,"i",5),p(),f(17,": "),p(),h(18,"ul")(19,"li"),f(20,"Line coverage"),p(),h(21,"li"),f(22,"Branch coverage"),p(),h(23,"li"),f(24,"Method coverage "),h(25,"a",6)(26,"span",7),f(27,"PRO"),p()()()(),y(28,"img",8)(29,"br"),h(30,"h2",9),f(31,"Coverage history"),p(),h(32,"p"),f(33," The history chart helps you to understand how your coverage quotas are "),h(34,"span",3),f(35,"evolving over time"),p(),f(36,". "),p(),y(37,"img",10)(38,"br"),h(39,"h2",11),f(40,"Summary table / Overview"),p(),h(41,"p"),f(42," The summary table helps you to identify classes with "),h(43,"span",3),f(44,"low test coverage"),p(),f(45,"."),y(46,"br"),f(47," The table offers various "),h(48,"span",3),f(49,"filter and sorting"),p(),f(50," options for quick navigation. "),p(),y(51,"img",12)(52,"br"),h(53,"h2",13),f(54,"Details page"),p(),h(55,"p"),f(56," The details page visualizes your "),h(57,"span",3),f(58,"line and branch coverage"),p(),f(59,". "),p(),h(60,"ul")(61,"li"),f(62,"Colors indicate the coverage status of each line."),p(),h(63,"li"),f(64,"Branch indicators help you to identity uncovered conditions."),p()(),y(65,"img",14)(66,"br"),h(67,"h2",15),f(68,"Metrics"),p(),h(69,"p"),f(70," Depending on your "),h(71,"a",16),f(72,"coverage tool"),p(),f(73,", metrics are provided to get further insigths in your "),h(74,"span",3),f(75,"code quality"),p(),f(76,". "),p(),h(77,"ul")(78,"li"),f(79,"The "),h(80,"a",17),O("click",function(){return o.scrollToAnchor("#details")}),f(81,"details page"),p(),f(82," contains information about the metrics of all methods of a class."),p(),h(83,"li"),f(84,"The "),h(85,"a",17),O("click",function(){return o.scrollToAnchor("#summary")}),f(86,"summary table"),p(),f(87," shows the lowest metrics of all methods of a class "),h(88,"a",6)(89,"span",7),f(90,"PRO"),p()()()(),h(91,"b"),f(92,"Details page"),p(),y(93,"br")(94,"img",18)(95,"br")(96,"br"),h(97,"b"),f(98,"Summary table"),p(),y(99,"br")(100,"img",19)(101,"br"),h(102,"h2",20),f(103,"Risk Hotspots"),p(),h(104,"p"),f(105," Based on the "),h(106,"a",17),O("click",function(){return o.scrollToAnchor("#metrics")}),f(107,"metrics"),p(),f(108," you get a list of potential risk hotspots."),y(109,"br"),f(110," The following metrics are analyzed if available, the warning thresholds are configurable: "),p(),h(111,"ul")(112,"li")(113,"a",21),f(114,"Cyclomatic complexity"),p(),f(115,"\xa0"),h(116,"a",21),y(117,"i",5),p()(),h(118,"li")(119,"a",22),f(120,"NPath complexity"),p(),f(121,"\xa0"),h(122,"a",22),y(123,"i",5),p()(),h(124,"li")(125,"a",23),f(126,"Crap score"),p(),f(127,"\xa0"),h(128,"a",23),y(129,"i",5),p()()(),y(130,"img",24),p()),2&r&&(C(25),E("routerLink",te(2,kM)),C(63),E("routerLink",te(3,kM)))},dependencies:[In]})}return e})();const zt={dotnetSDKVersion:"8.x",majorVersion:"5",version:"5.2.1"},XB=()=>["/usage"];let JB=(()=>{class e{constructor(){this.versions=zt}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275cmp=St({type:e,selectors:[["app-getstarted"]],standalone:!0,features:[kt],decls:72,vars:6,consts:[[1,"container"],[1,"mb-4"],[3,"routerLink"],["id","net",1,"mt-5"],["href","https://github.com/coverlet-coverage/coverlet"],["href","https://github.com/SteveGilham/altcover"],[1,"text-dark","bg-light","p-2","border"],["id","java",1,"mt-5"],["href","https://github.com/jacoco/jacoco"],["id","nodejs",1,"mt-5"],["href","https://github.com/istanbuljs/nyc"]],template:function(r,o){1&r&&(h(0,"div",0)(1,"h1",1),f(2,"Get started"),p(),h(3,"h2"),f(4,"General"),p(),h(5,"p"),f(6,"In general you need a tool that instruments your test code and collects coverage information."),y(7,"br"),f(8,"This information is typically stored in a XML file (e.g. in Cobertura format)."),y(9,"br"),h(10,"em"),f(11,"ReportGenerator"),p(),f(12," uses this file and generates a report in HTML format (other formats are available)."),p(),h(13,"p"),f(14,"Use the online "),h(15,"a",2),f(16,"configuration tool"),p(),f(17," to get started quickly."),p(),h(18,"h2",3),f(19,".NET"),p(),h(20,"p"),f(21,"For .NET you can use "),h(22,"a",4),f(23,"coverlet"),p(),f(24," or "),h(25,"a",5),f(26,"altcover"),p(),f(27," for instrumenting your test code."),p(),h(28,"p"),f(29,"After adding the dependencies to your project, you can execute your tests and generate the coverage report."),p(),h(30,"p")(31,"strong"),f(32,"Add dependencies to your "),h(33,"code"),f(34,"*.csproj"),p(),f(35," file:"),p()(),h(36,"pre",6),f(37),p(),h(38,"p")(39,"strong"),f(40,"Execute tests and create coverage report"),p()(),h(41,"pre",6),f(42),p(),h(43,"h2",7),f(44,"Java"),p(),h(45,"p"),f(46,"For Java you can use "),h(47,"a",8),f(48,"JaCoCo"),p(),f(49," for instrumenting your test code.\nAfter adding JaCoCo to your project (here with Maven), you can execute your tests and generate the coverage report."),p(),h(50,"p")(51,"strong"),f(52,"Add dependencies to your "),h(53,"code"),f(54,"pom.xml"),p(),f(55," file:"),p()(),h(56,"pre",6),f(57,"\n \n \n \n org.jacoco\n jacoco-maven-plugin\n 0.8.6\n \n \n \n prepare-agent\n \n \n \n report\n prepare-package\n \n report\n \n \n \n \n \n \n \n \n \n org.jacoco\n jacoco-maven-plugin\n \n \n \n report\n \n \n \n \n \n \n\n"),p(),h(58,"p")(59,"strong"),f(60,"Execute tests and create coverage report"),p()(),h(61,"pre",6),f(62),p(),h(63,"h2",9),f(64,"NodeJS"),p(),h(65,"p"),f(66,"For NodeJS you can use "),h(67,"a",10),f(68,"Istanbul"),p(),f(69," for instrumenting your test code.\nAfter installing Istanbul, you can execute your tests and generate the coverage report."),p(),h(70,"pre",6),f(71),p()()),2&r&&(C(15),E("routerLink",te(5,XB)),C(22),Un('\n \n runtime; build; native; contentfiles; analyzers; buildtransitive\n all\n \n \n \n \n all\n runtime; build; native; contentfiles; analyzers\n \n\n'),C(5),Un('dotnet test --collect:"XPlat Code Coverage"\n"%UserProfile%\\.nuget\\packages\\reportgenerator\\',o.versions.version,'\\tools\\net8.0\\ReportGenerator.exe" -reports:*\\TestResults\\*\\coverage.cobertura.xml -targetdir:coveragereport\n'),C(20),Un("mvn test jacoco:report\n\ndotnet tool update dotnet-reportgenerator-globaltool --tool-path tools --version ",o.versions.version,"\ntools\\reportgenerator -reports:target\\site\\jacoco\\jacoco.xml -targetdir:coveragereport -sourcedirs:src\\main\\java\n"),C(9),Un("npm i nyc --save-dev\nnyc --reporter=coberatura mocha\n\ndotnet tool update dotnet-reportgenerator-globaltool --tool-path tools --version ",o.versions.version,"\ntools\\reportgenerator -reports:coverage/cobertura-coverage.xml -targetdir:coveragereport\n"))},dependencies:[In]})}return e})(),PM=(()=>{class e{static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275cmp=St({type:e,selectors:[["app-testimonials"]],standalone:!0,features:[kt],decls:30,vars:0,consts:[[1,"container-fluid","mt-5","pt-5","pb-5","bg-light"],[1,"container"],[1,"text-center"],[1,"row","mt-5"],[1,"col","text-center"],[1,"fa-brands","fa-microsoft","h1","text-secondary"],["href","https://github.com/dotnet/runtime/blob/main/docs/workflow/building/libraries/code-coverage.md","target","_blank",1,"text-dark","d-none","d-lg-block"],[1,"fa-brands","fa-google","h1","text-secondary"],["href","https://github.com/GoogleCloudPlatform/iam-windows-authenticator","target","_blank",1,"text-dark","d-none","d-lg-block"],[1,"fa-brands","fa-aws","h1","text-secondary"],["href","https://github.com/aws/aws-encryption-sdk-dafny/blob/mainline/aws-encryption-sdk-net/README.md","target","_blank",1,"text-dark","d-none","d-lg-block"],[1,"col","text-center","d-none","d-lg-block"],[1,"fa-solid","fa-heart","h1","text-secondary"],["href","https://github.com/danielpalme/ReportGenerator/network/dependents","target","_blank",1,"text-dark"],["href","https://www.nuget.org/packages?q=ReportGenerator+danielpalme","target","_blank",1,"btn","btn-outline-secondary"],[1,"fa-solid","fa-download"]],template:function(r,o){1&r&&(h(0,"section",0)(1,"div",1)(2,"h2",2),f(3,"Code coverage reports trusted by"),p(),h(4,"div",3)(5,"div",4),y(6,"i",5)(7,"br"),h(8,"a",6),f(9,".NET Runtime"),p()(),h(10,"div",4),y(11,"i",7)(12,"br"),h(13,"a",8),f(14,"Google Cloud"),p()(),h(15,"div",4),y(16,"i",9)(17,"br"),h(18,"a",10),f(19,"AWS Encryption SDK"),p()(),h(20,"div",11),y(21,"i",12)(22,"br"),h(23,"a",13),f(24,"Many more"),p()()(),h(25,"div",3)(26,"div",4)(27,"a",14),y(28,"i",15),f(29," Over 70 million downloads on Nuget"),p()()()()())},encapsulation:2})}return e})();const KB=()=>["/pro"],e$=()=>["/usage"],t$=()=>["/getstarted"],n$=()=>["/features"];let r$=(()=>{class e{static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275cmp=St({type:e,selectors:[["app-home"]],standalone:!0,features:[kt],decls:114,vars:8,consts:[[1,"container"],[1,"row"],[1,"col-4","col-md-3"],["src","resources/logo.svg","alt","Logo ReportGenerator",1,"img-fluid"],[1,"col-xs-12","col-md-9","ps-4"],[1,"mt-5"],[1,"line","btn-primary"],[1,"mt-4","h5"],[1,"pro-text"],["href","resources/reports/Html/index.html","target","_blank",1,"btn","btn-primary","me-2","mb-2"],[1,"fa-solid","fa-eye"],[1,"row","mt-5"],[1,"col-sm-12","col-md-4"],[1,"icon"],[1,"fa-solid","fa-scale-balanced"],[1,"h5","ms-3","mt-3"],[1,"mt-3"],[3,"routerLink"],[1,"col-sm-12","col-md-4","mt-4","mt-md-0"],[1,"fa-solid","fa-lightbulb"],[1,"fa-solid","fa-plug"],["href","https://github.com/marketplace/actions/reportgenerator","target","_blank"],["href","https://marketplace.visualstudio.com/items?itemName=Palmmedia.reportgenerator","target","_blank"],[1,"col"],[1,"btn","btn-primary","me-2","mb-2",3,"routerLink"],[1,"fa-solid","fa-wrench"],["href","https://github.com/danielpalme/ReportGenerator","target","_blank",1,"btn","btn-outline-dark","mb-2"],[1,"fa-brands","fa-github"],[1,"container-fluid","mt-5","pt-5","pb-5"],["href","resources/reports/Html/index.html","target","_blank"],["href","https://danielpalme.github.io/ReportGenerator/resources/SampleReports.zip"],[1,"col-sm-12","col-md-6","pb-2"],["href","resources/screenshot1@2x.webp"],["loading","lazy","srcset","resources/screenshot1.webp 1x, resources/screenshot1@2x.webp 2x","src","resources/screenshot1.webp","alt","Screenshot",1,"img-fluid"],[1,"col-sm-12","col-md-6"],["href","resources/screenshot2@2x.webp"],["loading","lazy","srcset","resources/screenshot2.webp 1x, resources/screenshot2@2x.webp 2x","src","resources/screenshot2.webp","alt","Screenshot",1,"img-fluid"]],template:function(r,o){1&r&&(h(0,"section",0)(1,"div",1)(2,"div",2),y(3,"img",3),p(),h(4,"div",4)(5,"h1"),f(6,"ReportGenerator"),p(),h(7,"h2",5),f(8,"Powerful code coverage visualization"),p(),h(9,"div",6),f(10,"\xa0"),p(),h(11,"div",7)(12,"p")(13,"i"),f(14,"ReportGenerator"),p(),f(15," converts "),h(16,"span",8),f(17,"coverage reports"),p(),f(18," generated by coverlet, OpenCover, dotCover, Visual Studio, NCover, Cobertura, JaCoCo, Clover, gcov or lcov into "),h(19,"span",8),f(20,"human readable reports in various formats"),p(),f(21,"."),p(),h(22,"p"),f(23,"The reports show the "),h(24,"span",8),f(25,"coverage quotas"),p(),f(26," and also visualize which lines of your source code have been covered."),p(),h(27,"p")(28,"a",9),y(29,"i",10),f(30," Browse example report"),p()()()()(),h(31,"div",11)(32,"div",12)(33,"div",13),y(34,"i",14),p(),h(35,"span",15),f(36,"Open source"),p(),h(37,"p",16)(38,"i"),f(39,"ReportGenerator"),p(),f(40," is open source under the permissive Apache License."),p(),h(41,"p"),f(42,"It's free to use."),y(43,"br"),f(44,"The "),h(45,"a",17),f(46,"PRO"),p(),f(47," version offers additional features."),p()(),h(48,"div",18)(49,"div",13),y(50,"i",19),p(),h(51,"span",15),f(52,"Easy to use"),p(),h(53,"p",16)(54,"i"),f(55,"ReportGenerator"),p(),f(56," is a command line tool which only requires a "),h(57,"a",17),f(58,"few parameters"),p(),f(59,"."),p(),h(60,"p"),f(61,"Integration into your build pipeline will only take a couple of minutes."),p()(),h(62,"div",18)(63,"div",13),y(64,"i",20),p(),h(65,"span",15),f(66,"Integration"),p(),h(67,"p",16)(68,"i"),f(69,"ReportGenerator"),p(),f(70," works on Windows, Linux and macOS."),p(),h(71,"p"),f(72,"Support for "),h(73,"a",21),f(74,"GitHub actions"),p(),f(75," and "),h(76,"a",22),f(77,"Azure DevOps"),p(),f(78," is available."),p()()(),h(79,"div",11)(80,"div",23)(81,"a",24),y(82,"i",25),f(83," Learn how to use"),p(),h(84,"a",26),y(85,"i",27),f(86," GitHub"),p()()()(),y(87,"app-testimonials"),h(88,"section",28)(89,"div",0)(90,"h2"),f(91,"Screenshots"),p(),h(92,"p"),f(93,"The screenshots show two snippets of the generated code coverage reports."),p(),h(94,"p"),f(95," Have a look the "),h(96,"a",17),f(97,"features page"),p(),f(98," to explore the elements in a coverage report or "),h(99,"a",29),f(100,"browse the example report"),p(),f(101,". "),y(102,"br"),f(103," You can also download "),h(104,"a",30),f(105,"sample reports"),p(),f(106," of all supported output formats."),p(),h(107,"div",1)(108,"div",31)(109,"a",32),y(110,"img",33),p()(),h(111,"div",34)(112,"a",35),y(113,"img",36),p()()()()()),2&r&&(C(45),E("routerLink",te(4,KB)),C(12),E("routerLink",te(5,e$)),C(24),E("routerLink",te(6,t$)),C(15),E("routerLink",te(7,n$)))},dependencies:[In,PM],styles:[".h5[_ngcontent-%COMP%]{font-weight:300}section[_ngcontent-%COMP%]:first-of-type{padding-top:120px;min-height:calc(100vh - 171px)}.icon[_ngcontent-%COMP%]{background-color:#2e89df;background-image:linear-gradient(50deg,var(--rg-gradient-from) 0%,var(--rg-gradient-to) 100%);height:50px;width:50px;border-radius:8px;text-align:center;color:#fff;line-height:50px;font-size:1.5rem;display:inline-block}@media (max-width: 767px){section[_ngcontent-%COMP%]:first-of-type{padding-top:40px}}"]})}return e})(),o$=(()=>{class e{static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275cmp=St({type:e,selectors:[["app-not-found"]],standalone:!0,features:[kt],decls:5,vars:0,consts:[[1,"container"],[1,"mb-4"],[1,"fa-solid","fa-triangle-exclamation","fs-1","me-4"]],template:function(r,o){1&r&&(h(0,"div",0)(1,"h1",1),f(2,"Not found"),p(),y(3,"i",2),f(4," The requested page does not exist.\n"),p())}})}return e})();class FM{constructor(){this.error=null,this.licenses=[]}}class i${constructor(){this.error=null,this.isSponsor=!1,this.license=null}}let LM=(()=>{class e{initCodeFlow(){const o=`https://github.com/login/oauth/authorize?response_type=code&client_id=ecab9484932b59a12fd4&state=${this.createAndSaveNonce()}&redirect_uri=${window.location.origin}/pro`;console.log("Redirecting to: "+o),location.href=o}validateStateAndExtractCode(){let t=location.href;const r=t.indexOf("?");r>-1&&(t=t.substring(r+1));const o=this.parseQueryString(t);return o.state&&o.code&&this.validateNonce(o.state)?o.code:null}createAndSaveNonce(){const t=this.createNonce();return typeof window.localStorage<"u"&&localStorage.setItem("nonce",t),t}validateNonce(t){let r;return typeof window.localStorage<"u"&&(r=localStorage.getItem("nonce"),localStorage.removeItem("nonce")),r&&0!==r.length?r===t||(console.error("Validating nonce failed. Values do not match.",r,t),!1):(console.error("Validating nonce failed. No saved nonce available.",r,t),!1)}createNonce(){const t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~";let r=45,o="";const i=typeof self>"u"?null:self.crypto||self.msCrypto;if(i){let a=new Uint8Array(r);i.getRandomValues(a),a.map||(a.map=Array.prototype.map);const l=[];for(var s=0;s0&&(c=decodeURIComponent(a),u=decodeURIComponent(l),"/"===c.substring(0,1)&&(c=c.substring(1)),r[c]=u);return r}base64UrlEncode(t){return btoa(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=R({token:e,factory:e.\u0275fac})}return e})(),VM=(()=>{class e{constructor(t){this.httpClient=t}getLicense(t){return this.httpClient.get(`${Ce_apiBaseUrl}reportgenerator/license?code=${encodeURIComponent(t)}`)}getTrialLicense(t){return this.httpClient.post(`${Ce_apiBaseUrl}reportgenerator/triallicense`,t)}getPaddleLicense(t){return this.httpClient.post(`${Ce_apiBaseUrl}reportgenerator/paddlelicense`,t)}static#e=this.\u0275fac=function(r){return new(r||e)(P(rg))};static#t=this.\u0275prov=R({token:e,factory:e.\u0275fac})}return e})(),s$=(()=>{class e{constructor(){this.isActive=!1,this.isActive=new Date({active:e});function a$(e,n){if(1&e){const t=Fe();h(0,"span",70)(1,"span",71),O("click",function(){return oe(t),ie(k().lifetimeLicense=!1)}),y(2,"i",72),f(3," Annual subscription"),p(),h(4,"span",71),O("click",function(){return oe(t),ie(k().lifetimeLicense=!0)}),y(5,"i",73),f(6," Lifetime license"),p()()}if(2&e){const t=k();C(),E("ngClass",Ns(2,jM,!t.lifetimeLicense)),C(3),E("ngClass",Ns(4,jM,t.lifetimeLicense))}}function l$(e,n){if(1&e){const t=Fe();h(0,"button",93),O("click",function(){return oe(t),ie(k(2).requestTrial())}),y(1,"i",31),f(2," Start trial"),p()}2&e&&E("disabled",k(2).trialDisabled)}function c$(e,n){1&e&&(h(0,"button",94),f(1,"Coming soon"),p())}function u$(e,n){1&e&&(wt(0),y(1,"i",72),f(2," Annual subscription"),bt())}function d$(e,n){1&e&&(wt(0),y(1,"i",73),f(2," Lifetime license"),bt())}function f$(e,n){if(1&e){const t=Fe();h(0,"button",95),O("click",function(){return oe(t),ie(k(2).openPaddleCheckout("individual"))}),y(1,"i",96),f(2," Buy now"),p()}}function h$(e,n){1&e&&(h(0,"button",94),f(1,"Coming soon"),p())}function p$(e,n){1&e&&(wt(0),y(1,"i",72),f(2," Annual subscription"),bt())}function g$(e,n){1&e&&(wt(0),y(1,"i",73),f(2," Lifetime license"),bt())}function m$(e,n){if(1&e){const t=Fe();h(0,"button",95),O("click",function(){return oe(t),ie(k(2).openPaddleCheckout("team"))}),y(1,"i",96),f(2," Buy now"),p()}}function v$(e,n){1&e&&(h(0,"button",94),f(1,"Coming soon"),p())}function y$(e,n){1&e&&(wt(0),y(1,"i",72),f(2," Annual subscription"),bt())}function _$(e,n){1&e&&(wt(0),y(1,"i",73),f(2," Lifetime license"),bt())}function C$(e,n){if(1&e){const t=Fe();h(0,"button",95),O("click",function(){return oe(t),ie(k(2).openPaddleCheckout("enterprise"))}),y(1,"i",96),f(2," Buy now"),p()}}function D$(e,n){1&e&&(h(0,"button",94),f(1,"Coming soon"),p())}function w$(e,n){if(1&e&&(h(0,"div",2)(1,"div",74)(2,"div",75),y(3,"img",76),h(4,"h4",77),f(5,"Free"),y(6,"br"),f(7,"Trial"),p(),h(8,"p"),y(9,"i",78),f(10," Get full access"),y(11,"br")(12,"i",79),f(13," 10 day trial period "),p(),q(14,l$,3,1,"button",80)(15,c$,2,0,"button",81),p()(),h(16,"div",82)(17,"div",83),y(18,"img",84),h(19,"h4",77),f(20,"Individual"),y(21,"br"),f(22),p(),h(23,"p"),y(24,"i",85),f(25," Per developer license."),y(26,"br"),q(27,u$,3,0,"ng-container",24)(28,d$,3,0,"ng-container",24),p(),q(29,f$,3,0,"button",86)(30,h$,2,0,"button",81),p()(),h(31,"div",87)(32,"div",83),y(33,"img",88),h(34,"h4",77),f(35,"Team"),y(36,"br"),f(37),p(),h(38,"p"),y(39,"i",89),f(40," Up to 10 developers."),y(41,"br"),q(42,p$,3,0,"ng-container",24)(43,g$,3,0,"ng-container",24),p(),q(44,m$,3,0,"button",86)(45,v$,2,0,"button",81),p()(),h(46,"div",90)(47,"div",83),y(48,"img",91),h(49,"h4",77),f(50,"Enterprise"),y(51,"br"),f(52),p(),h(53,"p"),y(54,"i",92),f(55," Unlimited developers."),y(56,"br"),q(57,y$,3,0,"ng-container",24)(58,_$,3,0,"ng-container",24),p(),q(59,C$,3,0,"button",86)(60,D$,2,0,"button",81),p()()()),2&e){const t=k();C(14),E("ngIf",t.enablePaddle),C(),E("ngIf",!t.enablePaddle),C(7),Me(t.lifetimeLicense?t.paddleIndividualLifetimeLicensePrice:t.paddleIndividualLicensePrice),C(5),E("ngIf",!t.lifetimeLicense),C(),E("ngIf",t.lifetimeLicense),C(),E("ngIf",t.enablePaddle),C(),E("ngIf",!t.enablePaddle),C(7),Me(t.lifetimeLicense?t.paddleTeamLifetimeLicensePrice:t.paddleTeamLicensePrice),C(5),E("ngIf",!t.lifetimeLicense),C(),E("ngIf",t.lifetimeLicense),C(),E("ngIf",t.enablePaddle),C(),E("ngIf",!t.enablePaddle),C(7),Me(t.lifetimeLicense?t.paddleEnterpriseLifetimeLicensePrice:t.paddleEnterpriseLicensePrice),C(5),E("ngIf",!t.lifetimeLicense),C(),E("ngIf",t.lifetimeLicense),C(),E("ngIf",t.enablePaddle),C(),E("ngIf",!t.enablePaddle)}}function b$(e,n){1&e&&(wt(0),h(1,"div",98)(2,"span",99),f(3,"Loading..."),p()(),h(4,"span",100),f(5,"Your license is being generated. Please wait."),p(),bt())}const ag=()=>["/contact"];function E$(e,n){if(1&e&&(h(0,"div")(1,"p"),f(2),p(),h(3,"p"),f(4,"Please try again later or use the "),h(5,"a",18),f(6," contact form"),p(),f(7,"."),p()()),2&e){const t=k(3);C(2),Me(t.paddleLicense.error),C(3),E("routerLink",te(2,ag))}}function I$(e,n){1&e&&(h(0,"span"),y(1,"i",107),f(2," Copy"),p())}function M$(e,n){1&e&&(h(0,"span"),y(1,"i",108),f(2," Copied"),p())}function S$(e,n){if(1&e){const t=Fe();h(0,"div",104)(1,"textarea",105),f(2),p(),h(3,"button",106),O("click",function(){const i=oe(t).$implicit;return ie(k(4).copyPaddle(i))}),q(4,I$,3,0,"span",24)(5,M$,3,0,"span",24),p()()}if(2&e){const t=n.$implicit,r=k(4);C(2),Me(t),C(2),E("ngIf",-1===r.copiedPaddledLicenses.indexOf(t)),C(),E("ngIf",r.copiedPaddledLicenses.indexOf(t)>-1)}}function T$(e,n){if(1&e&&(h(0,"div")(1,"label",102),f(2,"Thank you! Please save your license key persistently:"),p(),q(3,S$,6,3,"div",103),p()),2&e){const t=k(3);C(3),E("ngForOf",t.paddleLicense.licenses)}}function A$(e,n){if(1&e&&(h(0,"div",101),q(1,E$,8,3,"div",24)(2,T$,4,1,"div",24),p()),2&e){const t=k(2);C(),E("ngIf",t.paddleLicense.error),C(),E("ngIf",!t.paddleLicense.error)}}function N$(e,n){if(1&e&&(h(0,"div",2),q(1,b$,6,0,"ng-container",24)(2,A$,3,2,"div",97),p()),2&e){const t=k();C(),E("ngIf",t.paddleLicenseRequested&&!t.paddleLicense),C(),E("ngIf",t.paddleLicense)}}function x$(e,n){1&e&&(h(0,"p")(1,"i"),f(2,"ReportGenerator"),p(),f(3," subscription based licences are provided with a 30 day money back guarantee."),p())}function R$(e,n){1&e&&(h(0,"div",98)(1,"span",99),f(2,"Loading..."),p()())}function O$(e,n){1&e&&(h(0,"div",109),y(1,"i",110),p())}function k$(e,n){if(1&e&&(h(0,"div")(1,"p"),f(2),p(),h(3,"p"),f(4,"Please try again later or use the "),h(5,"a",18),f(6," contact form"),p(),f(7,"."),p()()),2&e){const t=k(2);C(2),Me(t.license.error),C(3),E("routerLink",te(2,ag))}}function P$(e,n){1&e&&(h(0,"div")(1,"p"),f(2,"Please become a "),h(3,"a",111),f(4,"GitHub sponsor"),p(),f(5," first."),p()())}function F$(e,n){1&e&&(h(0,"span"),y(1,"i",107),f(2," Copy"),p())}function L$(e,n){1&e&&(h(0,"span"),y(1,"i",108),f(2," Copied"),p())}function V$(e,n){if(1&e){const t=Fe();h(0,"div")(1,"label",112),f(2,"Thank you for becoming a sponsor. Here's your license:"),p(),h(3,"textarea",113),f(4),p(),h(5,"button",106),O("click",function(){return oe(t),ie(k(2).copy())}),q(6,F$,3,0,"span",24)(7,L$,3,0,"span",24),p()()}if(2&e){const t=k(2);C(4),Me(t.license.license),C(2),E("ngIf",!t.licenseCopied),C(),E("ngIf",t.licenseCopied)}}function j$(e,n){if(1&e&&(h(0,"div",26),q(1,k$,8,3,"div",24)(2,P$,6,0,"div",24)(3,V$,8,3,"div",24),p()),2&e){const t=k();C(),E("ngIf",t.license.error),C(),E("ngIf",!t.license.error&&!t.license.isSponsor),C(),E("ngIf",!t.license.error&&t.license.isSponsor&&t.license.license)}}const Ii=()=>["/features"];let U$=(()=>{class e{get lifetimeLicense(){return this._lifetimeLicense}set lifetimeLicense(t){this._lifetimeLicense=t,this.lifetimeLicenseChangeTracked||(this.lifetimeLicenseChangeTracked=!0,this.trackingService.track("Licensetype changed"))}constructor(t,r,o){this.oauthService=t,this.licenseService=r,this.trackingService=o,this.paddleIndividualLicensePrice="US$49",this.paddleTeamLicensePrice="US$149",this.paddleEnterpriseLicensePrice="US$299",this.paddleIndividualLifetimeLicensePrice="US$79",this.paddleTeamLifetimeLicensePrice="US$249",this.paddleEnterpriseLifetimeLicensePrice="US$449",this.licenseRequested=!1,this.licenseCopied=!1,this.license=null,this.enablePaddle=!0,this.trialDisabled=!1,this.requestTrialData={name:"",email:""},this.paddleLicenseRequested=!1,this.paddleLicense=null,this.copiedPaddledLicenses=[],this.self=this,this.lifetimeLicenseChangeTracked=!1,this._lifetimeLicense=!0,window.paddleCheckoutComplete=i=>{this.paddleCheckoutComplete(i)},window.Paddle.Setup({vendor:144162}),window.Paddle.Product.Prices(762579,i=>{this.paddleIndividualLicensePrice=i.recurring.price.gross}),window.Paddle.Product.Prices(762580,i=>{this.paddleTeamLicensePrice=i.recurring.price.gross}),window.Paddle.Product.Prices(762581,i=>{this.paddleEnterpriseLicensePrice=i.recurring.price.gross}),window.Paddle.Product.Prices(833943,i=>{this.paddleIndividualLifetimeLicensePrice=i.price.gross}),window.Paddle.Product.Prices(833944,i=>{this.paddleTeamLifetimeLicensePrice=i.price.gross}),window.Paddle.Product.Prices(833945,i=>{this.paddleEnterpriseLifetimeLicensePrice=i.price.gross})}ngOnInit(){const t=this.oauthService.validateStateAndExtractCode();null!==t?(console.log("Code received",t),this.licenseRequested=!0,this.licenseService.getLicense(t).subscribe({next:r=>{console.log("Received license response"),this.license=r,this.scrollToGithub()},error:r=>{console.error(r),this.license=new i$,this.license.error="Unable to generate license.",this.scrollToGithub()},complete:()=>console.info("complete")})):console.log("No code available"),location.href.indexOf("?source=trial")>-1&&this.trackingService.track("Trial2Pro"),this.requestTrialModal=new window.bootstrap.Modal("#requestTrialModal");try{this.trialDisabled=null!==window.localStorage.getItem("trialRequested")}catch{}}requestLicense(){this.licenseRequested=!0,this.oauthService.initCodeFlow()}copy(){try{navigator.clipboard.writeText(this.license.license),this.licenseCopied=!0}catch(t){console.error("Failed to copy license",t)}}copyPaddle(t){try{navigator.clipboard.writeText(t),this.copiedPaddledLicenses.push(t)}catch(r){console.error("Failed to copy paddle license",r)}}scrollToGithub(){return document.querySelector("#github").scrollIntoView(!0),!1}scrollToPaddle(){return document.querySelector("#paddle").scrollIntoView(!0),!1}requestTrial(){this.requestTrialModal.show(),this.trackingService.track("Trial-Started")}completeTrial(){console.log("Trial completed"),this.requestTrialModal.hide(),this.paddleLicenseRequested=!0,this.licenseService.getTrialLicense(this.requestTrialData).subscribe({next:t=>{console.log("Received trial license response"),this.paddleLicense=t,this.scrollToPaddle();try{window.localStorage.setItem("trialRequested","true"),this.trialDisabled=!0}catch{}this.trackingService.track("Trial-Completed")},error:t=>{console.error(t),this.paddleLicense=new FM,this.paddleLicense.error="Unable to generate trial license."},complete:()=>{console.info("complete"),this.requestTrialData={name:"",email:""}}})}openPaddleCheckout(t){"enterprise"===t?window.Paddle.Checkout.open({product:this.lifetimeLicense?833945:762581,successCallback:"paddleCheckoutComplete"}):"team"===t?window.Paddle.Checkout.open({product:this.lifetimeLicense?833944:762580,successCallback:"paddleCheckoutComplete"}):window.Paddle.Checkout.open({product:this.lifetimeLicense?833943:762579,successCallback:"paddleCheckoutComplete"}),this.trackingService.track("Paddle-Started",{props:{product:t,lifetimeLicense:this.lifetimeLicense}})}paddleCheckoutComplete(t){console.log("Checkout completed",t),this.paddleLicenseRequested=!0,this.licenseService.getPaddleLicense(t).subscribe({next:r=>{console.log("Received paddle license response"),this.paddleLicense=r,this.scrollToPaddle(),this.trackingService.track("Paddle-Completed",{props:{product:t.product.name,lifetimeLicense:this.lifetimeLicense}})},error:r=>{console.error(r),this.paddleLicense=new FM,this.paddleLicense.error="Unable to generate Paddle license."},complete:()=>console.info("complete")})}static#e=this.\u0275fac=function(r){return new(r||e)(S(LM),S(VM),S(s$))};static#t=this.\u0275cmp=St({type:e,selectors:[["app-pro-component"]],standalone:!0,features:[kt],decls:229,vars:25,consts:[[1,"container"],[1,"mb-4"],[1,"row"],[1,"col-xs-12","col-md-6","order-2","order-md-1"],[1,"table"],["scope","col"],["scope","col",1,"text-center"],[1,"pro-button"],["scope","row"],["fragment","metrics","title","Show feature details",3,"routerLink"],[1,"fa-solid","fa-circle-info","text-secondary"],[1,"text-center"],[1,"fa-solid","fa-circle-check","text-secondary"],["fragment","riskhotspots","title","Show feature details",3,"routerLink"],["title","Show feature details",3,"routerLink"],[1,"fa-solid","fa-circle-check","pro-text"],[1,"col-xs-12","col-md-6","order-1","order-md-2"],["href","",3,"click"],[3,"routerLink"],["id","paddle",1,"container-fluid","mt-5","pt-5","pb-5","bg-light"],[1,"text-center","mb-3"],["class","togglecontainer",4,"ngIf"],["class","row",4,"ngIf"],[1,"mt-5"],[4,"ngIf"],["id","github",1,"container-fluid","mt-5","pt-5","pb-5","bg-light"],[1,"col-xs-12","col-md-6","pb-3"],[1,"fs-2","me-3","number"],["href","https://github.com/sponsors/danielpalme","target","_blank",1,"btn","btn-outline-dark"],[1,"fa-solid","fa-heart","githubheart"],["type","button",1,"btn","btn-primary","me-3",3,"disabled","click"],[1,"fa-solid","fa-rocket"],["class","spinner-border text-info","role","status",4,"ngIf"],["class","col-md-6 pb-3 d-none d-lg-block position-relative",4,"ngIf"],["class","col-xs-12 col-md-6 pb-3",4,"ngIf"],[1,"container-fluid","mt-4","pt-5","pb-5","bg-light"],[1,"container","text-center"],[1,"row","mt-5","testimonial"],["href","https://twitter.com/fredyfx/status/1642807795828543488","target","_blank"],["loading","lazy","src","resources/twitter_light.webp","alt","Testimonial",1,"img-fluid"],["id","faq",1,"container","mt-5","pt-5","pb-5"],["id","accordionFaq",1,"accordion","accordion-flush"],[1,"accordion-item"],["id","headingOne",1,"accordion-header"],["type","button","data-bs-toggle","collapse","data-bs-target","#collapseOne","aria-expanded","true","aria-controls","collapseOne",1,"accordion-button"],["id","collapseOne","aria-labelledby","headingOne","data-bs-parent","#accordionFaq",1,"accordion-collapse","collapse","show"],[1,"accordion-body"],["id","headingTwo",1,"accordion-header"],["type","button","data-bs-toggle","collapse","data-bs-target","#collapseTwo","aria-expanded","false","aria-controls","collapseTwo",1,"accordion-button","collapsed"],["id","collapseTwo","aria-labelledby","headingTwo","data-bs-parent","#accordionFaq",1,"accordion-collapse","collapse"],["id","headingThree",1,"accordion-header"],["type","button","data-bs-toggle","collapse","data-bs-target","#collapseThree","aria-expanded","false","aria-controls","collapseThree",1,"accordion-button","collapsed"],["id","collapseThree","aria-labelledby","headingThree","data-bs-parent","#accordionFaq",1,"accordion-collapse","collapse"],["tabindex","-1","id","requestTrialModal",1,"modal"],[1,"modal-dialog"],[1,"modal-content"],["method","post",3,"ngSubmit"],["trialForm","ngForm"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal","aria-label","Close",1,"btn-close"],[1,"modal-body"],[1,"form-floating","mb-3"],["type","text","id","name","name","name","required","","maxlength","150",1,"form-control",3,"ngModel","ngModelChange"],["for","floatingInput"],[1,"required"],["type","email","id","email","name","email","required","","email","","maxlength","150",1,"form-control",3,"ngModel","ngModelChange"],[1,"modal-footer"],["type","button","data-bs-dismiss","modal",1,"btn","btn-secondary"],["type","submit",1,"btn","btn-primary",3,"disabled"],[1,"togglecontainer"],[1,"option",3,"ngClass","click"],[1,"fa-solid","fa-rotate-right"],[1,"fa-solid","fa-infinity"],[1,"col-xs-12","col-md-6","col-lg-3","mt-0","pb-3","text-center","paddle-container"],[1,"paddle","trial"],["src","resources/trial.svg","alt","Trial",1,"img-fluid"],[1,"mt-3"],[1,"fa-solid","fa-magnifying-glass"],[1,"fa-solid","fa-calendar-days"],["type","button","class","btn btn-primary",3,"disabled","click",4,"ngIf"],["type","button","class","btn btn-primary","disabled","",4,"ngIf"],[1,"col-xs-12","col-md-6","col-lg-3","mt-4","mt-md-0","pb-3","text-center","paddle-container"],[1,"paddle"],["src","resources/individual.svg","alt","Individual",1,"img-fluid"],[1,"fa-solid","fa-user"],["type","button","class","btn btn-primary",3,"click",4,"ngIf"],[1,"col-xs-12","col-md-6","col-lg-3","mt-4","mt-lg-0","pb-3","text-center","paddle-container"],["src","resources/team.svg","alt","Team",1,"img-fluid"],[1,"fa-solid","fa-users"],[1,"col-xs-6","col-md-6","col-lg-3","mt-4","mt-lg-0","pb-3","text-center","paddle-container"],["src","resources/enterprise.svg","alt","Enterprise",1,"img-fluid"],[1,"fa-solid","fa-industry"],["type","button",1,"btn","btn-primary",3,"disabled","click"],["type","button","disabled","",1,"btn","btn-primary"],["type","button",1,"btn","btn-primary",3,"click"],[1,"fa-solid","fa-cart-shopping"],["class","col-xs-12 col-md-6",4,"ngIf"],["role","status",1,"spinner-border","text-info"],[1,"visually-hidden"],[1,"position-relative","paddle-loading"],[1,"col-xs-12","col-md-6"],["for","paddlelicensetext"],["class","mt-2",4,"ngFor","ngForOf"],[1,"mt-2"],["id","paddlelicensetext","rows","5","readonly","",1,"form-control"],[1,"btn","btn-outline-dark","mt-2",3,"click"],[1,"fa-solid","fa-copy"],[1,"fa-solid","fa-check","text-success"],[1,"col-md-6","pb-3","d-none","d-lg-block","position-relative"],[1,"fa-solid","fa-heart","githubheartlarge"],["href","https://github.com/sponsors/danielpalme","target","_blank"],["for","licensetext"],["id","licensetext","rows","5","readonly","",1,"form-control","mt-2"]],template:function(r,o){if(1&r&&(h(0,"div",0)(1,"h1",1),f(2,"PRO"),p(),h(3,"div",2)(4,"div",3)(5,"table",4)(6,"thead")(7,"tr"),y(8,"th",5),h(9,"th",6),f(10,"Free"),p(),h(11,"th",6)(12,"span",7),f(13,"PRO"),p()()()(),h(14,"tbody")(15,"tr")(16,"th",8),f(17,"Metrics "),h(18,"a",9),y(19,"i",10),p()(),h(20,"td",11),y(21,"i",12),p(),h(22,"td",11),y(23,"i",12),p()(),h(24,"tr")(25,"th",8),f(26,"Risk Hotspots "),h(27,"a",13),y(28,"i",10),p()(),h(29,"td",11),y(30,"i",12),p(),h(31,"td",11),y(32,"i",12),p()(),h(33,"tr")(34,"th",8),f(35,"Line coverage "),h(36,"a",14),y(37,"i",10),p()(),h(38,"td",11),y(39,"i",12),p(),h(40,"td",11),y(41,"i",12),p()(),h(42,"tr")(43,"th",8),f(44,"Branch coverage "),h(45,"a",14),y(46,"i",10),p()(),h(47,"td",11),y(48,"i",12),p(),h(49,"td",11),y(50,"i",12),p()(),h(51,"tr")(52,"th",8),f(53,"Method coverage "),h(54,"a",14),y(55,"i",10),p()(),y(56,"td",11),h(57,"td",11),y(58,"i",15),p()(),h(59,"tr")(60,"th",8),f(61,"Metrics on summary page "),h(62,"a",9),y(63,"i",10),p()(),y(64,"td",11),h(65,"td",11),y(66,"i",15),p()(),h(67,"tr")(68,"th",8)(69,"i"),f(70,"OpenCover"),p(),f(71," output format"),p(),y(72,"td",11),h(73,"td",11),y(74,"i",15),p()()()()(),h(75,"div",16)(76,"p")(77,"i"),f(78,"ReportGenerator"),p(),f(79," is Open Source and free to use."),y(80,"br"),f(81," Some of the advanced features require a PRO license. "),p(),h(82,"p"),f(83," You can either "),h(84,"a",17),O("click",function(){return o.scrollToPaddle()}),f(85,"buy a license"),p(),f(86," or you can become a "),h(87,"a",17),O("click",function(){return o.scrollToGithub()}),f(88,"GitHub sponsor"),p(),f(89,"."),y(90,"br"),f(91," A "),h(92,"a",17),O("click",function(){return o.scrollToPaddle()}),f(93,"free trial version"),p(),f(94," is available too. "),p(),h(95,"p"),f(96," Get "),h(97,"a",18),f(98,"in touch"),p(),f(99," if you have any issues and we will figure it out. "),p()()()(),h(100,"section",19)(101,"div",0)(102,"h2",1),f(103,"Buy a license"),p(),h(104,"div",20),q(105,a$,7,6,"span",21),p(),q(106,w$,61,17,"div",22)(107,N$,3,2,"div",22),h(108,"div",23),q(109,x$,4,0,"p",24),h(110,"p"),f(111,"The order process is conducted by Paddle.com. Paddle.com is the Merchant of Record for all orders. Paddle provides all customer service inquiries and handles returns."),p()()()(),h(112,"section",25)(113,"div",0)(114,"h2",1),f(115,"Get your license as a GitHub sponsor"),p(),h(116,"div",2)(117,"div",26)(118,"p"),f(119,"You can obtain your license in two easy steps (no sign up required):"),p(),h(120,"span",27),f(121,"1."),p(),h(122,"a",28),y(123,"i",29),f(124," Become a GitHub sponsor"),p(),y(125,"br"),h(126,"span",27),f(127,"2."),p(),h(128,"button",30),O("click",function(){return o.requestLicense()}),y(129,"i",31),f(130," Get license"),p(),q(131,R$,3,0,"div",32),p(),q(132,O$,2,0,"div",33)(133,j$,4,3,"div",34),p()()(),y(134,"app-testimonials"),h(135,"section",35)(136,"div",36)(137,"h3"),f(138,"Customers"),p(),h(139,"div",37)(140,"a",38),y(141,"img",39),p()()()(),h(142,"section",40)(143,"h2",1),f(144,"Frequently Asked Questions"),p(),h(145,"div",41)(146,"div",42)(147,"h2",43)(148,"button",44),f(149," How do I use/activate my license? "),p()(),h(150,"div",45)(151,"div",46),f(152," Your license key is passed to "),h(153,"i"),f(154,"ReportGenerator"),p(),f(155," via a command line parameter: "),h(156,"i"),f(157,"-license:YOUR_KEY"),p()()()(),h(158,"div",42)(159,"h2",47)(160,"button",48),f(161," Are there limitations on number of users? "),p()(),h(162,"div",49)(163,"div",46)(164,"b"),f(165,"GitHub sponsors"),p(),y(166,"br"),h(167,"p"),f(168,"There's no enforced limit. Please pick a sponsor level that fits your company size and budget."),p(),h(169,"b"),f(170,"Bought license"),p(),y(171,"br"),h(172,"p"),f(173,"There's no enforced limit. Please choose a plan that matches the number of developers using "),h(174,"i"),f(175,"ReportGenerator"),p(),f(176,"."),p()()()(),h(177,"div",42)(178,"h2",50)(179,"button",51),f(180," Will my license expire? "),p()(),h(181,"div",52)(182,"div",46)(183,"b"),f(184,"GitHub sponsors"),p(),y(185,"br"),h(186,"p"),f(187,"Your license will not expire."),p(),h(188,"b"),f(189,"Bought license"),p(),y(190,"br"),h(191,"p")(192,"b"),f(193,"Annual subscription"),p(),f(194,": Your license may get revoked for new releases of "),h(195,"i"),f(196,"ReportGenerator"),p(),f(197,", if you cancel your subscription."),y(198,"br"),h(199,"b"),f(200,"Lifetime licenses"),p(),f(201,": Lifetime licenses will not expire. "),p()()()()()(),h(202,"div",53)(203,"div",54)(204,"div",55)(205,"form",56,57),O("ngSubmit",function(){return o.completeTrial()}),h(207,"div",58)(208,"h5",59),f(209,"Free Trial"),p(),y(210,"button",60),p(),h(211,"div",61)(212,"div",62)(213,"input",63),O("ngModelChange",function(s){return o.requestTrialData.name=s}),p(),h(214,"label",64),f(215,"Name "),h(216,"span",65),f(217,"*"),p()()(),h(218,"div",62)(219,"input",66),O("ngModelChange",function(s){return o.requestTrialData.email=s}),p(),h(220,"label",64),f(221,"Email address "),h(222,"span",65),f(223,"*"),p()()()(),h(224,"div",67)(225,"button",68),f(226,"Close"),p(),h(227,"button",69),f(228,"Get trial license"),p()()()()()()),2&r){const i=eh(206);C(18),E("routerLink",te(18,Ii)),C(9),E("routerLink",te(19,Ii)),C(9),E("routerLink",te(20,Ii)),C(9),E("routerLink",te(21,Ii)),C(9),E("routerLink",te(22,Ii)),C(8),E("routerLink",te(23,Ii)),C(35),E("routerLink",te(24,ag)),C(8),E("ngIf",!o.paddleLicenseRequested),C(),E("ngIf",!o.paddleLicenseRequested),C(),E("ngIf",o.paddleLicenseRequested),C(2),E("ngIf",!o.lifetimeLicense),C(19),E("disabled",o.licenseRequested),C(3),E("ngIf",o.licenseRequested&&!o.license),C(),E("ngIf",!o.license),C(),E("ngIf",o.license),C(80),E("ngModel",o.requestTrialData.name),C(6),E("ngModel",o.requestTrialData.email),C(8),E("disabled",!i.valid)}},dependencies:[In,Uh,Bh,vc,Kc,Qc,_i,Uc,Bc,bi,Kp,Jc,la,wi,PM],styles:[".number[_ngcontent-%COMP%]{display:inline-block;position:relative;top:8px}.spinner-border[_ngcontent-%COMP%]{position:relative;top:9px}.paddle-container[_ngcontent-%COMP%]{padding:10px}.paddle[_ngcontent-%COMP%]{border:1px solid #8c8888;border-radius:20px;padding:20px;background-color:#d8e8f0}.trial[_ngcontent-%COMP%]{background-color:#b2cad7}.githubheartlarge[_ngcontent-%COMP%]{position:absolute;top:-120px;left:40%;font-size:20rem;color:#ffd2ed}.togglecontainer[_ngcontent-%COMP%]{background-color:#fff;display:inline-block;border-radius:20px;white-space:nowrap}.togglecontainer[_ngcontent-%COMP%] .option[_ngcontent-%COMP%]{background-color:#fff;padding:8px 15px;border-radius:20px;cursor:pointer;display:inline-block}.togglecontainer[_ngcontent-%COMP%] .option.active[_ngcontent-%COMP%]{color:#fff;background-color:var(--rg-primary-color);background-image:linear-gradient(50deg,var(--rg-gradient-from) 0%,var(--rg-gradient-to) 100%)}@media only screen and (max-width: 400px){.togglecontainer[_ngcontent-%COMP%] .option[_ngcontent-%COMP%] .fa-solid[_ngcontent-%COMP%]{display:none}}.paddle-loading[_ngcontent-%COMP%]{position:relative;left:35px;top:-20px}.testimonial[_ngcontent-%COMP%]{max-width:550px;margin:auto}"]})}return e})();class iu{constructor(n,t,r,o,i,s){this.name=n,this.url=t,this.runtimes=r,this.description=o,this.installOptions=i,this.executables=s}formatExecutable(n){return n.tool}formatArgument(n,t){if(""===(t=t.trim()))return"";const r=t.indexOf(" ")>-1?'"':"";return`\r\n${r}-${n}:${t}${r}`}formatArguments(n,t){return this.formatArgument(n,t.filter(r=>null!=r&&0!==r.length&&0!==r.trim().length).join(";"))}}class B$ extends iu{formatExecutable(n){let t=`- task: ${n.tool}@${zt.majorVersion}`;return t+="\r\n displayName: ReportGenerator",t+="\r\n inputs:",console.log("hello",t),t}formatArgument(n,t){if(""===(t=t.trim()))return"";const r=t.indexOf(" ")>-1?"'":"";return`\r\n ${n}: ${r}${t}${r}`}}class $${constructor(){this.verbosities=["Verbose","Info","Warning","Error","Off"],this.types=["Html","Coverage tool","Json","Markdown","Xml","Text","Image"],this.reports=["cobertura.xml"],this.targetdir="coveragereport",this.reporttypes=[{name:"Html",types:["Html"],description:"The default output format. Creates a summary overview (index.html) and detailed reports for each class.",requiresHistoryDir:!1,checked:!0,sampleReport:"resources/reports/Html/index.html"},{name:"Html_Light",types:["Html"],description:"Same as Html but with a light theme.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/Html_Light/index.html"},{name:"Html_Dark",types:["Html"],description:"Same as Html but with a dark theme.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/Html_Dark/index.html"},{name:"Html_BlueRed",types:["Html"],description:"Same as Html but with the colors blue/red instead of green/red.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/Html_BlueRed/index.html"},{name:"HtmlSummary",types:["Html"],description:"Creates a single HTML file (summary.html) without links.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/HtmlSummary/summary.html"},{name:"Html_BlueRed_Summary",types:["Html"],description:"Same as HtmlSummary but with the colors blue/red instead of green/red.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/Html_BlueRed_Summary/summary.html"},{name:"HtmlChart",types:["Html"],description:"Creates a single HTML file containing a chart with historic coverage information.",requiresHistoryDir:!0,checked:!1,sampleReport:"resources/reports/HtmlChart/CoverageHistory.html"},{name:"HtmlInline",types:["Html"],description:"Same as HTML but CSS and JavaScript is included in every HTML page. This results in larger file sizes, but can be useful for integration into build servers like Azure DevOps (VSTS), since they may block referenced CSS and JavaScript files.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/HtmlInline/index.html"},{name:"HtmlInline_AzurePipelines",types:["Html"],description:"Same as HtmlInline but with an adaptive light/dark theme matching the look and feel of Azure Pipelines",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/HtmlInline_AzurePipelines/index.html"},{name:"HtmlInline_AzurePipelines_Light",types:["Html"],description:"Same as HtmlInline but with a light theme matching the look and feel of Azure Pipelines.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/HtmlInline_AzurePipelines_Light/index.html"},{name:"HtmlInline_AzurePipelines_Dark",types:["Html"],description:"Same as HtmlInline but with a dark theme matching the look and feel of Azure Pipelines.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/HtmlInline_AzurePipelines_Dark/index.html"},{name:"MHtml",types:["Html"],description:"Same as HTML but packaged into a single MHTML file.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/MHtml/Summary.mht"},{name:"Clover",types:["Coverage tool"],description:"Creates a XML file in Clover format. This format integrates with tools like Atlassian Bamboo.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/Clover/Clover.xml"},{name:"Cobertura",types:["Coverage tool"],description:"Creates a XML file in Cobertura format. This format integrates with tools like Azure DevOps (VSTS) or Jenkins.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/Cobertura/Cobertura.xml"},{name:"OpenCover",types:["Coverage tool"],description:"Creates a XML file in OpenCover format (PRO version only).",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/OpenCover/OpenCover.xml"},{name:"SonarQube",types:["Coverage tool"],description:"Creates a XML file in SonarQube 'Generic Test Data' format.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/SonarQube/SonarQube.xml"},{name:"lcov",types:["Coverage tool"],description:"Creates a text file in 'lcov' format.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/lcov/lcov.info"},{name:"XML",types:["Xml"],description:"Creates a XML file containing a summary for all classes and detailed reports for each class.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/Xml/Summary.xml"},{name:"XMLSummary",types:["Xml"],description:"Creates a single XML file containing a summary for all classes.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/XmlSummary/Summary.xml"},{name:"JsonSummary",types:["Json"],description:"Creates a single JSON file containing a summary for all classes.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/JsonSummary/Summary.json"},{name:"CodeClimate",types:["Json"],description:"Creates a single JSON file containing a (Gitlab) code climate report.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/CodeClimate/codeclimate.json"},{name:"Latex",types:["Text"],description:"Creates a single TEX file containing a summary for all classes and detailed reports for each class.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/Summary/Summary.tex"},{name:"LatexSummary",types:["Text"],description:"Creates a single TEX file containing a summary for all classes.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/LatexSummary/Summary.tex"},{name:"TeamCitySummary",types:["Coverage tool"],description:"Command line output interpreted by TeamCity.",requiresHistoryDir:!1,checked:!1,sampleReport:null},{name:"TextSummary",types:["Text"],description:"Creates a single TXT file containing coverage information per class.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/TextSummary/Summary.txt"},{name:"TextDeltaSummary",types:["Text"],description:"Creates a single TXT file containing delta coverage information.",requiresHistoryDir:!0,checked:!1,sampleReport:"resources/reports/TextDeltaSummary/DeltaSummary.txt"},{name:"CsvSummary",types:["Text"],description:"Creates a single CSV file containing coverage information per class.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/CsvSummary/Summary.csv"},{name:"MarkdownSummary",types:["Text","Markdown"],description:"Creates a single Markdown file containing coverage information per class.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/MarkdownSummary/Summary.md"},{name:"MarkdownSummaryGithub",types:["Text","Markdown"],description:"Creates a single Markdown file containing coverage information per class. The report is optimized for GitHub.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/MarkdownSummaryGithub/SummaryGithub.md"},{name:"MarkdownDeltaSummary",types:["Text","Markdown"],description:"Creates a single Markdown file containing delta coverage information.",requiresHistoryDir:!0,checked:!1,sampleReport:"resources/reports/MarkdownDeltaSummary/DeltaSummary.md"},{name:"SvgChart",types:["Image"],description:"Creates a single SVG file containing a chart with historic coverage information.",requiresHistoryDir:!0,checked:!1,sampleReport:"resources/reports/SvgChart/CoverageHistory.svg"},{name:"Badges",types:["Image"],description:"Creates SVG files that show line and/or branch coverage information.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/Badges/index.html"}],this.sourcedirectories=[],this.historydir="",this.plugins=[],this.assemblyfilters=[],this.classfilters=[],this.filefilters=[],this.selectedverbosity=this.verbosities[1],this.selectedType=null,this.title="",this.tag="",this.license=""}addSourceDirectory(){return this.sourcedirectories.push(""),!1}removeSourceDirectory(n){return this.sourcedirectories.splice(n,1),!1}addReport(){return this.reports.push(""),!1}removeReport(n){return this.reports.splice(n,1),!1}addPlugin(){return this.plugins.push(""),!1}removePlugin(n){return this.plugins.splice(n,1),!1}addAssemblyFilter(){return this.assemblyfilters.push(""),!1}removeAssemblyFilter(n){return this.assemblyfilters.splice(n,1),!1}addClassFilter(){return this.classfilters.push(""),!1}removeClassFilter(n){return this.classfilters.splice(n,1),!1}addFileFilter(){return this.filefilters.push(""),!1}removeFileFilter(n){return this.filefilters.splice(n,1),!1}getUsage(n,t){const r=n.executables.find(a=>a.runtime==t);let o=void 0!==r?n.formatExecutable(r):"";o+=n.formatArguments("reports",this.reports),o+=n.formatArgument("targetdir",this.targetdir);for(var i="",s=0;s0&&(i+=";"),i+=this.reporttypes[s].name);return i.length>0&&"Html"!==i&&(o+=n.formatArgument("reporttypes",i)),o+=n.formatArguments("sourcedirs",this.sourcedirectories),o+=n.formatArgument("historydir",this.historydir),o+=n.formatArguments("plugins",this.plugins),o+=n.formatArguments("assemblyfilters",this.assemblyfilters),o+=n.formatArguments("classfilters",this.classfilters),o+=n.formatArguments("filefilters",this.filefilters),"Info"!==this.selectedverbosity&&(o+=n.formatArgument("verbosity",this.selectedverbosity)),o+=n.formatArgument("title",this.title),o+=n.formatArgument("tag",this.tag),o+=n.formatArgument("license",this.license),o}historyDirRequired(){for(let n=0;n-1?"'":"";return`\r\n ${n}: ${r}${t}${r}`}}class lg{constructor(n,t){this.tool=n,this.command=t}}function G$(e,n){if(1&e){const t=Fe();h(0,"div",35)(1,"label",36)(2,"input",37),O("ngModelChange",function(o){return oe(t),ie(k().selectedEnvironment=o)})("ngModelChange",function(){return oe(t),ie(k().selectedEnvironmentChanged())}),p(),h(3,"b"),f(4),p(),y(5,"br"),h(6,"div",38),f(7),p()()()}if(2&e){const t=n.$implicit,r=k();C(2),E("ngModel",r.selectedEnvironment)("value",t)("checked",r.selectedEnvironment.name===t.name),C(2),Me(t.name),C(3),Me(t.description)}}function z$(e,n){if(1&e){const t=Fe();h(0,"div",35)(1,"label",36)(2,"input",41),O("ngModelChange",function(o){return oe(t),ie(k(3).selectedPackage=o)}),p(),h(3,"b"),f(4),p(),y(5,"br"),h(6,"div",38),f(7),p()()()}if(2&e){const t=k().$implicit,r=k(2);C(2),E("ngModel",r.selectedPackage)("value",t),C(2),Me(t.name),C(3),Me(t.description)}}function q$(e,n){if(1&e&&(wt(0),q(1,z$,8,4,"div",40),bt()),2&e){const t=n.$implicit,r=k(2);C(),E("ngIf",t.runtimes.indexOf(r.selectedEnvironment.name)>-1)}}function W$(e,n){if(1&e&&(wt(0),h(1,"h4"),f(2,"NuGet Package"),p(),q(3,q$,2,1,"ng-container",39),bt()),2&e){const t=k();C(3),E("ngForOf",t.packages)}}function Z$(e,n){if(1&e){const t=Fe();h(0,"span",45),O("click",function(){oe(t);const o=k().index;return ie(k().configuration.removeReport(o))}),h(1,"a",46),y(2,"i",47),p()()}}const Y$=e=>({"input-group":e});function Q$(e,n){if(1&e){const t=Fe();h(0,"div",38)(1,"div",42)(2,"input",43),O("ngModelChange",function(o){const s=oe(t).index;return ie(k().configuration.reports[s]=o)}),p(),q(3,Z$,3,0,"span",44),p()()}if(2&e){const t=n.index,r=k();C(),E("ngClass",Ns(4,Y$,t>0)),C(),Vn("name","report_",t,""),E("ngModel",r.configuration.reports[t]),C(),E("ngIf",t>0)}}const X$=(e,n)=>({"btn-outline-primary":e,"btn-primary":n});function J$(e,n){if(1&e){const t=Fe();h(0,"button",48),O("click",function(){const i=oe(t).$implicit,s=k();return ie(s.configuration.selectedType=s.configuration.selectedType===i?null:i)}),f(1),p()}if(2&e){const t=n.$implicit,r=k();E("ngClass",GD(2,X$,t!==r.configuration.selectedType,t===r.configuration.selectedType)),C(),Me(t)}}function K$(e,n){if(1&e){const t=Fe();h(0,"span",53),y(1,"i",54),f(2," Please specify a "),h(3,"a",9),O("click",function(){return oe(t),ie(k(3).scrollToHistoryDir())}),f(4,"history directory"),p()()}}function eH(e,n){if(1&e&&(wt(0),y(1,"br",55),h(2,"a",29),f(3,"Sample report"),p(),f(4,"\xa0"),h(5,"a",29),y(6,"i",56),p(),bt()),2&e){const t=k(2).$implicit;C(2),E("href",t.sampleReport,Eo),C(3),E("href",t.sampleReport,Eo)}}function tH(e,n){if(1&e){const t=Fe();h(0,"div",50)(1,"label",36)(2,"input",51),O("change",function(){oe(t);const o=k().$implicit;return ie(o.checked=!o.checked)}),p(),h(3,"b"),f(4),p(),q(5,K$,5,0,"span",52),y(6,"br"),h(7,"div",38),f(8),q(9,eH,7,2,"ng-container",5),p()()()}if(2&e){const t=k().$implicit,r=k();C(2),E("checked",t.checked),C(2),Me(t.name),C(),E("ngIf",t.checked&&t.requiresHistoryDir&&!r.configuration.historydir),C(3),Un("",t.description," "),C(),E("ngIf",t.sampleReport)}}function nH(e,n){if(1&e&&(wt(0),q(1,tH,10,5,"div",49),bt()),2&e){const t=n.$implicit,r=k();C(),E("ngIf",!r.configuration.selectedType||t.types.indexOf(r.configuration.selectedType)>-1)}}function rH(e,n){if(1&e){const t=Fe();h(0,"div",8)(1,"div",57)(2,"input",58),O("ngModelChange",function(o){const s=oe(t).index;return ie(k().configuration.sourcedirectories[s]=o)}),p(),h(3,"span",45),O("click",function(){const i=oe(t).index;return ie(k().configuration.removeSourceDirectory(i))}),h(4,"a",46),y(5,"i",47),p()()()()}if(2&e){const t=n.index,r=k();C(2),Vn("name","sourcedir_",t,""),E("ngModel",r.configuration.sourcedirectories[t])}}function oH(e,n){if(1&e){const t=Fe();h(0,"div",8)(1,"div",57)(2,"input",59),O("ngModelChange",function(o){const s=oe(t).index;return ie(k().configuration.plugins[s]=o)}),p(),h(3,"span",45),O("click",function(){const i=oe(t).index;return ie(k().configuration.removePlugin(i))}),h(4,"a",46),y(5,"i",47),p()()()()}if(2&e){const t=n.index,r=k();C(2),Vn("name","plugin_",t,""),E("ngModel",r.configuration.plugins[t])}}function iH(e,n){if(1&e){const t=Fe();h(0,"div",8)(1,"div",57)(2,"input",60),O("ngModelChange",function(o){const s=oe(t).index;return ie(k().configuration.assemblyfilters[s]=o)}),p(),h(3,"span",45),O("click",function(){const i=oe(t).index;return ie(k().configuration.removeAssemblyFilter(i))}),h(4,"a",46),y(5,"i",47),p()()()()}if(2&e){const t=n.index,r=k();C(2),Vn("name","assemblyfilter_",t,""),E("ngModel",r.configuration.assemblyfilters[t])}}function sH(e,n){if(1&e){const t=Fe();h(0,"div",8)(1,"div",57)(2,"input",61),O("ngModelChange",function(o){const s=oe(t).index;return ie(k().configuration.classfilters[s]=o)}),p(),h(3,"span",45),O("click",function(){const i=oe(t).index;return ie(k().configuration.removeClassFilter(i))}),h(4,"a",46),y(5,"i",47),p()()()()}if(2&e){const t=n.index,r=k();C(2),Vn("name","classfilter_",t,""),E("ngModel",r.configuration.classfilters[t])}}function aH(e,n){if(1&e){const t=Fe();h(0,"div",8)(1,"div",57)(2,"input",62),O("ngModelChange",function(o){const s=oe(t).index;return ie(k().configuration.filefilters[s]=o)}),p(),h(3,"span",45),O("click",function(){const i=oe(t).index;return ie(k().configuration.removeFileFilter(i))}),h(4,"a",46),y(5,"i",47),p()()()()}if(2&e){const t=n.index,r=k();C(2),Vn("name","filefilter_",t,""),E("ngModel",r.configuration.filefilters[t])}}function lH(e,n){if(1&e&&(h(0,"option",63),f(1),p()),2&e){const t=n.$implicit;E("value",t),C(),Me(t)}}function cH(e,n){if(1&e&&(h(0,"div",64)(1,"b"),f(2),p(),y(3,"br"),h(4,"pre",32),f(5),p()()),2&e){const t=n.$implicit;C(2),Me(t.tool),C(3),Me(t.command)}}function uH(e,n){1&e&&(y(0,"i",65),f(1," Copied "))}function dH(e,n){1&e&&(y(0,"i",66),f(1," Copy "))}function fH(e,n){if(1&e&&(h(0,"div",64)(1,"b"),f(2),p(),y(3,"br"),h(4,"pre",32),f(5),p()()),2&e){const t=n.$implicit;C(2),Me(t.tool),C(3),Me(t.command)}}function hH(e,n){1&e&&(y(0,"i",65),f(1," Copied "))}function pH(e,n){1&e&&(y(0,"i",66),f(1," Copy "))}const gH=()=>["/pro"],Yr=" | ReportGenerator - Code coverage reports",vH=[{path:"",component:r$,pathMatch:"full",title:"Home"+Yr,data:{canonical:"/"}},{path:"features",component:QB,title:"Features"+Yr,data:{canonical:"/features"}},{path:"features.html",redirectTo:"/features"},{path:"getstarted",component:JB,title:"Get started"+Yr,data:{canonical:"/getstarted"}},{path:"getstarted.html",redirectTo:"/getstarted"},{path:"usage",component:(()=>{class e{constructor(){this.versions=zt,this.lastResult="",this.usageCopied=!1,this.configuration=new $$,this.environments=[new su(".NET Core",".NET Core"),new su(".NET Framework","The full .NET framework"),new su("Azure DevOps",null),new su("Github Action",null)],this.packages=[new iu("ReportGenerator","https://www.nuget.org/packages/ReportGenerator",[".NET Framework",".NET Core"],"Use this package if your project is based on .NET Framework or .NET Core and you want to use ReportGenerator via the command line or a build script.",[new lg("Package Manager",`Install-Package ReportGenerator -Version ${zt.version}`),new lg(".NET CLI",`dotnet add package ReportGenerator --version ${zt.version}`)],[new fa(".NET Framework",`$(UserProfile)\\.nuget\\packages\\reportgenerator\\${zt.version}\\tools\\net47\\ReportGenerator.exe`),new fa(".NET Core",`dotnet $(UserProfile)\\.nuget\\packages\\reportgenerator\\${zt.version}\\tools\\net6.0\\ReportGenerator.dll`)]),new iu("dotnet-reportgenerator-globaltool","https://www.nuget.org/packages/dotnet-reportgenerator-globaltool",[".NET Core"],"Use this package if your project is based on .NET Core and you want to use ReportGenerator as a (global) 'DotnetTool'.",[new lg(".NET CLI",`dotnet tool install --global dotnet-reportgenerator-globaltool --version ${zt.version}\r\n\r\ndotnet tool install dotnet-reportgenerator-globaltool --tool-path tools --version ${zt.version}\r\n\r\ndotnet new tool-manifest\r\ndotnet tool install dotnet-reportgenerator-globaltool --version ${zt.version}`)],[new fa(".NET Core","reportgenerator")]),new B$("Azure DevOps","https://marketplace.visualstudio.com/items?itemName=Palmmedia.reportgenerator",["Azure DevOps"],"Use this package within Azure DevOps",[],[new fa("Azure DevOps","reportgenerator")]),new H$("GitHub Action","https://github.com/marketplace/actions/reportgenerator",["Github Action"],"Use this package within Github Actions",[],[new fa("Github Action","danielpalme/ReportGenerator-GitHub-Action")])],this.selectedEnvironment=this.environments[0],this.selectedPackage=this.packages[0]}selectedEnvironmentChanged(){this.selectedPackage=this.packages.find(t=>t.runtimes.indexOf(this.selectedEnvironment.name)>-1)}severalPackagesAvailable(){return this.packages.filter(t=>t.runtimes.indexOf(this.selectedEnvironment.name)>-1).length>1}getUsage(){const t=this.configuration.getUsage(this.selectedPackage,this.selectedEnvironment.name);return this.lastResult!==t&&(this.lastResult=t,this.usageCopied=!1),t}copy(){try{navigator.clipboard.writeText(this.getUsage()),this.usageCopied=!0}catch(t){console.error("Failed to copy license",t)}}scrollToHistoryDir(){return document.querySelector("#historydir").scrollIntoView(!0),!1}trackByIndex(t,r){return t}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275cmp=St({type:e,selectors:[["app-usage-component"]],standalone:!0,features:[kt],decls:219,vars:39,consts:[[1,"container"],[1,"mb-4"],[1,"row"],[1,"col-md-7"],["class","form-check",4,"ngFor","ngForOf"],[4,"ngIf"],[1,"alert","alert-info"],["class","mb-3",4,"ngFor","ngForOf","ngForTrackBy"],[1,"input-group","mb-3"],["href","",3,"click"],[1,"fa","fa-plus-circle"],["type","text","name","targetdir","placeholder","The target directory","required","",1,"form-control",3,"ngModel","ngModelChange"],["href","https://danielpalme.github.io/ReportGenerator/resources/SampleReports.zip"],[1,"me-2"],["type","button","class","btn btn-sm me-1 mb-1",3,"ngClass","click",4,"ngFor","ngForOf","ngForTrackBy"],[4,"ngFor","ngForOf","ngForTrackBy"],["class","input-group mb-3",4,"ngFor","ngForOf","ngForTrackBy"],["id","historydir"],["type","text","name","historydir","placeholder","The history directory",1,"form-control",3,"ngModel","required","ngModelChange"],["href","https://github.com/danielpalme/ReportGenerator/wiki/Custom-reports"],["href","https://github.com/danielpalme/ReportGenerator/wiki/Custom-history-storage"],["name","verbosity",1,"form-select",3,"ngModel","ngModelChange"],[3,"value",4,"ngFor","ngForOf","ngForTrackBy"],["type","text","name","title","placeholder","Title",1,"form-control",3,"ngModel","ngModelChange"],["type","text","name","tag","placeholder","Optional tag or build version",1,"form-control",3,"ngModel","ngModelChange"],[3,"routerLink"],["type","text","name","license","placeholder","Optional license for PRO version","rows","4",1,"form-control",3,"ngModel","ngModelChange"],[1,"col-md-5"],[1,"d-md-none","mt-5"],["target","_blank",3,"href"],["class","mt-2",4,"ngFor","ngForOf"],[1,"mt-4"],[1,"text-dark","bg-light","p-2","border"],[1,"btn","btn-outline-dark","mt-2",3,"click"],[1,"d-none","d-md-block","sticky"],[1,"form-check"],[1,"form-check-label"],["type","radio","name","environment",1,"form-check-input",3,"ngModel","value","checked","ngModelChange"],[1,"mb-3"],[4,"ngFor","ngForOf"],["class","form-check",4,"ngIf"],["type","radio","name","package",1,"form-check-input",3,"ngModel","value","ngModelChange"],[3,"ngClass"],["type","text","placeholder","The path of the coverage file","required","",1,"form-control",3,"name","ngModel","ngModelChange"],["class","input-group-text",3,"click",4,"ngIf"],[1,"input-group-text",3,"click"],["href",""],[1,"fa","fa-trash","text-danger"],["type","button",1,"btn","btn-sm","me-1","mb-1",3,"ngClass","click"],["class","form-check mt-1",4,"ngIf"],[1,"form-check","mt-1"],["type","checkbox","name","reporttype",1,"form-check-input",3,"checked","change"],["class","text-danger ms-2",4,"ngIf"],[1,"text-danger","ms-2"],[1,"fa-solid","fa-triangle-exclamation"],[1,"mt-1"],[1,"fa-solid","fa-arrow-up-right-from-square"],[1,"input-group"],["type","text","placeholder","The source directory","required","",1,"form-control",3,"name","ngModel","ngModelChange"],["type","text","placeholder","The path of the plugin","required","",1,"form-control",3,"name","ngModel","ngModelChange"],["type","text","placeholder","The include or exclude filter for assemlies","pattern","^[+-].+$","required","",1,"form-control",3,"name","ngModel","ngModelChange"],["type","text","placeholder","The include or exclude filter for classes","pattern","^[+-].+$","required","",1,"form-control",3,"name","ngModel","ngModelChange"],["type","text","placeholder","The include or exclude filter for files","pattern","^[+-].+$","required","",1,"form-control",3,"name","ngModel","ngModelChange"],[3,"value"],[1,"mt-2"],[1,"fa-solid","fa-check","text-success"],[1,"fa-solid","fa-copy"]],template:function(r,o){1&r&&(h(0,"div",0)(1,"h1",1),f(2,"Usage"),p(),h(3,"div",2)(4,"div",3)(5,"form")(6,"h3"),f(7,"Environment"),p(),q(8,G$,8,5,"div",4),y(9,"hr"),q(10,W$,4,1,"ng-container",5),y(11,"hr"),h(12,"h3"),f(13,"Reports"),p(),h(14,"div",6),f(15,"Path to the coverage report(s) that should be parsed."),y(16,"br"),f(17,"Globbing is supported."),p(),q(18,Q$,4,6,"div",7),h(19,"div",8)(20,"a",9),O("click",function(){return o.configuration.addReport()}),y(21,"i",10),f(22," Add report"),p()(),y(23,"br"),h(24,"h3"),f(25,"Target directory"),p(),h(26,"div",6),f(27,"The directory where the generated report(s) should be saved."),p(),h(28,"div",8)(29,"input",11),O("ngModelChange",function(s){return o.configuration.targetdir=s}),p()(),y(30,"br"),h(31,"h3"),f(32,"Report types"),p(),h(33,"div",6),f(34,"Download "),h(35,"a",12),f(36,"sample reports"),p()(),h(37,"span",13),f(38,"Filter:"),p(),q(39,J$,2,5,"button",14),y(40,"br"),q(41,nH,2,1,"ng-container",15),h(42,"h3"),f(43,"Source directories"),p(),h(44,"div",6),f(45,"Optional directories which contain the corresponding source code."),y(46,"br"),f(47,"The source directories are used if coverage report contains classes without path information."),p(),q(48,rH,6,2,"div",16),h(49,"div",8)(50,"a",9),O("click",function(){return o.configuration.addSourceDirectory()}),y(51,"i",10),f(52," Add source directory"),p()(),y(53,"br"),h(54,"h3",17),f(55,"History directory"),p(),h(56,"div",6),f(57,"Optional directory for storing "),h(58,"b"),f(59,"persistent"),p(),f(60," coverage information. Choose a directory which does not get deleted between builds."),y(61,"br"),f(62,"Required to show the history chart in the HTML reports."),p(),h(63,"div",8)(64,"input",18),O("ngModelChange",function(s){return o.configuration.historydir=s}),p()(),y(65,"br"),h(66,"h3"),f(67,"Plugins"),p(),h(68,"div",6),f(69,"Optional plugin files for "),h(70,"a",19),f(71,"custom reports"),p(),f(72," or "),h(73,"a",20),f(74,"custom history storage"),p(),f(75,"."),p(),q(76,oH,6,2,"div",16),h(77,"div",8)(78,"a",9),O("click",function(){return o.configuration.addPlugin()}),y(79,"i",10),f(80," Add plugin"),p()(),y(81,"br"),h(82,"h3"),f(83,"Assembly filters"),p(),h(84,"div",6),f(85,"Optional list of "),h(86,"b"),f(87,"assemblies"),p(),f(88," that should be included or excluded in the report. "),y(89,"br"),f(90,"Exclusion filters take precedence over inclusion filters. "),y(91,"br"),f(92,"Wildcards are allowed."),y(93,"br"),h(94,"p"),f(95,"Examples:"),y(96,"br"),h(97,"code"),f(98,"+Included"),p(),y(99,"br"),h(100,"code"),f(101,"-Excluded"),p()()(),q(102,iH,6,2,"div",16),h(103,"div",8)(104,"a",9),O("click",function(){return o.configuration.addAssemblyFilter()}),y(105,"i",10),f(106," Add assembly filter"),p()(),y(107,"br"),h(108,"h3"),f(109,"Class filters"),p(),h(110,"div",6),f(111,"Optional list of "),h(112,"b"),f(113,"classes"),p(),f(114," that should be included or excluded in the report. "),y(115,"br"),f(116,"Exclusion filters take precedence over inclusion filters. "),y(117,"br"),f(118,"Wildcards are allowed."),y(119,"br"),h(120,"p"),f(121,"Examples:"),y(122,"br"),h(123,"code"),f(124,"+Included"),p(),y(125,"br"),h(126,"code"),f(127,"-Excluded"),p()()(),q(128,sH,6,2,"div",16),h(129,"div",8)(130,"a",9),O("click",function(){return o.configuration.addClassFilter()}),y(131,"i",10),f(132," Add class filter"),p()(),y(133,"br"),h(134,"h3"),f(135,"File filters"),p(),h(136,"div",6),f(137,"Optional list of "),h(138,"b"),f(139,"files"),p(),f(140," that should be included or excluded in the report. "),y(141,"br"),f(142,"Exclusion filters take precedence over inclusion filters. "),y(143,"br"),f(144,"Wildcards are allowed."),y(145,"br"),h(146,"p"),f(147,"Examples:"),y(148,"br"),h(149,"code"),f(150,"+Included"),p(),y(151,"br"),h(152,"code"),f(153,"-Excluded"),p()()(),q(154,aH,6,2,"div",16),h(155,"div",8)(156,"a",9),O("click",function(){return o.configuration.addFileFilter()}),y(157,"i",10),f(158," Add file filter"),p()(),y(159,"br"),h(160,"h3"),f(161,"Verbosity"),p(),h(162,"div",6),f(163,"The verbosity level of the log messages."),p(),h(164,"div",8)(165,"select",21),O("ngModelChange",function(s){return o.configuration.selectedverbosity=s}),q(166,lH,2,2,"option",22),p()(),y(167,"br"),h(168,"h3"),f(169,"Title"),p(),h(170,"div",6),f(171,"Optional title."),p(),h(172,"div",8)(173,"input",23),O("ngModelChange",function(s){return o.configuration.title=s}),p()(),y(174,"br"),h(175,"h3"),f(176,"Tag"),p(),h(177,"div",6),f(178,"Optional tag or build version."),p(),h(179,"div",8)(180,"input",24),O("ngModelChange",function(s){return o.configuration.tag=s}),p()(),y(181,"br"),h(182,"h3"),f(183,"License"),p(),h(184,"div",6),f(185,"Optional license. Get your license here: "),h(186,"a",25),f(187,"https://reportgenerator.io/pro"),p()(),h(188,"div",8)(189,"textarea",26),O("ngModelChange",function(s){return o.configuration.license=s}),p()()()(),h(190,"div",27)(191,"div",28)(192,"h3"),f(193,"Instructions"),p(),f(194," Install "),h(195,"a",29),f(196),p(),q(197,cH,6,2,"div",30),h(198,"h4",31),f(199,"Usage"),p(),h(200,"pre",32),f(201),p(),h(202,"button",33),O("click",function(){return o.copy()}),q(203,uH,2,0)(204,dH,2,0),p()(),h(205,"div",34)(206,"h3"),f(207,"Instructions"),p(),f(208," Install "),h(209,"a",29),f(210),p(),q(211,fH,6,2,"div",30),h(212,"h4",31),f(213,"Usage"),p(),h(214,"pre",32),f(215),p(),h(216,"button",33),O("click",function(){return o.copy()}),q(217,hH,2,0)(218,pH,2,0),p()()()()()),2&r&&(C(8),E("ngForOf",o.environments),C(2),E("ngIf",o.severalPackagesAvailable()),C(8),E("ngForOf",o.configuration.reports)("ngForTrackBy",o.trackByIndex),C(11),E("ngModel",o.configuration.targetdir),C(10),E("ngForOf",o.configuration.types)("ngForTrackBy",o.trackByIndex),C(2),E("ngForOf",o.configuration.reporttypes)("ngForTrackBy",o.trackByIndex),C(7),E("ngForOf",o.configuration.sourcedirectories)("ngForTrackBy",o.trackByIndex),C(16),E("ngModel",o.configuration.historydir)("required",o.configuration.historyDirRequired()),C(12),E("ngForOf",o.configuration.plugins)("ngForTrackBy",o.trackByIndex),C(26),E("ngForOf",o.configuration.assemblyfilters)("ngForTrackBy",o.trackByIndex),C(26),E("ngForOf",o.configuration.classfilters)("ngForTrackBy",o.trackByIndex),C(26),E("ngForOf",o.configuration.filefilters)("ngForTrackBy",o.trackByIndex),C(11),E("ngModel",o.configuration.selectedverbosity),C(),E("ngForOf",o.configuration.verbosities)("ngForTrackBy",o.trackByIndex),C(7),E("ngModel",o.configuration.title),C(7),E("ngModel",o.configuration.tag),C(6),E("routerLink",te(38,gH)),C(3),E("ngModel",o.configuration.license),C(6),E("href",o.selectedPackage.url,Eo),C(),Me(o.selectedPackage.name),C(),E("ngForOf",o.selectedPackage.installOptions),C(4),Me(o.getUsage()),C(2),Zo(203,o.usageCopied?203:204),C(6),E("href",o.selectedPackage.url,Eo),C(),Me(o.selectedPackage.name),C(),E("ngForOf",o.selectedPackage.installOptions),C(4),Me(o.getUsage()),C(2),Zo(217,o.usageCopied?217:218))},dependencies:[Kc,Qc,rM,iM,_i,Xc,Zp,Uc,Bc,bi,eg,la,wi,Uh,Bh,vc,In],styles:[".sticky[_ngcontent-%COMP%]{position:sticky;top:100px}"]})}return e})(),title:"Usage"+Yr,data:{canonical:"/usage"}},{path:"usage.html",redirectTo:"/usage"},{path:"pro",component:U$,title:"PRO"+Yr,data:{canonical:"/pro"}},{path:"pro.html",redirectTo:"/pro"},{path:"contact",component:YB,title:"Contact"+Yr,data:{canonical:"/contact"}},{path:"contact.html",redirectTo:"/contact"},{path:"404",component:o$,title:"404 - Not found"+Yr},{path:"**",redirectTo:"/404"}];(function OV(e,n){return iF({rootComponent:e,...rE(n)})})(yU,{providers:[Wm(jV,(()=>{class e{static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275mod=Yn({type:e});static#n=this.\u0275inj=An({imports:[lI.forRoot(vH,{scrollPositionRestoration:"enabled",scrollOffset:[0,0],anchorScrolling:"enabled"}),lI]})}return e})(),Kc),LM,VM,OM,function VB(...e){const n=[rg,wM,CM,{provide:eu,useExisting:CM},{provide:tu,useExisting:wM},{provide:da,useValue:LB,multi:!0},{provide:sg,useValue:!0},{provide:IM,useClass:FB}];for(const t of e)n.push(...t.\u0275providers);return qa(n)}(function jB(){return function Zr(e,n){return{\u0275kind:e,\u0275providers:n}}(yr.LegacyInterceptors,[{provide:MM,useFactory:SB},{provide:da,useExisting:MM,multi:!0}])}())]}).catch(e=>console.error(e))}},Mi=>{Mi(Mi.s=985)}]); \ No newline at end of file diff --git a/docs/pro.html b/docs/pro.html index df190945..352cf069 100644 --- a/docs/pro.html +++ b/docs/pro.html @@ -11,5 +11,5 @@ - + \ No newline at end of file diff --git a/docs/resources/SampleReports.zip b/docs/resources/SampleReports.zip index 12fd6ba5..7955b4f2 100644 Binary files a/docs/resources/SampleReports.zip and b/docs/resources/SampleReports.zip differ diff --git a/docs/resources/reports/CodeClimate/codeclimate.json b/docs/resources/reports/CodeClimate/codeclimate.json new file mode 100644 index 00000000..062109d5 --- /dev/null +++ b/docs/resources/reports/CodeClimate/codeclimate.json @@ -0,0 +1,94 @@ +{ + "ci_service": { + "branch": "main", + "build_identifier": "", + "build_url": "", + "commit_sha": "e2a0d2b74651749aeb48a8eaecc51d7cf49c5dc8", + "committed_at": 1706817706, + "name": "" + }, + "environment": { + "gem_version": "", + "package_version": "", + "pwd": "C:\\Users\\Daniel Palme\\Documents\\Projects\\ReportGenerator\\src\\resources\\SampleReportsInAllFormats", + "prefix": "C:\\Users\\Daniel Palme\\Documents\\Projects\\ReportGenerator\\src\\resources\\SampleReportsInAllFormats", + "rails_root": "", + "reporter_version": "0.11.1", + "simplecov_root": "" + }, + "git": { + "branch": "main", + "head": "e2a0d2b74651749aeb48a8eaecc51d7cf49c5dc8", + "committed_at": 1706817706 + }, + "covered_percent": 69.4, + "covered_strength": 0, + "line_counts": { + "missed": 33, + "covered": 108, + "total": 260 + }, + "source_files": [ + { + "blob_id": "40ca65f862828baaca5ee2cbd023d0553ed58ec0", + "coverage": [null,null,null,null,null,null,null,null,1,1,1,null,null,0,0,0,null,null,null,null,null,0,null,null,1,1,1,1,1,null,0,0,0,1], + "covered_percent": 56.2, + "covered_strength": 0, + "line_counts": { + "missed": 7, + "covered": 16, + "total": 36 + }, + "name": "C:\\temp\\PartialClass.cs" + }, + { + "blob_id": "8d31d4e55793c05223f5e31e595f5253f056e1e5", + "coverage": [null,null,null,null,null,null,null,null,1,1,1,null,null,0,0,0], + "covered_percent": 50, + "covered_strength": 0, + "line_counts": { + "missed": 3, + "covered": 6, + "total": 17 + }, + "name": "C:\\temp\\PartialClass2.cs" + }, + { + "blob_id": "0f2c8d72a438702ce638795f861dacca678860a8", + "coverage": [null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,2,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,2,null,null,null,null,null,null,null,null,null,null,null,1,1,1,1,1,1,null,null,null,null,null,1,1,1,1,null,null,1,1,1], + "covered_percent": 100, + "covered_strength": 0, + "line_counts": { + "missed": 0, + "covered": 15, + "total": 84 + }, + "name": "C:\\temp\\Program.cs" + }, + { + "blob_id": "9b0c3204400bff54a41bdcc34d08fd4196723994", + "coverage": [null,null,null,null,null,null,null,null,null,2,2,2,2,2,null,2,2,null,2,2,2,2,null,0,0,0,2,null,null,2,2,null,2,null,null,2,2,2,2,null,null,2,8,null,8,null,2,2,null,null,null,null,0,0,0,0,0,0], + "covered_percent": 72.7, + "covered_strength": 0, + "line_counts": { + "missed": 9, + "covered": 33, + "total": 38 + }, + "name": "C:\\temp\\TestClass.cs" + }, + { + "blob_id": "4b272fbb3483cf936a792b0400a327cd3105f686", + "coverage": [null,null,null,null,null,null,null,null,null,null,null,2,null,3,null,0,null,0,0,0,0,0,null,2,2,2,2,2,null,null,1,1,1,1,null,null,0,0,0,0,null,null,1,1,null,5,null,11,4,4,4,null,1,null,4,1,1,1,1,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,0,0,0,0], + "covered_percent": 63.1, + "covered_strength": 0, + "line_counts": { + "missed": 14, + "covered": 38, + "total": 85 + }, + "name": "C:\\temp\\TestClass2.cs" + } + ], + "repo_token": "" +} \ No newline at end of file diff --git a/docs/resources/reports/index.html b/docs/resources/reports/index.html index 1f1e075d..4a3aa980 100644 --- a/docs/resources/reports/index.html +++ b/docs/resources/reports/index.html @@ -199,6 +199,11 @@

Other

JsonSummary Creates a single JSON file containing a summary for all classes. + + + CodeClimate + Creates a single JSON file containing a (Gitlab) code climate report. + CsvSummary diff --git a/docs/usage.html b/docs/usage.html index 46f638b9..613108b6 100644 --- a/docs/usage.html +++ b/docs/usage.html @@ -11,5 +11,5 @@ - + \ No newline at end of file diff --git a/src/AzureDevopsTask/README.md b/src/AzureDevopsTask/README.md index 71b8edfd..985c58b3 100644 --- a/src/AzureDevopsTask/README.md +++ b/src/AzureDevopsTask/README.md @@ -18,7 +18,7 @@ To learn how to use *ReportGenerator* have a look at the: inputs: reports: 'coverage.xml' # REQUIRED # The coverage reports that should be parsed (separated by semicolon). Globbing is supported. targetdir: 'coveragereport' # REQUIRED # The directory where the generated report should be saved. - reporttypes: 'HtmlInline_AzurePipelines;Cobertura' # The output formats and scope (separated by semicolon) Values: Badges, Clover, Cobertura, OpenCover, CsvSummary, Html, Html_Dark, Html_Light, Html_BlueRed, HtmlChart, HtmlInline, HtmlInline_AzurePipelines, HtmlInline_AzurePipelines_Dark, HtmlInline_AzurePipelines_Light, HtmlSummary, Html_BlueRed_Summary, JsonSummary, Latex, LatexSummary, lcov, MarkdownSummary, MarkdownSummaryGithub, MarkdownDeltaSummary, MHtml, SvgChart, SonarQube, TeamCitySummary, TextSummary, TextDeltaSummary, Xml, XmlSummary + reporttypes: 'HtmlInline_AzurePipelines;Cobertura' # The output formats and scope (separated by semicolon) Values: Badges, Clover, Cobertura, OpenCover, CsvSummary, Html, Html_Dark, Html_Light, Html_BlueRed, HtmlChart, HtmlInline, HtmlInline_AzurePipelines, HtmlInline_AzurePipelines_Dark, HtmlInline_AzurePipelines_Light, HtmlSummary, Html_BlueRed_Summary, JsonSummary, CodeClimate, Latex, LatexSummary, lcov, MarkdownSummary, MarkdownSummaryGithub, MarkdownDeltaSummary, MHtml, SvgChart, SonarQube, TeamCitySummary, TextSummary, TextDeltaSummary, Xml, XmlSummary sourcedirs: '' # Optional directories which contain the corresponding source code (separated by semicolon). The source directories are used if coverage report contains classes without path information. historydir: '' # Optional directory for storing persistent coverage information. Can be used in future reports to show coverage evolution. plugins: '' # Optional plugin files for custom reports or custom history storage (separated by semicolon). diff --git a/src/AzureDevopsTask/ReportGenerator/task.json b/src/AzureDevopsTask/ReportGenerator/task.json index 0c8e4e19..8406c103 100644 --- a/src/AzureDevopsTask/ReportGenerator/task.json +++ b/src/AzureDevopsTask/ReportGenerator/task.json @@ -41,7 +41,7 @@ "label": "Report types", "defaultValue": "HtmlInline_AzurePipelines;Cobertura", "required": false, - "helpMarkDown": "The output formats and scope (separated by semicolon) Values: Badges, Clover, Cobertura, OpenCover, CsvSummary, Html, Html_Dark, Html_Light, Html_BlueRed, HtmlChart, HtmlInline, HtmlInline_AzurePipelines, HtmlInline_AzurePipelines_Dark, HtmlInline_AzurePipelines_Light, HtmlSummary, Html_BlueRed_Summary, JsonSummary, Latex, LatexSummary, lcov, MarkdownSummary, MarkdownSummaryGithub, MarkdownDeltaSummary, MHtml, SvgChart, SonarQube, TeamCitySummary, TextSummary, TextDeltaSummary, Xml, XmlSummary" + "helpMarkDown": "The output formats and scope (separated by semicolon) Values: Badges, Clover, Cobertura, OpenCover, CsvSummary, Html, Html_Dark, Html_Light, Html_BlueRed, HtmlChart, HtmlInline, HtmlInline_AzurePipelines, HtmlInline_AzurePipelines_Dark, HtmlInline_AzurePipelines_Light, HtmlSummary, Html_BlueRed_Summary, JsonSummary, CodeClimate, Latex, LatexSummary, lcov, MarkdownSummary, MarkdownSummaryGithub, MarkdownDeltaSummary, MHtml, SvgChart, SonarQube, TeamCitySummary, TextSummary, TextDeltaSummary, Xml, XmlSummary" }, { "name": "sourcedirs", diff --git a/src/Readme.txt b/src/Readme.txt index 03184b9f..bd5d4ea6 100644 --- a/src/Readme.txt +++ b/src/Readme.txt @@ -30,7 +30,7 @@ The following output formats are supported by ReportGenerator: -SonarQube -lcov -Xml, XmlSummary --JsonSummary +-JsonSummary, CodeClimate -Latex, LatexSummary -TeamCitySummary -TextSummary, TextDeltaSummary @@ -70,6 +70,7 @@ CHANGELOG 5.2.1.0 * New: Added 'Crap Score' metric for Coberatura coverage files (contrbuted by @rikrak) + * New: #645 Added new report type 'CodeClimate' 5.2.0.0 diff --git a/src/ReportGenerator.Core/Common/JsonSerializer.cs b/src/ReportGenerator.Core/Common/JsonSerializer.cs index 0b2a96de..62d16302 100644 --- a/src/ReportGenerator.Core/Common/JsonSerializer.cs +++ b/src/ReportGenerator.Core/Common/JsonSerializer.cs @@ -75,6 +75,11 @@ public static string ToJsonString(object obj) /// The escaped string. public static string EscapeString(string input) { + if (input == null) + { + return null; + } + bool NeedEscape(string src, int i) { char c = src[i]; diff --git a/src/ReportGenerator.Core/Parser/Analysis/CodeFile.cs b/src/ReportGenerator.Core/Parser/Analysis/CodeFile.cs index 1fce64c2..1b02f351 100644 --- a/src/ReportGenerator.Core/Parser/Analysis/CodeFile.cs +++ b/src/ReportGenerator.Core/Parser/Analysis/CodeFile.cs @@ -265,6 +265,18 @@ public int CoveredCodeElements /// public int TotalCodeElements => this.codeElements.Count; + /// + /// Gets the coverage quota of the file. + /// + /// The coverage quota. + public decimal? CoverageQuota + { + get + { + return (this.CoverableLines == 0) ? (decimal?)null : MathExtensions.CalculatePercentage(this.CoveredLines, this.CoverableLines); + } + } + /// /// Returns a that represents this instance. /// @@ -313,7 +325,7 @@ public override bool Equals(object obj) /// The first line. /// The last line. /// The coverage quota or null if not applicable. - internal decimal? CoverageQuota(int firstLine, int lastLine) + internal decimal? CoverageQuotaInRange(int firstLine, int lastLine) { if (firstLine < 0 || firstLine >= this.lineVisitStatus.Length @@ -611,7 +623,7 @@ internal void Merge(CodeFile file) foreach (var codeElement in this.codeElements) { - codeElement.ApplyMaximumCoverageQuota(this.CoverageQuota(codeElement.FirstLine, codeElement.LastLine)); + codeElement.ApplyMaximumCoverageQuota(this.CoverageQuotaInRange(codeElement.FirstLine, codeElement.LastLine)); } if (file.additionalFileReader == null) diff --git a/src/ReportGenerator.Core/Parser/CloverParser.cs b/src/ReportGenerator.Core/Parser/CloverParser.cs index 0515834b..b5004797 100644 --- a/src/ReportGenerator.Core/Parser/CloverParser.cs +++ b/src/ReportGenerator.Core/Parser/CloverParser.cs @@ -314,7 +314,7 @@ private static void SetCodeElements(CodeFile codeFile, IEnumerable met CodeElementType.Method, codeElement.FirstLine, lastLine, - codeFile.CoverageQuota(codeElement.FirstLine, lastLine))); + codeFile.CoverageQuotaInRange(codeElement.FirstLine, lastLine))); } } } diff --git a/src/ReportGenerator.Core/Parser/CoberturaParser.cs b/src/ReportGenerator.Core/Parser/CoberturaParser.cs index ca88a112..d5814e58 100644 --- a/src/ReportGenerator.Core/Parser/CoberturaParser.cs +++ b/src/ReportGenerator.Core/Parser/CoberturaParser.cs @@ -446,7 +446,7 @@ private static void SetCodeElements(CodeFile codeFile, IEnumerable met methodName.StartsWith("get_") || methodName.StartsWith("set_") ? CodeElementType.Property : CodeElementType.Method, firstLine, lastLine, - codeFile.CoverageQuota(firstLine, lastLine))); + codeFile.CoverageQuotaInRange(firstLine, lastLine))); } } } diff --git a/src/ReportGenerator.Core/Parser/DotCoverParser.cs b/src/ReportGenerator.Core/Parser/DotCoverParser.cs index 6cb18a4b..75b2c691 100644 --- a/src/ReportGenerator.Core/Parser/DotCoverParser.cs +++ b/src/ReportGenerator.Core/Parser/DotCoverParser.cs @@ -270,7 +270,7 @@ private static void SetCodeElements(CodeFile codeFile, string fileId, IEnumerabl type, seqpnts.Min(s => s.LineNumberStart), seqpnts.Max(s => s.LineNumberEnd), - codeFile.CoverageQuota(firstLine, lastLine))); + codeFile.CoverageQuotaInRange(firstLine, lastLine))); } } } diff --git a/src/ReportGenerator.Core/Parser/DynamicCodeCoverageParser.cs b/src/ReportGenerator.Core/Parser/DynamicCodeCoverageParser.cs index a447bc4d..cc930fd9 100644 --- a/src/ReportGenerator.Core/Parser/DynamicCodeCoverageParser.cs +++ b/src/ReportGenerator.Core/Parser/DynamicCodeCoverageParser.cs @@ -330,7 +330,7 @@ private static void SetCodeElements(CodeFile codeFile, IEnumerable met type, firstLine, lastLine, - codeFile.CoverageQuota(firstLine, lastLine))); + codeFile.CoverageQuotaInRange(firstLine, lastLine))); } } } diff --git a/src/ReportGenerator.Core/Parser/GCovParser.cs b/src/ReportGenerator.Core/Parser/GCovParser.cs index 5409c17f..326fef5e 100644 --- a/src/ReportGenerator.Core/Parser/GCovParser.cs +++ b/src/ReportGenerator.Core/Parser/GCovParser.cs @@ -234,7 +234,7 @@ private void ProcessCoverage(Class @class, string fileName, string[] lines) CodeElementType.Method, codeElement.FirstLine, lastLine, - codeFile.CoverageQuota(codeElement.FirstLine, lastLine))); + codeFile.CoverageQuotaInRange(codeElement.FirstLine, lastLine))); } @class.AddFile(codeFile); diff --git a/src/ReportGenerator.Core/Parser/JaCoCoParser.cs b/src/ReportGenerator.Core/Parser/JaCoCoParser.cs index 7e82e876..93171773 100644 --- a/src/ReportGenerator.Core/Parser/JaCoCoParser.cs +++ b/src/ReportGenerator.Core/Parser/JaCoCoParser.cs @@ -327,7 +327,7 @@ private static void SetCodeElements(CodeFile codeFile, IEnumerable met CodeElementType.Method, codeElement.FirstLine, lastLine, - codeFile.CoverageQuota(codeElement.FirstLine, lastLine))); + codeFile.CoverageQuotaInRange(codeElement.FirstLine, lastLine))); } } diff --git a/src/ReportGenerator.Core/Parser/LCovParser.cs b/src/ReportGenerator.Core/Parser/LCovParser.cs index 0c916353..0ab31afc 100644 --- a/src/ReportGenerator.Core/Parser/LCovParser.cs +++ b/src/ReportGenerator.Core/Parser/LCovParser.cs @@ -239,7 +239,7 @@ private void ProcessClass(Class @class, string fileName, string[] lines, ref int CodeElementType.Method, codeElement.FirstLine, lastLine, - codeFile.CoverageQuota(codeElement.FirstLine, lastLine))); + codeFile.CoverageQuotaInRange(codeElement.FirstLine, lastLine))); } @class.AddFile(codeFile); diff --git a/src/ReportGenerator.Core/Parser/MProfParser.cs b/src/ReportGenerator.Core/Parser/MProfParser.cs index 2f0f9f4e..61949ad0 100644 --- a/src/ReportGenerator.Core/Parser/MProfParser.cs +++ b/src/ReportGenerator.Core/Parser/MProfParser.cs @@ -225,7 +225,7 @@ private static void SetCodeElements(CodeFile codeFile, IEnumerable met type, firstLine, lastLine, - codeFile.CoverageQuota(firstLine, lastLine))); + codeFile.CoverageQuotaInRange(firstLine, lastLine))); } } } diff --git a/src/ReportGenerator.Core/Parser/NCoverParser.cs b/src/ReportGenerator.Core/Parser/NCoverParser.cs index 6fd059ae..3a098e12 100644 --- a/src/ReportGenerator.Core/Parser/NCoverParser.cs +++ b/src/ReportGenerator.Core/Parser/NCoverParser.cs @@ -236,7 +236,7 @@ private static void SetCodeElements(CodeFile codeFile, IEnumerable met type, firstLine, lastLine, - codeFile.CoverageQuota(firstLine, lastLine))); + codeFile.CoverageQuotaInRange(firstLine, lastLine))); } } } diff --git a/src/ReportGenerator.Core/Parser/OpenCoverParser.cs b/src/ReportGenerator.Core/Parser/OpenCoverParser.cs index 97cbbb0d..99c54a80 100644 --- a/src/ReportGenerator.Core/Parser/OpenCoverParser.cs +++ b/src/ReportGenerator.Core/Parser/OpenCoverParser.cs @@ -577,7 +577,7 @@ private static void SetCodeElements(CodeFile codeFile, IEnumerable met type, firstLine, lastLine, - codeFile.CoverageQuota(firstLine, lastLine))); + codeFile.CoverageQuotaInRange(firstLine, lastLine))); } } } diff --git a/src/ReportGenerator.Core/Parser/VisualStudioParser.cs b/src/ReportGenerator.Core/Parser/VisualStudioParser.cs index a7999065..66c739f9 100644 --- a/src/ReportGenerator.Core/Parser/VisualStudioParser.cs +++ b/src/ReportGenerator.Core/Parser/VisualStudioParser.cs @@ -353,7 +353,7 @@ private static void SetCodeElements(CodeFile codeFile, IEnumerable met type, firstLine, lastLine, - codeFile.CoverageQuota(firstLine, lastLine))); + codeFile.CoverageQuotaInRange(firstLine, lastLine))); } } } diff --git a/src/ReportGenerator.Core/Reporting/Builders/CodeClimateReportBuilder.cs b/src/ReportGenerator.Core/Reporting/Builders/CodeClimateReportBuilder.cs new file mode 100644 index 00000000..43f4baaa --- /dev/null +++ b/src/ReportGenerator.Core/Reporting/Builders/CodeClimateReportBuilder.cs @@ -0,0 +1,190 @@ +using System; +using System.Collections.Generic; +using System.Globalization; +using System.IO; +using System.Text; +using Palmmedia.ReportGenerator.Core.Common; +using Palmmedia.ReportGenerator.Core.Logging; +using Palmmedia.ReportGenerator.Core.Parser.Analysis; +using Palmmedia.ReportGenerator.Core.Properties; + +namespace Palmmedia.ReportGenerator.Core.Reporting.Builders +{ + /// + /// Creates Gitlab Code Climate report in JSON format. + /// + public class CodeClimateReportBuilder : IReportBuilder + { + /// + /// The Logger. + /// + private static readonly ILogger Logger = LoggerFactory.GetLogger(typeof(CodeClimateReportBuilder)); + + /// + /// Gets the report type. + /// + /// + /// The report format. + /// + public virtual string ReportType => "CodeClimate"; + + /// + /// Gets or sets the report context. + /// + /// + /// The report context. + /// + public IReportContext ReportContext { get; set; } + + /// + /// Creates a class report. + /// + /// The class. + /// The file analyses that correspond to the class. + public virtual void CreateClassReport(Class @class, IEnumerable fileAnalyses) + { + } + + /// + /// Creates the summary report. + /// + /// The summary result. + public void CreateSummaryReport(SummaryResult summaryResult) + { + string targetDirectory = this.ReportContext.ReportConfiguration.TargetDirectory; + + if (this.ReportContext.Settings.CreateSubdirectoryForAllReportTypes) + { + targetDirectory = Path.Combine(targetDirectory, this.ReportType); + + if (!Directory.Exists(targetDirectory)) + { + try + { + Directory.CreateDirectory(targetDirectory); + } + catch (Exception ex) + { + Logger.ErrorFormat(Resources.TargetDirectoryCouldNotBeCreated, targetDirectory, ex.GetExceptionMessageForDisplay()); + return; + } + } + } + + string targetPath = Path.Combine(targetDirectory, "codeclimate.json"); + + Logger.InfoFormat(Resources.WritingReportFile, targetPath); + + var gitInformation = GitHelper.GetGitInformation(); + int missedLines = summaryResult.CoverableLines - summaryResult.CoveredLines; + var processedFiles = new HashSet(); + + using (var reportTextWriter = new StreamWriter(new FileStream(targetPath, FileMode.Create), new UTF8Encoding(encoderShouldEmitUTF8Identifier: false))) + { + reportTextWriter.WriteLine("{"); + + reportTextWriter.WriteLine(" \"ci_service\": {"); + reportTextWriter.WriteLine($" \"branch\": \"{JsonSerializer.EscapeString(gitInformation.Branch)}\","); + reportTextWriter.WriteLine(" \"build_identifier\": \"\","); + reportTextWriter.WriteLine(" \"build_url\": \"\","); + reportTextWriter.WriteLine($" \"commit_sha\": \"{gitInformation.Sha}\","); + reportTextWriter.WriteLine($" \"committed_at\": {(string.IsNullOrWhiteSpace(gitInformation.TimeStamp) ? "null" : gitInformation.TimeStamp)},"); + reportTextWriter.WriteLine(" \"name\": \"\""); + reportTextWriter.WriteLine(" },"); + + reportTextWriter.WriteLine(" \"environment\": {"); + reportTextWriter.WriteLine(" \"gem_version\": \"\","); + reportTextWriter.WriteLine(" \"package_version\": \"\","); + reportTextWriter.WriteLine($" \"pwd\": \"{JsonSerializer.EscapeString(Directory.GetCurrentDirectory())}\","); + reportTextWriter.WriteLine($" \"prefix\": \"{JsonSerializer.EscapeString(Directory.GetCurrentDirectory())}\","); + reportTextWriter.WriteLine(" \"rails_root\": \"\","); + reportTextWriter.WriteLine(" \"reporter_version\": \"0.11.1\","); + reportTextWriter.WriteLine(" \"simplecov_root\": \"\""); + reportTextWriter.WriteLine(" },"); + + reportTextWriter.WriteLine(" \"git\": {"); + reportTextWriter.WriteLine($" \"branch\": \"{JsonSerializer.EscapeString(gitInformation.Branch)}\","); + reportTextWriter.WriteLine($" \"head\": \"{gitInformation.Sha}\","); + reportTextWriter.WriteLine($" \"committed_at\": {(string.IsNullOrWhiteSpace(gitInformation.TimeStamp) ? "null" : gitInformation.TimeStamp)}"); + reportTextWriter.WriteLine(" },"); + + reportTextWriter.WriteLine($" \"covered_percent\": {summaryResult.CoverageQuota.GetValueOrDefault().ToString(CultureInfo.InvariantCulture)},"); + reportTextWriter.WriteLine(" \"covered_strength\": 0,"); + + reportTextWriter.WriteLine(" \"line_counts\": {"); + reportTextWriter.WriteLine($" \"missed\": {missedLines.ToString(CultureInfo.InvariantCulture)},"); + reportTextWriter.WriteLine($" \"covered\": {summaryResult.CoverableLines.ToString(CultureInfo.InvariantCulture)},"); + reportTextWriter.WriteLine($" \"total\": {summaryResult.TotalLines.GetValueOrDefault().ToString(CultureInfo.InvariantCulture)}"); + reportTextWriter.WriteLine(" },"); + + reportTextWriter.WriteLine(" \"source_files\": ["); + + foreach (var assembly in summaryResult.Assemblies) + { + foreach (var clazz in assembly.Classes) + { + foreach (var file in clazz.Files) + { + if (processedFiles.Contains(file.Path)) + { + continue; + } + + processedFiles.Add(file.Path); + + missedLines = file.CoverableLines - file.CoveredLines; + + if (processedFiles.Count > 1) + { + reportTextWriter.WriteLine(","); + } + + reportTextWriter.WriteLine(" {"); + reportTextWriter.WriteLine($" \"blob_id\": \"{JsonSerializer.EscapeString(GitHelper.GetFileHash(file.Path))}\","); + reportTextWriter.Write($" \"coverage\": ["); + + var lineCoverage = file.LineCoverage; + + for (int i = 0; i < lineCoverage.Count; i++) + { + if (i > 0) + { + reportTextWriter.Write(","); + } + + if (lineCoverage[i] < 0) + { + reportTextWriter.Write("null"); + } + else + { + reportTextWriter.Write(lineCoverage[i].ToString(CultureInfo.InvariantCulture)); + } + } + + reportTextWriter.WriteLine($"],"); + reportTextWriter.WriteLine($" \"covered_percent\": {file.CoverageQuota.GetValueOrDefault().ToString(CultureInfo.InvariantCulture)},"); + reportTextWriter.WriteLine($" \"covered_strength\": 0,"); // TODO: Implement + reportTextWriter.WriteLine(" \"line_counts\": {"); + reportTextWriter.WriteLine($" \"missed\": {missedLines.ToString(CultureInfo.InvariantCulture)},"); + reportTextWriter.WriteLine($" \"covered\": {file.CoverableLines.ToString(CultureInfo.InvariantCulture)},"); + reportTextWriter.WriteLine($" \"total\": {file.TotalLines.GetValueOrDefault().ToString(CultureInfo.InvariantCulture)}"); + reportTextWriter.WriteLine(" },"); + reportTextWriter.WriteLine($" \"name\": \"{JsonSerializer.EscapeString(file.Path)}\""); + reportTextWriter.Write(" }"); + } + } + } + + reportTextWriter.WriteLine(string.Empty); + reportTextWriter.WriteLine(" ],"); + + reportTextWriter.WriteLine(" \"repo_token\": \"\""); + + reportTextWriter.Write("}"); + + reportTextWriter.Flush(); + } + } + } +} diff --git a/src/ReportGenerator.Core/Reporting/GitHelper.cs b/src/ReportGenerator.Core/Reporting/GitHelper.cs new file mode 100644 index 00000000..0dcac64b --- /dev/null +++ b/src/ReportGenerator.Core/Reporting/GitHelper.cs @@ -0,0 +1,61 @@ +using System.Diagnostics; + +namespace Palmmedia.ReportGenerator.Core.Reporting +{ + /// + /// Helper class to retrieve information from Git. + /// + internal static class GitHelper + { + /// + /// Gets the Git information. + /// + /// The Git information. + public static GitInformation GetGitInformation() + { + GitInformation gitInformation = new GitInformation(); + gitInformation.Branch = ExecuteGitCommand("rev-parse --abbrev-ref HEAD"); + gitInformation.Sha = ExecuteGitCommand("rev-parse HEAD"); + gitInformation.TimeStamp = ExecuteGitCommand("show -s --format=%ct"); + return gitInformation; + } + + /// + /// Gets the file hash. + /// + /// The path. + /// The Git information. + public static string GetFileHash(string path) + { + return ExecuteGitCommand("hash-object " + path); + } + + private static string ExecuteGitCommand(string arguments) + { + try + { + ProcessStartInfo processStartInfo = new ProcessStartInfo + { + FileName = "git", + Arguments = arguments, + RedirectStandardOutput = true, + UseShellExecute = false, + CreateNoWindow = true + }; + + using (Process process = new Process { StartInfo = processStartInfo }) + { + process.Start(); + string output = process.StandardOutput.ReadToEnd(); + process.WaitForExit(); + + return output.Trim(); + } + } + catch (System.Exception) + { + return string.Empty; + } + } + } +} diff --git a/src/ReportGenerator.Core/Reporting/GitInformation.cs b/src/ReportGenerator.Core/Reporting/GitInformation.cs new file mode 100644 index 00000000..958c9dfe --- /dev/null +++ b/src/ReportGenerator.Core/Reporting/GitInformation.cs @@ -0,0 +1,23 @@ +namespace Palmmedia.ReportGenerator.Core.Reporting +{ + /// + /// Represents the Git information. + /// + internal class GitInformation + { + /// + /// Gets or sets the branch. + /// + public string Branch { get; set; } + + /// + /// Gets or sets the sha hash. + /// + public string Sha { get; set; } + + /// + /// Gets or sets the timestamp. + /// + public string TimeStamp { get; set; } + } +}