diff --git a/README.md b/README.md index d1bb9716..eee21bc1 100644 --- a/README.md +++ b/README.md @@ -72,7 +72,7 @@ Explanations: Target directory: The directory where the generated report should be saved. Report types: The output formats and scope (separated by semicolon). Values: Badges, Clover, Cobertura, CsvSummary, - MarkdownSummary, MarkdownSummaryGithub, MarkdownDeltaSummary + MarkdownSummary, MarkdownAssembliesSummary, MarkdownSummaryGithub, MarkdownDeltaSummary OpenCover Html, Html_Light, Html_Dark, Html_BlueRed HtmlChart, HtmlInline, HtmlSummary, Html_BlueRed_Summary @@ -211,7 +211,7 @@ If you need a custom format, you can create a [plugin](https://github.com/daniel | **Input formats** | **Output formats** | |:------------------|:-------------------| -|

| | +|

| | ### Screenshots The screenshots show two snippets of the generated reports: diff --git a/docs/404.html b/docs/404.html index 35056972..95e21b92 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 4c9ced35..58ed0cf7 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 4d0feadd..a9e79034 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 e1257bc0..a3486369 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 6746864a..4578ad45 100644 --- a/docs/index.html +++ b/docs/index.html @@ -11,5 +11,5 @@ - + \ No newline at end of file diff --git a/docs/main.c3bbbfa32c91ad39.js b/docs/main.9a4940c6bc470397.js similarity index 93% rename from docs/main.c3bbbfa32c91ad39.js rename to docs/main.9a4940c6bc470397.js index e5339ec9..3a77cba8 100644 --- a/docs/main.c3bbbfa32c91ad39.js +++ b/docs/main.9a4940c6bc470397.js @@ -1 +1 @@ -"use strict";(self.webpackChunkReportGenerator_io=self.webpackChunkReportGenerator_io||[]).push([[792],{729:()=>{function Ri(e,n,t,r,o,i,s){try{var a=e[i](s),l=a.value}catch(c){return void t(c)}a.done?n(l):Promise.resolve(l).then(r,o)}function ro(e){return function(){var n=this,t=arguments;return new Promise(function(r,o){var i=e.apply(n,t);function s(l){Ri(i,r,o,s,a,"next",l)}function a(l){Ri(i,r,o,s,a,"throw",l)}s(void 0)})}}let Oe=null,Ia=1;const Sr=Symbol("SIGNAL");function Q(e){const n=Oe;return Oe=e,n}function xg(e){if((!Oi(e)||e.dirty)&&(e.dirty||e.lastCleanEpoch!==Ia)){if(!e.producerMustRecompute(e)&&!wu(e))return e.dirty=!1,void(e.lastCleanEpoch=Ia);e.producerRecomputeValue(e),e.dirty=!1,e.lastCleanEpoch=Ia}}function wu(e){oo(e);for(let n=0;n0}function oo(e){e.producerNode??=[],e.producerIndexOfThis??=[],e.producerLastReadVersion??=[]}let Bg=null;function Ie(e){return"function"==typeof e}function Eu(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 Iu=Eu(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 Mu(e,n){if(e){const t=e.indexOf(n);0<=t&&e.splice(t,1)}}class Dt{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(Ie(r))try{r()}catch(i){n=i instanceof Iu?i.errors:[i]}const{_finalizers:o}=this;if(o){this._finalizers=null;for(const i of o)try{qg(i)}catch(s){n=n??[],s instanceof Iu?n=[...n,...s.errors]:n.push(s)}}if(n)throw new Iu(n)}}add(n){var t;if(n&&n!==this)if(this.closed)qg(n);else{if(n instanceof Dt){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)&&Mu(t,n)}remove(n){const{_finalizers:t}=this;t&&Mu(t,n),n instanceof Dt&&n._removeParent(this)}}Dt.EMPTY=(()=>{const e=new Dt;return e.closed=!0,e})();const Gg=Dt.EMPTY;function zg(e){return e instanceof Dt||e&&"closed"in e&&Ie(e.remove)&&Ie(e.add)&&Ie(e.unsubscribe)}function qg(e){Ie(e)?e():e.unsubscribe()}const Tr={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},Sa={setTimeout(e,n,...t){const{delegate:r}=Sa;return r?.setTimeout?r.setTimeout(e,n,...t):setTimeout(e,n,...t)},clearTimeout(e){const{delegate:n}=Sa;return(n?.clearTimeout||clearTimeout)(e)},delegate:void 0};function Wg(e){Sa.setTimeout(()=>{const{onUnhandledError:n}=Tr;if(!n)throw e;n(e)})}function Su(){}const L1=Tu("C",void 0,void 0);function Tu(e,n,t){return{kind:e,value:n,error:t}}let Ar=null;function Ta(e){if(Tr.useDeprecatedSynchronousErrorHandling){const n=!Ar;if(n&&(Ar={errorThrown:!1,error:null}),e(),n){const{errorThrown:t,error:r}=Ar;if(Ar=null,t)throw r}}else e()}class Au extends Dt{constructor(n){super(),this.isStopped=!1,n?(this.destination=n,zg(n)&&n.add(this)):this.destination=G1}static create(n,t,r){return new Ru(n,t,r)}next(n){this.isStopped?xu(function j1(e){return Tu("N",e,void 0)}(n),this):this._next(n)}error(n){this.isStopped?xu(function V1(e){return Tu("E",void 0,e)}(n),this):(this.isStopped=!0,this._error(n))}complete(){this.isStopped?xu(L1,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 B1=Function.prototype.bind;function Nu(e,n){return B1.call(e,n)}class H1{constructor(n){this.partialObserver=n}next(n){const{partialObserver:t}=this;if(t.next)try{t.next(n)}catch(r){Aa(r)}}error(n){const{partialObserver:t}=this;if(t.error)try{t.error(n)}catch(r){Aa(r)}else Aa(n)}complete(){const{partialObserver:n}=this;if(n.complete)try{n.complete()}catch(t){Aa(t)}}}class Ru extends Au{constructor(n,t,r){let o;if(super(),Ie(n)||!n)o={next:n??void 0,error:t??void 0,complete:r??void 0};else{let i;this&&Tr.useDeprecatedNextContext?(i=Object.create(n),i.unsubscribe=()=>this.unsubscribe(),o={next:n.next&&Nu(n.next,i),error:n.error&&Nu(n.error,i),complete:n.complete&&Nu(n.complete,i)}):o=n}this.destination=new H1(o)}}function Aa(e){Tr.useDeprecatedSynchronousErrorHandling?function U1(e){Tr.useDeprecatedSynchronousErrorHandling&&Ar&&(Ar.errorThrown=!0,Ar.error=e)}(e):Wg(e)}function xu(e,n){const{onStoppedNotification:t}=Tr;t&&Sa.setTimeout(()=>t(e,n))}const G1={closed:!0,next:Su,error:function $1(e){throw e},complete:Su},Ou="function"==typeof Symbol&&Symbol.observable||"@@observable";function Nr(e){return e}function Zg(e){return 0===e.length?Nr:1===e.length?e[0]:function(t){return e.reduce((r,o)=>o(r),t)}}let Be=(()=>{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 W1(e){return e&&e instanceof Au||function q1(e){return e&&Ie(e.next)&&Ie(e.error)&&Ie(e.complete)}(e)&&zg(e)}(t)?t:new Ru(t,r,o);return Ta(()=>{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=Qg(r))((o,i)=>{const s=new Ru({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)}[Ou](){return this}pipe(...t){return Zg(t)(this)}toPromise(t){return new(t=Qg(t))((r,o)=>{let i;this.subscribe(s=>i=s,s=>o(s),()=>r(i))})}}return e.create=n=>new e(n),e})();function Qg(e){var n;return null!==(n=e??Tr.Promise)&&void 0!==n?n:Promise}const Z1=Eu(e=>function(){e(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"});let $t=(()=>{class e extends Be{constructor(){super(),this.closed=!1,this.currentObservers=null,this.observers=[],this.isStopped=!1,this.hasError=!1,this.thrownError=null}lift(t){const r=new Yg(this,this);return r.operator=t,r}_throwIfClosed(){if(this.closed)throw new Z1}next(t){Ta(()=>{if(this._throwIfClosed(),!this.isStopped){this.currentObservers||(this.currentObservers=Array.from(this.observers));for(const r of this.currentObservers)r.next(t)}})}error(t){Ta(()=>{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(){Ta(()=>{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?Gg:(this.currentObservers=null,i.push(t),new Dt(()=>{this.currentObservers=null,Mu(i,t)}))}_checkFinalizedStatuses(t){const{hasError:r,thrownError:o,isStopped:i}=this;r?t.error(o):i&&t.complete()}asObservable(){const t=new Be;return t.source=this,t}}return e.create=(n,t)=>new Yg(n,t),e})();class Yg extends $t{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:Gg}}class Gt extends $t{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 Xg(e){return Ie(e?.lift)}function nt(e){return n=>{if(Xg(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 qe(e,n,t,r,o){return new Q1(e,n,t,r,o)}class Q1 extends Au{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 ne(e,n){return nt((t,r)=>{let o=0;t.subscribe(qe(r,i=>{r.next(e.call(n,i,o++))}))})}const Jg="https://g.co/ng/security#xss";class I extends Error{constructor(n,t){super(function io(e,n){return`NG0${Math.abs(e)}${n?": "+n:""}`}(n,t)),this.code=n}}function Vn(e){return{toString:e}.toString()}const ao="__parameters__";function co(e,n,t){return Vn(()=>{const r=function ku(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(ao)?l[ao]:Object.defineProperty(l,ao,{value:[]})[ao];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})}const ue=globalThis;function fe(e){for(let n in e)if(e[n]===fe)return n;throw Error("Could not find renamed property on target object.")}function Y1(e,n){for(const t in n)n.hasOwnProperty(t)&&!e.hasOwnProperty(t)&&(e[t]=n[t])}function We(e){if("string"==typeof e)return e;if(Array.isArray(e))return"["+e.map(We).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 Pu(e,n){return null==e||""===e?null===n?"":n:null==n||""===n?e:e+" "+n}const X1=fe({__forward_ref__:fe});function ye(e){return e.__forward_ref__=ye,e.toString=function(){return We(this())},e}function V(e){return Ra(e)?e():e}function Ra(e){return"function"==typeof e&&e.hasOwnProperty(X1)&&e.__forward_ref__===ye}function x(e){return{token:e.token,providedIn:e.providedIn||null,factory:e.factory,value:void 0}}function jn(e){return{providers:e.providers||[],imports:e.imports||[]}}function xa(e){return nm(e,ka)||nm(e,rm)}function nm(e,n){return e.hasOwnProperty(n)?e[n]:null}function Oa(e){return e&&(e.hasOwnProperty(Fu)||e.hasOwnProperty(r0))?e[Fu]:null}const ka=fe({\u0275prov:fe}),Fu=fe({\u0275inj:fe}),rm=fe({ngInjectableDef:fe}),r0=fe({ngInjectorDef:fe});class R{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=x({token:this,providedIn:t.providedIn||"root",factory:t.factory}))}get multi(){return this}toString(){return`InjectionToken ${this._desc}`}}function Bu(e){return e&&!!e.\u0275providers}const ki=fe({\u0275cmp:fe}),Hu=fe({\u0275dir:fe}),$u=fe({\u0275pipe:fe}),im=fe({\u0275mod:fe}),Un=fe({\u0275fac:fe}),Pi=fe({__NG_ELEMENT_ID__:fe}),sm=fe({__NG_ENV_ID__:fe});function G(e){return"string"==typeof e?e:null==e?"":String(e)}function Gu(e,n){throw new I(-201,!1)}var ee=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}(ee||{});let zu;function am(){return zu}function wt(e){const n=zu;return zu=e,n}function lm(e,n,t){const r=xa(e);return r&&"root"==r.providedIn?void 0===r.value?r.value=r.factory():r.value:t&ee.Optional?null:void 0!==n?n:void Gu()}const Fi={},qu="__NG_DI_FLAG__",Pa="ngTempTokenPath",u0=/\n/gm,cm="__source";let uo;function rr(e){const n=uo;return uo=e,n}function h0(e,n=ee.Default){if(void 0===uo)throw new I(-203,!1);return null===uo?lm(e,void 0,n):uo.get(e,n&ee.Optional?null:void 0,n)}function k(e,n=ee.Default){return(am()||h0)(V(e),n)}function M(e,n=ee.Default){return k(e,Fa(n))}function Fa(e){return typeof e>"u"||"number"==typeof e?e:(e.optional&&8)|(e.host&&1)|(e.self&&2)|(e.skipSelf&&4)}function Wu(e){const n=[];for(let t=0;tArray.isArray(t)?fo(t,n):n(t))}function dm(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 Ot(e,n,t){let r=ho(e,n);return r>=0?e[1|r]=t:(r=~r,function fm(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 Qu(e,n){const t=ho(e,n);if(t>=0)return e[1|t]}function ho(e,n){return function hm(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<n){s=i-1;break}}}for(;i-1){let i;for(;++oi?"":o[u+1].toLowerCase(),2&r&&c!==d){if(Kt(r))return!1;s=!0}}}}else{if(!s&&!Kt(r)&&!Kt(l))return!1;if(s&&Kt(l))continue;s=!1,r=l|1&r}}return Kt(r)||s}function Kt(e){return!(1&e)}function I0(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&&!Kt(s)&&(n+=Cm(i,o),o=""),r=s,i=i||!Kt(r);t++}return""!==o&&(n+=Cm(i,o)),n}function kt(e){return Vn(()=>{const n=wm(e),t={...n,decls:e.decls,vars:e.vars,template:e.template,consts:e.consts||null,ngContentSelectors:e.ngContentSelectors,onPush:e.changeDetection===Ha.OnPush,directiveDefs:null,pipeDefs:null,dependencies:n.standalone&&e.dependencies||null,getStandaloneInjector:null,signals:e.signals??!1,data:e.data||{},encapsulation:e.encapsulation||Jt.Emulated,styles:e.styles||ie,_:null,schemas:e.schemas||null,tView:null,id:""};bm(t);const r=e.dependencies;return t.directiveDefs=$a(r,!1),t.pipeDefs=$a(r,!0),t.id=function F0(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 O0(e){return Y(e)||Ze(e)}function k0(e){return null!==e}function or(e){return Vn(()=>({type:e.type,bootstrap:e.bootstrap||ie,declarations:e.declarations||ie,imports:e.imports||ie,exports:e.exports||ie,transitiveCompileScopes:null,schemas:e.schemas||null,id:e.id||null}))}function Dm(e,n){if(null==e)return gn;const t={};for(const r in e)if(e.hasOwnProperty(r)){const o=e[r];let i,s,a=Me.None;Array.isArray(o)?(a=o[0],i=o[1],s=o[2]??i):(i=o,s=o),n?(t[i]=a!==Me.None?[r,a]:r,n[i]=s):t[i]=r}return t}function $(e){return Vn(()=>{const n=wm(e);return bm(n),n})}function Y(e){return e[ki]||null}function Ze(e){return e[Hu]||null}function rt(e){return e[$u]||null}function it(e,n){const t=e[im]||null;if(!t&&!0===n)throw new Error(`Type ${We(e)} does not have '\u0275mod' property.`);return t}function wm(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||gn,exportAs:e.exportAs||null,standalone:!0===e.standalone,signals:!0===e.signals,selectors:e.selectors||ie,viewQuery:e.viewQuery||null,features:e.features||null,setInput:null,findHostDirectiveDefs:null,hostDirectives:null,inputs:Dm(e.inputs,n),outputs:Dm(e.outputs),debugInfo:null}}function bm(e){e.features?.forEach(n=>n(e))}function $a(e,n){if(!e)return null;const t=n?rt:O0;return()=>("function"==typeof e?e():e).map(r=>t(r)).filter(k0)}function ji(e){return{\u0275providers:e}}function Em(...e){return{\u0275providers:Ku(0,e),\u0275fromNgModule:!0}}function Ku(e,...n){const t=[],r=new Set;let o;const i=s=>{t.push(s)};return fo(n,s=>{const a=s;Ga(a,i,[],r)&&(o||=[],o.push(a))}),void 0!==o&&Im(o,i),t}function Im(e,n){for(let t=0;t{n(i,r)})}}function Ga(e,n,t,r){if(!(e=V(e)))return!1;let o=null,i=Oa(e);const s=!i&&Y(e);if(i||s){if(s&&!s.standalone)return!1;o=e}else{const l=e.ngModule;if(i=Oa(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)Ga(c,n,t,r)}}else{if(!i)return!1;{if(null!=i.imports&&!a){let c;r.add(o);try{fo(i.imports,u=>{Ga(u,n,t,r)&&(c||=[],c.push(u))})}finally{}void 0!==c&&Im(c,n)}if(!a){const c=Rr(o)||(()=>new o);n({provide:o,useFactory:c,deps:ie},o),n({provide:Yu,useValue:o,multi:!0},o),n({provide:xr,useValue:()=>k(o),multi:!0},o)}const l=i.providers;if(null!=l&&!a){const c=e;ed(l,u=>{n(u,c)})}}}return o!==e&&void 0!==e.providers}function ed(e,n){for(let t of e)Bu(t)&&(t=t.\u0275providers),Array.isArray(t)?ed(t,n):n(t)}const L0=fe({provide:String,useValue:fe});function td(e){return null!==e&&"object"==typeof e&&L0 in e}function Or(e){return"function"==typeof e}const nd=new R(""),za={},j0={};let rd;function qa(){return void 0===rd&&(rd=new Ba),rd}class ft{}class po extends ft{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,id(n,s=>this.processProvider(s)),this.records.set(pm,go(void 0,this)),o.has("environment")&&this.records.set(ft,go(void 0,this));const i=this.records.get(nd);null!=i&&"string"==typeof i.value&&this.scopes.add(i.value),this.injectorDefTypes=new Set(this.get(Yu,ie,ee.Self))}destroy(){this.assertNotDestroyed(),this._destroyed=!0;const n=Q(null);try{for(const r of this._ngOnDestroyHooks)r.ngOnDestroy();const t=this._onDestroyHooks;this._onDestroyHooks=[];for(const r of t)r()}finally{this.records.clear(),this._ngOnDestroyHooks.clear(),this.injectorDefTypes.clear(),Q(n)}}onDestroy(n){return this.assertNotDestroyed(),this._onDestroyHooks.push(n),()=>this.removeOnDestroy(n)}runInContext(n){this.assertNotDestroyed();const t=rr(this),r=wt(void 0);try{return n()}finally{rr(t),wt(r)}}get(n,t=Fi,r=ee.Default){if(this.assertNotDestroyed(),n.hasOwnProperty(sm))return n[sm](this);r=Fa(r);const i=rr(this),s=wt(void 0);try{if(!(r&ee.SkipSelf)){let l=this.records.get(n);if(void 0===l){const c=function G0(e){return"function"==typeof e||"object"==typeof e&&e instanceof R}(n)&&xa(n);l=c&&this.injectableDefInScope(c)?go(od(n),za):null,this.records.set(n,l)}if(null!=l)return this.hydrate(n,l)}return(r&ee.Self?qa():this.parent).get(n,t=r&ee.Optional&&t===Fi?null:t)}catch(a){if("NullInjectorError"===a.name){if((a[Pa]=a[Pa]||[]).unshift(We(n)),i)throw a;return function g0(e,n,t,r){const o=e[Pa];throw n[cm]&&o.unshift(n[cm]),e.message=function m0(e,n,t,r=null){e=e&&"\n"===e.charAt(0)&&"\u0275"==e.charAt(1)?e.slice(2):e;let o=We(n);if(Array.isArray(n))o=n.map(We).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):We(a)))}o=`{${i.join(", ")}}`}return`${t}${r?"("+r+")":""}[${o}]: ${e.replace(u0,"\n ")}`}("\n"+e.message,o,t,r),e.ngTokenPath=o,e[Pa]=null,e}(a,n,"R3InjectorError",this.source)}throw a}finally{wt(s),rr(i)}}resolveInjectorInitializers(){const n=Q(null),t=rr(this),r=wt(void 0);try{const i=this.get(xr,ie,ee.Self);for(const s of i)s()}finally{rr(t),wt(r),Q(n)}}toString(){const n=[],t=this.records;for(const r of t.keys())n.push(We(r));return`R3Injector[${n.join(", ")}]`}assertNotDestroyed(){if(this._destroyed)throw new I(205,!1)}processProvider(n){let t=Or(n=V(n))?n:V(n&&n.provide);const r=function B0(e){return td(e)?go(void 0,e.useValue):go(Tm(e),za)}(n);if(!Or(n)&&!0===n.multi){let o=this.records.get(t);o||(o=go(void 0,za,!0),o.factory=()=>Wu(o.multi),this.records.set(t,o)),t=n,o.multi.push(n)}this.records.set(t,r)}hydrate(n,t){const r=Q(null);try{return t.value===za&&(t.value=j0,t.value=t.factory()),"object"==typeof t.value&&t.value&&function $0(e){return null!==e&&"object"==typeof e&&"function"==typeof e.ngOnDestroy}(t.value)&&this._ngOnDestroyHooks.add(t.value),t.value}finally{Q(r)}}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 od(e){const n=xa(e),t=null!==n?n.factory:Rr(e);if(null!==t)return t;if(e instanceof R)throw new I(204,!1);if(e instanceof Function)return function U0(e){if(e.length>0)throw new I(204,!1);const t=function n0(e){return e&&(e[ka]||e[rm])||null}(e);return null!==t?()=>t.factory(e):()=>new e}(e);throw new I(204,!1)}function Tm(e,n,t){let r;if(Or(e)){const o=V(e);return Rr(o)||od(o)}if(td(e))r=()=>V(e.useValue);else if(function Sm(e){return!(!e||!e.useFactory)}(e))r=()=>e.useFactory(...Wu(e.deps||[]));else if(function Mm(e){return!(!e||!e.useExisting)}(e))r=()=>k(V(e.useExisting));else{const o=V(e&&(e.useClass||e.provide));if(!function H0(e){return!!e.deps}(e))return Rr(o)||od(o);r=()=>new o(...Wu(e.deps))}return r}function go(e,n,t=!1){return{factory:e,value:n,multi:t?[]:void 0}}function id(e,n){for(const t of e)Array.isArray(t)?id(t,n):t&&Bu(t)?id(t.\u0275providers,n):n(t)}function mn(e,n){e instanceof po&&e.assertNotDestroyed();const r=rr(e),o=wt(void 0);try{return n()}finally{rr(r),wt(o)}}function Am(){return void 0!==am()||null!=function f0(){return uo}()}const Se=0,A=1,P=2,ke=3,en=4,st=5,Pt=6,vo=7,_e=8,He=9,tn=10,j=11,Bi=12,Rm=13,yo=14,Ne=15,Hi=16,_o=17,Bn=18,$i=19,xm=20,sr=21,Qa=22,kr=23,z=25,ad=1,vn=7,Co=9,Pe=10;var ld=function(e){return e[e.None=0]="None",e[e.HasTransplantedViews=2]="HasTransplantedViews",e}(ld||{});function at(e){return Array.isArray(e)&&"object"==typeof e[ad]}function lt(e){return Array.isArray(e)&&!0===e[ad]}function cd(e){return!!(4&e.flags)}function Pr(e){return e.componentOffset>-1}function Xa(e){return!(1&~e.flags)}function nn(e){return!!e.template}function ud(e){return!!(512&e[P])}class rS{constructor(n,t,r){this.previousValue=n,this.currentValue=t,this.firstChange=r}isFirstChange(){return this.firstChange}}function Fm(e,n,t,r){null!==n?n.applyValueToInputSignal(n,r):e[t]=r}function zt(){return Lm}function Lm(e){return e.type.prototype.ngOnChanges&&(e.setInput=iS),oS}function oS(){const e=jm(this),n=e?.current;if(n){const t=e.previous;if(t===gn)e.previous=n;else for(let r in n)t[r]=n[r];e.current=null,this.ngOnChanges(n)}}function iS(e,n,t,r,o){const i=this.declaredInputs[r],s=jm(e)||function sS(e,n){return e[Vm]=n}(e,{previous:gn,current:null}),a=s.current||(s.current={}),l=s.previous,c=l[i];a[i]=new rS(c&&c.currentValue,t,l===gn),Fm(e,n,o,t)}zt.ngInherit=!0;const Vm="__ngSimpleChanges__";function jm(e){return e[Vm]||null}const yn=function(e,n,t){};let Hm=!1;function ge(e){for(;Array.isArray(e);)e=e[Se];return e}function zi(e,n){return ge(n[e])}function ht(e,n){return ge(n[e.index])}function qi(e,n){return e.data[n]}function Ft(e,n){const t=n[e];return at(t)?t:t[Se]}function gd(e){return!(128&~e[P])}function _n(e,n){return null==n?null:e[n]}function $m(e){e[_o]=0}function fS(e){1024&e[P]||(e[P]|=1024,gd(e)&&Wi(e))}function md(e){return!!(9216&e[P]||e[kr]?.dirty)}function vd(e){e[tn].changeDetectionScheduler?.notify(1),md(e)?Wi(e):64&e[P]&&(function lS(){return Hm}()?(e[P]|=1024,Wi(e)):e[tn].changeDetectionScheduler?.notify())}function Wi(e){e[tn].changeDetectionScheduler?.notify();let n=Fr(e);for(;null!==n&&!(8192&n[P])&&(n[P]|=8192,gd(n));)n=Fr(n)}function Ja(e,n){if(!(256&~e[P]))throw new I(911,!1);null===e[sr]&&(e[sr]=[]),e[sr].push(n)}function Fr(e){const n=e[ke];return lt(n)?n[ke]:n}const U={lFrame:Km(null),bindingsEnabled:!0,skipHydrationRootTNode:null};function qm(){return U.bindingsEnabled}function E(){return U.lFrame.lView}function te(){return U.lFrame.tView}function J(e){return U.lFrame.contextLView=e,e[_e]}function K(e){return U.lFrame.contextLView=null,e}function he(){let e=Wm();for(;null!==e&&64===e.type;)e=e.parent;return e}function Wm(){return U.lFrame.currentTNode}function Cn(e,n){const t=U.lFrame;t.currentTNode=e,t.isParent=n}function _d(){return U.lFrame.isParent}function Cd(){U.lFrame.isParent=!1}function pt(){const e=U.lFrame;let n=e.bindingRootIndex;return-1===n&&(n=e.bindingRootIndex=e.tView.bindingStartIndex),n}function rn(){return U.lFrame.bindingIndex++}function bS(e,n){const t=U.lFrame;t.bindingIndex=t.bindingRootIndex=e,Dd(n)}function Dd(e){U.lFrame.currentDirectiveIndex=e}function bd(){return U.lFrame.currentQueryIndex}function Ka(e){U.lFrame.currentQueryIndex=e}function IS(e){const n=e[A];return 2===n.type?n.declTNode:1===n.type?e[st]:null}function Xm(e,n,t){if(t&ee.SkipSelf){let o=n,i=e;for(;!(o=o.parent,null!==o||t&ee.Host||(o=IS(i),null===o||(i=i[yo],10&o.type))););if(null===o)return!1;n=o,e=i}const r=U.lFrame=Jm();return r.currentTNode=n,r.lView=e,!0}function Ed(e){const n=Jm(),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 Jm(){const e=U.lFrame,n=null===e?null:e.child;return null===n?Km(e):n}function Km(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 ev(){const e=U.lFrame;return U.lFrame=e.parent,e.currentTNode=null,e.lView=null,e}const tv=ev;function Id(){const e=ev();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 ct(){return U.lFrame.selectedIndex}function Lr(e){U.lFrame.selectedIndex=e}function Ce(){const e=U.lFrame;return qi(e.tView,e.selectedIndex)}let rv=!0;function Qi(){return rv}function Dn(e){rv=e}function el(e,n){for(let t=n.directiveStart,r=n.directiveEnd;t=r)break}else n[l]<0&&(e[_o]+=65536),(a>14>16&&(3&e[P])===n&&(e[P]+=16384,iv(a,i)):iv(a,i)}const bo=-1;class Yi{constructor(n,t,r){this.factory=n,this.resolving=!1,this.canSeeViewProviders=t,this.injectImpl=r}}function Td(e){return e!==bo}function Xi(e){return 32767&e}function Ji(e,n){let t=function LS(e){return e>>16}(e),r=n;for(;t>0;)r=r[yo],t--;return r}let Ad=!0;function rl(e){const n=Ad;return Ad=e,n}const sv=255,av=5;let VS=0;const wn={};function ol(e,n){const t=lv(e,n);if(-1!==t)return t;const r=n[A];r.firstCreatePass&&(e.injectorIndex=n.length,Nd(r.data,e),Nd(n,null),Nd(r.blueprint,null));const o=il(e,n),i=e.injectorIndex;if(Td(o)){const s=Xi(o),a=Ji(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 Nd(e,n){e.push(0,0,0,0,0,0,0,0,n)}function lv(e,n){return-1===e.injectorIndex||e.parent&&e.parent.injectorIndex===e.injectorIndex||null===n[e.injectorIndex+8]?-1:e.injectorIndex}function il(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=gv(o),null===r)return bo;if(t++,o=o[yo],-1!==r.injectorIndex)return r.injectorIndex|t<<16}return bo}function Rd(e,n,t){!function jS(e,n,t){let r;"string"==typeof t?r=t.charCodeAt(0)||0:t.hasOwnProperty(Pi)&&(r=t[Pi]),null==r&&(r=t[Pi]=VS++);const o=r&sv;n.data[e+(o>>av)]|=1<=0?n&sv:$S:n}(t);if("function"==typeof i){if(!Xm(n,e,r))return r&ee.Host?cv(o,0,r):uv(n,t,r,o);try{let s;if(s=i(r),null!=s||r&ee.Optional)return s;Gu()}finally{tv()}}else if("number"==typeof i){let s=null,a=lv(e,n),l=bo,c=r&ee.Host?n[Ne][st]:null;for((-1===a||r&ee.SkipSelf)&&(l=-1===a?il(e,n):n[a+8],l!==bo&&pv(r,!1)?(s=n[A],a=Xi(l),n=Ji(l,n)):a=-1);-1!==a;){const u=n[A];if(hv(i,a,u.data)){const d=BS(a,n,t,s,r,c);if(d!==wn)return d}l=n[a+8],l!==bo&&pv(r,n[A].data[a+8]===c)&&hv(i,a,n)?(s=u,a=Xi(l),n=Ji(l,n)):a=-1}}return o}function BS(e,n,t,r,o,i){const s=n[A],a=s.data[e+8],u=sl(a,s,t,null==r?Pr(a)&&Ad:r!=s&&!!(3&a.type),o&ee.Host&&i===a);return null!==u?Vr(n,s,u,a):wn}function sl(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&&nn(m)&&m.type===t)return l}return null}function Vr(e,n,t,r){let o=e[t];const i=n.data;if(function OS(e){return e instanceof Yi}(o)){const s=o;s.resolving&&function a0(e,n){throw n&&n.join(" > "),new I(-200,e)}(function se(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=rl(s.canSeeViewProviders);s.resolving=!0;const c=s.injectImpl?wt(s.injectImpl):null;Xm(e,r,ee.Default);try{o=e[t]=s.factory(void 0,i,e,r),n.firstCreatePass&&t>=r.directiveStart&&function RS(e,n,t){const{ngOnChanges:r,ngOnInit:o,ngDoCheck:i}=n.type.prototype;if(r){const s=Lm(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&&wt(c),rl(a),s.resolving=!1,tv()}}return o}function hv(e,n,t){return!!(t[n+(e>>av)]&1<{const n=e.prototype.constructor,t=n[Un]||xd(n),r=Object.prototype;let o=Object.getPrototypeOf(e.prototype).constructor;for(;o&&o!==r;){const i=o[Un]||xd(o);if(i&&i!==t)return i;o=Object.getPrototypeOf(o)}return i=>new i})}function xd(e){return Ra(e)?()=>{const n=xd(V(e));return n&&n()}:Rr(e)}function gv(e){const n=e[A],t=n.type;return 2===t?n.declTNode:1===t?e[st]:null}function Cv(e,n=null,t=null,r){const o=Dv(e,n,t,r);return o.resolveInjectorInitializers(),o}function Dv(e,n=null,t=null,r,o=new Set){const i=[t||ie,Em(e)];return r=r||("object"==typeof e?void 0:We(e)),new po(i,n||qa(),r||null,o)}let gt=(()=>{class e{static#e=this.THROW_IF_NOT_FOUND=Fi;static#t=this.NULL=new Ba;static create(t,r){if(Array.isArray(t))return Cv({name:""},r,t,"");{const o=t.name??"";return Cv({name:o},t.parent,t.providers,o)}}static#n=this.\u0275prov=x({token:e,providedIn:"any",factory:()=>k(pm)});static#r=this.__NG_ELEMENT_ID__=-1}return e})();function kd(e){return e.ngOriginalError}class bn{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&&kd(n);for(;t&&kd(t);)t=kd(t);return t||null}}const bv=new R("",{providedIn:"root",factory:()=>M(bn).handleError.bind(void 0)});let Mo=(()=>{class e{static#e=this.__NG_ELEMENT_ID__=KS;static#t=this.__NG_ENV_ID__=t=>t}return e})();class JS extends Mo{constructor(n){super(),this._lView=n}onDestroy(n){return Ja(this._lView,n),()=>function yd(e,n){if(null===e[sr])return;const t=e[sr].indexOf(n);-1!==t&&e[sr].splice(t,1)}(this._lView,n)}}function KS(){return new JS(E())}function eT(){return So(he(),E())}function So(e,n){return new Lt(ht(e,n))}let Lt=(()=>{class e{constructor(t){this.nativeElement=t}static#e=this.__NG_ELEMENT_ID__=eT}return e})();function Iv(e){return e instanceof Lt?e.nativeElement:e}function Pd(e){return n=>{setTimeout(e,void 0,n)}}const Re=class tT extends $t{constructor(n=!1){super(),this.destroyRef=void 0,this.__isAsync=n,Am()&&(this.destroyRef=M(Mo,{optional:!0})??void 0)}emit(n){const t=Q(null);try{super.next(n)}finally{Q(t)}}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=Pd(i),o&&(o=Pd(o)),s&&(s=Pd(s)));const a=super.subscribe({next:o,error:i,complete:s});return n instanceof Dt&&n.add(a),a}};function nT(){return this._results[Symbol.iterator]()}class Fd{static#e=Symbol.iterator;get changes(){return this._changes??=new Re}constructor(n=!1){this._emitDistinctChangesOnly=n,this.dirty=!0,this._onDirty=void 0,this._results=[],this._changesDetected=!1,this._changes=void 0,this.length=0,this.first=void 0,this.last=void 0;const t=Fd.prototype;t[Symbol.iterator]||(t[Symbol.iterator]=nT)}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 bt(e){return e.flat(Number.POSITIVE_INFINITY)}(n);(this._changesDetected=!function C0(e,n,t){if(e.length!==n.length)return!1;for(let r=0;rET}),ET="ng",zv=new R(""),lr=new R("",{providedIn:"platform",factory:()=>"unknown"}),qv=new R("",{providedIn:"root",factory:()=>function ar(){if(void 0!==Ud)return Ud;if(typeof document<"u")return document;throw new I(210,!1)}().body?.querySelector("[ngCspNonce]")?.getAttribute("ngCspNonce")||null});let Wv=()=>null;function Zd(e,n,t=!1){return Wv(e,n,t)}const Jv=new R("",{providedIn:"root",factory:()=>!1});let _l;function ny(e){return function Kd(){if(void 0===_l&&(_l=null,ue.trustedTypes))try{_l=ue.trustedTypes.createPolicy("angular#unsafe-bypass",{createHTML:e=>e,createScript:e=>e,createScriptURL:e=>e})}catch{}return _l}()?.createScriptURL(e)||e}class ry{constructor(n){this.changingThisBreaksApplicationSecurity=n}toString(){return`SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity} (see ${Jg})`}}function cr(e){return e instanceof ry?e.changingThisBreaksApplicationSecurity:e}function ss(e,n){const t=function $T(e){return e instanceof ry&&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 ${Jg})`)}return t===n}const WT=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:\/?#]*(?:[\/?#]|$))/i;var Ro=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}(Ro||{});function xo(e){const n=ls();return n?n.sanitize(Ro.URL,e)||"":ss(e,"URL")?cr(e):function ef(e){return(e=String(e)).match(WT)?e:"unsafe:"+e}(G(e))}function fy(e){const n=ls();if(n)return ny(n.sanitize(Ro.RESOURCE_URL,e)||"");if(ss(e,"ResourceURL"))return ny(cr(e));throw new I(904,!1)}function ls(){const e=E();return e&&e[tn].sanitizer}const cA=/^>|^->||--!>|)/g,dA="\u200b$1\u200b";function Vt(e){return e instanceof Function?e():e}var ur=function(e){return e[e.Important=1]="Important",e[e.DashCase=2]="DashCase",e}(ur||{});let cf;function uf(e,n){return cf(e,n)}function ko(e,n,t,r,o){if(null!=r){let i,s=!1;lt(r)?i=r:at(r)&&(s=!0,r=r[Se]);const a=ge(r);0===e&&null!==t?null==o?Iy(n,t,a):jr(n,t,a,o||null,!0):1===e&&null!==t?jr(n,t,a,o||null,!0):2===e?function ds(e,n,t){const r=Il(e,n);r&&function NA(e,n,t,r){e.removeChild(n,t,r)}(e,r,n,t)}(n,a,s):3===e&&n.destroyNode(a),null!=i&&function OA(e,n,t,r,o){const i=t[vn];i!==ge(t)&&ko(n,e,r,i,o);for(let a=Pe;an.replace(uA,dA))}(n))}function bl(e,n,t){return e.createElement(n,t)}function wy(e,n){n[tn].changeDetectionScheduler?.notify(1),Sl(e,n,n[j],2,null,null)}function by(e,n){const t=e[Co],r=t.indexOf(n);t.splice(r,1)}function cs(e,n){if(e.length<=Pe)return;const t=Pe+n,r=e[t];if(r){const o=r[Hi];null!==o&&o!==e&&by(o,r),n>0&&(e[t-1][en]=r[en]);const i=ja(e,Pe+n);!function bA(e,n){wy(e,n),n[Se]=null,n[st]=null}(r[A],r);const s=i[Bn];null!==s&&s.detachView(i[A]),r[ke]=null,r[en]=null,r[P]&=-129}return r}function El(e,n){if(!(256&n[P])){const t=n[j];t.destroyNode&&Sl(e,n,t,3,null,null),function IA(e){let n=e[Bi];if(!n)return hf(e[A],e);for(;n;){let t=null;if(at(n))t=n[Bi];else{const r=n[Pe];r&&(t=r)}if(!t){for(;n&&!n[en]&&n!==e;)at(n)&&hf(n[A],n),n=n[ke];null===n&&(n=e),at(n)&&hf(n[A],n),t=n&&n[en]}n=t}}(n)}}function hf(e,n){if(256&n[P])return;const t=Q(null);try{n[P]&=-129,n[P]|=256,n[kr]&&function Vg(e){if(oo(e),Oi(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[vo]=null);const o=n[sr];if(null!==o){n[sr]=null;for(let i=0;i-1){const{encapsulation:i}=e.data[r.directiveStart+o];if(i===Jt.None||i===Jt.Emulated)return null}return ht(r,t)}}(e,n.parent,t)}function jr(e,n,t,r,o){e.insertBefore(n,t,r,o)}function Iy(e,n,t){e.appendChild(n,t)}function My(e,n,t,r,o){null!==r?jr(e,n,t,r,o):Iy(e,n,t)}function Il(e,n){return e.parentNode(n)}let gf,Ay=function Ty(e,n,t){return 40&e.type?ht(e,t):null};function Ml(e,n,t,r){const o=pf(e,r,n),i=n[j],a=function Sy(e,n,t){return Ay(e,n,t)}(r.parent||n[st],r,n);if(null!=o)if(Array.isArray(t))for(let l=0;lz&&Fy(e,n,z,!1),yn(s?2:0,o),t(r,o)}finally{Lr(i),yn(s?3:1,o)}}function _f(e,n,t){if(cd(n)){const r=Q(null);try{const i=n.directiveEnd;for(let s=n.directiveStart;snull;function Hy(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=Me.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?$y(r,t,c,a,l):$y(r,t,c,a)}return r}function $y(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 Mt(e,n,t,r,o,i,s,a){const l=ht(n,t);let u,c=n.inputs;!a&&null!=c&&(u=c[r])?(Sf(e,t,u,r,o),Pr(n)&&function qA(e,n){const t=Ft(n,e);16&t[P]||(t[P]|=64)}(t,n.index)):3&n.type&&(r=function zA(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 bf(e,n,t,r){if(qm()){const o=null===r?null:{"":-1},i=function JA(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,fs(e,t,o.hostVars,W),o)}function En(e,n,t,r,o,i){const s=ht(e,n);!function If(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[j],s,i,e.value,t,r,o)}function oN(e,n,t,r,o,i){const s=i[n];if(null!==s)for(let a=0;a0&&(t[o-1][en]=n),r!1,producerRecomputeValue:()=>{},consumerMarkedDirty:()=>{},consumerOnSignalRead:()=>{},consumerIsAlwaysLive:!0,consumerMarkedDirty:e=>{Wi(e.lView)},consumerOnSignalRead(){this.lView[kr]=this}},e_=100;function Rl(e,n=!0,t=0){const r=e[tn],o=r.rendererFactory;o.begin?.();try{!function hN(e,n){Nf(e,n);let t=0;for(;md(e);){if(t===e_)throw new I(103,!1);t++,Nf(e,1)}}(e,t)}catch(s){throw n&&Nl(e,s),s}finally{o.end?.(),r.inlineEffectRunner?.flush()}}function pN(e,n,t,r){const o=n[P];if(!(256&~o))return;n[tn].inlineEffectRunner?.flush(),Ed(n);let s=null,a=null;(function gN(e){return 2!==e.type})(e)&&(a=function cN(e){return e[kr]??function uN(e){const n=Ky.pop()??Object.create(fN);return n.lView=e,n}(e)}(n),s=function Fg(e){return e&&(e.nextProducerIndex=0),Q(e)}(a));try{$m(n),function Qm(e){return U.lFrame.bindingIndex=e}(e.bindingStartIndex),null!==t&&jy(e,n,t,2,r);const l=!(3&~o);if(l){const d=e.preOrderCheckHooks;null!==d&&tl(n,d,null)}else{const d=e.preOrderHooks;null!==d&&nl(n,d,0,null),Md(n,0)}if(function mN(e){for(let n=Pv(e);null!==n;n=Fv(n)){if(!(n[P]&ld.HasTransplantedViews))continue;const t=n[Co];for(let r=0;re.nextProducerIndex;)e.producerNode.pop(),e.producerLastReadVersion.pop(),e.producerIndexOfThis.pop()}}(a,s),function dN(e){e.lView[kr]!==e&&(e.lView=null,Ky.push(e))}(a)),Id()}}function t_(e,n){for(let t=Pv(e);null!==t;t=Fv(t))for(let r=Pe;r-1&&(cs(n,r),ja(t,r))}this._attachedToViewContainer=!1}El(this._lView[A],this._lView)}onDestroy(n){Ja(this._lView,n)}markForCheck(){ms(this._cdRefInjectingView||this._lView)}detach(){this._lView[P]&=-129}reattach(){vd(this._lView),this._lView[P]|=128}detectChanges(){this._lView[P]|=1024,Rl(this._lView,this.notifyErrorHandler)}checkNoChanges(){}attachToViewContainerRef(){if(this._appRef)throw new I(902,!1);this._attachedToViewContainer=!0}detachFromAppRef(){this._appRef=null,wy(this._lView[A],this._lView)}attachToAppRef(n){if(this._attachedToViewContainer)throw new I(902,!1);this._appRef=n,vd(this._lView)}}let qn=(()=>{class e{static#e=this.__NG_ELEMENT_ID__=CN}return e})();const yN=qn,_N=class extends yN{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=hs(this._declarationLView,this._declarationTContainer,n,{embeddedViewInjector:t,dehydratedView:r});return new vs(o)}};function CN(){return xl(he(),E())}function xl(e,n){return 4&e.type?new _N(n,e,So(e,n)):null}let c_=()=>null;function Lo(e,n){return c_(e,n)}class Ff{}class GN{}class u_{}class qN{resolveComponentFactory(n){throw function zN(e){const n=Error(`No component factory found for ${We(e)}.`);return n.ngComponent=e,n}(n)}}let Ll=(()=>{class e{static#e=this.NULL=new qN}return e})();class f_{}let Wn=(()=>{class e{constructor(){this.destroyNode=null}static#e=this.__NG_ELEMENT_ID__=()=>function WN(){const e=E(),t=Ft(he().index,e);return(at(t)?t:e)[j]}()}return e})(),ZN=(()=>{class e{static#e=this.\u0275prov=x({token:e,providedIn:"root",factory:()=>null})}return e})();const Lf={},h_=new Set;function In(e){h_.has(e)||(h_.add(e),performance?.mark?.("mark_feature_usage",{detail:{feature:e}}))}function p_(...e){}class de{constructor({enableLongStackTrace:n=!1,shouldCoalesceEventChangeDetection:t=!1,shouldCoalesceRunChangeDetection:r=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new Re(!1),this.onMicrotaskEmpty=new Re(!1),this.onStable=new Re(!1),this.onError=new Re(!1),typeof Zone>"u")throw new I(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 QN(){const e="function"==typeof ue.requestAnimationFrame;let n=ue[e?"requestAnimationFrame":"setTimeout"],t=ue[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 JN(e){const n=()=>{!function XN(e){e.isCheckStableRunning||-1!==e.lastRequestAnimationFrameId||(e.lastRequestAnimationFrameId=e.nativeRequestAnimationFrame.call(ue,()=>{e.fakeTopEventTask||(e.fakeTopEventTask=Zone.root.scheduleEventTask("fakeTopEventTask",()=>{e.lastRequestAnimationFrameId=-1,jf(e),e.isCheckStableRunning=!0,Vf(e),e.isCheckStableRunning=!1},void 0,()=>{},()=>{})),e.fakeTopEventTask.invoke()}),jf(e))}(e)};e._inner=e._inner.fork({name:"angular",properties:{isAngularZone:!0},onInvokeTask:(t,r,o,i,s,a)=>{if(function KN(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 g_(e),t.invokeTask(o,i,s,a)}finally{(e.shouldCoalesceEventChangeDetection&&"eventTask"===i.type||e.shouldCoalesceRunChangeDetection)&&n(),m_(e)}},onInvoke:(t,r,o,i,s,a,l)=>{try{return g_(e),t.invoke(o,i,s,a,l)}finally{e.shouldCoalesceRunChangeDetection&&n(),m_(e)}},onHasTask:(t,r,o,i)=>{t.hasTask(o,i),r===o&&("microTask"==i.change?(e._hasPendingMicrotasks=i.microTask,jf(e),Vf(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(!de.isInAngularZone())throw new I(909,!1)}static assertNotInAngularZone(){if(de.isInAngularZone())throw new I(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,YN,p_,p_);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 YN={};function Vf(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 jf(e){e.hasPendingMicrotasks=!!(e._hasPendingMicrotasks||(e.shouldCoalesceEventChangeDetection||e.shouldCoalesceRunChangeDetection)&&-1!==e.lastRequestAnimationFrameId)}function g_(e){e._nesting++,e.isStable&&(e.isStable=!1,e.onUnstable.emit(null))}function m_(e){e._nesting--,Vf(e)}var Ur=function(e){return e[e.EarlyRead=0]="EarlyRead",e[e.Write=1]="Write",e[e.MixedReadWrite=2]="MixedReadWrite",e[e.Read=3]="Read",e}(Ur||{});const y_={destroy(){}};function Bf(e,n){!n&&function Wa(e){if(!Am())throw new I(-203,!1)}();const t=n?.injector??M(gt);if(!function on(e){return"browser"===(e??M(gt)).get(lr)}(t))return y_;In("NgAfterNextRender");const r=t.get(ws),o=r.handler??=new C_,i=n?.phase??Ur.MixedReadWrite,s=()=>{o.unregister(l),a()},a=t.get(Mo).onDestroy(s),l=mn(t,()=>new __(i,()=>{s(),e()}));return o.register(l),{destroy:s}}class __{constructor(n,t){this.phase=n,this.callbackFn=t,this.zone=M(de),this.errorHandler=M(bn,{optional:!0}),M(Ff,{optional:!0})?.notify(1)}invoke(){try{this.zone.runOutsideAngular(this.callbackFn)}catch(n){this.errorHandler?.handleError(n)}}}class C_{constructor(){this.executingCallbacks=!1,this.buckets={[Ur.EarlyRead]:new Set,[Ur.Write]:new Set,[Ur.MixedReadWrite]:new Set,[Ur.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(){this.executingCallbacks=!0;for(const n of Object.values(this.buckets))for(const t of n)t.invoke();this.executingCallbacks=!1;for(const n of this.deferredCallbacks)this.buckets[n.phase].add(n);this.deferredCallbacks.clear()}destroy(){for(const n of Object.values(this.buckets))n.clear();this.deferredCallbacks.clear()}}let ws=(()=>{class e{constructor(){this.handler=null,this.internalCallbacks=[]}execute(){this.executeInternalCallbacks(),this.handler?.execute()}executeInternalCallbacks(){const t=[...this.internalCallbacks];this.internalCallbacks.length=0;for(const r of t)r()}ngOnDestroy(){this.handler?.destroy(),this.handler=null,this.internalCallbacks.length=0}static#e=this.\u0275prov=x({token:e,providedIn:"root",factory:()=>new e})}return e})();function jl(e,n,t){let r=t?e.styles:null,o=t?e.classes:null,i=0;if(null!==n)for(let s=0;s0&&ky(e,t,i.join(" "))}}(m,ce,_,r),void 0!==t&&function dR(e,n,t){const r=e.projection=[];for(let o=0;o{class e{static#e=this.__NG_ELEMENT_ID__=hR}return e})();function hR(){return S_(he(),E())}const pR=sn,I_=class extends pR{constructor(n,t,r){super(),this._lContainer=n,this._hostTNode=t,this._hostLView=r}get element(){return So(this._hostTNode,this._hostLView)}get injector(){return new Ye(this._hostTNode,this._hostLView)}get parentInjector(){const n=il(this._hostTNode,this._hostLView);if(Td(n)){const t=Ji(n,this._hostLView),r=Xi(n);return new Ye(t[A].data[r+8],t)}return new Ye(null,this._hostLView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(n){const t=M_(this._lContainer);return null!==t&&t[n]||null}get length(){return this._lContainer.length-Pe}createEmbeddedView(n,t,r){let o,i;"number"==typeof r?o=r:null!=r&&(o=r.index,i=r.injector);const s=Lo(this._lContainer,n.ssrId),a=n.createEmbeddedViewImpl(t||{},i,s);return this.insertImpl(a,o,Fo(this._hostTNode,s)),a}createComponent(n,t,r,o,i){const s=n&&!function Ui(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 Is(Y(n)),c=r||this.parentInjector;if(!i&&null==l.ngModule){const _=(s?c:this.parentInjector).get(ft,null);_&&(i=_)}const u=Y(l.componentType??{}),d=Lo(this._lContainer,u?.id??null),m=l.create(c,o,d?.firstChild??null,i);return this.insertImpl(m.hostView,a,Fo(this._hostTNode,d)),m}insert(n,t){return this.insertImpl(n,t,!0)}insertImpl(n,t,r){const o=n._lView;if(function dS(e){return lt(e[ke])}(o)){const a=this.indexOf(n);if(-1!==a)this.detach(a);else{const l=o[ke],c=new I_(l,l[st],l[ke]);c.detach(c.indexOf(n))}}const i=this._adjustIndex(t),s=this._lContainer;return ps(s,o,i,r),n.attachToViewContainerRef(),dm(Gf(s),i,n),n}move(n,t){return this.insert(n,t)}indexOf(n){const t=M_(this._lContainer);return null!==t?t.indexOf(n):-1}remove(n){const t=this._adjustIndex(n,-1),r=cs(this._lContainer,t);r&&(ja(Gf(this._lContainer),t),El(r[A],r))}detach(n){const t=this._adjustIndex(n,-1),r=cs(this._lContainer,t);return r&&null!=ja(Gf(this._lContainer),t)?new vs(r):null}_adjustIndex(n,t=0){return n??this.length+t}};function M_(e){return e[8]}function Gf(e){return e[8]||(e[8]=[])}function S_(e,n){let t;const r=n[e.index];return lt(r)?t=r:(t=qy(r,n,null,e),n[e.index]=t,Al(n,t)),T_(t,n,e,r),new I_(t,e,n)}let T_=function N_(e,n,t,r){if(e[vn])return;let o;o=8&t.type?ge(r):function gR(e,n){const t=e[j],r=t.createComment(""),o=ht(n,e);return jr(t,Il(t,o),r,function RA(e,n){return e.nextSibling(n)}(t,o),!1),r}(n,t),e[vn]=o},zf=()=>!1;class qf{constructor(n){this.queryList=n,this.matches=null}clone(){return new qf(this.queryList)}setDirty(){this.queryList.setDirty()}}class Wf{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;in.trim())}(n):n}}class Zf{constructor(n=[]){this.queries=n}elementStart(n,t){for(let r=0;r0)r.push(s[a/2]);else{const c=i[a+1],u=n[-l];for(let d=Pe;d=0;r--){const o=e[r];o.hostVars=n+=o.hostVars,o.hostAttrs=Vi(o.hostAttrs,t=Vi(t,o.hostAttrs))}}(r)}function PR(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 Hl(e){return e===gn?{}:e===ie?[]:e}function LR(e,n){const t=e.viewQuery;e.viewQuery=t?(r,o)=>{n(r,o),t(r,o)}:n}function VR(e,n){const t=e.contentQueries;e.contentQueries=t?(r,o,i)=>{n(r,o,i),t(r,o,i)}:n}function jR(e,n){const t=e.hostBindings;e.hostBindings=t?(r,o)=>{n(r,o),t(r,o)}:n}function tC(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}class Br{}class nC{}class eh extends Br{constructor(n,t,r){super(),this._parent=t,this._bootstrapComponents=[],this.destroyCbs=[],this.componentFactoryResolver=new b_(this);const o=it(n);this._bootstrapComponents=Vt(o.bootstrap),this._r3Injector=Dv(n,t,[{provide:Br,useValue:this},{provide:Ll,useValue:this.componentFactoryResolver},...r],We(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 th extends nC{constructor(n){super(),this.moduleType=n}create(n){return new eh(this.moduleType,n,[])}}class rC extends Br{constructor(n){super(),this.componentFactoryResolver=new b_(this),this.instance=null;const t=new po([...n.providers,{provide:Br,useValue:this},{provide:Ll,useValue:this.componentFactoryResolver}],n.parent||qa(),n.debugName,new Set(["environment"]));this.injector=t,n.runEnvironmentInitializers&&t.resolveInjectorInitializers()}destroy(){this.injector.destroy()}onDestroy(n){this.injector.onDestroy(n)}}function $l(e,n,t=null){return new rC({providers:e,parent:n,debugName:t,runEnvironmentInitializers:!0}).injector}let hr=(()=>{class e{constructor(){this.taskId=0,this.pendingTasks=new Set,this.hasPendingTasks=new Gt(!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=x({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();function zl(e){return!!function nh(e){return null!==e&&("function"==typeof e||"object"==typeof e)}(e)&&(Array.isArray(e)||!(e instanceof Map)&&Symbol.iterator in e)}function Mn(e,n,t){return e[n]=t}function Fe(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=E(),c=te(),u=e+z,d=c.firstCreatePass?function JR(e,n,t,r,o,i,s,a,l){const c=n.consts,u=Po(n,e,4,s||null,_n(c,a));bf(n,t,u,_n(c,l)),el(n,u);const d=u.tView=wf(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];Cn(d,!1);const g=oC(c,l,d,e);Qi()&&Ml(c,l,g,d),ut(g,l);const m=qy(g,l,g,d);return l[u]=m,Al(l,m),function A_(e,n,t){return zf(e,n,t)}(m,d,l),Xa(d)&&Cf(c,l,d),null!=s&&Df(l,d,a),q}let oC=function iC(e,n,t,r){return Dn(!0),n[j].createComment("")};function an(e,n,t,r){const o=E();return Fe(o,rn(),n)&&(te(),En(Ce(),o,e,n,t,r)),an}function qo(e,n,t,r){return Fe(e,rn(),t)?n+G(t)+r:W}function Jl(e,n){return e<<17|n<<2}function gr(e){return e>>17&32767}function fh(e){return 2|e}function Gr(e){return(131068&e)>>2}function hh(e,n){return-131069&e|n<<2}function ph(e){return 1|e}function FC(e,n,t,r){const o=e[t+1],i=null===n;let s=r?gr(o):Gr(o),a=!1;for(;0!==s&&(!1===a||i);){const c=e[s+1];Vx(e[s],n)&&(a=!0,e[s+1]=r?ph(c):fh(c)),s=r?gr(c):Gr(c)}a&&(e[t+1]=r?fh(o):ph(o))}function Vx(e,n){return null===e||null==n||(Array.isArray(e)?e[1]:e)===n||!(!Array.isArray(e)||"string"!=typeof n)&&ho(e,n)>=0}function S(e,n,t){const r=E();return Fe(r,rn(),n)&&Mt(te(),Ce(),r,e,n,r[j],t,!1),S}function gh(e,n,t,r,o){const s=o?"class":"style";Sf(e,t,n.inputs[s],s,r)}function Kl(e,n){return function ln(e,n,t,r){const o=E(),i=te(),s=function $n(e){const n=U.lFrame,t=n.bindingIndex;return n.bindingIndex=n.bindingIndex+e,t}(2);i.firstUpdatePass&&function zC(e,n,t,r){const o=e.data;if(null===o[t+1]){const i=o[ct()],s=function GC(e,n){return n>=e.expandoStartIndex}(e,t);(function QC(e,n){return!!(e.flags&(n?8:16))})(i,r)&&null===n&&!s&&(n=!1),n=function Wx(e,n,t,r){const o=function wd(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=xs(t=mh(null,e,n,t,r),n.attrs,r),i=null);else{const s=n.directiveStylingLast;if(-1===s||e[s]!==o)if(t=mh(o,e,n,t,r),null===i){let l=function Zx(e,n,t){const r=t?n.classBindings:n.styleBindings;if(0!==Gr(r))return e[gr(r)]}(e,n,r);void 0!==l&&Array.isArray(l)&&(l=mh(null,e,n,l[1],r),l=xs(l,n.attrs,r),function Qx(e,n,t,r){e[gr(t?n.classBindings:n.styleBindings)]=r}(e,n,r,l))}else i=function Yx(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=gr(e[a+1]);e[r+1]=Jl(g,a),0!==g&&(e[g+1]=hh(e[g+1],r)),e[a+1]=function kx(e,n){return 131071&e|n<<17}(e[a+1],r)}else e[r+1]=Jl(a,0),0!==a&&(e[a+1]=hh(e[a+1],r)),a=r;else e[r+1]=Jl(l,0),0===a?a=r:e[l+1]=hh(e[l+1],r),l=r;c&&(e[r+1]=fh(e[r+1])),FC(e,u,r,!0),FC(e,u,r,!1),function Lx(e,n,t,r,o){const i=o?e.residualClasses:e.residualStyles;null!=i&&"string"==typeof n&&ho(i,n)>=0&&(t[r+1]=ph(t[r+1]))}(n,u,e,r,i),s=Jl(a,l),i?n.classBindings=s:n.styleBindings=s}(o,i,n,t,s,r)}}(i,e,s,r),n!==W&&Fe(o,s,n)&&function WC(e,n,t,r,o,i,s,a){if(!(3&n.type))return;const l=e.data,c=l[a+1],u=function Px(e){return!(1&~e)}(c)?ZC(l,n,t,o,Gr(c),s):void 0;ec(u)||(ec(i)||function Ox(e){return!(2&~e)}(c)&&(i=ZC(l,null,t,o,a,s)),function kA(e,n,t,r,o){if(n)o?e.addClass(t,r):e.removeClass(t,r);else{let i=-1===r.indexOf("-")?void 0:ur.DashCase;null==o?e.removeStyle(t,r,i):("string"==typeof o&&o.endsWith("!important")&&(o=o.slice(0,-10),i|=ur.Important),e.setStyle(t,r,o,i))}}(r,s,zi(ct(),t),o,i))}(i,i.data[ct()],o,o[j],e,o[s+1]=function eO(e,n){return null==e||""===e||("string"==typeof n?e+=n:"object"==typeof e&&(e=We(cr(e)))),e}(n,t),r,s)}(e,n,null,!0),Kl}function mh(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===W&&(g=d?ie:void 0);let m=d?Qu(g,r):u===r?g:void 0;if(c&&!ec(m)&&(m=Qu(l,r)),ec(m)&&(a=m,s))return a;const v=e[o+1];o=s?gr(v):Gr(v)}if(null!==n){let l=i?n.residualClasses:n.residualStyles;null!=l&&(a=Qu(l,r))}return a}function ec(e){return void 0!==e}function ti(e,n,t){In("NgControlFlow");const r=E(),o=rn(),i=function _h(e,n){return e[n]}(r,z+e);if(Fe(r,o,n)){const a=Q(null);try{if(function Af(e,n){const t=cs(e,n);return void 0!==t&&El(t[A],t),t}(i,0),-1!==n){const l=function Ch(e,n){return qi(e,n)}(r[A],z+n),c=Lo(i,l.tView.ssrId);ps(i,hs(r,l,t,{dehydratedView:c}),0,Fo(l,c))}}finally{Q(a)}}else{const a=function Xy(e,n){const t=Pe+n;if(t(Dn(!0),bl(r,o,function nv(){return U.lFrame.currentNamespace}()));function St(e,n,t){const r=E(),o=te(),i=e+z,s=o.firstCreatePass?function IO(e,n,t,r,o){const i=n.consts,s=_n(i,r),a=Po(n,e,8,"ng-container",s);return null!==s&&jl(a,s,!0),bf(n,t,a,_n(i,o)),null!==n.queries&&n.queries.elementStart(n,a),a}(i,o,r,n,t):o.data[i];Cn(s,!0);const a=tD(o,r,s,e);return r[i]=a,Qi()&&Ml(o,r,a,s),ut(a,r),Xa(s)&&(Cf(o,r,s),_f(o,s,r)),null!=t&&Df(r,s),St}function Tt(){let e=he();const n=te();return _d()?Cd():(e=e.parent,Cn(e,!1)),n.firstCreatePass&&(el(n,e),cd(e)&&n.queries.elementEnd(e)),Tt}let tD=(e,n,t,r)=>(Dn(!0),ff(n[j],""));function xe(){return E()}const ri="en-US";let sD=ri;function B(e,n,t,r){const o=E(),i=te(),s=he();return bh(i,o,o[j],s,e,n,r),B}function bh(e,n,t,r,o,i,s){const a=Xa(r),c=e.firstCreatePass&&Qy(e),u=n[_e],d=Zy(n);let g=!0;if(3&r.type||s){const _=ht(r,n),D=s?s(_):_,w=d.length,b=s?L=>s(ge(L[r.index])):r.index;let N=null;if(!s&&a&&(N=function Mk(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!==N)(N.__ngLastListenerFn__||N).__ngNextListenerFn__=i,N.__ngLastListenerFn__=i,g=!1;else{i=kD(r,n,u,i,!1);const L=t.listen(D,o,i);d.push(i,L),c&&c.push(o,b,w,w+1)}}else i=kD(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 X=n[v[D]][v[D+1]].subscribe(i),ce=d.length;d.push(i,X),c&&c.push(o,r.index,ce,-(ce+1))}}}function OD(e,n,t,r){const o=Q(null);try{return yn(6,n,t),!1!==t(r)}catch(i){return Nl(e,i),!1}finally{yn(7,n,t),Q(o)}}function kD(e,n,t,r,o){return function i(s){if(s===Function)return r;ms(e.componentOffset>-1?Ft(e.index,n):n);let l=OD(n,t,r,s),c=i.__ngNextListenerFn__;for(;c;)l=OD(n,t,c,s)&&l,c=c.__ngNextListenerFn__;return o&&!1===l&&s.preventDefault(),l}}function O(e=1){return function MS(e){return(U.lFrame.contextLView=function Gm(e,n){for(;e>0;)n=n[yo],e--;return n}(e,U.lFrame.contextLView))[_e]}(e)}function Zn(e,n,t,r,o){const i=E(),s=qo(i,n,t,r);return s!==W&&Mt(te(),Ce(),i,e,s,i[j],o,!1),Zn}function qD(){return function Xf(e,n){return e[Bn].queries[n].queryList}(E(),bd())}function Eh(e){return function Do(e,n){return e[n]}(function DS(){return U.lFrame.contextLView}(),z+e)}function f(e,n=""){const t=E(),r=te(),o=e+z,i=r.firstCreatePass?Po(r,o,1,n,null):r.data[o],s=nw(r,t,i,n,e);t[o]=s,Qi()&&Ml(r,t,s,i),Cn(i,!1)}let nw=(e,n,t,r,o)=>(Dn(!0),function df(e,n){return e.createText(n)}(n[j],r));function Te(e){return Qn("",e,""),Te}function Qn(e,n,t){const r=E(),o=qo(r,e,n,t);return o!==W&&function zn(e,n,t){const r=zi(n,e);!function Dy(e,n,t){e.setValue(n,t)}(e[j],r,t)}(r,ct(),o),Qn}function je(e,n,t){U_(n)&&(n=n());const r=E();return Fe(r,rn(),n)&&Mt(te(),Ce(),r,e,n,r[j],t,!1),je}function $e(e,n){const t=U_(e);return t&&e.set(n),t}function Ue(e,n){const t=E(),r=te(),o=he();return bh(r,t,t[j],o,e,n),Ue}function Ih(e,n,t,r,o){if(e=V(e),Array.isArray(e))for(let i=0;i>20;if(Or(e)||!e.multi){const m=new Yi(c,o,T),v=Sh(l,n,o?u:u+g,d);-1===v?(Rd(ol(a,s),i,l),Mh(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=Sh(l,n,u+g,d),v=Sh(l,n,u,u+g),D=v>=0&&t[v];if(o&&!D||!o&&!(m>=0&&t[m])){Rd(ol(a,s),i,l);const w=function Qk(e,n,t,r,o){const i=new Yi(e,t,T);return i.multi=[],i.index=n,i.componentProviders=0,dw(i,o,r&&!t),i}(o?Zk:Wk,t.length,o,r,c);!o&&D&&(t[v].providerFactory=w),Mh(i,e,n.length,0),n.push(l),a.directiveStart++,a.directiveEnd++,o&&(a.providerIndexes+=1048576),t.push(w),s.push(w)}else Mh(i,e,m>-1?m:v,dw(t[o?v:m],c,!o&&r));!o&&r&&D&&t[v].componentProviders++}}}function Mh(e,n,t,r){const o=Or(n),i=function V0(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 dw(e,n,t){return t&&e.componentProviders++,e.multi.push(n)-1}function Sh(e,n,t,r){for(let o=t;o{t.providersResolver=(r,o)=>function qk(e,n,t){const r=te();if(r.firstCreatePass){const o=nn(e);Ih(t,r.data,r.blueprint,o,!0),Ih(n,r.data,r.blueprint,o,!1)}}(r,o?o(e):e,n)}}let Yk=(()=>{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=Ku(0,t.type),o=r.length>0?$l([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=x({token:e,providedIn:"environment",factory:()=>new e(k(ft))})}return e})();function Ut(e){In("NgStandalone"),e.getStandaloneInjector=n=>n.get(Yk).getOrCreateStandaloneInjector(e)}function re(e,n,t){const r=pt()+e,o=E();return o[r]===W?Mn(o,r,t?n.call(t):n()):function Ss(e,n){return e[n]}(o,r)}function js(e,n,t,r){return function pw(e,n,t,r,o,i){const s=n+t;return Fe(e,s,o)?Mn(e,s+1,i?r.call(i,o):r(o)):Us(e,s+1)}(E(),pt(),e,n,t,r)}function hw(e,n,t,r,o){return function gw(e,n,t,r,o,i,s){const a=n+t;return function Hr(e,n,t,r){const o=Fe(e,n,t);return Fe(e,n+1,r)||o}(e,a,o,i)?Mn(e,a+2,s?r.call(s,o,i):r(o,i)):Us(e,a+2)}(E(),pt(),e,n,t,r,o)}function Us(e,n){const t=e[n];return t===W?void 0:t}let kw=(()=>{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=x({token:e,factory:e.\u0275fac,providedIn:"platform"})}return e})();const jw=new R(""),lc=new R("");let Fh,kh=(()=>{class e{constructor(t,r,o){this._ngZone=t,this.registry=r,this._pendingCount=0,this._isZoneStable=!0,this._callbacks=[],this.taskTrackingZone=null,Fh||(function sF(e){Fh=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:()=>{de.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)(k(de),k(Ph),k(lc))};static#t=this.\u0275prov=x({token:e,factory:e.\u0275fac})}return e})(),Ph=(()=>{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 Fh?.findTestabilityInTree(this,t,r)??null}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=x({token:e,factory:e.\u0275fac,providedIn:"platform"})}return e})();function zs(e){return!!e&&"function"==typeof e.then}function Uw(e){return!!e&&"function"==typeof e.subscribe}const Lh=new R("");let Vh=(()=>{class e{constructor(){this.initialized=!1,this.done=!1,this.donePromise=new Promise((t,r)=>{this.resolve=t,this.reject=r}),this.appInits=M(Lh,{optional:!0})??[]}runInitializers(){if(this.initialized)return;const t=[];for(const o of this.appInits){const i=o();if(zs(i))t.push(i);else if(Uw(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=x({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();const jh=new R("");let mr=(()=>{class e{constructor(){this._bootstrapListeners=[],this._runningTick=!1,this._destroyed=!1,this._destroyListeners=[],this._views=[],this.internalErrorHandler=M(bv),this.afterRenderEffectManager=M(ws),this.externalTestViews=new Set,this.beforeRender=new $t,this.afterTick=new $t,this.componentTypes=[],this.components=[],this.isStable=M(hr).hasPendingTasks.pipe(ne(t=>!t)),this._injector=M(ft)}get destroyed(){return this._destroyed}get injector(){return this._injector}bootstrap(t,r){const o=t instanceof u_;if(!this._injector.get(Vh).done)throw!o&&function ir(e){const n=Y(e)||Ze(e)||rt(e);return null!==n&&n.standalone}(t),new I(405,!1);let s;s=o?t:this._injector.get(Ll).resolveComponentFactory(t),this.componentTypes.push(s.componentType);const a=function aF(e){return e.isBoundToModule}(s)?void 0:this._injector.get(Br),c=s.create(gt.NULL,[],r||s.selector,a),u=c.location.nativeElement,d=c.injector.get(jw,null);return d?.registerApplication(u),c.onDestroy(()=>{this.detachView(c.hostView),cc(this.components,c),d?.unregisterApplication(u)}),this._loadComponent(c),c}tick(){this._tick(!0)}_tick(t){if(this._runningTick)throw new I(101,!1);const r=Q(null);try{this._runningTick=!0,this.detectChangesInAttachedViews(t)}catch(o){this.internalErrorHandler(o)}finally{this.afterTick.next(),this._runningTick=!1,Q(r)}}detectChangesInAttachedViews(t){let r=0;const o=this.afterRenderEffectManager;for(;;){if(r===e_)throw new I(103,!1);if(t){const i=0===r;this.beforeRender.next(i);for(let{_lView:s,notifyErrorHandler:a}of this._views)cF(s,i,a)}if(r++,o.executeInternalCallbacks(),![...this.externalTestViews.keys(),...this._views].some(({_lView:i})=>Uh(i))&&(o.execute(),![...this.externalTestViews.keys(),...this._views].some(({_lView:i})=>Uh(i))))break}}attachView(t){const r=t;this._views.push(r),r.attachToAppRef(this)}detachView(t){const r=t;cc(this._views,r),r.detachFromAppRef()}_loadComponent(t){this.attachView(t.hostView),this.tick(),this.components.push(t);const r=this._injector.get(jh,[]);[...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),()=>cc(this._destroyListeners,t)}destroy(){if(this._destroyed)throw new I(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=x({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();function cc(e,n){const t=e.indexOf(n);t>-1&&e.splice(t,1)}function cF(e,n,t){!n&&!Uh(e)||function uF(e,n,t){let r;t?(r=0,e[P]|=1024):r=64&e[P]?0:1,Rl(e,n,r)}(e,t,n)}function Uh(e){return md(e)}class dF{constructor(n,t){this.ngModuleFactory=n,this.componentFactories=t}}let Gw=(()=>{class e{compileModuleSync(t){return new th(t)}compileModuleAsync(t){return Promise.resolve(this.compileModuleSync(t))}compileModuleAndAllComponentsSync(t){const r=this.compileModuleSync(t),i=Vt(it(t).declarations).reduce((s,a)=>{const l=Y(a);return l&&s.push(new Is(l)),s},[]);return new dF(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=x({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})(),pF=(()=>{class e{constructor(){this.zone=M(de),this.applicationRef=M(mr)}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=x({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();function qw(e){return[{provide:de,useFactory:e},{provide:xr,multi:!0,useFactory:()=>{const n=M(pF,{optional:!0});return()=>n.initialize()}},{provide:xr,multi:!0,useFactory:()=>{const n=M(vF);return()=>{n.initialize()}}},{provide:bv,useFactory:gF}]}function gF(){const e=M(de),n=M(bn);return t=>e.runOutsideAngular(()=>n.handleError(t))}function mF(e){return ji([[],qw(()=>new de(function Ww(e){return{enableLongStackTrace:!1,shouldCoalesceEventChangeDetection:e?.eventCoalescing??!1,shouldCoalesceRunChangeDetection:e?.runCoalescing??!1}}(e)))])}let vF=(()=>{class e{constructor(){this.subscription=new Dt,this.initialized=!1,this.zone=M(de),this.pendingTasks=M(hr)}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(()=>{de.assertNotInAngularZone(),queueMicrotask(()=>{null!==t&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(this.pendingTasks.remove(t),t=null)})}))}),this.subscription.add(this.zone.onUnstable.subscribe(()=>{de.assertInAngularZone(),t??=this.pendingTasks.add()}))}ngOnDestroy(){this.subscription.unsubscribe()}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=x({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();const Yn=new R("",{providedIn:"root",factory:()=>M(Yn,ee.Optional|ee.SkipSelf)||function yF(){return typeof $localize<"u"&&$localize.locale||ri}()}),Bh=new R("");let vr=null;let qs=(()=>{class e{static#e=this.__NG_ELEMENT_ID__=EF}return e})();function EF(e){return function IF(e,n,t){if(Pr(e)&&!t){const r=Ft(e.index,n);return new vs(r,r)}return 47&e.type?new vs(n[Ne],n):null}(he(),E(),!(16&~e))}class nb{constructor(){}supports(n){return zl(n)}create(n){return new NF(n)}}const AF=(e,n)=>n;class NF{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||AF}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 RF(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 rb),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 rb),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 RF{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 xF{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 rb{constructor(){this.map=new Map}put(n){const t=n.trackById;let r=this.map.get(t);r||(r=new xF,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 ob(e,n,t){const r=e.previousIndex;if(null===r)return r;let o=0;return t&&r{class e{static#e=this.\u0275prov=x({token:e,providedIn:"root",factory:sb});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||sb()),deps:[[e,new Va,new La]]}}find(t){const r=this.factories.find(o=>o.supports(t));if(null!=r)return r;throw new I(901,!1)}}return e})(),LF=(()=>{class e{constructor(t){}static#e=this.\u0275fac=function(r){return new(r||e)(k(mr))};static#t=this.\u0275mod=or({type:e});static#n=this.\u0275inj=jn({})}return e})();function JF(e){try{const{rootComponent:n,appProviders:t,platformProviders:r}=e,o=function bF(e=[]){if(vr)return vr;const n=function Yw(e=[],n){return gt.create({name:n,providers:[{provide:nd,useValue:"platform"},{provide:Bh,useValue:new Set([()=>vr=null])},...e]})}(e);return vr=n,function Bw(){!function x1(e){Bg=e}(()=>{throw new I(600,!1)})}(),function Xw(e){e.get(zv,null)?.forEach(t=>t())}(n),n}(r),i=[mF(),...t||[]],a=new rC({providers:i,parent:o,debugName:"",runEnvironmentInitializers:!1}).injector,l=a.get(de);return l.run(()=>{a.resolveInjectorInitializers();const c=a.get(bn,null);let u;l.runOutsideAngular(()=>{u=l.onError.subscribe({next:m=>{c.handleError(m)}})});const d=()=>a.destroy(),g=o.get(Bh);return g.add(d),a.onDestroy(()=>{u.unsubscribe(),g.delete(d)}),function Hw(e,n,t){try{const r=t();return zs(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(Vh);return m.runInitializers(),m.donePromise.then(()=>{!function aD(e){"string"==typeof e&&(sD=e.toLowerCase().replace(/_/g,"-"))}(a.get(Yn,ri)||ri);const _=a.get(mr);return void 0!==n&&_.bootstrap(n),_})})})}catch(n){return Promise.reject(n)}}function ai(e){return"boolean"==typeof e?e:null!=e&&"false"!==e}const we_apiBaseUrl="https://www.palmmedia.de/api/";let Nb=null;function yr(){return Nb}class D2{}const Nt=new R("");let Yh=(()=>{class e{historyGo(t){throw new Error("")}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=x({token:e,factory:()=>M(b2),providedIn:"platform"})}return e})();const w2=new R("");let b2=(()=>{class e extends Yh{constructor(){super(),this._doc=M(Nt),this._location=window.location,this._history=window.history}getBaseHrefFromDOM(){return yr().getBaseHref(this._doc)}onPopState(t){const r=yr().getGlobalEventTarget(this._doc,"window");return r.addEventListener("popstate",t,!1),()=>r.removeEventListener("popstate",t)}onHashChange(t){const r=yr().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=x({token:e,factory:()=>new e,providedIn:"platform"})}return e})();function Xh(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 Rb(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 Xn(e){return e&&"?"!==e[0]?"?"+e:e}let Wr=(()=>{class e{historyGo(t){throw new Error("")}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=x({token:e,factory:()=>M(Ob),providedIn:"root"})}return e})();const xb=new R("");let Ob=(()=>{class e extends Wr{constructor(t,r){super(),this._platformLocation=t,this._removeListenerFns=[],this._baseHref=r??this._platformLocation.getBaseHrefFromDOM()??M(Nt).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 Xh(this._baseHref,t)}path(t=!1){const r=this._platformLocation.pathname+Xn(this._platformLocation.search),o=this._platformLocation.hash;return o&&t?`${r}${o}`:r}pushState(t,r,o,i){const s=this.prepareExternalUrl(o+Xn(i));this._platformLocation.pushState(t,r,s)}replaceState(t,r,o,i){const s=this.prepareExternalUrl(o+Xn(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)(k(Yh),k(xb,8))};static#t=this.\u0275prov=x({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})(),E2=(()=>{class e extends Wr{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=Xh(this._baseHref,t);return r.length>0?"#"+r:r}pushState(t,r,o,i){let s=this.prepareExternalUrl(o+Xn(i));0==s.length&&(s=this._platformLocation.pathname),this._platformLocation.pushState(t,r,s)}replaceState(t,r,o,i){let s=this.prepareExternalUrl(o+Xn(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)(k(Yh),k(xb,8))};static#t=this.\u0275prov=x({token:e,factory:e.\u0275fac})}return e})(),Qs=(()=>{class e{constructor(t){this._subject=new Re,this._urlChangeListeners=[],this._urlChangeSubscription=null,this._locationStrategy=t;const r=this._locationStrategy.getBaseHref();this._basePath=function S2(e){if(new RegExp("^(https?:)?//").test(e)){const[,t]=e.split(/\/\/[^\/]+/);return t}return e}(Rb(kb(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+Xn(r))}normalize(t){return e.stripTrailingSlash(function M2(e,n){if(!e||!n.startsWith(e))return n;const t=n.substring(e.length);return""===t||["/",";","?","#"].includes(t[0])?t:n}(this._basePath,kb(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+Xn(r)),o)}replaceState(t,r="",o=null){this._locationStrategy.replaceState(o,"",t,r),this._notifyUrlChangeListeners(this.prepareExternalUrl(t+Xn(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=Xn;static#t=this.joinWithSlash=Xh;static#n=this.stripTrailingSlash=Rb;static#r=this.\u0275fac=function(r){return new(r||e)(k(Wr))};static#o=this.\u0275prov=x({token:e,factory:()=>function I2(){return new Qs(k(Wr))}(),providedIn:"root"})}return e})();function kb(e){return e.replace(/\/index.html$/,"")}function $b(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 ap=/\s+/,Gb=[];let Nc=(()=>{class e{constructor(t,r){this._ngEl=t,this._renderer=r,this.initialClasses=Gb,this.stateMap=new Map}set klass(t){this.initialClasses=null!=t?t.trim().split(ap):Gb}set ngClass(t){this.rawClass="string"==typeof t?t.trim().split(ap):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(ap).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)(T(Lt),T(Wn))};static#t=this.\u0275dir=$({type:e,selectors:[["","ngClass",""]],inputs:{klass:[Me.None,"class","klass"],ngClass:"ngClass"},standalone:!0})}return e})();class fL{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 lp=(()=>{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 fL(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),qb(a,o)}});for(let o=0,i=r.length;o{qb(r.get(o.currentIndex),o)})}static ngTemplateContextGuard(t,r){return!0}static#e=this.\u0275fac=function(r){return new(r||e)(T(sn),T(qn),T(Wh))};static#t=this.\u0275dir=$({type:e,selectors:[["","ngFor","","ngForOf",""]],inputs:{ngForOf:"ngForOf",ngForTrackBy:"ngForTrackBy",ngForTemplate:"ngForTemplate"},standalone:!0})}return e})();function qb(e,n){e.context.$implicit=n.item}let cp=(()=>{class e{constructor(t,r){this._viewContainer=t,this._context=new hL,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){Wb("ngIfThen",t),this._thenTemplateRef=t,this._thenViewRef=null,this._updateView()}set ngIfElse(t){Wb("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)(T(sn),T(qn))};static#t=this.\u0275dir=$({type:e,selectors:[["","ngIf",""]],inputs:{ngIf:"ngIf",ngIfThen:"ngIfThen",ngIfElse:"ngIfElse"},standalone:!0})}return e})();class hL{constructor(){this.$implicit=null,this.ngIf=null}}function Wb(e,n){if(n&&!n.createEmbeddedView)throw new Error(`${e} must be a TemplateRef, but received '${We(n)}'.`)}let jL=(()=>{class e{static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275mod=or({type:e});static#n=this.\u0275inj=jn({})}return e})();const Yb="browser";function Xb(e){return"server"===e}let GL=(()=>{class e{static#e=this.\u0275prov=x({token:e,providedIn:"root",factory:()=>function $L(e){return e===Yb}(M(lr))?new zL(M(Nt),window):new WL})}return e})();class zL{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 qL(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 WL{setOffset(n){}getScrollPosition(){return[0,0]}scrollToPosition(n){}scrollToAnchor(n){}setHistoryScrollRestoration(n){}}class Jb{}function _r(e){return this instanceof _r?(this.v=e,this):new _r(e)}function uE(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 yp(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 dE=e=>e&&"number"==typeof e.length&&"function"!=typeof e;function fE(e){return Ie(e?.then)}function hE(e){return Ie(e[Ou])}function pE(e){return Symbol.asyncIterator&&Ie(e?.[Symbol.asyncIterator])}function gE(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 mE=function $V(){return"function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator"}();function vE(e){return Ie(e?.[mE])}function yE(e){return function cE(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 _r?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 _r(t.read());if(o)return yield _r(void 0);yield yield _r(r)}}finally{t.releaseLock()}})}function _E(e){return Ie(e?.getReader)}function An(e){if(e instanceof Be)return e;if(null!=e){if(hE(e))return function GV(e){return new Be(n=>{const t=e[Ou]();if(Ie(t.subscribe))return t.subscribe(n);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}(e);if(dE(e))return function zV(e){return new Be(n=>{for(let t=0;t{e.then(t=>{n.closed||(n.next(t),n.complete())},t=>n.error(t)).then(null,Wg)})}(e);if(pE(e))return CE(e);if(vE(e))return function WV(e){return new Be(n=>{for(const t of e)if(n.next(t),n.closed)return;n.complete()})}(e);if(_E(e))return function ZV(e){return CE(yE(e))}(e)}throw gE(e)}function CE(e){return new Be(n=>{(function QV(e,n){var t,r,o,i;return function aE(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=uE(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 er(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 DE(e,n=0){return nt((t,r)=>{t.subscribe(qe(r,o=>er(r,e,()=>r.next(o),n),()=>er(r,e,()=>r.complete(),n),o=>er(r,e,()=>r.error(o),n)))})}function wE(e,n=0){return nt((t,r)=>{r.add(e.schedule(()=>t.subscribe(r),n))})}function bE(e,n){if(!e)throw new Error("Iterable cannot be null");return new Be(t=>{er(t,n,()=>{const r=e[Symbol.asyncIterator]();er(t,n,()=>{r.next().then(o=>{o.done?t.complete():t.next(o.value)})},0,!0)})})}function Ke(e,n){return n?function tj(e,n){if(null!=e){if(hE(e))return function YV(e,n){return An(e).pipe(wE(n),DE(n))}(e,n);if(dE(e))return function JV(e,n){return new Be(t=>{let r=0;return n.schedule(function(){r===e.length?t.complete():(t.next(e[r++]),t.closed||this.schedule())})})}(e,n);if(fE(e))return function XV(e,n){return An(e).pipe(wE(n),DE(n))}(e,n);if(pE(e))return bE(e,n);if(vE(e))return function KV(e,n){return new Be(t=>{let r;return er(t,n,()=>{r=e[mE](),er(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)}),()=>Ie(r?.return)&&r.return()})}(e,n);if(_E(e))return function ej(e,n){return bE(yE(e),n)}(e,n)}throw gE(e)}(e,n):An(e)}function _p(e){return e[e.length-1]}function EE(e){return Ie(_p(e))?e.pop():void 0}function kc(e){return function nj(e){return e&&Ie(e.schedule)}(_p(e))?e.pop():void 0}function H(...e){return Ke(e,kc(e))}const{isArray:rj}=Array,{getPrototypeOf:oj,prototype:ij,keys:sj}=Object;function IE(e){if(1===e.length){const n=e[0];if(rj(n))return{args:n,keys:null};if(function aj(e){return e&&"object"==typeof e&&oj(e)===ij}(n)){const t=sj(n);return{args:t.map(r=>n[r]),keys:t}}}return{args:e,keys:null}}const{isArray:lj}=Array;function ME(e){return ne(n=>function cj(e,n){return lj(n)?e(...n):e(n)}(e,n))}function SE(e,n){return e.reduce((t,r,o)=>(t[r]=n[o],t),{})}function Cp(...e){const n=kc(e),t=EE(e),{args:r,keys:o}=IE(e);if(0===r.length)return Ke([],n);const i=new Be(function uj(e,n,t=Nr){return r=>{TE(n,()=>{const{length:o}=e,i=new Array(o);let s=o,a=o;for(let l=0;l{const c=Ke(e[l],n);let u=!1;c.subscribe(qe(r,d=>{i[l]=d,u||(u=!0,a--),a||r.next(t(i.slice()))},()=>{--s||r.complete()}))},r)},r)}}(r,n,o?s=>SE(o,s):Nr));return t?i.pipe(ME(t)):i}function TE(e,n,t){e?er(t,e,n):n()}const Pc=Eu(e=>function(){e(this),this.name="EmptyError",this.message="no elements in sequence"});function ot(e,n,t=1/0){return Ie(n)?ot((r,o)=>ne((i,s)=>n(r,i,o,s))(An(e(r,o))),t):("number"==typeof n&&(t=n),nt((r,o)=>function dj(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;An(t(_,u++)).subscribe(qe(n,w=>{o?.(w),i?m(w):n.next(w)},()=>{D=!0},void 0,()=>{if(D)try{for(c--;l.length&&cv(w)):v(w)}g()}catch(w){n.error(w)}}))};return e.subscribe(qe(n,m,()=>{d=!0,g()})),()=>{a?.()}}(r,o,e,t)))}function Ks(e=1/0){return ot(Nr,e)}function Dp(...e){return function fj(){return Ks(1)}()(Ke(e,kc(e)))}function AE(e){return new Be(n=>{An(e()).subscribe(n)})}function Fc(e,n){const t=Ie(e)?e:()=>e,r=o=>o.error(t());return new Be(n?o=>n.schedule(r,0,o):r)}const Nn=new Be(e=>e.complete());function wp(){return nt((e,n)=>{let t=null;e._refCount++;const r=qe(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 NE extends Be{constructor(n,t){super(),this.source=n,this.subjectFactory=t,this._subject=null,this._refCount=0,this._connection=null,Xg(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 Dt;const t=this.getSubject();n.add(this.source.subscribe(qe(t,void 0,()=>{this._teardown(),t.complete()},r=>{this._teardown(),t.error(r)},()=>this._teardown()))),n.closed&&(this._connection=null,n=Dt.EMPTY)}return n}refCount(){return wp()(this)}}function fn(e,n){return nt((t,r)=>{let o=null,i=0,s=!1;const a=()=>s&&!o&&r.complete();t.subscribe(qe(r,l=>{o?.unsubscribe();let c=0;const u=i++;An(e(l,u)).subscribe(o=qe(r,d=>r.next(n?n(l,d,u,c++):d),()=>{o=null,a()}))},()=>{s=!0,a()}))})}function ci(e){return e<=0?()=>Nn:nt((n,t)=>{let r=0;n.subscribe(qe(t,o=>{++r<=e&&(t.next(o),e<=r&&t.complete())}))})}function hn(e,n){return nt((t,r)=>{let o=0;t.subscribe(qe(r,i=>e.call(n,i,o++)&&r.next(i)))})}function Lc(e){return nt((n,t)=>{let r=!1;n.subscribe(qe(t,o=>{r=!0,t.next(o)},()=>{r||t.next(e),t.complete()}))})}function RE(e=gj){return nt((n,t)=>{let r=!1;n.subscribe(qe(t,o=>{r=!0,t.next(o)},()=>r?t.complete():t.error(e())))})}function gj(){return new Pc}function Zr(e,n){const t=arguments.length>=2;return r=>r.pipe(e?hn((o,i)=>e(o,i,r)):Nr,ci(1),t?Lc(n):RE(()=>new Pc))}function ui(e,n){return Ie(n)?ot(e,n,1):ot(e,1)}function _t(e,n,t){const r=Ie(e)||n||t?{next:e,error:n,complete:t}:e;return r?nt((o,i)=>{var s;null===(s=r.subscribe)||void 0===s||s.call(r);let a=!0;o.subscribe(qe(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)}))}):Nr}function di(e){return nt((n,t)=>{let i,r=null,o=!1;r=n.subscribe(qe(t,void 0,void 0,s=>{i=An(e(s,di(e)(n))),r?(r.unsubscribe(),r=null,i.subscribe(t)):o=!0})),o&&(r.unsubscribe(),r=null,i.subscribe(t))})}function bp(e){return e<=0?()=>Nn:nt((n,t)=>{let r=[];n.subscribe(qe(t,o=>{r.push(o),e{for(const o of r)t.next(o);t.complete()},void 0,()=>{r=null}))})}function ea(e){return nt((n,t)=>{try{n.subscribe(t)}finally{t.add(e)}})}class Dj extends D2{constructor(){super(...arguments),this.supportsDOMEvents=!0}}class Ep extends Dj{static makeCurrent(){!function C2(e){Nb??=e}(new Ep)}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 wj(){return ta=ta||document.querySelector("base"),ta?ta.getAttribute("href"):null}();return null==t?null:function bj(e){return new URL(e,document.baseURI).pathname}(t)}resetBaseElement(){ta=null}getUserAgent(){return window.navigator.userAgent}getCookie(n){return $b(document.cookie,n)}}let ta=null,Ij=(()=>{class e{build(){return new XMLHttpRequest}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=x({token:e,factory:e.\u0275fac})}return e})();const Ip=new R("");let xE=(()=>{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 I(5101,!1);return this._eventNameToPlugin.set(t,r),r}static#e=this.\u0275fac=function(r){return new(r||e)(k(Ip),k(de))};static#t=this.\u0275prov=x({token:e,factory:e.\u0275fac})}return e})();class OE{constructor(n){this._doc=n}}const Mp="ng-app-id";let kE=(()=>{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=Xb(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[${Mp}="${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(Mp),i;{const s=this.doc.createElement("style");return this.nonce&&s.setAttribute("nonce",this.nonce),s.textContent=r,this.platformIsServer&&s.setAttribute(Mp,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)(k(Nt),k(dl),k(qv,8),k(lr))};static#t=this.\u0275prov=x({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/"},Tp=/%COMP%/g,Aj=new R("",{providedIn:"root",factory:()=>!0});function FE(e,n){return n.map(t=>t.replace(Tp,e))}let LE=(()=>{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=Xb(a),this.defaultRenderer=new Ap(t,s,l,this.platformIsServer)}createRenderer(t,r){if(!t||!r)return this.defaultRenderer;this.platformIsServer&&r.encapsulation===Jt.ShadowDom&&(r={...r,encapsulation:Jt.Emulated});const o=this.getOrCreateRenderer(t,r);return o instanceof jE?o.applyToHost(t):o instanceof Np&&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 Jt.Emulated:i=new jE(l,c,r,this.appId,u,s,a,d);break;case Jt.ShadowDom:return new Oj(l,c,t,r,s,a,this.nonce,d);default:i=new Np(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)(k(xE),k(kE),k(dl),k(Aj),k(Nt),k(lr),k(de),k(qv))};static#t=this.\u0275prov=x({token:e,factory:e.\u0275fac})}return e})();class Ap{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){(VE(n)?n.content:n).appendChild(t)}insertBefore(n,t,r){n&&(VE(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 I(-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&(ur.DashCase|ur.Important)?n.style.setProperty(t,r,o&ur.Important?"important":""):n.style[t]=r}removeStyle(n,t,r){r&ur.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=yr().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 VE(e){return"TEMPLATE"===e.tagName&&void 0!==e.content}class Oj extends Ap{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=FE(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 Np extends Ap{constructor(n,t,r,o,i,s,a,l){super(n,i,s,a),this.sharedStylesHost=t,this.removeStylesOnCompDestroy=o,this.styles=l?FE(l,r.styles):r.styles}applyStyles(){this.sharedStylesHost.addStyles(this.styles)}destroy(){this.removeStylesOnCompDestroy&&this.sharedStylesHost.removeStyles(this.styles)}}class jE extends Np{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 Nj(e){return"_ngcontent-%COMP%".replace(Tp,e)}(c),this.hostAttr=function Rj(e){return"_nghost-%COMP%".replace(Tp,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 kj=(()=>{class e extends OE{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)(k(Nt))};static#t=this.\u0275prov=x({token:e,factory:e.\u0275fac})}return e})();const UE=["alt","control","meta","shift"],Pj={"\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"},Fj={alt:e=>e.altKey,control:e=>e.ctrlKey,meta:e=>e.metaKey,shift:e=>e.shiftKey};let Lj=(()=>{class e extends OE{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(()=>yr().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."),UE.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=Pj[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"),UE.forEach(s=>{s!==o&&(0,Fj[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)(k(Nt))};static#t=this.\u0275prov=x({token:e,factory:e.\u0275fac})}return e})();function BE(e){return{appProviders:[...$E,...e?.providers??[]],platformProviders:Hj}}const Hj=[{provide:lr,useValue:Yb},{provide:zv,useValue:function jj(){Ep.makeCurrent()},multi:!0},{provide:Nt,useFactory:function Bj(){return function bT(e){Ud=e}(document),document},deps:[]}],$j=new R(""),HE=[{provide:lc,useClass:class Ej{addToWindow(n){ue.getAngularTestability=(r,o=!0)=>{const i=n.findTestabilityInTree(r,o);if(null==i)throw new I(5103,!1);return i},ue.getAllAngularTestabilities=()=>n.getAllTestabilities(),ue.getAllAngularRootElements=()=>n.getAllRootElements(),ue.frameworkStabilizers||(ue.frameworkStabilizers=[]),ue.frameworkStabilizers.push(r=>{const o=ue.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?yr().isShadowRoot(t)?this.findTestabilityInTree(n,t.host,!0):this.findTestabilityInTree(n,t.parentElement,!0):null)}},deps:[]},{provide:jw,useClass:kh,deps:[de,Ph,lc]},{provide:kh,useClass:kh,deps:[de,Ph,lc]}],$E=[{provide:nd,useValue:"root"},{provide:bn,useFactory:function Uj(){return new bn},deps:[]},{provide:Ip,useClass:kj,multi:!0,deps:[Nt,de,lr]},{provide:Ip,useClass:Lj,multi:!0,deps:[Nt]},LE,kE,xE,{provide:f_,useExisting:LE},{provide:Jb,useClass:Ij,deps:[]},[]];let Gj=(()=>{class e{constructor(t){}static withServerTransition(t){return{ngModule:e,providers:[{provide:dl,useValue:t.appId}]}}static#e=this.\u0275fac=function(r){return new(r||e)(k($j,12))};static#t=this.\u0275mod=or({type:e});static#n=this.\u0275inj=jn({providers:[...$E,...HE],imports:[jL,LF]})}return e})(),zj=(()=>{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)(k(Nt))};static#t=this.\u0275prov=x({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();const Z="primary",ra=Symbol("RouteTitle");class Qj{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 fi(e){return new Qj(e)}function Yj(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 ZE(e){return e.length>0?e[e.length-1]:null}function Cr(e){return function DV(e){return!!e&&(e instanceof Be||Ie(e.lift)&&Ie(e.subscribe))}(e)?e:zs(e)?Ke(Promise.resolve(e)):H(e)}const Jj={exact:function XE(e,n,t){if(!Qr(e.segments,n.segments)||!Vc(e.segments,n.segments,t)||e.numberOfChildren!==n.numberOfChildren)return!1;for(const r in n.children)if(!e.children[r]||!XE(e.children[r],n.children[r],t))return!1;return!0},subset:JE},QE={exact:function Kj(e,n){return Rn(e,n)},subset:function e3(e,n){return Object.keys(n).length<=Object.keys(e).length&&Object.keys(n).every(t=>WE(e[t],n[t]))},ignored:()=>!0};function YE(e,n,t){return Jj[t.paths](e.root,n.root,t.matrixParams)&&QE[t.queryParams](e.queryParams,n.queryParams)&&!("exact"===t.fragment&&e.fragment!==n.fragment)}function JE(e,n,t){return KE(e,n,n.segments,t)}function KE(e,n,t,r){if(e.segments.length>t.length){const o=e.segments.slice(0,t.length);return!(!Qr(o,t)||n.hasChildren()||!Vc(o,t,r))}if(e.segments.length===t.length){if(!Qr(e.segments,t)||!Vc(e.segments,t,r))return!1;for(const o in n.children)if(!e.children[o]||!JE(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!!(Qr(e.segments,o)&&Vc(e.segments,o,r)&&e.children[Z])&&KE(e.children[Z],n,i,r)}}function Vc(e,n,t){return n.every((r,o)=>QE[t](e[o].parameters,r.parameters))}class hi{constructor(n=new me([],{}),t={},r=null){this.root=n,this.queryParams=t,this.fragment=r}get queryParamMap(){return this._queryParamMap??=fi(this.queryParams),this._queryParamMap}toString(){return r3.serialize(this)}}class me{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 jc(this)}}class oa{constructor(n,t){this.path=n,this.parameters=t}get parameterMap(){return this._parameterMap??=fi(this.parameters),this._parameterMap}toString(){return nI(this)}}function Qr(e,n){return e.length===n.length&&e.every((t,r)=>t.path===n[r].path)}let pi=(()=>{class e{static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=x({token:e,factory:()=>new xp,providedIn:"root"})}return e})();class xp{parse(n){const t=new p3(n);return new hi(t.parseRootSegment(),t.parseQueryParams(),t.parseFragment())}serialize(n){const t=`/${ia(n.root,!0)}`,r=function s3(e){const n=Object.entries(e).map(([t,r])=>Array.isArray(r)?r.map(o=>`${Uc(t)}=${Uc(o)}`).join("&"):`${Uc(t)}=${Uc(r)}`).filter(t=>t);return n.length?`?${n.join("&")}`:""}(n.queryParams);return`${t}${r}${"string"==typeof n.fragment?`#${function o3(e){return encodeURI(e)}(n.fragment)}`:""}`}}const r3=new xp;function jc(e){return e.segments.map(n=>nI(n)).join("/")}function ia(e,n){if(!e.hasChildren())return jc(e);if(n){const t=e.children[Z]?ia(e.children[Z],!1):"",r=[];return Object.entries(e.children).forEach(([o,i])=>{o!==Z&&r.push(`${o}:${ia(i,!1)}`)}),r.length>0?`${t}(${r.join("//")})`:t}{const t=function n3(e,n){let t=[];return Object.entries(e.children).forEach(([r,o])=>{r===Z&&(t=t.concat(n(o,r)))}),Object.entries(e.children).forEach(([r,o])=>{r!==Z&&(t=t.concat(n(o,r)))}),t}(e,(r,o)=>o===Z?[ia(e.children[Z],!1)]:[`${o}:${ia(r,!1)}`]);return 1===Object.keys(e.children).length&&null!=e.children[Z]?`${jc(e)}/${t[0]}`:`${jc(e)}/(${t.join("//")})`}}function eI(e){return encodeURIComponent(e).replace(/%40/g,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",")}function Uc(e){return eI(e).replace(/%3B/gi,";")}function Op(e){return eI(e).replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/%26/gi,"&")}function Bc(e){return decodeURIComponent(e)}function tI(e){return Bc(e.replace(/\+/g,"%20"))}function nI(e){return`${Op(e.path)}${function i3(e){return Object.entries(e).map(([n,t])=>`;${Op(n)}=${Op(t)}`).join("")}(e.parameters)}`}const a3=/^[^\/()?;#]+/;function kp(e){const n=e.match(a3);return n?n[0]:""}const l3=/^[^\/()?;=#]+/,u3=/^[^=?&#]+/,f3=/^[^&#]+/;class p3{constructor(n){this.url=n,this.remaining=n}parseRootSegment(){return this.consumeOptional("/"),""===this.remaining||this.peekStartsWith("?")||this.peekStartsWith("#")?new me([],{}):new me([],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[Z]=new me(n,t)),r}parseSegment(){const n=kp(this.remaining);if(""===n&&this.peekStartsWith(";"))throw new I(4009,!1);return this.capture(n),new oa(Bc(n),this.parseMatrixParams())}parseMatrixParams(){const n={};for(;this.consumeOptional(";");)this.parseParam(n);return n}parseParam(n){const t=function c3(e){const n=e.match(l3);return n?n[0]:""}(this.remaining);if(!t)return;this.capture(t);let r="";if(this.consumeOptional("=")){const o=kp(this.remaining);o&&(r=o,this.capture(r))}n[Bc(t)]=Bc(r)}parseQueryParam(n){const t=function d3(e){const n=e.match(u3);return n?n[0]:""}(this.remaining);if(!t)return;this.capture(t);let r="";if(this.consumeOptional("=")){const s=function h3(e){const n=e.match(f3);return n?n[0]:""}(this.remaining);s&&(r=s,this.capture(r))}const o=tI(t),i=tI(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=kp(this.remaining),o=this.remaining[r.length];if("/"!==o&&")"!==o&&";"!==o)throw new I(4010,!1);let i;r.indexOf(":")>-1?(i=r.slice(0,r.indexOf(":")),this.capture(i),this.capture(":")):n&&(i=Z);const s=this.parseChildren();t[i]=1===Object.keys(s).length?s[Z]:new me([],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 I(4011,!1)}}function rI(e){return e.segments.length>0?new me([],{[Z]:e}):e}function oI(e){const n={};for(const[r,o]of Object.entries(e.children)){const i=oI(o);if(r===Z&&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 g3(e){if(1===e.numberOfChildren&&e.children[Z]){const n=e.children[Z];return new me(e.segments.concat(n.segments),n.children)}return e}(new me(e.segments,n))}function gi(e){return e instanceof hi}function iI(e){let n;const o=rI(function t(i){const s={};for(const l of i.children){const c=t(l);s[l.outlet]=c}const a=new me(i.url,s);return i===e&&(n=a),a}(e.root));return n??o}function sI(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 v3(e){if("string"==typeof e[0]&&1===e.length&&"/"===e[0])return new lI(!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 lI(t,n,r)}(n);if(i.toRoot())return Pp(o,o,new me([],{}),t,r);const s=function y3(e,n,t){if(e.isAbsolute)return new $c(n,!0,0);if(!t)return new $c(n,!1,NaN);if(null===t.parent)return new $c(t,!0,0);const r=Hc(e.commands[0])?0:1;return function _3(e,n,t){let r=e,o=n,i=t;for(;i>o;){if(i-=o,r=r.parent,!r)throw new I(4005,!1);o=r.segments.length}return new $c(r,!1,o-i)}(t,t.segments.length-1+r,e.numberOfDoubleDots)}(i,o,e),a=s.processChildren?aa(s.segmentGroup,s.index,i.commands):cI(s.segmentGroup,s.index,i.commands);return Pp(o,s.segmentGroup,a,t,r)}function Hc(e){return"object"==typeof e&&null!=e&&!e.outlets&&!e.segmentPath}function sa(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:aI(e,n,t);const a=rI(oI(s));return new hi(a,i,o)}function aI(e,n,t){const r={};return Object.entries(e.children).forEach(([o,i])=>{r[o]=i===n?t:aI(i,n,t)}),new me(e.segments,r)}class lI{constructor(n,t,r){if(this.isAbsolute=n,this.numberOfDoubleDots=t,this.commands=r,n&&r.length>0&&Hc(r[0]))throw new I(4003,!1);const o=r.find(sa);if(o&&o!==ZE(r))throw new I(4004,!1)}toRoot(){return this.isAbsolute&&1===this.commands.length&&"/"==this.commands[0]}}class $c{constructor(n,t,r){this.segmentGroup=n,this.processChildren=t,this.index=r}}function cI(e,n,t){if(e??=new me([],{}),0===e.segments.length&&e.hasChildren())return aa(e,n,t);const r=function D3(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(sa(a))break;const l=`${a}`,c=r0&&void 0===l)break;if(l&&c&&"object"==typeof c&&void 0===c.outlets){if(!dI(l,c,s))return i;r+=2}else{if(!dI(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!==Z)&&e.children[Z]&&1===e.numberOfChildren&&0===e.children[Z].segments.length){const i=aa(e.children[Z],n,t);return new me(e.segments,i.children)}return Object.entries(r).forEach(([i,s])=>{"string"==typeof s&&(s=[s]),null!==s&&(o[i]=cI(e.children[i],n,s))}),Object.entries(e.children).forEach(([i,s])=>{void 0===r[i]&&(o[i]=s)}),new me(e.segments,o)}}function Fp(e,n,t){const r=e.segments.slice(0,n);let o=0;for(;o{"string"==typeof r&&(r=[r]),null!==r&&(n[t]=Fp(new me([],{}),0,r))}),n}function uI(e){const n={};return Object.entries(e).forEach(([t,r])=>n[t]=`${r}`),n}function dI(e,n,t){return e==t.path&&Rn(n,t.parameters)}const la="imperative";var oe=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}(oe||{});class xn{constructor(n,t){this.id=n,this.url=t}}class Gc extends xn{constructor(n,t,r="imperative",o=null){super(n,t),this.type=oe.NavigationStart,this.navigationTrigger=r,this.restoredState=o}toString(){return`NavigationStart(id: ${this.id}, url: '${this.url}')`}}class On extends xn{constructor(n,t,r){super(n,t),this.urlAfterRedirects=r,this.type=oe.NavigationEnd}toString(){return`NavigationEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}')`}}var Ht=function(e){return e[e.Redirect=0]="Redirect",e[e.SupersededByNewNavigation=1]="SupersededByNewNavigation",e[e.NoDataFromResolver=2]="NoDataFromResolver",e[e.GuardRejected=3]="GuardRejected",e}(Ht||{}),zc=function(e){return e[e.IgnoredSameUrlNavigation=0]="IgnoredSameUrlNavigation",e[e.IgnoredByUrlHandlingStrategy=1]="IgnoredByUrlHandlingStrategy",e}(zc||{});class mi extends xn{constructor(n,t,r,o){super(n,t),this.reason=r,this.code=o,this.type=oe.NavigationCancel}toString(){return`NavigationCancel(id: ${this.id}, url: '${this.url}')`}}class vi extends xn{constructor(n,t,r,o){super(n,t),this.reason=r,this.code=o,this.type=oe.NavigationSkipped}}class qc extends xn{constructor(n,t,r,o){super(n,t),this.error=r,this.target=o,this.type=oe.NavigationError}toString(){return`NavigationError(id: ${this.id}, url: '${this.url}', error: ${this.error})`}}class fI extends xn{constructor(n,t,r,o){super(n,t),this.urlAfterRedirects=r,this.state=o,this.type=oe.RoutesRecognized}toString(){return`RoutesRecognized(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class b3 extends xn{constructor(n,t,r,o){super(n,t),this.urlAfterRedirects=r,this.state=o,this.type=oe.GuardsCheckStart}toString(){return`GuardsCheckStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class E3 extends xn{constructor(n,t,r,o,i){super(n,t),this.urlAfterRedirects=r,this.state=o,this.shouldActivate=i,this.type=oe.GuardsCheckEnd}toString(){return`GuardsCheckEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state}, shouldActivate: ${this.shouldActivate})`}}class I3 extends xn{constructor(n,t,r,o){super(n,t),this.urlAfterRedirects=r,this.state=o,this.type=oe.ResolveStart}toString(){return`ResolveStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class M3 extends xn{constructor(n,t,r,o){super(n,t),this.urlAfterRedirects=r,this.state=o,this.type=oe.ResolveEnd}toString(){return`ResolveEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class S3{constructor(n){this.route=n,this.type=oe.RouteConfigLoadStart}toString(){return`RouteConfigLoadStart(path: ${this.route.path})`}}class T3{constructor(n){this.route=n,this.type=oe.RouteConfigLoadEnd}toString(){return`RouteConfigLoadEnd(path: ${this.route.path})`}}class A3{constructor(n){this.snapshot=n,this.type=oe.ChildActivationStart}toString(){return`ChildActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class N3{constructor(n){this.snapshot=n,this.type=oe.ChildActivationEnd}toString(){return`ChildActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class R3{constructor(n){this.snapshot=n,this.type=oe.ActivationStart}toString(){return`ActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class x3{constructor(n){this.snapshot=n,this.type=oe.ActivationEnd}toString(){return`ActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class hI{constructor(n,t,r){this.routerEvent=n,this.position=t,this.anchor=r,this.type=oe.Scroll}toString(){return`Scroll(anchor: '${this.anchor}', position: '${this.position?`${this.position[0]}, ${this.position[1]}`:null}')`}}class Lp{}class Vp{constructor(n){this.url=n}}class O3{constructor(){this.outlet=null,this.route=null,this.injector=null,this.children=new ca,this.attachRef=null}}let ca=(()=>{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 O3,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=x({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();class pI{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=jp(n,this._root);return t?t.children.map(r=>r.value):[]}firstChild(n){const t=jp(n,this._root);return t&&t.children.length>0?t.children[0].value:null}siblings(n){const t=Up(n,this._root);return t.length<2?[]:t[t.length-2].children.map(o=>o.value).filter(o=>o!==n)}pathFromRoot(n){return Up(n,this._root).map(t=>t.value)}}function jp(e,n){if(e===n.value)return n;for(const t of n.children){const r=jp(e,t);if(r)return r}return null}function Up(e,n){if(e===n.value)return[n];for(const t of n.children){const r=Up(e,t);if(r.length)return r.unshift(n),r}return[]}class pn{constructor(n,t){this.value=n,this.children=t}toString(){return`TreeNode(${this.value})`}}function yi(e){const n={};return e&&e.children.forEach(t=>n[t.value.outlet]=t),n}class gI extends pI{constructor(n,t){super(n),this.snapshot=t,$p(this,n)}toString(){return this.snapshot.toString()}}function mI(e){const n=function k3(e){const i=new Hp([],{},{},"",{},Z,e,null,{});return new vI("",new pn(i,[]))}(e),t=new Gt([new oa("",{})]),r=new Gt({}),o=new Gt({}),i=new Gt({}),s=new Gt(""),a=new Yr(t,r,i,s,o,Z,e,n.root);return a.snapshot=n.root,new gI(new pn(a,[]),n)}class Yr{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(ne(c=>c[ra]))??H(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(ne(n=>fi(n))),this._paramMap}get queryParamMap(){return this._queryParamMap??=this.queryParams.pipe(ne(n=>fi(n))),this._queryParamMap}toString(){return this.snapshot?this.snapshot.toString():`Future(${this._futureSnapshot})`}}function Bp(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&&_I(o)&&(r.resolve[ra]=o.title),r}class Hp{get title(){return this.data?.[ra]}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??=fi(this.params),this._paramMap}get queryParamMap(){return this._queryParamMap??=fi(this.queryParams),this._queryParamMap}toString(){return`Route(url:'${this.url.map(r=>r.toString()).join("/")}', path:'${this.routeConfig?this.routeConfig.path:""}')`}}class vI extends pI{constructor(n,t){super(t),this.url=n,$p(this,t)}toString(){return yI(this._root)}}function $p(e,n){n.value._routerState=e,n.children.forEach(t=>$p(e,t))}function yI(e){const n=e.children.length>0?` { ${e.children.map(yI).join(", ")} } `:"";return`${e.value}${n}`}function Gp(e){if(e.snapshot){const n=e.snapshot,t=e._futureSnapshot;e.snapshot=t,Rn(n.queryParams,t.queryParams)||e.queryParamsSubject.next(t.queryParams),n.fragment!==t.fragment&&e.fragmentSubject.next(t.fragment),Rn(n.params,t.params)||e.paramsSubject.next(t.params),function Xj(e,n){if(e.length!==n.length)return!1;for(let t=0;tRn(t.parameters,n[r].parameters))}(e.url,n.url);return t&&!(!e.parent!=!n.parent)&&(!e.parent||zp(e.parent,n.parent))}function _I(e){return"string"==typeof e.title||null===e.title}let qp=(()=>{class e{constructor(){this.activated=null,this._activatedRoute=null,this.name=Z,this.activateEvents=new Re,this.deactivateEvents=new Re,this.attachEvents=new Re,this.detachEvents=new Re,this.parentContexts=M(ca),this.location=M(sn),this.changeDetector=M(qs),this.environmentInjector=M(ft),this.inputBinder=M(Wc,{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 I(4012,!1);return this.activated.instance}get activatedRoute(){if(!this.activated)throw new I(4012,!1);return this._activatedRoute}get activatedRouteData(){return this._activatedRoute?this._activatedRoute.snapshot.data:{}}detach(){if(!this.activated)throw new I(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 I(4013,!1);this._activatedRoute=t;const o=this.location,s=t.snapshot.component,a=this.parentContexts.getOrCreateContext(this.name).children,l=new Wp(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:[zt]})}return e})();class Wp{__ngOutletInjector(n){return new Wp(this.route,this.childContexts,n)}constructor(n,t,r){this.route=n,this.childContexts=t,this.parent=r}get(n,t){return n===Yr?this.route:n===ca?this.childContexts:this.parent.get(n,t)}}const Wc=new R("");let CI=(()=>{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=Cp([r.queryParams,r.params,r.data]).pipe(fn(([i,s,a],l)=>(a={...i,...s,...a},0===l?H(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 _2(e){const n=Y(e);if(!n)return null;const t=new Is(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=x({token:e,factory:e.\u0275fac})}return e})();function ua(e,n,t){if(t&&e.shouldReuseRoute(n.value,t.value.snapshot)){const r=t.value;r._futureSnapshot=n.value;const o=function F3(e,n,t){return n.children.map(r=>{for(const o of t.children)if(e.shouldReuseRoute(r.value,o.value.snapshot))return ua(e,r,o);return ua(e,r)})}(e,n,t);return new pn(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=>ua(e,a)),s}}const r=function L3(e){return new Yr(new Gt(e.url),new Gt(e.params),new Gt(e.queryParams),new Gt(e.fragment),new Gt(e.data),e.outlet,e.component,e)}(n.value),o=n.children.map(i=>ua(e,i));return new pn(r,o)}}const DI="ngNavigationCancelingError";function wI(e,n){const{redirectTo:t,navigationBehaviorOptions:r}=gi(n)?{redirectTo:n,navigationBehaviorOptions:void 0}:n,o=bI(!1,Ht.Redirect);return o.url=t,o.navigationBehaviorOptions=r,o}function bI(e,n){const t=new Error(`NavigationCancelingError: ${e||""}`);return t[DI]=!0,t.cancellationCode=n,t}function EI(e){return!!e&&e[DI]}let II=(()=>{class e{static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275cmp=kt({type:e,selectors:[["ng-component"]],standalone:!0,features:[Ut],decls:1,vars:0,template:function(r,o){1&r&&y(0,"router-outlet")},dependencies:[qp],encapsulation:2})}return e})();function Zp(e){const n=e.children&&e.children.map(Zp),t=n?{...e,children:n}:{...e};return!t.component&&!t.loadComponent&&(n||t.loadChildren)&&t.outlet&&t.outlet!==Z&&(t.component=II),t}function kn(e){return e.outlet||Z}function da(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 z3{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),Gp(this.futureState.root),this.activateChildRoutes(t,r,n)}deactivateChildRoutes(n,t,r){const o=yi(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=yi(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=yi(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=yi(t);n.children.forEach(i=>{this.activateRoutes(i,o[i.value.outlet],r),this.forwardEvent(new x3(i.value.snapshot))}),n.children.length&&this.forwardEvent(new N3(n.value.snapshot))}activateRoutes(n,t,r){const o=n.value,i=t?t.value:null;if(Gp(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),Gp(a.route.value),this.activateChildRoutes(n,null,s.children)}else{const a=da(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 MI{constructor(n){this.path=n,this.route=this.path[this.path.length-1]}}class Zc{constructor(n,t){this.component=n,this.route=t}}function q3(e,n,t){const r=e._root;return fa(r,n?n._root:null,t,[r.value])}function _i(e,n){const t=Symbol(),r=n.get(e,t);return r===t?"function"!=typeof e||function t0(e){return null!==xa(e)}(e)?n.get(e):e:r}function fa(e,n,t,r,o={canDeactivateChecks:[],canActivateChecks:[]}){const i=yi(n);return e.children.forEach(s=>{(function Z3(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 Q3(e,n,t){if("function"==typeof t)return t(e,n);switch(t){case"pathParamsChange":return!Qr(e.url,n.url);case"pathParamsOrQueryParamsChange":return!Qr(e.url,n.url)||!Rn(e.queryParams,n.queryParams);case"always":return!0;case"paramsOrQueryParamsChange":return!zp(e,n)||!Rn(e.queryParams,n.queryParams);default:return!zp(e,n)}}(s,i,i.routeConfig.runGuardsAndResolvers);l?o.canActivateChecks.push(new MI(r)):(i.data=s.data,i._resolvedData=s._resolvedData),fa(e,n,i.component?a?a.children:null:t,r,o),l&&a&&a.outlet&&a.outlet.isActivated&&o.canDeactivateChecks.push(new Zc(a.outlet.component,s))}else s&&ha(n,a,o),o.canActivateChecks.push(new MI(r)),fa(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])=>ha(a,t.getContext(s),o)),o}function ha(e,n,t){const r=yi(e),o=e.value;Object.entries(r).forEach(([i,s])=>{ha(s,o.component?n?n.children.getContext(i):null:n,t)}),t.canDeactivateChecks.push(new Zc(o.component&&n&&n.outlet&&n.outlet.isActivated?n.outlet.component:null,o))}function pa(e){return"function"==typeof e}function SI(e){return e instanceof Pc||"EmptyError"===e?.name}const Qc=Symbol("INITIAL_VALUE");function Ci(){return fn(e=>Cp(e.map(n=>n.pipe(ci(1),function pj(...e){const n=kc(e);return nt((t,r)=>{(n?Dp(e,t,n):Dp(e,t)).subscribe(r)})}(Qc)))).pipe(ne(n=>{for(const t of n)if(!0!==t){if(t===Qc)return Qc;if(!1===t||t instanceof hi)return t}return!0}),hn(n=>n!==Qc),ci(1)))}function TI(e){return function z1(...e){return Zg(e)}(_t(n=>{if(gi(n))throw wI(0,n)}),ne(n=>!0===n))}class Qp{constructor(n){this.segmentGroup=n||null}}class Yp extends Error{constructor(n){super(),this.urlTree=n}}function Di(e){return Fc(new Qp(e))}class pU{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 H(r);if(o.numberOfChildren>1||!o.children[Z])return Fc(new I(4e3,!1));o=o.children[Z]}}applyRedirectCommands(n,t,r){const o=this.applyRedirectCreateUrlTree(t,this.urlSerializer.parse(t),n,r);if(t.startsWith("/"))throw new Yp(o);return o}applyRedirectCreateUrlTree(n,t,r,o){const i=this.createSegmentGroup(n,t.root,r,o);return new hi(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 me(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 I(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 Xp={matched:!1,consumedSegments:[],remainingSegments:[],parameters:{},positionalParamSegments:{}};function gU(e,n,t,r,o){const i=Jp(e,n,t);return i.matched?(r=function j3(e,n){return e.providers&&!e._injector&&(e._injector=$l(e.providers,n,`Route: ${e.path}`)),e._injector??n}(n,r),function dU(e,n,t,r){const o=n.canMatch;return o&&0!==o.length?H(o.map(s=>{const a=_i(s,e);return Cr(function tU(e){return e&&pa(e.canMatch)}(a)?a.canMatch(n,t):mn(e,()=>a(n,t)))})).pipe(Ci(),TI()):H(!0)}(r,n,t).pipe(ne(s=>!0===s?i:{...Xp}))):H(i)}function Jp(e,n,t){if("**"===n.path)return function mU(e){return{matched:!0,parameters:e.length>0?ZE(e).parameters:{},consumedSegments:e,remainingSegments:[],positionalParamSegments:{}}}(t);if(""===n.path)return"full"===n.pathMatch&&(e.hasChildren()||t.length>0)?{...Xp}:{matched:!0,consumedSegments:[],remainingSegments:t,parameters:{},positionalParamSegments:{}};const o=(n.matcher||Yj)(t,e,n);if(!o)return{...Xp};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 AI(e,n,t,r){return t.length>0&&function _U(e,n,t){return t.some(r=>Yc(e,n,r)&&kn(r)!==Z)}(e,t,r)?{segmentGroup:new me(n,yU(r,new me(t,e.children))),slicedSegments:[]}:0===t.length&&function CU(e,n,t){return t.some(r=>Yc(e,n,r))}(e,t,r)?{segmentGroup:new me(e.segments,vU(e,t,r,e.children)),slicedSegments:t}:{segmentGroup:new me(e.segments,e.children),slicedSegments:t}}function vU(e,n,t,r){const o={};for(const i of t)if(Yc(e,n,i)&&!r[kn(i)]){const s=new me([],{});o[kn(i)]=s}return{...r,...o}}function yU(e,n){const t={};t[Z]=n;for(const r of e)if(""===r.path&&kn(r)!==Z){const o=new me([],{});t[kn(r)]=o}return t}function Yc(e,n,t){return(!(e.hasChildren()||n.length>0)||"full"!==t.pathMatch)&&""===t.path}class bU{}class MU{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 pU(this.urlSerializer,this.urlTree),this.absoluteRedirectCount=0,this.allowRedirects=!0}noMatchError(n){return new I(4002,`'${n.segmentGroup}'`)}recognize(){const n=AI(this.urlTree.root,[],[],this.config).segmentGroup;return this.match(n).pipe(ne(t=>{const r=new Hp([],Object.freeze({}),Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,{},Z,this.rootComponentType,null,{}),o=new pn(r,t),i=new vI("",o),s=function m3(e,n,t=null,r=null){return sI(iI(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,Z).pipe(di(r=>{if(r instanceof Yp)return this.urlTree=r.urlTree,this.match(r.urlTree.root);throw r instanceof Qp?this.noMatchError(r):r}))}inheritParamsAndData(n,t){const r=n.value,o=Bp(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(ne(i=>i instanceof pn?[i]:[]))}processChildren(n,t,r){const o=[];for(const i of Object.keys(r.children))"primary"===i?o.unshift(i):o.push(i);return Ke(o).pipe(ui(i=>{const s=r.children[i],a=function $3(e,n){const t=e.filter(r=>kn(r)===n);return t.push(...e.filter(r=>kn(r)!==n)),t}(t,i);return this.processSegmentGroup(n,a,s,i)}),function vj(e,n){return nt(function mj(e,n,t,r,o){return(i,s)=>{let a=t,l=n,c=0;i.subscribe(qe(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)),Lc(null),function yj(e,n){const t=arguments.length>=2;return r=>r.pipe(e?hn((o,i)=>e(o,i,r)):Nr,bp(1),t?Lc(n):RE(()=>new Pc))}(),ot(i=>{if(null===i)return Di(r);const s=NI(i);return function SU(e){e.sort((n,t)=>n.value.outlet===Z?-1:t.value.outlet===Z?1:n.value.outlet.localeCompare(t.value.outlet))}(s),H(s)}))}processSegment(n,t,r,o,i,s){return Ke(t).pipe(ui(a=>this.processSegmentAgainstRoute(a._injector??n,t,a,r,o,i,s).pipe(di(l=>{if(l instanceof Qp)return H(null);throw l}))),Zr(a=>!!a),di(a=>{if(SI(a))return function wU(e,n,t){return 0===n.length&&!e.children[t]}(r,o,i)?H(new bU):Di(r);throw a}))}processSegmentAgainstRoute(n,t,r,o,i,s,a){return function DU(e,n,t,r){return!!(kn(e)===r||r!==Z&&Yc(n,t,e))&&Jp(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):Di(o):Di(o)}expandSegmentAgainstRouteUsingRedirect(n,t,r,o,i,s){const{matched:a,consumedSegments:l,positionalParamSegments:c,remainingSegments:u}=Jp(t,o,i);if(!a)return Di(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(ot(g=>this.processSegment(n,r,t,g.concat(u),s,!1)))}matchSegmentAgainstRoute(n,t,r,o,i){const s=gU(t,r,o,n);return"**"===r.path&&(t.children={}),s.pipe(fn(a=>a.matched?this.getChildConfig(n=r._injector??n,r,o).pipe(fn(({routes:l})=>{const c=r._loadedInjector??n,{consumedSegments:u,remainingSegments:d,parameters:g}=a,m=new Hp(u,g,Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,function AU(e){return e.data||{}}(r),kn(r),r.component??r._loadedComponent??null,r,function NU(e){return e.resolve||{}}(r)),{segmentGroup:v,slicedSegments:_}=AI(t,u,d,l);if(0===_.length&&v.hasChildren())return this.processChildren(c,l,v).pipe(ne(w=>null===w?null:new pn(m,w)));if(0===l.length&&0===_.length)return H(new pn(m,[]));const D=kn(r)===i;return this.processSegment(c,l,v,_,D?Z:i,!0).pipe(ne(w=>new pn(m,w instanceof pn?[w]:[])))})):Di(t)))}getChildConfig(n,t,r){return t.children?H({routes:t.children,injector:n}):t.loadChildren?void 0!==t._loadedRoutes?H({routes:t._loadedRoutes,injector:t._loadedInjector}):function uU(e,n,t,r){const o=n.canLoad;return void 0===o||0===o.length?H(!0):H(o.map(s=>{const a=_i(s,e);return Cr(function X3(e){return e&&pa(e.canLoad)}(a)?a.canLoad(n,t):mn(e,()=>a(n,t)))})).pipe(Ci(),TI())}(n,t,r).pipe(ot(o=>o?this.configLoader.loadChildren(n,t).pipe(_t(i=>{t._loadedRoutes=i.routes,t._loadedInjector=i.injector})):function hU(e){return Fc(bI(!1,Ht.GuardRejected))}())):H({routes:[],injector:n})}}function TU(e){const n=e.value.routeConfig;return n&&""===n.path}function NI(e){const n=[],t=new Set;for(const r of e){if(!TU(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=NI(r.children);n.push(new pn(r.value,o))}return n.filter(r=>!t.has(r))}function RI(e){const n=e.children.map(t=>RI(t)).flat();return[e,...n]}function Kp(e){return fn(n=>{const t=e(n);return t?Ke(t).pipe(ne(()=>n)):H(n)})}let xI=(()=>{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===Z);return r}getResolvedTitleForRoute(t){return t.data[ra]}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=x({token:e,factory:()=>M(FU),providedIn:"root"})}return e})(),FU=(()=>{class e extends xI{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)(k(zj))};static#t=this.\u0275prov=x({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();const wi=new R("",{providedIn:"root",factory:()=>({})}),bi=new R("");let eg=(()=>{class e{constructor(){this.componentLoaders=new WeakMap,this.childrenLoaders=new WeakMap,this.compiler=M(Gw)}loadComponent(t){if(this.componentLoaders.get(t))return this.componentLoaders.get(t);if(t._loadedComponent)return H(t._loadedComponent);this.onLoadStartListener&&this.onLoadStartListener(t);const r=Cr(t.loadComponent()).pipe(ne(OI),_t(i=>{this.onLoadEndListener&&this.onLoadEndListener(t),t._loadedComponent=i}),ea(()=>{this.componentLoaders.delete(t)})),o=new NE(r,()=>new $t).pipe(wp());return this.componentLoaders.set(t,o),o}loadChildren(t,r){if(this.childrenLoaders.get(r))return this.childrenLoaders.get(r);if(r._loadedRoutes)return H({routes:r._loadedRoutes,injector:r._loadedInjector});this.onLoadStartListener&&this.onLoadStartListener(r);const i=function LU(e,n,t,r){return Cr(e.loadChildren()).pipe(ne(OI),ot(o=>o instanceof nC||Array.isArray(o)?H(o):Ke(n.compileModuleAsync(o))),ne(o=>{r&&r(e);let i,s,a=!1;return Array.isArray(o)?(s=o,!0):(i=o.create(t).injector,s=i.get(bi,[],{optional:!0,self:!0}).flat()),{routes:s.map(Zp),injector:i}}))}(r,this.compiler,t,this.onLoadEndListener).pipe(ea(()=>{this.childrenLoaders.delete(r)})),s=new NE(i,()=>new $t).pipe(wp());return this.childrenLoaders.set(r,s),s}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=x({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();function OI(e){return function VU(e){return e&&"object"==typeof e&&"default"in e}(e)?e.default:e}let tg=(()=>{class e{static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=x({token:e,factory:()=>M(jU),providedIn:"root"})}return e})(),jU=(()=>{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=x({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();const kI=new R(""),PI=new R("");function UU(e,n,t){const r=e.get(PI),o=e.get(Nt);return e.get(de).runOutsideAngular(()=>{if(!o.startViewTransition||r.skipNextTransition)return r.skipNextTransition=!1,new Promise(c=>setTimeout(c));let i;const s=new Promise(c=>{i=c}),a=o.startViewTransition(()=>(i(),function BU(e){return new Promise(n=>{Bf(n,{injector:e})})}(e))),{onViewTransitionCreated:l}=r;return l&&mn(e,()=>l({transition:a,from:n,to:t})),s})}let Xc=(()=>{class e{get hasRequestedNavigation(){return 0!==this.navigationId}constructor(){this.currentNavigation=null,this.currentTransition=null,this.lastSuccessfulNavigation=null,this.events=new $t,this.transitionAbortSubject=new $t,this.configLoader=M(eg),this.environmentInjector=M(ft),this.urlSerializer=M(pi),this.rootContexts=M(ca),this.location=M(Qs),this.inputBindingEnabled=null!==M(Wc,{optional:!0}),this.titleStrategy=M(xI),this.options=M(wi,{optional:!0})||{},this.paramsInheritanceStrategy=this.options.paramsInheritanceStrategy||"emptyOnly",this.urlHandlingStrategy=M(tg),this.createViewTransition=M(kI,{optional:!0}),this.navigationId=0,this.afterPreactivation=()=>H(void 0),this.rootComponentType=null,this.configLoader.onLoadEndListener=o=>this.events.next(new T3(o)),this.configLoader.onLoadStartListener=o=>this.events.next(new S3(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 Gt({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:la,restoredState:null,currentSnapshot:o.snapshot,targetSnapshot:null,currentRouterState:o,targetRouterState:null,guards:{canActivateChecks:[],canDeactivateChecks:[]},guardsResult:null}),this.transitions.pipe(hn(i=>0!==i.id),ne(i=>({...i,extractedUrl:this.urlHandlingStrategy.extract(i.rawUrl)})),fn(i=>{let s=!1,a=!1;return H(i).pipe(fn(l=>{if(this.navigationId>i.id)return this.cancelNavigationTransition(i,"",Ht.SupersededByNewNavigation),Nn;this.currentTransition=i,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};const c=!t.navigated||this.isUpdatingInternalState()||this.isUpdatedBrowserUrl();if(!c&&"reload"!==(l.extras.onSameUrlNavigation??t.onSameUrlNavigation)){const d="";return this.events.next(new vi(l.id,this.urlSerializer.serialize(l.rawUrl),d,zc.IgnoredSameUrlNavigation)),l.resolve(null),Nn}if(this.urlHandlingStrategy.shouldProcessUrl(l.rawUrl))return H(l).pipe(fn(d=>{const g=this.transitions?.getValue();return this.events.next(new Gc(d.id,this.urlSerializer.serialize(d.extractedUrl),d.source,d.restoredState)),g!==this.transitions?.getValue()?Nn:Promise.resolve(d)}),function RU(e,n,t,r,o,i){return ot(s=>function EU(e,n,t,r,o,i,s="emptyOnly"){return new MU(e,n,t,r,o,s,i).recognize()}(e,n,t,r,s.extractedUrl,o,i).pipe(ne(({state:a,tree:l})=>({...s,targetSnapshot:a,urlAfterRedirects:l}))))}(this.environmentInjector,this.configLoader,this.rootComponentType,t.config,this.urlSerializer,this.paramsInheritanceStrategy),_t(d=>{i.targetSnapshot=d.targetSnapshot,i.urlAfterRedirects=d.urlAfterRedirects,this.currentNavigation={...this.currentNavigation,finalUrl:d.urlAfterRedirects};const g=new fI(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 Gc(d,this.urlSerializer.serialize(g),m,v);this.events.next(D);const w=mI(this.rootComponentType).snapshot;return this.currentTransition=i={...l,targetSnapshot:w,urlAfterRedirects:g,extras:{..._,skipLocationChange:!1,replaceUrl:!1}},this.currentNavigation.finalUrl=g,H(i)}{const d="";return this.events.next(new vi(l.id,this.urlSerializer.serialize(l.extractedUrl),d,zc.IgnoredByUrlHandlingStrategy)),l.resolve(null),Nn}}),_t(l=>{const c=new b3(l.id,this.urlSerializer.serialize(l.extractedUrl),this.urlSerializer.serialize(l.urlAfterRedirects),l.targetSnapshot);this.events.next(c)}),ne(l=>(this.currentTransition=i={...l,guards:q3(l.targetSnapshot,l.currentSnapshot,this.rootContexts)},i)),function nU(e,n){return ot(t=>{const{targetSnapshot:r,currentSnapshot:o,guards:{canActivateChecks:i,canDeactivateChecks:s}}=t;return 0===s.length&&0===i.length?H({...t,guardsResult:!0}):function rU(e,n,t,r){return Ke(e).pipe(ot(o=>function cU(e,n,t,r,o){const i=n&&n.routeConfig?n.routeConfig.canDeactivate:null;return i&&0!==i.length?H(i.map(a=>{const l=da(n)??o,c=_i(a,l);return Cr(function eU(e){return e&&pa(e.canDeactivate)}(c)?c.canDeactivate(e,n,t,r):mn(l,()=>c(e,n,t,r))).pipe(Zr())})).pipe(Ci()):H(!0)}(o.component,o.route,t,n,r)),Zr(o=>!0!==o,!0))}(s,r,o,e).pipe(ot(a=>a&&function Y3(e){return"boolean"==typeof e}(a)?function oU(e,n,t,r){return Ke(n).pipe(ui(o=>Dp(function sU(e,n){return null!==e&&n&&n(new A3(e)),H(!0)}(o.route.parent,r),function iU(e,n){return null!==e&&n&&n(new R3(e)),H(!0)}(o.route,r),function lU(e,n,t){const r=n[n.length-1],i=n.slice(0,n.length-1).reverse().map(s=>function W3(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=>AE(()=>H(s.guards.map(l=>{const c=da(s.node)??t,u=_i(l,c);return Cr(function K3(e){return e&&pa(e.canActivateChild)}(u)?u.canActivateChild(r,e):mn(c,()=>u(r,e))).pipe(Zr())})).pipe(Ci())));return H(i).pipe(Ci())}(e,o.path,t),function aU(e,n,t){const r=n.routeConfig?n.routeConfig.canActivate:null;if(!r||0===r.length)return H(!0);const o=r.map(i=>AE(()=>{const s=da(n)??t,a=_i(i,s);return Cr(function J3(e){return e&&pa(e.canActivate)}(a)?a.canActivate(n,e):mn(s,()=>a(n,e))).pipe(Zr())}));return H(o).pipe(Ci())}(e,o.route,t))),Zr(o=>!0!==o,!0))}(r,i,e,n):H(a)),ne(a=>({...t,guardsResult:a})))})}(this.environmentInjector,l=>this.events.next(l)),_t(l=>{if(i.guardsResult=l.guardsResult,gi(l.guardsResult))throw wI(0,l.guardsResult);const c=new E3(l.id,this.urlSerializer.serialize(l.extractedUrl),this.urlSerializer.serialize(l.urlAfterRedirects),l.targetSnapshot,!!l.guardsResult);this.events.next(c)}),hn(l=>!!l.guardsResult||(this.cancelNavigationTransition(l,"",Ht.GuardRejected),!1)),Kp(l=>{if(l.guards.canActivateChecks.length)return H(l).pipe(_t(c=>{const u=new I3(c.id,this.urlSerializer.serialize(c.extractedUrl),this.urlSerializer.serialize(c.urlAfterRedirects),c.targetSnapshot);this.events.next(u)}),fn(c=>{let u=!1;return H(c).pipe(function xU(e,n){return ot(t=>{const{targetSnapshot:r,guards:{canActivateChecks:o}}=t;if(!o.length)return H(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 RI(l))s.add(c);let a=0;return Ke(s).pipe(ui(l=>i.has(l)?function OU(e,n,t,r){const o=e.routeConfig,i=e._resolve;return void 0!==o?.title&&!_I(o)&&(i[ra]=o.title),function kU(e,n,t,r){const o=Rp(e);if(0===o.length)return H({});const i={};return Ke(o).pipe(ot(s=>function PU(e,n,t,r){const o=da(n)??r,i=_i(e,o);return Cr(i.resolve?i.resolve(n,t):mn(o,()=>i(n,t)))}(e[s],n,t,r).pipe(Zr(),_t(a=>{i[s]=a}))),bp(1),function _j(e){return ne(()=>e)}(i),di(s=>SI(s)?Nn:Fc(s)))}(i,e,n,r).pipe(ne(s=>(e._resolvedData=s,e.data=Bp(e,e.parent,t).resolve,null)))}(l,r,e,n):(l.data=Bp(l,l.parent,e).resolve,H(void 0))),_t(()=>a++),bp(1),ot(l=>a===s.size?H(t):Nn))})}(this.paramsInheritanceStrategy,this.environmentInjector),_t({next:()=>u=!0,complete:()=>{u||this.cancelNavigationTransition(c,"",Ht.NoDataFromResolver)}}))}),_t(c=>{const u=new M3(c.id,this.urlSerializer.serialize(c.extractedUrl),this.urlSerializer.serialize(c.urlAfterRedirects),c.targetSnapshot);this.events.next(u)}))}),Kp(l=>{const c=u=>{const d=[];u.routeConfig?.loadComponent&&!u.routeConfig._loadedComponent&&d.push(this.configLoader.loadComponent(u.routeConfig).pipe(_t(g=>{u.component=g}),ne(()=>{})));for(const g of u.children)d.push(...c(g));return d};return Cp(c(l.targetSnapshot.root)).pipe(Lc(null),ci(1))}),Kp(()=>this.afterPreactivation()),fn(()=>{const{currentSnapshot:l,targetSnapshot:c}=i,u=this.createViewTransition?.(this.environmentInjector,l.root,c.root);return u?Ke(u).pipe(ne(()=>i)):H(i)}),ne(l=>{const c=function P3(e,n,t){const r=ua(e,n._root,t?t._root:void 0);return new gI(r,n)}(t.routeReuseStrategy,l.targetSnapshot,l.currentRouterState);return this.currentTransition=i={...l,targetRouterState:c},this.currentNavigation.targetRouterState=c,i}),_t(()=>{this.events.next(new Lp)}),((e,n,t,r)=>ne(o=>(new z3(n,o.targetRouterState,o.currentRouterState,t,r).activate(e),o)))(this.rootContexts,t.routeReuseStrategy,l=>this.events.next(l),this.inputBindingEnabled),ci(1),_t({next:l=>{s=!0,this.lastSuccessfulNavigation=this.currentNavigation,this.events.next(new On(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 Cj(e){return nt((n,t)=>{An(e).subscribe(qe(t,()=>t.complete(),Su)),!t.closed&&n.subscribe(t)})}(this.transitionAbortSubject.pipe(_t(l=>{throw l}))),ea(()=>{!s&&!a&&this.cancelNavigationTransition(i,"",Ht.SupersededByNewNavigation),this.currentTransition?.id===i.id&&(this.currentNavigation=null,this.currentTransition=null)}),di(l=>{if(a=!0,EI(l))this.events.next(new mi(i.id,this.urlSerializer.serialize(i.extractedUrl),l.message,l.cancellationCode)),function V3(e){return EI(e)&&gi(e.url)}(l)?this.events.next(new Vp(l.url)):i.resolve(!1);else{this.events.next(new qc(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 Nn}))}))}cancelNavigationTransition(t,r,o){const i=new mi(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=x({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();function HU(e){return e!==la}let $U=(()=>{class e{static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=x({token:e,factory:()=>M(zU),providedIn:"root"})}return e})();class GU{shouldDetach(n){return!1}store(n,t){}shouldAttach(n){return!1}retrieve(n){return null}shouldReuseRoute(n,t){return n.routeConfig===t.routeConfig}}let zU=(()=>{class e extends GU{static#e=this.\u0275fac=(()=>{let t;return function(o){return(t||(t=et(e)))(o||e)}})();static#t=this.\u0275prov=x({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})(),FI=(()=>{class e{static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=x({token:e,factory:()=>M(qU),providedIn:"root"})}return e})(),qU=(()=>{class e extends FI{constructor(){super(...arguments),this.location=M(Qs),this.urlSerializer=M(pi),this.options=M(wi,{optional:!0})||{},this.canceledNavigationResolution=this.options.canceledNavigationResolution||"replace",this.urlHandlingStrategy=M(tg),this.urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred",this.currentUrlTree=new hi,this.rawUrlTree=this.currentUrlTree,this.currentPageId=0,this.lastSuccessfulId=-1,this.routerState=mI(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 Gc)this.stateMemento=this.createStateMemento();else if(t instanceof vi)this.rawUrlTree=r.initialUrl;else if(t instanceof fI){if("eager"===this.urlUpdateStrategy&&!r.extras.skipLocationChange){const o=this.urlHandlingStrategy.merge(r.finalUrl,r.initialUrl);this.setBrowserUrl(o,r)}}else t instanceof Lp?(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 mi&&(t.code===Ht.GuardRejected||t.code===Ht.NoDataFromResolver)?this.restoreHistory(r):t instanceof qc?this.restoreHistory(r,!0):t instanceof On&&(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=et(e)))(o||e)}})();static#t=this.\u0275prov=x({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();var ga=function(e){return e[e.COMPLETE=0]="COMPLETE",e[e.FAILED=1]="FAILED",e[e.REDIRECTING=2]="REDIRECTING",e}(ga||{});function LI(e,n){e.events.pipe(hn(t=>t instanceof On||t instanceof mi||t instanceof qc||t instanceof vi),ne(t=>t instanceof On||t instanceof vi?ga.COMPLETE:t instanceof mi&&(t.code===Ht.Redirect||t.code===Ht.SupersededByNewNavigation)?ga.REDIRECTING:ga.FAILED),hn(t=>t!==ga.REDIRECTING),ci(1)).subscribe(()=>{n()})}function WU(e){throw e}const ZU={paths:"exact",fragment:"ignored",matrixParams:"ignored",queryParams:"exact"},QU={paths:"subset",fragment:"ignored",matrixParams:"ignored",queryParams:"subset"};let Qt=(()=>{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=M(kw),this.stateManager=M(FI),this.options=M(wi,{optional:!0})||{},this.pendingTasks=M(hr),this.urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred",this.navigationTransitions=M(Xc),this.urlSerializer=M(pi),this.location=M(Qs),this.urlHandlingStrategy=M(tg),this._events=new $t,this.errorHandler=this.options.errorHandler||WU,this.navigated=!1,this.routeReuseStrategy=M($U),this.onSameUrlNavigation=this.options.onSameUrlNavigation||"ignore",this.config=M(bi,{optional:!0})?.flat()??[],this.componentInputBindingEnabled=!!M(Wc,{optional:!0}),this.eventsSubscription=new Dt,this.isNgZoneEnabled=M(de)instanceof de&&de.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 mi&&r.code!==Ht.Redirect&&r.code!==Ht.SupersededByNewNavigation)this.navigated=!0;else if(r instanceof On)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||HU(o.source)};this.scheduleNavigation(s,la,null,a,{resolve:o.resolve,reject:o.reject,promise:o.promise})}(function XU(e){return!(e instanceof Lp||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),la,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(Zp),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=iI(o?o.snapshot:this.routerState.snapshot.root)}catch{("string"!=typeof t[0]||!t[0].startsWith("/"))&&(t=[]),d=this.currentUrlTree.root}return sI(d,t,u,c??null)}navigateByUrl(t,r={skipLocationChange:!1}){const o=gi(t)?t:this.parseUrl(t),i=this.urlHandlingStrategy.merge(o,this.rawUrlTree);return this.scheduleNavigation(i,la,null,r)}navigate(t,r={skipLocationChange:!1}){return function YU(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 LI(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=x({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})(),Pn=(()=>{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 $t,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 On&&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 hy(e,n,t){return function lA(e,n){return"src"===n&&("embed"===e||"frame"===e||"iframe"===e||"media"===e||"script"===e)||"href"===n&&("base"===e||"link"===e)?fy:xo}(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)(T(Qt),T(Yr),function Ki(e){return function US(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 Re,this.routerEventsSubscription=t.events.subscribe(a=>{a instanceof On&&this.update()})}ngAfterContentInit(){H(this.links.changes,H(null)).pipe(Ks()).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=Ke(t).pipe(Ks()).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.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._isActive!==t&&(this._isActive=t,this.cdr.markForCheck(),this.isActiveChange.emit(t))})}isLinkActive(t){const r=function JU(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)(T(Qt),T(Lt),T(Wn),T(qs),T(Pn,8))};static#t=this.\u0275dir=$({type:e,selectors:[["","routerLinkActive",""]],contentQueries:function(r,o,i){if(1&r&&function GD(e,n,t,r){P_(e,n,t,r)}(i,Pn,5),2&r){let s;(function zD(e){const n=E(),t=te(),r=bd();Ka(r+1);const o=Jf(t,r);if(e.dirty&&function uS(e){return!(4&~e[P])}(n)===!(2&~o.metadata.flags)){if(null===o.matches)e.reset([]);else{const i=L_(n,r);e.reset(i,Iv),e.notifyOnChanges()}return!0}return!1})(s=qD())&&(o.links=s)}},inputs:{routerLinkActiveOptions:"routerLinkActiveOptions",ariaCurrentWhenActive:"ariaCurrentWhenActive",routerLinkActive:"routerLinkActive"},outputs:{isActiveChange:"isActiveChange"},exportAs:["routerLinkActive"],standalone:!0,features:[zt]})}return e})();class jI{}let KU=(()=>{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(hn(t=>t instanceof On),ui(()=>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=$l(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 Ke(o).pipe(Ks())}preloadConfig(t,r){return this.preloadingStrategy.preload(r,()=>{let o;o=r.loadChildren&&void 0===r.canLoad?this.loader.loadChildren(t,r):H(null);const i=o.pipe(ot(s=>null===s?H(void 0):(r._loadedRoutes=s.routes,r._loadedInjector=s.injector,this.processRoutes(s.injector??t,s.routes))));return r.loadComponent&&!r._loadedComponent?Ke([i,this.loader.loadComponent(r)]).pipe(Ks()):i})}static#e=this.\u0275fac=function(r){return new(r||e)(k(Qt),k(Gw),k(ft),k(jI),k(eg))};static#t=this.\u0275prov=x({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();const ng=new R("");let UI=(()=>{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={},this.environmentInjector=M(ft),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 Gc?(this.store[this.lastId]=this.viewportScroller.getScrollPosition(),this.lastSource=t.navigationTrigger,this.restoredId=t.restoredState?t.restoredState.navigationId:0):t instanceof On?(this.lastId=t.id,this.scheduleScrollEvent(t,this.urlSerializer.parse(t.urlAfterRedirects).fragment)):t instanceof vi&&t.code===zc.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 hI&&(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){var o=this;this.zone.runOutsideAngular(ro(function*(){yield new Promise(i=>{setTimeout(()=>{i()}),Bf(()=>{i()},{injector:o.environmentInjector})}),o.zone.run(()=>{o.transitions.events.next(new hI(t,"popstate"===o.lastSource?o.store[o.restoredId]:null,r))})}))}ngOnDestroy(){this.routerEventsSubscription?.unsubscribe(),this.scrollEventsSubscription?.unsubscribe()}static#e=this.\u0275fac=function(r){!function Ly(){throw new Error("invalid")}()};static#t=this.\u0275prov=x({token:e,factory:e.\u0275fac})}return e})();function Fn(e,n){return{\u0275kind:e,\u0275providers:n}}function HI(){const e=M(gt);return n=>{const t=e.get(mr);if(n!==t.components[0])return;const r=e.get(Qt),o=e.get($I);1===e.get(rg)&&r.initialNavigation(),e.get(GI,null,ee.Optional)?.setUpPreloading(),e.get(ng,null,ee.Optional)?.init(),r.resetRootComponentType(t.componentTypes[0]),o.closed||(o.next(),o.complete(),o.unsubscribe())}}const $I=new R("",{factory:()=>new $t}),rg=new R("",{providedIn:"root",factory:()=>1}),GI=new R("");function rB(e){return Fn(0,[{provide:GI,useExisting:KU},{provide:jI,useExisting:e}])}function iB(e){return Fn(9,[{provide:kI,useValue:UU},{provide:PI,useValue:{skipNextTransition:!!e?.skipInitialTransition,...e}}])}const zI=new R("ROUTER_FORROOT_GUARD"),sB=[Qs,{provide:pi,useClass:xp},Qt,ca,{provide:Yr,useFactory:function BI(e){return e.routerState.root},deps:[Qt]},eg,[]];let qI=(()=>{class e{constructor(t){}static forRoot(t,r){return{ngModule:e,providers:[sB,[],{provide:bi,multi:!0,useValue:t},{provide:zI,useFactory:uB,deps:[[Qt,new La,new Va]]},{provide:wi,useValue:r||{}},r?.useHash?{provide:Wr,useClass:E2}:{provide:Wr,useClass:Ob},{provide:ng,useFactory:()=>{const e=M(GL),n=M(de),t=M(wi),r=M(Xc),o=M(pi);return t.scrollOffset&&e.setOffset(t.scrollOffset),new UI(o,r,e,n,t)}},r?.preloadingStrategy?rB(r.preloadingStrategy).\u0275providers:[],r?.initialNavigation?dB(r):[],r?.bindToComponentInputs?Fn(8,[CI,{provide:Wc,useExisting:CI}]).\u0275providers:[],r?.enableViewTransitions?iB().\u0275providers:[],[{provide:WI,useFactory:HI},{provide:jh,multi:!0,useExisting:WI}]]}}static forChild(t){return{ngModule:e,providers:[{provide:bi,multi:!0,useValue:t}]}}static#e=this.\u0275fac=function(r){return new(r||e)(k(zI,8))};static#t=this.\u0275mod=or({type:e});static#n=this.\u0275inj=jn({})}return e})();function uB(e){return"guarded"}function dB(e){return["disabled"===e.initialNavigation?Fn(3,[{provide:Lh,multi:!0,useFactory:()=>{const n=M(Qt);return()=>{n.setUpLocationChangeListener()}}},{provide:rg,useValue:2}]).\u0275providers:[],"enabledBlocking"===e.initialNavigation?Fn(2,[{provide:rg,useValue:0},{provide:Lh,multi:!0,deps:[gt],useFactory:n=>{const t=n.get(w2,Promise.resolve());return()=>t.then(()=>new Promise(r=>{const o=n.get(Qt),i=n.get($I);LI(o,()=>{r(!0)}),n.get(Xc).afterPreactivation=()=>(r(!0),i.closed?H(void 0):i),o.initialNavigation()}))}}]).\u0275providers:[]]}const WI=new R(""),hB=()=>["/pro"];let pB=(()=>{class e{constructor(){this.years=(new Date).getFullYear()-2009}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275cmp=kt({type:e,selectors:[["app-footer"]],standalone:!0,features:[Ut],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),Qn(" Fast forward ",o.years," years, I'm still maintaining "),C(6),S("routerLink",re(2,hB)))},dependencies:[Pn],styles:["footer[_ngcontent-%COMP%]{background-color:#464646}footer[_ngcontent-%COMP%], a[_ngcontent-%COMP%]{color:#fff}.portrait[_ngcontent-%COMP%]{max-height:300px}"]})}return e})();const ZI=()=>["/"],gB=e=>({show:e}),Ei=()=>["link-active"],QI=()=>({exact:!0}),mB=()=>["/features"],vB=()=>["/getstarted"],yB=()=>["/usage"],_B=()=>["/contact"],CB=()=>["/pro"];let DB=(()=>{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=kt({type:e,selectors:[["app-nav-menu"]],standalone:!0,features:[Ut],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),B("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),S("routerLink",re(17,ZI)),C(4),an("aria-expanded",o.isExpanded),C(2),S("ngClass",js(18,gB,o.isExpanded)),C(2),S("routerLinkActive",re(20,Ei))("routerLinkActiveOptions",re(21,QI)),C(),S("routerLink",re(22,ZI)),C(2),S("routerLinkActive",re(23,Ei))("routerLinkActiveOptions",re(24,QI)),C(),S("routerLink",re(25,mB)),C(2),S("routerLinkActive",re(26,Ei)),C(),S("routerLink",re(27,vB)),C(2),S("routerLinkActive",re(28,Ei)),C(),S("routerLink",re(29,yB)),C(2),S("routerLinkActive",re(30,Ei)),C(),S("routerLink",re(31,_B)),C(2),S("routerLinkActive",re(32,Ei)),C(),S("routerLink",re(33,CB)))},dependencies:[Pn,Nc,VI],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})(),wB=(()=>{class e{constructor(t,r,o){this.dom=t,this.router=r,this.activatedRoute=o}ngOnInit(){this.router.events.pipe(hn(t=>t instanceof On),ne(()=>this.activatedRoute),ne(t=>{for(;t.firstChild;)t=t.firstChild;return t}),hn(t=>"primary"===t.outlet),ot(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)(T(Nt),T(Qt),T(Yr))};static#t=this.\u0275cmp=kt({type:e,selectors:[["app-root"]],standalone:!0,features:[Ut],decls:3,vars:0,template:function(r,o){1&r&&y(0,"app-nav-menu")(1,"router-outlet")(2,"app-footer")},dependencies:[DB,qp,pB],encapsulation:2})}return e})(),YI=(()=>{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)(T(Wn),T(Lt))};static#t=this.\u0275dir=$({type:e})}return e})(),Xr=(()=>{class e extends YI{static#e=this.\u0275fac=(()=>{let t;return function(o){return(t||(t=et(e)))(o||e)}})();static#t=this.\u0275dir=$({type:e,features:[pe]})}return e})();const Ln=new R(""),IB={provide:Ln,useExisting:ye(()=>Ii),multi:!0},SB=new R("");let Ii=(()=>{class e extends YI{constructor(t,r,o){super(t,r),this._compositionMode=o,this._composing=!1,null==this._compositionMode&&(this._compositionMode=!function MB(){const e=yr()?yr().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)(T(Wn),T(Lt),T(SB,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&&B("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:[Ae([IB]),pe]})}return e})();function Dr(e){return null==e||("string"==typeof e||Array.isArray(e))&&0===e.length}const dt=new R(""),wr=new R(""),TB=/^(?=.{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 tM(e){return Dr(e.value)?{required:!0}:null}function rM(e){return Dr(e.value)||TB.test(e.value)?null:{email:!0}}function Jc(e){return null}function aM(e){return null!=e}function lM(e){return zs(e)?Ke(e):e}function cM(e){let n={};return e.forEach(t=>{n=null!=t?{...n,...t}:n}),0===Object.keys(n).length?null:n}function uM(e,n){return n.map(t=>t(e))}function dM(e){return e.map(n=>function AB(e){return!e.validate}(n)?n:t=>n.validate(t))}function og(e){return null!=e?function fM(e){if(!e)return null;const n=e.filter(aM);return 0==n.length?null:function(t){return cM(uM(t,n))}}(dM(e)):null}function ig(e){return null!=e?function hM(e){if(!e)return null;const n=e.filter(aM);return 0==n.length?null:function(t){return function bB(...e){const n=EE(e),{args:t,keys:r}=IE(e),o=new Be(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?SE(r,a):a),i.complete())}))}});return n?o.pipe(ME(n)):o}(uM(t,n).map(lM)).pipe(ne(cM))}}(dM(e)):null}function pM(e,n){return null===e?[n]:Array.isArray(e)?[...e,n]:[e,n]}function sg(e){return e?Array.isArray(e)?e:[e]:[]}function Kc(e,n){return Array.isArray(e)?e.includes(n):e===n}function vM(e,n){const t=sg(n);return sg(e).forEach(o=>{Kc(t,o)||t.push(o)}),t}function yM(e,n){return sg(n).filter(t=>!Kc(e,t))}class _M{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=og(this._rawValidators)}_setAsyncValidators(n){this._rawAsyncValidators=n||[],this._composedAsyncValidatorFn=ig(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 Ct extends _M{get formDirective(){return null}get path(){return null}}class br extends _M{constructor(){super(...arguments),this._parent=null,this.name=null,this.valueAccessor=null}}class CM{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 eu=(()=>{class e extends CM{constructor(t){super(t)}static#e=this.\u0275fac=function(r){return new(r||e)(T(br,2))};static#t=this.\u0275dir=$({type:e,selectors:[["","formControlName",""],["","ngModel",""],["","formControl",""]],hostVars:14,hostBindings:function(r,o){2&r&&Kl("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:[pe]})}return e})(),tu=(()=>{class e extends CM{constructor(t){super(t)}static#e=this.\u0275fac=function(r){return new(r||e)(T(Ct,10))};static#t=this.\u0275dir=$({type:e,selectors:[["","formGroupName",""],["","formArrayName",""],["","ngModelGroup",""],["","formGroup",""],["form",3,"ngNoForm",""],["","ngForm",""]],hostVars:16,hostBindings:function(r,o){2&r&&Kl("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:[pe]})}return e})();const ma="VALID",ru="INVALID",Mi="PENDING",va="DISABLED";function cg(e){return(ou(e)?e.validators:e)||null}function ug(e,n){return(ou(n)?n.asyncValidators:e)||null}function ou(e){return null!=e&&!Array.isArray(e)&&"object"==typeof e}class dg{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===ma}get invalid(){return this.status===ru}get pending(){return this.status==Mi}get disabled(){return this.status===va}get enabled(){return this.status!==va}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(vM(n,this._rawValidators))}addAsyncValidators(n){this.setAsyncValidators(vM(n,this._rawAsyncValidators))}removeValidators(n){this.setValidators(yM(n,this._rawValidators))}removeAsyncValidators(n){this.setAsyncValidators(yM(n,this._rawAsyncValidators))}hasValidator(n){return Kc(this._rawValidators,n)}hasAsyncValidator(n){return Kc(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=Mi,!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=va,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=ma,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===ma||this.status===Mi)&&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()?va:ma}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(n){if(this.asyncValidator){this.status=Mi,this._hasOwnPendingAsyncValidator=!0;const t=lM(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 Re,this.statusChanges=new Re}_calculateStatus(){return this._allControlsDisabled()?va:this.errors?ru:this._hasOwnPendingAsyncValidator||this._anyControlsHaveStatus(Mi)?Mi:this._anyControlsHaveStatus(ru)?ru:ma}_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){ou(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 OB(e){return Array.isArray(e)?og(e):e||null}(this._rawValidators)}_assignAsyncValidators(n){this._rawAsyncValidators=Array.isArray(n)?n.slice():n,this._composedAsyncValidatorFn=function kB(e){return Array.isArray(e)?ig(e):e||null}(this._rawAsyncValidators)}}class fg extends dg{constructor(n,t,r){super(cg(t),ug(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 bM(e,n,t){e._forEachChild((r,o)=>{if(void 0===t[o])throw new I(1002,"")})})(this,0,n),Object.keys(n).forEach(r=>{(function wM(e,n,t){const r=e.controls;if(!(n?Object.keys(r):r).length)throw new I(1e3,"");if(!r[t])throw new I(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 Si=new R("CallSetDisabledState",{providedIn:"root",factory:()=>iu}),iu="always";function ya(e,n,t=iu){hg(e,n),n.valueAccessor.writeValue(e.value),(e.disabled||"always"===t)&&n.valueAccessor.setDisabledState?.(e.disabled),function LB(e,n){n.valueAccessor.registerOnChange(t=>{e._pendingValue=t,e._pendingChange=!0,e._pendingDirty=!0,"change"===e.updateOn&&EM(e,n)})}(e,n),function jB(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 VB(e,n){n.valueAccessor.registerOnTouched(()=>{e._pendingTouched=!0,"blur"===e.updateOn&&e._pendingChange&&EM(e,n),"submit"!==e.updateOn&&e.markAsTouched()})}(e,n),function FB(e,n){if(n.valueAccessor.setDisabledState){const t=r=>{n.valueAccessor.setDisabledState(r)};e.registerOnDisabledChange(t),n._registerOnDestroy(()=>{e._unregisterOnDisabledChange(t)})}}(e,n)}function lu(e,n){e.forEach(t=>{t.registerOnValidatorChange&&t.registerOnValidatorChange(n)})}function hg(e,n){const t=function gM(e){return e._rawValidators}(e);null!==n.validator?e.setValidators(pM(t,n.validator)):"function"==typeof t&&e.setValidators([t]);const r=function mM(e){return e._rawAsyncValidators}(e);null!==n.asyncValidator?e.setAsyncValidators(pM(r,n.asyncValidator)):"function"==typeof r&&e.setAsyncValidators([r]);const o=()=>e.updateValueAndValidity();lu(n._rawValidators,o),lu(n._rawAsyncValidators,o)}function EM(e,n){e._pendingDirty&&e.markAsDirty(),e.setValue(e._pendingValue,{emitModelToViewChange:!1}),n.viewToModelUpdate(e._pendingValue),e._pendingChange=!1}const GB={provide:Ct,useExisting:ye(()=>Ti)},_a=Promise.resolve();let Ti=(()=>{class e extends Ct{constructor(t,r,o){super(),this.callSetDisabledState=o,this.submitted=!1,this._directives=new Set,this.ngSubmit=new Re,this.form=new fg({},og(t),ig(r))}ngAfterViewInit(){this._setUpdateStrategy()}get formDirective(){return this}get control(){return this.form}get path(){return[]}get controls(){return this.form.controls}addControl(t){_a.then(()=>{const r=this._findContainer(t.path);t.control=r.registerControl(t.name,t.control),ya(t.control,t,this.callSetDisabledState),t.control.updateValueAndValidity({emitEvent:!1}),this._directives.add(t)})}getControl(t){return this.form.get(t.path)}removeControl(t){_a.then(()=>{const r=this._findContainer(t.path);r&&r.removeControl(t.name),this._directives.delete(t)})}addFormGroup(t){_a.then(()=>{const r=this._findContainer(t.path),o=new fg({});(function IM(e,n){hg(e,n)})(o,t),r.registerControl(t.name,o),o.updateValueAndValidity({emitEvent:!1})})}removeFormGroup(t){_a.then(()=>{const r=this._findContainer(t.path);r&&r.removeControl(t.name)})}getFormGroup(t){return this.form.get(t.path)}updateModel(t,r){_a.then(()=>{this.form.get(t.path).setValue(r)})}setValue(t){this.control.setValue(t)}onSubmit(t){return this.submitted=!0,function MM(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)(T(dt,10),T(wr,10),T(Si,8))};static#t=this.\u0275dir=$({type:e,selectors:[["form",3,"ngNoForm","",3,"formGroup",""],["ng-form"],["","ngForm",""]],hostBindings:function(r,o){1&r&&B("submit",function(s){return o.onSubmit(s)})("reset",function(){return o.onReset()})},inputs:{options:[Me.None,"ngFormOptions","options"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],features:[Ae([GB]),pe]})}return e})();function SM(e,n){const t=e.indexOf(n);t>-1&&e.splice(t,1)}function TM(e){return"object"==typeof e&&null!==e&&2===Object.keys(e).length&&"value"in e&&"disabled"in e}const AM=class extends dg{constructor(n=null,t,r){super(cg(t),ug(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}),ou(t)&&(t.nonNullable||t.initialValueIsDefault)&&(this.defaultValue=TM(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){SM(this._onChange,n)}registerOnDisabledChange(n){this._onDisabledChange.push(n)}_unregisterOnDisabledChange(n){SM(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){TM(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}},WB={provide:br,useExisting:ye(()=>Ca)},xM=Promise.resolve();let Ca=(()=>{class e extends br{constructor(t,r,o,i,s,a){super(),this._changeDetectorRef=s,this.callSetDisabledState=a,this.control=new AM,this._registered=!1,this.name="",this.update=new Re,this._parent=t,this._setValidators(r),this._setAsyncValidators(o),this.valueAccessor=function mg(e,n){if(!n)return null;let t,r,o;return Array.isArray(n),n.forEach(i=>{i.constructor===Ii?t=i:function HB(e){return Object.getPrototypeOf(e.constructor)===Xr}(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 gg(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(){ya(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){xM.then(()=>{this.control.setValue(t,{emitViewToModelChange:!1}),this._changeDetectorRef?.markForCheck()})}_updateDisabled(t){const r=t.isDisabled.currentValue,o=0!==r&&ai(r);xM.then(()=>{o&&!this.control.disabled?this.control.disable():!o&&this.control.disabled&&this.control.enable(),this._changeDetectorRef?.markForCheck()})}_getPath(t){return this._parent?function su(e,n){return[...n.path,e]}(t,this._parent):[t]}static#e=this.\u0275fac=function(r){return new(r||e)(T(Ct,9),T(dt,10),T(wr,10),T(Ln,10),T(qs,8),T(Si,8))};static#t=this.\u0275dir=$({type:e,selectors:[["","ngModel","",3,"formControlName","",3,"formControl",""]],inputs:{name:"name",isDisabled:[Me.None,"disabled","isDisabled"],model:[Me.None,"ngModel","model"],options:[Me.None,"ngModelOptions","options"]},outputs:{update:"ngModelChange"},exportAs:["ngModel"],features:[Ae([WB]),pe,zt]})}return e})(),uu=(()=>{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 QB={provide:Ln,useExisting:ye(()=>vg),multi:!0};let YB=(()=>{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=x({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})(),vg=(()=>{class e extends Xr{constructor(t,r,o,i){super(t,r),this._registry=o,this._injector=i,this.setDisabledStateFired=!1,this.onChange=()=>{},this.callSetDisabledState=M(Si,{optional:!0})??iu}ngOnInit(){this._control=this._injector.get(br),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)(T(Wn),T(Lt),T(YB),T(gt))};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&&B("change",function(){return o.onChange()})("blur",function(){return o.onTouched()})},inputs:{name:"name",formControlName:"formControlName",value:"value"},features:[Ae([QB]),pe]})}return e})();const rH={provide:Ln,useExisting:ye(()=>du),multi:!0};function jM(e,n){return null==e?`${n}`:(n&&"object"==typeof n&&(n="Object"),`${e}: ${n}`.slice(0,50))}let du=(()=>{class e extends Xr{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=jM(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 oH(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=et(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&&B("change",function(s){return o.onChange(s.target.value)})("blur",function(){return o.onTouched()})},inputs:{compareWith:"compareWith"},features:[Ae([rH]),pe]})}return e})(),UM=(()=>{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(jM(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)(T(Lt),T(Wn),T(du,9))};static#t=this.\u0275dir=$({type:e,selectors:[["option"]],inputs:{ngValue:"ngValue",value:"value"}})}return e})();const iH={provide:Ln,useExisting:ye(()=>Dg),multi:!0};function BM(e,n){return null==e?`${n}`:("string"==typeof n&&(n=`'${n}'`),n&&"object"==typeof n&&(n="Object"),`${e}: ${n}`.slice(0,50))}let Dg=(()=>{class e extends Xr{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=et(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&&B("change",function(s){return o.onChange(s.target)})("blur",function(){return o.onTouched()})},inputs:{compareWith:"compareWith"},features:[Ae([iH]),pe]})}return e})(),HM=(()=>{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(BM(this.id,t)),this._select.writeValue(this._select.value))}set value(t){this._select?(this._value=t,this._setElementValue(BM(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)(T(Lt),T(Wn),T(Dg,9))};static#t=this.\u0275dir=$({type:e,selectors:[["option"]],inputs:{ngValue:"ngValue",value:"value"}})}return e})();let Jr=(()=>{class e{constructor(){this._validator=Jc}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):Jc,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:[zt]})}return e})();const cH={provide:dt,useExisting:ye(()=>Ai),multi:!0};let Ai=(()=>{class e extends Jr{constructor(){super(...arguments),this.inputName="required",this.normalizeInput=ai,this.createValidator=t=>tM}enabled(t){return t}static#e=this.\u0275fac=(()=>{let t;return function(o){return(t||(t=et(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&&an("required",o._enabled?"":null)},inputs:{required:"required"},features:[Ae([cH]),pe]})}return e})();const dH={provide:dt,useExisting:ye(()=>fu),multi:!0};let fu=(()=>{class e extends Jr{constructor(){super(...arguments),this.inputName="email",this.normalizeInput=ai,this.createValidator=t=>rM}enabled(t){return t}static#e=this.\u0275fac=(()=>{let t;return function(o){return(t||(t=et(e)))(o||e)}})();static#t=this.\u0275dir=$({type:e,selectors:[["","email","","formControlName",""],["","email","","formControl",""],["","email","","ngModel",""]],inputs:{email:"email"},features:[Ae([dH]),pe]})}return e})();const hH={provide:dt,useExisting:ye(()=>wg),multi:!0};let wg=(()=>{class e extends Jr{constructor(){super(...arguments),this.inputName="maxlength",this.normalizeInput=t=>function $M(e){return"number"==typeof e?e:parseInt(e,10)}(t),this.createValidator=t=>function iM(e){return n=>function JI(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=et(e)))(o||e)}})();static#t=this.\u0275dir=$({type:e,selectors:[["","maxlength","","formControlName",""],["","maxlength","","formControl",""],["","maxlength","","ngModel",""]],hostVars:1,hostBindings:function(r,o){2&r&&an("maxlength",o._enabled?o.maxlength:null)},inputs:{maxlength:"maxlength"},features:[Ae([hH]),pe]})}return e})();const pH={provide:dt,useExisting:ye(()=>bg),multi:!0};let bg=(()=>{class e extends Jr{constructor(){super(...arguments),this.inputName="pattern",this.normalizeInput=t=>t,this.createValidator=t=>function sM(e){if(!e)return Jc;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(Dr(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=et(e)))(o||e)}})();static#t=this.\u0275dir=$({type:e,selectors:[["","pattern","","formControlName",""],["","pattern","","formControl",""],["","pattern","","ngModel",""]],hostVars:1,hostBindings:function(r,o){2&r&&an("pattern",o._enabled?o.pattern:null)},inputs:{pattern:"pattern"},features:[Ae([pH]),pe]})}return e})(),gH=(()=>{class e{static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275mod=or({type:e});static#n=this.\u0275inj=jn({})}return e})(),hu=(()=>{class e{static withConfig(t){return{ngModule:e,providers:[{provide:Si,useValue:t.callSetDisabledState??iu}]}}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275mod=or({type:e});static#n=this.\u0275inj=jn({imports:[gH]})}return e})();class pu{}class gu{}class Yt{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 Yt?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 Yt;return t.lazyInit=this.lazyInit&&this.lazyInit instanceof Yt?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 vH{encodeKey(n){return QM(n)}encodeValue(n){return QM(n)}decodeKey(n){return decodeURIComponent(n)}decodeValue(n){return decodeURIComponent(n)}}const _H=/%(\d[a-f0-9])/gi,CH={40:"@","3A":":",24:"$","2C":",","3B":";","3D":"=","3F":"?","2F":"/"};function QM(e){return encodeURIComponent(e).replace(_H,(n,t)=>CH[t]??n)}function mu(e){return`${e}`}class Er{constructor(n={}){if(this.updates=null,this.cloneFrom=null,this.encoder=n.encoder||new vH,n.fromString){if(n.fromObject)throw new Error("Cannot specify both fromString and fromObject.");this.map=function yH(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(mu):[mu(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 Er({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(mu(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(mu(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 DH{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 YM(e){return typeof ArrayBuffer<"u"&&e instanceof ArrayBuffer}function XM(e){return typeof Blob<"u"&&e instanceof Blob}function JM(e){return typeof FormData<"u"&&e instanceof FormData}class Da{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 wH(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 Yt,this.context??=new DH,this.params){const s=this.params.toString();if(0===s.length)this.urlWithParams=t;else{const a=t.indexOf("?");this.urlWithParams=t+(-1===a?"?":ag.set(m,n.setHeaders[m]),c)),n.setParams&&(u=Object.keys(n.setParams).reduce((g,m)=>g.set(m,n.setParams[m]),u)),new Da(t,r,s,{params:u,headers:c,context:d,reportProgress:l,responseType:o,withCredentials:a,transferCache:i})}}var Ir=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}(Ir||{});class Eg{constructor(n,t=wa.Ok,r="OK"){this.headers=n.headers||new Yt,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 vu extends Eg{constructor(n={}){super(n),this.type=Ir.ResponseHeader}clone(n={}){return new vu({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 Kr extends Eg{constructor(n={}){super(n),this.type=Ir.Response,this.body=void 0!==n.body?n.body:null}clone(n={}){return new Kr({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 Ni extends Eg{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 wa=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}(wa||{});function Ig(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 Mg=(()=>{class e{constructor(t){this.handler=t}request(t,r,o={}){let i;if(t instanceof Da)i=t;else{let l,c;l=o.headers instanceof Yt?o.headers:new Yt(o.headers),o.params&&(c=o.params instanceof Er?o.params:new Er({fromObject:o.params})),i=new Da(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=H(i).pipe(ui(l=>this.handler.handle(l)));if(t instanceof Da||"events"===o.observe)return s;const a=s.pipe(hn(l=>l instanceof Kr));switch(o.observe||"body"){case"body":switch(i.responseType){case"arraybuffer":return a.pipe(ne(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(ne(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(ne(l=>{if(null!==l.body&&"string"!=typeof l.body)throw new Error("Response is not a string.");return l.body}));default:return a.pipe(ne(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 Er).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,Ig(o,r))}post(t,r,o={}){return this.request("POST",t,Ig(o,r))}put(t,r,o={}){return this.request("PUT",t,Ig(o,r))}static#e=this.\u0275fac=function(r){return new(r||e)(k(pu))};static#t=this.\u0275prov=x({token:e,factory:e.\u0275fac})}return e})();function e1(e,n){return n(e)}function TH(e,n){return(t,r)=>n.intercept(t,{handle:o=>e(o,r)})}const NH=new R(""),ba=new R(""),t1=new R(""),n1=new R("");function RH(){let e=null;return(n,t)=>{null===e&&(e=(M(NH,{optional:!0})??[]).reduceRight(TH,e1));const r=M(hr),o=r.add();return e(n,t).pipe(ea(()=>r.remove(o)))}}let r1=(()=>{class e extends pu{constructor(t,r){super(),this.backend=t,this.injector=r,this.chain=null,this.pendingTasks=M(hr);const o=M(n1,{optional:!0});this.backend=o??t}handle(t){if(null===this.chain){const o=Array.from(new Set([...this.injector.get(ba),...this.injector.get(t1,[])]));this.chain=o.reduceRight((i,s)=>function AH(e,n,t){return(r,o)=>mn(t,()=>n(r,i=>e(i,o)))}(i,s,this.injector),e1)}const r=this.pendingTasks.add();return this.chain(t,o=>this.backend.handle(o)).pipe(ea(()=>this.pendingTasks.remove(r)))}static#e=this.\u0275fac=function(r){return new(r||e)(k(gu),k(ft))};static#t=this.\u0275prov=x({token:e,factory:e.\u0275fac})}return e})();const FH=/^\)\]\}',?\n/;let i1=(()=>{class e{constructor(t){this.xhrFactory=t}handle(t){if("JSONP"===t.method)throw new I(-2800,!1);const r=this.xhrFactory;return(r.\u0275loadImpl?Ke(r.\u0275loadImpl()):H(null)).pipe(fn(()=>new Be(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 Yt(s.getAllResponseHeaders()),w=function LH(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 vu({headers:D,status:s.status,statusText:_,url:w}),l},u=()=>{let{headers:_,status:D,statusText:w,url:b}=c(),N=null;D!==wa.NoContent&&(N=typeof s.response>"u"?s.responseText:s.response),0===D&&(D=N?wa.Ok:0);let L=D>=200&&D<300;if("json"===t.responseType&&"string"==typeof N){const X=N;N=N.replace(FH,"");try{N=""!==N?JSON.parse(N):null}catch(ce){N=X,L&&(L=!1,N={error:ce,text:N})}}L?(i.next(new Kr({body:N,headers:_,status:D,statusText:w,url:b||void 0})),i.complete()):i.error(new Ni({error:N,headers:_,status:D,statusText:w,url:b||void 0}))},d=_=>{const{url:D}=c(),w=new Ni({error:_,status:s.status||0,statusText:s.statusText||"Unknown Error",url:D||void 0});i.error(w)};let g=!1;const m=_=>{g||(i.next(c()),g=!0);let D={type:Ir.DownloadProgress,loaded:_.loaded};_.lengthComputable&&(D.total=_.total),"text"===t.responseType&&s.responseText&&(D.partialText=s.responseText),i.next(D)},v=_=>{let D={type:Ir.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:Ir.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)(k(Jb))};static#t=this.\u0275prov=x({token:e,factory:e.\u0275fac})}return e})();const Ag=new R(""),s1=new R("",{providedIn:"root",factory:()=>"XSRF-TOKEN"}),a1=new R("",{providedIn:"root",factory:()=>"X-XSRF-TOKEN"});class l1{}let UH=(()=>{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=$b(t,this.cookieName),this.lastCookieString=t),this.lastToken}static#e=this.\u0275fac=function(r){return new(r||e)(k(Nt),k(lr),k(s1))};static#t=this.\u0275prov=x({token:e,factory:e.\u0275fac})}return e})();function BH(e,n){const t=e.url.toLowerCase();if(!M(Ag)||"GET"===e.method||"HEAD"===e.method||t.startsWith("http://")||t.startsWith("https://"))return n(e);const r=M(l1).getToken(),o=M(a1);return null!=r&&!e.headers.has(o)&&(e=e.clone({headers:e.headers.set(o,r)})),n(e)}var Mr=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}(Mr||{});const c1=new R("");class QH{constructor(){this.name="",this.email="",this.message=""}}let v1=(()=>{class e{constructor(t){this.httpClient=t}postContactForm(t){return this.httpClient.post(`${we_apiBaseUrl}contact`,t)}static#e=this.\u0275fac=function(r){return new(r||e)(k(Mg))};static#t=this.\u0275prov=x({token:e,factory:e.\u0275fac})}return e})();function YH(e,n){if(1&e){const t=xe();h(0,"form",5,0),B("ngSubmit",function(){return J(t),K(O().submit())}),h(2,"div",6)(3,"label",7),f(4,"Name "),h(5,"span",8),f(6,"*"),p()(),h(7,"input",9),Ue("ngModelChange",function(o){J(t);const i=O();return $e(i.contactViewModel.name,o)||(i.contactViewModel.name=o),K(o)}),p()(),h(8,"div",6)(9,"label",10),f(10,"Email address "),h(11,"span",8),f(12,"*"),p()(),h(13,"input",11),Ue("ngModelChange",function(o){J(t);const i=O();return $e(i.contactViewModel.email,o)||(i.contactViewModel.email=o),K(o)}),p()(),h(14,"div",6)(15,"label",12),f(16,"Message "),h(17,"span",8),f(18,"*"),p()(),h(19,"textarea",13),Ue("ngModelChange",function(o){J(t);const i=O();return $e(i.contactViewModel.message,o)||(i.contactViewModel.message=o),K(o)}),p()(),h(20,"button",14),f(21,"Submit"),p()()}if(2&e){const t=Eh(1),r=O();C(7),je("ngModel",r.contactViewModel.name),C(6),je("ngModel",r.contactViewModel.email),C(6),je("ngModel",r.contactViewModel.message),C(),S("disabled",!t.valid||r.enableFormCountDown>0)}}function XH(e,n){1&e&&(h(0,"p"),f(1,"Thanks for your message."),p())}function JH(e,n){1&e&&(h(0,"p",4),f(1,"Something went wrong. Please try again later."),p())}let KH=(()=>{class e{constructor(t){this.contactService=t,this.contactViewModel=new QH,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)(T(v1))};static#t=this.\u0275cmp=kt({type:e,selectors:[["app-contact-component"]],standalone:!0,features:[Ut],decls:6,vars:3,consts:[["contactForm","ngForm"],[1,"container"],[1,"mb-4"],["method","post"],[1,"text-danger"],["method","post",3,"ngSubmit"],[1,"mb-3"],["for","Name"],[1,"required"],["type","text","id","Name","name","Name","required","",1,"form-control",3,"ngModelChange","ngModel"],["for","Email"],["type","email","id","Email","name","Email","email","","required","",1,"form-control",3,"ngModelChange","ngModel"],["for","Message"],["rows","7","id","Message","name","Message","required","",1,"form-control",3,"ngModelChange","ngModel"],["type","submit",1,"btn","btn-primary",3,"disabled"]],template:function(r,o){1&r&&(h(0,"div",1)(1,"h1",2),f(2,"Contact"),p(),q(3,YH,22,4,"form",3)(4,XH,2,0,"p")(5,JH,2,0,"p",4),p()),2&r&&(C(3),ti(3,o.success||o.error?-1:3),C(),ti(4,o.success?4:-1),C(),ti(5,o.error?5:-1))},dependencies:[hu,uu,Ii,eu,tu,Ai,fu,Ca,Ti]})}return e})();const y1=()=>["/pro"];let e$=(()=>{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=kt({type:e,selectors:[["app-features-component"]],standalone:!0,features:[Ut],decls:157,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"],["id","rawmode",1,"mt-5"],["href","https://github.com/danielpalme/ReportGenerator/wiki/Settings#other-settings","target","_blank"]],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),B("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),B("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),B("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),h(131,"h2",25),f(132,"Raw mode (for "),h(133,"i"),f(134,"Cobertura"),p(),f(135,") "),h(136,"span",7),f(137,"PRO"),p()(),h(138,"p"),f(139,' With "raw mode" (settings:rawMode=true) you can disable that coverage data of nested or compiler generated classes is included in the parent class.'),y(140,"br"),f(141," This is useful to merge several "),h(142,"i"),f(143,"Cobertura"),p(),f(144," files into a single file, since the original class structure remains untouched. "),p(),h(145,"p"),f(146,"See "),h(147,"a",26),f(148,"Settings"),p(),f(149,"\xa0"),h(150,"a",26),y(151,"i",5),p()(),h(152,"p"),f(153,"Limitation: Raw mode is currently only supported for "),h(154,"i"),f(155,"Cobertura"),p(),f(156," files."),p()()),2&r&&(C(25),S("routerLink",re(2,y1)),C(63),S("routerLink",re(3,y1)))},dependencies:[Pn]})}return e})();const Xt={dotnetSDKVersion:"8.x",majorVersion:"5",version:"5.2.4"},t$=()=>["/usage"];let n$=(()=>{class e{constructor(){this.versions=Xt}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275cmp=kt({type:e,selectors:[["app-getstarted"]],standalone:!0,features:[Ut],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),S("routerLink",re(5,t$)),C(22),Qn('\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),Qn('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),Qn("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),Qn("npm i nyc --save-dev\nnyc --reporter=cobertura 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:[Pn]})}return e})(),_1=(()=>{class e{static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275cmp=kt({type:e,selectors:[["app-testimonials"]],standalone:!0,features:[Ut],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 r$=()=>["/pro"],o$=()=>["/usage"],i$=()=>["/getstarted"],s$=()=>["/features"];let a$=(()=>{class e{static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275cmp=kt({type:e,selectors:[["app-home"]],standalone:!0,features:[Ut],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),S("routerLink",re(4,r$)),C(12),S("routerLink",re(5,o$)),C(24),S("routerLink",re(6,i$)),C(15),S("routerLink",re(7,s$)))},dependencies:[Pn,_1],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})(),l$=(()=>{class e{static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275cmp=kt({type:e,selectors:[["app-not-found"]],standalone:!0,features:[Ut],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 C1{constructor(){this.error=null,this.licenses=[]}}class c${constructor(){this.error=null,this.isSponsor=!1,this.license=null}}let D1=(()=>{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=x({token:e,factory:e.\u0275fac})}return e})(),w1=(()=>{class e{constructor(t){this.httpClient=t}getLicense(t){return this.httpClient.get(`${we_apiBaseUrl}reportgenerator/license?code=${encodeURIComponent(t)}`)}getTrialLicense(t){return this.httpClient.post(`${we_apiBaseUrl}reportgenerator/triallicense`,t)}getPaddleLicense(t){return this.httpClient.post(`${we_apiBaseUrl}reportgenerator/paddlelicense`,t)}static#e=this.\u0275fac=function(r){return new(r||e)(k(Mg))};static#t=this.\u0275prov=x({token:e,factory:e.\u0275fac})}return e})(),u$=(()=>{class e{constructor(){this.isActive=!1,this.isActive=new Date["/features"],Ng=()=>["/contact"],b1=e=>({active:e});function d$(e,n){if(1&e){const t=xe();h(0,"span",71)(1,"span",72),B("click",function(){return J(t),K(O().lifetimeLicense=!1)}),y(2,"i",73),f(3," Annual subscription"),p(),h(4,"span",72),B("click",function(){return J(t),K(O().lifetimeLicense=!0)}),y(5,"i",74),f(6," Lifetime license"),p()()}if(2&e){const t=O();C(),S("ngClass",js(2,b1,!t.lifetimeLicense)),C(3),S("ngClass",js(4,b1,t.lifetimeLicense))}}function f$(e,n){if(1&e){const t=xe();h(0,"button",94),B("click",function(){return J(t),K(O(2).requestTrial())}),y(1,"i",33),f(2," Start trial"),p()}2&e&&S("disabled",O(2).trialDisabled)}function h$(e,n){1&e&&(h(0,"button",95),f(1,"Coming soon"),p())}function p$(e,n){1&e&&(St(0),y(1,"i",73),f(2," Annual subscription"),Tt())}function g$(e,n){1&e&&(St(0),y(1,"i",74),f(2," Lifetime license"),Tt())}function m$(e,n){if(1&e){const t=xe();h(0,"button",96),B("click",function(){return J(t),K(O(2).openPaddleCheckout("individual"))}),y(1,"i",97),f(2," Buy now"),p()}}function v$(e,n){1&e&&(h(0,"button",95),f(1,"Coming soon"),p())}function y$(e,n){1&e&&(St(0),y(1,"i",73),f(2," Annual subscription"),Tt())}function _$(e,n){1&e&&(St(0),y(1,"i",74),f(2," Lifetime license"),Tt())}function C$(e,n){if(1&e){const t=xe();h(0,"button",96),B("click",function(){return J(t),K(O(2).openPaddleCheckout("team"))}),y(1,"i",97),f(2," Buy now"),p()}}function D$(e,n){1&e&&(h(0,"button",95),f(1,"Coming soon"),p())}function w$(e,n){1&e&&(St(0),y(1,"i",73),f(2," Annual subscription"),Tt())}function b$(e,n){1&e&&(St(0),y(1,"i",74),f(2," Lifetime license"),Tt())}function E$(e,n){if(1&e){const t=xe();h(0,"button",96),B("click",function(){return J(t),K(O(2).openPaddleCheckout("enterprise"))}),y(1,"i",97),f(2," Buy now"),p()}}function I$(e,n){1&e&&(h(0,"button",95),f(1,"Coming soon"),p())}function M$(e,n){if(1&e&&(h(0,"div",3)(1,"div",75)(2,"div",76),y(3,"img",77),h(4,"h4",78),f(5,"Free"),y(6,"br"),f(7,"Trial"),p(),h(8,"p"),y(9,"i",79),f(10," Get full access"),y(11,"br")(12,"i",80),f(13," 10 day trial period "),p(),q(14,f$,3,1,"button",81)(15,h$,2,0,"button",82),p()(),h(16,"div",83)(17,"div",84),y(18,"img",85),h(19,"h4",78),f(20,"Individual"),y(21,"br"),f(22),p(),h(23,"p"),y(24,"i",86),f(25," Per developer license."),y(26,"br"),q(27,p$,3,0,"ng-container",26)(28,g$,3,0,"ng-container",26),p(),q(29,m$,3,0,"button",87)(30,v$,2,0,"button",82),p()(),h(31,"div",88)(32,"div",84),y(33,"img",89),h(34,"h4",78),f(35,"Team"),y(36,"br"),f(37),p(),h(38,"p"),y(39,"i",90),f(40," Up to 10 developers."),y(41,"br"),q(42,y$,3,0,"ng-container",26)(43,_$,3,0,"ng-container",26),p(),q(44,C$,3,0,"button",87)(45,D$,2,0,"button",82),p()(),h(46,"div",91)(47,"div",84),y(48,"img",92),h(49,"h4",78),f(50,"Enterprise"),y(51,"br"),f(52),p(),h(53,"p"),y(54,"i",93),f(55," Unlimited developers."),y(56,"br"),q(57,w$,3,0,"ng-container",26)(58,b$,3,0,"ng-container",26),p(),q(59,E$,3,0,"button",87)(60,I$,2,0,"button",82),p()()()),2&e){const t=O();C(14),S("ngIf",t.enablePaddle),C(),S("ngIf",!t.enablePaddle),C(7),Te(t.lifetimeLicense?t.paddleIndividualLifetimeLicensePrice:t.paddleIndividualLicensePrice),C(5),S("ngIf",!t.lifetimeLicense),C(),S("ngIf",t.lifetimeLicense),C(),S("ngIf",t.enablePaddle),C(),S("ngIf",!t.enablePaddle),C(7),Te(t.lifetimeLicense?t.paddleTeamLifetimeLicensePrice:t.paddleTeamLicensePrice),C(5),S("ngIf",!t.lifetimeLicense),C(),S("ngIf",t.lifetimeLicense),C(),S("ngIf",t.enablePaddle),C(),S("ngIf",!t.enablePaddle),C(7),Te(t.lifetimeLicense?t.paddleEnterpriseLifetimeLicensePrice:t.paddleEnterpriseLicensePrice),C(5),S("ngIf",!t.lifetimeLicense),C(),S("ngIf",t.lifetimeLicense),C(),S("ngIf",t.enablePaddle),C(),S("ngIf",!t.enablePaddle)}}function S$(e,n){1&e&&(St(0),h(1,"div",99)(2,"span",100),f(3,"Loading..."),p()(),h(4,"span",101),f(5,"Your license is being generated. Please wait."),p(),Tt())}function T$(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",20),f(6," contact form"),p(),f(7,"."),p()()),2&e){const t=O(3);C(2),Te(t.paddleLicense.error),C(3),S("routerLink",re(2,Ng))}}function A$(e,n){1&e&&(h(0,"span"),y(1,"i",108),f(2," Copy"),p())}function N$(e,n){1&e&&(h(0,"span"),y(1,"i",109),f(2," Copied"),p())}function R$(e,n){if(1&e){const t=xe();h(0,"div",105)(1,"textarea",106),f(2),p(),h(3,"button",107),B("click",function(){const o=J(t).$implicit;return K(O(4).copyPaddle(o))}),q(4,A$,3,0,"span",26)(5,N$,3,0,"span",26),p()()}if(2&e){const t=n.$implicit,r=O(4);C(2),Te(t),C(2),S("ngIf",-1===r.copiedPaddledLicenses.indexOf(t)),C(),S("ngIf",r.copiedPaddledLicenses.indexOf(t)>-1)}}function x$(e,n){if(1&e&&(h(0,"div")(1,"label",103),f(2,"Thank you! Please save your license key persistently:"),p(),q(3,R$,6,3,"div",104),p()),2&e){const t=O(3);C(3),S("ngForOf",t.paddleLicense.licenses)}}function O$(e,n){if(1&e&&(h(0,"div",102),q(1,T$,8,3,"div",26)(2,x$,4,1,"div",26),p()),2&e){const t=O(2);C(),S("ngIf",t.paddleLicense.error),C(),S("ngIf",!t.paddleLicense.error)}}function k$(e,n){if(1&e&&(h(0,"div",3),q(1,S$,6,0,"ng-container",26)(2,O$,3,2,"div",98),p()),2&e){const t=O();C(),S("ngIf",t.paddleLicenseRequested&&!t.paddleLicense),C(),S("ngIf",t.paddleLicense)}}function P$(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 F$(e,n){1&e&&(h(0,"div",99)(1,"span",100),f(2,"Loading..."),p()())}function L$(e,n){1&e&&(h(0,"div",110),y(1,"i",111),p())}function V$(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",20),f(6," contact form"),p(),f(7,"."),p()()),2&e){const t=O(2);C(2),Te(t.license.error),C(3),S("routerLink",re(2,Ng))}}function j$(e,n){1&e&&(h(0,"div")(1,"p"),f(2,"Please become a "),h(3,"a",112),f(4,"GitHub sponsor"),p(),f(5," first."),p()())}function U$(e,n){1&e&&(h(0,"span"),y(1,"i",108),f(2," Copy"),p())}function B$(e,n){1&e&&(h(0,"span"),y(1,"i",109),f(2," Copied"),p())}function H$(e,n){if(1&e){const t=xe();h(0,"div")(1,"label",113),f(2,"Thank you for becoming a sponsor. Here's your license:"),p(),h(3,"textarea",114),f(4),p(),h(5,"button",107),B("click",function(){return J(t),K(O(2).copy())}),q(6,U$,3,0,"span",26)(7,B$,3,0,"span",26),p()()}if(2&e){const t=O(2);C(4),Te(t.license.license),C(2),S("ngIf",!t.licenseCopied),C(),S("ngIf",t.licenseCopied)}}function $$(e,n){if(1&e&&(h(0,"div",28),q(1,V$,8,3,"div",26)(2,j$,6,0,"div",26)(3,H$,8,3,"div",26),p()),2&e){const t=O();C(),S("ngIf",t.license.error),C(),S("ngIf",!t.license.error&&!t.license.isSponsor),C(),S("ngIf",!t.license.error&&t.license.isSponsor&&t.license.license)}}let G$=(()=>{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 c$,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 C1,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 C1,this.paddleLicense.error="Unable to generate Paddle license."},complete:()=>console.info("complete")})}static#e=this.\u0275fac=function(r){return new(r||e)(T(D1),T(w1),T(u$))};static#t=this.\u0275cmp=kt({type:e,selectors:[["app-pro-component"]],standalone:!0,features:[Ut],decls:240,vars:27,consts:[["trialForm","ngForm"],[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"],["fragment","rawmode","title","Show feature details",3,"routerLink"],[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,"click","disabled"],[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"],[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,"ngModelChange","ngModel"],["for","floatingInput"],[1,"required"],["type","email","id","email","name","email","required","","email","","maxlength","150",1,"form-control",3,"ngModelChange","ngModel"],[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,"click","ngClass"],[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,"click","disabled"],["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){const i=xe();h(0,"div",1)(1,"h1",2),f(2,"PRO"),p(),h(3,"div",3)(4,"div",4)(5,"table",5)(6,"thead")(7,"tr"),y(8,"th",6),h(9,"th",7),f(10,"Free"),p(),h(11,"th",7)(12,"span",8),f(13,"PRO"),p()()()(),h(14,"tbody")(15,"tr")(16,"th",9),f(17,"Metrics "),h(18,"a",10),y(19,"i",11),p()(),h(20,"td",12),y(21,"i",13),p(),h(22,"td",12),y(23,"i",13),p()(),h(24,"tr")(25,"th",9),f(26,"Risk Hotspots "),h(27,"a",14),y(28,"i",11),p()(),h(29,"td",12),y(30,"i",13),p(),h(31,"td",12),y(32,"i",13),p()(),h(33,"tr")(34,"th",9),f(35,"Line coverage "),h(36,"a",15),y(37,"i",11),p()(),h(38,"td",12),y(39,"i",13),p(),h(40,"td",12),y(41,"i",13),p()(),h(42,"tr")(43,"th",9),f(44,"Branch coverage "),h(45,"a",15),y(46,"i",11),p()(),h(47,"td",12),y(48,"i",13),p(),h(49,"td",12),y(50,"i",13),p()(),h(51,"tr")(52,"th",9),f(53,"Method coverage "),h(54,"a",15),y(55,"i",11),p()(),y(56,"td",12),h(57,"td",12),y(58,"i",16),p()(),h(59,"tr")(60,"th",9),f(61,"Metrics on summary page "),h(62,"a",10),y(63,"i",11),p()(),y(64,"td",12),h(65,"td",12),y(66,"i",16),p()(),h(67,"tr")(68,"th",9)(69,"i"),f(70,"OpenCover"),p(),f(71," output format"),p(),y(72,"td",12),h(73,"td",12),y(74,"i",16),p()(),h(75,"tr")(76,"th",9),f(77,"Raw mode (for "),h(78,"i"),f(79,"Cobertura"),p(),f(80,") "),h(81,"a",17),y(82,"i",11),p()(),y(83,"td",12),h(84,"td",12),y(85,"i",16),p()()()()(),h(86,"div",18)(87,"p")(88,"i"),f(89,"ReportGenerator"),p(),f(90," is Open Source and free to use."),y(91,"br"),f(92," Some of the advanced features require a PRO license. "),p(),h(93,"p"),f(94," You can either "),h(95,"a",19),B("click",function(){return J(i),K(o.scrollToPaddle())}),f(96,"buy a license"),p(),f(97," or you can become a "),h(98,"a",19),B("click",function(){return J(i),K(o.scrollToGithub())}),f(99,"GitHub sponsor"),p(),f(100,"."),y(101,"br"),f(102," A "),h(103,"a",19),B("click",function(){return J(i),K(o.scrollToPaddle())}),f(104,"free trial version"),p(),f(105," is available too. "),p(),h(106,"p"),f(107," Get "),h(108,"a",20),f(109,"in touch"),p(),f(110," if you have any issues and we will figure it out. "),p()()()(),h(111,"section",21)(112,"div",1)(113,"h2",2),f(114,"Buy a license"),p(),h(115,"div",22),q(116,d$,7,6,"span",23),p(),q(117,M$,61,17,"div",24)(118,k$,3,2,"div",24),h(119,"div",25),q(120,P$,4,0,"p",26),h(121,"p"),f(122,"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(123,"section",27)(124,"div",1)(125,"h2",2),f(126,"Get your license as a GitHub sponsor"),p(),h(127,"div",3)(128,"div",28)(129,"p"),f(130,"You can obtain your license in two easy steps (no sign up required):"),p(),h(131,"span",29),f(132,"1."),p(),h(133,"a",30),y(134,"i",31),f(135," Become a GitHub sponsor"),p(),y(136,"br"),h(137,"span",29),f(138,"2."),p(),h(139,"button",32),B("click",function(){return J(i),K(o.requestLicense())}),y(140,"i",33),f(141," Get license"),p(),q(142,F$,3,0,"div",34),p(),q(143,L$,2,0,"div",35)(144,$$,4,3,"div",36),p()()(),y(145,"app-testimonials"),h(146,"section",37)(147,"div",38)(148,"h3"),f(149,"Customers"),p(),h(150,"div",39)(151,"a",40),y(152,"img",41),p()()()(),h(153,"section",42)(154,"h2",2),f(155,"Frequently Asked Questions"),p(),h(156,"div",43)(157,"div",44)(158,"h2",45)(159,"button",46),f(160," How do I use/activate my license? "),p()(),h(161,"div",47)(162,"div",48),f(163," Your license key is passed to "),h(164,"i"),f(165,"ReportGenerator"),p(),f(166," via a command line parameter: "),h(167,"i"),f(168,"-license:YOUR_KEY"),p()()()(),h(169,"div",44)(170,"h2",49)(171,"button",50),f(172," Are there limitations on number of users? "),p()(),h(173,"div",51)(174,"div",48)(175,"b"),f(176,"GitHub sponsors"),p(),y(177,"br"),h(178,"p"),f(179,"There's no enforced limit. Please pick a sponsor level that fits your company size and budget."),p(),h(180,"b"),f(181,"Bought license"),p(),y(182,"br"),h(183,"p"),f(184,"There's no enforced limit. Please choose a plan that matches the number of developers using "),h(185,"i"),f(186,"ReportGenerator"),p(),f(187,"."),p()()()(),h(188,"div",44)(189,"h2",52)(190,"button",53),f(191," Will my license expire? "),p()(),h(192,"div",54)(193,"div",48)(194,"b"),f(195,"GitHub sponsors"),p(),y(196,"br"),h(197,"p"),f(198,"Your license will not expire."),p(),h(199,"b"),f(200,"Bought license"),p(),y(201,"br"),h(202,"p")(203,"b"),f(204,"Annual subscription"),p(),f(205,": Your license may get revoked for new releases of "),h(206,"i"),f(207,"ReportGenerator"),p(),f(208,", if you cancel your subscription."),y(209,"br"),h(210,"b"),f(211,"Lifetime licenses"),p(),f(212,": Lifetime licenses will not expire. "),p()()()()()(),h(213,"div",55)(214,"div",56)(215,"div",57)(216,"form",58,0),B("ngSubmit",function(){return J(i),K(o.completeTrial())}),h(218,"div",59)(219,"h5",60),f(220,"Free Trial"),p(),y(221,"button",61),p(),h(222,"div",62)(223,"div",63)(224,"input",64),Ue("ngModelChange",function(a){return J(i),$e(o.requestTrialData.name,a)||(o.requestTrialData.name=a),K(a)}),p(),h(225,"label",65),f(226,"Name "),h(227,"span",66),f(228,"*"),p()()(),h(229,"div",63)(230,"input",67),Ue("ngModelChange",function(a){return J(i),$e(o.requestTrialData.email,a)||(o.requestTrialData.email=a),K(a)}),p(),h(231,"label",65),f(232,"Email address "),h(233,"span",66),f(234,"*"),p()()()(),h(235,"div",68)(236,"button",69),f(237,"Close"),p(),h(238,"button",70),f(239,"Get trial license"),p()()()()()()}if(2&r){const i=Eh(217);C(18),S("routerLink",re(19,to)),C(9),S("routerLink",re(20,to)),C(9),S("routerLink",re(21,to)),C(9),S("routerLink",re(22,to)),C(9),S("routerLink",re(23,to)),C(8),S("routerLink",re(24,to)),C(19),S("routerLink",re(25,to)),C(27),S("routerLink",re(26,Ng)),C(8),S("ngIf",!o.paddleLicenseRequested),C(),S("ngIf",!o.paddleLicenseRequested),C(),S("ngIf",o.paddleLicenseRequested),C(2),S("ngIf",!o.lifetimeLicense),C(19),S("disabled",o.licenseRequested),C(3),S("ngIf",o.licenseRequested&&!o.license),C(),S("ngIf",!o.license),C(),S("ngIf",o.license),C(80),je("ngModel",o.requestTrialData.name),C(6),je("ngModel",o.requestTrialData.email),C(8),S("disabled",!i.valid)}},dependencies:[Pn,lp,cp,Nc,hu,uu,Ii,eu,tu,Ai,wg,fu,Ca,Ti,_1],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 _u{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 z$ extends _u{formatExecutable(n){let t=`- task: ${n.tool}@${Xt.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 q${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 Rg{constructor(n,t){this.tool=n,this.command=t}}const Z$=()=>["/pro"],Q$=e=>({"input-group":e}),Y$=(e,n)=>({"btn-outline-primary":e,"btn-primary":n});function X$(e,n){if(1&e){const t=xe();h(0,"div",35)(1,"label",36)(2,"input",37),Ue("ngModelChange",function(o){J(t);const i=O();return $e(i.selectedEnvironment,o)||(i.selectedEnvironment=o),K(o)}),B("ngModelChange",function(){return J(t),K(O().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=O();C(2),je("ngModel",r.selectedEnvironment),S("value",t)("checked",r.selectedEnvironment.name===t.name),C(2),Te(t.name),C(3),Te(t.description)}}function J$(e,n){if(1&e){const t=xe();h(0,"div",35)(1,"label",36)(2,"input",41),Ue("ngModelChange",function(o){J(t);const i=O(3);return $e(i.selectedPackage,o)||(i.selectedPackage=o),K(o)}),p(),h(3,"b"),f(4),p(),y(5,"br"),h(6,"div",38),f(7),p()()()}if(2&e){const t=O().$implicit,r=O(2);C(2),je("ngModel",r.selectedPackage),S("value",t),C(2),Te(t.name),C(3),Te(t.description)}}function K$(e,n){if(1&e&&(St(0),q(1,J$,8,4,"div",40),Tt()),2&e){const t=n.$implicit,r=O(2);C(),S("ngIf",t.runtimes.indexOf(r.selectedEnvironment.name)>-1)}}function e4(e,n){if(1&e&&(St(0),h(1,"h4"),f(2,"NuGet Package"),p(),q(3,K$,2,1,"ng-container",39),Tt()),2&e){const t=O();C(3),S("ngForOf",t.packages)}}function t4(e,n){if(1&e){const t=xe();h(0,"span",45),B("click",function(){J(t);const o=O().index;return K(O().configuration.removeReport(o))}),h(1,"a",46),y(2,"i",47),p()()}}function n4(e,n){if(1&e){const t=xe();h(0,"div",38)(1,"div",42)(2,"input",43),Ue("ngModelChange",function(o){const i=J(t).index,s=O();return $e(s.configuration.reports[i],o)||(s.configuration.reports[i]=o),K(o)}),p(),q(3,t4,3,0,"span",44),p()()}if(2&e){const t=n.index,r=O();C(),S("ngClass",js(5,Q$,t>0)),C(),Zn("name","report_",t,""),je("ngModel",r.configuration.reports[t]),C(),S("ngIf",t>0)}}function r4(e,n){if(1&e){const t=xe();h(0,"button",48),B("click",function(){const o=J(t).$implicit,i=O();return K(i.configuration.selectedType=i.configuration.selectedType===o?null:o)}),f(1),p()}if(2&e){const t=n.$implicit,r=O();S("ngClass",hw(2,Y$,t!==r.configuration.selectedType,t===r.configuration.selectedType)),C(),Te(t)}}function o4(e,n){if(1&e){const t=xe();h(0,"span",53),y(1,"i",54),f(2," Please specify a "),h(3,"a",9),B("click",function(){return J(t),K(O(3).scrollToHistoryDir())}),f(4,"history directory"),p()()}}function i4(e,n){if(1&e&&(St(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(),Tt()),2&e){const t=O(2).$implicit;C(2),S("href",t.sampleReport,xo),C(3),S("href",t.sampleReport,xo)}}function s4(e,n){if(1&e){const t=xe();h(0,"div",50)(1,"label",36)(2,"input",51),B("change",function(){J(t);const o=O().$implicit;return K(o.checked=!o.checked)}),p(),h(3,"b"),f(4),p(),q(5,o4,5,0,"span",52),y(6,"br"),h(7,"div",38),f(8),q(9,i4,7,2,"ng-container",5),p()()()}if(2&e){const t=O().$implicit,r=O();C(2),S("checked",t.checked),C(2),Te(t.name),C(),S("ngIf",t.checked&&t.requiresHistoryDir&&!r.configuration.historydir),C(3),Qn("",t.description," "),C(),S("ngIf",t.sampleReport)}}function a4(e,n){if(1&e&&(St(0),q(1,s4,10,5,"div",49),Tt()),2&e){const t=n.$implicit,r=O();C(),S("ngIf",!r.configuration.selectedType||t.types.indexOf(r.configuration.selectedType)>-1)}}function l4(e,n){if(1&e){const t=xe();h(0,"div",8)(1,"div",57)(2,"input",58),Ue("ngModelChange",function(o){const i=J(t).index,s=O();return $e(s.configuration.sourcedirectories[i],o)||(s.configuration.sourcedirectories[i]=o),K(o)}),p(),h(3,"span",45),B("click",function(){const o=J(t).index;return K(O().configuration.removeSourceDirectory(o))}),h(4,"a",46),y(5,"i",47),p()()()()}if(2&e){const t=n.index,r=O();C(2),Zn("name","sourcedir_",t,""),je("ngModel",r.configuration.sourcedirectories[t])}}function c4(e,n){if(1&e){const t=xe();h(0,"div",8)(1,"div",57)(2,"input",59),Ue("ngModelChange",function(o){const i=J(t).index,s=O();return $e(s.configuration.plugins[i],o)||(s.configuration.plugins[i]=o),K(o)}),p(),h(3,"span",45),B("click",function(){const o=J(t).index;return K(O().configuration.removePlugin(o))}),h(4,"a",46),y(5,"i",47),p()()()()}if(2&e){const t=n.index,r=O();C(2),Zn("name","plugin_",t,""),je("ngModel",r.configuration.plugins[t])}}function u4(e,n){if(1&e){const t=xe();h(0,"div",8)(1,"div",57)(2,"input",60),Ue("ngModelChange",function(o){const i=J(t).index,s=O();return $e(s.configuration.assemblyfilters[i],o)||(s.configuration.assemblyfilters[i]=o),K(o)}),p(),h(3,"span",45),B("click",function(){const o=J(t).index;return K(O().configuration.removeAssemblyFilter(o))}),h(4,"a",46),y(5,"i",47),p()()()()}if(2&e){const t=n.index,r=O();C(2),Zn("name","assemblyfilter_",t,""),je("ngModel",r.configuration.assemblyfilters[t])}}function d4(e,n){if(1&e){const t=xe();h(0,"div",8)(1,"div",57)(2,"input",61),Ue("ngModelChange",function(o){const i=J(t).index,s=O();return $e(s.configuration.classfilters[i],o)||(s.configuration.classfilters[i]=o),K(o)}),p(),h(3,"span",45),B("click",function(){const o=J(t).index;return K(O().configuration.removeClassFilter(o))}),h(4,"a",46),y(5,"i",47),p()()()()}if(2&e){const t=n.index,r=O();C(2),Zn("name","classfilter_",t,""),je("ngModel",r.configuration.classfilters[t])}}function f4(e,n){if(1&e){const t=xe();h(0,"div",8)(1,"div",57)(2,"input",62),Ue("ngModelChange",function(o){const i=J(t).index,s=O();return $e(s.configuration.filefilters[i],o)||(s.configuration.filefilters[i]=o),K(o)}),p(),h(3,"span",45),B("click",function(){const o=J(t).index;return K(O().configuration.removeFileFilter(o))}),h(4,"a",46),y(5,"i",47),p()()()()}if(2&e){const t=n.index,r=O();C(2),Zn("name","filefilter_",t,""),je("ngModel",r.configuration.filefilters[t])}}function h4(e,n){if(1&e&&(h(0,"option",63),f(1),p()),2&e){const t=n.$implicit;S("value",t),C(),Te(t)}}function p4(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),Te(t.tool),C(3),Te(t.command)}}function g4(e,n){1&e&&(y(0,"i",65),f(1," Copied "))}function m4(e,n){1&e&&(y(0,"i",66),f(1," Copy "))}function v4(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),Te(t.tool),C(3),Te(t.command)}}function y4(e,n){1&e&&(y(0,"i",65),f(1," Copied "))}function _4(e,n){1&e&&(y(0,"i",66),f(1," Copy "))}const no=" | ReportGenerator - Code coverage reports",D4=[{path:"",component:a$,pathMatch:"full",title:"Home"+no,data:{canonical:"/"}},{path:"features",component:e$,title:"Features"+no,data:{canonical:"/features"}},{path:"features.html",redirectTo:"/features"},{path:"getstarted",component:n$,title:"Get started"+no,data:{canonical:"/getstarted"}},{path:"getstarted.html",redirectTo:"/getstarted"},{path:"usage",component:(()=>{class e{constructor(){this.versions=Xt,this.lastResult="",this.usageCopied=!1,this.configuration=new q$,this.environments=[new Cu(".NET Core",".NET Core"),new Cu(".NET Framework","The full .NET framework"),new Cu("Azure DevOps",null),new Cu("Github Action",null)],this.packages=[new _u("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 Rg("Package Manager",`Install-Package ReportGenerator -Version ${Xt.version}`),new Rg(".NET CLI",`dotnet add package ReportGenerator --version ${Xt.version}`)],[new Ea(".NET Framework",`$(UserProfile)\\.nuget\\packages\\reportgenerator\\${Xt.version}\\tools\\net47\\ReportGenerator.exe`),new Ea(".NET Core",`dotnet $(UserProfile)\\.nuget\\packages\\reportgenerator\\${Xt.version}\\tools\\net6.0\\ReportGenerator.dll`)]),new _u("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 Rg(".NET CLI",`dotnet tool install --global dotnet-reportgenerator-globaltool --version ${Xt.version}\r\n\r\ndotnet tool install dotnet-reportgenerator-globaltool --tool-path tools --version ${Xt.version}\r\n\r\ndotnet new tool-manifest\r\ndotnet tool install dotnet-reportgenerator-globaltool --version ${Xt.version}`)],[new Ea(".NET Core","reportgenerator")]),new z$("Azure DevOps","https://marketplace.visualstudio.com/items?itemName=Palmmedia.reportgenerator",["Azure DevOps"],"Use this package within Azure DevOps",[],[new Ea("Azure DevOps","reportgenerator")]),new W$("GitHub Action","https://github.com/marketplace/actions/reportgenerator",["Github Action"],"Use this package within Github Actions",[],[new Ea("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=kt({type:e,selectors:[["app-usage-component"]],standalone:!0,features:[Ut],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,"ngModelChange","ngModel"],["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,"ngModelChange","ngModel","required"],["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,"ngModelChange","ngModel"],[3,"value",4,"ngFor","ngForOf","ngForTrackBy"],["type","text","name","title","placeholder","Title",1,"form-control",3,"ngModelChange","ngModel"],["type","text","name","tag","placeholder","Optional tag or build version",1,"form-control",3,"ngModelChange","ngModel"],[3,"routerLink"],["type","text","name","license","placeholder","Optional license for PRO version","rows","4",1,"form-control",3,"ngModelChange","ngModel"],[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,"ngModelChange","ngModel","value","checked"],[1,"mb-3"],[4,"ngFor","ngForOf"],["class","form-check",4,"ngIf"],["type","radio","name","package",1,"form-check-input",3,"ngModelChange","ngModel","value"],[3,"ngClass"],["type","text","placeholder","The path of the coverage file","required","",1,"form-control",3,"ngModelChange","name","ngModel"],["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,"click","ngClass"],["class","form-check mt-1",4,"ngIf"],[1,"form-check","mt-1"],["type","checkbox","name","reporttype",1,"form-check-input",3,"change","checked"],["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,"ngModelChange","name","ngModel"],["type","text","placeholder","The path of the plugin","required","",1,"form-control",3,"ngModelChange","name","ngModel"],["type","text","placeholder","The include or exclude filter for assemlies","pattern","^[+-].+$","required","",1,"form-control",3,"ngModelChange","name","ngModel"],["type","text","placeholder","The include or exclude filter for classes","pattern","^[+-].+$","required","",1,"form-control",3,"ngModelChange","name","ngModel"],["type","text","placeholder","The include or exclude filter for files","pattern","^[+-].+$","required","",1,"form-control",3,"ngModelChange","name","ngModel"],[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,X$,8,5,"div",4),y(9,"hr"),q(10,e4,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,n4,4,7,"div",7),h(19,"div",8)(20,"a",9),B("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),Ue("ngModelChange",function(s){return $e(o.configuration.targetdir,s)||(o.configuration.targetdir=s),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,r4,2,5,"button",14),y(40,"br"),q(41,a4,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,l4,6,3,"div",16),h(49,"div",8)(50,"a",9),B("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),Ue("ngModelChange",function(s){return $e(o.configuration.historydir,s)||(o.configuration.historydir=s),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,c4,6,3,"div",16),h(77,"div",8)(78,"a",9),B("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,u4,6,3,"div",16),h(103,"div",8)(104,"a",9),B("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,d4,6,3,"div",16),h(129,"div",8)(130,"a",9),B("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,f4,6,3,"div",16),h(155,"div",8)(156,"a",9),B("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),Ue("ngModelChange",function(s){return $e(o.configuration.selectedverbosity,s)||(o.configuration.selectedverbosity=s),s}),q(166,h4,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),Ue("ngModelChange",function(s){return $e(o.configuration.title,s)||(o.configuration.title=s),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),Ue("ngModelChange",function(s){return $e(o.configuration.tag,s)||(o.configuration.tag=s),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),Ue("ngModelChange",function(s){return $e(o.configuration.license,s)||(o.configuration.license=s),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,p4,6,2,"div",30),h(198,"h4",31),f(199,"Usage"),p(),h(200,"pre",32),f(201),p(),h(202,"button",33),B("click",function(){return o.copy()}),q(203,g4,2,0)(204,m4,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,v4,6,2,"div",30),h(212,"h4",31),f(213,"Usage"),p(),h(214,"pre",32),f(215),p(),h(216,"button",33),B("click",function(){return o.copy()}),q(217,y4,2,0)(218,_4,2,0),p()()()()()),2&r&&(C(8),S("ngForOf",o.environments),C(2),S("ngIf",o.severalPackagesAvailable()),C(8),S("ngForOf",o.configuration.reports)("ngForTrackBy",o.trackByIndex),C(11),je("ngModel",o.configuration.targetdir),C(10),S("ngForOf",o.configuration.types)("ngForTrackBy",o.trackByIndex),C(2),S("ngForOf",o.configuration.reporttypes)("ngForTrackBy",o.trackByIndex),C(7),S("ngForOf",o.configuration.sourcedirectories)("ngForTrackBy",o.trackByIndex),C(16),je("ngModel",o.configuration.historydir),S("required",o.configuration.historyDirRequired()),C(12),S("ngForOf",o.configuration.plugins)("ngForTrackBy",o.trackByIndex),C(26),S("ngForOf",o.configuration.assemblyfilters)("ngForTrackBy",o.trackByIndex),C(26),S("ngForOf",o.configuration.classfilters)("ngForTrackBy",o.trackByIndex),C(26),S("ngForOf",o.configuration.filefilters)("ngForTrackBy",o.trackByIndex),C(11),je("ngModel",o.configuration.selectedverbosity),C(),S("ngForOf",o.configuration.verbosities)("ngForTrackBy",o.trackByIndex),C(7),je("ngModel",o.configuration.title),C(7),je("ngModel",o.configuration.tag),C(6),S("routerLink",re(38,Z$)),C(3),je("ngModel",o.configuration.license),C(6),S("href",o.selectedPackage.url,xo),C(),Te(o.selectedPackage.name),C(),S("ngForOf",o.selectedPackage.installOptions),C(4),Te(o.getUsage()),C(2),ti(203,o.usageCopied?203:204),C(6),S("href",o.selectedPackage.url,xo),C(),Te(o.selectedPackage.name),C(),S("ngForOf",o.selectedPackage.installOptions),C(4),Te(o.getUsage()),C(2),ti(217,o.usageCopied?217:218))},dependencies:[hu,uu,UM,HM,Ii,du,vg,eu,tu,Ai,bg,Ca,Ti,lp,cp,Nc,Pn],styles:[".sticky[_ngcontent-%COMP%]{position:sticky;top:100px}"]})}return e})(),title:"Usage"+no,data:{canonical:"/usage"}},{path:"usage.html",redirectTo:"/usage"},{path:"pro",component:G$,title:"PRO"+no,data:{canonical:"/pro"}},{path:"pro.html",redirectTo:"/pro"},{path:"contact",component:KH,title:"Contact"+no,data:{canonical:"/contact"}},{path:"contact.html",redirectTo:"/contact"},{path:"404",component:l$,title:"404 - Not found"+no},{path:"**",redirectTo:"/404"}];(function Vj(e,n){return JF({rootComponent:e,...BE(n)})})(wB,{providers:[Em(Gj,(()=>{class e{static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275mod=or({type:e});static#n=this.\u0275inj=jn({imports:[qI.forRoot(D4,{scrollPositionRestoration:"enabled",scrollOffset:[0,0],anchorScrolling:"enabled"}),qI]})}return e})(),hu),D1,w1,v1,function HH(...e){const n=[Mg,i1,r1,{provide:pu,useExisting:r1},{provide:gu,useExisting:i1},{provide:ba,useValue:BH,multi:!0},{provide:Ag,useValue:!0},{provide:l1,useClass:UH}];for(const t of e)n.push(...t.\u0275providers);return ji(n)}(function $H(){return function eo(e,n){return{\u0275kind:e,\u0275providers:n}}(Mr.LegacyInterceptors,[{provide:c1,useFactory:RH},{provide:ba,useExisting:c1,multi:!0}])}())]}).catch(e=>console.error(e))}},Ri=>{Ri(Ri.s=729)}]); \ No newline at end of file +"use strict";(self.webpackChunkReportGenerator_io=self.webpackChunkReportGenerator_io||[]).push([[792],{729:()=>{function Ri(e,n,t,r,o,i,s){try{var a=e[i](s),l=a.value}catch(c){return void t(c)}a.done?n(l):Promise.resolve(l).then(r,o)}function ro(e){return function(){var n=this,t=arguments;return new Promise(function(r,o){var i=e.apply(n,t);function s(l){Ri(i,r,o,s,a,"next",l)}function a(l){Ri(i,r,o,s,a,"throw",l)}s(void 0)})}}let Oe=null,Ia=1;const Sr=Symbol("SIGNAL");function Q(e){const n=Oe;return Oe=e,n}function xg(e){if((!Oi(e)||e.dirty)&&(e.dirty||e.lastCleanEpoch!==Ia)){if(!e.producerMustRecompute(e)&&!wu(e))return e.dirty=!1,void(e.lastCleanEpoch=Ia);e.producerRecomputeValue(e),e.dirty=!1,e.lastCleanEpoch=Ia}}function wu(e){oo(e);for(let n=0;n0}function oo(e){e.producerNode??=[],e.producerIndexOfThis??=[],e.producerLastReadVersion??=[]}let Bg=null;function Ie(e){return"function"==typeof e}function Eu(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 Iu=Eu(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 Mu(e,n){if(e){const t=e.indexOf(n);0<=t&&e.splice(t,1)}}class Dt{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(Ie(r))try{r()}catch(i){n=i instanceof Iu?i.errors:[i]}const{_finalizers:o}=this;if(o){this._finalizers=null;for(const i of o)try{qg(i)}catch(s){n=n??[],s instanceof Iu?n=[...n,...s.errors]:n.push(s)}}if(n)throw new Iu(n)}}add(n){var t;if(n&&n!==this)if(this.closed)qg(n);else{if(n instanceof Dt){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)&&Mu(t,n)}remove(n){const{_finalizers:t}=this;t&&Mu(t,n),n instanceof Dt&&n._removeParent(this)}}Dt.EMPTY=(()=>{const e=new Dt;return e.closed=!0,e})();const Gg=Dt.EMPTY;function zg(e){return e instanceof Dt||e&&"closed"in e&&Ie(e.remove)&&Ie(e.add)&&Ie(e.unsubscribe)}function qg(e){Ie(e)?e():e.unsubscribe()}const Tr={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},Sa={setTimeout(e,n,...t){const{delegate:r}=Sa;return r?.setTimeout?r.setTimeout(e,n,...t):setTimeout(e,n,...t)},clearTimeout(e){const{delegate:n}=Sa;return(n?.clearTimeout||clearTimeout)(e)},delegate:void 0};function Wg(e){Sa.setTimeout(()=>{const{onUnhandledError:n}=Tr;if(!n)throw e;n(e)})}function Su(){}const L1=Tu("C",void 0,void 0);function Tu(e,n,t){return{kind:e,value:n,error:t}}let Ar=null;function Ta(e){if(Tr.useDeprecatedSynchronousErrorHandling){const n=!Ar;if(n&&(Ar={errorThrown:!1,error:null}),e(),n){const{errorThrown:t,error:r}=Ar;if(Ar=null,t)throw r}}else e()}class Au extends Dt{constructor(n){super(),this.isStopped=!1,n?(this.destination=n,zg(n)&&n.add(this)):this.destination=G1}static create(n,t,r){return new Ru(n,t,r)}next(n){this.isStopped?xu(function j1(e){return Tu("N",e,void 0)}(n),this):this._next(n)}error(n){this.isStopped?xu(function V1(e){return Tu("E",void 0,e)}(n),this):(this.isStopped=!0,this._error(n))}complete(){this.isStopped?xu(L1,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 B1=Function.prototype.bind;function Nu(e,n){return B1.call(e,n)}class H1{constructor(n){this.partialObserver=n}next(n){const{partialObserver:t}=this;if(t.next)try{t.next(n)}catch(r){Aa(r)}}error(n){const{partialObserver:t}=this;if(t.error)try{t.error(n)}catch(r){Aa(r)}else Aa(n)}complete(){const{partialObserver:n}=this;if(n.complete)try{n.complete()}catch(t){Aa(t)}}}class Ru extends Au{constructor(n,t,r){let o;if(super(),Ie(n)||!n)o={next:n??void 0,error:t??void 0,complete:r??void 0};else{let i;this&&Tr.useDeprecatedNextContext?(i=Object.create(n),i.unsubscribe=()=>this.unsubscribe(),o={next:n.next&&Nu(n.next,i),error:n.error&&Nu(n.error,i),complete:n.complete&&Nu(n.complete,i)}):o=n}this.destination=new H1(o)}}function Aa(e){Tr.useDeprecatedSynchronousErrorHandling?function U1(e){Tr.useDeprecatedSynchronousErrorHandling&&Ar&&(Ar.errorThrown=!0,Ar.error=e)}(e):Wg(e)}function xu(e,n){const{onStoppedNotification:t}=Tr;t&&Sa.setTimeout(()=>t(e,n))}const G1={closed:!0,next:Su,error:function $1(e){throw e},complete:Su},Ou="function"==typeof Symbol&&Symbol.observable||"@@observable";function Nr(e){return e}function Zg(e){return 0===e.length?Nr:1===e.length?e[0]:function(t){return e.reduce((r,o)=>o(r),t)}}let Be=(()=>{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 W1(e){return e&&e instanceof Au||function q1(e){return e&&Ie(e.next)&&Ie(e.error)&&Ie(e.complete)}(e)&&zg(e)}(t)?t:new Ru(t,r,o);return Ta(()=>{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=Qg(r))((o,i)=>{const s=new Ru({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)}[Ou](){return this}pipe(...t){return Zg(t)(this)}toPromise(t){return new(t=Qg(t))((r,o)=>{let i;this.subscribe(s=>i=s,s=>o(s),()=>r(i))})}}return e.create=n=>new e(n),e})();function Qg(e){var n;return null!==(n=e??Tr.Promise)&&void 0!==n?n:Promise}const Z1=Eu(e=>function(){e(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"});let $t=(()=>{class e extends Be{constructor(){super(),this.closed=!1,this.currentObservers=null,this.observers=[],this.isStopped=!1,this.hasError=!1,this.thrownError=null}lift(t){const r=new Yg(this,this);return r.operator=t,r}_throwIfClosed(){if(this.closed)throw new Z1}next(t){Ta(()=>{if(this._throwIfClosed(),!this.isStopped){this.currentObservers||(this.currentObservers=Array.from(this.observers));for(const r of this.currentObservers)r.next(t)}})}error(t){Ta(()=>{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(){Ta(()=>{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?Gg:(this.currentObservers=null,i.push(t),new Dt(()=>{this.currentObservers=null,Mu(i,t)}))}_checkFinalizedStatuses(t){const{hasError:r,thrownError:o,isStopped:i}=this;r?t.error(o):i&&t.complete()}asObservable(){const t=new Be;return t.source=this,t}}return e.create=(n,t)=>new Yg(n,t),e})();class Yg extends $t{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:Gg}}class Gt extends $t{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 Xg(e){return Ie(e?.lift)}function nt(e){return n=>{if(Xg(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 qe(e,n,t,r,o){return new Q1(e,n,t,r,o)}class Q1 extends Au{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 ne(e,n){return nt((t,r)=>{let o=0;t.subscribe(qe(r,i=>{r.next(e.call(n,i,o++))}))})}const Jg="https://g.co/ng/security#xss";class I extends Error{constructor(n,t){super(function io(e,n){return`NG0${Math.abs(e)}${n?": "+n:""}`}(n,t)),this.code=n}}function Vn(e){return{toString:e}.toString()}const ao="__parameters__";function co(e,n,t){return Vn(()=>{const r=function ku(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(ao)?l[ao]:Object.defineProperty(l,ao,{value:[]})[ao];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})}const ue=globalThis;function fe(e){for(let n in e)if(e[n]===fe)return n;throw Error("Could not find renamed property on target object.")}function Y1(e,n){for(const t in n)n.hasOwnProperty(t)&&!e.hasOwnProperty(t)&&(e[t]=n[t])}function We(e){if("string"==typeof e)return e;if(Array.isArray(e))return"["+e.map(We).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 Pu(e,n){return null==e||""===e?null===n?"":n:null==n||""===n?e:e+" "+n}const X1=fe({__forward_ref__:fe});function ye(e){return e.__forward_ref__=ye,e.toString=function(){return We(this())},e}function V(e){return Ra(e)?e():e}function Ra(e){return"function"==typeof e&&e.hasOwnProperty(X1)&&e.__forward_ref__===ye}function x(e){return{token:e.token,providedIn:e.providedIn||null,factory:e.factory,value:void 0}}function jn(e){return{providers:e.providers||[],imports:e.imports||[]}}function xa(e){return nm(e,ka)||nm(e,rm)}function nm(e,n){return e.hasOwnProperty(n)?e[n]:null}function Oa(e){return e&&(e.hasOwnProperty(Fu)||e.hasOwnProperty(r0))?e[Fu]:null}const ka=fe({\u0275prov:fe}),Fu=fe({\u0275inj:fe}),rm=fe({ngInjectableDef:fe}),r0=fe({ngInjectorDef:fe});class R{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=x({token:this,providedIn:t.providedIn||"root",factory:t.factory}))}get multi(){return this}toString(){return`InjectionToken ${this._desc}`}}function Bu(e){return e&&!!e.\u0275providers}const ki=fe({\u0275cmp:fe}),Hu=fe({\u0275dir:fe}),$u=fe({\u0275pipe:fe}),im=fe({\u0275mod:fe}),Un=fe({\u0275fac:fe}),Pi=fe({__NG_ELEMENT_ID__:fe}),sm=fe({__NG_ENV_ID__:fe});function G(e){return"string"==typeof e?e:null==e?"":String(e)}function Gu(e,n){throw new I(-201,!1)}var ee=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}(ee||{});let zu;function am(){return zu}function wt(e){const n=zu;return zu=e,n}function lm(e,n,t){const r=xa(e);return r&&"root"==r.providedIn?void 0===r.value?r.value=r.factory():r.value:t&ee.Optional?null:void 0!==n?n:void Gu()}const Fi={},qu="__NG_DI_FLAG__",Pa="ngTempTokenPath",u0=/\n/gm,cm="__source";let uo;function rr(e){const n=uo;return uo=e,n}function h0(e,n=ee.Default){if(void 0===uo)throw new I(-203,!1);return null===uo?lm(e,void 0,n):uo.get(e,n&ee.Optional?null:void 0,n)}function k(e,n=ee.Default){return(am()||h0)(V(e),n)}function M(e,n=ee.Default){return k(e,Fa(n))}function Fa(e){return typeof e>"u"||"number"==typeof e?e:(e.optional&&8)|(e.host&&1)|(e.self&&2)|(e.skipSelf&&4)}function Wu(e){const n=[];for(let t=0;tArray.isArray(t)?fo(t,n):n(t))}function dm(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 Ot(e,n,t){let r=ho(e,n);return r>=0?e[1|r]=t:(r=~r,function fm(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 Qu(e,n){const t=ho(e,n);if(t>=0)return e[1|t]}function ho(e,n){return function hm(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<n){s=i-1;break}}}for(;i-1){let i;for(;++oi?"":o[u+1].toLowerCase(),2&r&&c!==d){if(Kt(r))return!1;s=!0}}}}else{if(!s&&!Kt(r)&&!Kt(l))return!1;if(s&&Kt(l))continue;s=!1,r=l|1&r}}return Kt(r)||s}function Kt(e){return!(1&e)}function I0(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&&!Kt(s)&&(n+=Cm(i,o),o=""),r=s,i=i||!Kt(r);t++}return""!==o&&(n+=Cm(i,o)),n}function kt(e){return Vn(()=>{const n=wm(e),t={...n,decls:e.decls,vars:e.vars,template:e.template,consts:e.consts||null,ngContentSelectors:e.ngContentSelectors,onPush:e.changeDetection===Ha.OnPush,directiveDefs:null,pipeDefs:null,dependencies:n.standalone&&e.dependencies||null,getStandaloneInjector:null,signals:e.signals??!1,data:e.data||{},encapsulation:e.encapsulation||Jt.Emulated,styles:e.styles||ie,_:null,schemas:e.schemas||null,tView:null,id:""};bm(t);const r=e.dependencies;return t.directiveDefs=$a(r,!1),t.pipeDefs=$a(r,!0),t.id=function F0(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 O0(e){return Y(e)||Ze(e)}function k0(e){return null!==e}function or(e){return Vn(()=>({type:e.type,bootstrap:e.bootstrap||ie,declarations:e.declarations||ie,imports:e.imports||ie,exports:e.exports||ie,transitiveCompileScopes:null,schemas:e.schemas||null,id:e.id||null}))}function Dm(e,n){if(null==e)return gn;const t={};for(const r in e)if(e.hasOwnProperty(r)){const o=e[r];let i,s,a=Me.None;Array.isArray(o)?(a=o[0],i=o[1],s=o[2]??i):(i=o,s=o),n?(t[i]=a!==Me.None?[r,a]:r,n[i]=s):t[i]=r}return t}function $(e){return Vn(()=>{const n=wm(e);return bm(n),n})}function Y(e){return e[ki]||null}function Ze(e){return e[Hu]||null}function rt(e){return e[$u]||null}function it(e,n){const t=e[im]||null;if(!t&&!0===n)throw new Error(`Type ${We(e)} does not have '\u0275mod' property.`);return t}function wm(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||gn,exportAs:e.exportAs||null,standalone:!0===e.standalone,signals:!0===e.signals,selectors:e.selectors||ie,viewQuery:e.viewQuery||null,features:e.features||null,setInput:null,findHostDirectiveDefs:null,hostDirectives:null,inputs:Dm(e.inputs,n),outputs:Dm(e.outputs),debugInfo:null}}function bm(e){e.features?.forEach(n=>n(e))}function $a(e,n){if(!e)return null;const t=n?rt:O0;return()=>("function"==typeof e?e():e).map(r=>t(r)).filter(k0)}function ji(e){return{\u0275providers:e}}function Em(...e){return{\u0275providers:Ku(0,e),\u0275fromNgModule:!0}}function Ku(e,...n){const t=[],r=new Set;let o;const i=s=>{t.push(s)};return fo(n,s=>{const a=s;Ga(a,i,[],r)&&(o||=[],o.push(a))}),void 0!==o&&Im(o,i),t}function Im(e,n){for(let t=0;t{n(i,r)})}}function Ga(e,n,t,r){if(!(e=V(e)))return!1;let o=null,i=Oa(e);const s=!i&&Y(e);if(i||s){if(s&&!s.standalone)return!1;o=e}else{const l=e.ngModule;if(i=Oa(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)Ga(c,n,t,r)}}else{if(!i)return!1;{if(null!=i.imports&&!a){let c;r.add(o);try{fo(i.imports,u=>{Ga(u,n,t,r)&&(c||=[],c.push(u))})}finally{}void 0!==c&&Im(c,n)}if(!a){const c=Rr(o)||(()=>new o);n({provide:o,useFactory:c,deps:ie},o),n({provide:Yu,useValue:o,multi:!0},o),n({provide:xr,useValue:()=>k(o),multi:!0},o)}const l=i.providers;if(null!=l&&!a){const c=e;ed(l,u=>{n(u,c)})}}}return o!==e&&void 0!==e.providers}function ed(e,n){for(let t of e)Bu(t)&&(t=t.\u0275providers),Array.isArray(t)?ed(t,n):n(t)}const L0=fe({provide:String,useValue:fe});function td(e){return null!==e&&"object"==typeof e&&L0 in e}function Or(e){return"function"==typeof e}const nd=new R(""),za={},j0={};let rd;function qa(){return void 0===rd&&(rd=new Ba),rd}class ft{}class po extends ft{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,id(n,s=>this.processProvider(s)),this.records.set(pm,go(void 0,this)),o.has("environment")&&this.records.set(ft,go(void 0,this));const i=this.records.get(nd);null!=i&&"string"==typeof i.value&&this.scopes.add(i.value),this.injectorDefTypes=new Set(this.get(Yu,ie,ee.Self))}destroy(){this.assertNotDestroyed(),this._destroyed=!0;const n=Q(null);try{for(const r of this._ngOnDestroyHooks)r.ngOnDestroy();const t=this._onDestroyHooks;this._onDestroyHooks=[];for(const r of t)r()}finally{this.records.clear(),this._ngOnDestroyHooks.clear(),this.injectorDefTypes.clear(),Q(n)}}onDestroy(n){return this.assertNotDestroyed(),this._onDestroyHooks.push(n),()=>this.removeOnDestroy(n)}runInContext(n){this.assertNotDestroyed();const t=rr(this),r=wt(void 0);try{return n()}finally{rr(t),wt(r)}}get(n,t=Fi,r=ee.Default){if(this.assertNotDestroyed(),n.hasOwnProperty(sm))return n[sm](this);r=Fa(r);const i=rr(this),s=wt(void 0);try{if(!(r&ee.SkipSelf)){let l=this.records.get(n);if(void 0===l){const c=function G0(e){return"function"==typeof e||"object"==typeof e&&e instanceof R}(n)&&xa(n);l=c&&this.injectableDefInScope(c)?go(od(n),za):null,this.records.set(n,l)}if(null!=l)return this.hydrate(n,l)}return(r&ee.Self?qa():this.parent).get(n,t=r&ee.Optional&&t===Fi?null:t)}catch(a){if("NullInjectorError"===a.name){if((a[Pa]=a[Pa]||[]).unshift(We(n)),i)throw a;return function g0(e,n,t,r){const o=e[Pa];throw n[cm]&&o.unshift(n[cm]),e.message=function m0(e,n,t,r=null){e=e&&"\n"===e.charAt(0)&&"\u0275"==e.charAt(1)?e.slice(2):e;let o=We(n);if(Array.isArray(n))o=n.map(We).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):We(a)))}o=`{${i.join(", ")}}`}return`${t}${r?"("+r+")":""}[${o}]: ${e.replace(u0,"\n ")}`}("\n"+e.message,o,t,r),e.ngTokenPath=o,e[Pa]=null,e}(a,n,"R3InjectorError",this.source)}throw a}finally{wt(s),rr(i)}}resolveInjectorInitializers(){const n=Q(null),t=rr(this),r=wt(void 0);try{const i=this.get(xr,ie,ee.Self);for(const s of i)s()}finally{rr(t),wt(r),Q(n)}}toString(){const n=[],t=this.records;for(const r of t.keys())n.push(We(r));return`R3Injector[${n.join(", ")}]`}assertNotDestroyed(){if(this._destroyed)throw new I(205,!1)}processProvider(n){let t=Or(n=V(n))?n:V(n&&n.provide);const r=function B0(e){return td(e)?go(void 0,e.useValue):go(Tm(e),za)}(n);if(!Or(n)&&!0===n.multi){let o=this.records.get(t);o||(o=go(void 0,za,!0),o.factory=()=>Wu(o.multi),this.records.set(t,o)),t=n,o.multi.push(n)}this.records.set(t,r)}hydrate(n,t){const r=Q(null);try{return t.value===za&&(t.value=j0,t.value=t.factory()),"object"==typeof t.value&&t.value&&function $0(e){return null!==e&&"object"==typeof e&&"function"==typeof e.ngOnDestroy}(t.value)&&this._ngOnDestroyHooks.add(t.value),t.value}finally{Q(r)}}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 od(e){const n=xa(e),t=null!==n?n.factory:Rr(e);if(null!==t)return t;if(e instanceof R)throw new I(204,!1);if(e instanceof Function)return function U0(e){if(e.length>0)throw new I(204,!1);const t=function n0(e){return e&&(e[ka]||e[rm])||null}(e);return null!==t?()=>t.factory(e):()=>new e}(e);throw new I(204,!1)}function Tm(e,n,t){let r;if(Or(e)){const o=V(e);return Rr(o)||od(o)}if(td(e))r=()=>V(e.useValue);else if(function Sm(e){return!(!e||!e.useFactory)}(e))r=()=>e.useFactory(...Wu(e.deps||[]));else if(function Mm(e){return!(!e||!e.useExisting)}(e))r=()=>k(V(e.useExisting));else{const o=V(e&&(e.useClass||e.provide));if(!function H0(e){return!!e.deps}(e))return Rr(o)||od(o);r=()=>new o(...Wu(e.deps))}return r}function go(e,n,t=!1){return{factory:e,value:n,multi:t?[]:void 0}}function id(e,n){for(const t of e)Array.isArray(t)?id(t,n):t&&Bu(t)?id(t.\u0275providers,n):n(t)}function mn(e,n){e instanceof po&&e.assertNotDestroyed();const r=rr(e),o=wt(void 0);try{return n()}finally{rr(r),wt(o)}}function Am(){return void 0!==am()||null!=function f0(){return uo}()}const Se=0,A=1,P=2,ke=3,en=4,st=5,Pt=6,vo=7,_e=8,He=9,tn=10,j=11,Bi=12,Rm=13,yo=14,Ne=15,Hi=16,_o=17,Bn=18,$i=19,xm=20,sr=21,Qa=22,kr=23,z=25,ad=1,vn=7,Co=9,Pe=10;var ld=function(e){return e[e.None=0]="None",e[e.HasTransplantedViews=2]="HasTransplantedViews",e}(ld||{});function at(e){return Array.isArray(e)&&"object"==typeof e[ad]}function lt(e){return Array.isArray(e)&&!0===e[ad]}function cd(e){return!!(4&e.flags)}function Pr(e){return e.componentOffset>-1}function Xa(e){return!(1&~e.flags)}function nn(e){return!!e.template}function ud(e){return!!(512&e[P])}class rS{constructor(n,t,r){this.previousValue=n,this.currentValue=t,this.firstChange=r}isFirstChange(){return this.firstChange}}function Fm(e,n,t,r){null!==n?n.applyValueToInputSignal(n,r):e[t]=r}function zt(){return Lm}function Lm(e){return e.type.prototype.ngOnChanges&&(e.setInput=iS),oS}function oS(){const e=jm(this),n=e?.current;if(n){const t=e.previous;if(t===gn)e.previous=n;else for(let r in n)t[r]=n[r];e.current=null,this.ngOnChanges(n)}}function iS(e,n,t,r,o){const i=this.declaredInputs[r],s=jm(e)||function sS(e,n){return e[Vm]=n}(e,{previous:gn,current:null}),a=s.current||(s.current={}),l=s.previous,c=l[i];a[i]=new rS(c&&c.currentValue,t,l===gn),Fm(e,n,o,t)}zt.ngInherit=!0;const Vm="__ngSimpleChanges__";function jm(e){return e[Vm]||null}const yn=function(e,n,t){};let Hm=!1;function ge(e){for(;Array.isArray(e);)e=e[Se];return e}function zi(e,n){return ge(n[e])}function ht(e,n){return ge(n[e.index])}function qi(e,n){return e.data[n]}function Ft(e,n){const t=n[e];return at(t)?t:t[Se]}function gd(e){return!(128&~e[P])}function _n(e,n){return null==n?null:e[n]}function $m(e){e[_o]=0}function fS(e){1024&e[P]||(e[P]|=1024,gd(e)&&Wi(e))}function md(e){return!!(9216&e[P]||e[kr]?.dirty)}function vd(e){e[tn].changeDetectionScheduler?.notify(1),md(e)?Wi(e):64&e[P]&&(function lS(){return Hm}()?(e[P]|=1024,Wi(e)):e[tn].changeDetectionScheduler?.notify())}function Wi(e){e[tn].changeDetectionScheduler?.notify();let n=Fr(e);for(;null!==n&&!(8192&n[P])&&(n[P]|=8192,gd(n));)n=Fr(n)}function Ja(e,n){if(!(256&~e[P]))throw new I(911,!1);null===e[sr]&&(e[sr]=[]),e[sr].push(n)}function Fr(e){const n=e[ke];return lt(n)?n[ke]:n}const U={lFrame:Km(null),bindingsEnabled:!0,skipHydrationRootTNode:null};function qm(){return U.bindingsEnabled}function E(){return U.lFrame.lView}function te(){return U.lFrame.tView}function J(e){return U.lFrame.contextLView=e,e[_e]}function K(e){return U.lFrame.contextLView=null,e}function he(){let e=Wm();for(;null!==e&&64===e.type;)e=e.parent;return e}function Wm(){return U.lFrame.currentTNode}function Cn(e,n){const t=U.lFrame;t.currentTNode=e,t.isParent=n}function _d(){return U.lFrame.isParent}function Cd(){U.lFrame.isParent=!1}function pt(){const e=U.lFrame;let n=e.bindingRootIndex;return-1===n&&(n=e.bindingRootIndex=e.tView.bindingStartIndex),n}function rn(){return U.lFrame.bindingIndex++}function bS(e,n){const t=U.lFrame;t.bindingIndex=t.bindingRootIndex=e,Dd(n)}function Dd(e){U.lFrame.currentDirectiveIndex=e}function bd(){return U.lFrame.currentQueryIndex}function Ka(e){U.lFrame.currentQueryIndex=e}function IS(e){const n=e[A];return 2===n.type?n.declTNode:1===n.type?e[st]:null}function Xm(e,n,t){if(t&ee.SkipSelf){let o=n,i=e;for(;!(o=o.parent,null!==o||t&ee.Host||(o=IS(i),null===o||(i=i[yo],10&o.type))););if(null===o)return!1;n=o,e=i}const r=U.lFrame=Jm();return r.currentTNode=n,r.lView=e,!0}function Ed(e){const n=Jm(),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 Jm(){const e=U.lFrame,n=null===e?null:e.child;return null===n?Km(e):n}function Km(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 ev(){const e=U.lFrame;return U.lFrame=e.parent,e.currentTNode=null,e.lView=null,e}const tv=ev;function Id(){const e=ev();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 ct(){return U.lFrame.selectedIndex}function Lr(e){U.lFrame.selectedIndex=e}function Ce(){const e=U.lFrame;return qi(e.tView,e.selectedIndex)}let rv=!0;function Qi(){return rv}function Dn(e){rv=e}function el(e,n){for(let t=n.directiveStart,r=n.directiveEnd;t=r)break}else n[l]<0&&(e[_o]+=65536),(a>14>16&&(3&e[P])===n&&(e[P]+=16384,iv(a,i)):iv(a,i)}const bo=-1;class Yi{constructor(n,t,r){this.factory=n,this.resolving=!1,this.canSeeViewProviders=t,this.injectImpl=r}}function Td(e){return e!==bo}function Xi(e){return 32767&e}function Ji(e,n){let t=function LS(e){return e>>16}(e),r=n;for(;t>0;)r=r[yo],t--;return r}let Ad=!0;function rl(e){const n=Ad;return Ad=e,n}const sv=255,av=5;let VS=0;const wn={};function ol(e,n){const t=lv(e,n);if(-1!==t)return t;const r=n[A];r.firstCreatePass&&(e.injectorIndex=n.length,Nd(r.data,e),Nd(n,null),Nd(r.blueprint,null));const o=il(e,n),i=e.injectorIndex;if(Td(o)){const s=Xi(o),a=Ji(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 Nd(e,n){e.push(0,0,0,0,0,0,0,0,n)}function lv(e,n){return-1===e.injectorIndex||e.parent&&e.parent.injectorIndex===e.injectorIndex||null===n[e.injectorIndex+8]?-1:e.injectorIndex}function il(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=gv(o),null===r)return bo;if(t++,o=o[yo],-1!==r.injectorIndex)return r.injectorIndex|t<<16}return bo}function Rd(e,n,t){!function jS(e,n,t){let r;"string"==typeof t?r=t.charCodeAt(0)||0:t.hasOwnProperty(Pi)&&(r=t[Pi]),null==r&&(r=t[Pi]=VS++);const o=r&sv;n.data[e+(o>>av)]|=1<=0?n&sv:$S:n}(t);if("function"==typeof i){if(!Xm(n,e,r))return r&ee.Host?cv(o,0,r):uv(n,t,r,o);try{let s;if(s=i(r),null!=s||r&ee.Optional)return s;Gu()}finally{tv()}}else if("number"==typeof i){let s=null,a=lv(e,n),l=bo,c=r&ee.Host?n[Ne][st]:null;for((-1===a||r&ee.SkipSelf)&&(l=-1===a?il(e,n):n[a+8],l!==bo&&pv(r,!1)?(s=n[A],a=Xi(l),n=Ji(l,n)):a=-1);-1!==a;){const u=n[A];if(hv(i,a,u.data)){const d=BS(a,n,t,s,r,c);if(d!==wn)return d}l=n[a+8],l!==bo&&pv(r,n[A].data[a+8]===c)&&hv(i,a,n)?(s=u,a=Xi(l),n=Ji(l,n)):a=-1}}return o}function BS(e,n,t,r,o,i){const s=n[A],a=s.data[e+8],u=sl(a,s,t,null==r?Pr(a)&&Ad:r!=s&&!!(3&a.type),o&ee.Host&&i===a);return null!==u?Vr(n,s,u,a):wn}function sl(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&&nn(m)&&m.type===t)return l}return null}function Vr(e,n,t,r){let o=e[t];const i=n.data;if(function OS(e){return e instanceof Yi}(o)){const s=o;s.resolving&&function a0(e,n){throw n&&n.join(" > "),new I(-200,e)}(function se(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=rl(s.canSeeViewProviders);s.resolving=!0;const c=s.injectImpl?wt(s.injectImpl):null;Xm(e,r,ee.Default);try{o=e[t]=s.factory(void 0,i,e,r),n.firstCreatePass&&t>=r.directiveStart&&function RS(e,n,t){const{ngOnChanges:r,ngOnInit:o,ngDoCheck:i}=n.type.prototype;if(r){const s=Lm(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&&wt(c),rl(a),s.resolving=!1,tv()}}return o}function hv(e,n,t){return!!(t[n+(e>>av)]&1<{const n=e.prototype.constructor,t=n[Un]||xd(n),r=Object.prototype;let o=Object.getPrototypeOf(e.prototype).constructor;for(;o&&o!==r;){const i=o[Un]||xd(o);if(i&&i!==t)return i;o=Object.getPrototypeOf(o)}return i=>new i})}function xd(e){return Ra(e)?()=>{const n=xd(V(e));return n&&n()}:Rr(e)}function gv(e){const n=e[A],t=n.type;return 2===t?n.declTNode:1===t?e[st]:null}function Cv(e,n=null,t=null,r){const o=Dv(e,n,t,r);return o.resolveInjectorInitializers(),o}function Dv(e,n=null,t=null,r,o=new Set){const i=[t||ie,Em(e)];return r=r||("object"==typeof e?void 0:We(e)),new po(i,n||qa(),r||null,o)}let gt=(()=>{class e{static#e=this.THROW_IF_NOT_FOUND=Fi;static#t=this.NULL=new Ba;static create(t,r){if(Array.isArray(t))return Cv({name:""},r,t,"");{const o=t.name??"";return Cv({name:o},t.parent,t.providers,o)}}static#n=this.\u0275prov=x({token:e,providedIn:"any",factory:()=>k(pm)});static#r=this.__NG_ELEMENT_ID__=-1}return e})();function kd(e){return e.ngOriginalError}class bn{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&&kd(n);for(;t&&kd(t);)t=kd(t);return t||null}}const bv=new R("",{providedIn:"root",factory:()=>M(bn).handleError.bind(void 0)});let Mo=(()=>{class e{static#e=this.__NG_ELEMENT_ID__=KS;static#t=this.__NG_ENV_ID__=t=>t}return e})();class JS extends Mo{constructor(n){super(),this._lView=n}onDestroy(n){return Ja(this._lView,n),()=>function yd(e,n){if(null===e[sr])return;const t=e[sr].indexOf(n);-1!==t&&e[sr].splice(t,1)}(this._lView,n)}}function KS(){return new JS(E())}function eT(){return So(he(),E())}function So(e,n){return new Lt(ht(e,n))}let Lt=(()=>{class e{constructor(t){this.nativeElement=t}static#e=this.__NG_ELEMENT_ID__=eT}return e})();function Iv(e){return e instanceof Lt?e.nativeElement:e}function Pd(e){return n=>{setTimeout(e,void 0,n)}}const Re=class tT extends $t{constructor(n=!1){super(),this.destroyRef=void 0,this.__isAsync=n,Am()&&(this.destroyRef=M(Mo,{optional:!0})??void 0)}emit(n){const t=Q(null);try{super.next(n)}finally{Q(t)}}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=Pd(i),o&&(o=Pd(o)),s&&(s=Pd(s)));const a=super.subscribe({next:o,error:i,complete:s});return n instanceof Dt&&n.add(a),a}};function nT(){return this._results[Symbol.iterator]()}class Fd{static#e=Symbol.iterator;get changes(){return this._changes??=new Re}constructor(n=!1){this._emitDistinctChangesOnly=n,this.dirty=!0,this._onDirty=void 0,this._results=[],this._changesDetected=!1,this._changes=void 0,this.length=0,this.first=void 0,this.last=void 0;const t=Fd.prototype;t[Symbol.iterator]||(t[Symbol.iterator]=nT)}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 bt(e){return e.flat(Number.POSITIVE_INFINITY)}(n);(this._changesDetected=!function C0(e,n,t){if(e.length!==n.length)return!1;for(let r=0;rET}),ET="ng",zv=new R(""),lr=new R("",{providedIn:"platform",factory:()=>"unknown"}),qv=new R("",{providedIn:"root",factory:()=>function ar(){if(void 0!==Ud)return Ud;if(typeof document<"u")return document;throw new I(210,!1)}().body?.querySelector("[ngCspNonce]")?.getAttribute("ngCspNonce")||null});let Wv=()=>null;function Zd(e,n,t=!1){return Wv(e,n,t)}const Jv=new R("",{providedIn:"root",factory:()=>!1});let _l;function ny(e){return function Kd(){if(void 0===_l&&(_l=null,ue.trustedTypes))try{_l=ue.trustedTypes.createPolicy("angular#unsafe-bypass",{createHTML:e=>e,createScript:e=>e,createScriptURL:e=>e})}catch{}return _l}()?.createScriptURL(e)||e}class ry{constructor(n){this.changingThisBreaksApplicationSecurity=n}toString(){return`SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity} (see ${Jg})`}}function cr(e){return e instanceof ry?e.changingThisBreaksApplicationSecurity:e}function ss(e,n){const t=function $T(e){return e instanceof ry&&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 ${Jg})`)}return t===n}const WT=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:\/?#]*(?:[\/?#]|$))/i;var Ro=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}(Ro||{});function xo(e){const n=ls();return n?n.sanitize(Ro.URL,e)||"":ss(e,"URL")?cr(e):function ef(e){return(e=String(e)).match(WT)?e:"unsafe:"+e}(G(e))}function fy(e){const n=ls();if(n)return ny(n.sanitize(Ro.RESOURCE_URL,e)||"");if(ss(e,"ResourceURL"))return ny(cr(e));throw new I(904,!1)}function ls(){const e=E();return e&&e[tn].sanitizer}const cA=/^>|^->||--!>|)/g,dA="\u200b$1\u200b";function Vt(e){return e instanceof Function?e():e}var ur=function(e){return e[e.Important=1]="Important",e[e.DashCase=2]="DashCase",e}(ur||{});let cf;function uf(e,n){return cf(e,n)}function ko(e,n,t,r,o){if(null!=r){let i,s=!1;lt(r)?i=r:at(r)&&(s=!0,r=r[Se]);const a=ge(r);0===e&&null!==t?null==o?Iy(n,t,a):jr(n,t,a,o||null,!0):1===e&&null!==t?jr(n,t,a,o||null,!0):2===e?function ds(e,n,t){const r=Il(e,n);r&&function NA(e,n,t,r){e.removeChild(n,t,r)}(e,r,n,t)}(n,a,s):3===e&&n.destroyNode(a),null!=i&&function OA(e,n,t,r,o){const i=t[vn];i!==ge(t)&&ko(n,e,r,i,o);for(let a=Pe;an.replace(uA,dA))}(n))}function bl(e,n,t){return e.createElement(n,t)}function wy(e,n){n[tn].changeDetectionScheduler?.notify(1),Sl(e,n,n[j],2,null,null)}function by(e,n){const t=e[Co],r=t.indexOf(n);t.splice(r,1)}function cs(e,n){if(e.length<=Pe)return;const t=Pe+n,r=e[t];if(r){const o=r[Hi];null!==o&&o!==e&&by(o,r),n>0&&(e[t-1][en]=r[en]);const i=ja(e,Pe+n);!function bA(e,n){wy(e,n),n[Se]=null,n[st]=null}(r[A],r);const s=i[Bn];null!==s&&s.detachView(i[A]),r[ke]=null,r[en]=null,r[P]&=-129}return r}function El(e,n){if(!(256&n[P])){const t=n[j];t.destroyNode&&Sl(e,n,t,3,null,null),function IA(e){let n=e[Bi];if(!n)return hf(e[A],e);for(;n;){let t=null;if(at(n))t=n[Bi];else{const r=n[Pe];r&&(t=r)}if(!t){for(;n&&!n[en]&&n!==e;)at(n)&&hf(n[A],n),n=n[ke];null===n&&(n=e),at(n)&&hf(n[A],n),t=n&&n[en]}n=t}}(n)}}function hf(e,n){if(256&n[P])return;const t=Q(null);try{n[P]&=-129,n[P]|=256,n[kr]&&function Vg(e){if(oo(e),Oi(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[vo]=null);const o=n[sr];if(null!==o){n[sr]=null;for(let i=0;i-1){const{encapsulation:i}=e.data[r.directiveStart+o];if(i===Jt.None||i===Jt.Emulated)return null}return ht(r,t)}}(e,n.parent,t)}function jr(e,n,t,r,o){e.insertBefore(n,t,r,o)}function Iy(e,n,t){e.appendChild(n,t)}function My(e,n,t,r,o){null!==r?jr(e,n,t,r,o):Iy(e,n,t)}function Il(e,n){return e.parentNode(n)}let gf,Ay=function Ty(e,n,t){return 40&e.type?ht(e,t):null};function Ml(e,n,t,r){const o=pf(e,r,n),i=n[j],a=function Sy(e,n,t){return Ay(e,n,t)}(r.parent||n[st],r,n);if(null!=o)if(Array.isArray(t))for(let l=0;lz&&Fy(e,n,z,!1),yn(s?2:0,o),t(r,o)}finally{Lr(i),yn(s?3:1,o)}}function _f(e,n,t){if(cd(n)){const r=Q(null);try{const i=n.directiveEnd;for(let s=n.directiveStart;snull;function Hy(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=Me.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?$y(r,t,c,a,l):$y(r,t,c,a)}return r}function $y(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 Mt(e,n,t,r,o,i,s,a){const l=ht(n,t);let u,c=n.inputs;!a&&null!=c&&(u=c[r])?(Sf(e,t,u,r,o),Pr(n)&&function qA(e,n){const t=Ft(n,e);16&t[P]||(t[P]|=64)}(t,n.index)):3&n.type&&(r=function zA(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 bf(e,n,t,r){if(qm()){const o=null===r?null:{"":-1},i=function JA(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,fs(e,t,o.hostVars,W),o)}function En(e,n,t,r,o,i){const s=ht(e,n);!function If(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[j],s,i,e.value,t,r,o)}function oN(e,n,t,r,o,i){const s=i[n];if(null!==s)for(let a=0;a0&&(t[o-1][en]=n),r!1,producerRecomputeValue:()=>{},consumerMarkedDirty:()=>{},consumerOnSignalRead:()=>{},consumerIsAlwaysLive:!0,consumerMarkedDirty:e=>{Wi(e.lView)},consumerOnSignalRead(){this.lView[kr]=this}},e_=100;function Rl(e,n=!0,t=0){const r=e[tn],o=r.rendererFactory;o.begin?.();try{!function hN(e,n){Nf(e,n);let t=0;for(;md(e);){if(t===e_)throw new I(103,!1);t++,Nf(e,1)}}(e,t)}catch(s){throw n&&Nl(e,s),s}finally{o.end?.(),r.inlineEffectRunner?.flush()}}function pN(e,n,t,r){const o=n[P];if(!(256&~o))return;n[tn].inlineEffectRunner?.flush(),Ed(n);let s=null,a=null;(function gN(e){return 2!==e.type})(e)&&(a=function cN(e){return e[kr]??function uN(e){const n=Ky.pop()??Object.create(fN);return n.lView=e,n}(e)}(n),s=function Fg(e){return e&&(e.nextProducerIndex=0),Q(e)}(a));try{$m(n),function Qm(e){return U.lFrame.bindingIndex=e}(e.bindingStartIndex),null!==t&&jy(e,n,t,2,r);const l=!(3&~o);if(l){const d=e.preOrderCheckHooks;null!==d&&tl(n,d,null)}else{const d=e.preOrderHooks;null!==d&&nl(n,d,0,null),Md(n,0)}if(function mN(e){for(let n=Pv(e);null!==n;n=Fv(n)){if(!(n[P]&ld.HasTransplantedViews))continue;const t=n[Co];for(let r=0;re.nextProducerIndex;)e.producerNode.pop(),e.producerLastReadVersion.pop(),e.producerIndexOfThis.pop()}}(a,s),function dN(e){e.lView[kr]!==e&&(e.lView=null,Ky.push(e))}(a)),Id()}}function t_(e,n){for(let t=Pv(e);null!==t;t=Fv(t))for(let r=Pe;r-1&&(cs(n,r),ja(t,r))}this._attachedToViewContainer=!1}El(this._lView[A],this._lView)}onDestroy(n){Ja(this._lView,n)}markForCheck(){ms(this._cdRefInjectingView||this._lView)}detach(){this._lView[P]&=-129}reattach(){vd(this._lView),this._lView[P]|=128}detectChanges(){this._lView[P]|=1024,Rl(this._lView,this.notifyErrorHandler)}checkNoChanges(){}attachToViewContainerRef(){if(this._appRef)throw new I(902,!1);this._attachedToViewContainer=!0}detachFromAppRef(){this._appRef=null,wy(this._lView[A],this._lView)}attachToAppRef(n){if(this._attachedToViewContainer)throw new I(902,!1);this._appRef=n,vd(this._lView)}}let qn=(()=>{class e{static#e=this.__NG_ELEMENT_ID__=CN}return e})();const yN=qn,_N=class extends yN{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=hs(this._declarationLView,this._declarationTContainer,n,{embeddedViewInjector:t,dehydratedView:r});return new vs(o)}};function CN(){return xl(he(),E())}function xl(e,n){return 4&e.type?new _N(n,e,So(e,n)):null}let c_=()=>null;function Lo(e,n){return c_(e,n)}class Ff{}class GN{}class u_{}class qN{resolveComponentFactory(n){throw function zN(e){const n=Error(`No component factory found for ${We(e)}.`);return n.ngComponent=e,n}(n)}}let Ll=(()=>{class e{static#e=this.NULL=new qN}return e})();class f_{}let Wn=(()=>{class e{constructor(){this.destroyNode=null}static#e=this.__NG_ELEMENT_ID__=()=>function WN(){const e=E(),t=Ft(he().index,e);return(at(t)?t:e)[j]}()}return e})(),ZN=(()=>{class e{static#e=this.\u0275prov=x({token:e,providedIn:"root",factory:()=>null})}return e})();const Lf={},h_=new Set;function In(e){h_.has(e)||(h_.add(e),performance?.mark?.("mark_feature_usage",{detail:{feature:e}}))}function p_(...e){}class de{constructor({enableLongStackTrace:n=!1,shouldCoalesceEventChangeDetection:t=!1,shouldCoalesceRunChangeDetection:r=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new Re(!1),this.onMicrotaskEmpty=new Re(!1),this.onStable=new Re(!1),this.onError=new Re(!1),typeof Zone>"u")throw new I(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 QN(){const e="function"==typeof ue.requestAnimationFrame;let n=ue[e?"requestAnimationFrame":"setTimeout"],t=ue[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 JN(e){const n=()=>{!function XN(e){e.isCheckStableRunning||-1!==e.lastRequestAnimationFrameId||(e.lastRequestAnimationFrameId=e.nativeRequestAnimationFrame.call(ue,()=>{e.fakeTopEventTask||(e.fakeTopEventTask=Zone.root.scheduleEventTask("fakeTopEventTask",()=>{e.lastRequestAnimationFrameId=-1,jf(e),e.isCheckStableRunning=!0,Vf(e),e.isCheckStableRunning=!1},void 0,()=>{},()=>{})),e.fakeTopEventTask.invoke()}),jf(e))}(e)};e._inner=e._inner.fork({name:"angular",properties:{isAngularZone:!0},onInvokeTask:(t,r,o,i,s,a)=>{if(function KN(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 g_(e),t.invokeTask(o,i,s,a)}finally{(e.shouldCoalesceEventChangeDetection&&"eventTask"===i.type||e.shouldCoalesceRunChangeDetection)&&n(),m_(e)}},onInvoke:(t,r,o,i,s,a,l)=>{try{return g_(e),t.invoke(o,i,s,a,l)}finally{e.shouldCoalesceRunChangeDetection&&n(),m_(e)}},onHasTask:(t,r,o,i)=>{t.hasTask(o,i),r===o&&("microTask"==i.change?(e._hasPendingMicrotasks=i.microTask,jf(e),Vf(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(!de.isInAngularZone())throw new I(909,!1)}static assertNotInAngularZone(){if(de.isInAngularZone())throw new I(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,YN,p_,p_);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 YN={};function Vf(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 jf(e){e.hasPendingMicrotasks=!!(e._hasPendingMicrotasks||(e.shouldCoalesceEventChangeDetection||e.shouldCoalesceRunChangeDetection)&&-1!==e.lastRequestAnimationFrameId)}function g_(e){e._nesting++,e.isStable&&(e.isStable=!1,e.onUnstable.emit(null))}function m_(e){e._nesting--,Vf(e)}var Ur=function(e){return e[e.EarlyRead=0]="EarlyRead",e[e.Write=1]="Write",e[e.MixedReadWrite=2]="MixedReadWrite",e[e.Read=3]="Read",e}(Ur||{});const y_={destroy(){}};function Bf(e,n){!n&&function Wa(e){if(!Am())throw new I(-203,!1)}();const t=n?.injector??M(gt);if(!function on(e){return"browser"===(e??M(gt)).get(lr)}(t))return y_;In("NgAfterNextRender");const r=t.get(ws),o=r.handler??=new C_,i=n?.phase??Ur.MixedReadWrite,s=()=>{o.unregister(l),a()},a=t.get(Mo).onDestroy(s),l=mn(t,()=>new __(i,()=>{s(),e()}));return o.register(l),{destroy:s}}class __{constructor(n,t){this.phase=n,this.callbackFn=t,this.zone=M(de),this.errorHandler=M(bn,{optional:!0}),M(Ff,{optional:!0})?.notify(1)}invoke(){try{this.zone.runOutsideAngular(this.callbackFn)}catch(n){this.errorHandler?.handleError(n)}}}class C_{constructor(){this.executingCallbacks=!1,this.buckets={[Ur.EarlyRead]:new Set,[Ur.Write]:new Set,[Ur.MixedReadWrite]:new Set,[Ur.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(){this.executingCallbacks=!0;for(const n of Object.values(this.buckets))for(const t of n)t.invoke();this.executingCallbacks=!1;for(const n of this.deferredCallbacks)this.buckets[n.phase].add(n);this.deferredCallbacks.clear()}destroy(){for(const n of Object.values(this.buckets))n.clear();this.deferredCallbacks.clear()}}let ws=(()=>{class e{constructor(){this.handler=null,this.internalCallbacks=[]}execute(){this.executeInternalCallbacks(),this.handler?.execute()}executeInternalCallbacks(){const t=[...this.internalCallbacks];this.internalCallbacks.length=0;for(const r of t)r()}ngOnDestroy(){this.handler?.destroy(),this.handler=null,this.internalCallbacks.length=0}static#e=this.\u0275prov=x({token:e,providedIn:"root",factory:()=>new e})}return e})();function jl(e,n,t){let r=t?e.styles:null,o=t?e.classes:null,i=0;if(null!==n)for(let s=0;s0&&ky(e,t,i.join(" "))}}(m,ce,_,r),void 0!==t&&function dR(e,n,t){const r=e.projection=[];for(let o=0;o{class e{static#e=this.__NG_ELEMENT_ID__=hR}return e})();function hR(){return S_(he(),E())}const pR=sn,I_=class extends pR{constructor(n,t,r){super(),this._lContainer=n,this._hostTNode=t,this._hostLView=r}get element(){return So(this._hostTNode,this._hostLView)}get injector(){return new Ye(this._hostTNode,this._hostLView)}get parentInjector(){const n=il(this._hostTNode,this._hostLView);if(Td(n)){const t=Ji(n,this._hostLView),r=Xi(n);return new Ye(t[A].data[r+8],t)}return new Ye(null,this._hostLView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(n){const t=M_(this._lContainer);return null!==t&&t[n]||null}get length(){return this._lContainer.length-Pe}createEmbeddedView(n,t,r){let o,i;"number"==typeof r?o=r:null!=r&&(o=r.index,i=r.injector);const s=Lo(this._lContainer,n.ssrId),a=n.createEmbeddedViewImpl(t||{},i,s);return this.insertImpl(a,o,Fo(this._hostTNode,s)),a}createComponent(n,t,r,o,i){const s=n&&!function Ui(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 Is(Y(n)),c=r||this.parentInjector;if(!i&&null==l.ngModule){const _=(s?c:this.parentInjector).get(ft,null);_&&(i=_)}const u=Y(l.componentType??{}),d=Lo(this._lContainer,u?.id??null),m=l.create(c,o,d?.firstChild??null,i);return this.insertImpl(m.hostView,a,Fo(this._hostTNode,d)),m}insert(n,t){return this.insertImpl(n,t,!0)}insertImpl(n,t,r){const o=n._lView;if(function dS(e){return lt(e[ke])}(o)){const a=this.indexOf(n);if(-1!==a)this.detach(a);else{const l=o[ke],c=new I_(l,l[st],l[ke]);c.detach(c.indexOf(n))}}const i=this._adjustIndex(t),s=this._lContainer;return ps(s,o,i,r),n.attachToViewContainerRef(),dm(Gf(s),i,n),n}move(n,t){return this.insert(n,t)}indexOf(n){const t=M_(this._lContainer);return null!==t?t.indexOf(n):-1}remove(n){const t=this._adjustIndex(n,-1),r=cs(this._lContainer,t);r&&(ja(Gf(this._lContainer),t),El(r[A],r))}detach(n){const t=this._adjustIndex(n,-1),r=cs(this._lContainer,t);return r&&null!=ja(Gf(this._lContainer),t)?new vs(r):null}_adjustIndex(n,t=0){return n??this.length+t}};function M_(e){return e[8]}function Gf(e){return e[8]||(e[8]=[])}function S_(e,n){let t;const r=n[e.index];return lt(r)?t=r:(t=qy(r,n,null,e),n[e.index]=t,Al(n,t)),T_(t,n,e,r),new I_(t,e,n)}let T_=function N_(e,n,t,r){if(e[vn])return;let o;o=8&t.type?ge(r):function gR(e,n){const t=e[j],r=t.createComment(""),o=ht(n,e);return jr(t,Il(t,o),r,function RA(e,n){return e.nextSibling(n)}(t,o),!1),r}(n,t),e[vn]=o},zf=()=>!1;class qf{constructor(n){this.queryList=n,this.matches=null}clone(){return new qf(this.queryList)}setDirty(){this.queryList.setDirty()}}class Wf{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;in.trim())}(n):n}}class Zf{constructor(n=[]){this.queries=n}elementStart(n,t){for(let r=0;r0)r.push(s[a/2]);else{const c=i[a+1],u=n[-l];for(let d=Pe;d=0;r--){const o=e[r];o.hostVars=n+=o.hostVars,o.hostAttrs=Vi(o.hostAttrs,t=Vi(t,o.hostAttrs))}}(r)}function PR(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 Hl(e){return e===gn?{}:e===ie?[]:e}function LR(e,n){const t=e.viewQuery;e.viewQuery=t?(r,o)=>{n(r,o),t(r,o)}:n}function VR(e,n){const t=e.contentQueries;e.contentQueries=t?(r,o,i)=>{n(r,o,i),t(r,o,i)}:n}function jR(e,n){const t=e.hostBindings;e.hostBindings=t?(r,o)=>{n(r,o),t(r,o)}:n}function tC(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}class Br{}class nC{}class eh extends Br{constructor(n,t,r){super(),this._parent=t,this._bootstrapComponents=[],this.destroyCbs=[],this.componentFactoryResolver=new b_(this);const o=it(n);this._bootstrapComponents=Vt(o.bootstrap),this._r3Injector=Dv(n,t,[{provide:Br,useValue:this},{provide:Ll,useValue:this.componentFactoryResolver},...r],We(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 th extends nC{constructor(n){super(),this.moduleType=n}create(n){return new eh(this.moduleType,n,[])}}class rC extends Br{constructor(n){super(),this.componentFactoryResolver=new b_(this),this.instance=null;const t=new po([...n.providers,{provide:Br,useValue:this},{provide:Ll,useValue:this.componentFactoryResolver}],n.parent||qa(),n.debugName,new Set(["environment"]));this.injector=t,n.runEnvironmentInitializers&&t.resolveInjectorInitializers()}destroy(){this.injector.destroy()}onDestroy(n){this.injector.onDestroy(n)}}function $l(e,n,t=null){return new rC({providers:e,parent:n,debugName:t,runEnvironmentInitializers:!0}).injector}let hr=(()=>{class e{constructor(){this.taskId=0,this.pendingTasks=new Set,this.hasPendingTasks=new Gt(!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=x({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();function zl(e){return!!function nh(e){return null!==e&&("function"==typeof e||"object"==typeof e)}(e)&&(Array.isArray(e)||!(e instanceof Map)&&Symbol.iterator in e)}function Mn(e,n,t){return e[n]=t}function Fe(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=E(),c=te(),u=e+z,d=c.firstCreatePass?function JR(e,n,t,r,o,i,s,a,l){const c=n.consts,u=Po(n,e,4,s||null,_n(c,a));bf(n,t,u,_n(c,l)),el(n,u);const d=u.tView=wf(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];Cn(d,!1);const g=oC(c,l,d,e);Qi()&&Ml(c,l,g,d),ut(g,l);const m=qy(g,l,g,d);return l[u]=m,Al(l,m),function A_(e,n,t){return zf(e,n,t)}(m,d,l),Xa(d)&&Cf(c,l,d),null!=s&&Df(l,d,a),q}let oC=function iC(e,n,t,r){return Dn(!0),n[j].createComment("")};function an(e,n,t,r){const o=E();return Fe(o,rn(),n)&&(te(),En(Ce(),o,e,n,t,r)),an}function qo(e,n,t,r){return Fe(e,rn(),t)?n+G(t)+r:W}function Jl(e,n){return e<<17|n<<2}function gr(e){return e>>17&32767}function fh(e){return 2|e}function Gr(e){return(131068&e)>>2}function hh(e,n){return-131069&e|n<<2}function ph(e){return 1|e}function FC(e,n,t,r){const o=e[t+1],i=null===n;let s=r?gr(o):Gr(o),a=!1;for(;0!==s&&(!1===a||i);){const c=e[s+1];Vx(e[s],n)&&(a=!0,e[s+1]=r?ph(c):fh(c)),s=r?gr(c):Gr(c)}a&&(e[t+1]=r?fh(o):ph(o))}function Vx(e,n){return null===e||null==n||(Array.isArray(e)?e[1]:e)===n||!(!Array.isArray(e)||"string"!=typeof n)&&ho(e,n)>=0}function S(e,n,t){const r=E();return Fe(r,rn(),n)&&Mt(te(),Ce(),r,e,n,r[j],t,!1),S}function gh(e,n,t,r,o){const s=o?"class":"style";Sf(e,t,n.inputs[s],s,r)}function Kl(e,n){return function ln(e,n,t,r){const o=E(),i=te(),s=function $n(e){const n=U.lFrame,t=n.bindingIndex;return n.bindingIndex=n.bindingIndex+e,t}(2);i.firstUpdatePass&&function zC(e,n,t,r){const o=e.data;if(null===o[t+1]){const i=o[ct()],s=function GC(e,n){return n>=e.expandoStartIndex}(e,t);(function QC(e,n){return!!(e.flags&(n?8:16))})(i,r)&&null===n&&!s&&(n=!1),n=function Wx(e,n,t,r){const o=function wd(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=xs(t=mh(null,e,n,t,r),n.attrs,r),i=null);else{const s=n.directiveStylingLast;if(-1===s||e[s]!==o)if(t=mh(o,e,n,t,r),null===i){let l=function Zx(e,n,t){const r=t?n.classBindings:n.styleBindings;if(0!==Gr(r))return e[gr(r)]}(e,n,r);void 0!==l&&Array.isArray(l)&&(l=mh(null,e,n,l[1],r),l=xs(l,n.attrs,r),function Qx(e,n,t,r){e[gr(t?n.classBindings:n.styleBindings)]=r}(e,n,r,l))}else i=function Yx(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=gr(e[a+1]);e[r+1]=Jl(g,a),0!==g&&(e[g+1]=hh(e[g+1],r)),e[a+1]=function kx(e,n){return 131071&e|n<<17}(e[a+1],r)}else e[r+1]=Jl(a,0),0!==a&&(e[a+1]=hh(e[a+1],r)),a=r;else e[r+1]=Jl(l,0),0===a?a=r:e[l+1]=hh(e[l+1],r),l=r;c&&(e[r+1]=fh(e[r+1])),FC(e,u,r,!0),FC(e,u,r,!1),function Lx(e,n,t,r,o){const i=o?e.residualClasses:e.residualStyles;null!=i&&"string"==typeof n&&ho(i,n)>=0&&(t[r+1]=ph(t[r+1]))}(n,u,e,r,i),s=Jl(a,l),i?n.classBindings=s:n.styleBindings=s}(o,i,n,t,s,r)}}(i,e,s,r),n!==W&&Fe(o,s,n)&&function WC(e,n,t,r,o,i,s,a){if(!(3&n.type))return;const l=e.data,c=l[a+1],u=function Px(e){return!(1&~e)}(c)?ZC(l,n,t,o,Gr(c),s):void 0;ec(u)||(ec(i)||function Ox(e){return!(2&~e)}(c)&&(i=ZC(l,null,t,o,a,s)),function kA(e,n,t,r,o){if(n)o?e.addClass(t,r):e.removeClass(t,r);else{let i=-1===r.indexOf("-")?void 0:ur.DashCase;null==o?e.removeStyle(t,r,i):("string"==typeof o&&o.endsWith("!important")&&(o=o.slice(0,-10),i|=ur.Important),e.setStyle(t,r,o,i))}}(r,s,zi(ct(),t),o,i))}(i,i.data[ct()],o,o[j],e,o[s+1]=function eO(e,n){return null==e||""===e||("string"==typeof n?e+=n:"object"==typeof e&&(e=We(cr(e)))),e}(n,t),r,s)}(e,n,null,!0),Kl}function mh(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===W&&(g=d?ie:void 0);let m=d?Qu(g,r):u===r?g:void 0;if(c&&!ec(m)&&(m=Qu(l,r)),ec(m)&&(a=m,s))return a;const v=e[o+1];o=s?gr(v):Gr(v)}if(null!==n){let l=i?n.residualClasses:n.residualStyles;null!=l&&(a=Qu(l,r))}return a}function ec(e){return void 0!==e}function ti(e,n,t){In("NgControlFlow");const r=E(),o=rn(),i=function _h(e,n){return e[n]}(r,z+e);if(Fe(r,o,n)){const a=Q(null);try{if(function Af(e,n){const t=cs(e,n);return void 0!==t&&El(t[A],t),t}(i,0),-1!==n){const l=function Ch(e,n){return qi(e,n)}(r[A],z+n),c=Lo(i,l.tView.ssrId);ps(i,hs(r,l,t,{dehydratedView:c}),0,Fo(l,c))}}finally{Q(a)}}else{const a=function Xy(e,n){const t=Pe+n;if(t(Dn(!0),bl(r,o,function nv(){return U.lFrame.currentNamespace}()));function St(e,n,t){const r=E(),o=te(),i=e+z,s=o.firstCreatePass?function IO(e,n,t,r,o){const i=n.consts,s=_n(i,r),a=Po(n,e,8,"ng-container",s);return null!==s&&jl(a,s,!0),bf(n,t,a,_n(i,o)),null!==n.queries&&n.queries.elementStart(n,a),a}(i,o,r,n,t):o.data[i];Cn(s,!0);const a=tD(o,r,s,e);return r[i]=a,Qi()&&Ml(o,r,a,s),ut(a,r),Xa(s)&&(Cf(o,r,s),_f(o,s,r)),null!=t&&Df(r,s),St}function Tt(){let e=he();const n=te();return _d()?Cd():(e=e.parent,Cn(e,!1)),n.firstCreatePass&&(el(n,e),cd(e)&&n.queries.elementEnd(e)),Tt}let tD=(e,n,t,r)=>(Dn(!0),ff(n[j],""));function xe(){return E()}const ri="en-US";let sD=ri;function B(e,n,t,r){const o=E(),i=te(),s=he();return bh(i,o,o[j],s,e,n,r),B}function bh(e,n,t,r,o,i,s){const a=Xa(r),c=e.firstCreatePass&&Qy(e),u=n[_e],d=Zy(n);let g=!0;if(3&r.type||s){const _=ht(r,n),D=s?s(_):_,w=d.length,b=s?L=>s(ge(L[r.index])):r.index;let N=null;if(!s&&a&&(N=function Mk(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!==N)(N.__ngLastListenerFn__||N).__ngNextListenerFn__=i,N.__ngLastListenerFn__=i,g=!1;else{i=kD(r,n,u,i,!1);const L=t.listen(D,o,i);d.push(i,L),c&&c.push(o,b,w,w+1)}}else i=kD(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 X=n[v[D]][v[D+1]].subscribe(i),ce=d.length;d.push(i,X),c&&c.push(o,r.index,ce,-(ce+1))}}}function OD(e,n,t,r){const o=Q(null);try{return yn(6,n,t),!1!==t(r)}catch(i){return Nl(e,i),!1}finally{yn(7,n,t),Q(o)}}function kD(e,n,t,r,o){return function i(s){if(s===Function)return r;ms(e.componentOffset>-1?Ft(e.index,n):n);let l=OD(n,t,r,s),c=i.__ngNextListenerFn__;for(;c;)l=OD(n,t,c,s)&&l,c=c.__ngNextListenerFn__;return o&&!1===l&&s.preventDefault(),l}}function O(e=1){return function MS(e){return(U.lFrame.contextLView=function Gm(e,n){for(;e>0;)n=n[yo],e--;return n}(e,U.lFrame.contextLView))[_e]}(e)}function Zn(e,n,t,r,o){const i=E(),s=qo(i,n,t,r);return s!==W&&Mt(te(),Ce(),i,e,s,i[j],o,!1),Zn}function qD(){return function Xf(e,n){return e[Bn].queries[n].queryList}(E(),bd())}function Eh(e){return function Do(e,n){return e[n]}(function DS(){return U.lFrame.contextLView}(),z+e)}function f(e,n=""){const t=E(),r=te(),o=e+z,i=r.firstCreatePass?Po(r,o,1,n,null):r.data[o],s=nw(r,t,i,n,e);t[o]=s,Qi()&&Ml(r,t,s,i),Cn(i,!1)}let nw=(e,n,t,r,o)=>(Dn(!0),function df(e,n){return e.createText(n)}(n[j],r));function Te(e){return Qn("",e,""),Te}function Qn(e,n,t){const r=E(),o=qo(r,e,n,t);return o!==W&&function zn(e,n,t){const r=zi(n,e);!function Dy(e,n,t){e.setValue(n,t)}(e[j],r,t)}(r,ct(),o),Qn}function je(e,n,t){U_(n)&&(n=n());const r=E();return Fe(r,rn(),n)&&Mt(te(),Ce(),r,e,n,r[j],t,!1),je}function $e(e,n){const t=U_(e);return t&&e.set(n),t}function Ue(e,n){const t=E(),r=te(),o=he();return bh(r,t,t[j],o,e,n),Ue}function Ih(e,n,t,r,o){if(e=V(e),Array.isArray(e))for(let i=0;i>20;if(Or(e)||!e.multi){const m=new Yi(c,o,T),v=Sh(l,n,o?u:u+g,d);-1===v?(Rd(ol(a,s),i,l),Mh(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=Sh(l,n,u+g,d),v=Sh(l,n,u,u+g),D=v>=0&&t[v];if(o&&!D||!o&&!(m>=0&&t[m])){Rd(ol(a,s),i,l);const w=function Qk(e,n,t,r,o){const i=new Yi(e,t,T);return i.multi=[],i.index=n,i.componentProviders=0,dw(i,o,r&&!t),i}(o?Zk:Wk,t.length,o,r,c);!o&&D&&(t[v].providerFactory=w),Mh(i,e,n.length,0),n.push(l),a.directiveStart++,a.directiveEnd++,o&&(a.providerIndexes+=1048576),t.push(w),s.push(w)}else Mh(i,e,m>-1?m:v,dw(t[o?v:m],c,!o&&r));!o&&r&&D&&t[v].componentProviders++}}}function Mh(e,n,t,r){const o=Or(n),i=function V0(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 dw(e,n,t){return t&&e.componentProviders++,e.multi.push(n)-1}function Sh(e,n,t,r){for(let o=t;o{t.providersResolver=(r,o)=>function qk(e,n,t){const r=te();if(r.firstCreatePass){const o=nn(e);Ih(t,r.data,r.blueprint,o,!0),Ih(n,r.data,r.blueprint,o,!1)}}(r,o?o(e):e,n)}}let Yk=(()=>{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=Ku(0,t.type),o=r.length>0?$l([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=x({token:e,providedIn:"environment",factory:()=>new e(k(ft))})}return e})();function Ut(e){In("NgStandalone"),e.getStandaloneInjector=n=>n.get(Yk).getOrCreateStandaloneInjector(e)}function re(e,n,t){const r=pt()+e,o=E();return o[r]===W?Mn(o,r,t?n.call(t):n()):function Ss(e,n){return e[n]}(o,r)}function js(e,n,t,r){return function pw(e,n,t,r,o,i){const s=n+t;return Fe(e,s,o)?Mn(e,s+1,i?r.call(i,o):r(o)):Us(e,s+1)}(E(),pt(),e,n,t,r)}function hw(e,n,t,r,o){return function gw(e,n,t,r,o,i,s){const a=n+t;return function Hr(e,n,t,r){const o=Fe(e,n,t);return Fe(e,n+1,r)||o}(e,a,o,i)?Mn(e,a+2,s?r.call(s,o,i):r(o,i)):Us(e,a+2)}(E(),pt(),e,n,t,r,o)}function Us(e,n){const t=e[n];return t===W?void 0:t}let kw=(()=>{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=x({token:e,factory:e.\u0275fac,providedIn:"platform"})}return e})();const jw=new R(""),lc=new R("");let Fh,kh=(()=>{class e{constructor(t,r,o){this._ngZone=t,this.registry=r,this._pendingCount=0,this._isZoneStable=!0,this._callbacks=[],this.taskTrackingZone=null,Fh||(function sF(e){Fh=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:()=>{de.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)(k(de),k(Ph),k(lc))};static#t=this.\u0275prov=x({token:e,factory:e.\u0275fac})}return e})(),Ph=(()=>{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 Fh?.findTestabilityInTree(this,t,r)??null}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=x({token:e,factory:e.\u0275fac,providedIn:"platform"})}return e})();function zs(e){return!!e&&"function"==typeof e.then}function Uw(e){return!!e&&"function"==typeof e.subscribe}const Lh=new R("");let Vh=(()=>{class e{constructor(){this.initialized=!1,this.done=!1,this.donePromise=new Promise((t,r)=>{this.resolve=t,this.reject=r}),this.appInits=M(Lh,{optional:!0})??[]}runInitializers(){if(this.initialized)return;const t=[];for(const o of this.appInits){const i=o();if(zs(i))t.push(i);else if(Uw(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=x({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();const jh=new R("");let mr=(()=>{class e{constructor(){this._bootstrapListeners=[],this._runningTick=!1,this._destroyed=!1,this._destroyListeners=[],this._views=[],this.internalErrorHandler=M(bv),this.afterRenderEffectManager=M(ws),this.externalTestViews=new Set,this.beforeRender=new $t,this.afterTick=new $t,this.componentTypes=[],this.components=[],this.isStable=M(hr).hasPendingTasks.pipe(ne(t=>!t)),this._injector=M(ft)}get destroyed(){return this._destroyed}get injector(){return this._injector}bootstrap(t,r){const o=t instanceof u_;if(!this._injector.get(Vh).done)throw!o&&function ir(e){const n=Y(e)||Ze(e)||rt(e);return null!==n&&n.standalone}(t),new I(405,!1);let s;s=o?t:this._injector.get(Ll).resolveComponentFactory(t),this.componentTypes.push(s.componentType);const a=function aF(e){return e.isBoundToModule}(s)?void 0:this._injector.get(Br),c=s.create(gt.NULL,[],r||s.selector,a),u=c.location.nativeElement,d=c.injector.get(jw,null);return d?.registerApplication(u),c.onDestroy(()=>{this.detachView(c.hostView),cc(this.components,c),d?.unregisterApplication(u)}),this._loadComponent(c),c}tick(){this._tick(!0)}_tick(t){if(this._runningTick)throw new I(101,!1);const r=Q(null);try{this._runningTick=!0,this.detectChangesInAttachedViews(t)}catch(o){this.internalErrorHandler(o)}finally{this.afterTick.next(),this._runningTick=!1,Q(r)}}detectChangesInAttachedViews(t){let r=0;const o=this.afterRenderEffectManager;for(;;){if(r===e_)throw new I(103,!1);if(t){const i=0===r;this.beforeRender.next(i);for(let{_lView:s,notifyErrorHandler:a}of this._views)cF(s,i,a)}if(r++,o.executeInternalCallbacks(),![...this.externalTestViews.keys(),...this._views].some(({_lView:i})=>Uh(i))&&(o.execute(),![...this.externalTestViews.keys(),...this._views].some(({_lView:i})=>Uh(i))))break}}attachView(t){const r=t;this._views.push(r),r.attachToAppRef(this)}detachView(t){const r=t;cc(this._views,r),r.detachFromAppRef()}_loadComponent(t){this.attachView(t.hostView),this.tick(),this.components.push(t);const r=this._injector.get(jh,[]);[...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),()=>cc(this._destroyListeners,t)}destroy(){if(this._destroyed)throw new I(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=x({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();function cc(e,n){const t=e.indexOf(n);t>-1&&e.splice(t,1)}function cF(e,n,t){!n&&!Uh(e)||function uF(e,n,t){let r;t?(r=0,e[P]|=1024):r=64&e[P]?0:1,Rl(e,n,r)}(e,t,n)}function Uh(e){return md(e)}class dF{constructor(n,t){this.ngModuleFactory=n,this.componentFactories=t}}let Gw=(()=>{class e{compileModuleSync(t){return new th(t)}compileModuleAsync(t){return Promise.resolve(this.compileModuleSync(t))}compileModuleAndAllComponentsSync(t){const r=this.compileModuleSync(t),i=Vt(it(t).declarations).reduce((s,a)=>{const l=Y(a);return l&&s.push(new Is(l)),s},[]);return new dF(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=x({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})(),pF=(()=>{class e{constructor(){this.zone=M(de),this.applicationRef=M(mr)}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=x({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();function qw(e){return[{provide:de,useFactory:e},{provide:xr,multi:!0,useFactory:()=>{const n=M(pF,{optional:!0});return()=>n.initialize()}},{provide:xr,multi:!0,useFactory:()=>{const n=M(vF);return()=>{n.initialize()}}},{provide:bv,useFactory:gF}]}function gF(){const e=M(de),n=M(bn);return t=>e.runOutsideAngular(()=>n.handleError(t))}function mF(e){return ji([[],qw(()=>new de(function Ww(e){return{enableLongStackTrace:!1,shouldCoalesceEventChangeDetection:e?.eventCoalescing??!1,shouldCoalesceRunChangeDetection:e?.runCoalescing??!1}}(e)))])}let vF=(()=>{class e{constructor(){this.subscription=new Dt,this.initialized=!1,this.zone=M(de),this.pendingTasks=M(hr)}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(()=>{de.assertNotInAngularZone(),queueMicrotask(()=>{null!==t&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(this.pendingTasks.remove(t),t=null)})}))}),this.subscription.add(this.zone.onUnstable.subscribe(()=>{de.assertInAngularZone(),t??=this.pendingTasks.add()}))}ngOnDestroy(){this.subscription.unsubscribe()}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=x({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();const Yn=new R("",{providedIn:"root",factory:()=>M(Yn,ee.Optional|ee.SkipSelf)||function yF(){return typeof $localize<"u"&&$localize.locale||ri}()}),Bh=new R("");let vr=null;let qs=(()=>{class e{static#e=this.__NG_ELEMENT_ID__=EF}return e})();function EF(e){return function IF(e,n,t){if(Pr(e)&&!t){const r=Ft(e.index,n);return new vs(r,r)}return 47&e.type?new vs(n[Ne],n):null}(he(),E(),!(16&~e))}class nb{constructor(){}supports(n){return zl(n)}create(n){return new NF(n)}}const AF=(e,n)=>n;class NF{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||AF}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 RF(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 rb),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 rb),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 RF{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 xF{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 rb{constructor(){this.map=new Map}put(n){const t=n.trackById;let r=this.map.get(t);r||(r=new xF,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 ob(e,n,t){const r=e.previousIndex;if(null===r)return r;let o=0;return t&&r{class e{static#e=this.\u0275prov=x({token:e,providedIn:"root",factory:sb});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||sb()),deps:[[e,new Va,new La]]}}find(t){const r=this.factories.find(o=>o.supports(t));if(null!=r)return r;throw new I(901,!1)}}return e})(),LF=(()=>{class e{constructor(t){}static#e=this.\u0275fac=function(r){return new(r||e)(k(mr))};static#t=this.\u0275mod=or({type:e});static#n=this.\u0275inj=jn({})}return e})();function JF(e){try{const{rootComponent:n,appProviders:t,platformProviders:r}=e,o=function bF(e=[]){if(vr)return vr;const n=function Yw(e=[],n){return gt.create({name:n,providers:[{provide:nd,useValue:"platform"},{provide:Bh,useValue:new Set([()=>vr=null])},...e]})}(e);return vr=n,function Bw(){!function x1(e){Bg=e}(()=>{throw new I(600,!1)})}(),function Xw(e){e.get(zv,null)?.forEach(t=>t())}(n),n}(r),i=[mF(),...t||[]],a=new rC({providers:i,parent:o,debugName:"",runEnvironmentInitializers:!1}).injector,l=a.get(de);return l.run(()=>{a.resolveInjectorInitializers();const c=a.get(bn,null);let u;l.runOutsideAngular(()=>{u=l.onError.subscribe({next:m=>{c.handleError(m)}})});const d=()=>a.destroy(),g=o.get(Bh);return g.add(d),a.onDestroy(()=>{u.unsubscribe(),g.delete(d)}),function Hw(e,n,t){try{const r=t();return zs(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(Vh);return m.runInitializers(),m.donePromise.then(()=>{!function aD(e){"string"==typeof e&&(sD=e.toLowerCase().replace(/_/g,"-"))}(a.get(Yn,ri)||ri);const _=a.get(mr);return void 0!==n&&_.bootstrap(n),_})})})}catch(n){return Promise.reject(n)}}function ai(e){return"boolean"==typeof e?e:null!=e&&"false"!==e}const we_apiBaseUrl="https://www.palmmedia.de/api/";let Nb=null;function yr(){return Nb}class D2{}const Nt=new R("");let Yh=(()=>{class e{historyGo(t){throw new Error("")}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=x({token:e,factory:()=>M(b2),providedIn:"platform"})}return e})();const w2=new R("");let b2=(()=>{class e extends Yh{constructor(){super(),this._doc=M(Nt),this._location=window.location,this._history=window.history}getBaseHrefFromDOM(){return yr().getBaseHref(this._doc)}onPopState(t){const r=yr().getGlobalEventTarget(this._doc,"window");return r.addEventListener("popstate",t,!1),()=>r.removeEventListener("popstate",t)}onHashChange(t){const r=yr().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=x({token:e,factory:()=>new e,providedIn:"platform"})}return e})();function Xh(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 Rb(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 Xn(e){return e&&"?"!==e[0]?"?"+e:e}let Wr=(()=>{class e{historyGo(t){throw new Error("")}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=x({token:e,factory:()=>M(Ob),providedIn:"root"})}return e})();const xb=new R("");let Ob=(()=>{class e extends Wr{constructor(t,r){super(),this._platformLocation=t,this._removeListenerFns=[],this._baseHref=r??this._platformLocation.getBaseHrefFromDOM()??M(Nt).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 Xh(this._baseHref,t)}path(t=!1){const r=this._platformLocation.pathname+Xn(this._platformLocation.search),o=this._platformLocation.hash;return o&&t?`${r}${o}`:r}pushState(t,r,o,i){const s=this.prepareExternalUrl(o+Xn(i));this._platformLocation.pushState(t,r,s)}replaceState(t,r,o,i){const s=this.prepareExternalUrl(o+Xn(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)(k(Yh),k(xb,8))};static#t=this.\u0275prov=x({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})(),E2=(()=>{class e extends Wr{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=Xh(this._baseHref,t);return r.length>0?"#"+r:r}pushState(t,r,o,i){let s=this.prepareExternalUrl(o+Xn(i));0==s.length&&(s=this._platformLocation.pathname),this._platformLocation.pushState(t,r,s)}replaceState(t,r,o,i){let s=this.prepareExternalUrl(o+Xn(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)(k(Yh),k(xb,8))};static#t=this.\u0275prov=x({token:e,factory:e.\u0275fac})}return e})(),Qs=(()=>{class e{constructor(t){this._subject=new Re,this._urlChangeListeners=[],this._urlChangeSubscription=null,this._locationStrategy=t;const r=this._locationStrategy.getBaseHref();this._basePath=function S2(e){if(new RegExp("^(https?:)?//").test(e)){const[,t]=e.split(/\/\/[^\/]+/);return t}return e}(Rb(kb(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+Xn(r))}normalize(t){return e.stripTrailingSlash(function M2(e,n){if(!e||!n.startsWith(e))return n;const t=n.substring(e.length);return""===t||["/",";","?","#"].includes(t[0])?t:n}(this._basePath,kb(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+Xn(r)),o)}replaceState(t,r="",o=null){this._locationStrategy.replaceState(o,"",t,r),this._notifyUrlChangeListeners(this.prepareExternalUrl(t+Xn(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=Xn;static#t=this.joinWithSlash=Xh;static#n=this.stripTrailingSlash=Rb;static#r=this.\u0275fac=function(r){return new(r||e)(k(Wr))};static#o=this.\u0275prov=x({token:e,factory:()=>function I2(){return new Qs(k(Wr))}(),providedIn:"root"})}return e})();function kb(e){return e.replace(/\/index.html$/,"")}function $b(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 ap=/\s+/,Gb=[];let Nc=(()=>{class e{constructor(t,r){this._ngEl=t,this._renderer=r,this.initialClasses=Gb,this.stateMap=new Map}set klass(t){this.initialClasses=null!=t?t.trim().split(ap):Gb}set ngClass(t){this.rawClass="string"==typeof t?t.trim().split(ap):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(ap).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)(T(Lt),T(Wn))};static#t=this.\u0275dir=$({type:e,selectors:[["","ngClass",""]],inputs:{klass:[Me.None,"class","klass"],ngClass:"ngClass"},standalone:!0})}return e})();class fL{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 lp=(()=>{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 fL(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),qb(a,o)}});for(let o=0,i=r.length;o{qb(r.get(o.currentIndex),o)})}static ngTemplateContextGuard(t,r){return!0}static#e=this.\u0275fac=function(r){return new(r||e)(T(sn),T(qn),T(Wh))};static#t=this.\u0275dir=$({type:e,selectors:[["","ngFor","","ngForOf",""]],inputs:{ngForOf:"ngForOf",ngForTrackBy:"ngForTrackBy",ngForTemplate:"ngForTemplate"},standalone:!0})}return e})();function qb(e,n){e.context.$implicit=n.item}let cp=(()=>{class e{constructor(t,r){this._viewContainer=t,this._context=new hL,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){Wb("ngIfThen",t),this._thenTemplateRef=t,this._thenViewRef=null,this._updateView()}set ngIfElse(t){Wb("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)(T(sn),T(qn))};static#t=this.\u0275dir=$({type:e,selectors:[["","ngIf",""]],inputs:{ngIf:"ngIf",ngIfThen:"ngIfThen",ngIfElse:"ngIfElse"},standalone:!0})}return e})();class hL{constructor(){this.$implicit=null,this.ngIf=null}}function Wb(e,n){if(n&&!n.createEmbeddedView)throw new Error(`${e} must be a TemplateRef, but received '${We(n)}'.`)}let jL=(()=>{class e{static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275mod=or({type:e});static#n=this.\u0275inj=jn({})}return e})();const Yb="browser";function Xb(e){return"server"===e}let GL=(()=>{class e{static#e=this.\u0275prov=x({token:e,providedIn:"root",factory:()=>function $L(e){return e===Yb}(M(lr))?new zL(M(Nt),window):new WL})}return e})();class zL{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 qL(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 WL{setOffset(n){}getScrollPosition(){return[0,0]}scrollToPosition(n){}scrollToAnchor(n){}setHistoryScrollRestoration(n){}}class Jb{}function _r(e){return this instanceof _r?(this.v=e,this):new _r(e)}function uE(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 yp(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 dE=e=>e&&"number"==typeof e.length&&"function"!=typeof e;function fE(e){return Ie(e?.then)}function hE(e){return Ie(e[Ou])}function pE(e){return Symbol.asyncIterator&&Ie(e?.[Symbol.asyncIterator])}function gE(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 mE=function $V(){return"function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator"}();function vE(e){return Ie(e?.[mE])}function yE(e){return function cE(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 _r?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 _r(t.read());if(o)return yield _r(void 0);yield yield _r(r)}}finally{t.releaseLock()}})}function _E(e){return Ie(e?.getReader)}function An(e){if(e instanceof Be)return e;if(null!=e){if(hE(e))return function GV(e){return new Be(n=>{const t=e[Ou]();if(Ie(t.subscribe))return t.subscribe(n);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}(e);if(dE(e))return function zV(e){return new Be(n=>{for(let t=0;t{e.then(t=>{n.closed||(n.next(t),n.complete())},t=>n.error(t)).then(null,Wg)})}(e);if(pE(e))return CE(e);if(vE(e))return function WV(e){return new Be(n=>{for(const t of e)if(n.next(t),n.closed)return;n.complete()})}(e);if(_E(e))return function ZV(e){return CE(yE(e))}(e)}throw gE(e)}function CE(e){return new Be(n=>{(function QV(e,n){var t,r,o,i;return function aE(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=uE(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 er(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 DE(e,n=0){return nt((t,r)=>{t.subscribe(qe(r,o=>er(r,e,()=>r.next(o),n),()=>er(r,e,()=>r.complete(),n),o=>er(r,e,()=>r.error(o),n)))})}function wE(e,n=0){return nt((t,r)=>{r.add(e.schedule(()=>t.subscribe(r),n))})}function bE(e,n){if(!e)throw new Error("Iterable cannot be null");return new Be(t=>{er(t,n,()=>{const r=e[Symbol.asyncIterator]();er(t,n,()=>{r.next().then(o=>{o.done?t.complete():t.next(o.value)})},0,!0)})})}function Ke(e,n){return n?function tj(e,n){if(null!=e){if(hE(e))return function YV(e,n){return An(e).pipe(wE(n),DE(n))}(e,n);if(dE(e))return function JV(e,n){return new Be(t=>{let r=0;return n.schedule(function(){r===e.length?t.complete():(t.next(e[r++]),t.closed||this.schedule())})})}(e,n);if(fE(e))return function XV(e,n){return An(e).pipe(wE(n),DE(n))}(e,n);if(pE(e))return bE(e,n);if(vE(e))return function KV(e,n){return new Be(t=>{let r;return er(t,n,()=>{r=e[mE](),er(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)}),()=>Ie(r?.return)&&r.return()})}(e,n);if(_E(e))return function ej(e,n){return bE(yE(e),n)}(e,n)}throw gE(e)}(e,n):An(e)}function _p(e){return e[e.length-1]}function EE(e){return Ie(_p(e))?e.pop():void 0}function kc(e){return function nj(e){return e&&Ie(e.schedule)}(_p(e))?e.pop():void 0}function H(...e){return Ke(e,kc(e))}const{isArray:rj}=Array,{getPrototypeOf:oj,prototype:ij,keys:sj}=Object;function IE(e){if(1===e.length){const n=e[0];if(rj(n))return{args:n,keys:null};if(function aj(e){return e&&"object"==typeof e&&oj(e)===ij}(n)){const t=sj(n);return{args:t.map(r=>n[r]),keys:t}}}return{args:e,keys:null}}const{isArray:lj}=Array;function ME(e){return ne(n=>function cj(e,n){return lj(n)?e(...n):e(n)}(e,n))}function SE(e,n){return e.reduce((t,r,o)=>(t[r]=n[o],t),{})}function Cp(...e){const n=kc(e),t=EE(e),{args:r,keys:o}=IE(e);if(0===r.length)return Ke([],n);const i=new Be(function uj(e,n,t=Nr){return r=>{TE(n,()=>{const{length:o}=e,i=new Array(o);let s=o,a=o;for(let l=0;l{const c=Ke(e[l],n);let u=!1;c.subscribe(qe(r,d=>{i[l]=d,u||(u=!0,a--),a||r.next(t(i.slice()))},()=>{--s||r.complete()}))},r)},r)}}(r,n,o?s=>SE(o,s):Nr));return t?i.pipe(ME(t)):i}function TE(e,n,t){e?er(t,e,n):n()}const Pc=Eu(e=>function(){e(this),this.name="EmptyError",this.message="no elements in sequence"});function ot(e,n,t=1/0){return Ie(n)?ot((r,o)=>ne((i,s)=>n(r,i,o,s))(An(e(r,o))),t):("number"==typeof n&&(t=n),nt((r,o)=>function dj(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;An(t(_,u++)).subscribe(qe(n,w=>{o?.(w),i?m(w):n.next(w)},()=>{D=!0},void 0,()=>{if(D)try{for(c--;l.length&&cv(w)):v(w)}g()}catch(w){n.error(w)}}))};return e.subscribe(qe(n,m,()=>{d=!0,g()})),()=>{a?.()}}(r,o,e,t)))}function Ks(e=1/0){return ot(Nr,e)}function Dp(...e){return function fj(){return Ks(1)}()(Ke(e,kc(e)))}function AE(e){return new Be(n=>{An(e()).subscribe(n)})}function Fc(e,n){const t=Ie(e)?e:()=>e,r=o=>o.error(t());return new Be(n?o=>n.schedule(r,0,o):r)}const Nn=new Be(e=>e.complete());function wp(){return nt((e,n)=>{let t=null;e._refCount++;const r=qe(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 NE extends Be{constructor(n,t){super(),this.source=n,this.subjectFactory=t,this._subject=null,this._refCount=0,this._connection=null,Xg(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 Dt;const t=this.getSubject();n.add(this.source.subscribe(qe(t,void 0,()=>{this._teardown(),t.complete()},r=>{this._teardown(),t.error(r)},()=>this._teardown()))),n.closed&&(this._connection=null,n=Dt.EMPTY)}return n}refCount(){return wp()(this)}}function fn(e,n){return nt((t,r)=>{let o=null,i=0,s=!1;const a=()=>s&&!o&&r.complete();t.subscribe(qe(r,l=>{o?.unsubscribe();let c=0;const u=i++;An(e(l,u)).subscribe(o=qe(r,d=>r.next(n?n(l,d,u,c++):d),()=>{o=null,a()}))},()=>{s=!0,a()}))})}function ci(e){return e<=0?()=>Nn:nt((n,t)=>{let r=0;n.subscribe(qe(t,o=>{++r<=e&&(t.next(o),e<=r&&t.complete())}))})}function hn(e,n){return nt((t,r)=>{let o=0;t.subscribe(qe(r,i=>e.call(n,i,o++)&&r.next(i)))})}function Lc(e){return nt((n,t)=>{let r=!1;n.subscribe(qe(t,o=>{r=!0,t.next(o)},()=>{r||t.next(e),t.complete()}))})}function RE(e=gj){return nt((n,t)=>{let r=!1;n.subscribe(qe(t,o=>{r=!0,t.next(o)},()=>r?t.complete():t.error(e())))})}function gj(){return new Pc}function Zr(e,n){const t=arguments.length>=2;return r=>r.pipe(e?hn((o,i)=>e(o,i,r)):Nr,ci(1),t?Lc(n):RE(()=>new Pc))}function ui(e,n){return Ie(n)?ot(e,n,1):ot(e,1)}function _t(e,n,t){const r=Ie(e)||n||t?{next:e,error:n,complete:t}:e;return r?nt((o,i)=>{var s;null===(s=r.subscribe)||void 0===s||s.call(r);let a=!0;o.subscribe(qe(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)}))}):Nr}function di(e){return nt((n,t)=>{let i,r=null,o=!1;r=n.subscribe(qe(t,void 0,void 0,s=>{i=An(e(s,di(e)(n))),r?(r.unsubscribe(),r=null,i.subscribe(t)):o=!0})),o&&(r.unsubscribe(),r=null,i.subscribe(t))})}function bp(e){return e<=0?()=>Nn:nt((n,t)=>{let r=[];n.subscribe(qe(t,o=>{r.push(o),e{for(const o of r)t.next(o);t.complete()},void 0,()=>{r=null}))})}function ea(e){return nt((n,t)=>{try{n.subscribe(t)}finally{t.add(e)}})}class Dj extends D2{constructor(){super(...arguments),this.supportsDOMEvents=!0}}class Ep extends Dj{static makeCurrent(){!function C2(e){Nb??=e}(new Ep)}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 wj(){return ta=ta||document.querySelector("base"),ta?ta.getAttribute("href"):null}();return null==t?null:function bj(e){return new URL(e,document.baseURI).pathname}(t)}resetBaseElement(){ta=null}getUserAgent(){return window.navigator.userAgent}getCookie(n){return $b(document.cookie,n)}}let ta=null,Ij=(()=>{class e{build(){return new XMLHttpRequest}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=x({token:e,factory:e.\u0275fac})}return e})();const Ip=new R("");let xE=(()=>{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 I(5101,!1);return this._eventNameToPlugin.set(t,r),r}static#e=this.\u0275fac=function(r){return new(r||e)(k(Ip),k(de))};static#t=this.\u0275prov=x({token:e,factory:e.\u0275fac})}return e})();class OE{constructor(n){this._doc=n}}const Mp="ng-app-id";let kE=(()=>{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=Xb(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[${Mp}="${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(Mp),i;{const s=this.doc.createElement("style");return this.nonce&&s.setAttribute("nonce",this.nonce),s.textContent=r,this.platformIsServer&&s.setAttribute(Mp,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)(k(Nt),k(dl),k(qv,8),k(lr))};static#t=this.\u0275prov=x({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/"},Tp=/%COMP%/g,Aj=new R("",{providedIn:"root",factory:()=>!0});function FE(e,n){return n.map(t=>t.replace(Tp,e))}let LE=(()=>{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=Xb(a),this.defaultRenderer=new Ap(t,s,l,this.platformIsServer)}createRenderer(t,r){if(!t||!r)return this.defaultRenderer;this.platformIsServer&&r.encapsulation===Jt.ShadowDom&&(r={...r,encapsulation:Jt.Emulated});const o=this.getOrCreateRenderer(t,r);return o instanceof jE?o.applyToHost(t):o instanceof Np&&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 Jt.Emulated:i=new jE(l,c,r,this.appId,u,s,a,d);break;case Jt.ShadowDom:return new Oj(l,c,t,r,s,a,this.nonce,d);default:i=new Np(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)(k(xE),k(kE),k(dl),k(Aj),k(Nt),k(lr),k(de),k(qv))};static#t=this.\u0275prov=x({token:e,factory:e.\u0275fac})}return e})();class Ap{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){(VE(n)?n.content:n).appendChild(t)}insertBefore(n,t,r){n&&(VE(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 I(-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&(ur.DashCase|ur.Important)?n.style.setProperty(t,r,o&ur.Important?"important":""):n.style[t]=r}removeStyle(n,t,r){r&ur.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=yr().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 VE(e){return"TEMPLATE"===e.tagName&&void 0!==e.content}class Oj extends Ap{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=FE(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 Np extends Ap{constructor(n,t,r,o,i,s,a,l){super(n,i,s,a),this.sharedStylesHost=t,this.removeStylesOnCompDestroy=o,this.styles=l?FE(l,r.styles):r.styles}applyStyles(){this.sharedStylesHost.addStyles(this.styles)}destroy(){this.removeStylesOnCompDestroy&&this.sharedStylesHost.removeStyles(this.styles)}}class jE extends Np{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 Nj(e){return"_ngcontent-%COMP%".replace(Tp,e)}(c),this.hostAttr=function Rj(e){return"_nghost-%COMP%".replace(Tp,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 kj=(()=>{class e extends OE{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)(k(Nt))};static#t=this.\u0275prov=x({token:e,factory:e.\u0275fac})}return e})();const UE=["alt","control","meta","shift"],Pj={"\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"},Fj={alt:e=>e.altKey,control:e=>e.ctrlKey,meta:e=>e.metaKey,shift:e=>e.shiftKey};let Lj=(()=>{class e extends OE{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(()=>yr().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."),UE.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=Pj[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"),UE.forEach(s=>{s!==o&&(0,Fj[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)(k(Nt))};static#t=this.\u0275prov=x({token:e,factory:e.\u0275fac})}return e})();function BE(e){return{appProviders:[...$E,...e?.providers??[]],platformProviders:Hj}}const Hj=[{provide:lr,useValue:Yb},{provide:zv,useValue:function jj(){Ep.makeCurrent()},multi:!0},{provide:Nt,useFactory:function Bj(){return function bT(e){Ud=e}(document),document},deps:[]}],$j=new R(""),HE=[{provide:lc,useClass:class Ej{addToWindow(n){ue.getAngularTestability=(r,o=!0)=>{const i=n.findTestabilityInTree(r,o);if(null==i)throw new I(5103,!1);return i},ue.getAllAngularTestabilities=()=>n.getAllTestabilities(),ue.getAllAngularRootElements=()=>n.getAllRootElements(),ue.frameworkStabilizers||(ue.frameworkStabilizers=[]),ue.frameworkStabilizers.push(r=>{const o=ue.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?yr().isShadowRoot(t)?this.findTestabilityInTree(n,t.host,!0):this.findTestabilityInTree(n,t.parentElement,!0):null)}},deps:[]},{provide:jw,useClass:kh,deps:[de,Ph,lc]},{provide:kh,useClass:kh,deps:[de,Ph,lc]}],$E=[{provide:nd,useValue:"root"},{provide:bn,useFactory:function Uj(){return new bn},deps:[]},{provide:Ip,useClass:kj,multi:!0,deps:[Nt,de,lr]},{provide:Ip,useClass:Lj,multi:!0,deps:[Nt]},LE,kE,xE,{provide:f_,useExisting:LE},{provide:Jb,useClass:Ij,deps:[]},[]];let Gj=(()=>{class e{constructor(t){}static withServerTransition(t){return{ngModule:e,providers:[{provide:dl,useValue:t.appId}]}}static#e=this.\u0275fac=function(r){return new(r||e)(k($j,12))};static#t=this.\u0275mod=or({type:e});static#n=this.\u0275inj=jn({providers:[...$E,...HE],imports:[jL,LF]})}return e})(),zj=(()=>{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)(k(Nt))};static#t=this.\u0275prov=x({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();const Z="primary",ra=Symbol("RouteTitle");class Qj{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 fi(e){return new Qj(e)}function Yj(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 ZE(e){return e.length>0?e[e.length-1]:null}function Cr(e){return function DV(e){return!!e&&(e instanceof Be||Ie(e.lift)&&Ie(e.subscribe))}(e)?e:zs(e)?Ke(Promise.resolve(e)):H(e)}const Jj={exact:function XE(e,n,t){if(!Qr(e.segments,n.segments)||!Vc(e.segments,n.segments,t)||e.numberOfChildren!==n.numberOfChildren)return!1;for(const r in n.children)if(!e.children[r]||!XE(e.children[r],n.children[r],t))return!1;return!0},subset:JE},QE={exact:function Kj(e,n){return Rn(e,n)},subset:function e3(e,n){return Object.keys(n).length<=Object.keys(e).length&&Object.keys(n).every(t=>WE(e[t],n[t]))},ignored:()=>!0};function YE(e,n,t){return Jj[t.paths](e.root,n.root,t.matrixParams)&&QE[t.queryParams](e.queryParams,n.queryParams)&&!("exact"===t.fragment&&e.fragment!==n.fragment)}function JE(e,n,t){return KE(e,n,n.segments,t)}function KE(e,n,t,r){if(e.segments.length>t.length){const o=e.segments.slice(0,t.length);return!(!Qr(o,t)||n.hasChildren()||!Vc(o,t,r))}if(e.segments.length===t.length){if(!Qr(e.segments,t)||!Vc(e.segments,t,r))return!1;for(const o in n.children)if(!e.children[o]||!JE(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!!(Qr(e.segments,o)&&Vc(e.segments,o,r)&&e.children[Z])&&KE(e.children[Z],n,i,r)}}function Vc(e,n,t){return n.every((r,o)=>QE[t](e[o].parameters,r.parameters))}class hi{constructor(n=new me([],{}),t={},r=null){this.root=n,this.queryParams=t,this.fragment=r}get queryParamMap(){return this._queryParamMap??=fi(this.queryParams),this._queryParamMap}toString(){return r3.serialize(this)}}class me{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 jc(this)}}class oa{constructor(n,t){this.path=n,this.parameters=t}get parameterMap(){return this._parameterMap??=fi(this.parameters),this._parameterMap}toString(){return nI(this)}}function Qr(e,n){return e.length===n.length&&e.every((t,r)=>t.path===n[r].path)}let pi=(()=>{class e{static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=x({token:e,factory:()=>new xp,providedIn:"root"})}return e})();class xp{parse(n){const t=new p3(n);return new hi(t.parseRootSegment(),t.parseQueryParams(),t.parseFragment())}serialize(n){const t=`/${ia(n.root,!0)}`,r=function s3(e){const n=Object.entries(e).map(([t,r])=>Array.isArray(r)?r.map(o=>`${Uc(t)}=${Uc(o)}`).join("&"):`${Uc(t)}=${Uc(r)}`).filter(t=>t);return n.length?`?${n.join("&")}`:""}(n.queryParams);return`${t}${r}${"string"==typeof n.fragment?`#${function o3(e){return encodeURI(e)}(n.fragment)}`:""}`}}const r3=new xp;function jc(e){return e.segments.map(n=>nI(n)).join("/")}function ia(e,n){if(!e.hasChildren())return jc(e);if(n){const t=e.children[Z]?ia(e.children[Z],!1):"",r=[];return Object.entries(e.children).forEach(([o,i])=>{o!==Z&&r.push(`${o}:${ia(i,!1)}`)}),r.length>0?`${t}(${r.join("//")})`:t}{const t=function n3(e,n){let t=[];return Object.entries(e.children).forEach(([r,o])=>{r===Z&&(t=t.concat(n(o,r)))}),Object.entries(e.children).forEach(([r,o])=>{r!==Z&&(t=t.concat(n(o,r)))}),t}(e,(r,o)=>o===Z?[ia(e.children[Z],!1)]:[`${o}:${ia(r,!1)}`]);return 1===Object.keys(e.children).length&&null!=e.children[Z]?`${jc(e)}/${t[0]}`:`${jc(e)}/(${t.join("//")})`}}function eI(e){return encodeURIComponent(e).replace(/%40/g,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",")}function Uc(e){return eI(e).replace(/%3B/gi,";")}function Op(e){return eI(e).replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/%26/gi,"&")}function Bc(e){return decodeURIComponent(e)}function tI(e){return Bc(e.replace(/\+/g,"%20"))}function nI(e){return`${Op(e.path)}${function i3(e){return Object.entries(e).map(([n,t])=>`;${Op(n)}=${Op(t)}`).join("")}(e.parameters)}`}const a3=/^[^\/()?;#]+/;function kp(e){const n=e.match(a3);return n?n[0]:""}const l3=/^[^\/()?;=#]+/,u3=/^[^=?&#]+/,f3=/^[^&#]+/;class p3{constructor(n){this.url=n,this.remaining=n}parseRootSegment(){return this.consumeOptional("/"),""===this.remaining||this.peekStartsWith("?")||this.peekStartsWith("#")?new me([],{}):new me([],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[Z]=new me(n,t)),r}parseSegment(){const n=kp(this.remaining);if(""===n&&this.peekStartsWith(";"))throw new I(4009,!1);return this.capture(n),new oa(Bc(n),this.parseMatrixParams())}parseMatrixParams(){const n={};for(;this.consumeOptional(";");)this.parseParam(n);return n}parseParam(n){const t=function c3(e){const n=e.match(l3);return n?n[0]:""}(this.remaining);if(!t)return;this.capture(t);let r="";if(this.consumeOptional("=")){const o=kp(this.remaining);o&&(r=o,this.capture(r))}n[Bc(t)]=Bc(r)}parseQueryParam(n){const t=function d3(e){const n=e.match(u3);return n?n[0]:""}(this.remaining);if(!t)return;this.capture(t);let r="";if(this.consumeOptional("=")){const s=function h3(e){const n=e.match(f3);return n?n[0]:""}(this.remaining);s&&(r=s,this.capture(r))}const o=tI(t),i=tI(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=kp(this.remaining),o=this.remaining[r.length];if("/"!==o&&")"!==o&&";"!==o)throw new I(4010,!1);let i;r.indexOf(":")>-1?(i=r.slice(0,r.indexOf(":")),this.capture(i),this.capture(":")):n&&(i=Z);const s=this.parseChildren();t[i]=1===Object.keys(s).length?s[Z]:new me([],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 I(4011,!1)}}function rI(e){return e.segments.length>0?new me([],{[Z]:e}):e}function oI(e){const n={};for(const[r,o]of Object.entries(e.children)){const i=oI(o);if(r===Z&&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 g3(e){if(1===e.numberOfChildren&&e.children[Z]){const n=e.children[Z];return new me(e.segments.concat(n.segments),n.children)}return e}(new me(e.segments,n))}function gi(e){return e instanceof hi}function iI(e){let n;const o=rI(function t(i){const s={};for(const l of i.children){const c=t(l);s[l.outlet]=c}const a=new me(i.url,s);return i===e&&(n=a),a}(e.root));return n??o}function sI(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 v3(e){if("string"==typeof e[0]&&1===e.length&&"/"===e[0])return new lI(!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 lI(t,n,r)}(n);if(i.toRoot())return Pp(o,o,new me([],{}),t,r);const s=function y3(e,n,t){if(e.isAbsolute)return new $c(n,!0,0);if(!t)return new $c(n,!1,NaN);if(null===t.parent)return new $c(t,!0,0);const r=Hc(e.commands[0])?0:1;return function _3(e,n,t){let r=e,o=n,i=t;for(;i>o;){if(i-=o,r=r.parent,!r)throw new I(4005,!1);o=r.segments.length}return new $c(r,!1,o-i)}(t,t.segments.length-1+r,e.numberOfDoubleDots)}(i,o,e),a=s.processChildren?aa(s.segmentGroup,s.index,i.commands):cI(s.segmentGroup,s.index,i.commands);return Pp(o,s.segmentGroup,a,t,r)}function Hc(e){return"object"==typeof e&&null!=e&&!e.outlets&&!e.segmentPath}function sa(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:aI(e,n,t);const a=rI(oI(s));return new hi(a,i,o)}function aI(e,n,t){const r={};return Object.entries(e.children).forEach(([o,i])=>{r[o]=i===n?t:aI(i,n,t)}),new me(e.segments,r)}class lI{constructor(n,t,r){if(this.isAbsolute=n,this.numberOfDoubleDots=t,this.commands=r,n&&r.length>0&&Hc(r[0]))throw new I(4003,!1);const o=r.find(sa);if(o&&o!==ZE(r))throw new I(4004,!1)}toRoot(){return this.isAbsolute&&1===this.commands.length&&"/"==this.commands[0]}}class $c{constructor(n,t,r){this.segmentGroup=n,this.processChildren=t,this.index=r}}function cI(e,n,t){if(e??=new me([],{}),0===e.segments.length&&e.hasChildren())return aa(e,n,t);const r=function D3(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(sa(a))break;const l=`${a}`,c=r0&&void 0===l)break;if(l&&c&&"object"==typeof c&&void 0===c.outlets){if(!dI(l,c,s))return i;r+=2}else{if(!dI(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!==Z)&&e.children[Z]&&1===e.numberOfChildren&&0===e.children[Z].segments.length){const i=aa(e.children[Z],n,t);return new me(e.segments,i.children)}return Object.entries(r).forEach(([i,s])=>{"string"==typeof s&&(s=[s]),null!==s&&(o[i]=cI(e.children[i],n,s))}),Object.entries(e.children).forEach(([i,s])=>{void 0===r[i]&&(o[i]=s)}),new me(e.segments,o)}}function Fp(e,n,t){const r=e.segments.slice(0,n);let o=0;for(;o{"string"==typeof r&&(r=[r]),null!==r&&(n[t]=Fp(new me([],{}),0,r))}),n}function uI(e){const n={};return Object.entries(e).forEach(([t,r])=>n[t]=`${r}`),n}function dI(e,n,t){return e==t.path&&Rn(n,t.parameters)}const la="imperative";var oe=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}(oe||{});class xn{constructor(n,t){this.id=n,this.url=t}}class Gc extends xn{constructor(n,t,r="imperative",o=null){super(n,t),this.type=oe.NavigationStart,this.navigationTrigger=r,this.restoredState=o}toString(){return`NavigationStart(id: ${this.id}, url: '${this.url}')`}}class On extends xn{constructor(n,t,r){super(n,t),this.urlAfterRedirects=r,this.type=oe.NavigationEnd}toString(){return`NavigationEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}')`}}var Ht=function(e){return e[e.Redirect=0]="Redirect",e[e.SupersededByNewNavigation=1]="SupersededByNewNavigation",e[e.NoDataFromResolver=2]="NoDataFromResolver",e[e.GuardRejected=3]="GuardRejected",e}(Ht||{}),zc=function(e){return e[e.IgnoredSameUrlNavigation=0]="IgnoredSameUrlNavigation",e[e.IgnoredByUrlHandlingStrategy=1]="IgnoredByUrlHandlingStrategy",e}(zc||{});class mi extends xn{constructor(n,t,r,o){super(n,t),this.reason=r,this.code=o,this.type=oe.NavigationCancel}toString(){return`NavigationCancel(id: ${this.id}, url: '${this.url}')`}}class vi extends xn{constructor(n,t,r,o){super(n,t),this.reason=r,this.code=o,this.type=oe.NavigationSkipped}}class qc extends xn{constructor(n,t,r,o){super(n,t),this.error=r,this.target=o,this.type=oe.NavigationError}toString(){return`NavigationError(id: ${this.id}, url: '${this.url}', error: ${this.error})`}}class fI extends xn{constructor(n,t,r,o){super(n,t),this.urlAfterRedirects=r,this.state=o,this.type=oe.RoutesRecognized}toString(){return`RoutesRecognized(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class b3 extends xn{constructor(n,t,r,o){super(n,t),this.urlAfterRedirects=r,this.state=o,this.type=oe.GuardsCheckStart}toString(){return`GuardsCheckStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class E3 extends xn{constructor(n,t,r,o,i){super(n,t),this.urlAfterRedirects=r,this.state=o,this.shouldActivate=i,this.type=oe.GuardsCheckEnd}toString(){return`GuardsCheckEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state}, shouldActivate: ${this.shouldActivate})`}}class I3 extends xn{constructor(n,t,r,o){super(n,t),this.urlAfterRedirects=r,this.state=o,this.type=oe.ResolveStart}toString(){return`ResolveStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class M3 extends xn{constructor(n,t,r,o){super(n,t),this.urlAfterRedirects=r,this.state=o,this.type=oe.ResolveEnd}toString(){return`ResolveEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class S3{constructor(n){this.route=n,this.type=oe.RouteConfigLoadStart}toString(){return`RouteConfigLoadStart(path: ${this.route.path})`}}class T3{constructor(n){this.route=n,this.type=oe.RouteConfigLoadEnd}toString(){return`RouteConfigLoadEnd(path: ${this.route.path})`}}class A3{constructor(n){this.snapshot=n,this.type=oe.ChildActivationStart}toString(){return`ChildActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class N3{constructor(n){this.snapshot=n,this.type=oe.ChildActivationEnd}toString(){return`ChildActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class R3{constructor(n){this.snapshot=n,this.type=oe.ActivationStart}toString(){return`ActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class x3{constructor(n){this.snapshot=n,this.type=oe.ActivationEnd}toString(){return`ActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class hI{constructor(n,t,r){this.routerEvent=n,this.position=t,this.anchor=r,this.type=oe.Scroll}toString(){return`Scroll(anchor: '${this.anchor}', position: '${this.position?`${this.position[0]}, ${this.position[1]}`:null}')`}}class Lp{}class Vp{constructor(n){this.url=n}}class O3{constructor(){this.outlet=null,this.route=null,this.injector=null,this.children=new ca,this.attachRef=null}}let ca=(()=>{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 O3,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=x({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();class pI{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=jp(n,this._root);return t?t.children.map(r=>r.value):[]}firstChild(n){const t=jp(n,this._root);return t&&t.children.length>0?t.children[0].value:null}siblings(n){const t=Up(n,this._root);return t.length<2?[]:t[t.length-2].children.map(o=>o.value).filter(o=>o!==n)}pathFromRoot(n){return Up(n,this._root).map(t=>t.value)}}function jp(e,n){if(e===n.value)return n;for(const t of n.children){const r=jp(e,t);if(r)return r}return null}function Up(e,n){if(e===n.value)return[n];for(const t of n.children){const r=Up(e,t);if(r.length)return r.unshift(n),r}return[]}class pn{constructor(n,t){this.value=n,this.children=t}toString(){return`TreeNode(${this.value})`}}function yi(e){const n={};return e&&e.children.forEach(t=>n[t.value.outlet]=t),n}class gI extends pI{constructor(n,t){super(n),this.snapshot=t,$p(this,n)}toString(){return this.snapshot.toString()}}function mI(e){const n=function k3(e){const i=new Hp([],{},{},"",{},Z,e,null,{});return new vI("",new pn(i,[]))}(e),t=new Gt([new oa("",{})]),r=new Gt({}),o=new Gt({}),i=new Gt({}),s=new Gt(""),a=new Yr(t,r,i,s,o,Z,e,n.root);return a.snapshot=n.root,new gI(new pn(a,[]),n)}class Yr{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(ne(c=>c[ra]))??H(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(ne(n=>fi(n))),this._paramMap}get queryParamMap(){return this._queryParamMap??=this.queryParams.pipe(ne(n=>fi(n))),this._queryParamMap}toString(){return this.snapshot?this.snapshot.toString():`Future(${this._futureSnapshot})`}}function Bp(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&&_I(o)&&(r.resolve[ra]=o.title),r}class Hp{get title(){return this.data?.[ra]}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??=fi(this.params),this._paramMap}get queryParamMap(){return this._queryParamMap??=fi(this.queryParams),this._queryParamMap}toString(){return`Route(url:'${this.url.map(r=>r.toString()).join("/")}', path:'${this.routeConfig?this.routeConfig.path:""}')`}}class vI extends pI{constructor(n,t){super(t),this.url=n,$p(this,t)}toString(){return yI(this._root)}}function $p(e,n){n.value._routerState=e,n.children.forEach(t=>$p(e,t))}function yI(e){const n=e.children.length>0?` { ${e.children.map(yI).join(", ")} } `:"";return`${e.value}${n}`}function Gp(e){if(e.snapshot){const n=e.snapshot,t=e._futureSnapshot;e.snapshot=t,Rn(n.queryParams,t.queryParams)||e.queryParamsSubject.next(t.queryParams),n.fragment!==t.fragment&&e.fragmentSubject.next(t.fragment),Rn(n.params,t.params)||e.paramsSubject.next(t.params),function Xj(e,n){if(e.length!==n.length)return!1;for(let t=0;tRn(t.parameters,n[r].parameters))}(e.url,n.url);return t&&!(!e.parent!=!n.parent)&&(!e.parent||zp(e.parent,n.parent))}function _I(e){return"string"==typeof e.title||null===e.title}let qp=(()=>{class e{constructor(){this.activated=null,this._activatedRoute=null,this.name=Z,this.activateEvents=new Re,this.deactivateEvents=new Re,this.attachEvents=new Re,this.detachEvents=new Re,this.parentContexts=M(ca),this.location=M(sn),this.changeDetector=M(qs),this.environmentInjector=M(ft),this.inputBinder=M(Wc,{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 I(4012,!1);return this.activated.instance}get activatedRoute(){if(!this.activated)throw new I(4012,!1);return this._activatedRoute}get activatedRouteData(){return this._activatedRoute?this._activatedRoute.snapshot.data:{}}detach(){if(!this.activated)throw new I(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 I(4013,!1);this._activatedRoute=t;const o=this.location,s=t.snapshot.component,a=this.parentContexts.getOrCreateContext(this.name).children,l=new Wp(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:[zt]})}return e})();class Wp{__ngOutletInjector(n){return new Wp(this.route,this.childContexts,n)}constructor(n,t,r){this.route=n,this.childContexts=t,this.parent=r}get(n,t){return n===Yr?this.route:n===ca?this.childContexts:this.parent.get(n,t)}}const Wc=new R("");let CI=(()=>{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=Cp([r.queryParams,r.params,r.data]).pipe(fn(([i,s,a],l)=>(a={...i,...s,...a},0===l?H(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 _2(e){const n=Y(e);if(!n)return null;const t=new Is(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=x({token:e,factory:e.\u0275fac})}return e})();function ua(e,n,t){if(t&&e.shouldReuseRoute(n.value,t.value.snapshot)){const r=t.value;r._futureSnapshot=n.value;const o=function F3(e,n,t){return n.children.map(r=>{for(const o of t.children)if(e.shouldReuseRoute(r.value,o.value.snapshot))return ua(e,r,o);return ua(e,r)})}(e,n,t);return new pn(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=>ua(e,a)),s}}const r=function L3(e){return new Yr(new Gt(e.url),new Gt(e.params),new Gt(e.queryParams),new Gt(e.fragment),new Gt(e.data),e.outlet,e.component,e)}(n.value),o=n.children.map(i=>ua(e,i));return new pn(r,o)}}const DI="ngNavigationCancelingError";function wI(e,n){const{redirectTo:t,navigationBehaviorOptions:r}=gi(n)?{redirectTo:n,navigationBehaviorOptions:void 0}:n,o=bI(!1,Ht.Redirect);return o.url=t,o.navigationBehaviorOptions=r,o}function bI(e,n){const t=new Error(`NavigationCancelingError: ${e||""}`);return t[DI]=!0,t.cancellationCode=n,t}function EI(e){return!!e&&e[DI]}let II=(()=>{class e{static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275cmp=kt({type:e,selectors:[["ng-component"]],standalone:!0,features:[Ut],decls:1,vars:0,template:function(r,o){1&r&&y(0,"router-outlet")},dependencies:[qp],encapsulation:2})}return e})();function Zp(e){const n=e.children&&e.children.map(Zp),t=n?{...e,children:n}:{...e};return!t.component&&!t.loadComponent&&(n||t.loadChildren)&&t.outlet&&t.outlet!==Z&&(t.component=II),t}function kn(e){return e.outlet||Z}function da(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 z3{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),Gp(this.futureState.root),this.activateChildRoutes(t,r,n)}deactivateChildRoutes(n,t,r){const o=yi(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=yi(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=yi(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=yi(t);n.children.forEach(i=>{this.activateRoutes(i,o[i.value.outlet],r),this.forwardEvent(new x3(i.value.snapshot))}),n.children.length&&this.forwardEvent(new N3(n.value.snapshot))}activateRoutes(n,t,r){const o=n.value,i=t?t.value:null;if(Gp(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),Gp(a.route.value),this.activateChildRoutes(n,null,s.children)}else{const a=da(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 MI{constructor(n){this.path=n,this.route=this.path[this.path.length-1]}}class Zc{constructor(n,t){this.component=n,this.route=t}}function q3(e,n,t){const r=e._root;return fa(r,n?n._root:null,t,[r.value])}function _i(e,n){const t=Symbol(),r=n.get(e,t);return r===t?"function"!=typeof e||function t0(e){return null!==xa(e)}(e)?n.get(e):e:r}function fa(e,n,t,r,o={canDeactivateChecks:[],canActivateChecks:[]}){const i=yi(n);return e.children.forEach(s=>{(function Z3(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 Q3(e,n,t){if("function"==typeof t)return t(e,n);switch(t){case"pathParamsChange":return!Qr(e.url,n.url);case"pathParamsOrQueryParamsChange":return!Qr(e.url,n.url)||!Rn(e.queryParams,n.queryParams);case"always":return!0;case"paramsOrQueryParamsChange":return!zp(e,n)||!Rn(e.queryParams,n.queryParams);default:return!zp(e,n)}}(s,i,i.routeConfig.runGuardsAndResolvers);l?o.canActivateChecks.push(new MI(r)):(i.data=s.data,i._resolvedData=s._resolvedData),fa(e,n,i.component?a?a.children:null:t,r,o),l&&a&&a.outlet&&a.outlet.isActivated&&o.canDeactivateChecks.push(new Zc(a.outlet.component,s))}else s&&ha(n,a,o),o.canActivateChecks.push(new MI(r)),fa(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])=>ha(a,t.getContext(s),o)),o}function ha(e,n,t){const r=yi(e),o=e.value;Object.entries(r).forEach(([i,s])=>{ha(s,o.component?n?n.children.getContext(i):null:n,t)}),t.canDeactivateChecks.push(new Zc(o.component&&n&&n.outlet&&n.outlet.isActivated?n.outlet.component:null,o))}function pa(e){return"function"==typeof e}function SI(e){return e instanceof Pc||"EmptyError"===e?.name}const Qc=Symbol("INITIAL_VALUE");function Ci(){return fn(e=>Cp(e.map(n=>n.pipe(ci(1),function pj(...e){const n=kc(e);return nt((t,r)=>{(n?Dp(e,t,n):Dp(e,t)).subscribe(r)})}(Qc)))).pipe(ne(n=>{for(const t of n)if(!0!==t){if(t===Qc)return Qc;if(!1===t||t instanceof hi)return t}return!0}),hn(n=>n!==Qc),ci(1)))}function TI(e){return function z1(...e){return Zg(e)}(_t(n=>{if(gi(n))throw wI(0,n)}),ne(n=>!0===n))}class Qp{constructor(n){this.segmentGroup=n||null}}class Yp extends Error{constructor(n){super(),this.urlTree=n}}function Di(e){return Fc(new Qp(e))}class pU{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 H(r);if(o.numberOfChildren>1||!o.children[Z])return Fc(new I(4e3,!1));o=o.children[Z]}}applyRedirectCommands(n,t,r){const o=this.applyRedirectCreateUrlTree(t,this.urlSerializer.parse(t),n,r);if(t.startsWith("/"))throw new Yp(o);return o}applyRedirectCreateUrlTree(n,t,r,o){const i=this.createSegmentGroup(n,t.root,r,o);return new hi(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 me(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 I(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 Xp={matched:!1,consumedSegments:[],remainingSegments:[],parameters:{},positionalParamSegments:{}};function gU(e,n,t,r,o){const i=Jp(e,n,t);return i.matched?(r=function j3(e,n){return e.providers&&!e._injector&&(e._injector=$l(e.providers,n,`Route: ${e.path}`)),e._injector??n}(n,r),function dU(e,n,t,r){const o=n.canMatch;return o&&0!==o.length?H(o.map(s=>{const a=_i(s,e);return Cr(function tU(e){return e&&pa(e.canMatch)}(a)?a.canMatch(n,t):mn(e,()=>a(n,t)))})).pipe(Ci(),TI()):H(!0)}(r,n,t).pipe(ne(s=>!0===s?i:{...Xp}))):H(i)}function Jp(e,n,t){if("**"===n.path)return function mU(e){return{matched:!0,parameters:e.length>0?ZE(e).parameters:{},consumedSegments:e,remainingSegments:[],positionalParamSegments:{}}}(t);if(""===n.path)return"full"===n.pathMatch&&(e.hasChildren()||t.length>0)?{...Xp}:{matched:!0,consumedSegments:[],remainingSegments:t,parameters:{},positionalParamSegments:{}};const o=(n.matcher||Yj)(t,e,n);if(!o)return{...Xp};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 AI(e,n,t,r){return t.length>0&&function _U(e,n,t){return t.some(r=>Yc(e,n,r)&&kn(r)!==Z)}(e,t,r)?{segmentGroup:new me(n,yU(r,new me(t,e.children))),slicedSegments:[]}:0===t.length&&function CU(e,n,t){return t.some(r=>Yc(e,n,r))}(e,t,r)?{segmentGroup:new me(e.segments,vU(e,t,r,e.children)),slicedSegments:t}:{segmentGroup:new me(e.segments,e.children),slicedSegments:t}}function vU(e,n,t,r){const o={};for(const i of t)if(Yc(e,n,i)&&!r[kn(i)]){const s=new me([],{});o[kn(i)]=s}return{...r,...o}}function yU(e,n){const t={};t[Z]=n;for(const r of e)if(""===r.path&&kn(r)!==Z){const o=new me([],{});t[kn(r)]=o}return t}function Yc(e,n,t){return(!(e.hasChildren()||n.length>0)||"full"!==t.pathMatch)&&""===t.path}class bU{}class MU{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 pU(this.urlSerializer,this.urlTree),this.absoluteRedirectCount=0,this.allowRedirects=!0}noMatchError(n){return new I(4002,`'${n.segmentGroup}'`)}recognize(){const n=AI(this.urlTree.root,[],[],this.config).segmentGroup;return this.match(n).pipe(ne(t=>{const r=new Hp([],Object.freeze({}),Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,{},Z,this.rootComponentType,null,{}),o=new pn(r,t),i=new vI("",o),s=function m3(e,n,t=null,r=null){return sI(iI(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,Z).pipe(di(r=>{if(r instanceof Yp)return this.urlTree=r.urlTree,this.match(r.urlTree.root);throw r instanceof Qp?this.noMatchError(r):r}))}inheritParamsAndData(n,t){const r=n.value,o=Bp(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(ne(i=>i instanceof pn?[i]:[]))}processChildren(n,t,r){const o=[];for(const i of Object.keys(r.children))"primary"===i?o.unshift(i):o.push(i);return Ke(o).pipe(ui(i=>{const s=r.children[i],a=function $3(e,n){const t=e.filter(r=>kn(r)===n);return t.push(...e.filter(r=>kn(r)!==n)),t}(t,i);return this.processSegmentGroup(n,a,s,i)}),function vj(e,n){return nt(function mj(e,n,t,r,o){return(i,s)=>{let a=t,l=n,c=0;i.subscribe(qe(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)),Lc(null),function yj(e,n){const t=arguments.length>=2;return r=>r.pipe(e?hn((o,i)=>e(o,i,r)):Nr,bp(1),t?Lc(n):RE(()=>new Pc))}(),ot(i=>{if(null===i)return Di(r);const s=NI(i);return function SU(e){e.sort((n,t)=>n.value.outlet===Z?-1:t.value.outlet===Z?1:n.value.outlet.localeCompare(t.value.outlet))}(s),H(s)}))}processSegment(n,t,r,o,i,s){return Ke(t).pipe(ui(a=>this.processSegmentAgainstRoute(a._injector??n,t,a,r,o,i,s).pipe(di(l=>{if(l instanceof Qp)return H(null);throw l}))),Zr(a=>!!a),di(a=>{if(SI(a))return function wU(e,n,t){return 0===n.length&&!e.children[t]}(r,o,i)?H(new bU):Di(r);throw a}))}processSegmentAgainstRoute(n,t,r,o,i,s,a){return function DU(e,n,t,r){return!!(kn(e)===r||r!==Z&&Yc(n,t,e))&&Jp(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):Di(o):Di(o)}expandSegmentAgainstRouteUsingRedirect(n,t,r,o,i,s){const{matched:a,consumedSegments:l,positionalParamSegments:c,remainingSegments:u}=Jp(t,o,i);if(!a)return Di(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(ot(g=>this.processSegment(n,r,t,g.concat(u),s,!1)))}matchSegmentAgainstRoute(n,t,r,o,i){const s=gU(t,r,o,n);return"**"===r.path&&(t.children={}),s.pipe(fn(a=>a.matched?this.getChildConfig(n=r._injector??n,r,o).pipe(fn(({routes:l})=>{const c=r._loadedInjector??n,{consumedSegments:u,remainingSegments:d,parameters:g}=a,m=new Hp(u,g,Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,function AU(e){return e.data||{}}(r),kn(r),r.component??r._loadedComponent??null,r,function NU(e){return e.resolve||{}}(r)),{segmentGroup:v,slicedSegments:_}=AI(t,u,d,l);if(0===_.length&&v.hasChildren())return this.processChildren(c,l,v).pipe(ne(w=>null===w?null:new pn(m,w)));if(0===l.length&&0===_.length)return H(new pn(m,[]));const D=kn(r)===i;return this.processSegment(c,l,v,_,D?Z:i,!0).pipe(ne(w=>new pn(m,w instanceof pn?[w]:[])))})):Di(t)))}getChildConfig(n,t,r){return t.children?H({routes:t.children,injector:n}):t.loadChildren?void 0!==t._loadedRoutes?H({routes:t._loadedRoutes,injector:t._loadedInjector}):function uU(e,n,t,r){const o=n.canLoad;return void 0===o||0===o.length?H(!0):H(o.map(s=>{const a=_i(s,e);return Cr(function X3(e){return e&&pa(e.canLoad)}(a)?a.canLoad(n,t):mn(e,()=>a(n,t)))})).pipe(Ci(),TI())}(n,t,r).pipe(ot(o=>o?this.configLoader.loadChildren(n,t).pipe(_t(i=>{t._loadedRoutes=i.routes,t._loadedInjector=i.injector})):function hU(e){return Fc(bI(!1,Ht.GuardRejected))}())):H({routes:[],injector:n})}}function TU(e){const n=e.value.routeConfig;return n&&""===n.path}function NI(e){const n=[],t=new Set;for(const r of e){if(!TU(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=NI(r.children);n.push(new pn(r.value,o))}return n.filter(r=>!t.has(r))}function RI(e){const n=e.children.map(t=>RI(t)).flat();return[e,...n]}function Kp(e){return fn(n=>{const t=e(n);return t?Ke(t).pipe(ne(()=>n)):H(n)})}let xI=(()=>{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===Z);return r}getResolvedTitleForRoute(t){return t.data[ra]}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=x({token:e,factory:()=>M(FU),providedIn:"root"})}return e})(),FU=(()=>{class e extends xI{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)(k(zj))};static#t=this.\u0275prov=x({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();const wi=new R("",{providedIn:"root",factory:()=>({})}),bi=new R("");let eg=(()=>{class e{constructor(){this.componentLoaders=new WeakMap,this.childrenLoaders=new WeakMap,this.compiler=M(Gw)}loadComponent(t){if(this.componentLoaders.get(t))return this.componentLoaders.get(t);if(t._loadedComponent)return H(t._loadedComponent);this.onLoadStartListener&&this.onLoadStartListener(t);const r=Cr(t.loadComponent()).pipe(ne(OI),_t(i=>{this.onLoadEndListener&&this.onLoadEndListener(t),t._loadedComponent=i}),ea(()=>{this.componentLoaders.delete(t)})),o=new NE(r,()=>new $t).pipe(wp());return this.componentLoaders.set(t,o),o}loadChildren(t,r){if(this.childrenLoaders.get(r))return this.childrenLoaders.get(r);if(r._loadedRoutes)return H({routes:r._loadedRoutes,injector:r._loadedInjector});this.onLoadStartListener&&this.onLoadStartListener(r);const i=function LU(e,n,t,r){return Cr(e.loadChildren()).pipe(ne(OI),ot(o=>o instanceof nC||Array.isArray(o)?H(o):Ke(n.compileModuleAsync(o))),ne(o=>{r&&r(e);let i,s,a=!1;return Array.isArray(o)?(s=o,!0):(i=o.create(t).injector,s=i.get(bi,[],{optional:!0,self:!0}).flat()),{routes:s.map(Zp),injector:i}}))}(r,this.compiler,t,this.onLoadEndListener).pipe(ea(()=>{this.childrenLoaders.delete(r)})),s=new NE(i,()=>new $t).pipe(wp());return this.childrenLoaders.set(r,s),s}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=x({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();function OI(e){return function VU(e){return e&&"object"==typeof e&&"default"in e}(e)?e.default:e}let tg=(()=>{class e{static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=x({token:e,factory:()=>M(jU),providedIn:"root"})}return e})(),jU=(()=>{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=x({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();const kI=new R(""),PI=new R("");function UU(e,n,t){const r=e.get(PI),o=e.get(Nt);return e.get(de).runOutsideAngular(()=>{if(!o.startViewTransition||r.skipNextTransition)return r.skipNextTransition=!1,new Promise(c=>setTimeout(c));let i;const s=new Promise(c=>{i=c}),a=o.startViewTransition(()=>(i(),function BU(e){return new Promise(n=>{Bf(n,{injector:e})})}(e))),{onViewTransitionCreated:l}=r;return l&&mn(e,()=>l({transition:a,from:n,to:t})),s})}let Xc=(()=>{class e{get hasRequestedNavigation(){return 0!==this.navigationId}constructor(){this.currentNavigation=null,this.currentTransition=null,this.lastSuccessfulNavigation=null,this.events=new $t,this.transitionAbortSubject=new $t,this.configLoader=M(eg),this.environmentInjector=M(ft),this.urlSerializer=M(pi),this.rootContexts=M(ca),this.location=M(Qs),this.inputBindingEnabled=null!==M(Wc,{optional:!0}),this.titleStrategy=M(xI),this.options=M(wi,{optional:!0})||{},this.paramsInheritanceStrategy=this.options.paramsInheritanceStrategy||"emptyOnly",this.urlHandlingStrategy=M(tg),this.createViewTransition=M(kI,{optional:!0}),this.navigationId=0,this.afterPreactivation=()=>H(void 0),this.rootComponentType=null,this.configLoader.onLoadEndListener=o=>this.events.next(new T3(o)),this.configLoader.onLoadStartListener=o=>this.events.next(new S3(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 Gt({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:la,restoredState:null,currentSnapshot:o.snapshot,targetSnapshot:null,currentRouterState:o,targetRouterState:null,guards:{canActivateChecks:[],canDeactivateChecks:[]},guardsResult:null}),this.transitions.pipe(hn(i=>0!==i.id),ne(i=>({...i,extractedUrl:this.urlHandlingStrategy.extract(i.rawUrl)})),fn(i=>{let s=!1,a=!1;return H(i).pipe(fn(l=>{if(this.navigationId>i.id)return this.cancelNavigationTransition(i,"",Ht.SupersededByNewNavigation),Nn;this.currentTransition=i,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};const c=!t.navigated||this.isUpdatingInternalState()||this.isUpdatedBrowserUrl();if(!c&&"reload"!==(l.extras.onSameUrlNavigation??t.onSameUrlNavigation)){const d="";return this.events.next(new vi(l.id,this.urlSerializer.serialize(l.rawUrl),d,zc.IgnoredSameUrlNavigation)),l.resolve(null),Nn}if(this.urlHandlingStrategy.shouldProcessUrl(l.rawUrl))return H(l).pipe(fn(d=>{const g=this.transitions?.getValue();return this.events.next(new Gc(d.id,this.urlSerializer.serialize(d.extractedUrl),d.source,d.restoredState)),g!==this.transitions?.getValue()?Nn:Promise.resolve(d)}),function RU(e,n,t,r,o,i){return ot(s=>function EU(e,n,t,r,o,i,s="emptyOnly"){return new MU(e,n,t,r,o,s,i).recognize()}(e,n,t,r,s.extractedUrl,o,i).pipe(ne(({state:a,tree:l})=>({...s,targetSnapshot:a,urlAfterRedirects:l}))))}(this.environmentInjector,this.configLoader,this.rootComponentType,t.config,this.urlSerializer,this.paramsInheritanceStrategy),_t(d=>{i.targetSnapshot=d.targetSnapshot,i.urlAfterRedirects=d.urlAfterRedirects,this.currentNavigation={...this.currentNavigation,finalUrl:d.urlAfterRedirects};const g=new fI(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 Gc(d,this.urlSerializer.serialize(g),m,v);this.events.next(D);const w=mI(this.rootComponentType).snapshot;return this.currentTransition=i={...l,targetSnapshot:w,urlAfterRedirects:g,extras:{..._,skipLocationChange:!1,replaceUrl:!1}},this.currentNavigation.finalUrl=g,H(i)}{const d="";return this.events.next(new vi(l.id,this.urlSerializer.serialize(l.extractedUrl),d,zc.IgnoredByUrlHandlingStrategy)),l.resolve(null),Nn}}),_t(l=>{const c=new b3(l.id,this.urlSerializer.serialize(l.extractedUrl),this.urlSerializer.serialize(l.urlAfterRedirects),l.targetSnapshot);this.events.next(c)}),ne(l=>(this.currentTransition=i={...l,guards:q3(l.targetSnapshot,l.currentSnapshot,this.rootContexts)},i)),function nU(e,n){return ot(t=>{const{targetSnapshot:r,currentSnapshot:o,guards:{canActivateChecks:i,canDeactivateChecks:s}}=t;return 0===s.length&&0===i.length?H({...t,guardsResult:!0}):function rU(e,n,t,r){return Ke(e).pipe(ot(o=>function cU(e,n,t,r,o){const i=n&&n.routeConfig?n.routeConfig.canDeactivate:null;return i&&0!==i.length?H(i.map(a=>{const l=da(n)??o,c=_i(a,l);return Cr(function eU(e){return e&&pa(e.canDeactivate)}(c)?c.canDeactivate(e,n,t,r):mn(l,()=>c(e,n,t,r))).pipe(Zr())})).pipe(Ci()):H(!0)}(o.component,o.route,t,n,r)),Zr(o=>!0!==o,!0))}(s,r,o,e).pipe(ot(a=>a&&function Y3(e){return"boolean"==typeof e}(a)?function oU(e,n,t,r){return Ke(n).pipe(ui(o=>Dp(function sU(e,n){return null!==e&&n&&n(new A3(e)),H(!0)}(o.route.parent,r),function iU(e,n){return null!==e&&n&&n(new R3(e)),H(!0)}(o.route,r),function lU(e,n,t){const r=n[n.length-1],i=n.slice(0,n.length-1).reverse().map(s=>function W3(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=>AE(()=>H(s.guards.map(l=>{const c=da(s.node)??t,u=_i(l,c);return Cr(function K3(e){return e&&pa(e.canActivateChild)}(u)?u.canActivateChild(r,e):mn(c,()=>u(r,e))).pipe(Zr())})).pipe(Ci())));return H(i).pipe(Ci())}(e,o.path,t),function aU(e,n,t){const r=n.routeConfig?n.routeConfig.canActivate:null;if(!r||0===r.length)return H(!0);const o=r.map(i=>AE(()=>{const s=da(n)??t,a=_i(i,s);return Cr(function J3(e){return e&&pa(e.canActivate)}(a)?a.canActivate(n,e):mn(s,()=>a(n,e))).pipe(Zr())}));return H(o).pipe(Ci())}(e,o.route,t))),Zr(o=>!0!==o,!0))}(r,i,e,n):H(a)),ne(a=>({...t,guardsResult:a})))})}(this.environmentInjector,l=>this.events.next(l)),_t(l=>{if(i.guardsResult=l.guardsResult,gi(l.guardsResult))throw wI(0,l.guardsResult);const c=new E3(l.id,this.urlSerializer.serialize(l.extractedUrl),this.urlSerializer.serialize(l.urlAfterRedirects),l.targetSnapshot,!!l.guardsResult);this.events.next(c)}),hn(l=>!!l.guardsResult||(this.cancelNavigationTransition(l,"",Ht.GuardRejected),!1)),Kp(l=>{if(l.guards.canActivateChecks.length)return H(l).pipe(_t(c=>{const u=new I3(c.id,this.urlSerializer.serialize(c.extractedUrl),this.urlSerializer.serialize(c.urlAfterRedirects),c.targetSnapshot);this.events.next(u)}),fn(c=>{let u=!1;return H(c).pipe(function xU(e,n){return ot(t=>{const{targetSnapshot:r,guards:{canActivateChecks:o}}=t;if(!o.length)return H(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 RI(l))s.add(c);let a=0;return Ke(s).pipe(ui(l=>i.has(l)?function OU(e,n,t,r){const o=e.routeConfig,i=e._resolve;return void 0!==o?.title&&!_I(o)&&(i[ra]=o.title),function kU(e,n,t,r){const o=Rp(e);if(0===o.length)return H({});const i={};return Ke(o).pipe(ot(s=>function PU(e,n,t,r){const o=da(n)??r,i=_i(e,o);return Cr(i.resolve?i.resolve(n,t):mn(o,()=>i(n,t)))}(e[s],n,t,r).pipe(Zr(),_t(a=>{i[s]=a}))),bp(1),function _j(e){return ne(()=>e)}(i),di(s=>SI(s)?Nn:Fc(s)))}(i,e,n,r).pipe(ne(s=>(e._resolvedData=s,e.data=Bp(e,e.parent,t).resolve,null)))}(l,r,e,n):(l.data=Bp(l,l.parent,e).resolve,H(void 0))),_t(()=>a++),bp(1),ot(l=>a===s.size?H(t):Nn))})}(this.paramsInheritanceStrategy,this.environmentInjector),_t({next:()=>u=!0,complete:()=>{u||this.cancelNavigationTransition(c,"",Ht.NoDataFromResolver)}}))}),_t(c=>{const u=new M3(c.id,this.urlSerializer.serialize(c.extractedUrl),this.urlSerializer.serialize(c.urlAfterRedirects),c.targetSnapshot);this.events.next(u)}))}),Kp(l=>{const c=u=>{const d=[];u.routeConfig?.loadComponent&&!u.routeConfig._loadedComponent&&d.push(this.configLoader.loadComponent(u.routeConfig).pipe(_t(g=>{u.component=g}),ne(()=>{})));for(const g of u.children)d.push(...c(g));return d};return Cp(c(l.targetSnapshot.root)).pipe(Lc(null),ci(1))}),Kp(()=>this.afterPreactivation()),fn(()=>{const{currentSnapshot:l,targetSnapshot:c}=i,u=this.createViewTransition?.(this.environmentInjector,l.root,c.root);return u?Ke(u).pipe(ne(()=>i)):H(i)}),ne(l=>{const c=function P3(e,n,t){const r=ua(e,n._root,t?t._root:void 0);return new gI(r,n)}(t.routeReuseStrategy,l.targetSnapshot,l.currentRouterState);return this.currentTransition=i={...l,targetRouterState:c},this.currentNavigation.targetRouterState=c,i}),_t(()=>{this.events.next(new Lp)}),((e,n,t,r)=>ne(o=>(new z3(n,o.targetRouterState,o.currentRouterState,t,r).activate(e),o)))(this.rootContexts,t.routeReuseStrategy,l=>this.events.next(l),this.inputBindingEnabled),ci(1),_t({next:l=>{s=!0,this.lastSuccessfulNavigation=this.currentNavigation,this.events.next(new On(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 Cj(e){return nt((n,t)=>{An(e).subscribe(qe(t,()=>t.complete(),Su)),!t.closed&&n.subscribe(t)})}(this.transitionAbortSubject.pipe(_t(l=>{throw l}))),ea(()=>{!s&&!a&&this.cancelNavigationTransition(i,"",Ht.SupersededByNewNavigation),this.currentTransition?.id===i.id&&(this.currentNavigation=null,this.currentTransition=null)}),di(l=>{if(a=!0,EI(l))this.events.next(new mi(i.id,this.urlSerializer.serialize(i.extractedUrl),l.message,l.cancellationCode)),function V3(e){return EI(e)&&gi(e.url)}(l)?this.events.next(new Vp(l.url)):i.resolve(!1);else{this.events.next(new qc(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 Nn}))}))}cancelNavigationTransition(t,r,o){const i=new mi(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=x({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();function HU(e){return e!==la}let $U=(()=>{class e{static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=x({token:e,factory:()=>M(zU),providedIn:"root"})}return e})();class GU{shouldDetach(n){return!1}store(n,t){}shouldAttach(n){return!1}retrieve(n){return null}shouldReuseRoute(n,t){return n.routeConfig===t.routeConfig}}let zU=(()=>{class e extends GU{static#e=this.\u0275fac=(()=>{let t;return function(o){return(t||(t=et(e)))(o||e)}})();static#t=this.\u0275prov=x({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})(),FI=(()=>{class e{static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275prov=x({token:e,factory:()=>M(qU),providedIn:"root"})}return e})(),qU=(()=>{class e extends FI{constructor(){super(...arguments),this.location=M(Qs),this.urlSerializer=M(pi),this.options=M(wi,{optional:!0})||{},this.canceledNavigationResolution=this.options.canceledNavigationResolution||"replace",this.urlHandlingStrategy=M(tg),this.urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred",this.currentUrlTree=new hi,this.rawUrlTree=this.currentUrlTree,this.currentPageId=0,this.lastSuccessfulId=-1,this.routerState=mI(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 Gc)this.stateMemento=this.createStateMemento();else if(t instanceof vi)this.rawUrlTree=r.initialUrl;else if(t instanceof fI){if("eager"===this.urlUpdateStrategy&&!r.extras.skipLocationChange){const o=this.urlHandlingStrategy.merge(r.finalUrl,r.initialUrl);this.setBrowserUrl(o,r)}}else t instanceof Lp?(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 mi&&(t.code===Ht.GuardRejected||t.code===Ht.NoDataFromResolver)?this.restoreHistory(r):t instanceof qc?this.restoreHistory(r,!0):t instanceof On&&(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=et(e)))(o||e)}})();static#t=this.\u0275prov=x({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();var ga=function(e){return e[e.COMPLETE=0]="COMPLETE",e[e.FAILED=1]="FAILED",e[e.REDIRECTING=2]="REDIRECTING",e}(ga||{});function LI(e,n){e.events.pipe(hn(t=>t instanceof On||t instanceof mi||t instanceof qc||t instanceof vi),ne(t=>t instanceof On||t instanceof vi?ga.COMPLETE:t instanceof mi&&(t.code===Ht.Redirect||t.code===Ht.SupersededByNewNavigation)?ga.REDIRECTING:ga.FAILED),hn(t=>t!==ga.REDIRECTING),ci(1)).subscribe(()=>{n()})}function WU(e){throw e}const ZU={paths:"exact",fragment:"ignored",matrixParams:"ignored",queryParams:"exact"},QU={paths:"subset",fragment:"ignored",matrixParams:"ignored",queryParams:"subset"};let Qt=(()=>{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=M(kw),this.stateManager=M(FI),this.options=M(wi,{optional:!0})||{},this.pendingTasks=M(hr),this.urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred",this.navigationTransitions=M(Xc),this.urlSerializer=M(pi),this.location=M(Qs),this.urlHandlingStrategy=M(tg),this._events=new $t,this.errorHandler=this.options.errorHandler||WU,this.navigated=!1,this.routeReuseStrategy=M($U),this.onSameUrlNavigation=this.options.onSameUrlNavigation||"ignore",this.config=M(bi,{optional:!0})?.flat()??[],this.componentInputBindingEnabled=!!M(Wc,{optional:!0}),this.eventsSubscription=new Dt,this.isNgZoneEnabled=M(de)instanceof de&&de.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 mi&&r.code!==Ht.Redirect&&r.code!==Ht.SupersededByNewNavigation)this.navigated=!0;else if(r instanceof On)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||HU(o.source)};this.scheduleNavigation(s,la,null,a,{resolve:o.resolve,reject:o.reject,promise:o.promise})}(function XU(e){return!(e instanceof Lp||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),la,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(Zp),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=iI(o?o.snapshot:this.routerState.snapshot.root)}catch{("string"!=typeof t[0]||!t[0].startsWith("/"))&&(t=[]),d=this.currentUrlTree.root}return sI(d,t,u,c??null)}navigateByUrl(t,r={skipLocationChange:!1}){const o=gi(t)?t:this.parseUrl(t),i=this.urlHandlingStrategy.merge(o,this.rawUrlTree);return this.scheduleNavigation(i,la,null,r)}navigate(t,r={skipLocationChange:!1}){return function YU(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 LI(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=x({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})(),Pn=(()=>{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 $t,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 On&&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 hy(e,n,t){return function lA(e,n){return"src"===n&&("embed"===e||"frame"===e||"iframe"===e||"media"===e||"script"===e)||"href"===n&&("base"===e||"link"===e)?fy:xo}(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)(T(Qt),T(Yr),function Ki(e){return function US(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 Re,this.routerEventsSubscription=t.events.subscribe(a=>{a instanceof On&&this.update()})}ngAfterContentInit(){H(this.links.changes,H(null)).pipe(Ks()).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=Ke(t).pipe(Ks()).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.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._isActive!==t&&(this._isActive=t,this.cdr.markForCheck(),this.isActiveChange.emit(t))})}isLinkActive(t){const r=function JU(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)(T(Qt),T(Lt),T(Wn),T(qs),T(Pn,8))};static#t=this.\u0275dir=$({type:e,selectors:[["","routerLinkActive",""]],contentQueries:function(r,o,i){if(1&r&&function GD(e,n,t,r){P_(e,n,t,r)}(i,Pn,5),2&r){let s;(function zD(e){const n=E(),t=te(),r=bd();Ka(r+1);const o=Jf(t,r);if(e.dirty&&function uS(e){return!(4&~e[P])}(n)===!(2&~o.metadata.flags)){if(null===o.matches)e.reset([]);else{const i=L_(n,r);e.reset(i,Iv),e.notifyOnChanges()}return!0}return!1})(s=qD())&&(o.links=s)}},inputs:{routerLinkActiveOptions:"routerLinkActiveOptions",ariaCurrentWhenActive:"ariaCurrentWhenActive",routerLinkActive:"routerLinkActive"},outputs:{isActiveChange:"isActiveChange"},exportAs:["routerLinkActive"],standalone:!0,features:[zt]})}return e})();class jI{}let KU=(()=>{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(hn(t=>t instanceof On),ui(()=>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=$l(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 Ke(o).pipe(Ks())}preloadConfig(t,r){return this.preloadingStrategy.preload(r,()=>{let o;o=r.loadChildren&&void 0===r.canLoad?this.loader.loadChildren(t,r):H(null);const i=o.pipe(ot(s=>null===s?H(void 0):(r._loadedRoutes=s.routes,r._loadedInjector=s.injector,this.processRoutes(s.injector??t,s.routes))));return r.loadComponent&&!r._loadedComponent?Ke([i,this.loader.loadComponent(r)]).pipe(Ks()):i})}static#e=this.\u0275fac=function(r){return new(r||e)(k(Qt),k(Gw),k(ft),k(jI),k(eg))};static#t=this.\u0275prov=x({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();const ng=new R("");let UI=(()=>{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={},this.environmentInjector=M(ft),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 Gc?(this.store[this.lastId]=this.viewportScroller.getScrollPosition(),this.lastSource=t.navigationTrigger,this.restoredId=t.restoredState?t.restoredState.navigationId:0):t instanceof On?(this.lastId=t.id,this.scheduleScrollEvent(t,this.urlSerializer.parse(t.urlAfterRedirects).fragment)):t instanceof vi&&t.code===zc.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 hI&&(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){var o=this;this.zone.runOutsideAngular(ro(function*(){yield new Promise(i=>{setTimeout(()=>{i()}),Bf(()=>{i()},{injector:o.environmentInjector})}),o.zone.run(()=>{o.transitions.events.next(new hI(t,"popstate"===o.lastSource?o.store[o.restoredId]:null,r))})}))}ngOnDestroy(){this.routerEventsSubscription?.unsubscribe(),this.scrollEventsSubscription?.unsubscribe()}static#e=this.\u0275fac=function(r){!function Ly(){throw new Error("invalid")}()};static#t=this.\u0275prov=x({token:e,factory:e.\u0275fac})}return e})();function Fn(e,n){return{\u0275kind:e,\u0275providers:n}}function HI(){const e=M(gt);return n=>{const t=e.get(mr);if(n!==t.components[0])return;const r=e.get(Qt),o=e.get($I);1===e.get(rg)&&r.initialNavigation(),e.get(GI,null,ee.Optional)?.setUpPreloading(),e.get(ng,null,ee.Optional)?.init(),r.resetRootComponentType(t.componentTypes[0]),o.closed||(o.next(),o.complete(),o.unsubscribe())}}const $I=new R("",{factory:()=>new $t}),rg=new R("",{providedIn:"root",factory:()=>1}),GI=new R("");function rB(e){return Fn(0,[{provide:GI,useExisting:KU},{provide:jI,useExisting:e}])}function iB(e){return Fn(9,[{provide:kI,useValue:UU},{provide:PI,useValue:{skipNextTransition:!!e?.skipInitialTransition,...e}}])}const zI=new R("ROUTER_FORROOT_GUARD"),sB=[Qs,{provide:pi,useClass:xp},Qt,ca,{provide:Yr,useFactory:function BI(e){return e.routerState.root},deps:[Qt]},eg,[]];let qI=(()=>{class e{constructor(t){}static forRoot(t,r){return{ngModule:e,providers:[sB,[],{provide:bi,multi:!0,useValue:t},{provide:zI,useFactory:uB,deps:[[Qt,new La,new Va]]},{provide:wi,useValue:r||{}},r?.useHash?{provide:Wr,useClass:E2}:{provide:Wr,useClass:Ob},{provide:ng,useFactory:()=>{const e=M(GL),n=M(de),t=M(wi),r=M(Xc),o=M(pi);return t.scrollOffset&&e.setOffset(t.scrollOffset),new UI(o,r,e,n,t)}},r?.preloadingStrategy?rB(r.preloadingStrategy).\u0275providers:[],r?.initialNavigation?dB(r):[],r?.bindToComponentInputs?Fn(8,[CI,{provide:Wc,useExisting:CI}]).\u0275providers:[],r?.enableViewTransitions?iB().\u0275providers:[],[{provide:WI,useFactory:HI},{provide:jh,multi:!0,useExisting:WI}]]}}static forChild(t){return{ngModule:e,providers:[{provide:bi,multi:!0,useValue:t}]}}static#e=this.\u0275fac=function(r){return new(r||e)(k(zI,8))};static#t=this.\u0275mod=or({type:e});static#n=this.\u0275inj=jn({})}return e})();function uB(e){return"guarded"}function dB(e){return["disabled"===e.initialNavigation?Fn(3,[{provide:Lh,multi:!0,useFactory:()=>{const n=M(Qt);return()=>{n.setUpLocationChangeListener()}}},{provide:rg,useValue:2}]).\u0275providers:[],"enabledBlocking"===e.initialNavigation?Fn(2,[{provide:rg,useValue:0},{provide:Lh,multi:!0,deps:[gt],useFactory:n=>{const t=n.get(w2,Promise.resolve());return()=>t.then(()=>new Promise(r=>{const o=n.get(Qt),i=n.get($I);LI(o,()=>{r(!0)}),n.get(Xc).afterPreactivation=()=>(r(!0),i.closed?H(void 0):i),o.initialNavigation()}))}}]).\u0275providers:[]]}const WI=new R(""),hB=()=>["/pro"];let pB=(()=>{class e{constructor(){this.years=(new Date).getFullYear()-2009}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275cmp=kt({type:e,selectors:[["app-footer"]],standalone:!0,features:[Ut],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),Qn(" Fast forward ",o.years," years, I'm still maintaining "),C(6),S("routerLink",re(2,hB)))},dependencies:[Pn],styles:["footer[_ngcontent-%COMP%]{background-color:#464646}footer[_ngcontent-%COMP%], a[_ngcontent-%COMP%]{color:#fff}.portrait[_ngcontent-%COMP%]{max-height:300px}"]})}return e})();const ZI=()=>["/"],gB=e=>({show:e}),Ei=()=>["link-active"],QI=()=>({exact:!0}),mB=()=>["/features"],vB=()=>["/getstarted"],yB=()=>["/usage"],_B=()=>["/contact"],CB=()=>["/pro"];let DB=(()=>{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=kt({type:e,selectors:[["app-nav-menu"]],standalone:!0,features:[Ut],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),B("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),S("routerLink",re(17,ZI)),C(4),an("aria-expanded",o.isExpanded),C(2),S("ngClass",js(18,gB,o.isExpanded)),C(2),S("routerLinkActive",re(20,Ei))("routerLinkActiveOptions",re(21,QI)),C(),S("routerLink",re(22,ZI)),C(2),S("routerLinkActive",re(23,Ei))("routerLinkActiveOptions",re(24,QI)),C(),S("routerLink",re(25,mB)),C(2),S("routerLinkActive",re(26,Ei)),C(),S("routerLink",re(27,vB)),C(2),S("routerLinkActive",re(28,Ei)),C(),S("routerLink",re(29,yB)),C(2),S("routerLinkActive",re(30,Ei)),C(),S("routerLink",re(31,_B)),C(2),S("routerLinkActive",re(32,Ei)),C(),S("routerLink",re(33,CB)))},dependencies:[Pn,Nc,VI],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})(),wB=(()=>{class e{constructor(t,r,o){this.dom=t,this.router=r,this.activatedRoute=o}ngOnInit(){this.router.events.pipe(hn(t=>t instanceof On),ne(()=>this.activatedRoute),ne(t=>{for(;t.firstChild;)t=t.firstChild;return t}),hn(t=>"primary"===t.outlet),ot(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)(T(Nt),T(Qt),T(Yr))};static#t=this.\u0275cmp=kt({type:e,selectors:[["app-root"]],standalone:!0,features:[Ut],decls:3,vars:0,template:function(r,o){1&r&&y(0,"app-nav-menu")(1,"router-outlet")(2,"app-footer")},dependencies:[DB,qp,pB],encapsulation:2})}return e})(),YI=(()=>{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)(T(Wn),T(Lt))};static#t=this.\u0275dir=$({type:e})}return e})(),Xr=(()=>{class e extends YI{static#e=this.\u0275fac=(()=>{let t;return function(o){return(t||(t=et(e)))(o||e)}})();static#t=this.\u0275dir=$({type:e,features:[pe]})}return e})();const Ln=new R(""),IB={provide:Ln,useExisting:ye(()=>Ii),multi:!0},SB=new R("");let Ii=(()=>{class e extends YI{constructor(t,r,o){super(t,r),this._compositionMode=o,this._composing=!1,null==this._compositionMode&&(this._compositionMode=!function MB(){const e=yr()?yr().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)(T(Wn),T(Lt),T(SB,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&&B("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:[Ae([IB]),pe]})}return e})();function Dr(e){return null==e||("string"==typeof e||Array.isArray(e))&&0===e.length}const dt=new R(""),wr=new R(""),TB=/^(?=.{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 tM(e){return Dr(e.value)?{required:!0}:null}function rM(e){return Dr(e.value)||TB.test(e.value)?null:{email:!0}}function Jc(e){return null}function aM(e){return null!=e}function lM(e){return zs(e)?Ke(e):e}function cM(e){let n={};return e.forEach(t=>{n=null!=t?{...n,...t}:n}),0===Object.keys(n).length?null:n}function uM(e,n){return n.map(t=>t(e))}function dM(e){return e.map(n=>function AB(e){return!e.validate}(n)?n:t=>n.validate(t))}function og(e){return null!=e?function fM(e){if(!e)return null;const n=e.filter(aM);return 0==n.length?null:function(t){return cM(uM(t,n))}}(dM(e)):null}function ig(e){return null!=e?function hM(e){if(!e)return null;const n=e.filter(aM);return 0==n.length?null:function(t){return function bB(...e){const n=EE(e),{args:t,keys:r}=IE(e),o=new Be(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?SE(r,a):a),i.complete())}))}});return n?o.pipe(ME(n)):o}(uM(t,n).map(lM)).pipe(ne(cM))}}(dM(e)):null}function pM(e,n){return null===e?[n]:Array.isArray(e)?[...e,n]:[e,n]}function sg(e){return e?Array.isArray(e)?e:[e]:[]}function Kc(e,n){return Array.isArray(e)?e.includes(n):e===n}function vM(e,n){const t=sg(n);return sg(e).forEach(o=>{Kc(t,o)||t.push(o)}),t}function yM(e,n){return sg(n).filter(t=>!Kc(e,t))}class _M{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=og(this._rawValidators)}_setAsyncValidators(n){this._rawAsyncValidators=n||[],this._composedAsyncValidatorFn=ig(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 Ct extends _M{get formDirective(){return null}get path(){return null}}class br extends _M{constructor(){super(...arguments),this._parent=null,this.name=null,this.valueAccessor=null}}class CM{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 eu=(()=>{class e extends CM{constructor(t){super(t)}static#e=this.\u0275fac=function(r){return new(r||e)(T(br,2))};static#t=this.\u0275dir=$({type:e,selectors:[["","formControlName",""],["","ngModel",""],["","formControl",""]],hostVars:14,hostBindings:function(r,o){2&r&&Kl("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:[pe]})}return e})(),tu=(()=>{class e extends CM{constructor(t){super(t)}static#e=this.\u0275fac=function(r){return new(r||e)(T(Ct,10))};static#t=this.\u0275dir=$({type:e,selectors:[["","formGroupName",""],["","formArrayName",""],["","ngModelGroup",""],["","formGroup",""],["form",3,"ngNoForm",""],["","ngForm",""]],hostVars:16,hostBindings:function(r,o){2&r&&Kl("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:[pe]})}return e})();const ma="VALID",ru="INVALID",Mi="PENDING",va="DISABLED";function cg(e){return(ou(e)?e.validators:e)||null}function ug(e,n){return(ou(n)?n.asyncValidators:e)||null}function ou(e){return null!=e&&!Array.isArray(e)&&"object"==typeof e}class dg{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===ma}get invalid(){return this.status===ru}get pending(){return this.status==Mi}get disabled(){return this.status===va}get enabled(){return this.status!==va}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(vM(n,this._rawValidators))}addAsyncValidators(n){this.setAsyncValidators(vM(n,this._rawAsyncValidators))}removeValidators(n){this.setValidators(yM(n,this._rawValidators))}removeAsyncValidators(n){this.setAsyncValidators(yM(n,this._rawAsyncValidators))}hasValidator(n){return Kc(this._rawValidators,n)}hasAsyncValidator(n){return Kc(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=Mi,!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=va,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=ma,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===ma||this.status===Mi)&&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()?va:ma}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(n){if(this.asyncValidator){this.status=Mi,this._hasOwnPendingAsyncValidator=!0;const t=lM(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 Re,this.statusChanges=new Re}_calculateStatus(){return this._allControlsDisabled()?va:this.errors?ru:this._hasOwnPendingAsyncValidator||this._anyControlsHaveStatus(Mi)?Mi:this._anyControlsHaveStatus(ru)?ru:ma}_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){ou(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 OB(e){return Array.isArray(e)?og(e):e||null}(this._rawValidators)}_assignAsyncValidators(n){this._rawAsyncValidators=Array.isArray(n)?n.slice():n,this._composedAsyncValidatorFn=function kB(e){return Array.isArray(e)?ig(e):e||null}(this._rawAsyncValidators)}}class fg extends dg{constructor(n,t,r){super(cg(t),ug(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 bM(e,n,t){e._forEachChild((r,o)=>{if(void 0===t[o])throw new I(1002,"")})})(this,0,n),Object.keys(n).forEach(r=>{(function wM(e,n,t){const r=e.controls;if(!(n?Object.keys(r):r).length)throw new I(1e3,"");if(!r[t])throw new I(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 Si=new R("CallSetDisabledState",{providedIn:"root",factory:()=>iu}),iu="always";function ya(e,n,t=iu){hg(e,n),n.valueAccessor.writeValue(e.value),(e.disabled||"always"===t)&&n.valueAccessor.setDisabledState?.(e.disabled),function LB(e,n){n.valueAccessor.registerOnChange(t=>{e._pendingValue=t,e._pendingChange=!0,e._pendingDirty=!0,"change"===e.updateOn&&EM(e,n)})}(e,n),function jB(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 VB(e,n){n.valueAccessor.registerOnTouched(()=>{e._pendingTouched=!0,"blur"===e.updateOn&&e._pendingChange&&EM(e,n),"submit"!==e.updateOn&&e.markAsTouched()})}(e,n),function FB(e,n){if(n.valueAccessor.setDisabledState){const t=r=>{n.valueAccessor.setDisabledState(r)};e.registerOnDisabledChange(t),n._registerOnDestroy(()=>{e._unregisterOnDisabledChange(t)})}}(e,n)}function lu(e,n){e.forEach(t=>{t.registerOnValidatorChange&&t.registerOnValidatorChange(n)})}function hg(e,n){const t=function gM(e){return e._rawValidators}(e);null!==n.validator?e.setValidators(pM(t,n.validator)):"function"==typeof t&&e.setValidators([t]);const r=function mM(e){return e._rawAsyncValidators}(e);null!==n.asyncValidator?e.setAsyncValidators(pM(r,n.asyncValidator)):"function"==typeof r&&e.setAsyncValidators([r]);const o=()=>e.updateValueAndValidity();lu(n._rawValidators,o),lu(n._rawAsyncValidators,o)}function EM(e,n){e._pendingDirty&&e.markAsDirty(),e.setValue(e._pendingValue,{emitModelToViewChange:!1}),n.viewToModelUpdate(e._pendingValue),e._pendingChange=!1}const GB={provide:Ct,useExisting:ye(()=>Ti)},_a=Promise.resolve();let Ti=(()=>{class e extends Ct{constructor(t,r,o){super(),this.callSetDisabledState=o,this.submitted=!1,this._directives=new Set,this.ngSubmit=new Re,this.form=new fg({},og(t),ig(r))}ngAfterViewInit(){this._setUpdateStrategy()}get formDirective(){return this}get control(){return this.form}get path(){return[]}get controls(){return this.form.controls}addControl(t){_a.then(()=>{const r=this._findContainer(t.path);t.control=r.registerControl(t.name,t.control),ya(t.control,t,this.callSetDisabledState),t.control.updateValueAndValidity({emitEvent:!1}),this._directives.add(t)})}getControl(t){return this.form.get(t.path)}removeControl(t){_a.then(()=>{const r=this._findContainer(t.path);r&&r.removeControl(t.name),this._directives.delete(t)})}addFormGroup(t){_a.then(()=>{const r=this._findContainer(t.path),o=new fg({});(function IM(e,n){hg(e,n)})(o,t),r.registerControl(t.name,o),o.updateValueAndValidity({emitEvent:!1})})}removeFormGroup(t){_a.then(()=>{const r=this._findContainer(t.path);r&&r.removeControl(t.name)})}getFormGroup(t){return this.form.get(t.path)}updateModel(t,r){_a.then(()=>{this.form.get(t.path).setValue(r)})}setValue(t){this.control.setValue(t)}onSubmit(t){return this.submitted=!0,function MM(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)(T(dt,10),T(wr,10),T(Si,8))};static#t=this.\u0275dir=$({type:e,selectors:[["form",3,"ngNoForm","",3,"formGroup",""],["ng-form"],["","ngForm",""]],hostBindings:function(r,o){1&r&&B("submit",function(s){return o.onSubmit(s)})("reset",function(){return o.onReset()})},inputs:{options:[Me.None,"ngFormOptions","options"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],features:[Ae([GB]),pe]})}return e})();function SM(e,n){const t=e.indexOf(n);t>-1&&e.splice(t,1)}function TM(e){return"object"==typeof e&&null!==e&&2===Object.keys(e).length&&"value"in e&&"disabled"in e}const AM=class extends dg{constructor(n=null,t,r){super(cg(t),ug(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}),ou(t)&&(t.nonNullable||t.initialValueIsDefault)&&(this.defaultValue=TM(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){SM(this._onChange,n)}registerOnDisabledChange(n){this._onDisabledChange.push(n)}_unregisterOnDisabledChange(n){SM(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){TM(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}},WB={provide:br,useExisting:ye(()=>Ca)},xM=Promise.resolve();let Ca=(()=>{class e extends br{constructor(t,r,o,i,s,a){super(),this._changeDetectorRef=s,this.callSetDisabledState=a,this.control=new AM,this._registered=!1,this.name="",this.update=new Re,this._parent=t,this._setValidators(r),this._setAsyncValidators(o),this.valueAccessor=function mg(e,n){if(!n)return null;let t,r,o;return Array.isArray(n),n.forEach(i=>{i.constructor===Ii?t=i:function HB(e){return Object.getPrototypeOf(e.constructor)===Xr}(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 gg(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(){ya(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){xM.then(()=>{this.control.setValue(t,{emitViewToModelChange:!1}),this._changeDetectorRef?.markForCheck()})}_updateDisabled(t){const r=t.isDisabled.currentValue,o=0!==r&&ai(r);xM.then(()=>{o&&!this.control.disabled?this.control.disable():!o&&this.control.disabled&&this.control.enable(),this._changeDetectorRef?.markForCheck()})}_getPath(t){return this._parent?function su(e,n){return[...n.path,e]}(t,this._parent):[t]}static#e=this.\u0275fac=function(r){return new(r||e)(T(Ct,9),T(dt,10),T(wr,10),T(Ln,10),T(qs,8),T(Si,8))};static#t=this.\u0275dir=$({type:e,selectors:[["","ngModel","",3,"formControlName","",3,"formControl",""]],inputs:{name:"name",isDisabled:[Me.None,"disabled","isDisabled"],model:[Me.None,"ngModel","model"],options:[Me.None,"ngModelOptions","options"]},outputs:{update:"ngModelChange"},exportAs:["ngModel"],features:[Ae([WB]),pe,zt]})}return e})(),uu=(()=>{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 QB={provide:Ln,useExisting:ye(()=>vg),multi:!0};let YB=(()=>{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=x({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})(),vg=(()=>{class e extends Xr{constructor(t,r,o,i){super(t,r),this._registry=o,this._injector=i,this.setDisabledStateFired=!1,this.onChange=()=>{},this.callSetDisabledState=M(Si,{optional:!0})??iu}ngOnInit(){this._control=this._injector.get(br),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)(T(Wn),T(Lt),T(YB),T(gt))};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&&B("change",function(){return o.onChange()})("blur",function(){return o.onTouched()})},inputs:{name:"name",formControlName:"formControlName",value:"value"},features:[Ae([QB]),pe]})}return e})();const rH={provide:Ln,useExisting:ye(()=>du),multi:!0};function jM(e,n){return null==e?`${n}`:(n&&"object"==typeof n&&(n="Object"),`${e}: ${n}`.slice(0,50))}let du=(()=>{class e extends Xr{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=jM(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 oH(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=et(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&&B("change",function(s){return o.onChange(s.target.value)})("blur",function(){return o.onTouched()})},inputs:{compareWith:"compareWith"},features:[Ae([rH]),pe]})}return e})(),UM=(()=>{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(jM(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)(T(Lt),T(Wn),T(du,9))};static#t=this.\u0275dir=$({type:e,selectors:[["option"]],inputs:{ngValue:"ngValue",value:"value"}})}return e})();const iH={provide:Ln,useExisting:ye(()=>Dg),multi:!0};function BM(e,n){return null==e?`${n}`:("string"==typeof n&&(n=`'${n}'`),n&&"object"==typeof n&&(n="Object"),`${e}: ${n}`.slice(0,50))}let Dg=(()=>{class e extends Xr{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=et(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&&B("change",function(s){return o.onChange(s.target)})("blur",function(){return o.onTouched()})},inputs:{compareWith:"compareWith"},features:[Ae([iH]),pe]})}return e})(),HM=(()=>{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(BM(this.id,t)),this._select.writeValue(this._select.value))}set value(t){this._select?(this._value=t,this._setElementValue(BM(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)(T(Lt),T(Wn),T(Dg,9))};static#t=this.\u0275dir=$({type:e,selectors:[["option"]],inputs:{ngValue:"ngValue",value:"value"}})}return e})();let Jr=(()=>{class e{constructor(){this._validator=Jc}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):Jc,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:[zt]})}return e})();const cH={provide:dt,useExisting:ye(()=>Ai),multi:!0};let Ai=(()=>{class e extends Jr{constructor(){super(...arguments),this.inputName="required",this.normalizeInput=ai,this.createValidator=t=>tM}enabled(t){return t}static#e=this.\u0275fac=(()=>{let t;return function(o){return(t||(t=et(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&&an("required",o._enabled?"":null)},inputs:{required:"required"},features:[Ae([cH]),pe]})}return e})();const dH={provide:dt,useExisting:ye(()=>fu),multi:!0};let fu=(()=>{class e extends Jr{constructor(){super(...arguments),this.inputName="email",this.normalizeInput=ai,this.createValidator=t=>rM}enabled(t){return t}static#e=this.\u0275fac=(()=>{let t;return function(o){return(t||(t=et(e)))(o||e)}})();static#t=this.\u0275dir=$({type:e,selectors:[["","email","","formControlName",""],["","email","","formControl",""],["","email","","ngModel",""]],inputs:{email:"email"},features:[Ae([dH]),pe]})}return e})();const hH={provide:dt,useExisting:ye(()=>wg),multi:!0};let wg=(()=>{class e extends Jr{constructor(){super(...arguments),this.inputName="maxlength",this.normalizeInput=t=>function $M(e){return"number"==typeof e?e:parseInt(e,10)}(t),this.createValidator=t=>function iM(e){return n=>function JI(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=et(e)))(o||e)}})();static#t=this.\u0275dir=$({type:e,selectors:[["","maxlength","","formControlName",""],["","maxlength","","formControl",""],["","maxlength","","ngModel",""]],hostVars:1,hostBindings:function(r,o){2&r&&an("maxlength",o._enabled?o.maxlength:null)},inputs:{maxlength:"maxlength"},features:[Ae([hH]),pe]})}return e})();const pH={provide:dt,useExisting:ye(()=>bg),multi:!0};let bg=(()=>{class e extends Jr{constructor(){super(...arguments),this.inputName="pattern",this.normalizeInput=t=>t,this.createValidator=t=>function sM(e){if(!e)return Jc;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(Dr(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=et(e)))(o||e)}})();static#t=this.\u0275dir=$({type:e,selectors:[["","pattern","","formControlName",""],["","pattern","","formControl",""],["","pattern","","ngModel",""]],hostVars:1,hostBindings:function(r,o){2&r&&an("pattern",o._enabled?o.pattern:null)},inputs:{pattern:"pattern"},features:[Ae([pH]),pe]})}return e})(),gH=(()=>{class e{static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275mod=or({type:e});static#n=this.\u0275inj=jn({})}return e})(),hu=(()=>{class e{static withConfig(t){return{ngModule:e,providers:[{provide:Si,useValue:t.callSetDisabledState??iu}]}}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275mod=or({type:e});static#n=this.\u0275inj=jn({imports:[gH]})}return e})();class pu{}class gu{}class Yt{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 Yt?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 Yt;return t.lazyInit=this.lazyInit&&this.lazyInit instanceof Yt?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 vH{encodeKey(n){return QM(n)}encodeValue(n){return QM(n)}decodeKey(n){return decodeURIComponent(n)}decodeValue(n){return decodeURIComponent(n)}}const _H=/%(\d[a-f0-9])/gi,CH={40:"@","3A":":",24:"$","2C":",","3B":";","3D":"=","3F":"?","2F":"/"};function QM(e){return encodeURIComponent(e).replace(_H,(n,t)=>CH[t]??n)}function mu(e){return`${e}`}class Er{constructor(n={}){if(this.updates=null,this.cloneFrom=null,this.encoder=n.encoder||new vH,n.fromString){if(n.fromObject)throw new Error("Cannot specify both fromString and fromObject.");this.map=function yH(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(mu):[mu(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 Er({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(mu(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(mu(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 DH{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 YM(e){return typeof ArrayBuffer<"u"&&e instanceof ArrayBuffer}function XM(e){return typeof Blob<"u"&&e instanceof Blob}function JM(e){return typeof FormData<"u"&&e instanceof FormData}class Da{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 wH(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 Yt,this.context??=new DH,this.params){const s=this.params.toString();if(0===s.length)this.urlWithParams=t;else{const a=t.indexOf("?");this.urlWithParams=t+(-1===a?"?":ag.set(m,n.setHeaders[m]),c)),n.setParams&&(u=Object.keys(n.setParams).reduce((g,m)=>g.set(m,n.setParams[m]),u)),new Da(t,r,s,{params:u,headers:c,context:d,reportProgress:l,responseType:o,withCredentials:a,transferCache:i})}}var Ir=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}(Ir||{});class Eg{constructor(n,t=wa.Ok,r="OK"){this.headers=n.headers||new Yt,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 vu extends Eg{constructor(n={}){super(n),this.type=Ir.ResponseHeader}clone(n={}){return new vu({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 Kr extends Eg{constructor(n={}){super(n),this.type=Ir.Response,this.body=void 0!==n.body?n.body:null}clone(n={}){return new Kr({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 Ni extends Eg{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 wa=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}(wa||{});function Ig(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 Mg=(()=>{class e{constructor(t){this.handler=t}request(t,r,o={}){let i;if(t instanceof Da)i=t;else{let l,c;l=o.headers instanceof Yt?o.headers:new Yt(o.headers),o.params&&(c=o.params instanceof Er?o.params:new Er({fromObject:o.params})),i=new Da(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=H(i).pipe(ui(l=>this.handler.handle(l)));if(t instanceof Da||"events"===o.observe)return s;const a=s.pipe(hn(l=>l instanceof Kr));switch(o.observe||"body"){case"body":switch(i.responseType){case"arraybuffer":return a.pipe(ne(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(ne(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(ne(l=>{if(null!==l.body&&"string"!=typeof l.body)throw new Error("Response is not a string.");return l.body}));default:return a.pipe(ne(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 Er).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,Ig(o,r))}post(t,r,o={}){return this.request("POST",t,Ig(o,r))}put(t,r,o={}){return this.request("PUT",t,Ig(o,r))}static#e=this.\u0275fac=function(r){return new(r||e)(k(pu))};static#t=this.\u0275prov=x({token:e,factory:e.\u0275fac})}return e})();function e1(e,n){return n(e)}function TH(e,n){return(t,r)=>n.intercept(t,{handle:o=>e(o,r)})}const NH=new R(""),ba=new R(""),t1=new R(""),n1=new R("");function RH(){let e=null;return(n,t)=>{null===e&&(e=(M(NH,{optional:!0})??[]).reduceRight(TH,e1));const r=M(hr),o=r.add();return e(n,t).pipe(ea(()=>r.remove(o)))}}let r1=(()=>{class e extends pu{constructor(t,r){super(),this.backend=t,this.injector=r,this.chain=null,this.pendingTasks=M(hr);const o=M(n1,{optional:!0});this.backend=o??t}handle(t){if(null===this.chain){const o=Array.from(new Set([...this.injector.get(ba),...this.injector.get(t1,[])]));this.chain=o.reduceRight((i,s)=>function AH(e,n,t){return(r,o)=>mn(t,()=>n(r,i=>e(i,o)))}(i,s,this.injector),e1)}const r=this.pendingTasks.add();return this.chain(t,o=>this.backend.handle(o)).pipe(ea(()=>this.pendingTasks.remove(r)))}static#e=this.\u0275fac=function(r){return new(r||e)(k(gu),k(ft))};static#t=this.\u0275prov=x({token:e,factory:e.\u0275fac})}return e})();const FH=/^\)\]\}',?\n/;let i1=(()=>{class e{constructor(t){this.xhrFactory=t}handle(t){if("JSONP"===t.method)throw new I(-2800,!1);const r=this.xhrFactory;return(r.\u0275loadImpl?Ke(r.\u0275loadImpl()):H(null)).pipe(fn(()=>new Be(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 Yt(s.getAllResponseHeaders()),w=function LH(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 vu({headers:D,status:s.status,statusText:_,url:w}),l},u=()=>{let{headers:_,status:D,statusText:w,url:b}=c(),N=null;D!==wa.NoContent&&(N=typeof s.response>"u"?s.responseText:s.response),0===D&&(D=N?wa.Ok:0);let L=D>=200&&D<300;if("json"===t.responseType&&"string"==typeof N){const X=N;N=N.replace(FH,"");try{N=""!==N?JSON.parse(N):null}catch(ce){N=X,L&&(L=!1,N={error:ce,text:N})}}L?(i.next(new Kr({body:N,headers:_,status:D,statusText:w,url:b||void 0})),i.complete()):i.error(new Ni({error:N,headers:_,status:D,statusText:w,url:b||void 0}))},d=_=>{const{url:D}=c(),w=new Ni({error:_,status:s.status||0,statusText:s.statusText||"Unknown Error",url:D||void 0});i.error(w)};let g=!1;const m=_=>{g||(i.next(c()),g=!0);let D={type:Ir.DownloadProgress,loaded:_.loaded};_.lengthComputable&&(D.total=_.total),"text"===t.responseType&&s.responseText&&(D.partialText=s.responseText),i.next(D)},v=_=>{let D={type:Ir.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:Ir.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)(k(Jb))};static#t=this.\u0275prov=x({token:e,factory:e.\u0275fac})}return e})();const Ag=new R(""),s1=new R("",{providedIn:"root",factory:()=>"XSRF-TOKEN"}),a1=new R("",{providedIn:"root",factory:()=>"X-XSRF-TOKEN"});class l1{}let UH=(()=>{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=$b(t,this.cookieName),this.lastCookieString=t),this.lastToken}static#e=this.\u0275fac=function(r){return new(r||e)(k(Nt),k(lr),k(s1))};static#t=this.\u0275prov=x({token:e,factory:e.\u0275fac})}return e})();function BH(e,n){const t=e.url.toLowerCase();if(!M(Ag)||"GET"===e.method||"HEAD"===e.method||t.startsWith("http://")||t.startsWith("https://"))return n(e);const r=M(l1).getToken(),o=M(a1);return null!=r&&!e.headers.has(o)&&(e=e.clone({headers:e.headers.set(o,r)})),n(e)}var Mr=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}(Mr||{});const c1=new R("");class QH{constructor(){this.name="",this.email="",this.message=""}}let v1=(()=>{class e{constructor(t){this.httpClient=t}postContactForm(t){return this.httpClient.post(`${we_apiBaseUrl}contact`,t)}static#e=this.\u0275fac=function(r){return new(r||e)(k(Mg))};static#t=this.\u0275prov=x({token:e,factory:e.\u0275fac})}return e})();function YH(e,n){if(1&e){const t=xe();h(0,"form",5,0),B("ngSubmit",function(){return J(t),K(O().submit())}),h(2,"div",6)(3,"label",7),f(4,"Name "),h(5,"span",8),f(6,"*"),p()(),h(7,"input",9),Ue("ngModelChange",function(o){J(t);const i=O();return $e(i.contactViewModel.name,o)||(i.contactViewModel.name=o),K(o)}),p()(),h(8,"div",6)(9,"label",10),f(10,"Email address "),h(11,"span",8),f(12,"*"),p()(),h(13,"input",11),Ue("ngModelChange",function(o){J(t);const i=O();return $e(i.contactViewModel.email,o)||(i.contactViewModel.email=o),K(o)}),p()(),h(14,"div",6)(15,"label",12),f(16,"Message "),h(17,"span",8),f(18,"*"),p()(),h(19,"textarea",13),Ue("ngModelChange",function(o){J(t);const i=O();return $e(i.contactViewModel.message,o)||(i.contactViewModel.message=o),K(o)}),p()(),h(20,"button",14),f(21,"Submit"),p()()}if(2&e){const t=Eh(1),r=O();C(7),je("ngModel",r.contactViewModel.name),C(6),je("ngModel",r.contactViewModel.email),C(6),je("ngModel",r.contactViewModel.message),C(),S("disabled",!t.valid||r.enableFormCountDown>0)}}function XH(e,n){1&e&&(h(0,"p"),f(1,"Thanks for your message."),p())}function JH(e,n){1&e&&(h(0,"p",4),f(1,"Something went wrong. Please try again later."),p())}let KH=(()=>{class e{constructor(t){this.contactService=t,this.contactViewModel=new QH,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)(T(v1))};static#t=this.\u0275cmp=kt({type:e,selectors:[["app-contact-component"]],standalone:!0,features:[Ut],decls:6,vars:3,consts:[["contactForm","ngForm"],[1,"container"],[1,"mb-4"],["method","post"],[1,"text-danger"],["method","post",3,"ngSubmit"],[1,"mb-3"],["for","Name"],[1,"required"],["type","text","id","Name","name","Name","required","",1,"form-control",3,"ngModelChange","ngModel"],["for","Email"],["type","email","id","Email","name","Email","email","","required","",1,"form-control",3,"ngModelChange","ngModel"],["for","Message"],["rows","7","id","Message","name","Message","required","",1,"form-control",3,"ngModelChange","ngModel"],["type","submit",1,"btn","btn-primary",3,"disabled"]],template:function(r,o){1&r&&(h(0,"div",1)(1,"h1",2),f(2,"Contact"),p(),q(3,YH,22,4,"form",3)(4,XH,2,0,"p")(5,JH,2,0,"p",4),p()),2&r&&(C(3),ti(3,o.success||o.error?-1:3),C(),ti(4,o.success?4:-1),C(),ti(5,o.error?5:-1))},dependencies:[hu,uu,Ii,eu,tu,Ai,fu,Ca,Ti]})}return e})();const y1=()=>["/pro"];let e$=(()=>{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=kt({type:e,selectors:[["app-features-component"]],standalone:!0,features:[Ut],decls:157,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"],["id","rawmode",1,"mt-5"],["href","https://github.com/danielpalme/ReportGenerator/wiki/Settings#other-settings","target","_blank"]],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),B("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),B("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),B("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),h(131,"h2",25),f(132,"Raw mode (for "),h(133,"i"),f(134,"Cobertura"),p(),f(135,") "),h(136,"span",7),f(137,"PRO"),p()(),h(138,"p"),f(139,' With "raw mode" (settings:rawMode=true) you can disable that coverage data of nested or compiler generated classes is included in the parent class.'),y(140,"br"),f(141," This is useful to merge several "),h(142,"i"),f(143,"Cobertura"),p(),f(144," files into a single file, since the original class structure remains untouched. "),p(),h(145,"p"),f(146,"See "),h(147,"a",26),f(148,"Settings"),p(),f(149,"\xa0"),h(150,"a",26),y(151,"i",5),p()(),h(152,"p"),f(153,"Limitation: Raw mode is currently only supported for "),h(154,"i"),f(155,"Cobertura"),p(),f(156," files."),p()()),2&r&&(C(25),S("routerLink",re(2,y1)),C(63),S("routerLink",re(3,y1)))},dependencies:[Pn]})}return e})();const Xt={dotnetSDKVersion:"8.x",majorVersion:"5",version:"5.3.0"},t$=()=>["/usage"];let n$=(()=>{class e{constructor(){this.versions=Xt}static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275cmp=kt({type:e,selectors:[["app-getstarted"]],standalone:!0,features:[Ut],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),S("routerLink",re(5,t$)),C(22),Qn('\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),Qn('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),Qn("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),Qn("npm i nyc --save-dev\nnyc --reporter=cobertura 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:[Pn]})}return e})(),_1=(()=>{class e{static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275cmp=kt({type:e,selectors:[["app-testimonials"]],standalone:!0,features:[Ut],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 r$=()=>["/pro"],o$=()=>["/usage"],i$=()=>["/getstarted"],s$=()=>["/features"];let a$=(()=>{class e{static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275cmp=kt({type:e,selectors:[["app-home"]],standalone:!0,features:[Ut],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),S("routerLink",re(4,r$)),C(12),S("routerLink",re(5,o$)),C(24),S("routerLink",re(6,i$)),C(15),S("routerLink",re(7,s$)))},dependencies:[Pn,_1],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})(),l$=(()=>{class e{static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275cmp=kt({type:e,selectors:[["app-not-found"]],standalone:!0,features:[Ut],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 C1{constructor(){this.error=null,this.licenses=[]}}class c${constructor(){this.error=null,this.isSponsor=!1,this.license=null}}let D1=(()=>{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=x({token:e,factory:e.\u0275fac})}return e})(),w1=(()=>{class e{constructor(t){this.httpClient=t}getLicense(t){return this.httpClient.get(`${we_apiBaseUrl}reportgenerator/license?code=${encodeURIComponent(t)}`)}getTrialLicense(t){return this.httpClient.post(`${we_apiBaseUrl}reportgenerator/triallicense`,t)}getPaddleLicense(t){return this.httpClient.post(`${we_apiBaseUrl}reportgenerator/paddlelicense`,t)}static#e=this.\u0275fac=function(r){return new(r||e)(k(Mg))};static#t=this.\u0275prov=x({token:e,factory:e.\u0275fac})}return e})(),u$=(()=>{class e{constructor(){this.isActive=!1,this.isActive=new Date["/features"],Ng=()=>["/contact"],b1=e=>({active:e});function d$(e,n){if(1&e){const t=xe();h(0,"span",71)(1,"span",72),B("click",function(){return J(t),K(O().lifetimeLicense=!1)}),y(2,"i",73),f(3," Annual subscription"),p(),h(4,"span",72),B("click",function(){return J(t),K(O().lifetimeLicense=!0)}),y(5,"i",74),f(6," Lifetime license"),p()()}if(2&e){const t=O();C(),S("ngClass",js(2,b1,!t.lifetimeLicense)),C(3),S("ngClass",js(4,b1,t.lifetimeLicense))}}function f$(e,n){if(1&e){const t=xe();h(0,"button",94),B("click",function(){return J(t),K(O(2).requestTrial())}),y(1,"i",33),f(2," Start trial"),p()}2&e&&S("disabled",O(2).trialDisabled)}function h$(e,n){1&e&&(h(0,"button",95),f(1,"Coming soon"),p())}function p$(e,n){1&e&&(St(0),y(1,"i",73),f(2," Annual subscription"),Tt())}function g$(e,n){1&e&&(St(0),y(1,"i",74),f(2," Lifetime license"),Tt())}function m$(e,n){if(1&e){const t=xe();h(0,"button",96),B("click",function(){return J(t),K(O(2).openPaddleCheckout("individual"))}),y(1,"i",97),f(2," Buy now"),p()}}function v$(e,n){1&e&&(h(0,"button",95),f(1,"Coming soon"),p())}function y$(e,n){1&e&&(St(0),y(1,"i",73),f(2," Annual subscription"),Tt())}function _$(e,n){1&e&&(St(0),y(1,"i",74),f(2," Lifetime license"),Tt())}function C$(e,n){if(1&e){const t=xe();h(0,"button",96),B("click",function(){return J(t),K(O(2).openPaddleCheckout("team"))}),y(1,"i",97),f(2," Buy now"),p()}}function D$(e,n){1&e&&(h(0,"button",95),f(1,"Coming soon"),p())}function w$(e,n){1&e&&(St(0),y(1,"i",73),f(2," Annual subscription"),Tt())}function b$(e,n){1&e&&(St(0),y(1,"i",74),f(2," Lifetime license"),Tt())}function E$(e,n){if(1&e){const t=xe();h(0,"button",96),B("click",function(){return J(t),K(O(2).openPaddleCheckout("enterprise"))}),y(1,"i",97),f(2," Buy now"),p()}}function I$(e,n){1&e&&(h(0,"button",95),f(1,"Coming soon"),p())}function M$(e,n){if(1&e&&(h(0,"div",3)(1,"div",75)(2,"div",76),y(3,"img",77),h(4,"h4",78),f(5,"Free"),y(6,"br"),f(7,"Trial"),p(),h(8,"p"),y(9,"i",79),f(10," Get full access"),y(11,"br")(12,"i",80),f(13," 10 day trial period "),p(),q(14,f$,3,1,"button",81)(15,h$,2,0,"button",82),p()(),h(16,"div",83)(17,"div",84),y(18,"img",85),h(19,"h4",78),f(20,"Individual"),y(21,"br"),f(22),p(),h(23,"p"),y(24,"i",86),f(25," Per developer license."),y(26,"br"),q(27,p$,3,0,"ng-container",26)(28,g$,3,0,"ng-container",26),p(),q(29,m$,3,0,"button",87)(30,v$,2,0,"button",82),p()(),h(31,"div",88)(32,"div",84),y(33,"img",89),h(34,"h4",78),f(35,"Team"),y(36,"br"),f(37),p(),h(38,"p"),y(39,"i",90),f(40," Up to 10 developers."),y(41,"br"),q(42,y$,3,0,"ng-container",26)(43,_$,3,0,"ng-container",26),p(),q(44,C$,3,0,"button",87)(45,D$,2,0,"button",82),p()(),h(46,"div",91)(47,"div",84),y(48,"img",92),h(49,"h4",78),f(50,"Enterprise"),y(51,"br"),f(52),p(),h(53,"p"),y(54,"i",93),f(55," Unlimited developers."),y(56,"br"),q(57,w$,3,0,"ng-container",26)(58,b$,3,0,"ng-container",26),p(),q(59,E$,3,0,"button",87)(60,I$,2,0,"button",82),p()()()),2&e){const t=O();C(14),S("ngIf",t.enablePaddle),C(),S("ngIf",!t.enablePaddle),C(7),Te(t.lifetimeLicense?t.paddleIndividualLifetimeLicensePrice:t.paddleIndividualLicensePrice),C(5),S("ngIf",!t.lifetimeLicense),C(),S("ngIf",t.lifetimeLicense),C(),S("ngIf",t.enablePaddle),C(),S("ngIf",!t.enablePaddle),C(7),Te(t.lifetimeLicense?t.paddleTeamLifetimeLicensePrice:t.paddleTeamLicensePrice),C(5),S("ngIf",!t.lifetimeLicense),C(),S("ngIf",t.lifetimeLicense),C(),S("ngIf",t.enablePaddle),C(),S("ngIf",!t.enablePaddle),C(7),Te(t.lifetimeLicense?t.paddleEnterpriseLifetimeLicensePrice:t.paddleEnterpriseLicensePrice),C(5),S("ngIf",!t.lifetimeLicense),C(),S("ngIf",t.lifetimeLicense),C(),S("ngIf",t.enablePaddle),C(),S("ngIf",!t.enablePaddle)}}function S$(e,n){1&e&&(St(0),h(1,"div",99)(2,"span",100),f(3,"Loading..."),p()(),h(4,"span",101),f(5,"Your license is being generated. Please wait."),p(),Tt())}function T$(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",20),f(6," contact form"),p(),f(7,"."),p()()),2&e){const t=O(3);C(2),Te(t.paddleLicense.error),C(3),S("routerLink",re(2,Ng))}}function A$(e,n){1&e&&(h(0,"span"),y(1,"i",108),f(2," Copy"),p())}function N$(e,n){1&e&&(h(0,"span"),y(1,"i",109),f(2," Copied"),p())}function R$(e,n){if(1&e){const t=xe();h(0,"div",105)(1,"textarea",106),f(2),p(),h(3,"button",107),B("click",function(){const o=J(t).$implicit;return K(O(4).copyPaddle(o))}),q(4,A$,3,0,"span",26)(5,N$,3,0,"span",26),p()()}if(2&e){const t=n.$implicit,r=O(4);C(2),Te(t),C(2),S("ngIf",-1===r.copiedPaddledLicenses.indexOf(t)),C(),S("ngIf",r.copiedPaddledLicenses.indexOf(t)>-1)}}function x$(e,n){if(1&e&&(h(0,"div")(1,"label",103),f(2,"Thank you! Please save your license key persistently:"),p(),q(3,R$,6,3,"div",104),p()),2&e){const t=O(3);C(3),S("ngForOf",t.paddleLicense.licenses)}}function O$(e,n){if(1&e&&(h(0,"div",102),q(1,T$,8,3,"div",26)(2,x$,4,1,"div",26),p()),2&e){const t=O(2);C(),S("ngIf",t.paddleLicense.error),C(),S("ngIf",!t.paddleLicense.error)}}function k$(e,n){if(1&e&&(h(0,"div",3),q(1,S$,6,0,"ng-container",26)(2,O$,3,2,"div",98),p()),2&e){const t=O();C(),S("ngIf",t.paddleLicenseRequested&&!t.paddleLicense),C(),S("ngIf",t.paddleLicense)}}function P$(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 F$(e,n){1&e&&(h(0,"div",99)(1,"span",100),f(2,"Loading..."),p()())}function L$(e,n){1&e&&(h(0,"div",110),y(1,"i",111),p())}function V$(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",20),f(6," contact form"),p(),f(7,"."),p()()),2&e){const t=O(2);C(2),Te(t.license.error),C(3),S("routerLink",re(2,Ng))}}function j$(e,n){1&e&&(h(0,"div")(1,"p"),f(2,"Please become a "),h(3,"a",112),f(4,"GitHub sponsor"),p(),f(5," first."),p()())}function U$(e,n){1&e&&(h(0,"span"),y(1,"i",108),f(2," Copy"),p())}function B$(e,n){1&e&&(h(0,"span"),y(1,"i",109),f(2," Copied"),p())}function H$(e,n){if(1&e){const t=xe();h(0,"div")(1,"label",113),f(2,"Thank you for becoming a sponsor. Here's your license:"),p(),h(3,"textarea",114),f(4),p(),h(5,"button",107),B("click",function(){return J(t),K(O(2).copy())}),q(6,U$,3,0,"span",26)(7,B$,3,0,"span",26),p()()}if(2&e){const t=O(2);C(4),Te(t.license.license),C(2),S("ngIf",!t.licenseCopied),C(),S("ngIf",t.licenseCopied)}}function $$(e,n){if(1&e&&(h(0,"div",28),q(1,V$,8,3,"div",26)(2,j$,6,0,"div",26)(3,H$,8,3,"div",26),p()),2&e){const t=O();C(),S("ngIf",t.license.error),C(),S("ngIf",!t.license.error&&!t.license.isSponsor),C(),S("ngIf",!t.license.error&&t.license.isSponsor&&t.license.license)}}let G$=(()=>{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 c$,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 C1,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 C1,this.paddleLicense.error="Unable to generate Paddle license."},complete:()=>console.info("complete")})}static#e=this.\u0275fac=function(r){return new(r||e)(T(D1),T(w1),T(u$))};static#t=this.\u0275cmp=kt({type:e,selectors:[["app-pro-component"]],standalone:!0,features:[Ut],decls:240,vars:27,consts:[["trialForm","ngForm"],[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"],["fragment","rawmode","title","Show feature details",3,"routerLink"],[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,"click","disabled"],[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"],[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,"ngModelChange","ngModel"],["for","floatingInput"],[1,"required"],["type","email","id","email","name","email","required","","email","","maxlength","150",1,"form-control",3,"ngModelChange","ngModel"],[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,"click","ngClass"],[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,"click","disabled"],["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){const i=xe();h(0,"div",1)(1,"h1",2),f(2,"PRO"),p(),h(3,"div",3)(4,"div",4)(5,"table",5)(6,"thead")(7,"tr"),y(8,"th",6),h(9,"th",7),f(10,"Free"),p(),h(11,"th",7)(12,"span",8),f(13,"PRO"),p()()()(),h(14,"tbody")(15,"tr")(16,"th",9),f(17,"Metrics "),h(18,"a",10),y(19,"i",11),p()(),h(20,"td",12),y(21,"i",13),p(),h(22,"td",12),y(23,"i",13),p()(),h(24,"tr")(25,"th",9),f(26,"Risk Hotspots "),h(27,"a",14),y(28,"i",11),p()(),h(29,"td",12),y(30,"i",13),p(),h(31,"td",12),y(32,"i",13),p()(),h(33,"tr")(34,"th",9),f(35,"Line coverage "),h(36,"a",15),y(37,"i",11),p()(),h(38,"td",12),y(39,"i",13),p(),h(40,"td",12),y(41,"i",13),p()(),h(42,"tr")(43,"th",9),f(44,"Branch coverage "),h(45,"a",15),y(46,"i",11),p()(),h(47,"td",12),y(48,"i",13),p(),h(49,"td",12),y(50,"i",13),p()(),h(51,"tr")(52,"th",9),f(53,"Method coverage "),h(54,"a",15),y(55,"i",11),p()(),y(56,"td",12),h(57,"td",12),y(58,"i",16),p()(),h(59,"tr")(60,"th",9),f(61,"Metrics on summary page "),h(62,"a",10),y(63,"i",11),p()(),y(64,"td",12),h(65,"td",12),y(66,"i",16),p()(),h(67,"tr")(68,"th",9)(69,"i"),f(70,"OpenCover"),p(),f(71," output format"),p(),y(72,"td",12),h(73,"td",12),y(74,"i",16),p()(),h(75,"tr")(76,"th",9),f(77,"Raw mode (for "),h(78,"i"),f(79,"Cobertura"),p(),f(80,") "),h(81,"a",17),y(82,"i",11),p()(),y(83,"td",12),h(84,"td",12),y(85,"i",16),p()()()()(),h(86,"div",18)(87,"p")(88,"i"),f(89,"ReportGenerator"),p(),f(90," is Open Source and free to use."),y(91,"br"),f(92," Some of the advanced features require a PRO license. "),p(),h(93,"p"),f(94," You can either "),h(95,"a",19),B("click",function(){return J(i),K(o.scrollToPaddle())}),f(96,"buy a license"),p(),f(97," or you can become a "),h(98,"a",19),B("click",function(){return J(i),K(o.scrollToGithub())}),f(99,"GitHub sponsor"),p(),f(100,"."),y(101,"br"),f(102," A "),h(103,"a",19),B("click",function(){return J(i),K(o.scrollToPaddle())}),f(104,"free trial version"),p(),f(105," is available too. "),p(),h(106,"p"),f(107," Get "),h(108,"a",20),f(109,"in touch"),p(),f(110," if you have any issues and we will figure it out. "),p()()()(),h(111,"section",21)(112,"div",1)(113,"h2",2),f(114,"Buy a license"),p(),h(115,"div",22),q(116,d$,7,6,"span",23),p(),q(117,M$,61,17,"div",24)(118,k$,3,2,"div",24),h(119,"div",25),q(120,P$,4,0,"p",26),h(121,"p"),f(122,"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(123,"section",27)(124,"div",1)(125,"h2",2),f(126,"Get your license as a GitHub sponsor"),p(),h(127,"div",3)(128,"div",28)(129,"p"),f(130,"You can obtain your license in two easy steps (no sign up required):"),p(),h(131,"span",29),f(132,"1."),p(),h(133,"a",30),y(134,"i",31),f(135," Become a GitHub sponsor"),p(),y(136,"br"),h(137,"span",29),f(138,"2."),p(),h(139,"button",32),B("click",function(){return J(i),K(o.requestLicense())}),y(140,"i",33),f(141," Get license"),p(),q(142,F$,3,0,"div",34),p(),q(143,L$,2,0,"div",35)(144,$$,4,3,"div",36),p()()(),y(145,"app-testimonials"),h(146,"section",37)(147,"div",38)(148,"h3"),f(149,"Customers"),p(),h(150,"div",39)(151,"a",40),y(152,"img",41),p()()()(),h(153,"section",42)(154,"h2",2),f(155,"Frequently Asked Questions"),p(),h(156,"div",43)(157,"div",44)(158,"h2",45)(159,"button",46),f(160," How do I use/activate my license? "),p()(),h(161,"div",47)(162,"div",48),f(163," Your license key is passed to "),h(164,"i"),f(165,"ReportGenerator"),p(),f(166," via a command line parameter: "),h(167,"i"),f(168,"-license:YOUR_KEY"),p()()()(),h(169,"div",44)(170,"h2",49)(171,"button",50),f(172," Are there limitations on number of users? "),p()(),h(173,"div",51)(174,"div",48)(175,"b"),f(176,"GitHub sponsors"),p(),y(177,"br"),h(178,"p"),f(179,"There's no enforced limit. Please pick a sponsor level that fits your company size and budget."),p(),h(180,"b"),f(181,"Bought license"),p(),y(182,"br"),h(183,"p"),f(184,"There's no enforced limit. Please choose a plan that matches the number of developers using "),h(185,"i"),f(186,"ReportGenerator"),p(),f(187,"."),p()()()(),h(188,"div",44)(189,"h2",52)(190,"button",53),f(191," Will my license expire? "),p()(),h(192,"div",54)(193,"div",48)(194,"b"),f(195,"GitHub sponsors"),p(),y(196,"br"),h(197,"p"),f(198,"Your license will not expire."),p(),h(199,"b"),f(200,"Bought license"),p(),y(201,"br"),h(202,"p")(203,"b"),f(204,"Annual subscription"),p(),f(205,": Your license may get revoked for new releases of "),h(206,"i"),f(207,"ReportGenerator"),p(),f(208,", if you cancel your subscription."),y(209,"br"),h(210,"b"),f(211,"Lifetime licenses"),p(),f(212,": Lifetime licenses will not expire. "),p()()()()()(),h(213,"div",55)(214,"div",56)(215,"div",57)(216,"form",58,0),B("ngSubmit",function(){return J(i),K(o.completeTrial())}),h(218,"div",59)(219,"h5",60),f(220,"Free Trial"),p(),y(221,"button",61),p(),h(222,"div",62)(223,"div",63)(224,"input",64),Ue("ngModelChange",function(a){return J(i),$e(o.requestTrialData.name,a)||(o.requestTrialData.name=a),K(a)}),p(),h(225,"label",65),f(226,"Name "),h(227,"span",66),f(228,"*"),p()()(),h(229,"div",63)(230,"input",67),Ue("ngModelChange",function(a){return J(i),$e(o.requestTrialData.email,a)||(o.requestTrialData.email=a),K(a)}),p(),h(231,"label",65),f(232,"Email address "),h(233,"span",66),f(234,"*"),p()()()(),h(235,"div",68)(236,"button",69),f(237,"Close"),p(),h(238,"button",70),f(239,"Get trial license"),p()()()()()()}if(2&r){const i=Eh(217);C(18),S("routerLink",re(19,to)),C(9),S("routerLink",re(20,to)),C(9),S("routerLink",re(21,to)),C(9),S("routerLink",re(22,to)),C(9),S("routerLink",re(23,to)),C(8),S("routerLink",re(24,to)),C(19),S("routerLink",re(25,to)),C(27),S("routerLink",re(26,Ng)),C(8),S("ngIf",!o.paddleLicenseRequested),C(),S("ngIf",!o.paddleLicenseRequested),C(),S("ngIf",o.paddleLicenseRequested),C(2),S("ngIf",!o.lifetimeLicense),C(19),S("disabled",o.licenseRequested),C(3),S("ngIf",o.licenseRequested&&!o.license),C(),S("ngIf",!o.license),C(),S("ngIf",o.license),C(80),je("ngModel",o.requestTrialData.name),C(6),je("ngModel",o.requestTrialData.email),C(8),S("disabled",!i.valid)}},dependencies:[Pn,lp,cp,Nc,hu,uu,Ii,eu,tu,Ai,wg,fu,Ca,Ti,_1],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 _u{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 z$ extends _u{formatExecutable(n){let t=`- task: ${n.tool}@${Xt.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 q${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:"MarkdownAssembliesSummary",types:["Text","Markdown"],description:"Creates a single Markdown file containing coverage information per assembly.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/MarkdownAssembliesSummary/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 Rg{constructor(n,t){this.tool=n,this.command=t}}const Z$=()=>["/pro"],Q$=e=>({"input-group":e}),Y$=(e,n)=>({"btn-outline-primary":e,"btn-primary":n});function X$(e,n){if(1&e){const t=xe();h(0,"div",35)(1,"label",36)(2,"input",37),Ue("ngModelChange",function(o){J(t);const i=O();return $e(i.selectedEnvironment,o)||(i.selectedEnvironment=o),K(o)}),B("ngModelChange",function(){return J(t),K(O().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=O();C(2),je("ngModel",r.selectedEnvironment),S("value",t)("checked",r.selectedEnvironment.name===t.name),C(2),Te(t.name),C(3),Te(t.description)}}function J$(e,n){if(1&e){const t=xe();h(0,"div",35)(1,"label",36)(2,"input",41),Ue("ngModelChange",function(o){J(t);const i=O(3);return $e(i.selectedPackage,o)||(i.selectedPackage=o),K(o)}),p(),h(3,"b"),f(4),p(),y(5,"br"),h(6,"div",38),f(7),p()()()}if(2&e){const t=O().$implicit,r=O(2);C(2),je("ngModel",r.selectedPackage),S("value",t),C(2),Te(t.name),C(3),Te(t.description)}}function K$(e,n){if(1&e&&(St(0),q(1,J$,8,4,"div",40),Tt()),2&e){const t=n.$implicit,r=O(2);C(),S("ngIf",t.runtimes.indexOf(r.selectedEnvironment.name)>-1)}}function e4(e,n){if(1&e&&(St(0),h(1,"h4"),f(2,"NuGet Package"),p(),q(3,K$,2,1,"ng-container",39),Tt()),2&e){const t=O();C(3),S("ngForOf",t.packages)}}function t4(e,n){if(1&e){const t=xe();h(0,"span",45),B("click",function(){J(t);const o=O().index;return K(O().configuration.removeReport(o))}),h(1,"a",46),y(2,"i",47),p()()}}function n4(e,n){if(1&e){const t=xe();h(0,"div",38)(1,"div",42)(2,"input",43),Ue("ngModelChange",function(o){const i=J(t).index,s=O();return $e(s.configuration.reports[i],o)||(s.configuration.reports[i]=o),K(o)}),p(),q(3,t4,3,0,"span",44),p()()}if(2&e){const t=n.index,r=O();C(),S("ngClass",js(5,Q$,t>0)),C(),Zn("name","report_",t,""),je("ngModel",r.configuration.reports[t]),C(),S("ngIf",t>0)}}function r4(e,n){if(1&e){const t=xe();h(0,"button",48),B("click",function(){const o=J(t).$implicit,i=O();return K(i.configuration.selectedType=i.configuration.selectedType===o?null:o)}),f(1),p()}if(2&e){const t=n.$implicit,r=O();S("ngClass",hw(2,Y$,t!==r.configuration.selectedType,t===r.configuration.selectedType)),C(),Te(t)}}function o4(e,n){if(1&e){const t=xe();h(0,"span",53),y(1,"i",54),f(2," Please specify a "),h(3,"a",9),B("click",function(){return J(t),K(O(3).scrollToHistoryDir())}),f(4,"history directory"),p()()}}function i4(e,n){if(1&e&&(St(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(),Tt()),2&e){const t=O(2).$implicit;C(2),S("href",t.sampleReport,xo),C(3),S("href",t.sampleReport,xo)}}function s4(e,n){if(1&e){const t=xe();h(0,"div",50)(1,"label",36)(2,"input",51),B("change",function(){J(t);const o=O().$implicit;return K(o.checked=!o.checked)}),p(),h(3,"b"),f(4),p(),q(5,o4,5,0,"span",52),y(6,"br"),h(7,"div",38),f(8),q(9,i4,7,2,"ng-container",5),p()()()}if(2&e){const t=O().$implicit,r=O();C(2),S("checked",t.checked),C(2),Te(t.name),C(),S("ngIf",t.checked&&t.requiresHistoryDir&&!r.configuration.historydir),C(3),Qn("",t.description," "),C(),S("ngIf",t.sampleReport)}}function a4(e,n){if(1&e&&(St(0),q(1,s4,10,5,"div",49),Tt()),2&e){const t=n.$implicit,r=O();C(),S("ngIf",!r.configuration.selectedType||t.types.indexOf(r.configuration.selectedType)>-1)}}function l4(e,n){if(1&e){const t=xe();h(0,"div",8)(1,"div",57)(2,"input",58),Ue("ngModelChange",function(o){const i=J(t).index,s=O();return $e(s.configuration.sourcedirectories[i],o)||(s.configuration.sourcedirectories[i]=o),K(o)}),p(),h(3,"span",45),B("click",function(){const o=J(t).index;return K(O().configuration.removeSourceDirectory(o))}),h(4,"a",46),y(5,"i",47),p()()()()}if(2&e){const t=n.index,r=O();C(2),Zn("name","sourcedir_",t,""),je("ngModel",r.configuration.sourcedirectories[t])}}function c4(e,n){if(1&e){const t=xe();h(0,"div",8)(1,"div",57)(2,"input",59),Ue("ngModelChange",function(o){const i=J(t).index,s=O();return $e(s.configuration.plugins[i],o)||(s.configuration.plugins[i]=o),K(o)}),p(),h(3,"span",45),B("click",function(){const o=J(t).index;return K(O().configuration.removePlugin(o))}),h(4,"a",46),y(5,"i",47),p()()()()}if(2&e){const t=n.index,r=O();C(2),Zn("name","plugin_",t,""),je("ngModel",r.configuration.plugins[t])}}function u4(e,n){if(1&e){const t=xe();h(0,"div",8)(1,"div",57)(2,"input",60),Ue("ngModelChange",function(o){const i=J(t).index,s=O();return $e(s.configuration.assemblyfilters[i],o)||(s.configuration.assemblyfilters[i]=o),K(o)}),p(),h(3,"span",45),B("click",function(){const o=J(t).index;return K(O().configuration.removeAssemblyFilter(o))}),h(4,"a",46),y(5,"i",47),p()()()()}if(2&e){const t=n.index,r=O();C(2),Zn("name","assemblyfilter_",t,""),je("ngModel",r.configuration.assemblyfilters[t])}}function d4(e,n){if(1&e){const t=xe();h(0,"div",8)(1,"div",57)(2,"input",61),Ue("ngModelChange",function(o){const i=J(t).index,s=O();return $e(s.configuration.classfilters[i],o)||(s.configuration.classfilters[i]=o),K(o)}),p(),h(3,"span",45),B("click",function(){const o=J(t).index;return K(O().configuration.removeClassFilter(o))}),h(4,"a",46),y(5,"i",47),p()()()()}if(2&e){const t=n.index,r=O();C(2),Zn("name","classfilter_",t,""),je("ngModel",r.configuration.classfilters[t])}}function f4(e,n){if(1&e){const t=xe();h(0,"div",8)(1,"div",57)(2,"input",62),Ue("ngModelChange",function(o){const i=J(t).index,s=O();return $e(s.configuration.filefilters[i],o)||(s.configuration.filefilters[i]=o),K(o)}),p(),h(3,"span",45),B("click",function(){const o=J(t).index;return K(O().configuration.removeFileFilter(o))}),h(4,"a",46),y(5,"i",47),p()()()()}if(2&e){const t=n.index,r=O();C(2),Zn("name","filefilter_",t,""),je("ngModel",r.configuration.filefilters[t])}}function h4(e,n){if(1&e&&(h(0,"option",63),f(1),p()),2&e){const t=n.$implicit;S("value",t),C(),Te(t)}}function p4(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),Te(t.tool),C(3),Te(t.command)}}function g4(e,n){1&e&&(y(0,"i",65),f(1," Copied "))}function m4(e,n){1&e&&(y(0,"i",66),f(1," Copy "))}function v4(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),Te(t.tool),C(3),Te(t.command)}}function y4(e,n){1&e&&(y(0,"i",65),f(1," Copied "))}function _4(e,n){1&e&&(y(0,"i",66),f(1," Copy "))}const no=" | ReportGenerator - Code coverage reports",D4=[{path:"",component:a$,pathMatch:"full",title:"Home"+no,data:{canonical:"/"}},{path:"features",component:e$,title:"Features"+no,data:{canonical:"/features"}},{path:"features.html",redirectTo:"/features"},{path:"getstarted",component:n$,title:"Get started"+no,data:{canonical:"/getstarted"}},{path:"getstarted.html",redirectTo:"/getstarted"},{path:"usage",component:(()=>{class e{constructor(){this.versions=Xt,this.lastResult="",this.usageCopied=!1,this.configuration=new q$,this.environments=[new Cu(".NET Core",".NET Core"),new Cu(".NET Framework","The full .NET framework"),new Cu("Azure DevOps",null),new Cu("Github Action",null)],this.packages=[new _u("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 Rg("Package Manager",`Install-Package ReportGenerator -Version ${Xt.version}`),new Rg(".NET CLI",`dotnet add package ReportGenerator --version ${Xt.version}`)],[new Ea(".NET Framework",`$(UserProfile)\\.nuget\\packages\\reportgenerator\\${Xt.version}\\tools\\net47\\ReportGenerator.exe`),new Ea(".NET Core",`dotnet $(UserProfile)\\.nuget\\packages\\reportgenerator\\${Xt.version}\\tools\\net6.0\\ReportGenerator.dll`)]),new _u("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 Rg(".NET CLI",`dotnet tool install --global dotnet-reportgenerator-globaltool --version ${Xt.version}\r\n\r\ndotnet tool install dotnet-reportgenerator-globaltool --tool-path tools --version ${Xt.version}\r\n\r\ndotnet new tool-manifest\r\ndotnet tool install dotnet-reportgenerator-globaltool --version ${Xt.version}`)],[new Ea(".NET Core","reportgenerator")]),new z$("Azure DevOps","https://marketplace.visualstudio.com/items?itemName=Palmmedia.reportgenerator",["Azure DevOps"],"Use this package within Azure DevOps",[],[new Ea("Azure DevOps","reportgenerator")]),new W$("GitHub Action","https://github.com/marketplace/actions/reportgenerator",["Github Action"],"Use this package within Github Actions",[],[new Ea("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=kt({type:e,selectors:[["app-usage-component"]],standalone:!0,features:[Ut],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,"ngModelChange","ngModel"],["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,"ngModelChange","ngModel","required"],["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,"ngModelChange","ngModel"],[3,"value",4,"ngFor","ngForOf","ngForTrackBy"],["type","text","name","title","placeholder","Title",1,"form-control",3,"ngModelChange","ngModel"],["type","text","name","tag","placeholder","Optional tag or build version",1,"form-control",3,"ngModelChange","ngModel"],[3,"routerLink"],["type","text","name","license","placeholder","Optional license for PRO version","rows","4",1,"form-control",3,"ngModelChange","ngModel"],[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,"ngModelChange","ngModel","value","checked"],[1,"mb-3"],[4,"ngFor","ngForOf"],["class","form-check",4,"ngIf"],["type","radio","name","package",1,"form-check-input",3,"ngModelChange","ngModel","value"],[3,"ngClass"],["type","text","placeholder","The path of the coverage file","required","",1,"form-control",3,"ngModelChange","name","ngModel"],["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,"click","ngClass"],["class","form-check mt-1",4,"ngIf"],[1,"form-check","mt-1"],["type","checkbox","name","reporttype",1,"form-check-input",3,"change","checked"],["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,"ngModelChange","name","ngModel"],["type","text","placeholder","The path of the plugin","required","",1,"form-control",3,"ngModelChange","name","ngModel"],["type","text","placeholder","The include or exclude filter for assemlies","pattern","^[+-].+$","required","",1,"form-control",3,"ngModelChange","name","ngModel"],["type","text","placeholder","The include or exclude filter for classes","pattern","^[+-].+$","required","",1,"form-control",3,"ngModelChange","name","ngModel"],["type","text","placeholder","The include or exclude filter for files","pattern","^[+-].+$","required","",1,"form-control",3,"ngModelChange","name","ngModel"],[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,X$,8,5,"div",4),y(9,"hr"),q(10,e4,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,n4,4,7,"div",7),h(19,"div",8)(20,"a",9),B("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),Ue("ngModelChange",function(s){return $e(o.configuration.targetdir,s)||(o.configuration.targetdir=s),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,r4,2,5,"button",14),y(40,"br"),q(41,a4,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,l4,6,3,"div",16),h(49,"div",8)(50,"a",9),B("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),Ue("ngModelChange",function(s){return $e(o.configuration.historydir,s)||(o.configuration.historydir=s),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,c4,6,3,"div",16),h(77,"div",8)(78,"a",9),B("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,u4,6,3,"div",16),h(103,"div",8)(104,"a",9),B("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,d4,6,3,"div",16),h(129,"div",8)(130,"a",9),B("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,f4,6,3,"div",16),h(155,"div",8)(156,"a",9),B("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),Ue("ngModelChange",function(s){return $e(o.configuration.selectedverbosity,s)||(o.configuration.selectedverbosity=s),s}),q(166,h4,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),Ue("ngModelChange",function(s){return $e(o.configuration.title,s)||(o.configuration.title=s),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),Ue("ngModelChange",function(s){return $e(o.configuration.tag,s)||(o.configuration.tag=s),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),Ue("ngModelChange",function(s){return $e(o.configuration.license,s)||(o.configuration.license=s),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,p4,6,2,"div",30),h(198,"h4",31),f(199,"Usage"),p(),h(200,"pre",32),f(201),p(),h(202,"button",33),B("click",function(){return o.copy()}),q(203,g4,2,0)(204,m4,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,v4,6,2,"div",30),h(212,"h4",31),f(213,"Usage"),p(),h(214,"pre",32),f(215),p(),h(216,"button",33),B("click",function(){return o.copy()}),q(217,y4,2,0)(218,_4,2,0),p()()()()()),2&r&&(C(8),S("ngForOf",o.environments),C(2),S("ngIf",o.severalPackagesAvailable()),C(8),S("ngForOf",o.configuration.reports)("ngForTrackBy",o.trackByIndex),C(11),je("ngModel",o.configuration.targetdir),C(10),S("ngForOf",o.configuration.types)("ngForTrackBy",o.trackByIndex),C(2),S("ngForOf",o.configuration.reporttypes)("ngForTrackBy",o.trackByIndex),C(7),S("ngForOf",o.configuration.sourcedirectories)("ngForTrackBy",o.trackByIndex),C(16),je("ngModel",o.configuration.historydir),S("required",o.configuration.historyDirRequired()),C(12),S("ngForOf",o.configuration.plugins)("ngForTrackBy",o.trackByIndex),C(26),S("ngForOf",o.configuration.assemblyfilters)("ngForTrackBy",o.trackByIndex),C(26),S("ngForOf",o.configuration.classfilters)("ngForTrackBy",o.trackByIndex),C(26),S("ngForOf",o.configuration.filefilters)("ngForTrackBy",o.trackByIndex),C(11),je("ngModel",o.configuration.selectedverbosity),C(),S("ngForOf",o.configuration.verbosities)("ngForTrackBy",o.trackByIndex),C(7),je("ngModel",o.configuration.title),C(7),je("ngModel",o.configuration.tag),C(6),S("routerLink",re(38,Z$)),C(3),je("ngModel",o.configuration.license),C(6),S("href",o.selectedPackage.url,xo),C(),Te(o.selectedPackage.name),C(),S("ngForOf",o.selectedPackage.installOptions),C(4),Te(o.getUsage()),C(2),ti(203,o.usageCopied?203:204),C(6),S("href",o.selectedPackage.url,xo),C(),Te(o.selectedPackage.name),C(),S("ngForOf",o.selectedPackage.installOptions),C(4),Te(o.getUsage()),C(2),ti(217,o.usageCopied?217:218))},dependencies:[hu,uu,UM,HM,Ii,du,vg,eu,tu,Ai,bg,Ca,Ti,lp,cp,Nc,Pn],styles:[".sticky[_ngcontent-%COMP%]{position:sticky;top:100px}"]})}return e})(),title:"Usage"+no,data:{canonical:"/usage"}},{path:"usage.html",redirectTo:"/usage"},{path:"pro",component:G$,title:"PRO"+no,data:{canonical:"/pro"}},{path:"pro.html",redirectTo:"/pro"},{path:"contact",component:KH,title:"Contact"+no,data:{canonical:"/contact"}},{path:"contact.html",redirectTo:"/contact"},{path:"404",component:l$,title:"404 - Not found"+no},{path:"**",redirectTo:"/404"}];(function Vj(e,n){return JF({rootComponent:e,...BE(n)})})(wB,{providers:[Em(Gj,(()=>{class e{static#e=this.\u0275fac=function(r){return new(r||e)};static#t=this.\u0275mod=or({type:e});static#n=this.\u0275inj=jn({imports:[qI.forRoot(D4,{scrollPositionRestoration:"enabled",scrollOffset:[0,0],anchorScrolling:"enabled"}),qI]})}return e})(),hu),D1,w1,v1,function HH(...e){const n=[Mg,i1,r1,{provide:pu,useExisting:r1},{provide:gu,useExisting:i1},{provide:ba,useValue:BH,multi:!0},{provide:Ag,useValue:!0},{provide:l1,useClass:UH}];for(const t of e)n.push(...t.\u0275providers);return ji(n)}(function $H(){return function eo(e,n){return{\u0275kind:e,\u0275providers:n}}(Mr.LegacyInterceptors,[{provide:c1,useFactory:RH},{provide:ba,useExisting:c1,multi:!0}])}())]}).catch(e=>console.error(e))}},Ri=>{Ri(Ri.s=729)}]); \ No newline at end of file diff --git a/docs/pro.html b/docs/pro.html index 632c287e..8423650f 100644 --- a/docs/pro.html +++ b/docs/pro.html @@ -11,5 +11,5 @@ - + \ No newline at end of file diff --git a/docs/resources/reports/MarkdownAssembliesSummary/Summary.md b/docs/resources/reports/MarkdownAssembliesSummary/Summary.md new file mode 100644 index 00000000..e083a528 --- /dev/null +++ b/docs/resources/reports/MarkdownAssembliesSummary/Summary.md @@ -0,0 +1,5 @@ +# Summary +![Line coverage](https://img.shields.io/badge/lines-69.4%-C10909) ![Branch coverage](https://img.shields.io/badge/branches-50%-C10909) ![Method coverage](https://img.shields.io/badge/methods-66.6%-C10909) +|**Assembly**|**Line coverage**|**Branch coverage**|**Method coverage**| +|:---|---:|---:|---:| +|**Sample**|**69.4%**|**50%**|**66.6%**| diff --git a/docs/resources/reports/index.html b/docs/resources/reports/index.html index 4a3aa980..09eac940 100644 --- a/docs/resources/reports/index.html +++ b/docs/resources/reports/index.html @@ -170,6 +170,10 @@

Markdown

MarkdownSummary Creates a single Markdown file containing coverage information per class. + + MarkdownAssembliesSummary + Creates a single Markdown file containing coverage information per assembly. + MarkdownSummaryGithub Creates a single Markdown file containing coverage information per class. The report is optimized diff --git a/docs/usage.html b/docs/usage.html index 4970bf1d..ca6cf349 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 e387214a..bfad6406 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, CodeClimate, 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, MarkdownAssembliesSummary, 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 2e0d72c8..44f2797b 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, CodeClimate, 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, MarkdownAssembliesSummary, MarkdownSummaryGithub, MarkdownDeltaSummary, MHtml, SvgChart, SonarQube, TeamCitySummary, TextSummary, TextDeltaSummary, Xml, XmlSummary" }, { "name": "sourcedirs", diff --git a/src/AzureDevopsTaskTest/README.md b/src/AzureDevopsTaskTest/README.md index e387214a..bfad6406 100644 --- a/src/AzureDevopsTaskTest/README.md +++ b/src/AzureDevopsTaskTest/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, CodeClimate, 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, MarkdownAssembliesSummary, 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/AzureDevopsTaskTest/ReportGenerator/task.json b/src/AzureDevopsTaskTest/ReportGenerator/task.json index 5b66cc63..dc473fe8 100644 --- a/src/AzureDevopsTaskTest/ReportGenerator/task.json +++ b/src/AzureDevopsTaskTest/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, CodeClimate, 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, MarkdownAssembliesSummary, MarkdownSummaryGithub, MarkdownDeltaSummary, MHtml, SvgChart, SonarQube, TeamCitySummary, TextSummary, TextDeltaSummary, Xml, XmlSummary" }, { "name": "sourcedirs", diff --git a/src/Readme.txt b/src/Readme.txt index 7ee170b4..aaa68c73 100644 --- a/src/Readme.txt +++ b/src/Readme.txt @@ -35,7 +35,7 @@ The following output formats are supported by ReportGenerator: -TeamCitySummary -TextSummary, TextDeltaSummary -CsvSummary --MarkdownSummary, MarkdownSummaryGithub, MarkdownDeltaSummary +-MarkdownSummary, MarkdownAssembliesSummary, MarkdownSummaryGithub, MarkdownDeltaSummary -SvgChart -Badges -Custom formats (https://github.com/danielpalme/ReportGenerator/wiki/Custom-reports) @@ -72,6 +72,7 @@ CHANGELOG * New: Azure DevOps task: Added new setting "publishCodeCoverageResults" This allows to publish report in 'Code Coverage' tab directly. Makes the 'PublishCodeCoverageResults' task obsolete. * New: #662: Added ability to filter by coverage in Html reports + * New: #667: Added new report type 'MarkdownAssembliesSummary' 5.2.5.0 diff --git a/src/ReportGenerator.Core/Reporting/Builders/MarkdownAssembliesSummaryReportBuilder.cs b/src/ReportGenerator.Core/Reporting/Builders/MarkdownAssembliesSummaryReportBuilder.cs new file mode 100644 index 00000000..ece70dfb --- /dev/null +++ b/src/ReportGenerator.Core/Reporting/Builders/MarkdownAssembliesSummaryReportBuilder.cs @@ -0,0 +1,178 @@ +using System; +using System.Collections.Generic; +using System.Globalization; +using System.IO; +using System.Linq; +using Palmmedia.ReportGenerator.Core.Common; +using Palmmedia.ReportGenerator.Core.Licensing; +using Palmmedia.ReportGenerator.Core.Logging; +using Palmmedia.ReportGenerator.Core.Parser.Analysis; +using Palmmedia.ReportGenerator.Core.Properties; + +namespace Palmmedia.ReportGenerator.Core.Reporting.Builders +{ + /// + /// Creates summary report in Markdown format (assemblies only). + /// + public class MarkdownAssembliesSummaryReportBuilder : IReportBuilder + { + /// + /// The Logger. + /// + private static readonly ILogger Logger = LoggerFactory.GetLogger(typeof(MarkdownAssembliesSummaryReportBuilder)); + + /// + /// Gets the report type. + /// + /// + /// The report type. + /// + public string ReportType => "MarkdownAssembliesSummary"; + + /// + /// 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 void CreateClassReport(Class @class, IEnumerable fileAnalyses) + { + } + + /// + /// Creates the summary report. + /// + /// The summary result. + public void CreateSummaryReport(SummaryResult summaryResult) + { + if (summaryResult == null) + { + throw new ArgumentNullException(nameof(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, "Summary.md"); + + bool proVersion = this.ReportContext.ReportConfiguration.License.DetermineLicenseType() == LicenseType.Pro; + + Logger.InfoFormat(Resources.WritingReportFile, targetPath); + + using (var reportTextWriter = File.CreateText(targetPath)) + { + if (this.ReportContext.ReportConfiguration.Title != null) + { + reportTextWriter.WriteLine("# {0} - {1}", ReportResources.Summary, this.ReportContext.ReportConfiguration.Title); + } + else + { + reportTextWriter.WriteLine("# {0}", ReportResources.Summary); + } + + reportTextWriter.WriteLine(); + + reportTextWriter.Write($"![{ReportResources.Coverage}](https://img.shields.io/badge/lines-{(summaryResult.CoverageQuota.HasValue ? summaryResult.CoverageQuota.Value.ToString(CultureInfo.InvariantCulture) + "%" : "-")}-{(summaryResult.CoverageQuota.GetValueOrDefault() < 80 ? "C10909" : "0AAD0A")})"); + + if (summaryResult.SupportsBranchCoverage) + { + reportTextWriter.Write($" ![{ReportResources.BranchCoverage}](https://img.shields.io/badge/branches-{(summaryResult.BranchCoverageQuota.HasValue ? summaryResult.BranchCoverageQuota.Value.ToString(CultureInfo.InvariantCulture) + "%" : "-")}-{(summaryResult.BranchCoverageQuota.GetValueOrDefault() < 80 ? "C10909" : "0AAD0A")})"); + } + + if (proVersion) + { + reportTextWriter.Write($" ![{ReportResources.CodeElementCoverageQuota}](https://img.shields.io/badge/methods-{(summaryResult.CodeElementCoverageQuota.HasValue ? summaryResult.CodeElementCoverageQuota.Value.ToString(CultureInfo.InvariantCulture) + "%" : "-")}-{(summaryResult.CodeElementCoverageQuota.GetValueOrDefault() < 80 ? "C10909" : "0AAD0A")})"); + } + + reportTextWriter.WriteLine(); + reportTextWriter.WriteLine(); + + if (summaryResult.Assemblies.Any()) + { + reportTextWriter.Write( + "|**{0}**|**{1}**|", + ReportResources.Assembly2, + ReportResources.Coverage); + + if (summaryResult.SupportsBranchCoverage) + { + reportTextWriter.Write( + "**{0}**|", + ReportResources.BranchCoverage); + } + + if (proVersion) + { + reportTextWriter.Write( + "**{0}**|", + ReportResources.CodeElementCoverageQuota); + } + + reportTextWriter.WriteLine(); + + reportTextWriter.Write("|:---|---:|"); + + if (summaryResult.SupportsBranchCoverage) + { + reportTextWriter.Write("---:|"); + } + + if (proVersion) + { + reportTextWriter.Write("---:|"); + } + + reportTextWriter.WriteLine(); + + foreach (var assembly in summaryResult.Assemblies) + { + reportTextWriter.Write("|**{0}**", assembly.Name); + reportTextWriter.Write("|**{0}**", assembly.CoverageQuota.HasValue ? assembly.CoverageQuota.Value.ToString(CultureInfo.InvariantCulture) + "%" : string.Empty); + + if (summaryResult.SupportsBranchCoverage) + { + reportTextWriter.Write("|**{0}**", assembly.BranchCoverageQuota.HasValue ? assembly.BranchCoverageQuota.Value.ToString(CultureInfo.InvariantCulture) + "%" : string.Empty); + } + + if (proVersion) + { + reportTextWriter.Write("|**{0}**", assembly.CodeElementCoverageQuota.HasValue ? assembly.CodeElementCoverageQuota.Value.ToString(CultureInfo.InvariantCulture) + "%" : string.Empty); + } + + reportTextWriter.WriteLine("|"); + } + } + else + { + reportTextWriter.WriteLine(ReportResources.NoCoveredAssemblies); + } + + reportTextWriter.Flush(); + } + } + } +}