diff --git a/README.md b/README.md index d1c7ccb2..ee550ebb 100644 --- a/README.md +++ b/README.md @@ -77,7 +77,7 @@ Explanations: Html, Html_Light, Html_Dark, Html_BlueRed HtmlChart, HtmlInline, HtmlSummary, Html_BlueRed_Summary HtmlInline_AzurePipelines, HtmlInline_AzurePipelines_Light, HtmlInline_AzurePipelines_Dark - JsonSummary, Latex, LatexSummary, lcov, MHtml, PngChart, SonarQube, TeamCitySummary + JsonSummary, Latex, LatexSummary, lcov, MHtml, SvgChart, SonarQube, TeamCitySummary TextSummary, TextDeltaSummary Xml, XmlSummary Source directories: Optional directories which contain the corresponding source code (separated by semicolon). @@ -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: @@ -225,7 +225,7 @@ The screenshots show two snippets of the generated reports: **Badges** -Badges in SVG and PNG format can be generated if `-reporttypes:Badges` is used: +Badges in SVG format can be generated if `-reporttypes:Badges` is used: Example: ![Sample badge](https://danielpalme.github.io/ReportGenerator/resources/badge.svg) diff --git a/docs/main.ef294caf361a7de0.js b/docs/main.ef294caf361a7de0.js index cf6e85c8..43d2a524 100644 --- a/docs/main.ef294caf361a7de0.js +++ b/docs/main.ef294caf361a7de0.js @@ -1 +1 @@ -"use strict";(self.webpackChunkReportGenerator_io=self.webpackChunkReportGenerator_io||[]).push([[179],{603:()=>{function ue(e){return"function"==typeof e}function zo(e){const r=e(n=>{Error.call(n),n.stack=(new Error).stack});return r.prototype=Object.create(Error.prototype),r.prototype.constructor=r,r}const _s=zo(e=>function(r){e(this),this.message=r?`${r.length} errors occurred during unsubscription:\n${r.map((n,o)=>`${o+1}) ${n.toString()}`).join("\n ")}`:"",this.name="UnsubscriptionError",this.errors=r});function qo(e,t){if(e){const r=e.indexOf(t);0<=r&&e.splice(r,1)}}class gt{constructor(t){this.initialTeardown=t,this.closed=!1,this._parentage=null,this._finalizers=null}unsubscribe(){let t;if(!this.closed){this.closed=!0;const{_parentage:r}=this;if(r)if(this._parentage=null,Array.isArray(r))for(const i of r)i.remove(this);else r.remove(this);const{initialTeardown:n}=this;if(ue(n))try{n()}catch(i){t=i instanceof _s?i.errors:[i]}const{_finalizers:o}=this;if(o){this._finalizers=null;for(const i of o)try{kh(i)}catch(s){t=t??[],s instanceof _s?t=[...t,...s.errors]:t.push(s)}}if(t)throw new _s(t)}}add(t){var r;if(t&&t!==this)if(this.closed)kh(t);else{if(t instanceof gt){if(t.closed||t._hasParent(this))return;t._addParent(this)}(this._finalizers=null!==(r=this._finalizers)&&void 0!==r?r:[]).push(t)}}_hasParent(t){const{_parentage:r}=this;return r===t||Array.isArray(r)&&r.includes(t)}_addParent(t){const{_parentage:r}=this;this._parentage=Array.isArray(r)?(r.push(t),r):r?[r,t]:t}_removeParent(t){const{_parentage:r}=this;r===t?this._parentage=null:Array.isArray(r)&&qo(r,t)}remove(t){const{_finalizers:r}=this;r&&qo(r,t),t instanceof gt&&t._removeParent(this)}}gt.EMPTY=(()=>{const e=new gt;return e.closed=!0,e})();const Ph=gt.EMPTY;function Oh(e){return e instanceof gt||e&&"closed"in e&&ue(e.remove)&&ue(e.add)&&ue(e.unsubscribe)}function kh(e){ue(e)?e():e.unsubscribe()}const rr={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},Cs={setTimeout(e,t,...r){const{delegate:n}=Cs;return n?.setTimeout?n.setTimeout(e,t,...r):setTimeout(e,t,...r)},clearTimeout(e){const{delegate:t}=Cs;return(t?.clearTimeout||clearTimeout)(e)},delegate:void 0};function Fh(e){Cs.setTimeout(()=>{const{onUnhandledError:t}=rr;if(!t)throw e;t(e)})}function sc(){}const h1=ac("C",void 0,void 0);function ac(e,t,r){return{kind:e,value:t,error:r}}let or=null;function Ds(e){if(rr.useDeprecatedSynchronousErrorHandling){const t=!or;if(t&&(or={errorThrown:!1,error:null}),e(),t){const{errorThrown:r,error:n}=or;if(or=null,r)throw n}}else e()}class lc extends gt{constructor(t){super(),this.isStopped=!1,t?(this.destination=t,Oh(t)&&t.add(this)):this.destination=C1}static create(t,r,n){return new bs(t,r,n)}next(t){this.isStopped?uc(function g1(e){return ac("N",e,void 0)}(t),this):this._next(t)}error(t){this.isStopped?uc(function p1(e){return ac("E",void 0,e)}(t),this):(this.isStopped=!0,this._error(t))}complete(){this.isStopped?uc(h1,this):(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe(),this.destination=null)}_next(t){this.destination.next(t)}_error(t){try{this.destination.error(t)}finally{this.unsubscribe()}}_complete(){try{this.destination.complete()}finally{this.unsubscribe()}}}const v1=Function.prototype.bind;function cc(e,t){return v1.call(e,t)}class y1{constructor(t){this.partialObserver=t}next(t){const{partialObserver:r}=this;if(r.next)try{r.next(t)}catch(n){ws(n)}}error(t){const{partialObserver:r}=this;if(r.error)try{r.error(t)}catch(n){ws(n)}else ws(t)}complete(){const{partialObserver:t}=this;if(t.complete)try{t.complete()}catch(r){ws(r)}}}class bs extends lc{constructor(t,r,n){let o;if(super(),ue(t)||!t)o={next:t??void 0,error:r??void 0,complete:n??void 0};else{let i;this&&rr.useDeprecatedNextContext?(i=Object.create(t),i.unsubscribe=()=>this.unsubscribe(),o={next:t.next&&cc(t.next,i),error:t.error&&cc(t.error,i),complete:t.complete&&cc(t.complete,i)}):o=t}this.destination=new y1(o)}}function ws(e){rr.useDeprecatedSynchronousErrorHandling?function m1(e){rr.useDeprecatedSynchronousErrorHandling&&or&&(or.errorThrown=!0,or.error=e)}(e):Fh(e)}function uc(e,t){const{onStoppedNotification:r}=rr;r&&Cs.setTimeout(()=>r(e,t))}const C1={closed:!0,next:sc,error:function _1(e){throw e},complete:sc},dc="function"==typeof Symbol&&Symbol.observable||"@@observable";function Vn(e){return e}function Lh(e){return 0===e.length?Vn:1===e.length?e[0]:function(r){return e.reduce((n,o)=>o(n),r)}}let Ie=(()=>{class e{constructor(r){r&&(this._subscribe=r)}lift(r){const n=new e;return n.source=this,n.operator=r,n}subscribe(r,n,o){const i=function w1(e){return e&&e instanceof lc||function b1(e){return e&&ue(e.next)&&ue(e.error)&&ue(e.complete)}(e)&&Oh(e)}(r)?r:new bs(r,n,o);return Ds(()=>{const{operator:s,source:a}=this;i.add(s?s.call(i,a):a?this._subscribe(i):this._trySubscribe(i))}),i}_trySubscribe(r){try{return this._subscribe(r)}catch(n){r.error(n)}}forEach(r,n){return new(n=Vh(n))((o,i)=>{const s=new bs({next:a=>{try{r(a)}catch(l){i(l),s.unsubscribe()}},error:i,complete:o});this.subscribe(s)})}_subscribe(r){var n;return null===(n=this.source)||void 0===n?void 0:n.subscribe(r)}[dc](){return this}pipe(...r){return Lh(r)(this)}toPromise(r){return new(r=Vh(r))((n,o)=>{let i;this.subscribe(s=>i=s,s=>o(s),()=>n(i))})}}return e.create=t=>new e(t),e})();function Vh(e){var t;return null!==(t=e??rr.Promise)&&void 0!==t?t:Promise}const E1=zo(e=>function(){e(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"});let Lt=(()=>{class e extends Ie{constructor(){super(),this.closed=!1,this.currentObservers=null,this.observers=[],this.isStopped=!1,this.hasError=!1,this.thrownError=null}lift(r){const n=new jh(this,this);return n.operator=r,n}_throwIfClosed(){if(this.closed)throw new E1}next(r){Ds(()=>{if(this._throwIfClosed(),!this.isStopped){this.currentObservers||(this.currentObservers=Array.from(this.observers));for(const n of this.currentObservers)n.next(r)}})}error(r){Ds(()=>{if(this._throwIfClosed(),!this.isStopped){this.hasError=this.isStopped=!0,this.thrownError=r;const{observers:n}=this;for(;n.length;)n.shift().error(r)}})}complete(){Ds(()=>{if(this._throwIfClosed(),!this.isStopped){this.isStopped=!0;const{observers:r}=this;for(;r.length;)r.shift().complete()}})}unsubscribe(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null}get observed(){var r;return(null===(r=this.observers)||void 0===r?void 0:r.length)>0}_trySubscribe(r){return this._throwIfClosed(),super._trySubscribe(r)}_subscribe(r){return this._throwIfClosed(),this._checkFinalizedStatuses(r),this._innerSubscribe(r)}_innerSubscribe(r){const{hasError:n,isStopped:o,observers:i}=this;return n||o?Ph:(this.currentObservers=null,i.push(r),new gt(()=>{this.currentObservers=null,qo(i,r)}))}_checkFinalizedStatuses(r){const{hasError:n,thrownError:o,isStopped:i}=this;n?r.error(o):i&&r.complete()}asObservable(){const r=new Ie;return r.source=this,r}}return e.create=(t,r)=>new jh(t,r),e})();class jh extends Lt{constructor(t,r){super(),this.destination=t,this.source=r}next(t){var r,n;null===(n=null===(r=this.destination)||void 0===r?void 0:r.next)||void 0===n||n.call(r,t)}error(t){var r,n;null===(n=null===(r=this.destination)||void 0===r?void 0:r.error)||void 0===n||n.call(r,t)}complete(){var t,r;null===(r=null===(t=this.destination)||void 0===t?void 0:t.complete)||void 0===r||r.call(t)}_subscribe(t){var r,n;return null!==(n=null===(r=this.source)||void 0===r?void 0:r.subscribe(t))&&void 0!==n?n:Ph}}function Hh(e){return ue(e?.lift)}function Oe(e){return t=>{if(Hh(t))return t.lift(function(r){try{return e(r,this)}catch(n){this.error(n)}});throw new TypeError("Unable to lift unknown Observable type")}}function Re(e,t,r,n,o){return new M1(e,t,r,n,o)}class M1 extends lc{constructor(t,r,n,o,i,s){super(t),this.onFinalize=i,this.shouldUnsubscribe=s,this._next=r?function(a){try{r(a)}catch(l){t.error(l)}}:super._next,this._error=o?function(a){try{o(a)}catch(l){t.error(l)}finally{this.unsubscribe()}}:super._error,this._complete=n?function(){try{n()}catch(a){t.error(a)}finally{this.unsubscribe()}}:super._complete}unsubscribe(){var t;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){const{closed:r}=this;super.unsubscribe(),!r&&(null===(t=this.onFinalize)||void 0===t||t.call(this))}}}function ee(e,t){return Oe((r,n)=>{let o=0;r.subscribe(Re(n,i=>{n.next(e.call(t,i,o++))}))})}function jn(e){return this instanceof jn?(this.v=e,this):new jn(e)}function Gh(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r,t=e[Symbol.asyncIterator];return t?t.call(e):(e=function gc(e){var t="function"==typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}(e),r={},n("next"),n("throw"),n("return"),r[Symbol.asyncIterator]=function(){return this},r);function n(i){r[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 zh=e=>e&&"number"==typeof e.length&&"function"!=typeof e;function qh(e){return ue(e?.then)}function Wh(e){return ue(e[dc])}function Zh(e){return Symbol.asyncIterator&&ue(e?.[Symbol.asyncIterator])}function Yh(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 Qh=function W1(){return"function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator"}();function Xh(e){return ue(e?.[Qh])}function Jh(e){return function $h(e,t,r){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var o,n=r.apply(e,t||[]),i=[];return o={},s("next"),s("throw"),s("return"),o[Symbol.asyncIterator]=function(){return this},o;function s(g){n[g]&&(o[g]=function(m){return new Promise(function(y,C){i.push([g,m,y,C])>1||a(g,m)})})}function a(g,m){try{!function l(g){g.value instanceof jn?Promise.resolve(g.value.v).then(c,u):d(i[0][2],g)}(n[g](m))}catch(y){d(i[0][3],y)}}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 r=e.getReader();try{for(;;){const{value:n,done:o}=yield jn(r.read());if(o)return yield jn(void 0);yield yield jn(n)}}finally{r.releaseLock()}})}function Kh(e){return ue(e?.getReader)}function Vt(e){if(e instanceof Ie)return e;if(null!=e){if(Wh(e))return function Z1(e){return new Ie(t=>{const r=e[dc]();if(ue(r.subscribe))return r.subscribe(t);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}(e);if(zh(e))return function Y1(e){return new Ie(t=>{for(let r=0;r{e.then(r=>{t.closed||(t.next(r),t.complete())},r=>t.error(r)).then(null,Fh)})}(e);if(Zh(e))return ep(e);if(Xh(e))return function X1(e){return new Ie(t=>{for(const r of e)if(t.next(r),t.closed)return;t.complete()})}(e);if(Kh(e))return function J1(e){return ep(Jh(e))}(e)}throw Yh(e)}function ep(e){return new Ie(t=>{(function K1(e,t){var r,n,o,i;return function Uh(e,t,r,n){return new(r||(r=Promise))(function(i,s){function a(u){try{c(n.next(u))}catch(d){s(d)}}function l(u){try{c(n.throw(u))}catch(d){s(d)}}function c(u){u.done?i(u.value):function o(i){return i instanceof r?i:new r(function(s){s(i)})}(u.value).then(a,l)}c((n=n.apply(e,t||[])).next())})}(this,void 0,void 0,function*(){try{for(r=Gh(e);!(n=yield r.next()).done;)if(t.next(n.value),t.closed)return}catch(s){o={error:s}}finally{try{n&&!n.done&&(i=r.return)&&(yield i.call(r))}finally{if(o)throw o.error}}t.complete()})})(e,t).catch(r=>t.error(r))})}function vn(e,t,r,n=0,o=!1){const i=t.schedule(function(){r(),o?e.add(this.schedule(null,n)):this.unsubscribe()},n);if(e.add(i),!o)return i}function Ve(e,t,r=1/0){return ue(t)?Ve((n,o)=>ee((i,s)=>t(n,i,o,s))(Vt(e(n,o))),r):("number"==typeof t&&(r=t),Oe((n,o)=>function eE(e,t,r,n,o,i,s,a){const l=[];let c=0,u=0,d=!1;const g=()=>{d&&!l.length&&!c&&t.complete()},m=C=>c{i&&t.next(C),c++;let b=!1;Vt(r(C,u++)).subscribe(Re(t,E=>{o?.(E),i?m(E):t.next(E)},()=>{b=!0},void 0,()=>{if(b)try{for(c--;l.length&&cy(E)):y(E)}g()}catch(E){t.error(E)}}))};return e.subscribe(Re(t,m,()=>{d=!0,g()})),()=>{a?.()}}(n,o,e,r)))}function xr(e=1/0){return Ve(Vn,e)}const Jt=new Ie(e=>e.complete());function mc(e){return e[e.length-1]}function tp(e){return ue(mc(e))?e.pop():void 0}function Wo(e){return function nE(e){return e&&ue(e.schedule)}(mc(e))?e.pop():void 0}function np(e,t=0){return Oe((r,n)=>{r.subscribe(Re(n,o=>vn(n,e,()=>n.next(o),t),()=>vn(n,e,()=>n.complete(),t),o=>vn(n,e,()=>n.error(o),t)))})}function rp(e,t=0){return Oe((r,n)=>{n.add(e.schedule(()=>r.subscribe(n),t))})}function op(e,t){if(!e)throw new Error("Iterable cannot be null");return new Ie(r=>{vn(r,t,()=>{const n=e[Symbol.asyncIterator]();vn(r,t,()=>{n.next().then(o=>{o.done?r.complete():r.next(o.value)})},0,!0)})})}function Ne(e,t){return t?function cE(e,t){if(null!=e){if(Wh(e))return function oE(e,t){return Vt(e).pipe(rp(t),np(t))}(e,t);if(zh(e))return function sE(e,t){return new Ie(r=>{let n=0;return t.schedule(function(){n===e.length?r.complete():(r.next(e[n++]),r.closed||this.schedule())})})}(e,t);if(qh(e))return function iE(e,t){return Vt(e).pipe(rp(t),np(t))}(e,t);if(Zh(e))return op(e,t);if(Xh(e))return function aE(e,t){return new Ie(r=>{let n;return vn(r,t,()=>{n=e[Qh](),vn(r,t,()=>{let o,i;try{({value:o,done:i}=n.next())}catch(s){return void r.error(s)}i?r.complete():r.next(o)},0,!0)}),()=>ue(n?.return)&&n.return()})}(e,t);if(Kh(e))return function lE(e,t){return op(Jh(e),t)}(e,t)}throw Yh(e)}(e,t):Vt(e)}class At extends Lt{constructor(t){super(),this._value=t}get value(){return this.getValue()}_subscribe(t){const r=super._subscribe(t);return!r.closed&&t.next(this._value),r}getValue(){const{hasError:t,thrownError:r,_value:n}=this;if(t)throw r;return this._throwIfClosed(),n}next(t){super.next(this._value=t)}}function V(...e){return Ne(e,Wo(e))}function ir(e){return e<=0?()=>Jt:Oe((t,r)=>{let n=0;t.subscribe(Re(r,o=>{++n<=e&&(r.next(o),e<=n&&r.complete())}))})}function ip(e={}){const{connector:t=(()=>new Lt),resetOnError:r=!0,resetOnComplete:n=!0,resetOnRefCountZero:o=!0}=e;return i=>{let s=null,a=null,l=null,c=0,u=!1,d=!1;const g=()=>{a?.unsubscribe(),a=null},m=()=>{g(),s=l=null,u=d=!1},y=()=>{const C=s;m(),C?.unsubscribe()};return Oe((C,b)=>{c++,!d&&!u&&g();const E=l=l??t();b.add(()=>{c--,0===c&&!d&&!u&&(a=vc(y,o))}),E.subscribe(b),s||(s=new bs({next:D=>E.next(D),error:D=>{d=!0,g(),a=vc(m,r,D),E.error(D)},complete:()=>{u=!0,g(),a=vc(m,n),E.complete()}}),Ne(C).subscribe(s))})(i)}}function vc(e,t,...r){return!0===t?(e(),null):!1===t?null:t(...r).pipe(ir(1)).subscribe(()=>e())}function jt(e,t){return Oe((r,n)=>{let o=null,i=0,s=!1;const a=()=>s&&!o&&n.complete();r.subscribe(Re(n,l=>{o?.unsubscribe();let c=0;const u=i++;Vt(e(l,u)).subscribe(o=Re(n,d=>n.next(t?t(l,d,u,c++):d),()=>{o=null,a()}))},()=>{s=!0,a()}))})}function fE(e,t){return e===t}function ae(e){for(let t in e)if(e[t]===ae)return t;throw Error("Could not find renamed property on target object.")}function Es(e,t){for(const r in t)t.hasOwnProperty(r)&&!e.hasOwnProperty(r)&&(e[r]=t[r])}function ke(e){if("string"==typeof e)return e;if(Array.isArray(e))return"["+e.map(ke).join(", ")+"]";if(null==e)return""+e;if(e.overriddenName)return`${e.overriddenName}`;if(e.name)return`${e.name}`;const t=e.toString();if(null==t)return""+t;const r=t.indexOf("\n");return-1===r?t:t.substring(0,r)}function yc(e,t){return null==e||""===e?null===t?"":t:null==t||""===t?e:e+" "+t}const hE=ae({__forward_ref__:ae});function he(e){return e.__forward_ref__=he,e.toString=function(){return ke(this())},e}function U(e){return _c(e)?e():e}function _c(e){return"function"==typeof e&&e.hasOwnProperty(hE)&&e.__forward_ref__===he}function Cc(e){return e&&!!e.\u0275providers}const sp="https://g.co/ng/security#xss";class S extends Error{constructor(t,r){super(function Ms(e,t){return`NG0${Math.abs(e)}${t?": "+t:""}`}(t,r)),this.code=t}}function $(e){return"string"==typeof e?e:null==e?"":String(e)}function Dc(e,t){throw new S(-201,!1)}function xt(e,t){null==e&&function j(e,t,r,n){throw new Error(`ASSERTION ERROR: ${e}`+(null==n?"":` [Expected=> ${r} ${n} ${t} <=Actual]`))}(t,e,null,"!=")}function L(e){return{token:e.token,providedIn:e.providedIn||null,factory:e.factory,value:void 0}}function Kt(e){return{providers:e.providers||[],imports:e.imports||[]}}function Is(e){return ap(e,Ts)||ap(e,lp)}function ap(e,t){return e.hasOwnProperty(t)?e[t]:null}function Ss(e){return e&&(e.hasOwnProperty(bc)||e.hasOwnProperty(DE))?e[bc]:null}const Ts=ae({\u0275prov:ae}),bc=ae({\u0275inj:ae}),lp=ae({ngInjectableDef:ae}),DE=ae({ngInjectorDef:ae});var Y=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}(Y||{});let wc;function it(e){const t=wc;return wc=e,t}function up(e,t,r){const n=Is(e);return n&&"root"==n.providedIn?void 0===n.value?n.value=n.factory():n.value:r&Y.Optional?null:void 0!==t?t:void Dc(ke(e))}const de=globalThis,Zo={},Tc="__NG_DI_FLAG__",As="ngTempTokenPath",EE=/\n/gm,fp="__source";let Rr;function Hn(e){const t=Rr;return Rr=e,t}function SE(e,t=Y.Default){if(void 0===Rr)throw new S(-203,!1);return null===Rr?up(e,void 0,t):Rr.get(e,t&Y.Optional?null:void 0,t)}function F(e,t=Y.Default){return(function cp(){return wc}()||SE)(U(e),t)}function A(e,t=Y.Default){return F(e,xs(t))}function xs(e){return typeof e>"u"||"number"==typeof e?e:0|(e.optional&&8)|(e.host&&1)|(e.self&&2)|(e.skipSelf&&4)}function Ac(e){const t=[];for(let r=0;rt){s=i-1;break}}}for(;ii?"":o[d+1].toLowerCase();const m=8&n?g:null;if(m&&-1!==mp(m,c,0)||2&n&&c!==g){if(Ut(n))return!1;s=!0}}}}else{if(!s&&!Ut(n)&&!Ut(l))return!1;if(s&&Ut(l))continue;s=!1,n=l|1&n}}return Ut(n)||s}function Ut(e){return 0==(1&e)}function OE(e,t,r,n){if(null===t)return-1;let o=0;if(n||!r){let i=!1;for(;o-1)for(r++;r0?'="'+a+'"':"")+"]"}else 8&n?o+="."+s:4&n&&(o+=" "+s);else""!==o&&!Ut(s)&&(t+=wp(i,o),o=""),n=s,i=i||!Ut(n);r++}return""!==o&&(t+=wp(i,o)),t}function vt(e){return yn(()=>{const t=Mp(e),r={...t,decls:e.decls,vars:e.vars,template:e.template,consts:e.consts||null,ngContentSelectors:e.ngContentSelectors,onPush:e.changeDetection===Rs.OnPush,directiveDefs:null,pipeDefs:null,dependencies:t.standalone&&e.dependencies||null,getStandaloneInjector:null,signals:e.signals??!1,data:e.data||{},encapsulation:e.encapsulation||Ht.Emulated,styles:e.styles||te,_:null,schemas:e.schemas||null,tView:null,id:""};Ip(r);const n=e.dependencies;return r.directiveDefs=Ps(n,!1),r.pipeDefs=Ps(n,!0),r.id=function WE(e){let t=0;const r=[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 r)t=Math.imul(31,t)+o.charCodeAt(0)<<0;return t+=2147483648,"c"+t}(r),r})}function $E(e){return X(e)||He(e)}function GE(e){return null!==e}function Cn(e){return yn(()=>({type:e.type,bootstrap:e.bootstrap||te,declarations:e.declarations||te,imports:e.imports||te,exports:e.exports||te,transitiveCompileScopes:null,schemas:e.schemas||null,id:e.id||null}))}function Ep(e,t){if(null==e)return en;const r={};for(const n in e)if(e.hasOwnProperty(n)){let o=e[n],i=o;Array.isArray(o)&&(i=o[1],o=o[0]),r[o]=n,t&&(t[o]=i)}return r}function B(e){return yn(()=>{const t=Mp(e);return Ip(t),t})}function X(e){return e[Ns]||null}function He(e){return e[xc]||null}function Qe(e){return e[Rc]||null}function yt(e,t){const r=e[pp]||null;if(!r&&!0===t)throw new Error(`Type ${ke(e)} does not have '\u0275mod' property.`);return r}function Mp(e){const t={};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:t,inputTransforms:null,inputConfig:e.inputs||en,exportAs:e.exportAs||null,standalone:!0===e.standalone,signals:!0===e.signals,selectors:e.selectors||te,viewQuery:e.viewQuery||null,features:e.features||null,setInput:null,findHostDirectiveDefs:null,hostDirectives:null,inputs:Ep(e.inputs,t),outputs:Ep(e.outputs)}}function Ip(e){e.features?.forEach(t=>t(e))}function Ps(e,t){if(!e)return null;const r=t?Qe:$E;return()=>("function"==typeof e?e():e).map(n=>r(n)).filter(GE)}const we=0,T=1,z=2,_e=3,Bt=4,Jo=5,ze=6,Pr=7,Se=8,Un=9,Or=10,G=11,Ko=12,Sp=13,kr=14,Te=15,ei=16,Fr=17,tn=18,ti=19,Tp=20,Bn=21,Dn=22,Os=23,ks=24,Q=25,Pc=1,Ap=2,nn=7,Lr=9,Ue=11;function at(e){return Array.isArray(e)&&"object"==typeof e[Pc]}function Xe(e){return Array.isArray(e)&&!0===e[Pc]}function Oc(e){return 0!=(4&e.flags)}function ar(e){return e.componentOffset>-1}function Ls(e){return 1==(1&e.flags)}function $t(e){return!!e.template}function kc(e){return 0!=(512&e[z])}function lr(e,t){return e.hasOwnProperty(_n)?e[_n]:null}let KE=de.WeakRef??class JE{constructor(t){this.ref=t}deref(){return this.ref}},t0=0,rn=null,Vs=!1;function je(e){const t=rn;return rn=e,t}class Op{constructor(){this.id=t0++,this.ref=function e0(e){return new KE(e)}(this),this.producers=new Map,this.consumers=new Map,this.trackingVersion=0,this.valueVersion=0}consumerPollProducersForChange(){for(const[t,r]of this.producers){const n=r.producerNode.deref();if(null!=n&&r.atTrackingVersion===this.trackingVersion){if(n.producerPollStatus(r.seenValueVersion))return!0}else this.producers.delete(t),n?.consumers.delete(this.id)}return!1}producerMayHaveChanged(){const t=Vs;Vs=!0;try{for(const[r,n]of this.consumers){const o=n.consumerNode.deref();null!=o&&o.trackingVersion===n.atTrackingVersion?o.onConsumerDependencyMayHaveChanged():(this.consumers.delete(r),o?.producers.delete(this.id))}}finally{Vs=t}}producerAccessed(){if(Vs)throw new Error("");if(null===rn)return;let t=rn.producers.get(this.id);void 0===t?(t={consumerNode:rn.ref,producerNode:this.ref,seenValueVersion:this.valueVersion,atTrackingVersion:rn.trackingVersion},rn.producers.set(this.id,t),this.consumers.set(rn.id,t)):(t.seenValueVersion=this.valueVersion,t.atTrackingVersion=rn.trackingVersion)}get hasProducers(){return this.producers.size>0}get producerUpdatesAllowed(){return!1!==rn?.consumerAllowSignalWrites}producerPollStatus(t){return this.valueVersion!==t||(this.onProducerUpdateValueVersion(),this.valueVersion!==t)}}let kp=null;const Lp=()=>{};class s0 extends Op{constructor(t,r,n){super(),this.watch=t,this.schedule=r,this.dirty=!1,this.cleanupFn=Lp,this.registerOnCleanup=o=>{this.cleanupFn=o},this.consumerAllowSignalWrites=n}notify(){this.dirty||this.schedule(this),this.dirty=!0}onConsumerDependencyMayHaveChanged(){this.notify()}onProducerUpdateValueVersion(){}run(){if(this.dirty=!1,0!==this.trackingVersion&&!this.consumerPollProducersForChange())return;const t=je(this);this.trackingVersion++;try{this.cleanupFn(),this.cleanupFn=Lp,this.watch(this.registerOnCleanup)}finally{je(t)}}cleanup(){this.cleanupFn()}}class a0{constructor(t,r,n){this.previousValue=t,this.currentValue=r,this.firstChange=n}isFirstChange(){return this.firstChange}}function Rt(){return Vp}function Vp(e){return e.type.prototype.ngOnChanges&&(e.setInput=c0),l0}function l0(){const e=Hp(this),t=e?.current;if(t){const r=e.previous;if(r===en)e.previous=t;else for(let n in t)r[n]=t[n];e.current=null,this.ngOnChanges(t)}}function c0(e,t,r,n){const o=this.declaredInputs[r],i=Hp(e)||function u0(e,t){return e[jp]=t}(e,{previous:en,current:null}),s=i.current||(i.current={}),a=i.previous,l=a[o];s[o]=new a0(l&&l.currentValue,t,a===en),e[n]=t}Rt.ngInherit=!0;const jp="__ngSimpleChanges__";function Hp(e){return e[jp]||null}const on=function(e,t,r){};function pe(e){for(;Array.isArray(e);)e=e[we];return e}function Us(e,t){return pe(t[e])}function lt(e,t){return pe(t[e.index])}function $p(e,t){return e.data[t]}function _t(e,t){const r=t[e];return at(r)?r:r[we]}function $n(e,t){return null==t?null:e[t]}function Gp(e){e[Fr]=0}function m0(e){1024&e[z]||(e[z]|=1024,qp(e,1))}function zp(e){1024&e[z]&&(e[z]&=-1025,qp(e,-1))}function qp(e,t){let r=e[_e];if(null===r)return;r[Jo]+=t;let n=r;for(r=r[_e];null!==r&&(1===t&&1===n[Jo]||-1===t&&0===n[Jo]);)r[Jo]+=t,n=r,r=r[_e]}const H={lFrame:rg(null),bindingsEnabled:!0,skipHydrationRootTNode:null};function Yp(){return H.bindingsEnabled}function M(){return H.lFrame.lView}function J(){return H.lFrame.tView}function ne(e){return H.lFrame.contextLView=e,e[Se]}function re(e){return H.lFrame.contextLView=null,e}function Be(){let e=Qp();for(;null!==e&&64===e.type;)e=e.parent;return e}function Qp(){return H.lFrame.currentTNode}function sn(e,t){const r=H.lFrame;r.currentTNode=e,r.isParent=t}function Bc(){return H.lFrame.isParent}function $c(){H.lFrame.isParent=!1}function Je(){const e=H.lFrame;let t=e.bindingRootIndex;return-1===t&&(t=e.bindingRootIndex=e.tView.bindingStartIndex),t}function Hr(){return H.lFrame.bindingIndex++}function T0(e,t){const r=H.lFrame;r.bindingIndex=r.bindingRootIndex=e,Gc(t)}function Gc(e){H.lFrame.currentDirectiveIndex=e}function eg(){return H.lFrame.currentQueryIndex}function qc(e){H.lFrame.currentQueryIndex=e}function x0(e){const t=e[T];return 2===t.type?t.declTNode:1===t.type?e[ze]:null}function tg(e,t,r){if(r&Y.SkipSelf){let o=t,i=e;for(;!(o=o.parent,null!==o||r&Y.Host||(o=x0(i),null===o||(i=i[kr],10&o.type))););if(null===o)return!1;t=o,e=i}const n=H.lFrame=ng();return n.currentTNode=t,n.lView=e,!0}function Wc(e){const t=ng(),r=e[T];H.lFrame=t,t.currentTNode=r.firstChild,t.lView=e,t.tView=r,t.contextLView=e,t.bindingIndex=r.bindingStartIndex,t.inI18n=!1}function ng(){const e=H.lFrame,t=null===e?null:e.child;return null===t?rg(e):t}function rg(e){const t={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=t),t}function og(){const e=H.lFrame;return H.lFrame=e.parent,e.currentTNode=null,e.lView=null,e}const ig=og;function Zc(){const e=og();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 Ke(){return H.lFrame.selectedIndex}function cr(e){H.lFrame.selectedIndex=e}function be(){const e=H.lFrame;return $p(e.tView,e.selectedIndex)}let ag=!0;function Bs(){return ag}function Gn(e){ag=e}function $s(e,t){for(let r=t.directiveStart,n=t.directiveEnd;r=n)break}else t[l]<0&&(e[Fr]+=65536),(a>13>16&&(3&e[z])===t&&(e[z]+=8192,cg(a,i)):cg(a,i)}const Ur=-1;class oi{constructor(t,r,n){this.factory=t,this.resolving=!1,this.canSeeViewProviders=r,this.injectImpl=n}}function Xc(e){return e!==Ur}function ii(e){return 32767&e}function si(e,t){let r=function B0(e){return e>>16}(e),n=t;for(;r>0;)n=n[kr],r--;return n}let Jc=!0;function qs(e){const t=Jc;return Jc=e,t}const ug=255,dg=5;let $0=0;const an={};function Ws(e,t){const r=fg(e,t);if(-1!==r)return r;const n=t[T];n.firstCreatePass&&(e.injectorIndex=t.length,Kc(n.data,e),Kc(t,null),Kc(n.blueprint,null));const o=Zs(e,t),i=e.injectorIndex;if(Xc(o)){const s=ii(o),a=si(o,t),l=a[T].data;for(let c=0;c<8;c++)t[i+c]=a[s+c]|l[s+c]}return t[i+8]=o,i}function Kc(e,t){e.push(0,0,0,0,0,0,0,0,t)}function fg(e,t){return-1===e.injectorIndex||e.parent&&e.parent.injectorIndex===e.injectorIndex||null===t[e.injectorIndex+8]?-1:e.injectorIndex}function Zs(e,t){if(e.parent&&-1!==e.parent.injectorIndex)return e.parent.injectorIndex;let r=0,n=null,o=t;for(;null!==o;){if(n=_g(o),null===n)return Ur;if(r++,o=o[kr],-1!==n.injectorIndex)return n.injectorIndex|r<<16}return Ur}function eu(e,t,r){!function G0(e,t,r){let n;"string"==typeof r?n=r.charCodeAt(0)||0:r.hasOwnProperty(Qo)&&(n=r[Qo]),null==n&&(n=r[Qo]=$0++);const o=n&ug;t.data[e+(o>>dg)]|=1<=0?t&ug:Y0:t}(r);if("function"==typeof i){if(!tg(t,e,n))return n&Y.Host?hg(o,0,n):pg(t,r,n,o);try{let s;if(s=i(n),null!=s||n&Y.Optional)return s;Dc()}finally{ig()}}else if("number"==typeof i){let s=null,a=fg(e,t),l=Ur,c=n&Y.Host?t[Te][ze]:null;for((-1===a||n&Y.SkipSelf)&&(l=-1===a?Zs(e,t):t[a+8],l!==Ur&&yg(n,!1)?(s=t[T],a=ii(l),t=si(l,t)):a=-1);-1!==a;){const u=t[T];if(vg(i,a,u.data)){const d=q0(a,t,r,s,n,c);if(d!==an)return d}l=t[a+8],l!==Ur&&yg(n,t[T].data[a+8]===c)&&vg(i,a,t)?(s=u,a=ii(l),t=si(l,t)):a=-1}}return o}function q0(e,t,r,n,o,i){const s=t[T],a=s.data[e+8],u=Ys(a,s,r,null==n?ar(a)&&Jc:n!=s&&0!=(3&a.type),o&Y.Host&&i===a);return null!==u?ur(t,s,u,a):an}function Ys(e,t,r,n,o){const i=e.providerIndexes,s=t.data,a=1048575&i,l=e.directiveStart,u=i>>20,g=o?a+u:e.directiveEnd;for(let m=n?a:a+u;m=l&&y.type===r)return m}if(o){const m=s[l];if(m&&$t(m)&&m.type===r)return l}return null}function ur(e,t,r,n){let o=e[r];const i=t.data;if(function j0(e){return e instanceof oi}(o)){const s=o;s.resolving&&function pE(e,t){const r=t?`. Dependency path: ${t.join(" > ")} > ${e}`:"";throw new S(-200,`Circular dependency in DI detected for ${e}${r}`)}(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():$(e)}(i[r]));const a=qs(s.canSeeViewProviders);s.resolving=!0;const c=s.injectImpl?it(s.injectImpl):null;tg(e,n,Y.Default);try{o=e[r]=s.factory(void 0,i,e,n),t.firstCreatePass&&r>=n.directiveStart&&function L0(e,t,r){const{ngOnChanges:n,ngOnInit:o,ngDoCheck:i}=t.type.prototype;if(n){const s=Vp(t);(r.preOrderHooks??=[]).push(e,s),(r.preOrderCheckHooks??=[]).push(e,s)}o&&(r.preOrderHooks??=[]).push(0-e,o),i&&((r.preOrderHooks??=[]).push(e,i),(r.preOrderCheckHooks??=[]).push(e,i))}(r,i[r],t)}finally{null!==c&&it(c),qs(a),s.resolving=!1,ig()}}return o}function vg(e,t,r){return!!(r[t+(e>>dg)]&1<{const t=e.prototype.constructor,r=t[_n]||tu(t),n=Object.prototype;let o=Object.getPrototypeOf(e.prototype).constructor;for(;o&&o!==n;){const i=o[_n]||tu(o);if(i&&i!==r)return i;o=Object.getPrototypeOf(o)}return i=>new i})}function tu(e){return _c(e)?()=>{const t=tu(U(e));return t&&t()}:lr(e)}function _g(e){const t=e[T],r=t.type;return 2===r?t.declTNode:1===r?e[ze]:null}const $r="__parameters__";function zr(e,t,r){return yn(()=>{const n=function nu(e){return function(...r){if(e){const n=e(...r);for(const o in n)this[o]=n[o]}}}(t);function o(...i){if(this instanceof o)return n.apply(this,i),this;const s=new o(...i);return a.annotation=s,a;function a(l,c,u){const d=l.hasOwnProperty($r)?l[$r]:Object.defineProperty(l,$r,{value:[]})[$r];for(;d.length<=u;)d.push(null);return(d[u]=d[u]||[]).push(s),l}}return r&&(o.prototype=Object.create(r.prototype)),o.prototype.ngMetadataName=e,o.annotationCls=o,o})}function Wr(e,t){e.forEach(r=>Array.isArray(r)?Wr(r,t):t(r))}function Dg(e,t,r){t>=e.length?e.push(r):e.splice(t,0,r)}function Xs(e,t){return t>=e.length-1?e.pop():e.splice(t,1)[0]}function Ct(e,t,r){let n=Zr(e,t);return n>=0?e[1|n]=r:(n=~n,function rM(e,t,r,n){let o=e.length;if(o==t)e.push(r,n);else if(1===o)e.push(n,e[0]),e[0]=r;else{for(o--,e.push(e[o-1],e[o]);o>t;)e[o]=e[o-2],o--;e[t]=r,e[t+1]=n}}(e,n,t,r)),n}function ru(e,t){const r=Zr(e,t);if(r>=0)return e[1|r]}function Zr(e,t){return function bg(e,t,r){let n=0,o=e.length>>r;for(;o!==n;){const i=n+(o-n>>1),s=e[i<t?o=i:n=i+1}return~(o<|^->||--!>|)/g,IM="\u200b$1\u200b";const lu=new Map;let SM=0;const uu="__ngContext__";function qe(e,t){at(t)?(e[uu]=t[ti],function AM(e){lu.set(e[ti],e)}(t)):e[uu]=t}let du;function fu(e,t){return du(e,t)}function fi(e){const t=e[_e];return Xe(t)?t[_e]:t}function Bg(e){return Gg(e[Ko])}function $g(e){return Gg(e[Bt])}function Gg(e){for(;null!==e&&!Xe(e);)e=e[Bt];return e}function Xr(e,t,r,n,o){if(null!=n){let i,s=!1;Xe(n)?i=n:at(n)&&(s=!0,n=n[we]);const a=pe(n);0===e&&null!==r?null==o?Zg(t,r,a):dr(t,r,a,o||null,!0):1===e&&null!==r?dr(t,r,a,o||null,!0):2===e?function fa(e,t,r){const n=ua(e,t);n&&function ZM(e,t,r,n){e.removeChild(t,r,n)}(e,n,t,r)}(t,a,s):3===e&&t.destroyNode(a),null!=i&&function XM(e,t,r,n,o){const i=r[nn];i!==pe(r)&&Xr(t,e,n,i,o);for(let a=Ue;at.replace(MM,IM))}(t))}function la(e,t,r){return e.createElement(t,r)}function qg(e,t){const r=e[Lr],n=r.indexOf(t);zp(t),r.splice(n,1)}function ca(e,t){if(e.length<=Ue)return;const r=Ue+t,n=e[r];if(n){const o=n[ei];null!==o&&o!==e&&qg(o,n),t>0&&(e[r-1][Bt]=n[Bt]);const i=Xs(e,Ue+t);!function HM(e,t){pi(e,t,t[G],2,null,null),t[we]=null,t[ze]=null}(n[T],n);const s=i[tn];null!==s&&s.detachView(i[T]),n[_e]=null,n[Bt]=null,n[z]&=-129}return n}function pu(e,t){if(!(256&t[z])){const r=t[G];t[Os]?.destroy(),t[ks]?.destroy(),r.destroyNode&&pi(e,t,r,3,null,null),function $M(e){let t=e[Ko];if(!t)return gu(e[T],e);for(;t;){let r=null;if(at(t))r=t[Ko];else{const n=t[Ue];n&&(r=n)}if(!r){for(;t&&!t[Bt]&&t!==e;)at(t)&&gu(t[T],t),t=t[_e];null===t&&(t=e),at(t)&&gu(t[T],t),r=t&&t[Bt]}t=r}}(t)}}function gu(e,t){if(!(256&t[z])){t[z]&=-129,t[z]|=256,function WM(e,t){let r;if(null!=e&&null!=(r=e.destroyHooks))for(let n=0;n=0?n[s]():n[-s].unsubscribe(),i+=2}else r[i].call(n[r[i+1]]);null!==n&&(t[Pr]=null);const o=t[Bn];if(null!==o){t[Bn]=null;for(let i=0;i-1){const{encapsulation:i}=e.data[n.directiveStart+o];if(i===Ht.None||i===Ht.Emulated)return null}return lt(n,r)}}(e,t.parent,r)}function dr(e,t,r,n,o){e.insertBefore(t,r,n,o)}function Zg(e,t,r){e.appendChild(t,r)}function Yg(e,t,r,n,o){null!==n?dr(e,t,r,n,o):Zg(e,t,r)}function ua(e,t){return e.parentNode(t)}let vu,Du,pa,Jg=function Xg(e,t,r){return 40&e.type?lt(e,r):null};function da(e,t,r,n){const o=mu(e,n,t),i=t[G],a=function Qg(e,t,r){return Jg(e,t,r)}(n.parent||t[ze],n,t);if(null!=o)if(Array.isArray(r))for(let l=0;le,createScript:e=>e,createScriptURL:e=>e})}catch{}return pa}()?.createScriptURL(e)||e}class lm{constructor(t){this.changingThisBreaksApplicationSecurity=t}toString(){return`SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity} (see ${sp})`}}function qn(e){return e instanceof lm?e.changingThisBreaksApplicationSecurity:e}function gi(e,t){const r=function cI(e){return e instanceof lm&&e.getTypeName()||null}(e);if(null!=r&&r!==t){if("ResourceURL"===r&&"URL"===t)return!0;throw new Error(`Required a safe ${t}, got a ${r} (see ${sp})`)}return r===t}const hI=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:\/?#]*(?:[\/?#]|$))/i;var eo=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}(eo||{});function to(e){const t=vi();return t?t.sanitize(eo.URL,e)||"":gi(e,"URL")?qn(e):function wu(e){return(e=String(e)).match(hI)?e:"unsafe:"+e}($(e))}function gm(e){const t=vi();if(t)return am(t.sanitize(eo.RESOURCE_URL,e)||"");if(gi(e,"ResourceURL"))return am(qn(e));throw new S(904,!1)}function vi(){const e=M();return e&&e[Or].sanitizer}class x{constructor(t,r){this._desc=t,this.ngMetadataName="InjectionToken",this.\u0275prov=void 0,"number"==typeof r?this.__NG_ELEMENT_ID__=r:void 0!==r&&(this.\u0275prov=L({token:this,providedIn:r.providedIn||"root",factory:r.factory}))}get multi(){return this}toString(){return`InjectionToken ${this._desc}`}}const yi=new x("ENVIRONMENT_INITIALIZER"),vm=new x("INJECTOR",-1),ym=new x("INJECTOR_DEF_TYPES");class Su{get(t,r=Zo){if(r===Zo){const n=new Error(`NullInjectorError: No provider for ${ke(t)}!`);throw n.name="NullInjectorError",n}return r}}function Tu(e){return{\u0275providers:e}}function _m(...e){return{\u0275providers:Cm(0,e),\u0275fromNgModule:!0}}function Cm(e,...t){const r=[],n=new Set;let o;const i=s=>{r.push(s)};return Wr(t,s=>{const a=s;ma(a,i,[],n)&&(o||=[],o.push(a))}),void 0!==o&&Dm(o,i),r}function Dm(e,t){for(let r=0;r{t(i,n)})}}function ma(e,t,r,n){if(!(e=U(e)))return!1;let o=null,i=Ss(e);const s=!i&&X(e);if(i||s){if(s&&!s.standalone)return!1;o=e}else{const l=e.ngModule;if(i=Ss(l),!i)return!1;o=l}const a=n.has(o);if(s){if(a)return!1;if(n.add(o),s.dependencies){const l="function"==typeof s.dependencies?s.dependencies():s.dependencies;for(const c of l)ma(c,t,r,n)}}else{if(!i)return!1;{if(null!=i.imports&&!a){let c;n.add(o);try{Wr(i.imports,u=>{ma(u,t,r,n)&&(c||=[],c.push(u))})}finally{}void 0!==c&&Dm(c,t)}if(!a){const c=lr(o)||(()=>new o);t({provide:o,useFactory:c,deps:te},o),t({provide:ym,useValue:o,multi:!0},o),t({provide:yi,useValue:()=>F(o),multi:!0},o)}const l=i.providers;if(null!=l&&!a){const c=e;Au(l,u=>{t(u,c)})}}}return o!==e&&void 0!==e.providers}function Au(e,t){for(let r of e)Cc(r)&&(r=r.\u0275providers),Array.isArray(r)?Au(r,t):t(r)}const II=ae({provide:String,useValue:ae});function xu(e){return null!==e&&"object"==typeof e&&II in e}function fr(e){return"function"==typeof e}const Ru=new x("Set Injector scope."),va={},TI={};let Nu;function ya(){return void 0===Nu&&(Nu=new Su),Nu}class Dt{}class _a extends Dt{get destroyed(){return this._destroyed}constructor(t,r,n,o){super(),this.parent=r,this.source=n,this.scopes=o,this.records=new Map,this._ngOnDestroyHooks=new Set,this._onDestroyHooks=[],this._destroyed=!1,Ou(t,s=>this.processProvider(s)),this.records.set(vm,no(void 0,this)),o.has("environment")&&this.records.set(Dt,no(void 0,this));const i=this.records.get(Ru);null!=i&&"string"==typeof i.value&&this.scopes.add(i.value),this.injectorDefTypes=new Set(this.get(ym.multi,te,Y.Self))}destroy(){this.assertNotDestroyed(),this._destroyed=!0;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()}}onDestroy(t){return this.assertNotDestroyed(),this._onDestroyHooks.push(t),()=>this.removeOnDestroy(t)}runInContext(t){this.assertNotDestroyed();const r=Hn(this),n=it(void 0);try{return t()}finally{Hn(r),it(n)}}get(t,r=Zo,n=Y.Default){if(this.assertNotDestroyed(),t.hasOwnProperty(gp))return t[gp](this);n=xs(n);const i=Hn(this),s=it(void 0);try{if(!(n&Y.SkipSelf)){let l=this.records.get(t);if(void 0===l){const c=function PI(e){return"function"==typeof e||"object"==typeof e&&e instanceof x}(t)&&Is(t);l=c&&this.injectableDefInScope(c)?no(Pu(t),va):null,this.records.set(t,l)}if(null!=l)return this.hydrate(t,l)}return(n&Y.Self?ya():this.parent).get(t,r=n&Y.Optional&&r===Zo?null:r)}catch(a){if("NullInjectorError"===a.name){if((a[As]=a[As]||[]).unshift(ke(t)),i)throw a;return function AE(e,t,r,n){const o=e[As];throw t[fp]&&o.unshift(t[fp]),e.message=function xE(e,t,r,n=null){e=e&&"\n"===e.charAt(0)&&"\u0275"==e.charAt(1)?e.slice(2):e;let o=ke(t);if(Array.isArray(t))o=t.map(ke).join(" -> ");else if("object"==typeof t){let i=[];for(let s in t)if(t.hasOwnProperty(s)){let a=t[s];i.push(s+":"+("string"==typeof a?JSON.stringify(a):ke(a)))}o=`{${i.join(", ")}}`}return`${r}${n?"("+n+")":""}[${o}]: ${e.replace(EE,"\n ")}`}("\n"+e.message,o,r,n),e.ngTokenPath=o,e[As]=null,e}(a,t,"R3InjectorError",this.source)}throw a}finally{it(s),Hn(i)}}resolveInjectorInitializers(){const t=Hn(this),r=it(void 0);try{const o=this.get(yi.multi,te,Y.Self);for(const i of o)i()}finally{Hn(t),it(r)}}toString(){const t=[],r=this.records;for(const n of r.keys())t.push(ke(n));return`R3Injector[${t.join(", ")}]`}assertNotDestroyed(){if(this._destroyed)throw new S(205,!1)}processProvider(t){let r=fr(t=U(t))?t:U(t&&t.provide);const n=function xI(e){return xu(e)?no(void 0,e.useValue):no(Em(e),va)}(t);if(fr(t)||!0!==t.multi)this.records.get(r);else{let o=this.records.get(r);o||(o=no(void 0,va,!0),o.factory=()=>Ac(o.multi),this.records.set(r,o)),r=t,o.multi.push(t)}this.records.set(r,n)}hydrate(t,r){return r.value===va&&(r.value=TI,r.value=r.factory()),"object"==typeof r.value&&r.value&&function NI(e){return null!==e&&"object"==typeof e&&"function"==typeof e.ngOnDestroy}(r.value)&&this._ngOnDestroyHooks.add(r.value),r.value}injectableDefInScope(t){if(!t.providedIn)return!1;const r=U(t.providedIn);return"string"==typeof r?"any"===r||this.scopes.has(r):this.injectorDefTypes.has(r)}removeOnDestroy(t){const r=this._onDestroyHooks.indexOf(t);-1!==r&&this._onDestroyHooks.splice(r,1)}}function Pu(e){const t=Is(e),r=null!==t?t.factory:lr(e);if(null!==r)return r;if(e instanceof x)throw new S(204,!1);if(e instanceof Function)return function AI(e){const t=e.length;if(t>0)throw function ci(e,t){const r=[];for(let n=0;nr.factory(e):()=>new e}(e);throw new S(204,!1)}function Em(e,t,r){let n;if(fr(e)){const o=U(e);return lr(o)||Pu(o)}if(xu(e))n=()=>U(e.useValue);else if(function wm(e){return!(!e||!e.useFactory)}(e))n=()=>e.useFactory(...Ac(e.deps||[]));else if(function bm(e){return!(!e||!e.useExisting)}(e))n=()=>F(U(e.useExisting));else{const o=U(e&&(e.useClass||e.provide));if(!function RI(e){return!!e.deps}(e))return lr(o)||Pu(o);n=()=>new o(...Ac(e.deps))}return n}function no(e,t,r=!1){return{factory:e,value:t,multi:r?[]:void 0}}function Ou(e,t){for(const r of e)Array.isArray(r)?Ou(r,t):r&&Cc(r)?Ou(r.\u0275providers,t):t(r)}const Ca=new x("AppId",{providedIn:"root",factory:()=>OI}),OI="ng",Mm=new x("Platform Initializer"),hr=new x("Platform ID",{providedIn:"platform",factory:()=>"unknown"}),Im=new x("CSP nonce",{providedIn:"root",factory:()=>function Kr(){if(void 0!==Du)return Du;if(typeof document<"u")return document;throw new S(210,!1)}().body?.querySelector("[ngCspNonce]")?.getAttribute("ngCspNonce")||null});let Sm=(e,t,r)=>null;function Bu(e,t,r=!1){return Sm(e,t,r)}class GI{}class xm{}class qI{resolveComponentFactory(t){throw function zI(e){const t=Error(`No component factory found for ${ke(e)}.`);return t.ngComponent=e,t}(t)}}let Ia=(()=>{class t{}return t.NULL=new qI,t})();function WI(){return io(Be(),M())}function io(e,t){return new bt(lt(e,t))}let bt=(()=>{class t{constructor(n){this.nativeElement=n}}return t.__NG_ELEMENT_ID__=WI,t})();function ZI(e){return e instanceof bt?e.nativeElement:e}class Nm{}let Mn=(()=>{class t{constructor(){this.destroyNode=null}}return t.__NG_ELEMENT_ID__=()=>function YI(){const e=M(),r=_t(Be().index,e);return(at(r)?r:e)[G]}(),t})(),QI=(()=>{var e;class t{}return(e=t).\u0275prov=L({token:e,providedIn:"root",factory:()=>null}),t})();class Di{constructor(t){this.full=t,this.major=t.split(".")[0],this.minor=t.split(".")[1],this.patch=t.split(".").slice(2).join(".")}}const XI=new Di("16.2.3"),zu={};function Fm(e,t=null,r=null,n){const o=Lm(e,t,r,n);return o.resolveInjectorInitializers(),o}function Lm(e,t=null,r=null,n,o=new Set){const i=[r||te,_m(e)];return n=n||("object"==typeof e?void 0:ke(e)),new _a(i,t||ya(),n||null,o)}let wt=(()=>{var e;class t{static create(n,o){if(Array.isArray(n))return Fm({name:""},o,n,"");{const i=n.name??"";return Fm({name:i},n.parent,n.providers,i)}}}return(e=t).THROW_IF_NOT_FOUND=Zo,e.NULL=new Su,e.\u0275prov=L({token:e,providedIn:"any",factory:()=>F(vm)}),e.__NG_ELEMENT_ID__=-1,t})();function Zu(e){return t=>{setTimeout(e,void 0,t)}}const Ee=class oS extends Lt{constructor(t=!1){super(),this.__isAsync=t}emit(t){super.next(t)}subscribe(t,r,n){let o=t,i=r||(()=>null),s=n;if(t&&"object"==typeof t){const l=t;o=l.next?.bind(l),i=l.error?.bind(l),s=l.complete?.bind(l)}this.__isAsync&&(i=Zu(i),o&&(o=Zu(o)),s&&(s=Zu(s)));const a=super.subscribe({next:o,error:i,complete:s});return t instanceof gt&&t.add(a),a}};function Vm(...e){}class ge{constructor({enableLongStackTrace:t=!1,shouldCoalesceEventChangeDetection:r=!1,shouldCoalesceRunChangeDetection:n=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new Ee(!1),this.onMicrotaskEmpty=new Ee(!1),this.onStable=new Ee(!1),this.onError=new Ee(!1),typeof Zone>"u")throw new S(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)),t&&Zone.longStackTraceZoneSpec&&(o._inner=o._inner.fork(Zone.longStackTraceZoneSpec)),o.shouldCoalesceEventChangeDetection=!n&&r,o.shouldCoalesceRunChangeDetection=n,o.lastRequestAnimationFrameId=-1,o.nativeRequestAnimationFrame=function iS(){const e="function"==typeof de.requestAnimationFrame;let t=de[e?"requestAnimationFrame":"setTimeout"],r=de[e?"cancelAnimationFrame":"clearTimeout"];if(typeof Zone<"u"&&t&&r){const n=t[Zone.__symbol__("OriginalDelegate")];n&&(t=n);const o=r[Zone.__symbol__("OriginalDelegate")];o&&(r=o)}return{nativeRequestAnimationFrame:t,nativeCancelAnimationFrame:r}}().nativeRequestAnimationFrame,function lS(e){const t=()=>{!function aS(e){e.isCheckStableRunning||-1!==e.lastRequestAnimationFrameId||(e.lastRequestAnimationFrameId=e.nativeRequestAnimationFrame.call(de,()=>{e.fakeTopEventTask||(e.fakeTopEventTask=Zone.root.scheduleEventTask("fakeTopEventTask",()=>{e.lastRequestAnimationFrameId=-1,Qu(e),e.isCheckStableRunning=!0,Yu(e),e.isCheckStableRunning=!1},void 0,()=>{},()=>{})),e.fakeTopEventTask.invoke()}),Qu(e))}(e)};e._inner=e._inner.fork({name:"angular",properties:{isAngularZone:!0},onInvokeTask:(r,n,o,i,s,a)=>{try{return jm(e),r.invokeTask(o,i,s,a)}finally{(e.shouldCoalesceEventChangeDetection&&"eventTask"===i.type||e.shouldCoalesceRunChangeDetection)&&t(),Hm(e)}},onInvoke:(r,n,o,i,s,a,l)=>{try{return jm(e),r.invoke(o,i,s,a,l)}finally{e.shouldCoalesceRunChangeDetection&&t(),Hm(e)}},onHasTask:(r,n,o,i)=>{r.hasTask(o,i),n===o&&("microTask"==i.change?(e._hasPendingMicrotasks=i.microTask,Qu(e),Yu(e)):"macroTask"==i.change&&(e.hasPendingMacrotasks=i.macroTask))},onHandleError:(r,n,o,i)=>(r.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(!ge.isInAngularZone())throw new S(909,!1)}static assertNotInAngularZone(){if(ge.isInAngularZone())throw new S(909,!1)}run(t,r,n){return this._inner.run(t,r,n)}runTask(t,r,n,o){const i=this._inner,s=i.scheduleEventTask("NgZoneEvent: "+o,t,sS,Vm,Vm);try{return i.runTask(s,r,n)}finally{i.cancelTask(s)}}runGuarded(t,r,n){return this._inner.runGuarded(t,r,n)}runOutsideAngular(t){return this._outer.run(t)}}const sS={};function Yu(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 Qu(e){e.hasPendingMicrotasks=!!(e._hasPendingMicrotasks||(e.shouldCoalesceEventChangeDetection||e.shouldCoalesceRunChangeDetection)&&-1!==e.lastRequestAnimationFrameId)}function jm(e){e._nesting++,e.isStable&&(e.isStable=!1,e.onUnstable.emit(null))}function Hm(e){e._nesting--,Yu(e)}const Um=new x("",{providedIn:"root",factory:Bm});function Bm(){const e=A(ge);let t=!0;return function uE(...e){const t=Wo(e),r=function rE(e,t){return"number"==typeof mc(e)?e.pop():t}(e,1/0),n=e;return n.length?1===n.length?Vt(n[0]):xr(r)(Ne(n,t)):Jt}(new Ie(o=>{t=e.isStable&&!e.hasPendingMacrotasks&&!e.hasPendingMicrotasks,e.runOutsideAngular(()=>{o.next(t),o.complete()})}),new Ie(o=>{let i;e.runOutsideAngular(()=>{i=e.onStable.subscribe(()=>{ge.assertNotInAngularZone(),queueMicrotask(()=>{!t&&!e.hasPendingMacrotasks&&!e.hasPendingMicrotasks&&(t=!0,o.next(!0))})})});const s=e.onUnstable.subscribe(()=>{ge.assertInAngularZone(),t&&(t=!1,e.runOutsideAngular(()=>{o.next(!1)}))});return()=>{i.unsubscribe(),s.unsubscribe()}}).pipe(ip()))}function In(e){return e instanceof Function?e():e}let Xu=(()=>{var e;class t{constructor(){this.callbacks=new Set,this.deferredCallbacks=new Set,this.renderDepth=0,this.runningCallbacks=!1}begin(){if(this.runningCallbacks)throw new S(102,!1);this.renderDepth++}end(){if(this.renderDepth--,0===this.renderDepth)try{this.runningCallbacks=!0;for(const n of this.callbacks)n.invoke()}finally{this.runningCallbacks=!1;for(const n of this.deferredCallbacks)this.callbacks.add(n);this.deferredCallbacks.clear()}}register(n){(this.runningCallbacks?this.deferredCallbacks:this.callbacks).add(n)}unregister(n){this.callbacks.delete(n),this.deferredCallbacks.delete(n)}ngOnDestroy(){this.callbacks.clear(),this.deferredCallbacks.clear()}}return(e=t).\u0275prov=L({token:e,providedIn:"root",factory:()=>new e}),t})();function bi(e){for(;e;){e[z]|=64;const t=fi(e);if(kc(e)&&!t)return e;e=t}return null}function Ju(e){return e.ngOriginalError}class pr{constructor(){this._console=console}handleError(t){const r=this._findOriginalError(t);this._console.error("ERROR",t),r&&this._console.error("ORIGINAL ERROR",r)}_findOriginalError(t){let r=t&&Ju(t);for(;r&&Ju(r);)r=Ju(r);return r||null}}const Wm=new x("",{providedIn:"root",factory:()=>!1});class Xm extends Op{constructor(){super(...arguments),this.consumerAllowSignalWrites=!1,this._lView=null}set lView(t){this._lView=t}onConsumerDependencyMayHaveChanged(){bi(this._lView)}onProducerUpdateValueVersion(){}get hasReadASignal(){return this.hasProducers}runInContext(t,r,n){const o=je(this);this.trackingVersion++;try{t(r,n)}finally{je(o)}}destroy(){this.trackingVersion++}}let Ta=null;function Jm(){return Ta??=new Xm,Ta}function Km(e,t){return e[t]??Jm()}function ev(e,t){const r=Jm();r.hasReadASignal&&(e[t]=Ta,r.lView=e,Ta=new Xm)}const q={};function _(e){tv(J(),M(),Ke()+e,!1)}function tv(e,t,r,n){if(!n)if(3==(3&t[z])){const i=e.preOrderCheckHooks;null!==i&&Gs(t,i,r)}else{const i=e.preOrderHooks;null!==i&&zs(t,i,0,r)}cr(r)}function I(e,t=Y.Default){const r=M();return null===r?F(e,t):gg(Be(),r,U(e),t)}function Aa(e,t,r,n,o,i,s,a,l,c,u){const d=t.blueprint.slice();return d[we]=o,d[z]=140|n,(null!==c||e&&2048&e[z])&&(d[z]|=2048),Gp(d),d[_e]=d[kr]=e,d[Se]=r,d[Or]=s||e&&e[Or],d[G]=a||e&&e[G],d[Un]=l||e&&e[Un]||null,d[ze]=i,d[ti]=function TM(){return SM++}(),d[Dn]=u,d[Tp]=c,d[Te]=2==t.type?e[Te]:d,d}function lo(e,t,r,n,o){let i=e.data[t];if(null===i)i=function Ku(e,t,r,n,o){const i=Qp(),s=Bc(),l=e.data[t]=function IS(e,t,r,n,o,i){let s=t?t.injectorIndex:-1,a=0;return function jr(){return null!==H.skipHydrationRootTNode}()&&(a|=128),{type:r,index:n,insertBeforeIndex:null,injectorIndex:s,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,componentOffset:-1,propertyBindings:null,flags:a,providerIndexes:0,value:o,attrs:i,mergedAttrs:null,localNames:null,initialInputs:void 0,inputs:null,outputs:null,tView:null,next:null,prev:null,projectionNext:null,child:null,parent:t,projection:null,styles:null,stylesWithoutHost:null,residualStyles:void 0,classes:null,classesWithoutHost:null,residualClasses:void 0,classBindings:0,styleBindings:0}}(0,s?i:i&&i.parent,r,t,n,o);return null===e.firstChild&&(e.firstChild=l),null!==i&&(s?null==i.child&&null!==l.parent&&(i.child=l):null===i.next&&(i.next=l,l.prev=i)),l}(e,t,r,n,o),function S0(){return H.lFrame.inI18n}()&&(i.flags|=32);else if(64&i.type){i.type=r,i.value=n,i.attrs=o;const s=function ri(){const e=H.lFrame,t=e.currentTNode;return e.isParent?t:t.parent}();i.injectorIndex=null===s?-1:s.injectorIndex}return sn(i,!0),i}function wi(e,t,r,n){if(0===r)return-1;const o=t.length;for(let i=0;iQ&&tv(e,t,Q,!1),on(a?2:0,o),a)i.runInContext(r,n,o);else{const c=je(null);try{r(n,o)}finally{je(c)}}}finally{a&&null===t[Os]&&ev(t,Os),cr(s),on(a?3:1,o)}}function ed(e,t,r){if(Oc(t)){const n=je(null);try{const i=t.directiveEnd;for(let s=t.directiveStart;snull;function sv(e,t,r,n){for(let o in e)if(e.hasOwnProperty(o)){r=null===r?{}:r;const i=e[o];null===n?av(r,t,o,i):n.hasOwnProperty(o)&&av(r,t,n[o],i)}return r}function av(e,t,r,n){e.hasOwnProperty(r)?e[r].push(t,n):e[r]=[t,n]}function Et(e,t,r,n,o,i,s,a){const l=lt(t,r);let u,c=t.inputs;!a&&null!=c&&(u=c[n])?(ld(e,r,u,n,o),ar(t)&&function AS(e,t){const r=_t(t,e);16&r[z]||(r[z]|=64)}(r,t.index)):3&t.type&&(n=function TS(e){return"class"===e?"className":"for"===e?"htmlFor":"formaction"===e?"formAction":"innerHtml"===e?"innerHTML":"readonly"===e?"readOnly":"tabindex"===e?"tabIndex":e}(n),o=null!=s?s(o,t.value||"",n):o,i.setProperty(l,n,o))}function od(e,t,r,n){if(Yp()){const o=null===n?null:{"":-1},i=function kS(e,t){const r=e.directiveRegistry;let n=null,o=null;if(r)for(let i=0;i0;){const r=e[--t];if("number"==typeof r&&r<0)return r}return 0})(s)!=a&&s.push(a),s.push(r,n,i)}}(e,t,n,wi(e,r,o.hostVars,q),o)}function ln(e,t,r,n,o,i){const s=lt(e,t);!function sd(e,t,r,n,o,i,s){if(null==i)e.removeAttribute(t,o,r);else{const a=null==s?$(i):s(i,n||"",o);e.setAttribute(t,o,a,r)}}(t[G],s,i,e.value,r,n,o)}function US(e,t,r,n,o,i){const s=i[t];if(null!==s)for(let a=0;a{var e;class t{constructor(){this.all=new Set,this.queue=new Map}create(n,o,i){const s=typeof Zone>"u"?null:Zone.current,a=new s0(n,u=>{this.all.has(u)&&this.queue.set(u,s)},i);let l;this.all.add(a),a.notify();const c=()=>{a.cleanup(),l?.(),this.all.delete(a),this.queue.delete(a)};return l=o?.onDestroy(c),{destroy:c}}flush(){if(0!==this.queue.size)for(const[n,o]of this.queue)this.queue.delete(n),o?o.run(()=>n.run()):n.run()}get isQueueEmpty(){return 0===this.queue.size}}return(e=t).\u0275prov=L({token:e,providedIn:"root",factory:()=>new e}),t})();function Ra(e,t,r){let n=r?e.styles:null,o=r?e.classes:null,i=0;if(null!==t)for(let s=0;s0){Cv(e,1);const o=e[T].components;null!==o&&bv(e,o,1)}}function bv(e,t,r){for(let n=0;n-1&&(ca(t,n),Xs(r,n))}this._attachedToViewContainer=!1}pu(this._lView[T],this._lView)}onDestroy(t){!function Wp(e,t){if(256==(256&e[z]))throw new S(911,!1);null===e[Bn]&&(e[Bn]=[]),e[Bn].push(t)}(this._lView,t)}markForCheck(){bi(this._cdRefInjectingView||this._lView)}detach(){this._lView[z]&=-129}reattach(){this._lView[z]|=128}detectChanges(){Na(this._lView[T],this._lView,this.context)}checkNoChanges(){}attachToViewContainerRef(){if(this._appRef)throw new S(902,!1);this._attachedToViewContainer=!0}detachFromAppRef(){this._appRef=null,function BM(e,t){pi(e,t,t[G],2,null,null)}(this._lView[T],this._lView)}attachToAppRef(t){if(this._attachedToViewContainer)throw new S(902,!1);this._appRef=t}}class QS extends Mi{constructor(t){super(t),this._view=t}detectChanges(){const t=this._view;Na(t[T],t,t[Se],!1)}checkNoChanges(){}get context(){return null}}class wv extends Ia{constructor(t){super(),this.ngModule=t}resolveComponentFactory(t){const r=X(t);return new Ii(r,this.ngModule)}}function Ev(e){const t=[];for(let r in e)e.hasOwnProperty(r)&&t.push({propName:e[r],templateName:r});return t}class JS{constructor(t,r){this.injector=t,this.parentInjector=r}get(t,r,n){n=xs(n);const o=this.injector.get(t,zu,n);return o!==zu||r===zu?o:this.parentInjector.get(t,r,n)}}class Ii extends xm{get inputs(){const t=this.componentDef,r=t.inputTransforms,n=Ev(t.inputs);if(null!==r)for(const o of n)r.hasOwnProperty(o.propName)&&(o.transform=r[o.propName]);return n}get outputs(){return Ev(this.componentDef.outputs)}constructor(t,r){super(),this.componentDef=t,this.ngModule=r,this.componentType=t.type,this.selector=function HE(e){return e.map(jE).join(",")}(t.selectors),this.ngContentSelectors=t.ngContentSelectors?t.ngContentSelectors:[],this.isBoundToModule=!!r}create(t,r,n,o){let i=(o=o||this.ngModule)instanceof Dt?o:o?.injector;i&&null!==this.componentDef.getStandaloneInjector&&(i=this.componentDef.getStandaloneInjector(i)||i);const s=i?new JS(t,i):t,a=s.get(Nm,null);if(null===a)throw new S(407,!1);const d={rendererFactory:a,sanitizer:s.get(QI,null),effectManager:s.get(vv,null),afterRenderEventManager:s.get(Xu,null)},g=a.createRenderer(null,this.componentDef),m=this.componentDef.selectors[0][0]||"div",y=n?function DS(e,t,r,n){const i=n.get(Wm,!1)||r===Ht.ShadowDom,s=e.selectRootElement(t,i);return function bS(e){iv(e)}(s),s}(g,n,this.componentDef.encapsulation,s):la(g,m,function XS(e){const t=e.toLowerCase();return"svg"===t?"svg":"math"===t?"math":null}(m)),E=this.componentDef.signals?4608:this.componentDef.onPush?576:528;let D=null;null!==y&&(D=Bu(y,s,!0));const P=rd(0,null,null,1,0,null,null,null,null,null,null),N=Aa(null,P,null,E,null,null,d,g,s,null,D);let Z,Ge;Wc(N);try{const Tt=this.componentDef;let Ar,ic=null;Tt.findHostDirectiveDefs?(Ar=[],ic=new Map,Tt.findHostDirectiveDefs(Tt,Ar,ic),Ar.push(Tt)):Ar=[Tt];const uj=function eT(e,t){const r=e[T],n=Q;return e[n]=t,lo(r,n,2,"#host",null)}(N,y),dj=function tT(e,t,r,n,o,i,s){const a=o[T];!function nT(e,t,r,n){for(const o of e)t.mergedAttrs=Xo(t.mergedAttrs,o.hostAttrs);null!==t.mergedAttrs&&(Ra(t,t.mergedAttrs,!0),null!==r&&om(n,r,t))}(n,e,t,s);let l=null;null!==t&&(l=Bu(t,o[Un]));const c=i.rendererFactory.createRenderer(t,r);let u=16;r.signals?u=4096:r.onPush&&(u=64);const d=Aa(o,ov(r),null,u,o[e.index],e,i,c,null,null,l);return a.firstCreatePass&&id(a,e,n.length-1),xa(o,d),o[e.index]=d}(uj,y,Tt,Ar,N,d,g);Ge=$p(P,Q),y&&function oT(e,t,r,n){if(n)Nc(e,r,["ng-version",XI.full]);else{const{attrs:o,classes:i}=function UE(e){const t=[],r=[];let n=1,o=2;for(;n0&&rm(e,r,i.join(" "))}}(g,Tt,y,n),void 0!==r&&function iT(e,t,r){const n=e.projection=[];for(let o=0;o=0;n--){const o=e[n];o.hostVars=t+=o.hostVars,o.hostAttrs=Xo(o.hostAttrs,r=Xo(r,o.hostAttrs))}}(n)}function Pa(e){return e===en?{}:e===te?[]:e}function lT(e,t){const r=e.viewQuery;e.viewQuery=r?(n,o)=>{t(n,o),r(n,o)}:t}function cT(e,t){const r=e.contentQueries;e.contentQueries=r?(n,o,i)=>{t(n,o,i),r(n,o,i)}:t}function uT(e,t){const r=e.hostBindings;e.hostBindings=r?(n,o)=>{t(n,o),r(n,o)}:t}function Av(e){const t=e.inputConfig,r={};for(const n in t)if(t.hasOwnProperty(n)){const o=t[n];Array.isArray(o)&&o[2]&&(r[n]=o[2])}e.inputTransforms=r}function Oa(e){return!!ud(e)&&(Array.isArray(e)||!(e instanceof Map)&&Symbol.iterator in e)}function ud(e){return null!==e&&("function"==typeof e||"object"==typeof e)}function cn(e,t,r){return e[t]=r}function We(e,t,r){return!Object.is(e[t],r)&&(e[t]=r,!0)}function Gt(e,t,r,n){const o=M();return We(o,Hr(),t)&&(J(),ln(be(),o,e,t,r,n)),Gt}function uo(e,t,r,n){return We(e,Hr(),r)?t+$(r)+n:q}function O(e,t,r,n,o,i,s,a){const l=M(),c=J(),u=e+Q,d=c.firstCreatePass?function kT(e,t,r,n,o,i,s,a,l){const c=t.consts,u=lo(t,e,4,s||null,$n(c,a));od(t,r,u,$n(c,l)),$s(t,u);const d=u.tView=rd(2,u,n,o,i,t.directiveRegistry,t.pipeRegistry,null,t.schemas,c,null);return null!==t.queries&&(t.queries.template(t,u),d.queries=t.queries.embeddedTView(u)),u}(u,c,l,t,r,n,o,i,s):c.data[u];sn(d,!1);const g=Bv(c,l,d,e);Bs()&&da(c,l,g,d),qe(g,l),xa(l,l[u]=dv(g,l,g,d)),Ls(d)&&td(c,l,d),null!=s&&nd(l,d,a)}let Bv=function $v(e,t,r,n){return Gn(!0),t[G].createComment("")};function md(e){return function Vr(e,t){return e[t]}(function I0(){return H.lFrame.contextLView}(),Q+e)}function w(e,t,r){const n=M();return We(n,Hr(),t)&&Et(J(),be(),n,e,t,n[G],r,!1),w}function vd(e,t,r,n,o){const s=o?"class":"style";ld(e,r,t.inputs[s],s,n)}function h(e,t,r,n){const o=M(),i=J(),s=Q+e,a=o[G],l=i.firstCreatePass?function jT(e,t,r,n,o,i){const s=t.consts,l=lo(t,e,2,n,$n(s,o));return od(t,r,l,$n(s,i)),null!==l.attrs&&Ra(l,l.attrs,!1),null!==l.mergedAttrs&&Ra(l,l.mergedAttrs,!0),null!==t.queries&&t.queries.elementStart(t,l),l}(s,i,o,t,r,n):i.data[s],c=Gv(i,o,l,a,t,e);o[s]=c;const u=Ls(l);return sn(l,!0),om(a,c,l),32!=(32&l.flags)&&Bs()&&da(i,o,c,l),0===function y0(){return H.lFrame.elementDepthCount}()&&qe(c,o),function _0(){H.lFrame.elementDepthCount++}(),u&&(td(i,o,l),ed(i,l,o)),null!==n&&nd(o,l),h}function p(){let e=Be();Bc()?$c():(e=e.parent,sn(e,!1));const t=e;(function D0(e){return H.skipHydrationRootTNode===e})(t)&&function M0(){H.skipHydrationRootTNode=null}(),function C0(){H.lFrame.elementDepthCount--}();const r=J();return r.firstCreatePass&&($s(r,e),Oc(e)&&r.queries.elementEnd(e)),null!=t.classesWithoutHost&&function H0(e){return 0!=(8&e.flags)}(t)&&vd(r,t,M(),t.classesWithoutHost,!0),null!=t.stylesWithoutHost&&function U0(e){return 0!=(16&e.flags)}(t)&&vd(r,t,M(),t.stylesWithoutHost,!1),p}function v(e,t,r,n){return h(e,t,r,n),p(),v}let Gv=(e,t,r,n,o,i)=>(Gn(!0),la(n,o,function sg(){return H.lFrame.currentNamespace}()));function ut(e,t,r){const n=M(),o=J(),i=e+Q,s=o.firstCreatePass?function BT(e,t,r,n,o){const i=t.consts,s=$n(i,n),a=lo(t,e,8,"ng-container",s);return null!==s&&Ra(a,s,!0),od(t,r,a,$n(i,o)),null!==t.queries&&t.queries.elementStart(t,a),a}(i,o,n,t,r):o.data[i];sn(s,!0);const a=qv(o,n,s,e);return n[i]=a,Bs()&&da(o,n,a,s),qe(a,n),Ls(s)&&(td(o,n,s),ed(o,s,n)),null!=r&&nd(n,s),ut}function dt(){let e=Be();const t=J();return Bc()?$c():(e=e.parent,sn(e,!1)),t.firstCreatePass&&($s(t,e),Oc(e)&&t.queries.elementEnd(e)),dt}let qv=(e,t,r,n)=>(Gn(!0),hu(t[G],""));function Ae(){return M()}function Ri(e){return!!e&&"function"==typeof e.then}function Wv(e){return!!e&&"function"==typeof e.subscribe}function R(e,t,r,n){const o=M(),i=J(),s=Be();return function Yv(e,t,r,n,o,i,s){const a=Ls(n),c=e.firstCreatePass&&pv(e),u=t[Se],d=hv(t);let g=!0;if(3&n.type||s){const C=lt(n,t),b=s?s(C):C,E=d.length,D=s?N=>s(pe(N[n.index])):n.index;let P=null;if(!s&&a&&(P=function zT(e,t,r,n){const o=e.cleanup;if(null!=o)for(let i=0;il?a[l]:null}"string"==typeof s&&(i+=2)}return null}(e,t,o,n.index)),null!==P)(P.__ngLastListenerFn__||P).__ngNextListenerFn__=i,P.__ngLastListenerFn__=i,g=!1;else{i=Xv(n,t,u,i,!1);const N=r.listen(b,o,i);d.push(i,N),c&&c.push(o,D,E,E+1)}}else i=Xv(n,t,u,i,!1);const m=n.outputs;let y;if(g&&null!==m&&(y=m[o])){const C=y.length;if(C)for(let b=0;b-1?_t(e.index,t):t);let l=Qv(t,r,n,s),c=i.__ngNextListenerFn__;for(;c;)l=Qv(t,r,c,s)&&l,c=c.__ngNextListenerFn__;return o&&!1===l&&s.preventDefault(),l}}function k(e=1){return function R0(e){return(H.lFrame.contextLView=function N0(e,t){for(;e>0;)t=t[kr],e--;return t}(e,H.lFrame.contextLView))[Se]}(e)}function Tn(e,t,r,n,o){const i=M(),s=uo(i,t,r,n);return s!==q&&Et(J(),be(),i,e,s,i[G],o,!1),Tn}function ja(e,t){return e<<17|t<<2}function Wn(e){return e>>17&32767}function yd(e){return 2|e}function mr(e){return(131068&e)>>2}function _d(e,t){return-131069&e|t<<2}function Cd(e){return 1|e}function ay(e,t,r,n,o){const i=e[r+1],s=null===t;let a=n?Wn(i):mr(i),l=!1;for(;0!==a&&(!1===l||s);){const u=e[a+1];eA(e[a],t)&&(l=!0,e[a+1]=n?Cd(u):yd(u)),a=n?Wn(u):mr(u)}l&&(e[r+1]=n?yd(i):Cd(i))}function eA(e,t){return null===e||null==t||(Array.isArray(e)?e[1]:e)===t||!(!Array.isArray(e)||"string"!=typeof t)&&Zr(e,t)>=0}function Ha(e,t){return function zt(e,t,r,n){const o=M(),i=J(),s=function wn(e){const t=H.lFrame,r=t.bindingIndex;return t.bindingIndex=t.bindingIndex+e,r}(2);i.firstUpdatePass&&function my(e,t,r,n){const o=e.data;if(null===o[r+1]){const i=o[Ke()],s=function gy(e,t){return t>=e.expandoStartIndex}(e,r);(function Cy(e,t){return 0!=(e.flags&(t?8:16))})(i,n)&&null===t&&!s&&(t=!1),t=function cA(e,t,r,n){const o=function zc(e){const t=H.lFrame.currentDirectiveIndex;return-1===t?null:e[t]}(e);let i=n?t.residualClasses:t.residualStyles;if(null===o)0===(n?t.classBindings:t.styleBindings)&&(r=Ni(r=Dd(null,e,t,r,n),t.attrs,n),i=null);else{const s=t.directiveStylingLast;if(-1===s||e[s]!==o)if(r=Dd(o,e,t,r,n),null===i){let l=function uA(e,t,r){const n=r?t.classBindings:t.styleBindings;if(0!==mr(n))return e[Wn(n)]}(e,t,n);void 0!==l&&Array.isArray(l)&&(l=Dd(null,e,t,l[1],n),l=Ni(l,t.attrs,n),function dA(e,t,r,n){e[Wn(r?t.classBindings:t.styleBindings)]=n}(e,t,n,l))}else i=function fA(e,t,r){let n;const o=t.directiveEnd;for(let i=1+t.directiveStylingLast;i0)&&(c=!0)):u=r,o)if(0!==l){const g=Wn(e[a+1]);e[n+1]=ja(g,a),0!==g&&(e[g+1]=_d(e[g+1],n)),e[a+1]=function QT(e,t){return 131071&e|t<<17}(e[a+1],n)}else e[n+1]=ja(a,0),0!==a&&(e[a+1]=_d(e[a+1],n)),a=n;else e[n+1]=ja(l,0),0===a?a=n:e[l+1]=_d(e[l+1],n),l=n;c&&(e[n+1]=yd(e[n+1])),ay(e,u,n,!0),ay(e,u,n,!1),function KT(e,t,r,n,o){const i=o?e.residualClasses:e.residualStyles;null!=i&&"string"==typeof t&&Zr(i,t)>=0&&(r[n+1]=Cd(r[n+1]))}(t,u,e,n,i),s=ja(a,l),i?t.classBindings=s:t.styleBindings=s}(o,i,t,r,s,n)}}(i,e,s,n),t!==q&&We(o,s,t)&&function yy(e,t,r,n,o,i,s,a){if(!(3&t.type))return;const l=e.data,c=l[a+1],u=function XT(e){return 1==(1&e)}(c)?_y(l,t,r,o,mr(c),s):void 0;Ua(u)||(Ua(i)||function YT(e){return 2==(2&e)}(c)&&(i=_y(l,null,r,o,a,s)),function JM(e,t,r,n,o){if(t)o?e.addClass(r,n):e.removeClass(r,n);else{let i=-1===n.indexOf("-")?void 0:zn.DashCase;null==o?e.removeStyle(r,n,i):("string"==typeof o&&o.endsWith("!important")&&(o=o.slice(0,-10),i|=zn.Important),e.setStyle(r,n,o,i))}}(n,s,Us(Ke(),r),o,i))}(i,i.data[Ke()],o,o[G],e,o[s+1]=function mA(e,t){return null==e||""===e||("string"==typeof t?e+=t:"object"==typeof e&&(e=ke(qn(e)))),e}(t,r),n,s)}(e,t,null,!0),Ha}function Dd(e,t,r,n,o){let i=null;const s=r.directiveEnd;let a=r.directiveStylingLast;for(-1===a?a=r.directiveStart:a++;a0;){const l=e[o],c=Array.isArray(l),u=c?l[1]:l,d=null===u;let g=r[o+1];g===q&&(g=d?te:void 0);let m=d?ru(g,n):u===n?g:void 0;if(c&&!Ua(m)&&(m=ru(l,n)),Ua(m)&&(a=m,s))return a;const y=e[o+1];o=s?Wn(y):mr(y)}if(null!==t){let l=i?t.residualClasses:t.residualStyles;null!=l&&(a=ru(l,n))}return a}function Ua(e){return void 0!==e}function f(e,t=""){const r=M(),n=J(),o=e+Q,i=n.firstCreatePass?lo(n,o,1,t,null):n.data[o],s=Dy(n,r,i,t,e);r[o]=s,Bs()&&da(n,r,s,i),sn(i,!1)}let Dy=(e,t,r,n,o)=>(Gn(!0),function aa(e,t){return e.createText(t)}(t[G],n));function Ce(e){return An("",e,""),Ce}function An(e,t,r){const n=M(),o=uo(n,e,t,r);return o!==q&&function Sn(e,t,r){const n=Us(t,e);!function zg(e,t,r){e.setValue(t,r)}(e[G],n,r)}(n,Ke(),o),An}const Do="en-US";let $y=Do;function Ed(e,t,r,n,o){if(e=U(e),Array.isArray(e))for(let i=0;i>20;if(fr(e)||!e.multi){const m=new oi(c,o,I),y=Id(l,t,o?u:u+g,d);-1===y?(eu(Ws(a,s),i,l),Md(i,e,t.length),t.push(l),a.directiveStart++,a.directiveEnd++,o&&(a.providerIndexes+=1048576),r.push(m),s.push(m)):(r[y]=m,s[y]=m)}else{const m=Id(l,t,u+g,d),y=Id(l,t,u,u+g),b=y>=0&&r[y];if(o&&!b||!o&&!(m>=0&&r[m])){eu(Ws(a,s),i,l);const E=function Lx(e,t,r,n,o){const i=new oi(e,r,I);return i.multi=[],i.index=t,i.componentProviders=0,p_(i,o,n&&!r),i}(o?Fx:kx,r.length,o,n,c);!o&&b&&(r[y].providerFactory=E),Md(i,e,t.length,0),t.push(l),a.directiveStart++,a.directiveEnd++,o&&(a.providerIndexes+=1048576),r.push(E),s.push(E)}else Md(i,e,m>-1?m:y,p_(r[o?y:m],c,!o&&n));!o&&n&&b&&r[y].componentProviders++}}}function Md(e,t,r,n){const o=fr(t),i=function SI(e){return!!e.useClass}(t);if(o||i){const l=(i?U(t.useClass):t).prototype.ngOnDestroy;if(l){const c=e.destroyHooks||(e.destroyHooks=[]);if(!o&&t.multi){const u=c.indexOf(r);-1===u?c.push(r,[n,l]):c[u+1].push(n,l)}else c.push(r,l)}}}function p_(e,t,r){return r&&e.componentProviders++,e.multi.push(t)-1}function Id(e,t,r,n){for(let o=r;o{r.providersResolver=(n,o)=>function Ox(e,t,r){const n=J();if(n.firstCreatePass){const o=$t(e);Ed(r,n.data,n.blueprint,o,!0),Ed(t,n.data,n.blueprint,o,!1)}}(n,o?o(e):e,t)}}class yr{}class g_{}class Td extends yr{constructor(t,r,n){super(),this._parent=r,this._bootstrapComponents=[],this.destroyCbs=[],this.componentFactoryResolver=new wv(this);const o=yt(t);this._bootstrapComponents=In(o.bootstrap),this._r3Injector=Lm(t,r,[{provide:yr,useValue:this},{provide:Ia,useValue:this.componentFactoryResolver},...n],ke(t),new Set(["environment"])),this._r3Injector.resolveInjectorInitializers(),this.instance=this._r3Injector.get(t)}get injector(){return this._r3Injector}destroy(){const t=this._r3Injector;!t.destroyed&&t.destroy(),this.destroyCbs.forEach(r=>r()),this.destroyCbs=null}onDestroy(t){this.destroyCbs.push(t)}}class Ad extends g_{constructor(t){super(),this.moduleType=t}create(t){return new Td(this.moduleType,t,[])}}class m_ extends yr{constructor(t){super(),this.componentFactoryResolver=new wv(this),this.instance=null;const r=new _a([...t.providers,{provide:yr,useValue:this},{provide:Ia,useValue:this.componentFactoryResolver}],t.parent||ya(),t.debugName,new Set(["environment"]));this.injector=r,t.runEnvironmentInitializers&&r.resolveInjectorInitializers()}destroy(){this.injector.destroy()}onDestroy(t){this.injector.onDestroy(t)}}function xd(e,t,r=null){return new m_({providers:e,parent:t,debugName:r,runEnvironmentInitializers:!0}).injector}let Hx=(()=>{var e;class t{constructor(n){this._injector=n,this.cachedInjectors=new Map}getOrCreateStandaloneInjector(n){if(!n.standalone)return null;if(!this.cachedInjectors.has(n)){const o=Cm(0,n.type),i=o.length>0?xd([o],this._injector,`Standalone[${n.type.name}]`):null;this.cachedInjectors.set(n,i)}return this.cachedInjectors.get(n)}ngOnDestroy(){try{for(const n of this.cachedInjectors.values())null!==n&&n.destroy()}finally{this.cachedInjectors.clear()}}}return(e=t).\u0275prov=L({token:e,providedIn:"environment",factory:()=>new e(F(Dt))}),t})();function Mt(e){e.getStandaloneInjector=t=>t.get(Hx).getOrCreateStandaloneInjector(e)}function K(e,t,r){const n=Je()+e,o=M();return o[n]===q?cn(o,n,r?t.call(r):t()):function Si(e,t){return e[t]}(o,n)}function Vi(e,t,r,n){return function E_(e,t,r,n,o,i){const s=t+r;return We(e,s,o)?cn(e,s+1,i?n.call(i,o):n(o)):ji(e,s+1)}(M(),Je(),e,t,r,n)}function w_(e,t,r,n,o){return function M_(e,t,r,n,o,i,s){const a=t+r;return function gr(e,t,r,n){const o=We(e,t,r);return We(e,t+1,n)||o}(e,a,o,i)?cn(e,a+2,s?n.call(s,o,i):n(o,i)):ji(e,a+2)}(M(),Je(),e,t,r,n,o)}function ji(e,t){const r=e[t];return r===q?void 0:r}function cR(){return this._results[Symbol.iterator]()}class Nd{get changes(){return this._changes||(this._changes=new Ee)}constructor(t=!1){this._emitDistinctChangesOnly=t,this.dirty=!0,this._results=[],this._changesDetected=!1,this._changes=null,this.length=0,this.first=void 0,this.last=void 0;const r=Nd.prototype;r[Symbol.iterator]||(r[Symbol.iterator]=cR)}get(t){return this._results[t]}map(t){return this._results.map(t)}filter(t){return this._results.filter(t)}find(t){return this._results.find(t)}reduce(t,r){return this._results.reduce(t,r)}forEach(t){this._results.forEach(t)}some(t){return this._results.some(t)}toArray(){return this._results.slice()}toString(){return this._results.toString()}reset(t,r){const n=this;n.dirty=!1;const o=function Nt(e){return e.flat(Number.POSITIVE_INFINITY)}(t);(this._changesDetected=!function tM(e,t,r){if(e.length!==t.length)return!1;for(let n=0;n0&&(r[o-1][Bt]=t),n{class t{}return t.__NG_ELEMENT_ID__=pR,t})();const fR=xn,hR=class extends fR{constructor(t,r,n){super(),this._declarationLView=t,this._declarationTContainer=r,this.elementRef=n}get ssrId(){return this._declarationTContainer.tView?.ssrId||null}createEmbeddedView(t,r){return this.createEmbeddedViewImpl(t,r)}createEmbeddedViewImpl(t,r,n){const o=function uR(e,t,r,n){const o=t.tView,a=Aa(e,o,r,4096&e[z]?4096:16,null,t,null,null,null,n?.injector??null,n?.hydrationInfo??null);a[ei]=e[t.index];const c=e[tn];return null!==c&&(a[tn]=c.createEmbeddedView(o)),cd(o,a,r),a}(this._declarationLView,this._declarationTContainer,t,{injector:r,hydrationInfo:n});return new Mi(o)}};function pR(){return qa(Be(),M())}function qa(e,t){return 4&e.type?new hR(t,e,io(e,t)):null}let Wt=(()=>{class t{}return t.__NG_ELEMENT_ID__=CR,t})();function CR(){return k_(Be(),M())}const DR=Wt,P_=class extends DR{constructor(t,r,n){super(),this._lContainer=t,this._hostTNode=r,this._hostLView=n}get element(){return io(this._hostTNode,this._hostLView)}get injector(){return new et(this._hostTNode,this._hostLView)}get parentInjector(){const t=Zs(this._hostTNode,this._hostLView);if(Xc(t)){const r=si(t,this._hostLView),n=ii(t);return new et(r[T].data[n+8],r)}return new et(null,this._hostLView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(t){const r=O_(this._lContainer);return null!==r&&r[t]||null}get length(){return this._lContainer.length-Ue}createEmbeddedView(t,r,n){let o,i;"number"==typeof n?o=n:null!=n&&(o=n.index,i=n.injector);const a=t.createEmbeddedViewImpl(r||{},i,null);return this.insertImpl(a,o,false),a}createComponent(t,r,n,o,i){const s=t&&!function li(e){return"function"==typeof e}(t);let a;if(s)a=r;else{const C=r||{};a=C.index,n=C.injector,o=C.projectableNodes,i=C.environmentInjector||C.ngModuleRef}const l=s?t:new Ii(X(t)),c=n||this.parentInjector;if(!i&&null==l.ngModule){const b=(s?c:this.parentInjector).get(Dt,null);b&&(i=b)}X(l.componentType??{});const m=l.create(c,o,null,i);return this.insertImpl(m.hostView,a,false),m}insert(t,r){return this.insertImpl(t,r,!1)}insertImpl(t,r,n){const o=t._lView;if(function g0(e){return Xe(e[_e])}(o)){const l=this.indexOf(t);if(-1!==l)this.detach(l);else{const c=o[_e],u=new P_(c,c[ze],c[_e]);u.detach(u.indexOf(t))}}const s=this._adjustIndex(r),a=this._lContainer;return dR(a,o,s,!n),t.attachToViewContainerRef(),Dg(Pd(a),s,t),t}move(t,r){return this.insert(t,r)}indexOf(t){const r=O_(this._lContainer);return null!==r?r.indexOf(t):-1}remove(t){const r=this._adjustIndex(t,-1),n=ca(this._lContainer,r);n&&(Xs(Pd(this._lContainer),r),pu(n[T],n))}detach(t){const r=this._adjustIndex(t,-1),n=ca(this._lContainer,r);return n&&null!=Xs(Pd(this._lContainer),r)?new Mi(n):null}_adjustIndex(t,r=0){return t??this.length+r}};function O_(e){return e[8]}function Pd(e){return e[8]||(e[8]=[])}function k_(e,t){let r;const n=t[e.index];return Xe(n)?r=n:(r=dv(n,t,null,e),t[e.index]=r,xa(t,r)),F_(r,t,e,n),new P_(r,e,t)}let F_=function L_(e,t,r,n){if(e[nn])return;let o;o=8&r.type?pe(n):function bR(e,t){const r=e[G],n=r.createComment(""),o=lt(t,e);return dr(r,ua(r,o),n,function YM(e,t){return e.nextSibling(t)}(r,o),!1),n}(t,r),e[nn]=o};class Od{constructor(t){this.queryList=t,this.matches=null}clone(){return new Od(this.queryList)}setDirty(){this.queryList.setDirty()}}class kd{constructor(t=[]){this.queries=t}createEmbeddedView(t){const r=t.queries;if(null!==r){const n=null!==t.contentQueries?t.contentQueries[0]:r.length,o=[];for(let i=0;i0)n.push(s[a/2]);else{const c=i[a+1],u=t[-l];for(let d=Ue;d{var e;class t{constructor(){this.initialized=!1,this.done=!1,this.donePromise=new Promise((n,o)=>{this.resolve=n,this.reject=o}),this.appInits=A(Gd,{optional:!0})??[]}runInitializers(){if(this.initialized)return;const n=[];for(const i of this.appInits){const s=i();if(Ri(s))n.push(s);else if(Wv(s)){const a=new Promise((l,c)=>{s.subscribe({complete:l,error:c})});n.push(a)}}const o=()=>{this.done=!0,this.resolve()};Promise.all(n).then(()=>{o()}).catch(i=>{this.reject(i)}),0===n.length&&o(),this.initialized=!0}}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275prov=L({token:e,factory:e.\u0275fac,providedIn:"root"}),t})(),lC=(()=>{var e;class t{log(n){console.log(n)}warn(n){console.warn(n)}}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275prov=L({token:e,factory:e.\u0275fac,providedIn:"platform"}),t})();const Rn=new x("LocaleId",{providedIn:"root",factory:()=>A(Rn,Y.Optional|Y.SkipSelf)||function KR(){return typeof $localize<"u"&&$localize.locale||Do}()});let Ya=(()=>{var e;class t{constructor(){this.taskId=0,this.pendingTasks=new Set,this.hasPendingTasks=new At(!1)}add(){this.hasPendingTasks.next(!0);const n=this.taskId++;return this.pendingTasks.add(n),n}remove(n){this.pendingTasks.delete(n),0===this.pendingTasks.size&&this.hasPendingTasks.next(!1)}ngOnDestroy(){this.pendingTasks.clear(),this.hasPendingTasks.next(!1)}}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275prov=L({token:e,factory:e.\u0275fac,providedIn:"root"}),t})();class nN{constructor(t,r){this.ngModuleFactory=t,this.componentFactories=r}}let cC=(()=>{var e;class t{compileModuleSync(n){return new Ad(n)}compileModuleAsync(n){return Promise.resolve(this.compileModuleSync(n))}compileModuleAndAllComponentsSync(n){const o=this.compileModuleSync(n),s=In(yt(n).declarations).reduce((a,l)=>{const c=X(l);return c&&a.push(new Ii(c)),a},[]);return new nN(o,s)}compileModuleAndAllComponentsAsync(n){return Promise.resolve(this.compileModuleAndAllComponentsSync(n))}clearCache(){}clearCacheFor(n){}getModuleId(n){}}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275prov=L({token:e,factory:e.\u0275fac,providedIn:"root"}),t})();const hC=new x(""),Xa=new x("");let Qd,Zd=(()=>{var e;class t{constructor(n,o,i){this._ngZone=n,this.registry=o,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,Qd||(function bN(e){Qd=e}(i),i.addToWindow(o)),this._watchAngularEvents(),n.run(()=>{this.taskTrackingZone=typeof Zone>"u"?null:Zone.current.get("TaskTrackingZone")})}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._didWork=!0,this._isZoneStable=!1}}),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.subscribe({next:()=>{ge.assertNotInAngularZone(),queueMicrotask(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}})})}increasePendingRequestCount(){return this._pendingCount+=1,this._didWork=!0,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 n=this._callbacks.pop();clearTimeout(n.timeoutId),n.doneCb(this._didWork)}this._didWork=!1});else{let n=this.getPendingTasks();this._callbacks=this._callbacks.filter(o=>!o.updateCb||!o.updateCb(n)||(clearTimeout(o.timeoutId),!1)),this._didWork=!0}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(n=>({source:n.source,creationLocation:n.creationLocation,data:n.data})):[]}addCallback(n,o,i){let s=-1;o&&o>0&&(s=setTimeout(()=>{this._callbacks=this._callbacks.filter(a=>a.timeoutId!==s),n(this._didWork,this.getPendingTasks())},o)),this._callbacks.push({doneCb:n,timeoutId:s,updateCb:i})}whenStable(n,o,i){if(i&&!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(n,o,i),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}registerApplication(n){this.registry.registerApplication(n,this)}unregisterApplication(n){this.registry.unregisterApplication(n)}findProviders(n,o,i){return[]}}return(e=t).\u0275fac=function(n){return new(n||e)(F(ge),F(Yd),F(Xa))},e.\u0275prov=L({token:e,factory:e.\u0275fac}),t})(),Yd=(()=>{var e;class t{constructor(){this._applications=new Map}registerApplication(n,o){this._applications.set(n,o)}unregisterApplication(n){this._applications.delete(n)}unregisterAllApplications(){this._applications.clear()}getTestability(n){return this._applications.get(n)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(n,o=!0){return Qd?.findTestabilityInTree(this,n,o)??null}}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275prov=L({token:e,factory:e.\u0275fac,providedIn:"platform"}),t})(),Zn=null;const Xd=new x("PlatformDestroyListeners"),Jd=new x("appBootstrapListener");class mC{constructor(t,r){this.name=t,this.token=r}}function SN(e){try{const{rootComponent:t,appProviders:r,platformProviders:n}=e,o=function IN(e=[]){if(Zn)return Zn;const t=function yC(e=[],t){return wt.create({name:t,providers:[{provide:Ru,useValue:"platform"},{provide:Xd,useValue:new Set([()=>Zn=null])},...e]})}(e);return Zn=t,function gC(){!function r0(e){kp=e}(()=>{throw new S(600,!1)})}(),function vC(e){e.get(Mm,null)?.forEach(r=>r())}(t),t}(n),i=[NN(),...r||[]],a=new m_({providers:i,parent:o,debugName:"",runEnvironmentInitializers:!1}).injector,l=a.get(ge);return l.run(()=>{a.resolveInjectorInitializers();const c=a.get(pr,null);let u;l.runOutsideAngular(()=>{u=l.onError.subscribe({next:m=>{c.handleError(m)}})});const d=()=>a.destroy(),g=o.get(Xd);return g.add(d),a.onDestroy(()=>{u.unsubscribe(),g.delete(d)}),function DC(e,t,r){try{const n=r();return Ri(n)?n.catch(o=>{throw t.runOutsideAngular(()=>e.handleError(o)),o}):n}catch(n){throw t.runOutsideAngular(()=>e.handleError(n)),n}}(c,l,()=>{const m=a.get(zd);return m.runInitializers(),m.donePromise.then(()=>{!function Gy(e){xt(e,"Expected localeId to be defined"),"string"==typeof e&&($y=e.toLowerCase().replace(/_/g,"-"))}(a.get(Rn,Do)||Do);const C=a.get(Eo);return void 0!==t&&C.bootstrap(t),C})})})}catch(t){return Promise.reject(t)}}let Eo=(()=>{var e;class t{constructor(){this._bootstrapListeners=[],this._runningTick=!1,this._destroyed=!1,this._destroyListeners=[],this._views=[],this.internalErrorHandler=A(EC),this.zoneIsStable=A(Um),this.componentTypes=[],this.components=[],this.isStable=A(Ya).hasPendingTasks.pipe(jt(n=>n?V(!1):this.zoneIsStable),function dE(e,t=Vn){return e=e??fE,Oe((r,n)=>{let o,i=!0;r.subscribe(Re(n,s=>{const a=t(s);(i||!e(o,a))&&(i=!1,o=a,n.next(s))}))})}(),ip()),this._injector=A(Dt)}get destroyed(){return this._destroyed}get injector(){return this._injector}bootstrap(n,o){const i=n instanceof xm;if(!this._injector.get(zd).done)throw!i&&function Nr(e){const t=X(e)||He(e)||Qe(e);return null!==t&&t.standalone}(n),new S(405,!1);let a;a=i?n:this._injector.get(Ia).resolveComponentFactory(n),this.componentTypes.push(a.componentType);const l=function EN(e){return e.isBoundToModule}(a)?void 0:this._injector.get(yr),u=a.create(wt.NULL,[],o||a.selector,l),d=u.location.nativeElement,g=u.injector.get(hC,null);return g?.registerApplication(d),u.onDestroy(()=>{this.detachView(u.hostView),Ja(this.components,u),g?.unregisterApplication(d)}),this._loadComponent(u),u}tick(){if(this._runningTick)throw new S(101,!1);try{this._runningTick=!0;for(let n of this._views)n.detectChanges()}catch(n){this.internalErrorHandler(n)}finally{this._runningTick=!1}}attachView(n){const o=n;this._views.push(o),o.attachToAppRef(this)}detachView(n){const o=n;Ja(this._views,o),o.detachFromAppRef()}_loadComponent(n){this.attachView(n.hostView),this.tick(),this.components.push(n);const o=this._injector.get(Jd,[]);o.push(...this._bootstrapListeners),o.forEach(i=>i(n))}ngOnDestroy(){if(!this._destroyed)try{this._destroyListeners.forEach(n=>n()),this._views.slice().forEach(n=>n.destroy())}finally{this._destroyed=!0,this._views=[],this._bootstrapListeners=[],this._destroyListeners=[]}}onDestroy(n){return this._destroyListeners.push(n),()=>Ja(this._destroyListeners,n)}destroy(){if(this._destroyed)throw new S(406,!1);const n=this._injector;n.destroy&&!n.destroyed&&n.destroy()}get viewCount(){return this._views.length}warnIfDestroyed(){}}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275prov=L({token:e,factory:e.\u0275fac,providedIn:"root"}),t})();function Ja(e,t){const r=e.indexOf(t);r>-1&&e.splice(r,1)}const EC=new x("",{providedIn:"root",factory:()=>A(pr).handleError.bind(void 0)});function xN(){const e=A(ge),t=A(pr);return r=>e.runOutsideAngular(()=>t.handleError(r))}let RN=(()=>{var e;class t{constructor(){this.zone=A(ge),this.applicationRef=A(Eo)}initialize(){this._onMicrotaskEmptySubscription||(this._onMicrotaskEmptySubscription=this.zone.onMicrotaskEmpty.subscribe({next:()=>{this.zone.run(()=>{this.applicationRef.tick()})}}))}ngOnDestroy(){this._onMicrotaskEmptySubscription?.unsubscribe()}}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275prov=L({token:e,factory:e.\u0275fac,providedIn:"root"}),t})();function MC(e){return[{provide:ge,useFactory:e},{provide:yi,multi:!0,useFactory:()=>{const t=A(RN,{optional:!0});return()=>t.initialize()}},{provide:EC,useFactory:xN},{provide:Um,useFactory:Bm}]}function NN(e){return Tu([[],MC(()=>new ge(function CC(e){return{enableLongStackTrace:!1,shouldCoalesceEventChangeDetection:e?.eventCoalescing??!1,shouldCoalesceRunChangeDetection:e?.runCoalescing??!1}}(e)))])}let Ka=(()=>{class t{}return t.__NG_ELEMENT_ID__=PN,t})();function PN(e){return function ON(e,t,r){if(ar(e)&&!r){const n=_t(e.index,t);return new Mi(n,n)}return 47&e.type?new Mi(t[Te],t):null}(Be(),M(),16==(16&e))}class AC{constructor(){}supports(t){return Oa(t)}create(t){return new HN(t)}}const jN=(e,t)=>t;class HN{constructor(t){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=t||jN}forEachItem(t){let r;for(r=this._itHead;null!==r;r=r._next)t(r)}forEachOperation(t){let r=this._itHead,n=this._removalsHead,o=0,i=null;for(;r||n;){const s=!n||r&&r.currentIndex{s=this._trackByFn(o,a),null!==r&&Object.is(r.trackById,s)?(n&&(r=this._verifyReinsertion(r,a,s,o)),Object.is(r.item,a)||this._addIdentityChange(r,a)):(r=this._mismatch(r,a,s,o),n=!0),r=r._next,o++}),this.length=o;return this._truncate(r),this.collection=t,this.isDirty}get isDirty(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}_reset(){if(this.isDirty){let t;for(t=this._previousItHead=this._itHead;null!==t;t=t._next)t._nextPrevious=t._next;for(t=this._additionsHead;null!==t;t=t._nextAdded)t.previousIndex=t.currentIndex;for(this._additionsHead=this._additionsTail=null,t=this._movesHead;null!==t;t=t._nextMoved)t.previousIndex=t.currentIndex;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(t,r,n,o){let i;return null===t?i=this._itTail:(i=t._prev,this._remove(t)),null!==(t=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null))?(Object.is(t.item,r)||this._addIdentityChange(t,r),this._reinsertAfter(t,i,o)):null!==(t=null===this._linkedRecords?null:this._linkedRecords.get(n,o))?(Object.is(t.item,r)||this._addIdentityChange(t,r),this._moveAfter(t,i,o)):t=this._addAfter(new UN(r,n),i,o),t}_verifyReinsertion(t,r,n,o){let i=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null);return null!==i?t=this._reinsertAfter(i,t._prev,o):t.currentIndex!=o&&(t.currentIndex=o,this._addToMoves(t,o)),t}_truncate(t){for(;null!==t;){const r=t._next;this._addToRemovals(this._unlink(t)),t=r}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(t,r,n){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(t);const o=t._prevRemoved,i=t._nextRemoved;return null===o?this._removalsHead=i:o._nextRemoved=i,null===i?this._removalsTail=o:i._prevRemoved=o,this._insertAfter(t,r,n),this._addToMoves(t,n),t}_moveAfter(t,r,n){return this._unlink(t),this._insertAfter(t,r,n),this._addToMoves(t,n),t}_addAfter(t,r,n){return this._insertAfter(t,r,n),this._additionsTail=null===this._additionsTail?this._additionsHead=t:this._additionsTail._nextAdded=t,t}_insertAfter(t,r,n){const o=null===r?this._itHead:r._next;return t._next=o,t._prev=r,null===o?this._itTail=t:o._prev=t,null===r?this._itHead=t:r._next=t,null===this._linkedRecords&&(this._linkedRecords=new xC),this._linkedRecords.put(t),t.currentIndex=n,t}_remove(t){return this._addToRemovals(this._unlink(t))}_unlink(t){null!==this._linkedRecords&&this._linkedRecords.remove(t);const r=t._prev,n=t._next;return null===r?this._itHead=n:r._next=n,null===n?this._itTail=r:n._prev=r,t}_addToMoves(t,r){return t.previousIndex===r||(this._movesTail=null===this._movesTail?this._movesHead=t:this._movesTail._nextMoved=t),t}_addToRemovals(t){return null===this._unlinkedRecords&&(this._unlinkedRecords=new xC),this._unlinkedRecords.put(t),t.currentIndex=null,t._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=t,t._prevRemoved=null):(t._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=t),t}_addIdentityChange(t,r){return t.item=r,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=t:this._identityChangesTail._nextIdentityChange=t,t}}class UN{constructor(t,r){this.item=t,this.trackById=r,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 BN{constructor(){this._head=null,this._tail=null}add(t){null===this._head?(this._head=this._tail=t,t._nextDup=null,t._prevDup=null):(this._tail._nextDup=t,t._prevDup=this._tail,t._nextDup=null,this._tail=t)}get(t,r){let n;for(n=this._head;null!==n;n=n._nextDup)if((null===r||r<=n.currentIndex)&&Object.is(n.trackById,t))return n;return null}remove(t){const r=t._prevDup,n=t._nextDup;return null===r?this._head=n:r._nextDup=n,null===n?this._tail=r:n._prevDup=r,null===this._head}}class xC{constructor(){this.map=new Map}put(t){const r=t.trackById;let n=this.map.get(r);n||(n=new BN,this.map.set(r,n)),n.add(t)}get(t,r){const o=this.map.get(t);return o?o.get(t,r):null}remove(t){const r=t.trackById;return this.map.get(r).remove(t)&&this.map.delete(r),t}get isEmpty(){return 0===this.map.size}clear(){this.map.clear()}}function RC(e,t,r){const n=e.previousIndex;if(null===n)return n;let o=0;return r&&n{if(r&&r.key===o)this._maybeAddToChanges(r,n),this._appendAfter=r,r=r._next;else{const i=this._getOrCreateRecordForKey(o,n);r=this._insertBeforeOrAppend(r,i)}}),r){r._prev&&(r._prev._next=null),this._removalsHead=r;for(let n=r;null!==n;n=n._nextRemoved)n===this._mapHead&&(this._mapHead=null),this._records.delete(n.key),n._nextRemoved=n._next,n.previousValue=n.currentValue,n.currentValue=null,n._prev=null,n._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(t,r){if(t){const n=t._prev;return r._next=t,r._prev=n,t._prev=r,n&&(n._next=r),t===this._mapHead&&(this._mapHead=r),this._appendAfter=t,t}return this._appendAfter?(this._appendAfter._next=r,r._prev=this._appendAfter):this._mapHead=r,this._appendAfter=r,null}_getOrCreateRecordForKey(t,r){if(this._records.has(t)){const o=this._records.get(t);this._maybeAddToChanges(o,r);const i=o._prev,s=o._next;return i&&(i._next=s),s&&(s._prev=i),o._next=null,o._prev=null,o}const n=new GN(t);return this._records.set(t,n),n.currentValue=r,this._addToAdditions(n),n}_reset(){if(this.isDirty){let t;for(this._previousMapHead=this._mapHead,t=this._previousMapHead;null!==t;t=t._next)t._nextPrevious=t._next;for(t=this._changesHead;null!==t;t=t._nextChanged)t.previousValue=t.currentValue;for(t=this._additionsHead;null!=t;t=t._nextAdded)t.previousValue=t.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(t,r){Object.is(r,t.currentValue)||(t.previousValue=t.currentValue,t.currentValue=r,this._addToChanges(t))}_addToAdditions(t){null===this._additionsHead?this._additionsHead=this._additionsTail=t:(this._additionsTail._nextAdded=t,this._additionsTail=t)}_addToChanges(t){null===this._changesHead?this._changesHead=this._changesTail=t:(this._changesTail._nextChanged=t,this._changesTail=t)}_forEach(t,r){t instanceof Map?t.forEach(r):Object.keys(t).forEach(n=>r(t[n],n))}}class GN{constructor(t){this.key=t,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null}}function PC(){return new nl([new AC])}let nl=(()=>{var e;class t{constructor(n){this.factories=n}static create(n,o){if(null!=o){const i=o.factories.slice();n=n.concat(i)}return new t(n)}static extend(n){return{provide:t,useFactory:o=>t.create(n,o||PC()),deps:[[t,new ea,new Ks]]}}find(n){const o=this.factories.find(i=>i.supports(n));if(null!=o)return o;throw new S(901,!1)}}return(e=t).\u0275prov=L({token:e,providedIn:"root",factory:PC}),t})();function OC(){return new $i([new NC])}let $i=(()=>{var e;class t{constructor(n){this.factories=n}static create(n,o){if(o){const i=o.factories.slice();n=n.concat(i)}return new t(n)}static extend(n){return{provide:t,useFactory:o=>t.create(n,o||OC()),deps:[[t,new ea,new Ks]]}}find(n){const o=this.factories.find(i=>i.supports(n));if(o)return o;throw new S(901,!1)}}return(e=t).\u0275prov=L({token:e,providedIn:"root",factory:OC}),t})(),WN=(()=>{var e;class t{constructor(n){}}return(e=t).\u0275fac=function(n){return new(n||e)(F(Eo))},e.\u0275mod=Cn({type:e}),e.\u0275inj=Kt({}),t})();function Mo(e){return"boolean"==typeof e?e:null!=e&&"false"!==e}const ve_apiBaseUrl="https://www.palmmedia.de/api/";let af=null;function Yn(){return af}class aP{}const pt=new x("DocumentToken");let lf=(()=>{var e;class t{historyGo(n){throw new Error("Not implemented")}}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275prov=L({token:e,factory:function(){return A(cP)},providedIn:"platform"}),t})();const lP=new x("Location Initialized");let cP=(()=>{var e;class t extends lf{constructor(){super(),this._doc=A(pt),this._location=window.location,this._history=window.history}getBaseHrefFromDOM(){return Yn().getBaseHref(this._doc)}onPopState(n){const o=Yn().getGlobalEventTarget(this._doc,"window");return o.addEventListener("popstate",n,!1),()=>o.removeEventListener("popstate",n)}onHashChange(n){const o=Yn().getGlobalEventTarget(this._doc,"window");return o.addEventListener("hashchange",n,!1),()=>o.removeEventListener("hashchange",n)}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(n){this._location.pathname=n}pushState(n,o,i){this._history.pushState(n,o,i)}replaceState(n,o,i){this._history.replaceState(n,o,i)}forward(){this._history.forward()}back(){this._history.back()}historyGo(n=0){this._history.go(n)}getState(){return this._history.state}}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275prov=L({token:e,factory:function(){return new e},providedIn:"platform"}),t})();function cf(e,t){if(0==e.length)return t;if(0==t.length)return e;let r=0;return e.endsWith("/")&&r++,t.startsWith("/")&&r++,2==r?e+t.substring(1):1==r?e+t:e+"/"+t}function $C(e){const t=e.match(/#|\?|$/),r=t&&t.index||e.length;return e.slice(0,r-("/"===e[r-1]?1:0))+e.slice(r)}function Nn(e){return e&&"?"!==e[0]?"?"+e:e}let Cr=(()=>{var e;class t{historyGo(n){throw new Error("Not implemented")}}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275prov=L({token:e,factory:function(){return A(zC)},providedIn:"root"}),t})();const GC=new x("appBaseHref");let zC=(()=>{var e;class t extends Cr{constructor(n,o){super(),this._platformLocation=n,this._removeListenerFns=[],this._baseHref=o??this._platformLocation.getBaseHrefFromDOM()??A(pt).location?.origin??""}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(n){this._removeListenerFns.push(this._platformLocation.onPopState(n),this._platformLocation.onHashChange(n))}getBaseHref(){return this._baseHref}prepareExternalUrl(n){return cf(this._baseHref,n)}path(n=!1){const o=this._platformLocation.pathname+Nn(this._platformLocation.search),i=this._platformLocation.hash;return i&&n?`${o}${i}`:o}pushState(n,o,i,s){const a=this.prepareExternalUrl(i+Nn(s));this._platformLocation.pushState(n,o,a)}replaceState(n,o,i,s){const a=this.prepareExternalUrl(i+Nn(s));this._platformLocation.replaceState(n,o,a)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(n=0){this._platformLocation.historyGo?.(n)}}return(e=t).\u0275fac=function(n){return new(n||e)(F(lf),F(GC,8))},e.\u0275prov=L({token:e,factory:e.\u0275fac,providedIn:"root"}),t})(),uP=(()=>{var e;class t extends Cr{constructor(n,o){super(),this._platformLocation=n,this._baseHref="",this._removeListenerFns=[],null!=o&&(this._baseHref=o)}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(n){this._removeListenerFns.push(this._platformLocation.onPopState(n),this._platformLocation.onHashChange(n))}getBaseHref(){return this._baseHref}path(n=!1){let o=this._platformLocation.hash;return null==o&&(o="#"),o.length>0?o.substring(1):o}prepareExternalUrl(n){const o=cf(this._baseHref,n);return o.length>0?"#"+o:o}pushState(n,o,i,s){let a=this.prepareExternalUrl(i+Nn(s));0==a.length&&(a=this._platformLocation.pathname),this._platformLocation.pushState(n,o,a)}replaceState(n,o,i,s){let a=this.prepareExternalUrl(i+Nn(s));0==a.length&&(a=this._platformLocation.pathname),this._platformLocation.replaceState(n,o,a)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(n=0){this._platformLocation.historyGo?.(n)}}return(e=t).\u0275fac=function(n){return new(n||e)(F(lf),F(GC,8))},e.\u0275prov=L({token:e,factory:e.\u0275fac}),t})(),uf=(()=>{var e;class t{constructor(n){this._subject=new Ee,this._urlChangeListeners=[],this._urlChangeSubscription=null,this._locationStrategy=n;const o=this._locationStrategy.getBaseHref();this._basePath=function hP(e){if(new RegExp("^(https?:)?//").test(e)){const[,r]=e.split(/\/\/[^\/]+/);return r}return e}($C(qC(o))),this._locationStrategy.onPopState(i=>{this._subject.emit({url:this.path(!0),pop:!0,state:i.state,type:i.type})})}ngOnDestroy(){this._urlChangeSubscription?.unsubscribe(),this._urlChangeListeners=[]}path(n=!1){return this.normalize(this._locationStrategy.path(n))}getState(){return this._locationStrategy.getState()}isCurrentPathEqualTo(n,o=""){return this.path()==this.normalize(n+Nn(o))}normalize(n){return t.stripTrailingSlash(function fP(e,t){if(!e||!t.startsWith(e))return t;const r=t.substring(e.length);return""===r||["/",";","?","#"].includes(r[0])?r:t}(this._basePath,qC(n)))}prepareExternalUrl(n){return n&&"/"!==n[0]&&(n="/"+n),this._locationStrategy.prepareExternalUrl(n)}go(n,o="",i=null){this._locationStrategy.pushState(i,"",n,o),this._notifyUrlChangeListeners(this.prepareExternalUrl(n+Nn(o)),i)}replaceState(n,o="",i=null){this._locationStrategy.replaceState(i,"",n,o),this._notifyUrlChangeListeners(this.prepareExternalUrl(n+Nn(o)),i)}forward(){this._locationStrategy.forward()}back(){this._locationStrategy.back()}historyGo(n=0){this._locationStrategy.historyGo?.(n)}onUrlChange(n){return this._urlChangeListeners.push(n),this._urlChangeSubscription||(this._urlChangeSubscription=this.subscribe(o=>{this._notifyUrlChangeListeners(o.url,o.state)})),()=>{const o=this._urlChangeListeners.indexOf(n);this._urlChangeListeners.splice(o,1),0===this._urlChangeListeners.length&&(this._urlChangeSubscription?.unsubscribe(),this._urlChangeSubscription=null)}}_notifyUrlChangeListeners(n="",o){this._urlChangeListeners.forEach(i=>i(n,o))}subscribe(n,o,i){return this._subject.subscribe({next:n,error:o,complete:i})}}return(e=t).normalizeQueryParams=Nn,e.joinWithSlash=cf,e.stripTrailingSlash=$C,e.\u0275fac=function(n){return new(n||e)(F(Cr))},e.\u0275prov=L({token:e,factory:function(){return function dP(){return new uf(F(Cr))}()},providedIn:"root"}),t})();function qC(e){return e.replace(/\/index.html$/,"")}function tD(e,t){t=encodeURIComponent(t);for(const r of e.split(";")){const n=r.indexOf("="),[o,i]=-1==n?[r,""]:[r.slice(0,n),r.slice(n+1)];if(o.trim()===t)return decodeURIComponent(i)}return null}const Cf=/\s+/,nD=[];let pl=(()=>{var e;class t{constructor(n,o,i,s){this._iterableDiffers=n,this._keyValueDiffers=o,this._ngEl=i,this._renderer=s,this.initialClasses=nD,this.stateMap=new Map}set klass(n){this.initialClasses=null!=n?n.trim().split(Cf):nD}set ngClass(n){this.rawClass="string"==typeof n?n.trim().split(Cf):n}ngDoCheck(){for(const o of this.initialClasses)this._updateState(o,!0);const n=this.rawClass;if(Array.isArray(n)||n instanceof Set)for(const o of n)this._updateState(o,!0);else if(null!=n)for(const o of Object.keys(n))this._updateState(o,!!n[o]);this._applyStateDiff()}_updateState(n,o){const i=this.stateMap.get(n);void 0!==i?(i.enabled!==o&&(i.changed=!0,i.enabled=o),i.touched=!0):this.stateMap.set(n,{enabled:o,changed:!0,touched:!0})}_applyStateDiff(){for(const n of this.stateMap){const o=n[0],i=n[1];i.changed?(this._toggleClass(o,i.enabled),i.changed=!1):i.touched||(i.enabled&&this._toggleClass(o,!1),this.stateMap.delete(o)),i.touched=!1}}_toggleClass(n,o){(n=n.trim()).length>0&&n.split(Cf).forEach(i=>{o?this._renderer.addClass(this._ngEl.nativeElement,i):this._renderer.removeClass(this._ngEl.nativeElement,i)})}}return(e=t).\u0275fac=function(n){return new(n||e)(I(nl),I($i),I(bt),I(Mn))},e.\u0275dir=B({type:e,selectors:[["","ngClass",""]],inputs:{klass:["class","klass"],ngClass:"ngClass"},standalone:!0}),t})();class JP{constructor(t,r,n,o){this.$implicit=t,this.ngForOf=r,this.index=n,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 Df=(()=>{var e;class t{set ngForOf(n){this._ngForOf=n,this._ngForOfDirty=!0}set ngForTrackBy(n){this._trackByFn=n}get ngForTrackBy(){return this._trackByFn}constructor(n,o,i){this._viewContainer=n,this._template=o,this._differs=i,this._ngForOf=null,this._ngForOfDirty=!0,this._differ=null}set ngForTemplate(n){n&&(this._template=n)}ngDoCheck(){if(this._ngForOfDirty){this._ngForOfDirty=!1;const n=this._ngForOf;!this._differ&&n&&(this._differ=this._differs.find(n).create(this.ngForTrackBy))}if(this._differ){const n=this._differ.diff(this._ngForOf);n&&this._applyChanges(n)}}_applyChanges(n){const o=this._viewContainer;n.forEachOperation((i,s,a)=>{if(null==i.previousIndex)o.createEmbeddedView(this._template,new JP(i.item,this._ngForOf,-1,-1),null===a?void 0:a);else if(null==a)o.remove(null===s?void 0:s);else if(null!==s){const l=o.get(s);o.move(l,a),oD(l,i)}});for(let i=0,s=o.length;i{oD(o.get(i.currentIndex),i)})}static ngTemplateContextGuard(n,o){return!0}}return(e=t).\u0275fac=function(n){return new(n||e)(I(Wt),I(xn),I(nl))},e.\u0275dir=B({type:e,selectors:[["","ngFor","","ngForOf",""]],inputs:{ngForOf:"ngForOf",ngForTrackBy:"ngForTrackBy",ngForTemplate:"ngForTemplate"},standalone:!0}),t})();function oD(e,t){e.context.$implicit=t.item}let gl=(()=>{var e;class t{constructor(n,o){this._viewContainer=n,this._context=new KP,this._thenTemplateRef=null,this._elseTemplateRef=null,this._thenViewRef=null,this._elseViewRef=null,this._thenTemplateRef=o}set ngIf(n){this._context.$implicit=this._context.ngIf=n,this._updateView()}set ngIfThen(n){iD("ngIfThen",n),this._thenTemplateRef=n,this._thenViewRef=null,this._updateView()}set ngIfElse(n){iD("ngIfElse",n),this._elseTemplateRef=n,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(n,o){return!0}}return(e=t).\u0275fac=function(n){return new(n||e)(I(Wt),I(xn))},e.\u0275dir=B({type:e,selectors:[["","ngIf",""]],inputs:{ngIf:"ngIf",ngIfThen:"ngIfThen",ngIfElse:"ngIfElse"},standalone:!0}),t})();class KP{constructor(){this.$implicit=null,this.ngIf=null}}function iD(e,t){if(t&&!t.createEmbeddedView)throw new Error(`${e} must be a TemplateRef, but received '${ke(t)}'.`)}let EO=(()=>{var e;class t{}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275mod=Cn({type:e}),e.\u0275inj=Kt({}),t})();function cD(e){return"server"===e}let TO=(()=>{var e;class t{}return(e=t).\u0275prov=L({token:e,providedIn:"root",factory:()=>new AO(F(pt),window)}),t})();class AO{constructor(t,r){this.document=t,this.window=r,this.offset=()=>[0,0]}setOffset(t){this.offset=Array.isArray(t)?()=>t:t}getScrollPosition(){return this.supportsScrolling()?[this.window.pageXOffset,this.window.pageYOffset]:[0,0]}scrollToPosition(t){this.supportsScrolling()&&this.window.scrollTo(t[0],t[1])}scrollToAnchor(t){if(!this.supportsScrolling())return;const r=function xO(e,t){const r=e.getElementById(t)||e.getElementsByName(t)[0];if(r)return r;if("function"==typeof e.createTreeWalker&&e.body&&"function"==typeof e.body.attachShadow){const n=e.createTreeWalker(e.body,NodeFilter.SHOW_ELEMENT);let o=n.currentNode;for(;o;){const i=o.shadowRoot;if(i){const s=i.getElementById(t)||i.querySelector(`[name="${t}"]`);if(s)return s}o=n.nextNode()}}return null}(this.document,t);r&&(this.scrollToElement(r),r.focus())}setHistoryScrollRestoration(t){this.supportsScrolling()&&(this.window.history.scrollRestoration=t)}scrollToElement(t){const r=t.getBoundingClientRect(),n=r.left+this.window.pageXOffset,o=r.top+this.window.pageYOffset,i=this.offset();this.window.scrollTo(n-i[0],o-i[1])}supportsScrolling(){try{return!!this.window&&!!this.window.scrollTo&&"pageXOffset"in this.window}catch{return!1}}}class uD{}const{isArray:ek}=Array,{getPrototypeOf:tk,prototype:nk,keys:rk}=Object;function gD(e){if(1===e.length){const t=e[0];if(ek(t))return{args:t,keys:null};if(function ok(e){return e&&"object"==typeof e&&tk(e)===nk}(t)){const r=rk(t);return{args:r.map(n=>t[n]),keys:r}}}return{args:e,keys:null}}const{isArray:ik}=Array;function mD(e){return ee(t=>function sk(e,t){return ik(t)?e(...t):e(t)}(e,t))}function vD(e,t){return e.reduce((r,n,o)=>(r[n]=t[o],r),{})}function Tf(...e){const t=Wo(e),r=tp(e),{args:n,keys:o}=gD(e);if(0===n.length)return Ne([],t);const i=new Ie(function ak(e,t,r=Vn){return n=>{yD(t,()=>{const{length:o}=e,i=new Array(o);let s=o,a=o;for(let l=0;l{const c=Ne(e[l],t);let u=!1;c.subscribe(Re(n,d=>{i[l]=d,u||(u=!0,a--),a||n.next(r(i.slice()))},()=>{--s||n.complete()}))},n)},n)}}(n,t,o?s=>vD(o,s):Vn));return r?i.pipe(mD(r)):i}function yD(e,t,r){e?vn(r,e,t):t()}const yl=zo(e=>function(){e(this),this.name="EmptyError",this.message="no elements in sequence"});function Af(...e){return function lk(){return xr(1)}()(Ne(e,Wo(e)))}function _D(e){return new Ie(t=>{Vt(e()).subscribe(t)})}function Wi(e,t){const r=ue(e)?e:()=>e,n=o=>o.error(r());return new Ie(t?o=>t.schedule(n,0,o):n)}function xf(){return Oe((e,t)=>{let r=null;e._refCount++;const n=Re(t,void 0,void 0,void 0,()=>{if(!e||e._refCount<=0||0<--e._refCount)return void(r=null);const o=e._connection,i=r;r=null,o&&(!i||o===i)&&o.unsubscribe(),t.unsubscribe()});e.subscribe(n),n.closed||(r=e.connect())})}class CD extends Ie{constructor(t,r){super(),this.source=t,this.subjectFactory=r,this._subject=null,this._refCount=0,this._connection=null,Hh(t)&&(this.lift=t.lift)}_subscribe(t){return this.getSubject().subscribe(t)}getSubject(){const t=this._subject;return(!t||t.isStopped)&&(this._subject=this.subjectFactory()),this._subject}_teardown(){this._refCount=0;const{_connection:t}=this;this._subject=this._connection=null,t?.unsubscribe()}connect(){let t=this._connection;if(!t){t=this._connection=new gt;const r=this.getSubject();t.add(this.source.subscribe(Re(r,void 0,()=>{this._teardown(),r.complete()},n=>{this._teardown(),r.error(n)},()=>this._teardown()))),t.closed&&(this._connection=null,t=gt.EMPTY)}return t}refCount(){return xf()(this)}}function Qt(e,t){return Oe((r,n)=>{let o=0;r.subscribe(Re(n,i=>e.call(t,i,o++)&&n.next(i)))})}function _l(e){return Oe((t,r)=>{let n=!1;t.subscribe(Re(r,o=>{n=!0,r.next(o)},()=>{n||r.next(e),r.complete()}))})}function DD(e=uk){return Oe((t,r)=>{let n=!1;t.subscribe(Re(r,o=>{n=!0,r.next(o)},()=>n?r.complete():r.error(e())))})}function uk(){return new yl}function Dr(e,t){const r=arguments.length>=2;return n=>n.pipe(e?Qt((o,i)=>e(o,i,n)):Vn,ir(1),r?_l(t):DD(()=>new yl))}function So(e,t){return ue(t)?Ve(e,t,1):Ve(e,1)}function Ze(e,t,r){const n=ue(e)||t||r?{next:e,error:t,complete:r}:e;return n?Oe((o,i)=>{var s;null===(s=n.subscribe)||void 0===s||s.call(n);let a=!0;o.subscribe(Re(i,l=>{var c;null===(c=n.next)||void 0===c||c.call(n,l),i.next(l)},()=>{var l;a=!1,null===(l=n.complete)||void 0===l||l.call(n),i.complete()},l=>{var c;a=!1,null===(c=n.error)||void 0===c||c.call(n,l),i.error(l)},()=>{var l,c;a&&(null===(l=n.unsubscribe)||void 0===l||l.call(n)),null===(c=n.finalize)||void 0===c||c.call(n)}))}):Vn}function br(e){return Oe((t,r)=>{let i,n=null,o=!1;n=t.subscribe(Re(r,void 0,void 0,s=>{i=Vt(e(s,br(e)(t))),n?(n.unsubscribe(),n=null,i.subscribe(r)):o=!0})),o&&(n.unsubscribe(),n=null,i.subscribe(r))})}function Rf(e){return e<=0?()=>Jt:Oe((t,r)=>{let n=[];t.subscribe(Re(r,o=>{n.push(o),e{for(const o of n)r.next(o);r.complete()},void 0,()=>{n=null}))})}function Zi(e){return Oe((t,r)=>{try{t.subscribe(r)}finally{r.add(e)}})}class mk extends aP{constructor(){super(...arguments),this.supportsDOMEvents=!0}}class Nf extends mk{static makeCurrent(){!function sP(e){af||(af=e)}(new Nf)}onAndCancel(t,r,n){return t.addEventListener(r,n),()=>{t.removeEventListener(r,n)}}dispatchEvent(t,r){t.dispatchEvent(r)}remove(t){t.parentNode&&t.parentNode.removeChild(t)}createElement(t,r){return(r=r||this.getDefaultDocument()).createElement(t)}createHtmlDocument(){return document.implementation.createHTMLDocument("fakeTitle")}getDefaultDocument(){return document}isElementNode(t){return t.nodeType===Node.ELEMENT_NODE}isShadowRoot(t){return t instanceof DocumentFragment}getGlobalEventTarget(t,r){return"window"===r?window:"document"===r?t:"body"===r?t.body:null}getBaseHref(t){const r=function vk(){return Yi=Yi||document.querySelector("base"),Yi?Yi.getAttribute("href"):null}();return null==r?null:function yk(e){Cl=Cl||document.createElement("a"),Cl.setAttribute("href",e);const t=Cl.pathname;return"/"===t.charAt(0)?t:`/${t}`}(r)}resetBaseElement(){Yi=null}getUserAgent(){return window.navigator.userAgent}getCookie(t){return tD(document.cookie,t)}}let Cl,Yi=null,Ck=(()=>{var e;class t{build(){return new XMLHttpRequest}}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275prov=L({token:e,factory:e.\u0275fac}),t})();const Pf=new x("EventManagerPlugins");let bD=(()=>{var e;class t{constructor(n,o){this._zone=o,this._eventNameToPlugin=new Map,n.forEach(i=>{i.manager=this}),this._plugins=n.slice().reverse()}addEventListener(n,o,i){return this._findPluginFor(o).addEventListener(n,o,i)}getZone(){return this._zone}_findPluginFor(n){let o=this._eventNameToPlugin.get(n);if(o)return o;if(o=this._plugins.find(s=>s.supports(n)),!o)throw new S(5101,!1);return this._eventNameToPlugin.set(n,o),o}}return(e=t).\u0275fac=function(n){return new(n||e)(F(Pf),F(ge))},e.\u0275prov=L({token:e,factory:e.\u0275fac}),t})();class wD{constructor(t){this._doc=t}}const Of="ng-app-id";let ED=(()=>{var e;class t{constructor(n,o,i,s={}){this.doc=n,this.appId=o,this.nonce=i,this.platformId=s,this.styleRef=new Map,this.hostNodes=new Set,this.styleNodesInDOM=this.collectServerRenderedStyles(),this.platformIsServer=cD(s),this.resetHostNodes()}addStyles(n){for(const o of n)1===this.changeUsageCount(o,1)&&this.onStyleAdded(o)}removeStyles(n){for(const o of n)this.changeUsageCount(o,-1)<=0&&this.onStyleRemoved(o)}ngOnDestroy(){const n=this.styleNodesInDOM;n&&(n.forEach(o=>o.remove()),n.clear());for(const o of this.getAllStyles())this.onStyleRemoved(o);this.resetHostNodes()}addHost(n){this.hostNodes.add(n);for(const o of this.getAllStyles())this.addStyleToHost(n,o)}removeHost(n){this.hostNodes.delete(n)}getAllStyles(){return this.styleRef.keys()}onStyleAdded(n){for(const o of this.hostNodes)this.addStyleToHost(o,n)}onStyleRemoved(n){const o=this.styleRef;o.get(n)?.elements?.forEach(i=>i.remove()),o.delete(n)}collectServerRenderedStyles(){const n=this.doc.head?.querySelectorAll(`style[${Of}="${this.appId}"]`);if(n?.length){const o=new Map;return n.forEach(i=>{null!=i.textContent&&o.set(i.textContent,i)}),o}return null}changeUsageCount(n,o){const i=this.styleRef;if(i.has(n)){const s=i.get(n);return s.usage+=o,s.usage}return i.set(n,{usage:o,elements:[]}),o}getStyleElement(n,o){const i=this.styleNodesInDOM,s=i?.get(o);if(s?.parentNode===n)return i.delete(o),s.removeAttribute(Of),s;{const a=this.doc.createElement("style");return this.nonce&&a.setAttribute("nonce",this.nonce),a.textContent=o,this.platformIsServer&&a.setAttribute(Of,this.appId),a}}addStyleToHost(n,o){const i=this.getStyleElement(n,o);n.appendChild(i);const s=this.styleRef,a=s.get(o)?.elements;a?a.push(i):s.set(o,{elements:[i],usage:1})}resetHostNodes(){const n=this.hostNodes;n.clear(),n.add(this.doc.head)}}return(e=t).\u0275fac=function(n){return new(n||e)(F(pt),F(Ca),F(Im,8),F(hr))},e.\u0275prov=L({token:e,factory:e.\u0275fac}),t})();const kf={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/"},Ff=/%COMP%/g,Ek=new x("RemoveStylesOnCompDestroy",{providedIn:"root",factory:()=>!1});function ID(e,t){return t.map(r=>r.replace(Ff,e))}let SD=(()=>{var e;class t{constructor(n,o,i,s,a,l,c,u=null){this.eventManager=n,this.sharedStylesHost=o,this.appId=i,this.removeStylesOnCompDestroy=s,this.doc=a,this.platformId=l,this.ngZone=c,this.nonce=u,this.rendererByCompId=new Map,this.platformIsServer=cD(l),this.defaultRenderer=new Lf(n,a,c,this.platformIsServer)}createRenderer(n,o){if(!n||!o)return this.defaultRenderer;this.platformIsServer&&o.encapsulation===Ht.ShadowDom&&(o={...o,encapsulation:Ht.Emulated});const i=this.getOrCreateRenderer(n,o);return i instanceof AD?i.applyToHost(n):i instanceof Vf&&i.applyStyles(),i}getOrCreateRenderer(n,o){const i=this.rendererByCompId;let s=i.get(o.id);if(!s){const a=this.doc,l=this.ngZone,c=this.eventManager,u=this.sharedStylesHost,d=this.removeStylesOnCompDestroy,g=this.platformIsServer;switch(o.encapsulation){case Ht.Emulated:s=new AD(c,u,o,this.appId,d,a,l,g);break;case Ht.ShadowDom:return new Tk(c,u,n,o,a,l,this.nonce,g);default:s=new Vf(c,u,o,d,a,l,g)}i.set(o.id,s)}return s}ngOnDestroy(){this.rendererByCompId.clear()}}return(e=t).\u0275fac=function(n){return new(n||e)(F(bD),F(ED),F(Ca),F(Ek),F(pt),F(hr),F(ge),F(Im))},e.\u0275prov=L({token:e,factory:e.\u0275fac}),t})();class Lf{constructor(t,r,n,o){this.eventManager=t,this.doc=r,this.ngZone=n,this.platformIsServer=o,this.data=Object.create(null),this.destroyNode=null}destroy(){}createElement(t,r){return r?this.doc.createElementNS(kf[r]||r,t):this.doc.createElement(t)}createComment(t){return this.doc.createComment(t)}createText(t){return this.doc.createTextNode(t)}appendChild(t,r){(TD(t)?t.content:t).appendChild(r)}insertBefore(t,r,n){t&&(TD(t)?t.content:t).insertBefore(r,n)}removeChild(t,r){t&&t.removeChild(r)}selectRootElement(t,r){let n="string"==typeof t?this.doc.querySelector(t):t;if(!n)throw new S(-5104,!1);return r||(n.textContent=""),n}parentNode(t){return t.parentNode}nextSibling(t){return t.nextSibling}setAttribute(t,r,n,o){if(o){r=o+":"+r;const i=kf[o];i?t.setAttributeNS(i,r,n):t.setAttribute(r,n)}else t.setAttribute(r,n)}removeAttribute(t,r,n){if(n){const o=kf[n];o?t.removeAttributeNS(o,r):t.removeAttribute(`${n}:${r}`)}else t.removeAttribute(r)}addClass(t,r){t.classList.add(r)}removeClass(t,r){t.classList.remove(r)}setStyle(t,r,n,o){o&(zn.DashCase|zn.Important)?t.style.setProperty(r,n,o&zn.Important?"important":""):t.style[r]=n}removeStyle(t,r,n){n&zn.DashCase?t.style.removeProperty(r):t.style[r]=""}setProperty(t,r,n){t[r]=n}setValue(t,r){t.nodeValue=r}listen(t,r,n){if("string"==typeof t&&!(t=Yn().getGlobalEventTarget(this.doc,t)))throw new Error(`Unsupported event target ${t} for event ${r}`);return this.eventManager.addEventListener(t,r,this.decoratePreventDefault(n))}decoratePreventDefault(t){return r=>{if("__ngUnwrap__"===r)return t;!1===(this.platformIsServer?this.ngZone.runGuarded(()=>t(r)):t(r))&&r.preventDefault()}}}function TD(e){return"TEMPLATE"===e.tagName&&void 0!==e.content}class Tk extends Lf{constructor(t,r,n,o,i,s,a,l){super(t,i,s,l),this.sharedStylesHost=r,this.hostEl=n,this.shadowRoot=n.attachShadow({mode:"open"}),this.sharedStylesHost.addHost(this.shadowRoot);const c=ID(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(t){return t===this.hostEl?this.shadowRoot:t}appendChild(t,r){return super.appendChild(this.nodeOrShadowRoot(t),r)}insertBefore(t,r,n){return super.insertBefore(this.nodeOrShadowRoot(t),r,n)}removeChild(t,r){return super.removeChild(this.nodeOrShadowRoot(t),r)}parentNode(t){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(t)))}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}}class Vf extends Lf{constructor(t,r,n,o,i,s,a,l){super(t,i,s,a),this.sharedStylesHost=r,this.removeStylesOnCompDestroy=o,this.styles=l?ID(l,n.styles):n.styles}applyStyles(){this.sharedStylesHost.addStyles(this.styles)}destroy(){this.removeStylesOnCompDestroy&&this.sharedStylesHost.removeStyles(this.styles)}}class AD extends Vf{constructor(t,r,n,o,i,s,a,l){const c=o+"-"+n.id;super(t,r,n,i,s,a,l,c),this.contentAttr=function Mk(e){return"_ngcontent-%COMP%".replace(Ff,e)}(c),this.hostAttr=function Ik(e){return"_nghost-%COMP%".replace(Ff,e)}(c)}applyToHost(t){this.applyStyles(),this.setAttribute(t,this.hostAttr,"")}createElement(t,r){const n=super.createElement(t,r);return super.setAttribute(n,this.contentAttr,""),n}}let Ak=(()=>{var e;class t extends wD{constructor(n){super(n)}supports(n){return!0}addEventListener(n,o,i){return n.addEventListener(o,i,!1),()=>this.removeEventListener(n,o,i)}removeEventListener(n,o,i){return n.removeEventListener(o,i)}}return(e=t).\u0275fac=function(n){return new(n||e)(F(pt))},e.\u0275prov=L({token:e,factory:e.\u0275fac}),t})();const xD=["alt","control","meta","shift"],xk={"\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"},Rk={alt:e=>e.altKey,control:e=>e.ctrlKey,meta:e=>e.metaKey,shift:e=>e.shiftKey};let Nk=(()=>{var e;class t extends wD{constructor(n){super(n)}supports(n){return null!=t.parseEventName(n)}addEventListener(n,o,i){const s=t.parseEventName(o),a=t.eventCallback(s.fullKey,i,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>Yn().onAndCancel(n,s.domEventName,a))}static parseEventName(n){const o=n.toLowerCase().split("."),i=o.shift();if(0===o.length||"keydown"!==i&&"keyup"!==i)return null;const s=t._normalizeKey(o.pop());let a="",l=o.indexOf("code");if(l>-1&&(o.splice(l,1),a="code."),xD.forEach(u=>{const d=o.indexOf(u);d>-1&&(o.splice(d,1),a+=u+".")}),a+=s,0!=o.length||0===s.length)return null;const c={};return c.domEventName=i,c.fullKey=a,c}static matchEventFullKeyCode(n,o){let i=xk[n.key]||n.key,s="";return o.indexOf("code.")>-1&&(i=n.code,s="code."),!(null==i||!i)&&(i=i.toLowerCase()," "===i?i="space":"."===i&&(i="dot"),xD.forEach(a=>{a!==i&&(0,Rk[a])(n)&&(s+=a+".")}),s+=i,s===o)}static eventCallback(n,o,i){return s=>{t.matchEventFullKeyCode(s,n)&&i.runGuarded(()=>o(s))}}static _normalizeKey(n){return"esc"===n?"escape":n}}return(e=t).\u0275fac=function(n){return new(n||e)(F(pt))},e.\u0275prov=L({token:e,factory:e.\u0275fac}),t})();function RD(e){return{appProviders:[...PD,...e?.providers??[]],platformProviders:Lk}}const Lk=[{provide:hr,useValue:"browser"},{provide:Mm,useValue:function Ok(){Nf.makeCurrent()},multi:!0},{provide:pt,useFactory:function Fk(){return function rI(e){Du=e}(document),document},deps:[]}],Vk=new x(""),ND=[{provide:Xa,useClass:class _k{addToWindow(t){de.getAngularTestability=(n,o=!0)=>{const i=t.findTestabilityInTree(n,o);if(null==i)throw new S(5103,!1);return i},de.getAllAngularTestabilities=()=>t.getAllTestabilities(),de.getAllAngularRootElements=()=>t.getAllRootElements(),de.frameworkStabilizers||(de.frameworkStabilizers=[]),de.frameworkStabilizers.push(n=>{const o=de.getAllAngularTestabilities();let i=o.length,s=!1;const a=function(l){s=s||l,i--,0==i&&n(s)};o.forEach(l=>{l.whenStable(a)})})}findTestabilityInTree(t,r,n){return null==r?null:t.getTestability(r)??(n?Yn().isShadowRoot(r)?this.findTestabilityInTree(t,r.host,!0):this.findTestabilityInTree(t,r.parentElement,!0):null)}},deps:[]},{provide:hC,useClass:Zd,deps:[ge,Yd,Xa]},{provide:Zd,useClass:Zd,deps:[ge,Yd,Xa]}],PD=[{provide:Ru,useValue:"root"},{provide:pr,useFactory:function kk(){return new pr},deps:[]},{provide:Pf,useClass:Ak,multi:!0,deps:[pt,ge,hr]},{provide:Pf,useClass:Nk,multi:!0,deps:[pt]},SD,ED,bD,{provide:Nm,useExisting:SD},{provide:uD,useClass:Ck,deps:[]},[]];let jk=(()=>{var e;class t{constructor(n){}static withServerTransition(n){return{ngModule:t,providers:[{provide:Ca,useValue:n.appId}]}}}return(e=t).\u0275fac=function(n){return new(n||e)(F(Vk,12))},e.\u0275mod=Cn({type:e}),e.\u0275inj=Kt({providers:[...PD,...ND],imports:[EO,WN]}),t})(),OD=(()=>{var e;class t{constructor(n){this._doc=n}getTitle(){return this._doc.title}setTitle(n){this._doc.title=n||""}}return(e=t).\u0275fac=function(n){return new(n||e)(F(pt))},e.\u0275prov=L({token:e,factory:function(n){let o=null;return o=n?new n:function Uk(){return new OD(F(pt))}(),o},providedIn:"root"}),t})();typeof window<"u"&&window;const W="primary",Qi=Symbol("RouteTitle");class qk{constructor(t){this.params=t||{}}has(t){return Object.prototype.hasOwnProperty.call(this.params,t)}get(t){if(this.has(t)){const r=this.params[t];return Array.isArray(r)?r[0]:r}return null}getAll(t){if(this.has(t)){const r=this.params[t];return Array.isArray(r)?r:[r]}return[]}get keys(){return Object.keys(this.params)}}function To(e){return new qk(e)}function Wk(e,t,r){const n=r.path.split("/");if(n.length>e.length||"full"===r.pathMatch&&(t.hasChildren()||n.lengthn[i]===o)}return e===t}function jD(e){return e.length>0?e[e.length-1]:null}function Xn(e){return function KO(e){return!!e&&(e instanceof Ie||ue(e.lift)&&ue(e.subscribe))}(e)?e:Ri(e)?Ne(Promise.resolve(e)):V(e)}const Yk={exact:function BD(e,t,r){if(!wr(e.segments,t.segments)||!Dl(e.segments,t.segments,r)||e.numberOfChildren!==t.numberOfChildren)return!1;for(const n in t.children)if(!e.children[n]||!BD(e.children[n],t.children[n],r))return!1;return!0},subset:$D},HD={exact:function Qk(e,t){return fn(e,t)},subset:function Xk(e,t){return Object.keys(t).length<=Object.keys(e).length&&Object.keys(t).every(r=>VD(e[r],t[r]))},ignored:()=>!0};function UD(e,t,r){return Yk[r.paths](e.root,t.root,r.matrixParams)&&HD[r.queryParams](e.queryParams,t.queryParams)&&!("exact"===r.fragment&&e.fragment!==t.fragment)}function $D(e,t,r){return GD(e,t,t.segments,r)}function GD(e,t,r,n){if(e.segments.length>r.length){const o=e.segments.slice(0,r.length);return!(!wr(o,r)||t.hasChildren()||!Dl(o,r,n))}if(e.segments.length===r.length){if(!wr(e.segments,r)||!Dl(e.segments,r,n))return!1;for(const o in t.children)if(!e.children[o]||!$D(e.children[o],t.children[o],n))return!1;return!0}{const o=r.slice(0,e.segments.length),i=r.slice(e.segments.length);return!!(wr(e.segments,o)&&Dl(e.segments,o,n)&&e.children[W])&&GD(e.children[W],t,i,n)}}function Dl(e,t,r){return t.every((n,o)=>HD[r](e[o].parameters,n.parameters))}class Ao{constructor(t=new ce([],{}),r={},n=null){this.root=t,this.queryParams=r,this.fragment=n}get queryParamMap(){return this._queryParamMap||(this._queryParamMap=To(this.queryParams)),this._queryParamMap}toString(){return eF.serialize(this)}}class ce{constructor(t,r){this.segments=t,this.children=r,this.parent=null,Object.values(r).forEach(n=>n.parent=this)}hasChildren(){return this.numberOfChildren>0}get numberOfChildren(){return Object.keys(this.children).length}toString(){return bl(this)}}class Xi{constructor(t,r){this.path=t,this.parameters=r}get parameterMap(){return this._parameterMap||(this._parameterMap=To(this.parameters)),this._parameterMap}toString(){return WD(this)}}function wr(e,t){return e.length===t.length&&e.every((r,n)=>r.path===t[n].path)}let Ji=(()=>{var e;class t{}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275prov=L({token:e,factory:function(){return new Hf},providedIn:"root"}),t})();class Hf{parse(t){const r=new dF(t);return new Ao(r.parseRootSegment(),r.parseQueryParams(),r.parseFragment())}serialize(t){const r=`/${Ki(t.root,!0)}`,n=function rF(e){const t=Object.keys(e).map(r=>{const n=e[r];return Array.isArray(n)?n.map(o=>`${wl(r)}=${wl(o)}`).join("&"):`${wl(r)}=${wl(n)}`}).filter(r=>!!r);return t.length?`?${t.join("&")}`:""}(t.queryParams);return`${r}${n}${"string"==typeof t.fragment?`#${function tF(e){return encodeURI(e)}(t.fragment)}`:""}`}}const eF=new Hf;function bl(e){return e.segments.map(t=>WD(t)).join("/")}function Ki(e,t){if(!e.hasChildren())return bl(e);if(t){const r=e.children[W]?Ki(e.children[W],!1):"",n=[];return Object.entries(e.children).forEach(([o,i])=>{o!==W&&n.push(`${o}:${Ki(i,!1)}`)}),n.length>0?`${r}(${n.join("//")})`:r}{const r=function Kk(e,t){let r=[];return Object.entries(e.children).forEach(([n,o])=>{n===W&&(r=r.concat(t(o,n)))}),Object.entries(e.children).forEach(([n,o])=>{n!==W&&(r=r.concat(t(o,n)))}),r}(e,(n,o)=>o===W?[Ki(e.children[W],!1)]:[`${o}:${Ki(n,!1)}`]);return 1===Object.keys(e.children).length&&null!=e.children[W]?`${bl(e)}/${r[0]}`:`${bl(e)}/(${r.join("//")})`}}function zD(e){return encodeURIComponent(e).replace(/%40/g,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",")}function wl(e){return zD(e).replace(/%3B/gi,";")}function Uf(e){return zD(e).replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/%26/gi,"&")}function El(e){return decodeURIComponent(e)}function qD(e){return El(e.replace(/\+/g,"%20"))}function WD(e){return`${Uf(e.path)}${function nF(e){return Object.keys(e).map(t=>`;${Uf(t)}=${Uf(e[t])}`).join("")}(e.parameters)}`}const oF=/^[^\/()?;#]+/;function Bf(e){const t=e.match(oF);return t?t[0]:""}const iF=/^[^\/()?;=#]+/,aF=/^[^=?&#]+/,cF=/^[^&#]+/;class dF{constructor(t){this.url=t,this.remaining=t}parseRootSegment(){return this.consumeOptional("/"),""===this.remaining||this.peekStartsWith("?")||this.peekStartsWith("#")?new ce([],{}):new ce([],this.parseChildren())}parseQueryParams(){const t={};if(this.consumeOptional("?"))do{this.parseQueryParam(t)}while(this.consumeOptional("&"));return t}parseFragment(){return this.consumeOptional("#")?decodeURIComponent(this.remaining):null}parseChildren(){if(""===this.remaining)return{};this.consumeOptional("/");const t=[];for(this.peekStartsWith("(")||t.push(this.parseSegment());this.peekStartsWith("/")&&!this.peekStartsWith("//")&&!this.peekStartsWith("/(");)this.capture("/"),t.push(this.parseSegment());let r={};this.peekStartsWith("/(")&&(this.capture("/"),r=this.parseParens(!0));let n={};return this.peekStartsWith("(")&&(n=this.parseParens(!1)),(t.length>0||Object.keys(r).length>0)&&(n[W]=new ce(t,r)),n}parseSegment(){const t=Bf(this.remaining);if(""===t&&this.peekStartsWith(";"))throw new S(4009,!1);return this.capture(t),new Xi(El(t),this.parseMatrixParams())}parseMatrixParams(){const t={};for(;this.consumeOptional(";");)this.parseParam(t);return t}parseParam(t){const r=function sF(e){const t=e.match(iF);return t?t[0]:""}(this.remaining);if(!r)return;this.capture(r);let n="";if(this.consumeOptional("=")){const o=Bf(this.remaining);o&&(n=o,this.capture(n))}t[El(r)]=El(n)}parseQueryParam(t){const r=function lF(e){const t=e.match(aF);return t?t[0]:""}(this.remaining);if(!r)return;this.capture(r);let n="";if(this.consumeOptional("=")){const s=function uF(e){const t=e.match(cF);return t?t[0]:""}(this.remaining);s&&(n=s,this.capture(n))}const o=qD(r),i=qD(n);if(t.hasOwnProperty(o)){let s=t[o];Array.isArray(s)||(s=[s],t[o]=s),s.push(i)}else t[o]=i}parseParens(t){const r={};for(this.capture("(");!this.consumeOptional(")")&&this.remaining.length>0;){const n=Bf(this.remaining),o=this.remaining[n.length];if("/"!==o&&")"!==o&&";"!==o)throw new S(4010,!1);let i;n.indexOf(":")>-1?(i=n.slice(0,n.indexOf(":")),this.capture(i),this.capture(":")):t&&(i=W);const s=this.parseChildren();r[i]=1===Object.keys(s).length?s[W]:new ce([],s),this.consumeOptional("//")}return r}peekStartsWith(t){return this.remaining.startsWith(t)}consumeOptional(t){return!!this.peekStartsWith(t)&&(this.remaining=this.remaining.substring(t.length),!0)}capture(t){if(!this.consumeOptional(t))throw new S(4011,!1)}}function ZD(e){return e.segments.length>0?new ce([],{[W]:e}):e}function YD(e){const t={};for(const n of Object.keys(e.children)){const i=YD(e.children[n]);if(n===W&&0===i.segments.length&&i.hasChildren())for(const[s,a]of Object.entries(i.children))t[s]=a;else(i.segments.length>0||i.hasChildren())&&(t[n]=i)}return function fF(e){if(1===e.numberOfChildren&&e.children[W]){const t=e.children[W];return new ce(e.segments.concat(t.segments),t.children)}return e}(new ce(e.segments,t))}function Er(e){return e instanceof Ao}function QD(e){let t;const o=ZD(function r(i){const s={};for(const l of i.children){const c=r(l);s[l.outlet]=c}const a=new ce(i.url,s);return i===e&&(t=a),a}(e.root));return t??o}function XD(e,t,r,n){let o=e;for(;o.parent;)o=o.parent;if(0===t.length)return $f(o,o,o,r,n);const i=function pF(e){if("string"==typeof e[0]&&1===e.length&&"/"===e[0])return new KD(!0,0,e);let t=0,r=!1;const n=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?r=!0:".."===a?t++:""!=a&&o.push(a))}),o):[...o,i]},[]);return new KD(r,t,n)}(t);if(i.toRoot())return $f(o,o,new ce([],{}),r,n);const s=function gF(e,t,r){if(e.isAbsolute)return new Il(t,!0,0);if(!r)return new Il(t,!1,NaN);if(null===r.parent)return new Il(r,!0,0);const n=Ml(e.commands[0])?0:1;return function mF(e,t,r){let n=e,o=t,i=r;for(;i>o;){if(i-=o,n=n.parent,!n)throw new S(4005,!1);o=n.segments.length}return new Il(n,!1,o-i)}(r,r.segments.length-1+n,e.numberOfDoubleDots)}(i,o,e),a=s.processChildren?ts(s.segmentGroup,s.index,i.commands):eb(s.segmentGroup,s.index,i.commands);return $f(o,s.segmentGroup,a,r,n)}function Ml(e){return"object"==typeof e&&null!=e&&!e.outlets&&!e.segmentPath}function es(e){return"object"==typeof e&&null!=e&&e.outlets}function $f(e,t,r,n,o){let s,i={};n&&Object.entries(n).forEach(([l,c])=>{i[l]=Array.isArray(c)?c.map(u=>`${u}`):`${c}`}),s=e===t?r:JD(e,t,r);const a=ZD(YD(s));return new Ao(a,i,o)}function JD(e,t,r){const n={};return Object.entries(e.children).forEach(([o,i])=>{n[o]=i===t?r:JD(i,t,r)}),new ce(e.segments,n)}class KD{constructor(t,r,n){if(this.isAbsolute=t,this.numberOfDoubleDots=r,this.commands=n,t&&n.length>0&&Ml(n[0]))throw new S(4003,!1);const o=n.find(es);if(o&&o!==jD(n))throw new S(4004,!1)}toRoot(){return this.isAbsolute&&1===this.commands.length&&"/"==this.commands[0]}}class Il{constructor(t,r,n){this.segmentGroup=t,this.processChildren=r,this.index=n}}function eb(e,t,r){if(e||(e=new ce([],{})),0===e.segments.length&&e.hasChildren())return ts(e,t,r);const n=function yF(e,t,r){let n=0,o=t;const i={match:!1,pathIndex:0,commandIndex:0};for(;o=r.length)return i;const s=e.segments[o],a=r[n];if(es(a))break;const l=`${a}`,c=n0&&void 0===l)break;if(l&&c&&"object"==typeof c&&void 0===c.outlets){if(!nb(l,c,s))return i;n+=2}else{if(!nb(l,{},s))return i;n++}o++}return{match:!0,pathIndex:o,commandIndex:n}}(e,t,r),o=r.slice(n.commandIndex);if(n.match&&n.pathIndexi!==W)&&e.children[W]&&1===e.numberOfChildren&&0===e.children[W].segments.length){const i=ts(e.children[W],t,r);return new ce(e.segments,i.children)}return Object.entries(n).forEach(([i,s])=>{"string"==typeof s&&(s=[s]),null!==s&&(o[i]=eb(e.children[i],t,s))}),Object.entries(e.children).forEach(([i,s])=>{void 0===n[i]&&(o[i]=s)}),new ce(e.segments,o)}}function Gf(e,t,r){const n=e.segments.slice(0,t);let o=0;for(;o{"string"==typeof n&&(n=[n]),null!==n&&(t[r]=Gf(new ce([],{}),0,n))}),t}function tb(e){const t={};return Object.entries(e).forEach(([r,n])=>t[r]=`${n}`),t}function nb(e,t,r){return e==r.path&&fn(t,r.parameters)}const ns="imperative";class hn{constructor(t,r){this.id=t,this.url=r}}class Sl extends hn{constructor(t,r,n="imperative",o=null){super(t,r),this.type=0,this.navigationTrigger=n,this.restoredState=o}toString(){return`NavigationStart(id: ${this.id}, url: '${this.url}')`}}class kn extends hn{constructor(t,r,n){super(t,r),this.urlAfterRedirects=n,this.type=1}toString(){return`NavigationEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}')`}}class rs extends hn{constructor(t,r,n,o){super(t,r),this.reason=n,this.code=o,this.type=2}toString(){return`NavigationCancel(id: ${this.id}, url: '${this.url}')`}}class xo extends hn{constructor(t,r,n,o){super(t,r),this.reason=n,this.code=o,this.type=16}}class Tl extends hn{constructor(t,r,n,o){super(t,r),this.error=n,this.target=o,this.type=3}toString(){return`NavigationError(id: ${this.id}, url: '${this.url}', error: ${this.error})`}}class rb extends hn{constructor(t,r,n,o){super(t,r),this.urlAfterRedirects=n,this.state=o,this.type=4}toString(){return`RoutesRecognized(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class CF extends hn{constructor(t,r,n,o){super(t,r),this.urlAfterRedirects=n,this.state=o,this.type=7}toString(){return`GuardsCheckStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class DF extends hn{constructor(t,r,n,o,i){super(t,r),this.urlAfterRedirects=n,this.state=o,this.shouldActivate=i,this.type=8}toString(){return`GuardsCheckEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state}, shouldActivate: ${this.shouldActivate})`}}class bF extends hn{constructor(t,r,n,o){super(t,r),this.urlAfterRedirects=n,this.state=o,this.type=5}toString(){return`ResolveStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class wF extends hn{constructor(t,r,n,o){super(t,r),this.urlAfterRedirects=n,this.state=o,this.type=6}toString(){return`ResolveEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class EF{constructor(t){this.route=t,this.type=9}toString(){return`RouteConfigLoadStart(path: ${this.route.path})`}}class MF{constructor(t){this.route=t,this.type=10}toString(){return`RouteConfigLoadEnd(path: ${this.route.path})`}}class IF{constructor(t){this.snapshot=t,this.type=11}toString(){return`ChildActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class SF{constructor(t){this.snapshot=t,this.type=12}toString(){return`ChildActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class TF{constructor(t){this.snapshot=t,this.type=13}toString(){return`ActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class AF{constructor(t){this.snapshot=t,this.type=14}toString(){return`ActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class ob{constructor(t,r,n){this.routerEvent=t,this.position=r,this.anchor=n,this.type=15}toString(){return`Scroll(anchor: '${this.anchor}', position: '${this.position?`${this.position[0]}, ${this.position[1]}`:null}')`}}class zf{}class qf{constructor(t){this.url=t}}class xF{constructor(){this.outlet=null,this.route=null,this.injector=null,this.children=new os,this.attachRef=null}}let os=(()=>{var e;class t{constructor(){this.contexts=new Map}onChildOutletCreated(n,o){const i=this.getOrCreateContext(n);i.outlet=o,this.contexts.set(n,i)}onChildOutletDestroyed(n){const o=this.getContext(n);o&&(o.outlet=null,o.attachRef=null)}onOutletDeactivated(){const n=this.contexts;return this.contexts=new Map,n}onOutletReAttached(n){this.contexts=n}getOrCreateContext(n){let o=this.getContext(n);return o||(o=new xF,this.contexts.set(n,o)),o}getContext(n){return this.contexts.get(n)||null}}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275prov=L({token:e,factory:e.\u0275fac,providedIn:"root"}),t})();class ib{constructor(t){this._root=t}get root(){return this._root.value}parent(t){const r=this.pathFromRoot(t);return r.length>1?r[r.length-2]:null}children(t){const r=Wf(t,this._root);return r?r.children.map(n=>n.value):[]}firstChild(t){const r=Wf(t,this._root);return r&&r.children.length>0?r.children[0].value:null}siblings(t){const r=Zf(t,this._root);return r.length<2?[]:r[r.length-2].children.map(o=>o.value).filter(o=>o!==t)}pathFromRoot(t){return Zf(t,this._root).map(r=>r.value)}}function Wf(e,t){if(e===t.value)return t;for(const r of t.children){const n=Wf(e,r);if(n)return n}return null}function Zf(e,t){if(e===t.value)return[t];for(const r of t.children){const n=Zf(e,r);if(n.length)return n.unshift(t),n}return[]}class Fn{constructor(t,r){this.value=t,this.children=r}toString(){return`TreeNode(${this.value})`}}function Ro(e){const t={};return e&&e.children.forEach(r=>t[r.value.outlet]=r),t}class sb extends ib{constructor(t,r){super(t),this.snapshot=r,Yf(this,t)}toString(){return this.snapshot.toString()}}function ab(e,t){const r=function RF(e,t){const s=new Al([],{},{},"",{},W,t,null,{});return new cb("",new Fn(s,[]))}(0,t),n=new At([new Xi("",{})]),o=new At({}),i=new At({}),s=new At({}),a=new At(""),l=new Mr(n,o,s,a,i,W,t,r.root);return l.snapshot=r.root,new sb(new Fn(l,[]),r)}class Mr{constructor(t,r,n,o,i,s,a,l){this.urlSubject=t,this.paramsSubject=r,this.queryParamsSubject=n,this.fragmentSubject=o,this.dataSubject=i,this.outlet=s,this.component=a,this._futureSnapshot=l,this.title=this.dataSubject?.pipe(ee(c=>c[Qi]))??V(void 0),this.url=t,this.params=r,this.queryParams=n,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._paramMap=this.params.pipe(ee(t=>To(t)))),this._paramMap}get queryParamMap(){return this._queryParamMap||(this._queryParamMap=this.queryParams.pipe(ee(t=>To(t)))),this._queryParamMap}toString(){return this.snapshot?this.snapshot.toString():`Future(${this._futureSnapshot})`}}function lb(e,t="emptyOnly"){const r=e.pathFromRoot;let n=0;if("always"!==t)for(n=r.length-1;n>=1;){const o=r[n],i=r[n-1];if(o.routeConfig&&""===o.routeConfig.path)n--;else{if(i.component)break;n--}}return function NF(e){return e.reduce((t,r)=>({params:{...t.params,...r.params},data:{...t.data,...r.data},resolve:{...r.data,...t.resolve,...r.routeConfig?.data,...r._resolvedData}}),{params:{},data:{},resolve:{}})}(r.slice(n))}class Al{get title(){return this.data?.[Qi]}constructor(t,r,n,o,i,s,a,l,c){this.url=t,this.params=r,this.queryParams=n,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||(this._paramMap=To(this.params)),this._paramMap}get queryParamMap(){return this._queryParamMap||(this._queryParamMap=To(this.queryParams)),this._queryParamMap}toString(){return`Route(url:'${this.url.map(n=>n.toString()).join("/")}', path:'${this.routeConfig?this.routeConfig.path:""}')`}}class cb extends ib{constructor(t,r){super(r),this.url=t,Yf(this,r)}toString(){return ub(this._root)}}function Yf(e,t){t.value._routerState=e,t.children.forEach(r=>Yf(e,r))}function ub(e){const t=e.children.length>0?` { ${e.children.map(ub).join(", ")} } `:"";return`${e.value}${t}`}function Qf(e){if(e.snapshot){const t=e.snapshot,r=e._futureSnapshot;e.snapshot=r,fn(t.queryParams,r.queryParams)||e.queryParamsSubject.next(r.queryParams),t.fragment!==r.fragment&&e.fragmentSubject.next(r.fragment),fn(t.params,r.params)||e.paramsSubject.next(r.params),function Zk(e,t){if(e.length!==t.length)return!1;for(let r=0;rfn(r.parameters,t[n].parameters))}(e.url,t.url);return r&&!(!e.parent!=!t.parent)&&(!e.parent||Xf(e.parent,t.parent))}let Jf=(()=>{var e;class t{constructor(){this.activated=null,this._activatedRoute=null,this.name=W,this.activateEvents=new Ee,this.deactivateEvents=new Ee,this.attachEvents=new Ee,this.detachEvents=new Ee,this.parentContexts=A(os),this.location=A(Wt),this.changeDetector=A(Ka),this.environmentInjector=A(Dt),this.inputBinder=A(xl,{optional:!0}),this.supportsBindingToComponentInputs=!0}get activatedComponentRef(){return this.activated}ngOnChanges(n){if(n.name){const{firstChange:o,previousValue:i}=n.name;if(o)return;this.isTrackedInParentContexts(i)&&(this.deactivate(),this.parentContexts.onChildOutletDestroyed(i)),this.initializeOutletWithName()}}ngOnDestroy(){this.isTrackedInParentContexts(this.name)&&this.parentContexts.onChildOutletDestroyed(this.name),this.inputBinder?.unsubscribeFromRouteData(this)}isTrackedInParentContexts(n){return this.parentContexts.getContext(n)?.outlet===this}ngOnInit(){this.initializeOutletWithName()}initializeOutletWithName(){if(this.parentContexts.onChildOutletCreated(this.name,this),this.activated)return;const n=this.parentContexts.getContext(this.name);n?.route&&(n.attachRef?this.attach(n.attachRef,n.route):this.activateWith(n.route,n.injector))}get isActivated(){return!!this.activated}get component(){if(!this.activated)throw new S(4012,!1);return this.activated.instance}get activatedRoute(){if(!this.activated)throw new S(4012,!1);return this._activatedRoute}get activatedRouteData(){return this._activatedRoute?this._activatedRoute.snapshot.data:{}}detach(){if(!this.activated)throw new S(4012,!1);this.location.detach();const n=this.activated;return this.activated=null,this._activatedRoute=null,this.detachEvents.emit(n.instance),n}attach(n,o){this.activated=n,this._activatedRoute=o,this.location.insert(n.hostView),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.attachEvents.emit(n.instance)}deactivate(){if(this.activated){const n=this.component;this.activated.destroy(),this.activated=null,this._activatedRoute=null,this.deactivateEvents.emit(n)}}activateWith(n,o){if(this.isActivated)throw new S(4013,!1);this._activatedRoute=n;const i=this.location,a=n.snapshot.component,l=this.parentContexts.getOrCreateContext(this.name).children,c=new PF(n,l,i.injector);this.activated=i.createComponent(a,{index:i.length,injector:c,environmentInjector:o??this.environmentInjector}),this.changeDetector.markForCheck(),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.activateEvents.emit(this.activated.instance)}}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275dir=B({type:e,selectors:[["router-outlet"]],inputs:{name:"name"},outputs:{activateEvents:"activate",deactivateEvents:"deactivate",attachEvents:"attach",detachEvents:"detach"},exportAs:["outlet"],standalone:!0,features:[Rt]}),t})();class PF{constructor(t,r,n){this.route=t,this.childContexts=r,this.parent=n}get(t,r){return t===Mr?this.route:t===os?this.childContexts:this.parent.get(t,r)}}const xl=new x("");let db=(()=>{var e;class t{constructor(){this.outletDataSubscriptions=new Map}bindActivatedRouteToOutletComponent(n){this.unsubscribeFromRouteData(n),this.subscribeToRouteData(n)}unsubscribeFromRouteData(n){this.outletDataSubscriptions.get(n)?.unsubscribe(),this.outletDataSubscriptions.delete(n)}subscribeToRouteData(n){const{activatedRoute:o}=n,i=Tf([o.queryParams,o.params,o.data]).pipe(jt(([s,a,l],c)=>(l={...s,...a,...l},0===c?V(l):Promise.resolve(l)))).subscribe(s=>{if(!n.isActivated||!n.activatedComponentRef||n.activatedRoute!==o||null===o.component)return void this.unsubscribeFromRouteData(n);const a=function iP(e){const t=X(e);if(!t)return null;const r=new Ii(t);return{get selector(){return r.selector},get type(){return r.componentType},get inputs(){return r.inputs},get outputs(){return r.outputs},get ngContentSelectors(){return r.ngContentSelectors},get isStandalone(){return t.standalone},get isSignal(){return t.signals}}}(o.component);if(a)for(const{templateName:l}of a.inputs)n.activatedComponentRef.setInput(l,s[l]);else this.unsubscribeFromRouteData(n)});this.outletDataSubscriptions.set(n,i)}}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275prov=L({token:e,factory:e.\u0275fac}),t})();function is(e,t,r){if(r&&e.shouldReuseRoute(t.value,r.value.snapshot)){const n=r.value;n._futureSnapshot=t.value;const o=function kF(e,t,r){return t.children.map(n=>{for(const o of r.children)if(e.shouldReuseRoute(n.value,o.value.snapshot))return is(e,n,o);return is(e,n)})}(e,t,r);return new Fn(n,o)}{if(e.shouldAttach(t.value)){const i=e.retrieve(t.value);if(null!==i){const s=i.route;return s.value._futureSnapshot=t.value,s.children=t.children.map(a=>is(e,a)),s}}const n=function FF(e){return new Mr(new At(e.url),new At(e.params),new At(e.queryParams),new At(e.fragment),new At(e.data),e.outlet,e.component,e)}(t.value),o=t.children.map(i=>is(e,i));return new Fn(n,o)}}const Kf="ngNavigationCancelingError";function fb(e,t){const{redirectTo:r,navigationBehaviorOptions:n}=Er(t)?{redirectTo:t,navigationBehaviorOptions:void 0}:t,o=hb(!1,0,t);return o.url=r,o.navigationBehaviorOptions=n,o}function hb(e,t,r){const n=new Error("NavigationCancelingError: "+(e||""));return n[Kf]=!0,n.cancellationCode=t,r&&(n.url=r),n}function pb(e){return e&&e[Kf]}let gb=(()=>{var e;class t{}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275cmp=vt({type:e,selectors:[["ng-component"]],standalone:!0,features:[Mt],decls:1,vars:0,template:function(n,o){1&n&&v(0,"router-outlet")},dependencies:[Jf],encapsulation:2}),t})();function eh(e){const t=e.children&&e.children.map(eh),r=t?{...e,children:t}:{...e};return!r.component&&!r.loadComponent&&(t||r.loadChildren)&&r.outlet&&r.outlet!==W&&(r.component=gb),r}function Xt(e){return e.outlet||W}function ss(e){if(!e)return null;if(e.routeConfig?._injector)return e.routeConfig._injector;for(let t=e.parent;t;t=t.parent){const r=t.routeConfig;if(r?._loadedInjector)return r._loadedInjector;if(r?._injector)return r._injector}return null}class GF{constructor(t,r,n,o,i){this.routeReuseStrategy=t,this.futureState=r,this.currState=n,this.forwardEvent=o,this.inputBindingEnabled=i}activate(t){const r=this.futureState._root,n=this.currState?this.currState._root:null;this.deactivateChildRoutes(r,n,t),Qf(this.futureState.root),this.activateChildRoutes(r,n,t)}deactivateChildRoutes(t,r,n){const o=Ro(r);t.children.forEach(i=>{const s=i.value.outlet;this.deactivateRoutes(i,o[s],n),delete o[s]}),Object.values(o).forEach(i=>{this.deactivateRouteAndItsChildren(i,n)})}deactivateRoutes(t,r,n){const o=t.value,i=r?r.value:null;if(o===i)if(o.component){const s=n.getContext(o.outlet);s&&this.deactivateChildRoutes(t,r,s.children)}else this.deactivateChildRoutes(t,r,n);else i&&this.deactivateRouteAndItsChildren(r,n)}deactivateRouteAndItsChildren(t,r){t.value.component&&this.routeReuseStrategy.shouldDetach(t.value.snapshot)?this.detachAndStoreRouteSubtree(t,r):this.deactivateRouteAndOutlet(t,r)}detachAndStoreRouteSubtree(t,r){const n=r.getContext(t.value.outlet),o=n&&t.value.component?n.children:r,i=Ro(t);for(const s of Object.keys(i))this.deactivateRouteAndItsChildren(i[s],o);if(n&&n.outlet){const s=n.outlet.detach(),a=n.children.onOutletDeactivated();this.routeReuseStrategy.store(t.value.snapshot,{componentRef:s,route:t,contexts:a})}}deactivateRouteAndOutlet(t,r){const n=r.getContext(t.value.outlet),o=n&&t.value.component?n.children:r,i=Ro(t);for(const s of Object.keys(i))this.deactivateRouteAndItsChildren(i[s],o);n&&(n.outlet&&(n.outlet.deactivate(),n.children.onOutletDeactivated()),n.attachRef=null,n.route=null)}activateChildRoutes(t,r,n){const o=Ro(r);t.children.forEach(i=>{this.activateRoutes(i,o[i.value.outlet],n),this.forwardEvent(new AF(i.value.snapshot))}),t.children.length&&this.forwardEvent(new SF(t.value.snapshot))}activateRoutes(t,r,n){const o=t.value,i=r?r.value:null;if(Qf(o),o===i)if(o.component){const s=n.getOrCreateContext(o.outlet);this.activateChildRoutes(t,r,s.children)}else this.activateChildRoutes(t,r,n);else if(o.component){const s=n.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),Qf(a.route.value),this.activateChildRoutes(t,null,s.children)}else{const a=ss(o.snapshot);s.attachRef=null,s.route=o,s.injector=a,s.outlet&&s.outlet.activateWith(o,s.injector),this.activateChildRoutes(t,null,s.children)}}else this.activateChildRoutes(t,null,n)}}class mb{constructor(t){this.path=t,this.route=this.path[this.path.length-1]}}class Rl{constructor(t,r){this.component=t,this.route=r}}function zF(e,t,r){const n=e._root;return as(n,t?t._root:null,r,[n.value])}function No(e,t){const r=Symbol(),n=t.get(e,r);return n===r?"function"!=typeof e||function _E(e){return null!==Is(e)}(e)?t.get(e):e:n}function as(e,t,r,n,o={canDeactivateChecks:[],canActivateChecks:[]}){const i=Ro(t);return e.children.forEach(s=>{(function WF(e,t,r,n,o={canDeactivateChecks:[],canActivateChecks:[]}){const i=e.value,s=t?t.value:null,a=r?r.getContext(e.value.outlet):null;if(s&&i.routeConfig===s.routeConfig){const l=function ZF(e,t,r){if("function"==typeof r)return r(e,t);switch(r){case"pathParamsChange":return!wr(e.url,t.url);case"pathParamsOrQueryParamsChange":return!wr(e.url,t.url)||!fn(e.queryParams,t.queryParams);case"always":return!0;case"paramsOrQueryParamsChange":return!Xf(e,t)||!fn(e.queryParams,t.queryParams);default:return!Xf(e,t)}}(s,i,i.routeConfig.runGuardsAndResolvers);l?o.canActivateChecks.push(new mb(n)):(i.data=s.data,i._resolvedData=s._resolvedData),as(e,t,i.component?a?a.children:null:r,n,o),l&&a&&a.outlet&&a.outlet.isActivated&&o.canDeactivateChecks.push(new Rl(a.outlet.component,s))}else s&&ls(t,a,o),o.canActivateChecks.push(new mb(n)),as(e,null,i.component?a?a.children:null:r,n,o)})(s,i[s.value.outlet],r,n.concat([s.value]),o),delete i[s.value.outlet]}),Object.entries(i).forEach(([s,a])=>ls(a,r.getContext(s),o)),o}function ls(e,t,r){const n=Ro(e),o=e.value;Object.entries(n).forEach(([i,s])=>{ls(s,o.component?t?t.children.getContext(i):null:t,r)}),r.canDeactivateChecks.push(new Rl(o.component&&t&&t.outlet&&t.outlet.isActivated?t.outlet.component:null,o))}function cs(e){return"function"==typeof e}function vb(e){return e instanceof yl||"EmptyError"===e?.name}const Nl=Symbol("INITIAL_VALUE");function Po(){return jt(e=>Tf(e.map(t=>t.pipe(ir(1),function ck(...e){const t=Wo(e);return Oe((r,n)=>{(t?Af(e,r,t):Af(e,r)).subscribe(n)})}(Nl)))).pipe(ee(t=>{for(const r of t)if(!0!==r){if(r===Nl)return Nl;if(!1===r||r instanceof Ao)return r}return!0}),Qt(t=>t!==Nl),ir(1)))}function yb(e){return function D1(...e){return Lh(e)}(Ze(t=>{if(Er(t))throw fb(0,t)}),ee(t=>!0===t))}class Pl{constructor(t){this.segmentGroup=t||null}}class _b{constructor(t){this.urlTree=t}}function Oo(e){return Wi(new Pl(e))}function Cb(e){return Wi(new _b(e))}class p2{constructor(t,r){this.urlSerializer=t,this.urlTree=r}noMatchError(t){return new S(4002,!1)}lineralizeSegments(t,r){let n=[],o=r.root;for(;;){if(n=n.concat(o.segments),0===o.numberOfChildren)return V(n);if(o.numberOfChildren>1||!o.children[W])return Wi(new S(4e3,!1));o=o.children[W]}}applyRedirectCommands(t,r,n){return this.applyRedirectCreateUrlTree(r,this.urlSerializer.parse(r),t,n)}applyRedirectCreateUrlTree(t,r,n,o){const i=this.createSegmentGroup(t,r.root,n,o);return new Ao(i,this.createQueryParams(r.queryParams,this.urlTree.queryParams),r.fragment)}createQueryParams(t,r){const n={};return Object.entries(t).forEach(([o,i])=>{if("string"==typeof i&&i.startsWith(":")){const a=i.substring(1);n[o]=r[a]}else n[o]=i}),n}createSegmentGroup(t,r,n,o){const i=this.createSegments(t,r.segments,n,o);let s={};return Object.entries(r.children).forEach(([a,l])=>{s[a]=this.createSegmentGroup(t,l,n,o)}),new ce(i,s)}createSegments(t,r,n,o){return r.map(i=>i.path.startsWith(":")?this.findPosParam(t,i,o):this.findOrReturn(i,n))}findPosParam(t,r,n){const o=n[r.path.substring(1)];if(!o)throw new S(4001,!1);return o}findOrReturn(t,r){let n=0;for(const o of r){if(o.path===t.path)return r.splice(n),o;n++}return t}}const th={matched:!1,consumedSegments:[],remainingSegments:[],parameters:{},positionalParamSegments:{}};function g2(e,t,r,n,o){const i=nh(e,t,r);return i.matched?(n=function VF(e,t){return e.providers&&!e._injector&&(e._injector=xd(e.providers,t,`Route: ${e.path}`)),e._injector??t}(t,n),function d2(e,t,r,n){const o=t.canMatch;return o&&0!==o.length?V(o.map(s=>{const a=No(s,e);return Xn(function e2(e){return e&&cs(e.canMatch)}(a)?a.canMatch(t,r):e.runInContext(()=>a(t,r)))})).pipe(Po(),yb()):V(!0)}(n,t,r).pipe(ee(s=>!0===s?i:{...th}))):V(i)}function nh(e,t,r){if(""===t.path)return"full"===t.pathMatch&&(e.hasChildren()||r.length>0)?{...th}:{matched:!0,consumedSegments:[],remainingSegments:r,parameters:{},positionalParamSegments:{}};const o=(t.matcher||Wk)(r,e,t);if(!o)return{...th};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:r.slice(o.consumed.length),parameters:s,positionalParamSegments:o.posParams??{}}}function Db(e,t,r,n){return r.length>0&&function y2(e,t,r){return r.some(n=>Ol(e,t,n)&&Xt(n)!==W)}(e,r,n)?{segmentGroup:new ce(t,v2(n,new ce(r,e.children))),slicedSegments:[]}:0===r.length&&function _2(e,t,r){return r.some(n=>Ol(e,t,n))}(e,r,n)?{segmentGroup:new ce(e.segments,m2(e,0,r,n,e.children)),slicedSegments:r}:{segmentGroup:new ce(e.segments,e.children),slicedSegments:r}}function m2(e,t,r,n,o){const i={};for(const s of n)if(Ol(e,r,s)&&!o[Xt(s)]){const a=new ce([],{});i[Xt(s)]=a}return{...o,...i}}function v2(e,t){const r={};r[W]=t;for(const n of e)if(""===n.path&&Xt(n)!==W){const o=new ce([],{});r[Xt(n)]=o}return r}function Ol(e,t,r){return(!(e.hasChildren()||t.length>0)||"full"!==r.pathMatch)&&""===r.path}class w2{constructor(t,r,n,o,i,s,a){this.injector=t,this.configLoader=r,this.rootComponentType=n,this.config=o,this.urlTree=i,this.paramsInheritanceStrategy=s,this.urlSerializer=a,this.allowRedirects=!0,this.applyRedirects=new p2(this.urlSerializer,this.urlTree)}noMatchError(t){return new S(4002,!1)}recognize(){const t=Db(this.urlTree.root,[],[],this.config).segmentGroup;return this.processSegmentGroup(this.injector,this.config,t,W).pipe(br(r=>{if(r instanceof _b)return this.allowRedirects=!1,this.urlTree=r.urlTree,this.match(r.urlTree);throw r instanceof Pl?this.noMatchError(r):r}),ee(r=>{const n=new Al([],Object.freeze({}),Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,{},W,this.rootComponentType,null,{}),o=new Fn(n,r),i=new cb("",o),s=function hF(e,t,r=null,n=null){return XD(QD(e),t,r,n)}(n,[],this.urlTree.queryParams,this.urlTree.fragment);return s.queryParams=this.urlTree.queryParams,i.url=this.urlSerializer.serialize(s),this.inheritParamsAndData(i._root),{state:i,tree:s}}))}match(t){return this.processSegmentGroup(this.injector,this.config,t.root,W).pipe(br(n=>{throw n instanceof Pl?this.noMatchError(n):n}))}inheritParamsAndData(t){const r=t.value,n=lb(r,this.paramsInheritanceStrategy);r.params=Object.freeze(n.params),r.data=Object.freeze(n.data),t.children.forEach(o=>this.inheritParamsAndData(o))}processSegmentGroup(t,r,n,o){return 0===n.segments.length&&n.hasChildren()?this.processChildren(t,r,n):this.processSegment(t,r,n,n.segments,o,!0)}processChildren(t,r,n){const o=[];for(const i of Object.keys(n.children))"primary"===i?o.unshift(i):o.push(i);return Ne(o).pipe(So(i=>{const s=n.children[i],a=function BF(e,t){const r=e.filter(n=>Xt(n)===t);return r.push(...e.filter(n=>Xt(n)!==t)),r}(r,i);return this.processSegmentGroup(t,a,s,i)}),function fk(e,t){return Oe(function dk(e,t,r,n,o){return(i,s)=>{let a=r,l=t,c=0;i.subscribe(Re(s,u=>{const d=c++;l=a?e(l,u,d):(a=!0,u),n&&s.next(l)},o&&(()=>{a&&s.next(l),s.complete()})))}}(e,t,arguments.length>=2,!0))}((i,s)=>(i.push(...s),i)),_l(null),function hk(e,t){const r=arguments.length>=2;return n=>n.pipe(e?Qt((o,i)=>e(o,i,n)):Vn,Rf(1),r?_l(t):DD(()=>new yl))}(),Ve(i=>{if(null===i)return Oo(n);const s=bb(i);return function E2(e){e.sort((t,r)=>t.value.outlet===W?-1:r.value.outlet===W?1:t.value.outlet.localeCompare(r.value.outlet))}(s),V(s)}))}processSegment(t,r,n,o,i,s){return Ne(r).pipe(So(a=>this.processSegmentAgainstRoute(a._injector??t,r,a,n,o,i,s).pipe(br(l=>{if(l instanceof Pl)return V(null);throw l}))),Dr(a=>!!a),br(a=>{if(vb(a))return function D2(e,t,r){return 0===t.length&&!e.children[r]}(n,o,i)?V([]):Oo(n);throw a}))}processSegmentAgainstRoute(t,r,n,o,i,s,a){return function C2(e,t,r,n){return!!(Xt(e)===n||n!==W&&Ol(t,r,e))&&("**"===e.path||nh(t,e,r).matched)}(n,o,i,s)?void 0===n.redirectTo?this.matchSegmentAgainstRoute(t,o,n,i,s,a):a&&this.allowRedirects?this.expandSegmentAgainstRouteUsingRedirect(t,o,r,n,i,s):Oo(o):Oo(o)}expandSegmentAgainstRouteUsingRedirect(t,r,n,o,i,s){return"**"===o.path?this.expandWildCardWithParamsAgainstRouteUsingRedirect(t,n,o,s):this.expandRegularSegmentAgainstRouteUsingRedirect(t,r,n,o,i,s)}expandWildCardWithParamsAgainstRouteUsingRedirect(t,r,n,o){const i=this.applyRedirects.applyRedirectCommands([],n.redirectTo,{});return n.redirectTo.startsWith("/")?Cb(i):this.applyRedirects.lineralizeSegments(n,i).pipe(Ve(s=>{const a=new ce(s,{});return this.processSegment(t,r,a,s,o,!1)}))}expandRegularSegmentAgainstRouteUsingRedirect(t,r,n,o,i,s){const{matched:a,consumedSegments:l,remainingSegments:c,positionalParamSegments:u}=nh(r,o,i);if(!a)return Oo(r);const d=this.applyRedirects.applyRedirectCommands(l,o.redirectTo,u);return o.redirectTo.startsWith("/")?Cb(d):this.applyRedirects.lineralizeSegments(o,d).pipe(Ve(g=>this.processSegment(t,n,r,g.concat(c),s,!1)))}matchSegmentAgainstRoute(t,r,n,o,i,s){let a;if("**"===n.path){const l=o.length>0?jD(o).parameters:{};a=V({snapshot:new Al(o,l,Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,wb(n),Xt(n),n.component??n._loadedComponent??null,n,Eb(n)),consumedSegments:[],remainingSegments:[]}),r.children={}}else a=g2(r,n,o,t).pipe(ee(({matched:l,consumedSegments:c,remainingSegments:u,parameters:d})=>l?{snapshot:new Al(c,d,Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,wb(n),Xt(n),n.component??n._loadedComponent??null,n,Eb(n)),consumedSegments:c,remainingSegments:u}:null));return a.pipe(jt(l=>null===l?Oo(r):this.getChildConfig(t=n._injector??t,n,o).pipe(jt(({routes:c})=>{const u=n._loadedInjector??t,{snapshot:d,consumedSegments:g,remainingSegments:m}=l,{segmentGroup:y,slicedSegments:C}=Db(r,g,m,c);if(0===C.length&&y.hasChildren())return this.processChildren(u,c,y).pipe(ee(E=>null===E?null:[new Fn(d,E)]));if(0===c.length&&0===C.length)return V([new Fn(d,[])]);const b=Xt(n)===i;return this.processSegment(u,c,y,C,b?W:i,!0).pipe(ee(E=>[new Fn(d,E)]))}))))}getChildConfig(t,r,n){return r.children?V({routes:r.children,injector:t}):r.loadChildren?void 0!==r._loadedRoutes?V({routes:r._loadedRoutes,injector:r._loadedInjector}):function u2(e,t,r,n){const o=t.canLoad;return void 0===o||0===o.length?V(!0):V(o.map(s=>{const a=No(s,e);return Xn(function QF(e){return e&&cs(e.canLoad)}(a)?a.canLoad(t,r):e.runInContext(()=>a(t,r)))})).pipe(Po(),yb())}(t,r,n).pipe(Ve(o=>o?this.configLoader.loadChildren(t,r).pipe(Ze(i=>{r._loadedRoutes=i.routes,r._loadedInjector=i.injector})):function h2(e){return Wi(hb(!1,3))}())):V({routes:[],injector:t})}}function M2(e){const t=e.value.routeConfig;return t&&""===t.path}function bb(e){const t=[],r=new Set;for(const n of e){if(!M2(n)){t.push(n);continue}const o=t.find(i=>n.value.routeConfig===i.value.routeConfig);void 0!==o?(o.children.push(...n.children),r.add(o)):t.push(n)}for(const n of r){const o=bb(n.children);t.push(new Fn(n.value,o))}return t.filter(n=>!r.has(n))}function wb(e){return e.data||{}}function Eb(e){return e.resolve||{}}function Mb(e){return"string"==typeof e.title||null===e.title}function rh(e){return jt(t=>{const r=e(t);return r?Ne(r).pipe(ee(()=>t)):V(t)})}const ko=new x("ROUTES");let oh=(()=>{var e;class t{constructor(){this.componentLoaders=new WeakMap,this.childrenLoaders=new WeakMap,this.compiler=A(cC)}loadComponent(n){if(this.componentLoaders.get(n))return this.componentLoaders.get(n);if(n._loadedComponent)return V(n._loadedComponent);this.onLoadStartListener&&this.onLoadStartListener(n);const o=Xn(n.loadComponent()).pipe(ee(Ib),Ze(s=>{this.onLoadEndListener&&this.onLoadEndListener(n),n._loadedComponent=s}),Zi(()=>{this.componentLoaders.delete(n)})),i=new CD(o,()=>new Lt).pipe(xf());return this.componentLoaders.set(n,i),i}loadChildren(n,o){if(this.childrenLoaders.get(o))return this.childrenLoaders.get(o);if(o._loadedRoutes)return V({routes:o._loadedRoutes,injector:o._loadedInjector});this.onLoadStartListener&&this.onLoadStartListener(o);const s=this.loadModuleFactoryOrRoutes(o.loadChildren).pipe(ee(l=>{this.onLoadEndListener&&this.onLoadEndListener(o);let c,u;return Array.isArray(l)?u=l:(c=l.create(n).injector,u=c.get(ko,[],Y.Self|Y.Optional).flat()),{routes:u.map(eh),injector:c}}),Zi(()=>{this.childrenLoaders.delete(o)})),a=new CD(s,()=>new Lt).pipe(xf());return this.childrenLoaders.set(o,a),a}loadModuleFactoryOrRoutes(n){return Xn(n()).pipe(ee(Ib),Ve(o=>o instanceof g_||Array.isArray(o)?V(o):Ne(this.compiler.compileModuleAsync(o))))}}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275prov=L({token:e,factory:e.\u0275fac,providedIn:"root"}),t})();function Ib(e){return function N2(e){return e&&"object"==typeof e&&"default"in e}(e)?e.default:e}let kl=(()=>{var e;class t{get hasRequestedNavigation(){return 0!==this.navigationId}constructor(){this.currentNavigation=null,this.currentTransition=null,this.lastSuccessfulNavigation=null,this.events=new Lt,this.transitionAbortSubject=new Lt,this.configLoader=A(oh),this.environmentInjector=A(Dt),this.urlSerializer=A(Ji),this.rootContexts=A(os),this.inputBindingEnabled=null!==A(xl,{optional:!0}),this.navigationId=0,this.afterPreactivation=()=>V(void 0),this.rootComponentType=null,this.configLoader.onLoadEndListener=i=>this.events.next(new MF(i)),this.configLoader.onLoadStartListener=i=>this.events.next(new EF(i))}complete(){this.transitions?.complete()}handleNavigationRequest(n){const o=++this.navigationId;this.transitions?.next({...this.transitions.value,...n,id:o})}setupNavigations(n,o,i){return this.transitions=new At({id:0,currentUrlTree:o,currentRawUrl:o,currentBrowserUrl:o,extractedUrl:n.urlHandlingStrategy.extract(o),urlAfterRedirects:n.urlHandlingStrategy.extract(o),rawUrl:o,extras:{},resolve:null,reject:null,promise:Promise.resolve(!0),source:ns,restoredState:null,currentSnapshot:i.snapshot,targetSnapshot:null,currentRouterState:i,targetRouterState:null,guards:{canActivateChecks:[],canDeactivateChecks:[]},guardsResult:null}),this.transitions.pipe(Qt(s=>0!==s.id),ee(s=>({...s,extractedUrl:n.urlHandlingStrategy.extract(s.rawUrl)})),jt(s=>{this.currentTransition=s;let a=!1,l=!1;return V(s).pipe(Ze(c=>{this.currentNavigation={id:c.id,initialUrl:c.rawUrl,extractedUrl:c.extractedUrl,trigger:c.source,extras:c.extras,previousNavigation:this.lastSuccessfulNavigation?{...this.lastSuccessfulNavigation,previousNavigation:null}:null}}),jt(c=>{const u=c.currentBrowserUrl.toString(),d=!n.navigated||c.extractedUrl.toString()!==u||u!==c.currentUrlTree.toString();if(!d&&"reload"!==(c.extras.onSameUrlNavigation??n.onSameUrlNavigation)){const m="";return this.events.next(new xo(c.id,this.urlSerializer.serialize(c.rawUrl),m,0)),c.resolve(null),Jt}if(n.urlHandlingStrategy.shouldProcessUrl(c.rawUrl))return V(c).pipe(jt(m=>{const y=this.transitions?.getValue();return this.events.next(new Sl(m.id,this.urlSerializer.serialize(m.extractedUrl),m.source,m.restoredState)),y!==this.transitions?.getValue()?Jt:Promise.resolve(m)}),function I2(e,t,r,n,o,i){return Ve(s=>function b2(e,t,r,n,o,i,s="emptyOnly"){return new w2(e,t,r,n,o,s,i).recognize()}(e,t,r,n,s.extractedUrl,o,i).pipe(ee(({state:a,tree:l})=>({...s,targetSnapshot:a,urlAfterRedirects:l}))))}(this.environmentInjector,this.configLoader,this.rootComponentType,n.config,this.urlSerializer,n.paramsInheritanceStrategy),Ze(m=>{s.targetSnapshot=m.targetSnapshot,s.urlAfterRedirects=m.urlAfterRedirects,this.currentNavigation={...this.currentNavigation,finalUrl:m.urlAfterRedirects};const y=new rb(m.id,this.urlSerializer.serialize(m.extractedUrl),this.urlSerializer.serialize(m.urlAfterRedirects),m.targetSnapshot);this.events.next(y)}));if(d&&n.urlHandlingStrategy.shouldProcessUrl(c.currentRawUrl)){const{id:m,extractedUrl:y,source:C,restoredState:b,extras:E}=c,D=new Sl(m,this.urlSerializer.serialize(y),C,b);this.events.next(D);const P=ab(0,this.rootComponentType).snapshot;return this.currentTransition=s={...c,targetSnapshot:P,urlAfterRedirects:y,extras:{...E,skipLocationChange:!1,replaceUrl:!1}},V(s)}{const m="";return this.events.next(new xo(c.id,this.urlSerializer.serialize(c.extractedUrl),m,1)),c.resolve(null),Jt}}),Ze(c=>{const u=new CF(c.id,this.urlSerializer.serialize(c.extractedUrl),this.urlSerializer.serialize(c.urlAfterRedirects),c.targetSnapshot);this.events.next(u)}),ee(c=>(this.currentTransition=s={...c,guards:zF(c.targetSnapshot,c.currentSnapshot,this.rootContexts)},s)),function n2(e,t){return Ve(r=>{const{targetSnapshot:n,currentSnapshot:o,guards:{canActivateChecks:i,canDeactivateChecks:s}}=r;return 0===s.length&&0===i.length?V({...r,guardsResult:!0}):function r2(e,t,r,n){return Ne(e).pipe(Ve(o=>function c2(e,t,r,n,o){const i=t&&t.routeConfig?t.routeConfig.canDeactivate:null;return i&&0!==i.length?V(i.map(a=>{const l=ss(t)??o,c=No(a,l);return Xn(function KF(e){return e&&cs(e.canDeactivate)}(c)?c.canDeactivate(e,t,r,n):l.runInContext(()=>c(e,t,r,n))).pipe(Dr())})).pipe(Po()):V(!0)}(o.component,o.route,r,t,n)),Dr(o=>!0!==o,!0))}(s,n,o,e).pipe(Ve(a=>a&&function YF(e){return"boolean"==typeof e}(a)?function o2(e,t,r,n){return Ne(t).pipe(So(o=>Af(function s2(e,t){return null!==e&&t&&t(new IF(e)),V(!0)}(o.route.parent,n),function i2(e,t){return null!==e&&t&&t(new TF(e)),V(!0)}(o.route,n),function l2(e,t,r){const n=t[t.length-1],i=t.slice(0,t.length-1).reverse().map(s=>function qF(e){const t=e.routeConfig?e.routeConfig.canActivateChild:null;return t&&0!==t.length?{node:e,guards:t}:null}(s)).filter(s=>null!==s).map(s=>_D(()=>V(s.guards.map(l=>{const c=ss(s.node)??r,u=No(l,c);return Xn(function JF(e){return e&&cs(e.canActivateChild)}(u)?u.canActivateChild(n,e):c.runInContext(()=>u(n,e))).pipe(Dr())})).pipe(Po())));return V(i).pipe(Po())}(e,o.path,r),function a2(e,t,r){const n=t.routeConfig?t.routeConfig.canActivate:null;if(!n||0===n.length)return V(!0);const o=n.map(i=>_D(()=>{const s=ss(t)??r,a=No(i,s);return Xn(function XF(e){return e&&cs(e.canActivate)}(a)?a.canActivate(t,e):s.runInContext(()=>a(t,e))).pipe(Dr())}));return V(o).pipe(Po())}(e,o.route,r))),Dr(o=>!0!==o,!0))}(n,i,e,t):V(a)),ee(a=>({...r,guardsResult:a})))})}(this.environmentInjector,c=>this.events.next(c)),Ze(c=>{if(s.guardsResult=c.guardsResult,Er(c.guardsResult))throw fb(0,c.guardsResult);const u=new DF(c.id,this.urlSerializer.serialize(c.extractedUrl),this.urlSerializer.serialize(c.urlAfterRedirects),c.targetSnapshot,!!c.guardsResult);this.events.next(u)}),Qt(c=>!!c.guardsResult||(this.cancelNavigationTransition(c,"",3),!1)),rh(c=>{if(c.guards.canActivateChecks.length)return V(c).pipe(Ze(u=>{const d=new bF(u.id,this.urlSerializer.serialize(u.extractedUrl),this.urlSerializer.serialize(u.urlAfterRedirects),u.targetSnapshot);this.events.next(d)}),jt(u=>{let d=!1;return V(u).pipe(function S2(e,t){return Ve(r=>{const{targetSnapshot:n,guards:{canActivateChecks:o}}=r;if(!o.length)return V(r);let i=0;return Ne(o).pipe(So(s=>function T2(e,t,r,n){const o=e.routeConfig,i=e._resolve;return void 0!==o?.title&&!Mb(o)&&(i[Qi]=o.title),function A2(e,t,r,n){const o=function x2(e){return[...Object.keys(e),...Object.getOwnPropertySymbols(e)]}(e);if(0===o.length)return V({});const i={};return Ne(o).pipe(Ve(s=>function R2(e,t,r,n){const o=ss(t)??n,i=No(e,o);return Xn(i.resolve?i.resolve(t,r):o.runInContext(()=>i(t,r)))}(e[s],t,r,n).pipe(Dr(),Ze(a=>{i[s]=a}))),Rf(1),function pk(e){return ee(()=>e)}(i),br(s=>vb(s)?Jt:Wi(s)))}(i,e,t,n).pipe(ee(s=>(e._resolvedData=s,e.data=lb(e,r).resolve,o&&Mb(o)&&(e.data[Qi]=o.title),null)))}(s.route,n,e,t)),Ze(()=>i++),Rf(1),Ve(s=>i===o.length?V(r):Jt))})}(n.paramsInheritanceStrategy,this.environmentInjector),Ze({next:()=>d=!0,complete:()=>{d||this.cancelNavigationTransition(u,"",2)}}))}),Ze(u=>{const d=new wF(u.id,this.urlSerializer.serialize(u.extractedUrl),this.urlSerializer.serialize(u.urlAfterRedirects),u.targetSnapshot);this.events.next(d)}))}),rh(c=>{const u=d=>{const g=[];d.routeConfig?.loadComponent&&!d.routeConfig._loadedComponent&&g.push(this.configLoader.loadComponent(d.routeConfig).pipe(Ze(m=>{d.component=m}),ee(()=>{})));for(const m of d.children)g.push(...u(m));return g};return Tf(u(c.targetSnapshot.root)).pipe(_l(),ir(1))}),rh(()=>this.afterPreactivation()),ee(c=>{const u=function OF(e,t,r){const n=is(e,t._root,r?r._root:void 0);return new sb(n,t)}(n.routeReuseStrategy,c.targetSnapshot,c.currentRouterState);return this.currentTransition=s={...c,targetRouterState:u},s}),Ze(()=>{this.events.next(new zf)}),((e,t,r,n)=>ee(o=>(new GF(t,o.targetRouterState,o.currentRouterState,r,n).activate(e),o)))(this.rootContexts,n.routeReuseStrategy,c=>this.events.next(c),this.inputBindingEnabled),ir(1),Ze({next:c=>{a=!0,this.lastSuccessfulNavigation=this.currentNavigation,this.events.next(new kn(c.id,this.urlSerializer.serialize(c.extractedUrl),this.urlSerializer.serialize(c.urlAfterRedirects))),n.titleStrategy?.updateTitle(c.targetRouterState.snapshot),c.resolve(!0)},complete:()=>{a=!0}}),function gk(e){return Oe((t,r)=>{Vt(e).subscribe(Re(r,()=>r.complete(),sc)),!r.closed&&t.subscribe(r)})}(this.transitionAbortSubject.pipe(Ze(c=>{throw c}))),Zi(()=>{a||l||this.cancelNavigationTransition(s,"",1),this.currentNavigation?.id===s.id&&(this.currentNavigation=null)}),br(c=>{if(l=!0,pb(c))this.events.next(new rs(s.id,this.urlSerializer.serialize(s.extractedUrl),c.message,c.cancellationCode)),function LF(e){return pb(e)&&Er(e.url)}(c)?this.events.next(new qf(c.url)):s.resolve(!1);else{this.events.next(new Tl(s.id,this.urlSerializer.serialize(s.extractedUrl),c,s.targetSnapshot??void 0));try{s.resolve(n.errorHandler(c))}catch(u){s.reject(u)}}return Jt}))}))}cancelNavigationTransition(n,o,i){const s=new rs(n.id,this.urlSerializer.serialize(n.extractedUrl),o,i);this.events.next(s),n.resolve(!1)}}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275prov=L({token:e,factory:e.\u0275fac,providedIn:"root"}),t})();function Sb(e){return e!==ns}let Tb=(()=>{var e;class t{buildTitle(n){let o,i=n.root;for(;void 0!==i;)o=this.getResolvedTitleForRoute(i)??o,i=i.children.find(s=>s.outlet===W);return o}getResolvedTitleForRoute(n){return n.data[Qi]}}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275prov=L({token:e,factory:function(){return A(P2)},providedIn:"root"}),t})(),P2=(()=>{var e;class t extends Tb{constructor(n){super(),this.title=n}updateTitle(n){const o=this.buildTitle(n);void 0!==o&&this.title.setTitle(o)}}return(e=t).\u0275fac=function(n){return new(n||e)(F(OD))},e.\u0275prov=L({token:e,factory:e.\u0275fac,providedIn:"root"}),t})(),O2=(()=>{var e;class t{}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275prov=L({token:e,factory:function(){return A(F2)},providedIn:"root"}),t})();class k2{shouldDetach(t){return!1}store(t,r){}shouldAttach(t){return!1}retrieve(t){return null}shouldReuseRoute(t,r){return t.routeConfig===r.routeConfig}}let F2=(()=>{var e;class t extends k2{}return(e=t).\u0275fac=function(){let r;return function(o){return(r||(r=$e(e)))(o||e)}}(),e.\u0275prov=L({token:e,factory:e.\u0275fac,providedIn:"root"}),t})();const Fl=new x("",{providedIn:"root",factory:()=>({})});let L2=(()=>{var e;class t{}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275prov=L({token:e,factory:function(){return A(V2)},providedIn:"root"}),t})(),V2=(()=>{var e;class t{shouldProcessUrl(n){return!0}extract(n){return n}merge(n,o){return n}}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275prov=L({token:e,factory:e.\u0275fac,providedIn:"root"}),t})();var us=function(e){return e[e.COMPLETE=0]="COMPLETE",e[e.FAILED=1]="FAILED",e[e.REDIRECTING=2]="REDIRECTING",e}(us||{});function Ab(e,t){e.events.pipe(Qt(r=>r instanceof kn||r instanceof rs||r instanceof Tl||r instanceof xo),ee(r=>r instanceof kn||r instanceof xo?us.COMPLETE:r instanceof rs&&(0===r.code||1===r.code)?us.REDIRECTING:us.FAILED),Qt(r=>r!==us.REDIRECTING),ir(1)).subscribe(()=>{t()})}function j2(e){throw e}function H2(e,t,r){return t.parse("/")}const U2={paths:"exact",fragment:"ignored",matrixParams:"ignored",queryParams:"exact"},B2={paths:"subset",fragment:"ignored",matrixParams:"ignored",queryParams:"subset"};let St=(()=>{var e;class t{get navigationId(){return this.navigationTransitions.navigationId}get browserPageId(){return"computed"!==this.canceledNavigationResolution?this.currentPageId:this.location.getState()?.\u0275routerPageId??this.currentPageId}get events(){return this._events}constructor(){this.disposed=!1,this.currentPageId=0,this.console=A(lC),this.isNgZoneEnabled=!1,this._events=new Lt,this.options=A(Fl,{optional:!0})||{},this.pendingTasks=A(Ya),this.errorHandler=this.options.errorHandler||j2,this.malformedUriErrorHandler=this.options.malformedUriErrorHandler||H2,this.navigated=!1,this.lastSuccessfulId=-1,this.urlHandlingStrategy=A(L2),this.routeReuseStrategy=A(O2),this.titleStrategy=A(Tb),this.onSameUrlNavigation=this.options.onSameUrlNavigation||"ignore",this.paramsInheritanceStrategy=this.options.paramsInheritanceStrategy||"emptyOnly",this.urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred",this.canceledNavigationResolution=this.options.canceledNavigationResolution||"replace",this.config=A(ko,{optional:!0})?.flat()??[],this.navigationTransitions=A(kl),this.urlSerializer=A(Ji),this.location=A(uf),this.componentInputBindingEnabled=!!A(xl,{optional:!0}),this.eventsSubscription=new gt,this.isNgZoneEnabled=A(ge)instanceof ge&&ge.isInAngularZone(),this.resetConfig(this.config),this.currentUrlTree=new Ao,this.rawUrlTree=this.currentUrlTree,this.browserUrlTree=this.currentUrlTree,this.routerState=ab(0,null),this.navigationTransitions.setupNavigations(this,this.currentUrlTree,this.routerState).subscribe(n=>{this.lastSuccessfulId=n.id,this.currentPageId=this.browserPageId},n=>{this.console.warn(`Unhandled Navigation Error: ${n}`)}),this.subscribeToNavigationEvents()}subscribeToNavigationEvents(){const n=this.navigationTransitions.events.subscribe(o=>{try{const{currentTransition:i}=this.navigationTransitions;if(null===i)return void(xb(o)&&this._events.next(o));if(o instanceof Sl)Sb(i.source)&&(this.browserUrlTree=i.extractedUrl);else if(o instanceof xo)this.rawUrlTree=i.rawUrl;else if(o instanceof rb){if("eager"===this.urlUpdateStrategy){if(!i.extras.skipLocationChange){const s=this.urlHandlingStrategy.merge(i.urlAfterRedirects,i.rawUrl);this.setBrowserUrl(s,i)}this.browserUrlTree=i.urlAfterRedirects}}else if(o instanceof zf)this.currentUrlTree=i.urlAfterRedirects,this.rawUrlTree=this.urlHandlingStrategy.merge(i.urlAfterRedirects,i.rawUrl),this.routerState=i.targetRouterState,"deferred"===this.urlUpdateStrategy&&(i.extras.skipLocationChange||this.setBrowserUrl(this.rawUrlTree,i),this.browserUrlTree=i.urlAfterRedirects);else if(o instanceof rs)0!==o.code&&1!==o.code&&(this.navigated=!0),(3===o.code||2===o.code)&&this.restoreHistory(i);else if(o instanceof qf){const s=this.urlHandlingStrategy.merge(o.url,i.currentRawUrl),a={skipLocationChange:i.extras.skipLocationChange,replaceUrl:"eager"===this.urlUpdateStrategy||Sb(i.source)};this.scheduleNavigation(s,ns,null,a,{resolve:i.resolve,reject:i.reject,promise:i.promise})}o instanceof Tl&&this.restoreHistory(i,!0),o instanceof kn&&(this.navigated=!0),xb(o)&&this._events.next(o)}catch(i){this.navigationTransitions.transitionAbortSubject.next(i)}});this.eventsSubscription.add(n)}resetRootComponentType(n){this.routerState.root.component=n,this.navigationTransitions.rootComponentType=n}initialNavigation(){if(this.setUpLocationChangeListener(),!this.navigationTransitions.hasRequestedNavigation){const n=this.location.getState();this.navigateToSyncWithBrowser(this.location.path(!0),ns,n)}}setUpLocationChangeListener(){this.locationSubscription||(this.locationSubscription=this.location.subscribe(n=>{const o="popstate"===n.type?"popstate":"hashchange";"popstate"===o&&setTimeout(()=>{this.navigateToSyncWithBrowser(n.url,o,n.state)},0)}))}navigateToSyncWithBrowser(n,o,i){const s={replaceUrl:!0},a=i?.navigationId?i:null;if(i){const c={...i};delete c.navigationId,delete c.\u0275routerPageId,0!==Object.keys(c).length&&(s.state=c)}const l=this.parseUrl(n);this.scheduleNavigation(l,o,a,s)}get url(){return this.serializeUrl(this.currentUrlTree)}getCurrentNavigation(){return this.navigationTransitions.currentNavigation}get lastSuccessfulNavigation(){return this.navigationTransitions.lastSuccessfulNavigation}resetConfig(n){this.config=n.map(eh),this.navigated=!1,this.lastSuccessfulId=-1}ngOnDestroy(){this.dispose()}dispose(){this.navigationTransitions.complete(),this.locationSubscription&&(this.locationSubscription.unsubscribe(),this.locationSubscription=void 0),this.disposed=!0,this.eventsSubscription.unsubscribe()}createUrlTree(n,o={}){const{relativeTo:i,queryParams:s,fragment:a,queryParamsHandling:l,preserveFragment:c}=o,u=c?this.currentUrlTree.fragment:a;let g,d=null;switch(l){case"merge":d={...this.currentUrlTree.queryParams,...s};break;case"preserve":d=this.currentUrlTree.queryParams;break;default:d=s||null}null!==d&&(d=this.removeEmptyProps(d));try{g=QD(i?i.snapshot:this.routerState.snapshot.root)}catch{("string"!=typeof n[0]||!n[0].startsWith("/"))&&(n=[]),g=this.currentUrlTree.root}return XD(g,n,d,u??null)}navigateByUrl(n,o={skipLocationChange:!1}){const i=Er(n)?n:this.parseUrl(n),s=this.urlHandlingStrategy.merge(i,this.rawUrlTree);return this.scheduleNavigation(s,ns,null,o)}navigate(n,o={skipLocationChange:!1}){return function $2(e){for(let t=0;t{const s=n[i];return null!=s&&(o[i]=s),o},{})}scheduleNavigation(n,o,i,s,a){if(this.disposed)return Promise.resolve(!1);let l,c,u;a?(l=a.resolve,c=a.reject,u=a.promise):u=new Promise((g,m)=>{l=g,c=m});const d=this.pendingTasks.add();return Ab(this,()=>{queueMicrotask(()=>this.pendingTasks.remove(d))}),this.navigationTransitions.handleNavigationRequest({source:o,restoredState:i,currentUrlTree:this.currentUrlTree,currentRawUrl:this.currentUrlTree,currentBrowserUrl:this.browserUrlTree,rawUrl:n,extras:s,resolve:l,reject:c,promise:u,currentSnapshot:this.routerState.snapshot,currentRouterState:this.routerState}),u.catch(g=>Promise.reject(g))}setBrowserUrl(n,o){const i=this.urlSerializer.serialize(n);if(this.location.isCurrentPathEqualTo(i)||o.extras.replaceUrl){const a={...o.extras.state,...this.generateNgRouterState(o.id,this.browserPageId)};this.location.replaceState(i,"",a)}else{const s={...o.extras.state,...this.generateNgRouterState(o.id,this.browserPageId+1)};this.location.go(i,"",s)}}restoreHistory(n,o=!1){if("computed"===this.canceledNavigationResolution){const s=this.currentPageId-this.browserPageId;0!==s?this.location.historyGo(s):this.currentUrlTree===this.getCurrentNavigation()?.finalUrl&&0===s&&(this.resetState(n),this.browserUrlTree=n.currentUrlTree,this.resetUrlToCurrentUrlTree())}else"replace"===this.canceledNavigationResolution&&(o&&this.resetState(n),this.resetUrlToCurrentUrlTree())}resetState(n){this.routerState=n.currentRouterState,this.currentUrlTree=n.currentUrlTree,this.rawUrlTree=this.urlHandlingStrategy.merge(this.currentUrlTree,n.rawUrl)}resetUrlToCurrentUrlTree(){this.location.replaceState(this.urlSerializer.serialize(this.rawUrlTree),"",this.generateNgRouterState(this.lastSuccessfulId,this.currentPageId))}generateNgRouterState(n,o){return"computed"===this.canceledNavigationResolution?{navigationId:n,\u0275routerPageId:o}:{navigationId:n}}}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275prov=L({token:e,factory:e.\u0275fac,providedIn:"root"}),t})();function xb(e){return!(e instanceof zf||e instanceof qf)}let pn=(()=>{var e;class t{constructor(n,o,i,s,a,l){this.router=n,this.route=o,this.tabIndexAttribute=i,this.renderer=s,this.el=a,this.locationStrategy=l,this.href=null,this.commands=null,this.onChanges=new Lt,this.preserveFragment=!1,this.skipLocationChange=!1,this.replaceUrl=!1;const c=a.nativeElement.tagName?.toLowerCase();this.isAnchorElement="a"===c||"area"===c,this.isAnchorElement?this.subscription=n.events.subscribe(u=>{u instanceof kn&&this.updateHref()}):this.setTabIndexIfNotOnNativeEl("0")}setTabIndexIfNotOnNativeEl(n){null!=this.tabIndexAttribute||this.isAnchorElement||this.applyAttributeValue("tabindex",n)}ngOnChanges(n){this.isAnchorElement&&this.updateHref(),this.onChanges.next(this)}set routerLink(n){null!=n?(this.commands=Array.isArray(n)?n:[n],this.setTabIndexIfNotOnNativeEl("0")):(this.commands=null,this.setTabIndexIfNotOnNativeEl(null))}onClick(n,o,i,s,a){return!!(null===this.urlTree||this.isAnchorElement&&(0!==n||o||i||s||a||"string"==typeof this.target&&"_self"!=this.target))||(this.router.navigateByUrl(this.urlTree,{skipLocationChange:this.skipLocationChange,replaceUrl:this.replaceUrl,state:this.state}),!this.isAnchorElement)}ngOnDestroy(){this.subscription?.unsubscribe()}updateHref(){this.href=null!==this.urlTree&&this.locationStrategy?this.locationStrategy?.prepareExternalUrl(this.router.serializeUrl(this.urlTree)):null;const n=null===this.href?null:function mm(e,t,r){return function MI(e,t){return"src"===t&&("embed"===e||"frame"===e||"iframe"===e||"media"===e||"script"===e)||"href"===t&&("base"===e||"link"===e)?gm:to}(t,r)(e)}(this.href,this.el.nativeElement.tagName.toLowerCase(),"href");this.applyAttributeValue("href",n)}applyAttributeValue(n,o){const i=this.renderer,s=this.el.nativeElement;null!==o?i.setAttribute(s,n,o):i.removeAttribute(s,n)}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})}}return(e=t).\u0275fac=function(n){return new(n||e)(I(St),I(Mr),function Qs(e){return function z0(e,t){if("class"===t)return e.classes;if("style"===t)return e.styles;const r=e.attrs;if(r){const n=r.length;let o=0;for(;o{var e;class t{get isActive(){return this._isActive}constructor(n,o,i,s,a){this.router=n,this.element=o,this.renderer=i,this.cdr=s,this.link=a,this.classes=[],this._isActive=!1,this.routerLinkActiveOptions={exact:!1},this.isActiveChange=new Ee,this.routerEventsSubscription=n.events.subscribe(l=>{l instanceof kn&&this.update()})}ngAfterContentInit(){V(this.links.changes,V(null)).pipe(xr()).subscribe(n=>{this.update(),this.subscribeToEachLinkOnChanges()})}subscribeToEachLinkOnChanges(){this.linkInputChangesSubscription?.unsubscribe();const n=[...this.links.toArray(),this.link].filter(o=>!!o).map(o=>o.onChanges);this.linkInputChangesSubscription=Ne(n).pipe(xr()).subscribe(o=>{this._isActive!==this.isLinkActive(this.router)(o)&&this.update()})}set routerLinkActive(n){const o=Array.isArray(n)?n:n.split(" ");this.classes=o.filter(i=>!!i)}ngOnChanges(n){this.update()}ngOnDestroy(){this.routerEventsSubscription.unsubscribe(),this.linkInputChangesSubscription?.unsubscribe()}update(){!this.links||!this.router.navigated||queueMicrotask(()=>{const n=this.hasActiveLinks();this._isActive!==n&&(this._isActive=n,this.cdr.markForCheck(),this.classes.forEach(o=>{n?this.renderer.addClass(this.element.nativeElement,o):this.renderer.removeClass(this.element.nativeElement,o)}),n&&void 0!==this.ariaCurrentWhenActive?this.renderer.setAttribute(this.element.nativeElement,"aria-current",this.ariaCurrentWhenActive.toString()):this.renderer.removeAttribute(this.element.nativeElement,"aria-current"),this.isActiveChange.emit(n))})}isLinkActive(n){const o=function G2(e){return!!e.paths}(this.routerLinkActiveOptions)?this.routerLinkActiveOptions:this.routerLinkActiveOptions.exact||!1;return i=>!!i.urlTree&&n.isActive(i.urlTree,o)}hasActiveLinks(){const n=this.isLinkActive(this.router);return this.link&&n(this.link)||this.links.some(n)}}return(e=t).\u0275fac=function(n){return new(n||e)(I(St),I(bt),I(Mn),I(Ka),I(pn,8))},e.\u0275dir=B({type:e,selectors:[["","routerLinkActive",""]],contentQueries:function(n,o,i){if(1&n&&U_(i,pn,5),2&n){let s;H_(s=function B_(){return function xR(e,t){return e[tn].queries[t].queryList}(M(),eg())}())&&(o.links=s)}},inputs:{routerLinkActiveOptions:"routerLinkActiveOptions",ariaCurrentWhenActive:"ariaCurrentWhenActive",routerLinkActive:"routerLinkActive"},outputs:{isActiveChange:"isActiveChange"},exportAs:["routerLinkActive"],standalone:!0,features:[Rt]}),t})();class Nb{}let z2=(()=>{var e;class t{constructor(n,o,i,s,a){this.router=n,this.injector=i,this.preloadingStrategy=s,this.loader=a}setUpPreloading(){this.subscription=this.router.events.pipe(Qt(n=>n instanceof kn),So(()=>this.preload())).subscribe(()=>{})}preload(){return this.processRoutes(this.injector,this.router.config)}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}processRoutes(n,o){const i=[];for(const s of o){s.providers&&!s._injector&&(s._injector=xd(s.providers,n,`Route: ${s.path}`));const a=s._injector??n,l=s._loadedInjector??a;(s.loadChildren&&!s._loadedRoutes&&void 0===s.canLoad||s.loadComponent&&!s._loadedComponent)&&i.push(this.preloadConfig(a,s)),(s.children||s._loadedRoutes)&&i.push(this.processRoutes(l,s.children??s._loadedRoutes))}return Ne(i).pipe(xr())}preloadConfig(n,o){return this.preloadingStrategy.preload(o,()=>{let i;i=o.loadChildren&&void 0===o.canLoad?this.loader.loadChildren(n,o):V(null);const s=i.pipe(Ve(a=>null===a?V(void 0):(o._loadedRoutes=a.routes,o._loadedInjector=a.injector,this.processRoutes(a.injector??n,a.routes))));return o.loadComponent&&!o._loadedComponent?Ne([s,this.loader.loadComponent(o)]).pipe(xr()):s})}}return(e=t).\u0275fac=function(n){return new(n||e)(F(St),F(cC),F(Dt),F(Nb),F(oh))},e.\u0275prov=L({token:e,factory:e.\u0275fac,providedIn:"root"}),t})();const ih=new x("");let Pb=(()=>{var e;class t{constructor(n,o,i,s,a={}){this.urlSerializer=n,this.transitions=o,this.viewportScroller=i,this.zone=s,this.options=a,this.lastId=0,this.lastSource="imperative",this.restoredId=0,this.store={},a.scrollPositionRestoration=a.scrollPositionRestoration||"disabled",a.anchorScrolling=a.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(n=>{n instanceof Sl?(this.store[this.lastId]=this.viewportScroller.getScrollPosition(),this.lastSource=n.navigationTrigger,this.restoredId=n.restoredState?n.restoredState.navigationId:0):n instanceof kn?(this.lastId=n.id,this.scheduleScrollEvent(n,this.urlSerializer.parse(n.urlAfterRedirects).fragment)):n instanceof xo&&0===n.code&&(this.lastSource=void 0,this.restoredId=0,this.scheduleScrollEvent(n,this.urlSerializer.parse(n.url).fragment))})}consumeScrollEvents(){return this.transitions.events.subscribe(n=>{n instanceof ob&&(n.position?"top"===this.options.scrollPositionRestoration?this.viewportScroller.scrollToPosition([0,0]):"enabled"===this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition(n.position):n.anchor&&"enabled"===this.options.anchorScrolling?this.viewportScroller.scrollToAnchor(n.anchor):"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition([0,0]))})}scheduleScrollEvent(n,o){this.zone.runOutsideAngular(()=>{setTimeout(()=>{this.zone.run(()=>{this.transitions.events.next(new ob(n,"popstate"===this.lastSource?this.store[this.restoredId]:null,o))})},0)})}ngOnDestroy(){this.routerEventsSubscription?.unsubscribe(),this.scrollEventsSubscription?.unsubscribe()}}return(e=t).\u0275fac=function(n){!function nv(){throw new Error("invalid")}()},e.\u0275prov=L({token:e,factory:e.\u0275fac}),t})();function Ln(e,t){return{\u0275kind:e,\u0275providers:t}}function kb(){const e=A(wt);return t=>{const r=e.get(Eo);if(t!==r.components[0])return;const n=e.get(St),o=e.get(Fb);1===e.get(sh)&&n.initialNavigation(),e.get(Lb,null,Y.Optional)?.setUpPreloading(),e.get(ih,null,Y.Optional)?.init(),n.resetRootComponentType(r.componentTypes[0]),o.closed||(o.next(),o.complete(),o.unsubscribe())}}const Fb=new x("",{factory:()=>new Lt}),sh=new x("",{providedIn:"root",factory:()=>1}),Lb=new x("");function Y2(e){return Ln(0,[{provide:Lb,useExisting:z2},{provide:Nb,useExisting:e}])}const Vb=new x("ROUTER_FORROOT_GUARD"),X2=[uf,{provide:Ji,useClass:Hf},St,os,{provide:Mr,useFactory:function Ob(e){return e.routerState.root},deps:[St]},oh,[]];function J2(){return new mC("Router",St)}let jb=(()=>{var e;class t{constructor(n){}static forRoot(n,o){return{ngModule:t,providers:[X2,[],{provide:ko,multi:!0,useValue:n},{provide:Vb,useFactory:nL,deps:[[St,new Ks,new ea]]},{provide:Fl,useValue:o||{}},o?.useHash?{provide:Cr,useClass:uP}:{provide:Cr,useClass:zC},{provide:ih,useFactory:()=>{const e=A(TO),t=A(ge),r=A(Fl),n=A(kl),o=A(Ji);return r.scrollOffset&&e.setOffset(r.scrollOffset),new Pb(o,n,e,t,r)}},o?.preloadingStrategy?Y2(o.preloadingStrategy).\u0275providers:[],{provide:mC,multi:!0,useFactory:J2},o?.initialNavigation?rL(o):[],o?.bindToComponentInputs?Ln(8,[db,{provide:xl,useExisting:db}]).\u0275providers:[],[{provide:Hb,useFactory:kb},{provide:Jd,multi:!0,useExisting:Hb}]]}}static forChild(n){return{ngModule:t,providers:[{provide:ko,multi:!0,useValue:n}]}}}return(e=t).\u0275fac=function(n){return new(n||e)(F(Vb,8))},e.\u0275mod=Cn({type:e}),e.\u0275inj=Kt({}),t})();function nL(e){return"guarded"}function rL(e){return["disabled"===e.initialNavigation?Ln(3,[{provide:Gd,multi:!0,useFactory:()=>{const t=A(St);return()=>{t.setUpLocationChangeListener()}}},{provide:sh,useValue:2}]).\u0275providers:[],"enabledBlocking"===e.initialNavigation?Ln(2,[{provide:sh,useValue:0},{provide:Gd,multi:!0,deps:[wt],useFactory:t=>{const r=t.get(lP,Promise.resolve());return()=>r.then(()=>new Promise(n=>{const o=t.get(St),i=t.get(Fb);Ab(o,()=>{n(!0)}),t.get(kl).afterPreactivation=()=>(n(!0),i.closed?V(void 0):i),o.initialNavigation()}))}}]).\u0275providers:[]]}const Hb=new x(""),iL=function(){return["/pro"]};let sL=(()=>{var e;class t{constructor(){this.years=(new Date).getFullYear()-2009}}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275cmp=vt({type:e,selectors:[["app-footer"]],standalone:!0,features:[Mt],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",2,"max-height","300px"],[1,"col-xs-12","col-md-8"],[1,"fa-solid","fa-heart","githubheart"],["href","https://github.com/sponsors/danielpalme","target","_blank"],[3,"routerLink"],[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(n,o){1&n&&(h(0,"footer",0)(1,"div",1)(2,"div",2)(3,"div",3)(4,"div",4),v(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 a code coverage report based on "),h(13,"i"),f(14,"PartCover"),p(),f(15," files."),v(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."),v(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 becoming a "),v(25,"i",7),f(26,"\xa0"),h(27,"a",8),f(28,"GitHub sponsor"),p(),f(29," or by buying a "),h(30,"a",9),f(31,"PRO license"),p(),f(32,". "),p()()()()(),h(33,"div",2)(34,"div",3),v(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(),v(45,"br"),h(46,"a",12),f(47,"Wiki"),p(),v(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(),v(57,"br"),h(58,"a",15),f(59,"ReportGenerator"),p(),v(60,"br"),h(61,"a",16),f(62,"dotnet-reportgenerator-globaltool"),p(),v(63,"br"),h(64,"a",17),f(65,"ReportGenerator.Core"),p(),v(66,"br")(67,"br"),h(68,"i"),f(69,"Integration"),p(),v(70,"br"),h(71,"a",18),f(72,"GitHub actions"),p(),v(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),v(81,"i",21),f(82," GitHub"),p(),v(83,"br"),h(84,"a",22),v(85,"i",23),f(86," Twitter"),p(),v(87,"br")(88,"br"),h(89,"a",24),f(90,"Privacy"),p(),v(91,"br"),h(92,"a",25),f(93,"Imprint"),p()()()()()()),2&n&&(_(19),An(" Fast forward ",o.years," years, I'm still maintaining "),_(11),w("routerLink",K(2,iL)))},dependencies:[pn],styles:["footer[_ngcontent-%COMP%]{background-color:#464646}footer[_ngcontent-%COMP%], a[_ngcontent-%COMP%]{color:#fff}"]}),t})();const Ub=function(){return["/"]},aL=function(e){return{show:e}},Fo=function(){return["link-active"]},Bb=function(){return{exact:!0}},lL=function(){return["/features"]},cL=function(){return["/getstarted"]},uL=function(){return["/usage"]},dL=function(){return["/contact"]},fL=function(){return["/pro"]};let hL=(()=>{var e;class t{constructor(){this.isExpanded=!1}collapse(){this.isExpanded=!1}toggle(){this.isExpanded=!this.isExpanded}}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275cmp=vt({type:e,selectors:[["app-nav-menu"]],standalone:!0,features:[Mt],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(n,o){1&n&&(h(0,"header",0)(1,"nav",1)(2,"div",2)(3,"a",3),v(4,"img",4),h(5,"span",5),f(6,"ReportGenerator"),p()(),h(7,"button",6),R("click",function(){return o.toggle()}),v(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()()()(),v(30,"hr",15),h(31,"ul",16)(32,"li",17)(33,"a",18),v(34,"i",19),h(35,"span",20),f(36,"GitHub"),p()()(),h(37,"li",17)(38,"a",21),v(39,"i",22),h(40,"span",20),f(41,"Twitter"),p()()()()()()()()),2&n&&(_(3),w("routerLink",K(17,Ub)),_(4),Gt("aria-expanded",o.isExpanded),_(2),w("ngClass",Vi(18,aL,o.isExpanded)),_(2),w("routerLinkActive",K(20,Fo))("routerLinkActiveOptions",K(21,Bb)),_(1),w("routerLink",K(22,Ub)),_(2),w("routerLinkActive",K(23,Fo))("routerLinkActiveOptions",K(24,Bb)),_(1),w("routerLink",K(25,lL)),_(2),w("routerLinkActive",K(26,Fo)),_(1),w("routerLink",K(27,cL)),_(2),w("routerLinkActive",K(28,Fo)),_(1),w("routerLink",K(29,uL)),_(2),w("routerLinkActive",K(30,Fo)),_(1),w("routerLink",K(31,dL)),_(2),w("routerLinkActive",K(32,Fo)),_(1),w("routerLink",K(33,fL)))},dependencies:[pn,pl,Rb],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}"]}),t})(),pL=(()=>{var e;class t{constructor(n,o,i){this.dom=n,this.router=o,this.activatedRoute=i}ngOnInit(){this.router.events.pipe(Qt(n=>n instanceof kn),ee(()=>this.activatedRoute),ee(n=>{for(;n.firstChild;)n=n.firstChild;return n}),Qt(n=>"primary"===n.outlet),Ve(n=>n.data)).subscribe(n=>{const o=`${window.location.protocol}//${window.location.hostname}`;this.updateCanonicalUrl(n.canonical?o+n.canonical:o+this.router.url)})}updateCanonicalUrl(n){const o=this.dom.getElementsByTagName("head")[0];var i=this.dom.querySelector("link[rel='canonical']")||null;null==i&&(i=this.dom.createElement("link"),o.appendChild(i)),i.setAttribute("rel","canonical"),i.setAttribute("href",n)}}return(e=t).\u0275fac=function(n){return new(n||e)(I(pt),I(St),I(Mr))},e.\u0275cmp=vt({type:e,selectors:[["app-root"]],standalone:!0,features:[Mt],decls:3,vars:0,template:function(n,o){1&n&&v(0,"app-nav-menu")(1,"router-outlet")(2,"app-footer")},dependencies:[hL,Jf,sL],encapsulation:2}),t})(),$b=(()=>{var e;class t{constructor(n,o){this._renderer=n,this._elementRef=o,this.onChange=i=>{},this.onTouched=()=>{}}setProperty(n,o){this._renderer.setProperty(this._elementRef.nativeElement,n,o)}registerOnTouched(n){this.onTouched=n}registerOnChange(n){this.onChange=n}setDisabledState(n){this.setProperty("disabled",n)}}return(e=t).\u0275fac=function(n){return new(n||e)(I(Mn),I(bt))},e.\u0275dir=B({type:e}),t})(),Ir=(()=>{var e;class t extends $b{}return(e=t).\u0275fac=function(){let r;return function(o){return(r||(r=$e(e)))(o||e)}}(),e.\u0275dir=B({type:e,features:[le]}),t})();const gn=new x("NgValueAccessor"),vL={provide:gn,useExisting:he(()=>Lo),multi:!0},_L=new x("CompositionEventMode");let Lo=(()=>{var e;class t extends $b{constructor(n,o,i){super(n,o),this._compositionMode=i,this._composing=!1,null==this._compositionMode&&(this._compositionMode=!function yL(){const e=Yn()?Yn().getUserAgent():"";return/android (\d+)/.test(e.toLowerCase())}())}writeValue(n){this.setProperty("value",n??"")}_handleInput(n){(!this._compositionMode||this._compositionMode&&!this._composing)&&this.onChange(n)}_compositionStart(){this._composing=!0}_compositionEnd(n){this._composing=!1,this._compositionMode&&this.onChange(n)}}return(e=t).\u0275fac=function(n){return new(n||e)(I(Mn),I(bt),I(_L,8))},e.\u0275dir=B({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(n,o){1&n&&R("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:[De([vL]),le]}),t})();function Jn(e){return null==e||("string"==typeof e||Array.isArray(e))&&0===e.length}const Ye=new x("NgValidators"),Kn=new x("NgAsyncValidators"),CL=/^(?=.{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 Zb(e){return Jn(e.value)?{required:!0}:null}function Qb(e){return Jn(e.value)||CL.test(e.value)?null:{email:!0}}function Ll(e){return null}function ew(e){return null!=e}function tw(e){return Ri(e)?Ne(e):e}function nw(e){let t={};return e.forEach(r=>{t=null!=r?{...t,...r}:t}),0===Object.keys(t).length?null:t}function rw(e,t){return t.map(r=>r(e))}function ow(e){return e.map(t=>function DL(e){return!e.validate}(t)?t:r=>t.validate(r))}function ah(e){return null!=e?function iw(e){if(!e)return null;const t=e.filter(ew);return 0==t.length?null:function(r){return nw(rw(r,t))}}(ow(e)):null}function lh(e){return null!=e?function sw(e){if(!e)return null;const t=e.filter(ew);return 0==t.length?null:function(r){return function gL(...e){const t=tp(e),{args:r,keys:n}=gD(e),o=new Ie(i=>{const{length:s}=r;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(n?vD(n,a):a),i.complete())}))}});return t?o.pipe(mD(t)):o}(rw(r,t).map(tw)).pipe(ee(nw))}}(ow(e)):null}function aw(e,t){return null===e?[t]:Array.isArray(e)?[...e,t]:[e,t]}function ch(e){return e?Array.isArray(e)?e:[e]:[]}function Vl(e,t){return Array.isArray(e)?e.includes(t):e===t}function uw(e,t){const r=ch(t);return ch(e).forEach(o=>{Vl(r,o)||r.push(o)}),r}function dw(e,t){return ch(t).filter(r=>!Vl(e,r))}class fw{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(t){this._rawValidators=t||[],this._composedValidatorFn=ah(this._rawValidators)}_setAsyncValidators(t){this._rawAsyncValidators=t||[],this._composedAsyncValidatorFn=lh(this._rawAsyncValidators)}get validator(){return this._composedValidatorFn||null}get asyncValidator(){return this._composedAsyncValidatorFn||null}_registerOnDestroy(t){this._onDestroyCallbacks.push(t)}_invokeOnDestroyCallbacks(){this._onDestroyCallbacks.forEach(t=>t()),this._onDestroyCallbacks=[]}reset(t=void 0){this.control&&this.control.reset(t)}hasError(t,r){return!!this.control&&this.control.hasError(t,r)}getError(t,r){return this.control?this.control.getError(t,r):null}}class ot extends fw{get formDirective(){return null}get path(){return null}}class er extends fw{constructor(){super(...arguments),this._parent=null,this.name=null,this.valueAccessor=null}}class hw{constructor(t){this._cd=t}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 jl=(()=>{var e;class t extends hw{constructor(n){super(n)}}return(e=t).\u0275fac=function(n){return new(n||e)(I(er,2))},e.\u0275dir=B({type:e,selectors:[["","formControlName",""],["","ngModel",""],["","formControl",""]],hostVars:14,hostBindings:function(n,o){2&n&&Ha("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:[le]}),t})(),Hl=(()=>{var e;class t extends hw{constructor(n){super(n)}}return(e=t).\u0275fac=function(n){return new(n||e)(I(ot,10))},e.\u0275dir=B({type:e,selectors:[["","formGroupName",""],["","formArrayName",""],["","ngModelGroup",""],["","formGroup",""],["form",3,"ngNoForm",""],["","ngForm",""]],hostVars:16,hostBindings:function(n,o){2&n&&Ha("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:[le]}),t})();const ds="VALID",Bl="INVALID",Vo="PENDING",fs="DISABLED";function fh(e){return($l(e)?e.validators:e)||null}function hh(e,t){return($l(t)?t.asyncValidators:e)||null}function $l(e){return null!=e&&!Array.isArray(e)&&"object"==typeof e}class vw{constructor(t,r){this._pendingDirty=!1,this._hasOwnPendingAsyncValidator=!1,this._pendingTouched=!1,this._onCollectionChange=()=>{},this._parent=null,this.pristine=!0,this.touched=!1,this._onDisabledChange=[],this._assignValidators(t),this._assignAsyncValidators(r)}get validator(){return this._composedValidatorFn}set validator(t){this._rawValidators=this._composedValidatorFn=t}get asyncValidator(){return this._composedAsyncValidatorFn}set asyncValidator(t){this._rawAsyncValidators=this._composedAsyncValidatorFn=t}get parent(){return this._parent}get valid(){return this.status===ds}get invalid(){return this.status===Bl}get pending(){return this.status==Vo}get disabled(){return this.status===fs}get enabled(){return this.status!==fs}get dirty(){return!this.pristine}get untouched(){return!this.touched}get updateOn(){return this._updateOn?this._updateOn:this.parent?this.parent.updateOn:"change"}setValidators(t){this._assignValidators(t)}setAsyncValidators(t){this._assignAsyncValidators(t)}addValidators(t){this.setValidators(uw(t,this._rawValidators))}addAsyncValidators(t){this.setAsyncValidators(uw(t,this._rawAsyncValidators))}removeValidators(t){this.setValidators(dw(t,this._rawValidators))}removeAsyncValidators(t){this.setAsyncValidators(dw(t,this._rawAsyncValidators))}hasValidator(t){return Vl(this._rawValidators,t)}hasAsyncValidator(t){return Vl(this._rawAsyncValidators,t)}clearValidators(){this.validator=null}clearAsyncValidators(){this.asyncValidator=null}markAsTouched(t={}){this.touched=!0,this._parent&&!t.onlySelf&&this._parent.markAsTouched(t)}markAllAsTouched(){this.markAsTouched({onlySelf:!0}),this._forEachChild(t=>t.markAllAsTouched())}markAsUntouched(t={}){this.touched=!1,this._pendingTouched=!1,this._forEachChild(r=>{r.markAsUntouched({onlySelf:!0})}),this._parent&&!t.onlySelf&&this._parent._updateTouched(t)}markAsDirty(t={}){this.pristine=!1,this._parent&&!t.onlySelf&&this._parent.markAsDirty(t)}markAsPristine(t={}){this.pristine=!0,this._pendingDirty=!1,this._forEachChild(r=>{r.markAsPristine({onlySelf:!0})}),this._parent&&!t.onlySelf&&this._parent._updatePristine(t)}markAsPending(t={}){this.status=Vo,!1!==t.emitEvent&&this.statusChanges.emit(this.status),this._parent&&!t.onlySelf&&this._parent.markAsPending(t)}disable(t={}){const r=this._parentMarkedDirty(t.onlySelf);this.status=fs,this.errors=null,this._forEachChild(n=>{n.disable({...t,onlySelf:!0})}),this._updateValue(),!1!==t.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors({...t,skipPristineCheck:r}),this._onDisabledChange.forEach(n=>n(!0))}enable(t={}){const r=this._parentMarkedDirty(t.onlySelf);this.status=ds,this._forEachChild(n=>{n.enable({...t,onlySelf:!0})}),this.updateValueAndValidity({onlySelf:!0,emitEvent:t.emitEvent}),this._updateAncestors({...t,skipPristineCheck:r}),this._onDisabledChange.forEach(n=>n(!1))}_updateAncestors(t){this._parent&&!t.onlySelf&&(this._parent.updateValueAndValidity(t),t.skipPristineCheck||this._parent._updatePristine(),this._parent._updateTouched())}setParent(t){this._parent=t}getRawValue(){return this.value}updateValueAndValidity(t={}){this._setInitialStatus(),this._updateValue(),this.enabled&&(this._cancelExistingSubscription(),this.errors=this._runValidator(),this.status=this._calculateStatus(),(this.status===ds||this.status===Vo)&&this._runAsyncValidator(t.emitEvent)),!1!==t.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._parent&&!t.onlySelf&&this._parent.updateValueAndValidity(t)}_updateTreeValidity(t={emitEvent:!0}){this._forEachChild(r=>r._updateTreeValidity(t)),this.updateValueAndValidity({onlySelf:!0,emitEvent:t.emitEvent})}_setInitialStatus(){this.status=this._allControlsDisabled()?fs:ds}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(t){if(this.asyncValidator){this.status=Vo,this._hasOwnPendingAsyncValidator=!0;const r=tw(this.asyncValidator(this));this._asyncValidationSubscription=r.subscribe(n=>{this._hasOwnPendingAsyncValidator=!1,this.setErrors(n,{emitEvent:t})})}}_cancelExistingSubscription(){this._asyncValidationSubscription&&(this._asyncValidationSubscription.unsubscribe(),this._hasOwnPendingAsyncValidator=!1)}setErrors(t,r={}){this.errors=t,this._updateControlsErrors(!1!==r.emitEvent)}get(t){let r=t;return null==r||(Array.isArray(r)||(r=r.split(".")),0===r.length)?null:r.reduce((n,o)=>n&&n._find(o),this)}getError(t,r){const n=r?this.get(r):this;return n&&n.errors?n.errors[t]:null}hasError(t,r){return!!this.getError(t,r)}get root(){let t=this;for(;t._parent;)t=t._parent;return t}_updateControlsErrors(t){this.status=this._calculateStatus(),t&&this.statusChanges.emit(this.status),this._parent&&this._parent._updateControlsErrors(t)}_initObservables(){this.valueChanges=new Ee,this.statusChanges=new Ee}_calculateStatus(){return this._allControlsDisabled()?fs:this.errors?Bl:this._hasOwnPendingAsyncValidator||this._anyControlsHaveStatus(Vo)?Vo:this._anyControlsHaveStatus(Bl)?Bl:ds}_anyControlsHaveStatus(t){return this._anyControls(r=>r.status===t)}_anyControlsDirty(){return this._anyControls(t=>t.dirty)}_anyControlsTouched(){return this._anyControls(t=>t.touched)}_updatePristine(t={}){this.pristine=!this._anyControlsDirty(),this._parent&&!t.onlySelf&&this._parent._updatePristine(t)}_updateTouched(t={}){this.touched=this._anyControlsTouched(),this._parent&&!t.onlySelf&&this._parent._updateTouched(t)}_registerOnCollectionChange(t){this._onCollectionChange=t}_setUpdateStrategy(t){$l(t)&&null!=t.updateOn&&(this._updateOn=t.updateOn)}_parentMarkedDirty(t){return!t&&!(!this._parent||!this._parent.dirty)&&!this._parent._anyControlsDirty()}_find(t){return null}_assignValidators(t){this._rawValidators=Array.isArray(t)?t.slice():t,this._composedValidatorFn=function ML(e){return Array.isArray(e)?ah(e):e||null}(this._rawValidators)}_assignAsyncValidators(t){this._rawAsyncValidators=Array.isArray(t)?t.slice():t,this._composedAsyncValidatorFn=function IL(e){return Array.isArray(e)?lh(e):e||null}(this._rawAsyncValidators)}}class ph extends vw{constructor(t,r,n){super(fh(r),hh(n,r)),this.controls=t,this._initObservables(),this._setUpdateStrategy(r),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}registerControl(t,r){return this.controls[t]?this.controls[t]:(this.controls[t]=r,r.setParent(this),r._registerOnCollectionChange(this._onCollectionChange),r)}addControl(t,r,n={}){this.registerControl(t,r),this.updateValueAndValidity({emitEvent:n.emitEvent}),this._onCollectionChange()}removeControl(t,r={}){this.controls[t]&&this.controls[t]._registerOnCollectionChange(()=>{}),delete this.controls[t],this.updateValueAndValidity({emitEvent:r.emitEvent}),this._onCollectionChange()}setControl(t,r,n={}){this.controls[t]&&this.controls[t]._registerOnCollectionChange(()=>{}),delete this.controls[t],r&&this.registerControl(t,r),this.updateValueAndValidity({emitEvent:n.emitEvent}),this._onCollectionChange()}contains(t){return this.controls.hasOwnProperty(t)&&this.controls[t].enabled}setValue(t,r={}){(function mw(e,t,r){e._forEachChild((n,o)=>{if(void 0===r[o])throw new S(1002,"")})})(this,0,t),Object.keys(t).forEach(n=>{(function gw(e,t,r){const n=e.controls;if(!(t?Object.keys(n):n).length)throw new S(1e3,"");if(!n[r])throw new S(1001,"")})(this,!0,n),this.controls[n].setValue(t[n],{onlySelf:!0,emitEvent:r.emitEvent})}),this.updateValueAndValidity(r)}patchValue(t,r={}){null!=t&&(Object.keys(t).forEach(n=>{const o=this.controls[n];o&&o.patchValue(t[n],{onlySelf:!0,emitEvent:r.emitEvent})}),this.updateValueAndValidity(r))}reset(t={},r={}){this._forEachChild((n,o)=>{n.reset(t[o],{onlySelf:!0,emitEvent:r.emitEvent})}),this._updatePristine(r),this._updateTouched(r),this.updateValueAndValidity(r)}getRawValue(){return this._reduceChildren({},(t,r,n)=>(t[n]=r.getRawValue(),t))}_syncPendingControls(){let t=this._reduceChildren(!1,(r,n)=>!!n._syncPendingControls()||r);return t&&this.updateValueAndValidity({onlySelf:!0}),t}_forEachChild(t){Object.keys(this.controls).forEach(r=>{const n=this.controls[r];n&&t(n,r)})}_setUpControls(){this._forEachChild(t=>{t.setParent(this),t._registerOnCollectionChange(this._onCollectionChange)})}_updateValue(){this.value=this._reduceValue()}_anyControls(t){for(const[r,n]of Object.entries(this.controls))if(this.contains(r)&&t(n))return!0;return!1}_reduceValue(){return this._reduceChildren({},(r,n,o)=>((n.enabled||this.disabled)&&(r[o]=n.value),r))}_reduceChildren(t,r){let n=t;return this._forEachChild((o,i)=>{n=r(n,o,i)}),n}_allControlsDisabled(){for(const t of Object.keys(this.controls))if(this.controls[t].enabled)return!1;return Object.keys(this.controls).length>0||this.disabled}_find(t){return this.controls.hasOwnProperty(t)?this.controls[t]:null}}const jo=new x("CallSetDisabledState",{providedIn:"root",factory:()=>Gl}),Gl="always";function hs(e,t,r=Gl){gh(e,t),t.valueAccessor.writeValue(e.value),(e.disabled||"always"===r)&&t.valueAccessor.setDisabledState?.(e.disabled),function AL(e,t){t.valueAccessor.registerOnChange(r=>{e._pendingValue=r,e._pendingChange=!0,e._pendingDirty=!0,"change"===e.updateOn&&yw(e,t)})}(e,t),function RL(e,t){const r=(n,o)=>{t.valueAccessor.writeValue(n),o&&t.viewToModelUpdate(n)};e.registerOnChange(r),t._registerOnDestroy(()=>{e._unregisterOnChange(r)})}(e,t),function xL(e,t){t.valueAccessor.registerOnTouched(()=>{e._pendingTouched=!0,"blur"===e.updateOn&&e._pendingChange&&yw(e,t),"submit"!==e.updateOn&&e.markAsTouched()})}(e,t),function TL(e,t){if(t.valueAccessor.setDisabledState){const r=n=>{t.valueAccessor.setDisabledState(n)};e.registerOnDisabledChange(r),t._registerOnDestroy(()=>{e._unregisterOnDisabledChange(r)})}}(e,t)}function Wl(e,t){e.forEach(r=>{r.registerOnValidatorChange&&r.registerOnValidatorChange(t)})}function gh(e,t){const r=function lw(e){return e._rawValidators}(e);null!==t.validator?e.setValidators(aw(r,t.validator)):"function"==typeof r&&e.setValidators([r]);const n=function cw(e){return e._rawAsyncValidators}(e);null!==t.asyncValidator?e.setAsyncValidators(aw(n,t.asyncValidator)):"function"==typeof n&&e.setAsyncValidators([n]);const o=()=>e.updateValueAndValidity();Wl(t._rawValidators,o),Wl(t._rawAsyncValidators,o)}function yw(e,t){e._pendingDirty&&e.markAsDirty(),e.setValue(e._pendingValue,{emitModelToViewChange:!1}),t.viewToModelUpdate(e._pendingValue),e._pendingChange=!1}const FL={provide:ot,useExisting:he(()=>Ho)},ps=(()=>Promise.resolve())();let Ho=(()=>{var e;class t extends ot{constructor(n,o,i){super(),this.callSetDisabledState=i,this.submitted=!1,this._directives=new Set,this.ngSubmit=new Ee,this.form=new ph({},ah(n),lh(o))}ngAfterViewInit(){this._setUpdateStrategy()}get formDirective(){return this}get control(){return this.form}get path(){return[]}get controls(){return this.form.controls}addControl(n){ps.then(()=>{const o=this._findContainer(n.path);n.control=o.registerControl(n.name,n.control),hs(n.control,n,this.callSetDisabledState),n.control.updateValueAndValidity({emitEvent:!1}),this._directives.add(n)})}getControl(n){return this.form.get(n.path)}removeControl(n){ps.then(()=>{const o=this._findContainer(n.path);o&&o.removeControl(n.name),this._directives.delete(n)})}addFormGroup(n){ps.then(()=>{const o=this._findContainer(n.path),i=new ph({});(function _w(e,t){gh(e,t)})(i,n),o.registerControl(n.name,i),i.updateValueAndValidity({emitEvent:!1})})}removeFormGroup(n){ps.then(()=>{const o=this._findContainer(n.path);o&&o.removeControl(n.name)})}getFormGroup(n){return this.form.get(n.path)}updateModel(n,o){ps.then(()=>{this.form.get(n.path).setValue(o)})}setValue(n){this.control.setValue(n)}onSubmit(n){return this.submitted=!0,function Cw(e,t){e._syncPendingControls(),t.forEach(r=>{const n=r.control;"submit"===n.updateOn&&n._pendingChange&&(r.viewToModelUpdate(n._pendingValue),n._pendingChange=!1)})}(this.form,this._directives),this.ngSubmit.emit(n),"dialog"===n?.target?.method}onReset(){this.resetForm()}resetForm(n=void 0){this.form.reset(n),this.submitted=!1}_setUpdateStrategy(){this.options&&null!=this.options.updateOn&&(this.form._updateOn=this.options.updateOn)}_findContainer(n){return n.pop(),n.length?this.form.get(n):this.form}}return(e=t).\u0275fac=function(n){return new(n||e)(I(Ye,10),I(Kn,10),I(jo,8))},e.\u0275dir=B({type:e,selectors:[["form",3,"ngNoForm","",3,"formGroup",""],["ng-form"],["","ngForm",""]],hostBindings:function(n,o){1&n&&R("submit",function(s){return o.onSubmit(s)})("reset",function(){return o.onReset()})},inputs:{options:["ngFormOptions","options"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],features:[De([FL]),le]}),t})();function Dw(e,t){const r=e.indexOf(t);r>-1&&e.splice(r,1)}function bw(e){return"object"==typeof e&&null!==e&&2===Object.keys(e).length&&"value"in e&&"disabled"in e}const ww=class extends vw{constructor(t=null,r,n){super(fh(r),hh(n,r)),this.defaultValue=null,this._onChange=[],this._pendingChange=!1,this._applyFormState(t),this._setUpdateStrategy(r),this._initObservables(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator}),$l(r)&&(r.nonNullable||r.initialValueIsDefault)&&(this.defaultValue=bw(t)?t.value:t)}setValue(t,r={}){this.value=this._pendingValue=t,this._onChange.length&&!1!==r.emitModelToViewChange&&this._onChange.forEach(n=>n(this.value,!1!==r.emitViewToModelChange)),this.updateValueAndValidity(r)}patchValue(t,r={}){this.setValue(t,r)}reset(t=this.defaultValue,r={}){this._applyFormState(t),this.markAsPristine(r),this.markAsUntouched(r),this.setValue(this.value,r),this._pendingChange=!1}_updateValue(){}_anyControls(t){return!1}_allControlsDisabled(){return this.disabled}registerOnChange(t){this._onChange.push(t)}_unregisterOnChange(t){Dw(this._onChange,t)}registerOnDisabledChange(t){this._onDisabledChange.push(t)}_unregisterOnDisabledChange(t){Dw(this._onDisabledChange,t)}_forEachChild(t){}_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(t){bw(t)?(this.value=this._pendingValue=t.value,t.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this.value=this._pendingValue=t}},jL={provide:er,useExisting:he(()=>gs)},Iw=(()=>Promise.resolve())();let gs=(()=>{var e;class t extends er{constructor(n,o,i,s,a,l){super(),this._changeDetectorRef=a,this.callSetDisabledState=l,this.control=new ww,this._registered=!1,this.name="",this.update=new Ee,this._parent=n,this._setValidators(o),this._setAsyncValidators(i),this.valueAccessor=function yh(e,t){if(!t)return null;let r,n,o;return Array.isArray(t),t.forEach(i=>{i.constructor===Lo?r=i:function OL(e){return Object.getPrototypeOf(e.constructor)===Ir}(i)?n=i:o=i}),o||n||r||null}(0,s)}ngOnChanges(n){if(this._checkForErrors(),!this._registered||"name"in n){if(this._registered&&(this._checkName(),this.formDirective)){const o=n.name.previousValue;this.formDirective.removeControl({name:o,path:this._getPath(o)})}this._setUpControl()}"isDisabled"in n&&this._updateDisabled(n),function vh(e,t){if(!e.hasOwnProperty("model"))return!1;const r=e.model;return!!r.isFirstChange()||!Object.is(t,r.currentValue)}(n,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(n){this.viewModel=n,this.update.emit(n)}_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(){hs(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(n){Iw.then(()=>{this.control.setValue(n,{emitViewToModelChange:!1}),this._changeDetectorRef?.markForCheck()})}_updateDisabled(n){const o=n.isDisabled.currentValue,i=0!==o&&Mo(o);Iw.then(()=>{i&&!this.control.disabled?this.control.disable():!i&&this.control.disabled&&this.control.enable(),this._changeDetectorRef?.markForCheck()})}_getPath(n){return this._parent?function zl(e,t){return[...t.path,e]}(n,this._parent):[n]}}return(e=t).\u0275fac=function(n){return new(n||e)(I(ot,9),I(Ye,10),I(Kn,10),I(gn,10),I(Ka,8),I(jo,8))},e.\u0275dir=B({type:e,selectors:[["","ngModel","",3,"formControlName","",3,"formControl",""]],inputs:{name:"name",isDisabled:["disabled","isDisabled"],model:["ngModel","model"],options:["ngModelOptions","options"]},outputs:{update:"ngModelChange"},exportAs:["ngModel"],features:[De([jL]),le,Rt]}),t})(),Yl=(()=>{var e;class t{}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275dir=B({type:e,selectors:[["form",3,"ngNoForm","",3,"ngNativeValidate",""]],hostAttrs:["novalidate",""]}),t})();const UL={provide:gn,useExisting:he(()=>_h),multi:!0};let Tw=(()=>{var e;class t{}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275mod=Cn({type:e}),e.\u0275inj=Kt({}),t})(),BL=(()=>{var e;class t{constructor(){this._accessors=[]}add(n,o){this._accessors.push([n,o])}remove(n){for(let o=this._accessors.length-1;o>=0;--o)if(this._accessors[o][1]===n)return void this._accessors.splice(o,1)}select(n){this._accessors.forEach(o=>{this._isSameGroup(o,n)&&o[1]!==n&&o[1].fireUncheck(n.value)})}_isSameGroup(n,o){return!!n[0].control&&n[0]._parent===o._control._parent&&n[1].name===o.name}}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275prov=L({token:e,factory:e.\u0275fac,providedIn:Tw}),t})(),_h=(()=>{var e;class t extends Ir{constructor(n,o,i,s){super(n,o),this._registry=i,this._injector=s,this.setDisabledStateFired=!1,this.onChange=()=>{},this.callSetDisabledState=A(jo,{optional:!0})??Gl}ngOnInit(){this._control=this._injector.get(er),this._checkName(),this._registry.add(this._control,this)}ngOnDestroy(){this._registry.remove(this)}writeValue(n){this._state=n===this.value,this.setProperty("checked",this._state)}registerOnChange(n){this._fn=n,this.onChange=()=>{n(this.value),this._registry.select(this)}}setDisabledState(n){(this.setDisabledStateFired||n||"whenDisabledForLegacyCode"===this.callSetDisabledState)&&this.setProperty("disabled",n),this.setDisabledStateFired=!0}fireUncheck(n){this.writeValue(n)}_checkName(){!this.name&&this.formControlName&&(this.name=this.formControlName)}}return(e=t).\u0275fac=function(n){return new(n||e)(I(Mn),I(bt),I(BL),I(wt))},e.\u0275dir=B({type:e,selectors:[["input","type","radio","formControlName",""],["input","type","radio","formControl",""],["input","type","radio","ngModel",""]],hostBindings:function(n,o){1&n&&R("change",function(){return o.onChange()})("blur",function(){return o.onTouched()})},inputs:{name:"name",formControlName:"formControlName",value:"value"},features:[De([UL]),le]}),t})();const YL={provide:gn,useExisting:he(()=>Ql),multi:!0};function Ow(e,t){return null==e?`${t}`:(t&&"object"==typeof t&&(t="Object"),`${e}: ${t}`.slice(0,50))}let Ql=(()=>{var e;class t extends Ir{constructor(){super(...arguments),this._optionMap=new Map,this._idCounter=0,this._compareWith=Object.is}set compareWith(n){this._compareWith=n}writeValue(n){this.value=n;const i=Ow(this._getOptionId(n),n);this.setProperty("value",i)}registerOnChange(n){this.onChange=o=>{this.value=this._getOptionValue(o),n(this.value)}}_registerOption(){return(this._idCounter++).toString()}_getOptionId(n){for(const o of this._optionMap.keys())if(this._compareWith(this._optionMap.get(o),n))return o;return null}_getOptionValue(n){const o=function QL(e){return e.split(":")[0]}(n);return this._optionMap.has(o)?this._optionMap.get(o):n}}return(e=t).\u0275fac=function(){let r;return function(o){return(r||(r=$e(e)))(o||e)}}(),e.\u0275dir=B({type:e,selectors:[["select","formControlName","",3,"multiple",""],["select","formControl","",3,"multiple",""],["select","ngModel","",3,"multiple",""]],hostBindings:function(n,o){1&n&&R("change",function(s){return o.onChange(s.target.value)})("blur",function(){return o.onTouched()})},inputs:{compareWith:"compareWith"},features:[De([YL]),le]}),t})(),kw=(()=>{var e;class t{constructor(n,o,i){this._element=n,this._renderer=o,this._select=i,this._select&&(this.id=this._select._registerOption())}set ngValue(n){null!=this._select&&(this._select._optionMap.set(this.id,n),this._setElementValue(Ow(this.id,n)),this._select.writeValue(this._select.value))}set value(n){this._setElementValue(n),this._select&&this._select.writeValue(this._select.value)}_setElementValue(n){this._renderer.setProperty(this._element.nativeElement,"value",n)}ngOnDestroy(){this._select&&(this._select._optionMap.delete(this.id),this._select.writeValue(this._select.value))}}return(e=t).\u0275fac=function(n){return new(n||e)(I(bt),I(Mn),I(Ql,9))},e.\u0275dir=B({type:e,selectors:[["option"]],inputs:{ngValue:"ngValue",value:"value"}}),t})();const XL={provide:gn,useExisting:he(()=>wh),multi:!0};function Fw(e,t){return null==e?`${t}`:("string"==typeof t&&(t=`'${t}'`),t&&"object"==typeof t&&(t="Object"),`${e}: ${t}`.slice(0,50))}let wh=(()=>{var e;class t extends Ir{constructor(){super(...arguments),this._optionMap=new Map,this._idCounter=0,this._compareWith=Object.is}set compareWith(n){this._compareWith=n}writeValue(n){let o;if(this.value=n,Array.isArray(n)){const i=n.map(s=>this._getOptionId(s));o=(s,a)=>{s._setSelected(i.indexOf(a.toString())>-1)}}else o=(i,s)=>{i._setSelected(!1)};this._optionMap.forEach(o)}registerOnChange(n){this.onChange=o=>{const i=[],s=o.selectedOptions;if(void 0!==s){const a=s;for(let l=0;l{var e;class t{constructor(n,o,i){this._element=n,this._renderer=o,this._select=i,this._select&&(this.id=this._select._registerOption(this))}set ngValue(n){null!=this._select&&(this._value=n,this._setElementValue(Fw(this.id,n)),this._select.writeValue(this._select.value))}set value(n){this._select?(this._value=n,this._setElementValue(Fw(this.id,n)),this._select.writeValue(this._select.value)):this._setElementValue(n)}_setElementValue(n){this._renderer.setProperty(this._element.nativeElement,"value",n)}_setSelected(n){this._renderer.setProperty(this._element.nativeElement,"selected",n)}ngOnDestroy(){this._select&&(this._select._optionMap.delete(this.id),this._select.writeValue(this._select.value))}}return(e=t).\u0275fac=function(n){return new(n||e)(I(bt),I(Mn),I(wh,9))},e.\u0275dir=B({type:e,selectors:[["option"]],inputs:{ngValue:"ngValue",value:"value"}}),t})();let Sr=(()=>{var e;class t{constructor(){this._validator=Ll}ngOnChanges(n){if(this.inputName in n){const o=this.normalizeInput(n[this.inputName].currentValue);this._enabled=this.enabled(o),this._validator=this._enabled?this.createValidator(o):Ll,this._onChange&&this._onChange()}}validate(n){return this._validator(n)}registerOnValidatorChange(n){this._onChange=n}enabled(n){return null!=n}}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275dir=B({type:e,features:[Rt]}),t})();const tV={provide:Ye,useExisting:he(()=>Uo),multi:!0};let Uo=(()=>{var e;class t extends Sr{constructor(){super(...arguments),this.inputName="required",this.normalizeInput=Mo,this.createValidator=n=>Zb}enabled(n){return n}}return(e=t).\u0275fac=function(){let r;return function(o){return(r||(r=$e(e)))(o||e)}}(),e.\u0275dir=B({type:e,selectors:[["","required","","formControlName","",3,"type","checkbox"],["","required","","formControl","",3,"type","checkbox"],["","required","","ngModel","",3,"type","checkbox"]],hostVars:1,hostBindings:function(n,o){2&n&&Gt("required",o._enabled?"":null)},inputs:{required:"required"},features:[De([tV]),le]}),t})();const rV={provide:Ye,useExisting:he(()=>Xl),multi:!0};let Xl=(()=>{var e;class t extends Sr{constructor(){super(...arguments),this.inputName="email",this.normalizeInput=Mo,this.createValidator=n=>Qb}enabled(n){return n}}return(e=t).\u0275fac=function(){let r;return function(o){return(r||(r=$e(e)))(o||e)}}(),e.\u0275dir=B({type:e,selectors:[["","email","","formControlName",""],["","email","","formControl",""],["","email","","ngModel",""]],inputs:{email:"email"},features:[De([rV]),le]}),t})();const iV={provide:Ye,useExisting:he(()=>Eh),multi:!0};let Eh=(()=>{var e;class t extends Sr{constructor(){super(...arguments),this.inputName="maxlength",this.normalizeInput=n=>function Vw(e){return"number"==typeof e?e:parseInt(e,10)}(n),this.createValidator=n=>function Jb(e){return t=>function zb(e){return null!=e&&"number"==typeof e.length}(t.value)&&t.value.length>e?{maxlength:{requiredLength:e,actualLength:t.value.length}}:null}(n)}}return(e=t).\u0275fac=function(){let r;return function(o){return(r||(r=$e(e)))(o||e)}}(),e.\u0275dir=B({type:e,selectors:[["","maxlength","","formControlName",""],["","maxlength","","formControl",""],["","maxlength","","ngModel",""]],hostVars:1,hostBindings:function(n,o){2&n&&Gt("maxlength",o._enabled?o.maxlength:null)},inputs:{maxlength:"maxlength"},features:[De([iV]),le]}),t})();const sV={provide:Ye,useExisting:he(()=>Mh),multi:!0};let Mh=(()=>{var e;class t extends Sr{constructor(){super(...arguments),this.inputName="pattern",this.normalizeInput=n=>n,this.createValidator=n=>function Kb(e){if(!e)return Ll;let t,r;return"string"==typeof e?(r="","^"!==e.charAt(0)&&(r+="^"),r+=e,"$"!==e.charAt(e.length-1)&&(r+="$"),t=new RegExp(r)):(r=e.toString(),t=e),n=>{if(Jn(n.value))return null;const o=n.value;return t.test(o)?null:{pattern:{requiredPattern:r,actualValue:o}}}}(n)}}return(e=t).\u0275fac=function(){let r;return function(o){return(r||(r=$e(e)))(o||e)}}(),e.\u0275dir=B({type:e,selectors:[["","pattern","","formControlName",""],["","pattern","","formControl",""],["","pattern","","ngModel",""]],hostVars:1,hostBindings:function(n,o){2&n&&Gt("pattern",o._enabled?o.pattern:null)},inputs:{pattern:"pattern"},features:[De([sV]),le]}),t})(),aV=(()=>{var e;class t{}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275mod=Cn({type:e}),e.\u0275inj=Kt({imports:[Tw]}),t})(),Jl=(()=>{var e;class t{static withConfig(n){return{ngModule:t,providers:[{provide:jo,useValue:n.callSetDisabledState??Gl}]}}}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275mod=Cn({type:e}),e.\u0275inj=Kt({imports:[aV]}),t})();class Kl{}class ec{}class mn{constructor(t){this.normalizedNames=new Map,this.lazyUpdate=null,t?"string"==typeof t?this.lazyInit=()=>{this.headers=new Map,t.split("\n").forEach(r=>{const n=r.indexOf(":");if(n>0){const o=r.slice(0,n),i=o.toLowerCase(),s=r.slice(n+1).trim();this.maybeSetNormalizedName(o,i),this.headers.has(i)?this.headers.get(i).push(s):this.headers.set(i,[s])}})}:typeof Headers<"u"&&t instanceof Headers?(this.headers=new Map,t.forEach((r,n)=>{this.setHeaderEntries(n,r)})):this.lazyInit=()=>{this.headers=new Map,Object.entries(t).forEach(([r,n])=>{this.setHeaderEntries(r,n)})}:this.headers=new Map}has(t){return this.init(),this.headers.has(t.toLowerCase())}get(t){this.init();const r=this.headers.get(t.toLowerCase());return r&&r.length>0?r[0]:null}keys(){return this.init(),Array.from(this.normalizedNames.values())}getAll(t){return this.init(),this.headers.get(t.toLowerCase())||null}append(t,r){return this.clone({name:t,value:r,op:"a"})}set(t,r){return this.clone({name:t,value:r,op:"s"})}delete(t,r){return this.clone({name:t,value:r,op:"d"})}maybeSetNormalizedName(t,r){this.normalizedNames.has(r)||this.normalizedNames.set(r,t)}init(){this.lazyInit&&(this.lazyInit instanceof mn?this.copyFrom(this.lazyInit):this.lazyInit(),this.lazyInit=null,this.lazyUpdate&&(this.lazyUpdate.forEach(t=>this.applyUpdate(t)),this.lazyUpdate=null))}copyFrom(t){t.init(),Array.from(t.headers.keys()).forEach(r=>{this.headers.set(r,t.headers.get(r)),this.normalizedNames.set(r,t.normalizedNames.get(r))})}clone(t){const r=new mn;return r.lazyInit=this.lazyInit&&this.lazyInit instanceof mn?this.lazyInit:this,r.lazyUpdate=(this.lazyUpdate||[]).concat([t]),r}applyUpdate(t){const r=t.name.toLowerCase();switch(t.op){case"a":case"s":let n=t.value;if("string"==typeof n&&(n=[n]),0===n.length)return;this.maybeSetNormalizedName(t.name,r);const o=("a"===t.op?this.headers.get(r):void 0)||[];o.push(...n),this.headers.set(r,o);break;case"d":const i=t.value;if(i){let s=this.headers.get(r);if(!s)return;s=s.filter(a=>-1===i.indexOf(a)),0===s.length?(this.headers.delete(r),this.normalizedNames.delete(r)):this.headers.set(r,s)}else this.headers.delete(r),this.normalizedNames.delete(r)}}setHeaderEntries(t,r){const n=(Array.isArray(r)?r:[r]).map(i=>i.toString()),o=t.toLowerCase();this.headers.set(o,n),this.maybeSetNormalizedName(t,o)}forEach(t){this.init(),Array.from(this.normalizedNames.keys()).forEach(r=>t(this.normalizedNames.get(r),this.headers.get(r)))}}class cV{encodeKey(t){return Gw(t)}encodeValue(t){return Gw(t)}decodeKey(t){return decodeURIComponent(t)}decodeValue(t){return decodeURIComponent(t)}}const dV=/%(\d[a-f0-9])/gi,fV={40:"@","3A":":",24:"$","2C":",","3B":";","3D":"=","3F":"?","2F":"/"};function Gw(e){return encodeURIComponent(e).replace(dV,(t,r)=>fV[r]??t)}function tc(e){return`${e}`}class tr{constructor(t={}){if(this.updates=null,this.cloneFrom=null,this.encoder=t.encoder||new cV,t.fromString){if(t.fromObject)throw new Error("Cannot specify both fromString and fromObject.");this.map=function uV(e,t){const r=new Map;return e.length>0&&e.replace(/^\?/,"").split("&").forEach(o=>{const i=o.indexOf("="),[s,a]=-1==i?[t.decodeKey(o),""]:[t.decodeKey(o.slice(0,i)),t.decodeValue(o.slice(i+1))],l=r.get(s)||[];l.push(a),r.set(s,l)}),r}(t.fromString,this.encoder)}else t.fromObject?(this.map=new Map,Object.keys(t.fromObject).forEach(r=>{const n=t.fromObject[r],o=Array.isArray(n)?n.map(tc):[tc(n)];this.map.set(r,o)})):this.map=null}has(t){return this.init(),this.map.has(t)}get(t){this.init();const r=this.map.get(t);return r?r[0]:null}getAll(t){return this.init(),this.map.get(t)||null}keys(){return this.init(),Array.from(this.map.keys())}append(t,r){return this.clone({param:t,value:r,op:"a"})}appendAll(t){const r=[];return Object.keys(t).forEach(n=>{const o=t[n];Array.isArray(o)?o.forEach(i=>{r.push({param:n,value:i,op:"a"})}):r.push({param:n,value:o,op:"a"})}),this.clone(r)}set(t,r){return this.clone({param:t,value:r,op:"s"})}delete(t,r){return this.clone({param:t,value:r,op:"d"})}toString(){return this.init(),this.keys().map(t=>{const r=this.encoder.encodeKey(t);return this.map.get(t).map(n=>r+"="+this.encoder.encodeValue(n)).join("&")}).filter(t=>""!==t).join("&")}clone(t){const r=new tr({encoder:this.encoder});return r.cloneFrom=this.cloneFrom||this,r.updates=(this.updates||[]).concat(t),r}init(){null===this.map&&(this.map=new Map),null!==this.cloneFrom&&(this.cloneFrom.init(),this.cloneFrom.keys().forEach(t=>this.map.set(t,this.cloneFrom.map.get(t))),this.updates.forEach(t=>{switch(t.op){case"a":case"s":const r=("a"===t.op?this.map.get(t.param):void 0)||[];r.push(tc(t.value)),this.map.set(t.param,r);break;case"d":if(void 0===t.value){this.map.delete(t.param);break}{let n=this.map.get(t.param)||[];const o=n.indexOf(tc(t.value));-1!==o&&n.splice(o,1),n.length>0?this.map.set(t.param,n):this.map.delete(t.param)}}}),this.cloneFrom=this.updates=null)}}class hV{constructor(){this.map=new Map}set(t,r){return this.map.set(t,r),this}get(t){return this.map.has(t)||this.map.set(t,t.defaultValue()),this.map.get(t)}delete(t){return this.map.delete(t),this}has(t){return this.map.has(t)}keys(){return this.map.keys()}}function zw(e){return typeof ArrayBuffer<"u"&&e instanceof ArrayBuffer}function qw(e){return typeof Blob<"u"&&e instanceof Blob}function Ww(e){return typeof FormData<"u"&&e instanceof FormData}class ms{constructor(t,r,n,o){let i;if(this.url=r,this.body=null,this.reportProgress=!1,this.withCredentials=!1,this.responseType="json",this.method=t.toUpperCase(),function pV(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!==n?n:null,i=o):i=n,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.headers||(this.headers=new mn),this.context||(this.context=new hV),this.params){const s=this.params.toString();if(0===s.length)this.urlWithParams=r;else{const a=r.indexOf("?");this.urlWithParams=r+(-1===a?"?":ad.set(g,t.setHeaders[g]),l)),t.setParams&&(c=Object.keys(t.setParams).reduce((d,g)=>d.set(g,t.setParams[g]),c)),new ms(r,n,i,{params:c,headers:l,context:u,reportProgress:a,responseType:o,withCredentials:s})}}var Bo=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}(Bo||{});class Ih{constructor(t,r=200,n="OK"){this.headers=t.headers||new mn,this.status=void 0!==t.status?t.status:r,this.statusText=t.statusText||n,this.url=t.url||null,this.ok=this.status>=200&&this.status<300}}class Sh extends Ih{constructor(t={}){super(t),this.type=Bo.ResponseHeader}clone(t={}){return new Sh({headers:t.headers||this.headers,status:void 0!==t.status?t.status:this.status,statusText:t.statusText||this.statusText,url:t.url||this.url||void 0})}}class $o extends Ih{constructor(t={}){super(t),this.type=Bo.Response,this.body=void 0!==t.body?t.body:null}clone(t={}){return new $o({body:void 0!==t.body?t.body:this.body,headers:t.headers||this.headers,status:void 0!==t.status?t.status:this.status,statusText:t.statusText||this.statusText,url:t.url||this.url||void 0})}}class Zw extends Ih{constructor(t){super(t,0,"Unknown Error"),this.name="HttpErrorResponse",this.ok=!1,this.message=this.status>=200&&this.status<300?`Http failure during parsing for ${t.url||"(unknown url)"}`:`Http failure response for ${t.url||"(unknown url)"}: ${t.status} ${t.statusText}`,this.error=t.error||null}}function Th(e,t){return{body:t,headers:e.headers,context:e.context,observe:e.observe,params:e.params,reportProgress:e.reportProgress,responseType:e.responseType,withCredentials:e.withCredentials}}let Ah=(()=>{var e;class t{constructor(n){this.handler=n}request(n,o,i={}){let s;if(n instanceof ms)s=n;else{let c,u;c=i.headers instanceof mn?i.headers:new mn(i.headers),i.params&&(u=i.params instanceof tr?i.params:new tr({fromObject:i.params})),s=new ms(n,o,void 0!==i.body?i.body:null,{headers:c,context:i.context,params:u,reportProgress:i.reportProgress,responseType:i.responseType||"json",withCredentials:i.withCredentials})}const a=V(s).pipe(So(c=>this.handler.handle(c)));if(n instanceof ms||"events"===i.observe)return a;const l=a.pipe(Qt(c=>c instanceof $o));switch(i.observe||"body"){case"body":switch(s.responseType){case"arraybuffer":return l.pipe(ee(c=>{if(null!==c.body&&!(c.body instanceof ArrayBuffer))throw new Error("Response is not an ArrayBuffer.");return c.body}));case"blob":return l.pipe(ee(c=>{if(null!==c.body&&!(c.body instanceof Blob))throw new Error("Response is not a Blob.");return c.body}));case"text":return l.pipe(ee(c=>{if(null!==c.body&&"string"!=typeof c.body)throw new Error("Response is not a string.");return c.body}));default:return l.pipe(ee(c=>c.body))}case"response":return l;default:throw new Error(`Unreachable: unhandled observe type ${i.observe}}`)}}delete(n,o={}){return this.request("DELETE",n,o)}get(n,o={}){return this.request("GET",n,o)}head(n,o={}){return this.request("HEAD",n,o)}jsonp(n,o){return this.request("JSONP",n,{params:(new tr).append(o,"JSONP_CALLBACK"),observe:"body",responseType:"json"})}options(n,o={}){return this.request("OPTIONS",n,o)}patch(n,o,i={}){return this.request("PATCH",n,Th(i,o))}post(n,o,i={}){return this.request("POST",n,Th(i,o))}put(n,o,i={}){return this.request("PUT",n,Th(i,o))}}return(e=t).\u0275fac=function(n){return new(n||e)(F(Kl))},e.\u0275prov=L({token:e,factory:e.\u0275fac}),t})();function Xw(e,t){return t(e)}function vV(e,t){return(r,n)=>t.intercept(r,{handle:o=>e(o,n)})}const _V=new x(""),vs=new x(""),Jw=new x("");function CV(){let e=null;return(t,r)=>{null===e&&(e=(A(_V,{optional:!0})??[]).reduceRight(vV,Xw));const n=A(Ya),o=n.add();return e(t,r).pipe(Zi(()=>n.remove(o)))}}let Kw=(()=>{var e;class t extends Kl{constructor(n,o){super(),this.backend=n,this.injector=o,this.chain=null,this.pendingTasks=A(Ya)}handle(n){if(null===this.chain){const i=Array.from(new Set([...this.injector.get(vs),...this.injector.get(Jw,[])]));this.chain=i.reduceRight((s,a)=>function yV(e,t,r){return(n,o)=>r.runInContext(()=>t(n,i=>e(i,o)))}(s,a,this.injector),Xw)}const o=this.pendingTasks.add();return this.chain(n,i=>this.backend.handle(i)).pipe(Zi(()=>this.pendingTasks.remove(o)))}}return(e=t).\u0275fac=function(n){return new(n||e)(F(ec),F(Dt))},e.\u0275prov=L({token:e,factory:e.\u0275fac}),t})();const EV=/^\)\]\}',?\n/;let t1=(()=>{var e;class t{constructor(n){this.xhrFactory=n}handle(n){if("JSONP"===n.method)throw new S(-2800,!1);const o=this.xhrFactory;return(o.\u0275loadImpl?Ne(o.\u0275loadImpl()):V(null)).pipe(jt(()=>new Ie(s=>{const a=o.build();if(a.open(n.method,n.urlWithParams),n.withCredentials&&(a.withCredentials=!0),n.headers.forEach((b,E)=>a.setRequestHeader(b,E.join(","))),n.headers.has("Accept")||a.setRequestHeader("Accept","application/json, text/plain, */*"),!n.headers.has("Content-Type")){const b=n.detectContentTypeHeader();null!==b&&a.setRequestHeader("Content-Type",b)}if(n.responseType){const b=n.responseType.toLowerCase();a.responseType="json"!==b?b:"text"}const l=n.serializeBody();let c=null;const u=()=>{if(null!==c)return c;const b=a.statusText||"OK",E=new mn(a.getAllResponseHeaders()),D=function MV(e){return"responseURL"in e&&e.responseURL?e.responseURL:/^X-Request-URL:/m.test(e.getAllResponseHeaders())?e.getResponseHeader("X-Request-URL"):null}(a)||n.url;return c=new Sh({headers:E,status:a.status,statusText:b,url:D}),c},d=()=>{let{headers:b,status:E,statusText:D,url:P}=u(),N=null;204!==E&&(N=typeof a.response>"u"?a.responseText:a.response),0===E&&(E=N?200:0);let Z=E>=200&&E<300;if("json"===n.responseType&&"string"==typeof N){const Ge=N;N=N.replace(EV,"");try{N=""!==N?JSON.parse(N):null}catch(Tt){N=Ge,Z&&(Z=!1,N={error:Tt,text:N})}}Z?(s.next(new $o({body:N,headers:b,status:E,statusText:D,url:P||void 0})),s.complete()):s.error(new Zw({error:N,headers:b,status:E,statusText:D,url:P||void 0}))},g=b=>{const{url:E}=u(),D=new Zw({error:b,status:a.status||0,statusText:a.statusText||"Unknown Error",url:E||void 0});s.error(D)};let m=!1;const y=b=>{m||(s.next(u()),m=!0);let E={type:Bo.DownloadProgress,loaded:b.loaded};b.lengthComputable&&(E.total=b.total),"text"===n.responseType&&a.responseText&&(E.partialText=a.responseText),s.next(E)},C=b=>{let E={type:Bo.UploadProgress,loaded:b.loaded};b.lengthComputable&&(E.total=b.total),s.next(E)};return a.addEventListener("load",d),a.addEventListener("error",g),a.addEventListener("timeout",g),a.addEventListener("abort",g),n.reportProgress&&(a.addEventListener("progress",y),null!==l&&a.upload&&a.upload.addEventListener("progress",C)),a.send(l),s.next({type:Bo.Sent}),()=>{a.removeEventListener("error",g),a.removeEventListener("abort",g),a.removeEventListener("load",d),a.removeEventListener("timeout",g),n.reportProgress&&(a.removeEventListener("progress",y),null!==l&&a.upload&&a.upload.removeEventListener("progress",C)),a.readyState!==a.DONE&&a.abort()}})))}}return(e=t).\u0275fac=function(n){return new(n||e)(F(uD))},e.\u0275prov=L({token:e,factory:e.\u0275fac}),t})();const xh=new x("XSRF_ENABLED"),n1=new x("XSRF_COOKIE_NAME",{providedIn:"root",factory:()=>"XSRF-TOKEN"}),r1=new x("XSRF_HEADER_NAME",{providedIn:"root",factory:()=>"X-XSRF-TOKEN"});class o1{}let TV=(()=>{var e;class t{constructor(n,o,i){this.doc=n,this.platform=o,this.cookieName=i,this.lastCookieString="",this.lastToken=null,this.parseCount=0}getToken(){if("server"===this.platform)return null;const n=this.doc.cookie||"";return n!==this.lastCookieString&&(this.parseCount++,this.lastToken=tD(n,this.cookieName),this.lastCookieString=n),this.lastToken}}return(e=t).\u0275fac=function(n){return new(n||e)(F(pt),F(hr),F(n1))},e.\u0275prov=L({token:e,factory:e.\u0275fac}),t})();function AV(e,t){const r=e.url.toLowerCase();if(!A(xh)||"GET"===e.method||"HEAD"===e.method||r.startsWith("http://")||r.startsWith("https://"))return t(e);const n=A(o1).getToken(),o=A(r1);return null!=n&&!e.headers.has(o)&&(e=e.clone({headers:e.headers.set(o,n)})),t(e)}var nr=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}(nr||{});const i1=new x("LEGACY_INTERCEPTOR_FN");class LV{constructor(){this.name="",this.email="",this.message=""}}let s1=(()=>{var e;class t{constructor(n){this.httpClient=n}postContactForm(n){return this.httpClient.post(`${ve_apiBaseUrl}contact`,n)}}return(e=t).\u0275fac=function(n){return new(n||e)(F(Ah))},e.\u0275prov=L({token:e,factory:e.\u0275fac}),t})();function VV(e,t){if(1&e){const r=Ae();h(0,"form",5,6),R("ngSubmit",function(){return ne(r),re(k().submit())}),h(2,"div",7)(3,"label",8),f(4,"Name "),h(5,"span",9),f(6,"*"),p()(),h(7,"input",10),R("ngModelChange",function(o){return ne(r),re(k().contactViewModel.name=o)}),p()(),h(8,"div",7)(9,"label",11),f(10,"Email address "),h(11,"span",9),f(12,"*"),p()(),h(13,"input",12),R("ngModelChange",function(o){return ne(r),re(k().contactViewModel.email=o)}),p()(),h(14,"div",7)(15,"label",13),f(16,"Message "),h(17,"span",9),f(18,"*"),p()(),h(19,"textarea",14),R("ngModelChange",function(o){return ne(r),re(k().contactViewModel.message=o)}),p()(),h(20,"button",15),f(21,"Submit"),p()()}if(2&e){const r=md(1),n=k();_(7),w("ngModel",n.contactViewModel.name),_(6),w("ngModel",n.contactViewModel.email),_(6),w("ngModel",n.contactViewModel.message),_(1),w("disabled",!r.valid||n.enableFormCountDown>0)}}function jV(e,t){1&e&&(h(0,"p"),f(1,"Thanks for your message."),p())}function HV(e,t){1&e&&(h(0,"p",16),f(1,"Something went wrong. Please try again later."),p())}let UV=(()=>{var e;class t{constructor(n){this.contactService=n,this.contactViewModel=new LV,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:n=>{console.log("Submitted form"),this.success=!0},error:n=>{console.error(n),this.error=!0},complete:()=>console.info("complete")})}}return(e=t).\u0275fac=function(n){return new(n||e)(I(s1))},e.\u0275cmp=vt({type:e,selectors:[["app-contact-component"]],standalone:!0,features:[Mt],decls:6,vars:3,consts:[[1,"container"],[1,"mb-4"],["method","post",3,"ngSubmit",4,"ngIf"],[4,"ngIf"],["class","text-danger",4,"ngIf"],["method","post",3,"ngSubmit"],["contactForm","ngForm"],[1,"mb-3"],["for","Name"],[1,"required"],["type","text","id","Name","name","Name","required","",1,"form-control",3,"ngModel","ngModelChange"],["for","Email"],["type","email","id","Email","name","Email","email","","required","",1,"form-control",3,"ngModel","ngModelChange"],["for","Message"],["rows","7","id","Message","name","Message","required","",1,"form-control",3,"ngModel","ngModelChange"],["type","submit",1,"btn","btn-primary",3,"disabled"],[1,"text-danger"]],template:function(n,o){1&n&&(h(0,"div",0)(1,"h1",1),f(2,"Contact"),p(),O(3,VV,22,4,"form",2),O(4,jV,2,0,"p",3),O(5,HV,2,0,"p",4),p()),2&n&&(_(3),w("ngIf",!o.success&&!o.error),_(1),w("ngIf",o.success),_(1),w("ngIf",o.error))},dependencies:[gl,Jl,Yl,Lo,jl,Hl,Uo,Xl,gs,Ho]}),t})();const a1=function(){return["/pro"]};let BV=(()=>{var e;class t{scrollToAnchor(n){return document.querySelector(n)?.scrollIntoView(!0),!1}}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275cmp=vt({type:e,selectors:[["app-features-component"]],standalone:!0,features:[Mt],decls:131,vars:4,consts:[[1,"container"],[1,"mb-4"],["id","coveragequota"],[1,"pro-text"],["href","https://en.wikipedia.org/wiki/Code_coverage","target","_blank"],[1,"fa-solid","fa-arrow-up-right-from-square"],[3,"routerLink"],[1,"pro-button","pro-button-tiny"],["loading","lazy","srcset","resources/features/quota@1x.webp 1x, resources/features/quota@2x.webp 2x","src","resources/features/quota1x.webp","alt","Coverage quotas",1,"img-fluid"],["id","coveragehistory",1,"mt-5"],["loading","lazy","srcset","resources/features/history@1x.webp 1x, resources/features/history@2x.webp 2x","src","resources/features/history@1x.webp","alt","Coverage history",1,"img-fluid"],["id","summary",1,"mt-5"],["loading","lazy","srcset","resources/features/summary@1x.webp 1x, resources/features/summary@2x.webp 2x","src","resources/features/summary.webp","alt","Summary table / Overview",1,"img-fluid"],["id","details",1,"mt-5"],["loading","lazy","srcset","resources/features/details@1x.webp 1x, resources/features/details@2x.webp 2x","src","resources/features/details.webp","alt","Details",1,"img-fluid"],["id","metrics",1,"mt-5"],["href","https://github.com/danielpalme/ReportGenerator/wiki/FAQ#which-coverage-tool-supports-which-features-in-the-html-report","target","_blank"],["href","",3,"click"],["loading","lazy","srcset","resources/features/metrics_details@1x.webp 1x, resources/features/metrics_details@2x.webp 2x","src","resources/features/metrics_details.webp","alt","Metrics - Details",1,"img-fluid"],["loading","lazy","srcset","resources/features/metrics_summary@1x.webp 1x, resources/features/metrics_summary@2x.webp 2x","src","resources/features/metrics_summary.webp","alt","Metrics - Summary",1,"img-fluid"],["id","riskhotspots",1,"mt-5"],["href","https://en.wikipedia.org/wiki/Cyclomatic_complexity","target","_blank"],["href","https://modess.io/npath-complexity-cyclomatic-complexity-explained","target","_blank"],["href","https://testing.googleblog.com/2011/02/this-code-is-crap.html","target","_blank"],["loading","lazy","srcset","resources/features/riskhotspots@1x.webp 1x, resources/features/riskhotspots@2x.webp 2x","src","resources/features/riskhotspots.webp","alt","Risk Hotspots",1,"img-fluid"]],template:function(n,o){1&n&&(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."),v(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),v(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()()()(),v(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(),v(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,"."),v(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(),v(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()(),v(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),R("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),R("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(),v(93,"br")(94,"img",18)(95,"br")(96,"br"),h(97,"b"),f(98,"Summary table"),p(),v(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),R("click",function(){return o.scrollToAnchor("#metrics")}),f(107,"metrics"),p(),f(108," you get a list of potential risk hotspots."),v(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),v(117,"i",5),p()(),h(118,"li")(119,"a",22),f(120,"NPath complexity"),p(),f(121,"\xa0"),h(122,"a",22),v(123,"i",5),p()(),h(124,"li")(125,"a",23),f(126,"Crap score"),p(),f(127,"\xa0"),h(128,"a",23),v(129,"i",5),p()()(),v(130,"img",24),p()),2&n&&(_(25),w("routerLink",K(2,a1)),_(63),w("routerLink",K(3,a1)))},dependencies:[pn]}),t})();const Ft={dotnetSDKVersion:"6.x",majorVersion:"5",version:"5.1.25"},$V=function(){return["/usage"]};let GV=(()=>{var e;class t{constructor(){this.versions=Ft}}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275cmp=vt({type:e,selectors:[["app-getstarted"]],standalone:!0,features:[Mt],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(n,o){1&n&&(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."),v(7,"br"),f(8,"This information is typically stored in a XML file (e.g. in Cobertura format)."),v(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&n&&(_(15),w("routerLink",K(5,$V)),_(22),An('\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'),_(5),An('dotnet test --collect:"XPlat Code Coverage"\n"%UserProfile%\\.nuget\\packages\\reportgenerator\\',o.versions.version,'\\tools\\net6.0\\ReportGenerator.exe" -reports:*\\TestResults\\*\\coverage.cobertura.xml -targetdir:coveragereport\n'),_(20),An("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"),_(9),An("npm i nyc --save-dev\nnyc --reporter=coberatura mocha\n\ndotnet tool update dotnet-reportgenerator-globaltool --tool-path tools --version ",o.versions.version,"\ntools\\reportgenerator -reports:coverage/cobertura-coverage.xml -targetdir:coveragereport\n"))},dependencies:[pn]}),t})(),l1=(()=>{var e;class t{}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275cmp=vt({type:e,selectors:[["app-testimonials"]],standalone:!0,features:[Mt],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(n,o){1&n&&(h(0,"section",0)(1,"div",1)(2,"h2",2),f(3,"Trusted by"),p(),h(4,"div",3)(5,"div",4),v(6,"i",5)(7,"br"),h(8,"a",6),f(9,".NET Runtime"),p()(),h(10,"div",4),v(11,"i",7)(12,"br"),h(13,"a",8),f(14,"Google Cloud"),p()(),h(15,"div",4),v(16,"i",9)(17,"br"),h(18,"a",10),f(19,"AWS Encryption SDK"),p()(),h(20,"div",11),v(21,"i",12)(22,"br"),h(23,"a",13),f(24,"Many more"),p()()(),h(25,"div",3)(26,"div",4)(27,"a",14),v(28,"i",15),f(29," Over 50 million downloads on Nuget"),p()()()()())},encapsulation:2}),t})();const zV=function(){return["/pro"]},qV=function(){return["/usage"]},WV=function(){return["/getstarted"]},ZV=function(){return["/features"]};let YV=(()=>{var e;class t{}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275cmp=vt({type:e,selectors:[["app-home"]],standalone:!0,features:[Mt],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(n,o){1&n&&(h(0,"section",0)(1,"div",1)(2,"div",2),v(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),v(29,"i",10),f(30," Browse example report"),p()()()()(),h(31,"div",11)(32,"div",12)(33,"div",13),v(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."),v(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),v(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),v(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),v(82,"i",25),f(83," Learn how to use"),p(),h(84,"a",26),v(85,"i",27),f(86," GitHub"),p()()()(),v(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 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,". "),v(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),v(110,"img",33),p()(),h(111,"div",34)(112,"a",35),v(113,"img",36),p()()()()()),2&n&&(_(45),w("routerLink",K(4,zV)),_(12),w("routerLink",K(5,qV)),_(24),w("routerLink",K(6,WV)),_(15),w("routerLink",K(7,ZV)))},dependencies:[pn,l1],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}}"]}),t})(),QV=(()=>{var e;class t{}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275cmp=vt({type:e,selectors:[["app-not-found"]],standalone:!0,features:[Mt],decls:5,vars:0,consts:[[1,"container"],[1,"mb-4"],[1,"fa-solid","fa-triangle-exclamation","fs-1","me-4"]],template:function(n,o){1&n&&(h(0,"div",0)(1,"h1",1),f(2,"Not found"),p(),v(3,"i",2),f(4," The requested page does not exist.\n"),p())}}),t})();class c1{constructor(){this.error=null,this.licenses=[]}}class XV{constructor(){this.error=null,this.isSponsor=!1,this.license=null}}let u1=(()=>{var e;class t{initCodeFlow(){const i=`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: "+i),location.href=i}validateStateAndExtractCode(){let n=location.href;const o=n.indexOf("?");o>-1&&(n=n.substring(o+1));const i=this.parseQueryString(n);return i.state&&i.code&&this.validateNonce(i.state)?i.code:null}createAndSaveNonce(){const n=this.createNonce();return typeof window.localStorage<"u"&&localStorage.setItem("nonce",n),n}validateNonce(n){let o;return typeof window.localStorage<"u"&&(o=localStorage.getItem("nonce"),localStorage.removeItem("nonce")),o&&0!==o.length?o===n||(console.error("Validating nonce failed. Values do not match.",o,n),!1):(console.error("Validating nonce failed. No saved nonce available.",o,n),!1)}createNonce(){const n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~";let o=45,i="";const s=typeof self>"u"?null:self.crypto||self.msCrypto;if(s){let l=new Uint8Array(o);s.getRandomValues(l),l.map||(l.map=Array.prototype.map);const c=[];for(var a=0;a0&&(u=decodeURIComponent(l),d=decodeURIComponent(c),"/"===u.substring(0,1)&&(u=u.substring(1)),o[u]=d);return o}base64UrlEncode(n){return btoa(n).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275prov=L({token:e,factory:e.\u0275fac}),t})(),d1=(()=>{var e;class t{constructor(n){this.httpClient=n}getLicense(n){return this.httpClient.get(`${ve_apiBaseUrl}reportgenerator/license?code=${encodeURIComponent(n)}`)}getTrialLicense(n){return this.httpClient.post(`${ve_apiBaseUrl}reportgenerator/triallicense`,n)}getPaddleLicense(n){return this.httpClient.post(`${ve_apiBaseUrl}reportgenerator/paddlelicense`,n)}}return(e=t).\u0275fac=function(n){return new(n||e)(F(Ah))},e.\u0275prov=L({token:e,factory:e.\u0275fac}),t})(),JV=(()=>{var e;class t{constructor(){this.isActive=!1,this.isActive=new Date-1)}}function T3(e,t){if(1&e&&(h(0,"div")(1,"label",110),f(2,"Thank you! Please save your license key persistently:"),p(),O(3,S3,6,3,"div",111),p()),2&e){const r=k(3);_(3),w("ngForOf",r.paddleLicense.licenses)}}function A3(e,t){if(1&e&&(h(0,"div",109),O(1,E3,8,3,"div",34),O(2,T3,4,1,"div",34),p()),2&e){const r=k(2);_(1),w("ngIf",r.paddleLicense.error),_(1),w("ngIf",!r.paddleLicense.error)}}function x3(e,t){if(1&e&&(h(0,"div",2),O(1,w3,6,0,"ng-container",34),O(2,A3,3,2,"div",107),p()),2&e){const r=k();_(1),w("ngIf",r.paddleLicenseRequested&&!r.paddleLicense),_(1),w("ngIf",r.paddleLicense)}}function R3(e,t){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())}const Go=function(){return["/features"]};let N3=(()=>{var e;class t{get lifetimeLicense(){return this._lifetimeLicense}set lifetimeLicense(n){this._lifetimeLicense=n,this.lifetimeLicenseChangeTracked||(this.lifetimeLicenseChangeTracked=!0,this.trackingService.track("Licensetype changed"))}constructor(n,o,i){this.oauthService=n,this.licenseService=o,this.trackingService=i,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=!1,window.paddleCheckoutComplete=s=>{this.paddleCheckoutComplete(s)},window.Paddle.Setup({vendor:144162}),window.Paddle.Product.Prices(762579,s=>{this.paddleIndividualLicensePrice=s.recurring.price.gross}),window.Paddle.Product.Prices(762580,s=>{this.paddleTeamLicensePrice=s.recurring.price.gross}),window.Paddle.Product.Prices(762581,s=>{this.paddleEnterpriseLicensePrice=s.recurring.price.gross}),window.Paddle.Product.Prices(833943,s=>{this.paddleIndividualLifetimeLicensePrice=s.price.gross}),window.Paddle.Product.Prices(833944,s=>{this.paddleTeamLifetimeLicensePrice=s.price.gross}),window.Paddle.Product.Prices(833945,s=>{this.paddleEnterpriseLifetimeLicensePrice=s.price.gross})}ngOnInit(){const n=this.oauthService.validateStateAndExtractCode();null!==n?(console.log("Code received",n),this.licenseRequested=!0,this.licenseService.getLicense(n).subscribe({next:o=>{console.log("Received license response"),this.license=o,this.scrollToGithub()},error:o=>{console.error(o),this.license=new XV,this.license.error="Unable to generate license."},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(n){console.error("Failed to copy license",n)}}copyPaddle(n){try{navigator.clipboard.writeText(n),this.copiedPaddledLicenses.push(n)}catch(o){console.error("Failed to copy paddle license",o)}}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:n=>{console.log("Received trial license response"),this.paddleLicense=n,this.scrollToPaddle();try{window.localStorage.setItem("trialRequested","true"),this.trialDisabled=!0}catch{}this.trackingService.track("Trial-Completed")},error:n=>{console.error(n),this.paddleLicense=new c1,this.paddleLicense.error="Unable to generate trial license."},complete:()=>{console.info("complete"),this.requestTrialData={name:"",email:""}}})}openPaddleCheckout(n){"enterprise"===n?window.Paddle.Checkout.open({product:this.lifetimeLicense?833945:762581,successCallback:"paddleCheckoutComplete"}):"team"===n?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:n,lifetimeLicense:this.lifetimeLicense}})}paddleCheckoutComplete(n){console.log("Checkout completed",n),this.paddleLicenseRequested=!0,this.licenseService.getPaddleLicense(n).subscribe({next:o=>{console.log("Received paddle license response"),this.paddleLicense=o,this.scrollToPaddle(),this.trackingService.track("Paddle-Completed",{props:{product:n.product.name,lifetimeLicense:this.lifetimeLicense}})},error:o=>{console.error(o),this.paddleLicense=new c1,this.paddleLicense.error="Unable to generate Paddle license."},complete:()=>console.info("complete")})}}return(e=t).\u0275fac=function(n){return new(n||e)(I(u1),I(d1),I(JV))},e.\u0275cmp=vt({type:e,selectors:[["app-pro-component"]],standalone:!0,features:[Mt],decls:229,vars:25,consts:[[1,"container"],[1,"mb-4"],[1,"row"],[1,"col-xs-12","col-md-6","order-2","order-md-1"],[1,"table"],["scope","col"],["scope","col",1,"text-center"],[1,"pro-button"],["scope","row"],["fragment","metrics","title","Show feature details",3,"routerLink"],[1,"fa-solid","fa-circle-info","text-secondary"],[1,"text-center"],[1,"fa-solid","fa-circle-check","text-secondary"],["fragment","riskhotspots","title","Show feature details",3,"routerLink"],["title","Show feature details",3,"routerLink"],[1,"fa-solid","fa-circle-check","pro-text"],[1,"col-xs-12","col-md-6","order-1","order-md-2"],["href","",3,"click"],[3,"routerLink"],["id","github",1,"container-fluid","mt-5","pt-5","pb-5","bg-light"],[1,"col-xs-12","col-md-6","pb-3"],[1,"fs-2","me-3","number"],["href","https://github.com/sponsors/danielpalme","target","_blank",1,"btn","btn-outline-dark"],[1,"fa-solid","fa-heart","githubheart"],["type","button",1,"btn","btn-primary","me-3",3,"disabled","click"],[1,"fa-solid","fa-rocket"],["class","spinner-border text-info","role","status",4,"ngIf"],["class","col-md-6 pb-3 d-none d-lg-block","style","position: relative;",4,"ngIf"],["class","col-xs-12 col-md-6 pb-3",4,"ngIf"],["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"],[1,"container-fluid","mt-4","pt-5","pb-5","bg-light"],[1,"container","text-center"],[1,"row","mt-5",2,"max-width","550px","margin","auto"],["href","https://twitter.com/fredyfx/status/1642807795828543488","target","_blank"],["loading","lazy","src","resources/twitter_light.webp","alt","Testimonial",1,"img-fluid"],["id","faq",1,"container","mt-5","pt-5","pb-5"],["id","accordionFaq",1,"accordion","accordion-flush"],[1,"accordion-item"],["id","headingOne",1,"accordion-header"],["type","button","data-bs-toggle","collapse","data-bs-target","#collapseOne","aria-expanded","true","aria-controls","collapseOne",1,"accordion-button"],["id","collapseOne","aria-labelledby","headingOne","data-bs-parent","#accordionFaq",1,"accordion-collapse","collapse","show"],[1,"accordion-body"],["id","headingTwo",1,"accordion-header"],["type","button","data-bs-toggle","collapse","data-bs-target","#collapseTwo","aria-expanded","false","aria-controls","collapseTwo",1,"accordion-button","collapsed"],["id","collapseTwo","aria-labelledby","headingTwo","data-bs-parent","#accordionFaq",1,"accordion-collapse","collapse"],["id","headingThree",1,"accordion-header"],["type","button","data-bs-toggle","collapse","data-bs-target","#collapseThree","aria-expanded","false","aria-controls","collapseThree",1,"accordion-button","collapsed"],["id","collapseThree","aria-labelledby","headingThree","data-bs-parent","#accordionFaq",1,"accordion-collapse","collapse"],["tabindex","-1","id","requestTrialModal",1,"modal"],[1,"modal-dialog"],[1,"modal-content"],["method","post",3,"ngSubmit"],["trialForm","ngForm"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal","aria-label","Close",1,"btn-close"],[1,"modal-body"],[1,"form-floating","mb-3"],["type","text","id","name","name","name","required","","maxlength","150",1,"form-control",3,"ngModel","ngModelChange"],["for","floatingInput"],[1,"required"],["type","email","id","email","name","email","required","","email","","maxlength","150",1,"form-control",3,"ngModel","ngModelChange"],[1,"modal-footer"],["type","button","data-bs-dismiss","modal",1,"btn","btn-secondary"],["type","submit",1,"btn","btn-primary",3,"disabled"],["role","status",1,"spinner-border","text-info"],[1,"visually-hidden"],[1,"col-md-6","pb-3","d-none","d-lg-block",2,"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"],[1,"btn","btn-outline-dark","mt-2",3,"click"],[1,"fa-solid","fa-copy"],[1,"fa-solid","fa-check","text-success"],[1,"togglecontainer"],[1,"option",3,"ngClass","click"],[1,"fa-solid","fa-rotate-right"],[1,"fa-solid","fa-infinity"],[1,"col-xs-12","col-md-6","col-lg-3","mt-0","pb-3","text-center","paddle-container"],[1,"paddle","trial"],["src","resources/trial.svg","alt","Trial",1,"img-fluid"],[1,"mt-3"],[1,"fa-solid","fa-magnifying-glass"],[1,"fa-solid","fa-calendar-days"],["type","button","class","btn btn-primary",3,"disabled","click",4,"ngIf"],["type","button","class","btn btn-primary","disabled","",4,"ngIf"],[1,"col-xs-12","col-md-6","col-lg-3","mt-4","mt-md-0","pb-3","text-center","paddle-container"],[1,"paddle"],["src","resources/individual.svg","alt","Individual",1,"img-fluid"],[1,"fa-solid","fa-user"],["type","button","class","btn btn-primary",3,"click",4,"ngIf"],[1,"col-xs-12","col-md-6","col-lg-3","mt-4","mt-lg-0","pb-3","text-center","paddle-container"],["src","resources/team.svg","alt","Team",1,"img-fluid"],[1,"fa-solid","fa-users"],[1,"col-xs-6","col-md-6","col-lg-3","mt-4","mt-lg-0","pb-3","text-center","paddle-container"],["src","resources/enterprise.svg","alt","Enterprise",1,"img-fluid"],[1,"fa-solid","fa-industry"],["type","button",1,"btn","btn-primary",3,"disabled","click"],["type","button","disabled","",1,"btn","btn-primary"],["type","button",1,"btn","btn-primary",3,"click"],[1,"fa-solid","fa-cart-shopping"],["class","col-xs-12 col-md-6",4,"ngIf"],[2,"position","relative","left","35px","top","-20px"],[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"]],template:function(n,o){if(1&n&&(h(0,"div",0)(1,"h1",1),f(2,"PRO"),p(),h(3,"div",2)(4,"div",3)(5,"table",4)(6,"thead")(7,"tr"),v(8,"th",5),h(9,"th",6),f(10,"Free"),p(),h(11,"th",6)(12,"span",7),f(13,"PRO"),p()()()(),h(14,"tbody")(15,"tr")(16,"th",8),f(17,"Metrics "),h(18,"a",9),v(19,"i",10),p()(),h(20,"td",11),v(21,"i",12),p(),h(22,"td",11),v(23,"i",12),p()(),h(24,"tr")(25,"th",8),f(26,"Risk Hotspots "),h(27,"a",13),v(28,"i",10),p()(),h(29,"td",11),v(30,"i",12),p(),h(31,"td",11),v(32,"i",12),p()(),h(33,"tr")(34,"th",8),f(35,"Line coverage "),h(36,"a",14),v(37,"i",10),p()(),h(38,"td",11),v(39,"i",12),p(),h(40,"td",11),v(41,"i",12),p()(),h(42,"tr")(43,"th",8),f(44,"Branch coverage "),h(45,"a",14),v(46,"i",10),p()(),h(47,"td",11),v(48,"i",12),p(),h(49,"td",11),v(50,"i",12),p()(),h(51,"tr")(52,"th",8),f(53,"Method coverage "),h(54,"a",14),v(55,"i",10),p()(),v(56,"td",11),h(57,"td",11),v(58,"i",15),p()(),h(59,"tr")(60,"th",8),f(61,"Metrics on summary page "),h(62,"a",9),v(63,"i",10),p()(),v(64,"td",11),h(65,"td",11),v(66,"i",15),p()(),h(67,"tr")(68,"th",8)(69,"i"),f(70,"OpenCover"),p(),f(71," output format"),p(),v(72,"td",11),h(73,"td",11),v(74,"i",15),p()()()()(),h(75,"div",16)(76,"p")(77,"i"),f(78,"ReportGenerator"),p(),f(79," is Open Source and free to use."),v(80,"br"),f(81," Some of the advanced features require a PRO license. "),p(),h(82,"p"),f(83," You can either become a "),h(84,"a",17),R("click",function(){return o.scrollToGithub()}),f(85,"GitHub sponsor"),p(),f(86," or you can "),h(87,"a",17),R("click",function(){return o.scrollToPaddle()}),f(88,"buy a license"),p(),f(89,"."),v(90,"br"),f(91," A "),h(92,"a",17),R("click",function(){return o.scrollToPaddle()}),f(93,"free trial version"),p(),f(94," is available too. "),p(),h(95,"p"),f(96," Get "),h(97,"a",18),f(98,"in touch"),p(),f(99," if you have any issues and we will figure it out. "),p()()()(),h(100,"section",19)(101,"div",0)(102,"h2",1),f(103,"Get your license as a GitHub sponsor"),p(),h(104,"div",2)(105,"div",20)(106,"p"),f(107,"You can obtain your license in two easy steps (no sign up required):"),p(),h(108,"span",21),f(109,"1."),p(),h(110,"a",22),v(111,"i",23),f(112," Become a GitHub sponsor"),p(),v(113,"br"),h(114,"span",21),f(115,"2."),p(),h(116,"button",24),R("click",function(){return o.requestLicense()}),v(117,"i",25),f(118," Get license"),p(),O(119,KV,3,0,"div",26),p(),O(120,e3,2,0,"div",27),O(121,s3,4,3,"div",28),p()()(),h(122,"section",29)(123,"div",0)(124,"h2",1),f(125,"Buy a license"),p(),h(126,"div",30),O(127,a3,7,6,"span",31),p(),O(128,b3,61,17,"div",32),O(129,x3,3,2,"div",32),h(130,"div",33),O(131,R3,4,0,"p",34),h(132,"p"),f(133,"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()()()(),v(134,"app-testimonials"),h(135,"section",35)(136,"div",36)(137,"h3"),f(138,"Customers"),p(),h(139,"div",37)(140,"a",38),v(141,"img",39),p()()()(),h(142,"section",40)(143,"h2",1),f(144,"Frequently Asked Questions"),p(),h(145,"div",41)(146,"div",42)(147,"h2",43)(148,"button",44),f(149," How do I use/activate my license? "),p()(),h(150,"div",45)(151,"div",46),f(152," Your license key is passed to "),h(153,"i"),f(154,"ReportGenerator"),p(),f(155," via a command line parameter: "),h(156,"i"),f(157,"-license:YOUR_KEY"),p()()()(),h(158,"div",42)(159,"h2",47)(160,"button",48),f(161," Are there limitations on number of users? "),p()(),h(162,"div",49)(163,"div",46)(164,"b"),f(165,"GitHub sponsors"),p(),v(166,"br"),h(167,"p"),f(168,"There's no enforced limit. Please pick a sponsor level that fits your company size and budget."),p(),h(169,"b"),f(170,"Bought license"),p(),v(171,"br"),h(172,"p"),f(173,"There's no enforced limit. Please choose a plan that matches the number of developers using "),h(174,"i"),f(175,"ReportGenerator"),p(),f(176,"."),p()()()(),h(177,"div",42)(178,"h2",50)(179,"button",51),f(180," Will my license expire? "),p()(),h(181,"div",52)(182,"div",46)(183,"b"),f(184,"GitHub sponsors"),p(),v(185,"br"),h(186,"p"),f(187,"Your license will not expire."),p(),h(188,"b"),f(189,"Bought license"),p(),v(190,"br"),h(191,"p")(192,"b"),f(193,"Annual subscription"),p(),f(194,": Your license may get revoked for new releases of "),h(195,"i"),f(196,"ReportGenerator"),p(),f(197,", if you cancel your subscription."),v(198,"br"),h(199,"b"),f(200,"Lifetime licenses"),p(),f(201,": Lifetime licenses will not expire. "),p()()()()()(),h(202,"div",53)(203,"div",54)(204,"div",55)(205,"form",56,57),R("ngSubmit",function(){return o.completeTrial()}),h(207,"div",58)(208,"h5",59),f(209,"Free Trial"),p(),v(210,"button",60),p(),h(211,"div",61)(212,"div",62)(213,"input",63),R("ngModelChange",function(s){return o.requestTrialData.name=s}),p(),h(214,"label",64),f(215,"Name "),h(216,"span",65),f(217,"*"),p()()(),h(218,"div",62)(219,"input",66),R("ngModelChange",function(s){return o.requestTrialData.email=s}),p(),h(220,"label",64),f(221,"Email address "),h(222,"span",65),f(223,"*"),p()()()(),h(224,"div",67)(225,"button",68),f(226,"Close"),p(),h(227,"button",69),f(228,"Get trial license"),p()()()()()()),2&n){const i=md(206);_(18),w("routerLink",K(18,Go)),_(9),w("routerLink",K(19,Go)),_(9),w("routerLink",K(20,Go)),_(9),w("routerLink",K(21,Go)),_(9),w("routerLink",K(22,Go)),_(8),w("routerLink",K(23,Go)),_(35),w("routerLink",K(24,Rh)),_(19),w("disabled",o.licenseRequested),_(3),w("ngIf",o.licenseRequested&&!o.license),_(1),w("ngIf",!o.license),_(1),w("ngIf",o.license),_(6),w("ngIf",!o.paddleLicenseRequested),_(1),w("ngIf",!o.paddleLicenseRequested),_(1),w("ngIf",o.paddleLicenseRequested),_(2),w("ngIf",!o.lifetimeLicense),_(82),w("ngModel",o.requestTrialData.name),_(6),w("ngModel",o.requestTrialData.email),_(8),w("disabled",!i.valid)}},dependencies:[pn,Df,gl,pl,Jl,Yl,Lo,jl,Hl,Uo,Eh,Xl,gs,Ho,l1],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}}"]}),t})();class rc{constructor(t,r,n,o,i,s){this.name=t,this.url=r,this.runtimes=n,this.description=o,this.installOptions=i,this.executables=s}formatExecutable(t){return t.tool}formatArgument(t,r){if(""===(r=r.trim()))return"";const n=r.indexOf(" ")>-1?'"':"";return`\r\n${n}-${t}:${r}${n}`}formatArguments(t,r){return this.formatArgument(t,r.filter(n=>null!=n&&0!==n.length&&0!==n.trim().length).join(";"))}}class P3 extends rc{formatExecutable(t){let r=`- task: ${t.tool}@${Ft.majorVersion}`;return r+="\r\n displayName: ReportGenerator",r+="\r\n inputs:",console.log("hello",r),r}formatArgument(t,r){if(""===(r=r.trim()))return"";const n=r.indexOf(" ")>-1?"'":"";return`\r\n ${t}: ${n}${r}${n}`}}class O3{constructor(){this.verbosities=["Verbose","Info","Warning","Error","Off"],this.types=["Html","Coverage tool","Json","Markdown","Xml","Text","Image"],this.reports=["cobertura.xml"],this.targetdir="coveragereport",this.reporttypes=[{name:"Html",types:["Html"],description:"The default output format. Creates a summary overview (index.html) and detailed reports for each class.",requiresHistoryDir:!1,checked:!0,sampleReport:"resources/reports/Html/index.html"},{name:"Html_Light",types:["Html"],description:"Same as Html but with a light theme.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/Html_Light/index.html"},{name:"Html_Dark",types:["Html"],description:"Same as Html but with a dark theme.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/Html_Dark/index.html"},{name:"Html_BlueRed",types:["Html"],description:"Same as Html but with the colors blue/red instead of green/red.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/Html_BlueRed/index.html"},{name:"HtmlSummary",types:["Html"],description:"Creates a single HTML file (summary.html) without links.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/HtmlSummary/summary.html"},{name:"Html_BlueRed_Summary",types:["Html"],description:"Same as HtmlSummary but with the colors blue/red instead of green/red.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/Html_BlueRed_Summary/summary.html"},{name:"HtmlChart",types:["Html"],description:"Creates a single HTML file containing a chart with historic coverage information.",requiresHistoryDir:!0,checked:!1,sampleReport:"resources/reports/HtmlChart/CoverageHistory.html"},{name:"HtmlInline",types:["Html"],description:"Same as HTML but CSS and JavaScript is included in every HTML page. This results in larger file sizes, but can be useful for integration into build servers like Azure DevOps (VSTS), since they may block referenced CSS and JavaScript files.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/HtmlInline/index.html"},{name:"HtmlInline_AzurePipelines",types:["Html"],description:"Same as HtmlInline but with an adaptive light/dark theme matching the look and feel of Azure Pipelines",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/HtmlInline_AzurePipelines/index.html"},{name:"HtmlInline_AzurePipelines_Light",types:["Html"],description:"Same as HtmlInline but with a light theme matching the look and feel of Azure Pipelines.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/HtmlInline_AzurePipelines_Light/index.html"},{name:"HtmlInline_AzurePipelines_Dark",types:["Html"],description:"Same as HtmlInline but with a dark theme matching the look and feel of Azure Pipelines.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/HtmlInline_AzurePipelines_Dark/index.html"},{name:"MHtml",types:["Html"],description:"Same as HTML but packaged into a single MHTML file.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/MHtml/Summary.mht"},{name:"Clover",types:["Coverage tool"],description:"Creates a XML file in Clover format. This format integrates with tools like Atlassian Bamboo.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/Clover/Clover.xml"},{name:"Cobertura",types:["Coverage tool"],description:"Creates a XML file in Cobertura format. This format integrates with tools like Azure DevOps (VSTS) or Jenkins.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/Cobertura/Cobertura.xml"},{name:"OpenCover",types:["Coverage tool"],description:"Creates a XML file in OpenCover format (PRO version only).",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/OpenCover/OpenCover.xml"},{name:"SonarQube",types:["Coverage tool"],description:"Creates a XML file in SonarQube 'Generic Test Data' format.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/SonarQube/SonarQube.xml"},{name:"lcov",types:["Coverage tool"],description:"Creates a text file in 'lcov' format.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/lcov/lcov.info"},{name:"XML",types:["Xml"],description:"Creates a XML file containing a summary for all classes and detailed reports for each class.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/Xml/Summary.xml"},{name:"XMLSummary",types:["Xml"],description:"Creates a single XML file containing a summary for all classes.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/XmlSummary/Summary.xml"},{name:"JsonSummary",types:["Json"],description:"Creates a single JSON file containing a summary for all classes.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/JsonSummary/Summary.json"},{name:"Latex",types:["Text"],description:"Creates a single TEX file containing a summary for all classes and detailed reports for each class.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/Summary/Summary.tex"},{name:"LatexSummary",types:["Text"],description:"Creates a single TEX file containing a summary for all classes.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/LatexSummary/Summary.tex"},{name:"TeamCitySummary",types:["Coverage tool"],description:"Command line output interpreted by TeamCity.",requiresHistoryDir:!1,checked:!1,sampleReport:null},{name:"TextSummary",types:["Text"],description:"Creates a single TXT file containing coverage information per class.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/TextSummary/Summary.txt"},{name:"TextDeltaSummary",types:["Text"],description:"Creates a single TXT file containing delta coverage information.",requiresHistoryDir:!0,checked:!1,sampleReport:"resources/reports/TextDeltaSummary/DeltaSummary.txt"},{name:"CsvSummary",types:["Text"],description:"Creates a single CSV file containing coverage information per class.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/CsvSummary/Summary.csv"},{name:"MarkdownSummary",types:["Text","Markdown"],description:"Creates a single Markdown file containing coverage information per class.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/MarkdownSummary/Summary.md"},{name:"MarkdownSummaryGithub",types:["Text","Markdown"],description:"Creates a single Markdown file containing coverage information per class. The report is optimized for GitHub.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/MarkdownSummaryGithub/SummaryGithub.md"},{name:"MarkdownDeltaSummary",types:["Text","Markdown"],description:"Creates a single Markdown file containing delta coverage information.",requiresHistoryDir:!0,checked:!1,sampleReport:"resources/reports/MarkdownDeltaSummary/DeltaSummary.md"},{name:"PngChart",types:["Image"],description:"Creates a single PNG file containing a chart with historic coverage information.",requiresHistoryDir:!0,checked:!1,sampleReport:"resources/reports/PngChart/CoverageHistory.png"},{name:"Badges",types:["Image"],description:"Creates SVGs and PNGs 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(t){return this.sourcedirectories.splice(t,1),!1}addReport(){return this.reports.push(""),!1}removeReport(t){return this.reports.splice(t,1),!1}addPlugin(){return this.plugins.push(""),!1}removePlugin(t){return this.plugins.splice(t,1),!1}addAssemblyFilter(){return this.assemblyfilters.push(""),!1}removeAssemblyFilter(t){return this.assemblyfilters.splice(t,1),!1}addClassFilter(){return this.classfilters.push(""),!1}removeClassFilter(t){return this.classfilters.splice(t,1),!1}addFileFilter(){return this.filefilters.push(""),!1}removeFileFilter(t){return this.filefilters.splice(t,1),!1}getUsage(t,r){const n=t.executables.find(a=>a.runtime==r);let o=void 0!==n?t.formatExecutable(n):"";o+=t.formatArguments("reports",this.reports),o+=t.formatArgument("targetdir",this.targetdir);for(var i="",s=0;s0&&(i+=";"),i+=this.reporttypes[s].name);return i.length>0&&"Html"!==i&&(o+=t.formatArgument("reporttypes",i)),o+=t.formatArguments("sourcedirs",this.sourcedirectories),o+=t.formatArgument("historydir",this.historydir),o+=t.formatArguments("plugins",this.plugins),o+=t.formatArguments("assemblyfilters",this.assemblyfilters),o+=t.formatArguments("classfilters",this.classfilters),o+=t.formatArguments("filefilters",this.filefilters),"Info"!==this.selectedverbosity&&(o+=t.formatArgument("verbosity",this.selectedverbosity)),o+=t.formatArgument("title",this.title),o+=t.formatArgument("tag",this.tag),o+=t.formatArgument("license",this.license),o}historyDirRequired(){for(let t=0;t-1?"'":"";return`\r\n ${t}: ${n}${r}${n}`}}class Nh{constructor(t,r){this.tool=t,this.command=r}}function F3(e,t){if(1&e){const r=Ae();h(0,"div",35)(1,"label",36)(2,"input",37),R("ngModelChange",function(o){return ne(r),re(k().selectedEnvironment=o)})("ngModelChange",function(){return ne(r),re(k().selectedEnvironmentChanged())}),p(),h(3,"b"),f(4),p(),v(5,"br"),h(6,"div",38),f(7),p()()()}if(2&e){const r=t.$implicit,n=k();_(2),w("ngModel",n.selectedEnvironment)("value",r)("checked",n.selectedEnvironment.name===r.name),_(2),Ce(r.name),_(3),Ce(r.description)}}function L3(e,t){if(1&e){const r=Ae();h(0,"div",35)(1,"label",36)(2,"input",41),R("ngModelChange",function(o){return ne(r),re(k(3).selectedPackage=o)}),p(),h(3,"b"),f(4),p(),v(5,"br"),h(6,"div",38),f(7),p()()()}if(2&e){const r=k().$implicit,n=k(2);_(2),w("ngModel",n.selectedPackage)("value",r),_(2),Ce(r.name),_(3),Ce(r.description)}}function V3(e,t){if(1&e&&(ut(0),O(1,L3,8,4,"div",40),dt()),2&e){const r=t.$implicit,n=k(2);_(1),w("ngIf",r.runtimes.indexOf(n.selectedEnvironment.name)>-1)}}function j3(e,t){if(1&e&&(ut(0),h(1,"h4"),f(2,"NuGet Package"),p(),O(3,V3,2,1,"ng-container",39),dt()),2&e){const r=k();_(3),w("ngForOf",r.packages)}}function H3(e,t){if(1&e){const r=Ae();h(0,"span",45),R("click",function(){ne(r);const o=k().index;return re(k().configuration.removeReport(o))}),h(1,"a",46),v(2,"i",47),p()()}}const U3=function(e){return{"input-group":e}};function B3(e,t){if(1&e){const r=Ae();h(0,"div",38)(1,"div",42)(2,"input",43),R("ngModelChange",function(o){const s=ne(r).index;return re(k().configuration.reports[s]=o)}),p(),O(3,H3,3,0,"span",44),p()()}if(2&e){const r=t.index,n=k();_(1),w("ngClass",Vi(4,U3,r>0)),_(1),Tn("name","report_",r,""),w("ngModel",n.configuration.reports[r]),_(1),w("ngIf",r>0)}}const $3=function(e,t){return{"btn-outline-primary":e,"btn-primary":t}};function G3(e,t){if(1&e){const r=Ae();h(0,"button",48),R("click",function(){const i=ne(r).$implicit,s=k();return re(s.configuration.selectedType=s.configuration.selectedType===i?null:i)}),f(1),p()}if(2&e){const r=t.$implicit,n=k();w("ngClass",w_(2,$3,r!==n.configuration.selectedType,r===n.configuration.selectedType)),_(1),Ce(r)}}function z3(e,t){if(1&e){const r=Ae();h(0,"span",53),v(1,"i",54),f(2," Please specify a "),h(3,"a",9),R("click",function(){return ne(r),re(k(3).scrollToHistoryDir())}),f(4,"history directory"),p()()}}function q3(e,t){if(1&e&&(ut(0),v(1,"br",55),h(2,"a",29),f(3,"Sample report"),p(),f(4,"\xa0"),h(5,"a",29),v(6,"i",56),p(),dt()),2&e){const r=k(2).$implicit;_(2),w("href",r.sampleReport,to),_(3),w("href",r.sampleReport,to)}}function W3(e,t){if(1&e){const r=Ae();h(0,"div",50)(1,"label",36)(2,"input",51),R("change",function(){ne(r);const o=k().$implicit;return re(o.checked=!o.checked)}),p(),h(3,"b"),f(4),p(),O(5,z3,5,0,"span",52),v(6,"br"),h(7,"div",38),f(8),O(9,q3,7,2,"ng-container",5),p()()()}if(2&e){const r=k().$implicit,n=k();_(2),w("checked",r.checked),_(2),Ce(r.name),_(1),w("ngIf",r.checked&&r.requiresHistoryDir&&!n.configuration.historydir),_(3),An("",r.description," "),_(1),w("ngIf",r.sampleReport)}}function Z3(e,t){if(1&e&&(ut(0),O(1,W3,10,5,"div",49),dt()),2&e){const r=t.$implicit,n=k();_(1),w("ngIf",!n.configuration.selectedType||r.types.indexOf(n.configuration.selectedType)>-1)}}function Y3(e,t){if(1&e){const r=Ae();h(0,"div",8)(1,"div",57)(2,"input",58),R("ngModelChange",function(o){const s=ne(r).index;return re(k().configuration.sourcedirectories[s]=o)}),p(),h(3,"span",45),R("click",function(){const i=ne(r).index;return re(k().configuration.removeSourceDirectory(i))}),h(4,"a",46),v(5,"i",47),p()()()()}if(2&e){const r=t.index,n=k();_(2),Tn("name","sourcedir_",r,""),w("ngModel",n.configuration.sourcedirectories[r])}}function Q3(e,t){if(1&e){const r=Ae();h(0,"div",8)(1,"div",57)(2,"input",59),R("ngModelChange",function(o){const s=ne(r).index;return re(k().configuration.plugins[s]=o)}),p(),h(3,"span",45),R("click",function(){const i=ne(r).index;return re(k().configuration.removePlugin(i))}),h(4,"a",46),v(5,"i",47),p()()()()}if(2&e){const r=t.index,n=k();_(2),Tn("name","plugin_",r,""),w("ngModel",n.configuration.plugins[r])}}function X3(e,t){if(1&e){const r=Ae();h(0,"div",8)(1,"div",57)(2,"input",60),R("ngModelChange",function(o){const s=ne(r).index;return re(k().configuration.assemblyfilters[s]=o)}),p(),h(3,"span",45),R("click",function(){const i=ne(r).index;return re(k().configuration.removeAssemblyFilter(i))}),h(4,"a",46),v(5,"i",47),p()()()()}if(2&e){const r=t.index,n=k();_(2),Tn("name","assemblyfilter_",r,""),w("ngModel",n.configuration.assemblyfilters[r])}}function J3(e,t){if(1&e){const r=Ae();h(0,"div",8)(1,"div",57)(2,"input",61),R("ngModelChange",function(o){const s=ne(r).index;return re(k().configuration.classfilters[s]=o)}),p(),h(3,"span",45),R("click",function(){const i=ne(r).index;return re(k().configuration.removeClassFilter(i))}),h(4,"a",46),v(5,"i",47),p()()()()}if(2&e){const r=t.index,n=k();_(2),Tn("name","classfilter_",r,""),w("ngModel",n.configuration.classfilters[r])}}function K3(e,t){if(1&e){const r=Ae();h(0,"div",8)(1,"div",57)(2,"input",62),R("ngModelChange",function(o){const s=ne(r).index;return re(k().configuration.filefilters[s]=o)}),p(),h(3,"span",45),R("click",function(){const i=ne(r).index;return re(k().configuration.removeFileFilter(i))}),h(4,"a",46),v(5,"i",47),p()()()()}if(2&e){const r=t.index,n=k();_(2),Tn("name","filefilter_",r,""),w("ngModel",n.configuration.filefilters[r])}}function ej(e,t){if(1&e&&(h(0,"option",63),f(1),p()),2&e){const r=t.$implicit;w("value",r),_(1),Ce(r)}}function tj(e,t){if(1&e&&(h(0,"div",64)(1,"b"),f(2),p(),v(3,"br"),h(4,"pre",32),f(5),p()()),2&e){const r=t.$implicit;_(2),Ce(r.tool),_(3),Ce(r.command)}}function nj(e,t){1&e&&(h(0,"span"),v(1,"i",65),f(2," Copy"),p())}function rj(e,t){1&e&&(h(0,"span"),v(1,"i",66),f(2," Copied"),p())}function oj(e,t){if(1&e&&(h(0,"div",64)(1,"b"),f(2),p(),v(3,"br"),h(4,"pre",32),f(5),p()()),2&e){const r=t.$implicit;_(2),Ce(r.tool),_(3),Ce(r.command)}}function ij(e,t){1&e&&(h(0,"span"),v(1,"i",65),f(2," Copy"),p())}function sj(e,t){1&e&&(h(0,"span"),v(1,"i",66),f(2," Copied"),p())}const aj=function(){return["/pro"]},lj=[{path:"",component:YV,pathMatch:"full",title:"Home",data:{canonical:"/"}},{path:"features",component:BV,title:"Features",data:{canonical:"/features"}},{path:"features.html",redirectTo:"/features"},{path:"getstarted",component:GV,title:"Get started",data:{canonical:"/getstarted"}},{path:"getstarted.html",redirectTo:"/getstarted"},{path:"usage",component:(()=>{var e;class t{constructor(){this.versions=Ft,this.lastResult="",this.usageCopied=!1,this.configuration=new O3,this.environments=[new oc(".NET Core",".NET Core"),new oc(".NET Framework","The full .NET framework"),new oc("Azure DevOps",null),new oc("Github Action",null)],this.packages=[new rc("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 Nh("Package Manager",`Install-Package ReportGenerator -Version ${Ft.version}`),new Nh(".NET CLI",`dotnet add package ReportGenerator --version ${Ft.version}`)],[new ys(".NET Framework",`$(UserProfile)\\.nuget\\packages\\reportgenerator\\${Ft.version}\\tools\\net47\\ReportGenerator.exe`),new ys(".NET Core",`dotnet $(UserProfile)\\.nuget\\packages\\reportgenerator\\${Ft.version}\\tools\\net6.0\\ReportGenerator.dll`)]),new rc("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 Nh(".NET CLI",`dotnet tool install --global dotnet-reportgenerator-globaltool --version ${Ft.version}\r\n\r\ndotnet tool install dotnet-reportgenerator-globaltool --tool-path tools --version ${Ft.version}\r\n\r\ndotnet new tool-manifest\r\ndotnet tool install dotnet-reportgenerator-globaltool --version ${Ft.version}`)],[new ys(".NET Core","reportgenerator")]),new P3("Azure DevOps","https://marketplace.visualstudio.com/items?itemName=Palmmedia.reportgenerator",["Azure DevOps"],"Use this package within Azure DevOps",[],[new ys("Azure DevOps","reportgenerator")]),new k3("GitHub Action","https://github.com/marketplace/actions/reportgenerator",["Github Action"],"Use this package within Github Actions",[],[new ys("Github Action","danielpalme/ReportGenerator-GitHub-Action")])],this.selectedEnvironment=this.environments[0],this.selectedPackage=this.packages[0]}selectedEnvironmentChanged(){this.selectedPackage=this.packages.find(n=>n.runtimes.indexOf(this.selectedEnvironment.name)>-1)}severalPackagesAvailable(){return this.packages.filter(n=>n.runtimes.indexOf(this.selectedEnvironment.name)>-1).length>1}getUsage(){const n=this.configuration.getUsage(this.selectedPackage,this.selectedEnvironment.name);return this.lastResult!==n&&(this.lastResult=n,this.usageCopied=!1),n}copy(){try{navigator.clipboard.writeText(this.getUsage()),this.usageCopied=!0}catch(n){console.error("Failed to copy license",n)}}scrollToHistoryDir(){return document.querySelector("#historydir").scrollIntoView(!0),!1}trackByIndex(n,o){return n}}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275cmp=vt({type:e,selectors:[["app-usage-component"]],standalone:!0,features:[Mt],decls:219,vars:41,consts:[[1,"container"],[1,"mb-4"],[1,"row"],[1,"col-md-7"],["class","form-check",4,"ngFor","ngForOf"],[4,"ngIf"],[1,"alert","alert-info"],["class","mb-3",4,"ngFor","ngForOf","ngForTrackBy"],[1,"input-group","mb-3"],["href","",3,"click"],[1,"fa","fa-plus-circle"],["type","text","name","targetdir","placeholder","The target directory","required","",1,"form-control",3,"ngModel","ngModelChange"],["href","https://danielpalme.github.io/ReportGenerator/resources/SampleReports.zip"],[1,"me-2"],["type","button","class","btn btn-sm me-1 mb-1",3,"ngClass","click",4,"ngFor","ngForOf","ngForTrackBy"],[4,"ngFor","ngForOf","ngForTrackBy"],["class","input-group mb-3",4,"ngFor","ngForOf","ngForTrackBy"],["id","historydir"],["type","text","name","historydir","placeholder","The history directory",1,"form-control",3,"ngModel","required","ngModelChange"],["href","https://github.com/danielpalme/ReportGenerator/wiki/Custom-reports"],["href","https://github.com/danielpalme/ReportGenerator/wiki/Custom-history-storage"],["name","verbosity",1,"form-select",3,"ngModel","ngModelChange"],[3,"value",4,"ngFor","ngForOf","ngForTrackBy"],["type","text","name","title","placeholder","Title",1,"form-control",3,"ngModel","ngModelChange"],["type","text","name","tag","placeholder","Optional tag or build version",1,"form-control",3,"ngModel","ngModelChange"],[3,"routerLink"],["type","text","name","license","placeholder","Optional license for PRO version","rows","4",1,"form-control",3,"ngModel","ngModelChange"],[1,"col-md-5"],[1,"d-md-none","mt-5"],["target","_blank",3,"href"],["class","mt-2",4,"ngFor","ngForOf"],[1,"mt-4"],[1,"text-dark","bg-light","p-2","border"],[1,"btn","btn-outline-dark","mt-2",3,"click"],[1,"d-none","d-md-block","sticky"],[1,"form-check"],[1,"form-check-label"],["type","radio","name","environment",1,"form-check-input",3,"ngModel","value","checked","ngModelChange"],[1,"mb-3"],[4,"ngFor","ngForOf"],["class","form-check",4,"ngIf"],["type","radio","name","package",1,"form-check-input",3,"ngModel","value","ngModelChange"],[3,"ngClass"],["type","text","placeholder","The path of the coverage file","required","",1,"form-control",3,"name","ngModel","ngModelChange"],["class","input-group-text",3,"click",4,"ngIf"],[1,"input-group-text",3,"click"],["href",""],[1,"fa","fa-trash","text-danger"],["type","button",1,"btn","btn-sm","me-1","mb-1",3,"ngClass","click"],["class","form-check mt-1",4,"ngIf"],[1,"form-check","mt-1"],["type","checkbox","name","reporttype",1,"form-check-input",3,"checked","change"],["class","text-danger ms-2",4,"ngIf"],[1,"text-danger","ms-2"],[1,"fa-solid","fa-triangle-exclamation"],[1,"mt-1"],[1,"fa-solid","fa-arrow-up-right-from-square"],[1,"input-group"],["type","text","placeholder","The source directory","required","",1,"form-control",3,"name","ngModel","ngModelChange"],["type","text","placeholder","The path of the plugin","required","",1,"form-control",3,"name","ngModel","ngModelChange"],["type","text","placeholder","The include or exclude filter for assemlies","pattern","^[+-].+$","required","",1,"form-control",3,"name","ngModel","ngModelChange"],["type","text","placeholder","The include or exclude filter for classes","pattern","^[+-].+$","required","",1,"form-control",3,"name","ngModel","ngModelChange"],["type","text","placeholder","The include or exclude filter for files","pattern","^[+-].+$","required","",1,"form-control",3,"name","ngModel","ngModelChange"],[3,"value"],[1,"mt-2"],[1,"fa-solid","fa-copy"],[1,"fa-solid","fa-check","text-success"]],template:function(n,o){1&n&&(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(),O(8,F3,8,5,"div",4),v(9,"hr"),O(10,j3,4,1,"ng-container",5),v(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."),v(16,"br"),f(17,"Globbing is supported."),p(),O(18,B3,4,6,"div",7),h(19,"div",8)(20,"a",9),R("click",function(){return o.configuration.addReport()}),v(21,"i",10),f(22," Add report"),p()(),v(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),R("ngModelChange",function(s){return o.configuration.targetdir=s}),p()(),v(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(),O(39,G3,2,5,"button",14),v(40,"br"),O(41,Z3,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."),v(46,"br"),f(47,"The source directories are used if coverage report contains classes without path information."),p(),O(48,Y3,6,2,"div",16),h(49,"div",8)(50,"a",9),R("click",function(){return o.configuration.addSourceDirectory()}),v(51,"i",10),f(52," Add source directory"),p()(),v(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."),v(61,"br"),f(62,"Required to show the history chart in the HTML reports."),p(),h(63,"div",8)(64,"input",18),R("ngModelChange",function(s){return o.configuration.historydir=s}),p()(),v(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(),O(76,Q3,6,2,"div",16),h(77,"div",8)(78,"a",9),R("click",function(){return o.configuration.addPlugin()}),v(79,"i",10),f(80," Add plugin"),p()(),v(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. "),v(89,"br"),f(90,"Exclusion filters take precedence over inclusion filters. "),v(91,"br"),f(92,"Wildcards are allowed."),v(93,"br"),h(94,"p"),f(95,"Examples:"),v(96,"br"),h(97,"code"),f(98,"+Included"),p(),v(99,"br"),h(100,"code"),f(101,"-Excluded"),p()()(),O(102,X3,6,2,"div",16),h(103,"div",8)(104,"a",9),R("click",function(){return o.configuration.addAssemblyFilter()}),v(105,"i",10),f(106," Add assembly filter"),p()(),v(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. "),v(115,"br"),f(116,"Exclusion filters take precedence over inclusion filters. "),v(117,"br"),f(118,"Wildcards are allowed."),v(119,"br"),h(120,"p"),f(121,"Examples:"),v(122,"br"),h(123,"code"),f(124,"+Included"),p(),v(125,"br"),h(126,"code"),f(127,"-Excluded"),p()()(),O(128,J3,6,2,"div",16),h(129,"div",8)(130,"a",9),R("click",function(){return o.configuration.addClassFilter()}),v(131,"i",10),f(132," Add class filter"),p()(),v(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. "),v(141,"br"),f(142,"Exclusion filters take precedence over inclusion filters. "),v(143,"br"),f(144,"Wildcards are allowed."),v(145,"br"),h(146,"p"),f(147,"Examples:"),v(148,"br"),h(149,"code"),f(150,"+Included"),p(),v(151,"br"),h(152,"code"),f(153,"-Excluded"),p()()(),O(154,K3,6,2,"div",16),h(155,"div",8)(156,"a",9),R("click",function(){return o.configuration.addFileFilter()}),v(157,"i",10),f(158," Add file filter"),p()(),v(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),R("ngModelChange",function(s){return o.configuration.selectedverbosity=s}),O(166,ej,2,2,"option",22),p()(),v(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),R("ngModelChange",function(s){return o.configuration.title=s}),p()(),v(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),R("ngModelChange",function(s){return o.configuration.tag=s}),p()(),v(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),R("ngModelChange",function(s){return o.configuration.license=s}),p()()()(),h(190,"div",27)(191,"div",28)(192,"h3"),f(193,"Instructions"),p(),f(194," Install "),h(195,"a",29),f(196),p(),O(197,tj,6,2,"div",30),h(198,"h4",31),f(199,"Usage"),p(),h(200,"pre",32),f(201),p(),h(202,"button",33),R("click",function(){return o.copy()}),O(203,nj,3,0,"span",5),O(204,rj,3,0,"span",5),p()(),h(205,"div",34)(206,"h3"),f(207,"Instructions"),p(),f(208," Install "),h(209,"a",29),f(210),p(),O(211,oj,6,2,"div",30),h(212,"h4",31),f(213,"Usage"),p(),h(214,"pre",32),f(215),p(),h(216,"button",33),R("click",function(){return o.copy()}),O(217,ij,3,0,"span",5),O(218,sj,3,0,"span",5),p()()()()()),2&n&&(_(8),w("ngForOf",o.environments),_(2),w("ngIf",o.severalPackagesAvailable()),_(8),w("ngForOf",o.configuration.reports)("ngForTrackBy",o.trackByIndex),_(11),w("ngModel",o.configuration.targetdir),_(10),w("ngForOf",o.configuration.types)("ngForTrackBy",o.trackByIndex),_(2),w("ngForOf",o.configuration.reporttypes)("ngForTrackBy",o.trackByIndex),_(7),w("ngForOf",o.configuration.sourcedirectories)("ngForTrackBy",o.trackByIndex),_(16),w("ngModel",o.configuration.historydir)("required",o.configuration.historyDirRequired()),_(12),w("ngForOf",o.configuration.plugins)("ngForTrackBy",o.trackByIndex),_(26),w("ngForOf",o.configuration.assemblyfilters)("ngForTrackBy",o.trackByIndex),_(26),w("ngForOf",o.configuration.classfilters)("ngForTrackBy",o.trackByIndex),_(26),w("ngForOf",o.configuration.filefilters)("ngForTrackBy",o.trackByIndex),_(11),w("ngModel",o.configuration.selectedverbosity),_(1),w("ngForOf",o.configuration.verbosities)("ngForTrackBy",o.trackByIndex),_(7),w("ngModel",o.configuration.title),_(7),w("ngModel",o.configuration.tag),_(6),w("routerLink",K(40,aj)),_(3),w("ngModel",o.configuration.license),_(6),w("href",o.selectedPackage.url,to),_(1),Ce(o.selectedPackage.name),_(1),w("ngForOf",o.selectedPackage.installOptions),_(4),Ce(o.getUsage()),_(2),w("ngIf",!o.usageCopied),_(1),w("ngIf",o.usageCopied),_(5),w("href",o.selectedPackage.url,to),_(1),Ce(o.selectedPackage.name),_(1),w("ngForOf",o.selectedPackage.installOptions),_(4),Ce(o.getUsage()),_(2),w("ngIf",!o.usageCopied),_(1),w("ngIf",o.usageCopied))},dependencies:[Jl,Yl,kw,Lw,Lo,Ql,_h,jl,Hl,Uo,Mh,gs,Ho,Df,gl,pl,pn],styles:[".sticky[_ngcontent-%COMP%]{position:sticky;top:100px}"]}),t})(),title:"Usage",data:{canonical:"/usage"}},{path:"usage.html",redirectTo:"/usage"},{path:"pro",component:N3,title:"PRO",data:{canonical:"/pro"}},{path:"pro.html",redirectTo:"/pro"},{path:"contact",component:UV,title:"Contact",data:{canonical:"/contact"}},{path:"contact.html",redirectTo:"/contact"},{path:"404",component:QV,title:"404 - Not found"},{path:"**",redirectTo:"/404"}];(function Pk(e,t){return SN({rootComponent:e,...RD(t)})})(pL,{providers:[_m(jk,(()=>{var e;class t{}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275mod=Cn({type:e}),e.\u0275inj=Kt({imports:[jb.forRoot(lj,{scrollPositionRestoration:"enabled",scrollOffset:[0,0],anchorScrolling:"enabled"}),jb]}),t})(),Jl),u1,d1,s1,function xV(...e){const t=[Ah,t1,Kw,{provide:Kl,useExisting:Kw},{provide:ec,useExisting:t1},{provide:vs,useValue:AV,multi:!0},{provide:xh,useValue:!0},{provide:o1,useClass:TV}];for(const r of e)t.push(...r.\u0275providers);return Tu(t)}(function RV(){return function Tr(e,t){return{\u0275kind:e,\u0275providers:t}}(nr.LegacyInterceptors,[{provide:i1,useFactory:CV},{provide:vs,useExisting:i1,multi:!0}])}())]}).catch(e=>console.error(e))}},ue=>{ue(ue.s=603)}]); \ No newline at end of file +"use strict";(self.webpackChunkReportGenerator_io=self.webpackChunkReportGenerator_io||[]).push([[179],{603:()=>{function ue(e){return"function"==typeof e}function zo(e){const r=e(n=>{Error.call(n),n.stack=(new Error).stack});return r.prototype=Object.create(Error.prototype),r.prototype.constructor=r,r}const _s=zo(e=>function(r){e(this),this.message=r?`${r.length} errors occurred during unsubscription:\n${r.map((n,o)=>`${o+1}) ${n.toString()}`).join("\n ")}`:"",this.name="UnsubscriptionError",this.errors=r});function qo(e,t){if(e){const r=e.indexOf(t);0<=r&&e.splice(r,1)}}class gt{constructor(t){this.initialTeardown=t,this.closed=!1,this._parentage=null,this._finalizers=null}unsubscribe(){let t;if(!this.closed){this.closed=!0;const{_parentage:r}=this;if(r)if(this._parentage=null,Array.isArray(r))for(const i of r)i.remove(this);else r.remove(this);const{initialTeardown:n}=this;if(ue(n))try{n()}catch(i){t=i instanceof _s?i.errors:[i]}const{_finalizers:o}=this;if(o){this._finalizers=null;for(const i of o)try{kh(i)}catch(s){t=t??[],s instanceof _s?t=[...t,...s.errors]:t.push(s)}}if(t)throw new _s(t)}}add(t){var r;if(t&&t!==this)if(this.closed)kh(t);else{if(t instanceof gt){if(t.closed||t._hasParent(this))return;t._addParent(this)}(this._finalizers=null!==(r=this._finalizers)&&void 0!==r?r:[]).push(t)}}_hasParent(t){const{_parentage:r}=this;return r===t||Array.isArray(r)&&r.includes(t)}_addParent(t){const{_parentage:r}=this;this._parentage=Array.isArray(r)?(r.push(t),r):r?[r,t]:t}_removeParent(t){const{_parentage:r}=this;r===t?this._parentage=null:Array.isArray(r)&&qo(r,t)}remove(t){const{_finalizers:r}=this;r&&qo(r,t),t instanceof gt&&t._removeParent(this)}}gt.EMPTY=(()=>{const e=new gt;return e.closed=!0,e})();const Ph=gt.EMPTY;function Oh(e){return e instanceof gt||e&&"closed"in e&&ue(e.remove)&&ue(e.add)&&ue(e.unsubscribe)}function kh(e){ue(e)?e():e.unsubscribe()}const rr={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},Cs={setTimeout(e,t,...r){const{delegate:n}=Cs;return n?.setTimeout?n.setTimeout(e,t,...r):setTimeout(e,t,...r)},clearTimeout(e){const{delegate:t}=Cs;return(t?.clearTimeout||clearTimeout)(e)},delegate:void 0};function Fh(e){Cs.setTimeout(()=>{const{onUnhandledError:t}=rr;if(!t)throw e;t(e)})}function sc(){}const h1=ac("C",void 0,void 0);function ac(e,t,r){return{kind:e,value:t,error:r}}let or=null;function Ds(e){if(rr.useDeprecatedSynchronousErrorHandling){const t=!or;if(t&&(or={errorThrown:!1,error:null}),e(),t){const{errorThrown:r,error:n}=or;if(or=null,r)throw n}}else e()}class lc extends gt{constructor(t){super(),this.isStopped=!1,t?(this.destination=t,Oh(t)&&t.add(this)):this.destination=C1}static create(t,r,n){return new bs(t,r,n)}next(t){this.isStopped?uc(function g1(e){return ac("N",e,void 0)}(t),this):this._next(t)}error(t){this.isStopped?uc(function p1(e){return ac("E",void 0,e)}(t),this):(this.isStopped=!0,this._error(t))}complete(){this.isStopped?uc(h1,this):(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe(),this.destination=null)}_next(t){this.destination.next(t)}_error(t){try{this.destination.error(t)}finally{this.unsubscribe()}}_complete(){try{this.destination.complete()}finally{this.unsubscribe()}}}const v1=Function.prototype.bind;function cc(e,t){return v1.call(e,t)}class y1{constructor(t){this.partialObserver=t}next(t){const{partialObserver:r}=this;if(r.next)try{r.next(t)}catch(n){ws(n)}}error(t){const{partialObserver:r}=this;if(r.error)try{r.error(t)}catch(n){ws(n)}else ws(t)}complete(){const{partialObserver:t}=this;if(t.complete)try{t.complete()}catch(r){ws(r)}}}class bs extends lc{constructor(t,r,n){let o;if(super(),ue(t)||!t)o={next:t??void 0,error:r??void 0,complete:n??void 0};else{let i;this&&rr.useDeprecatedNextContext?(i=Object.create(t),i.unsubscribe=()=>this.unsubscribe(),o={next:t.next&&cc(t.next,i),error:t.error&&cc(t.error,i),complete:t.complete&&cc(t.complete,i)}):o=t}this.destination=new y1(o)}}function ws(e){rr.useDeprecatedSynchronousErrorHandling?function m1(e){rr.useDeprecatedSynchronousErrorHandling&&or&&(or.errorThrown=!0,or.error=e)}(e):Fh(e)}function uc(e,t){const{onStoppedNotification:r}=rr;r&&Cs.setTimeout(()=>r(e,t))}const C1={closed:!0,next:sc,error:function _1(e){throw e},complete:sc},dc="function"==typeof Symbol&&Symbol.observable||"@@observable";function Vn(e){return e}function Lh(e){return 0===e.length?Vn:1===e.length?e[0]:function(r){return e.reduce((n,o)=>o(n),r)}}let Ie=(()=>{class e{constructor(r){r&&(this._subscribe=r)}lift(r){const n=new e;return n.source=this,n.operator=r,n}subscribe(r,n,o){const i=function w1(e){return e&&e instanceof lc||function b1(e){return e&&ue(e.next)&&ue(e.error)&&ue(e.complete)}(e)&&Oh(e)}(r)?r:new bs(r,n,o);return Ds(()=>{const{operator:s,source:a}=this;i.add(s?s.call(i,a):a?this._subscribe(i):this._trySubscribe(i))}),i}_trySubscribe(r){try{return this._subscribe(r)}catch(n){r.error(n)}}forEach(r,n){return new(n=Vh(n))((o,i)=>{const s=new bs({next:a=>{try{r(a)}catch(l){i(l),s.unsubscribe()}},error:i,complete:o});this.subscribe(s)})}_subscribe(r){var n;return null===(n=this.source)||void 0===n?void 0:n.subscribe(r)}[dc](){return this}pipe(...r){return Lh(r)(this)}toPromise(r){return new(r=Vh(r))((n,o)=>{let i;this.subscribe(s=>i=s,s=>o(s),()=>n(i))})}}return e.create=t=>new e(t),e})();function Vh(e){var t;return null!==(t=e??rr.Promise)&&void 0!==t?t:Promise}const E1=zo(e=>function(){e(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"});let Lt=(()=>{class e extends Ie{constructor(){super(),this.closed=!1,this.currentObservers=null,this.observers=[],this.isStopped=!1,this.hasError=!1,this.thrownError=null}lift(r){const n=new jh(this,this);return n.operator=r,n}_throwIfClosed(){if(this.closed)throw new E1}next(r){Ds(()=>{if(this._throwIfClosed(),!this.isStopped){this.currentObservers||(this.currentObservers=Array.from(this.observers));for(const n of this.currentObservers)n.next(r)}})}error(r){Ds(()=>{if(this._throwIfClosed(),!this.isStopped){this.hasError=this.isStopped=!0,this.thrownError=r;const{observers:n}=this;for(;n.length;)n.shift().error(r)}})}complete(){Ds(()=>{if(this._throwIfClosed(),!this.isStopped){this.isStopped=!0;const{observers:r}=this;for(;r.length;)r.shift().complete()}})}unsubscribe(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null}get observed(){var r;return(null===(r=this.observers)||void 0===r?void 0:r.length)>0}_trySubscribe(r){return this._throwIfClosed(),super._trySubscribe(r)}_subscribe(r){return this._throwIfClosed(),this._checkFinalizedStatuses(r),this._innerSubscribe(r)}_innerSubscribe(r){const{hasError:n,isStopped:o,observers:i}=this;return n||o?Ph:(this.currentObservers=null,i.push(r),new gt(()=>{this.currentObservers=null,qo(i,r)}))}_checkFinalizedStatuses(r){const{hasError:n,thrownError:o,isStopped:i}=this;n?r.error(o):i&&r.complete()}asObservable(){const r=new Ie;return r.source=this,r}}return e.create=(t,r)=>new jh(t,r),e})();class jh extends Lt{constructor(t,r){super(),this.destination=t,this.source=r}next(t){var r,n;null===(n=null===(r=this.destination)||void 0===r?void 0:r.next)||void 0===n||n.call(r,t)}error(t){var r,n;null===(n=null===(r=this.destination)||void 0===r?void 0:r.error)||void 0===n||n.call(r,t)}complete(){var t,r;null===(r=null===(t=this.destination)||void 0===t?void 0:t.complete)||void 0===r||r.call(t)}_subscribe(t){var r,n;return null!==(n=null===(r=this.source)||void 0===r?void 0:r.subscribe(t))&&void 0!==n?n:Ph}}function Hh(e){return ue(e?.lift)}function Oe(e){return t=>{if(Hh(t))return t.lift(function(r){try{return e(r,this)}catch(n){this.error(n)}});throw new TypeError("Unable to lift unknown Observable type")}}function Re(e,t,r,n,o){return new M1(e,t,r,n,o)}class M1 extends lc{constructor(t,r,n,o,i,s){super(t),this.onFinalize=i,this.shouldUnsubscribe=s,this._next=r?function(a){try{r(a)}catch(l){t.error(l)}}:super._next,this._error=o?function(a){try{o(a)}catch(l){t.error(l)}finally{this.unsubscribe()}}:super._error,this._complete=n?function(){try{n()}catch(a){t.error(a)}finally{this.unsubscribe()}}:super._complete}unsubscribe(){var t;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){const{closed:r}=this;super.unsubscribe(),!r&&(null===(t=this.onFinalize)||void 0===t||t.call(this))}}}function ee(e,t){return Oe((r,n)=>{let o=0;r.subscribe(Re(n,i=>{n.next(e.call(t,i,o++))}))})}function jn(e){return this instanceof jn?(this.v=e,this):new jn(e)}function Gh(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r,t=e[Symbol.asyncIterator];return t?t.call(e):(e=function gc(e){var t="function"==typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}(e),r={},n("next"),n("throw"),n("return"),r[Symbol.asyncIterator]=function(){return this},r);function n(i){r[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 zh=e=>e&&"number"==typeof e.length&&"function"!=typeof e;function qh(e){return ue(e?.then)}function Wh(e){return ue(e[dc])}function Zh(e){return Symbol.asyncIterator&&ue(e?.[Symbol.asyncIterator])}function Yh(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 Qh=function W1(){return"function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator"}();function Xh(e){return ue(e?.[Qh])}function Jh(e){return function $h(e,t,r){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var o,n=r.apply(e,t||[]),i=[];return o={},s("next"),s("throw"),s("return"),o[Symbol.asyncIterator]=function(){return this},o;function s(g){n[g]&&(o[g]=function(m){return new Promise(function(y,C){i.push([g,m,y,C])>1||a(g,m)})})}function a(g,m){try{!function l(g){g.value instanceof jn?Promise.resolve(g.value.v).then(c,u):d(i[0][2],g)}(n[g](m))}catch(y){d(i[0][3],y)}}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 r=e.getReader();try{for(;;){const{value:n,done:o}=yield jn(r.read());if(o)return yield jn(void 0);yield yield jn(n)}}finally{r.releaseLock()}})}function Kh(e){return ue(e?.getReader)}function Vt(e){if(e instanceof Ie)return e;if(null!=e){if(Wh(e))return function Z1(e){return new Ie(t=>{const r=e[dc]();if(ue(r.subscribe))return r.subscribe(t);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}(e);if(zh(e))return function Y1(e){return new Ie(t=>{for(let r=0;r{e.then(r=>{t.closed||(t.next(r),t.complete())},r=>t.error(r)).then(null,Fh)})}(e);if(Zh(e))return ep(e);if(Xh(e))return function X1(e){return new Ie(t=>{for(const r of e)if(t.next(r),t.closed)return;t.complete()})}(e);if(Kh(e))return function J1(e){return ep(Jh(e))}(e)}throw Yh(e)}function ep(e){return new Ie(t=>{(function K1(e,t){var r,n,o,i;return function Uh(e,t,r,n){return new(r||(r=Promise))(function(i,s){function a(u){try{c(n.next(u))}catch(d){s(d)}}function l(u){try{c(n.throw(u))}catch(d){s(d)}}function c(u){u.done?i(u.value):function o(i){return i instanceof r?i:new r(function(s){s(i)})}(u.value).then(a,l)}c((n=n.apply(e,t||[])).next())})}(this,void 0,void 0,function*(){try{for(r=Gh(e);!(n=yield r.next()).done;)if(t.next(n.value),t.closed)return}catch(s){o={error:s}}finally{try{n&&!n.done&&(i=r.return)&&(yield i.call(r))}finally{if(o)throw o.error}}t.complete()})})(e,t).catch(r=>t.error(r))})}function vn(e,t,r,n=0,o=!1){const i=t.schedule(function(){r(),o?e.add(this.schedule(null,n)):this.unsubscribe()},n);if(e.add(i),!o)return i}function Ve(e,t,r=1/0){return ue(t)?Ve((n,o)=>ee((i,s)=>t(n,i,o,s))(Vt(e(n,o))),r):("number"==typeof t&&(r=t),Oe((n,o)=>function eE(e,t,r,n,o,i,s,a){const l=[];let c=0,u=0,d=!1;const g=()=>{d&&!l.length&&!c&&t.complete()},m=C=>c{i&&t.next(C),c++;let b=!1;Vt(r(C,u++)).subscribe(Re(t,E=>{o?.(E),i?m(E):t.next(E)},()=>{b=!0},void 0,()=>{if(b)try{for(c--;l.length&&cy(E)):y(E)}g()}catch(E){t.error(E)}}))};return e.subscribe(Re(t,m,()=>{d=!0,g()})),()=>{a?.()}}(n,o,e,r)))}function xr(e=1/0){return Ve(Vn,e)}const Jt=new Ie(e=>e.complete());function mc(e){return e[e.length-1]}function tp(e){return ue(mc(e))?e.pop():void 0}function Wo(e){return function nE(e){return e&&ue(e.schedule)}(mc(e))?e.pop():void 0}function np(e,t=0){return Oe((r,n)=>{r.subscribe(Re(n,o=>vn(n,e,()=>n.next(o),t),()=>vn(n,e,()=>n.complete(),t),o=>vn(n,e,()=>n.error(o),t)))})}function rp(e,t=0){return Oe((r,n)=>{n.add(e.schedule(()=>r.subscribe(n),t))})}function op(e,t){if(!e)throw new Error("Iterable cannot be null");return new Ie(r=>{vn(r,t,()=>{const n=e[Symbol.asyncIterator]();vn(r,t,()=>{n.next().then(o=>{o.done?r.complete():r.next(o.value)})},0,!0)})})}function Ne(e,t){return t?function cE(e,t){if(null!=e){if(Wh(e))return function oE(e,t){return Vt(e).pipe(rp(t),np(t))}(e,t);if(zh(e))return function sE(e,t){return new Ie(r=>{let n=0;return t.schedule(function(){n===e.length?r.complete():(r.next(e[n++]),r.closed||this.schedule())})})}(e,t);if(qh(e))return function iE(e,t){return Vt(e).pipe(rp(t),np(t))}(e,t);if(Zh(e))return op(e,t);if(Xh(e))return function aE(e,t){return new Ie(r=>{let n;return vn(r,t,()=>{n=e[Qh](),vn(r,t,()=>{let o,i;try{({value:o,done:i}=n.next())}catch(s){return void r.error(s)}i?r.complete():r.next(o)},0,!0)}),()=>ue(n?.return)&&n.return()})}(e,t);if(Kh(e))return function lE(e,t){return op(Jh(e),t)}(e,t)}throw Yh(e)}(e,t):Vt(e)}class At extends Lt{constructor(t){super(),this._value=t}get value(){return this.getValue()}_subscribe(t){const r=super._subscribe(t);return!r.closed&&t.next(this._value),r}getValue(){const{hasError:t,thrownError:r,_value:n}=this;if(t)throw r;return this._throwIfClosed(),n}next(t){super.next(this._value=t)}}function V(...e){return Ne(e,Wo(e))}function ir(e){return e<=0?()=>Jt:Oe((t,r)=>{let n=0;t.subscribe(Re(r,o=>{++n<=e&&(r.next(o),e<=n&&r.complete())}))})}function ip(e={}){const{connector:t=(()=>new Lt),resetOnError:r=!0,resetOnComplete:n=!0,resetOnRefCountZero:o=!0}=e;return i=>{let s=null,a=null,l=null,c=0,u=!1,d=!1;const g=()=>{a?.unsubscribe(),a=null},m=()=>{g(),s=l=null,u=d=!1},y=()=>{const C=s;m(),C?.unsubscribe()};return Oe((C,b)=>{c++,!d&&!u&&g();const E=l=l??t();b.add(()=>{c--,0===c&&!d&&!u&&(a=vc(y,o))}),E.subscribe(b),s||(s=new bs({next:D=>E.next(D),error:D=>{d=!0,g(),a=vc(m,r,D),E.error(D)},complete:()=>{u=!0,g(),a=vc(m,n),E.complete()}}),Ne(C).subscribe(s))})(i)}}function vc(e,t,...r){return!0===t?(e(),null):!1===t?null:t(...r).pipe(ir(1)).subscribe(()=>e())}function jt(e,t){return Oe((r,n)=>{let o=null,i=0,s=!1;const a=()=>s&&!o&&n.complete();r.subscribe(Re(n,l=>{o?.unsubscribe();let c=0;const u=i++;Vt(e(l,u)).subscribe(o=Re(n,d=>n.next(t?t(l,d,u,c++):d),()=>{o=null,a()}))},()=>{s=!0,a()}))})}function fE(e,t){return e===t}function ae(e){for(let t in e)if(e[t]===ae)return t;throw Error("Could not find renamed property on target object.")}function Es(e,t){for(const r in t)t.hasOwnProperty(r)&&!e.hasOwnProperty(r)&&(e[r]=t[r])}function ke(e){if("string"==typeof e)return e;if(Array.isArray(e))return"["+e.map(ke).join(", ")+"]";if(null==e)return""+e;if(e.overriddenName)return`${e.overriddenName}`;if(e.name)return`${e.name}`;const t=e.toString();if(null==t)return""+t;const r=t.indexOf("\n");return-1===r?t:t.substring(0,r)}function yc(e,t){return null==e||""===e?null===t?"":t:null==t||""===t?e:e+" "+t}const hE=ae({__forward_ref__:ae});function he(e){return e.__forward_ref__=he,e.toString=function(){return ke(this())},e}function U(e){return _c(e)?e():e}function _c(e){return"function"==typeof e&&e.hasOwnProperty(hE)&&e.__forward_ref__===he}function Cc(e){return e&&!!e.\u0275providers}const sp="https://g.co/ng/security#xss";class S extends Error{constructor(t,r){super(function Ms(e,t){return`NG0${Math.abs(e)}${t?": "+t:""}`}(t,r)),this.code=t}}function $(e){return"string"==typeof e?e:null==e?"":String(e)}function Dc(e,t){throw new S(-201,!1)}function xt(e,t){null==e&&function j(e,t,r,n){throw new Error(`ASSERTION ERROR: ${e}`+(null==n?"":` [Expected=> ${r} ${n} ${t} <=Actual]`))}(t,e,null,"!=")}function L(e){return{token:e.token,providedIn:e.providedIn||null,factory:e.factory,value:void 0}}function Kt(e){return{providers:e.providers||[],imports:e.imports||[]}}function Is(e){return ap(e,Ts)||ap(e,lp)}function ap(e,t){return e.hasOwnProperty(t)?e[t]:null}function Ss(e){return e&&(e.hasOwnProperty(bc)||e.hasOwnProperty(DE))?e[bc]:null}const Ts=ae({\u0275prov:ae}),bc=ae({\u0275inj:ae}),lp=ae({ngInjectableDef:ae}),DE=ae({ngInjectorDef:ae});var Y=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}(Y||{});let wc;function it(e){const t=wc;return wc=e,t}function up(e,t,r){const n=Is(e);return n&&"root"==n.providedIn?void 0===n.value?n.value=n.factory():n.value:r&Y.Optional?null:void 0!==t?t:void Dc(ke(e))}const de=globalThis,Zo={},Tc="__NG_DI_FLAG__",As="ngTempTokenPath",EE=/\n/gm,fp="__source";let Rr;function Hn(e){const t=Rr;return Rr=e,t}function SE(e,t=Y.Default){if(void 0===Rr)throw new S(-203,!1);return null===Rr?up(e,void 0,t):Rr.get(e,t&Y.Optional?null:void 0,t)}function F(e,t=Y.Default){return(function cp(){return wc}()||SE)(U(e),t)}function A(e,t=Y.Default){return F(e,xs(t))}function xs(e){return typeof e>"u"||"number"==typeof e?e:0|(e.optional&&8)|(e.host&&1)|(e.self&&2)|(e.skipSelf&&4)}function Ac(e){const t=[];for(let r=0;rt){s=i-1;break}}}for(;ii?"":o[d+1].toLowerCase();const m=8&n?g:null;if(m&&-1!==mp(m,c,0)||2&n&&c!==g){if(Ut(n))return!1;s=!0}}}}else{if(!s&&!Ut(n)&&!Ut(l))return!1;if(s&&Ut(l))continue;s=!1,n=l|1&n}}return Ut(n)||s}function Ut(e){return 0==(1&e)}function OE(e,t,r,n){if(null===t)return-1;let o=0;if(n||!r){let i=!1;for(;o-1)for(r++;r0?'="'+a+'"':"")+"]"}else 8&n?o+="."+s:4&n&&(o+=" "+s);else""!==o&&!Ut(s)&&(t+=wp(i,o),o=""),n=s,i=i||!Ut(n);r++}return""!==o&&(t+=wp(i,o)),t}function vt(e){return yn(()=>{const t=Mp(e),r={...t,decls:e.decls,vars:e.vars,template:e.template,consts:e.consts||null,ngContentSelectors:e.ngContentSelectors,onPush:e.changeDetection===Rs.OnPush,directiveDefs:null,pipeDefs:null,dependencies:t.standalone&&e.dependencies||null,getStandaloneInjector:null,signals:e.signals??!1,data:e.data||{},encapsulation:e.encapsulation||Ht.Emulated,styles:e.styles||te,_:null,schemas:e.schemas||null,tView:null,id:""};Ip(r);const n=e.dependencies;return r.directiveDefs=Ps(n,!1),r.pipeDefs=Ps(n,!0),r.id=function WE(e){let t=0;const r=[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 r)t=Math.imul(31,t)+o.charCodeAt(0)<<0;return t+=2147483648,"c"+t}(r),r})}function $E(e){return X(e)||He(e)}function GE(e){return null!==e}function Cn(e){return yn(()=>({type:e.type,bootstrap:e.bootstrap||te,declarations:e.declarations||te,imports:e.imports||te,exports:e.exports||te,transitiveCompileScopes:null,schemas:e.schemas||null,id:e.id||null}))}function Ep(e,t){if(null==e)return en;const r={};for(const n in e)if(e.hasOwnProperty(n)){let o=e[n],i=o;Array.isArray(o)&&(i=o[1],o=o[0]),r[o]=n,t&&(t[o]=i)}return r}function B(e){return yn(()=>{const t=Mp(e);return Ip(t),t})}function X(e){return e[Ns]||null}function He(e){return e[xc]||null}function Qe(e){return e[Rc]||null}function yt(e,t){const r=e[pp]||null;if(!r&&!0===t)throw new Error(`Type ${ke(e)} does not have '\u0275mod' property.`);return r}function Mp(e){const t={};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:t,inputTransforms:null,inputConfig:e.inputs||en,exportAs:e.exportAs||null,standalone:!0===e.standalone,signals:!0===e.signals,selectors:e.selectors||te,viewQuery:e.viewQuery||null,features:e.features||null,setInput:null,findHostDirectiveDefs:null,hostDirectives:null,inputs:Ep(e.inputs,t),outputs:Ep(e.outputs)}}function Ip(e){e.features?.forEach(t=>t(e))}function Ps(e,t){if(!e)return null;const r=t?Qe:$E;return()=>("function"==typeof e?e():e).map(n=>r(n)).filter(GE)}const we=0,T=1,z=2,_e=3,Bt=4,Jo=5,ze=6,Pr=7,Se=8,Un=9,Or=10,G=11,Ko=12,Sp=13,kr=14,Te=15,ei=16,Fr=17,tn=18,ti=19,Tp=20,Bn=21,Dn=22,Os=23,ks=24,Q=25,Pc=1,Ap=2,nn=7,Lr=9,Ue=11;function at(e){return Array.isArray(e)&&"object"==typeof e[Pc]}function Xe(e){return Array.isArray(e)&&!0===e[Pc]}function Oc(e){return 0!=(4&e.flags)}function ar(e){return e.componentOffset>-1}function Ls(e){return 1==(1&e.flags)}function $t(e){return!!e.template}function kc(e){return 0!=(512&e[z])}function lr(e,t){return e.hasOwnProperty(_n)?e[_n]:null}let KE=de.WeakRef??class JE{constructor(t){this.ref=t}deref(){return this.ref}},t0=0,rn=null,Vs=!1;function je(e){const t=rn;return rn=e,t}class Op{constructor(){this.id=t0++,this.ref=function e0(e){return new KE(e)}(this),this.producers=new Map,this.consumers=new Map,this.trackingVersion=0,this.valueVersion=0}consumerPollProducersForChange(){for(const[t,r]of this.producers){const n=r.producerNode.deref();if(null!=n&&r.atTrackingVersion===this.trackingVersion){if(n.producerPollStatus(r.seenValueVersion))return!0}else this.producers.delete(t),n?.consumers.delete(this.id)}return!1}producerMayHaveChanged(){const t=Vs;Vs=!0;try{for(const[r,n]of this.consumers){const o=n.consumerNode.deref();null!=o&&o.trackingVersion===n.atTrackingVersion?o.onConsumerDependencyMayHaveChanged():(this.consumers.delete(r),o?.producers.delete(this.id))}}finally{Vs=t}}producerAccessed(){if(Vs)throw new Error("");if(null===rn)return;let t=rn.producers.get(this.id);void 0===t?(t={consumerNode:rn.ref,producerNode:this.ref,seenValueVersion:this.valueVersion,atTrackingVersion:rn.trackingVersion},rn.producers.set(this.id,t),this.consumers.set(rn.id,t)):(t.seenValueVersion=this.valueVersion,t.atTrackingVersion=rn.trackingVersion)}get hasProducers(){return this.producers.size>0}get producerUpdatesAllowed(){return!1!==rn?.consumerAllowSignalWrites}producerPollStatus(t){return this.valueVersion!==t||(this.onProducerUpdateValueVersion(),this.valueVersion!==t)}}let kp=null;const Lp=()=>{};class s0 extends Op{constructor(t,r,n){super(),this.watch=t,this.schedule=r,this.dirty=!1,this.cleanupFn=Lp,this.registerOnCleanup=o=>{this.cleanupFn=o},this.consumerAllowSignalWrites=n}notify(){this.dirty||this.schedule(this),this.dirty=!0}onConsumerDependencyMayHaveChanged(){this.notify()}onProducerUpdateValueVersion(){}run(){if(this.dirty=!1,0!==this.trackingVersion&&!this.consumerPollProducersForChange())return;const t=je(this);this.trackingVersion++;try{this.cleanupFn(),this.cleanupFn=Lp,this.watch(this.registerOnCleanup)}finally{je(t)}}cleanup(){this.cleanupFn()}}class a0{constructor(t,r,n){this.previousValue=t,this.currentValue=r,this.firstChange=n}isFirstChange(){return this.firstChange}}function Rt(){return Vp}function Vp(e){return e.type.prototype.ngOnChanges&&(e.setInput=c0),l0}function l0(){const e=Hp(this),t=e?.current;if(t){const r=e.previous;if(r===en)e.previous=t;else for(let n in t)r[n]=t[n];e.current=null,this.ngOnChanges(t)}}function c0(e,t,r,n){const o=this.declaredInputs[r],i=Hp(e)||function u0(e,t){return e[jp]=t}(e,{previous:en,current:null}),s=i.current||(i.current={}),a=i.previous,l=a[o];s[o]=new a0(l&&l.currentValue,t,a===en),e[n]=t}Rt.ngInherit=!0;const jp="__ngSimpleChanges__";function Hp(e){return e[jp]||null}const on=function(e,t,r){};function pe(e){for(;Array.isArray(e);)e=e[we];return e}function Us(e,t){return pe(t[e])}function lt(e,t){return pe(t[e.index])}function $p(e,t){return e.data[t]}function _t(e,t){const r=t[e];return at(r)?r:r[we]}function $n(e,t){return null==t?null:e[t]}function Gp(e){e[Fr]=0}function m0(e){1024&e[z]||(e[z]|=1024,qp(e,1))}function zp(e){1024&e[z]&&(e[z]&=-1025,qp(e,-1))}function qp(e,t){let r=e[_e];if(null===r)return;r[Jo]+=t;let n=r;for(r=r[_e];null!==r&&(1===t&&1===n[Jo]||-1===t&&0===n[Jo]);)r[Jo]+=t,n=r,r=r[_e]}const H={lFrame:rg(null),bindingsEnabled:!0,skipHydrationRootTNode:null};function Yp(){return H.bindingsEnabled}function M(){return H.lFrame.lView}function J(){return H.lFrame.tView}function ne(e){return H.lFrame.contextLView=e,e[Se]}function re(e){return H.lFrame.contextLView=null,e}function Be(){let e=Qp();for(;null!==e&&64===e.type;)e=e.parent;return e}function Qp(){return H.lFrame.currentTNode}function sn(e,t){const r=H.lFrame;r.currentTNode=e,r.isParent=t}function Bc(){return H.lFrame.isParent}function $c(){H.lFrame.isParent=!1}function Je(){const e=H.lFrame;let t=e.bindingRootIndex;return-1===t&&(t=e.bindingRootIndex=e.tView.bindingStartIndex),t}function Hr(){return H.lFrame.bindingIndex++}function T0(e,t){const r=H.lFrame;r.bindingIndex=r.bindingRootIndex=e,Gc(t)}function Gc(e){H.lFrame.currentDirectiveIndex=e}function eg(){return H.lFrame.currentQueryIndex}function qc(e){H.lFrame.currentQueryIndex=e}function x0(e){const t=e[T];return 2===t.type?t.declTNode:1===t.type?e[ze]:null}function tg(e,t,r){if(r&Y.SkipSelf){let o=t,i=e;for(;!(o=o.parent,null!==o||r&Y.Host||(o=x0(i),null===o||(i=i[kr],10&o.type))););if(null===o)return!1;t=o,e=i}const n=H.lFrame=ng();return n.currentTNode=t,n.lView=e,!0}function Wc(e){const t=ng(),r=e[T];H.lFrame=t,t.currentTNode=r.firstChild,t.lView=e,t.tView=r,t.contextLView=e,t.bindingIndex=r.bindingStartIndex,t.inI18n=!1}function ng(){const e=H.lFrame,t=null===e?null:e.child;return null===t?rg(e):t}function rg(e){const t={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=t),t}function og(){const e=H.lFrame;return H.lFrame=e.parent,e.currentTNode=null,e.lView=null,e}const ig=og;function Zc(){const e=og();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 Ke(){return H.lFrame.selectedIndex}function cr(e){H.lFrame.selectedIndex=e}function be(){const e=H.lFrame;return $p(e.tView,e.selectedIndex)}let ag=!0;function Bs(){return ag}function Gn(e){ag=e}function $s(e,t){for(let r=t.directiveStart,n=t.directiveEnd;r=n)break}else t[l]<0&&(e[Fr]+=65536),(a>13>16&&(3&e[z])===t&&(e[z]+=8192,cg(a,i)):cg(a,i)}const Ur=-1;class oi{constructor(t,r,n){this.factory=t,this.resolving=!1,this.canSeeViewProviders=r,this.injectImpl=n}}function Xc(e){return e!==Ur}function ii(e){return 32767&e}function si(e,t){let r=function B0(e){return e>>16}(e),n=t;for(;r>0;)n=n[kr],r--;return n}let Jc=!0;function qs(e){const t=Jc;return Jc=e,t}const ug=255,dg=5;let $0=0;const an={};function Ws(e,t){const r=fg(e,t);if(-1!==r)return r;const n=t[T];n.firstCreatePass&&(e.injectorIndex=t.length,Kc(n.data,e),Kc(t,null),Kc(n.blueprint,null));const o=Zs(e,t),i=e.injectorIndex;if(Xc(o)){const s=ii(o),a=si(o,t),l=a[T].data;for(let c=0;c<8;c++)t[i+c]=a[s+c]|l[s+c]}return t[i+8]=o,i}function Kc(e,t){e.push(0,0,0,0,0,0,0,0,t)}function fg(e,t){return-1===e.injectorIndex||e.parent&&e.parent.injectorIndex===e.injectorIndex||null===t[e.injectorIndex+8]?-1:e.injectorIndex}function Zs(e,t){if(e.parent&&-1!==e.parent.injectorIndex)return e.parent.injectorIndex;let r=0,n=null,o=t;for(;null!==o;){if(n=_g(o),null===n)return Ur;if(r++,o=o[kr],-1!==n.injectorIndex)return n.injectorIndex|r<<16}return Ur}function eu(e,t,r){!function G0(e,t,r){let n;"string"==typeof r?n=r.charCodeAt(0)||0:r.hasOwnProperty(Qo)&&(n=r[Qo]),null==n&&(n=r[Qo]=$0++);const o=n&ug;t.data[e+(o>>dg)]|=1<=0?t&ug:Y0:t}(r);if("function"==typeof i){if(!tg(t,e,n))return n&Y.Host?hg(o,0,n):pg(t,r,n,o);try{let s;if(s=i(n),null!=s||n&Y.Optional)return s;Dc()}finally{ig()}}else if("number"==typeof i){let s=null,a=fg(e,t),l=Ur,c=n&Y.Host?t[Te][ze]:null;for((-1===a||n&Y.SkipSelf)&&(l=-1===a?Zs(e,t):t[a+8],l!==Ur&&yg(n,!1)?(s=t[T],a=ii(l),t=si(l,t)):a=-1);-1!==a;){const u=t[T];if(vg(i,a,u.data)){const d=q0(a,t,r,s,n,c);if(d!==an)return d}l=t[a+8],l!==Ur&&yg(n,t[T].data[a+8]===c)&&vg(i,a,t)?(s=u,a=ii(l),t=si(l,t)):a=-1}}return o}function q0(e,t,r,n,o,i){const s=t[T],a=s.data[e+8],u=Ys(a,s,r,null==n?ar(a)&&Jc:n!=s&&0!=(3&a.type),o&Y.Host&&i===a);return null!==u?ur(t,s,u,a):an}function Ys(e,t,r,n,o){const i=e.providerIndexes,s=t.data,a=1048575&i,l=e.directiveStart,u=i>>20,g=o?a+u:e.directiveEnd;for(let m=n?a:a+u;m=l&&y.type===r)return m}if(o){const m=s[l];if(m&&$t(m)&&m.type===r)return l}return null}function ur(e,t,r,n){let o=e[r];const i=t.data;if(function j0(e){return e instanceof oi}(o)){const s=o;s.resolving&&function pE(e,t){const r=t?`. Dependency path: ${t.join(" > ")} > ${e}`:"";throw new S(-200,`Circular dependency in DI detected for ${e}${r}`)}(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():$(e)}(i[r]));const a=qs(s.canSeeViewProviders);s.resolving=!0;const c=s.injectImpl?it(s.injectImpl):null;tg(e,n,Y.Default);try{o=e[r]=s.factory(void 0,i,e,n),t.firstCreatePass&&r>=n.directiveStart&&function L0(e,t,r){const{ngOnChanges:n,ngOnInit:o,ngDoCheck:i}=t.type.prototype;if(n){const s=Vp(t);(r.preOrderHooks??=[]).push(e,s),(r.preOrderCheckHooks??=[]).push(e,s)}o&&(r.preOrderHooks??=[]).push(0-e,o),i&&((r.preOrderHooks??=[]).push(e,i),(r.preOrderCheckHooks??=[]).push(e,i))}(r,i[r],t)}finally{null!==c&&it(c),qs(a),s.resolving=!1,ig()}}return o}function vg(e,t,r){return!!(r[t+(e>>dg)]&1<{const t=e.prototype.constructor,r=t[_n]||tu(t),n=Object.prototype;let o=Object.getPrototypeOf(e.prototype).constructor;for(;o&&o!==n;){const i=o[_n]||tu(o);if(i&&i!==r)return i;o=Object.getPrototypeOf(o)}return i=>new i})}function tu(e){return _c(e)?()=>{const t=tu(U(e));return t&&t()}:lr(e)}function _g(e){const t=e[T],r=t.type;return 2===r?t.declTNode:1===r?e[ze]:null}const $r="__parameters__";function zr(e,t,r){return yn(()=>{const n=function nu(e){return function(...r){if(e){const n=e(...r);for(const o in n)this[o]=n[o]}}}(t);function o(...i){if(this instanceof o)return n.apply(this,i),this;const s=new o(...i);return a.annotation=s,a;function a(l,c,u){const d=l.hasOwnProperty($r)?l[$r]:Object.defineProperty(l,$r,{value:[]})[$r];for(;d.length<=u;)d.push(null);return(d[u]=d[u]||[]).push(s),l}}return r&&(o.prototype=Object.create(r.prototype)),o.prototype.ngMetadataName=e,o.annotationCls=o,o})}function Wr(e,t){e.forEach(r=>Array.isArray(r)?Wr(r,t):t(r))}function Dg(e,t,r){t>=e.length?e.push(r):e.splice(t,0,r)}function Xs(e,t){return t>=e.length-1?e.pop():e.splice(t,1)[0]}function Ct(e,t,r){let n=Zr(e,t);return n>=0?e[1|n]=r:(n=~n,function rM(e,t,r,n){let o=e.length;if(o==t)e.push(r,n);else if(1===o)e.push(n,e[0]),e[0]=r;else{for(o--,e.push(e[o-1],e[o]);o>t;)e[o]=e[o-2],o--;e[t]=r,e[t+1]=n}}(e,n,t,r)),n}function ru(e,t){const r=Zr(e,t);if(r>=0)return e[1|r]}function Zr(e,t){return function bg(e,t,r){let n=0,o=e.length>>r;for(;o!==n;){const i=n+(o-n>>1),s=e[i<t?o=i:n=i+1}return~(o<|^->||--!>|)/g,IM="\u200b$1\u200b";const lu=new Map;let SM=0;const uu="__ngContext__";function qe(e,t){at(t)?(e[uu]=t[ti],function AM(e){lu.set(e[ti],e)}(t)):e[uu]=t}let du;function fu(e,t){return du(e,t)}function fi(e){const t=e[_e];return Xe(t)?t[_e]:t}function Bg(e){return Gg(e[Ko])}function $g(e){return Gg(e[Bt])}function Gg(e){for(;null!==e&&!Xe(e);)e=e[Bt];return e}function Xr(e,t,r,n,o){if(null!=n){let i,s=!1;Xe(n)?i=n:at(n)&&(s=!0,n=n[we]);const a=pe(n);0===e&&null!==r?null==o?Zg(t,r,a):dr(t,r,a,o||null,!0):1===e&&null!==r?dr(t,r,a,o||null,!0):2===e?function fa(e,t,r){const n=ua(e,t);n&&function ZM(e,t,r,n){e.removeChild(t,r,n)}(e,n,t,r)}(t,a,s):3===e&&t.destroyNode(a),null!=i&&function XM(e,t,r,n,o){const i=r[nn];i!==pe(r)&&Xr(t,e,n,i,o);for(let a=Ue;at.replace(MM,IM))}(t))}function la(e,t,r){return e.createElement(t,r)}function qg(e,t){const r=e[Lr],n=r.indexOf(t);zp(t),r.splice(n,1)}function ca(e,t){if(e.length<=Ue)return;const r=Ue+t,n=e[r];if(n){const o=n[ei];null!==o&&o!==e&&qg(o,n),t>0&&(e[r-1][Bt]=n[Bt]);const i=Xs(e,Ue+t);!function HM(e,t){pi(e,t,t[G],2,null,null),t[we]=null,t[ze]=null}(n[T],n);const s=i[tn];null!==s&&s.detachView(i[T]),n[_e]=null,n[Bt]=null,n[z]&=-129}return n}function pu(e,t){if(!(256&t[z])){const r=t[G];t[Os]?.destroy(),t[ks]?.destroy(),r.destroyNode&&pi(e,t,r,3,null,null),function $M(e){let t=e[Ko];if(!t)return gu(e[T],e);for(;t;){let r=null;if(at(t))r=t[Ko];else{const n=t[Ue];n&&(r=n)}if(!r){for(;t&&!t[Bt]&&t!==e;)at(t)&&gu(t[T],t),t=t[_e];null===t&&(t=e),at(t)&&gu(t[T],t),r=t&&t[Bt]}t=r}}(t)}}function gu(e,t){if(!(256&t[z])){t[z]&=-129,t[z]|=256,function WM(e,t){let r;if(null!=e&&null!=(r=e.destroyHooks))for(let n=0;n=0?n[s]():n[-s].unsubscribe(),i+=2}else r[i].call(n[r[i+1]]);null!==n&&(t[Pr]=null);const o=t[Bn];if(null!==o){t[Bn]=null;for(let i=0;i-1){const{encapsulation:i}=e.data[n.directiveStart+o];if(i===Ht.None||i===Ht.Emulated)return null}return lt(n,r)}}(e,t.parent,r)}function dr(e,t,r,n,o){e.insertBefore(t,r,n,o)}function Zg(e,t,r){e.appendChild(t,r)}function Yg(e,t,r,n,o){null!==n?dr(e,t,r,n,o):Zg(e,t,r)}function ua(e,t){return e.parentNode(t)}let vu,Du,pa,Jg=function Xg(e,t,r){return 40&e.type?lt(e,r):null};function da(e,t,r,n){const o=mu(e,n,t),i=t[G],a=function Qg(e,t,r){return Jg(e,t,r)}(n.parent||t[ze],n,t);if(null!=o)if(Array.isArray(r))for(let l=0;le,createScript:e=>e,createScriptURL:e=>e})}catch{}return pa}()?.createScriptURL(e)||e}class lm{constructor(t){this.changingThisBreaksApplicationSecurity=t}toString(){return`SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity} (see ${sp})`}}function qn(e){return e instanceof lm?e.changingThisBreaksApplicationSecurity:e}function gi(e,t){const r=function cI(e){return e instanceof lm&&e.getTypeName()||null}(e);if(null!=r&&r!==t){if("ResourceURL"===r&&"URL"===t)return!0;throw new Error(`Required a safe ${t}, got a ${r} (see ${sp})`)}return r===t}const hI=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:\/?#]*(?:[\/?#]|$))/i;var eo=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}(eo||{});function to(e){const t=vi();return t?t.sanitize(eo.URL,e)||"":gi(e,"URL")?qn(e):function wu(e){return(e=String(e)).match(hI)?e:"unsafe:"+e}($(e))}function gm(e){const t=vi();if(t)return am(t.sanitize(eo.RESOURCE_URL,e)||"");if(gi(e,"ResourceURL"))return am(qn(e));throw new S(904,!1)}function vi(){const e=M();return e&&e[Or].sanitizer}class x{constructor(t,r){this._desc=t,this.ngMetadataName="InjectionToken",this.\u0275prov=void 0,"number"==typeof r?this.__NG_ELEMENT_ID__=r:void 0!==r&&(this.\u0275prov=L({token:this,providedIn:r.providedIn||"root",factory:r.factory}))}get multi(){return this}toString(){return`InjectionToken ${this._desc}`}}const yi=new x("ENVIRONMENT_INITIALIZER"),vm=new x("INJECTOR",-1),ym=new x("INJECTOR_DEF_TYPES");class Su{get(t,r=Zo){if(r===Zo){const n=new Error(`NullInjectorError: No provider for ${ke(t)}!`);throw n.name="NullInjectorError",n}return r}}function Tu(e){return{\u0275providers:e}}function _m(...e){return{\u0275providers:Cm(0,e),\u0275fromNgModule:!0}}function Cm(e,...t){const r=[],n=new Set;let o;const i=s=>{r.push(s)};return Wr(t,s=>{const a=s;ma(a,i,[],n)&&(o||=[],o.push(a))}),void 0!==o&&Dm(o,i),r}function Dm(e,t){for(let r=0;r{t(i,n)})}}function ma(e,t,r,n){if(!(e=U(e)))return!1;let o=null,i=Ss(e);const s=!i&&X(e);if(i||s){if(s&&!s.standalone)return!1;o=e}else{const l=e.ngModule;if(i=Ss(l),!i)return!1;o=l}const a=n.has(o);if(s){if(a)return!1;if(n.add(o),s.dependencies){const l="function"==typeof s.dependencies?s.dependencies():s.dependencies;for(const c of l)ma(c,t,r,n)}}else{if(!i)return!1;{if(null!=i.imports&&!a){let c;n.add(o);try{Wr(i.imports,u=>{ma(u,t,r,n)&&(c||=[],c.push(u))})}finally{}void 0!==c&&Dm(c,t)}if(!a){const c=lr(o)||(()=>new o);t({provide:o,useFactory:c,deps:te},o),t({provide:ym,useValue:o,multi:!0},o),t({provide:yi,useValue:()=>F(o),multi:!0},o)}const l=i.providers;if(null!=l&&!a){const c=e;Au(l,u=>{t(u,c)})}}}return o!==e&&void 0!==e.providers}function Au(e,t){for(let r of e)Cc(r)&&(r=r.\u0275providers),Array.isArray(r)?Au(r,t):t(r)}const II=ae({provide:String,useValue:ae});function xu(e){return null!==e&&"object"==typeof e&&II in e}function fr(e){return"function"==typeof e}const Ru=new x("Set Injector scope."),va={},TI={};let Nu;function ya(){return void 0===Nu&&(Nu=new Su),Nu}class Dt{}class _a extends Dt{get destroyed(){return this._destroyed}constructor(t,r,n,o){super(),this.parent=r,this.source=n,this.scopes=o,this.records=new Map,this._ngOnDestroyHooks=new Set,this._onDestroyHooks=[],this._destroyed=!1,Ou(t,s=>this.processProvider(s)),this.records.set(vm,no(void 0,this)),o.has("environment")&&this.records.set(Dt,no(void 0,this));const i=this.records.get(Ru);null!=i&&"string"==typeof i.value&&this.scopes.add(i.value),this.injectorDefTypes=new Set(this.get(ym.multi,te,Y.Self))}destroy(){this.assertNotDestroyed(),this._destroyed=!0;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()}}onDestroy(t){return this.assertNotDestroyed(),this._onDestroyHooks.push(t),()=>this.removeOnDestroy(t)}runInContext(t){this.assertNotDestroyed();const r=Hn(this),n=it(void 0);try{return t()}finally{Hn(r),it(n)}}get(t,r=Zo,n=Y.Default){if(this.assertNotDestroyed(),t.hasOwnProperty(gp))return t[gp](this);n=xs(n);const i=Hn(this),s=it(void 0);try{if(!(n&Y.SkipSelf)){let l=this.records.get(t);if(void 0===l){const c=function PI(e){return"function"==typeof e||"object"==typeof e&&e instanceof x}(t)&&Is(t);l=c&&this.injectableDefInScope(c)?no(Pu(t),va):null,this.records.set(t,l)}if(null!=l)return this.hydrate(t,l)}return(n&Y.Self?ya():this.parent).get(t,r=n&Y.Optional&&r===Zo?null:r)}catch(a){if("NullInjectorError"===a.name){if((a[As]=a[As]||[]).unshift(ke(t)),i)throw a;return function AE(e,t,r,n){const o=e[As];throw t[fp]&&o.unshift(t[fp]),e.message=function xE(e,t,r,n=null){e=e&&"\n"===e.charAt(0)&&"\u0275"==e.charAt(1)?e.slice(2):e;let o=ke(t);if(Array.isArray(t))o=t.map(ke).join(" -> ");else if("object"==typeof t){let i=[];for(let s in t)if(t.hasOwnProperty(s)){let a=t[s];i.push(s+":"+("string"==typeof a?JSON.stringify(a):ke(a)))}o=`{${i.join(", ")}}`}return`${r}${n?"("+n+")":""}[${o}]: ${e.replace(EE,"\n ")}`}("\n"+e.message,o,r,n),e.ngTokenPath=o,e[As]=null,e}(a,t,"R3InjectorError",this.source)}throw a}finally{it(s),Hn(i)}}resolveInjectorInitializers(){const t=Hn(this),r=it(void 0);try{const o=this.get(yi.multi,te,Y.Self);for(const i of o)i()}finally{Hn(t),it(r)}}toString(){const t=[],r=this.records;for(const n of r.keys())t.push(ke(n));return`R3Injector[${t.join(", ")}]`}assertNotDestroyed(){if(this._destroyed)throw new S(205,!1)}processProvider(t){let r=fr(t=U(t))?t:U(t&&t.provide);const n=function xI(e){return xu(e)?no(void 0,e.useValue):no(Em(e),va)}(t);if(fr(t)||!0!==t.multi)this.records.get(r);else{let o=this.records.get(r);o||(o=no(void 0,va,!0),o.factory=()=>Ac(o.multi),this.records.set(r,o)),r=t,o.multi.push(t)}this.records.set(r,n)}hydrate(t,r){return r.value===va&&(r.value=TI,r.value=r.factory()),"object"==typeof r.value&&r.value&&function NI(e){return null!==e&&"object"==typeof e&&"function"==typeof e.ngOnDestroy}(r.value)&&this._ngOnDestroyHooks.add(r.value),r.value}injectableDefInScope(t){if(!t.providedIn)return!1;const r=U(t.providedIn);return"string"==typeof r?"any"===r||this.scopes.has(r):this.injectorDefTypes.has(r)}removeOnDestroy(t){const r=this._onDestroyHooks.indexOf(t);-1!==r&&this._onDestroyHooks.splice(r,1)}}function Pu(e){const t=Is(e),r=null!==t?t.factory:lr(e);if(null!==r)return r;if(e instanceof x)throw new S(204,!1);if(e instanceof Function)return function AI(e){const t=e.length;if(t>0)throw function ci(e,t){const r=[];for(let n=0;nr.factory(e):()=>new e}(e);throw new S(204,!1)}function Em(e,t,r){let n;if(fr(e)){const o=U(e);return lr(o)||Pu(o)}if(xu(e))n=()=>U(e.useValue);else if(function wm(e){return!(!e||!e.useFactory)}(e))n=()=>e.useFactory(...Ac(e.deps||[]));else if(function bm(e){return!(!e||!e.useExisting)}(e))n=()=>F(U(e.useExisting));else{const o=U(e&&(e.useClass||e.provide));if(!function RI(e){return!!e.deps}(e))return lr(o)||Pu(o);n=()=>new o(...Ac(e.deps))}return n}function no(e,t,r=!1){return{factory:e,value:t,multi:r?[]:void 0}}function Ou(e,t){for(const r of e)Array.isArray(r)?Ou(r,t):r&&Cc(r)?Ou(r.\u0275providers,t):t(r)}const Ca=new x("AppId",{providedIn:"root",factory:()=>OI}),OI="ng",Mm=new x("Platform Initializer"),hr=new x("Platform ID",{providedIn:"platform",factory:()=>"unknown"}),Im=new x("CSP nonce",{providedIn:"root",factory:()=>function Kr(){if(void 0!==Du)return Du;if(typeof document<"u")return document;throw new S(210,!1)}().body?.querySelector("[ngCspNonce]")?.getAttribute("ngCspNonce")||null});let Sm=(e,t,r)=>null;function Bu(e,t,r=!1){return Sm(e,t,r)}class GI{}class xm{}class qI{resolveComponentFactory(t){throw function zI(e){const t=Error(`No component factory found for ${ke(e)}.`);return t.ngComponent=e,t}(t)}}let Ia=(()=>{class t{}return t.NULL=new qI,t})();function WI(){return io(Be(),M())}function io(e,t){return new bt(lt(e,t))}let bt=(()=>{class t{constructor(n){this.nativeElement=n}}return t.__NG_ELEMENT_ID__=WI,t})();function ZI(e){return e instanceof bt?e.nativeElement:e}class Nm{}let Mn=(()=>{class t{constructor(){this.destroyNode=null}}return t.__NG_ELEMENT_ID__=()=>function YI(){const e=M(),r=_t(Be().index,e);return(at(r)?r:e)[G]}(),t})(),QI=(()=>{var e;class t{}return(e=t).\u0275prov=L({token:e,providedIn:"root",factory:()=>null}),t})();class Di{constructor(t){this.full=t,this.major=t.split(".")[0],this.minor=t.split(".")[1],this.patch=t.split(".").slice(2).join(".")}}const XI=new Di("16.2.3"),zu={};function Fm(e,t=null,r=null,n){const o=Lm(e,t,r,n);return o.resolveInjectorInitializers(),o}function Lm(e,t=null,r=null,n,o=new Set){const i=[r||te,_m(e)];return n=n||("object"==typeof e?void 0:ke(e)),new _a(i,t||ya(),n||null,o)}let wt=(()=>{var e;class t{static create(n,o){if(Array.isArray(n))return Fm({name:""},o,n,"");{const i=n.name??"";return Fm({name:i},n.parent,n.providers,i)}}}return(e=t).THROW_IF_NOT_FOUND=Zo,e.NULL=new Su,e.\u0275prov=L({token:e,providedIn:"any",factory:()=>F(vm)}),e.__NG_ELEMENT_ID__=-1,t})();function Zu(e){return t=>{setTimeout(e,void 0,t)}}const Ee=class oS extends Lt{constructor(t=!1){super(),this.__isAsync=t}emit(t){super.next(t)}subscribe(t,r,n){let o=t,i=r||(()=>null),s=n;if(t&&"object"==typeof t){const l=t;o=l.next?.bind(l),i=l.error?.bind(l),s=l.complete?.bind(l)}this.__isAsync&&(i=Zu(i),o&&(o=Zu(o)),s&&(s=Zu(s)));const a=super.subscribe({next:o,error:i,complete:s});return t instanceof gt&&t.add(a),a}};function Vm(...e){}class ge{constructor({enableLongStackTrace:t=!1,shouldCoalesceEventChangeDetection:r=!1,shouldCoalesceRunChangeDetection:n=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new Ee(!1),this.onMicrotaskEmpty=new Ee(!1),this.onStable=new Ee(!1),this.onError=new Ee(!1),typeof Zone>"u")throw new S(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)),t&&Zone.longStackTraceZoneSpec&&(o._inner=o._inner.fork(Zone.longStackTraceZoneSpec)),o.shouldCoalesceEventChangeDetection=!n&&r,o.shouldCoalesceRunChangeDetection=n,o.lastRequestAnimationFrameId=-1,o.nativeRequestAnimationFrame=function iS(){const e="function"==typeof de.requestAnimationFrame;let t=de[e?"requestAnimationFrame":"setTimeout"],r=de[e?"cancelAnimationFrame":"clearTimeout"];if(typeof Zone<"u"&&t&&r){const n=t[Zone.__symbol__("OriginalDelegate")];n&&(t=n);const o=r[Zone.__symbol__("OriginalDelegate")];o&&(r=o)}return{nativeRequestAnimationFrame:t,nativeCancelAnimationFrame:r}}().nativeRequestAnimationFrame,function lS(e){const t=()=>{!function aS(e){e.isCheckStableRunning||-1!==e.lastRequestAnimationFrameId||(e.lastRequestAnimationFrameId=e.nativeRequestAnimationFrame.call(de,()=>{e.fakeTopEventTask||(e.fakeTopEventTask=Zone.root.scheduleEventTask("fakeTopEventTask",()=>{e.lastRequestAnimationFrameId=-1,Qu(e),e.isCheckStableRunning=!0,Yu(e),e.isCheckStableRunning=!1},void 0,()=>{},()=>{})),e.fakeTopEventTask.invoke()}),Qu(e))}(e)};e._inner=e._inner.fork({name:"angular",properties:{isAngularZone:!0},onInvokeTask:(r,n,o,i,s,a)=>{try{return jm(e),r.invokeTask(o,i,s,a)}finally{(e.shouldCoalesceEventChangeDetection&&"eventTask"===i.type||e.shouldCoalesceRunChangeDetection)&&t(),Hm(e)}},onInvoke:(r,n,o,i,s,a,l)=>{try{return jm(e),r.invoke(o,i,s,a,l)}finally{e.shouldCoalesceRunChangeDetection&&t(),Hm(e)}},onHasTask:(r,n,o,i)=>{r.hasTask(o,i),n===o&&("microTask"==i.change?(e._hasPendingMicrotasks=i.microTask,Qu(e),Yu(e)):"macroTask"==i.change&&(e.hasPendingMacrotasks=i.macroTask))},onHandleError:(r,n,o,i)=>(r.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(!ge.isInAngularZone())throw new S(909,!1)}static assertNotInAngularZone(){if(ge.isInAngularZone())throw new S(909,!1)}run(t,r,n){return this._inner.run(t,r,n)}runTask(t,r,n,o){const i=this._inner,s=i.scheduleEventTask("NgZoneEvent: "+o,t,sS,Vm,Vm);try{return i.runTask(s,r,n)}finally{i.cancelTask(s)}}runGuarded(t,r,n){return this._inner.runGuarded(t,r,n)}runOutsideAngular(t){return this._outer.run(t)}}const sS={};function Yu(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 Qu(e){e.hasPendingMicrotasks=!!(e._hasPendingMicrotasks||(e.shouldCoalesceEventChangeDetection||e.shouldCoalesceRunChangeDetection)&&-1!==e.lastRequestAnimationFrameId)}function jm(e){e._nesting++,e.isStable&&(e.isStable=!1,e.onUnstable.emit(null))}function Hm(e){e._nesting--,Yu(e)}const Um=new x("",{providedIn:"root",factory:Bm});function Bm(){const e=A(ge);let t=!0;return function uE(...e){const t=Wo(e),r=function rE(e,t){return"number"==typeof mc(e)?e.pop():t}(e,1/0),n=e;return n.length?1===n.length?Vt(n[0]):xr(r)(Ne(n,t)):Jt}(new Ie(o=>{t=e.isStable&&!e.hasPendingMacrotasks&&!e.hasPendingMicrotasks,e.runOutsideAngular(()=>{o.next(t),o.complete()})}),new Ie(o=>{let i;e.runOutsideAngular(()=>{i=e.onStable.subscribe(()=>{ge.assertNotInAngularZone(),queueMicrotask(()=>{!t&&!e.hasPendingMacrotasks&&!e.hasPendingMicrotasks&&(t=!0,o.next(!0))})})});const s=e.onUnstable.subscribe(()=>{ge.assertInAngularZone(),t&&(t=!1,e.runOutsideAngular(()=>{o.next(!1)}))});return()=>{i.unsubscribe(),s.unsubscribe()}}).pipe(ip()))}function In(e){return e instanceof Function?e():e}let Xu=(()=>{var e;class t{constructor(){this.callbacks=new Set,this.deferredCallbacks=new Set,this.renderDepth=0,this.runningCallbacks=!1}begin(){if(this.runningCallbacks)throw new S(102,!1);this.renderDepth++}end(){if(this.renderDepth--,0===this.renderDepth)try{this.runningCallbacks=!0;for(const n of this.callbacks)n.invoke()}finally{this.runningCallbacks=!1;for(const n of this.deferredCallbacks)this.callbacks.add(n);this.deferredCallbacks.clear()}}register(n){(this.runningCallbacks?this.deferredCallbacks:this.callbacks).add(n)}unregister(n){this.callbacks.delete(n),this.deferredCallbacks.delete(n)}ngOnDestroy(){this.callbacks.clear(),this.deferredCallbacks.clear()}}return(e=t).\u0275prov=L({token:e,providedIn:"root",factory:()=>new e}),t})();function bi(e){for(;e;){e[z]|=64;const t=fi(e);if(kc(e)&&!t)return e;e=t}return null}function Ju(e){return e.ngOriginalError}class pr{constructor(){this._console=console}handleError(t){const r=this._findOriginalError(t);this._console.error("ERROR",t),r&&this._console.error("ORIGINAL ERROR",r)}_findOriginalError(t){let r=t&&Ju(t);for(;r&&Ju(r);)r=Ju(r);return r||null}}const Wm=new x("",{providedIn:"root",factory:()=>!1});class Xm extends Op{constructor(){super(...arguments),this.consumerAllowSignalWrites=!1,this._lView=null}set lView(t){this._lView=t}onConsumerDependencyMayHaveChanged(){bi(this._lView)}onProducerUpdateValueVersion(){}get hasReadASignal(){return this.hasProducers}runInContext(t,r,n){const o=je(this);this.trackingVersion++;try{t(r,n)}finally{je(o)}}destroy(){this.trackingVersion++}}let Ta=null;function Jm(){return Ta??=new Xm,Ta}function Km(e,t){return e[t]??Jm()}function ev(e,t){const r=Jm();r.hasReadASignal&&(e[t]=Ta,r.lView=e,Ta=new Xm)}const q={};function _(e){tv(J(),M(),Ke()+e,!1)}function tv(e,t,r,n){if(!n)if(3==(3&t[z])){const i=e.preOrderCheckHooks;null!==i&&Gs(t,i,r)}else{const i=e.preOrderHooks;null!==i&&zs(t,i,0,r)}cr(r)}function I(e,t=Y.Default){const r=M();return null===r?F(e,t):gg(Be(),r,U(e),t)}function Aa(e,t,r,n,o,i,s,a,l,c,u){const d=t.blueprint.slice();return d[we]=o,d[z]=140|n,(null!==c||e&&2048&e[z])&&(d[z]|=2048),Gp(d),d[_e]=d[kr]=e,d[Se]=r,d[Or]=s||e&&e[Or],d[G]=a||e&&e[G],d[Un]=l||e&&e[Un]||null,d[ze]=i,d[ti]=function TM(){return SM++}(),d[Dn]=u,d[Tp]=c,d[Te]=2==t.type?e[Te]:d,d}function lo(e,t,r,n,o){let i=e.data[t];if(null===i)i=function Ku(e,t,r,n,o){const i=Qp(),s=Bc(),l=e.data[t]=function IS(e,t,r,n,o,i){let s=t?t.injectorIndex:-1,a=0;return function jr(){return null!==H.skipHydrationRootTNode}()&&(a|=128),{type:r,index:n,insertBeforeIndex:null,injectorIndex:s,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,componentOffset:-1,propertyBindings:null,flags:a,providerIndexes:0,value:o,attrs:i,mergedAttrs:null,localNames:null,initialInputs:void 0,inputs:null,outputs:null,tView:null,next:null,prev:null,projectionNext:null,child:null,parent:t,projection:null,styles:null,stylesWithoutHost:null,residualStyles:void 0,classes:null,classesWithoutHost:null,residualClasses:void 0,classBindings:0,styleBindings:0}}(0,s?i:i&&i.parent,r,t,n,o);return null===e.firstChild&&(e.firstChild=l),null!==i&&(s?null==i.child&&null!==l.parent&&(i.child=l):null===i.next&&(i.next=l,l.prev=i)),l}(e,t,r,n,o),function S0(){return H.lFrame.inI18n}()&&(i.flags|=32);else if(64&i.type){i.type=r,i.value=n,i.attrs=o;const s=function ri(){const e=H.lFrame,t=e.currentTNode;return e.isParent?t:t.parent}();i.injectorIndex=null===s?-1:s.injectorIndex}return sn(i,!0),i}function wi(e,t,r,n){if(0===r)return-1;const o=t.length;for(let i=0;iQ&&tv(e,t,Q,!1),on(a?2:0,o),a)i.runInContext(r,n,o);else{const c=je(null);try{r(n,o)}finally{je(c)}}}finally{a&&null===t[Os]&&ev(t,Os),cr(s),on(a?3:1,o)}}function ed(e,t,r){if(Oc(t)){const n=je(null);try{const i=t.directiveEnd;for(let s=t.directiveStart;snull;function sv(e,t,r,n){for(let o in e)if(e.hasOwnProperty(o)){r=null===r?{}:r;const i=e[o];null===n?av(r,t,o,i):n.hasOwnProperty(o)&&av(r,t,n[o],i)}return r}function av(e,t,r,n){e.hasOwnProperty(r)?e[r].push(t,n):e[r]=[t,n]}function Et(e,t,r,n,o,i,s,a){const l=lt(t,r);let u,c=t.inputs;!a&&null!=c&&(u=c[n])?(ld(e,r,u,n,o),ar(t)&&function AS(e,t){const r=_t(t,e);16&r[z]||(r[z]|=64)}(r,t.index)):3&t.type&&(n=function TS(e){return"class"===e?"className":"for"===e?"htmlFor":"formaction"===e?"formAction":"innerHtml"===e?"innerHTML":"readonly"===e?"readOnly":"tabindex"===e?"tabIndex":e}(n),o=null!=s?s(o,t.value||"",n):o,i.setProperty(l,n,o))}function od(e,t,r,n){if(Yp()){const o=null===n?null:{"":-1},i=function kS(e,t){const r=e.directiveRegistry;let n=null,o=null;if(r)for(let i=0;i0;){const r=e[--t];if("number"==typeof r&&r<0)return r}return 0})(s)!=a&&s.push(a),s.push(r,n,i)}}(e,t,n,wi(e,r,o.hostVars,q),o)}function ln(e,t,r,n,o,i){const s=lt(e,t);!function sd(e,t,r,n,o,i,s){if(null==i)e.removeAttribute(t,o,r);else{const a=null==s?$(i):s(i,n||"",o);e.setAttribute(t,o,a,r)}}(t[G],s,i,e.value,r,n,o)}function US(e,t,r,n,o,i){const s=i[t];if(null!==s)for(let a=0;a{var e;class t{constructor(){this.all=new Set,this.queue=new Map}create(n,o,i){const s=typeof Zone>"u"?null:Zone.current,a=new s0(n,u=>{this.all.has(u)&&this.queue.set(u,s)},i);let l;this.all.add(a),a.notify();const c=()=>{a.cleanup(),l?.(),this.all.delete(a),this.queue.delete(a)};return l=o?.onDestroy(c),{destroy:c}}flush(){if(0!==this.queue.size)for(const[n,o]of this.queue)this.queue.delete(n),o?o.run(()=>n.run()):n.run()}get isQueueEmpty(){return 0===this.queue.size}}return(e=t).\u0275prov=L({token:e,providedIn:"root",factory:()=>new e}),t})();function Ra(e,t,r){let n=r?e.styles:null,o=r?e.classes:null,i=0;if(null!==t)for(let s=0;s0){Cv(e,1);const o=e[T].components;null!==o&&bv(e,o,1)}}function bv(e,t,r){for(let n=0;n-1&&(ca(t,n),Xs(r,n))}this._attachedToViewContainer=!1}pu(this._lView[T],this._lView)}onDestroy(t){!function Wp(e,t){if(256==(256&e[z]))throw new S(911,!1);null===e[Bn]&&(e[Bn]=[]),e[Bn].push(t)}(this._lView,t)}markForCheck(){bi(this._cdRefInjectingView||this._lView)}detach(){this._lView[z]&=-129}reattach(){this._lView[z]|=128}detectChanges(){Na(this._lView[T],this._lView,this.context)}checkNoChanges(){}attachToViewContainerRef(){if(this._appRef)throw new S(902,!1);this._attachedToViewContainer=!0}detachFromAppRef(){this._appRef=null,function BM(e,t){pi(e,t,t[G],2,null,null)}(this._lView[T],this._lView)}attachToAppRef(t){if(this._attachedToViewContainer)throw new S(902,!1);this._appRef=t}}class QS extends Mi{constructor(t){super(t),this._view=t}detectChanges(){const t=this._view;Na(t[T],t,t[Se],!1)}checkNoChanges(){}get context(){return null}}class wv extends Ia{constructor(t){super(),this.ngModule=t}resolveComponentFactory(t){const r=X(t);return new Ii(r,this.ngModule)}}function Ev(e){const t=[];for(let r in e)e.hasOwnProperty(r)&&t.push({propName:e[r],templateName:r});return t}class JS{constructor(t,r){this.injector=t,this.parentInjector=r}get(t,r,n){n=xs(n);const o=this.injector.get(t,zu,n);return o!==zu||r===zu?o:this.parentInjector.get(t,r,n)}}class Ii extends xm{get inputs(){const t=this.componentDef,r=t.inputTransforms,n=Ev(t.inputs);if(null!==r)for(const o of n)r.hasOwnProperty(o.propName)&&(o.transform=r[o.propName]);return n}get outputs(){return Ev(this.componentDef.outputs)}constructor(t,r){super(),this.componentDef=t,this.ngModule=r,this.componentType=t.type,this.selector=function HE(e){return e.map(jE).join(",")}(t.selectors),this.ngContentSelectors=t.ngContentSelectors?t.ngContentSelectors:[],this.isBoundToModule=!!r}create(t,r,n,o){let i=(o=o||this.ngModule)instanceof Dt?o:o?.injector;i&&null!==this.componentDef.getStandaloneInjector&&(i=this.componentDef.getStandaloneInjector(i)||i);const s=i?new JS(t,i):t,a=s.get(Nm,null);if(null===a)throw new S(407,!1);const d={rendererFactory:a,sanitizer:s.get(QI,null),effectManager:s.get(vv,null),afterRenderEventManager:s.get(Xu,null)},g=a.createRenderer(null,this.componentDef),m=this.componentDef.selectors[0][0]||"div",y=n?function DS(e,t,r,n){const i=n.get(Wm,!1)||r===Ht.ShadowDom,s=e.selectRootElement(t,i);return function bS(e){iv(e)}(s),s}(g,n,this.componentDef.encapsulation,s):la(g,m,function XS(e){const t=e.toLowerCase();return"svg"===t?"svg":"math"===t?"math":null}(m)),E=this.componentDef.signals?4608:this.componentDef.onPush?576:528;let D=null;null!==y&&(D=Bu(y,s,!0));const P=rd(0,null,null,1,0,null,null,null,null,null,null),N=Aa(null,P,null,E,null,null,d,g,s,null,D);let Z,Ge;Wc(N);try{const Tt=this.componentDef;let Ar,ic=null;Tt.findHostDirectiveDefs?(Ar=[],ic=new Map,Tt.findHostDirectiveDefs(Tt,Ar,ic),Ar.push(Tt)):Ar=[Tt];const uj=function eT(e,t){const r=e[T],n=Q;return e[n]=t,lo(r,n,2,"#host",null)}(N,y),dj=function tT(e,t,r,n,o,i,s){const a=o[T];!function nT(e,t,r,n){for(const o of e)t.mergedAttrs=Xo(t.mergedAttrs,o.hostAttrs);null!==t.mergedAttrs&&(Ra(t,t.mergedAttrs,!0),null!==r&&om(n,r,t))}(n,e,t,s);let l=null;null!==t&&(l=Bu(t,o[Un]));const c=i.rendererFactory.createRenderer(t,r);let u=16;r.signals?u=4096:r.onPush&&(u=64);const d=Aa(o,ov(r),null,u,o[e.index],e,i,c,null,null,l);return a.firstCreatePass&&id(a,e,n.length-1),xa(o,d),o[e.index]=d}(uj,y,Tt,Ar,N,d,g);Ge=$p(P,Q),y&&function oT(e,t,r,n){if(n)Nc(e,r,["ng-version",XI.full]);else{const{attrs:o,classes:i}=function UE(e){const t=[],r=[];let n=1,o=2;for(;n0&&rm(e,r,i.join(" "))}}(g,Tt,y,n),void 0!==r&&function iT(e,t,r){const n=e.projection=[];for(let o=0;o=0;n--){const o=e[n];o.hostVars=t+=o.hostVars,o.hostAttrs=Xo(o.hostAttrs,r=Xo(r,o.hostAttrs))}}(n)}function Pa(e){return e===en?{}:e===te?[]:e}function lT(e,t){const r=e.viewQuery;e.viewQuery=r?(n,o)=>{t(n,o),r(n,o)}:t}function cT(e,t){const r=e.contentQueries;e.contentQueries=r?(n,o,i)=>{t(n,o,i),r(n,o,i)}:t}function uT(e,t){const r=e.hostBindings;e.hostBindings=r?(n,o)=>{t(n,o),r(n,o)}:t}function Av(e){const t=e.inputConfig,r={};for(const n in t)if(t.hasOwnProperty(n)){const o=t[n];Array.isArray(o)&&o[2]&&(r[n]=o[2])}e.inputTransforms=r}function Oa(e){return!!ud(e)&&(Array.isArray(e)||!(e instanceof Map)&&Symbol.iterator in e)}function ud(e){return null!==e&&("function"==typeof e||"object"==typeof e)}function cn(e,t,r){return e[t]=r}function We(e,t,r){return!Object.is(e[t],r)&&(e[t]=r,!0)}function Gt(e,t,r,n){const o=M();return We(o,Hr(),t)&&(J(),ln(be(),o,e,t,r,n)),Gt}function uo(e,t,r,n){return We(e,Hr(),r)?t+$(r)+n:q}function O(e,t,r,n,o,i,s,a){const l=M(),c=J(),u=e+Q,d=c.firstCreatePass?function kT(e,t,r,n,o,i,s,a,l){const c=t.consts,u=lo(t,e,4,s||null,$n(c,a));od(t,r,u,$n(c,l)),$s(t,u);const d=u.tView=rd(2,u,n,o,i,t.directiveRegistry,t.pipeRegistry,null,t.schemas,c,null);return null!==t.queries&&(t.queries.template(t,u),d.queries=t.queries.embeddedTView(u)),u}(u,c,l,t,r,n,o,i,s):c.data[u];sn(d,!1);const g=Bv(c,l,d,e);Bs()&&da(c,l,g,d),qe(g,l),xa(l,l[u]=dv(g,l,g,d)),Ls(d)&&td(c,l,d),null!=s&&nd(l,d,a)}let Bv=function $v(e,t,r,n){return Gn(!0),t[G].createComment("")};function md(e){return function Vr(e,t){return e[t]}(function I0(){return H.lFrame.contextLView}(),Q+e)}function w(e,t,r){const n=M();return We(n,Hr(),t)&&Et(J(),be(),n,e,t,n[G],r,!1),w}function vd(e,t,r,n,o){const s=o?"class":"style";ld(e,r,t.inputs[s],s,n)}function h(e,t,r,n){const o=M(),i=J(),s=Q+e,a=o[G],l=i.firstCreatePass?function jT(e,t,r,n,o,i){const s=t.consts,l=lo(t,e,2,n,$n(s,o));return od(t,r,l,$n(s,i)),null!==l.attrs&&Ra(l,l.attrs,!1),null!==l.mergedAttrs&&Ra(l,l.mergedAttrs,!0),null!==t.queries&&t.queries.elementStart(t,l),l}(s,i,o,t,r,n):i.data[s],c=Gv(i,o,l,a,t,e);o[s]=c;const u=Ls(l);return sn(l,!0),om(a,c,l),32!=(32&l.flags)&&Bs()&&da(i,o,c,l),0===function y0(){return H.lFrame.elementDepthCount}()&&qe(c,o),function _0(){H.lFrame.elementDepthCount++}(),u&&(td(i,o,l),ed(i,l,o)),null!==n&&nd(o,l),h}function p(){let e=Be();Bc()?$c():(e=e.parent,sn(e,!1));const t=e;(function D0(e){return H.skipHydrationRootTNode===e})(t)&&function M0(){H.skipHydrationRootTNode=null}(),function C0(){H.lFrame.elementDepthCount--}();const r=J();return r.firstCreatePass&&($s(r,e),Oc(e)&&r.queries.elementEnd(e)),null!=t.classesWithoutHost&&function H0(e){return 0!=(8&e.flags)}(t)&&vd(r,t,M(),t.classesWithoutHost,!0),null!=t.stylesWithoutHost&&function U0(e){return 0!=(16&e.flags)}(t)&&vd(r,t,M(),t.stylesWithoutHost,!1),p}function v(e,t,r,n){return h(e,t,r,n),p(),v}let Gv=(e,t,r,n,o,i)=>(Gn(!0),la(n,o,function sg(){return H.lFrame.currentNamespace}()));function ut(e,t,r){const n=M(),o=J(),i=e+Q,s=o.firstCreatePass?function BT(e,t,r,n,o){const i=t.consts,s=$n(i,n),a=lo(t,e,8,"ng-container",s);return null!==s&&Ra(a,s,!0),od(t,r,a,$n(i,o)),null!==t.queries&&t.queries.elementStart(t,a),a}(i,o,n,t,r):o.data[i];sn(s,!0);const a=qv(o,n,s,e);return n[i]=a,Bs()&&da(o,n,a,s),qe(a,n),Ls(s)&&(td(o,n,s),ed(o,s,n)),null!=r&&nd(n,s),ut}function dt(){let e=Be();const t=J();return Bc()?$c():(e=e.parent,sn(e,!1)),t.firstCreatePass&&($s(t,e),Oc(e)&&t.queries.elementEnd(e)),dt}let qv=(e,t,r,n)=>(Gn(!0),hu(t[G],""));function Ae(){return M()}function Ri(e){return!!e&&"function"==typeof e.then}function Wv(e){return!!e&&"function"==typeof e.subscribe}function R(e,t,r,n){const o=M(),i=J(),s=Be();return function Yv(e,t,r,n,o,i,s){const a=Ls(n),c=e.firstCreatePass&&pv(e),u=t[Se],d=hv(t);let g=!0;if(3&n.type||s){const C=lt(n,t),b=s?s(C):C,E=d.length,D=s?N=>s(pe(N[n.index])):n.index;let P=null;if(!s&&a&&(P=function zT(e,t,r,n){const o=e.cleanup;if(null!=o)for(let i=0;il?a[l]:null}"string"==typeof s&&(i+=2)}return null}(e,t,o,n.index)),null!==P)(P.__ngLastListenerFn__||P).__ngNextListenerFn__=i,P.__ngLastListenerFn__=i,g=!1;else{i=Xv(n,t,u,i,!1);const N=r.listen(b,o,i);d.push(i,N),c&&c.push(o,D,E,E+1)}}else i=Xv(n,t,u,i,!1);const m=n.outputs;let y;if(g&&null!==m&&(y=m[o])){const C=y.length;if(C)for(let b=0;b-1?_t(e.index,t):t);let l=Qv(t,r,n,s),c=i.__ngNextListenerFn__;for(;c;)l=Qv(t,r,c,s)&&l,c=c.__ngNextListenerFn__;return o&&!1===l&&s.preventDefault(),l}}function k(e=1){return function R0(e){return(H.lFrame.contextLView=function N0(e,t){for(;e>0;)t=t[kr],e--;return t}(e,H.lFrame.contextLView))[Se]}(e)}function Tn(e,t,r,n,o){const i=M(),s=uo(i,t,r,n);return s!==q&&Et(J(),be(),i,e,s,i[G],o,!1),Tn}function ja(e,t){return e<<17|t<<2}function Wn(e){return e>>17&32767}function yd(e){return 2|e}function mr(e){return(131068&e)>>2}function _d(e,t){return-131069&e|t<<2}function Cd(e){return 1|e}function ay(e,t,r,n,o){const i=e[r+1],s=null===t;let a=n?Wn(i):mr(i),l=!1;for(;0!==a&&(!1===l||s);){const u=e[a+1];eA(e[a],t)&&(l=!0,e[a+1]=n?Cd(u):yd(u)),a=n?Wn(u):mr(u)}l&&(e[r+1]=n?yd(i):Cd(i))}function eA(e,t){return null===e||null==t||(Array.isArray(e)?e[1]:e)===t||!(!Array.isArray(e)||"string"!=typeof t)&&Zr(e,t)>=0}function Ha(e,t){return function zt(e,t,r,n){const o=M(),i=J(),s=function wn(e){const t=H.lFrame,r=t.bindingIndex;return t.bindingIndex=t.bindingIndex+e,r}(2);i.firstUpdatePass&&function my(e,t,r,n){const o=e.data;if(null===o[r+1]){const i=o[Ke()],s=function gy(e,t){return t>=e.expandoStartIndex}(e,r);(function Cy(e,t){return 0!=(e.flags&(t?8:16))})(i,n)&&null===t&&!s&&(t=!1),t=function cA(e,t,r,n){const o=function zc(e){const t=H.lFrame.currentDirectiveIndex;return-1===t?null:e[t]}(e);let i=n?t.residualClasses:t.residualStyles;if(null===o)0===(n?t.classBindings:t.styleBindings)&&(r=Ni(r=Dd(null,e,t,r,n),t.attrs,n),i=null);else{const s=t.directiveStylingLast;if(-1===s||e[s]!==o)if(r=Dd(o,e,t,r,n),null===i){let l=function uA(e,t,r){const n=r?t.classBindings:t.styleBindings;if(0!==mr(n))return e[Wn(n)]}(e,t,n);void 0!==l&&Array.isArray(l)&&(l=Dd(null,e,t,l[1],n),l=Ni(l,t.attrs,n),function dA(e,t,r,n){e[Wn(r?t.classBindings:t.styleBindings)]=n}(e,t,n,l))}else i=function fA(e,t,r){let n;const o=t.directiveEnd;for(let i=1+t.directiveStylingLast;i0)&&(c=!0)):u=r,o)if(0!==l){const g=Wn(e[a+1]);e[n+1]=ja(g,a),0!==g&&(e[g+1]=_d(e[g+1],n)),e[a+1]=function QT(e,t){return 131071&e|t<<17}(e[a+1],n)}else e[n+1]=ja(a,0),0!==a&&(e[a+1]=_d(e[a+1],n)),a=n;else e[n+1]=ja(l,0),0===a?a=n:e[l+1]=_d(e[l+1],n),l=n;c&&(e[n+1]=yd(e[n+1])),ay(e,u,n,!0),ay(e,u,n,!1),function KT(e,t,r,n,o){const i=o?e.residualClasses:e.residualStyles;null!=i&&"string"==typeof t&&Zr(i,t)>=0&&(r[n+1]=Cd(r[n+1]))}(t,u,e,n,i),s=ja(a,l),i?t.classBindings=s:t.styleBindings=s}(o,i,t,r,s,n)}}(i,e,s,n),t!==q&&We(o,s,t)&&function yy(e,t,r,n,o,i,s,a){if(!(3&t.type))return;const l=e.data,c=l[a+1],u=function XT(e){return 1==(1&e)}(c)?_y(l,t,r,o,mr(c),s):void 0;Ua(u)||(Ua(i)||function YT(e){return 2==(2&e)}(c)&&(i=_y(l,null,r,o,a,s)),function JM(e,t,r,n,o){if(t)o?e.addClass(r,n):e.removeClass(r,n);else{let i=-1===n.indexOf("-")?void 0:zn.DashCase;null==o?e.removeStyle(r,n,i):("string"==typeof o&&o.endsWith("!important")&&(o=o.slice(0,-10),i|=zn.Important),e.setStyle(r,n,o,i))}}(n,s,Us(Ke(),r),o,i))}(i,i.data[Ke()],o,o[G],e,o[s+1]=function mA(e,t){return null==e||""===e||("string"==typeof t?e+=t:"object"==typeof e&&(e=ke(qn(e)))),e}(t,r),n,s)}(e,t,null,!0),Ha}function Dd(e,t,r,n,o){let i=null;const s=r.directiveEnd;let a=r.directiveStylingLast;for(-1===a?a=r.directiveStart:a++;a0;){const l=e[o],c=Array.isArray(l),u=c?l[1]:l,d=null===u;let g=r[o+1];g===q&&(g=d?te:void 0);let m=d?ru(g,n):u===n?g:void 0;if(c&&!Ua(m)&&(m=ru(l,n)),Ua(m)&&(a=m,s))return a;const y=e[o+1];o=s?Wn(y):mr(y)}if(null!==t){let l=i?t.residualClasses:t.residualStyles;null!=l&&(a=ru(l,n))}return a}function Ua(e){return void 0!==e}function f(e,t=""){const r=M(),n=J(),o=e+Q,i=n.firstCreatePass?lo(n,o,1,t,null):n.data[o],s=Dy(n,r,i,t,e);r[o]=s,Bs()&&da(n,r,s,i),sn(i,!1)}let Dy=(e,t,r,n,o)=>(Gn(!0),function aa(e,t){return e.createText(t)}(t[G],n));function Ce(e){return An("",e,""),Ce}function An(e,t,r){const n=M(),o=uo(n,e,t,r);return o!==q&&function Sn(e,t,r){const n=Us(t,e);!function zg(e,t,r){e.setValue(t,r)}(e[G],n,r)}(n,Ke(),o),An}const Do="en-US";let $y=Do;function Ed(e,t,r,n,o){if(e=U(e),Array.isArray(e))for(let i=0;i>20;if(fr(e)||!e.multi){const m=new oi(c,o,I),y=Id(l,t,o?u:u+g,d);-1===y?(eu(Ws(a,s),i,l),Md(i,e,t.length),t.push(l),a.directiveStart++,a.directiveEnd++,o&&(a.providerIndexes+=1048576),r.push(m),s.push(m)):(r[y]=m,s[y]=m)}else{const m=Id(l,t,u+g,d),y=Id(l,t,u,u+g),b=y>=0&&r[y];if(o&&!b||!o&&!(m>=0&&r[m])){eu(Ws(a,s),i,l);const E=function Lx(e,t,r,n,o){const i=new oi(e,r,I);return i.multi=[],i.index=t,i.componentProviders=0,p_(i,o,n&&!r),i}(o?Fx:kx,r.length,o,n,c);!o&&b&&(r[y].providerFactory=E),Md(i,e,t.length,0),t.push(l),a.directiveStart++,a.directiveEnd++,o&&(a.providerIndexes+=1048576),r.push(E),s.push(E)}else Md(i,e,m>-1?m:y,p_(r[o?y:m],c,!o&&n));!o&&n&&b&&r[y].componentProviders++}}}function Md(e,t,r,n){const o=fr(t),i=function SI(e){return!!e.useClass}(t);if(o||i){const l=(i?U(t.useClass):t).prototype.ngOnDestroy;if(l){const c=e.destroyHooks||(e.destroyHooks=[]);if(!o&&t.multi){const u=c.indexOf(r);-1===u?c.push(r,[n,l]):c[u+1].push(n,l)}else c.push(r,l)}}}function p_(e,t,r){return r&&e.componentProviders++,e.multi.push(t)-1}function Id(e,t,r,n){for(let o=r;o{r.providersResolver=(n,o)=>function Ox(e,t,r){const n=J();if(n.firstCreatePass){const o=$t(e);Ed(r,n.data,n.blueprint,o,!0),Ed(t,n.data,n.blueprint,o,!1)}}(n,o?o(e):e,t)}}class yr{}class g_{}class Td extends yr{constructor(t,r,n){super(),this._parent=r,this._bootstrapComponents=[],this.destroyCbs=[],this.componentFactoryResolver=new wv(this);const o=yt(t);this._bootstrapComponents=In(o.bootstrap),this._r3Injector=Lm(t,r,[{provide:yr,useValue:this},{provide:Ia,useValue:this.componentFactoryResolver},...n],ke(t),new Set(["environment"])),this._r3Injector.resolveInjectorInitializers(),this.instance=this._r3Injector.get(t)}get injector(){return this._r3Injector}destroy(){const t=this._r3Injector;!t.destroyed&&t.destroy(),this.destroyCbs.forEach(r=>r()),this.destroyCbs=null}onDestroy(t){this.destroyCbs.push(t)}}class Ad extends g_{constructor(t){super(),this.moduleType=t}create(t){return new Td(this.moduleType,t,[])}}class m_ extends yr{constructor(t){super(),this.componentFactoryResolver=new wv(this),this.instance=null;const r=new _a([...t.providers,{provide:yr,useValue:this},{provide:Ia,useValue:this.componentFactoryResolver}],t.parent||ya(),t.debugName,new Set(["environment"]));this.injector=r,t.runEnvironmentInitializers&&r.resolveInjectorInitializers()}destroy(){this.injector.destroy()}onDestroy(t){this.injector.onDestroy(t)}}function xd(e,t,r=null){return new m_({providers:e,parent:t,debugName:r,runEnvironmentInitializers:!0}).injector}let Hx=(()=>{var e;class t{constructor(n){this._injector=n,this.cachedInjectors=new Map}getOrCreateStandaloneInjector(n){if(!n.standalone)return null;if(!this.cachedInjectors.has(n)){const o=Cm(0,n.type),i=o.length>0?xd([o],this._injector,`Standalone[${n.type.name}]`):null;this.cachedInjectors.set(n,i)}return this.cachedInjectors.get(n)}ngOnDestroy(){try{for(const n of this.cachedInjectors.values())null!==n&&n.destroy()}finally{this.cachedInjectors.clear()}}}return(e=t).\u0275prov=L({token:e,providedIn:"environment",factory:()=>new e(F(Dt))}),t})();function Mt(e){e.getStandaloneInjector=t=>t.get(Hx).getOrCreateStandaloneInjector(e)}function K(e,t,r){const n=Je()+e,o=M();return o[n]===q?cn(o,n,r?t.call(r):t()):function Si(e,t){return e[t]}(o,n)}function Vi(e,t,r,n){return function E_(e,t,r,n,o,i){const s=t+r;return We(e,s,o)?cn(e,s+1,i?n.call(i,o):n(o)):ji(e,s+1)}(M(),Je(),e,t,r,n)}function w_(e,t,r,n,o){return function M_(e,t,r,n,o,i,s){const a=t+r;return function gr(e,t,r,n){const o=We(e,t,r);return We(e,t+1,n)||o}(e,a,o,i)?cn(e,a+2,s?n.call(s,o,i):n(o,i)):ji(e,a+2)}(M(),Je(),e,t,r,n,o)}function ji(e,t){const r=e[t];return r===q?void 0:r}function cR(){return this._results[Symbol.iterator]()}class Nd{get changes(){return this._changes||(this._changes=new Ee)}constructor(t=!1){this._emitDistinctChangesOnly=t,this.dirty=!0,this._results=[],this._changesDetected=!1,this._changes=null,this.length=0,this.first=void 0,this.last=void 0;const r=Nd.prototype;r[Symbol.iterator]||(r[Symbol.iterator]=cR)}get(t){return this._results[t]}map(t){return this._results.map(t)}filter(t){return this._results.filter(t)}find(t){return this._results.find(t)}reduce(t,r){return this._results.reduce(t,r)}forEach(t){this._results.forEach(t)}some(t){return this._results.some(t)}toArray(){return this._results.slice()}toString(){return this._results.toString()}reset(t,r){const n=this;n.dirty=!1;const o=function Nt(e){return e.flat(Number.POSITIVE_INFINITY)}(t);(this._changesDetected=!function tM(e,t,r){if(e.length!==t.length)return!1;for(let n=0;n0&&(r[o-1][Bt]=t),n{class t{}return t.__NG_ELEMENT_ID__=pR,t})();const fR=xn,hR=class extends fR{constructor(t,r,n){super(),this._declarationLView=t,this._declarationTContainer=r,this.elementRef=n}get ssrId(){return this._declarationTContainer.tView?.ssrId||null}createEmbeddedView(t,r){return this.createEmbeddedViewImpl(t,r)}createEmbeddedViewImpl(t,r,n){const o=function uR(e,t,r,n){const o=t.tView,a=Aa(e,o,r,4096&e[z]?4096:16,null,t,null,null,null,n?.injector??null,n?.hydrationInfo??null);a[ei]=e[t.index];const c=e[tn];return null!==c&&(a[tn]=c.createEmbeddedView(o)),cd(o,a,r),a}(this._declarationLView,this._declarationTContainer,t,{injector:r,hydrationInfo:n});return new Mi(o)}};function pR(){return qa(Be(),M())}function qa(e,t){return 4&e.type?new hR(t,e,io(e,t)):null}let Wt=(()=>{class t{}return t.__NG_ELEMENT_ID__=CR,t})();function CR(){return k_(Be(),M())}const DR=Wt,P_=class extends DR{constructor(t,r,n){super(),this._lContainer=t,this._hostTNode=r,this._hostLView=n}get element(){return io(this._hostTNode,this._hostLView)}get injector(){return new et(this._hostTNode,this._hostLView)}get parentInjector(){const t=Zs(this._hostTNode,this._hostLView);if(Xc(t)){const r=si(t,this._hostLView),n=ii(t);return new et(r[T].data[n+8],r)}return new et(null,this._hostLView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(t){const r=O_(this._lContainer);return null!==r&&r[t]||null}get length(){return this._lContainer.length-Ue}createEmbeddedView(t,r,n){let o,i;"number"==typeof n?o=n:null!=n&&(o=n.index,i=n.injector);const a=t.createEmbeddedViewImpl(r||{},i,null);return this.insertImpl(a,o,false),a}createComponent(t,r,n,o,i){const s=t&&!function li(e){return"function"==typeof e}(t);let a;if(s)a=r;else{const C=r||{};a=C.index,n=C.injector,o=C.projectableNodes,i=C.environmentInjector||C.ngModuleRef}const l=s?t:new Ii(X(t)),c=n||this.parentInjector;if(!i&&null==l.ngModule){const b=(s?c:this.parentInjector).get(Dt,null);b&&(i=b)}X(l.componentType??{});const m=l.create(c,o,null,i);return this.insertImpl(m.hostView,a,false),m}insert(t,r){return this.insertImpl(t,r,!1)}insertImpl(t,r,n){const o=t._lView;if(function g0(e){return Xe(e[_e])}(o)){const l=this.indexOf(t);if(-1!==l)this.detach(l);else{const c=o[_e],u=new P_(c,c[ze],c[_e]);u.detach(u.indexOf(t))}}const s=this._adjustIndex(r),a=this._lContainer;return dR(a,o,s,!n),t.attachToViewContainerRef(),Dg(Pd(a),s,t),t}move(t,r){return this.insert(t,r)}indexOf(t){const r=O_(this._lContainer);return null!==r?r.indexOf(t):-1}remove(t){const r=this._adjustIndex(t,-1),n=ca(this._lContainer,r);n&&(Xs(Pd(this._lContainer),r),pu(n[T],n))}detach(t){const r=this._adjustIndex(t,-1),n=ca(this._lContainer,r);return n&&null!=Xs(Pd(this._lContainer),r)?new Mi(n):null}_adjustIndex(t,r=0){return t??this.length+r}};function O_(e){return e[8]}function Pd(e){return e[8]||(e[8]=[])}function k_(e,t){let r;const n=t[e.index];return Xe(n)?r=n:(r=dv(n,t,null,e),t[e.index]=r,xa(t,r)),F_(r,t,e,n),new P_(r,e,t)}let F_=function L_(e,t,r,n){if(e[nn])return;let o;o=8&r.type?pe(n):function bR(e,t){const r=e[G],n=r.createComment(""),o=lt(t,e);return dr(r,ua(r,o),n,function YM(e,t){return e.nextSibling(t)}(r,o),!1),n}(t,r),e[nn]=o};class Od{constructor(t){this.queryList=t,this.matches=null}clone(){return new Od(this.queryList)}setDirty(){this.queryList.setDirty()}}class kd{constructor(t=[]){this.queries=t}createEmbeddedView(t){const r=t.queries;if(null!==r){const n=null!==t.contentQueries?t.contentQueries[0]:r.length,o=[];for(let i=0;i0)n.push(s[a/2]);else{const c=i[a+1],u=t[-l];for(let d=Ue;d{var e;class t{constructor(){this.initialized=!1,this.done=!1,this.donePromise=new Promise((n,o)=>{this.resolve=n,this.reject=o}),this.appInits=A(Gd,{optional:!0})??[]}runInitializers(){if(this.initialized)return;const n=[];for(const i of this.appInits){const s=i();if(Ri(s))n.push(s);else if(Wv(s)){const a=new Promise((l,c)=>{s.subscribe({complete:l,error:c})});n.push(a)}}const o=()=>{this.done=!0,this.resolve()};Promise.all(n).then(()=>{o()}).catch(i=>{this.reject(i)}),0===n.length&&o(),this.initialized=!0}}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275prov=L({token:e,factory:e.\u0275fac,providedIn:"root"}),t})(),lC=(()=>{var e;class t{log(n){console.log(n)}warn(n){console.warn(n)}}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275prov=L({token:e,factory:e.\u0275fac,providedIn:"platform"}),t})();const Rn=new x("LocaleId",{providedIn:"root",factory:()=>A(Rn,Y.Optional|Y.SkipSelf)||function KR(){return typeof $localize<"u"&&$localize.locale||Do}()});let Ya=(()=>{var e;class t{constructor(){this.taskId=0,this.pendingTasks=new Set,this.hasPendingTasks=new At(!1)}add(){this.hasPendingTasks.next(!0);const n=this.taskId++;return this.pendingTasks.add(n),n}remove(n){this.pendingTasks.delete(n),0===this.pendingTasks.size&&this.hasPendingTasks.next(!1)}ngOnDestroy(){this.pendingTasks.clear(),this.hasPendingTasks.next(!1)}}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275prov=L({token:e,factory:e.\u0275fac,providedIn:"root"}),t})();class nN{constructor(t,r){this.ngModuleFactory=t,this.componentFactories=r}}let cC=(()=>{var e;class t{compileModuleSync(n){return new Ad(n)}compileModuleAsync(n){return Promise.resolve(this.compileModuleSync(n))}compileModuleAndAllComponentsSync(n){const o=this.compileModuleSync(n),s=In(yt(n).declarations).reduce((a,l)=>{const c=X(l);return c&&a.push(new Ii(c)),a},[]);return new nN(o,s)}compileModuleAndAllComponentsAsync(n){return Promise.resolve(this.compileModuleAndAllComponentsSync(n))}clearCache(){}clearCacheFor(n){}getModuleId(n){}}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275prov=L({token:e,factory:e.\u0275fac,providedIn:"root"}),t})();const hC=new x(""),Xa=new x("");let Qd,Zd=(()=>{var e;class t{constructor(n,o,i){this._ngZone=n,this.registry=o,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,Qd||(function bN(e){Qd=e}(i),i.addToWindow(o)),this._watchAngularEvents(),n.run(()=>{this.taskTrackingZone=typeof Zone>"u"?null:Zone.current.get("TaskTrackingZone")})}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._didWork=!0,this._isZoneStable=!1}}),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.subscribe({next:()=>{ge.assertNotInAngularZone(),queueMicrotask(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}})})}increasePendingRequestCount(){return this._pendingCount+=1,this._didWork=!0,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 n=this._callbacks.pop();clearTimeout(n.timeoutId),n.doneCb(this._didWork)}this._didWork=!1});else{let n=this.getPendingTasks();this._callbacks=this._callbacks.filter(o=>!o.updateCb||!o.updateCb(n)||(clearTimeout(o.timeoutId),!1)),this._didWork=!0}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(n=>({source:n.source,creationLocation:n.creationLocation,data:n.data})):[]}addCallback(n,o,i){let s=-1;o&&o>0&&(s=setTimeout(()=>{this._callbacks=this._callbacks.filter(a=>a.timeoutId!==s),n(this._didWork,this.getPendingTasks())},o)),this._callbacks.push({doneCb:n,timeoutId:s,updateCb:i})}whenStable(n,o,i){if(i&&!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(n,o,i),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}registerApplication(n){this.registry.registerApplication(n,this)}unregisterApplication(n){this.registry.unregisterApplication(n)}findProviders(n,o,i){return[]}}return(e=t).\u0275fac=function(n){return new(n||e)(F(ge),F(Yd),F(Xa))},e.\u0275prov=L({token:e,factory:e.\u0275fac}),t})(),Yd=(()=>{var e;class t{constructor(){this._applications=new Map}registerApplication(n,o){this._applications.set(n,o)}unregisterApplication(n){this._applications.delete(n)}unregisterAllApplications(){this._applications.clear()}getTestability(n){return this._applications.get(n)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(n,o=!0){return Qd?.findTestabilityInTree(this,n,o)??null}}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275prov=L({token:e,factory:e.\u0275fac,providedIn:"platform"}),t})(),Zn=null;const Xd=new x("PlatformDestroyListeners"),Jd=new x("appBootstrapListener");class mC{constructor(t,r){this.name=t,this.token=r}}function SN(e){try{const{rootComponent:t,appProviders:r,platformProviders:n}=e,o=function IN(e=[]){if(Zn)return Zn;const t=function yC(e=[],t){return wt.create({name:t,providers:[{provide:Ru,useValue:"platform"},{provide:Xd,useValue:new Set([()=>Zn=null])},...e]})}(e);return Zn=t,function gC(){!function r0(e){kp=e}(()=>{throw new S(600,!1)})}(),function vC(e){e.get(Mm,null)?.forEach(r=>r())}(t),t}(n),i=[NN(),...r||[]],a=new m_({providers:i,parent:o,debugName:"",runEnvironmentInitializers:!1}).injector,l=a.get(ge);return l.run(()=>{a.resolveInjectorInitializers();const c=a.get(pr,null);let u;l.runOutsideAngular(()=>{u=l.onError.subscribe({next:m=>{c.handleError(m)}})});const d=()=>a.destroy(),g=o.get(Xd);return g.add(d),a.onDestroy(()=>{u.unsubscribe(),g.delete(d)}),function DC(e,t,r){try{const n=r();return Ri(n)?n.catch(o=>{throw t.runOutsideAngular(()=>e.handleError(o)),o}):n}catch(n){throw t.runOutsideAngular(()=>e.handleError(n)),n}}(c,l,()=>{const m=a.get(zd);return m.runInitializers(),m.donePromise.then(()=>{!function Gy(e){xt(e,"Expected localeId to be defined"),"string"==typeof e&&($y=e.toLowerCase().replace(/_/g,"-"))}(a.get(Rn,Do)||Do);const C=a.get(Eo);return void 0!==t&&C.bootstrap(t),C})})})}catch(t){return Promise.reject(t)}}let Eo=(()=>{var e;class t{constructor(){this._bootstrapListeners=[],this._runningTick=!1,this._destroyed=!1,this._destroyListeners=[],this._views=[],this.internalErrorHandler=A(EC),this.zoneIsStable=A(Um),this.componentTypes=[],this.components=[],this.isStable=A(Ya).hasPendingTasks.pipe(jt(n=>n?V(!1):this.zoneIsStable),function dE(e,t=Vn){return e=e??fE,Oe((r,n)=>{let o,i=!0;r.subscribe(Re(n,s=>{const a=t(s);(i||!e(o,a))&&(i=!1,o=a,n.next(s))}))})}(),ip()),this._injector=A(Dt)}get destroyed(){return this._destroyed}get injector(){return this._injector}bootstrap(n,o){const i=n instanceof xm;if(!this._injector.get(zd).done)throw!i&&function Nr(e){const t=X(e)||He(e)||Qe(e);return null!==t&&t.standalone}(n),new S(405,!1);let a;a=i?n:this._injector.get(Ia).resolveComponentFactory(n),this.componentTypes.push(a.componentType);const l=function EN(e){return e.isBoundToModule}(a)?void 0:this._injector.get(yr),u=a.create(wt.NULL,[],o||a.selector,l),d=u.location.nativeElement,g=u.injector.get(hC,null);return g?.registerApplication(d),u.onDestroy(()=>{this.detachView(u.hostView),Ja(this.components,u),g?.unregisterApplication(d)}),this._loadComponent(u),u}tick(){if(this._runningTick)throw new S(101,!1);try{this._runningTick=!0;for(let n of this._views)n.detectChanges()}catch(n){this.internalErrorHandler(n)}finally{this._runningTick=!1}}attachView(n){const o=n;this._views.push(o),o.attachToAppRef(this)}detachView(n){const o=n;Ja(this._views,o),o.detachFromAppRef()}_loadComponent(n){this.attachView(n.hostView),this.tick(),this.components.push(n);const o=this._injector.get(Jd,[]);o.push(...this._bootstrapListeners),o.forEach(i=>i(n))}ngOnDestroy(){if(!this._destroyed)try{this._destroyListeners.forEach(n=>n()),this._views.slice().forEach(n=>n.destroy())}finally{this._destroyed=!0,this._views=[],this._bootstrapListeners=[],this._destroyListeners=[]}}onDestroy(n){return this._destroyListeners.push(n),()=>Ja(this._destroyListeners,n)}destroy(){if(this._destroyed)throw new S(406,!1);const n=this._injector;n.destroy&&!n.destroyed&&n.destroy()}get viewCount(){return this._views.length}warnIfDestroyed(){}}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275prov=L({token:e,factory:e.\u0275fac,providedIn:"root"}),t})();function Ja(e,t){const r=e.indexOf(t);r>-1&&e.splice(r,1)}const EC=new x("",{providedIn:"root",factory:()=>A(pr).handleError.bind(void 0)});function xN(){const e=A(ge),t=A(pr);return r=>e.runOutsideAngular(()=>t.handleError(r))}let RN=(()=>{var e;class t{constructor(){this.zone=A(ge),this.applicationRef=A(Eo)}initialize(){this._onMicrotaskEmptySubscription||(this._onMicrotaskEmptySubscription=this.zone.onMicrotaskEmpty.subscribe({next:()=>{this.zone.run(()=>{this.applicationRef.tick()})}}))}ngOnDestroy(){this._onMicrotaskEmptySubscription?.unsubscribe()}}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275prov=L({token:e,factory:e.\u0275fac,providedIn:"root"}),t})();function MC(e){return[{provide:ge,useFactory:e},{provide:yi,multi:!0,useFactory:()=>{const t=A(RN,{optional:!0});return()=>t.initialize()}},{provide:EC,useFactory:xN},{provide:Um,useFactory:Bm}]}function NN(e){return Tu([[],MC(()=>new ge(function CC(e){return{enableLongStackTrace:!1,shouldCoalesceEventChangeDetection:e?.eventCoalescing??!1,shouldCoalesceRunChangeDetection:e?.runCoalescing??!1}}(e)))])}let Ka=(()=>{class t{}return t.__NG_ELEMENT_ID__=PN,t})();function PN(e){return function ON(e,t,r){if(ar(e)&&!r){const n=_t(e.index,t);return new Mi(n,n)}return 47&e.type?new Mi(t[Te],t):null}(Be(),M(),16==(16&e))}class AC{constructor(){}supports(t){return Oa(t)}create(t){return new HN(t)}}const jN=(e,t)=>t;class HN{constructor(t){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=t||jN}forEachItem(t){let r;for(r=this._itHead;null!==r;r=r._next)t(r)}forEachOperation(t){let r=this._itHead,n=this._removalsHead,o=0,i=null;for(;r||n;){const s=!n||r&&r.currentIndex{s=this._trackByFn(o,a),null!==r&&Object.is(r.trackById,s)?(n&&(r=this._verifyReinsertion(r,a,s,o)),Object.is(r.item,a)||this._addIdentityChange(r,a)):(r=this._mismatch(r,a,s,o),n=!0),r=r._next,o++}),this.length=o;return this._truncate(r),this.collection=t,this.isDirty}get isDirty(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}_reset(){if(this.isDirty){let t;for(t=this._previousItHead=this._itHead;null!==t;t=t._next)t._nextPrevious=t._next;for(t=this._additionsHead;null!==t;t=t._nextAdded)t.previousIndex=t.currentIndex;for(this._additionsHead=this._additionsTail=null,t=this._movesHead;null!==t;t=t._nextMoved)t.previousIndex=t.currentIndex;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(t,r,n,o){let i;return null===t?i=this._itTail:(i=t._prev,this._remove(t)),null!==(t=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null))?(Object.is(t.item,r)||this._addIdentityChange(t,r),this._reinsertAfter(t,i,o)):null!==(t=null===this._linkedRecords?null:this._linkedRecords.get(n,o))?(Object.is(t.item,r)||this._addIdentityChange(t,r),this._moveAfter(t,i,o)):t=this._addAfter(new UN(r,n),i,o),t}_verifyReinsertion(t,r,n,o){let i=null===this._unlinkedRecords?null:this._unlinkedRecords.get(n,null);return null!==i?t=this._reinsertAfter(i,t._prev,o):t.currentIndex!=o&&(t.currentIndex=o,this._addToMoves(t,o)),t}_truncate(t){for(;null!==t;){const r=t._next;this._addToRemovals(this._unlink(t)),t=r}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(t,r,n){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(t);const o=t._prevRemoved,i=t._nextRemoved;return null===o?this._removalsHead=i:o._nextRemoved=i,null===i?this._removalsTail=o:i._prevRemoved=o,this._insertAfter(t,r,n),this._addToMoves(t,n),t}_moveAfter(t,r,n){return this._unlink(t),this._insertAfter(t,r,n),this._addToMoves(t,n),t}_addAfter(t,r,n){return this._insertAfter(t,r,n),this._additionsTail=null===this._additionsTail?this._additionsHead=t:this._additionsTail._nextAdded=t,t}_insertAfter(t,r,n){const o=null===r?this._itHead:r._next;return t._next=o,t._prev=r,null===o?this._itTail=t:o._prev=t,null===r?this._itHead=t:r._next=t,null===this._linkedRecords&&(this._linkedRecords=new xC),this._linkedRecords.put(t),t.currentIndex=n,t}_remove(t){return this._addToRemovals(this._unlink(t))}_unlink(t){null!==this._linkedRecords&&this._linkedRecords.remove(t);const r=t._prev,n=t._next;return null===r?this._itHead=n:r._next=n,null===n?this._itTail=r:n._prev=r,t}_addToMoves(t,r){return t.previousIndex===r||(this._movesTail=null===this._movesTail?this._movesHead=t:this._movesTail._nextMoved=t),t}_addToRemovals(t){return null===this._unlinkedRecords&&(this._unlinkedRecords=new xC),this._unlinkedRecords.put(t),t.currentIndex=null,t._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=t,t._prevRemoved=null):(t._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=t),t}_addIdentityChange(t,r){return t.item=r,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=t:this._identityChangesTail._nextIdentityChange=t,t}}class UN{constructor(t,r){this.item=t,this.trackById=r,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 BN{constructor(){this._head=null,this._tail=null}add(t){null===this._head?(this._head=this._tail=t,t._nextDup=null,t._prevDup=null):(this._tail._nextDup=t,t._prevDup=this._tail,t._nextDup=null,this._tail=t)}get(t,r){let n;for(n=this._head;null!==n;n=n._nextDup)if((null===r||r<=n.currentIndex)&&Object.is(n.trackById,t))return n;return null}remove(t){const r=t._prevDup,n=t._nextDup;return null===r?this._head=n:r._nextDup=n,null===n?this._tail=r:n._prevDup=r,null===this._head}}class xC{constructor(){this.map=new Map}put(t){const r=t.trackById;let n=this.map.get(r);n||(n=new BN,this.map.set(r,n)),n.add(t)}get(t,r){const o=this.map.get(t);return o?o.get(t,r):null}remove(t){const r=t.trackById;return this.map.get(r).remove(t)&&this.map.delete(r),t}get isEmpty(){return 0===this.map.size}clear(){this.map.clear()}}function RC(e,t,r){const n=e.previousIndex;if(null===n)return n;let o=0;return r&&n{if(r&&r.key===o)this._maybeAddToChanges(r,n),this._appendAfter=r,r=r._next;else{const i=this._getOrCreateRecordForKey(o,n);r=this._insertBeforeOrAppend(r,i)}}),r){r._prev&&(r._prev._next=null),this._removalsHead=r;for(let n=r;null!==n;n=n._nextRemoved)n===this._mapHead&&(this._mapHead=null),this._records.delete(n.key),n._nextRemoved=n._next,n.previousValue=n.currentValue,n.currentValue=null,n._prev=null,n._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(t,r){if(t){const n=t._prev;return r._next=t,r._prev=n,t._prev=r,n&&(n._next=r),t===this._mapHead&&(this._mapHead=r),this._appendAfter=t,t}return this._appendAfter?(this._appendAfter._next=r,r._prev=this._appendAfter):this._mapHead=r,this._appendAfter=r,null}_getOrCreateRecordForKey(t,r){if(this._records.has(t)){const o=this._records.get(t);this._maybeAddToChanges(o,r);const i=o._prev,s=o._next;return i&&(i._next=s),s&&(s._prev=i),o._next=null,o._prev=null,o}const n=new GN(t);return this._records.set(t,n),n.currentValue=r,this._addToAdditions(n),n}_reset(){if(this.isDirty){let t;for(this._previousMapHead=this._mapHead,t=this._previousMapHead;null!==t;t=t._next)t._nextPrevious=t._next;for(t=this._changesHead;null!==t;t=t._nextChanged)t.previousValue=t.currentValue;for(t=this._additionsHead;null!=t;t=t._nextAdded)t.previousValue=t.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(t,r){Object.is(r,t.currentValue)||(t.previousValue=t.currentValue,t.currentValue=r,this._addToChanges(t))}_addToAdditions(t){null===this._additionsHead?this._additionsHead=this._additionsTail=t:(this._additionsTail._nextAdded=t,this._additionsTail=t)}_addToChanges(t){null===this._changesHead?this._changesHead=this._changesTail=t:(this._changesTail._nextChanged=t,this._changesTail=t)}_forEach(t,r){t instanceof Map?t.forEach(r):Object.keys(t).forEach(n=>r(t[n],n))}}class GN{constructor(t){this.key=t,this.previousValue=null,this.currentValue=null,this._nextPrevious=null,this._next=null,this._prev=null,this._nextAdded=null,this._nextRemoved=null,this._nextChanged=null}}function PC(){return new nl([new AC])}let nl=(()=>{var e;class t{constructor(n){this.factories=n}static create(n,o){if(null!=o){const i=o.factories.slice();n=n.concat(i)}return new t(n)}static extend(n){return{provide:t,useFactory:o=>t.create(n,o||PC()),deps:[[t,new ea,new Ks]]}}find(n){const o=this.factories.find(i=>i.supports(n));if(null!=o)return o;throw new S(901,!1)}}return(e=t).\u0275prov=L({token:e,providedIn:"root",factory:PC}),t})();function OC(){return new $i([new NC])}let $i=(()=>{var e;class t{constructor(n){this.factories=n}static create(n,o){if(o){const i=o.factories.slice();n=n.concat(i)}return new t(n)}static extend(n){return{provide:t,useFactory:o=>t.create(n,o||OC()),deps:[[t,new ea,new Ks]]}}find(n){const o=this.factories.find(i=>i.supports(n));if(o)return o;throw new S(901,!1)}}return(e=t).\u0275prov=L({token:e,providedIn:"root",factory:OC}),t})(),WN=(()=>{var e;class t{constructor(n){}}return(e=t).\u0275fac=function(n){return new(n||e)(F(Eo))},e.\u0275mod=Cn({type:e}),e.\u0275inj=Kt({}),t})();function Mo(e){return"boolean"==typeof e?e:null!=e&&"false"!==e}const ve_apiBaseUrl="https://www.palmmedia.de/api/";let af=null;function Yn(){return af}class aP{}const pt=new x("DocumentToken");let lf=(()=>{var e;class t{historyGo(n){throw new Error("Not implemented")}}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275prov=L({token:e,factory:function(){return A(cP)},providedIn:"platform"}),t})();const lP=new x("Location Initialized");let cP=(()=>{var e;class t extends lf{constructor(){super(),this._doc=A(pt),this._location=window.location,this._history=window.history}getBaseHrefFromDOM(){return Yn().getBaseHref(this._doc)}onPopState(n){const o=Yn().getGlobalEventTarget(this._doc,"window");return o.addEventListener("popstate",n,!1),()=>o.removeEventListener("popstate",n)}onHashChange(n){const o=Yn().getGlobalEventTarget(this._doc,"window");return o.addEventListener("hashchange",n,!1),()=>o.removeEventListener("hashchange",n)}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(n){this._location.pathname=n}pushState(n,o,i){this._history.pushState(n,o,i)}replaceState(n,o,i){this._history.replaceState(n,o,i)}forward(){this._history.forward()}back(){this._history.back()}historyGo(n=0){this._history.go(n)}getState(){return this._history.state}}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275prov=L({token:e,factory:function(){return new e},providedIn:"platform"}),t})();function cf(e,t){if(0==e.length)return t;if(0==t.length)return e;let r=0;return e.endsWith("/")&&r++,t.startsWith("/")&&r++,2==r?e+t.substring(1):1==r?e+t:e+"/"+t}function $C(e){const t=e.match(/#|\?|$/),r=t&&t.index||e.length;return e.slice(0,r-("/"===e[r-1]?1:0))+e.slice(r)}function Nn(e){return e&&"?"!==e[0]?"?"+e:e}let Cr=(()=>{var e;class t{historyGo(n){throw new Error("Not implemented")}}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275prov=L({token:e,factory:function(){return A(zC)},providedIn:"root"}),t})();const GC=new x("appBaseHref");let zC=(()=>{var e;class t extends Cr{constructor(n,o){super(),this._platformLocation=n,this._removeListenerFns=[],this._baseHref=o??this._platformLocation.getBaseHrefFromDOM()??A(pt).location?.origin??""}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(n){this._removeListenerFns.push(this._platformLocation.onPopState(n),this._platformLocation.onHashChange(n))}getBaseHref(){return this._baseHref}prepareExternalUrl(n){return cf(this._baseHref,n)}path(n=!1){const o=this._platformLocation.pathname+Nn(this._platformLocation.search),i=this._platformLocation.hash;return i&&n?`${o}${i}`:o}pushState(n,o,i,s){const a=this.prepareExternalUrl(i+Nn(s));this._platformLocation.pushState(n,o,a)}replaceState(n,o,i,s){const a=this.prepareExternalUrl(i+Nn(s));this._platformLocation.replaceState(n,o,a)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(n=0){this._platformLocation.historyGo?.(n)}}return(e=t).\u0275fac=function(n){return new(n||e)(F(lf),F(GC,8))},e.\u0275prov=L({token:e,factory:e.\u0275fac,providedIn:"root"}),t})(),uP=(()=>{var e;class t extends Cr{constructor(n,o){super(),this._platformLocation=n,this._baseHref="",this._removeListenerFns=[],null!=o&&(this._baseHref=o)}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(n){this._removeListenerFns.push(this._platformLocation.onPopState(n),this._platformLocation.onHashChange(n))}getBaseHref(){return this._baseHref}path(n=!1){let o=this._platformLocation.hash;return null==o&&(o="#"),o.length>0?o.substring(1):o}prepareExternalUrl(n){const o=cf(this._baseHref,n);return o.length>0?"#"+o:o}pushState(n,o,i,s){let a=this.prepareExternalUrl(i+Nn(s));0==a.length&&(a=this._platformLocation.pathname),this._platformLocation.pushState(n,o,a)}replaceState(n,o,i,s){let a=this.prepareExternalUrl(i+Nn(s));0==a.length&&(a=this._platformLocation.pathname),this._platformLocation.replaceState(n,o,a)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(n=0){this._platformLocation.historyGo?.(n)}}return(e=t).\u0275fac=function(n){return new(n||e)(F(lf),F(GC,8))},e.\u0275prov=L({token:e,factory:e.\u0275fac}),t})(),uf=(()=>{var e;class t{constructor(n){this._subject=new Ee,this._urlChangeListeners=[],this._urlChangeSubscription=null,this._locationStrategy=n;const o=this._locationStrategy.getBaseHref();this._basePath=function hP(e){if(new RegExp("^(https?:)?//").test(e)){const[,r]=e.split(/\/\/[^\/]+/);return r}return e}($C(qC(o))),this._locationStrategy.onPopState(i=>{this._subject.emit({url:this.path(!0),pop:!0,state:i.state,type:i.type})})}ngOnDestroy(){this._urlChangeSubscription?.unsubscribe(),this._urlChangeListeners=[]}path(n=!1){return this.normalize(this._locationStrategy.path(n))}getState(){return this._locationStrategy.getState()}isCurrentPathEqualTo(n,o=""){return this.path()==this.normalize(n+Nn(o))}normalize(n){return t.stripTrailingSlash(function fP(e,t){if(!e||!t.startsWith(e))return t;const r=t.substring(e.length);return""===r||["/",";","?","#"].includes(r[0])?r:t}(this._basePath,qC(n)))}prepareExternalUrl(n){return n&&"/"!==n[0]&&(n="/"+n),this._locationStrategy.prepareExternalUrl(n)}go(n,o="",i=null){this._locationStrategy.pushState(i,"",n,o),this._notifyUrlChangeListeners(this.prepareExternalUrl(n+Nn(o)),i)}replaceState(n,o="",i=null){this._locationStrategy.replaceState(i,"",n,o),this._notifyUrlChangeListeners(this.prepareExternalUrl(n+Nn(o)),i)}forward(){this._locationStrategy.forward()}back(){this._locationStrategy.back()}historyGo(n=0){this._locationStrategy.historyGo?.(n)}onUrlChange(n){return this._urlChangeListeners.push(n),this._urlChangeSubscription||(this._urlChangeSubscription=this.subscribe(o=>{this._notifyUrlChangeListeners(o.url,o.state)})),()=>{const o=this._urlChangeListeners.indexOf(n);this._urlChangeListeners.splice(o,1),0===this._urlChangeListeners.length&&(this._urlChangeSubscription?.unsubscribe(),this._urlChangeSubscription=null)}}_notifyUrlChangeListeners(n="",o){this._urlChangeListeners.forEach(i=>i(n,o))}subscribe(n,o,i){return this._subject.subscribe({next:n,error:o,complete:i})}}return(e=t).normalizeQueryParams=Nn,e.joinWithSlash=cf,e.stripTrailingSlash=$C,e.\u0275fac=function(n){return new(n||e)(F(Cr))},e.\u0275prov=L({token:e,factory:function(){return function dP(){return new uf(F(Cr))}()},providedIn:"root"}),t})();function qC(e){return e.replace(/\/index.html$/,"")}function tD(e,t){t=encodeURIComponent(t);for(const r of e.split(";")){const n=r.indexOf("="),[o,i]=-1==n?[r,""]:[r.slice(0,n),r.slice(n+1)];if(o.trim()===t)return decodeURIComponent(i)}return null}const Cf=/\s+/,nD=[];let pl=(()=>{var e;class t{constructor(n,o,i,s){this._iterableDiffers=n,this._keyValueDiffers=o,this._ngEl=i,this._renderer=s,this.initialClasses=nD,this.stateMap=new Map}set klass(n){this.initialClasses=null!=n?n.trim().split(Cf):nD}set ngClass(n){this.rawClass="string"==typeof n?n.trim().split(Cf):n}ngDoCheck(){for(const o of this.initialClasses)this._updateState(o,!0);const n=this.rawClass;if(Array.isArray(n)||n instanceof Set)for(const o of n)this._updateState(o,!0);else if(null!=n)for(const o of Object.keys(n))this._updateState(o,!!n[o]);this._applyStateDiff()}_updateState(n,o){const i=this.stateMap.get(n);void 0!==i?(i.enabled!==o&&(i.changed=!0,i.enabled=o),i.touched=!0):this.stateMap.set(n,{enabled:o,changed:!0,touched:!0})}_applyStateDiff(){for(const n of this.stateMap){const o=n[0],i=n[1];i.changed?(this._toggleClass(o,i.enabled),i.changed=!1):i.touched||(i.enabled&&this._toggleClass(o,!1),this.stateMap.delete(o)),i.touched=!1}}_toggleClass(n,o){(n=n.trim()).length>0&&n.split(Cf).forEach(i=>{o?this._renderer.addClass(this._ngEl.nativeElement,i):this._renderer.removeClass(this._ngEl.nativeElement,i)})}}return(e=t).\u0275fac=function(n){return new(n||e)(I(nl),I($i),I(bt),I(Mn))},e.\u0275dir=B({type:e,selectors:[["","ngClass",""]],inputs:{klass:["class","klass"],ngClass:"ngClass"},standalone:!0}),t})();class JP{constructor(t,r,n,o){this.$implicit=t,this.ngForOf=r,this.index=n,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 Df=(()=>{var e;class t{set ngForOf(n){this._ngForOf=n,this._ngForOfDirty=!0}set ngForTrackBy(n){this._trackByFn=n}get ngForTrackBy(){return this._trackByFn}constructor(n,o,i){this._viewContainer=n,this._template=o,this._differs=i,this._ngForOf=null,this._ngForOfDirty=!0,this._differ=null}set ngForTemplate(n){n&&(this._template=n)}ngDoCheck(){if(this._ngForOfDirty){this._ngForOfDirty=!1;const n=this._ngForOf;!this._differ&&n&&(this._differ=this._differs.find(n).create(this.ngForTrackBy))}if(this._differ){const n=this._differ.diff(this._ngForOf);n&&this._applyChanges(n)}}_applyChanges(n){const o=this._viewContainer;n.forEachOperation((i,s,a)=>{if(null==i.previousIndex)o.createEmbeddedView(this._template,new JP(i.item,this._ngForOf,-1,-1),null===a?void 0:a);else if(null==a)o.remove(null===s?void 0:s);else if(null!==s){const l=o.get(s);o.move(l,a),oD(l,i)}});for(let i=0,s=o.length;i{oD(o.get(i.currentIndex),i)})}static ngTemplateContextGuard(n,o){return!0}}return(e=t).\u0275fac=function(n){return new(n||e)(I(Wt),I(xn),I(nl))},e.\u0275dir=B({type:e,selectors:[["","ngFor","","ngForOf",""]],inputs:{ngForOf:"ngForOf",ngForTrackBy:"ngForTrackBy",ngForTemplate:"ngForTemplate"},standalone:!0}),t})();function oD(e,t){e.context.$implicit=t.item}let gl=(()=>{var e;class t{constructor(n,o){this._viewContainer=n,this._context=new KP,this._thenTemplateRef=null,this._elseTemplateRef=null,this._thenViewRef=null,this._elseViewRef=null,this._thenTemplateRef=o}set ngIf(n){this._context.$implicit=this._context.ngIf=n,this._updateView()}set ngIfThen(n){iD("ngIfThen",n),this._thenTemplateRef=n,this._thenViewRef=null,this._updateView()}set ngIfElse(n){iD("ngIfElse",n),this._elseTemplateRef=n,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(n,o){return!0}}return(e=t).\u0275fac=function(n){return new(n||e)(I(Wt),I(xn))},e.\u0275dir=B({type:e,selectors:[["","ngIf",""]],inputs:{ngIf:"ngIf",ngIfThen:"ngIfThen",ngIfElse:"ngIfElse"},standalone:!0}),t})();class KP{constructor(){this.$implicit=null,this.ngIf=null}}function iD(e,t){if(t&&!t.createEmbeddedView)throw new Error(`${e} must be a TemplateRef, but received '${ke(t)}'.`)}let EO=(()=>{var e;class t{}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275mod=Cn({type:e}),e.\u0275inj=Kt({}),t})();function cD(e){return"server"===e}let TO=(()=>{var e;class t{}return(e=t).\u0275prov=L({token:e,providedIn:"root",factory:()=>new AO(F(pt),window)}),t})();class AO{constructor(t,r){this.document=t,this.window=r,this.offset=()=>[0,0]}setOffset(t){this.offset=Array.isArray(t)?()=>t:t}getScrollPosition(){return this.supportsScrolling()?[this.window.pageXOffset,this.window.pageYOffset]:[0,0]}scrollToPosition(t){this.supportsScrolling()&&this.window.scrollTo(t[0],t[1])}scrollToAnchor(t){if(!this.supportsScrolling())return;const r=function xO(e,t){const r=e.getElementById(t)||e.getElementsByName(t)[0];if(r)return r;if("function"==typeof e.createTreeWalker&&e.body&&"function"==typeof e.body.attachShadow){const n=e.createTreeWalker(e.body,NodeFilter.SHOW_ELEMENT);let o=n.currentNode;for(;o;){const i=o.shadowRoot;if(i){const s=i.getElementById(t)||i.querySelector(`[name="${t}"]`);if(s)return s}o=n.nextNode()}}return null}(this.document,t);r&&(this.scrollToElement(r),r.focus())}setHistoryScrollRestoration(t){this.supportsScrolling()&&(this.window.history.scrollRestoration=t)}scrollToElement(t){const r=t.getBoundingClientRect(),n=r.left+this.window.pageXOffset,o=r.top+this.window.pageYOffset,i=this.offset();this.window.scrollTo(n-i[0],o-i[1])}supportsScrolling(){try{return!!this.window&&!!this.window.scrollTo&&"pageXOffset"in this.window}catch{return!1}}}class uD{}const{isArray:ek}=Array,{getPrototypeOf:tk,prototype:nk,keys:rk}=Object;function gD(e){if(1===e.length){const t=e[0];if(ek(t))return{args:t,keys:null};if(function ok(e){return e&&"object"==typeof e&&tk(e)===nk}(t)){const r=rk(t);return{args:r.map(n=>t[n]),keys:r}}}return{args:e,keys:null}}const{isArray:ik}=Array;function mD(e){return ee(t=>function sk(e,t){return ik(t)?e(...t):e(t)}(e,t))}function vD(e,t){return e.reduce((r,n,o)=>(r[n]=t[o],r),{})}function Tf(...e){const t=Wo(e),r=tp(e),{args:n,keys:o}=gD(e);if(0===n.length)return Ne([],t);const i=new Ie(function ak(e,t,r=Vn){return n=>{yD(t,()=>{const{length:o}=e,i=new Array(o);let s=o,a=o;for(let l=0;l{const c=Ne(e[l],t);let u=!1;c.subscribe(Re(n,d=>{i[l]=d,u||(u=!0,a--),a||n.next(r(i.slice()))},()=>{--s||n.complete()}))},n)},n)}}(n,t,o?s=>vD(o,s):Vn));return r?i.pipe(mD(r)):i}function yD(e,t,r){e?vn(r,e,t):t()}const yl=zo(e=>function(){e(this),this.name="EmptyError",this.message="no elements in sequence"});function Af(...e){return function lk(){return xr(1)}()(Ne(e,Wo(e)))}function _D(e){return new Ie(t=>{Vt(e()).subscribe(t)})}function Wi(e,t){const r=ue(e)?e:()=>e,n=o=>o.error(r());return new Ie(t?o=>t.schedule(n,0,o):n)}function xf(){return Oe((e,t)=>{let r=null;e._refCount++;const n=Re(t,void 0,void 0,void 0,()=>{if(!e||e._refCount<=0||0<--e._refCount)return void(r=null);const o=e._connection,i=r;r=null,o&&(!i||o===i)&&o.unsubscribe(),t.unsubscribe()});e.subscribe(n),n.closed||(r=e.connect())})}class CD extends Ie{constructor(t,r){super(),this.source=t,this.subjectFactory=r,this._subject=null,this._refCount=0,this._connection=null,Hh(t)&&(this.lift=t.lift)}_subscribe(t){return this.getSubject().subscribe(t)}getSubject(){const t=this._subject;return(!t||t.isStopped)&&(this._subject=this.subjectFactory()),this._subject}_teardown(){this._refCount=0;const{_connection:t}=this;this._subject=this._connection=null,t?.unsubscribe()}connect(){let t=this._connection;if(!t){t=this._connection=new gt;const r=this.getSubject();t.add(this.source.subscribe(Re(r,void 0,()=>{this._teardown(),r.complete()},n=>{this._teardown(),r.error(n)},()=>this._teardown()))),t.closed&&(this._connection=null,t=gt.EMPTY)}return t}refCount(){return xf()(this)}}function Qt(e,t){return Oe((r,n)=>{let o=0;r.subscribe(Re(n,i=>e.call(t,i,o++)&&n.next(i)))})}function _l(e){return Oe((t,r)=>{let n=!1;t.subscribe(Re(r,o=>{n=!0,r.next(o)},()=>{n||r.next(e),r.complete()}))})}function DD(e=uk){return Oe((t,r)=>{let n=!1;t.subscribe(Re(r,o=>{n=!0,r.next(o)},()=>n?r.complete():r.error(e())))})}function uk(){return new yl}function Dr(e,t){const r=arguments.length>=2;return n=>n.pipe(e?Qt((o,i)=>e(o,i,n)):Vn,ir(1),r?_l(t):DD(()=>new yl))}function So(e,t){return ue(t)?Ve(e,t,1):Ve(e,1)}function Ze(e,t,r){const n=ue(e)||t||r?{next:e,error:t,complete:r}:e;return n?Oe((o,i)=>{var s;null===(s=n.subscribe)||void 0===s||s.call(n);let a=!0;o.subscribe(Re(i,l=>{var c;null===(c=n.next)||void 0===c||c.call(n,l),i.next(l)},()=>{var l;a=!1,null===(l=n.complete)||void 0===l||l.call(n),i.complete()},l=>{var c;a=!1,null===(c=n.error)||void 0===c||c.call(n,l),i.error(l)},()=>{var l,c;a&&(null===(l=n.unsubscribe)||void 0===l||l.call(n)),null===(c=n.finalize)||void 0===c||c.call(n)}))}):Vn}function br(e){return Oe((t,r)=>{let i,n=null,o=!1;n=t.subscribe(Re(r,void 0,void 0,s=>{i=Vt(e(s,br(e)(t))),n?(n.unsubscribe(),n=null,i.subscribe(r)):o=!0})),o&&(n.unsubscribe(),n=null,i.subscribe(r))})}function Rf(e){return e<=0?()=>Jt:Oe((t,r)=>{let n=[];t.subscribe(Re(r,o=>{n.push(o),e{for(const o of n)r.next(o);r.complete()},void 0,()=>{n=null}))})}function Zi(e){return Oe((t,r)=>{try{t.subscribe(r)}finally{r.add(e)}})}class mk extends aP{constructor(){super(...arguments),this.supportsDOMEvents=!0}}class Nf extends mk{static makeCurrent(){!function sP(e){af||(af=e)}(new Nf)}onAndCancel(t,r,n){return t.addEventListener(r,n),()=>{t.removeEventListener(r,n)}}dispatchEvent(t,r){t.dispatchEvent(r)}remove(t){t.parentNode&&t.parentNode.removeChild(t)}createElement(t,r){return(r=r||this.getDefaultDocument()).createElement(t)}createHtmlDocument(){return document.implementation.createHTMLDocument("fakeTitle")}getDefaultDocument(){return document}isElementNode(t){return t.nodeType===Node.ELEMENT_NODE}isShadowRoot(t){return t instanceof DocumentFragment}getGlobalEventTarget(t,r){return"window"===r?window:"document"===r?t:"body"===r?t.body:null}getBaseHref(t){const r=function vk(){return Yi=Yi||document.querySelector("base"),Yi?Yi.getAttribute("href"):null}();return null==r?null:function yk(e){Cl=Cl||document.createElement("a"),Cl.setAttribute("href",e);const t=Cl.pathname;return"/"===t.charAt(0)?t:`/${t}`}(r)}resetBaseElement(){Yi=null}getUserAgent(){return window.navigator.userAgent}getCookie(t){return tD(document.cookie,t)}}let Cl,Yi=null,Ck=(()=>{var e;class t{build(){return new XMLHttpRequest}}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275prov=L({token:e,factory:e.\u0275fac}),t})();const Pf=new x("EventManagerPlugins");let bD=(()=>{var e;class t{constructor(n,o){this._zone=o,this._eventNameToPlugin=new Map,n.forEach(i=>{i.manager=this}),this._plugins=n.slice().reverse()}addEventListener(n,o,i){return this._findPluginFor(o).addEventListener(n,o,i)}getZone(){return this._zone}_findPluginFor(n){let o=this._eventNameToPlugin.get(n);if(o)return o;if(o=this._plugins.find(s=>s.supports(n)),!o)throw new S(5101,!1);return this._eventNameToPlugin.set(n,o),o}}return(e=t).\u0275fac=function(n){return new(n||e)(F(Pf),F(ge))},e.\u0275prov=L({token:e,factory:e.\u0275fac}),t})();class wD{constructor(t){this._doc=t}}const Of="ng-app-id";let ED=(()=>{var e;class t{constructor(n,o,i,s={}){this.doc=n,this.appId=o,this.nonce=i,this.platformId=s,this.styleRef=new Map,this.hostNodes=new Set,this.styleNodesInDOM=this.collectServerRenderedStyles(),this.platformIsServer=cD(s),this.resetHostNodes()}addStyles(n){for(const o of n)1===this.changeUsageCount(o,1)&&this.onStyleAdded(o)}removeStyles(n){for(const o of n)this.changeUsageCount(o,-1)<=0&&this.onStyleRemoved(o)}ngOnDestroy(){const n=this.styleNodesInDOM;n&&(n.forEach(o=>o.remove()),n.clear());for(const o of this.getAllStyles())this.onStyleRemoved(o);this.resetHostNodes()}addHost(n){this.hostNodes.add(n);for(const o of this.getAllStyles())this.addStyleToHost(n,o)}removeHost(n){this.hostNodes.delete(n)}getAllStyles(){return this.styleRef.keys()}onStyleAdded(n){for(const o of this.hostNodes)this.addStyleToHost(o,n)}onStyleRemoved(n){const o=this.styleRef;o.get(n)?.elements?.forEach(i=>i.remove()),o.delete(n)}collectServerRenderedStyles(){const n=this.doc.head?.querySelectorAll(`style[${Of}="${this.appId}"]`);if(n?.length){const o=new Map;return n.forEach(i=>{null!=i.textContent&&o.set(i.textContent,i)}),o}return null}changeUsageCount(n,o){const i=this.styleRef;if(i.has(n)){const s=i.get(n);return s.usage+=o,s.usage}return i.set(n,{usage:o,elements:[]}),o}getStyleElement(n,o){const i=this.styleNodesInDOM,s=i?.get(o);if(s?.parentNode===n)return i.delete(o),s.removeAttribute(Of),s;{const a=this.doc.createElement("style");return this.nonce&&a.setAttribute("nonce",this.nonce),a.textContent=o,this.platformIsServer&&a.setAttribute(Of,this.appId),a}}addStyleToHost(n,o){const i=this.getStyleElement(n,o);n.appendChild(i);const s=this.styleRef,a=s.get(o)?.elements;a?a.push(i):s.set(o,{elements:[i],usage:1})}resetHostNodes(){const n=this.hostNodes;n.clear(),n.add(this.doc.head)}}return(e=t).\u0275fac=function(n){return new(n||e)(F(pt),F(Ca),F(Im,8),F(hr))},e.\u0275prov=L({token:e,factory:e.\u0275fac}),t})();const kf={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/"},Ff=/%COMP%/g,Ek=new x("RemoveStylesOnCompDestroy",{providedIn:"root",factory:()=>!1});function ID(e,t){return t.map(r=>r.replace(Ff,e))}let SD=(()=>{var e;class t{constructor(n,o,i,s,a,l,c,u=null){this.eventManager=n,this.sharedStylesHost=o,this.appId=i,this.removeStylesOnCompDestroy=s,this.doc=a,this.platformId=l,this.ngZone=c,this.nonce=u,this.rendererByCompId=new Map,this.platformIsServer=cD(l),this.defaultRenderer=new Lf(n,a,c,this.platformIsServer)}createRenderer(n,o){if(!n||!o)return this.defaultRenderer;this.platformIsServer&&o.encapsulation===Ht.ShadowDom&&(o={...o,encapsulation:Ht.Emulated});const i=this.getOrCreateRenderer(n,o);return i instanceof AD?i.applyToHost(n):i instanceof Vf&&i.applyStyles(),i}getOrCreateRenderer(n,o){const i=this.rendererByCompId;let s=i.get(o.id);if(!s){const a=this.doc,l=this.ngZone,c=this.eventManager,u=this.sharedStylesHost,d=this.removeStylesOnCompDestroy,g=this.platformIsServer;switch(o.encapsulation){case Ht.Emulated:s=new AD(c,u,o,this.appId,d,a,l,g);break;case Ht.ShadowDom:return new Tk(c,u,n,o,a,l,this.nonce,g);default:s=new Vf(c,u,o,d,a,l,g)}i.set(o.id,s)}return s}ngOnDestroy(){this.rendererByCompId.clear()}}return(e=t).\u0275fac=function(n){return new(n||e)(F(bD),F(ED),F(Ca),F(Ek),F(pt),F(hr),F(ge),F(Im))},e.\u0275prov=L({token:e,factory:e.\u0275fac}),t})();class Lf{constructor(t,r,n,o){this.eventManager=t,this.doc=r,this.ngZone=n,this.platformIsServer=o,this.data=Object.create(null),this.destroyNode=null}destroy(){}createElement(t,r){return r?this.doc.createElementNS(kf[r]||r,t):this.doc.createElement(t)}createComment(t){return this.doc.createComment(t)}createText(t){return this.doc.createTextNode(t)}appendChild(t,r){(TD(t)?t.content:t).appendChild(r)}insertBefore(t,r,n){t&&(TD(t)?t.content:t).insertBefore(r,n)}removeChild(t,r){t&&t.removeChild(r)}selectRootElement(t,r){let n="string"==typeof t?this.doc.querySelector(t):t;if(!n)throw new S(-5104,!1);return r||(n.textContent=""),n}parentNode(t){return t.parentNode}nextSibling(t){return t.nextSibling}setAttribute(t,r,n,o){if(o){r=o+":"+r;const i=kf[o];i?t.setAttributeNS(i,r,n):t.setAttribute(r,n)}else t.setAttribute(r,n)}removeAttribute(t,r,n){if(n){const o=kf[n];o?t.removeAttributeNS(o,r):t.removeAttribute(`${n}:${r}`)}else t.removeAttribute(r)}addClass(t,r){t.classList.add(r)}removeClass(t,r){t.classList.remove(r)}setStyle(t,r,n,o){o&(zn.DashCase|zn.Important)?t.style.setProperty(r,n,o&zn.Important?"important":""):t.style[r]=n}removeStyle(t,r,n){n&zn.DashCase?t.style.removeProperty(r):t.style[r]=""}setProperty(t,r,n){t[r]=n}setValue(t,r){t.nodeValue=r}listen(t,r,n){if("string"==typeof t&&!(t=Yn().getGlobalEventTarget(this.doc,t)))throw new Error(`Unsupported event target ${t} for event ${r}`);return this.eventManager.addEventListener(t,r,this.decoratePreventDefault(n))}decoratePreventDefault(t){return r=>{if("__ngUnwrap__"===r)return t;!1===(this.platformIsServer?this.ngZone.runGuarded(()=>t(r)):t(r))&&r.preventDefault()}}}function TD(e){return"TEMPLATE"===e.tagName&&void 0!==e.content}class Tk extends Lf{constructor(t,r,n,o,i,s,a,l){super(t,i,s,l),this.sharedStylesHost=r,this.hostEl=n,this.shadowRoot=n.attachShadow({mode:"open"}),this.sharedStylesHost.addHost(this.shadowRoot);const c=ID(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(t){return t===this.hostEl?this.shadowRoot:t}appendChild(t,r){return super.appendChild(this.nodeOrShadowRoot(t),r)}insertBefore(t,r,n){return super.insertBefore(this.nodeOrShadowRoot(t),r,n)}removeChild(t,r){return super.removeChild(this.nodeOrShadowRoot(t),r)}parentNode(t){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(t)))}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}}class Vf extends Lf{constructor(t,r,n,o,i,s,a,l){super(t,i,s,a),this.sharedStylesHost=r,this.removeStylesOnCompDestroy=o,this.styles=l?ID(l,n.styles):n.styles}applyStyles(){this.sharedStylesHost.addStyles(this.styles)}destroy(){this.removeStylesOnCompDestroy&&this.sharedStylesHost.removeStyles(this.styles)}}class AD extends Vf{constructor(t,r,n,o,i,s,a,l){const c=o+"-"+n.id;super(t,r,n,i,s,a,l,c),this.contentAttr=function Mk(e){return"_ngcontent-%COMP%".replace(Ff,e)}(c),this.hostAttr=function Ik(e){return"_nghost-%COMP%".replace(Ff,e)}(c)}applyToHost(t){this.applyStyles(),this.setAttribute(t,this.hostAttr,"")}createElement(t,r){const n=super.createElement(t,r);return super.setAttribute(n,this.contentAttr,""),n}}let Ak=(()=>{var e;class t extends wD{constructor(n){super(n)}supports(n){return!0}addEventListener(n,o,i){return n.addEventListener(o,i,!1),()=>this.removeEventListener(n,o,i)}removeEventListener(n,o,i){return n.removeEventListener(o,i)}}return(e=t).\u0275fac=function(n){return new(n||e)(F(pt))},e.\u0275prov=L({token:e,factory:e.\u0275fac}),t})();const xD=["alt","control","meta","shift"],xk={"\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"},Rk={alt:e=>e.altKey,control:e=>e.ctrlKey,meta:e=>e.metaKey,shift:e=>e.shiftKey};let Nk=(()=>{var e;class t extends wD{constructor(n){super(n)}supports(n){return null!=t.parseEventName(n)}addEventListener(n,o,i){const s=t.parseEventName(o),a=t.eventCallback(s.fullKey,i,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>Yn().onAndCancel(n,s.domEventName,a))}static parseEventName(n){const o=n.toLowerCase().split("."),i=o.shift();if(0===o.length||"keydown"!==i&&"keyup"!==i)return null;const s=t._normalizeKey(o.pop());let a="",l=o.indexOf("code");if(l>-1&&(o.splice(l,1),a="code."),xD.forEach(u=>{const d=o.indexOf(u);d>-1&&(o.splice(d,1),a+=u+".")}),a+=s,0!=o.length||0===s.length)return null;const c={};return c.domEventName=i,c.fullKey=a,c}static matchEventFullKeyCode(n,o){let i=xk[n.key]||n.key,s="";return o.indexOf("code.")>-1&&(i=n.code,s="code."),!(null==i||!i)&&(i=i.toLowerCase()," "===i?i="space":"."===i&&(i="dot"),xD.forEach(a=>{a!==i&&(0,Rk[a])(n)&&(s+=a+".")}),s+=i,s===o)}static eventCallback(n,o,i){return s=>{t.matchEventFullKeyCode(s,n)&&i.runGuarded(()=>o(s))}}static _normalizeKey(n){return"esc"===n?"escape":n}}return(e=t).\u0275fac=function(n){return new(n||e)(F(pt))},e.\u0275prov=L({token:e,factory:e.\u0275fac}),t})();function RD(e){return{appProviders:[...PD,...e?.providers??[]],platformProviders:Lk}}const Lk=[{provide:hr,useValue:"browser"},{provide:Mm,useValue:function Ok(){Nf.makeCurrent()},multi:!0},{provide:pt,useFactory:function Fk(){return function rI(e){Du=e}(document),document},deps:[]}],Vk=new x(""),ND=[{provide:Xa,useClass:class _k{addToWindow(t){de.getAngularTestability=(n,o=!0)=>{const i=t.findTestabilityInTree(n,o);if(null==i)throw new S(5103,!1);return i},de.getAllAngularTestabilities=()=>t.getAllTestabilities(),de.getAllAngularRootElements=()=>t.getAllRootElements(),de.frameworkStabilizers||(de.frameworkStabilizers=[]),de.frameworkStabilizers.push(n=>{const o=de.getAllAngularTestabilities();let i=o.length,s=!1;const a=function(l){s=s||l,i--,0==i&&n(s)};o.forEach(l=>{l.whenStable(a)})})}findTestabilityInTree(t,r,n){return null==r?null:t.getTestability(r)??(n?Yn().isShadowRoot(r)?this.findTestabilityInTree(t,r.host,!0):this.findTestabilityInTree(t,r.parentElement,!0):null)}},deps:[]},{provide:hC,useClass:Zd,deps:[ge,Yd,Xa]},{provide:Zd,useClass:Zd,deps:[ge,Yd,Xa]}],PD=[{provide:Ru,useValue:"root"},{provide:pr,useFactory:function kk(){return new pr},deps:[]},{provide:Pf,useClass:Ak,multi:!0,deps:[pt,ge,hr]},{provide:Pf,useClass:Nk,multi:!0,deps:[pt]},SD,ED,bD,{provide:Nm,useExisting:SD},{provide:uD,useClass:Ck,deps:[]},[]];let jk=(()=>{var e;class t{constructor(n){}static withServerTransition(n){return{ngModule:t,providers:[{provide:Ca,useValue:n.appId}]}}}return(e=t).\u0275fac=function(n){return new(n||e)(F(Vk,12))},e.\u0275mod=Cn({type:e}),e.\u0275inj=Kt({providers:[...PD,...ND],imports:[EO,WN]}),t})(),OD=(()=>{var e;class t{constructor(n){this._doc=n}getTitle(){return this._doc.title}setTitle(n){this._doc.title=n||""}}return(e=t).\u0275fac=function(n){return new(n||e)(F(pt))},e.\u0275prov=L({token:e,factory:function(n){let o=null;return o=n?new n:function Uk(){return new OD(F(pt))}(),o},providedIn:"root"}),t})();typeof window<"u"&&window;const W="primary",Qi=Symbol("RouteTitle");class qk{constructor(t){this.params=t||{}}has(t){return Object.prototype.hasOwnProperty.call(this.params,t)}get(t){if(this.has(t)){const r=this.params[t];return Array.isArray(r)?r[0]:r}return null}getAll(t){if(this.has(t)){const r=this.params[t];return Array.isArray(r)?r:[r]}return[]}get keys(){return Object.keys(this.params)}}function To(e){return new qk(e)}function Wk(e,t,r){const n=r.path.split("/");if(n.length>e.length||"full"===r.pathMatch&&(t.hasChildren()||n.lengthn[i]===o)}return e===t}function jD(e){return e.length>0?e[e.length-1]:null}function Xn(e){return function KO(e){return!!e&&(e instanceof Ie||ue(e.lift)&&ue(e.subscribe))}(e)?e:Ri(e)?Ne(Promise.resolve(e)):V(e)}const Yk={exact:function BD(e,t,r){if(!wr(e.segments,t.segments)||!Dl(e.segments,t.segments,r)||e.numberOfChildren!==t.numberOfChildren)return!1;for(const n in t.children)if(!e.children[n]||!BD(e.children[n],t.children[n],r))return!1;return!0},subset:$D},HD={exact:function Qk(e,t){return fn(e,t)},subset:function Xk(e,t){return Object.keys(t).length<=Object.keys(e).length&&Object.keys(t).every(r=>VD(e[r],t[r]))},ignored:()=>!0};function UD(e,t,r){return Yk[r.paths](e.root,t.root,r.matrixParams)&&HD[r.queryParams](e.queryParams,t.queryParams)&&!("exact"===r.fragment&&e.fragment!==t.fragment)}function $D(e,t,r){return GD(e,t,t.segments,r)}function GD(e,t,r,n){if(e.segments.length>r.length){const o=e.segments.slice(0,r.length);return!(!wr(o,r)||t.hasChildren()||!Dl(o,r,n))}if(e.segments.length===r.length){if(!wr(e.segments,r)||!Dl(e.segments,r,n))return!1;for(const o in t.children)if(!e.children[o]||!$D(e.children[o],t.children[o],n))return!1;return!0}{const o=r.slice(0,e.segments.length),i=r.slice(e.segments.length);return!!(wr(e.segments,o)&&Dl(e.segments,o,n)&&e.children[W])&&GD(e.children[W],t,i,n)}}function Dl(e,t,r){return t.every((n,o)=>HD[r](e[o].parameters,n.parameters))}class Ao{constructor(t=new ce([],{}),r={},n=null){this.root=t,this.queryParams=r,this.fragment=n}get queryParamMap(){return this._queryParamMap||(this._queryParamMap=To(this.queryParams)),this._queryParamMap}toString(){return eF.serialize(this)}}class ce{constructor(t,r){this.segments=t,this.children=r,this.parent=null,Object.values(r).forEach(n=>n.parent=this)}hasChildren(){return this.numberOfChildren>0}get numberOfChildren(){return Object.keys(this.children).length}toString(){return bl(this)}}class Xi{constructor(t,r){this.path=t,this.parameters=r}get parameterMap(){return this._parameterMap||(this._parameterMap=To(this.parameters)),this._parameterMap}toString(){return WD(this)}}function wr(e,t){return e.length===t.length&&e.every((r,n)=>r.path===t[n].path)}let Ji=(()=>{var e;class t{}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275prov=L({token:e,factory:function(){return new Hf},providedIn:"root"}),t})();class Hf{parse(t){const r=new dF(t);return new Ao(r.parseRootSegment(),r.parseQueryParams(),r.parseFragment())}serialize(t){const r=`/${Ki(t.root,!0)}`,n=function rF(e){const t=Object.keys(e).map(r=>{const n=e[r];return Array.isArray(n)?n.map(o=>`${wl(r)}=${wl(o)}`).join("&"):`${wl(r)}=${wl(n)}`}).filter(r=>!!r);return t.length?`?${t.join("&")}`:""}(t.queryParams);return`${r}${n}${"string"==typeof t.fragment?`#${function tF(e){return encodeURI(e)}(t.fragment)}`:""}`}}const eF=new Hf;function bl(e){return e.segments.map(t=>WD(t)).join("/")}function Ki(e,t){if(!e.hasChildren())return bl(e);if(t){const r=e.children[W]?Ki(e.children[W],!1):"",n=[];return Object.entries(e.children).forEach(([o,i])=>{o!==W&&n.push(`${o}:${Ki(i,!1)}`)}),n.length>0?`${r}(${n.join("//")})`:r}{const r=function Kk(e,t){let r=[];return Object.entries(e.children).forEach(([n,o])=>{n===W&&(r=r.concat(t(o,n)))}),Object.entries(e.children).forEach(([n,o])=>{n!==W&&(r=r.concat(t(o,n)))}),r}(e,(n,o)=>o===W?[Ki(e.children[W],!1)]:[`${o}:${Ki(n,!1)}`]);return 1===Object.keys(e.children).length&&null!=e.children[W]?`${bl(e)}/${r[0]}`:`${bl(e)}/(${r.join("//")})`}}function zD(e){return encodeURIComponent(e).replace(/%40/g,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",")}function wl(e){return zD(e).replace(/%3B/gi,";")}function Uf(e){return zD(e).replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/%26/gi,"&")}function El(e){return decodeURIComponent(e)}function qD(e){return El(e.replace(/\+/g,"%20"))}function WD(e){return`${Uf(e.path)}${function nF(e){return Object.keys(e).map(t=>`;${Uf(t)}=${Uf(e[t])}`).join("")}(e.parameters)}`}const oF=/^[^\/()?;#]+/;function Bf(e){const t=e.match(oF);return t?t[0]:""}const iF=/^[^\/()?;=#]+/,aF=/^[^=?&#]+/,cF=/^[^&#]+/;class dF{constructor(t){this.url=t,this.remaining=t}parseRootSegment(){return this.consumeOptional("/"),""===this.remaining||this.peekStartsWith("?")||this.peekStartsWith("#")?new ce([],{}):new ce([],this.parseChildren())}parseQueryParams(){const t={};if(this.consumeOptional("?"))do{this.parseQueryParam(t)}while(this.consumeOptional("&"));return t}parseFragment(){return this.consumeOptional("#")?decodeURIComponent(this.remaining):null}parseChildren(){if(""===this.remaining)return{};this.consumeOptional("/");const t=[];for(this.peekStartsWith("(")||t.push(this.parseSegment());this.peekStartsWith("/")&&!this.peekStartsWith("//")&&!this.peekStartsWith("/(");)this.capture("/"),t.push(this.parseSegment());let r={};this.peekStartsWith("/(")&&(this.capture("/"),r=this.parseParens(!0));let n={};return this.peekStartsWith("(")&&(n=this.parseParens(!1)),(t.length>0||Object.keys(r).length>0)&&(n[W]=new ce(t,r)),n}parseSegment(){const t=Bf(this.remaining);if(""===t&&this.peekStartsWith(";"))throw new S(4009,!1);return this.capture(t),new Xi(El(t),this.parseMatrixParams())}parseMatrixParams(){const t={};for(;this.consumeOptional(";");)this.parseParam(t);return t}parseParam(t){const r=function sF(e){const t=e.match(iF);return t?t[0]:""}(this.remaining);if(!r)return;this.capture(r);let n="";if(this.consumeOptional("=")){const o=Bf(this.remaining);o&&(n=o,this.capture(n))}t[El(r)]=El(n)}parseQueryParam(t){const r=function lF(e){const t=e.match(aF);return t?t[0]:""}(this.remaining);if(!r)return;this.capture(r);let n="";if(this.consumeOptional("=")){const s=function uF(e){const t=e.match(cF);return t?t[0]:""}(this.remaining);s&&(n=s,this.capture(n))}const o=qD(r),i=qD(n);if(t.hasOwnProperty(o)){let s=t[o];Array.isArray(s)||(s=[s],t[o]=s),s.push(i)}else t[o]=i}parseParens(t){const r={};for(this.capture("(");!this.consumeOptional(")")&&this.remaining.length>0;){const n=Bf(this.remaining),o=this.remaining[n.length];if("/"!==o&&")"!==o&&";"!==o)throw new S(4010,!1);let i;n.indexOf(":")>-1?(i=n.slice(0,n.indexOf(":")),this.capture(i),this.capture(":")):t&&(i=W);const s=this.parseChildren();r[i]=1===Object.keys(s).length?s[W]:new ce([],s),this.consumeOptional("//")}return r}peekStartsWith(t){return this.remaining.startsWith(t)}consumeOptional(t){return!!this.peekStartsWith(t)&&(this.remaining=this.remaining.substring(t.length),!0)}capture(t){if(!this.consumeOptional(t))throw new S(4011,!1)}}function ZD(e){return e.segments.length>0?new ce([],{[W]:e}):e}function YD(e){const t={};for(const n of Object.keys(e.children)){const i=YD(e.children[n]);if(n===W&&0===i.segments.length&&i.hasChildren())for(const[s,a]of Object.entries(i.children))t[s]=a;else(i.segments.length>0||i.hasChildren())&&(t[n]=i)}return function fF(e){if(1===e.numberOfChildren&&e.children[W]){const t=e.children[W];return new ce(e.segments.concat(t.segments),t.children)}return e}(new ce(e.segments,t))}function Er(e){return e instanceof Ao}function QD(e){let t;const o=ZD(function r(i){const s={};for(const l of i.children){const c=r(l);s[l.outlet]=c}const a=new ce(i.url,s);return i===e&&(t=a),a}(e.root));return t??o}function XD(e,t,r,n){let o=e;for(;o.parent;)o=o.parent;if(0===t.length)return $f(o,o,o,r,n);const i=function pF(e){if("string"==typeof e[0]&&1===e.length&&"/"===e[0])return new KD(!0,0,e);let t=0,r=!1;const n=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?r=!0:".."===a?t++:""!=a&&o.push(a))}),o):[...o,i]},[]);return new KD(r,t,n)}(t);if(i.toRoot())return $f(o,o,new ce([],{}),r,n);const s=function gF(e,t,r){if(e.isAbsolute)return new Il(t,!0,0);if(!r)return new Il(t,!1,NaN);if(null===r.parent)return new Il(r,!0,0);const n=Ml(e.commands[0])?0:1;return function mF(e,t,r){let n=e,o=t,i=r;for(;i>o;){if(i-=o,n=n.parent,!n)throw new S(4005,!1);o=n.segments.length}return new Il(n,!1,o-i)}(r,r.segments.length-1+n,e.numberOfDoubleDots)}(i,o,e),a=s.processChildren?ts(s.segmentGroup,s.index,i.commands):eb(s.segmentGroup,s.index,i.commands);return $f(o,s.segmentGroup,a,r,n)}function Ml(e){return"object"==typeof e&&null!=e&&!e.outlets&&!e.segmentPath}function es(e){return"object"==typeof e&&null!=e&&e.outlets}function $f(e,t,r,n,o){let s,i={};n&&Object.entries(n).forEach(([l,c])=>{i[l]=Array.isArray(c)?c.map(u=>`${u}`):`${c}`}),s=e===t?r:JD(e,t,r);const a=ZD(YD(s));return new Ao(a,i,o)}function JD(e,t,r){const n={};return Object.entries(e.children).forEach(([o,i])=>{n[o]=i===t?r:JD(i,t,r)}),new ce(e.segments,n)}class KD{constructor(t,r,n){if(this.isAbsolute=t,this.numberOfDoubleDots=r,this.commands=n,t&&n.length>0&&Ml(n[0]))throw new S(4003,!1);const o=n.find(es);if(o&&o!==jD(n))throw new S(4004,!1)}toRoot(){return this.isAbsolute&&1===this.commands.length&&"/"==this.commands[0]}}class Il{constructor(t,r,n){this.segmentGroup=t,this.processChildren=r,this.index=n}}function eb(e,t,r){if(e||(e=new ce([],{})),0===e.segments.length&&e.hasChildren())return ts(e,t,r);const n=function yF(e,t,r){let n=0,o=t;const i={match:!1,pathIndex:0,commandIndex:0};for(;o=r.length)return i;const s=e.segments[o],a=r[n];if(es(a))break;const l=`${a}`,c=n0&&void 0===l)break;if(l&&c&&"object"==typeof c&&void 0===c.outlets){if(!nb(l,c,s))return i;n+=2}else{if(!nb(l,{},s))return i;n++}o++}return{match:!0,pathIndex:o,commandIndex:n}}(e,t,r),o=r.slice(n.commandIndex);if(n.match&&n.pathIndexi!==W)&&e.children[W]&&1===e.numberOfChildren&&0===e.children[W].segments.length){const i=ts(e.children[W],t,r);return new ce(e.segments,i.children)}return Object.entries(n).forEach(([i,s])=>{"string"==typeof s&&(s=[s]),null!==s&&(o[i]=eb(e.children[i],t,s))}),Object.entries(e.children).forEach(([i,s])=>{void 0===n[i]&&(o[i]=s)}),new ce(e.segments,o)}}function Gf(e,t,r){const n=e.segments.slice(0,t);let o=0;for(;o{"string"==typeof n&&(n=[n]),null!==n&&(t[r]=Gf(new ce([],{}),0,n))}),t}function tb(e){const t={};return Object.entries(e).forEach(([r,n])=>t[r]=`${n}`),t}function nb(e,t,r){return e==r.path&&fn(t,r.parameters)}const ns="imperative";class hn{constructor(t,r){this.id=t,this.url=r}}class Sl extends hn{constructor(t,r,n="imperative",o=null){super(t,r),this.type=0,this.navigationTrigger=n,this.restoredState=o}toString(){return`NavigationStart(id: ${this.id}, url: '${this.url}')`}}class kn extends hn{constructor(t,r,n){super(t,r),this.urlAfterRedirects=n,this.type=1}toString(){return`NavigationEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}')`}}class rs extends hn{constructor(t,r,n,o){super(t,r),this.reason=n,this.code=o,this.type=2}toString(){return`NavigationCancel(id: ${this.id}, url: '${this.url}')`}}class xo extends hn{constructor(t,r,n,o){super(t,r),this.reason=n,this.code=o,this.type=16}}class Tl extends hn{constructor(t,r,n,o){super(t,r),this.error=n,this.target=o,this.type=3}toString(){return`NavigationError(id: ${this.id}, url: '${this.url}', error: ${this.error})`}}class rb extends hn{constructor(t,r,n,o){super(t,r),this.urlAfterRedirects=n,this.state=o,this.type=4}toString(){return`RoutesRecognized(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class CF extends hn{constructor(t,r,n,o){super(t,r),this.urlAfterRedirects=n,this.state=o,this.type=7}toString(){return`GuardsCheckStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class DF extends hn{constructor(t,r,n,o,i){super(t,r),this.urlAfterRedirects=n,this.state=o,this.shouldActivate=i,this.type=8}toString(){return`GuardsCheckEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state}, shouldActivate: ${this.shouldActivate})`}}class bF extends hn{constructor(t,r,n,o){super(t,r),this.urlAfterRedirects=n,this.state=o,this.type=5}toString(){return`ResolveStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class wF extends hn{constructor(t,r,n,o){super(t,r),this.urlAfterRedirects=n,this.state=o,this.type=6}toString(){return`ResolveEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class EF{constructor(t){this.route=t,this.type=9}toString(){return`RouteConfigLoadStart(path: ${this.route.path})`}}class MF{constructor(t){this.route=t,this.type=10}toString(){return`RouteConfigLoadEnd(path: ${this.route.path})`}}class IF{constructor(t){this.snapshot=t,this.type=11}toString(){return`ChildActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class SF{constructor(t){this.snapshot=t,this.type=12}toString(){return`ChildActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class TF{constructor(t){this.snapshot=t,this.type=13}toString(){return`ActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class AF{constructor(t){this.snapshot=t,this.type=14}toString(){return`ActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class ob{constructor(t,r,n){this.routerEvent=t,this.position=r,this.anchor=n,this.type=15}toString(){return`Scroll(anchor: '${this.anchor}', position: '${this.position?`${this.position[0]}, ${this.position[1]}`:null}')`}}class zf{}class qf{constructor(t){this.url=t}}class xF{constructor(){this.outlet=null,this.route=null,this.injector=null,this.children=new os,this.attachRef=null}}let os=(()=>{var e;class t{constructor(){this.contexts=new Map}onChildOutletCreated(n,o){const i=this.getOrCreateContext(n);i.outlet=o,this.contexts.set(n,i)}onChildOutletDestroyed(n){const o=this.getContext(n);o&&(o.outlet=null,o.attachRef=null)}onOutletDeactivated(){const n=this.contexts;return this.contexts=new Map,n}onOutletReAttached(n){this.contexts=n}getOrCreateContext(n){let o=this.getContext(n);return o||(o=new xF,this.contexts.set(n,o)),o}getContext(n){return this.contexts.get(n)||null}}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275prov=L({token:e,factory:e.\u0275fac,providedIn:"root"}),t})();class ib{constructor(t){this._root=t}get root(){return this._root.value}parent(t){const r=this.pathFromRoot(t);return r.length>1?r[r.length-2]:null}children(t){const r=Wf(t,this._root);return r?r.children.map(n=>n.value):[]}firstChild(t){const r=Wf(t,this._root);return r&&r.children.length>0?r.children[0].value:null}siblings(t){const r=Zf(t,this._root);return r.length<2?[]:r[r.length-2].children.map(o=>o.value).filter(o=>o!==t)}pathFromRoot(t){return Zf(t,this._root).map(r=>r.value)}}function Wf(e,t){if(e===t.value)return t;for(const r of t.children){const n=Wf(e,r);if(n)return n}return null}function Zf(e,t){if(e===t.value)return[t];for(const r of t.children){const n=Zf(e,r);if(n.length)return n.unshift(t),n}return[]}class Fn{constructor(t,r){this.value=t,this.children=r}toString(){return`TreeNode(${this.value})`}}function Ro(e){const t={};return e&&e.children.forEach(r=>t[r.value.outlet]=r),t}class sb extends ib{constructor(t,r){super(t),this.snapshot=r,Yf(this,t)}toString(){return this.snapshot.toString()}}function ab(e,t){const r=function RF(e,t){const s=new Al([],{},{},"",{},W,t,null,{});return new cb("",new Fn(s,[]))}(0,t),n=new At([new Xi("",{})]),o=new At({}),i=new At({}),s=new At({}),a=new At(""),l=new Mr(n,o,s,a,i,W,t,r.root);return l.snapshot=r.root,new sb(new Fn(l,[]),r)}class Mr{constructor(t,r,n,o,i,s,a,l){this.urlSubject=t,this.paramsSubject=r,this.queryParamsSubject=n,this.fragmentSubject=o,this.dataSubject=i,this.outlet=s,this.component=a,this._futureSnapshot=l,this.title=this.dataSubject?.pipe(ee(c=>c[Qi]))??V(void 0),this.url=t,this.params=r,this.queryParams=n,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._paramMap=this.params.pipe(ee(t=>To(t)))),this._paramMap}get queryParamMap(){return this._queryParamMap||(this._queryParamMap=this.queryParams.pipe(ee(t=>To(t)))),this._queryParamMap}toString(){return this.snapshot?this.snapshot.toString():`Future(${this._futureSnapshot})`}}function lb(e,t="emptyOnly"){const r=e.pathFromRoot;let n=0;if("always"!==t)for(n=r.length-1;n>=1;){const o=r[n],i=r[n-1];if(o.routeConfig&&""===o.routeConfig.path)n--;else{if(i.component)break;n--}}return function NF(e){return e.reduce((t,r)=>({params:{...t.params,...r.params},data:{...t.data,...r.data},resolve:{...r.data,...t.resolve,...r.routeConfig?.data,...r._resolvedData}}),{params:{},data:{},resolve:{}})}(r.slice(n))}class Al{get title(){return this.data?.[Qi]}constructor(t,r,n,o,i,s,a,l,c){this.url=t,this.params=r,this.queryParams=n,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||(this._paramMap=To(this.params)),this._paramMap}get queryParamMap(){return this._queryParamMap||(this._queryParamMap=To(this.queryParams)),this._queryParamMap}toString(){return`Route(url:'${this.url.map(n=>n.toString()).join("/")}', path:'${this.routeConfig?this.routeConfig.path:""}')`}}class cb extends ib{constructor(t,r){super(r),this.url=t,Yf(this,r)}toString(){return ub(this._root)}}function Yf(e,t){t.value._routerState=e,t.children.forEach(r=>Yf(e,r))}function ub(e){const t=e.children.length>0?` { ${e.children.map(ub).join(", ")} } `:"";return`${e.value}${t}`}function Qf(e){if(e.snapshot){const t=e.snapshot,r=e._futureSnapshot;e.snapshot=r,fn(t.queryParams,r.queryParams)||e.queryParamsSubject.next(r.queryParams),t.fragment!==r.fragment&&e.fragmentSubject.next(r.fragment),fn(t.params,r.params)||e.paramsSubject.next(r.params),function Zk(e,t){if(e.length!==t.length)return!1;for(let r=0;rfn(r.parameters,t[n].parameters))}(e.url,t.url);return r&&!(!e.parent!=!t.parent)&&(!e.parent||Xf(e.parent,t.parent))}let Jf=(()=>{var e;class t{constructor(){this.activated=null,this._activatedRoute=null,this.name=W,this.activateEvents=new Ee,this.deactivateEvents=new Ee,this.attachEvents=new Ee,this.detachEvents=new Ee,this.parentContexts=A(os),this.location=A(Wt),this.changeDetector=A(Ka),this.environmentInjector=A(Dt),this.inputBinder=A(xl,{optional:!0}),this.supportsBindingToComponentInputs=!0}get activatedComponentRef(){return this.activated}ngOnChanges(n){if(n.name){const{firstChange:o,previousValue:i}=n.name;if(o)return;this.isTrackedInParentContexts(i)&&(this.deactivate(),this.parentContexts.onChildOutletDestroyed(i)),this.initializeOutletWithName()}}ngOnDestroy(){this.isTrackedInParentContexts(this.name)&&this.parentContexts.onChildOutletDestroyed(this.name),this.inputBinder?.unsubscribeFromRouteData(this)}isTrackedInParentContexts(n){return this.parentContexts.getContext(n)?.outlet===this}ngOnInit(){this.initializeOutletWithName()}initializeOutletWithName(){if(this.parentContexts.onChildOutletCreated(this.name,this),this.activated)return;const n=this.parentContexts.getContext(this.name);n?.route&&(n.attachRef?this.attach(n.attachRef,n.route):this.activateWith(n.route,n.injector))}get isActivated(){return!!this.activated}get component(){if(!this.activated)throw new S(4012,!1);return this.activated.instance}get activatedRoute(){if(!this.activated)throw new S(4012,!1);return this._activatedRoute}get activatedRouteData(){return this._activatedRoute?this._activatedRoute.snapshot.data:{}}detach(){if(!this.activated)throw new S(4012,!1);this.location.detach();const n=this.activated;return this.activated=null,this._activatedRoute=null,this.detachEvents.emit(n.instance),n}attach(n,o){this.activated=n,this._activatedRoute=o,this.location.insert(n.hostView),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.attachEvents.emit(n.instance)}deactivate(){if(this.activated){const n=this.component;this.activated.destroy(),this.activated=null,this._activatedRoute=null,this.deactivateEvents.emit(n)}}activateWith(n,o){if(this.isActivated)throw new S(4013,!1);this._activatedRoute=n;const i=this.location,a=n.snapshot.component,l=this.parentContexts.getOrCreateContext(this.name).children,c=new PF(n,l,i.injector);this.activated=i.createComponent(a,{index:i.length,injector:c,environmentInjector:o??this.environmentInjector}),this.changeDetector.markForCheck(),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.activateEvents.emit(this.activated.instance)}}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275dir=B({type:e,selectors:[["router-outlet"]],inputs:{name:"name"},outputs:{activateEvents:"activate",deactivateEvents:"deactivate",attachEvents:"attach",detachEvents:"detach"},exportAs:["outlet"],standalone:!0,features:[Rt]}),t})();class PF{constructor(t,r,n){this.route=t,this.childContexts=r,this.parent=n}get(t,r){return t===Mr?this.route:t===os?this.childContexts:this.parent.get(t,r)}}const xl=new x("");let db=(()=>{var e;class t{constructor(){this.outletDataSubscriptions=new Map}bindActivatedRouteToOutletComponent(n){this.unsubscribeFromRouteData(n),this.subscribeToRouteData(n)}unsubscribeFromRouteData(n){this.outletDataSubscriptions.get(n)?.unsubscribe(),this.outletDataSubscriptions.delete(n)}subscribeToRouteData(n){const{activatedRoute:o}=n,i=Tf([o.queryParams,o.params,o.data]).pipe(jt(([s,a,l],c)=>(l={...s,...a,...l},0===c?V(l):Promise.resolve(l)))).subscribe(s=>{if(!n.isActivated||!n.activatedComponentRef||n.activatedRoute!==o||null===o.component)return void this.unsubscribeFromRouteData(n);const a=function iP(e){const t=X(e);if(!t)return null;const r=new Ii(t);return{get selector(){return r.selector},get type(){return r.componentType},get inputs(){return r.inputs},get outputs(){return r.outputs},get ngContentSelectors(){return r.ngContentSelectors},get isStandalone(){return t.standalone},get isSignal(){return t.signals}}}(o.component);if(a)for(const{templateName:l}of a.inputs)n.activatedComponentRef.setInput(l,s[l]);else this.unsubscribeFromRouteData(n)});this.outletDataSubscriptions.set(n,i)}}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275prov=L({token:e,factory:e.\u0275fac}),t})();function is(e,t,r){if(r&&e.shouldReuseRoute(t.value,r.value.snapshot)){const n=r.value;n._futureSnapshot=t.value;const o=function kF(e,t,r){return t.children.map(n=>{for(const o of r.children)if(e.shouldReuseRoute(n.value,o.value.snapshot))return is(e,n,o);return is(e,n)})}(e,t,r);return new Fn(n,o)}{if(e.shouldAttach(t.value)){const i=e.retrieve(t.value);if(null!==i){const s=i.route;return s.value._futureSnapshot=t.value,s.children=t.children.map(a=>is(e,a)),s}}const n=function FF(e){return new Mr(new At(e.url),new At(e.params),new At(e.queryParams),new At(e.fragment),new At(e.data),e.outlet,e.component,e)}(t.value),o=t.children.map(i=>is(e,i));return new Fn(n,o)}}const Kf="ngNavigationCancelingError";function fb(e,t){const{redirectTo:r,navigationBehaviorOptions:n}=Er(t)?{redirectTo:t,navigationBehaviorOptions:void 0}:t,o=hb(!1,0,t);return o.url=r,o.navigationBehaviorOptions=n,o}function hb(e,t,r){const n=new Error("NavigationCancelingError: "+(e||""));return n[Kf]=!0,n.cancellationCode=t,r&&(n.url=r),n}function pb(e){return e&&e[Kf]}let gb=(()=>{var e;class t{}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275cmp=vt({type:e,selectors:[["ng-component"]],standalone:!0,features:[Mt],decls:1,vars:0,template:function(n,o){1&n&&v(0,"router-outlet")},dependencies:[Jf],encapsulation:2}),t})();function eh(e){const t=e.children&&e.children.map(eh),r=t?{...e,children:t}:{...e};return!r.component&&!r.loadComponent&&(t||r.loadChildren)&&r.outlet&&r.outlet!==W&&(r.component=gb),r}function Xt(e){return e.outlet||W}function ss(e){if(!e)return null;if(e.routeConfig?._injector)return e.routeConfig._injector;for(let t=e.parent;t;t=t.parent){const r=t.routeConfig;if(r?._loadedInjector)return r._loadedInjector;if(r?._injector)return r._injector}return null}class GF{constructor(t,r,n,o,i){this.routeReuseStrategy=t,this.futureState=r,this.currState=n,this.forwardEvent=o,this.inputBindingEnabled=i}activate(t){const r=this.futureState._root,n=this.currState?this.currState._root:null;this.deactivateChildRoutes(r,n,t),Qf(this.futureState.root),this.activateChildRoutes(r,n,t)}deactivateChildRoutes(t,r,n){const o=Ro(r);t.children.forEach(i=>{const s=i.value.outlet;this.deactivateRoutes(i,o[s],n),delete o[s]}),Object.values(o).forEach(i=>{this.deactivateRouteAndItsChildren(i,n)})}deactivateRoutes(t,r,n){const o=t.value,i=r?r.value:null;if(o===i)if(o.component){const s=n.getContext(o.outlet);s&&this.deactivateChildRoutes(t,r,s.children)}else this.deactivateChildRoutes(t,r,n);else i&&this.deactivateRouteAndItsChildren(r,n)}deactivateRouteAndItsChildren(t,r){t.value.component&&this.routeReuseStrategy.shouldDetach(t.value.snapshot)?this.detachAndStoreRouteSubtree(t,r):this.deactivateRouteAndOutlet(t,r)}detachAndStoreRouteSubtree(t,r){const n=r.getContext(t.value.outlet),o=n&&t.value.component?n.children:r,i=Ro(t);for(const s of Object.keys(i))this.deactivateRouteAndItsChildren(i[s],o);if(n&&n.outlet){const s=n.outlet.detach(),a=n.children.onOutletDeactivated();this.routeReuseStrategy.store(t.value.snapshot,{componentRef:s,route:t,contexts:a})}}deactivateRouteAndOutlet(t,r){const n=r.getContext(t.value.outlet),o=n&&t.value.component?n.children:r,i=Ro(t);for(const s of Object.keys(i))this.deactivateRouteAndItsChildren(i[s],o);n&&(n.outlet&&(n.outlet.deactivate(),n.children.onOutletDeactivated()),n.attachRef=null,n.route=null)}activateChildRoutes(t,r,n){const o=Ro(r);t.children.forEach(i=>{this.activateRoutes(i,o[i.value.outlet],n),this.forwardEvent(new AF(i.value.snapshot))}),t.children.length&&this.forwardEvent(new SF(t.value.snapshot))}activateRoutes(t,r,n){const o=t.value,i=r?r.value:null;if(Qf(o),o===i)if(o.component){const s=n.getOrCreateContext(o.outlet);this.activateChildRoutes(t,r,s.children)}else this.activateChildRoutes(t,r,n);else if(o.component){const s=n.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),Qf(a.route.value),this.activateChildRoutes(t,null,s.children)}else{const a=ss(o.snapshot);s.attachRef=null,s.route=o,s.injector=a,s.outlet&&s.outlet.activateWith(o,s.injector),this.activateChildRoutes(t,null,s.children)}}else this.activateChildRoutes(t,null,n)}}class mb{constructor(t){this.path=t,this.route=this.path[this.path.length-1]}}class Rl{constructor(t,r){this.component=t,this.route=r}}function zF(e,t,r){const n=e._root;return as(n,t?t._root:null,r,[n.value])}function No(e,t){const r=Symbol(),n=t.get(e,r);return n===r?"function"!=typeof e||function _E(e){return null!==Is(e)}(e)?t.get(e):e:n}function as(e,t,r,n,o={canDeactivateChecks:[],canActivateChecks:[]}){const i=Ro(t);return e.children.forEach(s=>{(function WF(e,t,r,n,o={canDeactivateChecks:[],canActivateChecks:[]}){const i=e.value,s=t?t.value:null,a=r?r.getContext(e.value.outlet):null;if(s&&i.routeConfig===s.routeConfig){const l=function ZF(e,t,r){if("function"==typeof r)return r(e,t);switch(r){case"pathParamsChange":return!wr(e.url,t.url);case"pathParamsOrQueryParamsChange":return!wr(e.url,t.url)||!fn(e.queryParams,t.queryParams);case"always":return!0;case"paramsOrQueryParamsChange":return!Xf(e,t)||!fn(e.queryParams,t.queryParams);default:return!Xf(e,t)}}(s,i,i.routeConfig.runGuardsAndResolvers);l?o.canActivateChecks.push(new mb(n)):(i.data=s.data,i._resolvedData=s._resolvedData),as(e,t,i.component?a?a.children:null:r,n,o),l&&a&&a.outlet&&a.outlet.isActivated&&o.canDeactivateChecks.push(new Rl(a.outlet.component,s))}else s&&ls(t,a,o),o.canActivateChecks.push(new mb(n)),as(e,null,i.component?a?a.children:null:r,n,o)})(s,i[s.value.outlet],r,n.concat([s.value]),o),delete i[s.value.outlet]}),Object.entries(i).forEach(([s,a])=>ls(a,r.getContext(s),o)),o}function ls(e,t,r){const n=Ro(e),o=e.value;Object.entries(n).forEach(([i,s])=>{ls(s,o.component?t?t.children.getContext(i):null:t,r)}),r.canDeactivateChecks.push(new Rl(o.component&&t&&t.outlet&&t.outlet.isActivated?t.outlet.component:null,o))}function cs(e){return"function"==typeof e}function vb(e){return e instanceof yl||"EmptyError"===e?.name}const Nl=Symbol("INITIAL_VALUE");function Po(){return jt(e=>Tf(e.map(t=>t.pipe(ir(1),function ck(...e){const t=Wo(e);return Oe((r,n)=>{(t?Af(e,r,t):Af(e,r)).subscribe(n)})}(Nl)))).pipe(ee(t=>{for(const r of t)if(!0!==r){if(r===Nl)return Nl;if(!1===r||r instanceof Ao)return r}return!0}),Qt(t=>t!==Nl),ir(1)))}function yb(e){return function D1(...e){return Lh(e)}(Ze(t=>{if(Er(t))throw fb(0,t)}),ee(t=>!0===t))}class Pl{constructor(t){this.segmentGroup=t||null}}class _b{constructor(t){this.urlTree=t}}function Oo(e){return Wi(new Pl(e))}function Cb(e){return Wi(new _b(e))}class p2{constructor(t,r){this.urlSerializer=t,this.urlTree=r}noMatchError(t){return new S(4002,!1)}lineralizeSegments(t,r){let n=[],o=r.root;for(;;){if(n=n.concat(o.segments),0===o.numberOfChildren)return V(n);if(o.numberOfChildren>1||!o.children[W])return Wi(new S(4e3,!1));o=o.children[W]}}applyRedirectCommands(t,r,n){return this.applyRedirectCreateUrlTree(r,this.urlSerializer.parse(r),t,n)}applyRedirectCreateUrlTree(t,r,n,o){const i=this.createSegmentGroup(t,r.root,n,o);return new Ao(i,this.createQueryParams(r.queryParams,this.urlTree.queryParams),r.fragment)}createQueryParams(t,r){const n={};return Object.entries(t).forEach(([o,i])=>{if("string"==typeof i&&i.startsWith(":")){const a=i.substring(1);n[o]=r[a]}else n[o]=i}),n}createSegmentGroup(t,r,n,o){const i=this.createSegments(t,r.segments,n,o);let s={};return Object.entries(r.children).forEach(([a,l])=>{s[a]=this.createSegmentGroup(t,l,n,o)}),new ce(i,s)}createSegments(t,r,n,o){return r.map(i=>i.path.startsWith(":")?this.findPosParam(t,i,o):this.findOrReturn(i,n))}findPosParam(t,r,n){const o=n[r.path.substring(1)];if(!o)throw new S(4001,!1);return o}findOrReturn(t,r){let n=0;for(const o of r){if(o.path===t.path)return r.splice(n),o;n++}return t}}const th={matched:!1,consumedSegments:[],remainingSegments:[],parameters:{},positionalParamSegments:{}};function g2(e,t,r,n,o){const i=nh(e,t,r);return i.matched?(n=function VF(e,t){return e.providers&&!e._injector&&(e._injector=xd(e.providers,t,`Route: ${e.path}`)),e._injector??t}(t,n),function d2(e,t,r,n){const o=t.canMatch;return o&&0!==o.length?V(o.map(s=>{const a=No(s,e);return Xn(function e2(e){return e&&cs(e.canMatch)}(a)?a.canMatch(t,r):e.runInContext(()=>a(t,r)))})).pipe(Po(),yb()):V(!0)}(n,t,r).pipe(ee(s=>!0===s?i:{...th}))):V(i)}function nh(e,t,r){if(""===t.path)return"full"===t.pathMatch&&(e.hasChildren()||r.length>0)?{...th}:{matched:!0,consumedSegments:[],remainingSegments:r,parameters:{},positionalParamSegments:{}};const o=(t.matcher||Wk)(r,e,t);if(!o)return{...th};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:r.slice(o.consumed.length),parameters:s,positionalParamSegments:o.posParams??{}}}function Db(e,t,r,n){return r.length>0&&function y2(e,t,r){return r.some(n=>Ol(e,t,n)&&Xt(n)!==W)}(e,r,n)?{segmentGroup:new ce(t,v2(n,new ce(r,e.children))),slicedSegments:[]}:0===r.length&&function _2(e,t,r){return r.some(n=>Ol(e,t,n))}(e,r,n)?{segmentGroup:new ce(e.segments,m2(e,0,r,n,e.children)),slicedSegments:r}:{segmentGroup:new ce(e.segments,e.children),slicedSegments:r}}function m2(e,t,r,n,o){const i={};for(const s of n)if(Ol(e,r,s)&&!o[Xt(s)]){const a=new ce([],{});i[Xt(s)]=a}return{...o,...i}}function v2(e,t){const r={};r[W]=t;for(const n of e)if(""===n.path&&Xt(n)!==W){const o=new ce([],{});r[Xt(n)]=o}return r}function Ol(e,t,r){return(!(e.hasChildren()||t.length>0)||"full"!==r.pathMatch)&&""===r.path}class w2{constructor(t,r,n,o,i,s,a){this.injector=t,this.configLoader=r,this.rootComponentType=n,this.config=o,this.urlTree=i,this.paramsInheritanceStrategy=s,this.urlSerializer=a,this.allowRedirects=!0,this.applyRedirects=new p2(this.urlSerializer,this.urlTree)}noMatchError(t){return new S(4002,!1)}recognize(){const t=Db(this.urlTree.root,[],[],this.config).segmentGroup;return this.processSegmentGroup(this.injector,this.config,t,W).pipe(br(r=>{if(r instanceof _b)return this.allowRedirects=!1,this.urlTree=r.urlTree,this.match(r.urlTree);throw r instanceof Pl?this.noMatchError(r):r}),ee(r=>{const n=new Al([],Object.freeze({}),Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,{},W,this.rootComponentType,null,{}),o=new Fn(n,r),i=new cb("",o),s=function hF(e,t,r=null,n=null){return XD(QD(e),t,r,n)}(n,[],this.urlTree.queryParams,this.urlTree.fragment);return s.queryParams=this.urlTree.queryParams,i.url=this.urlSerializer.serialize(s),this.inheritParamsAndData(i._root),{state:i,tree:s}}))}match(t){return this.processSegmentGroup(this.injector,this.config,t.root,W).pipe(br(n=>{throw n instanceof Pl?this.noMatchError(n):n}))}inheritParamsAndData(t){const r=t.value,n=lb(r,this.paramsInheritanceStrategy);r.params=Object.freeze(n.params),r.data=Object.freeze(n.data),t.children.forEach(o=>this.inheritParamsAndData(o))}processSegmentGroup(t,r,n,o){return 0===n.segments.length&&n.hasChildren()?this.processChildren(t,r,n):this.processSegment(t,r,n,n.segments,o,!0)}processChildren(t,r,n){const o=[];for(const i of Object.keys(n.children))"primary"===i?o.unshift(i):o.push(i);return Ne(o).pipe(So(i=>{const s=n.children[i],a=function BF(e,t){const r=e.filter(n=>Xt(n)===t);return r.push(...e.filter(n=>Xt(n)!==t)),r}(r,i);return this.processSegmentGroup(t,a,s,i)}),function fk(e,t){return Oe(function dk(e,t,r,n,o){return(i,s)=>{let a=r,l=t,c=0;i.subscribe(Re(s,u=>{const d=c++;l=a?e(l,u,d):(a=!0,u),n&&s.next(l)},o&&(()=>{a&&s.next(l),s.complete()})))}}(e,t,arguments.length>=2,!0))}((i,s)=>(i.push(...s),i)),_l(null),function hk(e,t){const r=arguments.length>=2;return n=>n.pipe(e?Qt((o,i)=>e(o,i,n)):Vn,Rf(1),r?_l(t):DD(()=>new yl))}(),Ve(i=>{if(null===i)return Oo(n);const s=bb(i);return function E2(e){e.sort((t,r)=>t.value.outlet===W?-1:r.value.outlet===W?1:t.value.outlet.localeCompare(r.value.outlet))}(s),V(s)}))}processSegment(t,r,n,o,i,s){return Ne(r).pipe(So(a=>this.processSegmentAgainstRoute(a._injector??t,r,a,n,o,i,s).pipe(br(l=>{if(l instanceof Pl)return V(null);throw l}))),Dr(a=>!!a),br(a=>{if(vb(a))return function D2(e,t,r){return 0===t.length&&!e.children[r]}(n,o,i)?V([]):Oo(n);throw a}))}processSegmentAgainstRoute(t,r,n,o,i,s,a){return function C2(e,t,r,n){return!!(Xt(e)===n||n!==W&&Ol(t,r,e))&&("**"===e.path||nh(t,e,r).matched)}(n,o,i,s)?void 0===n.redirectTo?this.matchSegmentAgainstRoute(t,o,n,i,s,a):a&&this.allowRedirects?this.expandSegmentAgainstRouteUsingRedirect(t,o,r,n,i,s):Oo(o):Oo(o)}expandSegmentAgainstRouteUsingRedirect(t,r,n,o,i,s){return"**"===o.path?this.expandWildCardWithParamsAgainstRouteUsingRedirect(t,n,o,s):this.expandRegularSegmentAgainstRouteUsingRedirect(t,r,n,o,i,s)}expandWildCardWithParamsAgainstRouteUsingRedirect(t,r,n,o){const i=this.applyRedirects.applyRedirectCommands([],n.redirectTo,{});return n.redirectTo.startsWith("/")?Cb(i):this.applyRedirects.lineralizeSegments(n,i).pipe(Ve(s=>{const a=new ce(s,{});return this.processSegment(t,r,a,s,o,!1)}))}expandRegularSegmentAgainstRouteUsingRedirect(t,r,n,o,i,s){const{matched:a,consumedSegments:l,remainingSegments:c,positionalParamSegments:u}=nh(r,o,i);if(!a)return Oo(r);const d=this.applyRedirects.applyRedirectCommands(l,o.redirectTo,u);return o.redirectTo.startsWith("/")?Cb(d):this.applyRedirects.lineralizeSegments(o,d).pipe(Ve(g=>this.processSegment(t,n,r,g.concat(c),s,!1)))}matchSegmentAgainstRoute(t,r,n,o,i,s){let a;if("**"===n.path){const l=o.length>0?jD(o).parameters:{};a=V({snapshot:new Al(o,l,Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,wb(n),Xt(n),n.component??n._loadedComponent??null,n,Eb(n)),consumedSegments:[],remainingSegments:[]}),r.children={}}else a=g2(r,n,o,t).pipe(ee(({matched:l,consumedSegments:c,remainingSegments:u,parameters:d})=>l?{snapshot:new Al(c,d,Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,wb(n),Xt(n),n.component??n._loadedComponent??null,n,Eb(n)),consumedSegments:c,remainingSegments:u}:null));return a.pipe(jt(l=>null===l?Oo(r):this.getChildConfig(t=n._injector??t,n,o).pipe(jt(({routes:c})=>{const u=n._loadedInjector??t,{snapshot:d,consumedSegments:g,remainingSegments:m}=l,{segmentGroup:y,slicedSegments:C}=Db(r,g,m,c);if(0===C.length&&y.hasChildren())return this.processChildren(u,c,y).pipe(ee(E=>null===E?null:[new Fn(d,E)]));if(0===c.length&&0===C.length)return V([new Fn(d,[])]);const b=Xt(n)===i;return this.processSegment(u,c,y,C,b?W:i,!0).pipe(ee(E=>[new Fn(d,E)]))}))))}getChildConfig(t,r,n){return r.children?V({routes:r.children,injector:t}):r.loadChildren?void 0!==r._loadedRoutes?V({routes:r._loadedRoutes,injector:r._loadedInjector}):function u2(e,t,r,n){const o=t.canLoad;return void 0===o||0===o.length?V(!0):V(o.map(s=>{const a=No(s,e);return Xn(function QF(e){return e&&cs(e.canLoad)}(a)?a.canLoad(t,r):e.runInContext(()=>a(t,r)))})).pipe(Po(),yb())}(t,r,n).pipe(Ve(o=>o?this.configLoader.loadChildren(t,r).pipe(Ze(i=>{r._loadedRoutes=i.routes,r._loadedInjector=i.injector})):function h2(e){return Wi(hb(!1,3))}())):V({routes:[],injector:t})}}function M2(e){const t=e.value.routeConfig;return t&&""===t.path}function bb(e){const t=[],r=new Set;for(const n of e){if(!M2(n)){t.push(n);continue}const o=t.find(i=>n.value.routeConfig===i.value.routeConfig);void 0!==o?(o.children.push(...n.children),r.add(o)):t.push(n)}for(const n of r){const o=bb(n.children);t.push(new Fn(n.value,o))}return t.filter(n=>!r.has(n))}function wb(e){return e.data||{}}function Eb(e){return e.resolve||{}}function Mb(e){return"string"==typeof e.title||null===e.title}function rh(e){return jt(t=>{const r=e(t);return r?Ne(r).pipe(ee(()=>t)):V(t)})}const ko=new x("ROUTES");let oh=(()=>{var e;class t{constructor(){this.componentLoaders=new WeakMap,this.childrenLoaders=new WeakMap,this.compiler=A(cC)}loadComponent(n){if(this.componentLoaders.get(n))return this.componentLoaders.get(n);if(n._loadedComponent)return V(n._loadedComponent);this.onLoadStartListener&&this.onLoadStartListener(n);const o=Xn(n.loadComponent()).pipe(ee(Ib),Ze(s=>{this.onLoadEndListener&&this.onLoadEndListener(n),n._loadedComponent=s}),Zi(()=>{this.componentLoaders.delete(n)})),i=new CD(o,()=>new Lt).pipe(xf());return this.componentLoaders.set(n,i),i}loadChildren(n,o){if(this.childrenLoaders.get(o))return this.childrenLoaders.get(o);if(o._loadedRoutes)return V({routes:o._loadedRoutes,injector:o._loadedInjector});this.onLoadStartListener&&this.onLoadStartListener(o);const s=this.loadModuleFactoryOrRoutes(o.loadChildren).pipe(ee(l=>{this.onLoadEndListener&&this.onLoadEndListener(o);let c,u;return Array.isArray(l)?u=l:(c=l.create(n).injector,u=c.get(ko,[],Y.Self|Y.Optional).flat()),{routes:u.map(eh),injector:c}}),Zi(()=>{this.childrenLoaders.delete(o)})),a=new CD(s,()=>new Lt).pipe(xf());return this.childrenLoaders.set(o,a),a}loadModuleFactoryOrRoutes(n){return Xn(n()).pipe(ee(Ib),Ve(o=>o instanceof g_||Array.isArray(o)?V(o):Ne(this.compiler.compileModuleAsync(o))))}}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275prov=L({token:e,factory:e.\u0275fac,providedIn:"root"}),t})();function Ib(e){return function N2(e){return e&&"object"==typeof e&&"default"in e}(e)?e.default:e}let kl=(()=>{var e;class t{get hasRequestedNavigation(){return 0!==this.navigationId}constructor(){this.currentNavigation=null,this.currentTransition=null,this.lastSuccessfulNavigation=null,this.events=new Lt,this.transitionAbortSubject=new Lt,this.configLoader=A(oh),this.environmentInjector=A(Dt),this.urlSerializer=A(Ji),this.rootContexts=A(os),this.inputBindingEnabled=null!==A(xl,{optional:!0}),this.navigationId=0,this.afterPreactivation=()=>V(void 0),this.rootComponentType=null,this.configLoader.onLoadEndListener=i=>this.events.next(new MF(i)),this.configLoader.onLoadStartListener=i=>this.events.next(new EF(i))}complete(){this.transitions?.complete()}handleNavigationRequest(n){const o=++this.navigationId;this.transitions?.next({...this.transitions.value,...n,id:o})}setupNavigations(n,o,i){return this.transitions=new At({id:0,currentUrlTree:o,currentRawUrl:o,currentBrowserUrl:o,extractedUrl:n.urlHandlingStrategy.extract(o),urlAfterRedirects:n.urlHandlingStrategy.extract(o),rawUrl:o,extras:{},resolve:null,reject:null,promise:Promise.resolve(!0),source:ns,restoredState:null,currentSnapshot:i.snapshot,targetSnapshot:null,currentRouterState:i,targetRouterState:null,guards:{canActivateChecks:[],canDeactivateChecks:[]},guardsResult:null}),this.transitions.pipe(Qt(s=>0!==s.id),ee(s=>({...s,extractedUrl:n.urlHandlingStrategy.extract(s.rawUrl)})),jt(s=>{this.currentTransition=s;let a=!1,l=!1;return V(s).pipe(Ze(c=>{this.currentNavigation={id:c.id,initialUrl:c.rawUrl,extractedUrl:c.extractedUrl,trigger:c.source,extras:c.extras,previousNavigation:this.lastSuccessfulNavigation?{...this.lastSuccessfulNavigation,previousNavigation:null}:null}}),jt(c=>{const u=c.currentBrowserUrl.toString(),d=!n.navigated||c.extractedUrl.toString()!==u||u!==c.currentUrlTree.toString();if(!d&&"reload"!==(c.extras.onSameUrlNavigation??n.onSameUrlNavigation)){const m="";return this.events.next(new xo(c.id,this.urlSerializer.serialize(c.rawUrl),m,0)),c.resolve(null),Jt}if(n.urlHandlingStrategy.shouldProcessUrl(c.rawUrl))return V(c).pipe(jt(m=>{const y=this.transitions?.getValue();return this.events.next(new Sl(m.id,this.urlSerializer.serialize(m.extractedUrl),m.source,m.restoredState)),y!==this.transitions?.getValue()?Jt:Promise.resolve(m)}),function I2(e,t,r,n,o,i){return Ve(s=>function b2(e,t,r,n,o,i,s="emptyOnly"){return new w2(e,t,r,n,o,s,i).recognize()}(e,t,r,n,s.extractedUrl,o,i).pipe(ee(({state:a,tree:l})=>({...s,targetSnapshot:a,urlAfterRedirects:l}))))}(this.environmentInjector,this.configLoader,this.rootComponentType,n.config,this.urlSerializer,n.paramsInheritanceStrategy),Ze(m=>{s.targetSnapshot=m.targetSnapshot,s.urlAfterRedirects=m.urlAfterRedirects,this.currentNavigation={...this.currentNavigation,finalUrl:m.urlAfterRedirects};const y=new rb(m.id,this.urlSerializer.serialize(m.extractedUrl),this.urlSerializer.serialize(m.urlAfterRedirects),m.targetSnapshot);this.events.next(y)}));if(d&&n.urlHandlingStrategy.shouldProcessUrl(c.currentRawUrl)){const{id:m,extractedUrl:y,source:C,restoredState:b,extras:E}=c,D=new Sl(m,this.urlSerializer.serialize(y),C,b);this.events.next(D);const P=ab(0,this.rootComponentType).snapshot;return this.currentTransition=s={...c,targetSnapshot:P,urlAfterRedirects:y,extras:{...E,skipLocationChange:!1,replaceUrl:!1}},V(s)}{const m="";return this.events.next(new xo(c.id,this.urlSerializer.serialize(c.extractedUrl),m,1)),c.resolve(null),Jt}}),Ze(c=>{const u=new CF(c.id,this.urlSerializer.serialize(c.extractedUrl),this.urlSerializer.serialize(c.urlAfterRedirects),c.targetSnapshot);this.events.next(u)}),ee(c=>(this.currentTransition=s={...c,guards:zF(c.targetSnapshot,c.currentSnapshot,this.rootContexts)},s)),function n2(e,t){return Ve(r=>{const{targetSnapshot:n,currentSnapshot:o,guards:{canActivateChecks:i,canDeactivateChecks:s}}=r;return 0===s.length&&0===i.length?V({...r,guardsResult:!0}):function r2(e,t,r,n){return Ne(e).pipe(Ve(o=>function c2(e,t,r,n,o){const i=t&&t.routeConfig?t.routeConfig.canDeactivate:null;return i&&0!==i.length?V(i.map(a=>{const l=ss(t)??o,c=No(a,l);return Xn(function KF(e){return e&&cs(e.canDeactivate)}(c)?c.canDeactivate(e,t,r,n):l.runInContext(()=>c(e,t,r,n))).pipe(Dr())})).pipe(Po()):V(!0)}(o.component,o.route,r,t,n)),Dr(o=>!0!==o,!0))}(s,n,o,e).pipe(Ve(a=>a&&function YF(e){return"boolean"==typeof e}(a)?function o2(e,t,r,n){return Ne(t).pipe(So(o=>Af(function s2(e,t){return null!==e&&t&&t(new IF(e)),V(!0)}(o.route.parent,n),function i2(e,t){return null!==e&&t&&t(new TF(e)),V(!0)}(o.route,n),function l2(e,t,r){const n=t[t.length-1],i=t.slice(0,t.length-1).reverse().map(s=>function qF(e){const t=e.routeConfig?e.routeConfig.canActivateChild:null;return t&&0!==t.length?{node:e,guards:t}:null}(s)).filter(s=>null!==s).map(s=>_D(()=>V(s.guards.map(l=>{const c=ss(s.node)??r,u=No(l,c);return Xn(function JF(e){return e&&cs(e.canActivateChild)}(u)?u.canActivateChild(n,e):c.runInContext(()=>u(n,e))).pipe(Dr())})).pipe(Po())));return V(i).pipe(Po())}(e,o.path,r),function a2(e,t,r){const n=t.routeConfig?t.routeConfig.canActivate:null;if(!n||0===n.length)return V(!0);const o=n.map(i=>_D(()=>{const s=ss(t)??r,a=No(i,s);return Xn(function XF(e){return e&&cs(e.canActivate)}(a)?a.canActivate(t,e):s.runInContext(()=>a(t,e))).pipe(Dr())}));return V(o).pipe(Po())}(e,o.route,r))),Dr(o=>!0!==o,!0))}(n,i,e,t):V(a)),ee(a=>({...r,guardsResult:a})))})}(this.environmentInjector,c=>this.events.next(c)),Ze(c=>{if(s.guardsResult=c.guardsResult,Er(c.guardsResult))throw fb(0,c.guardsResult);const u=new DF(c.id,this.urlSerializer.serialize(c.extractedUrl),this.urlSerializer.serialize(c.urlAfterRedirects),c.targetSnapshot,!!c.guardsResult);this.events.next(u)}),Qt(c=>!!c.guardsResult||(this.cancelNavigationTransition(c,"",3),!1)),rh(c=>{if(c.guards.canActivateChecks.length)return V(c).pipe(Ze(u=>{const d=new bF(u.id,this.urlSerializer.serialize(u.extractedUrl),this.urlSerializer.serialize(u.urlAfterRedirects),u.targetSnapshot);this.events.next(d)}),jt(u=>{let d=!1;return V(u).pipe(function S2(e,t){return Ve(r=>{const{targetSnapshot:n,guards:{canActivateChecks:o}}=r;if(!o.length)return V(r);let i=0;return Ne(o).pipe(So(s=>function T2(e,t,r,n){const o=e.routeConfig,i=e._resolve;return void 0!==o?.title&&!Mb(o)&&(i[Qi]=o.title),function A2(e,t,r,n){const o=function x2(e){return[...Object.keys(e),...Object.getOwnPropertySymbols(e)]}(e);if(0===o.length)return V({});const i={};return Ne(o).pipe(Ve(s=>function R2(e,t,r,n){const o=ss(t)??n,i=No(e,o);return Xn(i.resolve?i.resolve(t,r):o.runInContext(()=>i(t,r)))}(e[s],t,r,n).pipe(Dr(),Ze(a=>{i[s]=a}))),Rf(1),function pk(e){return ee(()=>e)}(i),br(s=>vb(s)?Jt:Wi(s)))}(i,e,t,n).pipe(ee(s=>(e._resolvedData=s,e.data=lb(e,r).resolve,o&&Mb(o)&&(e.data[Qi]=o.title),null)))}(s.route,n,e,t)),Ze(()=>i++),Rf(1),Ve(s=>i===o.length?V(r):Jt))})}(n.paramsInheritanceStrategy,this.environmentInjector),Ze({next:()=>d=!0,complete:()=>{d||this.cancelNavigationTransition(u,"",2)}}))}),Ze(u=>{const d=new wF(u.id,this.urlSerializer.serialize(u.extractedUrl),this.urlSerializer.serialize(u.urlAfterRedirects),u.targetSnapshot);this.events.next(d)}))}),rh(c=>{const u=d=>{const g=[];d.routeConfig?.loadComponent&&!d.routeConfig._loadedComponent&&g.push(this.configLoader.loadComponent(d.routeConfig).pipe(Ze(m=>{d.component=m}),ee(()=>{})));for(const m of d.children)g.push(...u(m));return g};return Tf(u(c.targetSnapshot.root)).pipe(_l(),ir(1))}),rh(()=>this.afterPreactivation()),ee(c=>{const u=function OF(e,t,r){const n=is(e,t._root,r?r._root:void 0);return new sb(n,t)}(n.routeReuseStrategy,c.targetSnapshot,c.currentRouterState);return this.currentTransition=s={...c,targetRouterState:u},s}),Ze(()=>{this.events.next(new zf)}),((e,t,r,n)=>ee(o=>(new GF(t,o.targetRouterState,o.currentRouterState,r,n).activate(e),o)))(this.rootContexts,n.routeReuseStrategy,c=>this.events.next(c),this.inputBindingEnabled),ir(1),Ze({next:c=>{a=!0,this.lastSuccessfulNavigation=this.currentNavigation,this.events.next(new kn(c.id,this.urlSerializer.serialize(c.extractedUrl),this.urlSerializer.serialize(c.urlAfterRedirects))),n.titleStrategy?.updateTitle(c.targetRouterState.snapshot),c.resolve(!0)},complete:()=>{a=!0}}),function gk(e){return Oe((t,r)=>{Vt(e).subscribe(Re(r,()=>r.complete(),sc)),!r.closed&&t.subscribe(r)})}(this.transitionAbortSubject.pipe(Ze(c=>{throw c}))),Zi(()=>{a||l||this.cancelNavigationTransition(s,"",1),this.currentNavigation?.id===s.id&&(this.currentNavigation=null)}),br(c=>{if(l=!0,pb(c))this.events.next(new rs(s.id,this.urlSerializer.serialize(s.extractedUrl),c.message,c.cancellationCode)),function LF(e){return pb(e)&&Er(e.url)}(c)?this.events.next(new qf(c.url)):s.resolve(!1);else{this.events.next(new Tl(s.id,this.urlSerializer.serialize(s.extractedUrl),c,s.targetSnapshot??void 0));try{s.resolve(n.errorHandler(c))}catch(u){s.reject(u)}}return Jt}))}))}cancelNavigationTransition(n,o,i){const s=new rs(n.id,this.urlSerializer.serialize(n.extractedUrl),o,i);this.events.next(s),n.resolve(!1)}}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275prov=L({token:e,factory:e.\u0275fac,providedIn:"root"}),t})();function Sb(e){return e!==ns}let Tb=(()=>{var e;class t{buildTitle(n){let o,i=n.root;for(;void 0!==i;)o=this.getResolvedTitleForRoute(i)??o,i=i.children.find(s=>s.outlet===W);return o}getResolvedTitleForRoute(n){return n.data[Qi]}}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275prov=L({token:e,factory:function(){return A(P2)},providedIn:"root"}),t})(),P2=(()=>{var e;class t extends Tb{constructor(n){super(),this.title=n}updateTitle(n){const o=this.buildTitle(n);void 0!==o&&this.title.setTitle(o)}}return(e=t).\u0275fac=function(n){return new(n||e)(F(OD))},e.\u0275prov=L({token:e,factory:e.\u0275fac,providedIn:"root"}),t})(),O2=(()=>{var e;class t{}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275prov=L({token:e,factory:function(){return A(F2)},providedIn:"root"}),t})();class k2{shouldDetach(t){return!1}store(t,r){}shouldAttach(t){return!1}retrieve(t){return null}shouldReuseRoute(t,r){return t.routeConfig===r.routeConfig}}let F2=(()=>{var e;class t extends k2{}return(e=t).\u0275fac=function(){let r;return function(o){return(r||(r=$e(e)))(o||e)}}(),e.\u0275prov=L({token:e,factory:e.\u0275fac,providedIn:"root"}),t})();const Fl=new x("",{providedIn:"root",factory:()=>({})});let L2=(()=>{var e;class t{}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275prov=L({token:e,factory:function(){return A(V2)},providedIn:"root"}),t})(),V2=(()=>{var e;class t{shouldProcessUrl(n){return!0}extract(n){return n}merge(n,o){return n}}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275prov=L({token:e,factory:e.\u0275fac,providedIn:"root"}),t})();var us=function(e){return e[e.COMPLETE=0]="COMPLETE",e[e.FAILED=1]="FAILED",e[e.REDIRECTING=2]="REDIRECTING",e}(us||{});function Ab(e,t){e.events.pipe(Qt(r=>r instanceof kn||r instanceof rs||r instanceof Tl||r instanceof xo),ee(r=>r instanceof kn||r instanceof xo?us.COMPLETE:r instanceof rs&&(0===r.code||1===r.code)?us.REDIRECTING:us.FAILED),Qt(r=>r!==us.REDIRECTING),ir(1)).subscribe(()=>{t()})}function j2(e){throw e}function H2(e,t,r){return t.parse("/")}const U2={paths:"exact",fragment:"ignored",matrixParams:"ignored",queryParams:"exact"},B2={paths:"subset",fragment:"ignored",matrixParams:"ignored",queryParams:"subset"};let St=(()=>{var e;class t{get navigationId(){return this.navigationTransitions.navigationId}get browserPageId(){return"computed"!==this.canceledNavigationResolution?this.currentPageId:this.location.getState()?.\u0275routerPageId??this.currentPageId}get events(){return this._events}constructor(){this.disposed=!1,this.currentPageId=0,this.console=A(lC),this.isNgZoneEnabled=!1,this._events=new Lt,this.options=A(Fl,{optional:!0})||{},this.pendingTasks=A(Ya),this.errorHandler=this.options.errorHandler||j2,this.malformedUriErrorHandler=this.options.malformedUriErrorHandler||H2,this.navigated=!1,this.lastSuccessfulId=-1,this.urlHandlingStrategy=A(L2),this.routeReuseStrategy=A(O2),this.titleStrategy=A(Tb),this.onSameUrlNavigation=this.options.onSameUrlNavigation||"ignore",this.paramsInheritanceStrategy=this.options.paramsInheritanceStrategy||"emptyOnly",this.urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred",this.canceledNavigationResolution=this.options.canceledNavigationResolution||"replace",this.config=A(ko,{optional:!0})?.flat()??[],this.navigationTransitions=A(kl),this.urlSerializer=A(Ji),this.location=A(uf),this.componentInputBindingEnabled=!!A(xl,{optional:!0}),this.eventsSubscription=new gt,this.isNgZoneEnabled=A(ge)instanceof ge&&ge.isInAngularZone(),this.resetConfig(this.config),this.currentUrlTree=new Ao,this.rawUrlTree=this.currentUrlTree,this.browserUrlTree=this.currentUrlTree,this.routerState=ab(0,null),this.navigationTransitions.setupNavigations(this,this.currentUrlTree,this.routerState).subscribe(n=>{this.lastSuccessfulId=n.id,this.currentPageId=this.browserPageId},n=>{this.console.warn(`Unhandled Navigation Error: ${n}`)}),this.subscribeToNavigationEvents()}subscribeToNavigationEvents(){const n=this.navigationTransitions.events.subscribe(o=>{try{const{currentTransition:i}=this.navigationTransitions;if(null===i)return void(xb(o)&&this._events.next(o));if(o instanceof Sl)Sb(i.source)&&(this.browserUrlTree=i.extractedUrl);else if(o instanceof xo)this.rawUrlTree=i.rawUrl;else if(o instanceof rb){if("eager"===this.urlUpdateStrategy){if(!i.extras.skipLocationChange){const s=this.urlHandlingStrategy.merge(i.urlAfterRedirects,i.rawUrl);this.setBrowserUrl(s,i)}this.browserUrlTree=i.urlAfterRedirects}}else if(o instanceof zf)this.currentUrlTree=i.urlAfterRedirects,this.rawUrlTree=this.urlHandlingStrategy.merge(i.urlAfterRedirects,i.rawUrl),this.routerState=i.targetRouterState,"deferred"===this.urlUpdateStrategy&&(i.extras.skipLocationChange||this.setBrowserUrl(this.rawUrlTree,i),this.browserUrlTree=i.urlAfterRedirects);else if(o instanceof rs)0!==o.code&&1!==o.code&&(this.navigated=!0),(3===o.code||2===o.code)&&this.restoreHistory(i);else if(o instanceof qf){const s=this.urlHandlingStrategy.merge(o.url,i.currentRawUrl),a={skipLocationChange:i.extras.skipLocationChange,replaceUrl:"eager"===this.urlUpdateStrategy||Sb(i.source)};this.scheduleNavigation(s,ns,null,a,{resolve:i.resolve,reject:i.reject,promise:i.promise})}o instanceof Tl&&this.restoreHistory(i,!0),o instanceof kn&&(this.navigated=!0),xb(o)&&this._events.next(o)}catch(i){this.navigationTransitions.transitionAbortSubject.next(i)}});this.eventsSubscription.add(n)}resetRootComponentType(n){this.routerState.root.component=n,this.navigationTransitions.rootComponentType=n}initialNavigation(){if(this.setUpLocationChangeListener(),!this.navigationTransitions.hasRequestedNavigation){const n=this.location.getState();this.navigateToSyncWithBrowser(this.location.path(!0),ns,n)}}setUpLocationChangeListener(){this.locationSubscription||(this.locationSubscription=this.location.subscribe(n=>{const o="popstate"===n.type?"popstate":"hashchange";"popstate"===o&&setTimeout(()=>{this.navigateToSyncWithBrowser(n.url,o,n.state)},0)}))}navigateToSyncWithBrowser(n,o,i){const s={replaceUrl:!0},a=i?.navigationId?i:null;if(i){const c={...i};delete c.navigationId,delete c.\u0275routerPageId,0!==Object.keys(c).length&&(s.state=c)}const l=this.parseUrl(n);this.scheduleNavigation(l,o,a,s)}get url(){return this.serializeUrl(this.currentUrlTree)}getCurrentNavigation(){return this.navigationTransitions.currentNavigation}get lastSuccessfulNavigation(){return this.navigationTransitions.lastSuccessfulNavigation}resetConfig(n){this.config=n.map(eh),this.navigated=!1,this.lastSuccessfulId=-1}ngOnDestroy(){this.dispose()}dispose(){this.navigationTransitions.complete(),this.locationSubscription&&(this.locationSubscription.unsubscribe(),this.locationSubscription=void 0),this.disposed=!0,this.eventsSubscription.unsubscribe()}createUrlTree(n,o={}){const{relativeTo:i,queryParams:s,fragment:a,queryParamsHandling:l,preserveFragment:c}=o,u=c?this.currentUrlTree.fragment:a;let g,d=null;switch(l){case"merge":d={...this.currentUrlTree.queryParams,...s};break;case"preserve":d=this.currentUrlTree.queryParams;break;default:d=s||null}null!==d&&(d=this.removeEmptyProps(d));try{g=QD(i?i.snapshot:this.routerState.snapshot.root)}catch{("string"!=typeof n[0]||!n[0].startsWith("/"))&&(n=[]),g=this.currentUrlTree.root}return XD(g,n,d,u??null)}navigateByUrl(n,o={skipLocationChange:!1}){const i=Er(n)?n:this.parseUrl(n),s=this.urlHandlingStrategy.merge(i,this.rawUrlTree);return this.scheduleNavigation(s,ns,null,o)}navigate(n,o={skipLocationChange:!1}){return function $2(e){for(let t=0;t{const s=n[i];return null!=s&&(o[i]=s),o},{})}scheduleNavigation(n,o,i,s,a){if(this.disposed)return Promise.resolve(!1);let l,c,u;a?(l=a.resolve,c=a.reject,u=a.promise):u=new Promise((g,m)=>{l=g,c=m});const d=this.pendingTasks.add();return Ab(this,()=>{queueMicrotask(()=>this.pendingTasks.remove(d))}),this.navigationTransitions.handleNavigationRequest({source:o,restoredState:i,currentUrlTree:this.currentUrlTree,currentRawUrl:this.currentUrlTree,currentBrowserUrl:this.browserUrlTree,rawUrl:n,extras:s,resolve:l,reject:c,promise:u,currentSnapshot:this.routerState.snapshot,currentRouterState:this.routerState}),u.catch(g=>Promise.reject(g))}setBrowserUrl(n,o){const i=this.urlSerializer.serialize(n);if(this.location.isCurrentPathEqualTo(i)||o.extras.replaceUrl){const a={...o.extras.state,...this.generateNgRouterState(o.id,this.browserPageId)};this.location.replaceState(i,"",a)}else{const s={...o.extras.state,...this.generateNgRouterState(o.id,this.browserPageId+1)};this.location.go(i,"",s)}}restoreHistory(n,o=!1){if("computed"===this.canceledNavigationResolution){const s=this.currentPageId-this.browserPageId;0!==s?this.location.historyGo(s):this.currentUrlTree===this.getCurrentNavigation()?.finalUrl&&0===s&&(this.resetState(n),this.browserUrlTree=n.currentUrlTree,this.resetUrlToCurrentUrlTree())}else"replace"===this.canceledNavigationResolution&&(o&&this.resetState(n),this.resetUrlToCurrentUrlTree())}resetState(n){this.routerState=n.currentRouterState,this.currentUrlTree=n.currentUrlTree,this.rawUrlTree=this.urlHandlingStrategy.merge(this.currentUrlTree,n.rawUrl)}resetUrlToCurrentUrlTree(){this.location.replaceState(this.urlSerializer.serialize(this.rawUrlTree),"",this.generateNgRouterState(this.lastSuccessfulId,this.currentPageId))}generateNgRouterState(n,o){return"computed"===this.canceledNavigationResolution?{navigationId:n,\u0275routerPageId:o}:{navigationId:n}}}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275prov=L({token:e,factory:e.\u0275fac,providedIn:"root"}),t})();function xb(e){return!(e instanceof zf||e instanceof qf)}let pn=(()=>{var e;class t{constructor(n,o,i,s,a,l){this.router=n,this.route=o,this.tabIndexAttribute=i,this.renderer=s,this.el=a,this.locationStrategy=l,this.href=null,this.commands=null,this.onChanges=new Lt,this.preserveFragment=!1,this.skipLocationChange=!1,this.replaceUrl=!1;const c=a.nativeElement.tagName?.toLowerCase();this.isAnchorElement="a"===c||"area"===c,this.isAnchorElement?this.subscription=n.events.subscribe(u=>{u instanceof kn&&this.updateHref()}):this.setTabIndexIfNotOnNativeEl("0")}setTabIndexIfNotOnNativeEl(n){null!=this.tabIndexAttribute||this.isAnchorElement||this.applyAttributeValue("tabindex",n)}ngOnChanges(n){this.isAnchorElement&&this.updateHref(),this.onChanges.next(this)}set routerLink(n){null!=n?(this.commands=Array.isArray(n)?n:[n],this.setTabIndexIfNotOnNativeEl("0")):(this.commands=null,this.setTabIndexIfNotOnNativeEl(null))}onClick(n,o,i,s,a){return!!(null===this.urlTree||this.isAnchorElement&&(0!==n||o||i||s||a||"string"==typeof this.target&&"_self"!=this.target))||(this.router.navigateByUrl(this.urlTree,{skipLocationChange:this.skipLocationChange,replaceUrl:this.replaceUrl,state:this.state}),!this.isAnchorElement)}ngOnDestroy(){this.subscription?.unsubscribe()}updateHref(){this.href=null!==this.urlTree&&this.locationStrategy?this.locationStrategy?.prepareExternalUrl(this.router.serializeUrl(this.urlTree)):null;const n=null===this.href?null:function mm(e,t,r){return function MI(e,t){return"src"===t&&("embed"===e||"frame"===e||"iframe"===e||"media"===e||"script"===e)||"href"===t&&("base"===e||"link"===e)?gm:to}(t,r)(e)}(this.href,this.el.nativeElement.tagName.toLowerCase(),"href");this.applyAttributeValue("href",n)}applyAttributeValue(n,o){const i=this.renderer,s=this.el.nativeElement;null!==o?i.setAttribute(s,n,o):i.removeAttribute(s,n)}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})}}return(e=t).\u0275fac=function(n){return new(n||e)(I(St),I(Mr),function Qs(e){return function z0(e,t){if("class"===t)return e.classes;if("style"===t)return e.styles;const r=e.attrs;if(r){const n=r.length;let o=0;for(;o{var e;class t{get isActive(){return this._isActive}constructor(n,o,i,s,a){this.router=n,this.element=o,this.renderer=i,this.cdr=s,this.link=a,this.classes=[],this._isActive=!1,this.routerLinkActiveOptions={exact:!1},this.isActiveChange=new Ee,this.routerEventsSubscription=n.events.subscribe(l=>{l instanceof kn&&this.update()})}ngAfterContentInit(){V(this.links.changes,V(null)).pipe(xr()).subscribe(n=>{this.update(),this.subscribeToEachLinkOnChanges()})}subscribeToEachLinkOnChanges(){this.linkInputChangesSubscription?.unsubscribe();const n=[...this.links.toArray(),this.link].filter(o=>!!o).map(o=>o.onChanges);this.linkInputChangesSubscription=Ne(n).pipe(xr()).subscribe(o=>{this._isActive!==this.isLinkActive(this.router)(o)&&this.update()})}set routerLinkActive(n){const o=Array.isArray(n)?n:n.split(" ");this.classes=o.filter(i=>!!i)}ngOnChanges(n){this.update()}ngOnDestroy(){this.routerEventsSubscription.unsubscribe(),this.linkInputChangesSubscription?.unsubscribe()}update(){!this.links||!this.router.navigated||queueMicrotask(()=>{const n=this.hasActiveLinks();this._isActive!==n&&(this._isActive=n,this.cdr.markForCheck(),this.classes.forEach(o=>{n?this.renderer.addClass(this.element.nativeElement,o):this.renderer.removeClass(this.element.nativeElement,o)}),n&&void 0!==this.ariaCurrentWhenActive?this.renderer.setAttribute(this.element.nativeElement,"aria-current",this.ariaCurrentWhenActive.toString()):this.renderer.removeAttribute(this.element.nativeElement,"aria-current"),this.isActiveChange.emit(n))})}isLinkActive(n){const o=function G2(e){return!!e.paths}(this.routerLinkActiveOptions)?this.routerLinkActiveOptions:this.routerLinkActiveOptions.exact||!1;return i=>!!i.urlTree&&n.isActive(i.urlTree,o)}hasActiveLinks(){const n=this.isLinkActive(this.router);return this.link&&n(this.link)||this.links.some(n)}}return(e=t).\u0275fac=function(n){return new(n||e)(I(St),I(bt),I(Mn),I(Ka),I(pn,8))},e.\u0275dir=B({type:e,selectors:[["","routerLinkActive",""]],contentQueries:function(n,o,i){if(1&n&&U_(i,pn,5),2&n){let s;H_(s=function B_(){return function xR(e,t){return e[tn].queries[t].queryList}(M(),eg())}())&&(o.links=s)}},inputs:{routerLinkActiveOptions:"routerLinkActiveOptions",ariaCurrentWhenActive:"ariaCurrentWhenActive",routerLinkActive:"routerLinkActive"},outputs:{isActiveChange:"isActiveChange"},exportAs:["routerLinkActive"],standalone:!0,features:[Rt]}),t})();class Nb{}let z2=(()=>{var e;class t{constructor(n,o,i,s,a){this.router=n,this.injector=i,this.preloadingStrategy=s,this.loader=a}setUpPreloading(){this.subscription=this.router.events.pipe(Qt(n=>n instanceof kn),So(()=>this.preload())).subscribe(()=>{})}preload(){return this.processRoutes(this.injector,this.router.config)}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}processRoutes(n,o){const i=[];for(const s of o){s.providers&&!s._injector&&(s._injector=xd(s.providers,n,`Route: ${s.path}`));const a=s._injector??n,l=s._loadedInjector??a;(s.loadChildren&&!s._loadedRoutes&&void 0===s.canLoad||s.loadComponent&&!s._loadedComponent)&&i.push(this.preloadConfig(a,s)),(s.children||s._loadedRoutes)&&i.push(this.processRoutes(l,s.children??s._loadedRoutes))}return Ne(i).pipe(xr())}preloadConfig(n,o){return this.preloadingStrategy.preload(o,()=>{let i;i=o.loadChildren&&void 0===o.canLoad?this.loader.loadChildren(n,o):V(null);const s=i.pipe(Ve(a=>null===a?V(void 0):(o._loadedRoutes=a.routes,o._loadedInjector=a.injector,this.processRoutes(a.injector??n,a.routes))));return o.loadComponent&&!o._loadedComponent?Ne([s,this.loader.loadComponent(o)]).pipe(xr()):s})}}return(e=t).\u0275fac=function(n){return new(n||e)(F(St),F(cC),F(Dt),F(Nb),F(oh))},e.\u0275prov=L({token:e,factory:e.\u0275fac,providedIn:"root"}),t})();const ih=new x("");let Pb=(()=>{var e;class t{constructor(n,o,i,s,a={}){this.urlSerializer=n,this.transitions=o,this.viewportScroller=i,this.zone=s,this.options=a,this.lastId=0,this.lastSource="imperative",this.restoredId=0,this.store={},a.scrollPositionRestoration=a.scrollPositionRestoration||"disabled",a.anchorScrolling=a.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(n=>{n instanceof Sl?(this.store[this.lastId]=this.viewportScroller.getScrollPosition(),this.lastSource=n.navigationTrigger,this.restoredId=n.restoredState?n.restoredState.navigationId:0):n instanceof kn?(this.lastId=n.id,this.scheduleScrollEvent(n,this.urlSerializer.parse(n.urlAfterRedirects).fragment)):n instanceof xo&&0===n.code&&(this.lastSource=void 0,this.restoredId=0,this.scheduleScrollEvent(n,this.urlSerializer.parse(n.url).fragment))})}consumeScrollEvents(){return this.transitions.events.subscribe(n=>{n instanceof ob&&(n.position?"top"===this.options.scrollPositionRestoration?this.viewportScroller.scrollToPosition([0,0]):"enabled"===this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition(n.position):n.anchor&&"enabled"===this.options.anchorScrolling?this.viewportScroller.scrollToAnchor(n.anchor):"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition([0,0]))})}scheduleScrollEvent(n,o){this.zone.runOutsideAngular(()=>{setTimeout(()=>{this.zone.run(()=>{this.transitions.events.next(new ob(n,"popstate"===this.lastSource?this.store[this.restoredId]:null,o))})},0)})}ngOnDestroy(){this.routerEventsSubscription?.unsubscribe(),this.scrollEventsSubscription?.unsubscribe()}}return(e=t).\u0275fac=function(n){!function nv(){throw new Error("invalid")}()},e.\u0275prov=L({token:e,factory:e.\u0275fac}),t})();function Ln(e,t){return{\u0275kind:e,\u0275providers:t}}function kb(){const e=A(wt);return t=>{const r=e.get(Eo);if(t!==r.components[0])return;const n=e.get(St),o=e.get(Fb);1===e.get(sh)&&n.initialNavigation(),e.get(Lb,null,Y.Optional)?.setUpPreloading(),e.get(ih,null,Y.Optional)?.init(),n.resetRootComponentType(r.componentTypes[0]),o.closed||(o.next(),o.complete(),o.unsubscribe())}}const Fb=new x("",{factory:()=>new Lt}),sh=new x("",{providedIn:"root",factory:()=>1}),Lb=new x("");function Y2(e){return Ln(0,[{provide:Lb,useExisting:z2},{provide:Nb,useExisting:e}])}const Vb=new x("ROUTER_FORROOT_GUARD"),X2=[uf,{provide:Ji,useClass:Hf},St,os,{provide:Mr,useFactory:function Ob(e){return e.routerState.root},deps:[St]},oh,[]];function J2(){return new mC("Router",St)}let jb=(()=>{var e;class t{constructor(n){}static forRoot(n,o){return{ngModule:t,providers:[X2,[],{provide:ko,multi:!0,useValue:n},{provide:Vb,useFactory:nL,deps:[[St,new Ks,new ea]]},{provide:Fl,useValue:o||{}},o?.useHash?{provide:Cr,useClass:uP}:{provide:Cr,useClass:zC},{provide:ih,useFactory:()=>{const e=A(TO),t=A(ge),r=A(Fl),n=A(kl),o=A(Ji);return r.scrollOffset&&e.setOffset(r.scrollOffset),new Pb(o,n,e,t,r)}},o?.preloadingStrategy?Y2(o.preloadingStrategy).\u0275providers:[],{provide:mC,multi:!0,useFactory:J2},o?.initialNavigation?rL(o):[],o?.bindToComponentInputs?Ln(8,[db,{provide:xl,useExisting:db}]).\u0275providers:[],[{provide:Hb,useFactory:kb},{provide:Jd,multi:!0,useExisting:Hb}]]}}static forChild(n){return{ngModule:t,providers:[{provide:ko,multi:!0,useValue:n}]}}}return(e=t).\u0275fac=function(n){return new(n||e)(F(Vb,8))},e.\u0275mod=Cn({type:e}),e.\u0275inj=Kt({}),t})();function nL(e){return"guarded"}function rL(e){return["disabled"===e.initialNavigation?Ln(3,[{provide:Gd,multi:!0,useFactory:()=>{const t=A(St);return()=>{t.setUpLocationChangeListener()}}},{provide:sh,useValue:2}]).\u0275providers:[],"enabledBlocking"===e.initialNavigation?Ln(2,[{provide:sh,useValue:0},{provide:Gd,multi:!0,deps:[wt],useFactory:t=>{const r=t.get(lP,Promise.resolve());return()=>r.then(()=>new Promise(n=>{const o=t.get(St),i=t.get(Fb);Ab(o,()=>{n(!0)}),t.get(kl).afterPreactivation=()=>(n(!0),i.closed?V(void 0):i),o.initialNavigation()}))}}]).\u0275providers:[]]}const Hb=new x(""),iL=function(){return["/pro"]};let sL=(()=>{var e;class t{constructor(){this.years=(new Date).getFullYear()-2009}}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275cmp=vt({type:e,selectors:[["app-footer"]],standalone:!0,features:[Mt],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",2,"max-height","300px"],[1,"col-xs-12","col-md-8"],[1,"fa-solid","fa-heart","githubheart"],["href","https://github.com/sponsors/danielpalme","target","_blank"],[3,"routerLink"],[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(n,o){1&n&&(h(0,"footer",0)(1,"div",1)(2,"div",2)(3,"div",3)(4,"div",4),v(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 a code coverage report based on "),h(13,"i"),f(14,"PartCover"),p(),f(15," files."),v(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."),v(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 becoming a "),v(25,"i",7),f(26,"\xa0"),h(27,"a",8),f(28,"GitHub sponsor"),p(),f(29," or by buying a "),h(30,"a",9),f(31,"PRO license"),p(),f(32,". "),p()()()()(),h(33,"div",2)(34,"div",3),v(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(),v(45,"br"),h(46,"a",12),f(47,"Wiki"),p(),v(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(),v(57,"br"),h(58,"a",15),f(59,"ReportGenerator"),p(),v(60,"br"),h(61,"a",16),f(62,"dotnet-reportgenerator-globaltool"),p(),v(63,"br"),h(64,"a",17),f(65,"ReportGenerator.Core"),p(),v(66,"br")(67,"br"),h(68,"i"),f(69,"Integration"),p(),v(70,"br"),h(71,"a",18),f(72,"GitHub actions"),p(),v(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),v(81,"i",21),f(82," GitHub"),p(),v(83,"br"),h(84,"a",22),v(85,"i",23),f(86," Twitter"),p(),v(87,"br")(88,"br"),h(89,"a",24),f(90,"Privacy"),p(),v(91,"br"),h(92,"a",25),f(93,"Imprint"),p()()()()()()),2&n&&(_(19),An(" Fast forward ",o.years," years, I'm still maintaining "),_(11),w("routerLink",K(2,iL)))},dependencies:[pn],styles:["footer[_ngcontent-%COMP%]{background-color:#464646}footer[_ngcontent-%COMP%], a[_ngcontent-%COMP%]{color:#fff}"]}),t})();const Ub=function(){return["/"]},aL=function(e){return{show:e}},Fo=function(){return["link-active"]},Bb=function(){return{exact:!0}},lL=function(){return["/features"]},cL=function(){return["/getstarted"]},uL=function(){return["/usage"]},dL=function(){return["/contact"]},fL=function(){return["/pro"]};let hL=(()=>{var e;class t{constructor(){this.isExpanded=!1}collapse(){this.isExpanded=!1}toggle(){this.isExpanded=!this.isExpanded}}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275cmp=vt({type:e,selectors:[["app-nav-menu"]],standalone:!0,features:[Mt],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(n,o){1&n&&(h(0,"header",0)(1,"nav",1)(2,"div",2)(3,"a",3),v(4,"img",4),h(5,"span",5),f(6,"ReportGenerator"),p()(),h(7,"button",6),R("click",function(){return o.toggle()}),v(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()()()(),v(30,"hr",15),h(31,"ul",16)(32,"li",17)(33,"a",18),v(34,"i",19),h(35,"span",20),f(36,"GitHub"),p()()(),h(37,"li",17)(38,"a",21),v(39,"i",22),h(40,"span",20),f(41,"Twitter"),p()()()()()()()()),2&n&&(_(3),w("routerLink",K(17,Ub)),_(4),Gt("aria-expanded",o.isExpanded),_(2),w("ngClass",Vi(18,aL,o.isExpanded)),_(2),w("routerLinkActive",K(20,Fo))("routerLinkActiveOptions",K(21,Bb)),_(1),w("routerLink",K(22,Ub)),_(2),w("routerLinkActive",K(23,Fo))("routerLinkActiveOptions",K(24,Bb)),_(1),w("routerLink",K(25,lL)),_(2),w("routerLinkActive",K(26,Fo)),_(1),w("routerLink",K(27,cL)),_(2),w("routerLinkActive",K(28,Fo)),_(1),w("routerLink",K(29,uL)),_(2),w("routerLinkActive",K(30,Fo)),_(1),w("routerLink",K(31,dL)),_(2),w("routerLinkActive",K(32,Fo)),_(1),w("routerLink",K(33,fL)))},dependencies:[pn,pl,Rb],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}"]}),t})(),pL=(()=>{var e;class t{constructor(n,o,i){this.dom=n,this.router=o,this.activatedRoute=i}ngOnInit(){this.router.events.pipe(Qt(n=>n instanceof kn),ee(()=>this.activatedRoute),ee(n=>{for(;n.firstChild;)n=n.firstChild;return n}),Qt(n=>"primary"===n.outlet),Ve(n=>n.data)).subscribe(n=>{const o=`${window.location.protocol}//${window.location.hostname}`;this.updateCanonicalUrl(n.canonical?o+n.canonical:o+this.router.url)})}updateCanonicalUrl(n){const o=this.dom.getElementsByTagName("head")[0];var i=this.dom.querySelector("link[rel='canonical']")||null;null==i&&(i=this.dom.createElement("link"),o.appendChild(i)),i.setAttribute("rel","canonical"),i.setAttribute("href",n)}}return(e=t).\u0275fac=function(n){return new(n||e)(I(pt),I(St),I(Mr))},e.\u0275cmp=vt({type:e,selectors:[["app-root"]],standalone:!0,features:[Mt],decls:3,vars:0,template:function(n,o){1&n&&v(0,"app-nav-menu")(1,"router-outlet")(2,"app-footer")},dependencies:[hL,Jf,sL],encapsulation:2}),t})(),$b=(()=>{var e;class t{constructor(n,o){this._renderer=n,this._elementRef=o,this.onChange=i=>{},this.onTouched=()=>{}}setProperty(n,o){this._renderer.setProperty(this._elementRef.nativeElement,n,o)}registerOnTouched(n){this.onTouched=n}registerOnChange(n){this.onChange=n}setDisabledState(n){this.setProperty("disabled",n)}}return(e=t).\u0275fac=function(n){return new(n||e)(I(Mn),I(bt))},e.\u0275dir=B({type:e}),t})(),Ir=(()=>{var e;class t extends $b{}return(e=t).\u0275fac=function(){let r;return function(o){return(r||(r=$e(e)))(o||e)}}(),e.\u0275dir=B({type:e,features:[le]}),t})();const gn=new x("NgValueAccessor"),vL={provide:gn,useExisting:he(()=>Lo),multi:!0},_L=new x("CompositionEventMode");let Lo=(()=>{var e;class t extends $b{constructor(n,o,i){super(n,o),this._compositionMode=i,this._composing=!1,null==this._compositionMode&&(this._compositionMode=!function yL(){const e=Yn()?Yn().getUserAgent():"";return/android (\d+)/.test(e.toLowerCase())}())}writeValue(n){this.setProperty("value",n??"")}_handleInput(n){(!this._compositionMode||this._compositionMode&&!this._composing)&&this.onChange(n)}_compositionStart(){this._composing=!0}_compositionEnd(n){this._composing=!1,this._compositionMode&&this.onChange(n)}}return(e=t).\u0275fac=function(n){return new(n||e)(I(Mn),I(bt),I(_L,8))},e.\u0275dir=B({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(n,o){1&n&&R("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:[De([vL]),le]}),t})();function Jn(e){return null==e||("string"==typeof e||Array.isArray(e))&&0===e.length}const Ye=new x("NgValidators"),Kn=new x("NgAsyncValidators"),CL=/^(?=.{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 Zb(e){return Jn(e.value)?{required:!0}:null}function Qb(e){return Jn(e.value)||CL.test(e.value)?null:{email:!0}}function Ll(e){return null}function ew(e){return null!=e}function tw(e){return Ri(e)?Ne(e):e}function nw(e){let t={};return e.forEach(r=>{t=null!=r?{...t,...r}:t}),0===Object.keys(t).length?null:t}function rw(e,t){return t.map(r=>r(e))}function ow(e){return e.map(t=>function DL(e){return!e.validate}(t)?t:r=>t.validate(r))}function ah(e){return null!=e?function iw(e){if(!e)return null;const t=e.filter(ew);return 0==t.length?null:function(r){return nw(rw(r,t))}}(ow(e)):null}function lh(e){return null!=e?function sw(e){if(!e)return null;const t=e.filter(ew);return 0==t.length?null:function(r){return function gL(...e){const t=tp(e),{args:r,keys:n}=gD(e),o=new Ie(i=>{const{length:s}=r;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(n?vD(n,a):a),i.complete())}))}});return t?o.pipe(mD(t)):o}(rw(r,t).map(tw)).pipe(ee(nw))}}(ow(e)):null}function aw(e,t){return null===e?[t]:Array.isArray(e)?[...e,t]:[e,t]}function ch(e){return e?Array.isArray(e)?e:[e]:[]}function Vl(e,t){return Array.isArray(e)?e.includes(t):e===t}function uw(e,t){const r=ch(t);return ch(e).forEach(o=>{Vl(r,o)||r.push(o)}),r}function dw(e,t){return ch(t).filter(r=>!Vl(e,r))}class fw{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(t){this._rawValidators=t||[],this._composedValidatorFn=ah(this._rawValidators)}_setAsyncValidators(t){this._rawAsyncValidators=t||[],this._composedAsyncValidatorFn=lh(this._rawAsyncValidators)}get validator(){return this._composedValidatorFn||null}get asyncValidator(){return this._composedAsyncValidatorFn||null}_registerOnDestroy(t){this._onDestroyCallbacks.push(t)}_invokeOnDestroyCallbacks(){this._onDestroyCallbacks.forEach(t=>t()),this._onDestroyCallbacks=[]}reset(t=void 0){this.control&&this.control.reset(t)}hasError(t,r){return!!this.control&&this.control.hasError(t,r)}getError(t,r){return this.control?this.control.getError(t,r):null}}class ot extends fw{get formDirective(){return null}get path(){return null}}class er extends fw{constructor(){super(...arguments),this._parent=null,this.name=null,this.valueAccessor=null}}class hw{constructor(t){this._cd=t}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 jl=(()=>{var e;class t extends hw{constructor(n){super(n)}}return(e=t).\u0275fac=function(n){return new(n||e)(I(er,2))},e.\u0275dir=B({type:e,selectors:[["","formControlName",""],["","ngModel",""],["","formControl",""]],hostVars:14,hostBindings:function(n,o){2&n&&Ha("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:[le]}),t})(),Hl=(()=>{var e;class t extends hw{constructor(n){super(n)}}return(e=t).\u0275fac=function(n){return new(n||e)(I(ot,10))},e.\u0275dir=B({type:e,selectors:[["","formGroupName",""],["","formArrayName",""],["","ngModelGroup",""],["","formGroup",""],["form",3,"ngNoForm",""],["","ngForm",""]],hostVars:16,hostBindings:function(n,o){2&n&&Ha("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:[le]}),t})();const ds="VALID",Bl="INVALID",Vo="PENDING",fs="DISABLED";function fh(e){return($l(e)?e.validators:e)||null}function hh(e,t){return($l(t)?t.asyncValidators:e)||null}function $l(e){return null!=e&&!Array.isArray(e)&&"object"==typeof e}class vw{constructor(t,r){this._pendingDirty=!1,this._hasOwnPendingAsyncValidator=!1,this._pendingTouched=!1,this._onCollectionChange=()=>{},this._parent=null,this.pristine=!0,this.touched=!1,this._onDisabledChange=[],this._assignValidators(t),this._assignAsyncValidators(r)}get validator(){return this._composedValidatorFn}set validator(t){this._rawValidators=this._composedValidatorFn=t}get asyncValidator(){return this._composedAsyncValidatorFn}set asyncValidator(t){this._rawAsyncValidators=this._composedAsyncValidatorFn=t}get parent(){return this._parent}get valid(){return this.status===ds}get invalid(){return this.status===Bl}get pending(){return this.status==Vo}get disabled(){return this.status===fs}get enabled(){return this.status!==fs}get dirty(){return!this.pristine}get untouched(){return!this.touched}get updateOn(){return this._updateOn?this._updateOn:this.parent?this.parent.updateOn:"change"}setValidators(t){this._assignValidators(t)}setAsyncValidators(t){this._assignAsyncValidators(t)}addValidators(t){this.setValidators(uw(t,this._rawValidators))}addAsyncValidators(t){this.setAsyncValidators(uw(t,this._rawAsyncValidators))}removeValidators(t){this.setValidators(dw(t,this._rawValidators))}removeAsyncValidators(t){this.setAsyncValidators(dw(t,this._rawAsyncValidators))}hasValidator(t){return Vl(this._rawValidators,t)}hasAsyncValidator(t){return Vl(this._rawAsyncValidators,t)}clearValidators(){this.validator=null}clearAsyncValidators(){this.asyncValidator=null}markAsTouched(t={}){this.touched=!0,this._parent&&!t.onlySelf&&this._parent.markAsTouched(t)}markAllAsTouched(){this.markAsTouched({onlySelf:!0}),this._forEachChild(t=>t.markAllAsTouched())}markAsUntouched(t={}){this.touched=!1,this._pendingTouched=!1,this._forEachChild(r=>{r.markAsUntouched({onlySelf:!0})}),this._parent&&!t.onlySelf&&this._parent._updateTouched(t)}markAsDirty(t={}){this.pristine=!1,this._parent&&!t.onlySelf&&this._parent.markAsDirty(t)}markAsPristine(t={}){this.pristine=!0,this._pendingDirty=!1,this._forEachChild(r=>{r.markAsPristine({onlySelf:!0})}),this._parent&&!t.onlySelf&&this._parent._updatePristine(t)}markAsPending(t={}){this.status=Vo,!1!==t.emitEvent&&this.statusChanges.emit(this.status),this._parent&&!t.onlySelf&&this._parent.markAsPending(t)}disable(t={}){const r=this._parentMarkedDirty(t.onlySelf);this.status=fs,this.errors=null,this._forEachChild(n=>{n.disable({...t,onlySelf:!0})}),this._updateValue(),!1!==t.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors({...t,skipPristineCheck:r}),this._onDisabledChange.forEach(n=>n(!0))}enable(t={}){const r=this._parentMarkedDirty(t.onlySelf);this.status=ds,this._forEachChild(n=>{n.enable({...t,onlySelf:!0})}),this.updateValueAndValidity({onlySelf:!0,emitEvent:t.emitEvent}),this._updateAncestors({...t,skipPristineCheck:r}),this._onDisabledChange.forEach(n=>n(!1))}_updateAncestors(t){this._parent&&!t.onlySelf&&(this._parent.updateValueAndValidity(t),t.skipPristineCheck||this._parent._updatePristine(),this._parent._updateTouched())}setParent(t){this._parent=t}getRawValue(){return this.value}updateValueAndValidity(t={}){this._setInitialStatus(),this._updateValue(),this.enabled&&(this._cancelExistingSubscription(),this.errors=this._runValidator(),this.status=this._calculateStatus(),(this.status===ds||this.status===Vo)&&this._runAsyncValidator(t.emitEvent)),!1!==t.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._parent&&!t.onlySelf&&this._parent.updateValueAndValidity(t)}_updateTreeValidity(t={emitEvent:!0}){this._forEachChild(r=>r._updateTreeValidity(t)),this.updateValueAndValidity({onlySelf:!0,emitEvent:t.emitEvent})}_setInitialStatus(){this.status=this._allControlsDisabled()?fs:ds}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(t){if(this.asyncValidator){this.status=Vo,this._hasOwnPendingAsyncValidator=!0;const r=tw(this.asyncValidator(this));this._asyncValidationSubscription=r.subscribe(n=>{this._hasOwnPendingAsyncValidator=!1,this.setErrors(n,{emitEvent:t})})}}_cancelExistingSubscription(){this._asyncValidationSubscription&&(this._asyncValidationSubscription.unsubscribe(),this._hasOwnPendingAsyncValidator=!1)}setErrors(t,r={}){this.errors=t,this._updateControlsErrors(!1!==r.emitEvent)}get(t){let r=t;return null==r||(Array.isArray(r)||(r=r.split(".")),0===r.length)?null:r.reduce((n,o)=>n&&n._find(o),this)}getError(t,r){const n=r?this.get(r):this;return n&&n.errors?n.errors[t]:null}hasError(t,r){return!!this.getError(t,r)}get root(){let t=this;for(;t._parent;)t=t._parent;return t}_updateControlsErrors(t){this.status=this._calculateStatus(),t&&this.statusChanges.emit(this.status),this._parent&&this._parent._updateControlsErrors(t)}_initObservables(){this.valueChanges=new Ee,this.statusChanges=new Ee}_calculateStatus(){return this._allControlsDisabled()?fs:this.errors?Bl:this._hasOwnPendingAsyncValidator||this._anyControlsHaveStatus(Vo)?Vo:this._anyControlsHaveStatus(Bl)?Bl:ds}_anyControlsHaveStatus(t){return this._anyControls(r=>r.status===t)}_anyControlsDirty(){return this._anyControls(t=>t.dirty)}_anyControlsTouched(){return this._anyControls(t=>t.touched)}_updatePristine(t={}){this.pristine=!this._anyControlsDirty(),this._parent&&!t.onlySelf&&this._parent._updatePristine(t)}_updateTouched(t={}){this.touched=this._anyControlsTouched(),this._parent&&!t.onlySelf&&this._parent._updateTouched(t)}_registerOnCollectionChange(t){this._onCollectionChange=t}_setUpdateStrategy(t){$l(t)&&null!=t.updateOn&&(this._updateOn=t.updateOn)}_parentMarkedDirty(t){return!t&&!(!this._parent||!this._parent.dirty)&&!this._parent._anyControlsDirty()}_find(t){return null}_assignValidators(t){this._rawValidators=Array.isArray(t)?t.slice():t,this._composedValidatorFn=function ML(e){return Array.isArray(e)?ah(e):e||null}(this._rawValidators)}_assignAsyncValidators(t){this._rawAsyncValidators=Array.isArray(t)?t.slice():t,this._composedAsyncValidatorFn=function IL(e){return Array.isArray(e)?lh(e):e||null}(this._rawAsyncValidators)}}class ph extends vw{constructor(t,r,n){super(fh(r),hh(n,r)),this.controls=t,this._initObservables(),this._setUpdateStrategy(r),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}registerControl(t,r){return this.controls[t]?this.controls[t]:(this.controls[t]=r,r.setParent(this),r._registerOnCollectionChange(this._onCollectionChange),r)}addControl(t,r,n={}){this.registerControl(t,r),this.updateValueAndValidity({emitEvent:n.emitEvent}),this._onCollectionChange()}removeControl(t,r={}){this.controls[t]&&this.controls[t]._registerOnCollectionChange(()=>{}),delete this.controls[t],this.updateValueAndValidity({emitEvent:r.emitEvent}),this._onCollectionChange()}setControl(t,r,n={}){this.controls[t]&&this.controls[t]._registerOnCollectionChange(()=>{}),delete this.controls[t],r&&this.registerControl(t,r),this.updateValueAndValidity({emitEvent:n.emitEvent}),this._onCollectionChange()}contains(t){return this.controls.hasOwnProperty(t)&&this.controls[t].enabled}setValue(t,r={}){(function mw(e,t,r){e._forEachChild((n,o)=>{if(void 0===r[o])throw new S(1002,"")})})(this,0,t),Object.keys(t).forEach(n=>{(function gw(e,t,r){const n=e.controls;if(!(t?Object.keys(n):n).length)throw new S(1e3,"");if(!n[r])throw new S(1001,"")})(this,!0,n),this.controls[n].setValue(t[n],{onlySelf:!0,emitEvent:r.emitEvent})}),this.updateValueAndValidity(r)}patchValue(t,r={}){null!=t&&(Object.keys(t).forEach(n=>{const o=this.controls[n];o&&o.patchValue(t[n],{onlySelf:!0,emitEvent:r.emitEvent})}),this.updateValueAndValidity(r))}reset(t={},r={}){this._forEachChild((n,o)=>{n.reset(t[o],{onlySelf:!0,emitEvent:r.emitEvent})}),this._updatePristine(r),this._updateTouched(r),this.updateValueAndValidity(r)}getRawValue(){return this._reduceChildren({},(t,r,n)=>(t[n]=r.getRawValue(),t))}_syncPendingControls(){let t=this._reduceChildren(!1,(r,n)=>!!n._syncPendingControls()||r);return t&&this.updateValueAndValidity({onlySelf:!0}),t}_forEachChild(t){Object.keys(this.controls).forEach(r=>{const n=this.controls[r];n&&t(n,r)})}_setUpControls(){this._forEachChild(t=>{t.setParent(this),t._registerOnCollectionChange(this._onCollectionChange)})}_updateValue(){this.value=this._reduceValue()}_anyControls(t){for(const[r,n]of Object.entries(this.controls))if(this.contains(r)&&t(n))return!0;return!1}_reduceValue(){return this._reduceChildren({},(r,n,o)=>((n.enabled||this.disabled)&&(r[o]=n.value),r))}_reduceChildren(t,r){let n=t;return this._forEachChild((o,i)=>{n=r(n,o,i)}),n}_allControlsDisabled(){for(const t of Object.keys(this.controls))if(this.controls[t].enabled)return!1;return Object.keys(this.controls).length>0||this.disabled}_find(t){return this.controls.hasOwnProperty(t)?this.controls[t]:null}}const jo=new x("CallSetDisabledState",{providedIn:"root",factory:()=>Gl}),Gl="always";function hs(e,t,r=Gl){gh(e,t),t.valueAccessor.writeValue(e.value),(e.disabled||"always"===r)&&t.valueAccessor.setDisabledState?.(e.disabled),function AL(e,t){t.valueAccessor.registerOnChange(r=>{e._pendingValue=r,e._pendingChange=!0,e._pendingDirty=!0,"change"===e.updateOn&&yw(e,t)})}(e,t),function RL(e,t){const r=(n,o)=>{t.valueAccessor.writeValue(n),o&&t.viewToModelUpdate(n)};e.registerOnChange(r),t._registerOnDestroy(()=>{e._unregisterOnChange(r)})}(e,t),function xL(e,t){t.valueAccessor.registerOnTouched(()=>{e._pendingTouched=!0,"blur"===e.updateOn&&e._pendingChange&&yw(e,t),"submit"!==e.updateOn&&e.markAsTouched()})}(e,t),function TL(e,t){if(t.valueAccessor.setDisabledState){const r=n=>{t.valueAccessor.setDisabledState(n)};e.registerOnDisabledChange(r),t._registerOnDestroy(()=>{e._unregisterOnDisabledChange(r)})}}(e,t)}function Wl(e,t){e.forEach(r=>{r.registerOnValidatorChange&&r.registerOnValidatorChange(t)})}function gh(e,t){const r=function lw(e){return e._rawValidators}(e);null!==t.validator?e.setValidators(aw(r,t.validator)):"function"==typeof r&&e.setValidators([r]);const n=function cw(e){return e._rawAsyncValidators}(e);null!==t.asyncValidator?e.setAsyncValidators(aw(n,t.asyncValidator)):"function"==typeof n&&e.setAsyncValidators([n]);const o=()=>e.updateValueAndValidity();Wl(t._rawValidators,o),Wl(t._rawAsyncValidators,o)}function yw(e,t){e._pendingDirty&&e.markAsDirty(),e.setValue(e._pendingValue,{emitModelToViewChange:!1}),t.viewToModelUpdate(e._pendingValue),e._pendingChange=!1}const FL={provide:ot,useExisting:he(()=>Ho)},ps=(()=>Promise.resolve())();let Ho=(()=>{var e;class t extends ot{constructor(n,o,i){super(),this.callSetDisabledState=i,this.submitted=!1,this._directives=new Set,this.ngSubmit=new Ee,this.form=new ph({},ah(n),lh(o))}ngAfterViewInit(){this._setUpdateStrategy()}get formDirective(){return this}get control(){return this.form}get path(){return[]}get controls(){return this.form.controls}addControl(n){ps.then(()=>{const o=this._findContainer(n.path);n.control=o.registerControl(n.name,n.control),hs(n.control,n,this.callSetDisabledState),n.control.updateValueAndValidity({emitEvent:!1}),this._directives.add(n)})}getControl(n){return this.form.get(n.path)}removeControl(n){ps.then(()=>{const o=this._findContainer(n.path);o&&o.removeControl(n.name),this._directives.delete(n)})}addFormGroup(n){ps.then(()=>{const o=this._findContainer(n.path),i=new ph({});(function _w(e,t){gh(e,t)})(i,n),o.registerControl(n.name,i),i.updateValueAndValidity({emitEvent:!1})})}removeFormGroup(n){ps.then(()=>{const o=this._findContainer(n.path);o&&o.removeControl(n.name)})}getFormGroup(n){return this.form.get(n.path)}updateModel(n,o){ps.then(()=>{this.form.get(n.path).setValue(o)})}setValue(n){this.control.setValue(n)}onSubmit(n){return this.submitted=!0,function Cw(e,t){e._syncPendingControls(),t.forEach(r=>{const n=r.control;"submit"===n.updateOn&&n._pendingChange&&(r.viewToModelUpdate(n._pendingValue),n._pendingChange=!1)})}(this.form,this._directives),this.ngSubmit.emit(n),"dialog"===n?.target?.method}onReset(){this.resetForm()}resetForm(n=void 0){this.form.reset(n),this.submitted=!1}_setUpdateStrategy(){this.options&&null!=this.options.updateOn&&(this.form._updateOn=this.options.updateOn)}_findContainer(n){return n.pop(),n.length?this.form.get(n):this.form}}return(e=t).\u0275fac=function(n){return new(n||e)(I(Ye,10),I(Kn,10),I(jo,8))},e.\u0275dir=B({type:e,selectors:[["form",3,"ngNoForm","",3,"formGroup",""],["ng-form"],["","ngForm",""]],hostBindings:function(n,o){1&n&&R("submit",function(s){return o.onSubmit(s)})("reset",function(){return o.onReset()})},inputs:{options:["ngFormOptions","options"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],features:[De([FL]),le]}),t})();function Dw(e,t){const r=e.indexOf(t);r>-1&&e.splice(r,1)}function bw(e){return"object"==typeof e&&null!==e&&2===Object.keys(e).length&&"value"in e&&"disabled"in e}const ww=class extends vw{constructor(t=null,r,n){super(fh(r),hh(n,r)),this.defaultValue=null,this._onChange=[],this._pendingChange=!1,this._applyFormState(t),this._setUpdateStrategy(r),this._initObservables(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator}),$l(r)&&(r.nonNullable||r.initialValueIsDefault)&&(this.defaultValue=bw(t)?t.value:t)}setValue(t,r={}){this.value=this._pendingValue=t,this._onChange.length&&!1!==r.emitModelToViewChange&&this._onChange.forEach(n=>n(this.value,!1!==r.emitViewToModelChange)),this.updateValueAndValidity(r)}patchValue(t,r={}){this.setValue(t,r)}reset(t=this.defaultValue,r={}){this._applyFormState(t),this.markAsPristine(r),this.markAsUntouched(r),this.setValue(this.value,r),this._pendingChange=!1}_updateValue(){}_anyControls(t){return!1}_allControlsDisabled(){return this.disabled}registerOnChange(t){this._onChange.push(t)}_unregisterOnChange(t){Dw(this._onChange,t)}registerOnDisabledChange(t){this._onDisabledChange.push(t)}_unregisterOnDisabledChange(t){Dw(this._onDisabledChange,t)}_forEachChild(t){}_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(t){bw(t)?(this.value=this._pendingValue=t.value,t.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this.value=this._pendingValue=t}},jL={provide:er,useExisting:he(()=>gs)},Iw=(()=>Promise.resolve())();let gs=(()=>{var e;class t extends er{constructor(n,o,i,s,a,l){super(),this._changeDetectorRef=a,this.callSetDisabledState=l,this.control=new ww,this._registered=!1,this.name="",this.update=new Ee,this._parent=n,this._setValidators(o),this._setAsyncValidators(i),this.valueAccessor=function yh(e,t){if(!t)return null;let r,n,o;return Array.isArray(t),t.forEach(i=>{i.constructor===Lo?r=i:function OL(e){return Object.getPrototypeOf(e.constructor)===Ir}(i)?n=i:o=i}),o||n||r||null}(0,s)}ngOnChanges(n){if(this._checkForErrors(),!this._registered||"name"in n){if(this._registered&&(this._checkName(),this.formDirective)){const o=n.name.previousValue;this.formDirective.removeControl({name:o,path:this._getPath(o)})}this._setUpControl()}"isDisabled"in n&&this._updateDisabled(n),function vh(e,t){if(!e.hasOwnProperty("model"))return!1;const r=e.model;return!!r.isFirstChange()||!Object.is(t,r.currentValue)}(n,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(n){this.viewModel=n,this.update.emit(n)}_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(){hs(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(n){Iw.then(()=>{this.control.setValue(n,{emitViewToModelChange:!1}),this._changeDetectorRef?.markForCheck()})}_updateDisabled(n){const o=n.isDisabled.currentValue,i=0!==o&&Mo(o);Iw.then(()=>{i&&!this.control.disabled?this.control.disable():!i&&this.control.disabled&&this.control.enable(),this._changeDetectorRef?.markForCheck()})}_getPath(n){return this._parent?function zl(e,t){return[...t.path,e]}(n,this._parent):[n]}}return(e=t).\u0275fac=function(n){return new(n||e)(I(ot,9),I(Ye,10),I(Kn,10),I(gn,10),I(Ka,8),I(jo,8))},e.\u0275dir=B({type:e,selectors:[["","ngModel","",3,"formControlName","",3,"formControl",""]],inputs:{name:"name",isDisabled:["disabled","isDisabled"],model:["ngModel","model"],options:["ngModelOptions","options"]},outputs:{update:"ngModelChange"},exportAs:["ngModel"],features:[De([jL]),le,Rt]}),t})(),Yl=(()=>{var e;class t{}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275dir=B({type:e,selectors:[["form",3,"ngNoForm","",3,"ngNativeValidate",""]],hostAttrs:["novalidate",""]}),t})();const UL={provide:gn,useExisting:he(()=>_h),multi:!0};let Tw=(()=>{var e;class t{}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275mod=Cn({type:e}),e.\u0275inj=Kt({}),t})(),BL=(()=>{var e;class t{constructor(){this._accessors=[]}add(n,o){this._accessors.push([n,o])}remove(n){for(let o=this._accessors.length-1;o>=0;--o)if(this._accessors[o][1]===n)return void this._accessors.splice(o,1)}select(n){this._accessors.forEach(o=>{this._isSameGroup(o,n)&&o[1]!==n&&o[1].fireUncheck(n.value)})}_isSameGroup(n,o){return!!n[0].control&&n[0]._parent===o._control._parent&&n[1].name===o.name}}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275prov=L({token:e,factory:e.\u0275fac,providedIn:Tw}),t})(),_h=(()=>{var e;class t extends Ir{constructor(n,o,i,s){super(n,o),this._registry=i,this._injector=s,this.setDisabledStateFired=!1,this.onChange=()=>{},this.callSetDisabledState=A(jo,{optional:!0})??Gl}ngOnInit(){this._control=this._injector.get(er),this._checkName(),this._registry.add(this._control,this)}ngOnDestroy(){this._registry.remove(this)}writeValue(n){this._state=n===this.value,this.setProperty("checked",this._state)}registerOnChange(n){this._fn=n,this.onChange=()=>{n(this.value),this._registry.select(this)}}setDisabledState(n){(this.setDisabledStateFired||n||"whenDisabledForLegacyCode"===this.callSetDisabledState)&&this.setProperty("disabled",n),this.setDisabledStateFired=!0}fireUncheck(n){this.writeValue(n)}_checkName(){!this.name&&this.formControlName&&(this.name=this.formControlName)}}return(e=t).\u0275fac=function(n){return new(n||e)(I(Mn),I(bt),I(BL),I(wt))},e.\u0275dir=B({type:e,selectors:[["input","type","radio","formControlName",""],["input","type","radio","formControl",""],["input","type","radio","ngModel",""]],hostBindings:function(n,o){1&n&&R("change",function(){return o.onChange()})("blur",function(){return o.onTouched()})},inputs:{name:"name",formControlName:"formControlName",value:"value"},features:[De([UL]),le]}),t})();const YL={provide:gn,useExisting:he(()=>Ql),multi:!0};function Ow(e,t){return null==e?`${t}`:(t&&"object"==typeof t&&(t="Object"),`${e}: ${t}`.slice(0,50))}let Ql=(()=>{var e;class t extends Ir{constructor(){super(...arguments),this._optionMap=new Map,this._idCounter=0,this._compareWith=Object.is}set compareWith(n){this._compareWith=n}writeValue(n){this.value=n;const i=Ow(this._getOptionId(n),n);this.setProperty("value",i)}registerOnChange(n){this.onChange=o=>{this.value=this._getOptionValue(o),n(this.value)}}_registerOption(){return(this._idCounter++).toString()}_getOptionId(n){for(const o of this._optionMap.keys())if(this._compareWith(this._optionMap.get(o),n))return o;return null}_getOptionValue(n){const o=function QL(e){return e.split(":")[0]}(n);return this._optionMap.has(o)?this._optionMap.get(o):n}}return(e=t).\u0275fac=function(){let r;return function(o){return(r||(r=$e(e)))(o||e)}}(),e.\u0275dir=B({type:e,selectors:[["select","formControlName","",3,"multiple",""],["select","formControl","",3,"multiple",""],["select","ngModel","",3,"multiple",""]],hostBindings:function(n,o){1&n&&R("change",function(s){return o.onChange(s.target.value)})("blur",function(){return o.onTouched()})},inputs:{compareWith:"compareWith"},features:[De([YL]),le]}),t})(),kw=(()=>{var e;class t{constructor(n,o,i){this._element=n,this._renderer=o,this._select=i,this._select&&(this.id=this._select._registerOption())}set ngValue(n){null!=this._select&&(this._select._optionMap.set(this.id,n),this._setElementValue(Ow(this.id,n)),this._select.writeValue(this._select.value))}set value(n){this._setElementValue(n),this._select&&this._select.writeValue(this._select.value)}_setElementValue(n){this._renderer.setProperty(this._element.nativeElement,"value",n)}ngOnDestroy(){this._select&&(this._select._optionMap.delete(this.id),this._select.writeValue(this._select.value))}}return(e=t).\u0275fac=function(n){return new(n||e)(I(bt),I(Mn),I(Ql,9))},e.\u0275dir=B({type:e,selectors:[["option"]],inputs:{ngValue:"ngValue",value:"value"}}),t})();const XL={provide:gn,useExisting:he(()=>wh),multi:!0};function Fw(e,t){return null==e?`${t}`:("string"==typeof t&&(t=`'${t}'`),t&&"object"==typeof t&&(t="Object"),`${e}: ${t}`.slice(0,50))}let wh=(()=>{var e;class t extends Ir{constructor(){super(...arguments),this._optionMap=new Map,this._idCounter=0,this._compareWith=Object.is}set compareWith(n){this._compareWith=n}writeValue(n){let o;if(this.value=n,Array.isArray(n)){const i=n.map(s=>this._getOptionId(s));o=(s,a)=>{s._setSelected(i.indexOf(a.toString())>-1)}}else o=(i,s)=>{i._setSelected(!1)};this._optionMap.forEach(o)}registerOnChange(n){this.onChange=o=>{const i=[],s=o.selectedOptions;if(void 0!==s){const a=s;for(let l=0;l{var e;class t{constructor(n,o,i){this._element=n,this._renderer=o,this._select=i,this._select&&(this.id=this._select._registerOption(this))}set ngValue(n){null!=this._select&&(this._value=n,this._setElementValue(Fw(this.id,n)),this._select.writeValue(this._select.value))}set value(n){this._select?(this._value=n,this._setElementValue(Fw(this.id,n)),this._select.writeValue(this._select.value)):this._setElementValue(n)}_setElementValue(n){this._renderer.setProperty(this._element.nativeElement,"value",n)}_setSelected(n){this._renderer.setProperty(this._element.nativeElement,"selected",n)}ngOnDestroy(){this._select&&(this._select._optionMap.delete(this.id),this._select.writeValue(this._select.value))}}return(e=t).\u0275fac=function(n){return new(n||e)(I(bt),I(Mn),I(wh,9))},e.\u0275dir=B({type:e,selectors:[["option"]],inputs:{ngValue:"ngValue",value:"value"}}),t})();let Sr=(()=>{var e;class t{constructor(){this._validator=Ll}ngOnChanges(n){if(this.inputName in n){const o=this.normalizeInput(n[this.inputName].currentValue);this._enabled=this.enabled(o),this._validator=this._enabled?this.createValidator(o):Ll,this._onChange&&this._onChange()}}validate(n){return this._validator(n)}registerOnValidatorChange(n){this._onChange=n}enabled(n){return null!=n}}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275dir=B({type:e,features:[Rt]}),t})();const tV={provide:Ye,useExisting:he(()=>Uo),multi:!0};let Uo=(()=>{var e;class t extends Sr{constructor(){super(...arguments),this.inputName="required",this.normalizeInput=Mo,this.createValidator=n=>Zb}enabled(n){return n}}return(e=t).\u0275fac=function(){let r;return function(o){return(r||(r=$e(e)))(o||e)}}(),e.\u0275dir=B({type:e,selectors:[["","required","","formControlName","",3,"type","checkbox"],["","required","","formControl","",3,"type","checkbox"],["","required","","ngModel","",3,"type","checkbox"]],hostVars:1,hostBindings:function(n,o){2&n&&Gt("required",o._enabled?"":null)},inputs:{required:"required"},features:[De([tV]),le]}),t})();const rV={provide:Ye,useExisting:he(()=>Xl),multi:!0};let Xl=(()=>{var e;class t extends Sr{constructor(){super(...arguments),this.inputName="email",this.normalizeInput=Mo,this.createValidator=n=>Qb}enabled(n){return n}}return(e=t).\u0275fac=function(){let r;return function(o){return(r||(r=$e(e)))(o||e)}}(),e.\u0275dir=B({type:e,selectors:[["","email","","formControlName",""],["","email","","formControl",""],["","email","","ngModel",""]],inputs:{email:"email"},features:[De([rV]),le]}),t})();const iV={provide:Ye,useExisting:he(()=>Eh),multi:!0};let Eh=(()=>{var e;class t extends Sr{constructor(){super(...arguments),this.inputName="maxlength",this.normalizeInput=n=>function Vw(e){return"number"==typeof e?e:parseInt(e,10)}(n),this.createValidator=n=>function Jb(e){return t=>function zb(e){return null!=e&&"number"==typeof e.length}(t.value)&&t.value.length>e?{maxlength:{requiredLength:e,actualLength:t.value.length}}:null}(n)}}return(e=t).\u0275fac=function(){let r;return function(o){return(r||(r=$e(e)))(o||e)}}(),e.\u0275dir=B({type:e,selectors:[["","maxlength","","formControlName",""],["","maxlength","","formControl",""],["","maxlength","","ngModel",""]],hostVars:1,hostBindings:function(n,o){2&n&&Gt("maxlength",o._enabled?o.maxlength:null)},inputs:{maxlength:"maxlength"},features:[De([iV]),le]}),t})();const sV={provide:Ye,useExisting:he(()=>Mh),multi:!0};let Mh=(()=>{var e;class t extends Sr{constructor(){super(...arguments),this.inputName="pattern",this.normalizeInput=n=>n,this.createValidator=n=>function Kb(e){if(!e)return Ll;let t,r;return"string"==typeof e?(r="","^"!==e.charAt(0)&&(r+="^"),r+=e,"$"!==e.charAt(e.length-1)&&(r+="$"),t=new RegExp(r)):(r=e.toString(),t=e),n=>{if(Jn(n.value))return null;const o=n.value;return t.test(o)?null:{pattern:{requiredPattern:r,actualValue:o}}}}(n)}}return(e=t).\u0275fac=function(){let r;return function(o){return(r||(r=$e(e)))(o||e)}}(),e.\u0275dir=B({type:e,selectors:[["","pattern","","formControlName",""],["","pattern","","formControl",""],["","pattern","","ngModel",""]],hostVars:1,hostBindings:function(n,o){2&n&&Gt("pattern",o._enabled?o.pattern:null)},inputs:{pattern:"pattern"},features:[De([sV]),le]}),t})(),aV=(()=>{var e;class t{}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275mod=Cn({type:e}),e.\u0275inj=Kt({imports:[Tw]}),t})(),Jl=(()=>{var e;class t{static withConfig(n){return{ngModule:t,providers:[{provide:jo,useValue:n.callSetDisabledState??Gl}]}}}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275mod=Cn({type:e}),e.\u0275inj=Kt({imports:[aV]}),t})();class Kl{}class ec{}class mn{constructor(t){this.normalizedNames=new Map,this.lazyUpdate=null,t?"string"==typeof t?this.lazyInit=()=>{this.headers=new Map,t.split("\n").forEach(r=>{const n=r.indexOf(":");if(n>0){const o=r.slice(0,n),i=o.toLowerCase(),s=r.slice(n+1).trim();this.maybeSetNormalizedName(o,i),this.headers.has(i)?this.headers.get(i).push(s):this.headers.set(i,[s])}})}:typeof Headers<"u"&&t instanceof Headers?(this.headers=new Map,t.forEach((r,n)=>{this.setHeaderEntries(n,r)})):this.lazyInit=()=>{this.headers=new Map,Object.entries(t).forEach(([r,n])=>{this.setHeaderEntries(r,n)})}:this.headers=new Map}has(t){return this.init(),this.headers.has(t.toLowerCase())}get(t){this.init();const r=this.headers.get(t.toLowerCase());return r&&r.length>0?r[0]:null}keys(){return this.init(),Array.from(this.normalizedNames.values())}getAll(t){return this.init(),this.headers.get(t.toLowerCase())||null}append(t,r){return this.clone({name:t,value:r,op:"a"})}set(t,r){return this.clone({name:t,value:r,op:"s"})}delete(t,r){return this.clone({name:t,value:r,op:"d"})}maybeSetNormalizedName(t,r){this.normalizedNames.has(r)||this.normalizedNames.set(r,t)}init(){this.lazyInit&&(this.lazyInit instanceof mn?this.copyFrom(this.lazyInit):this.lazyInit(),this.lazyInit=null,this.lazyUpdate&&(this.lazyUpdate.forEach(t=>this.applyUpdate(t)),this.lazyUpdate=null))}copyFrom(t){t.init(),Array.from(t.headers.keys()).forEach(r=>{this.headers.set(r,t.headers.get(r)),this.normalizedNames.set(r,t.normalizedNames.get(r))})}clone(t){const r=new mn;return r.lazyInit=this.lazyInit&&this.lazyInit instanceof mn?this.lazyInit:this,r.lazyUpdate=(this.lazyUpdate||[]).concat([t]),r}applyUpdate(t){const r=t.name.toLowerCase();switch(t.op){case"a":case"s":let n=t.value;if("string"==typeof n&&(n=[n]),0===n.length)return;this.maybeSetNormalizedName(t.name,r);const o=("a"===t.op?this.headers.get(r):void 0)||[];o.push(...n),this.headers.set(r,o);break;case"d":const i=t.value;if(i){let s=this.headers.get(r);if(!s)return;s=s.filter(a=>-1===i.indexOf(a)),0===s.length?(this.headers.delete(r),this.normalizedNames.delete(r)):this.headers.set(r,s)}else this.headers.delete(r),this.normalizedNames.delete(r)}}setHeaderEntries(t,r){const n=(Array.isArray(r)?r:[r]).map(i=>i.toString()),o=t.toLowerCase();this.headers.set(o,n),this.maybeSetNormalizedName(t,o)}forEach(t){this.init(),Array.from(this.normalizedNames.keys()).forEach(r=>t(this.normalizedNames.get(r),this.headers.get(r)))}}class cV{encodeKey(t){return Gw(t)}encodeValue(t){return Gw(t)}decodeKey(t){return decodeURIComponent(t)}decodeValue(t){return decodeURIComponent(t)}}const dV=/%(\d[a-f0-9])/gi,fV={40:"@","3A":":",24:"$","2C":",","3B":";","3D":"=","3F":"?","2F":"/"};function Gw(e){return encodeURIComponent(e).replace(dV,(t,r)=>fV[r]??t)}function tc(e){return`${e}`}class tr{constructor(t={}){if(this.updates=null,this.cloneFrom=null,this.encoder=t.encoder||new cV,t.fromString){if(t.fromObject)throw new Error("Cannot specify both fromString and fromObject.");this.map=function uV(e,t){const r=new Map;return e.length>0&&e.replace(/^\?/,"").split("&").forEach(o=>{const i=o.indexOf("="),[s,a]=-1==i?[t.decodeKey(o),""]:[t.decodeKey(o.slice(0,i)),t.decodeValue(o.slice(i+1))],l=r.get(s)||[];l.push(a),r.set(s,l)}),r}(t.fromString,this.encoder)}else t.fromObject?(this.map=new Map,Object.keys(t.fromObject).forEach(r=>{const n=t.fromObject[r],o=Array.isArray(n)?n.map(tc):[tc(n)];this.map.set(r,o)})):this.map=null}has(t){return this.init(),this.map.has(t)}get(t){this.init();const r=this.map.get(t);return r?r[0]:null}getAll(t){return this.init(),this.map.get(t)||null}keys(){return this.init(),Array.from(this.map.keys())}append(t,r){return this.clone({param:t,value:r,op:"a"})}appendAll(t){const r=[];return Object.keys(t).forEach(n=>{const o=t[n];Array.isArray(o)?o.forEach(i=>{r.push({param:n,value:i,op:"a"})}):r.push({param:n,value:o,op:"a"})}),this.clone(r)}set(t,r){return this.clone({param:t,value:r,op:"s"})}delete(t,r){return this.clone({param:t,value:r,op:"d"})}toString(){return this.init(),this.keys().map(t=>{const r=this.encoder.encodeKey(t);return this.map.get(t).map(n=>r+"="+this.encoder.encodeValue(n)).join("&")}).filter(t=>""!==t).join("&")}clone(t){const r=new tr({encoder:this.encoder});return r.cloneFrom=this.cloneFrom||this,r.updates=(this.updates||[]).concat(t),r}init(){null===this.map&&(this.map=new Map),null!==this.cloneFrom&&(this.cloneFrom.init(),this.cloneFrom.keys().forEach(t=>this.map.set(t,this.cloneFrom.map.get(t))),this.updates.forEach(t=>{switch(t.op){case"a":case"s":const r=("a"===t.op?this.map.get(t.param):void 0)||[];r.push(tc(t.value)),this.map.set(t.param,r);break;case"d":if(void 0===t.value){this.map.delete(t.param);break}{let n=this.map.get(t.param)||[];const o=n.indexOf(tc(t.value));-1!==o&&n.splice(o,1),n.length>0?this.map.set(t.param,n):this.map.delete(t.param)}}}),this.cloneFrom=this.updates=null)}}class hV{constructor(){this.map=new Map}set(t,r){return this.map.set(t,r),this}get(t){return this.map.has(t)||this.map.set(t,t.defaultValue()),this.map.get(t)}delete(t){return this.map.delete(t),this}has(t){return this.map.has(t)}keys(){return this.map.keys()}}function zw(e){return typeof ArrayBuffer<"u"&&e instanceof ArrayBuffer}function qw(e){return typeof Blob<"u"&&e instanceof Blob}function Ww(e){return typeof FormData<"u"&&e instanceof FormData}class ms{constructor(t,r,n,o){let i;if(this.url=r,this.body=null,this.reportProgress=!1,this.withCredentials=!1,this.responseType="json",this.method=t.toUpperCase(),function pV(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!==n?n:null,i=o):i=n,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.headers||(this.headers=new mn),this.context||(this.context=new hV),this.params){const s=this.params.toString();if(0===s.length)this.urlWithParams=r;else{const a=r.indexOf("?");this.urlWithParams=r+(-1===a?"?":ad.set(g,t.setHeaders[g]),l)),t.setParams&&(c=Object.keys(t.setParams).reduce((d,g)=>d.set(g,t.setParams[g]),c)),new ms(r,n,i,{params:c,headers:l,context:u,reportProgress:a,responseType:o,withCredentials:s})}}var Bo=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}(Bo||{});class Ih{constructor(t,r=200,n="OK"){this.headers=t.headers||new mn,this.status=void 0!==t.status?t.status:r,this.statusText=t.statusText||n,this.url=t.url||null,this.ok=this.status>=200&&this.status<300}}class Sh extends Ih{constructor(t={}){super(t),this.type=Bo.ResponseHeader}clone(t={}){return new Sh({headers:t.headers||this.headers,status:void 0!==t.status?t.status:this.status,statusText:t.statusText||this.statusText,url:t.url||this.url||void 0})}}class $o extends Ih{constructor(t={}){super(t),this.type=Bo.Response,this.body=void 0!==t.body?t.body:null}clone(t={}){return new $o({body:void 0!==t.body?t.body:this.body,headers:t.headers||this.headers,status:void 0!==t.status?t.status:this.status,statusText:t.statusText||this.statusText,url:t.url||this.url||void 0})}}class Zw extends Ih{constructor(t){super(t,0,"Unknown Error"),this.name="HttpErrorResponse",this.ok=!1,this.message=this.status>=200&&this.status<300?`Http failure during parsing for ${t.url||"(unknown url)"}`:`Http failure response for ${t.url||"(unknown url)"}: ${t.status} ${t.statusText}`,this.error=t.error||null}}function Th(e,t){return{body:t,headers:e.headers,context:e.context,observe:e.observe,params:e.params,reportProgress:e.reportProgress,responseType:e.responseType,withCredentials:e.withCredentials}}let Ah=(()=>{var e;class t{constructor(n){this.handler=n}request(n,o,i={}){let s;if(n instanceof ms)s=n;else{let c,u;c=i.headers instanceof mn?i.headers:new mn(i.headers),i.params&&(u=i.params instanceof tr?i.params:new tr({fromObject:i.params})),s=new ms(n,o,void 0!==i.body?i.body:null,{headers:c,context:i.context,params:u,reportProgress:i.reportProgress,responseType:i.responseType||"json",withCredentials:i.withCredentials})}const a=V(s).pipe(So(c=>this.handler.handle(c)));if(n instanceof ms||"events"===i.observe)return a;const l=a.pipe(Qt(c=>c instanceof $o));switch(i.observe||"body"){case"body":switch(s.responseType){case"arraybuffer":return l.pipe(ee(c=>{if(null!==c.body&&!(c.body instanceof ArrayBuffer))throw new Error("Response is not an ArrayBuffer.");return c.body}));case"blob":return l.pipe(ee(c=>{if(null!==c.body&&!(c.body instanceof Blob))throw new Error("Response is not a Blob.");return c.body}));case"text":return l.pipe(ee(c=>{if(null!==c.body&&"string"!=typeof c.body)throw new Error("Response is not a string.");return c.body}));default:return l.pipe(ee(c=>c.body))}case"response":return l;default:throw new Error(`Unreachable: unhandled observe type ${i.observe}}`)}}delete(n,o={}){return this.request("DELETE",n,o)}get(n,o={}){return this.request("GET",n,o)}head(n,o={}){return this.request("HEAD",n,o)}jsonp(n,o){return this.request("JSONP",n,{params:(new tr).append(o,"JSONP_CALLBACK"),observe:"body",responseType:"json"})}options(n,o={}){return this.request("OPTIONS",n,o)}patch(n,o,i={}){return this.request("PATCH",n,Th(i,o))}post(n,o,i={}){return this.request("POST",n,Th(i,o))}put(n,o,i={}){return this.request("PUT",n,Th(i,o))}}return(e=t).\u0275fac=function(n){return new(n||e)(F(Kl))},e.\u0275prov=L({token:e,factory:e.\u0275fac}),t})();function Xw(e,t){return t(e)}function vV(e,t){return(r,n)=>t.intercept(r,{handle:o=>e(o,n)})}const _V=new x(""),vs=new x(""),Jw=new x("");function CV(){let e=null;return(t,r)=>{null===e&&(e=(A(_V,{optional:!0})??[]).reduceRight(vV,Xw));const n=A(Ya),o=n.add();return e(t,r).pipe(Zi(()=>n.remove(o)))}}let Kw=(()=>{var e;class t extends Kl{constructor(n,o){super(),this.backend=n,this.injector=o,this.chain=null,this.pendingTasks=A(Ya)}handle(n){if(null===this.chain){const i=Array.from(new Set([...this.injector.get(vs),...this.injector.get(Jw,[])]));this.chain=i.reduceRight((s,a)=>function yV(e,t,r){return(n,o)=>r.runInContext(()=>t(n,i=>e(i,o)))}(s,a,this.injector),Xw)}const o=this.pendingTasks.add();return this.chain(n,i=>this.backend.handle(i)).pipe(Zi(()=>this.pendingTasks.remove(o)))}}return(e=t).\u0275fac=function(n){return new(n||e)(F(ec),F(Dt))},e.\u0275prov=L({token:e,factory:e.\u0275fac}),t})();const EV=/^\)\]\}',?\n/;let t1=(()=>{var e;class t{constructor(n){this.xhrFactory=n}handle(n){if("JSONP"===n.method)throw new S(-2800,!1);const o=this.xhrFactory;return(o.\u0275loadImpl?Ne(o.\u0275loadImpl()):V(null)).pipe(jt(()=>new Ie(s=>{const a=o.build();if(a.open(n.method,n.urlWithParams),n.withCredentials&&(a.withCredentials=!0),n.headers.forEach((b,E)=>a.setRequestHeader(b,E.join(","))),n.headers.has("Accept")||a.setRequestHeader("Accept","application/json, text/plain, */*"),!n.headers.has("Content-Type")){const b=n.detectContentTypeHeader();null!==b&&a.setRequestHeader("Content-Type",b)}if(n.responseType){const b=n.responseType.toLowerCase();a.responseType="json"!==b?b:"text"}const l=n.serializeBody();let c=null;const u=()=>{if(null!==c)return c;const b=a.statusText||"OK",E=new mn(a.getAllResponseHeaders()),D=function MV(e){return"responseURL"in e&&e.responseURL?e.responseURL:/^X-Request-URL:/m.test(e.getAllResponseHeaders())?e.getResponseHeader("X-Request-URL"):null}(a)||n.url;return c=new Sh({headers:E,status:a.status,statusText:b,url:D}),c},d=()=>{let{headers:b,status:E,statusText:D,url:P}=u(),N=null;204!==E&&(N=typeof a.response>"u"?a.responseText:a.response),0===E&&(E=N?200:0);let Z=E>=200&&E<300;if("json"===n.responseType&&"string"==typeof N){const Ge=N;N=N.replace(EV,"");try{N=""!==N?JSON.parse(N):null}catch(Tt){N=Ge,Z&&(Z=!1,N={error:Tt,text:N})}}Z?(s.next(new $o({body:N,headers:b,status:E,statusText:D,url:P||void 0})),s.complete()):s.error(new Zw({error:N,headers:b,status:E,statusText:D,url:P||void 0}))},g=b=>{const{url:E}=u(),D=new Zw({error:b,status:a.status||0,statusText:a.statusText||"Unknown Error",url:E||void 0});s.error(D)};let m=!1;const y=b=>{m||(s.next(u()),m=!0);let E={type:Bo.DownloadProgress,loaded:b.loaded};b.lengthComputable&&(E.total=b.total),"text"===n.responseType&&a.responseText&&(E.partialText=a.responseText),s.next(E)},C=b=>{let E={type:Bo.UploadProgress,loaded:b.loaded};b.lengthComputable&&(E.total=b.total),s.next(E)};return a.addEventListener("load",d),a.addEventListener("error",g),a.addEventListener("timeout",g),a.addEventListener("abort",g),n.reportProgress&&(a.addEventListener("progress",y),null!==l&&a.upload&&a.upload.addEventListener("progress",C)),a.send(l),s.next({type:Bo.Sent}),()=>{a.removeEventListener("error",g),a.removeEventListener("abort",g),a.removeEventListener("load",d),a.removeEventListener("timeout",g),n.reportProgress&&(a.removeEventListener("progress",y),null!==l&&a.upload&&a.upload.removeEventListener("progress",C)),a.readyState!==a.DONE&&a.abort()}})))}}return(e=t).\u0275fac=function(n){return new(n||e)(F(uD))},e.\u0275prov=L({token:e,factory:e.\u0275fac}),t})();const xh=new x("XSRF_ENABLED"),n1=new x("XSRF_COOKIE_NAME",{providedIn:"root",factory:()=>"XSRF-TOKEN"}),r1=new x("XSRF_HEADER_NAME",{providedIn:"root",factory:()=>"X-XSRF-TOKEN"});class o1{}let TV=(()=>{var e;class t{constructor(n,o,i){this.doc=n,this.platform=o,this.cookieName=i,this.lastCookieString="",this.lastToken=null,this.parseCount=0}getToken(){if("server"===this.platform)return null;const n=this.doc.cookie||"";return n!==this.lastCookieString&&(this.parseCount++,this.lastToken=tD(n,this.cookieName),this.lastCookieString=n),this.lastToken}}return(e=t).\u0275fac=function(n){return new(n||e)(F(pt),F(hr),F(n1))},e.\u0275prov=L({token:e,factory:e.\u0275fac}),t})();function AV(e,t){const r=e.url.toLowerCase();if(!A(xh)||"GET"===e.method||"HEAD"===e.method||r.startsWith("http://")||r.startsWith("https://"))return t(e);const n=A(o1).getToken(),o=A(r1);return null!=n&&!e.headers.has(o)&&(e=e.clone({headers:e.headers.set(o,n)})),t(e)}var nr=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}(nr||{});const i1=new x("LEGACY_INTERCEPTOR_FN");class LV{constructor(){this.name="",this.email="",this.message=""}}let s1=(()=>{var e;class t{constructor(n){this.httpClient=n}postContactForm(n){return this.httpClient.post(`${ve_apiBaseUrl}contact`,n)}}return(e=t).\u0275fac=function(n){return new(n||e)(F(Ah))},e.\u0275prov=L({token:e,factory:e.\u0275fac}),t})();function VV(e,t){if(1&e){const r=Ae();h(0,"form",5,6),R("ngSubmit",function(){return ne(r),re(k().submit())}),h(2,"div",7)(3,"label",8),f(4,"Name "),h(5,"span",9),f(6,"*"),p()(),h(7,"input",10),R("ngModelChange",function(o){return ne(r),re(k().contactViewModel.name=o)}),p()(),h(8,"div",7)(9,"label",11),f(10,"Email address "),h(11,"span",9),f(12,"*"),p()(),h(13,"input",12),R("ngModelChange",function(o){return ne(r),re(k().contactViewModel.email=o)}),p()(),h(14,"div",7)(15,"label",13),f(16,"Message "),h(17,"span",9),f(18,"*"),p()(),h(19,"textarea",14),R("ngModelChange",function(o){return ne(r),re(k().contactViewModel.message=o)}),p()(),h(20,"button",15),f(21,"Submit"),p()()}if(2&e){const r=md(1),n=k();_(7),w("ngModel",n.contactViewModel.name),_(6),w("ngModel",n.contactViewModel.email),_(6),w("ngModel",n.contactViewModel.message),_(1),w("disabled",!r.valid||n.enableFormCountDown>0)}}function jV(e,t){1&e&&(h(0,"p"),f(1,"Thanks for your message."),p())}function HV(e,t){1&e&&(h(0,"p",16),f(1,"Something went wrong. Please try again later."),p())}let UV=(()=>{var e;class t{constructor(n){this.contactService=n,this.contactViewModel=new LV,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:n=>{console.log("Submitted form"),this.success=!0},error:n=>{console.error(n),this.error=!0},complete:()=>console.info("complete")})}}return(e=t).\u0275fac=function(n){return new(n||e)(I(s1))},e.\u0275cmp=vt({type:e,selectors:[["app-contact-component"]],standalone:!0,features:[Mt],decls:6,vars:3,consts:[[1,"container"],[1,"mb-4"],["method","post",3,"ngSubmit",4,"ngIf"],[4,"ngIf"],["class","text-danger",4,"ngIf"],["method","post",3,"ngSubmit"],["contactForm","ngForm"],[1,"mb-3"],["for","Name"],[1,"required"],["type","text","id","Name","name","Name","required","",1,"form-control",3,"ngModel","ngModelChange"],["for","Email"],["type","email","id","Email","name","Email","email","","required","",1,"form-control",3,"ngModel","ngModelChange"],["for","Message"],["rows","7","id","Message","name","Message","required","",1,"form-control",3,"ngModel","ngModelChange"],["type","submit",1,"btn","btn-primary",3,"disabled"],[1,"text-danger"]],template:function(n,o){1&n&&(h(0,"div",0)(1,"h1",1),f(2,"Contact"),p(),O(3,VV,22,4,"form",2),O(4,jV,2,0,"p",3),O(5,HV,2,0,"p",4),p()),2&n&&(_(3),w("ngIf",!o.success&&!o.error),_(1),w("ngIf",o.success),_(1),w("ngIf",o.error))},dependencies:[gl,Jl,Yl,Lo,jl,Hl,Uo,Xl,gs,Ho]}),t})();const a1=function(){return["/pro"]};let BV=(()=>{var e;class t{scrollToAnchor(n){return document.querySelector(n)?.scrollIntoView(!0),!1}}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275cmp=vt({type:e,selectors:[["app-features-component"]],standalone:!0,features:[Mt],decls:131,vars:4,consts:[[1,"container"],[1,"mb-4"],["id","coveragequota"],[1,"pro-text"],["href","https://en.wikipedia.org/wiki/Code_coverage","target","_blank"],[1,"fa-solid","fa-arrow-up-right-from-square"],[3,"routerLink"],[1,"pro-button","pro-button-tiny"],["loading","lazy","srcset","resources/features/quota@1x.webp 1x, resources/features/quota@2x.webp 2x","src","resources/features/quota1x.webp","alt","Coverage quotas",1,"img-fluid"],["id","coveragehistory",1,"mt-5"],["loading","lazy","srcset","resources/features/history@1x.webp 1x, resources/features/history@2x.webp 2x","src","resources/features/history@1x.webp","alt","Coverage history",1,"img-fluid"],["id","summary",1,"mt-5"],["loading","lazy","srcset","resources/features/summary@1x.webp 1x, resources/features/summary@2x.webp 2x","src","resources/features/summary.webp","alt","Summary table / Overview",1,"img-fluid"],["id","details",1,"mt-5"],["loading","lazy","srcset","resources/features/details@1x.webp 1x, resources/features/details@2x.webp 2x","src","resources/features/details.webp","alt","Details",1,"img-fluid"],["id","metrics",1,"mt-5"],["href","https://github.com/danielpalme/ReportGenerator/wiki/FAQ#which-coverage-tool-supports-which-features-in-the-html-report","target","_blank"],["href","",3,"click"],["loading","lazy","srcset","resources/features/metrics_details@1x.webp 1x, resources/features/metrics_details@2x.webp 2x","src","resources/features/metrics_details.webp","alt","Metrics - Details",1,"img-fluid"],["loading","lazy","srcset","resources/features/metrics_summary@1x.webp 1x, resources/features/metrics_summary@2x.webp 2x","src","resources/features/metrics_summary.webp","alt","Metrics - Summary",1,"img-fluid"],["id","riskhotspots",1,"mt-5"],["href","https://en.wikipedia.org/wiki/Cyclomatic_complexity","target","_blank"],["href","https://modess.io/npath-complexity-cyclomatic-complexity-explained","target","_blank"],["href","https://testing.googleblog.com/2011/02/this-code-is-crap.html","target","_blank"],["loading","lazy","srcset","resources/features/riskhotspots@1x.webp 1x, resources/features/riskhotspots@2x.webp 2x","src","resources/features/riskhotspots.webp","alt","Risk Hotspots",1,"img-fluid"]],template:function(n,o){1&n&&(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."),v(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),v(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()()()(),v(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(),v(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,"."),v(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(),v(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()(),v(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),R("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),R("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(),v(93,"br")(94,"img",18)(95,"br")(96,"br"),h(97,"b"),f(98,"Summary table"),p(),v(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),R("click",function(){return o.scrollToAnchor("#metrics")}),f(107,"metrics"),p(),f(108," you get a list of potential risk hotspots."),v(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),v(117,"i",5),p()(),h(118,"li")(119,"a",22),f(120,"NPath complexity"),p(),f(121,"\xa0"),h(122,"a",22),v(123,"i",5),p()(),h(124,"li")(125,"a",23),f(126,"Crap score"),p(),f(127,"\xa0"),h(128,"a",23),v(129,"i",5),p()()(),v(130,"img",24),p()),2&n&&(_(25),w("routerLink",K(2,a1)),_(63),w("routerLink",K(3,a1)))},dependencies:[pn]}),t})();const Ft={dotnetSDKVersion:"6.x",majorVersion:"5",version:"5.1.25"},$V=function(){return["/usage"]};let GV=(()=>{var e;class t{constructor(){this.versions=Ft}}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275cmp=vt({type:e,selectors:[["app-getstarted"]],standalone:!0,features:[Mt],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(n,o){1&n&&(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."),v(7,"br"),f(8,"This information is typically stored in a XML file (e.g. in Cobertura format)."),v(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&n&&(_(15),w("routerLink",K(5,$V)),_(22),An('\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'),_(5),An('dotnet test --collect:"XPlat Code Coverage"\n"%UserProfile%\\.nuget\\packages\\reportgenerator\\',o.versions.version,'\\tools\\net6.0\\ReportGenerator.exe" -reports:*\\TestResults\\*\\coverage.cobertura.xml -targetdir:coveragereport\n'),_(20),An("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"),_(9),An("npm i nyc --save-dev\nnyc --reporter=coberatura mocha\n\ndotnet tool update dotnet-reportgenerator-globaltool --tool-path tools --version ",o.versions.version,"\ntools\\reportgenerator -reports:coverage/cobertura-coverage.xml -targetdir:coveragereport\n"))},dependencies:[pn]}),t})(),l1=(()=>{var e;class t{}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275cmp=vt({type:e,selectors:[["app-testimonials"]],standalone:!0,features:[Mt],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(n,o){1&n&&(h(0,"section",0)(1,"div",1)(2,"h2",2),f(3,"Trusted by"),p(),h(4,"div",3)(5,"div",4),v(6,"i",5)(7,"br"),h(8,"a",6),f(9,".NET Runtime"),p()(),h(10,"div",4),v(11,"i",7)(12,"br"),h(13,"a",8),f(14,"Google Cloud"),p()(),h(15,"div",4),v(16,"i",9)(17,"br"),h(18,"a",10),f(19,"AWS Encryption SDK"),p()(),h(20,"div",11),v(21,"i",12)(22,"br"),h(23,"a",13),f(24,"Many more"),p()()(),h(25,"div",3)(26,"div",4)(27,"a",14),v(28,"i",15),f(29," Over 50 million downloads on Nuget"),p()()()()())},encapsulation:2}),t})();const zV=function(){return["/pro"]},qV=function(){return["/usage"]},WV=function(){return["/getstarted"]},ZV=function(){return["/features"]};let YV=(()=>{var e;class t{}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275cmp=vt({type:e,selectors:[["app-home"]],standalone:!0,features:[Mt],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(n,o){1&n&&(h(0,"section",0)(1,"div",1)(2,"div",2),v(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),v(29,"i",10),f(30," Browse example report"),p()()()()(),h(31,"div",11)(32,"div",12)(33,"div",13),v(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."),v(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),v(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),v(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),v(82,"i",25),f(83," Learn how to use"),p(),h(84,"a",26),v(85,"i",27),f(86," GitHub"),p()()()(),v(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 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,". "),v(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),v(110,"img",33),p()(),h(111,"div",34)(112,"a",35),v(113,"img",36),p()()()()()),2&n&&(_(45),w("routerLink",K(4,zV)),_(12),w("routerLink",K(5,qV)),_(24),w("routerLink",K(6,WV)),_(15),w("routerLink",K(7,ZV)))},dependencies:[pn,l1],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}}"]}),t})(),QV=(()=>{var e;class t{}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275cmp=vt({type:e,selectors:[["app-not-found"]],standalone:!0,features:[Mt],decls:5,vars:0,consts:[[1,"container"],[1,"mb-4"],[1,"fa-solid","fa-triangle-exclamation","fs-1","me-4"]],template:function(n,o){1&n&&(h(0,"div",0)(1,"h1",1),f(2,"Not found"),p(),v(3,"i",2),f(4," The requested page does not exist.\n"),p())}}),t})();class c1{constructor(){this.error=null,this.licenses=[]}}class XV{constructor(){this.error=null,this.isSponsor=!1,this.license=null}}let u1=(()=>{var e;class t{initCodeFlow(){const i=`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: "+i),location.href=i}validateStateAndExtractCode(){let n=location.href;const o=n.indexOf("?");o>-1&&(n=n.substring(o+1));const i=this.parseQueryString(n);return i.state&&i.code&&this.validateNonce(i.state)?i.code:null}createAndSaveNonce(){const n=this.createNonce();return typeof window.localStorage<"u"&&localStorage.setItem("nonce",n),n}validateNonce(n){let o;return typeof window.localStorage<"u"&&(o=localStorage.getItem("nonce"),localStorage.removeItem("nonce")),o&&0!==o.length?o===n||(console.error("Validating nonce failed. Values do not match.",o,n),!1):(console.error("Validating nonce failed. No saved nonce available.",o,n),!1)}createNonce(){const n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~";let o=45,i="";const s=typeof self>"u"?null:self.crypto||self.msCrypto;if(s){let l=new Uint8Array(o);s.getRandomValues(l),l.map||(l.map=Array.prototype.map);const c=[];for(var a=0;a0&&(u=decodeURIComponent(l),d=decodeURIComponent(c),"/"===u.substring(0,1)&&(u=u.substring(1)),o[u]=d);return o}base64UrlEncode(n){return btoa(n).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275prov=L({token:e,factory:e.\u0275fac}),t})(),d1=(()=>{var e;class t{constructor(n){this.httpClient=n}getLicense(n){return this.httpClient.get(`${ve_apiBaseUrl}reportgenerator/license?code=${encodeURIComponent(n)}`)}getTrialLicense(n){return this.httpClient.post(`${ve_apiBaseUrl}reportgenerator/triallicense`,n)}getPaddleLicense(n){return this.httpClient.post(`${ve_apiBaseUrl}reportgenerator/paddlelicense`,n)}}return(e=t).\u0275fac=function(n){return new(n||e)(F(Ah))},e.\u0275prov=L({token:e,factory:e.\u0275fac}),t})(),JV=(()=>{var e;class t{constructor(){this.isActive=!1,this.isActive=new Date-1)}}function T3(e,t){if(1&e&&(h(0,"div")(1,"label",110),f(2,"Thank you! Please save your license key persistently:"),p(),O(3,S3,6,3,"div",111),p()),2&e){const r=k(3);_(3),w("ngForOf",r.paddleLicense.licenses)}}function A3(e,t){if(1&e&&(h(0,"div",109),O(1,E3,8,3,"div",34),O(2,T3,4,1,"div",34),p()),2&e){const r=k(2);_(1),w("ngIf",r.paddleLicense.error),_(1),w("ngIf",!r.paddleLicense.error)}}function x3(e,t){if(1&e&&(h(0,"div",2),O(1,w3,6,0,"ng-container",34),O(2,A3,3,2,"div",107),p()),2&e){const r=k();_(1),w("ngIf",r.paddleLicenseRequested&&!r.paddleLicense),_(1),w("ngIf",r.paddleLicense)}}function R3(e,t){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())}const Go=function(){return["/features"]};let N3=(()=>{var e;class t{get lifetimeLicense(){return this._lifetimeLicense}set lifetimeLicense(n){this._lifetimeLicense=n,this.lifetimeLicenseChangeTracked||(this.lifetimeLicenseChangeTracked=!0,this.trackingService.track("Licensetype changed"))}constructor(n,o,i){this.oauthService=n,this.licenseService=o,this.trackingService=i,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=!1,window.paddleCheckoutComplete=s=>{this.paddleCheckoutComplete(s)},window.Paddle.Setup({vendor:144162}),window.Paddle.Product.Prices(762579,s=>{this.paddleIndividualLicensePrice=s.recurring.price.gross}),window.Paddle.Product.Prices(762580,s=>{this.paddleTeamLicensePrice=s.recurring.price.gross}),window.Paddle.Product.Prices(762581,s=>{this.paddleEnterpriseLicensePrice=s.recurring.price.gross}),window.Paddle.Product.Prices(833943,s=>{this.paddleIndividualLifetimeLicensePrice=s.price.gross}),window.Paddle.Product.Prices(833944,s=>{this.paddleTeamLifetimeLicensePrice=s.price.gross}),window.Paddle.Product.Prices(833945,s=>{this.paddleEnterpriseLifetimeLicensePrice=s.price.gross})}ngOnInit(){const n=this.oauthService.validateStateAndExtractCode();null!==n?(console.log("Code received",n),this.licenseRequested=!0,this.licenseService.getLicense(n).subscribe({next:o=>{console.log("Received license response"),this.license=o,this.scrollToGithub()},error:o=>{console.error(o),this.license=new XV,this.license.error="Unable to generate license."},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(n){console.error("Failed to copy license",n)}}copyPaddle(n){try{navigator.clipboard.writeText(n),this.copiedPaddledLicenses.push(n)}catch(o){console.error("Failed to copy paddle license",o)}}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:n=>{console.log("Received trial license response"),this.paddleLicense=n,this.scrollToPaddle();try{window.localStorage.setItem("trialRequested","true"),this.trialDisabled=!0}catch{}this.trackingService.track("Trial-Completed")},error:n=>{console.error(n),this.paddleLicense=new c1,this.paddleLicense.error="Unable to generate trial license."},complete:()=>{console.info("complete"),this.requestTrialData={name:"",email:""}}})}openPaddleCheckout(n){"enterprise"===n?window.Paddle.Checkout.open({product:this.lifetimeLicense?833945:762581,successCallback:"paddleCheckoutComplete"}):"team"===n?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:n,lifetimeLicense:this.lifetimeLicense}})}paddleCheckoutComplete(n){console.log("Checkout completed",n),this.paddleLicenseRequested=!0,this.licenseService.getPaddleLicense(n).subscribe({next:o=>{console.log("Received paddle license response"),this.paddleLicense=o,this.scrollToPaddle(),this.trackingService.track("Paddle-Completed",{props:{product:n.product.name,lifetimeLicense:this.lifetimeLicense}})},error:o=>{console.error(o),this.paddleLicense=new c1,this.paddleLicense.error="Unable to generate Paddle license."},complete:()=>console.info("complete")})}}return(e=t).\u0275fac=function(n){return new(n||e)(I(u1),I(d1),I(JV))},e.\u0275cmp=vt({type:e,selectors:[["app-pro-component"]],standalone:!0,features:[Mt],decls:229,vars:25,consts:[[1,"container"],[1,"mb-4"],[1,"row"],[1,"col-xs-12","col-md-6","order-2","order-md-1"],[1,"table"],["scope","col"],["scope","col",1,"text-center"],[1,"pro-button"],["scope","row"],["fragment","metrics","title","Show feature details",3,"routerLink"],[1,"fa-solid","fa-circle-info","text-secondary"],[1,"text-center"],[1,"fa-solid","fa-circle-check","text-secondary"],["fragment","riskhotspots","title","Show feature details",3,"routerLink"],["title","Show feature details",3,"routerLink"],[1,"fa-solid","fa-circle-check","pro-text"],[1,"col-xs-12","col-md-6","order-1","order-md-2"],["href","",3,"click"],[3,"routerLink"],["id","github",1,"container-fluid","mt-5","pt-5","pb-5","bg-light"],[1,"col-xs-12","col-md-6","pb-3"],[1,"fs-2","me-3","number"],["href","https://github.com/sponsors/danielpalme","target","_blank",1,"btn","btn-outline-dark"],[1,"fa-solid","fa-heart","githubheart"],["type","button",1,"btn","btn-primary","me-3",3,"disabled","click"],[1,"fa-solid","fa-rocket"],["class","spinner-border text-info","role","status",4,"ngIf"],["class","col-md-6 pb-3 d-none d-lg-block","style","position: relative;",4,"ngIf"],["class","col-xs-12 col-md-6 pb-3",4,"ngIf"],["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"],[1,"container-fluid","mt-4","pt-5","pb-5","bg-light"],[1,"container","text-center"],[1,"row","mt-5",2,"max-width","550px","margin","auto"],["href","https://twitter.com/fredyfx/status/1642807795828543488","target","_blank"],["loading","lazy","src","resources/twitter_light.webp","alt","Testimonial",1,"img-fluid"],["id","faq",1,"container","mt-5","pt-5","pb-5"],["id","accordionFaq",1,"accordion","accordion-flush"],[1,"accordion-item"],["id","headingOne",1,"accordion-header"],["type","button","data-bs-toggle","collapse","data-bs-target","#collapseOne","aria-expanded","true","aria-controls","collapseOne",1,"accordion-button"],["id","collapseOne","aria-labelledby","headingOne","data-bs-parent","#accordionFaq",1,"accordion-collapse","collapse","show"],[1,"accordion-body"],["id","headingTwo",1,"accordion-header"],["type","button","data-bs-toggle","collapse","data-bs-target","#collapseTwo","aria-expanded","false","aria-controls","collapseTwo",1,"accordion-button","collapsed"],["id","collapseTwo","aria-labelledby","headingTwo","data-bs-parent","#accordionFaq",1,"accordion-collapse","collapse"],["id","headingThree",1,"accordion-header"],["type","button","data-bs-toggle","collapse","data-bs-target","#collapseThree","aria-expanded","false","aria-controls","collapseThree",1,"accordion-button","collapsed"],["id","collapseThree","aria-labelledby","headingThree","data-bs-parent","#accordionFaq",1,"accordion-collapse","collapse"],["tabindex","-1","id","requestTrialModal",1,"modal"],[1,"modal-dialog"],[1,"modal-content"],["method","post",3,"ngSubmit"],["trialForm","ngForm"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal","aria-label","Close",1,"btn-close"],[1,"modal-body"],[1,"form-floating","mb-3"],["type","text","id","name","name","name","required","","maxlength","150",1,"form-control",3,"ngModel","ngModelChange"],["for","floatingInput"],[1,"required"],["type","email","id","email","name","email","required","","email","","maxlength","150",1,"form-control",3,"ngModel","ngModelChange"],[1,"modal-footer"],["type","button","data-bs-dismiss","modal",1,"btn","btn-secondary"],["type","submit",1,"btn","btn-primary",3,"disabled"],["role","status",1,"spinner-border","text-info"],[1,"visually-hidden"],[1,"col-md-6","pb-3","d-none","d-lg-block",2,"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"],[1,"btn","btn-outline-dark","mt-2",3,"click"],[1,"fa-solid","fa-copy"],[1,"fa-solid","fa-check","text-success"],[1,"togglecontainer"],[1,"option",3,"ngClass","click"],[1,"fa-solid","fa-rotate-right"],[1,"fa-solid","fa-infinity"],[1,"col-xs-12","col-md-6","col-lg-3","mt-0","pb-3","text-center","paddle-container"],[1,"paddle","trial"],["src","resources/trial.svg","alt","Trial",1,"img-fluid"],[1,"mt-3"],[1,"fa-solid","fa-magnifying-glass"],[1,"fa-solid","fa-calendar-days"],["type","button","class","btn btn-primary",3,"disabled","click",4,"ngIf"],["type","button","class","btn btn-primary","disabled","",4,"ngIf"],[1,"col-xs-12","col-md-6","col-lg-3","mt-4","mt-md-0","pb-3","text-center","paddle-container"],[1,"paddle"],["src","resources/individual.svg","alt","Individual",1,"img-fluid"],[1,"fa-solid","fa-user"],["type","button","class","btn btn-primary",3,"click",4,"ngIf"],[1,"col-xs-12","col-md-6","col-lg-3","mt-4","mt-lg-0","pb-3","text-center","paddle-container"],["src","resources/team.svg","alt","Team",1,"img-fluid"],[1,"fa-solid","fa-users"],[1,"col-xs-6","col-md-6","col-lg-3","mt-4","mt-lg-0","pb-3","text-center","paddle-container"],["src","resources/enterprise.svg","alt","Enterprise",1,"img-fluid"],[1,"fa-solid","fa-industry"],["type","button",1,"btn","btn-primary",3,"disabled","click"],["type","button","disabled","",1,"btn","btn-primary"],["type","button",1,"btn","btn-primary",3,"click"],[1,"fa-solid","fa-cart-shopping"],["class","col-xs-12 col-md-6",4,"ngIf"],[2,"position","relative","left","35px","top","-20px"],[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"]],template:function(n,o){if(1&n&&(h(0,"div",0)(1,"h1",1),f(2,"PRO"),p(),h(3,"div",2)(4,"div",3)(5,"table",4)(6,"thead")(7,"tr"),v(8,"th",5),h(9,"th",6),f(10,"Free"),p(),h(11,"th",6)(12,"span",7),f(13,"PRO"),p()()()(),h(14,"tbody")(15,"tr")(16,"th",8),f(17,"Metrics "),h(18,"a",9),v(19,"i",10),p()(),h(20,"td",11),v(21,"i",12),p(),h(22,"td",11),v(23,"i",12),p()(),h(24,"tr")(25,"th",8),f(26,"Risk Hotspots "),h(27,"a",13),v(28,"i",10),p()(),h(29,"td",11),v(30,"i",12),p(),h(31,"td",11),v(32,"i",12),p()(),h(33,"tr")(34,"th",8),f(35,"Line coverage "),h(36,"a",14),v(37,"i",10),p()(),h(38,"td",11),v(39,"i",12),p(),h(40,"td",11),v(41,"i",12),p()(),h(42,"tr")(43,"th",8),f(44,"Branch coverage "),h(45,"a",14),v(46,"i",10),p()(),h(47,"td",11),v(48,"i",12),p(),h(49,"td",11),v(50,"i",12),p()(),h(51,"tr")(52,"th",8),f(53,"Method coverage "),h(54,"a",14),v(55,"i",10),p()(),v(56,"td",11),h(57,"td",11),v(58,"i",15),p()(),h(59,"tr")(60,"th",8),f(61,"Metrics on summary page "),h(62,"a",9),v(63,"i",10),p()(),v(64,"td",11),h(65,"td",11),v(66,"i",15),p()(),h(67,"tr")(68,"th",8)(69,"i"),f(70,"OpenCover"),p(),f(71," output format"),p(),v(72,"td",11),h(73,"td",11),v(74,"i",15),p()()()()(),h(75,"div",16)(76,"p")(77,"i"),f(78,"ReportGenerator"),p(),f(79," is Open Source and free to use."),v(80,"br"),f(81," Some of the advanced features require a PRO license. "),p(),h(82,"p"),f(83," You can either become a "),h(84,"a",17),R("click",function(){return o.scrollToGithub()}),f(85,"GitHub sponsor"),p(),f(86," or you can "),h(87,"a",17),R("click",function(){return o.scrollToPaddle()}),f(88,"buy a license"),p(),f(89,"."),v(90,"br"),f(91," A "),h(92,"a",17),R("click",function(){return o.scrollToPaddle()}),f(93,"free trial version"),p(),f(94," is available too. "),p(),h(95,"p"),f(96," Get "),h(97,"a",18),f(98,"in touch"),p(),f(99," if you have any issues and we will figure it out. "),p()()()(),h(100,"section",19)(101,"div",0)(102,"h2",1),f(103,"Get your license as a GitHub sponsor"),p(),h(104,"div",2)(105,"div",20)(106,"p"),f(107,"You can obtain your license in two easy steps (no sign up required):"),p(),h(108,"span",21),f(109,"1."),p(),h(110,"a",22),v(111,"i",23),f(112," Become a GitHub sponsor"),p(),v(113,"br"),h(114,"span",21),f(115,"2."),p(),h(116,"button",24),R("click",function(){return o.requestLicense()}),v(117,"i",25),f(118," Get license"),p(),O(119,KV,3,0,"div",26),p(),O(120,e3,2,0,"div",27),O(121,s3,4,3,"div",28),p()()(),h(122,"section",29)(123,"div",0)(124,"h2",1),f(125,"Buy a license"),p(),h(126,"div",30),O(127,a3,7,6,"span",31),p(),O(128,b3,61,17,"div",32),O(129,x3,3,2,"div",32),h(130,"div",33),O(131,R3,4,0,"p",34),h(132,"p"),f(133,"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()()()(),v(134,"app-testimonials"),h(135,"section",35)(136,"div",36)(137,"h3"),f(138,"Customers"),p(),h(139,"div",37)(140,"a",38),v(141,"img",39),p()()()(),h(142,"section",40)(143,"h2",1),f(144,"Frequently Asked Questions"),p(),h(145,"div",41)(146,"div",42)(147,"h2",43)(148,"button",44),f(149," How do I use/activate my license? "),p()(),h(150,"div",45)(151,"div",46),f(152," Your license key is passed to "),h(153,"i"),f(154,"ReportGenerator"),p(),f(155," via a command line parameter: "),h(156,"i"),f(157,"-license:YOUR_KEY"),p()()()(),h(158,"div",42)(159,"h2",47)(160,"button",48),f(161," Are there limitations on number of users? "),p()(),h(162,"div",49)(163,"div",46)(164,"b"),f(165,"GitHub sponsors"),p(),v(166,"br"),h(167,"p"),f(168,"There's no enforced limit. Please pick a sponsor level that fits your company size and budget."),p(),h(169,"b"),f(170,"Bought license"),p(),v(171,"br"),h(172,"p"),f(173,"There's no enforced limit. Please choose a plan that matches the number of developers using "),h(174,"i"),f(175,"ReportGenerator"),p(),f(176,"."),p()()()(),h(177,"div",42)(178,"h2",50)(179,"button",51),f(180," Will my license expire? "),p()(),h(181,"div",52)(182,"div",46)(183,"b"),f(184,"GitHub sponsors"),p(),v(185,"br"),h(186,"p"),f(187,"Your license will not expire."),p(),h(188,"b"),f(189,"Bought license"),p(),v(190,"br"),h(191,"p")(192,"b"),f(193,"Annual subscription"),p(),f(194,": Your license may get revoked for new releases of "),h(195,"i"),f(196,"ReportGenerator"),p(),f(197,", if you cancel your subscription."),v(198,"br"),h(199,"b"),f(200,"Lifetime licenses"),p(),f(201,": Lifetime licenses will not expire. "),p()()()()()(),h(202,"div",53)(203,"div",54)(204,"div",55)(205,"form",56,57),R("ngSubmit",function(){return o.completeTrial()}),h(207,"div",58)(208,"h5",59),f(209,"Free Trial"),p(),v(210,"button",60),p(),h(211,"div",61)(212,"div",62)(213,"input",63),R("ngModelChange",function(s){return o.requestTrialData.name=s}),p(),h(214,"label",64),f(215,"Name "),h(216,"span",65),f(217,"*"),p()()(),h(218,"div",62)(219,"input",66),R("ngModelChange",function(s){return o.requestTrialData.email=s}),p(),h(220,"label",64),f(221,"Email address "),h(222,"span",65),f(223,"*"),p()()()(),h(224,"div",67)(225,"button",68),f(226,"Close"),p(),h(227,"button",69),f(228,"Get trial license"),p()()()()()()),2&n){const i=md(206);_(18),w("routerLink",K(18,Go)),_(9),w("routerLink",K(19,Go)),_(9),w("routerLink",K(20,Go)),_(9),w("routerLink",K(21,Go)),_(9),w("routerLink",K(22,Go)),_(8),w("routerLink",K(23,Go)),_(35),w("routerLink",K(24,Rh)),_(19),w("disabled",o.licenseRequested),_(3),w("ngIf",o.licenseRequested&&!o.license),_(1),w("ngIf",!o.license),_(1),w("ngIf",o.license),_(6),w("ngIf",!o.paddleLicenseRequested),_(1),w("ngIf",!o.paddleLicenseRequested),_(1),w("ngIf",o.paddleLicenseRequested),_(2),w("ngIf",!o.lifetimeLicense),_(82),w("ngModel",o.requestTrialData.name),_(6),w("ngModel",o.requestTrialData.email),_(8),w("disabled",!i.valid)}},dependencies:[pn,Df,gl,pl,Jl,Yl,Lo,jl,Hl,Uo,Eh,Xl,gs,Ho,l1],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}}"]}),t})();class rc{constructor(t,r,n,o,i,s){this.name=t,this.url=r,this.runtimes=n,this.description=o,this.installOptions=i,this.executables=s}formatExecutable(t){return t.tool}formatArgument(t,r){if(""===(r=r.trim()))return"";const n=r.indexOf(" ")>-1?'"':"";return`\r\n${n}-${t}:${r}${n}`}formatArguments(t,r){return this.formatArgument(t,r.filter(n=>null!=n&&0!==n.length&&0!==n.trim().length).join(";"))}}class P3 extends rc{formatExecutable(t){let r=`- task: ${t.tool}@${Ft.majorVersion}`;return r+="\r\n displayName: ReportGenerator",r+="\r\n inputs:",console.log("hello",r),r}formatArgument(t,r){if(""===(r=r.trim()))return"";const n=r.indexOf(" ")>-1?"'":"";return`\r\n ${t}: ${n}${r}${n}`}}class O3{constructor(){this.verbosities=["Verbose","Info","Warning","Error","Off"],this.types=["Html","Coverage tool","Json","Markdown","Xml","Text","Image"],this.reports=["cobertura.xml"],this.targetdir="coveragereport",this.reporttypes=[{name:"Html",types:["Html"],description:"The default output format. Creates a summary overview (index.html) and detailed reports for each class.",requiresHistoryDir:!1,checked:!0,sampleReport:"resources/reports/Html/index.html"},{name:"Html_Light",types:["Html"],description:"Same as Html but with a light theme.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/Html_Light/index.html"},{name:"Html_Dark",types:["Html"],description:"Same as Html but with a dark theme.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/Html_Dark/index.html"},{name:"Html_BlueRed",types:["Html"],description:"Same as Html but with the colors blue/red instead of green/red.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/Html_BlueRed/index.html"},{name:"HtmlSummary",types:["Html"],description:"Creates a single HTML file (summary.html) without links.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/HtmlSummary/summary.html"},{name:"Html_BlueRed_Summary",types:["Html"],description:"Same as HtmlSummary but with the colors blue/red instead of green/red.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/Html_BlueRed_Summary/summary.html"},{name:"HtmlChart",types:["Html"],description:"Creates a single HTML file containing a chart with historic coverage information.",requiresHistoryDir:!0,checked:!1,sampleReport:"resources/reports/HtmlChart/CoverageHistory.html"},{name:"HtmlInline",types:["Html"],description:"Same as HTML but CSS and JavaScript is included in every HTML page. This results in larger file sizes, but can be useful for integration into build servers like Azure DevOps (VSTS), since they may block referenced CSS and JavaScript files.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/HtmlInline/index.html"},{name:"HtmlInline_AzurePipelines",types:["Html"],description:"Same as HtmlInline but with an adaptive light/dark theme matching the look and feel of Azure Pipelines",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/HtmlInline_AzurePipelines/index.html"},{name:"HtmlInline_AzurePipelines_Light",types:["Html"],description:"Same as HtmlInline but with a light theme matching the look and feel of Azure Pipelines.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/HtmlInline_AzurePipelines_Light/index.html"},{name:"HtmlInline_AzurePipelines_Dark",types:["Html"],description:"Same as HtmlInline but with a dark theme matching the look and feel of Azure Pipelines.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/HtmlInline_AzurePipelines_Dark/index.html"},{name:"MHtml",types:["Html"],description:"Same as HTML but packaged into a single MHTML file.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/MHtml/Summary.mht"},{name:"Clover",types:["Coverage tool"],description:"Creates a XML file in Clover format. This format integrates with tools like Atlassian Bamboo.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/Clover/Clover.xml"},{name:"Cobertura",types:["Coverage tool"],description:"Creates a XML file in Cobertura format. This format integrates with tools like Azure DevOps (VSTS) or Jenkins.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/Cobertura/Cobertura.xml"},{name:"OpenCover",types:["Coverage tool"],description:"Creates a XML file in OpenCover format (PRO version only).",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/OpenCover/OpenCover.xml"},{name:"SonarQube",types:["Coverage tool"],description:"Creates a XML file in SonarQube 'Generic Test Data' format.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/SonarQube/SonarQube.xml"},{name:"lcov",types:["Coverage tool"],description:"Creates a text file in 'lcov' format.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/lcov/lcov.info"},{name:"XML",types:["Xml"],description:"Creates a XML file containing a summary for all classes and detailed reports for each class.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/Xml/Summary.xml"},{name:"XMLSummary",types:["Xml"],description:"Creates a single XML file containing a summary for all classes.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/XmlSummary/Summary.xml"},{name:"JsonSummary",types:["Json"],description:"Creates a single JSON file containing a summary for all classes.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/JsonSummary/Summary.json"},{name:"Latex",types:["Text"],description:"Creates a single TEX file containing a summary for all classes and detailed reports for each class.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/Summary/Summary.tex"},{name:"LatexSummary",types:["Text"],description:"Creates a single TEX file containing a summary for all classes.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/LatexSummary/Summary.tex"},{name:"TeamCitySummary",types:["Coverage tool"],description:"Command line output interpreted by TeamCity.",requiresHistoryDir:!1,checked:!1,sampleReport:null},{name:"TextSummary",types:["Text"],description:"Creates a single TXT file containing coverage information per class.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/TextSummary/Summary.txt"},{name:"TextDeltaSummary",types:["Text"],description:"Creates a single TXT file containing delta coverage information.",requiresHistoryDir:!0,checked:!1,sampleReport:"resources/reports/TextDeltaSummary/DeltaSummary.txt"},{name:"CsvSummary",types:["Text"],description:"Creates a single CSV file containing coverage information per class.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/CsvSummary/Summary.csv"},{name:"MarkdownSummary",types:["Text","Markdown"],description:"Creates a single Markdown file containing coverage information per class.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/MarkdownSummary/Summary.md"},{name:"MarkdownSummaryGithub",types:["Text","Markdown"],description:"Creates a single Markdown file containing coverage information per class. The report is optimized for GitHub.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/MarkdownSummaryGithub/SummaryGithub.md"},{name:"MarkdownDeltaSummary",types:["Text","Markdown"],description:"Creates a single Markdown file containing delta coverage information.",requiresHistoryDir:!0,checked:!1,sampleReport:"resources/reports/MarkdownDeltaSummary/DeltaSummary.md"},{name:"SvgChart",types:["Image"],description:"Creates a single SVG file containing a chart with historic coverage information.",requiresHistoryDir:!0,checked:!1,sampleReport:"resources/reports/SvgChart/CoverageHistory.svg"},{name:"Badges",types:["Image"],description:"Creates SVG files that show line and/or branch coverage information.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/Badges/index.html"}],this.sourcedirectories=[],this.historydir="",this.plugins=[],this.assemblyfilters=[],this.classfilters=[],this.filefilters=[],this.selectedverbosity=this.verbosities[1],this.selectedType=null,this.title="",this.tag="",this.license=""}addSourceDirectory(){return this.sourcedirectories.push(""),!1}removeSourceDirectory(t){return this.sourcedirectories.splice(t,1),!1}addReport(){return this.reports.push(""),!1}removeReport(t){return this.reports.splice(t,1),!1}addPlugin(){return this.plugins.push(""),!1}removePlugin(t){return this.plugins.splice(t,1),!1}addAssemblyFilter(){return this.assemblyfilters.push(""),!1}removeAssemblyFilter(t){return this.assemblyfilters.splice(t,1),!1}addClassFilter(){return this.classfilters.push(""),!1}removeClassFilter(t){return this.classfilters.splice(t,1),!1}addFileFilter(){return this.filefilters.push(""),!1}removeFileFilter(t){return this.filefilters.splice(t,1),!1}getUsage(t,r){const n=t.executables.find(a=>a.runtime==r);let o=void 0!==n?t.formatExecutable(n):"";o+=t.formatArguments("reports",this.reports),o+=t.formatArgument("targetdir",this.targetdir);for(var i="",s=0;s0&&(i+=";"),i+=this.reporttypes[s].name);return i.length>0&&"Html"!==i&&(o+=t.formatArgument("reporttypes",i)),o+=t.formatArguments("sourcedirs",this.sourcedirectories),o+=t.formatArgument("historydir",this.historydir),o+=t.formatArguments("plugins",this.plugins),o+=t.formatArguments("assemblyfilters",this.assemblyfilters),o+=t.formatArguments("classfilters",this.classfilters),o+=t.formatArguments("filefilters",this.filefilters),"Info"!==this.selectedverbosity&&(o+=t.formatArgument("verbosity",this.selectedverbosity)),o+=t.formatArgument("title",this.title),o+=t.formatArgument("tag",this.tag),o+=t.formatArgument("license",this.license),o}historyDirRequired(){for(let t=0;t-1?"'":"";return`\r\n ${t}: ${n}${r}${n}`}}class Nh{constructor(t,r){this.tool=t,this.command=r}}function F3(e,t){if(1&e){const r=Ae();h(0,"div",35)(1,"label",36)(2,"input",37),R("ngModelChange",function(o){return ne(r),re(k().selectedEnvironment=o)})("ngModelChange",function(){return ne(r),re(k().selectedEnvironmentChanged())}),p(),h(3,"b"),f(4),p(),v(5,"br"),h(6,"div",38),f(7),p()()()}if(2&e){const r=t.$implicit,n=k();_(2),w("ngModel",n.selectedEnvironment)("value",r)("checked",n.selectedEnvironment.name===r.name),_(2),Ce(r.name),_(3),Ce(r.description)}}function L3(e,t){if(1&e){const r=Ae();h(0,"div",35)(1,"label",36)(2,"input",41),R("ngModelChange",function(o){return ne(r),re(k(3).selectedPackage=o)}),p(),h(3,"b"),f(4),p(),v(5,"br"),h(6,"div",38),f(7),p()()()}if(2&e){const r=k().$implicit,n=k(2);_(2),w("ngModel",n.selectedPackage)("value",r),_(2),Ce(r.name),_(3),Ce(r.description)}}function V3(e,t){if(1&e&&(ut(0),O(1,L3,8,4,"div",40),dt()),2&e){const r=t.$implicit,n=k(2);_(1),w("ngIf",r.runtimes.indexOf(n.selectedEnvironment.name)>-1)}}function j3(e,t){if(1&e&&(ut(0),h(1,"h4"),f(2,"NuGet Package"),p(),O(3,V3,2,1,"ng-container",39),dt()),2&e){const r=k();_(3),w("ngForOf",r.packages)}}function H3(e,t){if(1&e){const r=Ae();h(0,"span",45),R("click",function(){ne(r);const o=k().index;return re(k().configuration.removeReport(o))}),h(1,"a",46),v(2,"i",47),p()()}}const U3=function(e){return{"input-group":e}};function B3(e,t){if(1&e){const r=Ae();h(0,"div",38)(1,"div",42)(2,"input",43),R("ngModelChange",function(o){const s=ne(r).index;return re(k().configuration.reports[s]=o)}),p(),O(3,H3,3,0,"span",44),p()()}if(2&e){const r=t.index,n=k();_(1),w("ngClass",Vi(4,U3,r>0)),_(1),Tn("name","report_",r,""),w("ngModel",n.configuration.reports[r]),_(1),w("ngIf",r>0)}}const $3=function(e,t){return{"btn-outline-primary":e,"btn-primary":t}};function G3(e,t){if(1&e){const r=Ae();h(0,"button",48),R("click",function(){const i=ne(r).$implicit,s=k();return re(s.configuration.selectedType=s.configuration.selectedType===i?null:i)}),f(1),p()}if(2&e){const r=t.$implicit,n=k();w("ngClass",w_(2,$3,r!==n.configuration.selectedType,r===n.configuration.selectedType)),_(1),Ce(r)}}function z3(e,t){if(1&e){const r=Ae();h(0,"span",53),v(1,"i",54),f(2," Please specify a "),h(3,"a",9),R("click",function(){return ne(r),re(k(3).scrollToHistoryDir())}),f(4,"history directory"),p()()}}function q3(e,t){if(1&e&&(ut(0),v(1,"br",55),h(2,"a",29),f(3,"Sample report"),p(),f(4,"\xa0"),h(5,"a",29),v(6,"i",56),p(),dt()),2&e){const r=k(2).$implicit;_(2),w("href",r.sampleReport,to),_(3),w("href",r.sampleReport,to)}}function W3(e,t){if(1&e){const r=Ae();h(0,"div",50)(1,"label",36)(2,"input",51),R("change",function(){ne(r);const o=k().$implicit;return re(o.checked=!o.checked)}),p(),h(3,"b"),f(4),p(),O(5,z3,5,0,"span",52),v(6,"br"),h(7,"div",38),f(8),O(9,q3,7,2,"ng-container",5),p()()()}if(2&e){const r=k().$implicit,n=k();_(2),w("checked",r.checked),_(2),Ce(r.name),_(1),w("ngIf",r.checked&&r.requiresHistoryDir&&!n.configuration.historydir),_(3),An("",r.description," "),_(1),w("ngIf",r.sampleReport)}}function Z3(e,t){if(1&e&&(ut(0),O(1,W3,10,5,"div",49),dt()),2&e){const r=t.$implicit,n=k();_(1),w("ngIf",!n.configuration.selectedType||r.types.indexOf(n.configuration.selectedType)>-1)}}function Y3(e,t){if(1&e){const r=Ae();h(0,"div",8)(1,"div",57)(2,"input",58),R("ngModelChange",function(o){const s=ne(r).index;return re(k().configuration.sourcedirectories[s]=o)}),p(),h(3,"span",45),R("click",function(){const i=ne(r).index;return re(k().configuration.removeSourceDirectory(i))}),h(4,"a",46),v(5,"i",47),p()()()()}if(2&e){const r=t.index,n=k();_(2),Tn("name","sourcedir_",r,""),w("ngModel",n.configuration.sourcedirectories[r])}}function Q3(e,t){if(1&e){const r=Ae();h(0,"div",8)(1,"div",57)(2,"input",59),R("ngModelChange",function(o){const s=ne(r).index;return re(k().configuration.plugins[s]=o)}),p(),h(3,"span",45),R("click",function(){const i=ne(r).index;return re(k().configuration.removePlugin(i))}),h(4,"a",46),v(5,"i",47),p()()()()}if(2&e){const r=t.index,n=k();_(2),Tn("name","plugin_",r,""),w("ngModel",n.configuration.plugins[r])}}function X3(e,t){if(1&e){const r=Ae();h(0,"div",8)(1,"div",57)(2,"input",60),R("ngModelChange",function(o){const s=ne(r).index;return re(k().configuration.assemblyfilters[s]=o)}),p(),h(3,"span",45),R("click",function(){const i=ne(r).index;return re(k().configuration.removeAssemblyFilter(i))}),h(4,"a",46),v(5,"i",47),p()()()()}if(2&e){const r=t.index,n=k();_(2),Tn("name","assemblyfilter_",r,""),w("ngModel",n.configuration.assemblyfilters[r])}}function J3(e,t){if(1&e){const r=Ae();h(0,"div",8)(1,"div",57)(2,"input",61),R("ngModelChange",function(o){const s=ne(r).index;return re(k().configuration.classfilters[s]=o)}),p(),h(3,"span",45),R("click",function(){const i=ne(r).index;return re(k().configuration.removeClassFilter(i))}),h(4,"a",46),v(5,"i",47),p()()()()}if(2&e){const r=t.index,n=k();_(2),Tn("name","classfilter_",r,""),w("ngModel",n.configuration.classfilters[r])}}function K3(e,t){if(1&e){const r=Ae();h(0,"div",8)(1,"div",57)(2,"input",62),R("ngModelChange",function(o){const s=ne(r).index;return re(k().configuration.filefilters[s]=o)}),p(),h(3,"span",45),R("click",function(){const i=ne(r).index;return re(k().configuration.removeFileFilter(i))}),h(4,"a",46),v(5,"i",47),p()()()()}if(2&e){const r=t.index,n=k();_(2),Tn("name","filefilter_",r,""),w("ngModel",n.configuration.filefilters[r])}}function ej(e,t){if(1&e&&(h(0,"option",63),f(1),p()),2&e){const r=t.$implicit;w("value",r),_(1),Ce(r)}}function tj(e,t){if(1&e&&(h(0,"div",64)(1,"b"),f(2),p(),v(3,"br"),h(4,"pre",32),f(5),p()()),2&e){const r=t.$implicit;_(2),Ce(r.tool),_(3),Ce(r.command)}}function nj(e,t){1&e&&(h(0,"span"),v(1,"i",65),f(2," Copy"),p())}function rj(e,t){1&e&&(h(0,"span"),v(1,"i",66),f(2," Copied"),p())}function oj(e,t){if(1&e&&(h(0,"div",64)(1,"b"),f(2),p(),v(3,"br"),h(4,"pre",32),f(5),p()()),2&e){const r=t.$implicit;_(2),Ce(r.tool),_(3),Ce(r.command)}}function ij(e,t){1&e&&(h(0,"span"),v(1,"i",65),f(2," Copy"),p())}function sj(e,t){1&e&&(h(0,"span"),v(1,"i",66),f(2," Copied"),p())}const aj=function(){return["/pro"]},lj=[{path:"",component:YV,pathMatch:"full",title:"Home",data:{canonical:"/"}},{path:"features",component:BV,title:"Features",data:{canonical:"/features"}},{path:"features.html",redirectTo:"/features"},{path:"getstarted",component:GV,title:"Get started",data:{canonical:"/getstarted"}},{path:"getstarted.html",redirectTo:"/getstarted"},{path:"usage",component:(()=>{var e;class t{constructor(){this.versions=Ft,this.lastResult="",this.usageCopied=!1,this.configuration=new O3,this.environments=[new oc(".NET Core",".NET Core"),new oc(".NET Framework","The full .NET framework"),new oc("Azure DevOps",null),new oc("Github Action",null)],this.packages=[new rc("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 Nh("Package Manager",`Install-Package ReportGenerator -Version ${Ft.version}`),new Nh(".NET CLI",`dotnet add package ReportGenerator --version ${Ft.version}`)],[new ys(".NET Framework",`$(UserProfile)\\.nuget\\packages\\reportgenerator\\${Ft.version}\\tools\\net47\\ReportGenerator.exe`),new ys(".NET Core",`dotnet $(UserProfile)\\.nuget\\packages\\reportgenerator\\${Ft.version}\\tools\\net6.0\\ReportGenerator.dll`)]),new rc("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 Nh(".NET CLI",`dotnet tool install --global dotnet-reportgenerator-globaltool --version ${Ft.version}\r\n\r\ndotnet tool install dotnet-reportgenerator-globaltool --tool-path tools --version ${Ft.version}\r\n\r\ndotnet new tool-manifest\r\ndotnet tool install dotnet-reportgenerator-globaltool --version ${Ft.version}`)],[new ys(".NET Core","reportgenerator")]),new P3("Azure DevOps","https://marketplace.visualstudio.com/items?itemName=Palmmedia.reportgenerator",["Azure DevOps"],"Use this package within Azure DevOps",[],[new ys("Azure DevOps","reportgenerator")]),new k3("GitHub Action","https://github.com/marketplace/actions/reportgenerator",["Github Action"],"Use this package within Github Actions",[],[new ys("Github Action","danielpalme/ReportGenerator-GitHub-Action")])],this.selectedEnvironment=this.environments[0],this.selectedPackage=this.packages[0]}selectedEnvironmentChanged(){this.selectedPackage=this.packages.find(n=>n.runtimes.indexOf(this.selectedEnvironment.name)>-1)}severalPackagesAvailable(){return this.packages.filter(n=>n.runtimes.indexOf(this.selectedEnvironment.name)>-1).length>1}getUsage(){const n=this.configuration.getUsage(this.selectedPackage,this.selectedEnvironment.name);return this.lastResult!==n&&(this.lastResult=n,this.usageCopied=!1),n}copy(){try{navigator.clipboard.writeText(this.getUsage()),this.usageCopied=!0}catch(n){console.error("Failed to copy license",n)}}scrollToHistoryDir(){return document.querySelector("#historydir").scrollIntoView(!0),!1}trackByIndex(n,o){return n}}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275cmp=vt({type:e,selectors:[["app-usage-component"]],standalone:!0,features:[Mt],decls:219,vars:41,consts:[[1,"container"],[1,"mb-4"],[1,"row"],[1,"col-md-7"],["class","form-check",4,"ngFor","ngForOf"],[4,"ngIf"],[1,"alert","alert-info"],["class","mb-3",4,"ngFor","ngForOf","ngForTrackBy"],[1,"input-group","mb-3"],["href","",3,"click"],[1,"fa","fa-plus-circle"],["type","text","name","targetdir","placeholder","The target directory","required","",1,"form-control",3,"ngModel","ngModelChange"],["href","https://danielpalme.github.io/ReportGenerator/resources/SampleReports.zip"],[1,"me-2"],["type","button","class","btn btn-sm me-1 mb-1",3,"ngClass","click",4,"ngFor","ngForOf","ngForTrackBy"],[4,"ngFor","ngForOf","ngForTrackBy"],["class","input-group mb-3",4,"ngFor","ngForOf","ngForTrackBy"],["id","historydir"],["type","text","name","historydir","placeholder","The history directory",1,"form-control",3,"ngModel","required","ngModelChange"],["href","https://github.com/danielpalme/ReportGenerator/wiki/Custom-reports"],["href","https://github.com/danielpalme/ReportGenerator/wiki/Custom-history-storage"],["name","verbosity",1,"form-select",3,"ngModel","ngModelChange"],[3,"value",4,"ngFor","ngForOf","ngForTrackBy"],["type","text","name","title","placeholder","Title",1,"form-control",3,"ngModel","ngModelChange"],["type","text","name","tag","placeholder","Optional tag or build version",1,"form-control",3,"ngModel","ngModelChange"],[3,"routerLink"],["type","text","name","license","placeholder","Optional license for PRO version","rows","4",1,"form-control",3,"ngModel","ngModelChange"],[1,"col-md-5"],[1,"d-md-none","mt-5"],["target","_blank",3,"href"],["class","mt-2",4,"ngFor","ngForOf"],[1,"mt-4"],[1,"text-dark","bg-light","p-2","border"],[1,"btn","btn-outline-dark","mt-2",3,"click"],[1,"d-none","d-md-block","sticky"],[1,"form-check"],[1,"form-check-label"],["type","radio","name","environment",1,"form-check-input",3,"ngModel","value","checked","ngModelChange"],[1,"mb-3"],[4,"ngFor","ngForOf"],["class","form-check",4,"ngIf"],["type","radio","name","package",1,"form-check-input",3,"ngModel","value","ngModelChange"],[3,"ngClass"],["type","text","placeholder","The path of the coverage file","required","",1,"form-control",3,"name","ngModel","ngModelChange"],["class","input-group-text",3,"click",4,"ngIf"],[1,"input-group-text",3,"click"],["href",""],[1,"fa","fa-trash","text-danger"],["type","button",1,"btn","btn-sm","me-1","mb-1",3,"ngClass","click"],["class","form-check mt-1",4,"ngIf"],[1,"form-check","mt-1"],["type","checkbox","name","reporttype",1,"form-check-input",3,"checked","change"],["class","text-danger ms-2",4,"ngIf"],[1,"text-danger","ms-2"],[1,"fa-solid","fa-triangle-exclamation"],[1,"mt-1"],[1,"fa-solid","fa-arrow-up-right-from-square"],[1,"input-group"],["type","text","placeholder","The source directory","required","",1,"form-control",3,"name","ngModel","ngModelChange"],["type","text","placeholder","The path of the plugin","required","",1,"form-control",3,"name","ngModel","ngModelChange"],["type","text","placeholder","The include or exclude filter for assemlies","pattern","^[+-].+$","required","",1,"form-control",3,"name","ngModel","ngModelChange"],["type","text","placeholder","The include or exclude filter for classes","pattern","^[+-].+$","required","",1,"form-control",3,"name","ngModel","ngModelChange"],["type","text","placeholder","The include or exclude filter for files","pattern","^[+-].+$","required","",1,"form-control",3,"name","ngModel","ngModelChange"],[3,"value"],[1,"mt-2"],[1,"fa-solid","fa-copy"],[1,"fa-solid","fa-check","text-success"]],template:function(n,o){1&n&&(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(),O(8,F3,8,5,"div",4),v(9,"hr"),O(10,j3,4,1,"ng-container",5),v(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."),v(16,"br"),f(17,"Globbing is supported."),p(),O(18,B3,4,6,"div",7),h(19,"div",8)(20,"a",9),R("click",function(){return o.configuration.addReport()}),v(21,"i",10),f(22," Add report"),p()(),v(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),R("ngModelChange",function(s){return o.configuration.targetdir=s}),p()(),v(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(),O(39,G3,2,5,"button",14),v(40,"br"),O(41,Z3,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."),v(46,"br"),f(47,"The source directories are used if coverage report contains classes without path information."),p(),O(48,Y3,6,2,"div",16),h(49,"div",8)(50,"a",9),R("click",function(){return o.configuration.addSourceDirectory()}),v(51,"i",10),f(52," Add source directory"),p()(),v(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."),v(61,"br"),f(62,"Required to show the history chart in the HTML reports."),p(),h(63,"div",8)(64,"input",18),R("ngModelChange",function(s){return o.configuration.historydir=s}),p()(),v(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(),O(76,Q3,6,2,"div",16),h(77,"div",8)(78,"a",9),R("click",function(){return o.configuration.addPlugin()}),v(79,"i",10),f(80," Add plugin"),p()(),v(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. "),v(89,"br"),f(90,"Exclusion filters take precedence over inclusion filters. "),v(91,"br"),f(92,"Wildcards are allowed."),v(93,"br"),h(94,"p"),f(95,"Examples:"),v(96,"br"),h(97,"code"),f(98,"+Included"),p(),v(99,"br"),h(100,"code"),f(101,"-Excluded"),p()()(),O(102,X3,6,2,"div",16),h(103,"div",8)(104,"a",9),R("click",function(){return o.configuration.addAssemblyFilter()}),v(105,"i",10),f(106," Add assembly filter"),p()(),v(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. "),v(115,"br"),f(116,"Exclusion filters take precedence over inclusion filters. "),v(117,"br"),f(118,"Wildcards are allowed."),v(119,"br"),h(120,"p"),f(121,"Examples:"),v(122,"br"),h(123,"code"),f(124,"+Included"),p(),v(125,"br"),h(126,"code"),f(127,"-Excluded"),p()()(),O(128,J3,6,2,"div",16),h(129,"div",8)(130,"a",9),R("click",function(){return o.configuration.addClassFilter()}),v(131,"i",10),f(132," Add class filter"),p()(),v(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. "),v(141,"br"),f(142,"Exclusion filters take precedence over inclusion filters. "),v(143,"br"),f(144,"Wildcards are allowed."),v(145,"br"),h(146,"p"),f(147,"Examples:"),v(148,"br"),h(149,"code"),f(150,"+Included"),p(),v(151,"br"),h(152,"code"),f(153,"-Excluded"),p()()(),O(154,K3,6,2,"div",16),h(155,"div",8)(156,"a",9),R("click",function(){return o.configuration.addFileFilter()}),v(157,"i",10),f(158," Add file filter"),p()(),v(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),R("ngModelChange",function(s){return o.configuration.selectedverbosity=s}),O(166,ej,2,2,"option",22),p()(),v(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),R("ngModelChange",function(s){return o.configuration.title=s}),p()(),v(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),R("ngModelChange",function(s){return o.configuration.tag=s}),p()(),v(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),R("ngModelChange",function(s){return o.configuration.license=s}),p()()()(),h(190,"div",27)(191,"div",28)(192,"h3"),f(193,"Instructions"),p(),f(194," Install "),h(195,"a",29),f(196),p(),O(197,tj,6,2,"div",30),h(198,"h4",31),f(199,"Usage"),p(),h(200,"pre",32),f(201),p(),h(202,"button",33),R("click",function(){return o.copy()}),O(203,nj,3,0,"span",5),O(204,rj,3,0,"span",5),p()(),h(205,"div",34)(206,"h3"),f(207,"Instructions"),p(),f(208," Install "),h(209,"a",29),f(210),p(),O(211,oj,6,2,"div",30),h(212,"h4",31),f(213,"Usage"),p(),h(214,"pre",32),f(215),p(),h(216,"button",33),R("click",function(){return o.copy()}),O(217,ij,3,0,"span",5),O(218,sj,3,0,"span",5),p()()()()()),2&n&&(_(8),w("ngForOf",o.environments),_(2),w("ngIf",o.severalPackagesAvailable()),_(8),w("ngForOf",o.configuration.reports)("ngForTrackBy",o.trackByIndex),_(11),w("ngModel",o.configuration.targetdir),_(10),w("ngForOf",o.configuration.types)("ngForTrackBy",o.trackByIndex),_(2),w("ngForOf",o.configuration.reporttypes)("ngForTrackBy",o.trackByIndex),_(7),w("ngForOf",o.configuration.sourcedirectories)("ngForTrackBy",o.trackByIndex),_(16),w("ngModel",o.configuration.historydir)("required",o.configuration.historyDirRequired()),_(12),w("ngForOf",o.configuration.plugins)("ngForTrackBy",o.trackByIndex),_(26),w("ngForOf",o.configuration.assemblyfilters)("ngForTrackBy",o.trackByIndex),_(26),w("ngForOf",o.configuration.classfilters)("ngForTrackBy",o.trackByIndex),_(26),w("ngForOf",o.configuration.filefilters)("ngForTrackBy",o.trackByIndex),_(11),w("ngModel",o.configuration.selectedverbosity),_(1),w("ngForOf",o.configuration.verbosities)("ngForTrackBy",o.trackByIndex),_(7),w("ngModel",o.configuration.title),_(7),w("ngModel",o.configuration.tag),_(6),w("routerLink",K(40,aj)),_(3),w("ngModel",o.configuration.license),_(6),w("href",o.selectedPackage.url,to),_(1),Ce(o.selectedPackage.name),_(1),w("ngForOf",o.selectedPackage.installOptions),_(4),Ce(o.getUsage()),_(2),w("ngIf",!o.usageCopied),_(1),w("ngIf",o.usageCopied),_(5),w("href",o.selectedPackage.url,to),_(1),Ce(o.selectedPackage.name),_(1),w("ngForOf",o.selectedPackage.installOptions),_(4),Ce(o.getUsage()),_(2),w("ngIf",!o.usageCopied),_(1),w("ngIf",o.usageCopied))},dependencies:[Jl,Yl,kw,Lw,Lo,Ql,_h,jl,Hl,Uo,Mh,gs,Ho,Df,gl,pl,pn],styles:[".sticky[_ngcontent-%COMP%]{position:sticky;top:100px}"]}),t})(),title:"Usage",data:{canonical:"/usage"}},{path:"usage.html",redirectTo:"/usage"},{path:"pro",component:N3,title:"PRO",data:{canonical:"/pro"}},{path:"pro.html",redirectTo:"/pro"},{path:"contact",component:UV,title:"Contact",data:{canonical:"/contact"}},{path:"contact.html",redirectTo:"/contact"},{path:"404",component:QV,title:"404 - Not found"},{path:"**",redirectTo:"/404"}];(function Pk(e,t){return SN({rootComponent:e,...RD(t)})})(pL,{providers:[_m(jk,(()=>{var e;class t{}return(e=t).\u0275fac=function(n){return new(n||e)},e.\u0275mod=Cn({type:e}),e.\u0275inj=Kt({imports:[jb.forRoot(lj,{scrollPositionRestoration:"enabled",scrollOffset:[0,0],anchorScrolling:"enabled"}),jb]}),t})(),Jl),u1,d1,s1,function xV(...e){const t=[Ah,t1,Kw,{provide:Kl,useExisting:Kw},{provide:ec,useExisting:t1},{provide:vs,useValue:AV,multi:!0},{provide:xh,useValue:!0},{provide:o1,useClass:TV}];for(const r of e)t.push(...r.\u0275providers);return Tu(t)}(function RV(){return function Tr(e,t){return{\u0275kind:e,\u0275providers:t}}(nr.LegacyInterceptors,[{provide:i1,useFactory:CV},{provide:vs,useExisting:i1,multi:!0}])}())]}).catch(e=>console.error(e))}},ue=>{ue(ue.s=603)}]); \ No newline at end of file diff --git a/docs/resources/SampleReports.zip b/docs/resources/SampleReports.zip index bf45f434..7d8182e8 100644 Binary files a/docs/resources/SampleReports.zip and b/docs/resources/SampleReports.zip differ diff --git a/docs/resources/reports/Badges/badge_branchcoverage.png b/docs/resources/reports/Badges/badge_branchcoverage.png deleted file mode 100644 index 1c06e3c6..00000000 Binary files a/docs/resources/reports/Badges/badge_branchcoverage.png and /dev/null differ diff --git a/docs/resources/reports/Badges/badge_branchcoverage.svg b/docs/resources/reports/Badges/badge_branchcoverage.svg index 01d13695..eaca144c 100644 --- a/docs/resources/reports/Badges/badge_branchcoverage.svg +++ b/docs/resources/reports/Badges/badge_branchcoverage.svg @@ -94,7 +94,7 @@ - Generated by: ReportGenerator 5.1.20.0 + Generated by: ReportGenerator 5.1.25.0 diff --git a/docs/resources/reports/Badges/badge_combined.svg b/docs/resources/reports/Badges/badge_combined.svg index 3fceda6b..cdd16d41 100644 --- a/docs/resources/reports/Badges/badge_combined.svg +++ b/docs/resources/reports/Badges/badge_combined.svg @@ -94,7 +94,7 @@ - Generated by: ReportGenerator 5.1.20.0 + Generated by: ReportGenerator 5.1.25.0 diff --git a/docs/resources/reports/Badges/badge_linecoverage.png b/docs/resources/reports/Badges/badge_linecoverage.png deleted file mode 100644 index ec52db91..00000000 Binary files a/docs/resources/reports/Badges/badge_linecoverage.png and /dev/null differ diff --git a/docs/resources/reports/Badges/badge_linecoverage.svg b/docs/resources/reports/Badges/badge_linecoverage.svg index f3e2ec90..5338ceec 100644 --- a/docs/resources/reports/Badges/badge_linecoverage.svg +++ b/docs/resources/reports/Badges/badge_linecoverage.svg @@ -94,7 +94,7 @@ - Generated by: ReportGenerator 5.1.20.0 + Generated by: ReportGenerator 5.1.25.0 diff --git a/docs/resources/reports/Badges/badge_methodcoverage.png b/docs/resources/reports/Badges/badge_methodcoverage.png deleted file mode 100644 index 1b43ce8c..00000000 Binary files a/docs/resources/reports/Badges/badge_methodcoverage.png and /dev/null differ diff --git a/docs/resources/reports/Badges/badge_methodcoverage.svg b/docs/resources/reports/Badges/badge_methodcoverage.svg index 7aa1b1fc..96a2fd0e 100644 --- a/docs/resources/reports/Badges/badge_methodcoverage.svg +++ b/docs/resources/reports/Badges/badge_methodcoverage.svg @@ -94,7 +94,7 @@ - Generated by: ReportGenerator 5.1.20.0 + Generated by: ReportGenerator 5.1.25.0 diff --git a/docs/resources/reports/Clover/Clover.xml b/docs/resources/reports/Clover/Clover.xml index 98c69cbc..e6e52b1e 100644 --- a/docs/resources/reports/Clover/Clover.xml +++ b/docs/resources/reports/Clover/Clover.xml @@ -1,6 +1,6 @@ - - + + @@ -161,7 +161,7 @@ - + \ No newline at end of file diff --git a/docs/resources/reports/Cobertura/Cobertura.xml b/docs/resources/reports/Cobertura/Cobertura.xml index 08096590..d90876e6 100644 --- a/docs/resources/reports/Cobertura/Cobertura.xml +++ b/docs/resources/reports/Cobertura/Cobertura.xml @@ -1,6 +1,6 @@ - + diff --git a/docs/resources/reports/CsvSummary/Summary.csv b/docs/resources/reports/CsvSummary/Summary.csv index 08332b7f..583210d2 100644 --- a/docs/resources/reports/CsvSummary/Summary.csv +++ b/docs/resources/reports/CsvSummary/Summary.csv @@ -1,5 +1,5 @@ Summary -Generated on:;29.09.2023 - 21:05:42 +Generated on:;03.10.2023 - 20:43:27 Parser:;OpenCover Assemblies:;1 Classes:;4 diff --git a/docs/resources/reports/Html/Sample_PartialClass.html b/docs/resources/reports/Html/Sample_PartialClass.html index 4ad25d3f..f0282a81 100644 --- a/docs/resources/reports/Html/Sample_PartialClass.html +++ b/docs/resources/reports/Html/Sample_PartialClass.html @@ -109,14 +109,84 @@

< Summary

Coverage history

-
+
+ +Coverage history + + + + + + + + + + + + + + 0 + 25 + 50 + 75 + 100 + + + + + + + + + + +

Metrics

@@ -201,7 +271,7 @@

C:\temp\PartialClass2.cs

- +

Methods/Properties

diff --git a/docs/resources/reports/Html/Sample_Program.html b/docs/resources/reports/Html/Sample_Program.html index af25bea3..e4c0ef19 100644 --- a/docs/resources/reports/Html/Sample_Program.html +++ b/docs/resources/reports/Html/Sample_Program.html @@ -109,9 +109,76 @@

< Summary

Coverage history

-
+
+ +Coverage history + + + + + + + + + + + + + + 0 + 25 + 50 + 75 + 100 + + + + + + + +

Metrics

@@ -176,7 +246,7 @@

C:\temp\TestClass.cs

- +

Methods/Properties

diff --git a/docs/resources/reports/Html/Sample_TestClass2.html b/docs/resources/reports/Html/Sample_TestClass2.html index 778dde27..64ba0dc1 100644 --- a/docs/resources/reports/Html/Sample_TestClass2.html +++ b/docs/resources/reports/Html/Sample_TestClass2.html @@ -109,14 +109,84 @@

< Summary

Coverage history

-
+
+ +Coverage history + + + + + + + + + + + + + + 0 + 25 + 50 + 75 + 100 + + + + + + + + + + +

Metrics

@@ -227,7 +297,7 @@

C:\temp\TestClass2.cs

- +

Methods/Properties

diff --git a/docs/resources/reports/Html/index.html b/docs/resources/reports/Html/index.html index f59f216a..29717566 100644 --- a/docs/resources/reports/Html/index.html +++ b/docs/resources/reports/Html/index.html @@ -111,14 +111,84 @@

Summary

+
+ +Coverage history + + + + + + + + + + + + + + 0 + 25 + 50 + 75 + 100 + + + + + + + + + + +

Risk Hotspots

@@ -159,7 +229,7 @@

Coverage

- + @@ -1020,10 +1092,10 @@ { "name": "Sample", "classes": [ - { "name": "Sample.PartialClass", "rp": "", "cl": 12, "ucl": 10, "cal": 22, "tl": 53, "cb": 1, "tb": 2, "cm": 3, "tm": 6, "lch": [40.9,54.5,59,59,45.4,50,50,59,54.5], "bch": [50,40,40,45,45,45,45,45,50], "mch": [50,33.3,50,66.6,66.6,66.6,83.3,83.3,50], "hc": [{ "et": "01.02.2022 - 20:50:35", "cl": 9, "ucl": 13, "cal": 22, "tl": 53, "lcq": 40.9, "cb": 10, "tb": 20, "bcq": 50, "cm": 3, "tm": 6, "mcq": 50 }, { "et": "02.02.2022 - 20:50:35", "cl": 12, "ucl": 10, "cal": 22, "tl": 53, "lcq": 54.5, "cb": 8, "tb": 20, "bcq": 40, "cm": 2, "tm": 6, "mcq": 33.3 }, { "et": "03.02.2022 - 20:50:35", "cl": 13, "ucl": 9, "cal": 22, "tl": 53, "lcq": 59, "cb": 8, "tb": 20, "bcq": 40, "cm": 3, "tm": 6, "mcq": 50 }, { "et": "04.02.2022 - 20:50:35", "cl": 13, "ucl": 9, "cal": 22, "tl": 53, "lcq": 59, "cb": 9, "tb": 20, "bcq": 45, "cm": 4, "tm": 6, "mcq": 66.6 }, { "et": "05.02.2022 - 20:50:35", "cl": 10, "ucl": 12, "cal": 22, "tl": 53, "lcq": 45.4, "cb": 9, "tb": 20, "bcq": 45, "cm": 4, "tm": 6, "mcq": 66.6 }, { "et": "06.02.2022 - 20:50:35", "cl": 11, "ucl": 11, "cal": 22, "tl": 53, "lcq": 50, "cb": 9, "tb": 20, "bcq": 45, "cm": 4, "tm": 6, "mcq": 66.6 }, { "et": "07.02.2022 - 20:50:35", "cl": 11, "ucl": 11, "cal": 22, "tl": 53, "lcq": 50, "cb": 9, "tb": 20, "bcq": 45, "cm": 5, "tm": 6, "mcq": 83.3 }, { "et": "08.02.2022 - 20:50:35", "cl": 13, "ucl": 9, "cal": 22, "tl": 53, "lcq": 59, "cb": 9, "tb": 20, "bcq": 45, "cm": 5, "tm": 6, "mcq": 83.3 }, { "et": "09.02.2022 - 20:50:35", "cl": 13, "ucl": 9, "cal": 22, "tl": 53, "lcq": 59, "cb": 9, "tb": 20, "bcq": 45, "cm": 5, "tm": 6, "mcq": 83.3 }, { "et": "29.09.2023 - 21:05:21", "cl": 12, "ucl": 10, "cal": 22, "tl": 53, "lcq": 54.5, "cb": 1, "tb": 2, "bcq": 50, "cm": 3, "tm": 6, "mcq": 50 }], "metrics": { "cc": 1, "npth": 0, "seq": 0, "bcov": 0, "crp": 2 } }, - { "name": "Sample.TestClass", "rp": "", "cl": 12, "ucl": 9, "cal": 21, "tl": 38, "cb": 1, "tb": 2, "cm": 1, "tm": 2, "lch": [38,38,42.8,42.8,47.6,47.6,57.1], "bch": [50,60,60,65,65,50,50], "mch": [50,50,50,50,50,50,50], "hc": [{ "et": "01.02.2022 - 20:50:35", "cl": 8, "ucl": 13, "cal": 21, "tl": 38, "lcq": 38, "cb": 10, "tb": 20, "bcq": 50, "cm": 1, "tm": 2, "mcq": 50 }, { "et": "02.02.2022 - 20:50:35", "cl": 8, "ucl": 13, "cal": 21, "tl": 38, "lcq": 38, "cb": 10, "tb": 20, "bcq": 50, "cm": 1, "tm": 2, "mcq": 50 }, { "et": "03.02.2022 - 20:50:35", "cl": 8, "ucl": 13, "cal": 21, "tl": 38, "lcq": 38, "cb": 12, "tb": 20, "bcq": 60, "cm": 1, "tm": 2, "mcq": 50 }, { "et": "04.02.2022 - 20:50:35", "cl": 9, "ucl": 12, "cal": 21, "tl": 38, "lcq": 42.8, "cb": 12, "tb": 20, "bcq": 60, "cm": 1, "tm": 2, "mcq": 50 }, { "et": "05.02.2022 - 20:50:35", "cl": 9, "ucl": 12, "cal": 21, "tl": 38, "lcq": 42.8, "cb": 13, "tb": 20, "bcq": 65, "cm": 1, "tm": 2, "mcq": 50 }, { "et": "06.02.2022 - 20:50:35", "cl": 9, "ucl": 12, "cal": 21, "tl": 38, "lcq": 42.8, "cb": 13, "tb": 20, "bcq": 65, "cm": 1, "tm": 2, "mcq": 50 }, { "et": "07.02.2022 - 20:50:35", "cl": 10, "ucl": 11, "cal": 21, "tl": 38, "lcq": 47.6, "cb": 13, "tb": 20, "bcq": 65, "cm": 1, "tm": 2, "mcq": 50 }, { "et": "08.02.2022 - 20:50:35", "cl": 10, "ucl": 11, "cal": 21, "tl": 38, "lcq": 47.6, "cb": 13, "tb": 20, "bcq": 65, "cm": 1, "tm": 2, "mcq": 50 }, { "et": "09.02.2022 - 20:50:35", "cl": 10, "ucl": 11, "cal": 21, "tl": 38, "lcq": 47.6, "cb": 10, "tb": 20, "bcq": 50, "cm": 1, "tm": 2, "mcq": 50 }, { "et": "29.09.2023 - 21:05:21", "cl": 12, "ucl": 9, "cal": 21, "tl": 38, "lcq": 57.1, "cb": 1, "tb": 2, "bcq": 50, "cm": 1, "tm": 2, "mcq": 50 }], "metrics": { "cc": 3, "npth": 2, "seq": 0, "bcov": 0, "crp": 3.14 } }, - { "name": "Test.Program", "rp": "", "cl": 35, "ucl": 9, "cal": 44, "tl": 84, "cb": 0, "tb": 0, "cm": 4, "tm": 6, "lch": [79.5], "bch": [], "mch": [66.6], "hc": [{ "et": "01.02.2022 - 20:50:35", "cl": 35, "ucl": 9, "cal": 44, "tl": 84, "lcq": 79.5, "cb": 0, "tb": 0, "bcq": 0, "cm": 4, "tm": 6, "mcq": 66.6 }, { "et": "02.02.2022 - 20:50:35", "cl": 35, "ucl": 9, "cal": 44, "tl": 84, "lcq": 79.5, "cb": 0, "tb": 0, "bcq": 0, "cm": 4, "tm": 6, "mcq": 66.6 }, { "et": "03.02.2022 - 20:50:35", "cl": 35, "ucl": 9, "cal": 44, "tl": 84, "lcq": 79.5, "cb": 0, "tb": 0, "bcq": 0, "cm": 4, "tm": 6, "mcq": 66.6 }, { "et": "04.02.2022 - 20:50:35", "cl": 35, "ucl": 9, "cal": 44, "tl": 84, "lcq": 79.5, "cb": 0, "tb": 0, "bcq": 0, "cm": 4, "tm": 6, "mcq": 66.6 }, { "et": "05.02.2022 - 20:50:35", "cl": 35, "ucl": 9, "cal": 44, "tl": 84, "lcq": 79.5, "cb": 0, "tb": 0, "bcq": 0, "cm": 4, "tm": 6, "mcq": 66.6 }, { "et": "06.02.2022 - 20:50:35", "cl": 35, "ucl": 9, "cal": 44, "tl": 84, "lcq": 79.5, "cb": 0, "tb": 0, "bcq": 0, "cm": 4, "tm": 6, "mcq": 66.6 }, { "et": "07.02.2022 - 20:50:35", "cl": 35, "ucl": 9, "cal": 44, "tl": 84, "lcq": 79.5, "cb": 0, "tb": 0, "bcq": 0, "cm": 4, "tm": 6, "mcq": 66.6 }, { "et": "08.02.2022 - 20:50:35", "cl": 35, "ucl": 9, "cal": 44, "tl": 84, "lcq": 79.5, "cb": 0, "tb": 0, "bcq": 0, "cm": 4, "tm": 6, "mcq": 66.6 }, { "et": "09.02.2022 - 20:50:35", "cl": 35, "ucl": 9, "cal": 44, "tl": 84, "lcq": 79.5, "cb": 0, "tb": 0, "bcq": 0, "cm": 4, "tm": 6, "mcq": 66.6 }, { "et": "29.09.2023 - 21:05:21", "cl": 35, "ucl": 9, "cal": 44, "tl": 84, "lcq": 79.5, "cb": 0, "tb": 0, "bcq": 0, "cm": 4, "tm": 6, "mcq": 66.6 }], "metrics": { "cc": 3, "npth": 0, "seq": 0, "bcov": 0, "crp": 3 } }, - { "name": "Test.TestClass2", "rp": "", "cl": 24, "ucl": 14, "cal": 38, "tl": 85, "cb": 1, "tb": 2, "cm": 6, "tm": 10, "lch": [39.4,39.4,42.1,44.7,39.4,63.1], "bch": [50,40,40,40,40,50], "mch": [60,40,40,60,60,60], "hc": [{ "et": "01.02.2022 - 20:50:35", "cl": 15, "ucl": 23, "cal": 38, "tl": 85, "lcq": 39.4, "cb": 10, "tb": 20, "bcq": 50, "cm": 6, "tm": 10, "mcq": 60 }, { "et": "02.02.2022 - 20:50:35", "cl": 15, "ucl": 23, "cal": 38, "tl": 85, "lcq": 39.4, "cb": 8, "tb": 20, "bcq": 40, "cm": 4, "tm": 10, "mcq": 40 }, { "et": "03.02.2022 - 20:50:35", "cl": 16, "ucl": 22, "cal": 38, "tl": 85, "lcq": 42.1, "cb": 8, "tb": 20, "bcq": 40, "cm": 4, "tm": 10, "mcq": 40 }, { "et": "04.02.2022 - 20:50:35", "cl": 16, "ucl": 22, "cal": 38, "tl": 85, "lcq": 42.1, "cb": 8, "tb": 20, "bcq": 40, "cm": 4, "tm": 10, "mcq": 40 }, { "et": "05.02.2022 - 20:50:35", "cl": 16, "ucl": 22, "cal": 38, "tl": 85, "lcq": 42.1, "cb": 8, "tb": 20, "bcq": 40, "cm": 4, "tm": 10, "mcq": 40 }, { "et": "06.02.2022 - 20:50:35", "cl": 17, "ucl": 21, "cal": 38, "tl": 85, "lcq": 44.7, "cb": 8, "tb": 20, "bcq": 40, "cm": 6, "tm": 10, "mcq": 60 }, { "et": "07.02.2022 - 20:50:35", "cl": 17, "ucl": 21, "cal": 38, "tl": 85, "lcq": 44.7, "cb": 8, "tb": 20, "bcq": 40, "cm": 6, "tm": 10, "mcq": 60 }, { "et": "08.02.2022 - 20:50:35", "cl": 15, "ucl": 23, "cal": 38, "tl": 85, "lcq": 39.4, "cb": 8, "tb": 20, "bcq": 40, "cm": 6, "tm": 10, "mcq": 60 }, { "et": "09.02.2022 - 20:50:35", "cl": 15, "ucl": 23, "cal": 38, "tl": 85, "lcq": 39.4, "cb": 8, "tb": 20, "bcq": 40, "cm": 6, "tm": 10, "mcq": 60 }, { "et": "29.09.2023 - 21:05:21", "cl": 24, "ucl": 14, "cal": 38, "tl": 85, "lcq": 63.1, "cb": 1, "tb": 2, "bcq": 50, "cm": 6, "tm": 10, "mcq": 60 }], "metrics": { "cc": 5, "npth": 2, "seq": 0, "bcov": 0, "crp": 5 } }, + { "name": "Sample.PartialClass", "rp": "", "cl": 12, "ucl": 10, "cal": 22, "tl": 53, "cb": 1, "tb": 2, "cm": 3, "tm": 6, "lch": [40.9,54.5,59,59,45.4,50,50,59,54.5], "bch": [50,40,40,45,45,45,45,45,50], "mch": [50,33.3,50,66.6,66.6,66.6,83.3,83.3,50], "hc": [{ "et": "01.02.2022 - 20:50:35", "cl": 9, "ucl": 13, "cal": 22, "tl": 53, "lcq": 40.9, "cb": 10, "tb": 20, "bcq": 50, "cm": 3, "tm": 6, "mcq": 50 }, { "et": "02.02.2022 - 20:50:35", "cl": 12, "ucl": 10, "cal": 22, "tl": 53, "lcq": 54.5, "cb": 8, "tb": 20, "bcq": 40, "cm": 2, "tm": 6, "mcq": 33.3 }, { "et": "03.02.2022 - 20:50:35", "cl": 13, "ucl": 9, "cal": 22, "tl": 53, "lcq": 59, "cb": 8, "tb": 20, "bcq": 40, "cm": 3, "tm": 6, "mcq": 50 }, { "et": "04.02.2022 - 20:50:35", "cl": 13, "ucl": 9, "cal": 22, "tl": 53, "lcq": 59, "cb": 9, "tb": 20, "bcq": 45, "cm": 4, "tm": 6, "mcq": 66.6 }, { "et": "05.02.2022 - 20:50:35", "cl": 10, "ucl": 12, "cal": 22, "tl": 53, "lcq": 45.4, "cb": 9, "tb": 20, "bcq": 45, "cm": 4, "tm": 6, "mcq": 66.6 }, { "et": "06.02.2022 - 20:50:35", "cl": 11, "ucl": 11, "cal": 22, "tl": 53, "lcq": 50, "cb": 9, "tb": 20, "bcq": 45, "cm": 4, "tm": 6, "mcq": 66.6 }, { "et": "07.02.2022 - 20:50:35", "cl": 11, "ucl": 11, "cal": 22, "tl": 53, "lcq": 50, "cb": 9, "tb": 20, "bcq": 45, "cm": 5, "tm": 6, "mcq": 83.3 }, { "et": "08.02.2022 - 20:50:35", "cl": 13, "ucl": 9, "cal": 22, "tl": 53, "lcq": 59, "cb": 9, "tb": 20, "bcq": 45, "cm": 5, "tm": 6, "mcq": 83.3 }, { "et": "09.02.2022 - 20:50:35", "cl": 13, "ucl": 9, "cal": 22, "tl": 53, "lcq": 59, "cb": 9, "tb": 20, "bcq": 45, "cm": 5, "tm": 6, "mcq": 83.3 }, { "et": "03.10.2023 - 20:43:11", "cl": 12, "ucl": 10, "cal": 22, "tl": 53, "lcq": 54.5, "cb": 1, "tb": 2, "bcq": 50, "cm": 3, "tm": 6, "mcq": 50 }], "metrics": { "cc": 1, "npth": 0, "seq": 0, "bcov": 0, "crp": 2 } }, + { "name": "Sample.TestClass", "rp": "", "cl": 12, "ucl": 9, "cal": 21, "tl": 38, "cb": 1, "tb": 2, "cm": 1, "tm": 2, "lch": [38,38,42.8,42.8,47.6,47.6,57.1], "bch": [50,60,60,65,65,50,50], "mch": [50,50,50,50,50,50,50], "hc": [{ "et": "01.02.2022 - 20:50:35", "cl": 8, "ucl": 13, "cal": 21, "tl": 38, "lcq": 38, "cb": 10, "tb": 20, "bcq": 50, "cm": 1, "tm": 2, "mcq": 50 }, { "et": "02.02.2022 - 20:50:35", "cl": 8, "ucl": 13, "cal": 21, "tl": 38, "lcq": 38, "cb": 10, "tb": 20, "bcq": 50, "cm": 1, "tm": 2, "mcq": 50 }, { "et": "03.02.2022 - 20:50:35", "cl": 8, "ucl": 13, "cal": 21, "tl": 38, "lcq": 38, "cb": 12, "tb": 20, "bcq": 60, "cm": 1, "tm": 2, "mcq": 50 }, { "et": "04.02.2022 - 20:50:35", "cl": 9, "ucl": 12, "cal": 21, "tl": 38, "lcq": 42.8, "cb": 12, "tb": 20, "bcq": 60, "cm": 1, "tm": 2, "mcq": 50 }, { "et": "05.02.2022 - 20:50:35", "cl": 9, "ucl": 12, "cal": 21, "tl": 38, "lcq": 42.8, "cb": 13, "tb": 20, "bcq": 65, "cm": 1, "tm": 2, "mcq": 50 }, { "et": "06.02.2022 - 20:50:35", "cl": 9, "ucl": 12, "cal": 21, "tl": 38, "lcq": 42.8, "cb": 13, "tb": 20, "bcq": 65, "cm": 1, "tm": 2, "mcq": 50 }, { "et": "07.02.2022 - 20:50:35", "cl": 10, "ucl": 11, "cal": 21, "tl": 38, "lcq": 47.6, "cb": 13, "tb": 20, "bcq": 65, "cm": 1, "tm": 2, "mcq": 50 }, { "et": "08.02.2022 - 20:50:35", "cl": 10, "ucl": 11, "cal": 21, "tl": 38, "lcq": 47.6, "cb": 13, "tb": 20, "bcq": 65, "cm": 1, "tm": 2, "mcq": 50 }, { "et": "09.02.2022 - 20:50:35", "cl": 10, "ucl": 11, "cal": 21, "tl": 38, "lcq": 47.6, "cb": 10, "tb": 20, "bcq": 50, "cm": 1, "tm": 2, "mcq": 50 }, { "et": "03.10.2023 - 20:43:11", "cl": 12, "ucl": 9, "cal": 21, "tl": 38, "lcq": 57.1, "cb": 1, "tb": 2, "bcq": 50, "cm": 1, "tm": 2, "mcq": 50 }], "metrics": { "cc": 3, "npth": 2, "seq": 0, "bcov": 0, "crp": 3.14 } }, + { "name": "Test.Program", "rp": "", "cl": 35, "ucl": 9, "cal": 44, "tl": 84, "cb": 0, "tb": 0, "cm": 4, "tm": 6, "lch": [79.5], "bch": [], "mch": [66.6], "hc": [{ "et": "01.02.2022 - 20:50:35", "cl": 35, "ucl": 9, "cal": 44, "tl": 84, "lcq": 79.5, "cb": 0, "tb": 0, "bcq": 0, "cm": 4, "tm": 6, "mcq": 66.6 }, { "et": "02.02.2022 - 20:50:35", "cl": 35, "ucl": 9, "cal": 44, "tl": 84, "lcq": 79.5, "cb": 0, "tb": 0, "bcq": 0, "cm": 4, "tm": 6, "mcq": 66.6 }, { "et": "03.02.2022 - 20:50:35", "cl": 35, "ucl": 9, "cal": 44, "tl": 84, "lcq": 79.5, "cb": 0, "tb": 0, "bcq": 0, "cm": 4, "tm": 6, "mcq": 66.6 }, { "et": "04.02.2022 - 20:50:35", "cl": 35, "ucl": 9, "cal": 44, "tl": 84, "lcq": 79.5, "cb": 0, "tb": 0, "bcq": 0, "cm": 4, "tm": 6, "mcq": 66.6 }, { "et": "05.02.2022 - 20:50:35", "cl": 35, "ucl": 9, "cal": 44, "tl": 84, "lcq": 79.5, "cb": 0, "tb": 0, "bcq": 0, "cm": 4, "tm": 6, "mcq": 66.6 }, { "et": "06.02.2022 - 20:50:35", "cl": 35, "ucl": 9, "cal": 44, "tl": 84, "lcq": 79.5, "cb": 0, "tb": 0, "bcq": 0, "cm": 4, "tm": 6, "mcq": 66.6 }, { "et": "07.02.2022 - 20:50:35", "cl": 35, "ucl": 9, "cal": 44, "tl": 84, "lcq": 79.5, "cb": 0, "tb": 0, "bcq": 0, "cm": 4, "tm": 6, "mcq": 66.6 }, { "et": "08.02.2022 - 20:50:35", "cl": 35, "ucl": 9, "cal": 44, "tl": 84, "lcq": 79.5, "cb": 0, "tb": 0, "bcq": 0, "cm": 4, "tm": 6, "mcq": 66.6 }, { "et": "09.02.2022 - 20:50:35", "cl": 35, "ucl": 9, "cal": 44, "tl": 84, "lcq": 79.5, "cb": 0, "tb": 0, "bcq": 0, "cm": 4, "tm": 6, "mcq": 66.6 }, { "et": "03.10.2023 - 20:43:11", "cl": 35, "ucl": 9, "cal": 44, "tl": 84, "lcq": 79.5, "cb": 0, "tb": 0, "bcq": 0, "cm": 4, "tm": 6, "mcq": 66.6 }], "metrics": { "cc": 3, "npth": 0, "seq": 0, "bcov": 0, "crp": 3 } }, + { "name": "Test.TestClass2", "rp": "", "cl": 24, "ucl": 14, "cal": 38, "tl": 85, "cb": 1, "tb": 2, "cm": 6, "tm": 10, "lch": [39.4,39.4,42.1,44.7,39.4,63.1], "bch": [50,40,40,40,40,50], "mch": [60,40,40,60,60,60], "hc": [{ "et": "01.02.2022 - 20:50:35", "cl": 15, "ucl": 23, "cal": 38, "tl": 85, "lcq": 39.4, "cb": 10, "tb": 20, "bcq": 50, "cm": 6, "tm": 10, "mcq": 60 }, { "et": "02.02.2022 - 20:50:35", "cl": 15, "ucl": 23, "cal": 38, "tl": 85, "lcq": 39.4, "cb": 8, "tb": 20, "bcq": 40, "cm": 4, "tm": 10, "mcq": 40 }, { "et": "03.02.2022 - 20:50:35", "cl": 16, "ucl": 22, "cal": 38, "tl": 85, "lcq": 42.1, "cb": 8, "tb": 20, "bcq": 40, "cm": 4, "tm": 10, "mcq": 40 }, { "et": "04.02.2022 - 20:50:35", "cl": 16, "ucl": 22, "cal": 38, "tl": 85, "lcq": 42.1, "cb": 8, "tb": 20, "bcq": 40, "cm": 4, "tm": 10, "mcq": 40 }, { "et": "05.02.2022 - 20:50:35", "cl": 16, "ucl": 22, "cal": 38, "tl": 85, "lcq": 42.1, "cb": 8, "tb": 20, "bcq": 40, "cm": 4, "tm": 10, "mcq": 40 }, { "et": "06.02.2022 - 20:50:35", "cl": 17, "ucl": 21, "cal": 38, "tl": 85, "lcq": 44.7, "cb": 8, "tb": 20, "bcq": 40, "cm": 6, "tm": 10, "mcq": 60 }, { "et": "07.02.2022 - 20:50:35", "cl": 17, "ucl": 21, "cal": 38, "tl": 85, "lcq": 44.7, "cb": 8, "tb": 20, "bcq": 40, "cm": 6, "tm": 10, "mcq": 60 }, { "et": "08.02.2022 - 20:50:35", "cl": 15, "ucl": 23, "cal": 38, "tl": 85, "lcq": 39.4, "cb": 8, "tb": 20, "bcq": 40, "cm": 6, "tm": 10, "mcq": 60 }, { "et": "09.02.2022 - 20:50:35", "cl": 15, "ucl": 23, "cal": 38, "tl": 85, "lcq": 39.4, "cb": 8, "tb": 20, "bcq": 40, "cm": 6, "tm": 10, "mcq": 60 }, { "et": "03.10.2023 - 20:43:11", "cl": 24, "ucl": 14, "cal": 38, "tl": 85, "lcq": 63.1, "cb": 1, "tb": 2, "bcq": 50, "cm": 6, "tm": 10, "mcq": 60 }], "metrics": { "cc": 5, "npth": 2, "seq": 0, "bcov": 0, "crp": 5 } }, ]}, ]; diff --git a/docs/resources/reports/HtmlChart/CoverageHistory.html b/docs/resources/reports/HtmlChart/CoverageHistory.html index e2e1e218..8b12a45b 100644 --- a/docs/resources/reports/HtmlChart/CoverageHistory.html +++ b/docs/resources/reports/HtmlChart/CoverageHistory.html @@ -164,6 +164,7 @@ .toggleZoom { text-align:right; } +.historychart svg { max-width: 100%; } .ct-chart { position: relative; } .ct-chart .ct-line { stroke-width: 2px !important; } .ct-chart .ct-point { stroke-width: 6px !important; transition: stroke-width .2s; } @@ -696,6 +697,7 @@ .ct-label { color: #fff !important; + fill: #fff !important; } .ct-grid { @@ -786,14 +788,84 @@ .ct-double-octave:after,.ct-golden-section:after,.ct-major-eleventh:after,.ct-major-second:after,.ct-major-seventh:after,.ct-major-sixth:after,.ct-major-tenth:after,.ct-major-third:after,.ct-major-twelfth:after,.ct-minor-second:after,.ct-minor-seventh:after,.ct-minor-sixth:after,.ct-minor-third:after,.ct-octave:after,.ct-perfect-fifth:after,.ct-perfect-fourth:after,.ct-square:after{content:"";clear:both}.ct-label{fill:rgba(0,0,0,.4);color:rgba(0,0,0,.4);font-size:.75rem;line-height:1}.ct-chart-bar .ct-label,.ct-chart-line .ct-label{display:block;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex}.ct-chart-donut .ct-label,.ct-chart-pie .ct-label{dominant-baseline:central}.ct-label.ct-horizontal.ct-start{-webkit-box-align:flex-end;-webkit-align-items:flex-end;-ms-flex-align:flex-end;align-items:flex-end;-webkit-box-pack:flex-start;-webkit-justify-content:flex-start;-ms-flex-pack:flex-start;justify-content:flex-start;text-align:left;text-anchor:start}.ct-label.ct-horizontal.ct-end{-webkit-box-align:flex-start;-webkit-align-items:flex-start;-ms-flex-align:flex-start;align-items:flex-start;-webkit-box-pack:flex-start;-webkit-justify-content:flex-start;-ms-flex-pack:flex-start;justify-content:flex-start;text-align:left;text-anchor:start}.ct-label.ct-vertical.ct-start{-webkit-box-align:flex-end;-webkit-align-items:flex-end;-ms-flex-align:flex-end;align-items:flex-end;-webkit-box-pack:flex-end;-webkit-justify-content:flex-end;-ms-flex-pack:flex-end;justify-content:flex-end;text-align:right;text-anchor:end}.ct-label.ct-vertical.ct-end{-webkit-box-align:flex-end;-webkit-align-items:flex-end;-ms-flex-align:flex-end;align-items:flex-end;-webkit-box-pack:flex-start;-webkit-justify-content:flex-start;-ms-flex-pack:flex-start;justify-content:flex-start;text-align:left;text-anchor:start}.ct-chart-bar .ct-label.ct-horizontal.ct-start{-webkit-box-align:flex-end;-webkit-align-items:flex-end;-ms-flex-align:flex-end;align-items:flex-end;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;text-align:center;text-anchor:start}.ct-chart-bar .ct-label.ct-horizontal.ct-end{-webkit-box-align:flex-start;-webkit-align-items:flex-start;-ms-flex-align:flex-start;align-items:flex-start;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;text-align:center;text-anchor:start}.ct-chart-bar.ct-horizontal-bars .ct-label.ct-horizontal.ct-start{-webkit-box-align:flex-end;-webkit-align-items:flex-end;-ms-flex-align:flex-end;align-items:flex-end;-webkit-box-pack:flex-start;-webkit-justify-content:flex-start;-ms-flex-pack:flex-start;justify-content:flex-start;text-align:left;text-anchor:start}.ct-chart-bar.ct-horizontal-bars .ct-label.ct-horizontal.ct-end{-webkit-box-align:flex-start;-webkit-align-items:flex-start;-ms-flex-align:flex-start;align-items:flex-start;-webkit-box-pack:flex-start;-webkit-justify-content:flex-start;-ms-flex-pack:flex-start;justify-content:flex-start;text-align:left;text-anchor:start}.ct-chart-bar.ct-horizontal-bars .ct-label.ct-vertical.ct-start{-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:flex-end;-webkit-justify-content:flex-end;-ms-flex-pack:flex-end;justify-content:flex-end;text-align:right;text-anchor:end}.ct-chart-bar.ct-horizontal-bars .ct-label.ct-vertical.ct-end{-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:flex-start;-webkit-justify-content:flex-start;-ms-flex-pack:flex-start;justify-content:flex-start;text-align:left;text-anchor:end}.ct-grid{stroke:rgba(0,0,0,.2);stroke-width:1px;stroke-dasharray:2px}.ct-grid-background{fill:none}.ct-point{stroke-width:10px;stroke-linecap:round}.ct-line{fill:none;stroke-width:4px}.ct-area{stroke:none;fill-opacity:.1}.ct-bar{fill:none;stroke-width:10px}.ct-slice-donut{fill:none;stroke-width:60px}.ct-series-a .ct-bar,.ct-series-a .ct-line,.ct-series-a .ct-point,.ct-series-a .ct-slice-donut{stroke:#d70206}.ct-series-a .ct-area,.ct-series-a .ct-slice-donut-solid,.ct-series-a .ct-slice-pie{fill:#d70206}.ct-series-b .ct-bar,.ct-series-b .ct-line,.ct-series-b .ct-point,.ct-series-b .ct-slice-donut{stroke:#f05b4f}.ct-series-b .ct-area,.ct-series-b .ct-slice-donut-solid,.ct-series-b .ct-slice-pie{fill:#f05b4f}.ct-series-c .ct-bar,.ct-series-c .ct-line,.ct-series-c .ct-point,.ct-series-c .ct-slice-donut{stroke:#f4c63d}.ct-series-c .ct-area,.ct-series-c .ct-slice-donut-solid,.ct-series-c .ct-slice-pie{fill:#f4c63d}.ct-series-d .ct-bar,.ct-series-d .ct-line,.ct-series-d .ct-point,.ct-series-d .ct-slice-donut{stroke:#d17905}.ct-series-d .ct-area,.ct-series-d .ct-slice-donut-solid,.ct-series-d .ct-slice-pie{fill:#d17905}.ct-series-e .ct-bar,.ct-series-e .ct-line,.ct-series-e .ct-point,.ct-series-e .ct-slice-donut{stroke:#453d3f}.ct-series-e .ct-area,.ct-series-e .ct-slice-donut-solid,.ct-series-e .ct-slice-pie{fill:#453d3f}.ct-series-f .ct-bar,.ct-series-f .ct-line,.ct-series-f .ct-point,.ct-series-f .ct-slice-donut{stroke:#59922b}.ct-series-f .ct-area,.ct-series-f .ct-slice-donut-solid,.ct-series-f .ct-slice-pie{fill:#59922b}.ct-series-g .ct-bar,.ct-series-g .ct-line,.ct-series-g .ct-point,.ct-series-g .ct-slice-donut{stroke:#0544d3}.ct-series-g .ct-area,.ct-series-g .ct-slice-donut-solid,.ct-series-g .ct-slice-pie{fill:#0544d3}.ct-series-h .ct-bar,.ct-series-h .ct-line,.ct-series-h .ct-point,.ct-series-h .ct-slice-donut{stroke:#6b0392}.ct-series-h .ct-area,.ct-series-h .ct-slice-donut-solid,.ct-series-h .ct-slice-pie{fill:#6b0392}.ct-series-i .ct-bar,.ct-series-i .ct-line,.ct-series-i .ct-point,.ct-series-i .ct-slice-donut{stroke:#f05b4f}.ct-series-i .ct-area,.ct-series-i .ct-slice-donut-solid,.ct-series-i .ct-slice-pie{fill:#f05b4f}.ct-series-j .ct-bar,.ct-series-j .ct-line,.ct-series-j .ct-point,.ct-series-j .ct-slice-donut{stroke:#dda458}.ct-series-j .ct-area,.ct-series-j .ct-slice-donut-solid,.ct-series-j .ct-slice-pie{fill:#dda458}.ct-series-k .ct-bar,.ct-series-k .ct-line,.ct-series-k .ct-point,.ct-series-k .ct-slice-donut{stroke:#eacf7d}.ct-series-k .ct-area,.ct-series-k .ct-slice-donut-solid,.ct-series-k .ct-slice-pie{fill:#eacf7d}.ct-series-l .ct-bar,.ct-series-l .ct-line,.ct-series-l .ct-point,.ct-series-l .ct-slice-donut{stroke:#86797d}.ct-series-l .ct-area,.ct-series-l .ct-slice-donut-solid,.ct-series-l .ct-slice-pie{fill:#86797d}.ct-series-m .ct-bar,.ct-series-m .ct-line,.ct-series-m .ct-point,.ct-series-m .ct-slice-donut{stroke:#b2c326}.ct-series-m .ct-area,.ct-series-m .ct-slice-donut-solid,.ct-series-m .ct-slice-pie{fill:#b2c326}.ct-series-n .ct-bar,.ct-series-n .ct-line,.ct-series-n .ct-point,.ct-series-n .ct-slice-donut{stroke:#6188e2}.ct-series-n .ct-area,.ct-series-n .ct-slice-donut-solid,.ct-series-n .ct-slice-pie{fill:#6188e2}.ct-series-o .ct-bar,.ct-series-o .ct-line,.ct-series-o .ct-point,.ct-series-o .ct-slice-donut{stroke:#a748ca}.ct-series-o .ct-area,.ct-series-o .ct-slice-donut-solid,.ct-series-o .ct-slice-pie{fill:#a748ca}.ct-square{display:block;position:relative;width:100%}.ct-square:before{display:block;float:left;content:"";width:0;height:0;padding-bottom:100%}.ct-square:after{display:table}.ct-square>svg{display:block;position:absolute;top:0;left:0}.ct-minor-second{display:block;position:relative;width:100%}.ct-minor-second:before{display:block;float:left;content:"";width:0;height:0;padding-bottom:93.75%}.ct-minor-second:after{display:table}.ct-minor-second>svg{display:block;position:absolute;top:0;left:0}.ct-major-second{display:block;position:relative;width:100%}.ct-major-second:before{display:block;float:left;content:"";width:0;height:0;padding-bottom:88.8888888889%}.ct-major-second:after{display:table}.ct-major-second>svg{display:block;position:absolute;top:0;left:0}.ct-minor-third{display:block;position:relative;width:100%}.ct-minor-third:before{display:block;float:left;content:"";width:0;height:0;padding-bottom:83.3333333333%}.ct-minor-third:after{display:table}.ct-minor-third>svg{display:block;position:absolute;top:0;left:0}.ct-major-third{display:block;position:relative;width:100%}.ct-major-third:before{display:block;float:left;content:"";width:0;height:0;padding-bottom:80%}.ct-major-third:after{display:table}.ct-major-third>svg{display:block;position:absolute;top:0;left:0}.ct-perfect-fourth{display:block;position:relative;width:100%}.ct-perfect-fourth:before{display:block;float:left;content:"";width:0;height:0;padding-bottom:75%}.ct-perfect-fourth:after{display:table}.ct-perfect-fourth>svg{display:block;position:absolute;top:0;left:0}.ct-perfect-fifth{display:block;position:relative;width:100%}.ct-perfect-fifth:before{display:block;float:left;content:"";width:0;height:0;padding-bottom:66.6666666667%}.ct-perfect-fifth:after{display:table}.ct-perfect-fifth>svg{display:block;position:absolute;top:0;left:0}.ct-minor-sixth{display:block;position:relative;width:100%}.ct-minor-sixth:before{display:block;float:left;content:"";width:0;height:0;padding-bottom:62.5%}.ct-minor-sixth:after{display:table}.ct-minor-sixth>svg{display:block;position:absolute;top:0;left:0}.ct-golden-section{display:block;position:relative;width:100%}.ct-golden-section:before{display:block;float:left;content:"";width:0;height:0;padding-bottom:61.804697157%}.ct-golden-section:after{display:table}.ct-golden-section>svg{display:block;position:absolute;top:0;left:0}.ct-major-sixth{display:block;position:relative;width:100%}.ct-major-sixth:before{display:block;float:left;content:"";width:0;height:0;padding-bottom:60%}.ct-major-sixth:after{display:table}.ct-major-sixth>svg{display:block;position:absolute;top:0;left:0}.ct-minor-seventh{display:block;position:relative;width:100%}.ct-minor-seventh:before{display:block;float:left;content:"";width:0;height:0;padding-bottom:56.25%}.ct-minor-seventh:after{display:table}.ct-minor-seventh>svg{display:block;position:absolute;top:0;left:0}.ct-major-seventh{display:block;position:relative;width:100%}.ct-major-seventh:before{display:block;float:left;content:"";width:0;height:0;padding-bottom:53.3333333333%}.ct-major-seventh:after{display:table}.ct-major-seventh>svg{display:block;position:absolute;top:0;left:0}.ct-octave{display:block;position:relative;width:100%}.ct-octave:before{display:block;float:left;content:"";width:0;height:0;padding-bottom:50%}.ct-octave:after{display:table}.ct-octave>svg{display:block;position:absolute;top:0;left:0}.ct-major-tenth{display:block;position:relative;width:100%}.ct-major-tenth:before{display:block;float:left;content:"";width:0;height:0;padding-bottom:40%}.ct-major-tenth:after{display:table}.ct-major-tenth>svg{display:block;position:absolute;top:0;left:0}.ct-major-eleventh{display:block;position:relative;width:100%}.ct-major-eleventh:before{display:block;float:left;content:"";width:0;height:0;padding-bottom:37.5%}.ct-major-eleventh:after{display:table}.ct-major-eleventh>svg{display:block;position:absolute;top:0;left:0}.ct-major-twelfth{display:block;position:relative;width:100%}.ct-major-twelfth:before{display:block;float:left;content:"";width:0;height:0;padding-bottom:33.3333333333%}.ct-major-twelfth:after{display:table}.ct-major-twelfth>svg{display:block;position:absolute;top:0;left:0}.ct-double-octave{display:block;position:relative;width:100%}.ct-double-octave:before{display:block;float:left;content:"";width:0;height:0;padding-bottom:25%}.ct-double-octave:after{display:table}.ct-double-octave>svg{display:block;position:absolute;top:0;left:0}
-
+
+ +Coverage history + + + + + + + + + + + + + + 0 + 25 + 50 + 75 + 100 + + + + + + + + + + +
@@ -1020,10 +1092,10 @@ { "name": "Sample", "classes": [ - { "name": "Sample.PartialClass", "rp": "", "cl": 12, "ucl": 10, "cal": 22, "tl": 53, "cb": 1, "tb": 2, "cm": 3, "tm": 6, "lch": [40.9,54.5,59,59,45.4,50,50,59,54.5], "bch": [50,40,40,45,45,45,45,45,50], "mch": [50,33.3,50,66.6,66.6,66.6,83.3,83.3,50], "hc": [{ "et": "01.02.2022 - 20:50:35", "cl": 9, "ucl": 13, "cal": 22, "tl": 53, "lcq": 40.9, "cb": 10, "tb": 20, "bcq": 50, "cm": 3, "tm": 6, "mcq": 50 }, { "et": "02.02.2022 - 20:50:35", "cl": 12, "ucl": 10, "cal": 22, "tl": 53, "lcq": 54.5, "cb": 8, "tb": 20, "bcq": 40, "cm": 2, "tm": 6, "mcq": 33.3 }, { "et": "03.02.2022 - 20:50:35", "cl": 13, "ucl": 9, "cal": 22, "tl": 53, "lcq": 59, "cb": 8, "tb": 20, "bcq": 40, "cm": 3, "tm": 6, "mcq": 50 }, { "et": "04.02.2022 - 20:50:35", "cl": 13, "ucl": 9, "cal": 22, "tl": 53, "lcq": 59, "cb": 9, "tb": 20, "bcq": 45, "cm": 4, "tm": 6, "mcq": 66.6 }, { "et": "05.02.2022 - 20:50:35", "cl": 10, "ucl": 12, "cal": 22, "tl": 53, "lcq": 45.4, "cb": 9, "tb": 20, "bcq": 45, "cm": 4, "tm": 6, "mcq": 66.6 }, { "et": "06.02.2022 - 20:50:35", "cl": 11, "ucl": 11, "cal": 22, "tl": 53, "lcq": 50, "cb": 9, "tb": 20, "bcq": 45, "cm": 4, "tm": 6, "mcq": 66.6 }, { "et": "07.02.2022 - 20:50:35", "cl": 11, "ucl": 11, "cal": 22, "tl": 53, "lcq": 50, "cb": 9, "tb": 20, "bcq": 45, "cm": 5, "tm": 6, "mcq": 83.3 }, { "et": "08.02.2022 - 20:50:35", "cl": 13, "ucl": 9, "cal": 22, "tl": 53, "lcq": 59, "cb": 9, "tb": 20, "bcq": 45, "cm": 5, "tm": 6, "mcq": 83.3 }, { "et": "09.02.2022 - 20:50:35", "cl": 13, "ucl": 9, "cal": 22, "tl": 53, "lcq": 59, "cb": 9, "tb": 20, "bcq": 45, "cm": 5, "tm": 6, "mcq": 83.3 }, { "et": "29.09.2023 - 21:05:21", "cl": 12, "ucl": 10, "cal": 22, "tl": 53, "lcq": 54.5, "cb": 1, "tb": 2, "bcq": 50, "cm": 3, "tm": 6, "mcq": 50 }], "metrics": { "cc": 1, "npth": 0, "seq": 0, "bcov": 0, "crp": 2 } }, - { "name": "Sample.TestClass", "rp": "", "cl": 12, "ucl": 9, "cal": 21, "tl": 38, "cb": 1, "tb": 2, "cm": 1, "tm": 2, "lch": [38,38,42.8,42.8,47.6,47.6,57.1], "bch": [50,60,60,65,65,50,50], "mch": [50,50,50,50,50,50,50], "hc": [{ "et": "01.02.2022 - 20:50:35", "cl": 8, "ucl": 13, "cal": 21, "tl": 38, "lcq": 38, "cb": 10, "tb": 20, "bcq": 50, "cm": 1, "tm": 2, "mcq": 50 }, { "et": "02.02.2022 - 20:50:35", "cl": 8, "ucl": 13, "cal": 21, "tl": 38, "lcq": 38, "cb": 10, "tb": 20, "bcq": 50, "cm": 1, "tm": 2, "mcq": 50 }, { "et": "03.02.2022 - 20:50:35", "cl": 8, "ucl": 13, "cal": 21, "tl": 38, "lcq": 38, "cb": 12, "tb": 20, "bcq": 60, "cm": 1, "tm": 2, "mcq": 50 }, { "et": "04.02.2022 - 20:50:35", "cl": 9, "ucl": 12, "cal": 21, "tl": 38, "lcq": 42.8, "cb": 12, "tb": 20, "bcq": 60, "cm": 1, "tm": 2, "mcq": 50 }, { "et": "05.02.2022 - 20:50:35", "cl": 9, "ucl": 12, "cal": 21, "tl": 38, "lcq": 42.8, "cb": 13, "tb": 20, "bcq": 65, "cm": 1, "tm": 2, "mcq": 50 }, { "et": "06.02.2022 - 20:50:35", "cl": 9, "ucl": 12, "cal": 21, "tl": 38, "lcq": 42.8, "cb": 13, "tb": 20, "bcq": 65, "cm": 1, "tm": 2, "mcq": 50 }, { "et": "07.02.2022 - 20:50:35", "cl": 10, "ucl": 11, "cal": 21, "tl": 38, "lcq": 47.6, "cb": 13, "tb": 20, "bcq": 65, "cm": 1, "tm": 2, "mcq": 50 }, { "et": "08.02.2022 - 20:50:35", "cl": 10, "ucl": 11, "cal": 21, "tl": 38, "lcq": 47.6, "cb": 13, "tb": 20, "bcq": 65, "cm": 1, "tm": 2, "mcq": 50 }, { "et": "09.02.2022 - 20:50:35", "cl": 10, "ucl": 11, "cal": 21, "tl": 38, "lcq": 47.6, "cb": 10, "tb": 20, "bcq": 50, "cm": 1, "tm": 2, "mcq": 50 }, { "et": "29.09.2023 - 21:05:21", "cl": 12, "ucl": 9, "cal": 21, "tl": 38, "lcq": 57.1, "cb": 1, "tb": 2, "bcq": 50, "cm": 1, "tm": 2, "mcq": 50 }], "metrics": { "cc": 3, "npth": 2, "seq": 0, "bcov": 0, "crp": 3.14 } }, - { "name": "Test.Program", "rp": "", "cl": 35, "ucl": 9, "cal": 44, "tl": 84, "cb": 0, "tb": 0, "cm": 4, "tm": 6, "lch": [79.5], "bch": [], "mch": [66.6], "hc": [{ "et": "01.02.2022 - 20:50:35", "cl": 35, "ucl": 9, "cal": 44, "tl": 84, "lcq": 79.5, "cb": 0, "tb": 0, "bcq": 0, "cm": 4, "tm": 6, "mcq": 66.6 }, { "et": "02.02.2022 - 20:50:35", "cl": 35, "ucl": 9, "cal": 44, "tl": 84, "lcq": 79.5, "cb": 0, "tb": 0, "bcq": 0, "cm": 4, "tm": 6, "mcq": 66.6 }, { "et": "03.02.2022 - 20:50:35", "cl": 35, "ucl": 9, "cal": 44, "tl": 84, "lcq": 79.5, "cb": 0, "tb": 0, "bcq": 0, "cm": 4, "tm": 6, "mcq": 66.6 }, { "et": "04.02.2022 - 20:50:35", "cl": 35, "ucl": 9, "cal": 44, "tl": 84, "lcq": 79.5, "cb": 0, "tb": 0, "bcq": 0, "cm": 4, "tm": 6, "mcq": 66.6 }, { "et": "05.02.2022 - 20:50:35", "cl": 35, "ucl": 9, "cal": 44, "tl": 84, "lcq": 79.5, "cb": 0, "tb": 0, "bcq": 0, "cm": 4, "tm": 6, "mcq": 66.6 }, { "et": "06.02.2022 - 20:50:35", "cl": 35, "ucl": 9, "cal": 44, "tl": 84, "lcq": 79.5, "cb": 0, "tb": 0, "bcq": 0, "cm": 4, "tm": 6, "mcq": 66.6 }, { "et": "07.02.2022 - 20:50:35", "cl": 35, "ucl": 9, "cal": 44, "tl": 84, "lcq": 79.5, "cb": 0, "tb": 0, "bcq": 0, "cm": 4, "tm": 6, "mcq": 66.6 }, { "et": "08.02.2022 - 20:50:35", "cl": 35, "ucl": 9, "cal": 44, "tl": 84, "lcq": 79.5, "cb": 0, "tb": 0, "bcq": 0, "cm": 4, "tm": 6, "mcq": 66.6 }, { "et": "09.02.2022 - 20:50:35", "cl": 35, "ucl": 9, "cal": 44, "tl": 84, "lcq": 79.5, "cb": 0, "tb": 0, "bcq": 0, "cm": 4, "tm": 6, "mcq": 66.6 }, { "et": "29.09.2023 - 21:05:21", "cl": 35, "ucl": 9, "cal": 44, "tl": 84, "lcq": 79.5, "cb": 0, "tb": 0, "bcq": 0, "cm": 4, "tm": 6, "mcq": 66.6 }], "metrics": { "cc": 3, "npth": 0, "seq": 0, "bcov": 0, "crp": 3 } }, - { "name": "Test.TestClass2", "rp": "", "cl": 24, "ucl": 14, "cal": 38, "tl": 85, "cb": 1, "tb": 2, "cm": 6, "tm": 10, "lch": [39.4,39.4,42.1,44.7,39.4,63.1], "bch": [50,40,40,40,40,50], "mch": [60,40,40,60,60,60], "hc": [{ "et": "01.02.2022 - 20:50:35", "cl": 15, "ucl": 23, "cal": 38, "tl": 85, "lcq": 39.4, "cb": 10, "tb": 20, "bcq": 50, "cm": 6, "tm": 10, "mcq": 60 }, { "et": "02.02.2022 - 20:50:35", "cl": 15, "ucl": 23, "cal": 38, "tl": 85, "lcq": 39.4, "cb": 8, "tb": 20, "bcq": 40, "cm": 4, "tm": 10, "mcq": 40 }, { "et": "03.02.2022 - 20:50:35", "cl": 16, "ucl": 22, "cal": 38, "tl": 85, "lcq": 42.1, "cb": 8, "tb": 20, "bcq": 40, "cm": 4, "tm": 10, "mcq": 40 }, { "et": "04.02.2022 - 20:50:35", "cl": 16, "ucl": 22, "cal": 38, "tl": 85, "lcq": 42.1, "cb": 8, "tb": 20, "bcq": 40, "cm": 4, "tm": 10, "mcq": 40 }, { "et": "05.02.2022 - 20:50:35", "cl": 16, "ucl": 22, "cal": 38, "tl": 85, "lcq": 42.1, "cb": 8, "tb": 20, "bcq": 40, "cm": 4, "tm": 10, "mcq": 40 }, { "et": "06.02.2022 - 20:50:35", "cl": 17, "ucl": 21, "cal": 38, "tl": 85, "lcq": 44.7, "cb": 8, "tb": 20, "bcq": 40, "cm": 6, "tm": 10, "mcq": 60 }, { "et": "07.02.2022 - 20:50:35", "cl": 17, "ucl": 21, "cal": 38, "tl": 85, "lcq": 44.7, "cb": 8, "tb": 20, "bcq": 40, "cm": 6, "tm": 10, "mcq": 60 }, { "et": "08.02.2022 - 20:50:35", "cl": 15, "ucl": 23, "cal": 38, "tl": 85, "lcq": 39.4, "cb": 8, "tb": 20, "bcq": 40, "cm": 6, "tm": 10, "mcq": 60 }, { "et": "09.02.2022 - 20:50:35", "cl": 15, "ucl": 23, "cal": 38, "tl": 85, "lcq": 39.4, "cb": 8, "tb": 20, "bcq": 40, "cm": 6, "tm": 10, "mcq": 60 }, { "et": "29.09.2023 - 21:05:21", "cl": 24, "ucl": 14, "cal": 38, "tl": 85, "lcq": 63.1, "cb": 1, "tb": 2, "bcq": 50, "cm": 6, "tm": 10, "mcq": 60 }], "metrics": { "cc": 5, "npth": 2, "seq": 0, "bcov": 0, "crp": 5 } }, + { "name": "Sample.PartialClass", "rp": "", "cl": 12, "ucl": 10, "cal": 22, "tl": 53, "cb": 1, "tb": 2, "cm": 3, "tm": 6, "lch": [40.9,54.5,59,59,45.4,50,50,59,54.5], "bch": [50,40,40,45,45,45,45,45,50], "mch": [50,33.3,50,66.6,66.6,66.6,83.3,83.3,50], "hc": [{ "et": "01.02.2022 - 20:50:35", "cl": 9, "ucl": 13, "cal": 22, "tl": 53, "lcq": 40.9, "cb": 10, "tb": 20, "bcq": 50, "cm": 3, "tm": 6, "mcq": 50 }, { "et": "02.02.2022 - 20:50:35", "cl": 12, "ucl": 10, "cal": 22, "tl": 53, "lcq": 54.5, "cb": 8, "tb": 20, "bcq": 40, "cm": 2, "tm": 6, "mcq": 33.3 }, { "et": "03.02.2022 - 20:50:35", "cl": 13, "ucl": 9, "cal": 22, "tl": 53, "lcq": 59, "cb": 8, "tb": 20, "bcq": 40, "cm": 3, "tm": 6, "mcq": 50 }, { "et": "04.02.2022 - 20:50:35", "cl": 13, "ucl": 9, "cal": 22, "tl": 53, "lcq": 59, "cb": 9, "tb": 20, "bcq": 45, "cm": 4, "tm": 6, "mcq": 66.6 }, { "et": "05.02.2022 - 20:50:35", "cl": 10, "ucl": 12, "cal": 22, "tl": 53, "lcq": 45.4, "cb": 9, "tb": 20, "bcq": 45, "cm": 4, "tm": 6, "mcq": 66.6 }, { "et": "06.02.2022 - 20:50:35", "cl": 11, "ucl": 11, "cal": 22, "tl": 53, "lcq": 50, "cb": 9, "tb": 20, "bcq": 45, "cm": 4, "tm": 6, "mcq": 66.6 }, { "et": "07.02.2022 - 20:50:35", "cl": 11, "ucl": 11, "cal": 22, "tl": 53, "lcq": 50, "cb": 9, "tb": 20, "bcq": 45, "cm": 5, "tm": 6, "mcq": 83.3 }, { "et": "08.02.2022 - 20:50:35", "cl": 13, "ucl": 9, "cal": 22, "tl": 53, "lcq": 59, "cb": 9, "tb": 20, "bcq": 45, "cm": 5, "tm": 6, "mcq": 83.3 }, { "et": "09.02.2022 - 20:50:35", "cl": 13, "ucl": 9, "cal": 22, "tl": 53, "lcq": 59, "cb": 9, "tb": 20, "bcq": 45, "cm": 5, "tm": 6, "mcq": 83.3 }, { "et": "03.10.2023 - 20:43:11", "cl": 12, "ucl": 10, "cal": 22, "tl": 53, "lcq": 54.5, "cb": 1, "tb": 2, "bcq": 50, "cm": 3, "tm": 6, "mcq": 50 }], "metrics": { "cc": 1, "npth": 0, "seq": 0, "bcov": 0, "crp": 2 } }, + { "name": "Sample.TestClass", "rp": "", "cl": 12, "ucl": 9, "cal": 21, "tl": 38, "cb": 1, "tb": 2, "cm": 1, "tm": 2, "lch": [38,38,42.8,42.8,47.6,47.6,57.1], "bch": [50,60,60,65,65,50,50], "mch": [50,50,50,50,50,50,50], "hc": [{ "et": "01.02.2022 - 20:50:35", "cl": 8, "ucl": 13, "cal": 21, "tl": 38, "lcq": 38, "cb": 10, "tb": 20, "bcq": 50, "cm": 1, "tm": 2, "mcq": 50 }, { "et": "02.02.2022 - 20:50:35", "cl": 8, "ucl": 13, "cal": 21, "tl": 38, "lcq": 38, "cb": 10, "tb": 20, "bcq": 50, "cm": 1, "tm": 2, "mcq": 50 }, { "et": "03.02.2022 - 20:50:35", "cl": 8, "ucl": 13, "cal": 21, "tl": 38, "lcq": 38, "cb": 12, "tb": 20, "bcq": 60, "cm": 1, "tm": 2, "mcq": 50 }, { "et": "04.02.2022 - 20:50:35", "cl": 9, "ucl": 12, "cal": 21, "tl": 38, "lcq": 42.8, "cb": 12, "tb": 20, "bcq": 60, "cm": 1, "tm": 2, "mcq": 50 }, { "et": "05.02.2022 - 20:50:35", "cl": 9, "ucl": 12, "cal": 21, "tl": 38, "lcq": 42.8, "cb": 13, "tb": 20, "bcq": 65, "cm": 1, "tm": 2, "mcq": 50 }, { "et": "06.02.2022 - 20:50:35", "cl": 9, "ucl": 12, "cal": 21, "tl": 38, "lcq": 42.8, "cb": 13, "tb": 20, "bcq": 65, "cm": 1, "tm": 2, "mcq": 50 }, { "et": "07.02.2022 - 20:50:35", "cl": 10, "ucl": 11, "cal": 21, "tl": 38, "lcq": 47.6, "cb": 13, "tb": 20, "bcq": 65, "cm": 1, "tm": 2, "mcq": 50 }, { "et": "08.02.2022 - 20:50:35", "cl": 10, "ucl": 11, "cal": 21, "tl": 38, "lcq": 47.6, "cb": 13, "tb": 20, "bcq": 65, "cm": 1, "tm": 2, "mcq": 50 }, { "et": "09.02.2022 - 20:50:35", "cl": 10, "ucl": 11, "cal": 21, "tl": 38, "lcq": 47.6, "cb": 10, "tb": 20, "bcq": 50, "cm": 1, "tm": 2, "mcq": 50 }, { "et": "03.10.2023 - 20:43:11", "cl": 12, "ucl": 9, "cal": 21, "tl": 38, "lcq": 57.1, "cb": 1, "tb": 2, "bcq": 50, "cm": 1, "tm": 2, "mcq": 50 }], "metrics": { "cc": 3, "npth": 2, "seq": 0, "bcov": 0, "crp": 3.14 } }, + { "name": "Test.Program", "rp": "", "cl": 35, "ucl": 9, "cal": 44, "tl": 84, "cb": 0, "tb": 0, "cm": 4, "tm": 6, "lch": [79.5], "bch": [], "mch": [66.6], "hc": [{ "et": "01.02.2022 - 20:50:35", "cl": 35, "ucl": 9, "cal": 44, "tl": 84, "lcq": 79.5, "cb": 0, "tb": 0, "bcq": 0, "cm": 4, "tm": 6, "mcq": 66.6 }, { "et": "02.02.2022 - 20:50:35", "cl": 35, "ucl": 9, "cal": 44, "tl": 84, "lcq": 79.5, "cb": 0, "tb": 0, "bcq": 0, "cm": 4, "tm": 6, "mcq": 66.6 }, { "et": "03.02.2022 - 20:50:35", "cl": 35, "ucl": 9, "cal": 44, "tl": 84, "lcq": 79.5, "cb": 0, "tb": 0, "bcq": 0, "cm": 4, "tm": 6, "mcq": 66.6 }, { "et": "04.02.2022 - 20:50:35", "cl": 35, "ucl": 9, "cal": 44, "tl": 84, "lcq": 79.5, "cb": 0, "tb": 0, "bcq": 0, "cm": 4, "tm": 6, "mcq": 66.6 }, { "et": "05.02.2022 - 20:50:35", "cl": 35, "ucl": 9, "cal": 44, "tl": 84, "lcq": 79.5, "cb": 0, "tb": 0, "bcq": 0, "cm": 4, "tm": 6, "mcq": 66.6 }, { "et": "06.02.2022 - 20:50:35", "cl": 35, "ucl": 9, "cal": 44, "tl": 84, "lcq": 79.5, "cb": 0, "tb": 0, "bcq": 0, "cm": 4, "tm": 6, "mcq": 66.6 }, { "et": "07.02.2022 - 20:50:35", "cl": 35, "ucl": 9, "cal": 44, "tl": 84, "lcq": 79.5, "cb": 0, "tb": 0, "bcq": 0, "cm": 4, "tm": 6, "mcq": 66.6 }, { "et": "08.02.2022 - 20:50:35", "cl": 35, "ucl": 9, "cal": 44, "tl": 84, "lcq": 79.5, "cb": 0, "tb": 0, "bcq": 0, "cm": 4, "tm": 6, "mcq": 66.6 }, { "et": "09.02.2022 - 20:50:35", "cl": 35, "ucl": 9, "cal": 44, "tl": 84, "lcq": 79.5, "cb": 0, "tb": 0, "bcq": 0, "cm": 4, "tm": 6, "mcq": 66.6 }, { "et": "03.10.2023 - 20:43:11", "cl": 35, "ucl": 9, "cal": 44, "tl": 84, "lcq": 79.5, "cb": 0, "tb": 0, "bcq": 0, "cm": 4, "tm": 6, "mcq": 66.6 }], "metrics": { "cc": 3, "npth": 0, "seq": 0, "bcov": 0, "crp": 3 } }, + { "name": "Test.TestClass2", "rp": "", "cl": 24, "ucl": 14, "cal": 38, "tl": 85, "cb": 1, "tb": 2, "cm": 6, "tm": 10, "lch": [39.4,39.4,42.1,44.7,39.4,63.1], "bch": [50,40,40,40,40,50], "mch": [60,40,40,60,60,60], "hc": [{ "et": "01.02.2022 - 20:50:35", "cl": 15, "ucl": 23, "cal": 38, "tl": 85, "lcq": 39.4, "cb": 10, "tb": 20, "bcq": 50, "cm": 6, "tm": 10, "mcq": 60 }, { "et": "02.02.2022 - 20:50:35", "cl": 15, "ucl": 23, "cal": 38, "tl": 85, "lcq": 39.4, "cb": 8, "tb": 20, "bcq": 40, "cm": 4, "tm": 10, "mcq": 40 }, { "et": "03.02.2022 - 20:50:35", "cl": 16, "ucl": 22, "cal": 38, "tl": 85, "lcq": 42.1, "cb": 8, "tb": 20, "bcq": 40, "cm": 4, "tm": 10, "mcq": 40 }, { "et": "04.02.2022 - 20:50:35", "cl": 16, "ucl": 22, "cal": 38, "tl": 85, "lcq": 42.1, "cb": 8, "tb": 20, "bcq": 40, "cm": 4, "tm": 10, "mcq": 40 }, { "et": "05.02.2022 - 20:50:35", "cl": 16, "ucl": 22, "cal": 38, "tl": 85, "lcq": 42.1, "cb": 8, "tb": 20, "bcq": 40, "cm": 4, "tm": 10, "mcq": 40 }, { "et": "06.02.2022 - 20:50:35", "cl": 17, "ucl": 21, "cal": 38, "tl": 85, "lcq": 44.7, "cb": 8, "tb": 20, "bcq": 40, "cm": 6, "tm": 10, "mcq": 60 }, { "et": "07.02.2022 - 20:50:35", "cl": 17, "ucl": 21, "cal": 38, "tl": 85, "lcq": 44.7, "cb": 8, "tb": 20, "bcq": 40, "cm": 6, "tm": 10, "mcq": 60 }, { "et": "08.02.2022 - 20:50:35", "cl": 15, "ucl": 23, "cal": 38, "tl": 85, "lcq": 39.4, "cb": 8, "tb": 20, "bcq": 40, "cm": 6, "tm": 10, "mcq": 60 }, { "et": "09.02.2022 - 20:50:35", "cl": 15, "ucl": 23, "cal": 38, "tl": 85, "lcq": 39.4, "cb": 8, "tb": 20, "bcq": 40, "cm": 6, "tm": 10, "mcq": 60 }, { "et": "03.10.2023 - 20:43:11", "cl": 24, "ucl": 14, "cal": 38, "tl": 85, "lcq": 63.1, "cb": 1, "tb": 2, "bcq": 50, "cm": 6, "tm": 10, "mcq": 60 }], "metrics": { "cc": 5, "npth": 2, "seq": 0, "bcov": 0, "crp": 5 } }, ]}, ]; diff --git a/docs/resources/reports/HtmlInline/Sample_PartialClass.html b/docs/resources/reports/HtmlInline/Sample_PartialClass.html index 1ba0697d..bfe1d328 100644 --- a/docs/resources/reports/HtmlInline/Sample_PartialClass.html +++ b/docs/resources/reports/HtmlInline/Sample_PartialClass.html @@ -164,6 +164,7 @@ .toggleZoom { text-align:right; } +.historychart svg { max-width: 100%; } .ct-chart { position: relative; } .ct-chart .ct-line { stroke-width: 2px !important; } .ct-chart .ct-point { stroke-width: 6px !important; transition: stroke-width .2s; } @@ -696,6 +697,7 @@ .ct-label { color: #fff !important; + fill: #fff !important; } .ct-grid { @@ -887,14 +889,84 @@

< Summary

Coverage history

-
+
+ +Coverage history + + + + + + + + + + + + + + 0 + 25 + 50 + 75 + 100 + + + + + + + + + + +

Metrics

@@ -979,7 +1051,7 @@

C:\temp\PartialClass2.cs

- +

Methods/Properties

diff --git a/docs/resources/reports/HtmlInline/Sample_Program.html b/docs/resources/reports/HtmlInline/Sample_Program.html index 1b7b3e93..c1ba3ffb 100644 --- a/docs/resources/reports/HtmlInline/Sample_Program.html +++ b/docs/resources/reports/HtmlInline/Sample_Program.html @@ -164,6 +164,7 @@ .toggleZoom { text-align:right; } +.historychart svg { max-width: 100%; } .ct-chart { position: relative; } .ct-chart .ct-line { stroke-width: 2px !important; } .ct-chart .ct-point { stroke-width: 6px !important; transition: stroke-width .2s; } @@ -696,6 +697,7 @@ .ct-label { color: #fff !important; + fill: #fff !important; } .ct-grid { @@ -887,9 +889,76 @@

< Summary

Coverage history

-
+
+ +Coverage history + + + + + + + + + + + + + + 0 + 25 + 50 + 75 + 100 + + + + + + + +

Metrics

@@ -954,7 +1026,7 @@

C:\temp\TestClass.cs

- +

Methods/Properties

diff --git a/docs/resources/reports/HtmlInline/Sample_TestClass2.html b/docs/resources/reports/HtmlInline/Sample_TestClass2.html index c24adf36..7284368b 100644 --- a/docs/resources/reports/HtmlInline/Sample_TestClass2.html +++ b/docs/resources/reports/HtmlInline/Sample_TestClass2.html @@ -164,6 +164,7 @@ .toggleZoom { text-align:right; } +.historychart svg { max-width: 100%; } .ct-chart { position: relative; } .ct-chart .ct-line { stroke-width: 2px !important; } .ct-chart .ct-point { stroke-width: 6px !important; transition: stroke-width .2s; } @@ -696,6 +697,7 @@ .ct-label { color: #fff !important; + fill: #fff !important; } .ct-grid { @@ -887,14 +889,84 @@

< Summary

Coverage history

-
+
+ +Coverage history + + + + + + + + + + + + + + 0 + 25 + 50 + 75 + 100 + + + + + + + + + + +

Metrics

@@ -1005,7 +1077,7 @@

C:\temp\TestClass2.cs

- +

Methods/Properties

diff --git a/docs/resources/reports/HtmlInline/index.html b/docs/resources/reports/HtmlInline/index.html index c2e13d4d..189b2814 100644 --- a/docs/resources/reports/HtmlInline/index.html +++ b/docs/resources/reports/HtmlInline/index.html @@ -164,6 +164,7 @@ .toggleZoom { text-align:right; } +.historychart svg { max-width: 100%; } .ct-chart { position: relative; } .ct-chart .ct-line { stroke-width: 2px !important; } .ct-chart .ct-point { stroke-width: 6px !important; transition: stroke-width .2s; } @@ -696,6 +697,7 @@ .ct-label { color: #fff !important; + fill: #fff !important; } .ct-grid { @@ -889,14 +891,84 @@

Summary

+
+ +Coverage history + + + + + + + + + + + + + + 0 + 25 + 50 + 75 + 100 + + + + + + + + + + +

Risk Hotspots

@@ -937,7 +1009,7 @@

Coverage

- +

Metrics

@@ -799,7 +870,7 @@

C:\temp\PartialClass2.cs

- +

Methods/Properties

diff --git a/docs/resources/reports/HtmlInline_AzurePipelines/Sample_Program.html b/docs/resources/reports/HtmlInline_AzurePipelines/Sample_Program.html index 2bff070e..01d19dd7 100644 --- a/docs/resources/reports/HtmlInline_AzurePipelines/Sample_Program.html +++ b/docs/resources/reports/HtmlInline_AzurePipelines/Sample_Program.html @@ -155,6 +155,7 @@ .toggleZoom { text-align:right; } +.historychart svg { max-width: 100%; } .ct-chart { position: relative; } .ct-chart .ct-line { stroke-width: 2px !important; } .ct-chart .ct-point { stroke-width: 6px !important; transition: stroke-width .2s; } @@ -554,7 +555,7 @@ .lightgreen {background-color: #406540; } .lightorange { background-color: #ab7f36; } .lightred { background-color: #954848; } - .ct-label { color: #fff !important; } + .ct-label { color: #fff !important; fill: #fff !important; } .ct-grid{ stroke:#fff !important; } .ct-chart .ct-series.ct-series-a .ct-line, .ct-chart .ct-series.ct-series-a .ct-point { stroke: #0078D4 !important; } .ct-chart .ct-series.ct-series-b .ct-line, .ct-chart .ct-series.ct-series-b .ct-point { stroke: #6dc428 !important; } @@ -707,9 +708,76 @@

< Summary

Coverage history

-
+
+ +Coverage history + + + + + + + + + + + + + + 0 + 25 + 50 + 75 + 100 + + + + + + + +

Metrics

@@ -774,7 +845,7 @@

C:\temp\TestClass.cs

- +

Methods/Properties

diff --git a/docs/resources/reports/HtmlInline_AzurePipelines/Sample_TestClass2.html b/docs/resources/reports/HtmlInline_AzurePipelines/Sample_TestClass2.html index fa559f84..c6ea84dc 100644 --- a/docs/resources/reports/HtmlInline_AzurePipelines/Sample_TestClass2.html +++ b/docs/resources/reports/HtmlInline_AzurePipelines/Sample_TestClass2.html @@ -155,6 +155,7 @@ .toggleZoom { text-align:right; } +.historychart svg { max-width: 100%; } .ct-chart { position: relative; } .ct-chart .ct-line { stroke-width: 2px !important; } .ct-chart .ct-point { stroke-width: 6px !important; transition: stroke-width .2s; } @@ -554,7 +555,7 @@ .lightgreen {background-color: #406540; } .lightorange { background-color: #ab7f36; } .lightred { background-color: #954848; } - .ct-label { color: #fff !important; } + .ct-label { color: #fff !important; fill: #fff !important; } .ct-grid{ stroke:#fff !important; } .ct-chart .ct-series.ct-series-a .ct-line, .ct-chart .ct-series.ct-series-a .ct-point { stroke: #0078D4 !important; } .ct-chart .ct-series.ct-series-b .ct-line, .ct-chart .ct-series.ct-series-b .ct-point { stroke: #6dc428 !important; } @@ -707,14 +708,84 @@

< Summary

Coverage history

-
+
+ +Coverage history + + + + + + + + + + + + + + 0 + 25 + 50 + 75 + 100 + + + + + + + + + + +

Metrics

@@ -825,7 +896,7 @@

C:\temp\TestClass2.cs

- +

Methods/Properties

diff --git a/docs/resources/reports/HtmlInline_AzurePipelines/index.html b/docs/resources/reports/HtmlInline_AzurePipelines/index.html index 8fdaabf6..f52da06a 100644 --- a/docs/resources/reports/HtmlInline_AzurePipelines/index.html +++ b/docs/resources/reports/HtmlInline_AzurePipelines/index.html @@ -155,6 +155,7 @@ .toggleZoom { text-align:right; } +.historychart svg { max-width: 100%; } .ct-chart { position: relative; } .ct-chart .ct-line { stroke-width: 2px !important; } .ct-chart .ct-point { stroke-width: 6px !important; transition: stroke-width .2s; } @@ -554,7 +555,7 @@ .lightgreen {background-color: #406540; } .lightorange { background-color: #ab7f36; } .lightred { background-color: #954848; } - .ct-label { color: #fff !important; } + .ct-label { color: #fff !important; fill: #fff !important; } .ct-grid{ stroke:#fff !important; } .ct-chart .ct-series.ct-series-a .ct-line, .ct-chart .ct-series.ct-series-a .ct-point { stroke: #0078D4 !important; } .ct-chart .ct-series.ct-series-b .ct-line, .ct-chart .ct-series.ct-series-b .ct-point { stroke: #6dc428 !important; } @@ -709,14 +710,84 @@

Summary

+
+ +Coverage history + + + + + + + + + + + + + + 0 + 25 + 50 + 75 + 100 + + + + + + + + + + +

Risk Hotspots

@@ -757,7 +828,7 @@

Coverage

- +

Metrics

@@ -798,7 +869,7 @@

C:\temp\PartialClass2.cs

- +

Methods/Properties

diff --git a/docs/resources/reports/HtmlInline_AzurePipelines_Dark/Sample_Program.html b/docs/resources/reports/HtmlInline_AzurePipelines_Dark/Sample_Program.html index 7b592b61..9642100e 100644 --- a/docs/resources/reports/HtmlInline_AzurePipelines_Dark/Sample_Program.html +++ b/docs/resources/reports/HtmlInline_AzurePipelines_Dark/Sample_Program.html @@ -155,6 +155,7 @@ .toggleZoom { text-align:right; } +.historychart svg { max-width: 100%; } .ct-chart { position: relative; } .ct-chart .ct-line { stroke-width: 2px !important; } .ct-chart .ct-point { stroke-width: 6px !important; transition: stroke-width .2s; } @@ -553,7 +554,7 @@ .lightgreen {background-color: #406540; } .lightorange { background-color: #ab7f36; } .lightred { background-color: #954848; } - .ct-label { color: #fff !important; } + .ct-label { color: #fff !important; fill: #fff !important; } .ct-grid{ stroke:#fff !important; } .ct-chart .ct-series.ct-series-a .ct-line, .ct-chart .ct-series.ct-series-a .ct-point { stroke: #0078D4 !important; } .ct-chart .ct-series.ct-series-b .ct-line, .ct-chart .ct-series.ct-series-b .ct-point { stroke: #6dc428 !important; } @@ -706,9 +707,76 @@

< Summary

Coverage history

-
+
+ +Coverage history + + + + + + + + + + + + + + 0 + 25 + 50 + 75 + 100 + + + + + + + +

Metrics

@@ -773,7 +844,7 @@

C:\temp\TestClass.cs

- +

Methods/Properties

diff --git a/docs/resources/reports/HtmlInline_AzurePipelines_Dark/Sample_TestClass2.html b/docs/resources/reports/HtmlInline_AzurePipelines_Dark/Sample_TestClass2.html index 9aa1bcc8..6039fbc3 100644 --- a/docs/resources/reports/HtmlInline_AzurePipelines_Dark/Sample_TestClass2.html +++ b/docs/resources/reports/HtmlInline_AzurePipelines_Dark/Sample_TestClass2.html @@ -155,6 +155,7 @@ .toggleZoom { text-align:right; } +.historychart svg { max-width: 100%; } .ct-chart { position: relative; } .ct-chart .ct-line { stroke-width: 2px !important; } .ct-chart .ct-point { stroke-width: 6px !important; transition: stroke-width .2s; } @@ -553,7 +554,7 @@ .lightgreen {background-color: #406540; } .lightorange { background-color: #ab7f36; } .lightred { background-color: #954848; } - .ct-label { color: #fff !important; } + .ct-label { color: #fff !important; fill: #fff !important; } .ct-grid{ stroke:#fff !important; } .ct-chart .ct-series.ct-series-a .ct-line, .ct-chart .ct-series.ct-series-a .ct-point { stroke: #0078D4 !important; } .ct-chart .ct-series.ct-series-b .ct-line, .ct-chart .ct-series.ct-series-b .ct-point { stroke: #6dc428 !important; } @@ -706,14 +707,84 @@

< Summary

Coverage history

-
+
+ +Coverage history + + + + + + + + + + + + + + 0 + 25 + 50 + 75 + 100 + + + + + + + + + + +

Metrics

@@ -824,7 +895,7 @@

C:\temp\TestClass2.cs

- +

Methods/Properties

diff --git a/docs/resources/reports/HtmlInline_AzurePipelines_Dark/index.html b/docs/resources/reports/HtmlInline_AzurePipelines_Dark/index.html index da4cdb75..67722d2d 100644 --- a/docs/resources/reports/HtmlInline_AzurePipelines_Dark/index.html +++ b/docs/resources/reports/HtmlInline_AzurePipelines_Dark/index.html @@ -155,6 +155,7 @@ .toggleZoom { text-align:right; } +.historychart svg { max-width: 100%; } .ct-chart { position: relative; } .ct-chart .ct-line { stroke-width: 2px !important; } .ct-chart .ct-point { stroke-width: 6px !important; transition: stroke-width .2s; } @@ -553,7 +554,7 @@ .lightgreen {background-color: #406540; } .lightorange { background-color: #ab7f36; } .lightred { background-color: #954848; } - .ct-label { color: #fff !important; } + .ct-label { color: #fff !important; fill: #fff !important; } .ct-grid{ stroke:#fff !important; } .ct-chart .ct-series.ct-series-a .ct-line, .ct-chart .ct-series.ct-series-a .ct-point { stroke: #0078D4 !important; } .ct-chart .ct-series.ct-series-b .ct-line, .ct-chart .ct-series.ct-series-b .ct-point { stroke: #6dc428 !important; } @@ -708,14 +709,84 @@

Summary

+
+ +Coverage history + + + + + + + + + + + + + + 0 + 25 + 50 + 75 + 100 + + + + + + + + + + +

Risk Hotspots

@@ -756,7 +827,7 @@

Coverage

- +

Metrics

@@ -715,7 +786,7 @@

C:\temp\PartialClass2.cs

- +

Methods/Properties

diff --git a/docs/resources/reports/HtmlInline_AzurePipelines_Light/Sample_Program.html b/docs/resources/reports/HtmlInline_AzurePipelines_Light/Sample_Program.html index e2af0b03..f227e493 100644 --- a/docs/resources/reports/HtmlInline_AzurePipelines_Light/Sample_Program.html +++ b/docs/resources/reports/HtmlInline_AzurePipelines_Light/Sample_Program.html @@ -155,6 +155,7 @@ .toggleZoom { text-align:right; } +.historychart svg { max-width: 100%; } .ct-chart { position: relative; } .ct-chart .ct-line { stroke-width: 2px !important; } .ct-chart .ct-point { stroke-width: 6px !important; transition: stroke-width .2s; } @@ -623,9 +624,76 @@

< Summary

Coverage history

-
+
+ +Coverage history + + + + + + + + + + + + + + 0 + 25 + 50 + 75 + 100 + + + + + + + +

Metrics

@@ -690,7 +761,7 @@

C:\temp\TestClass.cs

- +

Methods/Properties

diff --git a/docs/resources/reports/HtmlInline_AzurePipelines_Light/Sample_TestClass2.html b/docs/resources/reports/HtmlInline_AzurePipelines_Light/Sample_TestClass2.html index 10dda44b..22782ca4 100644 --- a/docs/resources/reports/HtmlInline_AzurePipelines_Light/Sample_TestClass2.html +++ b/docs/resources/reports/HtmlInline_AzurePipelines_Light/Sample_TestClass2.html @@ -155,6 +155,7 @@ .toggleZoom { text-align:right; } +.historychart svg { max-width: 100%; } .ct-chart { position: relative; } .ct-chart .ct-line { stroke-width: 2px !important; } .ct-chart .ct-point { stroke-width: 6px !important; transition: stroke-width .2s; } @@ -623,14 +624,84 @@

< Summary

Coverage history

-
+
+ +Coverage history + + + + + + + + + + + + + + 0 + 25 + 50 + 75 + 100 + + + + + + + + + + +

Metrics

@@ -741,7 +812,7 @@

C:\temp\TestClass2.cs

- +

Methods/Properties

diff --git a/docs/resources/reports/HtmlInline_AzurePipelines_Light/index.html b/docs/resources/reports/HtmlInline_AzurePipelines_Light/index.html index bc225343..3bbf9b87 100644 --- a/docs/resources/reports/HtmlInline_AzurePipelines_Light/index.html +++ b/docs/resources/reports/HtmlInline_AzurePipelines_Light/index.html @@ -155,6 +155,7 @@ .toggleZoom { text-align:right; } +.historychart svg { max-width: 100%; } .ct-chart { position: relative; } .ct-chart .ct-line { stroke-width: 2px !important; } .ct-chart .ct-point { stroke-width: 6px !important; transition: stroke-width .2s; } @@ -625,14 +626,84 @@

Summary

+
+ +Coverage history + + + + + + + + + + + + + + 0 + 25 + 50 + 75 + 100 + + + + + + + + + + +

Risk Hotspots

@@ -673,7 +744,7 @@

Coverage

- +

Risk Hotspots

@@ -937,7 +1009,7 @@

Coverage

- +

Metrics

@@ -201,7 +271,7 @@

C:\temp\PartialClass2.cs

- +

Methods/Properties

diff --git a/docs/resources/reports/Html_BlueRed/Sample_Program.html b/docs/resources/reports/Html_BlueRed/Sample_Program.html index 3c71f317..4828ccfb 100644 --- a/docs/resources/reports/Html_BlueRed/Sample_Program.html +++ b/docs/resources/reports/Html_BlueRed/Sample_Program.html @@ -109,9 +109,76 @@

< Summary

Coverage history

-
+
+ +Coverage history + + + + + + + + + + + + + + 0 + 25 + 50 + 75 + 100 + + + + + + + +

Metrics

@@ -176,7 +246,7 @@

C:\temp\TestClass.cs

- +

Methods/Properties

diff --git a/docs/resources/reports/Html_BlueRed/Sample_TestClass2.html b/docs/resources/reports/Html_BlueRed/Sample_TestClass2.html index 1b2f0646..3bf250ac 100644 --- a/docs/resources/reports/Html_BlueRed/Sample_TestClass2.html +++ b/docs/resources/reports/Html_BlueRed/Sample_TestClass2.html @@ -109,14 +109,84 @@

< Summary

Coverage history

-
+
+ +Coverage history + + + + + + + + + + + + + + 0 + 25 + 50 + 75 + 100 + + + + + + + + + + +

Metrics

@@ -227,7 +297,7 @@

C:\temp\TestClass2.cs

- +

Methods/Properties

diff --git a/docs/resources/reports/Html_BlueRed/index.html b/docs/resources/reports/Html_BlueRed/index.html index b02daeff..838dc154 100644 --- a/docs/resources/reports/Html_BlueRed/index.html +++ b/docs/resources/reports/Html_BlueRed/index.html @@ -111,14 +111,84 @@

Summary

+
+ +Coverage history + + + + + + + + + + + + + + 0 + 25 + 50 + 75 + 100 + + + + + + + + + + +

Risk Hotspots

@@ -159,7 +229,7 @@

Coverage

- +

Risk Hotspots

@@ -944,7 +1016,7 @@

Coverage

- +

Metrics

@@ -201,7 +271,7 @@

C:\temp\PartialClass2.cs

- +

Methods/Properties

diff --git a/docs/resources/reports/Html_Dark/Sample_Program.html b/docs/resources/reports/Html_Dark/Sample_Program.html index ee2827cc..3efa8bd3 100644 --- a/docs/resources/reports/Html_Dark/Sample_Program.html +++ b/docs/resources/reports/Html_Dark/Sample_Program.html @@ -109,9 +109,76 @@

< Summary

Coverage history

-
+
+ +Coverage history + + + + + + + + + + + + + + 0 + 25 + 50 + 75 + 100 + + + + + + + +

Metrics

@@ -176,7 +246,7 @@

C:\temp\TestClass.cs

- +

Methods/Properties

diff --git a/docs/resources/reports/Html_Dark/Sample_TestClass2.html b/docs/resources/reports/Html_Dark/Sample_TestClass2.html index 28146795..e30a6d4d 100644 --- a/docs/resources/reports/Html_Dark/Sample_TestClass2.html +++ b/docs/resources/reports/Html_Dark/Sample_TestClass2.html @@ -109,14 +109,84 @@

< Summary

Coverage history

-
+
+ +Coverage history + + + + + + + + + + + + + + 0 + 25 + 50 + 75 + 100 + + + + + + + + + + +

Metrics

@@ -227,7 +297,7 @@

C:\temp\TestClass2.cs

- +

Methods/Properties

diff --git a/docs/resources/reports/Html_Dark/index.html b/docs/resources/reports/Html_Dark/index.html index fc2f6040..c1117bbb 100644 --- a/docs/resources/reports/Html_Dark/index.html +++ b/docs/resources/reports/Html_Dark/index.html @@ -111,14 +111,84 @@

Summary

+
+ +Coverage history + + + + + + + + + + + + + + 0 + 25 + 50 + 75 + 100 + + + + + + + + + + +

Risk Hotspots

@@ -159,7 +229,7 @@

Coverage

- +

Metrics

@@ -201,7 +271,7 @@

C:\temp\PartialClass2.cs

- +

Methods/Properties

diff --git a/docs/resources/reports/Html_Light/Sample_Program.html b/docs/resources/reports/Html_Light/Sample_Program.html index 3ee5eacc..8bd2b2aa 100644 --- a/docs/resources/reports/Html_Light/Sample_Program.html +++ b/docs/resources/reports/Html_Light/Sample_Program.html @@ -109,9 +109,76 @@

< Summary

Coverage history

-
+
+ +Coverage history + + + + + + + + + + + + + + 0 + 25 + 50 + 75 + 100 + + + + + + + +

Metrics

@@ -176,7 +246,7 @@

C:\temp\TestClass.cs

- +

Methods/Properties

diff --git a/docs/resources/reports/Html_Light/Sample_TestClass2.html b/docs/resources/reports/Html_Light/Sample_TestClass2.html index 23e8c5a9..289fcdc5 100644 --- a/docs/resources/reports/Html_Light/Sample_TestClass2.html +++ b/docs/resources/reports/Html_Light/Sample_TestClass2.html @@ -109,14 +109,84 @@

< Summary

Coverage history

-
+
+ +Coverage history + + + + + + + + + + + + + + 0 + 25 + 50 + 75 + 100 + + + + + + + + + + +

Metrics

@@ -227,7 +297,7 @@

C:\temp\TestClass2.cs

- +

Methods/Properties

diff --git a/docs/resources/reports/Html_Light/index.html b/docs/resources/reports/Html_Light/index.html index 6ea1dd02..8f45aa9d 100644 --- a/docs/resources/reports/Html_Light/index.html +++ b/docs/resources/reports/Html_Light/index.html @@ -111,14 +111,84 @@

Summary

+
+ +Coverage history + + + + + + + + + + + + + + 0 + 25 + 50 + 75 + 100 + + + + + + + + + + +

Risk Hotspots

@@ -159,7 +229,7 @@

Coverage

- +

Risk Hotspots

@@ -170,7 +240,7 @@ var historyChartDatae4fc47c38a02441781f9ef8ccb1a9626 = { - + @@ -291,14 +361,84 @@ Content-Location: file:///Sample_PartialClass.html

Coverage history

-
+
+ +Coverage history + + + + + + + + + + + + + + 0 + 25 + 50 + 75 + 100 + + + + + + + + + + +

Metrics

@@ -383,7 +523,7 @@ var historyChartData839a3d41796c4f2abb2b7fce6b141acc = { - +

Methods/Properties

@@ -515,9 +655,76 @@ Content-Location: file:///Sample_Program.html

Coverage history

-
+
+ +Coverage history + + + + + + + + + + + + + + 0 + 25 + 50 + 75 + 100 + + + + + + + +

Metrics

@@ -831,7 +1108,7 @@ var historyChartDatacaa875bdd36b440a88b28fc40cad67d7 = { - +

Methods/Properties

@@ -959,14 +1236,84 @@ Content-Location: file:///Sample_TestClass2.html

Coverage history

-
+
+ +Coverage history + + + + + + + + + + + + + + 0 + 25 + 50 + 75 + 100 + + + + + + + + + + +

Metrics

@@ -1077,7 +1424,7 @@ var historyChartDataaaccfdd9294e48a5a2eb863851dbe33d = { - +

Methods/Properties

@@ -1325,10 +1672,10 @@ var assemblies = [ { "name": "Sample", "classes": [ - { "name": "Sample.PartialClass", "rp": "file:///Sample_PartialClass.html", "cl": 12, "ucl": 10, "cal": 22, "tl": 53, "cb": 1, "tb": 2, "cm": 3, "tm": 6, "lch": [40.9,54.5,59,59,45.4,50,50,59,54.5], "bch": [50,40,40,45,45,45,45,45,50], "mch": [50,33.3,50,66.6,66.6,66.6,83.3,83.3,50], "hc": [{ "et": "01.02.2022 - 20:50:35", "cl": 9, "ucl": 13, "cal": 22, "tl": 53, "lcq": 40.9, "cb": 10, "tb": 20, "bcq": 50, "cm": 3, "tm": 6, "mcq": 50 }, { "et": "02.02.2022 - 20:50:35", "cl": 12, "ucl": 10, "cal": 22, "tl": 53, "lcq": 54.5, "cb": 8, "tb": 20, "bcq": 40, "cm": 2, "tm": 6, "mcq": 33.3 }, { "et": "03.02.2022 - 20:50:35", "cl": 13, "ucl": 9, "cal": 22, "tl": 53, "lcq": 59, "cb": 8, "tb": 20, "bcq": 40, "cm": 3, "tm": 6, "mcq": 50 }, { "et": "04.02.2022 - 20:50:35", "cl": 13, "ucl": 9, "cal": 22, "tl": 53, "lcq": 59, "cb": 9, "tb": 20, "bcq": 45, "cm": 4, "tm": 6, "mcq": 66.6 }, { "et": "05.02.2022 - 20:50:35", "cl": 10, "ucl": 12, "cal": 22, "tl": 53, "lcq": 45.4, "cb": 9, "tb": 20, "bcq": 45, "cm": 4, "tm": 6, "mcq": 66.6 }, { "et": "06.02.2022 - 20:50:35", "cl": 11, "ucl": 11, "cal": 22, "tl": 53, "lcq": 50, "cb": 9, "tb": 20, "bcq": 45, "cm": 4, "tm": 6, "mcq": 66.6 }, { "et": "07.02.2022 - 20:50:35", "cl": 11, "ucl": 11, "cal": 22, "tl": 53, "lcq": 50, "cb": 9, "tb": 20, "bcq": 45, "cm": 5, "tm": 6, "mcq": 83.3 }, { "et": "08.02.2022 - 20:50:35", "cl": 13, "ucl": 9, "cal": 22, "tl": 53, "lcq": 59, "cb": 9, "tb": 20, "bcq": 45, "cm": 5, "tm": 6, "mcq": 83.3 }, { "et": "09.02.2022 - 20:50:35", "cl": 13, "ucl": 9, "cal": 22, "tl": 53, "lcq": 59, "cb": 9, "tb": 20, "bcq": 45, "cm": 5, "tm": 6, "mcq": 83.3 }, { "et": "29.09.2023 - 21:05:25", "cl": 12, "ucl": 10, "cal": 22, "tl": 53, "lcq": 54.5, "cb": 1, "tb": 2, "bcq": 50, "cm": 3, "tm": 6, "mcq": 50 }], "metrics": { "cc": 1, "npth": 0, "seq": 0, "bcov": 0, "crp": 2 } }, - { "name": "Sample.TestClass", "rp": "file:///Sample_TestClass.html", "cl": 12, "ucl": 9, "cal": 21, "tl": 38, "cb": 1, "tb": 2, "cm": 1, "tm": 2, "lch": [38,38,42.8,42.8,47.6,47.6,57.1], "bch": [50,60,60,65,65,50,50], "mch": [50,50,50,50,50,50,50], "hc": [{ "et": "01.02.2022 - 20:50:35", "cl": 8, "ucl": 13, "cal": 21, "tl": 38, "lcq": 38, "cb": 10, "tb": 20, "bcq": 50, "cm": 1, "tm": 2, "mcq": 50 }, { "et": "02.02.2022 - 20:50:35", "cl": 8, "ucl": 13, "cal": 21, "tl": 38, "lcq": 38, "cb": 10, "tb": 20, "bcq": 50, "cm": 1, "tm": 2, "mcq": 50 }, { "et": "03.02.2022 - 20:50:35", "cl": 8, "ucl": 13, "cal": 21, "tl": 38, "lcq": 38, "cb": 12, "tb": 20, "bcq": 60, "cm": 1, "tm": 2, "mcq": 50 }, { "et": "04.02.2022 - 20:50:35", "cl": 9, "ucl": 12, "cal": 21, "tl": 38, "lcq": 42.8, "cb": 12, "tb": 20, "bcq": 60, "cm": 1, "tm": 2, "mcq": 50 }, { "et": "05.02.2022 - 20:50:35", "cl": 9, "ucl": 12, "cal": 21, "tl": 38, "lcq": 42.8, "cb": 13, "tb": 20, "bcq": 65, "cm": 1, "tm": 2, "mcq": 50 }, { "et": "06.02.2022 - 20:50:35", "cl": 9, "ucl": 12, "cal": 21, "tl": 38, "lcq": 42.8, "cb": 13, "tb": 20, "bcq": 65, "cm": 1, "tm": 2, "mcq": 50 }, { "et": "07.02.2022 - 20:50:35", "cl": 10, "ucl": 11, "cal": 21, "tl": 38, "lcq": 47.6, "cb": 13, "tb": 20, "bcq": 65, "cm": 1, "tm": 2, "mcq": 50 }, { "et": "08.02.2022 - 20:50:35", "cl": 10, "ucl": 11, "cal": 21, "tl": 38, "lcq": 47.6, "cb": 13, "tb": 20, "bcq": 65, "cm": 1, "tm": 2, "mcq": 50 }, { "et": "09.02.2022 - 20:50:35", "cl": 10, "ucl": 11, "cal": 21, "tl": 38, "lcq": 47.6, "cb": 10, "tb": 20, "bcq": 50, "cm": 1, "tm": 2, "mcq": 50 }, { "et": "29.09.2023 - 21:05:25", "cl": 12, "ucl": 9, "cal": 21, "tl": 38, "lcq": 57.1, "cb": 1, "tb": 2, "bcq": 50, "cm": 1, "tm": 2, "mcq": 50 }], "metrics": { "cc": 3, "npth": 2, "seq": 0, "bcov": 0, "crp": 3.14 } }, - { "name": "Test.Program", "rp": "file:///Sample_Program.html", "cl": 35, "ucl": 9, "cal": 44, "tl": 84, "cb": 0, "tb": 0, "cm": 4, "tm": 6, "lch": [79.5], "bch": [], "mch": [66.6], "hc": [{ "et": "01.02.2022 - 20:50:35", "cl": 35, "ucl": 9, "cal": 44, "tl": 84, "lcq": 79.5, "cb": 0, "tb": 0, "bcq": 0, "cm": 4, "tm": 6, "mcq": 66.6 }, { "et": "02.02.2022 - 20:50:35", "cl": 35, "ucl": 9, "cal": 44, "tl": 84, "lcq": 79.5, "cb": 0, "tb": 0, "bcq": 0, "cm": 4, "tm": 6, "mcq": 66.6 }, { "et": "03.02.2022 - 20:50:35", "cl": 35, "ucl": 9, "cal": 44, "tl": 84, "lcq": 79.5, "cb": 0, "tb": 0, "bcq": 0, "cm": 4, "tm": 6, "mcq": 66.6 }, { "et": "04.02.2022 - 20:50:35", "cl": 35, "ucl": 9, "cal": 44, "tl": 84, "lcq": 79.5, "cb": 0, "tb": 0, "bcq": 0, "cm": 4, "tm": 6, "mcq": 66.6 }, { "et": "05.02.2022 - 20:50:35", "cl": 35, "ucl": 9, "cal": 44, "tl": 84, "lcq": 79.5, "cb": 0, "tb": 0, "bcq": 0, "cm": 4, "tm": 6, "mcq": 66.6 }, { "et": "06.02.2022 - 20:50:35", "cl": 35, "ucl": 9, "cal": 44, "tl": 84, "lcq": 79.5, "cb": 0, "tb": 0, "bcq": 0, "cm": 4, "tm": 6, "mcq": 66.6 }, { "et": "07.02.2022 - 20:50:35", "cl": 35, "ucl": 9, "cal": 44, "tl": 84, "lcq": 79.5, "cb": 0, "tb": 0, "bcq": 0, "cm": 4, "tm": 6, "mcq": 66.6 }, { "et": "08.02.2022 - 20:50:35", "cl": 35, "ucl": 9, "cal": 44, "tl": 84, "lcq": 79.5, "cb": 0, "tb": 0, "bcq": 0, "cm": 4, "tm": 6, "mcq": 66.6 }, { "et": "09.02.2022 - 20:50:35", "cl": 35, "ucl": 9, "cal": 44, "tl": 84, "lcq": 79.5, "cb": 0, "tb": 0, "bcq": 0, "cm": 4, "tm": 6, "mcq": 66.6 }, { "et": "29.09.2023 - 21:05:25", "cl": 35, "ucl": 9, "cal": 44, "tl": 84, "lcq": 79.5, "cb": 0, "tb": 0, "bcq": 0, "cm": 4, "tm": 6, "mcq": 66.6 }], "metrics": { "cc": 3, "npth": 0, "seq": 0, "bcov": 0, "crp": 3 } }, - { "name": "Test.TestClass2", "rp": "file:///Sample_TestClass2.html", "cl": 24, "ucl": 14, "cal": 38, "tl": 85, "cb": 1, "tb": 2, "cm": 6, "tm": 10, "lch": [39.4,39.4,42.1,44.7,39.4,63.1], "bch": [50,40,40,40,40,50], "mch": [60,40,40,60,60,60], "hc": [{ "et": "01.02.2022 - 20:50:35", "cl": 15, "ucl": 23, "cal": 38, "tl": 85, "lcq": 39.4, "cb": 10, "tb": 20, "bcq": 50, "cm": 6, "tm": 10, "mcq": 60 }, { "et": "02.02.2022 - 20:50:35", "cl": 15, "ucl": 23, "cal": 38, "tl": 85, "lcq": 39.4, "cb": 8, "tb": 20, "bcq": 40, "cm": 4, "tm": 10, "mcq": 40 }, { "et": "03.02.2022 - 20:50:35", "cl": 16, "ucl": 22, "cal": 38, "tl": 85, "lcq": 42.1, "cb": 8, "tb": 20, "bcq": 40, "cm": 4, "tm": 10, "mcq": 40 }, { "et": "04.02.2022 - 20:50:35", "cl": 16, "ucl": 22, "cal": 38, "tl": 85, "lcq": 42.1, "cb": 8, "tb": 20, "bcq": 40, "cm": 4, "tm": 10, "mcq": 40 }, { "et": "05.02.2022 - 20:50:35", "cl": 16, "ucl": 22, "cal": 38, "tl": 85, "lcq": 42.1, "cb": 8, "tb": 20, "bcq": 40, "cm": 4, "tm": 10, "mcq": 40 }, { "et": "06.02.2022 - 20:50:35", "cl": 17, "ucl": 21, "cal": 38, "tl": 85, "lcq": 44.7, "cb": 8, "tb": 20, "bcq": 40, "cm": 6, "tm": 10, "mcq": 60 }, { "et": "07.02.2022 - 20:50:35", "cl": 17, "ucl": 21, "cal": 38, "tl": 85, "lcq": 44.7, "cb": 8, "tb": 20, "bcq": 40, "cm": 6, "tm": 10, "mcq": 60 }, { "et": "08.02.2022 - 20:50:35", "cl": 15, "ucl": 23, "cal": 38, "tl": 85, "lcq": 39.4, "cb": 8, "tb": 20, "bcq": 40, "cm": 6, "tm": 10, "mcq": 60 }, { "et": "09.02.2022 - 20:50:35", "cl": 15, "ucl": 23, "cal": 38, "tl": 85, "lcq": 39.4, "cb": 8, "tb": 20, "bcq": 40, "cm": 6, "tm": 10, "mcq": 60 }, { "et": "29.09.2023 - 21:05:25", "cl": 24, "ucl": 14, "cal": 38, "tl": 85, "lcq": 63.1, "cb": 1, "tb": 2, "bcq": 50, "cm": 6, "tm": 10, "mcq": 60 }], "metrics": { "cc": 5, "npth": 2, "seq": 0, "bcov": 0, "crp": 5 } }, + { "name": "Sample.PartialClass", "rp": "file:///Sample_PartialClass.html", "cl": 12, "ucl": 10, "cal": 22, "tl": 53, "cb": 1, "tb": 2, "cm": 3, "tm": 6, "lch": [40.9,54.5,59,59,45.4,50,50,59,54.5], "bch": [50,40,40,45,45,45,45,45,50], "mch": [50,33.3,50,66.6,66.6,66.6,83.3,83.3,50], "hc": [{ "et": "01.02.2022 - 20:50:35", "cl": 9, "ucl": 13, "cal": 22, "tl": 53, "lcq": 40.9, "cb": 10, "tb": 20, "bcq": 50, "cm": 3, "tm": 6, "mcq": 50 }, { "et": "02.02.2022 - 20:50:35", "cl": 12, "ucl": 10, "cal": 22, "tl": 53, "lcq": 54.5, "cb": 8, "tb": 20, "bcq": 40, "cm": 2, "tm": 6, "mcq": 33.3 }, { "et": "03.02.2022 - 20:50:35", "cl": 13, "ucl": 9, "cal": 22, "tl": 53, "lcq": 59, "cb": 8, "tb": 20, "bcq": 40, "cm": 3, "tm": 6, "mcq": 50 }, { "et": "04.02.2022 - 20:50:35", "cl": 13, "ucl": 9, "cal": 22, "tl": 53, "lcq": 59, "cb": 9, "tb": 20, "bcq": 45, "cm": 4, "tm": 6, "mcq": 66.6 }, { "et": "05.02.2022 - 20:50:35", "cl": 10, "ucl": 12, "cal": 22, "tl": 53, "lcq": 45.4, "cb": 9, "tb": 20, "bcq": 45, "cm": 4, "tm": 6, "mcq": 66.6 }, { "et": "06.02.2022 - 20:50:35", "cl": 11, "ucl": 11, "cal": 22, "tl": 53, "lcq": 50, "cb": 9, "tb": 20, "bcq": 45, "cm": 4, "tm": 6, "mcq": 66.6 }, { "et": "07.02.2022 - 20:50:35", "cl": 11, "ucl": 11, "cal": 22, "tl": 53, "lcq": 50, "cb": 9, "tb": 20, "bcq": 45, "cm": 5, "tm": 6, "mcq": 83.3 }, { "et": "08.02.2022 - 20:50:35", "cl": 13, "ucl": 9, "cal": 22, "tl": 53, "lcq": 59, "cb": 9, "tb": 20, "bcq": 45, "cm": 5, "tm": 6, "mcq": 83.3 }, { "et": "09.02.2022 - 20:50:35", "cl": 13, "ucl": 9, "cal": 22, "tl": 53, "lcq": 59, "cb": 9, "tb": 20, "bcq": 45, "cm": 5, "tm": 6, "mcq": 83.3 }, { "et": "03.10.2023 - 20:43:13", "cl": 12, "ucl": 10, "cal": 22, "tl": 53, "lcq": 54.5, "cb": 1, "tb": 2, "bcq": 50, "cm": 3, "tm": 6, "mcq": 50 }], "metrics": { "cc": 1, "npth": 0, "seq": 0, "bcov": 0, "crp": 2 } }, + { "name": "Sample.TestClass", "rp": "file:///Sample_TestClass.html", "cl": 12, "ucl": 9, "cal": 21, "tl": 38, "cb": 1, "tb": 2, "cm": 1, "tm": 2, "lch": [38,38,42.8,42.8,47.6,47.6,57.1], "bch": [50,60,60,65,65,50,50], "mch": [50,50,50,50,50,50,50], "hc": [{ "et": "01.02.2022 - 20:50:35", "cl": 8, "ucl": 13, "cal": 21, "tl": 38, "lcq": 38, "cb": 10, "tb": 20, "bcq": 50, "cm": 1, "tm": 2, "mcq": 50 }, { "et": "02.02.2022 - 20:50:35", "cl": 8, "ucl": 13, "cal": 21, "tl": 38, "lcq": 38, "cb": 10, "tb": 20, "bcq": 50, "cm": 1, "tm": 2, "mcq": 50 }, { "et": "03.02.2022 - 20:50:35", "cl": 8, "ucl": 13, "cal": 21, "tl": 38, "lcq": 38, "cb": 12, "tb": 20, "bcq": 60, "cm": 1, "tm": 2, "mcq": 50 }, { "et": "04.02.2022 - 20:50:35", "cl": 9, "ucl": 12, "cal": 21, "tl": 38, "lcq": 42.8, "cb": 12, "tb": 20, "bcq": 60, "cm": 1, "tm": 2, "mcq": 50 }, { "et": "05.02.2022 - 20:50:35", "cl": 9, "ucl": 12, "cal": 21, "tl": 38, "lcq": 42.8, "cb": 13, "tb": 20, "bcq": 65, "cm": 1, "tm": 2, "mcq": 50 }, { "et": "06.02.2022 - 20:50:35", "cl": 9, "ucl": 12, "cal": 21, "tl": 38, "lcq": 42.8, "cb": 13, "tb": 20, "bcq": 65, "cm": 1, "tm": 2, "mcq": 50 }, { "et": "07.02.2022 - 20:50:35", "cl": 10, "ucl": 11, "cal": 21, "tl": 38, "lcq": 47.6, "cb": 13, "tb": 20, "bcq": 65, "cm": 1, "tm": 2, "mcq": 50 }, { "et": "08.02.2022 - 20:50:35", "cl": 10, "ucl": 11, "cal": 21, "tl": 38, "lcq": 47.6, "cb": 13, "tb": 20, "bcq": 65, "cm": 1, "tm": 2, "mcq": 50 }, { "et": "09.02.2022 - 20:50:35", "cl": 10, "ucl": 11, "cal": 21, "tl": 38, "lcq": 47.6, "cb": 10, "tb": 20, "bcq": 50, "cm": 1, "tm": 2, "mcq": 50 }, { "et": "03.10.2023 - 20:43:13", "cl": 12, "ucl": 9, "cal": 21, "tl": 38, "lcq": 57.1, "cb": 1, "tb": 2, "bcq": 50, "cm": 1, "tm": 2, "mcq": 50 }], "metrics": { "cc": 3, "npth": 2, "seq": 0, "bcov": 0, "crp": 3.14 } }, + { "name": "Test.Program", "rp": "file:///Sample_Program.html", "cl": 35, "ucl": 9, "cal": 44, "tl": 84, "cb": 0, "tb": 0, "cm": 4, "tm": 6, "lch": [79.5], "bch": [], "mch": [66.6], "hc": [{ "et": "01.02.2022 - 20:50:35", "cl": 35, "ucl": 9, "cal": 44, "tl": 84, "lcq": 79.5, "cb": 0, "tb": 0, "bcq": 0, "cm": 4, "tm": 6, "mcq": 66.6 }, { "et": "02.02.2022 - 20:50:35", "cl": 35, "ucl": 9, "cal": 44, "tl": 84, "lcq": 79.5, "cb": 0, "tb": 0, "bcq": 0, "cm": 4, "tm": 6, "mcq": 66.6 }, { "et": "03.02.2022 - 20:50:35", "cl": 35, "ucl": 9, "cal": 44, "tl": 84, "lcq": 79.5, "cb": 0, "tb": 0, "bcq": 0, "cm": 4, "tm": 6, "mcq": 66.6 }, { "et": "04.02.2022 - 20:50:35", "cl": 35, "ucl": 9, "cal": 44, "tl": 84, "lcq": 79.5, "cb": 0, "tb": 0, "bcq": 0, "cm": 4, "tm": 6, "mcq": 66.6 }, { "et": "05.02.2022 - 20:50:35", "cl": 35, "ucl": 9, "cal": 44, "tl": 84, "lcq": 79.5, "cb": 0, "tb": 0, "bcq": 0, "cm": 4, "tm": 6, "mcq": 66.6 }, { "et": "06.02.2022 - 20:50:35", "cl": 35, "ucl": 9, "cal": 44, "tl": 84, "lcq": 79.5, "cb": 0, "tb": 0, "bcq": 0, "cm": 4, "tm": 6, "mcq": 66.6 }, { "et": "07.02.2022 - 20:50:35", "cl": 35, "ucl": 9, "cal": 44, "tl": 84, "lcq": 79.5, "cb": 0, "tb": 0, "bcq": 0, "cm": 4, "tm": 6, "mcq": 66.6 }, { "et": "08.02.2022 - 20:50:35", "cl": 35, "ucl": 9, "cal": 44, "tl": 84, "lcq": 79.5, "cb": 0, "tb": 0, "bcq": 0, "cm": 4, "tm": 6, "mcq": 66.6 }, { "et": "09.02.2022 - 20:50:35", "cl": 35, "ucl": 9, "cal": 44, "tl": 84, "lcq": 79.5, "cb": 0, "tb": 0, "bcq": 0, "cm": 4, "tm": 6, "mcq": 66.6 }, { "et": "03.10.2023 - 20:43:13", "cl": 35, "ucl": 9, "cal": 44, "tl": 84, "lcq": 79.5, "cb": 0, "tb": 0, "bcq": 0, "cm": 4, "tm": 6, "mcq": 66.6 }], "metrics": { "cc": 3, "npth": 0, "seq": 0, "bcov": 0, "crp": 3 } }, + { "name": "Test.TestClass2", "rp": "file:///Sample_TestClass2.html", "cl": 24, "ucl": 14, "cal": 38, "tl": 85, "cb": 1, "tb": 2, "cm": 6, "tm": 10, "lch": [39.4,39.4,42.1,44.7,39.4,63.1], "bch": [50,40,40,40,40,50], "mch": [60,40,40,60,60,60], "hc": [{ "et": "01.02.2022 - 20:50:35", "cl": 15, "ucl": 23, "cal": 38, "tl": 85, "lcq": 39.4, "cb": 10, "tb": 20, "bcq": 50, "cm": 6, "tm": 10, "mcq": 60 }, { "et": "02.02.2022 - 20:50:35", "cl": 15, "ucl": 23, "cal": 38, "tl": 85, "lcq": 39.4, "cb": 8, "tb": 20, "bcq": 40, "cm": 4, "tm": 10, "mcq": 40 }, { "et": "03.02.2022 - 20:50:35", "cl": 16, "ucl": 22, "cal": 38, "tl": 85, "lcq": 42.1, "cb": 8, "tb": 20, "bcq": 40, "cm": 4, "tm": 10, "mcq": 40 }, { "et": "04.02.2022 - 20:50:35", "cl": 16, "ucl": 22, "cal": 38, "tl": 85, "lcq": 42.1, "cb": 8, "tb": 20, "bcq": 40, "cm": 4, "tm": 10, "mcq": 40 }, { "et": "05.02.2022 - 20:50:35", "cl": 16, "ucl": 22, "cal": 38, "tl": 85, "lcq": 42.1, "cb": 8, "tb": 20, "bcq": 40, "cm": 4, "tm": 10, "mcq": 40 }, { "et": "06.02.2022 - 20:50:35", "cl": 17, "ucl": 21, "cal": 38, "tl": 85, "lcq": 44.7, "cb": 8, "tb": 20, "bcq": 40, "cm": 6, "tm": 10, "mcq": 60 }, { "et": "07.02.2022 - 20:50:35", "cl": 17, "ucl": 21, "cal": 38, "tl": 85, "lcq": 44.7, "cb": 8, "tb": 20, "bcq": 40, "cm": 6, "tm": 10, "mcq": 60 }, { "et": "08.02.2022 - 20:50:35", "cl": 15, "ucl": 23, "cal": 38, "tl": 85, "lcq": 39.4, "cb": 8, "tb": 20, "bcq": 40, "cm": 6, "tm": 10, "mcq": 60 }, { "et": "09.02.2022 - 20:50:35", "cl": 15, "ucl": 23, "cal": 38, "tl": 85, "lcq": 39.4, "cb": 8, "tb": 20, "bcq": 40, "cm": 6, "tm": 10, "mcq": 60 }, { "et": "03.10.2023 - 20:43:13", "cl": 24, "ucl": 14, "cal": 38, "tl": 85, "lcq": 63.1, "cb": 1, "tb": 2, "bcq": 50, "cm": 6, "tm": 10, "mcq": 60 }], "metrics": { "cc": 5, "npth": 2, "seq": 0, "bcov": 0, "crp": 5 } }, ]}, ]; @@ -1783,6 +2130,7 @@ code { font-family: Consolas, monospace; font-size: 0.9em; } .toggleZoom { text-align:right; } +.historychart svg { max-width: 100%; } .ct-chart { position: relative; } .ct-chart .ct-line { stroke-width: 2px !important; } .ct-chart .ct-point { stroke-width: 6px !important; transition: stroke-width .2s; } @@ -2314,6 +2662,7 @@ code { font-family: Consolas, monospace; font-size: 0.9em; } .ct-label { color: #fff !important; + fill: #fff !important; } .ct-grid { diff --git a/docs/resources/reports/MarkdownDeltaSummary/DeltaSummary.md b/docs/resources/reports/MarkdownDeltaSummary/DeltaSummary.md index c29582d6..eee35d70 100644 --- a/docs/resources/reports/MarkdownDeltaSummary/DeltaSummary.md +++ b/docs/resources/reports/MarkdownDeltaSummary/DeltaSummary.md @@ -1,9 +1,9 @@ # Delta Summary ||||| |:---|---:|---:|---:| -| Generated on: | 29.09.2023 - 21:05 | | | +| Generated on: | 03.10.2023 - 20:43 | | | | Description | **Previous** | **Current** | **Delta** | -| Coverage date: | 09.02.2022 - 20:50 | 29.09.2023 - 21:05 | | +| Coverage date: | 09.02.2022 - 20:50 | 03.10.2023 - 20:43 | | | **Line coverage:** | 58.4% | 66.4% | 8.0% | | Covered lines: | 73 | 83 | 10 | | Coverable lines: | 125 | 125 | 0 | diff --git a/docs/resources/reports/MarkdownSummary/Summary.md b/docs/resources/reports/MarkdownSummary/Summary.md index d6f4d96a..960b6f21 100644 --- a/docs/resources/reports/MarkdownSummary/Summary.md +++ b/docs/resources/reports/MarkdownSummary/Summary.md @@ -1,7 +1,7 @@ # Summary ||| |:---|:---| -| Generated on: | 29.09.2023 - 21:05:44 | +| Generated on: | 03.10.2023 - 20:43:29 | | Parser: | OpenCover | | Assemblies: | 1 | | Classes: | 4 | diff --git a/docs/resources/reports/MarkdownSummaryGithub/SummaryGithub.md b/docs/resources/reports/MarkdownSummaryGithub/SummaryGithub.md index 311956f6..7c51bacf 100644 --- a/docs/resources/reports/MarkdownSummaryGithub/SummaryGithub.md +++ b/docs/resources/reports/MarkdownSummaryGithub/SummaryGithub.md @@ -3,7 +3,7 @@ ||| |:---|:---| -| Generated on: | 29.09.2023 - 21:05:56 | +| Generated on: | 03.10.2023 - 20:43:35 | | Parser: | OpenCover | | Assemblies: | 1 | | Classes: | 4 | diff --git a/docs/resources/reports/OpenCover/OpenCover.xml b/docs/resources/reports/OpenCover/OpenCover.xml index c82cee4d..16370c63 100644 --- a/docs/resources/reports/OpenCover/OpenCover.xml +++ b/docs/resources/reports/OpenCover/OpenCover.xml @@ -5,7 +5,7 @@ Sample - 2023-09-29T19:05:57.6076794Z + 2023-10-03T18:43:37.0801190Z Sample diff --git a/docs/resources/reports/PngChart/CoverageHistory.png b/docs/resources/reports/PngChart/CoverageHistory.png deleted file mode 100644 index 414e64b8..00000000 Binary files a/docs/resources/reports/PngChart/CoverageHistory.png and /dev/null differ diff --git a/docs/resources/reports/SvgChart/CoverageHistory.svg b/docs/resources/reports/SvgChart/CoverageHistory.svg new file mode 100644 index 00000000..c17baf5f --- /dev/null +++ b/docs/resources/reports/SvgChart/CoverageHistory.svg @@ -0,0 +1,70 @@ + + +Coverage history + + + + + + + + + + + + + + 0 + 25 + 50 + 75 + 100 + + + + + + + + + + diff --git a/docs/resources/reports/TextDeltaSummary/DeltaSummary.txt b/docs/resources/reports/TextDeltaSummary/DeltaSummary.txt index 0827a483..5f85fca7 100644 --- a/docs/resources/reports/TextDeltaSummary/DeltaSummary.txt +++ b/docs/resources/reports/TextDeltaSummary/DeltaSummary.txt @@ -1,7 +1,7 @@ Delta Summary - Generated on: 29.09.2023 - 21:05 + Generated on: 03.10.2023 - 20:43 Description Previous Current Delta - Coverage date: 09.02.2022 - 20:50 29.09.2023 - 21:05 + Coverage date: 09.02.2022 - 20:50 03.10.2023 - 20:43 Line coverage: 58.4% 66.4% 8.0% Covered lines: 73 83 10 Coverable lines: 125 125 0 diff --git a/docs/resources/reports/TextSummary/Summary.txt b/docs/resources/reports/TextSummary/Summary.txt index 71b08ce6..4f356c45 100644 --- a/docs/resources/reports/TextSummary/Summary.txt +++ b/docs/resources/reports/TextSummary/Summary.txt @@ -1,5 +1,5 @@ Summary - Generated on: 29.09.2023 - 21:05:41 + Generated on: 03.10.2023 - 20:43:26 Parser: OpenCover Assemblies: 1 Classes: 4 diff --git a/docs/resources/reports/Xml/Summary.xml b/docs/resources/reports/Xml/Summary.xml index 95e183c4..d32039ac 100644 --- a/docs/resources/reports/Xml/Summary.xml +++ b/docs/resources/reports/Xml/Summary.xml @@ -1,7 +1,7 @@ - 29.09.2023 - 21:05:34 + 03.10.2023 - 20:43:20 OpenCover 1 4 diff --git a/docs/resources/reports/XmlSummary/Summary.xml b/docs/resources/reports/XmlSummary/Summary.xml index 61c65b79..1151196a 100644 --- a/docs/resources/reports/XmlSummary/Summary.xml +++ b/docs/resources/reports/XmlSummary/Summary.xml @@ -1,7 +1,7 @@ - 29.09.2023 - 21:05:35 + 03.10.2023 - 20:43:21 OpenCover 1 4 diff --git a/docs/resources/reports/index.html b/docs/resources/reports/index.html index ff589ebc..1f1e075d 100644 --- a/docs/resources/reports/index.html +++ b/docs/resources/reports/index.html @@ -205,12 +205,12 @@

Other

Creates a single CSV file containing coverage information per class. - PngChart - Creates a single PNG file containing a chart with historic coverage information. + SvgChart + Creates a single SVG file containing a chart with historic coverage information. Badges - Creates SVGs and PNGs files that show line and/or branch coverage information. + Creates SVG files that show line and/or branch coverage information.
diff --git a/src/AzureDevopsTask/README.md b/src/AzureDevopsTask/README.md index ae193470..71b8edfd 100644 --- a/src/AzureDevopsTask/README.md +++ b/src/AzureDevopsTask/README.md @@ -18,7 +18,7 @@ To learn how to use *ReportGenerator* have a look at the: inputs: reports: 'coverage.xml' # REQUIRED # The coverage reports that should be parsed (separated by semicolon). Globbing is supported. targetdir: 'coveragereport' # REQUIRED # The directory where the generated report should be saved. - reporttypes: 'HtmlInline_AzurePipelines;Cobertura' # The output formats and scope (separated by semicolon) Values: Badges, Clover, Cobertura, OpenCover, CsvSummary, Html, Html_Dark, Html_Light, Html_BlueRed, HtmlChart, HtmlInline, HtmlInline_AzurePipelines, HtmlInline_AzurePipelines_Dark, HtmlInline_AzurePipelines_Light, HtmlSummary, Html_BlueRed_Summary, JsonSummary, Latex, LatexSummary, lcov, MarkdownSummary, MarkdownSummaryGithub, MarkdownDeltaSummary, MHtml, PngChart, 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, Latex, LatexSummary, lcov, MarkdownSummary, MarkdownSummaryGithub, MarkdownDeltaSummary, MHtml, SvgChart, SonarQube, TeamCitySummary, TextSummary, TextDeltaSummary, Xml, XmlSummary sourcedirs: '' # Optional directories which contain the corresponding source code (separated by semicolon). The source directories are used if coverage report contains classes without path information. historydir: '' # Optional directory for storing persistent coverage information. Can be used in future reports to show coverage evolution. plugins: '' # Optional plugin files for custom reports or custom history storage (separated by semicolon). diff --git a/src/AzureDevopsTask/ReportGenerator/task.json b/src/AzureDevopsTask/ReportGenerator/task.json index 44bc8cea..fe5825d2 100644 --- a/src/AzureDevopsTask/ReportGenerator/task.json +++ b/src/AzureDevopsTask/ReportGenerator/task.json @@ -41,7 +41,7 @@ "label": "Report types", "defaultValue": "HtmlInline_AzurePipelines;Cobertura", "required": false, - "helpMarkDown": "The output formats and scope (separated by semicolon) Values: Badges, Clover, Cobertura, OpenCover, CsvSummary, Html, Html_Dark, Html_Light, Html_BlueRed, HtmlChart, HtmlInline, HtmlInline_AzurePipelines, HtmlInline_AzurePipelines_Dark, HtmlInline_AzurePipelines_Light, HtmlSummary, Html_BlueRed_Summary, JsonSummary, Latex, LatexSummary, lcov, MarkdownSummary, MarkdownSummaryGithub, MarkdownDeltaSummary, MHtml, PngChart, 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, Latex, LatexSummary, lcov, MarkdownSummary, MarkdownSummaryGithub, MarkdownDeltaSummary, MHtml, SvgChart, SonarQube, TeamCitySummary, TextSummary, TextDeltaSummary, Xml, XmlSummary" }, { "name": "sourcedirs", diff --git a/src/Deployment/nuget/ReportGenerator.Core.nuspec b/src/Deployment/nuget/ReportGenerator.Core.nuspec index 32ad3fc1..a0b60e09 100644 --- a/src/Deployment/nuget/ReportGenerator.Core.nuspec +++ b/src/Deployment/nuget/ReportGenerator.Core.nuspec @@ -29,7 +29,6 @@ https://github.com/danielpalme/ReportGenerator/wiki/Custom-history-storage - @@ -38,7 +37,6 @@ https://github.com/danielpalme/ReportGenerator/wiki/Custom-history-storage - diff --git a/src/Readme.txt b/src/Readme.txt index ed618208..9cd51af4 100644 --- a/src/Readme.txt +++ b/src/Readme.txt @@ -36,7 +36,7 @@ The following output formats are supported by ReportGenerator: -TextSummary, TextDeltaSummary -CsvSummary -MarkdownSummary, MarkdownSummaryGithub, MarkdownDeltaSummary --PngChart +-SvgChart -Badges -Custom formats (https://github.com/danielpalme/ReportGenerator/wiki/Custom-reports) @@ -70,6 +70,7 @@ CHANGELOG 5.1.26.0 * New: #595 Added new report type 'Html_BlueRed_Summary' to improve red-green colorblind accessibility + * New: #627 Removed PNG badges and replaced report type 'PngChart' with 'SvgChart' * Fix: #623 Improved Cobertura output (complexity metric) 5.1.25.0 diff --git a/src/ReportGenerator.Console.NetCore/Properties/launchSettings.json b/src/ReportGenerator.Console.NetCore/Properties/launchSettings.json index c3ff47a4..8fc606e4 100644 --- a/src/ReportGenerator.Console.NetCore/Properties/launchSettings.json +++ b/src/ReportGenerator.Console.NetCore/Properties/launchSettings.json @@ -2,7 +2,7 @@ "profiles": { "ReportGenerator.Console.NetCore": { "commandName": "Project", - "commandLineArgs": "-reports:C:\\Users\\danie\\Desktop\\625.coveragexml -targetdir:C:\\Users\\danie\\Desktop\\cov -reporttypes:Html;" + "commandLineArgs": "-reports:C:\\Users\\danie\\Documents\\Projects\\ReportGenerator\\src\\Testprojects\\CSharp\\Reports\\OpenCover.xml -targetdir:C:\\Users\\danie\\Desktop\\coverage -reporttypes:Html;" } } } \ No newline at end of file diff --git a/src/ReportGenerator.Core/ReportGenerator.Core.csproj b/src/ReportGenerator.Core/ReportGenerator.Core.csproj index 8dda1949..d299fab3 100644 --- a/src/ReportGenerator.Core/ReportGenerator.Core.csproj +++ b/src/ReportGenerator.Core/ReportGenerator.Core.csproj @@ -87,7 +87,6 @@ - all runtime; build; native; contentfiles; analyzers diff --git a/src/ReportGenerator.Core/Reporting/Builders/BadgeReportBuilder.cs b/src/ReportGenerator.Core/Reporting/Builders/BadgeReportBuilder.cs index 1dd85e41..bea977e5 100644 --- a/src/ReportGenerator.Core/Reporting/Builders/BadgeReportBuilder.cs +++ b/src/ReportGenerator.Core/Reporting/Builders/BadgeReportBuilder.cs @@ -6,12 +6,6 @@ using Palmmedia.ReportGenerator.Core.Logging; using Palmmedia.ReportGenerator.Core.Parser.Analysis; using Palmmedia.ReportGenerator.Core.Properties; -using SixLabors.Fonts; -using SixLabors.ImageSharp; -using SixLabors.ImageSharp.Drawing.Processing; -using SixLabors.ImageSharp.Formats.Png; -using SixLabors.ImageSharp.PixelFormats; -using SixLabors.ImageSharp.Processing; namespace Palmmedia.ReportGenerator.Core.Reporting.Builders { @@ -167,21 +161,6 @@ @keyframes fade3 {{ /// private const string ShieldsIoTemplate = @" coveragecoverage{5}{5}"; - /// - /// The template for line coverage badge in PNG format. - /// - private const string LineCoveragePngTemplate = "iVBORw0KGgoAAAANSUhEUgAAAJsAAAAUCAMAAACtWb+zAAABgFBMVEUreCtOTk4QtBA+Pj4BpQFOTk49PT0StRIBpAFLS0s/Pz89PT1NTU1CQkIOsg5ISEhPT08MsAwKrgoIrAgGqgYCpgJEREQApABGRkZKSkrGDg4FqAUEpwQRtBEQsxAStRK+Bgb////EDAzBCQm8BATJEhLIERHHEBDCCwu/CAi6AwO5AgK4AQG3AAA1NTXe3t5SUlKCgoLT1NNaWlpWVlY3Nzf7KCjs7OwyMjLh4eHQ0NC5ubmysrKmpqba2trLy8vBwcGsrKygoKB6enpkZGS9vb22trY7Ozv2IiLuGRnlERHdCQnUAQH6+vr09fTw8fDl5eWUlJRfX19KTkp7OjryHR3pFRXhDQ3YBATo6OfX19fGx8Zqamo8pDw3yDdvMjIrmitzc3NwcHBCUkJ2ODgzujMxtDEtpS2MTRj8/PyampqYmJiQkJCIiIhvzm9ms2bPY188PDw2jzY1wjUvri8piSmVSiGBRBKRkZFCiEI5mzmjNjYvqS8nkCePHx+EURZSNd53AAAACXRSTlMG5+fm5YqJiYgKZ7i6AAACsUlEQVRIx83O11LbQBSAYVECWNZmnbZZpZv0pi5kyZJ7oblCigsQeodQ05NXj4SLnMxeIA+e5LtY6ZyVZn6KutQX6I3HBPfPrX/YTmN65QnBXQ+GqT6myefbYma+MBfnKcE9D/opX1ssWJubn5vxXZRbBJe9aLVBXzqX35uft+P+tzYWhvOFvbXV1aOjP+PKwj9sYx3Qlylo++u/No7X1la/zrBNAVPj81Kd7c6oLdjBma94QUEHa2qV/R+fpt9vrK9/Pz5kYUM4ClQumYRQkKErUG7d+2T57FUWYPvhGiXook2RKtKhnTb1buODbRk2tpsBDCENoFmsSoqcFyCs7UKLj+opmDalXDkf4XnZ/pnnC7swFYnqcdjhGcFVLyjsQIqhf3TSJt+enpws44ZFDWGHaKhcwkTpHaxoOFlTVTGNwzVFxQccF9/CmQTHhUVs1FU1ksKuhwTdtCGlmTbx5rSVhpe0xjP+GeMUj5ckvG0hKxKLRas4LAKEtw1eS2BdxvbI5mKxWEX8qy3YwZmveUGhhp+ttPGxb6gpsCkjR7yEUD2CQDHFy8iyBEFgUUZEaEdiuFIC6SmEwiLMKYLAYOR6TtBV28J0K21sFjWBTFRASFxMShBZcYRKUhSgRZ4BoH7WlrAADCeQaQpLugiiJQAUBbkeEFz3ggJNC1OtNNBGmwW+IJX98WLVwAAwuSQA/pJW1SyQEQEQKrxuJABOF9NGEgQMnS+Wgevi2sDCZCvNxYVgNkQDLovsE9ChrL1TQ5BT7ZU9cwwXUgFtHxHZuXW+cj2yBTs4820vKODGTbTTXDTdPF3uRPudMxmJ8XF/e++2EdzxgqJdK+Njs7R3fiEFOcL+BcENL6iBzrgVuhsHWT9p/ZLAS9ogNeTvlVcENz0YoaihAX9vvCY4f9ngCPUbjSNAsjHFfhsAAAAASUVORK5CYII="; - - /// - /// The template for branch coverage badge in PNG format. - /// - private const string BranchCoveragePngTemplate = "iVBORw0KGgoAAAANSUhEUgAAAJsAAAAUCAMAAACtWb+zAAAB+1BMVEU+Pj4BpQFOTk49PT0StRIBpAFJSUkAqgBNTU0Psw9PT08StRJLS0s/Pz89PT1NTU1JSUkNsQ1BQUEKrgoHqwcEqARPT08CpgIApABFRUVDQ0NHR0cPsg8MrwwJrAkGqQYRtBEQsxAStRLJERG4AAC+Bga8BATACAjFDg7HEBC5AgLGDw+6AwM1NTXDDAz////CCwvBCgrEDQ2Dg4M3NzfV1dRYWFgyMjLe3t7d3d2lpaVbW1tVVVU7Ozvj4+PPz8/Ly8vBwcGgoKBoaGhSUlJQUFDy8vHn5+b55eW9vb22trazs7N6Ojr2IiLlERHdCQn6+vrY2NiUlJTji4txcXFfX19KTkozuTMqmSr6KirJKir7JibyHR3uGRnpFRXhDQ3YBATUAADu7u7q6urGx8a6urq4uLisrKyqqqp6enrTZGM3yDctpi319vT77+/s7evg4ODa2trR0dHz0NDwxMTppKSZmZmQkJDfhIR2dnbcbW1jY2PWWVl0NjbOMzNvMTEwrzDHJibKICCTSx+ITha/FRX8/Pz88/Pyycnuvr6wsLCKiop+fn5vzm9ms2bUSUlBUUE8pTw3lzc1wjUoiyiBRBL33t7O2c3qsbHrra3jk5PeeHjZcnJiYmLSUFDNRkZEVURCiEI+oz48pDw3izajNjaPHx/sHh7TBQUJLNt4AAAADHRSTlPm5YqJiYgHBufn5ub2Cs1oAAADMklEQVRIx83OV1vTUBjA8bhX08ao6DnHrUgdIUKTdO/dotJFFTd7b9kgMpQNAu69/ZhmlSD2wlR4Hn8X7/ucN7n4Yzu37s3bHGeyOP3X9m3fhW3VbZZsbSdV2I7t1sk0Go+u7NMGtp3P4pQKezDNKjdd9bnxaZlmo1wU9IcmRy8qjqqRaSM04dLmucbGDYzTC0KjiTd6ff9kQi/arwYmpxHVzYG5dDq9vPzlt7iU/9/auhKdC/rR58NdCzm0ESJNpKJ1vml8fGQknV4qI2T+aIU5wHqJ3BQLhulXxcXnQ4Odw+Izl7Zoa3D++rP798abmppGlghZjQsy1GwfQfg4QpGXImQaq1XcVpuyFIWCcvoBP/vpRKHomBoYEtjY4IuvfNq1u2PXeR+RdH2cx0+cJKKOGMtZm/0IVc0gi8nVNoDC02xpKhAzmznEsSZzYAa9i7naatEalwV8Gz976cHLogNqSG2AczoahLSrd8ZWVhaRJFkJxW1wMpQnCsI9iKsA9VUMMxtGNVU2BtkpqrYbRTwUVW1ATi/DmL1IUSTg24qKBp+0TBSJ1LUBEbTJabdvjS0CWbJS2rU9AAyYQZIF3RZgaXe7XTFQY4AAdTtNlRbgsAJQbSBK3W530AAUBYJH9FQiRD95XyA5rgYGJN8zaVdufgMy/2OruOviAHjNgAx6TRywWHw+PwEifEVPh46Ke4BjQGrjfD4d+rONpltelxfIDqqBQcnDn5m0GyVQRkZcfggNffUdCFrqIIyzLhImTToSemHEAKGnjkQ1Hjgd9SXbDNAVJ0nOBhX5gkd0S0Nh/iq1bXLcNSUtA48GTAE2pa11xJwIQl1pPYTaeCtbYRHbbJVmh9MDUTgYdtZDf4fDFEytbyunX+avcUINjMx4eFVKI9egjITdiJOUHfKTxI12/sYYCYrhT/yb0lFGhsT50W7lv4p/Kc4Jpno7P5xTHFJDaSOHfqymKXBcngrlhWuF2dfuNtVp5fv6ttBE79uc23DF0JUbJbh6Wp+XoLLcLwkaQl0TlxSH1cDWxpUM4bmw27XZzheyUJO2Bdum3Sxnsziiwg5s5zZMK/rP2rbs2PULwDaL24J71s4AAAAASUVORK5CYII="; - - /// - /// The template for method coverage badge in PNG format. - /// - private const string MethodCoveragePngTemplate = "iVBORw0KGgoAAAANSUhEUgAAAJsAAAAUCAMAAACtWb+zAAAB3VBMVEU+Pj4BpQE9PT0StRIBpAFJSUkAqgBNTU0Psw9PT08StRJPT09OTk5AQEBLS0s9PT1OTk5JSUkOsg4MsAwKrgoHqwcEqARNTU1CQkJEREQApAD///8JrAkGqQYDpgMRtBEQsxACpQIStRLIEBBGRkZHR0e5AQHFDQ1ISEjJEhK+Bga3AADBCQm8BAQ1NTXGDw/DCwve3t5RUVG6AwPRz883NzfLv7/7KCi/CAi3t7dcXFypQ0MyMjL7+/tVVVU7Ozvm5ubi4uLa2trBwcGzs7OlpaWhoaGpVlb19vXt7e3b19fT09O7u7uVlZWCgoJiYmJXV1f2IiLuGRnlERHdCQnUAQHV1dW4nJxxcXFZWVlKTkryHR3pFRXhDQ3YBATz8/Px8fDq6urg4ODKysrGx8a9vb2/qqqpqamuf397e3t3d3esdXVnZ2c8pDw3yDcrmivMzMysrKybm5uQkJCEhISAgICqbW1ra2tCUkKrPT18Ozt5OTkzujMxtDEvrC8tpS0ojSiIThbNw8OwsLC1lJSKiopqwGrPY188ijw3lzd0Nzc1wjVxNDRtMDCwIyO2FRWBRBLO2c3JvLzBrq6urq6wh4dx1XFkrGSpYWGjNjasNDSXSSSTTB+PHx+QTRwn1+yJAAAADXRSTlPm5YmJiAcG5+fm5oqKkukDfQAAA0dJREFUSMe11Gd30lAYwPG4Z4C4uFfcJhIRIokJQti7bFyU1tG9a+2wSzvde+/1Wb23JE318MJb29+L5LlP8uJ/OJxQW3btsKyP03Wc+Gc7N22ldlt0Vqt1TdtO1nGUwCZqm1VjMo1amp9Y1069tmMEtlOmZXFb582hm82mtXJWM/3A0/tKm/eQ0NsYU1ew4dPQ0BrG2bFvH7MNjf7GhnsDr/BxNW0Mk29ofTQ7M/P8+Z9xqvQ/bel3tu60HUu/D3ZPk7YxS0y+1syj+cXFudnZmafNjEZKZMSW3CSzOqjIM2E3THjs9r0ktLZEJvJ54c2VG4vz83NzTxmNrwMoQl8/imxiDBZVn0xqba+GGKwJ3wxut9tmQ7+bG0t322SP203WxmOhSuTtE5R2+fqvW8gUX9sGLRzP04BJRLO5stoi8XznQz4pdrSX+K77laDaEhPFJr5cEcXWh3wp1tE+wq+A27Cl/1vkgd+P2vaRoDgMluXoY5x26dqPhYUprqbaBjmsKCtCKgG7xrhyhu3rVJTxPOfrDClcWBA+jHK+lCDki5w8qSixQc7gdDptmsZpdPB7nE6yNhaDMKSlXbz6fYrVVNtq95Exli2JbLXCjiZhMhaPd2RZ3ziAXEEW21JsVGXZfJEJxuPxSJE1rGhDY63tEAkK1vzU0y6c/wo1UlCFWE8BwsEYpCODYhNMJiVJYqDvNoRjOYtQSMFoCULcVpYkCwcNXq9Xb/Nifo/Xu5+E3vbyip52/g7UgMSwBGGxvy/Hw2QPhIXcMA2rooUGk0ttqR7A+1LwfkKqto+D4QJNl0PQ4HA49DYH5vc4HGRtQPPysp4GltGJVvQNKZlHolmZA8Aa7AfAXMhUMknguw1AqE2MyinA5SNdch+Q5KgYKQHD321fUNthEhTQvbikpRloIcCEAzQQwhBdAR0Io6USYAQFrfBjqxBQ8FtKTMVP8VsGl8vVq7WhMZ2V0y7XARIUvezFRZR2lyZhxpf+WFzsQdPfXNhArc0vZyfQibTN8OwCSiNnlgYZoc7+XA2uu9c+8HrpcIQEtTLu7jN6NcJhc731KV2vrfe1Nh4nsIHaaF4vp+o4SGAztWUjZV4fZ+r497INm7f+BiZYjIrB4yPmAAAAAElFTkSuQmCC"; - /// /// Colors for ShiedsIo badges. /// @@ -322,30 +301,6 @@ public void CreateSummaryReport(SummaryResult summaryResult) File.WriteAllText( targetPath, this.CreateSvgBadge(summaryResult, true, true, true)); - - targetPath = Path.Combine(targetDirectory, "badge_linecoverage.png"); - - Logger.InfoFormat(Resources.WritingReportFile, targetPath); - - File.WriteAllBytes( - targetPath, - this.CreatePngBadge(summaryResult.CoverageQuota, LineCoveragePngTemplate)); - - targetPath = Path.Combine(targetDirectory, "badge_branchcoverage.png"); - - Logger.InfoFormat(Resources.WritingReportFile, targetPath); - - File.WriteAllBytes( - targetPath, - this.CreatePngBadge(summaryResult.BranchCoverageQuota, BranchCoveragePngTemplate)); - - targetPath = Path.Combine(targetDirectory, "badge_methodcoverage.png"); - - Logger.InfoFormat(Resources.WritingReportFile, targetPath); - - File.WriteAllBytes( - targetPath, - this.CreatePngBadge(summaryResult.CodeElementCoverageQuota, MethodCoveragePngTemplate)); } /// @@ -424,43 +379,5 @@ private string CreateShieldsIoSvgBadge(decimal? coverage, string backgroundColor wide ? "330" : "250", text); } - - /// - /// Renderes the PNG. - /// - /// The coverage. - /// The template to use. - /// The rendered PNG. - private byte[] CreatePngBadge(decimal? coverage, string template) - { - string text = "N/A"; - - if (coverage.HasValue) - { - coverage = Math.Floor(coverage.Value); - text = $"{coverage.Value.ToString(CultureInfo.InvariantCulture)}%"; - } - - using (var ms = new MemoryStream(Convert.FromBase64String(template))) - using (var image = Image.Load(ms)) - using (MemoryStream output = new MemoryStream()) - { - Font font = null; - - try - { - font = SystemFonts.CreateFont("Arial", 12, FontStyle.Regular); - } - catch (FontFamilyNotFoundException) - { - throw new InvalidOperationException(Resources.ErrorFontNotFound); - } - - image.Mutate(ctx => ctx.DrawText(text, font, Color.White, new PointF(113, 3))); - - image.Save(output, new PngEncoder()); - return output.ToArray(); - } - } } } \ No newline at end of file diff --git a/src/ReportGenerator.Core/Reporting/Builders/HtmlChartReportBuilder.cs b/src/ReportGenerator.Core/Reporting/Builders/HtmlChartReportBuilder.cs index bb049e7d..11ce0447 100644 --- a/src/ReportGenerator.Core/Reporting/Builders/HtmlChartReportBuilder.cs +++ b/src/ReportGenerator.Core/Reporting/Builders/HtmlChartReportBuilder.cs @@ -49,7 +49,7 @@ public override void CreateSummaryReport(IHtmlRenderer reportRenderer, SummaryRe var historicCoverages = HistoricCoverages.GetOverallHistoricCoverages(this.ReportContext.OverallHistoricCoverages); if (historicCoverages.Any(h => h.CoverageQuota.HasValue || h.BranchCoverageQuota.HasValue)) { - reportRenderer.Chart(historicCoverages, this.ReportContext.Settings.RenderPngFallBackImagesForHistoryCharts, proVersion); + reportRenderer.Chart(historicCoverages, proVersion); } reportRenderer.CustomSummary(summaryResult.Assemblies, new List(), summaryResult.SupportsBranchCoverage, true); diff --git a/src/ReportGenerator.Core/Reporting/Builders/HtmlReportBuilderBase.cs b/src/ReportGenerator.Core/Reporting/Builders/HtmlReportBuilderBase.cs index 09f9d221..08548072 100644 --- a/src/ReportGenerator.Core/Reporting/Builders/HtmlReportBuilderBase.cs +++ b/src/ReportGenerator.Core/Reporting/Builders/HtmlReportBuilderBase.cs @@ -149,7 +149,7 @@ public virtual void CreateClassReport(IHtmlRenderer reportRenderer, Class @class if (@class.HistoricCoverages.Any(h => h.CoverageQuota.HasValue || h.BranchCoverageQuota.HasValue || h.CodeElementCoverageQuota.HasValue)) { reportRenderer.Header(ReportResources.History); - reportRenderer.Chart(@class.HistoricCoverages, this.ReportContext.Settings.RenderPngFallBackImagesForHistoryCharts, proVersion); + reportRenderer.Chart(@class.HistoricCoverages, proVersion); } if (@class.Files.Any(f => f.MethodMetrics.Any())) @@ -314,7 +314,7 @@ public virtual void CreateSummaryReport(IHtmlRenderer reportRenderer, SummaryRes if (historicCoverages.Any(h => h.CoverageQuota.HasValue || h.BranchCoverageQuota.HasValue || h.CodeElementCoverageQuota.HasValue)) { reportRenderer.Header(ReportResources.History); - reportRenderer.Chart(historicCoverages, this.ReportContext.Settings.RenderPngFallBackImagesForHistoryCharts, proVersion); + reportRenderer.Chart(historicCoverages, proVersion); } var sumableMetrics = summaryResult.SumableMetrics; diff --git a/src/ReportGenerator.Core/Reporting/Builders/PngChartReportBuilder.cs b/src/ReportGenerator.Core/Reporting/Builders/PngChartReportBuilder.cs index eff17ac2..dbf583db 100644 --- a/src/ReportGenerator.Core/Reporting/Builders/PngChartReportBuilder.cs +++ b/src/ReportGenerator.Core/Reporting/Builders/PngChartReportBuilder.cs @@ -1,19 +1,14 @@ using System; using System.Collections.Generic; -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; -using Palmmedia.ReportGenerator.Core.Reporting.Builders.Rendering; namespace Palmmedia.ReportGenerator.Core.Reporting.Builders { /// /// Creates history chart in PNG format. /// + [Obsolete("PngChart was replaced by SvgChart")] public class PngChartReportBuilder : IReportBuilder { /// @@ -57,65 +52,7 @@ public void CreateSummaryReport(SummaryResult summaryResult) throw new ArgumentNullException(nameof(summaryResult)); } - bool proVersion = this.ReportContext.ReportConfiguration.License.DetermineLicenseType() == LicenseType.Pro; - - var historicCoverages = HistoricCoverages.GetOverallHistoricCoverages(this.ReportContext.OverallHistoricCoverages); - - var filteredHistoricCoverages = this.FilterHistoricCoverages(historicCoverages, 100); - - if (filteredHistoricCoverages.Any(h => h.CoverageQuota.HasValue || h.BranchCoverageQuota.HasValue)) - { - byte[] image = PngHistoryChartRenderer.RenderHistoryChart(filteredHistoricCoverages, proVersion); - - 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, "CoverageHistory.png"); - - Logger.InfoFormat(Resources.WritingReportFile, targetPath); - - File.WriteAllBytes(targetPath, image); - } - } - - /// - /// Filters the historic coverages (equal elements are removed). - /// - /// The historic coverages. - /// The maximum. - /// The filtered historic coverages. - private List FilterHistoricCoverages(IEnumerable historicCoverages, int maximum) - { - var result = new List(); - - foreach (var historicCoverage in historicCoverages) - { - if (result.Count == 0 || !result[result.Count - 1].Equals(historicCoverage)) - { - result.Add(historicCoverage); - } - } - - result.RemoveRange(0, Math.Max(0, result.Count - maximum)); - - return result; + Logger.Warn("Report type 'PngChart' is no longer supported. Please use 'SvgChart' instead."); } } } \ No newline at end of file diff --git a/src/ReportGenerator.Core/Reporting/Builders/Rendering/HtmlRenderer.cs b/src/ReportGenerator.Core/Reporting/Builders/Rendering/HtmlRenderer.cs index b710e899..fac8730a 100644 --- a/src/ReportGenerator.Core/Reporting/Builders/Rendering/HtmlRenderer.cs +++ b/src/ReportGenerator.Core/Reporting/Builders/Rendering/HtmlRenderer.cs @@ -1010,7 +1010,7 @@ public void FinishTable() } /// - public void Chart(IEnumerable historicCoverages, bool renderPngFallBackImage, bool methodCoverageAvailable) + public void Chart(IEnumerable historicCoverages, bool methodCoverageAvailable) { if (historicCoverages == null) { @@ -1021,21 +1021,12 @@ public void Chart(IEnumerable historicCoverages, bool renderPn string id = Guid.NewGuid().ToString("N"); - if (renderPngFallBackImage || this.htmlMode == HtmlMode.InlineCssAndJavaScript) - { - byte[] pngHistory = PngHistoryChartRenderer.RenderHistoryChart(filteredHistoricCoverages, methodCoverageAvailable); + string svgHistory = SvgHistoryChartRenderer.RenderHistoryChart(filteredHistoricCoverages, methodCoverageAvailable); - this.reportTextWriter.WriteLine( - "
", - id, - Convert.ToBase64String(pngHistory)); - } - else - { - this.reportTextWriter.WriteLine( - "
", - id); - } + this.reportTextWriter.WriteLine( + "
{1}
", + id, + svgHistory); var series = new StringBuilder(); series.Append("["); diff --git a/src/ReportGenerator.Core/Reporting/Builders/Rendering/IHtmlRenderer.cs b/src/ReportGenerator.Core/Reporting/Builders/Rendering/IHtmlRenderer.cs index 7f5601fc..6480ef63 100644 --- a/src/ReportGenerator.Core/Reporting/Builders/Rendering/IHtmlRenderer.cs +++ b/src/ReportGenerator.Core/Reporting/Builders/Rendering/IHtmlRenderer.cs @@ -131,9 +131,8 @@ public interface IHtmlRenderer /// Renderes a chart with the given historic coverages. ///
/// The historic coverages. - /// Indicates whether PNG images are rendered as a fallback. /// if set to true method coverage is available. - void Chart(IEnumerable historicCoverages, bool renderPngFallBackImage, bool methodCoverageAvailable); + void Chart(IEnumerable historicCoverages, bool methodCoverageAvailable); /// /// Start of risk hotspots section. diff --git a/src/ReportGenerator.Core/Reporting/Builders/Rendering/PngHistoryChartRenderer.cs b/src/ReportGenerator.Core/Reporting/Builders/Rendering/PngHistoryChartRenderer.cs deleted file mode 100644 index c4e22c1a..00000000 --- a/src/ReportGenerator.Core/Reporting/Builders/Rendering/PngHistoryChartRenderer.cs +++ /dev/null @@ -1,204 +0,0 @@ -using System.Collections.Generic; -using System.IO; -using System.Linq; -using Palmmedia.ReportGenerator.Core.Parser.Analysis; -using SixLabors.Fonts; -using SixLabors.ImageSharp; -using SixLabors.ImageSharp.Drawing; -using SixLabors.ImageSharp.Drawing.Processing; -using SixLabors.ImageSharp.Formats.Png; -using SixLabors.ImageSharp.PixelFormats; -using SixLabors.ImageSharp.Processing; - -namespace Palmmedia.ReportGenerator.Core.Reporting.Builders.Rendering -{ - /// - /// Renderes history chart in PNG format. - /// - internal class PngHistoryChartRenderer - { - /// - /// Renderes the given historic coverages as PNG image. - /// - /// The historic coverages. - /// if set to true method coverage is available. - /// The image in PNG format. - public static byte[] RenderHistoryChart(IReadOnlyList historicCoverages, bool methodCoverageAvailable) - { - using (Image image = new Image(1450, 150)) - using (MemoryStream output = new MemoryStream()) - { - var grayPen = Pens.Dash(Color.LightGray, 1); - var redPen = Pens.Solid(Color.ParseHex("cc0000"), 2); - var bluePen = Pens.Solid(Color.ParseHex("1c2298"), 2); - var greenPen = Pens.Solid(Color.ParseHex("0aad0a"), 2); - - var redBrush = Brushes.Solid(Color.ParseHex("cc0000")); - var blueBrush = Brushes.Solid(Color.ParseHex("1c2298")); - var greenBrush = Brushes.Solid(Color.ParseHex("0aad0a")); - - int numberOfLines = historicCoverages.Count; - - if (numberOfLines == 1) - { - numberOfLines = 2; - } - - float totalWidth = 1445 - 50; - float width = totalWidth / (numberOfLines - 1); - - float totalHeight = 115 - 15; - - image.Mutate(ctx => - { - ctx.Fill(Color.White); - - ctx.DrawLines(grayPen, new PointF(50, 115), new PointF(1445, 115)); - ctx.DrawLines(grayPen, new PointF(50, 90), new PointF(1445, 90)); - ctx.DrawLines(grayPen, new PointF(50, 65), new PointF(1445, 65)); - ctx.DrawLines(grayPen, new PointF(50, 40), new PointF(1445, 40)); - ctx.DrawLines(grayPen, new PointF(50, 15), new PointF(1445, 15)); - - for (int i = 0; i < numberOfLines; i++) - { - ctx.DrawLines(grayPen, new PointF(50 + (i * width), 15), new PointF(50 + (i * width), 115)); - } - - if (historicCoverages.Any(h => h.CoverageQuota.HasValue)) - { - for (int i = 1; i < historicCoverages.Count; i++) - { - if (!historicCoverages[i - 1].CoverageQuota.HasValue - || !historicCoverages[i].CoverageQuota.HasValue) - { - continue; - } - - float x1 = 50 + ((i - 1) * width); - float y1 = 15 + (((100 - (float)historicCoverages[i - 1].CoverageQuota.Value) * totalHeight) / 100); - - float x2 = 50 + (i * width); - float y2 = 15 + (((100 - (float)historicCoverages[i].CoverageQuota.Value) * totalHeight) / 100); - - ctx.DrawLines(redPen, new PointF(x1, y1), new PointF(x2, y2)); - } - } - - if (historicCoverages.Any(h => h.BranchCoverageQuota.HasValue)) - { - for (int i = 1; i < historicCoverages.Count; i++) - { - if (!historicCoverages[i - 1].BranchCoverageQuota.HasValue - || !historicCoverages[i].BranchCoverageQuota.HasValue) - { - continue; - } - - float x1 = 50 + ((i - 1) * width); - float y1 = 15 + (((100 - (float)historicCoverages[i - 1].BranchCoverageQuota.Value) * totalHeight) / 100); - - float x2 = 50 + (i * width); - float y2 = 15 + (((100 - (float)historicCoverages[i].BranchCoverageQuota.Value) * totalHeight) / 100); - - ctx.DrawLines(bluePen, new PointF(x1, y1), new PointF(x2, y2)); - } - } - - if (methodCoverageAvailable && historicCoverages.Any(h => h.CodeElementCoverageQuota.HasValue)) - { - for (int i = 1; i < historicCoverages.Count; i++) - { - if (!historicCoverages[i - 1].CodeElementCoverageQuota.HasValue - || !historicCoverages[i].CodeElementCoverageQuota.HasValue) - { - continue; - } - - float x1 = 50 + ((i - 1) * width); - float y1 = 15 + (((100 - (float)historicCoverages[i - 1].CodeElementCoverageQuota.Value) * totalHeight) / 100); - - float x2 = 50 + (i * width); - float y2 = 15 + (((100 - (float)historicCoverages[i].CodeElementCoverageQuota.Value) * totalHeight) / 100); - - ctx.DrawLines(greenPen, new PointF(x1, y1), new PointF(x2, y2)); - } - } - - for (int i = 0; i < historicCoverages.Count; i++) - { - if (!historicCoverages[i].CoverageQuota.HasValue) - { - continue; - } - - float x1 = 50 + (i * width); - float y1 = 15 + (((100 - (float)historicCoverages[i].CoverageQuota.Value) * totalHeight) / 100); - - ctx.Fill(redBrush, new EllipsePolygon(x1, y1, 3)); - } - - for (int i = 0; i < historicCoverages.Count; i++) - { - if (!historicCoverages[i].BranchCoverageQuota.HasValue) - { - continue; - } - - float x1 = 50 + (i * width); - float y1 = 15 + (((100 - (float)historicCoverages[i].BranchCoverageQuota.Value) * totalHeight) / 100); - - ctx.Fill(blueBrush, new EllipsePolygon(x1, y1, 3)); - } - - if (methodCoverageAvailable) - { - for (int i = 0; i < historicCoverages.Count; i++) - { - if (!historicCoverages[i].CodeElementCoverageQuota.HasValue) - { - continue; - } - - float x1 = 50 + (i * width); - float y1 = 15 + (((100 - (float)historicCoverages[i].CodeElementCoverageQuota.Value) * totalHeight) / 100); - - ctx.Fill(greenBrush, new EllipsePolygon(x1, y1, 3)); - } - } - - try - { - var font = SystemFonts.CreateFont("Arial", 11, FontStyle.Regular); - - TextOptions options = new TextOptions(font) - { - HorizontalAlignment = HorizontalAlignment.Right - }; - - options.Origin = new PointF(38, 5); - ctx.DrawText(options, "100", Color.Gray); - - options.Origin = new PointF(38, 30); - ctx.DrawText(options, "75", Color.Gray); - - options.Origin = new PointF(38, 55); - ctx.DrawText(options, "50", Color.Gray); - - options.Origin = new PointF(38, 80); - ctx.DrawText(options, "25", Color.Gray); - - options.Origin = new PointF(38, 1055); - ctx.DrawText(options, "0", Color.Gray); - } - catch (FontFamilyNotFoundException) - { - // Font 'Arial' may not be present on Linux - } - }); - - image.Save(output, new PngEncoder()); - return output.ToArray(); - } - } - } -} diff --git a/src/ReportGenerator.Core/Reporting/Builders/Rendering/SvgHistoryChartRenderer.cs b/src/ReportGenerator.Core/Reporting/Builders/Rendering/SvgHistoryChartRenderer.cs new file mode 100644 index 00000000..bef6ec28 --- /dev/null +++ b/src/ReportGenerator.Core/Reporting/Builders/Rendering/SvgHistoryChartRenderer.cs @@ -0,0 +1,242 @@ +using System.Collections.Generic; +using System.Globalization; +using System.Linq; +using System.Text; +using Palmmedia.ReportGenerator.Core.Parser.Analysis; + +namespace Palmmedia.ReportGenerator.Core.Reporting.Builders.Rendering +{ + /// + /// Renderes history chart in SVG format. + /// + internal class SvgHistoryChartRenderer + { + /// + /// Renderes the given historic coverages as SVG image. + /// + /// The historic coverages. + /// if set to true method coverage is available. + /// The image in SVG format. + public static string RenderHistoryChart(IReadOnlyList historicCoverages, bool methodCoverageAvailable) + { + var sb = new StringBuilder(@" + +Coverage history + + + + + + + + + + + + + + 0 + 25 + 50 + 75 + 100 +"); + + int numberOfLines = historicCoverages.Count; + + if (numberOfLines == 1) + { + numberOfLines = 2; + } + + float totalWidth = 1190 - 50; + float width = totalWidth / (numberOfLines - 1); + + float totalHeight = 115 - 15; + + if (historicCoverages.Any(h => h.CoverageQuota.HasValue)) + { + sb.AppendLine(""); + + sb.Append(""); + + for (int i = 0; i < historicCoverages.Count; i++) + { + if (!historicCoverages[i].CoverageQuota.HasValue) + { + continue; + } + + float x = 50 + (i * width); + float y = 15 + (((100 - (float)historicCoverages[i].CoverageQuota.Value) * totalHeight) / 100); + + sb.AppendFormat( + "", + x.ToString("F3", CultureInfo.InvariantCulture), + (x + 0.01f).ToString("F3", CultureInfo.InvariantCulture), + y.ToString("F3", CultureInfo.InvariantCulture)); + } + + sb.AppendLine(""); + } + + if (historicCoverages.Any(h => h.BranchCoverageQuota.HasValue)) + { + sb.AppendLine(""); + + sb.Append(""); + + for (int i = 0; i < historicCoverages.Count; i++) + { + if (!historicCoverages[i].BranchCoverageQuota.HasValue) + { + continue; + } + + float x = 50 + (i * width); + float y = 15 + (((100 - (float)historicCoverages[i].BranchCoverageQuota.Value) * totalHeight) / 100); + + sb.AppendFormat( + "", + x.ToString("F3", CultureInfo.InvariantCulture), + (x + 0.01f).ToString("F3", CultureInfo.InvariantCulture), + y.ToString("F3", CultureInfo.InvariantCulture)); + } + + sb.AppendLine(""); + } + + if (methodCoverageAvailable && historicCoverages.Any(h => h.CodeElementCoverageQuota.HasValue)) + { + sb.AppendLine(""); + + sb.Append(""); + + for (int i = 0; i < historicCoverages.Count; i++) + { + if (!historicCoverages[i].CodeElementCoverageQuota.HasValue) + { + continue; + } + + float x = 50 + (i * width); + float y = 15 + (((100 - (float)historicCoverages[i].CodeElementCoverageQuota.Value) * totalHeight) / 100); + + sb.AppendFormat( + "", + x.ToString("F3", CultureInfo.InvariantCulture), + (x + 0.01f).ToString("F3", CultureInfo.InvariantCulture), + y.ToString("F3", CultureInfo.InvariantCulture)); + } + + sb.AppendLine(""); + } + + sb.AppendLine(""); + + return sb.ToString(); + } + } +} diff --git a/src/ReportGenerator.Core/Reporting/Builders/Rendering/resources/custom-azurepipelines.css b/src/ReportGenerator.Core/Reporting/Builders/Rendering/resources/custom-azurepipelines.css index f11301d8..1fca3875 100644 --- a/src/ReportGenerator.Core/Reporting/Builders/Rendering/resources/custom-azurepipelines.css +++ b/src/ReportGenerator.Core/Reporting/Builders/Rendering/resources/custom-azurepipelines.css @@ -147,6 +147,7 @@ a.percentagebar { .toggleZoom { text-align:right; } +.historychart svg { max-width: 100%; } .ct-chart { position: relative; } .ct-chart .ct-line { stroke-width: 2px !important; } .ct-chart .ct-point { stroke-width: 6px !important; transition: stroke-width .2s; } diff --git a/src/ReportGenerator.Core/Reporting/Builders/Rendering/resources/custom-azurepipelines_adaptive.css b/src/ReportGenerator.Core/Reporting/Builders/Rendering/resources/custom-azurepipelines_adaptive.css index d0cfc0fa..2f21a054 100644 --- a/src/ReportGenerator.Core/Reporting/Builders/Rendering/resources/custom-azurepipelines_adaptive.css +++ b/src/ReportGenerator.Core/Reporting/Builders/Rendering/resources/custom-azurepipelines_adaptive.css @@ -30,7 +30,7 @@ .lightgreen {background-color: #406540; } .lightorange { background-color: #ab7f36; } .lightred { background-color: #954848; } - .ct-label { color: #fff !important; } + .ct-label { color: #fff !important; fill: #fff !important; } .ct-grid{ stroke:#fff !important; } .ct-chart .ct-series.ct-series-a .ct-line, .ct-chart .ct-series.ct-series-a .ct-point { stroke: #0078D4 !important; } .ct-chart .ct-series.ct-series-b .ct-line, .ct-chart .ct-series.ct-series-b .ct-point { stroke: #6dc428 !important; } diff --git a/src/ReportGenerator.Core/Reporting/Builders/Rendering/resources/custom-azurepipelines_dark.css b/src/ReportGenerator.Core/Reporting/Builders/Rendering/resources/custom-azurepipelines_dark.css index f0bdaa5b..1ddb4559 100644 --- a/src/ReportGenerator.Core/Reporting/Builders/Rendering/resources/custom-azurepipelines_dark.css +++ b/src/ReportGenerator.Core/Reporting/Builders/Rendering/resources/custom-azurepipelines_dark.css @@ -29,7 +29,7 @@ .lightgreen {background-color: #406540; } .lightorange { background-color: #ab7f36; } .lightred { background-color: #954848; } - .ct-label { color: #fff !important; } + .ct-label { color: #fff !important; fill: #fff !important; } .ct-grid{ stroke:#fff !important; } .ct-chart .ct-series.ct-series-a .ct-line, .ct-chart .ct-series.ct-series-a .ct-point { stroke: #0078D4 !important; } .ct-chart .ct-series.ct-series-b .ct-line, .ct-chart .ct-series.ct-series-b .ct-point { stroke: #6dc428 !important; } diff --git a/src/ReportGenerator.Core/Reporting/Builders/Rendering/resources/custom.css b/src/ReportGenerator.Core/Reporting/Builders/Rendering/resources/custom.css index 3f0896bb..0d256e3c 100644 --- a/src/ReportGenerator.Core/Reporting/Builders/Rendering/resources/custom.css +++ b/src/ReportGenerator.Core/Reporting/Builders/Rendering/resources/custom.css @@ -156,6 +156,7 @@ code { font-family: Consolas, monospace; font-size: 0.9em; } .toggleZoom { text-align:right; } +.historychart svg { max-width: 100%; } .ct-chart { position: relative; } .ct-chart .ct-line { stroke-width: 2px !important; } .ct-chart .ct-point { stroke-width: 6px !important; transition: stroke-width .2s; } diff --git a/src/ReportGenerator.Core/Reporting/Builders/Rendering/resources/custom_adaptive.css b/src/ReportGenerator.Core/Reporting/Builders/Rendering/resources/custom_adaptive.css index ee61a558..5a0974a3 100644 --- a/src/ReportGenerator.Core/Reporting/Builders/Rendering/resources/custom_adaptive.css +++ b/src/ReportGenerator.Core/Reporting/Builders/Rendering/resources/custom_adaptive.css @@ -163,6 +163,7 @@ .ct-label { color: #fff !important; + fill: #fff !important; } .ct-grid { diff --git a/src/ReportGenerator.Core/Reporting/Builders/Rendering/resources/custom_dark.css b/src/ReportGenerator.Core/Reporting/Builders/Rendering/resources/custom_dark.css index 3c987197..07145684 100644 --- a/src/ReportGenerator.Core/Reporting/Builders/Rendering/resources/custom_dark.css +++ b/src/ReportGenerator.Core/Reporting/Builders/Rendering/resources/custom_dark.css @@ -162,6 +162,7 @@ .ct-label { color: #fff !important; + fill: #fff !important; } .ct-grid { diff --git a/src/ReportGenerator.Core/Reporting/Builders/SvgChartReportBuilder.cs b/src/ReportGenerator.Core/Reporting/Builders/SvgChartReportBuilder.cs new file mode 100644 index 00000000..317f9a8b --- /dev/null +++ b/src/ReportGenerator.Core/Reporting/Builders/SvgChartReportBuilder.cs @@ -0,0 +1,121 @@ +using System; +using System.Collections.Generic; +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; +using Palmmedia.ReportGenerator.Core.Reporting.Builders.Rendering; + +namespace Palmmedia.ReportGenerator.Core.Reporting.Builders +{ + /// + /// Creates history chart in SVG format. + /// + public class SvgChartReportBuilder : IReportBuilder + { + /// + /// The Logger. + /// + private static readonly ILogger Logger = LoggerFactory.GetLogger(typeof(SvgChartReportBuilder)); + + /// + /// Gets the report type. + /// + /// + /// The report type. + /// + public string ReportType => "SvgChart"; + + /// + /// Gets or sets the report configuration. + /// + /// + /// The report configuration. + /// + 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)); + } + + bool proVersion = this.ReportContext.ReportConfiguration.License.DetermineLicenseType() == LicenseType.Pro; + + var historicCoverages = HistoricCoverages.GetOverallHistoricCoverages(this.ReportContext.OverallHistoricCoverages); + + var filteredHistoricCoverages = this.FilterHistoricCoverages(historicCoverages, 100); + + if (filteredHistoricCoverages.Any(h => h.CoverageQuota.HasValue || h.BranchCoverageQuota.HasValue)) + { + string image = SvgHistoryChartRenderer.RenderHistoryChart(filteredHistoricCoverages, proVersion); + + 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, "CoverageHistory.svg"); + + Logger.InfoFormat(Resources.WritingReportFile, targetPath); + + File.WriteAllText(targetPath, image); + } + } + + /// + /// Filters the historic coverages (equal elements are removed). + /// + /// The historic coverages. + /// The maximum. + /// The filtered historic coverages. + private List FilterHistoricCoverages(IEnumerable historicCoverages, int maximum) + { + var result = new List(); + + foreach (var historicCoverage in historicCoverages) + { + if (result.Count == 0 || !result[result.Count - 1].Equals(historicCoverage)) + { + result.Add(historicCoverage); + } + } + + result.RemoveRange(0, Math.Max(0, result.Count - maximum)); + + return result; + } + } +} \ No newline at end of file diff --git a/src/ReportGenerator.Core/Settings.cs b/src/ReportGenerator.Core/Settings.cs index b3195732..c3f6b2ec 100644 --- a/src/ReportGenerator.Core/Settings.cs +++ b/src/ReportGenerator.Core/Settings.cs @@ -22,13 +22,6 @@ public class Settings /// public int MaximumNumberOfHistoricCoverageFiles { get; set; } = 100; - /// - /// Gets or sets a value indicating whether PNG images are rendered as a fallback for history charts. - /// Those images get displayed if JavaScript is disabled. - /// Rendering of the images takes quite a lot of time. - /// - public bool RenderPngFallBackImagesForHistoryCharts { get; set; } = false; - /// /// Gets or sets the caching duration of code files that are downloaded from remote servers in minutes. /// diff --git a/src/ReportGenerator.Core/appsettings.json b/src/ReportGenerator.Core/appsettings.json index 1d91a00c..cd4d5eed 100644 --- a/src/ReportGenerator.Core/appsettings.json +++ b/src/ReportGenerator.Core/appsettings.json @@ -13,7 +13,6 @@ "numberOfReportsParsedInParallel": 1, "numberOfReportsMergedInParallel": 1, "maximumNumberOfHistoricCoverageFiles": 100, - "renderPngFallBackImagesForHistoryCharts": false, "cachingDurationOfRemoteFilesInMinutes": 10080, "disableRiskHotspots": false, "excludeTestProjects": false,