diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0bc22303..3f991b4d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -7,7 +7,7 @@ env: buildPlatform: Any CPU buildConfiguration: Release version: 5.1.13 - dotnetSDKVersion: 7.0.101 + dotnetSDKVersion: 7.0.102 nodeVersion: 18 jobs: diff --git a/README.md b/README.md index 8581442a..fdb30c77 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@

-ReportGenerator +ReportGenerator
ReportGenerator

@@ -17,9 +17,12 @@ ReportGenerator *ReportGenerator* converts coverage reports generated by coverlet, OpenCover, dotCover, Visual Studio, NCover, Cobertura, JaCoCo, Clover, gcov or lcov into human readable reports in various formats. -The reports do not only show the coverage quota, but also include the source code and visualize which lines have been covered. +The reports show the coverage quotas and also visualize which lines of your source code have been covered. -*ReportGenerator* supports merging several reports into one. + +ReportGenerator supports merging several coverage files into a single report. + +[Browse example HTML report](https://reportgenerator.io/resources/reports/Html/index.html)
@@ -202,7 +205,7 @@ The above target could be simplified as: ## Supported input and output file formats *ReportGenerator* supports several input and output formats. -The wiki explains the different [output formats](https://github.com/danielpalme/ReportGenerator/wiki/Output-formats) or you can download [sample reports](https://danielpalme.github.io/ReportGenerator/resources/SampleReports.zip) of all formats. +The wiki explains the different [output formats](https://github.com/danielpalme/ReportGenerator/wiki/Output-formats) or you can download [sample reports](https://danielpalme.github.io/ReportGenerator/resources/SampleReports.zip) of all supported output formats. If you need a custom format, you can create a [plugin](https://github.com/danielpalme/ReportGenerator/wiki/Custom-reports). | **Input formats** | **Output formats** | @@ -212,18 +215,20 @@ If you need a custom format, you can create a [plugin](https://github.com/daniel ### Screenshots The screenshots show two snippets of the generated reports: - - Screenshot 1 + + Screenshot 1 - - Screenshot 2 + + Screenshot 2 **Badges** Badges in SVG and PNG format can be generated if `-reporttypes:Badges` is used: -![Sample badge](https://danielpalme.github.io/ReportGenerator/resources/badge.svg) +Example: ![Sample badge](https://danielpalme.github.io/ReportGenerator/resources/badge.svg) + +[See all badges](https://reportgenerator.io/resources/reports/Badges/index.html) ## Resources diff --git a/docs/404.html b/docs/404.html index df90e382..9471f5e0 100644 --- a/docs/404.html +++ b/docs/404.html @@ -21,5 +21,5 @@ h.appendChild(s); } - + \ No newline at end of file diff --git a/docs/contact.html b/docs/contact.html index 0f88f83e..43f12768 100644 --- a/docs/contact.html +++ b/docs/contact.html @@ -22,5 +22,5 @@ h.appendChild(s); } - + \ No newline at end of file diff --git a/docs/favicon.ico b/docs/favicon.ico index 8bb140f2..b68f7b53 100644 Binary files a/docs/favicon.ico and b/docs/favicon.ico differ diff --git a/docs/features.html b/docs/features.html new file mode 100644 index 00000000..a5ca3428 --- /dev/null +++ b/docs/features.html @@ -0,0 +1,26 @@ + + + ReportGenerator + + + + + + + + + + + \ No newline at end of file diff --git a/docs/getstarted.html b/docs/getstarted.html index 12ab4c9e..5563ef3d 100644 --- a/docs/getstarted.html +++ b/docs/getstarted.html @@ -22,5 +22,5 @@ h.appendChild(s); } - + \ No newline at end of file diff --git a/docs/index.html b/docs/index.html index 0367901b..8953f3eb 100644 --- a/docs/index.html +++ b/docs/index.html @@ -2,7 +2,7 @@ ReportGenerator - + @@ -22,5 +22,5 @@ h.appendChild(s); } - + \ No newline at end of file diff --git a/docs/main.6a1f288ef241becb.js b/docs/main.6a1f288ef241becb.js new file mode 100644 index 00000000..b3259ac0 --- /dev/null +++ b/docs/main.6a1f288ef241becb.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkReportGenerator_io=self.webpackChunkReportGenerator_io||[]).push([[179],{304:()=>{function he(e){return"function"==typeof e}function Ro(e){const n=e(r=>{Error.call(r),r.stack=(new Error).stack});return n.prototype=Object.create(Error.prototype),n.prototype.constructor=n,n}const fs=Ro(e=>function(n){e(this),this.message=n?`${n.length} errors occurred during unsubscription:\n${n.map((r,o)=>`${o+1}) ${r.toString()}`).join("\n ")}`:"",this.name="UnsubscriptionError",this.errors=n});function No(e,t){if(e){const n=e.indexOf(t);0<=n&&e.splice(n,1)}}class Et{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:n}=this;if(n)if(this._parentage=null,Array.isArray(n))for(const i of n)i.remove(this);else n.remove(this);const{initialTeardown:r}=this;if(he(r))try{r()}catch(i){t=i instanceof fs?i.errors:[i]}const{_finalizers:o}=this;if(o){this._finalizers=null;for(const i of o)try{Uf(i)}catch(s){t=t??[],s instanceof fs?t=[...t,...s.errors]:t.push(s)}}if(t)throw new fs(t)}}add(t){var n;if(t&&t!==this)if(this.closed)Uf(t);else{if(t instanceof Et){if(t.closed||t._hasParent(this))return;t._addParent(this)}(this._finalizers=null!==(n=this._finalizers)&&void 0!==n?n:[]).push(t)}}_hasParent(t){const{_parentage:n}=this;return n===t||Array.isArray(n)&&n.includes(t)}_addParent(t){const{_parentage:n}=this;this._parentage=Array.isArray(n)?(n.push(t),n):n?[n,t]:t}_removeParent(t){const{_parentage:n}=this;n===t?this._parentage=null:Array.isArray(n)&&No(n,t)}remove(t){const{_finalizers:n}=this;n&&No(n,t),t instanceof Et&&t._removeParent(this)}}Et.EMPTY=(()=>{const e=new Et;return e.closed=!0,e})();const Lf=Et.EMPTY;function Vf(e){return e instanceof Et||e&&"closed"in e&&he(e.remove)&&he(e.add)&&he(e.unsubscribe)}function Uf(e){he(e)?e():e.unsubscribe()}const Yn={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},hs={setTimeout(e,t,...n){const{delegate:r}=hs;return r?.setTimeout?r.setTimeout(e,t,...n):setTimeout(e,t,...n)},clearTimeout(e){const{delegate:t}=hs;return(t?.clearTimeout||clearTimeout)(e)},delegate:void 0};function Hf(e){hs.setTimeout(()=>{const{onUnhandledError:t}=Yn;if(!t)throw e;t(e)})}function jf(){}const Aw=Sl("C",void 0,void 0);function Sl(e,t,n){return{kind:e,value:t,error:n}}let Jn=null;function ps(e){if(Yn.useDeprecatedSynchronousErrorHandling){const t=!Jn;if(t&&(Jn={errorThrown:!1,error:null}),e(),t){const{errorThrown:n,error:r}=Jn;if(Jn=null,n)throw r}}else e()}class Ml extends Et{constructor(t){super(),this.isStopped=!1,t?(this.destination=t,Vf(t)&&t.add(this)):this.destination=kw}static create(t,n,r){return new gs(t,n,r)}next(t){this.isStopped?Al(function xw(e){return Sl("N",e,void 0)}(t),this):this._next(t)}error(t){this.isStopped?Al(function Tw(e){return Sl("E",void 0,e)}(t),this):(this.isStopped=!0,this._error(t))}complete(){this.isStopped?Al(Aw,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 Nw=Function.prototype.bind;function Il(e,t){return Nw.call(e,t)}class Fw{constructor(t){this.partialObserver=t}next(t){const{partialObserver:n}=this;if(n.next)try{n.next(t)}catch(r){ms(r)}}error(t){const{partialObserver:n}=this;if(n.error)try{n.error(t)}catch(r){ms(r)}else ms(t)}complete(){const{partialObserver:t}=this;if(t.complete)try{t.complete()}catch(n){ms(n)}}}class gs extends Ml{constructor(t,n,r){let o;if(super(),he(t)||!t)o={next:t??void 0,error:n??void 0,complete:r??void 0};else{let i;this&&Yn.useDeprecatedNextContext?(i=Object.create(t),i.unsubscribe=()=>this.unsubscribe(),o={next:t.next&&Il(t.next,i),error:t.error&&Il(t.error,i),complete:t.complete&&Il(t.complete,i)}):o=t}this.destination=new Fw(o)}}function ms(e){Yn.useDeprecatedSynchronousErrorHandling?function Rw(e){Yn.useDeprecatedSynchronousErrorHandling&&Jn&&(Jn.errorThrown=!0,Jn.error=e)}(e):Hf(e)}function Al(e,t){const{onStoppedNotification:n}=Yn;n&&hs.setTimeout(()=>n(e,t))}const kw={closed:!0,next:jf,error:function Pw(e){throw e},complete:jf},Tl="function"==typeof Symbol&&Symbol.observable||"@@observable";function er(e){return e}function Bf(e){return 0===e.length?er:1===e.length?e[0]:function(n){return e.reduce((r,o)=>o(r),n)}}let Se=(()=>{class e{constructor(n){n&&(this._subscribe=n)}lift(n){const r=new e;return r.source=this,r.operator=n,r}subscribe(n,r,o){const i=function Vw(e){return e&&e instanceof Ml||function Lw(e){return e&&he(e.next)&&he(e.error)&&he(e.complete)}(e)&&Vf(e)}(n)?n:new gs(n,r,o);return ps(()=>{const{operator:s,source:a}=this;i.add(s?s.call(i,a):a?this._subscribe(i):this._trySubscribe(i))}),i}_trySubscribe(n){try{return this._subscribe(n)}catch(r){n.error(r)}}forEach(n,r){return new(r=$f(r))((o,i)=>{const s=new gs({next:a=>{try{n(a)}catch(l){i(l),s.unsubscribe()}},error:i,complete:o});this.subscribe(s)})}_subscribe(n){var r;return null===(r=this.source)||void 0===r?void 0:r.subscribe(n)}[Tl](){return this}pipe(...n){return Bf(n)(this)}toPromise(n){return new(n=$f(n))((r,o)=>{let i;this.subscribe(s=>i=s,s=>o(s),()=>r(i))})}}return e.create=t=>new e(t),e})();function $f(e){var t;return null!==(t=e??Yn.Promise)&&void 0!==t?t:Promise}const Uw=Ro(e=>function(){e(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"});let mn=(()=>{class e extends Se{constructor(){super(),this.closed=!1,this.currentObservers=null,this.observers=[],this.isStopped=!1,this.hasError=!1,this.thrownError=null}lift(n){const r=new Gf(this,this);return r.operator=n,r}_throwIfClosed(){if(this.closed)throw new Uw}next(n){ps(()=>{if(this._throwIfClosed(),!this.isStopped){this.currentObservers||(this.currentObservers=Array.from(this.observers));for(const r of this.currentObservers)r.next(n)}})}error(n){ps(()=>{if(this._throwIfClosed(),!this.isStopped){this.hasError=this.isStopped=!0,this.thrownError=n;const{observers:r}=this;for(;r.length;)r.shift().error(n)}})}complete(){ps(()=>{if(this._throwIfClosed(),!this.isStopped){this.isStopped=!0;const{observers:n}=this;for(;n.length;)n.shift().complete()}})}unsubscribe(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null}get observed(){var n;return(null===(n=this.observers)||void 0===n?void 0:n.length)>0}_trySubscribe(n){return this._throwIfClosed(),super._trySubscribe(n)}_subscribe(n){return this._throwIfClosed(),this._checkFinalizedStatuses(n),this._innerSubscribe(n)}_innerSubscribe(n){const{hasError:r,isStopped:o,observers:i}=this;return r||o?Lf:(this.currentObservers=null,i.push(n),new Et(()=>{this.currentObservers=null,No(i,n)}))}_checkFinalizedStatuses(n){const{hasError:r,thrownError:o,isStopped:i}=this;r?n.error(o):i&&n.complete()}asObservable(){const n=new Se;return n.source=this,n}}return e.create=(t,n)=>new Gf(t,n),e})();class Gf extends mn{constructor(t,n){super(),this.destination=t,this.source=n}next(t){var n,r;null===(r=null===(n=this.destination)||void 0===n?void 0:n.next)||void 0===r||r.call(n,t)}error(t){var n,r;null===(r=null===(n=this.destination)||void 0===n?void 0:n.error)||void 0===r||r.call(n,t)}complete(){var t,n;null===(n=null===(t=this.destination)||void 0===t?void 0:t.complete)||void 0===n||n.call(t)}_subscribe(t){var n,r;return null!==(r=null===(n=this.source)||void 0===n?void 0:n.subscribe(t))&&void 0!==r?r:Lf}}function zf(e){return he(e?.lift)}function Be(e){return t=>{if(zf(t))return t.lift(function(n){try{return e(n,this)}catch(r){this.error(r)}});throw new TypeError("Unable to lift unknown Observable type")}}function Oe(e,t,n,r,o){return new Hw(e,t,n,r,o)}class Hw extends Ml{constructor(t,n,r,o,i,s){super(t),this.onFinalize=i,this.shouldUnsubscribe=s,this._next=n?function(a){try{n(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=r?function(){try{r()}catch(a){t.error(a)}finally{this.unsubscribe()}}:super._complete}unsubscribe(){var t;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){const{closed:n}=this;super.unsubscribe(),!n&&(null===(t=this.onFinalize)||void 0===t||t.call(this))}}}function W(e,t){return Be((n,r)=>{let o=0;n.subscribe(Oe(r,i=>{r.next(e.call(t,i,o++))}))})}function tr(e){return this instanceof tr?(this.v=e,this):new tr(e)}function $w(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var o,r=n.apply(e,t||[]),i=[];return o={},s("next"),s("throw"),s("return"),o[Symbol.asyncIterator]=function(){return this},o;function s(g){r[g]&&(o[g]=function(m){return new Promise(function(y,C){i.push([g,m,y,C])>1||a(g,m)})})}function a(g,m){try{!function l(g){g.value instanceof tr?Promise.resolve(g.value.v).then(u,c):d(i[0][2],g)}(r[g](m))}catch(y){d(i[0][3],y)}}function u(g){a("next",g)}function c(g){a("throw",g)}function d(g,m){g(m),i.shift(),i.length&&a(i[0][0],i[0][1])}}function Gw(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var n,t=e[Symbol.asyncIterator];return t?t.call(e):(e=function Kf(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}(e),n={},r("next"),r("throw"),r("return"),n[Symbol.asyncIterator]=function(){return this},n);function r(i){n[i]=e[i]&&function(s){return new Promise(function(a,l){!function o(i,s,a,l){Promise.resolve(l).then(function(u){i({value:u,done:a})},s)}(a,l,(s=e[i](s)).done,s.value)})}}}const Zf=e=>e&&"number"==typeof e.length&&"function"!=typeof e;function Qf(e){return he(e?.then)}function Xf(e){return he(e[Tl])}function Yf(e){return Symbol.asyncIterator&&he(e?.[Symbol.asyncIterator])}function Jf(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 eh=function qw(){return"function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator"}();function th(e){return he(e?.[eh])}function nh(e){return $w(this,arguments,function*(){const n=e.getReader();try{for(;;){const{value:r,done:o}=yield tr(n.read());if(o)return yield tr(void 0);yield yield tr(r)}}finally{n.releaseLock()}})}function rh(e){return he(e?.getReader)}function Yt(e){if(e instanceof Se)return e;if(null!=e){if(Xf(e))return function Ww(e){return new Se(t=>{const n=e[Tl]();if(he(n.subscribe))return n.subscribe(t);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}(e);if(Zf(e))return function Kw(e){return new Se(t=>{for(let n=0;n{e.then(n=>{t.closed||(t.next(n),t.complete())},n=>t.error(n)).then(null,Hf)})}(e);if(Yf(e))return oh(e);if(th(e))return function Qw(e){return new Se(t=>{for(const n of e)if(t.next(n),t.closed)return;t.complete()})}(e);if(rh(e))return function Xw(e){return oh(nh(e))}(e)}throw Jf(e)}function oh(e){return new Se(t=>{(function Yw(e,t){var n,r,o,i;return function jw(e,t,n,r){return new(n||(n=Promise))(function(i,s){function a(c){try{u(r.next(c))}catch(d){s(d)}}function l(c){try{u(r.throw(c))}catch(d){s(d)}}function u(c){c.done?i(c.value):function o(i){return i instanceof n?i:new n(function(s){s(i)})}(c.value).then(a,l)}u((r=r.apply(e,t||[])).next())})}(this,void 0,void 0,function*(){try{for(n=Gw(e);!(r=yield n.next()).done;)if(t.next(r.value),t.closed)return}catch(s){o={error:s}}finally{try{r&&!r.done&&(i=n.return)&&(yield i.call(n))}finally{if(o)throw o.error}}t.complete()})})(e,t).catch(n=>t.error(n))})}function yn(e,t,n,r=0,o=!1){const i=t.schedule(function(){n(),o?e.add(this.schedule(null,r)):this.unsubscribe()},r);if(e.add(i),!o)return i}function $e(e,t,n=1/0){return he(t)?$e((r,o)=>W((i,s)=>t(r,i,o,s))(Yt(e(r,o))),n):("number"==typeof t&&(n=t),Be((r,o)=>function Jw(e,t,n,r,o,i,s,a){const l=[];let u=0,c=0,d=!1;const g=()=>{d&&!l.length&&!u&&t.complete()},m=C=>u{i&&t.next(C),u++;let w=!1;Yt(n(C,c++)).subscribe(Oe(t,M=>{o?.(M),i?m(M):t.next(M)},()=>{w=!0},void 0,()=>{if(w)try{for(u--;l.length&&uy(M)):y(M)}g()}catch(M){t.error(M)}}))};return e.subscribe(Oe(t,m,()=>{d=!0,g()})),()=>{a?.()}}(r,o,e,n)))}function Ar(e=1/0){return $e(er,e)}const Jt=new Se(e=>e.complete());function Rl(e){return e[e.length-1]}function ih(e){return he(Rl(e))?e.pop():void 0}function Fo(e){return function tb(e){return e&&he(e.schedule)}(Rl(e))?e.pop():void 0}function sh(e,t=0){return Be((n,r)=>{n.subscribe(Oe(r,o=>yn(r,e,()=>r.next(o),t),()=>yn(r,e,()=>r.complete(),t),o=>yn(r,e,()=>r.error(o),t)))})}function ah(e,t=0){return Be((n,r)=>{r.add(e.schedule(()=>n.subscribe(r),t))})}function lh(e,t){if(!e)throw new Error("Iterable cannot be null");return new Se(n=>{yn(n,t,()=>{const r=e[Symbol.asyncIterator]();yn(n,t,()=>{r.next().then(o=>{o.done?n.complete():n.next(o.value)})},0,!0)})})}function Me(e,t){return t?function lb(e,t){if(null!=e){if(Xf(e))return function rb(e,t){return Yt(e).pipe(ah(t),sh(t))}(e,t);if(Zf(e))return function ib(e,t){return new Se(n=>{let r=0;return t.schedule(function(){r===e.length?n.complete():(n.next(e[r++]),n.closed||this.schedule())})})}(e,t);if(Qf(e))return function ob(e,t){return Yt(e).pipe(ah(t),sh(t))}(e,t);if(Yf(e))return lh(e,t);if(th(e))return function sb(e,t){return new Se(n=>{let r;return yn(n,t,()=>{r=e[eh](),yn(n,t,()=>{let o,i;try{({value:o,done:i}=r.next())}catch(s){return void n.error(s)}i?n.complete():n.next(o)},0,!0)}),()=>he(r?.return)&&r.return()})}(e,t);if(rh(e))return function ab(e,t){return lh(nh(e),t)}(e,t)}throw Jf(e)}(e,t):Yt(e)}function Tr(e){return e<=0?()=>Jt:Be((t,n)=>{let r=0;t.subscribe(Oe(n,o=>{++r<=e&&(n.next(o),e<=r&&n.complete())}))})}function Nl(e,t,...n){return!0===t?(e(),null):!1===t?null:t(...n).pipe(Tr(1)).subscribe(()=>e())}function le(e){for(let t in e)if(e[t]===le)return t;throw Error("Could not find renamed property on target object.")}function Fl(e,t){for(const n in t)t.hasOwnProperty(n)&&!e.hasOwnProperty(n)&&(e[n]=t[n])}function ue(e){if("string"==typeof e)return e;if(Array.isArray(e))return"["+e.map(ue).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 n=t.indexOf("\n");return-1===n?t:t.substring(0,n)}function Pl(e,t){return null==e||""===e?null===t?"":t:null==t||""===t?e:e+" "+t}const db=le({__forward_ref__:le});function pe(e){return e.__forward_ref__=pe,e.toString=function(){return ue(this())},e}function V(e){return kl(e)?e():e}function kl(e){return"function"==typeof e&&e.hasOwnProperty(db)&&e.__forward_ref__===pe}function Ol(e){return e&&!!e.\u0275providers}const uh="https://g.co/ng/security#xss";class I extends Error{constructor(t,n){super(function ys(e,t){return`NG0${Math.abs(e)}${t?": "+t.trim():""}`}(t,n)),this.code=t}}function G(e){return"string"==typeof e?e:null==e?"":String(e)}function vs(e,t){throw new I(-201,!1)}function St(e,t){null==e&&function ie(e,t,n,r){throw new Error(`ASSERTION ERROR: ${e}`+(null==r?"":` [Expected=> ${n} ${r} ${t} <=Actual]`))}(t,e,null,"!=")}function P(e){return{token:e.token,providedIn:e.providedIn||null,factory:e.factory,value:void 0}}function Mt(e){return{providers:e.providers||[],imports:e.imports||[]}}function _s(e){return ch(e,Cs)||ch(e,fh)}function ch(e,t){return e.hasOwnProperty(t)?e[t]:null}function dh(e){return e&&(e.hasOwnProperty(Ll)||e.hasOwnProperty(Cb))?e[Ll]:null}const Cs=le({\u0275prov:le}),Ll=le({\u0275inj:le}),fh=le({ngInjectableDef:le}),Cb=le({ngInjectorDef:le});var U=(()=>((U=U||{})[U.Default=0]="Default",U[U.Host=1]="Host",U[U.Self=2]="Self",U[U.SkipSelf=4]="SkipSelf",U[U.Optional=8]="Optional",U))();let Vl;function It(e){const t=Vl;return Vl=e,t}function hh(e,t,n){const r=_s(e);return r&&"root"==r.providedIn?void 0===r.value?r.value=r.factory():r.value:n&U.Optional?null:void 0!==t?t:void vs(ue(e))}const ge=(()=>typeof globalThis<"u"&&globalThis||typeof global<"u"&&global||typeof window<"u"&&window||typeof self<"u"&&typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&self)(),Po={},Ul="__NG_DI_FLAG__",Ds="ngTempTokenPath",bb=/\n/gm,ph="__source";let ko;function xr(e){const t=ko;return ko=e,t}function Sb(e,t=U.Default){if(void 0===ko)throw new I(-203,!1);return null===ko?hh(e,void 0,t):ko.get(e,t&U.Optional?null:void 0,t)}function R(e,t=U.Default){return(function Db(){return Vl}()||Sb)(V(e),t)}function Y(e,t=U.Default){return R(e,ws(t))}function ws(e){return typeof e>"u"||"number"==typeof e?e:0|(e.optional&&8)|(e.host&&1)|(e.self&&2)|(e.skipSelf&&4)}function Hl(e){const t=[];for(let n=0;n((Ot=Ot||{})[Ot.OnPush=0]="OnPush",Ot[Ot.Default=1]="Default",Ot))(),en=(()=>{return(e=en||(en={}))[e.Emulated=0]="Emulated",e[e.None=2]="None",e[e.ShadowDom=3]="ShadowDom",en;var e})();const vn={},re=[],bs=le({\u0275cmp:le}),jl=le({\u0275dir:le}),Bl=le({\u0275pipe:le}),mh=le({\u0275mod:le}),_n=le({\u0275fac:le}),Lo=le({__NG_ELEMENT_ID__:le});let Tb=0;function mt(e){return Ln(()=>{const n=!0===e.standalone,r={},o={type:e.type,providersResolver:null,decls:e.decls,vars:e.vars,factory:null,template:e.template||null,consts:e.consts||null,ngContentSelectors:e.ngContentSelectors,hostBindings:e.hostBindings||null,hostVars:e.hostVars||0,hostAttrs:e.hostAttrs||null,contentQueries:e.contentQueries||null,declaredInputs:r,inputs:null,outputs:null,exportAs:e.exportAs||null,onPush:e.changeDetection===Ot.OnPush,directiveDefs:null,pipeDefs:null,standalone:n,dependencies:n&&e.dependencies||null,getStandaloneInjector:null,selectors:e.selectors||re,viewQuery:e.viewQuery||null,features:e.features||null,data:e.data||{},encapsulation:e.encapsulation||en.Emulated,id:"c"+Tb++,styles:e.styles||re,_:null,setInput:null,schemas:e.schemas||null,tView:null,findHostDirectiveDefs:null,hostDirectives:null},i=e.dependencies,s=e.features;return o.inputs=_h(e.inputs,r),o.outputs=_h(e.outputs),s&&s.forEach(a=>a(o)),o.directiveDefs=i?()=>("function"==typeof i?i():i).map(yh).filter(vh):null,o.pipeDefs=i?()=>("function"==typeof i?i():i).map(rt).filter(vh):null,o})}function yh(e){return se(e)||Ze(e)}function vh(e){return null!==e}function Lt(e){return Ln(()=>({type:e.type,bootstrap:e.bootstrap||re,declarations:e.declarations||re,imports:e.imports||re,exports:e.exports||re,transitiveCompileScopes:null,schemas:e.schemas||null,id:e.id||null}))}function _h(e,t){if(null==e)return vn;const n={};for(const r in e)if(e.hasOwnProperty(r)){let o=e[r],i=o;Array.isArray(o)&&(i=o[1],o=o[0]),n[o]=r,t&&(t[o]=i)}return n}const B=mt;function se(e){return e[bs]||null}function Ze(e){return e[jl]||null}function rt(e){return e[Bl]||null}function yt(e,t){const n=e[mh]||null;if(!n&&!0===t)throw new Error(`Type ${ue(e)} does not have '\u0275mod' property.`);return n}const Q=11;function vt(e){return Array.isArray(e)&&"object"==typeof e[1]}function Ut(e){return Array.isArray(e)&&!0===e[1]}function zl(e){return 0!=(4&e.flags)}function jo(e){return e.componentOffset>-1}function As(e){return 1==(1&e.flags)}function Ht(e){return null!==e.template}function Nb(e){return 0!=(256&e[2])}function rr(e,t){return e.hasOwnProperty(_n)?e[_n]:null}class kb{constructor(t,n,r){this.previousValue=t,this.currentValue=n,this.firstChange=r}isFirstChange(){return this.firstChange}}function At(){return Sh}function Sh(e){return e.type.prototype.ngOnChanges&&(e.setInput=Lb),Ob}function Ob(){const e=Ih(this),t=e?.current;if(t){const n=e.previous;if(n===vn)e.previous=t;else for(let r in t)n[r]=t[r];e.current=null,this.ngOnChanges(t)}}function Lb(e,t,n,r){const o=this.declaredInputs[n],i=Ih(e)||function Vb(e,t){return e[Mh]=t}(e,{previous:vn,current:null}),s=i.current||(i.current={}),a=i.previous,l=a[o];s[o]=new kb(l&&l.currentValue,t,a===vn),e[r]=t}At.ngInherit=!0;const Mh="__ngSimpleChanges__";function Ih(e){return e[Mh]||null}function ze(e){for(;Array.isArray(e);)e=e[0];return e}function Ts(e,t){return ze(t[e])}function _t(e,t){return ze(t[e.index])}function xh(e,t){return e.data[t]}function Ct(e,t){const n=t[e];return vt(n)?n:n[0]}function xs(e){return 64==(64&e[2])}function Vn(e,t){return null==t?null:e[t]}function Rh(e){e[18]=0}function Wl(e,t){e[5]+=t;let n=e,r=e[3];for(;null!==r&&(1===t&&1===n[5]||-1===t&&0===n[5]);)r[5]+=t,n=r,r=r[3]}const z={lFrame:jh(null),bindingsEnabled:!0};function Fh(){return z.bindingsEnabled}function b(){return z.lFrame.lView}function te(){return z.lFrame.tView}function ce(e){return z.lFrame.contextLView=e,e[8]}function de(e){return z.lFrame.contextLView=null,e}function qe(){let e=Ph();for(;null!==e&&64===e.type;)e=e.parent;return e}function Ph(){return z.lFrame.currentTNode}function nn(e,t){const n=z.lFrame;n.currentTNode=e,n.isParent=t}function Kl(){return z.lFrame.isParent}function Zl(){z.lFrame.isParent=!1}function it(){const e=z.lFrame;let t=e.bindingRootIndex;return-1===t&&(t=e.bindingRootIndex=e.tView.bindingStartIndex),t}function Lr(){return z.lFrame.bindingIndex++}function Xb(e,t){const n=z.lFrame;n.bindingIndex=n.bindingRootIndex=e,Ql(t)}function Ql(e){z.lFrame.currentDirectiveIndex=e}function Vh(){return z.lFrame.currentQueryIndex}function Yl(e){z.lFrame.currentQueryIndex=e}function Jb(e){const t=e[1];return 2===t.type?t.declTNode:1===t.type?e[6]:null}function Uh(e,t,n){if(n&U.SkipSelf){let o=t,i=e;for(;!(o=o.parent,null!==o||n&U.Host||(o=Jb(i),null===o||(i=i[15],10&o.type))););if(null===o)return!1;t=o,e=i}const r=z.lFrame=Hh();return r.currentTNode=t,r.lView=e,!0}function Jl(e){const t=Hh(),n=e[1];z.lFrame=t,t.currentTNode=n.firstChild,t.lView=e,t.tView=n,t.contextLView=e,t.bindingIndex=n.bindingStartIndex,t.inI18n=!1}function Hh(){const e=z.lFrame,t=null===e?null:e.child;return null===t?jh(e):t}function jh(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 Bh(){const e=z.lFrame;return z.lFrame=e.parent,e.currentTNode=null,e.lView=null,e}const $h=Bh;function eu(){const e=Bh();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 st(){return z.lFrame.selectedIndex}function or(e){z.lFrame.selectedIndex=e}function _e(){const e=z.lFrame;return xh(e.tView,e.selectedIndex)}function Rs(e,t){for(let n=t.directiveStart,r=t.directiveEnd;n=r)break}else t[l]<0&&(e[18]+=65536),(a>11>16&&(3&e[2])===t){e[2]+=2048;try{i.call(a)}finally{}}}else try{i.call(a)}finally{}}class $o{constructor(t,n,r){this.factory=t,this.resolving=!1,this.canSeeViewProviders=n,this.injectImpl=r}}function ru(e,t,n){let r=0;for(;rt){s=i-1;break}}}for(;i>16}(e),r=t;for(;n>0;)r=r[15],n--;return r}let ou=!0;function Os(e){const t=ou;return ou=e,t}let hE=0;const rn={};function Ls(e,t){const n=Xh(e,t);if(-1!==n)return n;const r=t[1];r.firstCreatePass&&(e.injectorIndex=t.length,iu(r.data,e),iu(t,null),iu(r.blueprint,null));const o=su(e,t),i=e.injectorIndex;if(Kh(o)){const s=Ps(o),a=ks(o,t),l=a[1].data;for(let u=0;u<8;u++)t[i+u]=a[s+u]|l[s+u]}return t[i+8]=o,i}function iu(e,t){e.push(0,0,0,0,0,0,0,0,t)}function Xh(e,t){return-1===e.injectorIndex||e.parent&&e.parent.injectorIndex===e.injectorIndex||null===t[e.injectorIndex+8]?-1:e.injectorIndex}function su(e,t){if(e.parent&&-1!==e.parent.injectorIndex)return e.parent.injectorIndex;let n=0,r=null,o=t;for(;null!==o;){if(r=op(o),null===r)return-1;if(n++,o=o[15],-1!==r.injectorIndex)return r.injectorIndex|n<<16}return-1}function au(e,t,n){!function pE(e,t,n){let r;"string"==typeof n?r=n.charCodeAt(0)||0:n.hasOwnProperty(Lo)&&(r=n[Lo]),null==r&&(r=n[Lo]=hE++);const o=255&r;t.data[e+(o>>5)]|=1<=0?255&t:vE:t}(n);if("function"==typeof i){if(!Uh(t,e,r))return r&U.Host?Yh(o,0,r):Jh(t,n,r,o);try{const s=i(r);if(null!=s||r&U.Optional)return s;vs()}finally{$h()}}else if("number"==typeof i){let s=null,a=Xh(e,t),l=-1,u=r&U.Host?t[16][6]:null;for((-1===a||r&U.SkipSelf)&&(l=-1===a?su(e,t):t[a+8],-1!==l&&rp(r,!1)?(s=t[1],a=Ps(l),t=ks(l,t)):a=-1);-1!==a;){const c=t[1];if(np(i,a,c.data)){const d=mE(a,t,n,s,r,u);if(d!==rn)return d}l=t[a+8],-1!==l&&rp(r,t[1].data[a+8]===u)&&np(i,a,t)?(s=c,a=Ps(l),t=ks(l,t)):a=-1}}return o}function mE(e,t,n,r,o,i){const s=t[1],a=s.data[e+8],c=Vs(a,s,n,null==r?jo(a)&&ou:r!=s&&0!=(3&a.type),o&U.Host&&i===a);return null!==c?ir(t,s,c,a):rn}function Vs(e,t,n,r,o){const i=e.providerIndexes,s=t.data,a=1048575&i,l=e.directiveStart,c=i>>20,g=o?a+c:e.directiveEnd;for(let m=r?a:a+c;m=l&&y.type===n)return m}if(o){const m=s[l];if(m&&Ht(m)&&m.type===n)return l}return null}function ir(e,t,n,r){let o=e[n];const i=t.data;if(function uE(e){return e instanceof $o}(o)){const s=o;s.resolving&&function fb(e,t){const n=t?`. Dependency path: ${t.join(" > ")} > ${e}`:"";throw new I(-200,`Circular dependency in DI detected for ${e}${n}`)}(function oe(e){return"function"==typeof e?e.name||e.toString():"object"==typeof e&&null!=e&&"function"==typeof e.type?e.type.name||e.type.toString():G(e)}(i[n]));const a=Os(s.canSeeViewProviders);s.resolving=!0;const l=s.injectImpl?It(s.injectImpl):null;Uh(e,r,U.Default);try{o=e[n]=s.factory(void 0,i,e,r),t.firstCreatePass&&n>=r.directiveStart&&function aE(e,t,n){const{ngOnChanges:r,ngOnInit:o,ngDoCheck:i}=t.type.prototype;if(r){const s=Sh(t);(n.preOrderHooks||(n.preOrderHooks=[])).push(e,s),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,s)}o&&(n.preOrderHooks||(n.preOrderHooks=[])).push(0-e,o),i&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,i),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,i))}(n,i[n],t)}finally{null!==l&&It(l),Os(a),s.resolving=!1,$h()}}return o}function np(e,t,n){return!!(n[t+(e>>5)]&1<{const t=e.prototype.constructor,n=t[_n]||lu(t),r=Object.prototype;let o=Object.getPrototypeOf(e.prototype).constructor;for(;o&&o!==r;){const i=o[_n]||lu(o);if(i&&i!==n)return i;o=Object.getPrototypeOf(o)}return i=>new i})}function lu(e){return kl(e)?()=>{const t=lu(V(e));return t&&t()}:rr(e)}function op(e){const t=e[1],n=t.type;return 2===n?t.declTNode:1===n?e[6]:null}const jr="__parameters__";function $r(e,t,n){return Ln(()=>{const r=function uu(e){return function(...n){if(e){const r=e(...n);for(const o in r)this[o]=r[o]}}}(t);function o(...i){if(this instanceof o)return r.apply(this,i),this;const s=new o(...i);return a.annotation=s,a;function a(l,u,c){const d=l.hasOwnProperty(jr)?l[jr]:Object.defineProperty(l,jr,{value:[]})[jr];for(;d.length<=c;)d.push(null);return(d[c]=d[c]||[]).push(s),l}}return n&&(o.prototype=Object.create(n.prototype)),o.prototype.ngMetadataName=e,o.annotationCls=o,o})}class N{constructor(t,n){this._desc=t,this.ngMetadataName="InjectionToken",this.\u0275prov=void 0,"number"==typeof n?this.__NG_ELEMENT_ID__=n:void 0!==n&&(this.\u0275prov=P({token:this,providedIn:n.providedIn||"root",factory:n.factory}))}get multi(){return this}toString(){return`InjectionToken ${this._desc}`}}function sr(e,t){e.forEach(n=>Array.isArray(n)?sr(n,t):t(n))}function sp(e,t,n){t>=e.length?e.push(n):e.splice(t,0,n)}function Hs(e,t){return t>=e.length-1?e.pop():e.splice(t,1)[0]}function Dt(e,t,n){let r=Gr(e,t);return r>=0?e[1|r]=n:(r=~r,function bE(e,t,n,r){let o=e.length;if(o==t)e.push(n,r);else if(1===o)e.push(r,e[0]),e[0]=n;else{for(o--,e.push(e[o-1],e[o]);o>t;)e[o]=e[o-2],o--;e[t]=n,e[t+1]=r}}(e,r,t,n)),r}function du(e,t){const n=Gr(e,t);if(n>=0)return e[1|n]}function Gr(e,t){return function ap(e,t,n){let r=0,o=e.length>>n;for(;o!==r;){const i=r+(o-r>>1),s=e[i<t?o=i:r=i+1}return~(o<((dt=dt||{})[dt.Important=1]="Important",dt[dt.DashCase=2]="DashCase",dt))();const yu=new Map;let zE=0;const _u="__ngContext__";function Ye(e,t){vt(t)?(e[_u]=t[20],function WE(e){yu.set(e[20],e)}(t)):e[_u]=t}function Du(e,t){return undefined(e,t)}function Jo(e){const t=e[3];return Ut(t)?t[3]:t}function wu(e){return Ip(e[13])}function bu(e){return Ip(e[4])}function Ip(e){for(;null!==e&&!Ut(e);)e=e[4];return e}function qr(e,t,n,r,o){if(null!=r){let i,s=!1;Ut(r)?i=r:vt(r)&&(s=!0,r=r[0]);const a=ze(r);0===e&&null!==n?null==o?Fp(t,n,a):ar(t,n,a,o||null,!0):1===e&&null!==n?ar(t,n,a,o||null,!0):2===e?function xu(e,t,n){const r=Gs(e,t);r&&function p0(e,t,n,r){e.removeChild(t,n,r)}(e,r,t,n)}(t,a,s):3===e&&t.destroyNode(a),null!=i&&function y0(e,t,n,r,o){const i=n[7];i!==ze(n)&&qr(t,e,r,i,o);for(let a=10;a0&&(e[n-1][4]=r[4]);const i=Hs(e,10+t);!function s0(e,t){ei(e,t,t[Q],2,null,null),t[0]=null,t[6]=null}(r[1],r);const s=i[19];null!==s&&s.detachView(i[1]),r[3]=null,r[4]=null,r[2]&=-65}return r}function xp(e,t){if(!(128&t[2])){const n=t[Q];n.destroyNode&&ei(e,t,n,3,null,null),function u0(e){let t=e[13];if(!t)return Iu(e[1],e);for(;t;){let n=null;if(vt(t))n=t[13];else{const r=t[10];r&&(n=r)}if(!n){for(;t&&!t[4]&&t!==e;)vt(t)&&Iu(t[1],t),t=t[3];null===t&&(t=e),vt(t)&&Iu(t[1],t),n=t&&t[4]}t=n}}(t)}}function Iu(e,t){if(!(128&t[2])){t[2]&=-65,t[2]|=128,function h0(e,t){let n;if(null!=e&&null!=(n=e.destroyHooks))for(let r=0;r=0?r[o=s]():r[o=-s].unsubscribe(),i+=2}else{const s=r[o=n[i+1]];n[i].call(s)}if(null!==r){for(let i=o+1;i-1){const{encapsulation:i}=e.data[r.directiveStart+o];if(i===en.None||i===en.Emulated)return null}return _t(r,n)}}(e,t.parent,n)}function ar(e,t,n,r,o){e.insertBefore(t,n,r,o)}function Fp(e,t,n){e.appendChild(t,n)}function Pp(e,t,n,r,o){null!==r?ar(e,t,n,r,o):Fp(e,t,n)}function Gs(e,t){return e.parentNode(t)}let Fu,Ks,Lp=function Op(e,t,n){return 40&e.type?_t(e,n):null};function zs(e,t,n,r){const o=Rp(e,r,t),i=t[Q],a=function kp(e,t,n){return Lp(e,t,n)}(r.parent||t[6],r,t);if(null!=o)if(Array.isArray(n))for(let l=0;le,createScript:e=>e,createScriptURL:e=>e})}catch{}return Ks}()?.createScriptURL(e)||e}class Wp{constructor(t){this.changingThisBreaksApplicationSecurity=t}toString(){return`SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity} (see ${uh})`}}function Un(e){return e instanceof Wp?e.changingThisBreaksApplicationSecurity:e}function ti(e,t){const n=function T0(e){return e instanceof Wp&&e.getTypeName()||null}(e);if(null!=n&&n!==t){if("ResourceURL"===n&&"URL"===t)return!0;throw new Error(`Required a safe ${t}, got a ${n} (see ${uh})`)}return n===t}const F0=/^(?:(?:https?|mailto|data|ftp|tel|file|sms):|[^&:/?#]*(?:[/?#]|$))/gi;var Re=(()=>((Re=Re||{})[Re.NONE=0]="NONE",Re[Re.HTML=1]="HTML",Re[Re.STYLE=2]="STYLE",Re[Re.SCRIPT=3]="SCRIPT",Re[Re.URL=4]="URL",Re[Re.RESOURCE_URL=5]="RESOURCE_URL",Re))();function Wr(e){const t=ri();return t?t.sanitize(Re.URL,e)||"":ti(e,"URL")?Un(e):function ku(e){return(e=String(e)).match(F0)?e:"unsafe:"+e}(G(e))}function eg(e){const t=ri();if(t)return qp(t.sanitize(Re.RESOURCE_URL,e)||"");if(ti(e,"ResourceURL"))return qp(Un(e));throw new I(904,!1)}function ri(){const e=b();return e&&e[12]}const Qs=new N("ENVIRONMENT_INITIALIZER"),ng=new N("INJECTOR",-1),rg=new N("INJECTOR_DEF_TYPES");class og{get(t,n=Po){if(n===Po){const r=new Error(`NullInjectorError: No provider for ${ue(t)}!`);throw r.name="NullInjectorError",r}return n}}function W0(...e){return{\u0275providers:ig(0,e),\u0275fromNgModule:!0}}function ig(e,...t){const n=[],r=new Set;let o;return sr(t,i=>{const s=i;Uu(s,n,[],r)&&(o||(o=[]),o.push(s))}),void 0!==o&&sg(o,n),n}function sg(e,t){for(let n=0;n{t.push(i)})}}function Uu(e,t,n,r){if(!(e=V(e)))return!1;let o=null,i=dh(e);const s=!i&&se(e);if(i||s){if(s&&!s.standalone)return!1;o=e}else{const l=e.ngModule;if(i=dh(l),!i)return!1;o=l}const a=r.has(o);if(s){if(a)return!1;if(r.add(o),s.dependencies){const l="function"==typeof s.dependencies?s.dependencies():s.dependencies;for(const u of l)Uu(u,t,n,r)}}else{if(!i)return!1;{if(null!=i.imports&&!a){let u;r.add(o);try{sr(i.imports,c=>{Uu(c,t,n,r)&&(u||(u=[]),u.push(c))})}finally{}void 0!==u&&sg(u,t)}if(!a){const u=rr(o)||(()=>new o);t.push({provide:o,useFactory:u,deps:re},{provide:rg,useValue:o,multi:!0},{provide:Qs,useValue:()=>R(o),multi:!0})}const l=i.providers;null==l||a||Hu(l,c=>{t.push(c)})}}return o!==e&&void 0!==e.providers}function Hu(e,t){for(let n of e)Ol(n)&&(n=n.\u0275providers),Array.isArray(n)?Hu(n,t):t(n)}const K0=le({provide:String,useValue:le});function ju(e){return null!==e&&"object"==typeof e&&K0 in e}function ur(e){return"function"==typeof e}const Bu=new N("Set Injector scope."),Xs={},Q0={};let $u;function Ys(){return void 0===$u&&($u=new og),$u}class on{}class ug extends on{get destroyed(){return this._destroyed}constructor(t,n,r,o){super(),this.parent=n,this.source=r,this.scopes=o,this.records=new Map,this._ngOnDestroyHooks=new Set,this._onDestroyHooks=[],this._destroyed=!1,zu(t,s=>this.processProvider(s)),this.records.set(ng,Kr(void 0,this)),o.has("environment")&&this.records.set(on,Kr(void 0,this));const i=this.records.get(Bu);null!=i&&"string"==typeof i.value&&this.scopes.add(i.value),this.injectorDefTypes=new Set(this.get(rg.multi,re,U.Self))}destroy(){this.assertNotDestroyed(),this._destroyed=!0;try{for(const t of this._ngOnDestroyHooks)t.ngOnDestroy();for(const t of this._onDestroyHooks)t()}finally{this.records.clear(),this._ngOnDestroyHooks.clear(),this.injectorDefTypes.clear(),this._onDestroyHooks.length=0}}onDestroy(t){this._onDestroyHooks.push(t)}runInContext(t){this.assertNotDestroyed();const n=xr(this),r=It(void 0);try{return t()}finally{xr(n),It(r)}}get(t,n=Po,r=U.Default){this.assertNotDestroyed(),r=ws(r);const o=xr(this),i=It(void 0);try{if(!(r&U.SkipSelf)){let a=this.records.get(t);if(void 0===a){const l=function t1(e){return"function"==typeof e||"object"==typeof e&&e instanceof N}(t)&&_s(t);a=l&&this.injectableDefInScope(l)?Kr(Gu(t),Xs):null,this.records.set(t,a)}if(null!=a)return this.hydrate(t,a)}return(r&U.Self?Ys():this.parent).get(t,n=r&U.Optional&&n===Po?null:n)}catch(s){if("NullInjectorError"===s.name){if((s[Ds]=s[Ds]||[]).unshift(ue(t)),o)throw s;return function Ib(e,t,n,r){const o=e[Ds];throw t[ph]&&o.unshift(t[ph]),e.message=function Ab(e,t,n,r=null){e=e&&"\n"===e.charAt(0)&&"\u0275"==e.charAt(1)?e.slice(2):e;let o=ue(t);if(Array.isArray(t))o=t.map(ue).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):ue(a)))}o=`{${i.join(", ")}}`}return`${n}${r?"("+r+")":""}[${o}]: ${e.replace(bb,"\n ")}`}("\n"+e.message,o,n,r),e.ngTokenPath=o,e[Ds]=null,e}(s,t,"R3InjectorError",this.source)}throw s}finally{It(i),xr(o)}}resolveInjectorInitializers(){const t=xr(this),n=It(void 0);try{const r=this.get(Qs.multi,re,U.Self);for(const o of r)o()}finally{xr(t),It(n)}}toString(){const t=[],n=this.records;for(const r of n.keys())t.push(ue(r));return`R3Injector[${t.join(", ")}]`}assertNotDestroyed(){if(this._destroyed)throw new I(205,!1)}processProvider(t){let n=ur(t=V(t))?t:V(t&&t.provide);const r=function Y0(e){return ju(e)?Kr(void 0,e.useValue):Kr(cg(e),Xs)}(t);if(ur(t)||!0!==t.multi)this.records.get(n);else{let o=this.records.get(n);o||(o=Kr(void 0,Xs,!0),o.factory=()=>Hl(o.multi),this.records.set(n,o)),n=t,o.multi.push(t)}this.records.set(n,r)}hydrate(t,n){return n.value===Xs&&(n.value=Q0,n.value=n.factory()),"object"==typeof n.value&&n.value&&function e1(e){return null!==e&&"object"==typeof e&&"function"==typeof e.ngOnDestroy}(n.value)&&this._ngOnDestroyHooks.add(n.value),n.value}injectableDefInScope(t){if(!t.providedIn)return!1;const n=V(t.providedIn);return"string"==typeof n?"any"===n||this.scopes.has(n):this.injectorDefTypes.has(n)}}function Gu(e){const t=_s(e),n=null!==t?t.factory:rr(e);if(null!==n)return n;if(e instanceof N)throw new I(204,!1);if(e instanceof Function)return function X0(e){const t=e.length;if(t>0)throw function Wo(e,t){const n=[];for(let r=0;rn.factory(e):()=>new e}(e);throw new I(204,!1)}function cg(e,t,n){let r;if(ur(e)){const o=V(e);return rr(o)||Gu(o)}if(ju(e))r=()=>V(e.useValue);else if(function lg(e){return!(!e||!e.useFactory)}(e))r=()=>e.useFactory(...Hl(e.deps||[]));else if(function ag(e){return!(!e||!e.useExisting)}(e))r=()=>R(V(e.useExisting));else{const o=V(e&&(e.useClass||e.provide));if(!function J0(e){return!!e.deps}(e))return rr(o)||Gu(o);r=()=>new o(...Hl(e.deps))}return r}function Kr(e,t,n=!1){return{factory:e,value:t,multi:n?[]:void 0}}function zu(e,t){for(const n of e)Array.isArray(n)?zu(n,t):n&&Ol(n)?zu(n.\u0275providers,t):t(n)}class n1{}class dg{}class o1{resolveComponentFactory(t){throw function r1(e){const t=Error(`No component factory found for ${ue(e)}. Did you add it to @NgModule.entryComponents?`);return t.ngComponent=e,t}(t)}}let oi=(()=>{class e{}return e.NULL=new o1,e})();function i1(){return Zr(qe(),b())}function Zr(e,t){return new wt(_t(e,t))}let wt=(()=>{class e{constructor(n){this.nativeElement=n}}return e.__NG_ELEMENT_ID__=i1,e})();function s1(e){return e instanceof wt?e.nativeElement:e}class hg{}let En=(()=>{class e{}return e.__NG_ELEMENT_ID__=()=>function a1(){const e=b(),n=Ct(qe().index,e);return(vt(n)?n:e)[Q]}(),e})(),l1=(()=>{class e{}return e.\u0275prov=P({token:e,providedIn:"root",factory:()=>null}),e})();class ii{constructor(t){this.full=t,this.major=t.split(".")[0],this.minor=t.split(".")[1],this.patch=t.split(".").slice(2).join(".")}}const u1=new ii("15.1.0"),qu={};function Ku(e){return e.ngOriginalError}class Qr{constructor(){this._console=console}handleError(t){const n=this._findOriginalError(t);this._console.error("ERROR",t),n&&this._console.error("ORIGINAL ERROR",n)}_findOriginalError(t){let n=t&&Ku(t);for(;n&&Ku(n);)n=Ku(n);return n||null}}function Sn(e){return e instanceof Function?e():e}function gg(e,t,n){let r=e.length;for(;;){const o=e.indexOf(t,n);if(-1===o)return o;if(0===o||e.charCodeAt(o-1)<=32){const i=t.length;if(o+i===r||e.charCodeAt(o+i)<=32)return o}n=o+1}}const mg="ng-template";function C1(e,t,n){let r=0;for(;ri?"":o[d+1].toLowerCase();const m=8&r?g:null;if(m&&-1!==gg(m,u,0)||2&r&&u!==g){if(jt(r))return!1;s=!0}}}}else{if(!s&&!jt(r)&&!jt(l))return!1;if(s&&jt(l))continue;s=!1,r=l|1&r}}return jt(r)||s}function jt(e){return 0==(1&e)}function b1(e,t,n,r){if(null===t)return-1;let o=0;if(r||!n){let i=!1;for(;o-1)for(n++;n0?'="'+a+'"':"")+"]"}else 8&r?o+="."+s:4&r&&(o+=" "+s);else""!==o&&!jt(s)&&(t+=_g(i,o),o=""),r=s,i=i||!jt(r);n++}return""!==o&&(t+=_g(i,o)),t}const q={};function _(e){Cg(te(),b(),st()+e,!1)}function Cg(e,t,n,r){if(!r)if(3==(3&t[2])){const i=e.preOrderCheckHooks;null!==i&&Ns(t,i,n)}else{const i=e.preOrderHooks;null!==i&&Fs(t,i,0,n)}or(n)}function Eg(e,t=null,n=null,r){const o=Sg(e,t,n,r);return o.resolveInjectorInitializers(),o}function Sg(e,t=null,n=null,r,o=new Set){const i=[n||re,W0(e)];return r=r||("object"==typeof e?void 0:ue(e)),new ug(i,t||Ys(),r||null,o)}let Bt=(()=>{class e{static create(n,r){if(Array.isArray(n))return Eg({name:""},r,n,"");{const o=n.name??"";return Eg({name:o},n.parent,n.providers,o)}}}return e.THROW_IF_NOT_FOUND=Po,e.NULL=new og,e.\u0275prov=P({token:e,providedIn:"any",factory:()=>R(ng)}),e.__NG_ELEMENT_ID__=-1,e})();function S(e,t=U.Default){const n=b();return null===n?R(e,t):ep(qe(),n,V(e),t)}function Fg(e,t){const n=e.contentQueries;if(null!==n)for(let r=0;r22&&Cg(e,t,22,!1),n(r,o)}finally{or(i)}}function tc(e,t,n){if(zl(t)){const o=t.directiveEnd;for(let i=t.directiveStart;i0;){const n=e[--t];if("number"==typeof n&&n<0)return n}return 0})(s)!=a&&s.push(a),s.push(n,r,i)}}(e,t,r,si(e,n,o.hostVars,q),o)}function sn(e,t,n,r,o,i){const s=_t(e,t);!function ac(e,t,n,r,o,i,s){if(null==i)e.removeAttribute(t,o,n);else{const a=null==s?G(i):s(i,r||"",o);e.setAttribute(t,o,a,n)}}(t[Q],s,i,e.value,n,r,o)}function pS(e,t,n,r,o,i){const s=i[t];if(null!==s){const a=r.setInput;for(let l=0;l0&&lc(n)}}function lc(e){for(let r=wu(e);null!==r;r=bu(r))for(let o=10;o0&&lc(i)}const n=e[1].components;if(null!==n)for(let r=0;r0&&lc(o)}}function _S(e,t){const n=Ct(t,e),r=n[1];(function CS(e,t){for(let n=t.length;n-1&&(Mu(t,r),Hs(n,r))}this._attachedToViewContainer=!1}xp(this._lView[1],this._lView)}onDestroy(t){Og(this._lView[1],this._lView,null,t)}markForCheck(){uc(this._cdRefInjectingView||this._lView)}detach(){this._lView[2]&=-65}reattach(){this._lView[2]|=64}detectChanges(){ra(this._lView[1],this._lView,this.context)}checkNoChanges(){}attachToViewContainerRef(){if(this._appRef)throw new I(902,!1);this._attachedToViewContainer=!0}detachFromAppRef(){this._appRef=null,function l0(e,t){ei(e,t,t[Q],2,null,null)}(this._lView[1],this._lView)}attachToAppRef(t){if(this._attachedToViewContainer)throw new I(902,!1);this._appRef=t}}class DS extends ai{constructor(t){super(t),this._view=t}detectChanges(){const t=this._view;ra(t[1],t,t[8],!1)}checkNoChanges(){}get context(){return null}}class Wg extends oi{constructor(t){super(),this.ngModule=t}resolveComponentFactory(t){const n=se(t);return new li(n,this.ngModule)}}function Kg(e){const t=[];for(let n in e)e.hasOwnProperty(n)&&t.push({propName:e[n],templateName:n});return t}class bS{constructor(t,n){this.injector=t,this.parentInjector=n}get(t,n,r){r=ws(r);const o=this.injector.get(t,qu,r);return o!==qu||n===qu?o:this.parentInjector.get(t,n,r)}}class li extends dg{get inputs(){return Kg(this.componentDef.inputs)}get outputs(){return Kg(this.componentDef.outputs)}constructor(t,n){super(),this.componentDef=t,this.ngModule=n,this.componentType=t.type,this.selector=function T1(e){return e.map(A1).join(",")}(t.selectors),this.ngContentSelectors=t.ngContentSelectors?t.ngContentSelectors:[],this.isBoundToModule=!!n}create(t,n,r,o){let i=(o=o||this.ngModule)instanceof on?o:o?.injector;i&&null!==this.componentDef.getStandaloneInjector&&(i=this.componentDef.getStandaloneInjector(i)||i);const s=i?new bS(t,i):t,a=s.get(hg,null);if(null===a)throw new I(407,!1);const l=s.get(l1,null),u=a.createRenderer(null,this.componentDef),c=this.componentDef.selectors[0][0]||"div",d=r?function J1(e,t,n){return e.selectRootElement(t,n===en.ShadowDom)}(u,r,this.componentDef.encapsulation):Su(u,c,function wS(e){const t=e.toLowerCase();return"svg"===t?"svg":"math"===t?"math":null}(c)),g=this.componentDef.onPush?288:272,m=oc(0,null,null,1,0,null,null,null,null,null),y=ea(null,m,null,g,null,null,a,u,l,s,null);let C,w;Jl(y);try{const M=this.componentDef;let A,D=null;M.findHostDirectiveDefs?(A=[],D=new Map,M.findHostDirectiveDefs(M,A,D),A.push(M)):A=[M];const L=function SS(e,t){const n=e[1];return e[22]=t,Jr(n,22,2,"#host",null)}(y,d),fe=function MS(e,t,n,r,o,i,s,a){const l=o[1];!function IS(e,t,n,r){for(const o of e)t.mergedAttrs=Go(t.mergedAttrs,o.hostAttrs);null!==t.mergedAttrs&&(oa(t,t.mergedAttrs,!0),null!==n&&Bp(r,n,t))}(r,e,t,s);const u=i.createRenderer(t,n),c=ea(o,kg(n),null,n.onPush?32:16,o[e.index],e,i,u,a||null,null,null);return l.firstCreatePass&&sc(l,e,r.length-1),na(o,c),o[e.index]=c}(L,d,M,A,y,a,u);w=xh(m,22),d&&function TS(e,t,n,r){if(r)ru(e,n,["ng-version",u1.full]);else{const{attrs:o,classes:i}=function x1(e){const t=[],n=[];let r=1,o=2;for(;r0&&jp(e,n,i.join(" "))}}(u,M,d,r),void 0!==n&&function xS(e,t,n){const r=e.projection=[];for(let o=0;o=0;r--){const o=e[r];o.hostVars=t+=o.hostVars,o.hostAttrs=Go(o.hostAttrs,n=Go(n,o.hostAttrs))}}(r)}function fc(e){return e===vn?{}:e===re?[]:e}function FS(e,t){const n=e.viewQuery;e.viewQuery=n?(r,o)=>{t(r,o),n(r,o)}:t}function PS(e,t){const n=e.contentQueries;e.contentQueries=n?(r,o,i)=>{t(r,o,i),n(r,o,i)}:t}function kS(e,t){const n=e.hostBindings;e.hostBindings=n?(r,o)=>{t(r,o),n(r,o)}:t}let sa=null;function cr(){if(!sa){const e=ge.Symbol;if(e&&e.iterator)sa=e.iterator;else{const t=Object.getOwnPropertyNames(Map.prototype);for(let n=0;ns(ze(L[r.index])):r.index;let D=null;if(!s&&a&&(D=function ZS(e,t,n,r){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,r.index)),null!==D)(D.__ngLastListenerFn__||D).__ngNextListenerFn__=i,D.__ngLastListenerFn__=i,g=!1;else{i=pm(r,t,c,i,!1);const L=n.listen(w,o,i);d.push(i,L),u&&u.push(o,A,M,M+1)}}else i=pm(r,t,c,i,!1);const m=r.outputs;let y;if(g&&null!==m&&(y=m[o])){const C=y.length;if(C)for(let w=0;w-1?Ct(e.index,t):t);let l=hm(t,0,r,s),u=i.__ngNextListenerFn__;for(;u;)l=hm(t,0,u,s)&&l,u=u.__ngNextListenerFn__;return o&&!1===l&&(s.preventDefault(),s.returnValue=!1),l}}function H(e=1){return function eE(e){return(z.lFrame.contextLView=function tE(e,t){for(;e>0;)t=t[15],e--;return t}(e,z.lFrame.contextLView))[8]}(e)}function In(e,t,n,r,o){const i=b(),s=to(i,t,n,r);return s!==q&&bt(te(),_e(),i,e,s,i[Q],o,!1),In}function la(e,t){return e<<17|t<<2}function Hn(e){return e>>17&32767}function mc(e){return 2|e}function pr(e){return(131068&e)>>2}function yc(e,t){return-131069&e|t<<2}function vc(e){return 1|e}function Em(e,t,n,r,o){const i=e[n+1],s=null===t;let a=r?Hn(i):pr(i),l=!1;for(;0!==a&&(!1===l||s);){const c=e[a+1];oM(e[a],t)&&(l=!0,e[a+1]=r?vc(c):mc(c)),a=r?Hn(c):pr(c)}l&&(e[n+1]=r?mc(i):vc(i))}function oM(e,t){return null===e||null==t||(Array.isArray(e)?e[1]:e)===t||!(!Array.isArray(e)||"string"!=typeof t)&&Gr(e,t)>=0}function ua(e,t){return function Gt(e,t,n,r){const o=b(),i=te(),s=function wn(e){const t=z.lFrame,n=t.bindingIndex;return t.bindingIndex=t.bindingIndex+e,n}(2);i.firstUpdatePass&&function Fm(e,t,n,r){const o=e.data;if(null===o[n+1]){const i=o[st()],s=function Nm(e,t){return t>=e.expandoStartIndex}(e,n);(function Lm(e,t){return 0!=(e.flags&(t?8:16))})(i,r)&&null===t&&!s&&(t=!1),t=function hM(e,t,n,r){const o=function Xl(e){const t=z.lFrame.currentDirectiveIndex;return-1===t?null:e[t]}(e);let i=r?t.residualClasses:t.residualStyles;if(null===o)0===(r?t.classBindings:t.styleBindings)&&(n=fi(n=_c(null,e,t,n,r),t.attrs,r),i=null);else{const s=t.directiveStylingLast;if(-1===s||e[s]!==o)if(n=_c(o,e,t,n,r),null===i){let l=function pM(e,t,n){const r=n?t.classBindings:t.styleBindings;if(0!==pr(r))return e[Hn(r)]}(e,t,r);void 0!==l&&Array.isArray(l)&&(l=_c(null,e,t,l[1],r),l=fi(l,t.attrs,r),function gM(e,t,n,r){e[Hn(n?t.classBindings:t.styleBindings)]=r}(e,t,r,l))}else i=function mM(e,t,n){let r;const o=t.directiveEnd;for(let i=1+t.directiveStylingLast;i0)&&(u=!0)):c=n,o)if(0!==l){const g=Hn(e[a+1]);e[r+1]=la(g,a),0!==g&&(e[g+1]=yc(e[g+1],r)),e[a+1]=function eM(e,t){return 131071&e|t<<17}(e[a+1],r)}else e[r+1]=la(a,0),0!==a&&(e[a+1]=yc(e[a+1],r)),a=r;else e[r+1]=la(l,0),0===a?a=r:e[l+1]=yc(e[l+1],r),l=r;u&&(e[r+1]=mc(e[r+1])),Em(e,c,r,!0),Em(e,c,r,!1),function rM(e,t,n,r,o){const i=o?e.residualClasses:e.residualStyles;null!=i&&"string"==typeof t&&Gr(i,t)>=0&&(n[r+1]=vc(n[r+1]))}(t,c,e,r,i),s=la(a,l),i?t.classBindings=s:t.styleBindings=s}(o,i,t,n,s,r)}}(i,e,s,r),t!==q&&Je(o,s,t)&&function km(e,t,n,r,o,i,s,a){if(!(3&t.type))return;const l=e.data,u=l[a+1],c=function tM(e){return 1==(1&e)}(u)?Om(l,t,n,o,pr(u),s):void 0;ca(c)||(ca(i)||function JS(e){return 2==(2&e)}(u)&&(i=Om(l,null,n,o,a,s)),function v0(e,t,n,r,o){if(t)o?e.addClass(n,r):e.removeClass(n,r);else{let i=-1===r.indexOf("-")?void 0:dt.DashCase;null==o?e.removeStyle(n,r,i):("string"==typeof o&&o.endsWith("!important")&&(o=o.slice(0,-10),i|=dt.Important),e.setStyle(n,r,o,i))}}(r,s,Ts(st(),n),o,i))}(i,i.data[st()],o,o[Q],e,o[s+1]=function _M(e,t){return null==e||("string"==typeof t?e+=t:"object"==typeof e&&(e=ue(Un(e)))),e}(t,n),r,s)}(e,t,null,!0),ua}function _c(e,t,n,r,o){let i=null;const s=n.directiveEnd;let a=n.directiveStylingLast;for(-1===a?a=n.directiveStart:a++;a0;){const l=e[o],u=Array.isArray(l),c=u?l[1]:l,d=null===c;let g=n[o+1];g===q&&(g=d?re:void 0);let m=d?du(g,r):c===r?g:void 0;if(u&&!ca(m)&&(m=du(l,r)),ca(m)&&(a=m,s))return a;const y=e[o+1];o=s?Hn(y):pr(y)}if(null!==t){let l=i?t.residualClasses:t.residualStyles;null!=l&&(a=du(l,r))}return a}function ca(e){return void 0!==e}function f(e,t=""){const n=b(),r=te(),o=e+22,i=r.firstCreatePass?Jr(r,o,1,t,null):r.data[o],s=n[o]=function Eu(e,t){return e.createText(t)}(n[Q],t);zs(r,n,s,i),nn(i,!1)}function Ce(e){return An("",e,""),Ce}function An(e,t,n){const r=b(),o=to(r,e,t,n);return o!==q&&function Mn(e,t,n){const r=Ts(t,e);!function Ap(e,t,n){e.setValue(t,n)}(e[Q],r,n)}(r,st(),o),An}const fo="en-US";let iy=fo;function wc(e,t,n,r,o){if(e=V(e),Array.isArray(e))for(let i=0;i>20;if(ur(e)||!e.multi){const m=new $o(l,o,S),y=Ec(a,t,o?c:c+g,d);-1===y?(au(Ls(u,s),i,a),bc(i,e,t.length),t.push(a),u.directiveStart++,u.directiveEnd++,o&&(u.providerIndexes+=1048576),n.push(m),s.push(m)):(n[y]=m,s[y]=m)}else{const m=Ec(a,t,c+g,d),y=Ec(a,t,c,c+g),w=y>=0&&n[y];if(o&&!w||!o&&!(m>=0&&n[m])){au(Ls(u,s),i,a);const M=function LI(e,t,n,r,o){const i=new $o(e,n,S);return i.multi=[],i.index=t,i.componentProviders=0,xy(i,o,r&&!n),i}(o?OI:kI,n.length,o,r,l);!o&&w&&(n[y].providerFactory=M),bc(i,e,t.length,0),t.push(a),u.directiveStart++,u.directiveEnd++,o&&(u.providerIndexes+=1048576),n.push(M),s.push(M)}else bc(i,e,m>-1?m:y,xy(n[o?y:m],l,!o&&r));!o&&r&&w&&n[y].componentProviders++}}}function bc(e,t,n,r){const o=ur(t),i=function Z0(e){return!!e.useClass}(t);if(o||i){const l=(i?V(t.useClass):t).prototype.ngOnDestroy;if(l){const u=e.destroyHooks||(e.destroyHooks=[]);if(!o&&t.multi){const c=u.indexOf(n);-1===c?u.push(n,[r,l]):u[c+1].push(r,l)}else u.push(n,l)}}}function xy(e,t,n){return n&&e.componentProviders++,e.multi.push(t)-1}function Ec(e,t,n,r){for(let o=n;o{n.providersResolver=(r,o)=>function PI(e,t,n){const r=te();if(r.firstCreatePass){const o=Ht(e);wc(n,r.data,r.blueprint,o,!0),wc(t,r.data,r.blueprint,o,!1)}}(r,o?o(e):e,t)}}class ho{}class Ry{}class Ny extends ho{constructor(t,n){super(),this._parent=n,this._bootstrapComponents=[],this.destroyCbs=[],this.componentFactoryResolver=new Wg(this);const r=yt(t);this._bootstrapComponents=Sn(r.bootstrap),this._r3Injector=Sg(t,n,[{provide:ho,useValue:this},{provide:oi,useValue:this.componentFactoryResolver}],ue(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(n=>n()),this.destroyCbs=null}onDestroy(t){this.destroyCbs.push(t)}}class Mc extends Ry{constructor(t){super(),this.moduleType=t}create(t){return new Ny(this.moduleType,t)}}class UI extends ho{constructor(t,n,r){super(),this.componentFactoryResolver=new Wg(this),this.instance=null;const o=new ug([...t,{provide:ho,useValue:this},{provide:oi,useValue:this.componentFactoryResolver}],n||Ys(),r,new Set(["environment"]));this.injector=o,o.resolveInjectorInitializers()}destroy(){this.injector.destroy()}onDestroy(t){this.injector.onDestroy(t)}}function ga(e,t,n=null){return new UI(e,t,n).injector}let HI=(()=>{class e{constructor(n){this._injector=n,this.cachedInjectors=new Map}getOrCreateStandaloneInjector(n){if(!n.standalone)return null;if(!this.cachedInjectors.has(n.id)){const r=ig(0,n.type),o=r.length>0?ga([r],this._injector,`Standalone[${n.type.name}]`):null;this.cachedInjectors.set(n.id,o)}return this.cachedInjectors.get(n.id)}ngOnDestroy(){try{for(const n of this.cachedInjectors.values())null!==n&&n.destroy()}finally{this.cachedInjectors.clear()}}}return e.\u0275prov=P({token:e,providedIn:"environment",factory:()=>new e(R(on))}),e})();function Fy(e){e.getStandaloneInjector=t=>t.get(HI).getOrCreateStandaloneInjector(e)}function ne(e,t,n){const r=it()+e,o=b();return o[r]===q?an(o,r,n?t.call(n):t()):function ci(e,t){return e[t]}(o,r)}function Ac(e,t,n,r){return function Hy(e,t,n,r,o,i){const s=t+n;return Je(e,s,o)?an(e,s+1,i?r.call(i,o):r(o)):function vi(e,t){const n=e[t];return n===q?void 0:n}(e,s+1)}(b(),it(),e,t,n,r)}function Tc(e){return t=>{setTimeout(e,void 0,t)}}const Ee=class cA extends mn{constructor(t=!1){super(),this.__isAsync=t}emit(t){super.next(t)}subscribe(t,n,r){let o=t,i=n||(()=>null),s=r;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=Tc(i),o&&(o=Tc(o)),s&&(s=Tc(s)));const a=super.subscribe({next:o,error:i,complete:s});return t instanceof Et&&t.add(a),a}};function dA(){return this._results[cr()]()}class xc{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 n=cr(),r=xc.prototype;r[n]||(r[n]=dA)}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,n){return this._results.reduce(t,n)}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,n){const r=this;r.dirty=!1;const o=function xt(e){return e.flat(Number.POSITIVE_INFINITY)}(t);(this._changesDetected=!function DE(e,t,n){if(e.length!==t.length)return!1;for(let r=0;r{class e{}return e.__NG_ELEMENT_ID__=pA,e})();const fA=Tn,hA=class extends fA{constructor(t,n,r){super(),this._declarationLView=t,this._declarationTContainer=n,this.elementRef=r}createEmbeddedView(t,n){const r=this._declarationTContainer.tViews,o=ea(this._declarationLView,r,t,16,null,r.declTNode,null,null,null,null,n||null);o[17]=this._declarationLView[this._declarationTContainer.index];const s=this._declarationLView[19];return null!==s&&(o[19]=s.createEmbeddedView(r)),ec(r,o,t),new ai(o)}};function pA(){return ma(qe(),b())}function ma(e,t){return 4&e.type?new hA(t,e,Zr(e,t)):null}let qt=(()=>{class e{}return e.__NG_ELEMENT_ID__=gA,e})();function gA(){return Wy(qe(),b())}const mA=qt,zy=class extends mA{constructor(t,n,r){super(),this._lContainer=t,this._hostTNode=n,this._hostLView=r}get element(){return Zr(this._hostTNode,this._hostLView)}get injector(){return new Ur(this._hostTNode,this._hostLView)}get parentInjector(){const t=su(this._hostTNode,this._hostLView);if(Kh(t)){const n=ks(t,this._hostLView),r=Ps(t);return new Ur(n[1].data[r+8],n)}return new Ur(null,this._hostLView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(t){const n=qy(this._lContainer);return null!==n&&n[t]||null}get length(){return this._lContainer.length-10}createEmbeddedView(t,n,r){let o,i;"number"==typeof r?o=r:null!=r&&(o=r.index,i=r.injector);const s=t.createEmbeddedView(n||{},i);return this.insert(s,o),s}createComponent(t,n,r,o,i){const s=t&&!function qo(e){return"function"==typeof e}(t);let a;if(s)a=n;else{const d=n||{};a=d.index,r=d.injector,o=d.projectableNodes,i=d.environmentInjector||d.ngModuleRef}const l=s?t:new li(se(t)),u=r||this.parentInjector;if(!i&&null==l.ngModule){const g=(s?u:this.parentInjector).get(on,null);g&&(i=g)}const c=l.create(u,o,void 0,i);return this.insert(c.hostView,a),c}insert(t,n){const r=t._lView,o=r[1];if(function $b(e){return Ut(e[3])}(r)){const c=this.indexOf(t);if(-1!==c)this.detach(c);else{const d=r[3],g=new zy(d,d[6],d[3]);g.detach(g.indexOf(t))}}const i=this._adjustIndex(n),s=this._lContainer;!function c0(e,t,n,r){const o=10+r,i=n.length;r>0&&(n[o-1][4]=t),r0)r.push(s[a/2]);else{const u=i[a+1],c=t[-l];for(let d=10;d{class e{constructor(n){this.appInits=n,this.resolve=va,this.reject=va,this.initialized=!1,this.done=!1,this.donePromise=new Promise((r,o)=>{this.resolve=r,this.reject=o})}runInitializers(){if(this.initialized)return;const n=[],r=()=>{this.done=!0,this.resolve()};if(this.appInits)for(let o=0;o{i.subscribe({complete:a,error:l})});n.push(s)}}Promise.all(n).then(()=>{r()}).catch(o=>{this.reject(o)}),0===n.length&&r(),this.initialized=!0}}return e.\u0275fac=function(n){return new(n||e)(R(_a,8))},e.\u0275prov=P({token:e,factory:e.\u0275fac,providedIn:"root"}),e})();const Di=new N("AppId",{providedIn:"root",factory:function Cv(){return`${jc()}${jc()}${jc()}`}});function jc(){return String.fromCharCode(97+Math.floor(25*Math.random()))}const Dv=new N("Platform Initializer"),Bc=new N("Platform ID",{providedIn:"platform",factory:()=>"unknown"}),wv=new N("appBootstrapListener");let GA=(()=>{class e{log(n){console.log(n)}warn(n){console.warn(n)}}return e.\u0275fac=function(n){return new(n||e)},e.\u0275prov=P({token:e,factory:e.\u0275fac,providedIn:"platform"}),e})();const xn=new N("LocaleId",{providedIn:"root",factory:()=>Y(xn,U.Optional|U.SkipSelf)||function zA(){return typeof $localize<"u"&&$localize.locale||fo}()});class WA{constructor(t,n){this.ngModuleFactory=t,this.componentFactories=n}}let bv=(()=>{class e{compileModuleSync(n){return new Mc(n)}compileModuleAsync(n){return Promise.resolve(this.compileModuleSync(n))}compileModuleAndAllComponentsSync(n){const r=this.compileModuleSync(n),i=Sn(yt(n).declarations).reduce((s,a)=>{const l=se(a);return l&&s.push(new li(l)),s},[]);return new WA(r,i)}compileModuleAndAllComponentsAsync(n){return Promise.resolve(this.compileModuleAndAllComponentsSync(n))}clearCache(){}clearCacheFor(n){}getModuleId(n){}}return e.\u0275fac=function(n){return new(n||e)},e.\u0275prov=P({token:e,factory:e.\u0275fac,providedIn:"root"}),e})();const QA=(()=>Promise.resolve(0))();function $c(e){typeof Zone>"u"?QA.then(()=>{e&&e.apply(null,null)}):Zone.current.scheduleMicroTask("scheduleMicrotask",e)}class Ne{constructor({enableLongStackTrace:t=!1,shouldCoalesceEventChangeDetection:n=!1,shouldCoalesceRunChangeDetection:r=!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 I(908,!1);Zone.assertZonePatched();const o=this;o._nesting=0,o._outer=o._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(o._inner=o._inner.fork(new Zone.TaskTrackingZoneSpec)),t&&Zone.longStackTraceZoneSpec&&(o._inner=o._inner.fork(Zone.longStackTraceZoneSpec)),o.shouldCoalesceEventChangeDetection=!r&&n,o.shouldCoalesceRunChangeDetection=r,o.lastRequestAnimationFrameId=-1,o.nativeRequestAnimationFrame=function XA(){let e=ge.requestAnimationFrame,t=ge.cancelAnimationFrame;if(typeof Zone<"u"&&e&&t){const n=e[Zone.__symbol__("OriginalDelegate")];n&&(e=n);const r=t[Zone.__symbol__("OriginalDelegate")];r&&(t=r)}return{nativeRequestAnimationFrame:e,nativeCancelAnimationFrame:t}}().nativeRequestAnimationFrame,function eT(e){const t=()=>{!function JA(e){e.isCheckStableRunning||-1!==e.lastRequestAnimationFrameId||(e.lastRequestAnimationFrameId=e.nativeRequestAnimationFrame.call(ge,()=>{e.fakeTopEventTask||(e.fakeTopEventTask=Zone.root.scheduleEventTask("fakeTopEventTask",()=>{e.lastRequestAnimationFrameId=-1,zc(e),e.isCheckStableRunning=!0,Gc(e),e.isCheckStableRunning=!1},void 0,()=>{},()=>{})),e.fakeTopEventTask.invoke()}),zc(e))}(e)};e._inner=e._inner.fork({name:"angular",properties:{isAngularZone:!0},onInvokeTask:(n,r,o,i,s,a)=>{try{return Mv(e),n.invokeTask(o,i,s,a)}finally{(e.shouldCoalesceEventChangeDetection&&"eventTask"===i.type||e.shouldCoalesceRunChangeDetection)&&t(),Iv(e)}},onInvoke:(n,r,o,i,s,a,l)=>{try{return Mv(e),n.invoke(o,i,s,a,l)}finally{e.shouldCoalesceRunChangeDetection&&t(),Iv(e)}},onHasTask:(n,r,o,i)=>{n.hasTask(o,i),r===o&&("microTask"==i.change?(e._hasPendingMicrotasks=i.microTask,zc(e),Gc(e)):"macroTask"==i.change&&(e.hasPendingMacrotasks=i.macroTask))},onHandleError:(n,r,o,i)=>(n.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(!Ne.isInAngularZone())throw new I(909,!1)}static assertNotInAngularZone(){if(Ne.isInAngularZone())throw new I(909,!1)}run(t,n,r){return this._inner.run(t,n,r)}runTask(t,n,r,o){const i=this._inner,s=i.scheduleEventTask("NgZoneEvent: "+o,t,YA,va,va);try{return i.runTask(s,n,r)}finally{i.cancelTask(s)}}runGuarded(t,n,r){return this._inner.runGuarded(t,n,r)}runOutsideAngular(t){return this._outer.run(t)}}const YA={};function Gc(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 zc(e){e.hasPendingMicrotasks=!!(e._hasPendingMicrotasks||(e.shouldCoalesceEventChangeDetection||e.shouldCoalesceRunChangeDetection)&&-1!==e.lastRequestAnimationFrameId)}function Mv(e){e._nesting++,e.isStable&&(e.isStable=!1,e.onUnstable.emit(null))}function Iv(e){e._nesting--,Gc(e)}class tT{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new Ee,this.onMicrotaskEmpty=new Ee,this.onStable=new Ee,this.onError=new Ee}run(t,n,r){return t.apply(n,r)}runGuarded(t,n,r){return t.apply(n,r)}runOutsideAngular(t){return t()}runTask(t,n,r,o){return t.apply(n,r)}}const Av=new N(""),Da=new N("");let Kc,qc=(()=>{class e{constructor(n,r,o){this._ngZone=n,this.registry=r,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,Kc||(function nT(e){Kc=e}(o),o.addToWindow(r)),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:()=>{Ne.assertNotInAngularZone(),$c(()=>{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())$c(()=>{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(r=>!r.updateCb||!r.updateCb(n)||(clearTimeout(r.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,r,o){let i=-1;r&&r>0&&(i=setTimeout(()=>{this._callbacks=this._callbacks.filter(s=>s.timeoutId!==i),n(this._didWork,this.getPendingTasks())},r)),this._callbacks.push({doneCb:n,timeoutId:i,updateCb:o})}whenStable(n,r,o){if(o&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is "zone.js/plugins/task-tracking" loaded?');this.addCallback(n,r,o),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}registerApplication(n){this.registry.registerApplication(n,this)}unregisterApplication(n){this.registry.unregisterApplication(n)}findProviders(n,r,o){return[]}}return e.\u0275fac=function(n){return new(n||e)(R(Ne),R(Wc),R(Da))},e.\u0275prov=P({token:e,factory:e.\u0275fac}),e})(),Wc=(()=>{class e{constructor(){this._applications=new Map}registerApplication(n,r){this._applications.set(n,r)}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,r=!0){return Kc?.findTestabilityInTree(this,n,r)??null}}return e.\u0275fac=function(n){return new(n||e)},e.\u0275prov=P({token:e,factory:e.\u0275fac,providedIn:"platform"}),e})(),jn=null;const Tv=new N("AllowMultipleToken"),Zc=new N("PlatformDestroyListeners");class xv{constructor(t,n){this.name=t,this.token=n}}function Nv(e,t,n=[]){const r=`Platform: ${t}`,o=new N(r);return(i=[])=>{let s=Qc();if(!s||s.injector.get(Tv,!1)){const a=[...n,...i,{provide:o,useValue:!0}];e?e(a):function iT(e){if(jn&&!jn.get(Tv,!1))throw new I(400,!1);jn=e;const t=e.get(Pv);(function Rv(e){const t=e.get(Dv,null);t&&t.forEach(n=>n())})(e)}(function Fv(e=[],t){return Bt.create({name:t,providers:[{provide:Bu,useValue:"platform"},{provide:Zc,useValue:new Set([()=>jn=null])},...e]})}(a,r))}return function aT(e){const t=Qc();if(!t)throw new I(401,!1);return t}()}}function Qc(){return jn?.get(Pv)??null}let Pv=(()=>{class e{constructor(n){this._injector=n,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(n,r){const o=function Ov(e,t){let n;return n="noop"===e?new tT:("zone.js"===e?void 0:e)||new Ne(t),n}(r?.ngZone,function kv(e){return{enableLongStackTrace:!1,shouldCoalesceEventChangeDetection:!(!e||!e.ngZoneEventCoalescing)||!1,shouldCoalesceRunChangeDetection:!(!e||!e.ngZoneRunCoalescing)||!1}}(r)),i=[{provide:Ne,useValue:o}];return o.run(()=>{const s=Bt.create({providers:i,parent:this.injector,name:n.moduleType.name}),a=n.create(s),l=a.injector.get(Qr,null);if(!l)throw new I(402,!1);return o.runOutsideAngular(()=>{const u=o.onError.subscribe({next:c=>{l.handleError(c)}});a.onDestroy(()=>{ba(this._modules,a),u.unsubscribe()})}),function Lv(e,t,n){try{const r=n();return di(r)?r.catch(o=>{throw t.runOutsideAngular(()=>e.handleError(o)),o}):r}catch(r){throw t.runOutsideAngular(()=>e.handleError(r)),r}}(l,o,()=>{const u=a.injector.get(Ca);return u.runInitializers(),u.donePromise.then(()=>(function sy(e){St(e,"Expected localeId to be defined"),"string"==typeof e&&(iy=e.toLowerCase().replace(/_/g,"-"))}(a.injector.get(xn,fo)||fo),this._moduleDoBootstrap(a),a))})})}bootstrapModule(n,r=[]){const o=Vv({},r);return function rT(e,t,n){const r=new Mc(n);return Promise.resolve(r)}(0,0,n).then(i=>this.bootstrapModuleFactory(i,o))}_moduleDoBootstrap(n){const r=n.injector.get(wa);if(n._bootstrapComponents.length>0)n._bootstrapComponents.forEach(o=>r.bootstrap(o));else{if(!n.instance.ngDoBootstrap)throw new I(-403,!1);n.instance.ngDoBootstrap(r)}this._modules.push(n)}onDestroy(n){this._destroyListeners.push(n)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new I(404,!1);this._modules.slice().forEach(r=>r.destroy()),this._destroyListeners.forEach(r=>r());const n=this._injector.get(Zc,null);n&&(n.forEach(r=>r()),n.clear()),this._destroyed=!0}get destroyed(){return this._destroyed}}return e.\u0275fac=function(n){return new(n||e)(R(Bt))},e.\u0275prov=P({token:e,factory:e.\u0275fac,providedIn:"platform"}),e})();function Vv(e,t){return Array.isArray(t)?t.reduce(Vv,e):{...e,...t}}let wa=(()=>{class e{get destroyed(){return this._destroyed}get injector(){return this._injector}constructor(n,r,o){this._zone=n,this._injector=r,this._exceptionHandler=o,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._stable=!0,this._destroyed=!1,this._destroyListeners=[],this.componentTypes=[],this.components=[],this._onMicrotaskEmptySubscription=this._zone.onMicrotaskEmpty.subscribe({next:()=>{this._zone.run(()=>{this.tick()})}});const i=new Se(a=>{this._stable=this._zone.isStable&&!this._zone.hasPendingMacrotasks&&!this._zone.hasPendingMicrotasks,this._zone.runOutsideAngular(()=>{a.next(this._stable),a.complete()})}),s=new Se(a=>{let l;this._zone.runOutsideAngular(()=>{l=this._zone.onStable.subscribe(()=>{Ne.assertNotInAngularZone(),$c(()=>{!this._stable&&!this._zone.hasPendingMacrotasks&&!this._zone.hasPendingMicrotasks&&(this._stable=!0,a.next(!0))})})});const u=this._zone.onUnstable.subscribe(()=>{Ne.assertInAngularZone(),this._stable&&(this._stable=!1,this._zone.runOutsideAngular(()=>{a.next(!1)}))});return()=>{l.unsubscribe(),u.unsubscribe()}});this.isStable=function ub(...e){const t=Fo(e),n=function nb(e,t){return"number"==typeof Rl(e)?e.pop():t}(e,1/0),r=e;return r.length?1===r.length?Yt(r[0]):Ar(n)(Me(r,t)):Jt}(i,s.pipe(function cb(e={}){const{connector:t=(()=>new mn),resetOnError:n=!0,resetOnComplete:r=!0,resetOnRefCountZero:o=!0}=e;return i=>{let s=null,a=null,l=null,u=0,c=!1,d=!1;const g=()=>{a?.unsubscribe(),a=null},m=()=>{g(),s=l=null,c=d=!1},y=()=>{const C=s;m(),C?.unsubscribe()};return Be((C,w)=>{u++,!d&&!c&&g();const M=l=l??t();w.add(()=>{u--,0===u&&!d&&!c&&(a=Nl(y,o))}),M.subscribe(w),s||(s=new gs({next:A=>M.next(A),error:A=>{d=!0,g(),a=Nl(m,n,A),M.error(A)},complete:()=>{c=!0,g(),a=Nl(m,r),M.complete()}}),Me(C).subscribe(s))})(i)}}()))}bootstrap(n,r){const o=n instanceof dg;if(!this._injector.get(Ca).done)throw!o&&function Rr(e){const t=se(e)||Ze(e)||rt(e);return null!==t&&t.standalone}(n),new I(405,false);let s;s=o?n:this._injector.get(oi).resolveComponentFactory(n),this.componentTypes.push(s.componentType);const a=function oT(e){return e.isBoundToModule}(s)?void 0:this._injector.get(ho),u=s.create(Bt.NULL,[],r||s.selector,a),c=u.location.nativeElement,d=u.injector.get(Av,null);return d?.registerApplication(c),u.onDestroy(()=>{this.detachView(u.hostView),ba(this.components,u),d?.unregisterApplication(c)}),this._loadComponent(u),u}tick(){if(this._runningTick)throw new I(101,!1);try{this._runningTick=!0;for(let n of this._views)n.detectChanges()}catch(n){this._zone.runOutsideAngular(()=>this._exceptionHandler.handleError(n))}finally{this._runningTick=!1}}attachView(n){const r=n;this._views.push(r),r.attachToAppRef(this)}detachView(n){const r=n;ba(this._views,r),r.detachFromAppRef()}_loadComponent(n){this.attachView(n.hostView),this.tick(),this.components.push(n);const r=this._injector.get(wv,[]);r.push(...this._bootstrapListeners),r.forEach(o=>o(n))}ngOnDestroy(){if(!this._destroyed)try{this._destroyListeners.forEach(n=>n()),this._views.slice().forEach(n=>n.destroy()),this._onMicrotaskEmptySubscription.unsubscribe()}finally{this._destroyed=!0,this._views=[],this._bootstrapListeners=[],this._destroyListeners=[]}}onDestroy(n){return this._destroyListeners.push(n),()=>ba(this._destroyListeners,n)}destroy(){if(this._destroyed)throw new I(406,!1);const n=this._injector;n.destroy&&!n.destroyed&&n.destroy()}get viewCount(){return this._views.length}warnIfDestroyed(){}}return e.\u0275fac=function(n){return new(n||e)(R(Ne),R(on),R(Qr))},e.\u0275prov=P({token:e,factory:e.\u0275fac,providedIn:"root"}),e})();function ba(e,t){const n=e.indexOf(t);n>-1&&e.splice(n,1)}let Ea=(()=>{class e{}return e.__NG_ELEMENT_ID__=uT,e})();function uT(e){return function cT(e,t,n){if(jo(e)&&!n){const r=Ct(e.index,t);return new ai(r,r)}return 47&e.type?new ai(t[16],t):null}(qe(),b(),16==(16&e))}class $v{constructor(){}supports(t){return ui(t)}create(t){return new mT(t)}}const gT=(e,t)=>t;class mT{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||gT}forEachItem(t){let n;for(n=this._itHead;null!==n;n=n._next)t(n)}forEachOperation(t){let n=this._itHead,r=this._removalsHead,o=0,i=null;for(;n||r;){const s=!r||n&&n.currentIndex{s=this._trackByFn(o,a),null!==n&&Object.is(n.trackById,s)?(r&&(n=this._verifyReinsertion(n,a,s,o)),Object.is(n.item,a)||this._addIdentityChange(n,a)):(n=this._mismatch(n,a,s,o),r=!0),n=n._next,o++}),this.length=o;return this._truncate(n),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,n,r,o){let i;return null===t?i=this._itTail:(i=t._prev,this._remove(t)),null!==(t=null===this._unlinkedRecords?null:this._unlinkedRecords.get(r,null))?(Object.is(t.item,n)||this._addIdentityChange(t,n),this._reinsertAfter(t,i,o)):null!==(t=null===this._linkedRecords?null:this._linkedRecords.get(r,o))?(Object.is(t.item,n)||this._addIdentityChange(t,n),this._moveAfter(t,i,o)):t=this._addAfter(new yT(n,r),i,o),t}_verifyReinsertion(t,n,r,o){let i=null===this._unlinkedRecords?null:this._unlinkedRecords.get(r,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 n=t._next;this._addToRemovals(this._unlink(t)),t=n}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,n,r){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,n,r),this._addToMoves(t,r),t}_moveAfter(t,n,r){return this._unlink(t),this._insertAfter(t,n,r),this._addToMoves(t,r),t}_addAfter(t,n,r){return this._insertAfter(t,n,r),this._additionsTail=null===this._additionsTail?this._additionsHead=t:this._additionsTail._nextAdded=t,t}_insertAfter(t,n,r){const o=null===n?this._itHead:n._next;return t._next=o,t._prev=n,null===o?this._itTail=t:o._prev=t,null===n?this._itHead=t:n._next=t,null===this._linkedRecords&&(this._linkedRecords=new Gv),this._linkedRecords.put(t),t.currentIndex=r,t}_remove(t){return this._addToRemovals(this._unlink(t))}_unlink(t){null!==this._linkedRecords&&this._linkedRecords.remove(t);const n=t._prev,r=t._next;return null===n?this._itHead=r:n._next=r,null===r?this._itTail=n:r._prev=n,t}_addToMoves(t,n){return t.previousIndex===n||(this._movesTail=null===this._movesTail?this._movesHead=t:this._movesTail._nextMoved=t),t}_addToRemovals(t){return null===this._unlinkedRecords&&(this._unlinkedRecords=new Gv),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,n){return t.item=n,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=t:this._identityChangesTail._nextIdentityChange=t,t}}class yT{constructor(t,n){this.item=t,this.trackById=n,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 vT{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,n){let r;for(r=this._head;null!==r;r=r._nextDup)if((null===n||n<=r.currentIndex)&&Object.is(r.trackById,t))return r;return null}remove(t){const n=t._prevDup,r=t._nextDup;return null===n?this._head=r:n._nextDup=r,null===r?this._tail=n:r._prevDup=n,null===this._head}}class Gv{constructor(){this.map=new Map}put(t){const n=t.trackById;let r=this.map.get(n);r||(r=new vT,this.map.set(n,r)),r.add(t)}get(t,n){const o=this.map.get(t);return o?o.get(t,n):null}remove(t){const n=t.trackById;return this.map.get(n).remove(t)&&this.map.delete(n),t}get isEmpty(){return 0===this.map.size}clear(){this.map.clear()}}function zv(e,t,n){const r=e.previousIndex;if(null===r)return r;let o=0;return n&&r{if(n&&n.key===o)this._maybeAddToChanges(n,r),this._appendAfter=n,n=n._next;else{const i=this._getOrCreateRecordForKey(o,r);n=this._insertBeforeOrAppend(n,i)}}),n){n._prev&&(n._prev._next=null),this._removalsHead=n;for(let r=n;null!==r;r=r._nextRemoved)r===this._mapHead&&(this._mapHead=null),this._records.delete(r.key),r._nextRemoved=r._next,r.previousValue=r.currentValue,r.currentValue=null,r._prev=null,r._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(t,n){if(t){const r=t._prev;return n._next=t,n._prev=r,t._prev=n,r&&(r._next=n),t===this._mapHead&&(this._mapHead=n),this._appendAfter=t,t}return this._appendAfter?(this._appendAfter._next=n,n._prev=this._appendAfter):this._mapHead=n,this._appendAfter=n,null}_getOrCreateRecordForKey(t,n){if(this._records.has(t)){const o=this._records.get(t);this._maybeAddToChanges(o,n);const i=o._prev,s=o._next;return i&&(i._next=s),s&&(s._prev=i),o._next=null,o._prev=null,o}const r=new CT(t);return this._records.set(t,r),r.currentValue=n,this._addToAdditions(r),r}_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,n){Object.is(n,t.currentValue)||(t.previousValue=t.currentValue,t.currentValue=n,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,n){t instanceof Map?t.forEach(n):Object.keys(t).forEach(r=>n(t[r],r))}}class CT{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 Wv(){return new Ia([new $v])}let Ia=(()=>{class e{constructor(n){this.factories=n}static create(n,r){if(null!=r){const o=r.factories.slice();n=n.concat(o)}return new e(n)}static extend(n){return{provide:e,useFactory:r=>e.create(n,r||Wv()),deps:[[e,new Zo,new Ko]]}}find(n){const r=this.factories.find(o=>o.supports(n));if(null!=r)return r;throw new I(901,!1)}}return e.\u0275prov=P({token:e,providedIn:"root",factory:Wv}),e})();function Kv(){return new wi([new qv])}let wi=(()=>{class e{constructor(n){this.factories=n}static create(n,r){if(r){const o=r.factories.slice();n=n.concat(o)}return new e(n)}static extend(n){return{provide:e,useFactory:r=>e.create(n,r||Kv()),deps:[[e,new Zo,new Ko]]}}find(n){const r=this.factories.find(o=>o.supports(n));if(r)return r;throw new I(901,!1)}}return e.\u0275prov=P({token:e,providedIn:"root",factory:Kv}),e})();const bT=Nv(null,"core",[]);let ET=(()=>{class e{constructor(n){}}return e.\u0275fac=function(n){return new(n||e)(R(wa))},e.\u0275mod=Lt({type:e}),e.\u0275inj=Mt({}),e})();function mo(e){return"boolean"==typeof e?e:null!=e&&"false"!==e}let td=null;function cn(){return td}class IT{}const et=new N("DocumentToken");let nd=(()=>{class e{historyGo(n){throw new Error("Not implemented")}}return e.\u0275fac=function(n){return new(n||e)},e.\u0275prov=P({token:e,factory:function(){return function AT(){return R(Zv)}()},providedIn:"platform"}),e})();const TT=new N("Location Initialized");let Zv=(()=>{class e extends nd{constructor(n){super(),this._doc=n,this._location=window.location,this._history=window.history}getBaseHrefFromDOM(){return cn().getBaseHref(this._doc)}onPopState(n){const r=cn().getGlobalEventTarget(this._doc,"window");return r.addEventListener("popstate",n,!1),()=>r.removeEventListener("popstate",n)}onHashChange(n){const r=cn().getGlobalEventTarget(this._doc,"window");return r.addEventListener("hashchange",n,!1),()=>r.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,r,o){Qv()?this._history.pushState(n,r,o):this._location.hash=o}replaceState(n,r,o){Qv()?this._history.replaceState(n,r,o):this._location.hash=o}forward(){this._history.forward()}back(){this._history.back()}historyGo(n=0){this._history.go(n)}getState(){return this._history.state}}return e.\u0275fac=function(n){return new(n||e)(R(et))},e.\u0275prov=P({token:e,factory:function(){return function xT(){return new Zv(R(et))}()},providedIn:"platform"}),e})();function Qv(){return!!window.history.pushState}function rd(e,t){if(0==e.length)return t;if(0==t.length)return e;let n=0;return e.endsWith("/")&&n++,t.startsWith("/")&&n++,2==n?e+t.substring(1):1==n?e+t:e+"/"+t}function Xv(e){const t=e.match(/#|\?|$/),n=t&&t.index||e.length;return e.slice(0,n-("/"===e[n-1]?1:0))+e.slice(n)}function Nn(e){return e&&"?"!==e[0]?"?"+e:e}let yr=(()=>{class e{historyGo(n){throw new Error("Not implemented")}}return e.\u0275fac=function(n){return new(n||e)},e.\u0275prov=P({token:e,factory:function(){return Y(Jv)},providedIn:"root"}),e})();const Yv=new N("appBaseHref");let Jv=(()=>{class e extends yr{constructor(n,r){super(),this._platformLocation=n,this._removeListenerFns=[],this._baseHref=r??this._platformLocation.getBaseHrefFromDOM()??Y(et).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 rd(this._baseHref,n)}path(n=!1){const r=this._platformLocation.pathname+Nn(this._platformLocation.search),o=this._platformLocation.hash;return o&&n?`${r}${o}`:r}pushState(n,r,o,i){const s=this.prepareExternalUrl(o+Nn(i));this._platformLocation.pushState(n,r,s)}replaceState(n,r,o,i){const s=this.prepareExternalUrl(o+Nn(i));this._platformLocation.replaceState(n,r,s)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(n=0){this._platformLocation.historyGo?.(n)}}return e.\u0275fac=function(n){return new(n||e)(R(nd),R(Yv,8))},e.\u0275prov=P({token:e,factory:e.\u0275fac,providedIn:"root"}),e})(),RT=(()=>{class e extends yr{constructor(n,r){super(),this._platformLocation=n,this._baseHref="",this._removeListenerFns=[],null!=r&&(this._baseHref=r)}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 r=this._platformLocation.hash;return null==r&&(r="#"),r.length>0?r.substring(1):r}prepareExternalUrl(n){const r=rd(this._baseHref,n);return r.length>0?"#"+r:r}pushState(n,r,o,i){let s=this.prepareExternalUrl(o+Nn(i));0==s.length&&(s=this._platformLocation.pathname),this._platformLocation.pushState(n,r,s)}replaceState(n,r,o,i){let s=this.prepareExternalUrl(o+Nn(i));0==s.length&&(s=this._platformLocation.pathname),this._platformLocation.replaceState(n,r,s)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(n=0){this._platformLocation.historyGo?.(n)}}return e.\u0275fac=function(n){return new(n||e)(R(nd),R(Yv,8))},e.\u0275prov=P({token:e,factory:e.\u0275fac}),e})(),od=(()=>{class e{constructor(n){this._subject=new Ee,this._urlChangeListeners=[],this._urlChangeSubscription=null,this._locationStrategy=n;const r=this._locationStrategy.getBaseHref();this._basePath=function PT(e){if(new RegExp("^(https?:)?//").test(e)){const[,n]=e.split(/\/\/[^\/]+/);return n}return e}(Xv(e_(r))),this._locationStrategy.onPopState(o=>{this._subject.emit({url:this.path(!0),pop:!0,state:o.state,type:o.type})})}ngOnDestroy(){this._urlChangeSubscription?.unsubscribe(),this._urlChangeListeners=[]}path(n=!1){return this.normalize(this._locationStrategy.path(n))}getState(){return this._locationStrategy.getState()}isCurrentPathEqualTo(n,r=""){return this.path()==this.normalize(n+Nn(r))}normalize(n){return e.stripTrailingSlash(function FT(e,t){return e&&t.startsWith(e)?t.substring(e.length):t}(this._basePath,e_(n)))}prepareExternalUrl(n){return n&&"/"!==n[0]&&(n="/"+n),this._locationStrategy.prepareExternalUrl(n)}go(n,r="",o=null){this._locationStrategy.pushState(o,"",n,r),this._notifyUrlChangeListeners(this.prepareExternalUrl(n+Nn(r)),o)}replaceState(n,r="",o=null){this._locationStrategy.replaceState(o,"",n,r),this._notifyUrlChangeListeners(this.prepareExternalUrl(n+Nn(r)),o)}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(r=>{this._notifyUrlChangeListeners(r.url,r.state)})),()=>{const r=this._urlChangeListeners.indexOf(n);this._urlChangeListeners.splice(r,1),0===this._urlChangeListeners.length&&(this._urlChangeSubscription?.unsubscribe(),this._urlChangeSubscription=null)}}_notifyUrlChangeListeners(n="",r){this._urlChangeListeners.forEach(o=>o(n,r))}subscribe(n,r,o){return this._subject.subscribe({next:n,error:r,complete:o})}}return e.normalizeQueryParams=Nn,e.joinWithSlash=rd,e.stripTrailingSlash=Xv,e.\u0275fac=function(n){return new(n||e)(R(yr))},e.\u0275prov=P({token:e,factory:function(){return function NT(){return new od(R(yr))}()},providedIn:"root"}),e})();function e_(e){return e.replace(/\/index.html$/,"")}function u_(e,t){t=encodeURIComponent(t);for(const n of e.split(";")){const r=n.indexOf("="),[o,i]=-1==r?[n,""]:[n.slice(0,r),n.slice(r+1)];if(o.trim()===t)return decodeURIComponent(i)}return null}let pd=(()=>{class e{constructor(n,r,o,i){this._iterableDiffers=n,this._keyValueDiffers=r,this._ngEl=o,this._renderer=i,this._iterableDiffer=null,this._keyValueDiffer=null,this._initialClasses=[],this._rawClass=null}set klass(n){this._removeClasses(this._initialClasses),this._initialClasses="string"==typeof n?n.split(/\s+/):[],this._applyClasses(this._initialClasses),this._applyClasses(this._rawClass)}set ngClass(n){this._removeClasses(this._rawClass),this._applyClasses(this._initialClasses),this._iterableDiffer=null,this._keyValueDiffer=null,this._rawClass="string"==typeof n?n.split(/\s+/):n,this._rawClass&&(ui(this._rawClass)?this._iterableDiffer=this._iterableDiffers.find(this._rawClass).create():this._keyValueDiffer=this._keyValueDiffers.find(this._rawClass).create())}ngDoCheck(){if(this._iterableDiffer){const n=this._iterableDiffer.diff(this._rawClass);n&&this._applyIterableChanges(n)}else if(this._keyValueDiffer){const n=this._keyValueDiffer.diff(this._rawClass);n&&this._applyKeyValueChanges(n)}}_applyKeyValueChanges(n){n.forEachAddedItem(r=>this._toggleClass(r.key,r.currentValue)),n.forEachChangedItem(r=>this._toggleClass(r.key,r.currentValue)),n.forEachRemovedItem(r=>{r.previousValue&&this._toggleClass(r.key,!1)})}_applyIterableChanges(n){n.forEachAddedItem(r=>{if("string"!=typeof r.item)throw new Error(`NgClass can only toggle CSS classes expressed as strings, got ${ue(r.item)}`);this._toggleClass(r.item,!0)}),n.forEachRemovedItem(r=>this._toggleClass(r.item,!1))}_applyClasses(n){n&&(Array.isArray(n)||n instanceof Set?n.forEach(r=>this._toggleClass(r,!0)):Object.keys(n).forEach(r=>this._toggleClass(r,!!n[r])))}_removeClasses(n){n&&(Array.isArray(n)||n instanceof Set?n.forEach(r=>this._toggleClass(r,!1)):Object.keys(n).forEach(r=>this._toggleClass(r,!1)))}_toggleClass(n,r){(n=n.trim())&&n.split(/\s+/g).forEach(o=>{r?this._renderer.addClass(this._ngEl.nativeElement,o):this._renderer.removeClass(this._ngEl.nativeElement,o)})}}return e.\u0275fac=function(n){return new(n||e)(S(Ia),S(wi),S(wt),S(En))},e.\u0275dir=B({type:e,selectors:[["","ngClass",""]],inputs:{klass:["class","klass"],ngClass:"ngClass"},standalone:!0}),e})();class vx{constructor(t,n,r,o){this.$implicit=t,this.ngForOf=n,this.index=r,this.count=o}get first(){return 0===this.index}get last(){return this.index===this.count-1}get even(){return this.index%2==0}get odd(){return!this.even}}let f_=(()=>{class e{set ngForOf(n){this._ngForOf=n,this._ngForOfDirty=!0}set ngForTrackBy(n){this._trackByFn=n}get ngForTrackBy(){return this._trackByFn}constructor(n,r,o){this._viewContainer=n,this._template=r,this._differs=o,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 r=this._viewContainer;n.forEachOperation((o,i,s)=>{if(null==o.previousIndex)r.createEmbeddedView(this._template,new vx(o.item,this._ngForOf,-1,-1),null===s?void 0:s);else if(null==s)r.remove(null===i?void 0:i);else if(null!==i){const a=r.get(i);r.move(a,s),h_(a,o)}});for(let o=0,i=r.length;o{h_(r.get(o.currentIndex),o)})}static ngTemplateContextGuard(n,r){return!0}}return e.\u0275fac=function(n){return new(n||e)(S(qt),S(Tn),S(Ia))},e.\u0275dir=B({type:e,selectors:[["","ngFor","","ngForOf",""]],inputs:{ngForOf:"ngForOf",ngForTrackBy:"ngForTrackBy",ngForTemplate:"ngForTemplate"},standalone:!0}),e})();function h_(e,t){e.context.$implicit=t.item}let La=(()=>{class e{constructor(n,r){this._viewContainer=n,this._context=new Cx,this._thenTemplateRef=null,this._elseTemplateRef=null,this._thenViewRef=null,this._elseViewRef=null,this._thenTemplateRef=r}set ngIf(n){this._context.$implicit=this._context.ngIf=n,this._updateView()}set ngIfThen(n){p_("ngIfThen",n),this._thenTemplateRef=n,this._thenViewRef=null,this._updateView()}set ngIfElse(n){p_("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,r){return!0}}return e.\u0275fac=function(n){return new(n||e)(S(qt),S(Tn))},e.\u0275dir=B({type:e,selectors:[["","ngIf",""]],inputs:{ngIf:"ngIf",ngIfThen:"ngIfThen",ngIfElse:"ngIfElse"},standalone:!0}),e})();class Cx{constructor(){this.$implicit=null,this.ngIf=null}}function p_(e,t){if(t&&!t.createEmbeddedView)throw new Error(`${e} must be a TemplateRef, but received '${ue(t)}'.`)}let zx=(()=>{class e{}return e.\u0275fac=function(n){return new(n||e)},e.\u0275mod=Lt({type:e}),e.\u0275inj=Mt({}),e})();let Zx=(()=>{class e{}return e.\u0275prov=P({token:e,providedIn:"root",factory:()=>new Qx(R(et),window)}),e})();class Qx{constructor(t,n){this.document=t,this.window=n,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 n=function Xx(e,t){const n=e.getElementById(t)||e.getElementsByName(t)[0];if(n)return n;if("function"==typeof e.createTreeWalker&&e.body&&(e.body.createShadowRoot||e.body.attachShadow)){const r=e.createTreeWalker(e.body,NodeFilter.SHOW_ELEMENT);let o=r.currentNode;for(;o;){const i=o.shadowRoot;if(i){const s=i.getElementById(t)||i.querySelector(`[name="${t}"]`);if(s)return s}o=r.nextNode()}}return null}(this.document,t);n&&(this.scrollToElement(n),n.focus())}setHistoryScrollRestoration(t){if(this.supportScrollRestoration()){const n=this.window.history;n&&n.scrollRestoration&&(n.scrollRestoration=t)}}scrollToElement(t){const n=t.getBoundingClientRect(),r=n.left+this.window.pageXOffset,o=n.top+this.window.pageYOffset,i=this.offset();this.window.scrollTo(r-i[0],o-i[1])}supportScrollRestoration(){try{if(!this.supportsScrolling())return!1;const t=v_(this.window.history)||v_(Object.getPrototypeOf(this.window.history));return!(!t||!t.writable&&!t.set)}catch{return!1}}supportsScrolling(){try{return!!this.window&&!!this.window.scrollTo&&"pageXOffset"in this.window}catch{return!1}}}function v_(e){return Object.getOwnPropertyDescriptor(e,"scrollRestoration")}class __{}class ER extends IT{constructor(){super(...arguments),this.supportsDOMEvents=!0}}class Dd extends ER{static makeCurrent(){!function MT(e){td||(td=e)}(new Dd)}onAndCancel(t,n,r){return t.addEventListener(n,r,!1),()=>{t.removeEventListener(n,r,!1)}}dispatchEvent(t,n){t.dispatchEvent(n)}remove(t){t.parentNode&&t.parentNode.removeChild(t)}createElement(t,n){return(n=n||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,n){return"window"===n?window:"document"===n?t:"body"===n?t.body:null}getBaseHref(t){const n=function SR(){return Mi=Mi||document.querySelector("base"),Mi?Mi.getAttribute("href"):null}();return null==n?null:function MR(e){Ua=Ua||document.createElement("a"),Ua.setAttribute("href",e);const t=Ua.pathname;return"/"===t.charAt(0)?t:`/${t}`}(n)}resetBaseElement(){Mi=null}getUserAgent(){return window.navigator.userAgent}getCookie(t){return u_(document.cookie,t)}}let Ua,Mi=null;const S_=new N("TRANSITION_ID"),AR=[{provide:_a,useFactory:function IR(e,t,n){return()=>{n.get(Ca).donePromise.then(()=>{const r=cn(),o=t.querySelectorAll(`style[ng-transition="${e}"]`);for(let i=0;i{class e{build(){return new XMLHttpRequest}}return e.\u0275fac=function(n){return new(n||e)},e.\u0275prov=P({token:e,factory:e.\u0275fac}),e})();const Ha=new N("EventManagerPlugins");let ja=(()=>{class e{constructor(n,r){this._zone=r,this._eventNameToPlugin=new Map,n.forEach(o=>o.manager=this),this._plugins=n.slice().reverse()}addEventListener(n,r,o){return this._findPluginFor(r).addEventListener(n,r,o)}addGlobalEventListener(n,r,o){return this._findPluginFor(r).addGlobalEventListener(n,r,o)}getZone(){return this._zone}_findPluginFor(n){const r=this._eventNameToPlugin.get(n);if(r)return r;const o=this._plugins;for(let i=0;i{class e{constructor(){this._stylesSet=new Set}addStyles(n){const r=new Set;n.forEach(o=>{this._stylesSet.has(o)||(this._stylesSet.add(o),r.add(o))}),this.onStylesAdded(r)}onStylesAdded(n){}getAllStyles(){return Array.from(this._stylesSet)}}return e.\u0275fac=function(n){return new(n||e)},e.\u0275prov=P({token:e,factory:e.\u0275fac}),e})(),Ii=(()=>{class e extends I_{constructor(n){super(),this._doc=n,this._hostNodes=new Map,this._hostNodes.set(n.head,[])}_addStylesToHost(n,r,o){n.forEach(i=>{const s=this._doc.createElement("style");s.textContent=i,o.push(r.appendChild(s))})}addHost(n){const r=[];this._addStylesToHost(this._stylesSet,n,r),this._hostNodes.set(n,r)}removeHost(n){const r=this._hostNodes.get(n);r&&r.forEach(A_),this._hostNodes.delete(n)}onStylesAdded(n){this._hostNodes.forEach((r,o)=>{this._addStylesToHost(n,o,r)})}ngOnDestroy(){this._hostNodes.forEach(n=>n.forEach(A_))}}return e.\u0275fac=function(n){return new(n||e)(R(et))},e.\u0275prov=P({token:e,factory:e.\u0275fac}),e})();function A_(e){cn().remove(e)}const wd={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/"},bd=/%COMP%/g;function Ed(e,t){return t.flat(100).map(n=>n.replace(bd,e))}function R_(e){return t=>{if("__ngUnwrap__"===t)return e;!1===e(t)&&(t.preventDefault(),t.returnValue=!1)}}let Sd=(()=>{class e{constructor(n,r,o){this.eventManager=n,this.sharedStylesHost=r,this.appId=o,this.rendererByCompId=new Map,this.defaultRenderer=new Md(n)}createRenderer(n,r){if(!n||!r)return this.defaultRenderer;switch(r.encapsulation){case en.Emulated:{let o=this.rendererByCompId.get(r.id);return o||(o=new OR(this.eventManager,this.sharedStylesHost,r,this.appId),this.rendererByCompId.set(r.id,o)),o.applyToHost(n),o}case en.ShadowDom:return new LR(this.eventManager,this.sharedStylesHost,n,r);default:if(!this.rendererByCompId.has(r.id)){const o=Ed(r.id,r.styles);this.sharedStylesHost.addStyles(o),this.rendererByCompId.set(r.id,this.defaultRenderer)}return this.defaultRenderer}}begin(){}end(){}}return e.\u0275fac=function(n){return new(n||e)(R(ja),R(Ii),R(Di))},e.\u0275prov=P({token:e,factory:e.\u0275fac}),e})();class Md{constructor(t){this.eventManager=t,this.data=Object.create(null),this.destroyNode=null}destroy(){}createElement(t,n){return n?document.createElementNS(wd[n]||n,t):document.createElement(t)}createComment(t){return document.createComment(t)}createText(t){return document.createTextNode(t)}appendChild(t,n){(F_(t)?t.content:t).appendChild(n)}insertBefore(t,n,r){t&&(F_(t)?t.content:t).insertBefore(n,r)}removeChild(t,n){t&&t.removeChild(n)}selectRootElement(t,n){let r="string"==typeof t?document.querySelector(t):t;if(!r)throw new Error(`The selector "${t}" did not match any elements`);return n||(r.textContent=""),r}parentNode(t){return t.parentNode}nextSibling(t){return t.nextSibling}setAttribute(t,n,r,o){if(o){n=o+":"+n;const i=wd[o];i?t.setAttributeNS(i,n,r):t.setAttribute(n,r)}else t.setAttribute(n,r)}removeAttribute(t,n,r){if(r){const o=wd[r];o?t.removeAttributeNS(o,n):t.removeAttribute(`${r}:${n}`)}else t.removeAttribute(n)}addClass(t,n){t.classList.add(n)}removeClass(t,n){t.classList.remove(n)}setStyle(t,n,r,o){o&(dt.DashCase|dt.Important)?t.style.setProperty(n,r,o&dt.Important?"important":""):t.style[n]=r}removeStyle(t,n,r){r&dt.DashCase?t.style.removeProperty(n):t.style[n]=""}setProperty(t,n,r){t[n]=r}setValue(t,n){t.nodeValue=n}listen(t,n,r){return"string"==typeof t?this.eventManager.addGlobalEventListener(t,n,R_(r)):this.eventManager.addEventListener(t,n,R_(r))}}function F_(e){return"TEMPLATE"===e.tagName&&void 0!==e.content}class OR extends Md{constructor(t,n,r,o){super(t),this.component=r;const i=Ed(o+"-"+r.id,r.styles);n.addStyles(i),this.contentAttr=function FR(e){return"_ngcontent-%COMP%".replace(bd,e)}(o+"-"+r.id),this.hostAttr=function PR(e){return"_nghost-%COMP%".replace(bd,e)}(o+"-"+r.id)}applyToHost(t){super.setAttribute(t,this.hostAttr,"")}createElement(t,n){const r=super.createElement(t,n);return super.setAttribute(r,this.contentAttr,""),r}}class LR extends Md{constructor(t,n,r,o){super(t),this.sharedStylesHost=n,this.hostEl=r,this.shadowRoot=r.attachShadow({mode:"open"}),this.sharedStylesHost.addHost(this.shadowRoot);const i=Ed(o.id,o.styles);for(let s=0;s{class e extends M_{constructor(n){super(n)}supports(n){return!0}addEventListener(n,r,o){return n.addEventListener(r,o,!1),()=>this.removeEventListener(n,r,o)}removeEventListener(n,r,o){return n.removeEventListener(r,o)}}return e.\u0275fac=function(n){return new(n||e)(R(et))},e.\u0275prov=P({token:e,factory:e.\u0275fac}),e})();const P_=["alt","control","meta","shift"],UR={"\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"},HR={alt:e=>e.altKey,control:e=>e.ctrlKey,meta:e=>e.metaKey,shift:e=>e.shiftKey};let jR=(()=>{class e extends M_{constructor(n){super(n)}supports(n){return null!=e.parseEventName(n)}addEventListener(n,r,o){const i=e.parseEventName(r),s=e.eventCallback(i.fullKey,o,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>cn().onAndCancel(n,i.domEventName,s))}static parseEventName(n){const r=n.toLowerCase().split("."),o=r.shift();if(0===r.length||"keydown"!==o&&"keyup"!==o)return null;const i=e._normalizeKey(r.pop());let s="",a=r.indexOf("code");if(a>-1&&(r.splice(a,1),s="code."),P_.forEach(u=>{const c=r.indexOf(u);c>-1&&(r.splice(c,1),s+=u+".")}),s+=i,0!=r.length||0===i.length)return null;const l={};return l.domEventName=o,l.fullKey=s,l}static matchEventFullKeyCode(n,r){let o=UR[n.key]||n.key,i="";return r.indexOf("code.")>-1&&(o=n.code,i="code."),!(null==o||!o)&&(o=o.toLowerCase()," "===o?o="space":"."===o&&(o="dot"),P_.forEach(s=>{s!==o&&(0,HR[s])(n)&&(i+=s+".")}),i+=o,i===r)}static eventCallback(n,r,o){return i=>{e.matchEventFullKeyCode(i,n)&&o.runGuarded(()=>r(i))}}static _normalizeKey(n){return"esc"===n?"escape":n}}return e.\u0275fac=function(n){return new(n||e)(R(et))},e.\u0275prov=P({token:e,factory:e.\u0275fac}),e})();const zR=Nv(bT,"browser",[{provide:Bc,useValue:"browser"},{provide:Dv,useValue:function BR(){Dd.makeCurrent()},multi:!0},{provide:et,useFactory:function GR(){return function b0(e){Fu=e}(document),document},deps:[]}]),L_=new N(""),V_=[{provide:Da,useClass:class TR{addToWindow(t){ge.getAngularTestability=(r,o=!0)=>{const i=t.findTestabilityInTree(r,o);if(null==i)throw new Error("Could not find testability for element.");return i},ge.getAllAngularTestabilities=()=>t.getAllTestabilities(),ge.getAllAngularRootElements=()=>t.getAllRootElements(),ge.frameworkStabilizers||(ge.frameworkStabilizers=[]),ge.frameworkStabilizers.push(r=>{const o=ge.getAllAngularTestabilities();let i=o.length,s=!1;const a=function(l){s=s||l,i--,0==i&&r(s)};o.forEach(function(l){l.whenStable(a)})})}findTestabilityInTree(t,n,r){return null==n?null:t.getTestability(n)??(r?cn().isShadowRoot(n)?this.findTestabilityInTree(t,n.host,!0):this.findTestabilityInTree(t,n.parentElement,!0):null)}},deps:[]},{provide:Av,useClass:qc,deps:[Ne,Wc,Da]},{provide:qc,useClass:qc,deps:[Ne,Wc,Da]}],U_=[{provide:Bu,useValue:"root"},{provide:Qr,useFactory:function $R(){return new Qr},deps:[]},{provide:Ha,useClass:VR,multi:!0,deps:[et,Ne,Bc]},{provide:Ha,useClass:jR,multi:!0,deps:[et]},{provide:Sd,useClass:Sd,deps:[ja,Ii,Di]},{provide:hg,useExisting:Sd},{provide:I_,useExisting:Ii},{provide:Ii,useClass:Ii,deps:[et]},{provide:ja,useClass:ja,deps:[Ha,Ne]},{provide:__,useClass:xR,deps:[]},[]];let qR=(()=>{class e{constructor(n){}static withServerTransition(n){return{ngModule:e,providers:[{provide:Di,useValue:n.appId},{provide:S_,useExisting:Di},AR]}}}return e.\u0275fac=function(n){return new(n||e)(R(L_,12))},e.\u0275mod=Lt({type:e}),e.\u0275inj=Mt({providers:[...U_,...V_],imports:[zx,ET]}),e})(),H_=(()=>{class e{constructor(n){this._doc=n}getTitle(){return this._doc.title}setTitle(n){this._doc.title=n||""}}return e.\u0275fac=function(n){return new(n||e)(R(et))},e.\u0275prov=P({token:e,factory:function(n){let r=null;return r=n?new n:function KR(){return new H_(R(et))}(),r},providedIn:"root"}),e})();function k(...e){return Me(e,Fo(e))}function $n(e,t){return he(t)?$e(e,t,1):$e(e,1)}function Qt(e,t){return Be((n,r)=>{let o=0;n.subscribe(Oe(r,i=>e.call(t,i,o++)&&r.next(i)))})}typeof window<"u"&&window;class Ba{}class Td{}class Pn{constructor(t){this.normalizedNames=new Map,this.lazyUpdate=null,t?this.lazyInit="string"==typeof t?()=>{this.headers=new Map,t.split("\n").forEach(n=>{const r=n.indexOf(":");if(r>0){const o=n.slice(0,r),i=o.toLowerCase(),s=n.slice(r+1).trim();this.maybeSetNormalizedName(o,i),this.headers.has(i)?this.headers.get(i).push(s):this.headers.set(i,[s])}})}:()=>{this.headers=new Map,Object.keys(t).forEach(n=>{let r=t[n];const o=n.toLowerCase();"string"==typeof r&&(r=[r]),r.length>0&&(this.headers.set(o,r),this.maybeSetNormalizedName(n,o))})}:this.headers=new Map}has(t){return this.init(),this.headers.has(t.toLowerCase())}get(t){this.init();const n=this.headers.get(t.toLowerCase());return n&&n.length>0?n[0]:null}keys(){return this.init(),Array.from(this.normalizedNames.values())}getAll(t){return this.init(),this.headers.get(t.toLowerCase())||null}append(t,n){return this.clone({name:t,value:n,op:"a"})}set(t,n){return this.clone({name:t,value:n,op:"s"})}delete(t,n){return this.clone({name:t,value:n,op:"d"})}maybeSetNormalizedName(t,n){this.normalizedNames.has(n)||this.normalizedNames.set(n,t)}init(){this.lazyInit&&(this.lazyInit instanceof Pn?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(n=>{this.headers.set(n,t.headers.get(n)),this.normalizedNames.set(n,t.normalizedNames.get(n))})}clone(t){const n=new Pn;return n.lazyInit=this.lazyInit&&this.lazyInit instanceof Pn?this.lazyInit:this,n.lazyUpdate=(this.lazyUpdate||[]).concat([t]),n}applyUpdate(t){const n=t.name.toLowerCase();switch(t.op){case"a":case"s":let r=t.value;if("string"==typeof r&&(r=[r]),0===r.length)return;this.maybeSetNormalizedName(t.name,n);const o=("a"===t.op?this.headers.get(n):void 0)||[];o.push(...r),this.headers.set(n,o);break;case"d":const i=t.value;if(i){let s=this.headers.get(n);if(!s)return;s=s.filter(a=>-1===i.indexOf(a)),0===s.length?(this.headers.delete(n),this.normalizedNames.delete(n)):this.headers.set(n,s)}else this.headers.delete(n),this.normalizedNames.delete(n)}}forEach(t){this.init(),Array.from(this.normalizedNames.keys()).forEach(n=>t(this.normalizedNames.get(n),this.headers.get(n)))}}class nN{encodeKey(t){return $_(t)}encodeValue(t){return $_(t)}decodeKey(t){return decodeURIComponent(t)}decodeValue(t){return decodeURIComponent(t)}}const oN=/%(\d[a-f0-9])/gi,iN={40:"@","3A":":",24:"$","2C":",","3B":";","3D":"=","3F":"?","2F":"/"};function $_(e){return encodeURIComponent(e).replace(oN,(t,n)=>iN[n]??t)}function $a(e){return`${e}`}class Gn{constructor(t={}){if(this.updates=null,this.cloneFrom=null,this.encoder=t.encoder||new nN,t.fromString){if(t.fromObject)throw new Error("Cannot specify both fromString and fromObject.");this.map=function rN(e,t){const n=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=n.get(s)||[];l.push(a),n.set(s,l)}),n}(t.fromString,this.encoder)}else t.fromObject?(this.map=new Map,Object.keys(t.fromObject).forEach(n=>{const r=t.fromObject[n],o=Array.isArray(r)?r.map($a):[$a(r)];this.map.set(n,o)})):this.map=null}has(t){return this.init(),this.map.has(t)}get(t){this.init();const n=this.map.get(t);return n?n[0]:null}getAll(t){return this.init(),this.map.get(t)||null}keys(){return this.init(),Array.from(this.map.keys())}append(t,n){return this.clone({param:t,value:n,op:"a"})}appendAll(t){const n=[];return Object.keys(t).forEach(r=>{const o=t[r];Array.isArray(o)?o.forEach(i=>{n.push({param:r,value:i,op:"a"})}):n.push({param:r,value:o,op:"a"})}),this.clone(n)}set(t,n){return this.clone({param:t,value:n,op:"s"})}delete(t,n){return this.clone({param:t,value:n,op:"d"})}toString(){return this.init(),this.keys().map(t=>{const n=this.encoder.encodeKey(t);return this.map.get(t).map(r=>n+"="+this.encoder.encodeValue(r)).join("&")}).filter(t=>""!==t).join("&")}clone(t){const n=new Gn({encoder:this.encoder});return n.cloneFrom=this.cloneFrom||this,n.updates=(this.updates||[]).concat(t),n}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 n=("a"===t.op?this.map.get(t.param):void 0)||[];n.push($a(t.value)),this.map.set(t.param,n);break;case"d":if(void 0===t.value){this.map.delete(t.param);break}{let r=this.map.get(t.param)||[];const o=r.indexOf($a(t.value));-1!==o&&r.splice(o,1),r.length>0?this.map.set(t.param,r):this.map.delete(t.param)}}}),this.cloneFrom=this.updates=null)}}class sN{constructor(){this.map=new Map}set(t,n){return this.map.set(t,n),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 G_(e){return typeof ArrayBuffer<"u"&&e instanceof ArrayBuffer}function z_(e){return typeof Blob<"u"&&e instanceof Blob}function q_(e){return typeof FormData<"u"&&e instanceof FormData}class Ai{constructor(t,n,r,o){let i;if(this.url=n,this.body=null,this.reportProgress=!1,this.withCredentials=!1,this.responseType="json",this.method=t.toUpperCase(),function aN(e){switch(e){case"DELETE":case"GET":case"HEAD":case"OPTIONS":case"JSONP":return!1;default:return!0}}(this.method)||o?(this.body=void 0!==r?r:null,i=o):i=r,i&&(this.reportProgress=!!i.reportProgress,this.withCredentials=!!i.withCredentials,i.responseType&&(this.responseType=i.responseType),i.headers&&(this.headers=i.headers),i.context&&(this.context=i.context),i.params&&(this.params=i.params)),this.headers||(this.headers=new Pn),this.context||(this.context=new sN),this.params){const s=this.params.toString();if(0===s.length)this.urlWithParams=n;else{const a=n.indexOf("?");this.urlWithParams=n+(-1===a?"?":ad.set(g,t.setHeaders[g]),l)),t.setParams&&(u=Object.keys(t.setParams).reduce((d,g)=>d.set(g,t.setParams[g]),u)),new Ai(n,r,i,{params:u,headers:l,context:c,reportProgress:a,responseType:o,withCredentials:s})}}var ke=(()=>((ke=ke||{})[ke.Sent=0]="Sent",ke[ke.UploadProgress=1]="UploadProgress",ke[ke.ResponseHeader=2]="ResponseHeader",ke[ke.DownloadProgress=3]="DownloadProgress",ke[ke.Response=4]="Response",ke[ke.User=5]="User",ke))();class xd{constructor(t,n=200,r="OK"){this.headers=t.headers||new Pn,this.status=void 0!==t.status?t.status:n,this.statusText=t.statusText||r,this.url=t.url||null,this.ok=this.status>=200&&this.status<300}}class Rd extends xd{constructor(t={}){super(t),this.type=ke.ResponseHeader}clone(t={}){return new Rd({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 Ga extends xd{constructor(t={}){super(t),this.type=ke.Response,this.body=void 0!==t.body?t.body:null}clone(t={}){return new Ga({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 W_ extends xd{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 Nd(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 Fd=(()=>{class e{constructor(n){this.handler=n}request(n,r,o={}){let i;if(n instanceof Ai)i=n;else{let l,u;l=o.headers instanceof Pn?o.headers:new Pn(o.headers),o.params&&(u=o.params instanceof Gn?o.params:new Gn({fromObject:o.params})),i=new Ai(n,r,void 0!==o.body?o.body:null,{headers:l,context:o.context,params:u,reportProgress:o.reportProgress,responseType:o.responseType||"json",withCredentials:o.withCredentials})}const s=k(i).pipe($n(l=>this.handler.handle(l)));if(n instanceof Ai||"events"===o.observe)return s;const a=s.pipe(Qt(l=>l instanceof Ga));switch(o.observe||"body"){case"body":switch(i.responseType){case"arraybuffer":return a.pipe(W(l=>{if(null!==l.body&&!(l.body instanceof ArrayBuffer))throw new Error("Response is not an ArrayBuffer.");return l.body}));case"blob":return a.pipe(W(l=>{if(null!==l.body&&!(l.body instanceof Blob))throw new Error("Response is not a Blob.");return l.body}));case"text":return a.pipe(W(l=>{if(null!==l.body&&"string"!=typeof l.body)throw new Error("Response is not a string.");return l.body}));default:return a.pipe(W(l=>l.body))}case"response":return a;default:throw new Error(`Unreachable: unhandled observe type ${o.observe}}`)}}delete(n,r={}){return this.request("DELETE",n,r)}get(n,r={}){return this.request("GET",n,r)}head(n,r={}){return this.request("HEAD",n,r)}jsonp(n,r){return this.request("JSONP",n,{params:(new Gn).append(r,"JSONP_CALLBACK"),observe:"body",responseType:"json"})}options(n,r={}){return this.request("OPTIONS",n,r)}patch(n,r,o={}){return this.request("PATCH",n,Nd(o,r))}post(n,r,o={}){return this.request("POST",n,Nd(o,r))}put(n,r,o={}){return this.request("PUT",n,Nd(o,r))}}return e.\u0275fac=function(n){return new(n||e)(R(Ba))},e.\u0275prov=P({token:e,factory:e.\u0275fac}),e})();function K_(e,t){return t(e)}function uN(e,t){return(n,r)=>t.intercept(n,{handle:o=>e(o,r)})}const dN=new N("HTTP_INTERCEPTORS"),Ti=new N("HTTP_INTERCEPTOR_FNS");function fN(){let e=null;return(t,n)=>(null===e&&(e=(Y(dN,{optional:!0})??[]).reduceRight(uN,K_)),e(t,n))}let Z_=(()=>{class e extends Ba{constructor(n,r){super(),this.backend=n,this.injector=r,this.chain=null}handle(n){if(null===this.chain){const r=Array.from(new Set(this.injector.get(Ti)));this.chain=r.reduceRight((o,i)=>function cN(e,t,n){return(r,o)=>n.runInContext(()=>t(r,i=>e(i,o)))}(o,i,this.injector),K_)}return this.chain(n,r=>this.backend.handle(r))}}return e.\u0275fac=function(n){return new(n||e)(R(Td),R(on))},e.\u0275prov=P({token:e,factory:e.\u0275fac}),e})();const mN=/^\)\]\}',?\n/;let X_=(()=>{class e{constructor(n){this.xhrFactory=n}handle(n){if("JSONP"===n.method)throw new Error("Attempted to construct Jsonp request without HttpClientJsonpModule installed.");return new Se(r=>{const o=this.xhrFactory.build();if(o.open(n.method,n.urlWithParams),n.withCredentials&&(o.withCredentials=!0),n.headers.forEach((m,y)=>o.setRequestHeader(m,y.join(","))),n.headers.has("Accept")||o.setRequestHeader("Accept","application/json, text/plain, */*"),!n.headers.has("Content-Type")){const m=n.detectContentTypeHeader();null!==m&&o.setRequestHeader("Content-Type",m)}if(n.responseType){const m=n.responseType.toLowerCase();o.responseType="json"!==m?m:"text"}const i=n.serializeBody();let s=null;const a=()=>{if(null!==s)return s;const m=o.statusText||"OK",y=new Pn(o.getAllResponseHeaders()),C=function yN(e){return"responseURL"in e&&e.responseURL?e.responseURL:/^X-Request-URL:/m.test(e.getAllResponseHeaders())?e.getResponseHeader("X-Request-URL"):null}(o)||n.url;return s=new Rd({headers:y,status:o.status,statusText:m,url:C}),s},l=()=>{let{headers:m,status:y,statusText:C,url:w}=a(),M=null;204!==y&&(M=typeof o.response>"u"?o.responseText:o.response),0===y&&(y=M?200:0);let A=y>=200&&y<300;if("json"===n.responseType&&"string"==typeof M){const D=M;M=M.replace(mN,"");try{M=""!==M?JSON.parse(M):null}catch(L){M=D,A&&(A=!1,M={error:L,text:M})}}A?(r.next(new Ga({body:M,headers:m,status:y,statusText:C,url:w||void 0})),r.complete()):r.error(new W_({error:M,headers:m,status:y,statusText:C,url:w||void 0}))},u=m=>{const{url:y}=a(),C=new W_({error:m,status:o.status||0,statusText:o.statusText||"Unknown Error",url:y||void 0});r.error(C)};let c=!1;const d=m=>{c||(r.next(a()),c=!0);let y={type:ke.DownloadProgress,loaded:m.loaded};m.lengthComputable&&(y.total=m.total),"text"===n.responseType&&o.responseText&&(y.partialText=o.responseText),r.next(y)},g=m=>{let y={type:ke.UploadProgress,loaded:m.loaded};m.lengthComputable&&(y.total=m.total),r.next(y)};return o.addEventListener("load",l),o.addEventListener("error",u),o.addEventListener("timeout",u),o.addEventListener("abort",u),n.reportProgress&&(o.addEventListener("progress",d),null!==i&&o.upload&&o.upload.addEventListener("progress",g)),o.send(i),r.next({type:ke.Sent}),()=>{o.removeEventListener("error",u),o.removeEventListener("abort",u),o.removeEventListener("load",l),o.removeEventListener("timeout",u),n.reportProgress&&(o.removeEventListener("progress",d),null!==i&&o.upload&&o.upload.removeEventListener("progress",g)),o.readyState!==o.DONE&&o.abort()}})}}return e.\u0275fac=function(n){return new(n||e)(R(__))},e.\u0275prov=P({token:e,factory:e.\u0275fac}),e})();const Pd=new N("XSRF_ENABLED"),Y_="XSRF-TOKEN",J_=new N("XSRF_COOKIE_NAME",{providedIn:"root",factory:()=>Y_}),eC="X-XSRF-TOKEN",tC=new N("XSRF_HEADER_NAME",{providedIn:"root",factory:()=>eC});class nC{}let vN=(()=>{class e{constructor(n,r,o){this.doc=n,this.platform=r,this.cookieName=o,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=u_(n,this.cookieName),this.lastCookieString=n),this.lastToken}}return e.\u0275fac=function(n){return new(n||e)(R(et),R(Bc),R(J_))},e.\u0275prov=P({token:e,factory:e.\u0275fac}),e})();function _N(e,t){const n=e.url.toLowerCase();if(!Y(Pd)||"GET"===e.method||"HEAD"===e.method||n.startsWith("http://")||n.startsWith("https://"))return t(e);const r=Y(nC).getToken(),o=Y(tC);return null!=r&&!e.headers.has(o)&&(e=e.clone({headers:e.headers.set(o,r)})),t(e)}var Te=(()=>((Te=Te||{})[Te.Interceptors=0]="Interceptors",Te[Te.LegacyInterceptors=1]="LegacyInterceptors",Te[Te.CustomXsrfConfiguration=2]="CustomXsrfConfiguration",Te[Te.NoXsrfProtection=3]="NoXsrfProtection",Te[Te.JsonpSupport=4]="JsonpSupport",Te[Te.RequestsMadeViaParent=5]="RequestsMadeViaParent",Te))();function yo(e,t){return{\u0275kind:e,\u0275providers:t}}function CN(...e){const t=[Fd,X_,Z_,{provide:Ba,useExisting:Z_},{provide:Td,useExisting:X_},{provide:Ti,useValue:_N,multi:!0},{provide:Pd,useValue:!0},{provide:nC,useClass:vN}];for(const n of e)t.push(...n.\u0275providers);return function q0(e){return{\u0275providers:e}}(t)}const rC=new N("LEGACY_INTERCEPTOR_FN");function wN({cookieName:e,headerName:t}){const n=[];return void 0!==e&&n.push({provide:J_,useValue:e}),void 0!==t&&n.push({provide:tC,useValue:t}),yo(Te.CustomXsrfConfiguration,n)}let bN=(()=>{class e{}return e.\u0275fac=function(n){return new(n||e)},e.\u0275mod=Lt({type:e}),e.\u0275inj=Mt({providers:[CN(yo(Te.LegacyInterceptors,[{provide:rC,useFactory:fN},{provide:Ti,useExisting:rC,multi:!0}]),wN({cookieName:Y_,headerName:eC}))]}),e})();const{isArray:EN}=Array,{getPrototypeOf:SN,prototype:MN,keys:IN}=Object;function oC(e){if(1===e.length){const t=e[0];if(EN(t))return{args:t,keys:null};if(function AN(e){return e&&"object"==typeof e&&SN(e)===MN}(t)){const n=IN(t);return{args:n.map(r=>t[r]),keys:n}}}return{args:e,keys:null}}const{isArray:TN}=Array;function iC(e){return W(t=>function xN(e,t){return TN(t)?e(...t):e(t)}(e,t))}function sC(e,t){return e.reduce((n,r,o)=>(n[r]=t[o],n),{})}let aC=(()=>{class e{constructor(n,r){this._renderer=n,this._elementRef=r,this.onChange=o=>{},this.onTouched=()=>{}}setProperty(n,r){this._renderer.setProperty(this._elementRef.nativeElement,n,r)}registerOnTouched(n){this.onTouched=n}registerOnChange(n){this.onChange=n}setDisabledState(n){this.setProperty("disabled",n)}}return e.\u0275fac=function(n){return new(n||e)(S(En),S(wt))},e.\u0275dir=B({type:e}),e})(),vr=(()=>{class e extends aC{}return e.\u0275fac=function(){let t;return function(r){return(t||(t=We(e)))(r||e)}}(),e.\u0275dir=B({type:e,features:[ae]}),e})();const dn=new N("NgValueAccessor"),FN={provide:dn,useExisting:pe(()=>xi),multi:!0},kN=new N("CompositionEventMode");let xi=(()=>{class e extends aC{constructor(n,r,o){super(n,r),this._compositionMode=o,this._composing=!1,null==this._compositionMode&&(this._compositionMode=!function PN(){const e=cn()?cn().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.\u0275fac=function(n){return new(n||e)(S(En),S(wt),S(kN,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,r){1&n&&F("input",function(i){return r._handleInput(i.target.value)})("blur",function(){return r.onTouched()})("compositionstart",function(){return r._compositionStart()})("compositionend",function(i){return r._compositionEnd(i.target.value)})},features:[ve([FN]),ae]}),e})();function zn(e){return null==e||("string"==typeof e||Array.isArray(e))&&0===e.length}const tt=new N("NgValidators"),qn=new N("NgAsyncValidators");function fC(e){return zn(e.value)?{required:!0}:null}function za(e){return null}function vC(e){return null!=e}function _C(e){return di(e)?Me(e):e}function CC(e){let t={};return e.forEach(n=>{t=null!=n?{...t,...n}:t}),0===Object.keys(t).length?null:t}function DC(e,t){return t.map(n=>n(e))}function wC(e){return e.map(t=>function VN(e){return!e.validate}(t)?t:n=>t.validate(n))}function kd(e){return null!=e?function bC(e){if(!e)return null;const t=e.filter(vC);return 0==t.length?null:function(n){return CC(DC(n,t))}}(wC(e)):null}function Od(e){return null!=e?function EC(e){if(!e)return null;const t=e.filter(vC);return 0==t.length?null:function(n){return function RN(...e){const t=ih(e),{args:n,keys:r}=oC(e),o=new Se(i=>{const{length:s}=n;if(!s)return void i.complete();const a=new Array(s);let l=s,u=s;for(let c=0;c{d||(d=!0,u--),a[c]=g},()=>l--,void 0,()=>{(!l||!d)&&(u||i.next(r?sC(r,a):a),i.complete())}))}});return t?o.pipe(iC(t)):o}(DC(n,t).map(_C)).pipe(W(CC))}}(wC(e)):null}function SC(e,t){return null===e?[t]:Array.isArray(e)?[...e,t]:[e,t]}function Ld(e){return e?Array.isArray(e)?e:[e]:[]}function qa(e,t){return Array.isArray(e)?e.includes(t):e===t}function AC(e,t){const n=Ld(t);return Ld(e).forEach(o=>{qa(n,o)||n.push(o)}),n}function TC(e,t){return Ld(t).filter(n=>!qa(e,n))}class xC{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=kd(this._rawValidators)}_setAsyncValidators(t){this._rawAsyncValidators=t||[],this._composedAsyncValidatorFn=Od(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){this.control&&this.control.reset(t)}hasError(t,n){return!!this.control&&this.control.hasError(t,n)}getError(t,n){return this.control?this.control.getError(t,n):null}}class ut extends xC{get formDirective(){return null}get path(){return null}}class Wn extends xC{constructor(){super(...arguments),this._parent=null,this.name=null,this.valueAccessor=null}}class RC{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 Vd=(()=>{class e extends RC{constructor(n){super(n)}}return e.\u0275fac=function(n){return new(n||e)(S(Wn,2))},e.\u0275dir=B({type:e,selectors:[["","formControlName",""],["","ngModel",""],["","formControl",""]],hostVars:14,hostBindings:function(n,r){2&n&&ua("ng-untouched",r.isUntouched)("ng-touched",r.isTouched)("ng-pristine",r.isPristine)("ng-dirty",r.isDirty)("ng-valid",r.isValid)("ng-invalid",r.isInvalid)("ng-pending",r.isPending)},features:[ae]}),e})(),Ud=(()=>{class e extends RC{constructor(n){super(n)}}return e.\u0275fac=function(n){return new(n||e)(S(ut,10))},e.\u0275dir=B({type:e,selectors:[["","formGroupName",""],["","formArrayName",""],["","ngModelGroup",""],["","formGroup",""],["form",3,"ngNoForm",""],["","ngForm",""]],hostVars:16,hostBindings:function(n,r){2&n&&ua("ng-untouched",r.isUntouched)("ng-touched",r.isTouched)("ng-pristine",r.isPristine)("ng-dirty",r.isDirty)("ng-valid",r.isValid)("ng-invalid",r.isInvalid)("ng-pending",r.isPending)("ng-submitted",r.isSubmitted)},features:[ae]}),e})();const Ri="VALID",Ka="INVALID",vo="PENDING",Ni="DISABLED";function $d(e){return(Za(e)?e.validators:e)||null}function Gd(e,t){return(Za(t)?t.asyncValidators:e)||null}function Za(e){return null!=e&&!Array.isArray(e)&&"object"==typeof e}class kC{constructor(t,n){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(n)}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===Ri}get invalid(){return this.status===Ka}get pending(){return this.status==vo}get disabled(){return this.status===Ni}get enabled(){return this.status!==Ni}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(AC(t,this._rawValidators))}addAsyncValidators(t){this.setAsyncValidators(AC(t,this._rawAsyncValidators))}removeValidators(t){this.setValidators(TC(t,this._rawValidators))}removeAsyncValidators(t){this.setAsyncValidators(TC(t,this._rawAsyncValidators))}hasValidator(t){return qa(this._rawValidators,t)}hasAsyncValidator(t){return qa(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(n=>{n.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(n=>{n.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 n=this._parentMarkedDirty(t.onlySelf);this.status=Ni,this.errors=null,this._forEachChild(r=>{r.disable({...t,onlySelf:!0})}),this._updateValue(),!1!==t.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors({...t,skipPristineCheck:n}),this._onDisabledChange.forEach(r=>r(!0))}enable(t={}){const n=this._parentMarkedDirty(t.onlySelf);this.status=Ri,this._forEachChild(r=>{r.enable({...t,onlySelf:!0})}),this.updateValueAndValidity({onlySelf:!0,emitEvent:t.emitEvent}),this._updateAncestors({...t,skipPristineCheck:n}),this._onDisabledChange.forEach(r=>r(!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===Ri||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(n=>n._updateTreeValidity(t)),this.updateValueAndValidity({onlySelf:!0,emitEvent:t.emitEvent})}_setInitialStatus(){this.status=this._allControlsDisabled()?Ni:Ri}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(t){if(this.asyncValidator){this.status=vo,this._hasOwnPendingAsyncValidator=!0;const n=_C(this.asyncValidator(this));this._asyncValidationSubscription=n.subscribe(r=>{this._hasOwnPendingAsyncValidator=!1,this.setErrors(r,{emitEvent:t})})}}_cancelExistingSubscription(){this._asyncValidationSubscription&&(this._asyncValidationSubscription.unsubscribe(),this._hasOwnPendingAsyncValidator=!1)}setErrors(t,n={}){this.errors=t,this._updateControlsErrors(!1!==n.emitEvent)}get(t){let n=t;return null==n||(Array.isArray(n)||(n=n.split(".")),0===n.length)?null:n.reduce((r,o)=>r&&r._find(o),this)}getError(t,n){const r=n?this.get(n):this;return r&&r.errors?r.errors[t]:null}hasError(t,n){return!!this.getError(t,n)}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()?Ni:this.errors?Ka:this._hasOwnPendingAsyncValidator||this._anyControlsHaveStatus(vo)?vo:this._anyControlsHaveStatus(Ka)?Ka:Ri}_anyControlsHaveStatus(t){return this._anyControls(n=>n.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){Za(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 zN(e){return Array.isArray(e)?kd(e):e||null}(this._rawValidators)}_assignAsyncValidators(t){this._rawAsyncValidators=Array.isArray(t)?t.slice():t,this._composedAsyncValidatorFn=function qN(e){return Array.isArray(e)?Od(e):e||null}(this._rawAsyncValidators)}}class zd extends kC{constructor(t,n,r){super($d(n),Gd(r,n)),this.controls=t,this._initObservables(),this._setUpdateStrategy(n),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}registerControl(t,n){return this.controls[t]?this.controls[t]:(this.controls[t]=n,n.setParent(this),n._registerOnCollectionChange(this._onCollectionChange),n)}addControl(t,n,r={}){this.registerControl(t,n),this.updateValueAndValidity({emitEvent:r.emitEvent}),this._onCollectionChange()}removeControl(t,n={}){this.controls[t]&&this.controls[t]._registerOnCollectionChange(()=>{}),delete this.controls[t],this.updateValueAndValidity({emitEvent:n.emitEvent}),this._onCollectionChange()}setControl(t,n,r={}){this.controls[t]&&this.controls[t]._registerOnCollectionChange(()=>{}),delete this.controls[t],n&&this.registerControl(t,n),this.updateValueAndValidity({emitEvent:r.emitEvent}),this._onCollectionChange()}contains(t){return this.controls.hasOwnProperty(t)&&this.controls[t].enabled}setValue(t,n={}){(function PC(e,t,n){e._forEachChild((r,o)=>{if(void 0===n[o])throw new I(1002,"")})})(this,0,t),Object.keys(t).forEach(r=>{(function FC(e,t,n){const r=e.controls;if(!(t?Object.keys(r):r).length)throw new I(1e3,"");if(!r[n])throw new I(1001,"")})(this,!0,r),this.controls[r].setValue(t[r],{onlySelf:!0,emitEvent:n.emitEvent})}),this.updateValueAndValidity(n)}patchValue(t,n={}){null!=t&&(Object.keys(t).forEach(r=>{const o=this.controls[r];o&&o.patchValue(t[r],{onlySelf:!0,emitEvent:n.emitEvent})}),this.updateValueAndValidity(n))}reset(t={},n={}){this._forEachChild((r,o)=>{r.reset(t[o],{onlySelf:!0,emitEvent:n.emitEvent})}),this._updatePristine(n),this._updateTouched(n),this.updateValueAndValidity(n)}getRawValue(){return this._reduceChildren({},(t,n,r)=>(t[r]=n.getRawValue(),t))}_syncPendingControls(){let t=this._reduceChildren(!1,(n,r)=>!!r._syncPendingControls()||n);return t&&this.updateValueAndValidity({onlySelf:!0}),t}_forEachChild(t){Object.keys(this.controls).forEach(n=>{const r=this.controls[n];r&&t(r,n)})}_setUpControls(){this._forEachChild(t=>{t.setParent(this),t._registerOnCollectionChange(this._onCollectionChange)})}_updateValue(){this.value=this._reduceValue()}_anyControls(t){for(const[n,r]of Object.entries(this.controls))if(this.contains(n)&&t(r))return!0;return!1}_reduceValue(){return this._reduceChildren({},(n,r,o)=>((r.enabled||this.disabled)&&(n[o]=r.value),n))}_reduceChildren(t,n){let r=t;return this._forEachChild((o,i)=>{r=n(r,o,i)}),r}_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 Fi=new N("CallSetDisabledState",{providedIn:"root",factory:()=>qd}),qd="always";function Pi(e,t,n=qd){Wd(e,t),t.valueAccessor.writeValue(e.value),(e.disabled||"always"===n)&&t.valueAccessor.setDisabledState?.(e.disabled),function ZN(e,t){t.valueAccessor.registerOnChange(n=>{e._pendingValue=n,e._pendingChange=!0,e._pendingDirty=!0,"change"===e.updateOn&&OC(e,t)})}(e,t),function XN(e,t){const n=(r,o)=>{t.valueAccessor.writeValue(r),o&&t.viewToModelUpdate(r)};e.registerOnChange(n),t._registerOnDestroy(()=>{e._unregisterOnChange(n)})}(e,t),function QN(e,t){t.valueAccessor.registerOnTouched(()=>{e._pendingTouched=!0,"blur"===e.updateOn&&e._pendingChange&&OC(e,t),"submit"!==e.updateOn&&e.markAsTouched()})}(e,t),function KN(e,t){if(t.valueAccessor.setDisabledState){const n=r=>{t.valueAccessor.setDisabledState(r)};e.registerOnDisabledChange(n),t._registerOnDestroy(()=>{e._unregisterOnDisabledChange(n)})}}(e,t)}function Ya(e,t){e.forEach(n=>{n.registerOnValidatorChange&&n.registerOnValidatorChange(t)})}function Wd(e,t){const n=function MC(e){return e._rawValidators}(e);null!==t.validator?e.setValidators(SC(n,t.validator)):"function"==typeof n&&e.setValidators([n]);const r=function IC(e){return e._rawAsyncValidators}(e);null!==t.asyncValidator?e.setAsyncValidators(SC(r,t.asyncValidator)):"function"==typeof r&&e.setAsyncValidators([r]);const o=()=>e.updateValueAndValidity();Ya(t._rawValidators,o),Ya(t._rawAsyncValidators,o)}function OC(e,t){e._pendingDirty&&e.markAsDirty(),e.setValue(e._pendingValue,{emitModelToViewChange:!1}),t.viewToModelUpdate(e._pendingValue),e._pendingChange=!1}const nF={provide:ut,useExisting:pe(()=>Oi)},ki=(()=>Promise.resolve())();let Oi=(()=>{class e extends ut{constructor(n,r,o){super(),this.callSetDisabledState=o,this.submitted=!1,this._directives=new Set,this.ngSubmit=new Ee,this.form=new zd({},kd(n),Od(r))}ngAfterViewInit(){this._setUpdateStrategy()}get formDirective(){return this}get control(){return this.form}get path(){return[]}get controls(){return this.form.controls}addControl(n){ki.then(()=>{const r=this._findContainer(n.path);n.control=r.registerControl(n.name,n.control),Pi(n.control,n,this.callSetDisabledState),n.control.updateValueAndValidity({emitEvent:!1}),this._directives.add(n)})}getControl(n){return this.form.get(n.path)}removeControl(n){ki.then(()=>{const r=this._findContainer(n.path);r&&r.removeControl(n.name),this._directives.delete(n)})}addFormGroup(n){ki.then(()=>{const r=this._findContainer(n.path),o=new zd({});(function LC(e,t){Wd(e,t)})(o,n),r.registerControl(n.name,o),o.updateValueAndValidity({emitEvent:!1})})}removeFormGroup(n){ki.then(()=>{const r=this._findContainer(n.path);r&&r.removeControl(n.name)})}getFormGroup(n){return this.form.get(n.path)}updateModel(n,r){ki.then(()=>{this.form.get(n.path).setValue(r)})}setValue(n){this.control.setValue(n)}onSubmit(n){return this.submitted=!0,function VC(e,t){e._syncPendingControls(),t.forEach(n=>{const r=n.control;"submit"===r.updateOn&&r._pendingChange&&(n.viewToModelUpdate(r._pendingValue),r._pendingChange=!1)})}(this.form,this._directives),this.ngSubmit.emit(n),"dialog"===n?.target?.method}onReset(){this.resetForm()}resetForm(n){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.\u0275fac=function(n){return new(n||e)(S(tt,10),S(qn,10),S(Fi,8))},e.\u0275dir=B({type:e,selectors:[["form",3,"ngNoForm","",3,"formGroup",""],["ng-form"],["","ngForm",""]],hostBindings:function(n,r){1&n&&F("submit",function(i){return r.onSubmit(i)})("reset",function(){return r.onReset()})},inputs:{options:["ngFormOptions","options"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],features:[ve([nF]),ae]}),e})();function UC(e,t){const n=e.indexOf(t);n>-1&&e.splice(n,1)}function HC(e){return"object"==typeof e&&null!==e&&2===Object.keys(e).length&&"value"in e&&"disabled"in e}const jC=class extends kC{constructor(t=null,n,r){super($d(n),Gd(r,n)),this.defaultValue=null,this._onChange=[],this._pendingChange=!1,this._applyFormState(t),this._setUpdateStrategy(n),this._initObservables(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator}),Za(n)&&(n.nonNullable||n.initialValueIsDefault)&&(this.defaultValue=HC(t)?t.value:t)}setValue(t,n={}){this.value=this._pendingValue=t,this._onChange.length&&!1!==n.emitModelToViewChange&&this._onChange.forEach(r=>r(this.value,!1!==n.emitViewToModelChange)),this.updateValueAndValidity(n)}patchValue(t,n={}){this.setValue(t,n)}reset(t=this.defaultValue,n={}){this._applyFormState(t),this.markAsPristine(n),this.markAsUntouched(n),this.setValue(this.value,n),this._pendingChange=!1}_updateValue(){}_anyControls(t){return!1}_allControlsDisabled(){return this.disabled}registerOnChange(t){this._onChange.push(t)}_unregisterOnChange(t){UC(this._onChange,t)}registerOnDisabledChange(t){this._onDisabledChange.push(t)}_unregisterOnDisabledChange(t){UC(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){HC(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}},iF={provide:Wn,useExisting:pe(()=>el)},GC=(()=>Promise.resolve())();let el=(()=>{class e extends Wn{constructor(n,r,o,i,s,a){super(),this._changeDetectorRef=s,this.callSetDisabledState=a,this.control=new jC,this._registered=!1,this.update=new Ee,this._parent=n,this._setValidators(r),this._setAsyncValidators(o),this.valueAccessor=function Qd(e,t){if(!t)return null;let n,r,o;return Array.isArray(t),t.forEach(i=>{i.constructor===xi?n=i:function eF(e){return Object.getPrototypeOf(e.constructor)===vr}(i)?r=i:o=i}),o||r||n||null}(0,i)}ngOnChanges(n){if(this._checkForErrors(),!this._registered||"name"in n){if(this._registered&&(this._checkName(),this.formDirective)){const r=n.name.previousValue;this.formDirective.removeControl({name:r,path:this._getPath(r)})}this._setUpControl()}"isDisabled"in n&&this._updateDisabled(n),function Zd(e,t){if(!e.hasOwnProperty("model"))return!1;const n=e.model;return!!n.isFirstChange()||!Object.is(t,n.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(){Pi(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){GC.then(()=>{this.control.setValue(n,{emitViewToModelChange:!1}),this._changeDetectorRef?.markForCheck()})}_updateDisabled(n){const r=n.isDisabled.currentValue,o=0!==r&&mo(r);GC.then(()=>{o&&!this.control.disabled?this.control.disable():!o&&this.control.disabled&&this.control.enable(),this._changeDetectorRef?.markForCheck()})}_getPath(n){return this._parent?function Qa(e,t){return[...t.path,e]}(n,this._parent):[n]}}return e.\u0275fac=function(n){return new(n||e)(S(ut,9),S(tt,10),S(qn,10),S(dn,10),S(Ea,8),S(Fi,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:[ve([iF]),ae,At]}),e})(),Xd=(()=>{class e{}return e.\u0275fac=function(n){return new(n||e)},e.\u0275dir=B({type:e,selectors:[["form",3,"ngNoForm","",3,"ngNativeValidate",""]],hostAttrs:["novalidate",""]}),e})();const aF={provide:dn,useExisting:pe(()=>Yd),multi:!0};let qC=(()=>{class e{}return e.\u0275fac=function(n){return new(n||e)},e.\u0275mod=Lt({type:e}),e.\u0275inj=Mt({}),e})(),lF=(()=>{class e{constructor(){this._accessors=[]}add(n,r){this._accessors.push([n,r])}remove(n){for(let r=this._accessors.length-1;r>=0;--r)if(this._accessors[r][1]===n)return void this._accessors.splice(r,1)}select(n){this._accessors.forEach(r=>{this._isSameGroup(r,n)&&r[1]!==n&&r[1].fireUncheck(n.value)})}_isSameGroup(n,r){return!!n[0].control&&n[0]._parent===r._control._parent&&n[1].name===r.name}}return e.\u0275fac=function(n){return new(n||e)},e.\u0275prov=P({token:e,factory:e.\u0275fac,providedIn:qC}),e})(),Yd=(()=>{class e extends vr{constructor(n,r,o,i){super(n,r),this._registry=o,this._injector=i,this.onChange=()=>{}}ngOnInit(){this._control=this._injector.get(Wn),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)}}fireUncheck(n){this.writeValue(n)}_checkName(){!this.name&&this.formControlName&&(this.name=this.formControlName)}}return e.\u0275fac=function(n){return new(n||e)(S(En),S(wt),S(lF),S(Bt))},e.\u0275dir=B({type:e,selectors:[["input","type","radio","formControlName",""],["input","type","radio","formControl",""],["input","type","radio","ngModel",""]],hostBindings:function(n,r){1&n&&F("change",function(){return r.onChange()})("blur",function(){return r.onTouched()})},inputs:{name:"name",formControlName:"formControlName",value:"value"},features:[ve([aF]),ae]}),e})();const gF={provide:dn,useExisting:pe(()=>tl),multi:!0};function YC(e,t){return null==e?`${t}`:(t&&"object"==typeof t&&(t="Object"),`${e}: ${t}`.slice(0,50))}let tl=(()=>{class e extends vr{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 o=YC(this._getOptionId(n),n);this.setProperty("value",o)}registerOnChange(n){this.onChange=r=>{this.value=this._getOptionValue(r),n(this.value)}}_registerOption(){return(this._idCounter++).toString()}_getOptionId(n){for(const r of Array.from(this._optionMap.keys()))if(this._compareWith(this._optionMap.get(r),n))return r;return null}_getOptionValue(n){const r=function mF(e){return e.split(":")[0]}(n);return this._optionMap.has(r)?this._optionMap.get(r):n}}return e.\u0275fac=function(){let t;return function(r){return(t||(t=We(e)))(r||e)}}(),e.\u0275dir=B({type:e,selectors:[["select","formControlName","",3,"multiple",""],["select","formControl","",3,"multiple",""],["select","ngModel","",3,"multiple",""]],hostBindings:function(n,r){1&n&&F("change",function(i){return r.onChange(i.target.value)})("blur",function(){return r.onTouched()})},inputs:{compareWith:"compareWith"},features:[ve([gF]),ae]}),e})(),JC=(()=>{class e{constructor(n,r,o){this._element=n,this._renderer=r,this._select=o,this._select&&(this.id=this._select._registerOption())}set ngValue(n){null!=this._select&&(this._select._optionMap.set(this.id,n),this._setElementValue(YC(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.\u0275fac=function(n){return new(n||e)(S(wt),S(En),S(tl,9))},e.\u0275dir=B({type:e,selectors:[["option"]],inputs:{ngValue:"ngValue",value:"value"}}),e})();const yF={provide:dn,useExisting:pe(()=>nf),multi:!0};function eD(e,t){return null==e?`${t}`:("string"==typeof t&&(t=`'${t}'`),t&&"object"==typeof t&&(t="Object"),`${e}: ${t}`.slice(0,50))}let nf=(()=>{class e extends vr{constructor(){super(...arguments),this._optionMap=new Map,this._idCounter=0,this._compareWith=Object.is}set compareWith(n){this._compareWith=n}writeValue(n){let r;if(this.value=n,Array.isArray(n)){const o=n.map(i=>this._getOptionId(i));r=(i,s)=>{i._setSelected(o.indexOf(s.toString())>-1)}}else r=(o,i)=>{o._setSelected(!1)};this._optionMap.forEach(r)}registerOnChange(n){this.onChange=r=>{const o=[],i=r.selectedOptions;if(void 0!==i){const s=i;for(let a=0;a{class e{constructor(n,r,o){this._element=n,this._renderer=r,this._select=o,this._select&&(this.id=this._select._registerOption(this))}set ngValue(n){null!=this._select&&(this._value=n,this._setElementValue(eD(this.id,n)),this._select.writeValue(this._select.value))}set value(n){this._select?(this._value=n,this._setElementValue(eD(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.\u0275fac=function(n){return new(n||e)(S(wt),S(En),S(nf,9))},e.\u0275dir=B({type:e,selectors:[["option"]],inputs:{ngValue:"ngValue",value:"value"}}),e})(),_r=(()=>{class e{constructor(){this._validator=za}ngOnChanges(n){if(this.inputName in n){const r=this.normalizeInput(n[this.inputName].currentValue);this._enabled=this.enabled(r),this._validator=this._enabled?this.createValidator(r):za,this._onChange&&this._onChange()}}validate(n){return this._validator(n)}registerOnValidatorChange(n){this._onChange=n}enabled(n){return null!=n}}return e.\u0275fac=function(n){return new(n||e)},e.\u0275dir=B({type:e,features:[At]}),e})();const DF={provide:tt,useExisting:pe(()=>Li),multi:!0};let Li=(()=>{class e extends _r{constructor(){super(...arguments),this.inputName="required",this.normalizeInput=mo,this.createValidator=n=>fC}enabled(n){return n}}return e.\u0275fac=function(){let t;return function(r){return(t||(t=We(e)))(r||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,r){2&n&&$t("required",r._enabled?"":null)},inputs:{required:"required"},features:[ve([DF]),ae]}),e})();const MF={provide:tt,useExisting:pe(()=>rf),multi:!0};let rf=(()=>{class e extends _r{constructor(){super(...arguments),this.inputName="pattern",this.normalizeInput=n=>n,this.createValidator=n=>function yC(e){if(!e)return za;let t,n;return"string"==typeof e?(n="","^"!==e.charAt(0)&&(n+="^"),n+=e,"$"!==e.charAt(e.length-1)&&(n+="$"),t=new RegExp(n)):(n=e.toString(),t=e),r=>{if(zn(r.value))return null;const o=r.value;return t.test(o)?null:{pattern:{requiredPattern:n,actualValue:o}}}}(n)}}return e.\u0275fac=function(){let t;return function(r){return(t||(t=We(e)))(r||e)}}(),e.\u0275dir=B({type:e,selectors:[["","pattern","","formControlName",""],["","pattern","","formControl",""],["","pattern","","ngModel",""]],hostVars:1,hostBindings:function(n,r){2&n&&$t("pattern",r._enabled?r.pattern:null)},inputs:{pattern:"pattern"},features:[ve([MF]),ae]}),e})(),IF=(()=>{class e{}return e.\u0275fac=function(n){return new(n||e)},e.\u0275mod=Lt({type:e}),e.\u0275inj=Mt({imports:[qC]}),e})(),TF=(()=>{class e{static withConfig(n){return{ngModule:e,providers:[{provide:Fi,useValue:n.callSetDisabledState??qd}]}}}return e.\u0275fac=function(n){return new(n||e)},e.\u0275mod=Lt({type:e}),e.\u0275inj=Mt({imports:[IF]}),e})();class Xt extends mn{constructor(t){super(),this._value=t}get value(){return this.getValue()}_subscribe(t){const n=super._subscribe(t);return!n.closed&&t.next(this._value),n}getValue(){const{hasError:t,thrownError:n,_value:r}=this;if(t)throw n;return this._throwIfClosed(),r}next(t){super.next(this._value=t)}}const nl=Ro(e=>function(){e(this),this.name="EmptyError",this.message="no elements in sequence"});function cD(...e){const t=Fo(e),n=ih(e),{args:r,keys:o}=oC(e);if(0===r.length)return Me([],t);const i=new Se(function xF(e,t,n=er){return r=>{dD(t,()=>{const{length:o}=e,i=new Array(o);let s=o,a=o;for(let l=0;l{const u=Me(e[l],t);let c=!1;u.subscribe(Oe(r,d=>{i[l]=d,c||(c=!0,a--),a||r.next(n(i.slice()))},()=>{--s||r.complete()}))},r)},r)}}(r,t,o?s=>sC(o,s):er));return n?i.pipe(iC(n)):i}function dD(e,t,n){e?yn(n,e,t):t()}function sf(...e){return function RF(){return Ar(1)}()(Me(e,Fo(e)))}function fD(e){return new Se(t=>{Yt(e()).subscribe(t)})}function Vi(e,t){const n=he(e)?e:()=>e,r=o=>o.error(n());return new Se(t?o=>t.schedule(r,0,o):r)}function af(){return Be((e,t)=>{let n=null;e._refCount++;const r=Oe(t,void 0,void 0,void 0,()=>{if(!e||e._refCount<=0||0<--e._refCount)return void(n=null);const o=e._connection,i=n;n=null,o&&(!i||o===i)&&o.unsubscribe(),t.unsubscribe()});e.subscribe(r),r.closed||(n=e.connect())})}class hD extends Se{constructor(t,n){super(),this.source=t,this.subjectFactory=n,this._subject=null,this._refCount=0,this._connection=null,zf(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 Et;const n=this.getSubject();t.add(this.source.subscribe(Oe(n,void 0,()=>{this._teardown(),n.complete()},r=>{this._teardown(),n.error(r)},()=>this._teardown()))),t.closed&&(this._connection=null,t=Et.EMPTY)}return t}refCount(){return af()(this)}}function fn(e,t){return Be((n,r)=>{let o=null,i=0,s=!1;const a=()=>s&&!o&&r.complete();n.subscribe(Oe(r,l=>{o?.unsubscribe();let u=0;const c=i++;Yt(e(l,c)).subscribe(o=Oe(r,d=>r.next(t?t(l,d,c,u++):d),()=>{o=null,a()}))},()=>{s=!0,a()}))})}function rl(e){return Be((t,n)=>{let r=!1;t.subscribe(Oe(n,o=>{r=!0,n.next(o)},()=>{r||n.next(e),n.complete()}))})}function pD(e=FF){return Be((t,n)=>{let r=!1;t.subscribe(Oe(n,o=>{r=!0,n.next(o)},()=>r?n.complete():n.error(e())))})}function FF(){return new nl}function Kn(e,t){const n=arguments.length>=2;return r=>r.pipe(e?Qt((o,i)=>e(o,i,r)):er,Tr(1),n?rl(t):pD(()=>new nl))}function nt(e,t,n){const r=he(e)||t||n?{next:e,error:t,complete:n}:e;return r?Be((o,i)=>{var s;null===(s=r.subscribe)||void 0===s||s.call(r);let a=!0;o.subscribe(Oe(i,l=>{var u;null===(u=r.next)||void 0===u||u.call(r,l),i.next(l)},()=>{var l;a=!1,null===(l=r.complete)||void 0===l||l.call(r),i.complete()},l=>{var u;a=!1,null===(u=r.error)||void 0===u||u.call(r,l),i.error(l)},()=>{var l,u;a&&(null===(l=r.unsubscribe)||void 0===l||l.call(r)),null===(u=r.finalize)||void 0===u||u.call(r)}))}):er}function Zn(e){return Be((t,n)=>{let i,r=null,o=!1;r=t.subscribe(Oe(n,void 0,void 0,s=>{i=Yt(e(s,Zn(e)(t))),r?(r.unsubscribe(),r=null,i.subscribe(n)):o=!0})),o&&(r.unsubscribe(),r=null,i.subscribe(n))})}function PF(e,t,n,r,o){return(i,s)=>{let a=n,l=t,u=0;i.subscribe(Oe(s,c=>{const d=u++;l=a?e(l,c,d):(a=!0,c),r&&s.next(l)},o&&(()=>{a&&s.next(l),s.complete()})))}}function gD(e,t){return Be(PF(e,t,arguments.length>=2,!0))}function lf(e){return e<=0?()=>Jt:Be((t,n)=>{let r=[];t.subscribe(Oe(n,o=>{r.push(o),e{for(const o of r)n.next(o);n.complete()},void 0,()=>{r=null}))})}function mD(e,t){const n=arguments.length>=2;return r=>r.pipe(e?Qt((o,i)=>e(o,i,r)):er,lf(1),n?rl(t):pD(()=>new nl))}function uf(e){return Be((t,n)=>{try{t.subscribe(n)}finally{n.add(e)}})}const X="primary",Ui=Symbol("RouteTitle");class LF{constructor(t){this.params=t||{}}has(t){return Object.prototype.hasOwnProperty.call(this.params,t)}get(t){if(this.has(t)){const n=this.params[t];return Array.isArray(n)?n[0]:n}return null}getAll(t){if(this.has(t)){const n=this.params[t];return Array.isArray(n)?n:[n]}return[]}get keys(){return Object.keys(this.params)}}function _o(e){return new LF(e)}function VF(e,t,n){const r=n.path.split("/");if(r.length>e.length||"full"===n.pathMatch&&(t.hasChildren()||r.lengthr[i]===o)}return e===t}function vD(e){return Array.prototype.concat.apply([],e)}function _D(e){return e.length>0?e[e.length-1]:null}function Ke(e,t){for(const n in e)e.hasOwnProperty(n)&&t(e[n],n)}function Qn(e){return gc(e)?e:di(e)?Me(Promise.resolve(e)):k(e)}const ol=!1,HF={exact:function wD(e,t,n){if(!Dr(e.segments,t.segments)||!il(e.segments,t.segments,n)||e.numberOfChildren!==t.numberOfChildren)return!1;for(const r in t.children)if(!e.children[r]||!wD(e.children[r],t.children[r],n))return!1;return!0},subset:bD},CD={exact:function jF(e,t){return hn(e,t)},subset:function BF(e,t){return Object.keys(t).length<=Object.keys(e).length&&Object.keys(t).every(n=>yD(e[n],t[n]))},ignored:()=>!0};function DD(e,t,n){return HF[n.paths](e.root,t.root,n.matrixParams)&&CD[n.queryParams](e.queryParams,t.queryParams)&&!("exact"===n.fragment&&e.fragment!==t.fragment)}function bD(e,t,n){return ED(e,t,t.segments,n)}function ED(e,t,n,r){if(e.segments.length>n.length){const o=e.segments.slice(0,n.length);return!(!Dr(o,n)||t.hasChildren()||!il(o,n,r))}if(e.segments.length===n.length){if(!Dr(e.segments,n)||!il(e.segments,n,r))return!1;for(const o in t.children)if(!e.children[o]||!bD(e.children[o],t.children[o],r))return!1;return!0}{const o=n.slice(0,e.segments.length),i=n.slice(e.segments.length);return!!(Dr(e.segments,o)&&il(e.segments,o,r)&&e.children[X])&&ED(e.children[X],t,i,r)}}function il(e,t,n){return t.every((r,o)=>CD[n](e[o].parameters,r.parameters))}class Cr{constructor(t=new J([],{}),n={},r=null){this.root=t,this.queryParams=n,this.fragment=r}get queryParamMap(){return this._queryParamMap||(this._queryParamMap=_o(this.queryParams)),this._queryParamMap}toString(){return zF.serialize(this)}}class J{constructor(t,n){this.segments=t,this.children=n,this.parent=null,Ke(n,(r,o)=>r.parent=this)}hasChildren(){return this.numberOfChildren>0}get numberOfChildren(){return Object.keys(this.children).length}toString(){return sl(this)}}class Hi{constructor(t,n){this.path=t,this.parameters=n}get parameterMap(){return this._parameterMap||(this._parameterMap=_o(this.parameters)),this._parameterMap}toString(){return ID(this)}}function Dr(e,t){return e.length===t.length&&e.every((n,r)=>n.path===t[r].path)}let ji=(()=>{class e{}return e.\u0275fac=function(n){return new(n||e)},e.\u0275prov=P({token:e,factory:function(){return new cf},providedIn:"root"}),e})();class cf{parse(t){const n=new eP(t);return new Cr(n.parseRootSegment(),n.parseQueryParams(),n.parseFragment())}serialize(t){const n=`/${Bi(t.root,!0)}`,r=function KF(e){const t=Object.keys(e).map(n=>{const r=e[n];return Array.isArray(r)?r.map(o=>`${al(n)}=${al(o)}`).join("&"):`${al(n)}=${al(r)}`}).filter(n=>!!n);return t.length?`?${t.join("&")}`:""}(t.queryParams);return`${n}${r}${"string"==typeof t.fragment?`#${function qF(e){return encodeURI(e)}(t.fragment)}`:""}`}}const zF=new cf;function sl(e){return e.segments.map(t=>ID(t)).join("/")}function Bi(e,t){if(!e.hasChildren())return sl(e);if(t){const n=e.children[X]?Bi(e.children[X],!1):"",r=[];return Ke(e.children,(o,i)=>{i!==X&&r.push(`${i}:${Bi(o,!1)}`)}),r.length>0?`${n}(${r.join("//")})`:n}{const n=function GF(e,t){let n=[];return Ke(e.children,(r,o)=>{o===X&&(n=n.concat(t(r,o)))}),Ke(e.children,(r,o)=>{o!==X&&(n=n.concat(t(r,o)))}),n}(e,(r,o)=>o===X?[Bi(e.children[X],!1)]:[`${o}:${Bi(r,!1)}`]);return 1===Object.keys(e.children).length&&null!=e.children[X]?`${sl(e)}/${n[0]}`:`${sl(e)}/(${n.join("//")})`}}function SD(e){return encodeURIComponent(e).replace(/%40/g,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",")}function al(e){return SD(e).replace(/%3B/gi,";")}function df(e){return SD(e).replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/%26/gi,"&")}function ll(e){return decodeURIComponent(e)}function MD(e){return ll(e.replace(/\+/g,"%20"))}function ID(e){return`${df(e.path)}${function WF(e){return Object.keys(e).map(t=>`;${df(t)}=${df(e[t])}`).join("")}(e.parameters)}`}const ZF=/^[^\/()?;=#]+/;function ul(e){const t=e.match(ZF);return t?t[0]:""}const QF=/^[^=?&#]+/,YF=/^[^&#]+/;class eP{constructor(t){this.url=t,this.remaining=t}parseRootSegment(){return this.consumeOptional("/"),""===this.remaining||this.peekStartsWith("?")||this.peekStartsWith("#")?new J([],{}):new J([],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 n={};this.peekStartsWith("/(")&&(this.capture("/"),n=this.parseParens(!0));let r={};return this.peekStartsWith("(")&&(r=this.parseParens(!1)),(t.length>0||Object.keys(n).length>0)&&(r[X]=new J(t,n)),r}parseSegment(){const t=ul(this.remaining);if(""===t&&this.peekStartsWith(";"))throw new I(4009,ol);return this.capture(t),new Hi(ll(t),this.parseMatrixParams())}parseMatrixParams(){const t={};for(;this.consumeOptional(";");)this.parseParam(t);return t}parseParam(t){const n=ul(this.remaining);if(!n)return;this.capture(n);let r="";if(this.consumeOptional("=")){const o=ul(this.remaining);o&&(r=o,this.capture(r))}t[ll(n)]=ll(r)}parseQueryParam(t){const n=function XF(e){const t=e.match(QF);return t?t[0]:""}(this.remaining);if(!n)return;this.capture(n);let r="";if(this.consumeOptional("=")){const s=function JF(e){const t=e.match(YF);return t?t[0]:""}(this.remaining);s&&(r=s,this.capture(r))}const o=MD(n),i=MD(r);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 n={};for(this.capture("(");!this.consumeOptional(")")&&this.remaining.length>0;){const r=ul(this.remaining),o=this.remaining[r.length];if("/"!==o&&")"!==o&&";"!==o)throw new I(4010,ol);let i;r.indexOf(":")>-1?(i=r.slice(0,r.indexOf(":")),this.capture(i),this.capture(":")):t&&(i=X);const s=this.parseChildren();n[i]=1===Object.keys(s).length?s[X]:new J([],s),this.consumeOptional("//")}return n}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 I(4011,ol)}}function ff(e){return e.segments.length>0?new J([],{[X]:e}):e}function cl(e){const t={};for(const r of Object.keys(e.children)){const i=cl(e.children[r]);(i.segments.length>0||i.hasChildren())&&(t[r]=i)}return function tP(e){if(1===e.numberOfChildren&&e.children[X]){const t=e.children[X];return new J(e.segments.concat(t.segments),t.children)}return e}(new J(e.segments,t))}function wr(e){return e instanceof Cr}function oP(e,t,n,r,o){if(0===n.length)return Co(t.root,t.root,t.root,r,o);const i=function xD(e){if("string"==typeof e[0]&&1===e.length&&"/"===e[0])return new TD(!0,0,e);let t=0,n=!1;const r=e.reduce((o,i,s)=>{if("object"==typeof i&&null!=i){if(i.outlets){const a={};return Ke(i.outlets,(l,u)=>{a[u]="string"==typeof l?l.split("/"):l}),[...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?n=!0:".."===a?t++:""!=a&&o.push(a))}),o):[...o,i]},[]);return new TD(n,t,r)}(n);return i.toRoot()?Co(t.root,t.root,new J([],{}),r,o):function s(l){const u=function sP(e,t,n,r){if(e.isAbsolute)return new Do(t.root,!0,0);if(-1===r)return new Do(n,n===t.root,0);return function RD(e,t,n){let r=e,o=t,i=n;for(;i>o;){if(i-=o,r=r.parent,!r)throw new I(4005,!1);o=r.segments.length}return new Do(r,!1,o-i)}(n,r+($i(e.commands[0])?0:1),e.numberOfDoubleDots)}(i,t,e.snapshot?._urlSegment,l),c=u.processChildren?zi(u.segmentGroup,u.index,i.commands):pf(u.segmentGroup,u.index,i.commands);return Co(t.root,u.segmentGroup,c,r,o)}(e.snapshot?._lastPathIndex)}function $i(e){return"object"==typeof e&&null!=e&&!e.outlets&&!e.segmentPath}function Gi(e){return"object"==typeof e&&null!=e&&e.outlets}function Co(e,t,n,r,o){let s,i={};r&&Ke(r,(l,u)=>{i[u]=Array.isArray(l)?l.map(c=>`${c}`):`${l}`}),s=e===t?n:AD(e,t,n);const a=ff(cl(s));return new Cr(a,i,o)}function AD(e,t,n){const r={};return Ke(e.children,(o,i)=>{r[i]=o===t?n:AD(o,t,n)}),new J(e.segments,r)}class TD{constructor(t,n,r){if(this.isAbsolute=t,this.numberOfDoubleDots=n,this.commands=r,t&&r.length>0&&$i(r[0]))throw new I(4003,!1);const o=r.find(Gi);if(o&&o!==_D(r))throw new I(4004,!1)}toRoot(){return this.isAbsolute&&1===this.commands.length&&"/"==this.commands[0]}}class Do{constructor(t,n,r){this.segmentGroup=t,this.processChildren=n,this.index=r}}function pf(e,t,n){if(e||(e=new J([],{})),0===e.segments.length&&e.hasChildren())return zi(e,t,n);const r=function lP(e,t,n){let r=0,o=t;const i={match:!1,pathIndex:0,commandIndex:0};for(;o=n.length)return i;const s=e.segments[o],a=n[r];if(Gi(a))break;const l=`${a}`,u=r0&&void 0===l)break;if(l&&u&&"object"==typeof u&&void 0===u.outlets){if(!FD(l,u,s))return i;r+=2}else{if(!FD(l,{},s))return i;r++}o++}return{match:!0,pathIndex:o,commandIndex:r}}(e,t,n),o=n.slice(r.commandIndex);if(r.match&&r.pathIndex{"string"==typeof i&&(i=[i]),null!==i&&(o[s]=pf(e.children[s],t,i))}),Ke(e.children,(i,s)=>{void 0===r[s]&&(o[s]=i)}),new J(e.segments,o)}}function gf(e,t,n){const r=e.segments.slice(0,t);let o=0;for(;o{"string"==typeof n&&(n=[n]),null!==n&&(t[r]=gf(new J([],{}),0,n))}),t}function ND(e){const t={};return Ke(e,(n,r)=>t[r]=`${n}`),t}function FD(e,t,n){return e==n.path&&hn(t,n.parameters)}const qi="imperative";class pn{constructor(t,n){this.id=t,this.url=n}}class mf extends pn{constructor(t,n,r="imperative",o=null){super(t,n),this.type=0,this.navigationTrigger=r,this.restoredState=o}toString(){return`NavigationStart(id: ${this.id}, url: '${this.url}')`}}class Xn extends pn{constructor(t,n,r){super(t,n),this.urlAfterRedirects=r,this.type=1}toString(){return`NavigationEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}')`}}class dl extends pn{constructor(t,n,r,o){super(t,n),this.reason=r,this.code=o,this.type=2}toString(){return`NavigationCancel(id: ${this.id}, url: '${this.url}')`}}class PD extends pn{constructor(t,n,r,o){super(t,n),this.reason=r,this.code=o,this.type=16}}class kD extends pn{constructor(t,n,r,o){super(t,n),this.error=r,this.target=o,this.type=3}toString(){return`NavigationError(id: ${this.id}, url: '${this.url}', error: ${this.error})`}}class cP extends pn{constructor(t,n,r,o){super(t,n),this.urlAfterRedirects=r,this.state=o,this.type=4}toString(){return`RoutesRecognized(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class dP extends pn{constructor(t,n,r,o){super(t,n),this.urlAfterRedirects=r,this.state=o,this.type=7}toString(){return`GuardsCheckStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class fP extends pn{constructor(t,n,r,o,i){super(t,n),this.urlAfterRedirects=r,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 hP extends pn{constructor(t,n,r,o){super(t,n),this.urlAfterRedirects=r,this.state=o,this.type=5}toString(){return`ResolveStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class pP extends pn{constructor(t,n,r,o){super(t,n),this.urlAfterRedirects=r,this.state=o,this.type=6}toString(){return`ResolveEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class gP{constructor(t){this.route=t,this.type=9}toString(){return`RouteConfigLoadStart(path: ${this.route.path})`}}class mP{constructor(t){this.route=t,this.type=10}toString(){return`RouteConfigLoadEnd(path: ${this.route.path})`}}class yP{constructor(t){this.snapshot=t,this.type=11}toString(){return`ChildActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class vP{constructor(t){this.snapshot=t,this.type=12}toString(){return`ChildActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class _P{constructor(t){this.snapshot=t,this.type=13}toString(){return`ActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class CP{constructor(t){this.snapshot=t,this.type=14}toString(){return`ActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class OD{constructor(t,n,r){this.routerEvent=t,this.position=n,this.anchor=r,this.type=15}toString(){return`Scroll(anchor: '${this.anchor}', position: '${this.position?`${this.position[0]}, ${this.position[1]}`:null}')`}}let wP=(()=>{class e{createUrlTree(n,r,o,i,s,a){return oP(n||r.root,o,i,s,a)}}return e.\u0275fac=function(n){return new(n||e)},e.\u0275prov=P({token:e,factory:e.\u0275fac}),e})(),bP=(()=>{class e{}return e.\u0275fac=function(n){return new(n||e)},e.\u0275prov=P({token:e,factory:function(t){return wP.\u0275fac(t)},providedIn:"root"}),e})();class LD{constructor(t){this._root=t}get root(){return this._root.value}parent(t){const n=this.pathFromRoot(t);return n.length>1?n[n.length-2]:null}children(t){const n=yf(t,this._root);return n?n.children.map(r=>r.value):[]}firstChild(t){const n=yf(t,this._root);return n&&n.children.length>0?n.children[0].value:null}siblings(t){const n=vf(t,this._root);return n.length<2?[]:n[n.length-2].children.map(o=>o.value).filter(o=>o!==t)}pathFromRoot(t){return vf(t,this._root).map(n=>n.value)}}function yf(e,t){if(e===t.value)return t;for(const n of t.children){const r=yf(e,n);if(r)return r}return null}function vf(e,t){if(e===t.value)return[t];for(const n of t.children){const r=vf(e,n);if(r.length)return r.unshift(t),r}return[]}class kn{constructor(t,n){this.value=t,this.children=n}toString(){return`TreeNode(${this.value})`}}function wo(e){const t={};return e&&e.children.forEach(n=>t[n.value.outlet]=n),t}class VD extends LD{constructor(t,n){super(t),this.snapshot=n,_f(this,t)}toString(){return this.snapshot.toString()}}function UD(e,t){const n=function EP(e,t){const s=new fl([],{},{},"",{},X,t,null,e.root,-1,{});return new jD("",new kn(s,[]))}(e,t),r=new Xt([new Hi("",{})]),o=new Xt({}),i=new Xt({}),s=new Xt({}),a=new Xt(""),l=new br(r,o,s,a,i,X,t,n.root);return l.snapshot=n.root,new VD(new kn(l,[]),n)}class br{constructor(t,n,r,o,i,s,a,l){this.url=t,this.params=n,this.queryParams=r,this.fragment=o,this.data=i,this.outlet=s,this.component=a,this.title=this.data?.pipe(W(u=>u[Ui]))??k(void 0),this._futureSnapshot=l}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(W(t=>_o(t)))),this._paramMap}get queryParamMap(){return this._queryParamMap||(this._queryParamMap=this.queryParams.pipe(W(t=>_o(t)))),this._queryParamMap}toString(){return this.snapshot?this.snapshot.toString():`Future(${this._futureSnapshot})`}}function HD(e,t="emptyOnly"){const n=e.pathFromRoot;let r=0;if("always"!==t)for(r=n.length-1;r>=1;){const o=n[r],i=n[r-1];if(o.routeConfig&&""===o.routeConfig.path)r--;else{if(i.component)break;r--}}return function SP(e){return e.reduce((t,n)=>({params:{...t.params,...n.params},data:{...t.data,...n.data},resolve:{...n.data,...t.resolve,...n.routeConfig?.data,...n._resolvedData}}),{params:{},data:{},resolve:{}})}(n.slice(r))}class fl{get title(){return this.data?.[Ui]}constructor(t,n,r,o,i,s,a,l,u,c,d){this.url=t,this.params=n,this.queryParams=r,this.fragment=o,this.data=i,this.outlet=s,this.component=a,this.routeConfig=l,this._urlSegment=u,this._lastPathIndex=c,this._resolve=d}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=_o(this.params)),this._paramMap}get queryParamMap(){return this._queryParamMap||(this._queryParamMap=_o(this.queryParams)),this._queryParamMap}toString(){return`Route(url:'${this.url.map(r=>r.toString()).join("/")}', path:'${this.routeConfig?this.routeConfig.path:""}')`}}class jD extends LD{constructor(t,n){super(n),this.url=t,_f(this,n)}toString(){return BD(this._root)}}function _f(e,t){t.value._routerState=e,t.children.forEach(n=>_f(e,n))}function BD(e){const t=e.children.length>0?` { ${e.children.map(BD).join(", ")} } `:"";return`${e.value}${t}`}function Cf(e){if(e.snapshot){const t=e.snapshot,n=e._futureSnapshot;e.snapshot=n,hn(t.queryParams,n.queryParams)||e.queryParams.next(n.queryParams),t.fragment!==n.fragment&&e.fragment.next(n.fragment),hn(t.params,n.params)||e.params.next(n.params),function UF(e,t){if(e.length!==t.length)return!1;for(let n=0;nhn(n.parameters,t[r].parameters))}(e.url,t.url);return n&&!(!e.parent!=!t.parent)&&(!e.parent||Df(e.parent,t.parent))}function Wi(e,t,n){if(n&&e.shouldReuseRoute(t.value,n.value.snapshot)){const r=n.value;r._futureSnapshot=t.value;const o=function IP(e,t,n){return t.children.map(r=>{for(const o of n.children)if(e.shouldReuseRoute(r.value,o.value.snapshot))return Wi(e,r,o);return Wi(e,r)})}(e,t,n);return new kn(r,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=>Wi(e,a)),s}}const r=function AP(e){return new br(new Xt(e.url),new Xt(e.params),new Xt(e.queryParams),new Xt(e.fragment),new Xt(e.data),e.outlet,e.component,e)}(t.value),o=t.children.map(i=>Wi(e,i));return new kn(r,o)}}const wf="ngNavigationCancelingError";function $D(e,t){const{redirectTo:n,navigationBehaviorOptions:r}=wr(t)?{redirectTo:t,navigationBehaviorOptions:void 0}:t,o=GD(!1,0,t);return o.url=n,o.navigationBehaviorOptions=r,o}function GD(e,t,n){const r=new Error("NavigationCancelingError: "+(e||""));return r[wf]=!0,r.cancellationCode=t,n&&(r.url=n),r}function zD(e){return qD(e)&&wr(e.url)}function qD(e){return e&&e[wf]}class TP{constructor(){this.outlet=null,this.route=null,this.resolver=null,this.injector=null,this.children=new Ki,this.attachRef=null}}let Ki=(()=>{class e{constructor(){this.contexts=new Map}onChildOutletCreated(n,r){const o=this.getOrCreateContext(n);o.outlet=r,this.contexts.set(n,o)}onChildOutletDestroyed(n){const r=this.getContext(n);r&&(r.outlet=null,r.attachRef=null)}onOutletDeactivated(){const n=this.contexts;return this.contexts=new Map,n}onOutletReAttached(n){this.contexts=n}getOrCreateContext(n){let r=this.getContext(n);return r||(r=new TP,this.contexts.set(n,r)),r}getContext(n){return this.contexts.get(n)||null}}return e.\u0275fac=function(n){return new(n||e)},e.\u0275prov=P({token:e,factory:e.\u0275fac,providedIn:"root"}),e})();const hl=!1;let bf=(()=>{class e{constructor(){this.activated=null,this._activatedRoute=null,this.name=X,this.activateEvents=new Ee,this.deactivateEvents=new Ee,this.attachEvents=new Ee,this.detachEvents=new Ee,this.parentContexts=Y(Ki),this.location=Y(qt),this.changeDetector=Y(Ea),this.environmentInjector=Y(on)}ngOnChanges(n){if(n.name){const{firstChange:r,previousValue:o}=n.name;if(r)return;this.isTrackedInParentContexts(o)&&(this.deactivate(),this.parentContexts.onChildOutletDestroyed(o)),this.initializeOutletWithName()}}ngOnDestroy(){this.isTrackedInParentContexts(this.name)&&this.parentContexts.onChildOutletDestroyed(this.name)}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 I(4012,hl);return this.activated.instance}get activatedRoute(){if(!this.activated)throw new I(4012,hl);return this._activatedRoute}get activatedRouteData(){return this._activatedRoute?this._activatedRoute.snapshot.data:{}}detach(){if(!this.activated)throw new I(4012,hl);this.location.detach();const n=this.activated;return this.activated=null,this._activatedRoute=null,this.detachEvents.emit(n.instance),n}attach(n,r){this.activated=n,this._activatedRoute=r,this.location.insert(n.hostView),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,r){if(this.isActivated)throw new I(4013,hl);this._activatedRoute=n;const o=this.location,s=n.snapshot.component,a=this.parentContexts.getOrCreateContext(this.name).children,l=new xP(n,a,o.injector);if(r&&function RP(e){return!!e.resolveComponentFactory}(r)){const u=r.resolveComponentFactory(s);this.activated=o.createComponent(u,o.length,l)}else this.activated=o.createComponent(s,{index:o.length,injector:l,environmentInjector:r??this.environmentInjector});this.changeDetector.markForCheck(),this.activateEvents.emit(this.activated.instance)}}return e.\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:[At]}),e})();class xP{constructor(t,n,r){this.route=t,this.childContexts=n,this.parent=r}get(t,n){return t===br?this.route:t===Ki?this.childContexts:this.parent.get(t,n)}}let Ef=(()=>{class e{}return e.\u0275fac=function(n){return new(n||e)},e.\u0275cmp=mt({type:e,selectors:[["ng-component"]],standalone:!0,features:[Fy],decls:1,vars:0,template:function(n,r){1&n&&v(0,"router-outlet")},dependencies:[bf],encapsulation:2}),e})();function WD(e,t){return e.providers&&!e._injector&&(e._injector=ga(e.providers,t,`Route: ${e.path}`)),e._injector??t}function Mf(e){const t=e.children&&e.children.map(Mf),n=t?{...e,children:t}:{...e};return!n.component&&!n.loadComponent&&(t||n.loadChildren)&&n.outlet&&n.outlet!==X&&(n.component=Ef),n}function Pt(e){return e.outlet||X}function KD(e,t){const n=e.filter(r=>Pt(r)===t);return n.push(...e.filter(r=>Pt(r)!==t)),n}function Zi(e){if(!e)return null;if(e.routeConfig?._injector)return e.routeConfig._injector;for(let t=e.parent;t;t=t.parent){const n=t.routeConfig;if(n?._loadedInjector)return n._loadedInjector;if(n?._injector)return n._injector}return null}class OP{constructor(t,n,r,o){this.routeReuseStrategy=t,this.futureState=n,this.currState=r,this.forwardEvent=o}activate(t){const n=this.futureState._root,r=this.currState?this.currState._root:null;this.deactivateChildRoutes(n,r,t),Cf(this.futureState.root),this.activateChildRoutes(n,r,t)}deactivateChildRoutes(t,n,r){const o=wo(n);t.children.forEach(i=>{const s=i.value.outlet;this.deactivateRoutes(i,o[s],r),delete o[s]}),Ke(o,(i,s)=>{this.deactivateRouteAndItsChildren(i,r)})}deactivateRoutes(t,n,r){const o=t.value,i=n?n.value:null;if(o===i)if(o.component){const s=r.getContext(o.outlet);s&&this.deactivateChildRoutes(t,n,s.children)}else this.deactivateChildRoutes(t,n,r);else i&&this.deactivateRouteAndItsChildren(n,r)}deactivateRouteAndItsChildren(t,n){t.value.component&&this.routeReuseStrategy.shouldDetach(t.value.snapshot)?this.detachAndStoreRouteSubtree(t,n):this.deactivateRouteAndOutlet(t,n)}detachAndStoreRouteSubtree(t,n){const r=n.getContext(t.value.outlet),o=r&&t.value.component?r.children:n,i=wo(t);for(const s of Object.keys(i))this.deactivateRouteAndItsChildren(i[s],o);if(r&&r.outlet){const s=r.outlet.detach(),a=r.children.onOutletDeactivated();this.routeReuseStrategy.store(t.value.snapshot,{componentRef:s,route:t,contexts:a})}}deactivateRouteAndOutlet(t,n){const r=n.getContext(t.value.outlet),o=r&&t.value.component?r.children:n,i=wo(t);for(const s of Object.keys(i))this.deactivateRouteAndItsChildren(i[s],o);r&&r.outlet&&(r.outlet.deactivate(),r.children.onOutletDeactivated(),r.attachRef=null,r.resolver=null,r.route=null)}activateChildRoutes(t,n,r){const o=wo(n);t.children.forEach(i=>{this.activateRoutes(i,o[i.value.outlet],r),this.forwardEvent(new CP(i.value.snapshot))}),t.children.length&&this.forwardEvent(new vP(t.value.snapshot))}activateRoutes(t,n,r){const o=t.value,i=n?n.value:null;if(Cf(o),o===i)if(o.component){const s=r.getOrCreateContext(o.outlet);this.activateChildRoutes(t,n,s.children)}else this.activateChildRoutes(t,n,r);else if(o.component){const s=r.getOrCreateContext(o.outlet);if(this.routeReuseStrategy.shouldAttach(o.snapshot)){const a=this.routeReuseStrategy.retrieve(o.snapshot);this.routeReuseStrategy.store(o.snapshot,null),s.children.onOutletReAttached(a.contexts),s.attachRef=a.componentRef,s.route=a.route.value,s.outlet&&s.outlet.attach(a.componentRef,a.route.value),Cf(a.route.value),this.activateChildRoutes(t,null,s.children)}else{const a=Zi(o.snapshot),l=a?.get(oi)??null;s.attachRef=null,s.route=o,s.resolver=l,s.injector=a,s.outlet&&s.outlet.activateWith(o,s.injector),this.activateChildRoutes(t,null,s.children)}}else this.activateChildRoutes(t,null,r)}}class ZD{constructor(t){this.path=t,this.route=this.path[this.path.length-1]}}class pl{constructor(t,n){this.component=t,this.route=n}}function LP(e,t,n){const r=e._root;return Qi(r,t?t._root:null,n,[r.value])}function bo(e,t){const n=Symbol(),r=t.get(e,n);return r===n?"function"!=typeof e||function yb(e){return null!==_s(e)}(e)?t.get(e):e:r}function Qi(e,t,n,r,o={canDeactivateChecks:[],canActivateChecks:[]}){const i=wo(t);return e.children.forEach(s=>{(function UP(e,t,n,r,o={canDeactivateChecks:[],canActivateChecks:[]}){const i=e.value,s=t?t.value:null,a=n?n.getContext(e.value.outlet):null;if(s&&i.routeConfig===s.routeConfig){const l=function HP(e,t,n){if("function"==typeof n)return n(e,t);switch(n){case"pathParamsChange":return!Dr(e.url,t.url);case"pathParamsOrQueryParamsChange":return!Dr(e.url,t.url)||!hn(e.queryParams,t.queryParams);case"always":return!0;case"paramsOrQueryParamsChange":return!Df(e,t)||!hn(e.queryParams,t.queryParams);default:return!Df(e,t)}}(s,i,i.routeConfig.runGuardsAndResolvers);l?o.canActivateChecks.push(new ZD(r)):(i.data=s.data,i._resolvedData=s._resolvedData),Qi(e,t,i.component?a?a.children:null:n,r,o),l&&a&&a.outlet&&a.outlet.isActivated&&o.canDeactivateChecks.push(new pl(a.outlet.component,s))}else s&&Xi(t,a,o),o.canActivateChecks.push(new ZD(r)),Qi(e,null,i.component?a?a.children:null:n,r,o)})(s,i[s.value.outlet],n,r.concat([s.value]),o),delete i[s.value.outlet]}),Ke(i,(s,a)=>Xi(s,n.getContext(a),o)),o}function Xi(e,t,n){const r=wo(e),o=e.value;Ke(r,(i,s)=>{Xi(i,o.component?t?t.children.getContext(s):null:t,n)}),n.canDeactivateChecks.push(new pl(o.component&&t&&t.outlet&&t.outlet.isActivated?t.outlet.component:null,o))}function Yi(e){return"function"==typeof e}function If(e){return e instanceof nl||"EmptyError"===e?.name}const gl=Symbol("INITIAL_VALUE");function Eo(){return fn(e=>cD(e.map(t=>t.pipe(Tr(1),function NF(...e){const t=Fo(e);return Be((n,r)=>{(t?sf(e,n,t):sf(e,n)).subscribe(r)})}(gl)))).pipe(W(t=>{for(const n of t)if(!0!==n){if(n===gl)return gl;if(!1===n||n instanceof Cr)return n}return!0}),Qt(t=>t!==gl),Tr(1)))}function QD(e){return function Ow(...e){return Bf(e)}(nt(t=>{if(wr(t))throw $D(0,t)}),W(t=>!0===t))}const Af={matched:!1,consumedSegments:[],remainingSegments:[],parameters:{},positionalParamSegments:{}};function XD(e,t,n,r,o){const i=Tf(e,t,n);return i.matched?function rk(e,t,n,r){const o=t.canMatch;return o&&0!==o.length?k(o.map(s=>{const a=bo(s,e);return Qn(function qP(e){return e&&Yi(e.canMatch)}(a)?a.canMatch(t,n):e.runInContext(()=>a(t,n)))})).pipe(Eo(),QD()):k(!0)}(r=WD(t,r),t,n).pipe(W(s=>!0===s?i:{...Af})):k(i)}function Tf(e,t,n){if(""===t.path)return"full"===t.pathMatch&&(e.hasChildren()||n.length>0)?{...Af}:{matched:!0,consumedSegments:[],remainingSegments:n,parameters:{},positionalParamSegments:{}};const o=(t.matcher||VF)(n,e,t);if(!o)return{...Af};const i={};Ke(o.posParams,(a,l)=>{i[l]=a.path});const s=o.consumed.length>0?{...i,...o.consumed[o.consumed.length-1].parameters}:i;return{matched:!0,consumedSegments:o.consumed,remainingSegments:n.slice(o.consumed.length),parameters:s,positionalParamSegments:o.posParams??{}}}function ml(e,t,n,r){if(n.length>0&&function sk(e,t,n){return n.some(r=>yl(e,t,r)&&Pt(r)!==X)}(e,n,r)){const i=new J(t,function ik(e,t,n,r){const o={};o[X]=r,r._sourceSegment=e,r._segmentIndexShift=t.length;for(const i of n)if(""===i.path&&Pt(i)!==X){const s=new J([],{});s._sourceSegment=e,s._segmentIndexShift=t.length,o[Pt(i)]=s}return o}(e,t,r,new J(n,e.children)));return i._sourceSegment=e,i._segmentIndexShift=t.length,{segmentGroup:i,slicedSegments:[]}}if(0===n.length&&function ak(e,t,n){return n.some(r=>yl(e,t,r))}(e,n,r)){const i=new J(e.segments,function ok(e,t,n,r,o){const i={};for(const s of r)if(yl(e,n,s)&&!o[Pt(s)]){const a=new J([],{});a._sourceSegment=e,a._segmentIndexShift=t.length,i[Pt(s)]=a}return{...o,...i}}(e,t,n,r,e.children));return i._sourceSegment=e,i._segmentIndexShift=t.length,{segmentGroup:i,slicedSegments:n}}const o=new J(e.segments,e.children);return o._sourceSegment=e,o._segmentIndexShift=t.length,{segmentGroup:o,slicedSegments:n}}function yl(e,t,n){return(!(e.hasChildren()||t.length>0)||"full"!==n.pathMatch)&&""===n.path}function YD(e,t,n,r){return!!(Pt(e)===r||r!==X&&yl(t,n,e))&&("**"===e.path||Tf(t,e,n).matched)}function JD(e,t,n){return 0===t.length&&!e.children[n]}const vl=!1;class _l{constructor(t){this.segmentGroup=t||null}}class ew{constructor(t){this.urlTree=t}}function Ji(e){return Vi(new _l(e))}function tw(e){return Vi(new ew(e))}class dk{constructor(t,n,r,o,i){this.injector=t,this.configLoader=n,this.urlSerializer=r,this.urlTree=o,this.config=i,this.allowRedirects=!0}apply(){const t=ml(this.urlTree.root,[],[],this.config).segmentGroup,n=new J(t.segments,t.children);return this.expandSegmentGroup(this.injector,this.config,n,X).pipe(W(i=>this.createUrlTree(cl(i),this.urlTree.queryParams,this.urlTree.fragment))).pipe(Zn(i=>{if(i instanceof ew)return this.allowRedirects=!1,this.match(i.urlTree);throw i instanceof _l?this.noMatchError(i):i}))}match(t){return this.expandSegmentGroup(this.injector,this.config,t.root,X).pipe(W(o=>this.createUrlTree(cl(o),t.queryParams,t.fragment))).pipe(Zn(o=>{throw o instanceof _l?this.noMatchError(o):o}))}noMatchError(t){return new I(4002,vl)}createUrlTree(t,n,r){const o=ff(t);return new Cr(o,n,r)}expandSegmentGroup(t,n,r,o){return 0===r.segments.length&&r.hasChildren()?this.expandChildren(t,n,r).pipe(W(i=>new J([],i))):this.expandSegment(t,r,n,r.segments,o,!0)}expandChildren(t,n,r){const o=[];for(const i of Object.keys(r.children))"primary"===i?o.unshift(i):o.push(i);return Me(o).pipe($n(i=>{const s=r.children[i],a=KD(n,i);return this.expandSegmentGroup(t,a,s,i).pipe(W(l=>({segment:l,outlet:i})))}),gD((i,s)=>(i[s.outlet]=s.segment,i),{}),mD())}expandSegment(t,n,r,o,i,s){return Me(r).pipe($n(a=>this.expandSegmentAgainstRoute(t,n,r,a,o,i,s).pipe(Zn(u=>{if(u instanceof _l)return k(null);throw u}))),Kn(a=>!!a),Zn((a,l)=>{if(If(a))return JD(n,o,i)?k(new J([],{})):Ji(n);throw a}))}expandSegmentAgainstRoute(t,n,r,o,i,s,a){return YD(o,n,i,s)?void 0===o.redirectTo?this.matchSegmentAgainstRoute(t,n,o,i,s):a&&this.allowRedirects?this.expandSegmentAgainstRouteUsingRedirect(t,n,r,o,i,s):Ji(n):Ji(n)}expandSegmentAgainstRouteUsingRedirect(t,n,r,o,i,s){return"**"===o.path?this.expandWildCardWithParamsAgainstRouteUsingRedirect(t,r,o,s):this.expandRegularSegmentAgainstRouteUsingRedirect(t,n,r,o,i,s)}expandWildCardWithParamsAgainstRouteUsingRedirect(t,n,r,o){const i=this.applyRedirectCommands([],r.redirectTo,{});return r.redirectTo.startsWith("/")?tw(i):this.lineralizeSegments(r,i).pipe($e(s=>{const a=new J(s,{});return this.expandSegment(t,a,n,s,o,!1)}))}expandRegularSegmentAgainstRouteUsingRedirect(t,n,r,o,i,s){const{matched:a,consumedSegments:l,remainingSegments:u,positionalParamSegments:c}=Tf(n,o,i);if(!a)return Ji(n);const d=this.applyRedirectCommands(l,o.redirectTo,c);return o.redirectTo.startsWith("/")?tw(d):this.lineralizeSegments(o,d).pipe($e(g=>this.expandSegment(t,n,r,g.concat(u),s,!1)))}matchSegmentAgainstRoute(t,n,r,o,i){return"**"===r.path?(t=WD(r,t),r.loadChildren?(r._loadedRoutes?k({routes:r._loadedRoutes,injector:r._loadedInjector}):this.configLoader.loadChildren(t,r)).pipe(W(a=>(r._loadedRoutes=a.routes,r._loadedInjector=a.injector,new J(o,{})))):k(new J(o,{}))):XD(n,r,o,t).pipe(fn(({matched:s,consumedSegments:a,remainingSegments:l})=>s?this.getChildConfig(t=r._injector??t,r,o).pipe($e(c=>{const d=c.injector??t,g=c.routes,{segmentGroup:m,slicedSegments:y}=ml(n,a,l,g),C=new J(m.segments,m.children);if(0===y.length&&C.hasChildren())return this.expandChildren(d,g,C).pipe(W(D=>new J(a,D)));if(0===g.length&&0===y.length)return k(new J(a,{}));const w=Pt(r)===i;return this.expandSegment(d,C,g,y,w?X:i,!0).pipe(W(A=>new J(a.concat(A.segments),A.children)))})):Ji(n)))}getChildConfig(t,n,r){return n.children?k({routes:n.children,injector:t}):n.loadChildren?void 0!==n._loadedRoutes?k({routes:n._loadedRoutes,injector:n._loadedInjector}):function nk(e,t,n,r){const o=t.canLoad;return void 0===o||0===o.length?k(!0):k(o.map(s=>{const a=bo(s,e);return Qn(function BP(e){return e&&Yi(e.canLoad)}(a)?a.canLoad(t,n):e.runInContext(()=>a(t,n)))})).pipe(Eo(),QD())}(t,n,r).pipe($e(o=>o?this.configLoader.loadChildren(t,n).pipe(nt(i=>{n._loadedRoutes=i.routes,n._loadedInjector=i.injector})):function uk(e){return Vi(GD(vl,3))}())):k({routes:[],injector:t})}lineralizeSegments(t,n){let r=[],o=n.root;for(;;){if(r=r.concat(o.segments),0===o.numberOfChildren)return k(r);if(o.numberOfChildren>1||!o.children[X])return Vi(new I(4e3,vl));o=o.children[X]}}applyRedirectCommands(t,n,r){return this.applyRedirectCreateUrlTree(n,this.urlSerializer.parse(n),t,r)}applyRedirectCreateUrlTree(t,n,r,o){const i=this.createSegmentGroup(t,n.root,r,o);return new Cr(i,this.createQueryParams(n.queryParams,this.urlTree.queryParams),n.fragment)}createQueryParams(t,n){const r={};return Ke(t,(o,i)=>{if("string"==typeof o&&o.startsWith(":")){const a=o.substring(1);r[i]=n[a]}else r[i]=o}),r}createSegmentGroup(t,n,r,o){const i=this.createSegments(t,n.segments,r,o);let s={};return Ke(n.children,(a,l)=>{s[l]=this.createSegmentGroup(t,a,r,o)}),new J(i,s)}createSegments(t,n,r,o){return n.map(i=>i.path.startsWith(":")?this.findPosParam(t,i,o):this.findOrReturn(i,r))}findPosParam(t,n,r){const o=r[n.path.substring(1)];if(!o)throw new I(4001,vl);return o}findOrReturn(t,n){let r=0;for(const o of n){if(o.path===t.path)return n.splice(r),o;r++}return t}}class hk{}class mk{constructor(t,n,r,o,i,s,a){this.injector=t,this.rootComponentType=n,this.config=r,this.urlTree=o,this.url=i,this.paramsInheritanceStrategy=s,this.urlSerializer=a}recognize(){const t=ml(this.urlTree.root,[],[],this.config.filter(n=>void 0===n.redirectTo)).segmentGroup;return this.processSegmentGroup(this.injector,this.config,t,X).pipe(W(n=>{if(null===n)return null;const r=new fl([],Object.freeze({}),Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,{},X,this.rootComponentType,null,this.urlTree.root,-1,{}),o=new kn(r,n),i=new jD(this.url,o);return this.inheritParamsAndData(i._root),i}))}inheritParamsAndData(t){const n=t.value,r=HD(n,this.paramsInheritanceStrategy);n.params=Object.freeze(r.params),n.data=Object.freeze(r.data),t.children.forEach(o=>this.inheritParamsAndData(o))}processSegmentGroup(t,n,r,o){return 0===r.segments.length&&r.hasChildren()?this.processChildren(t,n,r):this.processSegment(t,n,r,r.segments,o)}processChildren(t,n,r){return Me(Object.keys(r.children)).pipe($n(o=>{const i=r.children[o],s=KD(n,o);return this.processSegmentGroup(t,s,i,o)}),gD((o,i)=>o&&i?(o.push(...i),o):null),function kF(e,t=!1){return Be((n,r)=>{let o=0;n.subscribe(Oe(r,i=>{const s=e(i,o++);(s||t)&&r.next(i),!s&&r.complete()}))})}(o=>null!==o),rl(null),mD(),W(o=>{if(null===o)return null;const i=rw(o);return function yk(e){e.sort((t,n)=>t.value.outlet===X?-1:n.value.outlet===X?1:t.value.outlet.localeCompare(n.value.outlet))}(i),i}))}processSegment(t,n,r,o,i){return Me(n).pipe($n(s=>this.processSegmentAgainstRoute(s._injector??t,s,r,o,i)),Kn(s=>!!s),Zn(s=>{if(If(s))return JD(r,o,i)?k([]):k(null);throw s}))}processSegmentAgainstRoute(t,n,r,o,i){if(n.redirectTo||!YD(n,r,o,i))return k(null);let s;if("**"===n.path){const a=o.length>0?_D(o).parameters:{},l=iw(r)+o.length;s=k({snapshot:new fl(o,a,Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,sw(n),Pt(n),n.component??n._loadedComponent??null,n,ow(r),l,aw(n)),consumedSegments:[],remainingSegments:[]})}else s=XD(r,n,o,t).pipe(W(({matched:a,consumedSegments:l,remainingSegments:u,parameters:c})=>{if(!a)return null;const d=iw(r)+l.length;return{snapshot:new fl(l,c,Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,sw(n),Pt(n),n.component??n._loadedComponent??null,n,ow(r),d,aw(n)),consumedSegments:l,remainingSegments:u}}));return s.pipe(fn(a=>{if(null===a)return k(null);const{snapshot:l,consumedSegments:u,remainingSegments:c}=a;t=n._injector??t;const d=n._loadedInjector??t,g=function vk(e){return e.children?e.children:e.loadChildren?e._loadedRoutes:[]}(n),{segmentGroup:m,slicedSegments:y}=ml(r,u,c,g.filter(w=>void 0===w.redirectTo));if(0===y.length&&m.hasChildren())return this.processChildren(d,g,m).pipe(W(w=>null===w?null:[new kn(l,w)]));if(0===g.length&&0===y.length)return k([new kn(l,[])]);const C=Pt(n)===i;return this.processSegment(d,g,m,y,C?X:i).pipe(W(w=>null===w?null:[new kn(l,w)]))}))}}function _k(e){const t=e.value.routeConfig;return t&&""===t.path&&void 0===t.redirectTo}function rw(e){const t=[],n=new Set;for(const r of e){if(!_k(r)){t.push(r);continue}const o=t.find(i=>r.value.routeConfig===i.value.routeConfig);void 0!==o?(o.children.push(...r.children),n.add(o)):t.push(r)}for(const r of n){const o=rw(r.children);t.push(new kn(r.value,o))}return t.filter(r=>!n.has(r))}function ow(e){let t=e;for(;t._sourceSegment;)t=t._sourceSegment;return t}function iw(e){let t=e,n=t._segmentIndexShift??0;for(;t._sourceSegment;)t=t._sourceSegment,n+=t._segmentIndexShift??0;return n-1}function sw(e){return e.data||{}}function aw(e){return e.resolve||{}}function lw(e){return"string"==typeof e.title||null===e.title}function xf(e){return fn(t=>{const n=e(t);return n?Me(n).pipe(W(()=>t)):k(t)})}const So=new N("ROUTES");let Rf=(()=>{class e{constructor(n,r){this.injector=n,this.compiler=r,this.componentLoaders=new WeakMap,this.childrenLoaders=new WeakMap}loadComponent(n){if(this.componentLoaders.get(n))return this.componentLoaders.get(n);if(n._loadedComponent)return k(n._loadedComponent);this.onLoadStartListener&&this.onLoadStartListener(n);const r=Qn(n.loadComponent()).pipe(W(cw),nt(i=>{this.onLoadEndListener&&this.onLoadEndListener(n),n._loadedComponent=i}),uf(()=>{this.componentLoaders.delete(n)})),o=new hD(r,()=>new mn).pipe(af());return this.componentLoaders.set(n,o),o}loadChildren(n,r){if(this.childrenLoaders.get(r))return this.childrenLoaders.get(r);if(r._loadedRoutes)return k({routes:r._loadedRoutes,injector:r._loadedInjector});this.onLoadStartListener&&this.onLoadStartListener(r);const i=this.loadModuleFactoryOrRoutes(r.loadChildren).pipe(W(a=>{this.onLoadEndListener&&this.onLoadEndListener(r);let l,u,c=!1;Array.isArray(a)?u=a:(l=a.create(n).injector,u=vD(l.get(So,[],U.Self|U.Optional)));return{routes:u.map(Mf),injector:l}}),uf(()=>{this.childrenLoaders.delete(r)})),s=new hD(i,()=>new mn).pipe(af());return this.childrenLoaders.set(r,s),s}loadModuleFactoryOrRoutes(n){return Qn(n()).pipe(W(cw),$e(o=>o instanceof Ry||Array.isArray(o)?k(o):Me(this.compiler.compileModuleAsync(o))))}}return e.\u0275fac=function(n){return new(n||e)(R(Bt),R(bv))},e.\u0275prov=P({token:e,factory:e.\u0275fac,providedIn:"root"}),e})();function cw(e){return function Ak(e){return e&&"object"==typeof e&&"default"in e}(e)?e.default:e}let Dl=(()=>{class e{get hasRequestedNavigation(){return 0!==this.navigationId}constructor(){this.currentNavigation=null,this.lastSuccessfulNavigation=null,this.events=new mn,this.configLoader=Y(Rf),this.environmentInjector=Y(on),this.urlSerializer=Y(ji),this.rootContexts=Y(Ki),this.navigationId=0,this.afterPreactivation=()=>k(void 0),this.rootComponentType=null,this.configLoader.onLoadEndListener=o=>this.events.next(new mP(o)),this.configLoader.onLoadStartListener=o=>this.events.next(new gP(o))}complete(){this.transitions?.complete()}handleNavigationRequest(n){const r=++this.navigationId;this.transitions?.next({...this.transitions.value,...n,id:r})}setupNavigations(n){return this.transitions=new Xt({id:0,targetPageId:0,currentUrlTree:n.currentUrlTree,currentRawUrl:n.currentUrlTree,extractedUrl:n.urlHandlingStrategy.extract(n.currentUrlTree),urlAfterRedirects:n.urlHandlingStrategy.extract(n.currentUrlTree),rawUrl:n.currentUrlTree,extras:{},resolve:null,reject:null,promise:Promise.resolve(!0),source:qi,restoredState:null,currentSnapshot:n.routerState.snapshot,targetSnapshot:null,currentRouterState:n.routerState,targetRouterState:null,guards:{canActivateChecks:[],canDeactivateChecks:[]},guardsResult:null}),this.transitions.pipe(Qt(r=>0!==r.id),W(r=>({...r,extractedUrl:n.urlHandlingStrategy.extract(r.rawUrl)})),fn(r=>{let o=!1,i=!1;return k(r).pipe(nt(s=>{this.currentNavigation={id:s.id,initialUrl:s.rawUrl,extractedUrl:s.extractedUrl,trigger:s.source,extras:s.extras,previousNavigation:this.lastSuccessfulNavigation?{...this.lastSuccessfulNavigation,previousNavigation:null}:null}}),fn(s=>{const a=n.browserUrlTree.toString(),l=!n.navigated||s.extractedUrl.toString()!==a||a!==n.currentUrlTree.toString();if(!l&&"reload"!==(s.extras.onSameUrlNavigation??n.onSameUrlNavigation)){const c="";return this.events.next(new PD(s.id,n.serializeUrl(r.rawUrl),c,0)),n.rawUrlTree=s.rawUrl,s.resolve(null),Jt}if(n.urlHandlingStrategy.shouldProcessUrl(s.rawUrl))return dw(s.source)&&(n.browserUrlTree=s.extractedUrl),k(s).pipe(fn(c=>{const d=this.transitions?.getValue();return this.events.next(new mf(c.id,this.urlSerializer.serialize(c.extractedUrl),c.source,c.restoredState)),d!==this.transitions?.getValue()?Jt:Promise.resolve(c)}),function fk(e,t,n,r){return fn(o=>function ck(e,t,n,r,o){return new dk(e,t,n,r,o).apply()}(e,t,n,o.extractedUrl,r).pipe(W(i=>({...o,urlAfterRedirects:i}))))}(this.environmentInjector,this.configLoader,this.urlSerializer,n.config),nt(c=>{this.currentNavigation={...this.currentNavigation,finalUrl:c.urlAfterRedirects},r.urlAfterRedirects=c.urlAfterRedirects}),function Dk(e,t,n,r,o){return $e(i=>function gk(e,t,n,r,o,i,s="emptyOnly"){return new mk(e,t,n,r,o,s,i).recognize().pipe(fn(a=>null===a?function pk(e){return new Se(t=>t.error(e))}(new hk):k(a)))}(e,t,n,i.urlAfterRedirects,r.serialize(i.urlAfterRedirects),r,o).pipe(W(s=>({...i,targetSnapshot:s}))))}(this.environmentInjector,this.rootComponentType,n.config,this.urlSerializer,n.paramsInheritanceStrategy),nt(c=>{if(r.targetSnapshot=c.targetSnapshot,"eager"===n.urlUpdateStrategy){if(!c.extras.skipLocationChange){const g=n.urlHandlingStrategy.merge(c.urlAfterRedirects,c.rawUrl);n.setBrowserUrl(g,c)}n.browserUrlTree=c.urlAfterRedirects}const d=new cP(c.id,this.urlSerializer.serialize(c.extractedUrl),this.urlSerializer.serialize(c.urlAfterRedirects),c.targetSnapshot);this.events.next(d)}));if(l&&n.urlHandlingStrategy.shouldProcessUrl(n.rawUrlTree)){const{id:c,extractedUrl:d,source:g,restoredState:m,extras:y}=s,C=new mf(c,this.urlSerializer.serialize(d),g,m);this.events.next(C);const w=UD(d,this.rootComponentType).snapshot;return k(r={...s,targetSnapshot:w,urlAfterRedirects:d,extras:{...y,skipLocationChange:!1,replaceUrl:!1}})}{const c="";return this.events.next(new PD(s.id,n.serializeUrl(r.extractedUrl),c,1)),n.rawUrlTree=s.rawUrl,s.resolve(null),Jt}}),nt(s=>{const a=new dP(s.id,this.urlSerializer.serialize(s.extractedUrl),this.urlSerializer.serialize(s.urlAfterRedirects),s.targetSnapshot);this.events.next(a)}),W(s=>r={...s,guards:LP(s.targetSnapshot,s.currentSnapshot,this.rootContexts)}),function KP(e,t){return $e(n=>{const{targetSnapshot:r,currentSnapshot:o,guards:{canActivateChecks:i,canDeactivateChecks:s}}=n;return 0===s.length&&0===i.length?k({...n,guardsResult:!0}):function ZP(e,t,n,r){return Me(e).pipe($e(o=>function tk(e,t,n,r,o){const i=t&&t.routeConfig?t.routeConfig.canDeactivate:null;return i&&0!==i.length?k(i.map(a=>{const l=Zi(t)??o,u=bo(a,l);return Qn(function zP(e){return e&&Yi(e.canDeactivate)}(u)?u.canDeactivate(e,t,n,r):l.runInContext(()=>u(e,t,n,r))).pipe(Kn())})).pipe(Eo()):k(!0)}(o.component,o.route,n,t,r)),Kn(o=>!0!==o,!0))}(s,r,o,e).pipe($e(a=>a&&function jP(e){return"boolean"==typeof e}(a)?function QP(e,t,n,r){return Me(t).pipe($n(o=>sf(function YP(e,t){return null!==e&&t&&t(new yP(e)),k(!0)}(o.route.parent,r),function XP(e,t){return null!==e&&t&&t(new _P(e)),k(!0)}(o.route,r),function ek(e,t,n){const r=t[t.length-1],i=t.slice(0,t.length-1).reverse().map(s=>function VP(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=>fD(()=>k(s.guards.map(l=>{const u=Zi(s.node)??n,c=bo(l,u);return Qn(function GP(e){return e&&Yi(e.canActivateChild)}(c)?c.canActivateChild(r,e):u.runInContext(()=>c(r,e))).pipe(Kn())})).pipe(Eo())));return k(i).pipe(Eo())}(e,o.path,n),function JP(e,t,n){const r=t.routeConfig?t.routeConfig.canActivate:null;if(!r||0===r.length)return k(!0);const o=r.map(i=>fD(()=>{const s=Zi(t)??n,a=bo(i,s);return Qn(function $P(e){return e&&Yi(e.canActivate)}(a)?a.canActivate(t,e):s.runInContext(()=>a(t,e))).pipe(Kn())}));return k(o).pipe(Eo())}(e,o.route,n))),Kn(o=>!0!==o,!0))}(r,i,e,t):k(a)),W(a=>({...n,guardsResult:a})))})}(this.environmentInjector,s=>this.events.next(s)),nt(s=>{if(r.guardsResult=s.guardsResult,wr(s.guardsResult))throw $D(0,s.guardsResult);const a=new fP(s.id,this.urlSerializer.serialize(s.extractedUrl),this.urlSerializer.serialize(s.urlAfterRedirects),s.targetSnapshot,!!s.guardsResult);this.events.next(a)}),Qt(s=>!!s.guardsResult||(n.restoreHistory(s),this.cancelNavigationTransition(s,"",3,n),!1)),xf(s=>{if(s.guards.canActivateChecks.length)return k(s).pipe(nt(a=>{const l=new hP(a.id,this.urlSerializer.serialize(a.extractedUrl),this.urlSerializer.serialize(a.urlAfterRedirects),a.targetSnapshot);this.events.next(l)}),fn(a=>{let l=!1;return k(a).pipe(function wk(e,t){return $e(n=>{const{targetSnapshot:r,guards:{canActivateChecks:o}}=n;if(!o.length)return k(n);let i=0;return Me(o).pipe($n(s=>function bk(e,t,n,r){const o=e.routeConfig,i=e._resolve;return void 0!==o?.title&&!lw(o)&&(i[Ui]=o.title),function Ek(e,t,n,r){const o=function Sk(e){return[...Object.keys(e),...Object.getOwnPropertySymbols(e)]}(e);if(0===o.length)return k({});const i={};return Me(o).pipe($e(s=>function Mk(e,t,n,r){const o=Zi(t)??r,i=bo(e,o);return Qn(i.resolve?i.resolve(t,n):o.runInContext(()=>i(t,n)))}(e[s],t,n,r).pipe(Kn(),nt(a=>{i[s]=a}))),lf(1),function OF(e){return W(()=>e)}(i),Zn(s=>If(s)?Jt:Vi(s)))}(i,e,t,r).pipe(W(s=>(e._resolvedData=s,e.data=HD(e,n).resolve,o&&lw(o)&&(e.data[Ui]=o.title),null)))}(s.route,r,e,t)),nt(()=>i++),lf(1),$e(s=>i===o.length?k(n):Jt))})}(n.paramsInheritanceStrategy,this.environmentInjector),nt({next:()=>l=!0,complete:()=>{l||(n.restoreHistory(a),this.cancelNavigationTransition(a,"",2,n))}}))}),nt(a=>{const l=new pP(a.id,this.urlSerializer.serialize(a.extractedUrl),this.urlSerializer.serialize(a.urlAfterRedirects),a.targetSnapshot);this.events.next(l)}))}),xf(s=>{const a=l=>{const u=[];l.routeConfig?.loadComponent&&!l.routeConfig._loadedComponent&&u.push(this.configLoader.loadComponent(l.routeConfig).pipe(nt(c=>{l.component=c}),W(()=>{})));for(const c of l.children)u.push(...a(c));return u};return cD(a(s.targetSnapshot.root)).pipe(rl(),Tr(1))}),xf(()=>this.afterPreactivation()),W(s=>{const a=function MP(e,t,n){const r=Wi(e,t._root,n?n._root:void 0);return new VD(r,t)}(n.routeReuseStrategy,s.targetSnapshot,s.currentRouterState);return r={...s,targetRouterState:a}}),nt(s=>{n.currentUrlTree=s.urlAfterRedirects,n.rawUrlTree=n.urlHandlingStrategy.merge(s.urlAfterRedirects,s.rawUrl),n.routerState=s.targetRouterState,"deferred"===n.urlUpdateStrategy&&(s.extras.skipLocationChange||n.setBrowserUrl(n.rawUrlTree,s),n.browserUrlTree=s.urlAfterRedirects)}),((e,t,n)=>W(r=>(new OP(t,r.targetRouterState,r.currentRouterState,n).activate(e),r)))(this.rootContexts,n.routeReuseStrategy,s=>this.events.next(s)),nt({next:s=>{o=!0,this.lastSuccessfulNavigation=this.currentNavigation,n.navigated=!0,this.events.next(new Xn(s.id,this.urlSerializer.serialize(s.extractedUrl),this.urlSerializer.serialize(n.currentUrlTree))),n.titleStrategy?.updateTitle(s.targetRouterState.snapshot),s.resolve(!0)},complete:()=>{o=!0}}),uf(()=>{o||i||this.cancelNavigationTransition(r,"",1,n),this.currentNavigation?.id===r.id&&(this.currentNavigation=null)}),Zn(s=>{if(i=!0,qD(s)){zD(s)||(n.navigated=!0,n.restoreHistory(r,!0));const a=new dl(r.id,this.urlSerializer.serialize(r.extractedUrl),s.message,s.cancellationCode);if(this.events.next(a),zD(s)){const l=n.urlHandlingStrategy.merge(s.url,n.rawUrlTree),u={skipLocationChange:r.extras.skipLocationChange,replaceUrl:"eager"===n.urlUpdateStrategy||dw(r.source)};n.scheduleNavigation(l,qi,null,u,{resolve:r.resolve,reject:r.reject,promise:r.promise})}else r.resolve(!1)}else{n.restoreHistory(r,!0);const a=new kD(r.id,this.urlSerializer.serialize(r.extractedUrl),s,r.targetSnapshot??void 0);this.events.next(a);try{r.resolve(n.errorHandler(s))}catch(l){r.reject(l)}}return Jt}))}))}cancelNavigationTransition(n,r,o,i){const s=new dl(n.id,this.urlSerializer.serialize(n.extractedUrl),r,o);this.events.next(s),n.resolve(!1)}}return e.\u0275fac=function(n){return new(n||e)},e.\u0275prov=P({token:e,factory:e.\u0275fac,providedIn:"root"}),e})();function dw(e){return e!==qi}let fw=(()=>{class e{buildTitle(n){let r,o=n.root;for(;void 0!==o;)r=this.getResolvedTitleForRoute(o)??r,o=o.children.find(i=>i.outlet===X);return r}getResolvedTitleForRoute(n){return n.data[Ui]}}return e.\u0275fac=function(n){return new(n||e)},e.\u0275prov=P({token:e,factory:function(){return Y(Tk)},providedIn:"root"}),e})(),Tk=(()=>{class e extends fw{constructor(n){super(),this.title=n}updateTitle(n){const r=this.buildTitle(n);void 0!==r&&this.title.setTitle(r)}}return e.\u0275fac=function(n){return new(n||e)(R(H_))},e.\u0275prov=P({token:e,factory:e.\u0275fac,providedIn:"root"}),e})(),xk=(()=>{class e{}return e.\u0275fac=function(n){return new(n||e)},e.\u0275prov=P({token:e,factory:function(){return Y(Nk)},providedIn:"root"}),e})();class Rk{shouldDetach(t){return!1}store(t,n){}shouldAttach(t){return!1}retrieve(t){return null}shouldReuseRoute(t,n){return t.routeConfig===n.routeConfig}}let Nk=(()=>{class e extends Rk{}return e.\u0275fac=function(){let t;return function(r){return(t||(t=We(e)))(r||e)}}(),e.\u0275prov=P({token:e,factory:e.\u0275fac,providedIn:"root"}),e})();const wl=new N("",{providedIn:"root",factory:()=>({})});let Pk=(()=>{class e{}return e.\u0275fac=function(n){return new(n||e)},e.\u0275prov=P({token:e,factory:function(){return Y(kk)},providedIn:"root"}),e})(),kk=(()=>{class e{shouldProcessUrl(n){return!0}extract(n){return n}merge(n,r){return n}}return e.\u0275fac=function(n){return new(n||e)},e.\u0275prov=P({token:e,factory:e.\u0275fac,providedIn:"root"}),e})();function Ok(e){throw e}function Lk(e,t,n){return t.parse("/")}const Vk={paths:"exact",fragment:"ignored",matrixParams:"ignored",queryParams:"exact"},Uk={paths:"subset",fragment:"ignored",matrixParams:"ignored",queryParams:"subset"};let pt=(()=>{class e{get navigationId(){return this.navigationTransitions.navigationId}get browserPageId(){return this.location.getState()?.\u0275routerPageId}get events(){return this.navigationTransitions.events}constructor(){this.disposed=!1,this.currentPageId=0,this.console=Y(GA),this.isNgZoneEnabled=!1,this.options=Y(wl,{optional:!0})||{},this.errorHandler=this.options.errorHandler||Ok,this.malformedUriErrorHandler=this.options.malformedUriErrorHandler||Lk,this.navigated=!1,this.lastSuccessfulId=-1,this.urlHandlingStrategy=Y(Pk),this.routeReuseStrategy=Y(xk),this.urlCreationStrategy=Y(bP),this.titleStrategy=Y(fw),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=vD(Y(So,{optional:!0})??[]),this.navigationTransitions=Y(Dl),this.urlSerializer=Y(ji),this.location=Y(od),this.isNgZoneEnabled=Y(Ne)instanceof Ne&&Ne.isInAngularZone(),this.resetConfig(this.config),this.currentUrlTree=new Cr,this.rawUrlTree=this.currentUrlTree,this.browserUrlTree=this.currentUrlTree,this.routerState=UD(this.currentUrlTree,null),this.navigationTransitions.setupNavigations(this).subscribe(n=>{this.lastSuccessfulId=n.id,this.currentPageId=n.targetPageId},n=>{this.console.warn(`Unhandled Navigation Error: ${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),qi,n)}}setUpLocationChangeListener(){this.locationSubscription||(this.locationSubscription=this.location.subscribe(n=>{const r="popstate"===n.type?"popstate":"hashchange";"popstate"===r&&setTimeout(()=>{this.navigateToSyncWithBrowser(n.url,r,n.state)},0)}))}navigateToSyncWithBrowser(n,r,o){const i={replaceUrl:!0},s=o?.navigationId?o:null;if(o){const l={...o};delete l.navigationId,delete l.\u0275routerPageId,0!==Object.keys(l).length&&(i.state=l)}const a=this.parseUrl(n);this.scheduleNavigation(a,r,s,i)}get url(){return this.serializeUrl(this.currentUrlTree)}getCurrentNavigation(){return this.navigationTransitions.currentNavigation}resetConfig(n){this.config=n.map(Mf),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}createUrlTree(n,r={}){const{relativeTo:o,queryParams:i,fragment:s,queryParamsHandling:a,preserveFragment:l}=r,u=l?this.currentUrlTree.fragment:s;let c=null;switch(a){case"merge":c={...this.currentUrlTree.queryParams,...i};break;case"preserve":c=this.currentUrlTree.queryParams;break;default:c=i||null}return null!==c&&(c=this.removeEmptyProps(c)),this.urlCreationStrategy.createUrlTree(o,this.routerState,this.currentUrlTree,n,c,u??null)}navigateByUrl(n,r={skipLocationChange:!1}){const o=wr(n)?n:this.parseUrl(n),i=this.urlHandlingStrategy.merge(o,this.rawUrlTree);return this.scheduleNavigation(i,qi,null,r)}navigate(n,r={skipLocationChange:!1}){return function Hk(e){for(let t=0;t{const i=n[o];return null!=i&&(r[o]=i),r},{})}scheduleNavigation(n,r,o,i,s){if(this.disposed)return Promise.resolve(!1);let a,l,u,c;return s?(a=s.resolve,l=s.reject,u=s.promise):u=new Promise((d,g)=>{a=d,l=g}),c="computed"===this.canceledNavigationResolution?o&&o.\u0275routerPageId?o.\u0275routerPageId:i.replaceUrl||i.skipLocationChange?this.browserPageId??0:(this.browserPageId??0)+1:0,this.navigationTransitions.handleNavigationRequest({targetPageId:c,source:r,restoredState:o,currentUrlTree:this.currentUrlTree,currentRawUrl:this.currentUrlTree,rawUrl:n,extras:i,resolve:a,reject:l,promise:u,currentSnapshot:this.routerState.snapshot,currentRouterState:this.routerState}),u.catch(d=>Promise.reject(d))}setBrowserUrl(n,r){const o=this.urlSerializer.serialize(n),i={...r.extras.state,...this.generateNgRouterState(r.id,r.targetPageId)};this.location.isCurrentPathEqualTo(o)||r.extras.replaceUrl?this.location.replaceState(o,"",i):this.location.go(o,"",i)}restoreHistory(n,r=!1){if("computed"===this.canceledNavigationResolution){const o=this.currentPageId-n.targetPageId;"popstate"!==n.source&&"eager"!==this.urlUpdateStrategy&&this.currentUrlTree!==this.getCurrentNavigation()?.finalUrl||0===o?this.currentUrlTree===this.getCurrentNavigation()?.finalUrl&&0===o&&(this.resetState(n),this.browserUrlTree=n.currentUrlTree,this.resetUrlToCurrentUrlTree()):this.location.historyGo(o)}else"replace"===this.canceledNavigationResolution&&(r&&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,r){return"computed"===this.canceledNavigationResolution?{navigationId:n,\u0275routerPageId:r}:{navigationId:n}}}return e.\u0275fac=function(n){return new(n||e)},e.\u0275prov=P({token:e,factory:e.\u0275fac,providedIn:"root"}),e})(),gn=(()=>{class e{constructor(n,r,o,i,s,a){this.router=n,this.route=r,this.tabIndexAttribute=o,this.renderer=i,this.el=s,this.locationStrategy=a,this._preserveFragment=!1,this._skipLocationChange=!1,this._replaceUrl=!1,this.href=null,this.commands=null,this.onChanges=new mn;const l=s.nativeElement.tagName;this.isAnchorElement="A"===l||"AREA"===l,this.isAnchorElement?this.subscription=n.events.subscribe(u=>{u instanceof Xn&&this.updateHref()}):this.setTabIndexIfNotOnNativeEl("0")}set preserveFragment(n){this._preserveFragment=mo(n)}get preserveFragment(){return this._preserveFragment}set skipLocationChange(n){this._skipLocationChange=mo(n)}get skipLocationChange(){return this._skipLocationChange}set replaceUrl(n){this._replaceUrl=mo(n)}get replaceUrl(){return this._replaceUrl}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,r,o,i,s){return!!(null===this.urlTree||this.isAnchorElement&&(0!==n||r||o||i||s||"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 tg(e,t,n){return function z0(e,t){return"src"===t&&("embed"===e||"frame"===e||"iframe"===e||"media"===e||"script"===e)||"href"===t&&("base"===e||"link"===e)?eg:Wr}(t,n)(e)}(this.href,this.el.nativeElement.tagName.toLowerCase(),"href");this.applyAttributeValue("href",n)}applyAttributeValue(n,r){const o=this.renderer,i=this.el.nativeElement;null!==r?o.setAttribute(i,n,r):o.removeAttribute(i,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.\u0275fac=function(n){return new(n||e)(S(pt),S(br),function Us(e){return function gE(e,t){if("class"===t)return e.classes;if("style"===t)return e.styles;const n=e.attrs;if(n){const r=n.length;let o=0;for(;o{class e{get isActive(){return this._isActive}constructor(n,r,o,i,s){this.router=n,this.element=r,this.renderer=o,this.cdr=i,this.link=s,this.classes=[],this._isActive=!1,this.routerLinkActiveOptions={exact:!1},this.isActiveChange=new Ee,this.routerEventsSubscription=n.events.subscribe(a=>{a instanceof Xn&&this.update()})}ngAfterContentInit(){k(this.links.changes,k(null)).pipe(Ar()).subscribe(n=>{this.update(),this.subscribeToEachLinkOnChanges()})}subscribeToEachLinkOnChanges(){this.linkInputChangesSubscription?.unsubscribe();const n=[...this.links.toArray(),this.link].filter(r=>!!r).map(r=>r.onChanges);this.linkInputChangesSubscription=Me(n).pipe(Ar()).subscribe(r=>{this._isActive!==this.isLinkActive(this.router)(r)&&this.update()})}set routerLinkActive(n){const r=Array.isArray(n)?n:n.split(" ");this.classes=r.filter(o=>!!o)}ngOnChanges(n){this.update()}ngOnDestroy(){this.routerEventsSubscription.unsubscribe(),this.linkInputChangesSubscription?.unsubscribe()}update(){!this.links||!this.router.navigated||Promise.resolve().then(()=>{const n=this.hasActiveLinks();this._isActive!==n&&(this._isActive=n,this.cdr.markForCheck(),this.classes.forEach(r=>{n?this.renderer.addClass(this.element.nativeElement,r):this.renderer.removeClass(this.element.nativeElement,r)}),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 r=function jk(e){return!!e.paths}(this.routerLinkActiveOptions)?this.routerLinkActiveOptions:this.routerLinkActiveOptions.exact||!1;return o=>!!o.urlTree&&n.isActive(o.urlTree,r)}hasActiveLinks(){const n=this.isLinkActive(this.router);return this.link&&n(this.link)||this.links.some(n)}}return e.\u0275fac=function(n){return new(n||e)(S(pt),S(wt),S(En),S(Ea),S(gn,8))},e.\u0275dir=B({type:e,selectors:[["","routerLinkActive",""]],contentQueries:function(n,r,o){if(1&n&&Xy(o,gn,5),2&n){let i;Qy(i=function Yy(){return function wA(e,t){return e[19].queries[t].queryList}(b(),Vh())}())&&(r.links=i)}},inputs:{routerLinkActiveOptions:"routerLinkActiveOptions",ariaCurrentWhenActive:"ariaCurrentWhenActive",routerLinkActive:"routerLinkActive"},outputs:{isActiveChange:"isActiveChange"},exportAs:["routerLinkActive"],standalone:!0,features:[At]}),e})();class gw{}let Bk=(()=>{class e{constructor(n,r,o,i,s){this.router=n,this.injector=o,this.preloadingStrategy=i,this.loader=s}setUpPreloading(){this.subscription=this.router.events.pipe(Qt(n=>n instanceof Xn),$n(()=>this.preload())).subscribe(()=>{})}preload(){return this.processRoutes(this.injector,this.router.config)}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}processRoutes(n,r){const o=[];for(const i of r){i.providers&&!i._injector&&(i._injector=ga(i.providers,n,`Route: ${i.path}`));const s=i._injector??n,a=i._loadedInjector??s;i.loadChildren&&!i._loadedRoutes&&void 0===i.canLoad||i.loadComponent&&!i._loadedComponent?o.push(this.preloadConfig(s,i)):(i.children||i._loadedRoutes)&&o.push(this.processRoutes(a,i.children??i._loadedRoutes))}return Me(o).pipe(Ar())}preloadConfig(n,r){return this.preloadingStrategy.preload(r,()=>{let o;o=r.loadChildren&&void 0===r.canLoad?this.loader.loadChildren(n,r):k(null);const i=o.pipe($e(s=>null===s?k(void 0):(r._loadedRoutes=s.routes,r._loadedInjector=s.injector,this.processRoutes(s.injector??n,s.routes))));return r.loadComponent&&!r._loadedComponent?Me([i,this.loader.loadComponent(r)]).pipe(Ar()):i})}}return e.\u0275fac=function(n){return new(n||e)(R(pt),R(bv),R(on),R(gw),R(Rf))},e.\u0275prov=P({token:e,factory:e.\u0275fac,providedIn:"root"}),e})();const Nf=new N("");let mw=(()=>{class e{constructor(n,r,o,i,s={}){this.urlSerializer=n,this.transitions=r,this.viewportScroller=o,this.zone=i,this.options=s,this.lastId=0,this.lastSource="imperative",this.restoredId=0,this.store={},s.scrollPositionRestoration=s.scrollPositionRestoration||"disabled",s.anchorScrolling=s.anchorScrolling||"disabled"}init(){"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.setHistoryScrollRestoration("manual"),this.routerEventsSubscription=this.createScrollEvents(),this.scrollEventsSubscription=this.consumeScrollEvents()}createScrollEvents(){return this.transitions.events.subscribe(n=>{n instanceof mf?(this.store[this.lastId]=this.viewportScroller.getScrollPosition(),this.lastSource=n.navigationTrigger,this.restoredId=n.restoredState?n.restoredState.navigationId:0):n instanceof Xn&&(this.lastId=n.id,this.scheduleScrollEvent(n,this.urlSerializer.parse(n.urlAfterRedirects).fragment))})}consumeScrollEvents(){return this.transitions.events.subscribe(n=>{n instanceof OD&&(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,r){this.zone.runOutsideAngular(()=>{setTimeout(()=>{this.zone.run(()=>{this.transitions.events.next(new OD(n,"popstate"===this.lastSource?this.store[this.restoredId]:null,r))})},0)})}ngOnDestroy(){this.routerEventsSubscription?.unsubscribe(),this.scrollEventsSubscription?.unsubscribe()}}return e.\u0275fac=function(n){!function Ng(){throw new Error("invalid")}()},e.\u0275prov=P({token:e,factory:e.\u0275fac}),e})();function Er(e,t){return{\u0275kind:e,\u0275providers:t}}function vw(){const e=Y(Bt);return t=>{const n=e.get(wa);if(t!==n.components[0])return;const r=e.get(pt),o=e.get(_w);1===e.get(Pf)&&r.initialNavigation(),e.get(Cw,null,U.Optional)?.setUpPreloading(),e.get(Nf,null,U.Optional)?.init(),r.resetRootComponentType(n.componentTypes[0]),o.closed||(o.next(),o.unsubscribe())}}const _w=new N("",{factory:()=>new mn}),Pf=new N("",{providedIn:"root",factory:()=>1});const Cw=new N("");function Wk(e){return Er(0,[{provide:Cw,useExisting:Bk},{provide:gw,useExisting:e}])}const Dw=new N("ROUTER_FORROOT_GUARD"),Kk=[od,{provide:ji,useClass:cf},pt,Ki,{provide:br,useFactory:function yw(e){return e.routerState.root},deps:[pt]},Rf,[]];function Zk(){return new xv("Router",pt)}let ww=(()=>{class e{constructor(n){}static forRoot(n,r){return{ngModule:e,providers:[Kk,[],{provide:So,multi:!0,useValue:n},{provide:Dw,useFactory:Jk,deps:[[pt,new Ko,new Zo]]},{provide:wl,useValue:r||{}},r?.useHash?{provide:yr,useClass:RT}:{provide:yr,useClass:Jv},{provide:Nf,useFactory:()=>{const e=Y(Zx),t=Y(Ne),n=Y(wl),r=Y(Dl),o=Y(ji);return n.scrollOffset&&e.setOffset(n.scrollOffset),new mw(o,r,e,t,n)}},r?.preloadingStrategy?Wk(r.preloadingStrategy).\u0275providers:[],{provide:xv,multi:!0,useFactory:Zk},r?.initialNavigation?eO(r):[],[{provide:bw,useFactory:vw},{provide:wv,multi:!0,useExisting:bw}]]}}static forChild(n){return{ngModule:e,providers:[{provide:So,multi:!0,useValue:n}]}}}return e.\u0275fac=function(n){return new(n||e)(R(Dw,8))},e.\u0275mod=Lt({type:e}),e.\u0275inj=Mt({imports:[Ef]}),e})();function Jk(e){return"guarded"}function eO(e){return["disabled"===e.initialNavigation?Er(3,[{provide:_a,multi:!0,useFactory:()=>{const t=Y(pt);return()=>{t.setUpLocationChangeListener()}}},{provide:Pf,useValue:2}]).\u0275providers:[],"enabledBlocking"===e.initialNavigation?Er(2,[{provide:Pf,useValue:0},{provide:_a,multi:!0,deps:[Bt],useFactory:t=>{const n=t.get(TT,Promise.resolve());return()=>n.then(()=>new Promise(o=>{const i=t.get(pt),s=t.get(_w);(function r(o){t.get(pt).events.pipe(Qt(s=>s instanceof Xn||s instanceof dl||s instanceof kD),W(s=>s instanceof Xn||s instanceof dl&&(0===s.code||1===s.code)&&null),Qt(s=>null!==s),Tr(1)).subscribe(()=>{o()})})(()=>{o(!0)}),t.get(Dl).afterPreactivation=()=>(o(!0),s.closed?k(void 0):s),i.initialNavigation()}))}}]).\u0275providers:[]]}const bw=new N("");class nO{constructor(){this.name="",this.email="",this.message=""}}const je_apiBaseUrl="https://www.palmmedia.de/api/";class Sr{constructor(t){this.httpClient=t}postContactForm(t){return this.httpClient.post(`${je_apiBaseUrl}contact`,t)}}function rO(e,t){if(1&e){const n=Ge();h(0,"form",5,6),F("ngSubmit",function(){return ce(n),de(H().submit())}),h(2,"div",7)(3,"label",8),f(4,"Name "),h(5,"span",9),f(6,"*"),p()(),h(7,"input",10),F("ngModelChange",function(o){return ce(n),de(H().contactViewModel.name=o)}),p()(),h(8,"div",7)(9,"label",11),f(10,"E-Mail "),h(11,"span",9),f(12,"*"),p()(),h(13,"input",12),F("ngModelChange",function(o){return ce(n),de(H().contactViewModel.email=o)}),p()(),h(14,"div",7)(15,"label",13),f(16,"Nachricht "),h(17,"span",9),f(18,"*"),p()(),h(19,"textarea",14),F("ngModelChange",function(o){return ce(n),de(H().contactViewModel.message=o)}),p()(),h(20,"button",15),f(21,"Submit"),p()()}if(2&e){const n=function lm(e){return function Or(e,t){return e[t]}(function Zb(){return z.lFrame.contextLView}(),22+e)}(1),r=H();_(7),E("ngModel",r.contactViewModel.name),_(6),E("ngModel",r.contactViewModel.email),_(6),E("ngModel",r.contactViewModel.message),_(1),E("disabled",!n.valid||r.enableFormCountDown>0)}}function oO(e,t){1&e&&(h(0,"p"),f(1,"Thanks for your message."),p())}function iO(e,t){1&e&&(h(0,"p",16),f(1,"Something went wrong. Please try again later."),p())}Sr.\u0275fac=function(t){return new(t||Sr)(R(Fd))},Sr.\u0275prov=P({token:Sr,factory:Sr.\u0275fac});class ts{constructor(t){this.contactService=t,this.contactViewModel=new nO,this.success=!1,this.error=!1,this.enableFormCountDown=100,this.intervalId=null}ngOnInit(){this.intervalId=setInterval(()=>{this.enableFormCountDown-=1,0===this.enableFormCountDown&&clearInterval(this.intervalId)},50)}ngOnDestroy(){this.intervalId&&clearInterval(this.intervalId)}submit(){this.contactService.postContactForm(this.contactViewModel).subscribe({next:t=>{console.log("Submitted form"),this.success=!0},error:t=>{console.error(t),this.error=!0},complete:()=>console.info("complete")})}}ts.\u0275fac=function(t){return new(t||ts)(S(Sr))},ts.\u0275cmp=mt({type:ts,selectors:[["app-contact-component"]],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","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(t,n){1&t&&(h(0,"div",0)(1,"h1",1),f(2,"Contact"),p(),$(3,rO,22,4,"form",2),$(4,oO,2,0,"p",3),$(5,iO,2,0,"p",4),p()),2&t&&(_(3),E("ngIf",!n.success&&!n.error),_(1),E("ngIf",n.success),_(1),E("ngIf",n.error))},dependencies:[La,Xd,xi,Vd,Ud,Li,el,Oi],styles:[".required[_ngcontent-%COMP%]{color:#1c8eb7}"]});const Ew=function(){return["/pro"]};class ns{scrollToAnchor(t){return document.querySelector(t)?.scrollIntoView(!0),!1}}ns.\u0275fac=function(t){return new(t||ns)},ns.\u0275cmp=mt({type:ns,selectors:[["app-features-component"]],decls:138,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"],["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"],["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"],["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"],["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(t,n){1&t&&(h(0,"div",0)(1,"h1",1),f(2,"Features"),p(),v(3,"div",2)(4,"br"),h(5,"h2"),f(6,"Coverage quotas"),p(),h(7,"p"),f(8," The overiew cards provide a quick "),h(9,"span",3),f(10,"overview"),p(),f(11," of your coverage quotas."),v(12,"br"),f(13," You can use them to get a glimpse into the different "),h(14,"a",4),f(15,"coverage metrics"),p(),f(16,"\xa0"),h(17,"a",4),v(18,"i",5),p(),f(19,": "),p(),h(20,"ul")(21,"li"),f(22,"Line coverage"),p(),h(23,"li"),f(24,"Branch coverage"),p(),h(25,"li"),f(26,"Method coverage "),h(27,"a",6)(28,"span",7),f(29,"PRO"),p()()()(),v(30,"img",8)(31,"div",9)(32,"br"),h(33,"h2",10),f(34,"Coverage history"),p(),h(35,"p"),f(36," The history chart helps you to understand how your coverage quotas are "),h(37,"span",3),f(38,"evolving over time"),p(),f(39,". "),p(),v(40,"img",11)(41,"div",12)(42,"br"),h(43,"h2",10),f(44,"Summary table / Overview"),p(),h(45,"p"),f(46," The summary table helps you to identify classes with "),h(47,"span",3),f(48,"low test coverage"),p(),f(49,"."),v(50,"br"),f(51," The table offers various "),h(52,"span",3),f(53,"filter and sorting"),p(),f(54," options for quick navigation. "),p(),v(55,"img",13)(56,"div",14)(57,"br"),h(58,"h2",10),f(59,"Details page"),p(),h(60,"p"),f(61," The details page visualizes your "),h(62,"span",3),f(63,"line and branch coverage"),p(),f(64,". "),p(),h(65,"ul")(66,"li"),f(67,"Colors indicate the coverage status of each line."),p(),h(68,"li"),f(69,"Branch indicators help you to identity uncovered conditions."),p()(),v(70,"img",15)(71,"div",16)(72,"br"),h(73,"h2",10),f(74,"Metrics"),p(),h(75,"p"),f(76," Depending on your "),h(77,"a",17),f(78,"coverage tool"),p(),f(79,", metrics are provided to get further insigths in your "),h(80,"span",3),f(81,"code quality"),p(),f(82,". "),p(),h(83,"ul")(84,"li"),f(85,"The "),h(86,"a",18),F("click",function(){return n.scrollToAnchor("#details")}),f(87,"details page"),p(),f(88," contains information about the metrics of all methods of a class."),p(),h(89,"li"),f(90,"The "),h(91,"a",18),F("click",function(){return n.scrollToAnchor("#summary")}),f(92,"summary table"),p(),f(93," shows the lowest metrics of all methods of a class "),h(94,"a",6)(95,"span",7),f(96,"PRO"),p()()()(),h(97,"b"),f(98,"Details page"),p(),v(99,"br")(100,"img",19)(101,"br")(102,"br"),h(103,"b"),f(104,"Summary table"),p(),v(105,"br")(106,"img",20)(107,"div",21)(108,"br"),h(109,"h2",10),f(110,"Risk Hotspots"),p(),h(111,"p"),f(112," Based on the "),h(113,"a",18),F("click",function(){return n.scrollToAnchor("#metrics")}),f(114,"metrics"),p(),f(115," you get a list of potential risk hotspots."),v(116,"br"),f(117," The following metrics are analyzed if available, the warning thresholds are configurable: "),p(),h(118,"ul")(119,"li")(120,"a",22),f(121,"Cyclomatic complexity"),p(),f(122,"\xa0"),h(123,"a",22),v(124,"i",5),p()(),h(125,"li")(126,"a",23),f(127,"NPath complexity"),p(),f(128,"\xa0"),h(129,"a",23),v(130,"i",5),p()(),h(131,"li")(132,"a",24),f(133,"Crap score"),p(),f(134,"\xa0"),h(135,"a",24),v(136,"i",5),p()()(),v(137,"img",25),p()),2&t&&(_(27),E("routerLink",ne(2,Ew)),_(67),E("routerLink",ne(3,Ew)))},dependencies:[gn]});const kt={dotnetSDKVersion:"6.x",majorVersion:"5",version:"5.1.14"},sO=function(){return["/usage"]};class rs{constructor(){this.versions=kt}}rs.\u0275fac=function(t){return new(t||rs)},rs.\u0275cmp=mt({type:rs,selectors:[["app-getstarted"]],decls:75,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"],["id","java",1,"mt-5"],["href","https://github.com/jacoco/jacoco"],["id","nodejs"],["id","nodejs",1,"mt-5"],["href","https://github.com/istanbuljs/nyc"]],template:function(t,n){1&t&&(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(),v(18,"div",3),h(19,"h2",4),f(20,".NET"),p(),h(21,"p"),f(22,"For .NET you can use "),h(23,"a",5),f(24,"coverlet"),p(),f(25," or "),h(26,"a",6),f(27,"altcover"),p(),f(28," for instrumenting your test code."),p(),h(29,"p"),f(30,"After adding the dependencies to your project, you can execute your tests and generate the coverage report."),p(),h(31,"p")(32,"strong"),f(33,"Add dependencies to your "),h(34,"code"),f(35,"*.csproj"),p(),f(36," file:"),p()(),h(37,"pre",7),f(38),p(),h(39,"p")(40,"strong"),f(41,"Execute tests and create coverage report"),p()(),h(42,"pre",7),f(43),p(),v(44,"div",8),h(45,"h2",9),f(46,"Java"),p(),h(47,"p"),f(48,"For Java you can use "),h(49,"a",10),f(50,"JaCoCo"),p(),f(51," 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(52,"p")(53,"strong"),f(54,"Add dependencies to your "),h(55,"code"),f(56,"pom.xml"),p(),f(57," file:"),p()(),h(58,"pre",7),f(59,"\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(60,"p")(61,"strong"),f(62,"Execute tests and create coverage report"),p()(),h(63,"pre",7),f(64),p(),v(65,"div",11),h(66,"h2",12),f(67,"NodeJS"),p(),h(68,"p"),f(69,"For NodeJS you can use "),h(70,"a",13),f(71,"Istanbul"),p(),f(72," for instrumenting your test code.\nAfter installing Istanbul, you can execute your tests and generate the coverage report."),p(),h(73,"pre",7),f(74),p()()),2&t&&(_(15),E("routerLink",ne(5,sO)),_(23),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\\',n.versions.version,'\\tools\\net6.0\\ReportGenerator.exe" -reports:*\\TestResults\\*\\coverage.cobertura.xml -targetdir:coveragereport\n'),_(21),An("mvn test jacoco:report\n\ndotnet tool update dotnet-reportgenerator-globaltool --tool-path tools --version ",n.versions.version,"\ntools\\reportgenerator -reports:target\\site\\jacoco\\jacoco.xml -targetdir:coveragereport -sourcedirs:src\\main\\java\n"),_(10),An("npm i nyc --save-dev\nnyc --reporter=coberatura mocha\n\ndotnet tool update dotnet-reportgenerator-globaltool --tool-path tools --version ",n.versions.version,"\ntools\\reportgenerator -reports:coverage/cobertura-coverage.xml -targetdir:coveragereport\n"))},dependencies:[gn]});const aO=function(){return["/pro"]},lO=function(){return["/usage"]},uO=function(){return["/getstarted"]},cO=function(){return["/features"]};class os{}os.\u0275fac=function(t){return new(t||os)},os.\u0275cmp=mt({type:os,selectors:[["app-home"]],decls:143,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"],["data-splitbee-event","Routing","data-splitbee-event-source","HomeComponent",3,"routerLink"],[1,"col-sm-12","col-md-4","mt-4","mt-md-0"],[1,"fa-solid","fa-lightbulb"],[3,"routerLink"],[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","bg-light"],[1,"text-center"],[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"],[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(t,n){1&t&&(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",20),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",21),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",22),f(74,"GitHub actions"),p(),f(75," and "),h(76,"a",23),f(77,"Azure DevOps"),p(),f(78," is available."),p()()(),h(79,"div",11)(80,"div",24)(81,"a",25),v(82,"i",26),f(83," Learn how to use"),p(),h(84,"a",27),v(85,"i",28),f(86," GitHub"),p()()()(),h(87,"section",29)(88,"div",0)(89,"h2",30),f(90,"Trusted by"),p(),h(91,"div",11)(92,"div",31),v(93,"i",32)(94,"br"),h(95,"a",33),f(96,".NET Runtime"),p()(),h(97,"div",31),v(98,"i",34)(99,"br"),h(100,"a",35),f(101,"Google Cloud"),p()(),h(102,"div",31),v(103,"i",36)(104,"br"),h(105,"a",37),f(106,"AWS Encryption SDK"),p()(),h(107,"div",38),v(108,"i",39)(109,"br"),h(110,"a",40),f(111,"Many more"),p()()(),h(112,"div",11)(113,"div",31)(114,"a",41),v(115,"i",42),f(116," Over 45 million downloads on Nuget"),p()()()()(),h(117,"section",43)(118,"div",0)(119,"h2"),f(120,"Screenshots"),p(),h(121,"p"),f(122,"The screenshots show two snippets of the generated reports."),p(),h(123,"p"),f(124," Have a look the "),h(125,"a",20),f(126,"features page"),p(),f(127," to explore the elements in a coverage report or "),h(128,"a",44),f(129,"browse the example report"),p(),f(130,". "),v(131,"br"),f(132," You can also download "),h(133,"a",45),f(134,"sample reports"),p(),f(135," of all supported output formats."),p(),h(136,"div",1)(137,"div",46)(138,"a",47),v(139,"img",48),p()(),h(140,"div",49)(141,"a",50),v(142,"img",51),p()()()()()),2&t&&(_(45),E("routerLink",ne(4,aO)),_(12),E("routerLink",ne(5,lO)),_(24),E("routerLink",ne(6,uO)),_(44),E("routerLink",ne(7,cO)))},dependencies:[gn],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,#1c7ed6 0%,#23b8cf 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}}"]});class is{}is.\u0275fac=function(t){return new(t||is)},is.\u0275cmp=mt({type:is,selectors:[["app-not-found"]],decls:5,vars:0,consts:[[1,"container"],[1,"mb-4"],[1,"fa-solid","fa-triangle-exclamation","fs-1","me-4"]],template:function(t,n){1&t&&(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())}});class Sw{constructor(){this.error=null,this.isSponsor=!1,this.license=null}}class Mr{initCodeFlow(){const r=`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: "+r),location.href=r}validateStateAndExtractCode(){let t=location.href;const n=t.indexOf("?");n>-1&&(t=t.substring(n+1));const r=this.parseQueryString(t);return r.state&&r.code&&this.validateNonce(r.state)?r.code:null}createAndSaveNonce(){const t=this.createNonce();return typeof window.localStorage<"u"&&localStorage.setItem("nonce",t),t}validateNonce(t){let n;return typeof window.localStorage<"u"&&(n=localStorage.getItem("nonce"),localStorage.removeItem("nonce")),n&&0!==n.length?n===t||(console.error("Validating nonce failed. Values do not match.",n,t),!1):(console.error("Validating nonce failed. No saved nonce available.",n,t),!1)}createNonce(){const t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~";let n=45,r="";const o=typeof self>"u"?null:self.crypto||self.msCrypto;if(o){let s=new Uint8Array(n);o.getRandomValues(s),s.map||(s.map=Array.prototype.map);const a=[];for(var i=0;i0&&(l=decodeURIComponent(s),u=decodeURIComponent(a),"/"===l.substring(0,1)&&(l=l.substring(1)),n[l]=u);return n}base64UrlEncode(t){return btoa(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}}Mr.\u0275fac=function(t){return new(t||Mr)},Mr.\u0275prov=P({token:Mr,factory:Mr.\u0275fac});class Ir{constructor(t){this.httpClient=t}getLicense(t){return this.httpClient.get(`${je_apiBaseUrl}reportgenerator/license?code=${encodeURIComponent(t)}`)}getPaddleLicense(t){return this.httpClient.post(`${je_apiBaseUrl}reportgenerator/paddlelicense`,t)}}function dO(e,t){1&e&&(h(0,"div",42)(1,"span",43),f(2,"Loading..."),p()())}Ir.\u0275fac=function(t){return new(t||Ir)(R(Fd))},Ir.\u0275prov=P({token:Ir,factory:Ir.\u0275fac});const kf=function(){return["/contact"]};function fO(e,t){if(1&e&&(h(0,"div")(1,"p"),f(2),p(),h(3,"p"),f(4,"Please try again later or use the "),h(5,"a",18),f(6," contact form"),p(),f(7,"."),p()()),2&e){const n=H(2);_(2),Ce(n.license.error),_(3),E("routerLink",ne(2,kf))}}function hO(e,t){1&e&&(h(0,"div")(1,"p"),f(2,"Please become a "),h(3,"a",45),f(4,"GitHub sponsor"),p(),f(5," first."),p()())}function pO(e,t){1&e&&(h(0,"span"),v(1,"i",49),f(2," Copy"),p())}function gO(e,t){1&e&&(h(0,"span"),v(1,"i",50),f(2," Copied"),p())}function mO(e,t){if(1&e){const n=Ge();h(0,"div")(1,"label",46),f(2,"Thank you for becoming a sponsor. Here's your license:"),p(),h(3,"textarea",47),f(4),p(),h(5,"button",48),F("click",function(){return ce(n),de(H(2).copy())}),$(6,pO,3,0,"span",44),$(7,gO,3,0,"span",44),p()()}if(2&e){const n=H(2);_(4),Ce(n.license.license),_(2),E("ngIf",!n.licenseCopied),_(1),E("ngIf",n.licenseCopied)}}function yO(e,t){if(1&e&&(h(0,"div",21),$(1,fO,8,3,"div",44),$(2,hO,6,0,"div",44),$(3,mO,8,3,"div",44),p()),2&e){const n=H();_(1),E("ngIf",n.license.error),_(1),E("ngIf",!n.license.error&&!n.license.isSponsor),_(1),E("ngIf",!n.license.error&&n.license.isSponsor&&n.license.license)}}function vO(e,t){if(1&e){const n=Ge();h(0,"button",61),F("click",function(){return ce(n),de(H(2).openPaddleCheckout("individual"))}),f(1,"Buy now"),p()}}function _O(e,t){1&e&&(h(0,"button",62),f(1,"Coming soon"),p())}function CO(e,t){if(1&e){const n=Ge();h(0,"button",63),F("click",function(){return ce(n),de(H(2).openPaddleCheckout("team"))}),f(1,"Buy now"),p()}}function DO(e,t){1&e&&(h(0,"button",62),f(1,"Coming soon"),p())}function wO(e,t){if(1&e){const n=Ge();h(0,"button",64),F("click",function(){return ce(n),de(H(2).openPaddleCheckout("enterprise"))}),f(1,"Buy now"),p()}}function bO(e,t){1&e&&(h(0,"button",62),f(1,"Coming soon"),p())}function EO(e,t){if(1&e&&(h(0,"div",2)(1,"div",51),v(2,"img",52),h(3,"h4",53),f(4,"Individual"),v(5,"br"),f(6),p(),h(7,"p"),f(8,"Annual - Per developer license."),p(),$(9,vO,2,0,"button",54),$(10,_O,2,0,"button",55),p(),h(11,"div",56),v(12,"img",57),h(13,"h4",53),f(14,"Team"),v(15,"br"),f(16),p(),h(17,"p"),f(18,"Annual - Up to 10 developers."),p(),$(19,CO,2,0,"button",58),$(20,DO,2,0,"button",55),p(),h(21,"div",56),v(22,"img",59),h(23,"h4",53),f(24,"Enterprise"),v(25,"br"),f(26),p(),h(27,"p"),f(28,"Annual - Unlimited developers."),p(),$(29,wO,2,0,"button",60),$(30,bO,2,0,"button",55),p()()),2&e){const n=H();_(6),Ce(n.paddleIndividualLicensePrice),_(3),E("ngIf",n.enablePaddle),_(1),E("ngIf",!n.enablePaddle),_(6),Ce(n.paddleTeamLicensePrice),_(3),E("ngIf",n.enablePaddle),_(1),E("ngIf",!n.enablePaddle),_(6),Ce(n.paddleEnterpriseLicensePrice),_(3),E("ngIf",n.enablePaddle),_(1),E("ngIf",!n.enablePaddle)}}function SO(e,t){1&e&&(fr(0),h(1,"div",42)(2,"span",43),f(3,"Loading..."),p()(),h(4,"span",66),f(5,"Your license is being generated. Please wait."),p(),hr())}function MO(e,t){if(1&e&&(h(0,"div")(1,"p"),f(2),p(),h(3,"p"),f(4,"Please try again later or use the "),h(5,"a",18),f(6," contact form"),p(),f(7,"."),p()()),2&e){const n=H(3);_(2),Ce(n.paddleLicense.error),_(3),E("routerLink",ne(2,kf))}}function IO(e,t){1&e&&(h(0,"span"),v(1,"i",49),f(2," Copy"),p())}function AO(e,t){1&e&&(h(0,"span"),v(1,"i",50),f(2," Copied"),p())}function TO(e,t){if(1&e){const n=Ge();h(0,"div")(1,"label",68),f(2,"Thank you for buying a license. Please save your license key persistently:"),p(),h(3,"textarea",69),f(4),p(),h(5,"button",48),F("click",function(){return ce(n),de(H(3).copyPaddle())}),$(6,IO,3,0,"span",44),$(7,AO,3,0,"span",44),p()()}if(2&e){const n=H(3);_(4),Ce(n.paddleLicense.license),_(2),E("ngIf",!n.paddleLicenseCopied),_(1),E("ngIf",n.paddleLicenseCopied)}}function xO(e,t){if(1&e&&(h(0,"div",67),$(1,MO,8,3,"div",44),$(2,TO,8,3,"div",44),p()),2&e){const n=H(2);_(1),E("ngIf",n.paddleLicense.error),_(1),E("ngIf",!n.paddleLicense.error&&n.paddleLicense.license)}}function RO(e,t){if(1&e&&(h(0,"div",2),$(1,SO,6,0,"ng-container",44),$(2,xO,3,2,"div",65),p()),2&e){const n=H();_(1),E("ngIf",n.paddleLicenseRequested&&!n.paddleLicense),_(1),E("ngIf",n.paddleLicense)}}const Io=function(){return["/features"]};class ss{constructor(t,n){this.oauthService=t,this.licenseService=n,this.paddleIndividualLicensePrice="US$49",this.paddleTeamLicensePrice="US$149",this.paddleEnterpriseLicensePrice="US$299",this.licenseRequested=!1,this.licenseCopied=!1,this.license=null,this.enablePaddle=!0,this.paddleLicenseRequested=!1,this.paddleLicenseCopied=!1,this.paddleLicense=null,this.self=this,window.paddleCheckoutComplete=r=>{this.paddleCheckoutComplete(r)},window.Paddle.Setup({vendor:144162}),window.Paddle.Product.Prices(762579,r=>{this.paddleIndividualLicensePrice=r.recurring.price.gross}),window.Paddle.Product.Prices(762580,r=>{this.paddleTeamLicensePrice=r.recurring.price.gross}),window.Paddle.Product.Prices(762581,r=>{this.paddleEnterpriseLicensePrice=r.recurring.price.gross})}ngOnInit(){const t=this.oauthService.validateStateAndExtractCode();null!==t?(console.log("Code received",t),this.licenseRequested=!0,this.licenseService.getLicense(t).subscribe({next:n=>{console.log("Received license response"),this.license=n,this.scrollToGithub();try{window.splitbee?.track("GitHub_LicenceCreated")}catch{}},error:n=>{console.error(n),this.license=new Sw,this.license.error="Unable to generate license."},complete:()=>console.info("complete")})):console.log("No code available")}requestLicense(){this.licenseRequested=!0,this.oauthService.initCodeFlow()}copy(){try{navigator.clipboard.writeText(this.license.license),this.licenseCopied=!0}catch(t){console.error("Failed to copy license",t)}}copyPaddle(){try{navigator.clipboard.writeText(this.paddleLicense.license),this.paddleLicenseCopied=!0}catch(t){console.error("Failed to copy paddle license",t)}}scrollToGithub(){return document.querySelector("#github").scrollIntoView(!0),!1}scrollToPaddle(){return document.querySelector("#paddle").scrollIntoView(!0),!1}openPaddleCheckout(t){"enterprise"===t?window.Paddle.Checkout.open({product:762581,successCallback:"paddleCheckoutComplete"}):"team"===t?window.Paddle.Checkout.open({product:762580,successCallback:"paddleCheckoutComplete"}):window.Paddle.Checkout.open({product:762579,successCallback:"paddleCheckoutComplete"})}paddleCheckoutComplete(t){console.log("Checkout completed",t),this.paddleLicenseRequested=!0,this.licenseService.getPaddleLicense(t).subscribe({next:n=>{console.log("Received paddle license response"),this.paddleLicense=n,this.scrollToPaddle();try{window.splitbee?.track("Paddle_LicenceCreated")}catch{}},error:n=>{console.error(n),this.paddleLicense=new Sw,this.paddleLicense.error="Unable to generate paddle license."},complete:()=>console.info("complete")})}}ss.\u0275fac=function(t){return new(t||ss)(S(Mr),S(Ir))},ss.\u0275cmp=mt({type:ss,selectors:[["app-pro-component"]],decls:154,vars:19,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","data-splitbee-event","GitHub_BecomeSponsor",1,"btn","btn-outline-dark"],[1,"fa-solid","fa-heart","githubheart"],["type","button","data-splitbee-event","GitHub_GetLicense",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-xs-12 col-md-6 pb-3",4,"ngIf"],["id","paddle"],["class","row",4,"ngIf"],[1,"mt-5"],["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"],["role","status",1,"spinner-border","text-info"],[1,"visually-hidden"],[4,"ngIf"],["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,"col-xs-6","col-md-4","pb-3","text-center"],["src","resources/individual.svg","alt","Individual",1,"img-fluid"],[1,"mt-3"],["type","button","class","btn btn-primary","data-splitbee-event","Paddle_ChoosePlan","data-splitbee-event-planType","Individual",3,"click",4,"ngIf"],["type","button","class","btn btn-primary","disabled","",4,"ngIf"],[1,"col-xs-6","col-md-4","mt-4","mt-md-0","pb-3","text-center"],["src","resources/team.svg","alt","Team",1,"img-fluid"],["type","button","class","btn btn-primary","data-splitbee-event","Paddle_ChoosePlan","data-splitbee-event-planType","Team",3,"click",4,"ngIf"],["src","resources/enterprise.svg","alt","Enterprise",1,"img-fluid"],["type","button","class","btn btn-primary","data-splitbee-event","Paddle_ChoosePlan","data-splitbee-event-planType","Enterprise",3,"click",4,"ngIf"],["type","button","data-splitbee-event","Paddle_ChoosePlan","data-splitbee-event-planType","Individual",1,"btn","btn-primary",3,"click"],["type","button","disabled","",1,"btn","btn-primary"],["type","button","data-splitbee-event","Paddle_ChoosePlan","data-splitbee-event-planType","Team",1,"btn","btn-primary",3,"click"],["type","button","data-splitbee-event","Paddle_ChoosePlan","data-splitbee-event-planType","Enterprise",1,"btn","btn-primary",3,"click"],["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"],["id","paddlelicensetext","rows","5","readonly","",1,"form-control","mt-2"]],template:function(t,n){1&t&&(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,"div",16)(68,"p")(69,"i"),f(70,"ReportGenerator"),p(),f(71," is Open Source and free to use."),v(72,"br"),f(73," Some of the advanced features require a PRO license. "),p(),h(74,"p"),f(75," You can either become a "),h(76,"a",17),F("click",function(){return n.scrollToGithub()}),f(77,"GitHub sponsor"),p(),f(78," or you can "),h(79,"a",17),F("click",function(){return n.scrollToPaddle()}),f(80,"buy a license"),p(),f(81,"."),v(82,"br"),p(),h(83,"p"),f(84," Get "),h(85,"a",18),f(86,"in touch"),p(),f(87," if you have any issues and we will figure it out. "),p()()(),v(88,"div",19),p(),h(89,"section",20)(90,"div",0)(91,"h2",1),f(92,"Get your license as a sponsor"),p(),h(93,"div",2)(94,"div",21)(95,"p"),f(96,"You can obtain your license in two easy steps (no sign up required):"),p(),h(97,"span",22),f(98,"1."),p(),h(99,"a",23),v(100,"i",24),f(101," Become a GitHub sponsor"),p(),v(102,"br"),h(103,"span",22),f(104,"2."),p(),h(105,"button",25),F("click",function(){return n.requestLicense()}),v(106,"i",26),f(107," Get license"),p(),$(108,dO,3,0,"div",27),p(),$(109,yO,4,3,"div",28),p()(),v(110,"div",29),p(),h(111,"section",20)(112,"div",0)(113,"h2",1),f(114,"Buy a license"),p(),$(115,EO,31,9,"div",30),$(116,RO,3,2,"div",30),h(117,"div",31)(118,"p")(119,"i"),f(120,"ReportGenerator"),p(),f(121," licence purchases are provided with a 30 day money back guarantee."),p(),h(122,"p"),f(123,"The order process is conducted by Paddle.com. Paddle.com is the Merchant of Record for all orders. Paddle provides all customer service inquiries and handles returns"),p()()()(),h(124,"section",32)(125,"h2",1),f(126,"Frequently Asked Questions"),p(),h(127,"div",33)(128,"div",34)(129,"h2",35)(130,"button",36),f(131," Are there limitations on number of users? "),p()(),h(132,"div",37)(133,"div",38)(134,"b"),f(135,"GitHub sponsors"),p(),v(136,"br"),h(137,"p"),f(138,"There's no enforced limit. Just pick a sponsor level that fits your company size and budget."),p(),h(139,"b"),f(140,"Bought license"),p(),v(141,"br"),h(142,"p"),f(143,"There's no enforced limit. Please choose a plan that matches the number of developers using "),h(144,"i"),f(145,"ReportGenerator"),p(),f(146,"."),p()()()(),h(147,"div",34)(148,"h2",39)(149,"button",40),f(150," Will my license expire? "),p()(),h(151,"div",41)(152,"div",38),f(153," Your license will not expire. "),p()()()()()),2&t&&(_(18),E("routerLink",ne(12,Io)),_(9),E("routerLink",ne(13,Io)),_(9),E("routerLink",ne(14,Io)),_(9),E("routerLink",ne(15,Io)),_(9),E("routerLink",ne(16,Io)),_(8),E("routerLink",ne(17,Io)),_(23),E("routerLink",ne(18,kf)),_(20),E("disabled",n.licenseRequested),_(3),E("ngIf",n.licenseRequested&&!n.license),_(1),E("ngIf",n.license),_(6),E("ngIf",!n.paddleLicenseRequested),_(1),E("ngIf",n.paddleLicenseRequested))},dependencies:[La,gn],styles:[".number[_ngcontent-%COMP%]{display:inline-block;position:relative;top:8px}.spinner-border[_ngcontent-%COMP%]{position:relative;top:9px}"]});class bl{constructor(t,n,r,o,i,s){this.name=t,this.url=n,this.runtimes=r,this.description=o,this.installOptions=i,this.executables=s}formatExecutable(t){return t.tool}formatArgument(t,n){if(""===(n=n.trim()))return"";const r=n.indexOf(" ")>-1?'"':"";return`\r\n${r}-${t}:${n}${r}`}formatArguments(t,n){return this.formatArgument(t,n.filter(r=>null!=r&&0!==r.length&&0!==r.trim().length).join(";"))}}class NO extends bl{formatExecutable(t){let n=`- task: ${t.tool}@${kt.majorVersion}`;return n+="\r\n displayName: ReportGenerator",n+="\r\n inputs:",console.log("hello",n),n}formatArgument(t,n){if(""===(n=n.trim()))return"";const r=n.indexOf(" ")>-1?"'":"";return`\r\n ${t}: ${r}${n}${r}`}}class FO{constructor(){this.verbosities=["Verbose","Info","Warning","Error","Off"],this.reports=["cobertura.xml"],this.targetdir="coveragereport",this.reporttypes=[{name:"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",description:"Same as Html but with a light theme.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/Html_Light/index.html"},{name:"Html_Dark",description:"Same as Html but with a dark theme.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/Html_Dark/index.html"},{name:"HtmlSummary",description:"Creates a single HTML file (summary.html) without links.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/HtmlSummary/summary.html"},{name:"HtmlChart",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",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",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",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",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",description:"Same as HTML but packaged into a single MHTML file.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/MHtml/Summary.mht"},{name:"Clover",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",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:"SonarQube",description:"Creates a XML file in SonarQube 'Generic Test Data' format.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/SonarQube/SonarQube.xml"},{name:"lcov",description:"Creates a text file in 'lcov' format.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/lcov/lcov.info"},{name:"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",description:"Creates a single XML file containing a summary for all classes.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/XmlSummary/Summary.xml"},{name:"JsonSummary",description:"Creates a single JSON file containing a summary for all classes.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/JsonSummary/Summary.json"},{name:"Latex",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",description:"Creates a single TEX file containing a summary for all classes.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/LatexSummary/Summary.tex"},{name:"TeamCitySummary",description:"Command line output interpreted by TeamCity.",requiresHistoryDir:!1,checked:!1,sampleReport:null},{name:"TextSummary",description:"Creates a single TXT file containing coverage information per class.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/TextSummary/Summary.txt"},{name:"TextDeltaSummary",description:"Creates a single TXT file containing delta coverage information.",requiresHistoryDir:!0,checked:!1,sampleReport:"resources/reports/TextDeltaSummary/DeltaSummary.txt"},{name:"CsvSummary",description:"Creates a single CSV file containing coverage information per class.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/CsvSummary/Summary.csv"},{name:"MarkdownSummary",description:"Creates a single Markdown file containing coverage information per class.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/MarkdownSummary/Summary.md"},{name:"MarkdownSummaryGithub",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/Summary.md"},{name:"MarkdownDeltaSummary",description:"Creates a single Markdown file containing delta coverage information.",requiresHistoryDir:!0,checked:!1,sampleReport:"resources/reports/MarkdownDeltaSummary/DeltaSummary.md"},{name:"PngChart",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",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[0],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,n){const r=t.executables.find(a=>a.runtime==n);let o=void 0!==r?t.formatExecutable(r):"";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),"Verbose"!==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}: ${r}${n}${r}`}}class Of{constructor(t,n){this.tool=t,this.command=n}}function kO(e,t){if(1&e){const n=Ge();h(0,"div",33)(1,"label",34)(2,"input",35),F("ngModelChange",function(o){return ce(n),de(H().selectedEnvironment=o)})("ngModelChange",function(){return ce(n),de(H().selectedEnvironmentChanged())}),p(),h(3,"b"),f(4),p(),v(5,"br"),h(6,"div",36),f(7),p()()()}if(2&e){const n=t.$implicit,r=H();_(2),E("ngModel",r.selectedEnvironment)("value",n)("checked",r.selectedEnvironment.name===n.name),_(2),Ce(n.name),_(3),Ce(n.description)}}function OO(e,t){if(1&e){const n=Ge();h(0,"div",33)(1,"label",34)(2,"input",39),F("ngModelChange",function(o){return ce(n),de(H(3).selectedPackage=o)}),p(),h(3,"b"),f(4),p(),v(5,"br"),h(6,"div",36),f(7),p()()()}if(2&e){const n=H().$implicit,r=H(2);_(2),E("ngModel",r.selectedPackage)("value",n),_(2),Ce(n.name),_(3),Ce(n.description)}}function LO(e,t){if(1&e&&(fr(0),$(1,OO,8,4,"div",38),hr()),2&e){const n=t.$implicit,r=H(2);_(1),E("ngIf",n.runtimes.indexOf(r.selectedEnvironment.name)>-1)}}function VO(e,t){if(1&e&&(fr(0),h(1,"h4"),f(2,"NuGet Package"),p(),$(3,LO,2,1,"ng-container",37),hr()),2&e){const n=H();_(3),E("ngForOf",n.packages)}}function UO(e,t){if(1&e){const n=Ge();h(0,"span",43),F("click",function(){ce(n);const o=H().index;return de(H().configuration.removeReport(o))}),h(1,"a",44),v(2,"i",45),p()()}}const HO=function(e){return{"input-group":e}};function jO(e,t){if(1&e){const n=Ge();h(0,"div",36)(1,"div",40)(2,"input",41),F("ngModelChange",function(o){const s=ce(n).index;return de(H().configuration.reports[s]=o)}),p(),$(3,UO,3,0,"span",42),p()()}if(2&e){const n=t.index,r=H();_(1),E("ngClass",Ac(4,HO,n>0)),_(1),In("name","report_",n,""),E("ngModel",r.configuration.reports[n]),_(1),E("ngIf",n>0)}}function BO(e,t){if(1&e){const n=Ge();h(0,"span",48),v(1,"i",49),f(2," Please specify a "),h(3,"a",9),F("click",function(){return ce(n),de(H(2).scrollToHistoryDir())}),f(4,"history directory"),p()()}}function $O(e,t){if(1&e&&(fr(0),v(1,"br",50),h(2,"a",27),f(3,"Sample report"),p(),f(4,"\xa0"),h(5,"a",27),v(6,"i",51),p(),hr()),2&e){const n=H().$implicit;_(2),E("href",n.sampleReport,Wr),_(3),E("href",n.sampleReport,Wr)}}function GO(e,t){if(1&e){const n=Ge();h(0,"div",33)(1,"label",34)(2,"input",46),F("change",function(){const i=ce(n).$implicit;return de(i.checked=!i.checked)}),p(),h(3,"b"),f(4),p(),$(5,BO,5,0,"span",47),v(6,"br"),h(7,"div",36),f(8),$(9,$O,7,2,"ng-container",5),p()()()}if(2&e){const n=t.$implicit,r=H();_(2),E("checked",n.checked),_(2),Ce(n.name),_(1),E("ngIf",n.checked&&n.requiresHistoryDir&&!r.configuration.historydir),_(3),An("",n.description," "),_(1),E("ngIf",n.sampleReport)}}function zO(e,t){if(1&e){const n=Ge();h(0,"div",8)(1,"div",52)(2,"input",53),F("ngModelChange",function(o){const s=ce(n).index;return de(H().configuration.sourcedirectories[s]=o)}),p(),h(3,"span",43),F("click",function(){const i=ce(n).index;return de(H().configuration.removeSourceDirectory(i))}),h(4,"a",44),v(5,"i",45),p()()()()}if(2&e){const n=t.index,r=H();_(2),In("name","sourcedir_",n,""),E("ngModel",r.configuration.sourcedirectories[n])}}function qO(e,t){if(1&e){const n=Ge();h(0,"div",8)(1,"div",52)(2,"input",54),F("ngModelChange",function(o){const s=ce(n).index;return de(H().configuration.plugins[s]=o)}),p(),h(3,"span",43),F("click",function(){const i=ce(n).index;return de(H().configuration.removePlugin(i))}),h(4,"a",44),v(5,"i",45),p()()()()}if(2&e){const n=t.index,r=H();_(2),In("name","plugin_",n,""),E("ngModel",r.configuration.plugins[n])}}function WO(e,t){if(1&e){const n=Ge();h(0,"div",8)(1,"div",52)(2,"input",55),F("ngModelChange",function(o){const s=ce(n).index;return de(H().configuration.assemblyfilters[s]=o)}),p(),h(3,"span",43),F("click",function(){const i=ce(n).index;return de(H().configuration.removeAssemblyFilter(i))}),h(4,"a",44),v(5,"i",45),p()()()()}if(2&e){const n=t.index,r=H();_(2),In("name","assemblyfilter_",n,""),E("ngModel",r.configuration.assemblyfilters[n])}}function KO(e,t){if(1&e){const n=Ge();h(0,"div",8)(1,"div",52)(2,"input",56),F("ngModelChange",function(o){const s=ce(n).index;return de(H().configuration.classfilters[s]=o)}),p(),h(3,"span",43),F("click",function(){const i=ce(n).index;return de(H().configuration.removeClassFilter(i))}),h(4,"a",44),v(5,"i",45),p()()()()}if(2&e){const n=t.index,r=H();_(2),In("name","classfilter_",n,""),E("ngModel",r.configuration.classfilters[n])}}function ZO(e,t){if(1&e){const n=Ge();h(0,"div",8)(1,"div",52)(2,"input",57),F("ngModelChange",function(o){const s=ce(n).index;return de(H().configuration.filefilters[s]=o)}),p(),h(3,"span",43),F("click",function(){const i=ce(n).index;return de(H().configuration.removeFileFilter(i))}),h(4,"a",44),v(5,"i",45),p()()()()}if(2&e){const n=t.index,r=H();_(2),In("name","filefilter_",n,""),E("ngModel",r.configuration.filefilters[n])}}function QO(e,t){if(1&e&&(h(0,"option",58),f(1),p()),2&e){const n=t.$implicit;E("value",n),_(1),Ce(n)}}function XO(e,t){if(1&e&&(h(0,"div",59)(1,"b"),f(2),p(),v(3,"br"),h(4,"pre",30),f(5),p()()),2&e){const n=t.$implicit;_(2),Ce(n.tool),_(3),Ce(n.command)}}function YO(e,t){1&e&&(h(0,"span"),v(1,"i",60),f(2," Copy"),p())}function JO(e,t){1&e&&(h(0,"span"),v(1,"i",61),f(2," Copied"),p())}function eL(e,t){if(1&e&&(h(0,"div",59)(1,"b"),f(2),p(),v(3,"br"),h(4,"pre",30),f(5),p()()),2&e){const n=t.$implicit;_(2),Ce(n.tool),_(3),Ce(n.command)}}function tL(e,t){1&e&&(h(0,"span"),v(1,"i",60),f(2," Copy"),p())}function nL(e,t){1&e&&(h(0,"span"),v(1,"i",61),f(2," Copied"),p())}const rL=function(){return["/pro"]};class ls{constructor(){this.versions=kt,this.lastResult="",this.usageCopied=!1,this.configuration=new FO,this.environments=[new El(".NET Core",".NET Core"),new El(".NET Framework","The full .NET framework"),new El("Azure DevOps",null),new El("Github Action",null)],this.packages=[new bl("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 Of("Package Manager",`Install-Package ReportGenerator -Version ${kt.version}`),new Of(".NET CLI",`dotnet add package ReportGenerator --version ${kt.version}`)],[new as(".NET Framework",`$(UserProfile)\\.nuget\\packages\\reportgenerator\\${kt.version}\\tools\\net47\\ReportGenerator.exe`),new as(".NET Core",`dotnet $(UserProfile)\\.nuget\\packages\\reportgenerator\\${kt.version}\\tools\\net6.0\\ReportGenerator.dll`)]),new bl("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 Of(".NET CLI",`dotnet tool install --global dotnet-reportgenerator-globaltool --version ${kt.version}\r\n\r\ndotnet tool install dotnet-reportgenerator-globaltool --tool-path tools --version ${kt.version}\r\n\r\ndotnet new tool-manifest\r\ndotnet tool install dotnet-reportgenerator-globaltool --version ${kt.version}`)],[new as(".NET Core","reportgenerator")]),new NO("Azure DevOps","https://marketplace.visualstudio.com/items?itemName=Palmmedia.reportgenerator",["Azure DevOps"],"Use this package within Azure DevOps",[],[new as("Azure DevOps","reportgenerator")]),new PO("GitHub Action","https://github.com/marketplace/actions/reportgenerator",["Github Action"],"Use this package within Github Actions",[],[new as("Github Action","danielpalme/ReportGenerator-GitHub-Action")])],this.selectedEnvironment=this.environments[0],this.selectedPackage=this.packages[0]}selectedEnvironmentChanged(){this.selectedPackage=this.packages.find(t=>t.runtimes.indexOf(this.selectedEnvironment.name)>-1)}severalPackagesAvailable(){return this.packages.filter(t=>t.runtimes.indexOf(this.selectedEnvironment.name)>-1).length>1}getUsage(){const t=this.configuration.getUsage(this.selectedPackage,this.selectedEnvironment.name);return this.lastResult!==t&&(this.lastResult=t,this.usageCopied=!1),t}copy(){try{navigator.clipboard.writeText(this.getUsage()),this.usageCopied=!0}catch(t){console.error("Failed to copy license",t)}}scrollToHistoryDir(){return document.querySelector("#historydir").scrollIntoView(!0),!1}trackByIndex(t,n){return t}}ls.\u0275fac=function(t){return new(t||ls)},ls.\u0275cmp=mt({type:ls,selectors:[["app-usage-component"]],decls:215,vars:39,consts:[[1,"container"],[1,"mb-4"],[1,"row"],[1,"col-md-7"],["class","form-check",4,"ngFor","ngForOf"],[4,"ngIf"],[1,"alert","alert-info"],["class","mb-3",4,"ngFor","ngForOf","ngForTrackBy"],[1,"input-group","mb-3"],["href","",3,"click"],[1,"fa","fa-plus-circle"],["type","text","name","targetdir","placeholder","The target directory","required","",1,"form-control",3,"ngModel","ngModelChange"],["href","https://danielpalme.github.io/ReportGenerator/resources/SampleReports.zip"],["class","form-check",4,"ngFor","ngForOf","ngForTrackBy"],["class","input-group mb-3",4,"ngFor","ngForOf","ngForTrackBy"],["id","historydir",1,"input-group","mb-3"],["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","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(t,n){1&t&&(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(),$(8,kO,8,5,"div",4),v(9,"hr"),$(10,VO,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(),$(18,jO,4,6,"div",7),h(19,"div",8)(20,"a",9),F("click",function(){return n.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),F("ngModelChange",function(o){return n.configuration.targetdir=o}),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()(),$(37,GO,10,5,"div",13),h(38,"h3"),f(39,"Source directories"),p(),h(40,"div",6),f(41,"Optional directories which contain the corresponding source code."),v(42,"br"),f(43,"The source directories are used if coverage report contains classes without path information."),p(),$(44,zO,6,2,"div",14),h(45,"div",15)(46,"a",9),F("click",function(){return n.configuration.addSourceDirectory()}),v(47,"i",10),f(48," Add source directory"),p()(),v(49,"br"),h(50,"h3"),f(51,"History directory"),p(),h(52,"div",6),f(53,"Optional directory for storing "),h(54,"b"),f(55,"persistent"),p(),f(56," coverage information. Choose a directory which does not get deleted between builds."),v(57,"br"),f(58,"Required to show the history chart in the HTML reports."),p(),h(59,"div",8)(60,"input",16),F("ngModelChange",function(o){return n.configuration.historydir=o}),p()(),v(61,"br"),h(62,"h3"),f(63,"Plugins"),p(),h(64,"div",6),f(65,"Optional plugin files for "),h(66,"a",17),f(67,"custom reports"),p(),f(68," or "),h(69,"a",18),f(70,"custom history storage"),p(),f(71,"."),p(),$(72,qO,6,2,"div",14),h(73,"div",8)(74,"a",9),F("click",function(){return n.configuration.addPlugin()}),v(75,"i",10),f(76," Add plugin"),p()(),v(77,"br"),h(78,"h3"),f(79,"Assembly filters"),p(),h(80,"div",6),f(81,"Optional list of "),h(82,"b"),f(83,"assemblies"),p(),f(84," that should be included or excluded in the report. "),v(85,"br"),f(86,"Exclusion filters take precedence over inclusion filters. "),v(87,"br"),f(88,"Wildcards are allowed."),v(89,"br"),h(90,"p"),f(91,"Examples:"),v(92,"br"),h(93,"code"),f(94,"+Included"),p(),v(95,"br"),h(96,"code"),f(97,"-Excluded"),p()()(),$(98,WO,6,2,"div",14),h(99,"div",8)(100,"a",9),F("click",function(){return n.configuration.addAssemblyFilter()}),v(101,"i",10),f(102," Add assembly filter"),p()(),v(103,"br"),h(104,"h3"),f(105,"Class filters"),p(),h(106,"div",6),f(107,"Optional list of "),h(108,"b"),f(109,"classes"),p(),f(110," that should be included or excluded in the report. "),v(111,"br"),f(112,"Exclusion filters take precedence over inclusion filters. "),v(113,"br"),f(114,"Wildcards are allowed."),v(115,"br"),h(116,"p"),f(117,"Examples:"),v(118,"br"),h(119,"code"),f(120,"+Included"),p(),v(121,"br"),h(122,"code"),f(123,"-Excluded"),p()()(),$(124,KO,6,2,"div",14),h(125,"div",8)(126,"a",9),F("click",function(){return n.configuration.addClassFilter()}),v(127,"i",10),f(128," Add class filter"),p()(),v(129,"br"),h(130,"h3"),f(131,"File filters"),p(),h(132,"div",6),f(133,"Optional list of "),h(134,"b"),f(135,"files"),p(),f(136," that should be included or excluded in the report. "),v(137,"br"),f(138,"Exclusion filters take precedence over inclusion filters. "),v(139,"br"),f(140,"Wildcards are allowed."),v(141,"br"),h(142,"p"),f(143,"Examples:"),v(144,"br"),h(145,"code"),f(146,"+Included"),p(),v(147,"br"),h(148,"code"),f(149,"-Excluded"),p()()(),$(150,ZO,6,2,"div",14),h(151,"div",8)(152,"a",9),F("click",function(){return n.configuration.addFileFilter()}),v(153,"i",10),f(154," Add file filter"),p()(),v(155,"br"),h(156,"h3"),f(157,"Verbosity"),p(),h(158,"div",6),f(159,"The verbosity level of the log messages."),p(),h(160,"div",8)(161,"select",19),F("ngModelChange",function(o){return n.configuration.selectedverbosity=o}),$(162,QO,2,2,"option",20),p()(),v(163,"br"),h(164,"h3"),f(165,"Title"),p(),h(166,"div",6),f(167,"Optional title."),p(),h(168,"div",8)(169,"input",21),F("ngModelChange",function(o){return n.configuration.title=o}),p()(),v(170,"br"),h(171,"h3"),f(172,"Tag"),p(),h(173,"div",6),f(174,"Optional tag or build version."),p(),h(175,"div",8)(176,"input",22),F("ngModelChange",function(o){return n.configuration.tag=o}),p()(),v(177,"br"),h(178,"h3"),f(179,"License"),p(),h(180,"div",6),f(181,"Optional license. Get your license here: "),h(182,"a",23),f(183,"https://reportgenerator.io/pro"),p()(),h(184,"div",8)(185,"textarea",24),F("ngModelChange",function(o){return n.configuration.license=o}),p()()()(),h(186,"div",25)(187,"div",26)(188,"h3"),f(189,"Instructions"),p(),f(190," Install "),h(191,"a",27),f(192),p(),$(193,XO,6,2,"div",28),h(194,"h4",29),f(195,"Usage"),p(),h(196,"pre",30),f(197),p(),h(198,"button",31),F("click",function(){return n.copy()}),$(199,YO,3,0,"span",5),$(200,JO,3,0,"span",5),p()(),h(201,"div",32)(202,"h3"),f(203,"Instructions"),p(),f(204," Install "),h(205,"a",27),f(206),p(),$(207,eL,6,2,"div",28),h(208,"h4",29),f(209,"Usage"),p(),h(210,"pre",30),f(211),p(),h(212,"button",31),F("click",function(){return n.copy()}),$(213,tL,3,0,"span",5),$(214,nL,3,0,"span",5),p()()()()()),2&t&&(_(8),E("ngForOf",n.environments),_(2),E("ngIf",n.severalPackagesAvailable()),_(8),E("ngForOf",n.configuration.reports)("ngForTrackBy",n.trackByIndex),_(11),E("ngModel",n.configuration.targetdir),_(8),E("ngForOf",n.configuration.reporttypes)("ngForTrackBy",n.trackByIndex),_(7),E("ngForOf",n.configuration.sourcedirectories)("ngForTrackBy",n.trackByIndex),_(16),E("ngModel",n.configuration.historydir)("required",n.configuration.historyDirRequired()),_(12),E("ngForOf",n.configuration.plugins)("ngForTrackBy",n.trackByIndex),_(26),E("ngForOf",n.configuration.assemblyfilters)("ngForTrackBy",n.trackByIndex),_(26),E("ngForOf",n.configuration.classfilters)("ngForTrackBy",n.trackByIndex),_(26),E("ngForOf",n.configuration.filefilters)("ngForTrackBy",n.trackByIndex),_(11),E("ngModel",n.configuration.selectedverbosity),_(1),E("ngForOf",n.configuration.verbosities)("ngForTrackBy",n.trackByIndex),_(7),E("ngModel",n.configuration.title),_(7),E("ngModel",n.configuration.tag),_(6),E("routerLink",ne(38,rL)),_(3),E("ngModel",n.configuration.license),_(6),E("href",n.selectedPackage.url,Wr),_(1),Ce(n.selectedPackage.name),_(1),E("ngForOf",n.selectedPackage.installOptions),_(4),Ce(n.getUsage()),_(2),E("ngIf",!n.usageCopied),_(1),E("ngIf",n.usageCopied),_(5),E("href",n.selectedPackage.url,Wr),_(1),Ce(n.selectedPackage.name),_(1),E("ngForOf",n.selectedPackage.installOptions),_(4),Ce(n.getUsage()),_(2),E("ngIf",!n.usageCopied),_(1),E("ngIf",n.usageCopied))},dependencies:[pd,f_,La,gn,Xd,JC,tD,xi,tl,Yd,Vd,Ud,Li,rf,el,Oi],styles:[".sticky[_ngcontent-%COMP%]{position:sticky;top:100px}"]});const oL=[{path:"",component:os,pathMatch:"full",title:"Home",data:{canonical:"/"}},{path:"features",component:ns,title:"Features",data:{canonical:"/features"}},{path:"features.html",redirectTo:"/features"},{path:"getstarted",component:rs,title:"Get started",data:{canonical:"/getstarted"}},{path:"getstarted.html",redirectTo:"/getstarted"},{path:"usage",component:ls,title:"Usage",data:{canonical:"/usage"}},{path:"usage.html",redirectTo:"/usage"},{path:"pro",component:ss,title:"PRO",data:{canonical:"/pro"}},{path:"pro.html",redirectTo:"/pro"},{path:"contact",component:ts,title:"Contact",data:{canonical:"/contact"}},{path:"contact.html",redirectTo:"/contact"},{path:"404",component:is,title:"404 - Not found"},{path:"**",redirectTo:"/404"}];class Ao{}Ao.\u0275fac=function(t){return new(t||Ao)},Ao.\u0275mod=Lt({type:Ao}),Ao.\u0275inj=Mt({imports:[ww.forRoot(oL,{scrollPositionRestoration:"enabled",scrollOffset:[0,0],anchorScrolling:"enabled"}),ww]});const Mw=function(){return["/"]},iL=function(e){return{show:e}},To=function(){return["link-active"]},Iw=function(){return{exact:!0}},sL=function(){return["/features"]},aL=function(){return["/getstarted"]},lL=function(){return["/usage"]},uL=function(){return["/contact"]},cL=function(){return["/pro"]};class us{constructor(){this.isExpanded=!1}collapse(){this.isExpanded=!1}toggle(){this.isExpanded=!this.isExpanded}}us.\u0275fac=function(t){return new(t||us)},us.\u0275cmp=mt({type:us,selectors:[["app-nav-menu"]],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"],["data-splitbee-event","Routing","data-splitbee-event-source","NavMenu",1,"nav-link","text-dark",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(t,n){1&t&&(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),F("click",function(){return n.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",14)(28,"span",15),f(29,"PRO"),p()()()(),v(30,"hr",16),h(31,"ul",17)(32,"li",18)(33,"a",19),v(34,"i",20),h(35,"span",21),f(36,"GitHub"),p()()(),h(37,"li",18)(38,"a",22),v(39,"i",23),h(40,"span",21),f(41,"Twitter"),p()()()()()()()()),2&t&&(_(3),E("routerLink",ne(17,Mw)),_(4),$t("aria-expanded",n.isExpanded),_(2),E("ngClass",Ac(18,iL,n.isExpanded)),_(2),E("routerLinkActive",ne(20,To))("routerLinkActiveOptions",ne(21,Iw)),_(1),E("routerLink",ne(22,Mw)),_(2),E("routerLinkActive",ne(23,To))("routerLinkActiveOptions",ne(24,Iw)),_(1),E("routerLink",ne(25,sL)),_(2),E("routerLinkActive",ne(26,To)),_(1),E("routerLink",ne(27,aL)),_(2),E("routerLinkActive",ne(28,To)),_(1),E("routerLink",ne(29,lL)),_(2),E("routerLinkActive",ne(30,To)),_(1),E("routerLink",ne(31,uL)),_(2),E("routerLinkActive",ne(32,To)),_(1),E("routerLink",ne(33,cL)))},dependencies:[pd,gn,pw],styles:[".box-shadow[_ngcontent-%COMP%]{box-shadow:0 .25rem .75rem #0000000d}@keyframes _ngcontent-%COMP%_pro-button-animation{0%{background-color:#20a0d2;background-image:linear-gradient(50deg,#1c7ed6 0%,#23b8cf 100%)}50%{background-color:#1c8eb7;background-image:linear-gradient(50deg,#1A6FBA 0%,#1EA1B5 100%);box-shadow:0 0 6px 1px #20a0d2}to{background-color:#20a0d2;background-image:linear-gradient(50deg,#1c7ed6 0%,#23b8cf 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:#1c8eb7;background-image:linear-gradient(50deg,#1A6FBA 0%,#1EA1B5 100%);box-shadow:0 0 6px 1px #20a0d2}.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:#1c8eb7!important;font-weight:400}"]});const dL=function(){return["/pro"]};class cs{constructor(){this.years=(new Date).getFullYear()-2009}}cs.\u0275fac=function(t){return new(t||cs)},cs.\u0275cmp=mt({type:cs,selectors:[["app-footer"]],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"],["data-splitbee-event","Routing","data-splitbee-event-source","Footer",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(t,n){1&t&&(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&t&&(_(19),An(" Fast forward ",n.years," years, I'm still maintaining "),_(11),E("routerLink",ne(2,dL)))},dependencies:[gn],styles:["footer[_ngcontent-%COMP%]{background-color:#464646}footer[_ngcontent-%COMP%], a[_ngcontent-%COMP%]{color:#fff}"]});class ds{constructor(t,n,r){this.dom=t,this.router=n,this.activatedRoute=r}ngOnInit(){this.router.events.pipe(Qt(t=>t instanceof Xn),W(()=>this.activatedRoute),W(t=>{for(;t.firstChild;)t=t.firstChild;return t}),Qt(t=>"primary"===t.outlet),$e(t=>t.data)).subscribe(t=>{const n=`${window.location.protocol}//${window.location.hostname}`;this.updateCanonicalUrl(t.canonical?n+t.canonical:n+this.router.url)})}updateCanonicalUrl(t){const n=this.dom.getElementsByTagName("head")[0];var r=this.dom.querySelector("link[rel='canonical']")||null;null==r&&(r=this.dom.createElement("link"),n.appendChild(r)),r.setAttribute("rel","canonical"),r.setAttribute("href",t)}}ds.\u0275fac=function(t){return new(t||ds)(S(et),S(pt),S(br))},ds.\u0275cmp=mt({type:ds,selectors:[["app-root"]],decls:3,vars:0,template:function(t,n){1&t&&v(0,"app-nav-menu")(1,"router-outlet")(2,"app-footer")},dependencies:[bf,us,cs],encapsulation:2});class xo{}xo.\u0275fac=function(t){return new(t||xo)},xo.\u0275mod=Lt({type:xo,bootstrap:[ds]}),xo.\u0275inj=Mt({providers:[Mr,Ir,Sr],imports:[qR,Ao,bN,TF]}),zR().bootstrapModule(xo).catch(e=>console.error(e))}},he=>{he(he.s=304)}]); \ No newline at end of file diff --git a/docs/main.737686ebf4403b8c.js b/docs/main.737686ebf4403b8c.js deleted file mode 100644 index 2e86f176..00000000 --- a/docs/main.737686ebf4403b8c.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkReportGenerator_io=self.webpackChunkReportGenerator_io||[]).push([[179],{754:()=>{function fe(e){return"function"==typeof e}function Ao(e){const n=e(r=>{Error.call(r),r.stack=(new Error).stack});return n.prototype=Object.create(Error.prototype),n.prototype.constructor=n,n}const ls=Ao(e=>function(n){e(this),this.message=n?`${n.length} errors occurred during unsubscription:\n${n.map((r,o)=>`${o+1}) ${r.toString()}`).join("\n ")}`:"",this.name="UnsubscriptionError",this.errors=n});function To(e,t){if(e){const n=e.indexOf(t);0<=n&&e.splice(n,1)}}class bt{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:n}=this;if(n)if(this._parentage=null,Array.isArray(n))for(const i of n)i.remove(this);else n.remove(this);const{initialTeardown:r}=this;if(fe(r))try{r()}catch(i){t=i instanceof ls?i.errors:[i]}const{_finalizers:o}=this;if(o){this._finalizers=null;for(const i of o)try{Of(i)}catch(s){t=t??[],s instanceof ls?t=[...t,...s.errors]:t.push(s)}}if(t)throw new ls(t)}}add(t){var n;if(t&&t!==this)if(this.closed)Of(t);else{if(t instanceof bt){if(t.closed||t._hasParent(this))return;t._addParent(this)}(this._finalizers=null!==(n=this._finalizers)&&void 0!==n?n:[]).push(t)}}_hasParent(t){const{_parentage:n}=this;return n===t||Array.isArray(n)&&n.includes(t)}_addParent(t){const{_parentage:n}=this;this._parentage=Array.isArray(n)?(n.push(t),n):n?[n,t]:t}_removeParent(t){const{_parentage:n}=this;n===t?this._parentage=null:Array.isArray(n)&&To(n,t)}remove(t){const{_finalizers:n}=this;n&&To(n,t),t instanceof bt&&t._removeParent(this)}}bt.EMPTY=(()=>{const e=new bt;return e.closed=!0,e})();const Ff=bt.EMPTY;function Pf(e){return e instanceof bt||e&&"closed"in e&&fe(e.remove)&&fe(e.add)&&fe(e.unsubscribe)}function Of(e){fe(e)?e():e.unsubscribe()}const Yn={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},us={setTimeout(e,t,...n){const{delegate:r}=us;return r?.setTimeout?r.setTimeout(e,t,...n):setTimeout(e,t,...n)},clearTimeout(e){const{delegate:t}=us;return(t?.clearTimeout||clearTimeout)(e)},delegate:void 0};function kf(e){us.setTimeout(()=>{const{onUnhandledError:t}=Yn;if(!t)throw e;t(e)})}function Lf(){}const ww=Cl("C",void 0,void 0);function Cl(e,t,n){return{kind:e,value:t,error:n}}let Jn=null;function cs(e){if(Yn.useDeprecatedSynchronousErrorHandling){const t=!Jn;if(t&&(Jn={errorThrown:!1,error:null}),e(),t){const{errorThrown:n,error:r}=Jn;if(Jn=null,n)throw r}}else e()}class Dl extends bt{constructor(t){super(),this.isStopped=!1,t?(this.destination=t,Pf(t)&&t.add(this)):this.destination=Tw}static create(t,n,r){return new ds(t,n,r)}next(t){this.isStopped?bl(function Ew(e){return Cl("N",e,void 0)}(t),this):this._next(t)}error(t){this.isStopped?bl(function bw(e){return Cl("E",void 0,e)}(t),this):(this.isStopped=!0,this._error(t))}complete(){this.isStopped?bl(ww,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 Mw=Function.prototype.bind;function wl(e,t){return Mw.call(e,t)}class Iw{constructor(t){this.partialObserver=t}next(t){const{partialObserver:n}=this;if(n.next)try{n.next(t)}catch(r){fs(r)}}error(t){const{partialObserver:n}=this;if(n.error)try{n.error(t)}catch(r){fs(r)}else fs(t)}complete(){const{partialObserver:t}=this;if(t.complete)try{t.complete()}catch(n){fs(n)}}}class ds extends Dl{constructor(t,n,r){let o;if(super(),fe(t)||!t)o={next:t??void 0,error:n??void 0,complete:r??void 0};else{let i;this&&Yn.useDeprecatedNextContext?(i=Object.create(t),i.unsubscribe=()=>this.unsubscribe(),o={next:t.next&&wl(t.next,i),error:t.error&&wl(t.error,i),complete:t.complete&&wl(t.complete,i)}):o=t}this.destination=new Iw(o)}}function fs(e){Yn.useDeprecatedSynchronousErrorHandling?function Sw(e){Yn.useDeprecatedSynchronousErrorHandling&&Jn&&(Jn.errorThrown=!0,Jn.error=e)}(e):kf(e)}function bl(e,t){const{onStoppedNotification:n}=Yn;n&&us.setTimeout(()=>n(e,t))}const Tw={closed:!0,next:Lf,error:function Aw(e){throw e},complete:Lf},El="function"==typeof Symbol&&Symbol.observable||"@@observable";function er(e){return e}function Vf(e){return 0===e.length?er:1===e.length?e[0]:function(n){return e.reduce((r,o)=>o(r),n)}}let Se=(()=>{class e{constructor(n){n&&(this._subscribe=n)}lift(n){const r=new e;return r.source=this,r.operator=n,r}subscribe(n,r,o){const i=function Nw(e){return e&&e instanceof Dl||function Rw(e){return e&&fe(e.next)&&fe(e.error)&&fe(e.complete)}(e)&&Pf(e)}(n)?n:new ds(n,r,o);return cs(()=>{const{operator:s,source:a}=this;i.add(s?s.call(i,a):a?this._subscribe(i):this._trySubscribe(i))}),i}_trySubscribe(n){try{return this._subscribe(n)}catch(r){n.error(r)}}forEach(n,r){return new(r=Uf(r))((o,i)=>{const s=new ds({next:a=>{try{n(a)}catch(l){i(l),s.unsubscribe()}},error:i,complete:o});this.subscribe(s)})}_subscribe(n){var r;return null===(r=this.source)||void 0===r?void 0:r.subscribe(n)}[El](){return this}pipe(...n){return Vf(n)(this)}toPromise(n){return new(n=Uf(n))((r,o)=>{let i;this.subscribe(s=>i=s,s=>o(s),()=>r(i))})}}return e.create=t=>new e(t),e})();function Uf(e){var t;return null!==(t=e??Yn.Promise)&&void 0!==t?t:Promise}const Fw=Ao(e=>function(){e(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"});let hn=(()=>{class e extends Se{constructor(){super(),this.closed=!1,this.currentObservers=null,this.observers=[],this.isStopped=!1,this.hasError=!1,this.thrownError=null}lift(n){const r=new Hf(this,this);return r.operator=n,r}_throwIfClosed(){if(this.closed)throw new Fw}next(n){cs(()=>{if(this._throwIfClosed(),!this.isStopped){this.currentObservers||(this.currentObservers=Array.from(this.observers));for(const r of this.currentObservers)r.next(n)}})}error(n){cs(()=>{if(this._throwIfClosed(),!this.isStopped){this.hasError=this.isStopped=!0,this.thrownError=n;const{observers:r}=this;for(;r.length;)r.shift().error(n)}})}complete(){cs(()=>{if(this._throwIfClosed(),!this.isStopped){this.isStopped=!0;const{observers:n}=this;for(;n.length;)n.shift().complete()}})}unsubscribe(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null}get observed(){var n;return(null===(n=this.observers)||void 0===n?void 0:n.length)>0}_trySubscribe(n){return this._throwIfClosed(),super._trySubscribe(n)}_subscribe(n){return this._throwIfClosed(),this._checkFinalizedStatuses(n),this._innerSubscribe(n)}_innerSubscribe(n){const{hasError:r,isStopped:o,observers:i}=this;return r||o?Ff:(this.currentObservers=null,i.push(n),new bt(()=>{this.currentObservers=null,To(i,n)}))}_checkFinalizedStatuses(n){const{hasError:r,thrownError:o,isStopped:i}=this;r?n.error(o):i&&n.complete()}asObservable(){const n=new Se;return n.source=this,n}}return e.create=(t,n)=>new Hf(t,n),e})();class Hf extends hn{constructor(t,n){super(),this.destination=t,this.source=n}next(t){var n,r;null===(r=null===(n=this.destination)||void 0===n?void 0:n.next)||void 0===r||r.call(n,t)}error(t){var n,r;null===(r=null===(n=this.destination)||void 0===n?void 0:n.error)||void 0===r||r.call(n,t)}complete(){var t,n;null===(n=null===(t=this.destination)||void 0===t?void 0:t.complete)||void 0===n||n.call(t)}_subscribe(t){var n,r;return null!==(r=null===(n=this.source)||void 0===n?void 0:n.subscribe(t))&&void 0!==r?r:Ff}}function jf(e){return fe(e?.lift)}function Be(e){return t=>{if(jf(t))return t.lift(function(n){try{return e(n,this)}catch(r){this.error(r)}});throw new TypeError("Unable to lift unknown Observable type")}}function ke(e,t,n,r,o){return new Pw(e,t,n,r,o)}class Pw extends Dl{constructor(t,n,r,o,i,s){super(t),this.onFinalize=i,this.shouldUnsubscribe=s,this._next=n?function(a){try{n(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=r?function(){try{r()}catch(a){t.error(a)}finally{this.unsubscribe()}}:super._complete}unsubscribe(){var t;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){const{closed:n}=this;super.unsubscribe(),!n&&(null===(t=this.onFinalize)||void 0===t||t.call(this))}}}function W(e,t){return Be((n,r)=>{let o=0;n.subscribe(ke(r,i=>{r.next(e.call(t,i,o++))}))})}function tr(e){return this instanceof tr?(this.v=e,this):new tr(e)}function Lw(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var o,r=n.apply(e,t||[]),i=[];return o={},s("next"),s("throw"),s("return"),o[Symbol.asyncIterator]=function(){return this},o;function s(g){r[g]&&(o[g]=function(m){return new Promise(function(y,v){i.push([g,m,y,v])>1||a(g,m)})})}function a(g,m){try{!function l(g){g.value instanceof tr?Promise.resolve(g.value.v).then(u,c):d(i[0][2],g)}(r[g](m))}catch(y){d(i[0][3],y)}}function u(g){a("next",g)}function c(g){a("throw",g)}function d(g,m){g(m),i.shift(),i.length&&a(i[0][0],i[0][1])}}function Vw(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var n,t=e[Symbol.asyncIterator];return t?t.call(e):(e=function Gf(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}(e),n={},r("next"),r("throw"),r("return"),n[Symbol.asyncIterator]=function(){return this},n);function r(i){n[i]=e[i]&&function(s){return new Promise(function(a,l){!function o(i,s,a,l){Promise.resolve(l).then(function(u){i({value:u,done:a})},s)}(a,l,(s=e[i](s)).done,s.value)})}}}const zf=e=>e&&"number"==typeof e.length&&"function"!=typeof e;function qf(e){return fe(e?.then)}function Wf(e){return fe(e[El])}function Kf(e){return Symbol.asyncIterator&&fe(e?.[Symbol.asyncIterator])}function Zf(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 Xf=function Hw(){return"function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator"}();function Qf(e){return fe(e?.[Xf])}function Yf(e){return Lw(this,arguments,function*(){const n=e.getReader();try{for(;;){const{value:r,done:o}=yield tr(n.read());if(o)return yield tr(void 0);yield yield tr(r)}}finally{n.releaseLock()}})}function Jf(e){return fe(e?.getReader)}function Yt(e){if(e instanceof Se)return e;if(null!=e){if(Wf(e))return function jw(e){return new Se(t=>{const n=e[El]();if(fe(n.subscribe))return n.subscribe(t);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}(e);if(zf(e))return function Bw(e){return new Se(t=>{for(let n=0;n{e.then(n=>{t.closed||(t.next(n),t.complete())},n=>t.error(n)).then(null,kf)})}(e);if(Kf(e))return eh(e);if(Qf(e))return function Gw(e){return new Se(t=>{for(const n of e)if(t.next(n),t.closed)return;t.complete()})}(e);if(Jf(e))return function zw(e){return eh(Yf(e))}(e)}throw Zf(e)}function eh(e){return new Se(t=>{(function qw(e,t){var n,r,o,i;return function Ow(e,t,n,r){return new(n||(n=Promise))(function(i,s){function a(c){try{u(r.next(c))}catch(d){s(d)}}function l(c){try{u(r.throw(c))}catch(d){s(d)}}function u(c){c.done?i(c.value):function o(i){return i instanceof n?i:new n(function(s){s(i)})}(c.value).then(a,l)}u((r=r.apply(e,t||[])).next())})}(this,void 0,void 0,function*(){try{for(n=Vw(e);!(r=yield n.next()).done;)if(t.next(r.value),t.closed)return}catch(s){o={error:s}}finally{try{r&&!r.done&&(i=n.return)&&(yield i.call(n))}finally{if(o)throw o.error}}t.complete()})})(e,t).catch(n=>t.error(n))})}function pn(e,t,n,r=0,o=!1){const i=t.schedule(function(){n(),o?e.add(this.schedule(null,r)):this.unsubscribe()},r);if(e.add(i),!o)return i}function $e(e,t,n=1/0){return fe(t)?$e((r,o)=>W((i,s)=>t(r,i,o,s))(Yt(e(r,o))),n):("number"==typeof t&&(n=t),Be((r,o)=>function Ww(e,t,n,r,o,i,s,a){const l=[];let u=0,c=0,d=!1;const g=()=>{d&&!l.length&&!u&&t.complete()},m=v=>u{i&&t.next(v),u++;let w=!1;Yt(n(v,c++)).subscribe(ke(t,E=>{o?.(E),i?m(E):t.next(E)},()=>{w=!0},void 0,()=>{if(w)try{for(u--;l.length&&uy(E)):y(E)}g()}catch(E){t.error(E)}}))};return e.subscribe(ke(t,m,()=>{d=!0,g()})),()=>{a?.()}}(r,o,e,n)))}function Sr(e=1/0){return $e(er,e)}const gn=new Se(e=>e.complete());function Ml(e){return e[e.length-1]}function th(e){return fe(Ml(e))?e.pop():void 0}function xo(e){return function Zw(e){return e&&fe(e.schedule)}(Ml(e))?e.pop():void 0}function nh(e,t=0){return Be((n,r)=>{n.subscribe(ke(r,o=>pn(r,e,()=>r.next(o),t),()=>pn(r,e,()=>r.complete(),t),o=>pn(r,e,()=>r.error(o),t)))})}function rh(e,t=0){return Be((n,r)=>{r.add(e.schedule(()=>n.subscribe(r),t))})}function oh(e,t){if(!e)throw new Error("Iterable cannot be null");return new Se(n=>{pn(n,t,()=>{const r=e[Symbol.asyncIterator]();pn(n,t,()=>{r.next().then(o=>{o.done?n.complete():n.next(o.value)})},0,!0)})})}function Me(e,t){return t?function nb(e,t){if(null!=e){if(Wf(e))return function Qw(e,t){return Yt(e).pipe(rh(t),nh(t))}(e,t);if(zf(e))return function Jw(e,t){return new Se(n=>{let r=0;return t.schedule(function(){r===e.length?n.complete():(n.next(e[r++]),n.closed||this.schedule())})})}(e,t);if(qf(e))return function Yw(e,t){return Yt(e).pipe(rh(t),nh(t))}(e,t);if(Kf(e))return oh(e,t);if(Qf(e))return function eb(e,t){return new Se(n=>{let r;return pn(n,t,()=>{r=e[Xf](),pn(n,t,()=>{let o,i;try{({value:o,done:i}=r.next())}catch(s){return void n.error(s)}i?n.complete():n.next(o)},0,!0)}),()=>fe(r?.return)&&r.return()})}(e,t);if(Jf(e))return function tb(e,t){return oh(Yf(e),t)}(e,t)}throw Zf(e)}(e,t):Yt(e)}function Mr(e){return e<=0?()=>gn:Be((t,n)=>{let r=0;t.subscribe(ke(n,o=>{++r<=e&&(n.next(o),e<=r&&n.complete())}))})}function Il(e,t,...n){return!0===t?(e(),null):!1===t?null:t(...n).pipe(Mr(1)).subscribe(()=>e())}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 Al(e,t){for(const n in t)t.hasOwnProperty(n)&&!e.hasOwnProperty(n)&&(e[n]=t[n])}function le(e){if("string"==typeof e)return e;if(Array.isArray(e))return"["+e.map(le).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 n=t.indexOf("\n");return-1===n?t:t.substring(0,n)}function Tl(e,t){return null==e||""===e?null===t?"":t:null==t||""===t?e:e+" "+t}const ib=ae({__forward_ref__:ae});function he(e){return e.__forward_ref__=he,e.toString=function(){return le(this())},e}function V(e){return xl(e)?e():e}function xl(e){return"function"==typeof e&&e.hasOwnProperty(ib)&&e.__forward_ref__===he}function Rl(e){return e&&!!e.\u0275providers}const ih="https://g.co/ng/security#xss";class M extends Error{constructor(t,n){super(function hs(e,t){return`NG0${Math.abs(e)}${t?": "+t.trim():""}`}(t,n)),this.code=t}}function $(e){return"string"==typeof e?e:null==e?"":String(e)}function ps(e,t){throw new M(-201,!1)}function Et(e,t){null==e&&function oe(e,t,n,r){throw new Error(`ASSERTION ERROR: ${e}`+(null==r?"":` [Expected=> ${n} ${r} ${t} <=Actual]`))}(t,e,null,"!=")}function F(e){return{token:e.token,providedIn:e.providedIn||null,factory:e.factory,value:void 0}}function St(e){return{providers:e.providers||[],imports:e.imports||[]}}function gs(e){return sh(e,ms)||sh(e,lh)}function sh(e,t){return e.hasOwnProperty(t)?e[t]:null}function ah(e){return e&&(e.hasOwnProperty(Nl)||e.hasOwnProperty(pb))?e[Nl]:null}const ms=ae({\u0275prov:ae}),Nl=ae({\u0275inj:ae}),lh=ae({ngInjectableDef:ae}),pb=ae({ngInjectorDef:ae});var U=(()=>((U=U||{})[U.Default=0]="Default",U[U.Host=1]="Host",U[U.Self=2]="Self",U[U.SkipSelf=4]="SkipSelf",U[U.Optional=8]="Optional",U))();let Fl;function Mt(e){const t=Fl;return Fl=e,t}function uh(e,t,n){const r=gs(e);return r&&"root"==r.providedIn?void 0===r.value?r.value=r.factory():r.value:n&U.Optional?null:void 0!==t?t:void ps(le(e))}const pe=(()=>typeof globalThis<"u"&&globalThis||typeof global<"u"&&global||typeof window<"u"&&window||typeof self<"u"&&typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&self)(),Ro={},Pl="__NG_DI_FLAG__",ys="ngTempTokenPath",yb=/\n/gm,ch="__source";let No;function Ir(e){const t=No;return No=e,t}function _b(e,t=U.Default){if(void 0===No)throw new M(-203,!1);return null===No?uh(e,void 0,t):No.get(e,t&U.Optional?null:void 0,t)}function R(e,t=U.Default){return(function gb(){return Fl}()||_b)(V(e),t)}function Y(e,t=U.Default){return R(e,vs(t))}function vs(e){return typeof e>"u"||"number"==typeof e?e:0|(e.optional&&8)|(e.host&&1)|(e.self&&2)|(e.skipSelf&&4)}function Ol(e){const t=[];for(let n=0;n((kt=kt||{})[kt.OnPush=0]="OnPush",kt[kt.Default=1]="Default",kt))(),Jt=(()=>{return(e=Jt||(Jt={}))[e.Emulated=0]="Emulated",e[e.None=2]="None",e[e.ShadowDom=3]="ShadowDom",Jt;var e})();const mn={},ne=[],_s=ae({\u0275cmp:ae}),kl=ae({\u0275dir:ae}),Ll=ae({\u0275pipe:ae}),fh=ae({\u0275mod:ae}),yn=ae({\u0275fac:ae}),Po=ae({__NG_ELEMENT_ID__:ae});let bb=0;function It(e){return Ln(()=>{const n=!0===e.standalone,r={},o={type:e.type,providersResolver:null,decls:e.decls,vars:e.vars,factory:null,template:e.template||null,consts:e.consts||null,ngContentSelectors:e.ngContentSelectors,hostBindings:e.hostBindings||null,hostVars:e.hostVars||0,hostAttrs:e.hostAttrs||null,contentQueries:e.contentQueries||null,declaredInputs:r,inputs:null,outputs:null,exportAs:e.exportAs||null,onPush:e.changeDetection===kt.OnPush,directiveDefs:null,pipeDefs:null,standalone:n,dependencies:n&&e.dependencies||null,getStandaloneInjector:null,selectors:e.selectors||ne,viewQuery:e.viewQuery||null,features:e.features||null,data:e.data||{},encapsulation:e.encapsulation||Jt.Emulated,id:"c"+bb++,styles:e.styles||ne,_:null,setInput:null,schemas:e.schemas||null,tView:null,findHostDirectiveDefs:null,hostDirectives:null},i=e.dependencies,s=e.features;return o.inputs=gh(e.inputs,r),o.outputs=gh(e.outputs),s&&s.forEach(a=>a(o)),o.directiveDefs=i?()=>("function"==typeof i?i():i).map(hh).filter(ph):null,o.pipeDefs=i?()=>("function"==typeof i?i():i).map(rt).filter(ph):null,o})}function hh(e){return ie(e)||Ze(e)}function ph(e){return null!==e}function Lt(e){return Ln(()=>({type:e.type,bootstrap:e.bootstrap||ne,declarations:e.declarations||ne,imports:e.imports||ne,exports:e.exports||ne,transitiveCompileScopes:null,schemas:e.schemas||null,id:e.id||null}))}function gh(e,t){if(null==e)return mn;const n={};for(const r in e)if(e.hasOwnProperty(r)){let o=e[r],i=o;Array.isArray(o)&&(i=o[1],o=o[0]),n[o]=r,t&&(t[o]=i)}return n}const B=It;function ie(e){return e[_s]||null}function Ze(e){return e[kl]||null}function rt(e){return e[Ll]||null}function mt(e,t){const n=e[fh]||null;if(!n&&!0===t)throw new Error(`Type ${le(e)} does not have '\u0275mod' property.`);return n}const X=11;function yt(e){return Array.isArray(e)&&"object"==typeof e[1]}function Ut(e){return Array.isArray(e)&&!0===e[1]}function Hl(e){return 0!=(4&e.flags)}function Vo(e){return e.componentOffset>-1}function Es(e){return 1==(1&e.flags)}function Ht(e){return null!==e.template}function Mb(e){return 0!=(256&e[2])}function rr(e,t){return e.hasOwnProperty(yn)?e[yn]:null}class Tb{constructor(t,n,r){this.previousValue=t,this.currentValue=n,this.firstChange=r}isFirstChange(){return this.firstChange}}function At(){return Dh}function Dh(e){return e.type.prototype.ngOnChanges&&(e.setInput=Rb),xb}function xb(){const e=bh(this),t=e?.current;if(t){const n=e.previous;if(n===mn)e.previous=t;else for(let r in t)n[r]=t[r];e.current=null,this.ngOnChanges(t)}}function Rb(e,t,n,r){const o=this.declaredInputs[n],i=bh(e)||function Nb(e,t){return e[wh]=t}(e,{previous:mn,current:null}),s=i.current||(i.current={}),a=i.previous,l=a[o];s[o]=new Tb(l&&l.currentValue,t,a===mn),e[r]=t}At.ngInherit=!0;const wh="__ngSimpleChanges__";function bh(e){return e[wh]||null}function ze(e){for(;Array.isArray(e);)e=e[0];return e}function Ss(e,t){return ze(t[e])}function vt(e,t){return ze(t[e.index])}function Mh(e,t){return e.data[t]}function _t(e,t){const n=t[e];return yt(n)?n:n[0]}function Ms(e){return 64==(64&e[2])}function Vn(e,t){return null==t?null:e[t]}function Ih(e){e[18]=0}function Bl(e,t){e[5]+=t;let n=e,r=e[3];for(;null!==r&&(1===t&&1===n[5]||-1===t&&0===n[5]);)r[5]+=t,n=r,r=r[3]}const G={lFrame:Lh(null),bindingsEnabled:!0};function Th(){return G.bindingsEnabled}function b(){return G.lFrame.lView}function te(){return G.lFrame.tView}function ue(e){return G.lFrame.contextLView=e,e[8]}function ce(e){return G.lFrame.contextLView=null,e}function qe(){let e=xh();for(;null!==e&&64===e.type;)e=e.parent;return e}function xh(){return G.lFrame.currentTNode}function tn(e,t){const n=G.lFrame;n.currentTNode=e,n.isParent=t}function $l(){return G.lFrame.isParent}function Gl(){G.lFrame.isParent=!1}function it(){const e=G.lFrame;let t=e.bindingRootIndex;return-1===t&&(t=e.bindingRootIndex=e.tView.bindingStartIndex),t}function Pr(){return G.lFrame.bindingIndex++}function zb(e,t){const n=G.lFrame;n.bindingIndex=n.bindingRootIndex=e,zl(t)}function zl(e){G.lFrame.currentDirectiveIndex=e}function Ph(){return G.lFrame.currentQueryIndex}function Wl(e){G.lFrame.currentQueryIndex=e}function Wb(e){const t=e[1];return 2===t.type?t.declTNode:1===t.type?e[6]:null}function Oh(e,t,n){if(n&U.SkipSelf){let o=t,i=e;for(;!(o=o.parent,null!==o||n&U.Host||(o=Wb(i),null===o||(i=i[15],10&o.type))););if(null===o)return!1;t=o,e=i}const r=G.lFrame=kh();return r.currentTNode=t,r.lView=e,!0}function Kl(e){const t=kh(),n=e[1];G.lFrame=t,t.currentTNode=n.firstChild,t.lView=e,t.tView=n,t.contextLView=e,t.bindingIndex=n.bindingStartIndex,t.inI18n=!1}function kh(){const e=G.lFrame,t=null===e?null:e.child;return null===t?Lh(e):t}function Lh(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 Vh(){const e=G.lFrame;return G.lFrame=e.parent,e.currentTNode=null,e.lView=null,e}const Uh=Vh;function Zl(){const e=Vh();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 st(){return G.lFrame.selectedIndex}function or(e){G.lFrame.selectedIndex=e}function ve(){const e=G.lFrame;return Mh(e.tView,e.selectedIndex)}function Is(e,t){for(let n=t.directiveStart,r=t.directiveEnd;n=r)break}else t[l]<0&&(e[18]+=65536),(a>11>16&&(3&e[2])===t){e[2]+=2048;try{i.call(a)}finally{}}}else try{i.call(a)}finally{}}class Ho{constructor(t,n,r){this.factory=t,this.resolving=!1,this.canSeeViewProviders=n,this.injectImpl=r}}function Yl(e,t,n){let r=0;for(;rt){s=i-1;break}}}for(;i>16}(e),r=t;for(;n>0;)r=r[15],n--;return r}let Jl=!0;function Ns(e){const t=Jl;return Jl=e,t}let aE=0;const nn={};function Fs(e,t){const n=Wh(e,t);if(-1!==n)return n;const r=t[1];r.firstCreatePass&&(e.injectorIndex=t.length,eu(r.data,e),eu(t,null),eu(r.blueprint,null));const o=tu(e,t),i=e.injectorIndex;if(Gh(o)){const s=xs(o),a=Rs(o,t),l=a[1].data;for(let u=0;u<8;u++)t[i+u]=a[s+u]|l[s+u]}return t[i+8]=o,i}function eu(e,t){e.push(0,0,0,0,0,0,0,0,t)}function Wh(e,t){return-1===e.injectorIndex||e.parent&&e.parent.injectorIndex===e.injectorIndex||null===t[e.injectorIndex+8]?-1:e.injectorIndex}function tu(e,t){if(e.parent&&-1!==e.parent.injectorIndex)return e.parent.injectorIndex;let n=0,r=null,o=t;for(;null!==o;){if(r=ep(o),null===r)return-1;if(n++,o=o[15],-1!==r.injectorIndex)return r.injectorIndex|n<<16}return-1}function nu(e,t,n){!function lE(e,t,n){let r;"string"==typeof n?r=n.charCodeAt(0)||0:n.hasOwnProperty(Po)&&(r=n[Po]),null==r&&(r=n[Po]=aE++);const o=255&r;t.data[e+(o>>5)]|=1<=0?255&t:fE:t}(n);if("function"==typeof i){if(!Oh(t,e,r))return r&U.Host?Kh(o,0,r):Zh(t,n,r,o);try{const s=i(r);if(null!=s||r&U.Optional)return s;ps()}finally{Uh()}}else if("number"==typeof i){let s=null,a=Wh(e,t),l=-1,u=r&U.Host?t[16][6]:null;for((-1===a||r&U.SkipSelf)&&(l=-1===a?tu(e,t):t[a+8],-1!==l&&Jh(r,!1)?(s=t[1],a=xs(l),t=Rs(l,t)):a=-1);-1!==a;){const c=t[1];if(Yh(i,a,c.data)){const d=cE(a,t,n,s,r,u);if(d!==nn)return d}l=t[a+8],-1!==l&&Jh(r,t[1].data[a+8]===u)&&Yh(i,a,t)?(s=c,a=xs(l),t=Rs(l,t)):a=-1}}return o}function cE(e,t,n,r,o,i){const s=t[1],a=s.data[e+8],c=Ps(a,s,n,null==r?Vo(a)&&Jl:r!=s&&0!=(3&a.type),o&U.Host&&i===a);return null!==c?ir(t,s,c,a):nn}function Ps(e,t,n,r,o){const i=e.providerIndexes,s=t.data,a=1048575&i,l=e.directiveStart,c=i>>20,g=o?a+c:e.directiveEnd;for(let m=r?a:a+c;m=l&&y.type===n)return m}if(o){const m=s[l];if(m&&Ht(m)&&m.type===n)return l}return null}function ir(e,t,n,r){let o=e[n];const i=t.data;if(function rE(e){return e instanceof Ho}(o)){const s=o;s.resolving&&function sb(e,t){const n=t?`. Dependency path: ${t.join(" > ")} > ${e}`:"";throw new M(-200,`Circular dependency in DI detected for ${e}${n}`)}(function re(e){return"function"==typeof e?e.name||e.toString():"object"==typeof e&&null!=e&&"function"==typeof e.type?e.type.name||e.type.toString():$(e)}(i[n]));const a=Ns(s.canSeeViewProviders);s.resolving=!0;const l=s.injectImpl?Mt(s.injectImpl):null;Oh(e,r,U.Default);try{o=e[n]=s.factory(void 0,i,e,r),t.firstCreatePass&&n>=r.directiveStart&&function tE(e,t,n){const{ngOnChanges:r,ngOnInit:o,ngDoCheck:i}=t.type.prototype;if(r){const s=Dh(t);(n.preOrderHooks||(n.preOrderHooks=[])).push(e,s),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,s)}o&&(n.preOrderHooks||(n.preOrderHooks=[])).push(0-e,o),i&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,i),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,i))}(n,i[n],t)}finally{null!==l&&Mt(l),Ns(a),s.resolving=!1,Uh()}}return o}function Yh(e,t,n){return!!(n[t+(e>>5)]&1<{const t=e.prototype.constructor,n=t[yn]||ru(t),r=Object.prototype;let o=Object.getPrototypeOf(e.prototype).constructor;for(;o&&o!==r;){const i=o[yn]||ru(o);if(i&&i!==n)return i;o=Object.getPrototypeOf(o)}return i=>new i})}function ru(e){return xl(e)?()=>{const t=ru(V(e));return t&&t()}:rr(e)}function ep(e){const t=e[1],n=t.type;return 2===n?t.declTNode:1===n?e[6]:null}const Vr="__parameters__";function Hr(e,t,n){return Ln(()=>{const r=function ou(e){return function(...n){if(e){const r=e(...n);for(const o in r)this[o]=r[o]}}}(t);function o(...i){if(this instanceof o)return r.apply(this,i),this;const s=new o(...i);return a.annotation=s,a;function a(l,u,c){const d=l.hasOwnProperty(Vr)?l[Vr]:Object.defineProperty(l,Vr,{value:[]})[Vr];for(;d.length<=c;)d.push(null);return(d[c]=d[c]||[]).push(s),l}}return n&&(o.prototype=Object.create(n.prototype)),o.prototype.ngMetadataName=e,o.annotationCls=o,o})}class N{constructor(t,n){this._desc=t,this.ngMetadataName="InjectionToken",this.\u0275prov=void 0,"number"==typeof n?this.__NG_ELEMENT_ID__=n:void 0!==n&&(this.\u0275prov=F({token:this,providedIn:n.providedIn||"root",factory:n.factory}))}get multi(){return this}toString(){return`InjectionToken ${this._desc}`}}function sr(e,t){e.forEach(n=>Array.isArray(n)?sr(n,t):t(n))}function np(e,t,n){t>=e.length?e.push(n):e.splice(t,0,n)}function ks(e,t){return t>=e.length-1?e.pop():e.splice(t,1)[0]}function Ct(e,t,n){let r=jr(e,t);return r>=0?e[1|r]=n:(r=~r,function yE(e,t,n,r){let o=e.length;if(o==t)e.push(n,r);else if(1===o)e.push(r,e[0]),e[0]=n;else{for(o--,e.push(e[o-1],e[o]);o>t;)e[o]=e[o-2],o--;e[t]=n,e[t+1]=r}}(e,r,t,n)),r}function su(e,t){const n=jr(e,t);if(n>=0)return e[1|n]}function jr(e,t){return function rp(e,t,n){let r=0,o=e.length>>n;for(;o!==r;){const i=r+(o-r>>1),s=e[i<t?o=i:r=i+1}return~(o<((dt=dt||{})[dt.Important=1]="Important",dt[dt.DashCase=2]="DashCase",dt))();const fu=new Map;let UE=0;const pu="__ngContext__";function Ye(e,t){yt(t)?(e[pu]=t[20],function jE(e){fu.set(e[20],e)}(t)):e[pu]=t}function mu(e,t){return undefined(e,t)}function Xo(e){const t=e[3];return Ut(t)?t[3]:t}function yu(e){return bp(e[13])}function vu(e){return bp(e[4])}function bp(e){for(;null!==e&&!Ut(e);)e=e[4];return e}function $r(e,t,n,r,o){if(null!=r){let i,s=!1;Ut(r)?i=r:yt(r)&&(s=!0,r=r[0]);const a=ze(r);0===e&&null!==n?null==o?Tp(t,n,a):ar(t,n,a,o||null,!0):1===e&&null!==n?ar(t,n,a,o||null,!0):2===e?function Su(e,t,n){const r=Hs(e,t);r&&function l0(e,t,n,r){e.removeChild(t,n,r)}(e,r,t,n)}(t,a,s):3===e&&t.destroyNode(a),null!=i&&function d0(e,t,n,r,o){const i=n[7];i!==ze(n)&&$r(t,e,r,i,o);for(let a=10;a0&&(e[n-1][4]=r[4]);const i=ks(e,10+t);!function JE(e,t){Qo(e,t,t[X],2,null,null),t[0]=null,t[6]=null}(r[1],r);const s=i[19];null!==s&&s.detachView(i[1]),r[3]=null,r[4]=null,r[2]&=-65}return r}function Mp(e,t){if(!(128&t[2])){const n=t[X];n.destroyNode&&Qo(e,t,n,3,null,null),function n0(e){let t=e[13];if(!t)return wu(e[1],e);for(;t;){let n=null;if(yt(t))n=t[13];else{const r=t[10];r&&(n=r)}if(!n){for(;t&&!t[4]&&t!==e;)yt(t)&&wu(t[1],t),t=t[3];null===t&&(t=e),yt(t)&&wu(t[1],t),n=t&&t[4]}t=n}}(t)}}function wu(e,t){if(!(128&t[2])){t[2]&=-65,t[2]|=128,function a0(e,t){let n;if(null!=e&&null!=(n=e.destroyHooks))for(let r=0;r=0?r[o=s]():r[o=-s].unsubscribe(),i+=2}else{const s=r[o=n[i+1]];n[i].call(s)}if(null!==r){for(let i=o+1;i-1){const{encapsulation:i}=e.data[r.directiveStart+o];if(i===Jt.None||i===Jt.Emulated)return null}return vt(r,n)}}(e,t.parent,n)}function ar(e,t,n,r,o){e.insertBefore(t,n,r,o)}function Tp(e,t,n){e.appendChild(t,n)}function xp(e,t,n,r,o){null!==r?ar(e,t,n,r,o):Tp(e,t,n)}function Hs(e,t){return e.parentNode(t)}let Au,Gs,Fp=function Np(e,t,n){return 40&e.type?vt(e,n):null};function js(e,t,n,r){const o=Ip(e,r,t),i=t[X],a=function Rp(e,t,n){return Fp(e,t,n)}(r.parent||t[6],r,t);if(null!=o)if(Array.isArray(n))for(let l=0;le,createScript:e=>e,createScriptURL:e=>e})}catch{}return Gs}()?.createScriptURL(e)||e}class $p{constructor(t){this.changingThisBreaksApplicationSecurity=t}toString(){return`SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity} (see ${ih})`}}function Un(e){return e instanceof $p?e.changingThisBreaksApplicationSecurity:e}function Yo(e,t){const n=function b0(e){return e instanceof $p&&e.getTypeName()||null}(e);if(null!=n&&n!==t){if("ResourceURL"===n&&"URL"===t)return!0;throw new Error(`Required a safe ${t}, got a ${n} (see ${ih})`)}return n===t}const I0=/^(?:(?:https?|mailto|data|ftp|tel|file|sms):|[^&:/?#]*(?:[/?#]|$))/gi;var Re=(()=>((Re=Re||{})[Re.NONE=0]="NONE",Re[Re.HTML=1]="HTML",Re[Re.STYLE=2]="STYLE",Re[Re.SCRIPT=3]="SCRIPT",Re[Re.URL=4]="URL",Re[Re.RESOURCE_URL=5]="RESOURCE_URL",Re))();function qs(e){const t=ei();return t?t.sanitize(Re.URL,e)||"":Yo(e,"URL")?Un(e):function xu(e){return(e=String(e)).match(I0)?e:"unsafe:"+e}($(e))}function Xp(e){const t=ei();if(t)return Bp(t.sanitize(Re.RESOURCE_URL,e)||"");if(Yo(e,"ResourceURL"))return Bp(Un(e));throw new M(904,!1)}function ei(){const e=b();return e&&e[12]}const Ws=new N("ENVIRONMENT_INITIALIZER"),Yp=new N("INJECTOR",-1),Jp=new N("INJECTOR_DEF_TYPES");class eg{get(t,n=Ro){if(n===Ro){const r=new Error(`NullInjectorError: No provider for ${le(t)}!`);throw r.name="NullInjectorError",r}return n}}function j0(...e){return{\u0275providers:tg(0,e),\u0275fromNgModule:!0}}function tg(e,...t){const n=[],r=new Set;let o;return sr(t,i=>{const s=i;Pu(s,n,[],r)&&(o||(o=[]),o.push(s))}),void 0!==o&&ng(o,n),n}function ng(e,t){for(let n=0;n{t.push(i)})}}function Pu(e,t,n,r){if(!(e=V(e)))return!1;let o=null,i=ah(e);const s=!i&&ie(e);if(i||s){if(s&&!s.standalone)return!1;o=e}else{const l=e.ngModule;if(i=ah(l),!i)return!1;o=l}const a=r.has(o);if(s){if(a)return!1;if(r.add(o),s.dependencies){const l="function"==typeof s.dependencies?s.dependencies():s.dependencies;for(const u of l)Pu(u,t,n,r)}}else{if(!i)return!1;{if(null!=i.imports&&!a){let u;r.add(o);try{sr(i.imports,c=>{Pu(c,t,n,r)&&(u||(u=[]),u.push(c))})}finally{}void 0!==u&&ng(u,t)}if(!a){const u=rr(o)||(()=>new o);t.push({provide:o,useFactory:u,deps:ne},{provide:Jp,useValue:o,multi:!0},{provide:Ws,useValue:()=>R(o),multi:!0})}const l=i.providers;null==l||a||Ou(l,c=>{t.push(c)})}}return o!==e&&void 0!==e.providers}function Ou(e,t){for(let n of e)Rl(n)&&(n=n.\u0275providers),Array.isArray(n)?Ou(n,t):t(n)}const B0=ae({provide:String,useValue:ae});function ku(e){return null!==e&&"object"==typeof e&&B0 in e}function ur(e){return"function"==typeof e}const Lu=new N("Set Injector scope."),Ks={},G0={};let Vu;function Zs(){return void 0===Vu&&(Vu=new eg),Vu}class rn{}class ig extends rn{constructor(t,n,r,o){super(),this.parent=n,this.source=r,this.scopes=o,this.records=new Map,this._ngOnDestroyHooks=new Set,this._onDestroyHooks=[],this._destroyed=!1,Hu(t,s=>this.processProvider(s)),this.records.set(Yp,Gr(void 0,this)),o.has("environment")&&this.records.set(rn,Gr(void 0,this));const i=this.records.get(Lu);null!=i&&"string"==typeof i.value&&this.scopes.add(i.value),this.injectorDefTypes=new Set(this.get(Jp.multi,ne,U.Self))}get destroyed(){return this._destroyed}destroy(){this.assertNotDestroyed(),this._destroyed=!0;try{for(const t of this._ngOnDestroyHooks)t.ngOnDestroy();for(const t of this._onDestroyHooks)t()}finally{this.records.clear(),this._ngOnDestroyHooks.clear(),this.injectorDefTypes.clear(),this._onDestroyHooks.length=0}}onDestroy(t){this._onDestroyHooks.push(t)}runInContext(t){this.assertNotDestroyed();const n=Ir(this),r=Mt(void 0);try{return t()}finally{Ir(n),Mt(r)}}get(t,n=Ro,r=U.Default){this.assertNotDestroyed(),r=vs(r);const o=Ir(this),i=Mt(void 0);try{if(!(r&U.SkipSelf)){let a=this.records.get(t);if(void 0===a){const l=function Z0(e){return"function"==typeof e||"object"==typeof e&&e instanceof N}(t)&&gs(t);a=l&&this.injectableDefInScope(l)?Gr(Uu(t),Ks):null,this.records.set(t,a)}if(null!=a)return this.hydrate(t,a)}return(r&U.Self?Zs():this.parent).get(t,n=r&U.Optional&&n===Ro?null:n)}catch(s){if("NullInjectorError"===s.name){if((s[ys]=s[ys]||[]).unshift(le(t)),o)throw s;return function Db(e,t,n,r){const o=e[ys];throw t[ch]&&o.unshift(t[ch]),e.message=function wb(e,t,n,r=null){e=e&&"\n"===e.charAt(0)&&"\u0275"==e.charAt(1)?e.slice(2):e;let o=le(t);if(Array.isArray(t))o=t.map(le).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):le(a)))}o=`{${i.join(", ")}}`}return`${n}${r?"("+r+")":""}[${o}]: ${e.replace(yb,"\n ")}`}("\n"+e.message,o,n,r),e.ngTokenPath=o,e[ys]=null,e}(s,t,"R3InjectorError",this.source)}throw s}finally{Mt(i),Ir(o)}}resolveInjectorInitializers(){const t=Ir(this),n=Mt(void 0);try{const r=this.get(Ws.multi,ne,U.Self);for(const o of r)o()}finally{Ir(t),Mt(n)}}toString(){const t=[],n=this.records;for(const r of n.keys())t.push(le(r));return`R3Injector[${t.join(", ")}]`}assertNotDestroyed(){if(this._destroyed)throw new M(205,!1)}processProvider(t){let n=ur(t=V(t))?t:V(t&&t.provide);const r=function q0(e){return ku(e)?Gr(void 0,e.useValue):Gr(sg(e),Ks)}(t);if(ur(t)||!0!==t.multi)this.records.get(n);else{let o=this.records.get(n);o||(o=Gr(void 0,Ks,!0),o.factory=()=>Ol(o.multi),this.records.set(n,o)),n=t,o.multi.push(t)}this.records.set(n,r)}hydrate(t,n){return n.value===Ks&&(n.value=G0,n.value=n.factory()),"object"==typeof n.value&&n.value&&function K0(e){return null!==e&&"object"==typeof e&&"function"==typeof e.ngOnDestroy}(n.value)&&this._ngOnDestroyHooks.add(n.value),n.value}injectableDefInScope(t){if(!t.providedIn)return!1;const n=V(t.providedIn);return"string"==typeof n?"any"===n||this.scopes.has(n):this.injectorDefTypes.has(n)}}function Uu(e){const t=gs(e),n=null!==t?t.factory:rr(e);if(null!==n)return n;if(e instanceof N)throw new M(204,!1);if(e instanceof Function)return function z0(e){const t=e.length;if(t>0)throw function Go(e,t){const n=[];for(let r=0;rn.factory(e):()=>new e}(e);throw new M(204,!1)}function sg(e,t,n){let r;if(ur(e)){const o=V(e);return rr(o)||Uu(o)}if(ku(e))r=()=>V(e.useValue);else if(function og(e){return!(!e||!e.useFactory)}(e))r=()=>e.useFactory(...Ol(e.deps||[]));else if(function rg(e){return!(!e||!e.useExisting)}(e))r=()=>R(V(e.useExisting));else{const o=V(e&&(e.useClass||e.provide));if(!function W0(e){return!!e.deps}(e))return rr(o)||Uu(o);r=()=>new o(...Ol(e.deps))}return r}function Gr(e,t,n=!1){return{factory:e,value:t,multi:n?[]:void 0}}function Hu(e,t){for(const n of e)Array.isArray(n)?Hu(n,t):n&&Rl(n)?Hu(n.\u0275providers,t):t(n)}class X0{}class ag{}class Y0{resolveComponentFactory(t){throw function Q0(e){const t=Error(`No component factory found for ${le(e)}. Did you add it to @NgModule.entryComponents?`);return t.ngComponent=e,t}(t)}}let ti=(()=>{class e{}return e.NULL=new Y0,e})();function J0(){return zr(qe(),b())}function zr(e,t){return new Dt(vt(e,t))}let Dt=(()=>{class e{constructor(n){this.nativeElement=n}}return e.__NG_ELEMENT_ID__=J0,e})();function eS(e){return e instanceof Dt?e.nativeElement:e}class ug{}let wn=(()=>{class e{}return e.__NG_ELEMENT_ID__=()=>function tS(){const e=b(),n=_t(qe().index,e);return(yt(n)?n:e)[X]}(),e})(),nS=(()=>{class e{}return e.\u0275prov=F({token:e,providedIn:"root",factory:()=>null}),e})();class ni{constructor(t){this.full=t,this.major=t.split(".")[0],this.minor=t.split(".")[1],this.patch=t.split(".").slice(2).join(".")}}const rS=new ni("15.0.4"),ju={};function $u(e){return e.ngOriginalError}class qr{constructor(){this._console=console}handleError(t){const n=this._findOriginalError(t);this._console.error("ERROR",t),n&&this._console.error("ORIGINAL ERROR",n)}_findOriginalError(t){let n=t&&$u(t);for(;n&&$u(n);)n=$u(n);return n||null}}function bn(e){return e instanceof Function?e():e}function dg(e,t,n){let r=e.length;for(;;){const o=e.indexOf(t,n);if(-1===o)return o;if(0===o||e.charCodeAt(o-1)<=32){const i=t.length;if(o+i===r||e.charCodeAt(o+i)<=32)return o}n=o+1}}const fg="ng-template";function pS(e,t,n){let r=0;for(;ri?"":o[d+1].toLowerCase();const m=8&r?g:null;if(m&&-1!==dg(m,u,0)||2&r&&u!==g){if(jt(r))return!1;s=!0}}}}else{if(!s&&!jt(r)&&!jt(l))return!1;if(s&&jt(l))continue;s=!1,r=l|1&r}}return jt(r)||s}function jt(e){return 0==(1&e)}function yS(e,t,n,r){if(null===t)return-1;let o=0;if(r||!n){let i=!1;for(;o-1)for(n++;n0?'="'+a+'"':"")+"]"}else 8&r?o+="."+s:4&r&&(o+=" "+s);else""!==o&&!jt(s)&&(t+=gg(i,o),o=""),r=s,i=i||!jt(r);n++}return""!==o&&(t+=gg(i,o)),t}const z={};function C(e){mg(te(),b(),st()+e,!1)}function mg(e,t,n,r){if(!r)if(3==(3&t[2])){const i=e.preOrderCheckHooks;null!==i&&As(t,i,n)}else{const i=e.preOrderHooks;null!==i&&Ts(t,i,0,n)}or(n)}function Cg(e,t=null,n=null,r){const o=Dg(e,t,n,r);return o.resolveInjectorInitializers(),o}function Dg(e,t=null,n=null,r,o=new Set){const i=[n||ne,j0(e)];return r=r||("object"==typeof e?void 0:le(e)),new ig(i,t||Zs(),r||null,o)}let Bt=(()=>{class e{static create(n,r){if(Array.isArray(n))return Cg({name:""},r,n,"");{const o=n.name??"";return Cg({name:o},n.parent,n.providers,o)}}}return e.THROW_IF_NOT_FOUND=Ro,e.NULL=new eg,e.\u0275prov=F({token:e,providedIn:"any",factory:()=>R(Yp)}),e.__NG_ELEMENT_ID__=-1,e})();function S(e,t=U.Default){const n=b();return null===n?R(e,t):Xh(qe(),n,V(e),t)}function Tg(e,t){const n=e.contentQueries;if(null!==n)for(let r=0;r22&&mg(e,t,22,!1),n(r,o)}finally{or(i)}}function Xu(e,t,n){if(Hl(t)){const o=t.directiveEnd;for(let i=t.directiveStart;i0;){const n=e[--t];if("number"==typeof n&&n<0)return n}return 0})(s)!=a&&s.push(a),s.push(n,r,i)}}(e,t,r,ri(e,n,o.hostVars,z),o)}function on(e,t,n,r,o,i){const s=vt(e,t);!function nc(e,t,n,r,o,i,s){if(null==i)e.removeAttribute(t,o,n);else{const a=null==s?$(i):s(i,r||"",o);e.setAttribute(t,o,a,n)}}(t[X],s,i,e.value,n,r,o)}function lM(e,t,n,r,o,i){const s=i[t];if(null!==s){const a=r.setInput;for(let l=0;l0&&rc(n)}}function rc(e){for(let r=yu(e);null!==r;r=vu(r))for(let o=10;o0&&rc(i)}const n=e[1].components;if(null!==n)for(let r=0;r0&&rc(o)}}function hM(e,t){const n=_t(t,e),r=n[1];(function pM(e,t){for(let n=t.length;n-1&&(Du(t,r),ks(n,r))}this._attachedToViewContainer=!1}Mp(this._lView[1],this._lView)}onDestroy(t){Ng(this._lView[1],this._lView,null,t)}markForCheck(){oc(this._cdRefInjectingView||this._lView)}detach(){this._lView[2]&=-65}reattach(){this._lView[2]|=64}detectChanges(){ea(this._lView[1],this._lView,this.context)}checkNoChanges(){}attachToViewContainerRef(){if(this._appRef)throw new M(902,!1);this._attachedToViewContainer=!0}detachFromAppRef(){this._appRef=null,function t0(e,t){Qo(e,t,t[X],2,null,null)}(this._lView[1],this._lView)}attachToAppRef(t){if(this._attachedToViewContainer)throw new M(902,!1);this._appRef=t}}class gM extends oi{constructor(t){super(t),this._view=t}detectChanges(){const t=this._view;ea(t[1],t,t[8],!1)}checkNoChanges(){}get context(){return null}}class $g extends ti{constructor(t){super(),this.ngModule=t}resolveComponentFactory(t){const n=ie(t);return new ii(n,this.ngModule)}}function Gg(e){const t=[];for(let n in e)e.hasOwnProperty(n)&&t.push({propName:e[n],templateName:n});return t}class yM{constructor(t,n){this.injector=t,this.parentInjector=n}get(t,n,r){r=vs(r);const o=this.injector.get(t,ju,r);return o!==ju||n===ju?o:this.parentInjector.get(t,n,r)}}class ii extends ag{constructor(t,n){super(),this.componentDef=t,this.ngModule=n,this.componentType=t.type,this.selector=function bS(e){return e.map(wS).join(",")}(t.selectors),this.ngContentSelectors=t.ngContentSelectors?t.ngContentSelectors:[],this.isBoundToModule=!!n}get inputs(){return Gg(this.componentDef.inputs)}get outputs(){return Gg(this.componentDef.outputs)}create(t,n,r,o){let i=(o=o||this.ngModule)instanceof rn?o:o?.injector;i&&null!==this.componentDef.getStandaloneInjector&&(i=this.componentDef.getStandaloneInjector(i)||i);const s=i?new yM(t,i):t,a=s.get(ug,null);if(null===a)throw new M(407,!1);const l=s.get(nS,null),u=a.createRenderer(null,this.componentDef),c=this.componentDef.selectors[0][0]||"div",d=r?function WS(e,t,n){return e.selectRootElement(t,n===Jt.ShadowDom)}(u,r,this.componentDef.encapsulation):Cu(u,c,function mM(e){const t=e.toLowerCase();return"svg"===t?"svg":"math"===t?"math":null}(c)),g=this.componentDef.onPush?288:272,m=Ju(0,null,null,1,0,null,null,null,null,null),y=Qs(null,m,null,g,null,null,a,u,l,s,null);let v,w;Kl(y);try{const E=this.componentDef;let A,D=null;E.findHostDirectiveDefs?(A=[],D=new Map,E.findHostDirectiveDefs(E,A,D),A.push(E)):A=[E];const L=function _M(e,t){const n=e[1];return e[22]=t,Zr(n,22,2,"#host",null)}(y,d),de=function CM(e,t,n,r,o,i,s,a){const l=o[1];!function DM(e,t,n,r){for(const o of e)t.mergedAttrs=jo(t.mergedAttrs,o.hostAttrs);null!==t.mergedAttrs&&(ta(t,t.mergedAttrs,!0),null!==n&&Vp(r,n,t))}(r,e,t,s);const u=i.createRenderer(t,n),c=Qs(o,Rg(n),null,n.onPush?32:16,o[e.index],e,i,u,a||null,null,null);return l.firstCreatePass&&tc(l,e,r.length-1),Js(o,c),o[e.index]=c}(L,d,E,A,y,a,u);w=Mh(m,22),d&&function bM(e,t,n,r){if(r)Yl(e,n,["ng-version",rS.full]);else{const{attrs:o,classes:i}=function ES(e){const t=[],n=[];let r=1,o=2;for(;r0&&Lp(e,n,i.join(" "))}}(u,E,d,r),void 0!==n&&function EM(e,t,n){const r=e.projection=[];for(let o=0;o=0;r--){const o=e[r];o.hostVars=t+=o.hostVars,o.hostAttrs=jo(o.hostAttrs,n=jo(n,o.hostAttrs))}}(r)}function ac(e){return e===mn?{}:e===ne?[]:e}function IM(e,t){const n=e.viewQuery;e.viewQuery=n?(r,o)=>{t(r,o),n(r,o)}:t}function AM(e,t){const n=e.contentQueries;e.contentQueries=n?(r,o,i)=>{t(r,o,i),n(r,o,i)}:t}function TM(e,t){const n=e.hostBindings;e.hostBindings=n?(r,o)=>{t(r,o),n(r,o)}:t}let ra=null;function cr(){if(!ra){const e=pe.Symbol;if(e&&e.iterator)ra=e.iterator;else{const t=Object.getOwnPropertyNames(Map.prototype);for(let n=0;ns(ze(L[r.index])):r.index;let D=null;if(!s&&a&&(D=function $M(e,t,n,r){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,r.index)),null!==D)(D.__ngLastListenerFn__||D).__ngNextListenerFn__=i,D.__ngLastListenerFn__=i,g=!1;else{i=cm(r,t,c,i,!1);const L=n.listen(w,o,i);d.push(i,L),u&&u.push(o,A,E,E+1)}}else i=cm(r,t,c,i,!1);const m=r.outputs;let y;if(g&&null!==m&&(y=m[o])){const v=y.length;if(v)for(let w=0;w-1?_t(e.index,t):t);let l=um(t,0,r,s),u=i.__ngNextListenerFn__;for(;u;)l=um(t,0,u,s)&&l,u=u.__ngNextListenerFn__;return o&&!1===l&&(s.preventDefault(),s.returnValue=!1),l}}function j(e=1){return function Kb(e){return(G.lFrame.contextLView=function Zb(e,t){for(;e>0;)t=t[15],e--;return t}(e,G.lFrame.contextLView))[8]}(e)}function Sn(e,t,n,r,o){const i=b(),s=Qr(i,t,n,r);return s!==z&&wt(te(),ve(),i,e,s,i[X],o,!1),Sn}function ia(e,t){return e<<17|t<<2}function Hn(e){return e>>17&32767}function dc(e){return 2|e}function fr(e){return(131068&e)>>2}function fc(e,t){return-131069&e|t<<2}function hc(e){return 1|e}function Cm(e,t,n,r,o){const i=e[n+1],s=null===t;let a=r?Hn(i):fr(i),l=!1;for(;0!==a&&(!1===l||s);){const c=e[a+1];YM(e[a],t)&&(l=!0,e[a+1]=r?hc(c):dc(c)),a=r?Hn(c):fr(c)}l&&(e[n+1]=r?dc(i):hc(i))}function YM(e,t){return null===e||null==t||(Array.isArray(e)?e[1]:e)===t||!(!Array.isArray(e)||"string"!=typeof t)&&jr(e,t)>=0}function sa(e,t){return function Gt(e,t,n,r){const o=b(),i=te(),s=function Cn(e){const t=G.lFrame,n=t.bindingIndex;return t.bindingIndex=t.bindingIndex+e,n}(2);i.firstUpdatePass&&function Tm(e,t,n,r){const o=e.data;if(null===o[n+1]){const i=o[st()],s=function Am(e,t){return t>=e.expandoStartIndex}(e,n);(function Fm(e,t){return 0!=(e.flags&(t?8:16))})(i,r)&&null===t&&!s&&(t=!1),t=function aI(e,t,n,r){const o=function ql(e){const t=G.lFrame.currentDirectiveIndex;return-1===t?null:e[t]}(e);let i=r?t.residualClasses:t.residualStyles;if(null===o)0===(r?t.classBindings:t.styleBindings)&&(n=ui(n=pc(null,e,t,n,r),t.attrs,r),i=null);else{const s=t.directiveStylingLast;if(-1===s||e[s]!==o)if(n=pc(o,e,t,n,r),null===i){let l=function lI(e,t,n){const r=n?t.classBindings:t.styleBindings;if(0!==fr(r))return e[Hn(r)]}(e,t,r);void 0!==l&&Array.isArray(l)&&(l=pc(null,e,t,l[1],r),l=ui(l,t.attrs,r),function uI(e,t,n,r){e[Hn(n?t.classBindings:t.styleBindings)]=r}(e,t,r,l))}else i=function cI(e,t,n){let r;const o=t.directiveEnd;for(let i=1+t.directiveStylingLast;i0)&&(u=!0)}else c=n;if(o)if(0!==l){const g=Hn(e[a+1]);e[r+1]=ia(g,a),0!==g&&(e[g+1]=fc(e[g+1],r)),e[a+1]=function KM(e,t){return 131071&e|t<<17}(e[a+1],r)}else e[r+1]=ia(a,0),0!==a&&(e[a+1]=fc(e[a+1],r)),a=r;else e[r+1]=ia(l,0),0===a?a=r:e[l+1]=fc(e[l+1],r),l=r;u&&(e[r+1]=dc(e[r+1])),Cm(e,c,r,!0),Cm(e,c,r,!1),function QM(e,t,n,r,o){const i=o?e.residualClasses:e.residualStyles;null!=i&&"string"==typeof t&&jr(i,t)>=0&&(n[r+1]=hc(n[r+1]))}(t,c,e,r,i),s=ia(a,l),i?t.classBindings=s:t.styleBindings=s}(o,i,t,n,s,r)}}(i,e,s,r),t!==z&&Je(o,s,t)&&function Rm(e,t,n,r,o,i,s,a){if(!(3&t.type))return;const l=e.data,u=l[a+1],c=function ZM(e){return 1==(1&e)}(u)?Nm(l,t,n,o,fr(u),s):void 0;aa(c)||(aa(i)||function WM(e){return 2==(2&e)}(u)&&(i=Nm(l,null,n,o,a,s)),function f0(e,t,n,r,o){if(t)o?e.addClass(n,r):e.removeClass(n,r);else{let i=-1===r.indexOf("-")?void 0:dt.DashCase;null==o?e.removeStyle(n,r,i):("string"==typeof o&&o.endsWith("!important")&&(o=o.slice(0,-10),i|=dt.Important),e.setStyle(n,r,o,i))}}(r,s,Ss(st(),n),o,i))}(i,i.data[st()],o,o[X],e,o[s+1]=function hI(e,t){return null==e||("string"==typeof t?e+=t:"object"==typeof e&&(e=le(Un(e)))),e}(t,n),r,s)}(e,t,null,!0),sa}function pc(e,t,n,r,o){let i=null;const s=n.directiveEnd;let a=n.directiveStylingLast;for(-1===a?a=n.directiveStart:a++;a0;){const l=e[o],u=Array.isArray(l),c=u?l[1]:l,d=null===c;let g=n[o+1];g===z&&(g=d?ne:void 0);let m=d?su(g,r):c===r?g:void 0;if(u&&!aa(m)&&(m=su(l,r)),aa(m)&&(a=m,s))return a;const y=e[o+1];o=s?Hn(y):fr(y)}if(null!==t){let l=i?t.residualClasses:t.residualStyles;null!=l&&(a=su(l,r))}return a}function aa(e){return void 0!==e}function h(e,t=""){const n=b(),r=te(),o=e+22,i=r.firstCreatePass?Zr(r,o,1,t,null):r.data[o],s=n[o]=function _u(e,t){return e.createText(t)}(n[X],t);js(r,n,s,i),tn(i,!1)}function _e(e){return Mn("",e,""),_e}function Mn(e,t,n){const r=b(),o=Qr(r,e,t,n);return o!==z&&function En(e,t,n){const r=Ss(t,e);!function Ep(e,t,n){e.setValue(t,n)}(e[X],r,n)}(r,st(),o),Mn}const uo="en-US";let ty=uo;function yc(e,t,n,r,o){if(e=V(e),Array.isArray(e))for(let i=0;i>20;if(ur(e)||!e.multi){const m=new Ho(l,o,S),y=_c(a,t,o?c:c+g,d);-1===y?(nu(Fs(u,s),i,a),vc(i,e,t.length),t.push(a),u.directiveStart++,u.directiveEnd++,o&&(u.providerIndexes+=1048576),n.push(m),s.push(m)):(n[y]=m,s[y]=m)}else{const m=_c(a,t,c+g,d),y=_c(a,t,c,c+g),v=m>=0&&n[m],w=y>=0&&n[y];if(o&&!w||!o&&!v){nu(Fs(u,s),i,a);const E=function R1(e,t,n,r,o){const i=new Ho(e,n,S);return i.multi=[],i.index=t,i.componentProviders=0,My(i,o,r&&!n),i}(o?x1:T1,n.length,o,r,l);!o&&w&&(n[y].providerFactory=E),vc(i,e,t.length,0),t.push(a),u.directiveStart++,u.directiveEnd++,o&&(u.providerIndexes+=1048576),n.push(E),s.push(E)}else vc(i,e,m>-1?m:y,My(n[o?y:m],l,!o&&r));!o&&r&&w&&n[y].componentProviders++}}}function vc(e,t,n,r){const o=ur(t),i=function $0(e){return!!e.useClass}(t);if(o||i){const l=(i?V(t.useClass):t).prototype.ngOnDestroy;if(l){const u=e.destroyHooks||(e.destroyHooks=[]);if(!o&&t.multi){const c=u.indexOf(n);-1===c?u.push(n,[r,l]):u[c+1].push(r,l)}else u.push(n,l)}}}function My(e,t,n){return n&&e.componentProviders++,e.multi.push(t)-1}function _c(e,t,n,r){for(let o=n;o{n.providersResolver=(r,o)=>function A1(e,t,n){const r=te();if(r.firstCreatePass){const o=Ht(e);yc(n,r.data,r.blueprint,o,!0),yc(t,r.data,r.blueprint,o,!1)}}(r,o?o(e):e,t)}}class co{}class Iy{}class Ay extends co{constructor(t,n){super(),this._parent=n,this._bootstrapComponents=[],this.destroyCbs=[],this.componentFactoryResolver=new $g(this);const r=mt(t);this._bootstrapComponents=bn(r.bootstrap),this._r3Injector=Dg(t,n,[{provide:co,useValue:this},{provide:ti,useValue:this.componentFactoryResolver}],le(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(n=>n()),this.destroyCbs=null}onDestroy(t){this.destroyCbs.push(t)}}class Dc extends Iy{constructor(t){super(),this.moduleType=t}create(t){return new Ay(this.moduleType,t)}}class F1 extends co{constructor(t,n,r){super(),this.componentFactoryResolver=new $g(this),this.instance=null;const o=new ig([...t,{provide:co,useValue:this},{provide:ti,useValue:this.componentFactoryResolver}],n||Zs(),r,new Set(["environment"]));this.injector=o,o.resolveInjectorInitializers()}destroy(){this.injector.destroy()}onDestroy(t){this.injector.onDestroy(t)}}function fa(e,t,n=null){return new F1(e,t,n).injector}let P1=(()=>{class e{constructor(n){this._injector=n,this.cachedInjectors=new Map}getOrCreateStandaloneInjector(n){if(!n.standalone)return null;if(!this.cachedInjectors.has(n.id)){const r=tg(0,n.type),o=r.length>0?fa([r],this._injector,`Standalone[${n.type.name}]`):null;this.cachedInjectors.set(n.id,o)}return this.cachedInjectors.get(n.id)}ngOnDestroy(){try{for(const n of this.cachedInjectors.values())null!==n&&n.destroy()}finally{this.cachedInjectors.clear()}}}return e.\u0275prov=F({token:e,providedIn:"environment",factory:()=>new e(R(rn))}),e})();function Ty(e){e.getStandaloneInjector=t=>t.get(P1).getOrCreateStandaloneInjector(e)}function be(e,t,n){const r=it()+e,o=b();return o[r]===z?sn(o,r,n?t.call(n):t()):function ai(e,t){return e[t]}(o,r)}function bc(e,t,n,r){return function ky(e,t,n,r,o,i){const s=t+n;return Je(e,s,o)?sn(e,s+1,i?r.call(i,o):r(o)):function gi(e,t){const n=e[t];return n===z?void 0:n}(e,s+1)}(b(),it(),e,t,n,r)}function Ec(e){return t=>{setTimeout(e,void 0,t)}}const Ee=class oA extends hn{constructor(t=!1){super(),this.__isAsync=t}emit(t){super.next(t)}subscribe(t,n,r){let o=t,i=n||(()=>null),s=r;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=Ec(i),o&&(o=Ec(o)),s&&(s=Ec(s)));const a=super.subscribe({next:o,error:i,complete:s});return t instanceof bt&&t.add(a),a}};function iA(){return this._results[cr()]()}class Sc{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 n=cr(),r=Sc.prototype;r[n]||(r[n]=iA)}get changes(){return this._changes||(this._changes=new Ee)}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,n){return this._results.reduce(t,n)}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,n){const r=this;r.dirty=!1;const o=function xt(e){return e.flat(Number.POSITIVE_INFINITY)}(t);(this._changesDetected=!function gE(e,t,n){if(e.length!==t.length)return!1;for(let r=0;r{class e{}return e.__NG_ELEMENT_ID__=lA,e})();const sA=In,aA=class extends sA{constructor(t,n,r){super(),this._declarationLView=t,this._declarationTContainer=n,this.elementRef=r}createEmbeddedView(t,n){const r=this._declarationTContainer.tViews,o=Qs(this._declarationLView,r,t,16,null,r.declTNode,null,null,null,null,n||null);o[17]=this._declarationLView[this._declarationTContainer.index];const s=this._declarationLView[19];return null!==s&&(o[19]=s.createEmbeddedView(r)),Zu(r,o,t),new oi(o)}};function lA(){return ha(qe(),b())}function ha(e,t){return 4&e.type?new aA(t,e,zr(e,t)):null}let qt=(()=>{class e{}return e.__NG_ELEMENT_ID__=uA,e})();function uA(){return $y(qe(),b())}const cA=qt,jy=class extends cA{constructor(t,n,r){super(),this._lContainer=t,this._hostTNode=n,this._hostLView=r}get element(){return zr(this._hostTNode,this._hostLView)}get injector(){return new kr(this._hostTNode,this._hostLView)}get parentInjector(){const t=tu(this._hostTNode,this._hostLView);if(Gh(t)){const n=Rs(t,this._hostLView),r=xs(t);return new kr(n[1].data[r+8],n)}return new kr(null,this._hostLView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(t){const n=By(this._lContainer);return null!==n&&n[t]||null}get length(){return this._lContainer.length-10}createEmbeddedView(t,n,r){let o,i;"number"==typeof r?o=r:null!=r&&(o=r.index,i=r.injector);const s=t.createEmbeddedView(n||{},i);return this.insert(s,o),s}createComponent(t,n,r,o,i){const s=t&&!function $o(e){return"function"==typeof e}(t);let a;if(s)a=n;else{const d=n||{};a=d.index,r=d.injector,o=d.projectableNodes,i=d.environmentInjector||d.ngModuleRef}const l=s?t:new ii(ie(t)),u=r||this.parentInjector;if(!i&&null==l.ngModule){const g=(s?u:this.parentInjector).get(rn,null);g&&(i=g)}const c=l.create(u,o,void 0,i);return this.insert(c.hostView,a),c}insert(t,n){const r=t._lView,o=r[1];if(function Lb(e){return Ut(e[3])}(r)){const c=this.indexOf(t);if(-1!==c)this.detach(c);else{const d=r[3],g=new jy(d,d[6],d[3]);g.detach(g.indexOf(t))}}const i=this._adjustIndex(n),s=this._lContainer;!function r0(e,t,n,r){const o=10+r,i=n.length;r>0&&(n[o-1][4]=t),r0)r.push(s[a/2]);else{const u=i[a+1],c=t[-l];for(let d=10;d{class e{constructor(n){this.appInits=n,this.resolve=ga,this.reject=ga,this.initialized=!1,this.done=!1,this.donePromise=new Promise((r,o)=>{this.resolve=r,this.reject=o})}runInitializers(){if(this.initialized)return;const n=[],r=()=>{this.done=!0,this.resolve()};if(this.appInits)for(let o=0;o{i.subscribe({complete:a,error:l})});n.push(s)}}Promise.all(n).then(()=>{r()}).catch(o=>{this.reject(o)}),0===n.length&&r(),this.initialized=!0}}return e.\u0275fac=function(n){return new(n||e)(R(ma,8))},e.\u0275prov=F({token:e,factory:e.\u0275fac,providedIn:"root"}),e})();const vi=new N("AppId",{providedIn:"root",factory:function mv(){return`${kc()}${kc()}${kc()}`}});function kc(){return String.fromCharCode(97+Math.floor(25*Math.random()))}const yv=new N("Platform Initializer"),Lc=new N("Platform ID",{providedIn:"platform",factory:()=>"unknown"}),vv=new N("appBootstrapListener");let VA=(()=>{class e{log(n){console.log(n)}warn(n){console.warn(n)}}return e.\u0275fac=function(n){return new(n||e)},e.\u0275prov=F({token:e,factory:e.\u0275fac,providedIn:"platform"}),e})();const An=new N("LocaleId",{providedIn:"root",factory:()=>Y(An,U.Optional|U.SkipSelf)||function UA(){return typeof $localize<"u"&&$localize.locale||uo}()});class jA{constructor(t,n){this.ngModuleFactory=t,this.componentFactories=n}}let _v=(()=>{class e{compileModuleSync(n){return new Dc(n)}compileModuleAsync(n){return Promise.resolve(this.compileModuleSync(n))}compileModuleAndAllComponentsSync(n){const r=this.compileModuleSync(n),i=bn(mt(n).declarations).reduce((s,a)=>{const l=ie(a);return l&&s.push(new ii(l)),s},[]);return new jA(r,i)}compileModuleAndAllComponentsAsync(n){return Promise.resolve(this.compileModuleAndAllComponentsSync(n))}clearCache(){}clearCacheFor(n){}getModuleId(n){}}return e.\u0275fac=function(n){return new(n||e)},e.\u0275prov=F({token:e,factory:e.\u0275fac,providedIn:"root"}),e})();const GA=(()=>Promise.resolve(0))();function Vc(e){typeof Zone>"u"?GA.then(()=>{e&&e.apply(null,null)}):Zone.current.scheduleMicroTask("scheduleMicrotask",e)}class Ne{constructor({enableLongStackTrace:t=!1,shouldCoalesceEventChangeDetection:n=!1,shouldCoalesceRunChangeDetection:r=!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 M(908,!1);Zone.assertZonePatched();const o=this;o._nesting=0,o._outer=o._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(o._inner=o._inner.fork(new Zone.TaskTrackingZoneSpec)),t&&Zone.longStackTraceZoneSpec&&(o._inner=o._inner.fork(Zone.longStackTraceZoneSpec)),o.shouldCoalesceEventChangeDetection=!r&&n,o.shouldCoalesceRunChangeDetection=r,o.lastRequestAnimationFrameId=-1,o.nativeRequestAnimationFrame=function zA(){let e=pe.requestAnimationFrame,t=pe.cancelAnimationFrame;if(typeof Zone<"u"&&e&&t){const n=e[Zone.__symbol__("OriginalDelegate")];n&&(e=n);const r=t[Zone.__symbol__("OriginalDelegate")];r&&(t=r)}return{nativeRequestAnimationFrame:e,nativeCancelAnimationFrame:t}}().nativeRequestAnimationFrame,function KA(e){const t=()=>{!function WA(e){e.isCheckStableRunning||-1!==e.lastRequestAnimationFrameId||(e.lastRequestAnimationFrameId=e.nativeRequestAnimationFrame.call(pe,()=>{e.fakeTopEventTask||(e.fakeTopEventTask=Zone.root.scheduleEventTask("fakeTopEventTask",()=>{e.lastRequestAnimationFrameId=-1,Hc(e),e.isCheckStableRunning=!0,Uc(e),e.isCheckStableRunning=!1},void 0,()=>{},()=>{})),e.fakeTopEventTask.invoke()}),Hc(e))}(e)};e._inner=e._inner.fork({name:"angular",properties:{isAngularZone:!0},onInvokeTask:(n,r,o,i,s,a)=>{try{return wv(e),n.invokeTask(o,i,s,a)}finally{(e.shouldCoalesceEventChangeDetection&&"eventTask"===i.type||e.shouldCoalesceRunChangeDetection)&&t(),bv(e)}},onInvoke:(n,r,o,i,s,a,l)=>{try{return wv(e),n.invoke(o,i,s,a,l)}finally{e.shouldCoalesceRunChangeDetection&&t(),bv(e)}},onHasTask:(n,r,o,i)=>{n.hasTask(o,i),r===o&&("microTask"==i.change?(e._hasPendingMicrotasks=i.microTask,Hc(e),Uc(e)):"macroTask"==i.change&&(e.hasPendingMacrotasks=i.macroTask))},onHandleError:(n,r,o,i)=>(n.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(!Ne.isInAngularZone())throw new M(909,!1)}static assertNotInAngularZone(){if(Ne.isInAngularZone())throw new M(909,!1)}run(t,n,r){return this._inner.run(t,n,r)}runTask(t,n,r,o){const i=this._inner,s=i.scheduleEventTask("NgZoneEvent: "+o,t,qA,ga,ga);try{return i.runTask(s,n,r)}finally{i.cancelTask(s)}}runGuarded(t,n,r){return this._inner.runGuarded(t,n,r)}runOutsideAngular(t){return this._outer.run(t)}}const qA={};function Uc(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 Hc(e){e.hasPendingMicrotasks=!!(e._hasPendingMicrotasks||(e.shouldCoalesceEventChangeDetection||e.shouldCoalesceRunChangeDetection)&&-1!==e.lastRequestAnimationFrameId)}function wv(e){e._nesting++,e.isStable&&(e.isStable=!1,e.onUnstable.emit(null))}function bv(e){e._nesting--,Uc(e)}class ZA{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new Ee,this.onMicrotaskEmpty=new Ee,this.onStable=new Ee,this.onError=new Ee}run(t,n,r){return t.apply(n,r)}runGuarded(t,n,r){return t.apply(n,r)}runOutsideAngular(t){return t()}runTask(t,n,r,o){return t.apply(n,r)}}const Ev=new N(""),va=new N("");let $c,jc=(()=>{class e{constructor(n,r,o){this._ngZone=n,this.registry=r,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,$c||(function XA(e){$c=e}(o),o.addToWindow(r)),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:()=>{Ne.assertNotInAngularZone(),Vc(()=>{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())Vc(()=>{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(r=>!r.updateCb||!r.updateCb(n)||(clearTimeout(r.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,r,o){let i=-1;r&&r>0&&(i=setTimeout(()=>{this._callbacks=this._callbacks.filter(s=>s.timeoutId!==i),n(this._didWork,this.getPendingTasks())},r)),this._callbacks.push({doneCb:n,timeoutId:i,updateCb:o})}whenStable(n,r,o){if(o&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is "zone.js/plugins/task-tracking" loaded?');this.addCallback(n,r,o),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}registerApplication(n){this.registry.registerApplication(n,this)}unregisterApplication(n){this.registry.unregisterApplication(n)}findProviders(n,r,o){return[]}}return e.\u0275fac=function(n){return new(n||e)(R(Ne),R(Bc),R(va))},e.\u0275prov=F({token:e,factory:e.\u0275fac}),e})(),Bc=(()=>{class e{constructor(){this._applications=new Map}registerApplication(n,r){this._applications.set(n,r)}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,r=!0){return $c?.findTestabilityInTree(this,n,r)??null}}return e.\u0275fac=function(n){return new(n||e)},e.\u0275prov=F({token:e,factory:e.\u0275fac,providedIn:"platform"}),e})(),jn=null;const Sv=new N("AllowMultipleToken"),Gc=new N("PlatformDestroyListeners");class Mv{constructor(t,n){this.name=t,this.token=n}}function Av(e,t,n=[]){const r=`Platform: ${t}`,o=new N(r);return(i=[])=>{let s=zc();if(!s||s.injector.get(Sv,!1)){const a=[...n,...i,{provide:o,useValue:!0}];e?e(a):function JA(e){if(jn&&!jn.get(Sv,!1))throw new M(400,!1);jn=e;const t=e.get(xv);(function Iv(e){const t=e.get(yv,null);t&&t.forEach(n=>n())})(e)}(function Tv(e=[],t){return Bt.create({name:t,providers:[{provide:Lu,useValue:"platform"},{provide:Gc,useValue:new Set([()=>jn=null])},...e]})}(a,r))}return function tT(e){const t=zc();if(!t)throw new M(401,!1);return t}()}}function zc(){return jn?.get(xv)??null}let xv=(()=>{class e{constructor(n){this._injector=n,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(n,r){const o=function Nv(e,t){let n;return n="noop"===e?new ZA:("zone.js"===e?void 0:e)||new Ne(t),n}(r?.ngZone,function Rv(e){return{enableLongStackTrace:!1,shouldCoalesceEventChangeDetection:!(!e||!e.ngZoneEventCoalescing)||!1,shouldCoalesceRunChangeDetection:!(!e||!e.ngZoneRunCoalescing)||!1}}(r)),i=[{provide:Ne,useValue:o}];return o.run(()=>{const s=Bt.create({providers:i,parent:this.injector,name:n.moduleType.name}),a=n.create(s),l=a.injector.get(qr,null);if(!l)throw new M(402,!1);return o.runOutsideAngular(()=>{const u=o.onError.subscribe({next:c=>{l.handleError(c)}});a.onDestroy(()=>{Ca(this._modules,a),u.unsubscribe()})}),function Fv(e,t,n){try{const r=n();return li(r)?r.catch(o=>{throw t.runOutsideAngular(()=>e.handleError(o)),o}):r}catch(r){throw t.runOutsideAngular(()=>e.handleError(r)),r}}(l,o,()=>{const u=a.injector.get(ya);return u.runInitializers(),u.donePromise.then(()=>(function ny(e){Et(e,"Expected localeId to be defined"),"string"==typeof e&&(ty=e.toLowerCase().replace(/_/g,"-"))}(a.injector.get(An,uo)||uo),this._moduleDoBootstrap(a),a))})})}bootstrapModule(n,r=[]){const o=Pv({},r);return function QA(e,t,n){const r=new Dc(n);return Promise.resolve(r)}(0,0,n).then(i=>this.bootstrapModuleFactory(i,o))}_moduleDoBootstrap(n){const r=n.injector.get(_a);if(n._bootstrapComponents.length>0)n._bootstrapComponents.forEach(o=>r.bootstrap(o));else{if(!n.instance.ngDoBootstrap)throw new M(403,!1);n.instance.ngDoBootstrap(r)}this._modules.push(n)}onDestroy(n){this._destroyListeners.push(n)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new M(404,!1);this._modules.slice().forEach(r=>r.destroy()),this._destroyListeners.forEach(r=>r());const n=this._injector.get(Gc,null);n&&(n.forEach(r=>r()),n.clear()),this._destroyed=!0}get destroyed(){return this._destroyed}}return e.\u0275fac=function(n){return new(n||e)(R(Bt))},e.\u0275prov=F({token:e,factory:e.\u0275fac,providedIn:"platform"}),e})();function Pv(e,t){return Array.isArray(t)?t.reduce(Pv,e):{...e,...t}}let _a=(()=>{class e{constructor(n,r,o){this._zone=n,this._injector=r,this._exceptionHandler=o,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._stable=!0,this._destroyed=!1,this._destroyListeners=[],this.componentTypes=[],this.components=[],this._onMicrotaskEmptySubscription=this._zone.onMicrotaskEmpty.subscribe({next:()=>{this._zone.run(()=>{this.tick()})}});const i=new Se(a=>{this._stable=this._zone.isStable&&!this._zone.hasPendingMacrotasks&&!this._zone.hasPendingMicrotasks,this._zone.runOutsideAngular(()=>{a.next(this._stable),a.complete()})}),s=new Se(a=>{let l;this._zone.runOutsideAngular(()=>{l=this._zone.onStable.subscribe(()=>{Ne.assertNotInAngularZone(),Vc(()=>{!this._stable&&!this._zone.hasPendingMacrotasks&&!this._zone.hasPendingMicrotasks&&(this._stable=!0,a.next(!0))})})});const u=this._zone.onUnstable.subscribe(()=>{Ne.assertInAngularZone(),this._stable&&(this._stable=!1,this._zone.runOutsideAngular(()=>{a.next(!1)}))});return()=>{l.unsubscribe(),u.unsubscribe()}});this.isStable=function rb(...e){const t=xo(e),n=function Xw(e,t){return"number"==typeof Ml(e)?e.pop():t}(e,1/0),r=e;return r.length?1===r.length?Yt(r[0]):Sr(n)(Me(r,t)):gn}(i,s.pipe(function ob(e={}){const{connector:t=(()=>new hn),resetOnError:n=!0,resetOnComplete:r=!0,resetOnRefCountZero:o=!0}=e;return i=>{let s=null,a=null,l=null,u=0,c=!1,d=!1;const g=()=>{a?.unsubscribe(),a=null},m=()=>{g(),s=l=null,c=d=!1},y=()=>{const v=s;m(),v?.unsubscribe()};return Be((v,w)=>{u++,!d&&!c&&g();const E=l=l??t();w.add(()=>{u--,0===u&&!d&&!c&&(a=Il(y,o))}),E.subscribe(w),s||(s=new ds({next:A=>E.next(A),error:A=>{d=!0,g(),a=Il(m,n,A),E.error(A)},complete:()=>{c=!0,g(),a=Il(m,r),E.complete()}}),Me(v).subscribe(s))})(i)}}()))}get destroyed(){return this._destroyed}get injector(){return this._injector}bootstrap(n,r){const o=n instanceof ag;if(!this._injector.get(ya).done)throw!o&&function Ar(e){const t=ie(e)||Ze(e)||rt(e);return null!==t&&t.standalone}(n),new M(405,false);let s;s=o?n:this._injector.get(ti).resolveComponentFactory(n),this.componentTypes.push(s.componentType);const a=function YA(e){return e.isBoundToModule}(s)?void 0:this._injector.get(co),u=s.create(Bt.NULL,[],r||s.selector,a),c=u.location.nativeElement,d=u.injector.get(Ev,null);return d?.registerApplication(c),u.onDestroy(()=>{this.detachView(u.hostView),Ca(this.components,u),d?.unregisterApplication(c)}),this._loadComponent(u),u}tick(){if(this._runningTick)throw new M(101,!1);try{this._runningTick=!0;for(let n of this._views)n.detectChanges()}catch(n){this._zone.runOutsideAngular(()=>this._exceptionHandler.handleError(n))}finally{this._runningTick=!1}}attachView(n){const r=n;this._views.push(r),r.attachToAppRef(this)}detachView(n){const r=n;Ca(this._views,r),r.detachFromAppRef()}_loadComponent(n){this.attachView(n.hostView),this.tick(),this.components.push(n);const r=this._injector.get(vv,[]);r.push(...this._bootstrapListeners),r.forEach(o=>o(n))}ngOnDestroy(){if(!this._destroyed)try{this._destroyListeners.forEach(n=>n()),this._views.slice().forEach(n=>n.destroy()),this._onMicrotaskEmptySubscription.unsubscribe()}finally{this._destroyed=!0,this._views=[],this._bootstrapListeners=[],this._destroyListeners=[]}}onDestroy(n){return this._destroyListeners.push(n),()=>Ca(this._destroyListeners,n)}destroy(){if(this._destroyed)throw new M(406,!1);const n=this._injector;n.destroy&&!n.destroyed&&n.destroy()}get viewCount(){return this._views.length}warnIfDestroyed(){}}return e.\u0275fac=function(n){return new(n||e)(R(Ne),R(rn),R(qr))},e.\u0275prov=F({token:e,factory:e.\u0275fac,providedIn:"root"}),e})();function Ca(e,t){const n=e.indexOf(t);n>-1&&e.splice(n,1)}let Da=(()=>{class e{}return e.__NG_ELEMENT_ID__=rT,e})();function rT(e){return function oT(e,t,n){if(Vo(e)&&!n){const r=_t(e.index,t);return new oi(r,r)}return 47&e.type?new oi(t[16],t):null}(qe(),b(),16==(16&e))}class Uv{constructor(){}supports(t){return si(t)}create(t){return new cT(t)}}const uT=(e,t)=>t;class cT{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||uT}forEachItem(t){let n;for(n=this._itHead;null!==n;n=n._next)t(n)}forEachOperation(t){let n=this._itHead,r=this._removalsHead,o=0,i=null;for(;n||r;){const s=!r||n&&n.currentIndex{s=this._trackByFn(o,a),null!==n&&Object.is(n.trackById,s)?(r&&(n=this._verifyReinsertion(n,a,s,o)),Object.is(n.item,a)||this._addIdentityChange(n,a)):(n=this._mismatch(n,a,s,o),r=!0),n=n._next,o++}),this.length=o;return this._truncate(n),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,n,r,o){let i;return null===t?i=this._itTail:(i=t._prev,this._remove(t)),null!==(t=null===this._unlinkedRecords?null:this._unlinkedRecords.get(r,null))?(Object.is(t.item,n)||this._addIdentityChange(t,n),this._reinsertAfter(t,i,o)):null!==(t=null===this._linkedRecords?null:this._linkedRecords.get(r,o))?(Object.is(t.item,n)||this._addIdentityChange(t,n),this._moveAfter(t,i,o)):t=this._addAfter(new dT(n,r),i,o),t}_verifyReinsertion(t,n,r,o){let i=null===this._unlinkedRecords?null:this._unlinkedRecords.get(r,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 n=t._next;this._addToRemovals(this._unlink(t)),t=n}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,n,r){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,n,r),this._addToMoves(t,r),t}_moveAfter(t,n,r){return this._unlink(t),this._insertAfter(t,n,r),this._addToMoves(t,r),t}_addAfter(t,n,r){return this._insertAfter(t,n,r),this._additionsTail=null===this._additionsTail?this._additionsHead=t:this._additionsTail._nextAdded=t,t}_insertAfter(t,n,r){const o=null===n?this._itHead:n._next;return t._next=o,t._prev=n,null===o?this._itTail=t:o._prev=t,null===n?this._itHead=t:n._next=t,null===this._linkedRecords&&(this._linkedRecords=new Hv),this._linkedRecords.put(t),t.currentIndex=r,t}_remove(t){return this._addToRemovals(this._unlink(t))}_unlink(t){null!==this._linkedRecords&&this._linkedRecords.remove(t);const n=t._prev,r=t._next;return null===n?this._itHead=r:n._next=r,null===r?this._itTail=n:r._prev=n,t}_addToMoves(t,n){return t.previousIndex===n||(this._movesTail=null===this._movesTail?this._movesHead=t:this._movesTail._nextMoved=t),t}_addToRemovals(t){return null===this._unlinkedRecords&&(this._unlinkedRecords=new Hv),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,n){return t.item=n,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=t:this._identityChangesTail._nextIdentityChange=t,t}}class dT{constructor(t,n){this.item=t,this.trackById=n,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 fT{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,n){let r;for(r=this._head;null!==r;r=r._nextDup)if((null===n||n<=r.currentIndex)&&Object.is(r.trackById,t))return r;return null}remove(t){const n=t._prevDup,r=t._nextDup;return null===n?this._head=r:n._nextDup=r,null===r?this._tail=n:r._prevDup=n,null===this._head}}class Hv{constructor(){this.map=new Map}put(t){const n=t.trackById;let r=this.map.get(n);r||(r=new fT,this.map.set(n,r)),r.add(t)}get(t,n){const o=this.map.get(t);return o?o.get(t,n):null}remove(t){const n=t.trackById;return this.map.get(n).remove(t)&&this.map.delete(n),t}get isEmpty(){return 0===this.map.size}clear(){this.map.clear()}}function jv(e,t,n){const r=e.previousIndex;if(null===r)return r;let o=0;return n&&r{if(n&&n.key===o)this._maybeAddToChanges(n,r),this._appendAfter=n,n=n._next;else{const i=this._getOrCreateRecordForKey(o,r);n=this._insertBeforeOrAppend(n,i)}}),n){n._prev&&(n._prev._next=null),this._removalsHead=n;for(let r=n;null!==r;r=r._nextRemoved)r===this._mapHead&&(this._mapHead=null),this._records.delete(r.key),r._nextRemoved=r._next,r.previousValue=r.currentValue,r.currentValue=null,r._prev=null,r._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(t,n){if(t){const r=t._prev;return n._next=t,n._prev=r,t._prev=n,r&&(r._next=n),t===this._mapHead&&(this._mapHead=n),this._appendAfter=t,t}return this._appendAfter?(this._appendAfter._next=n,n._prev=this._appendAfter):this._mapHead=n,this._appendAfter=n,null}_getOrCreateRecordForKey(t,n){if(this._records.has(t)){const o=this._records.get(t);this._maybeAddToChanges(o,n);const i=o._prev,s=o._next;return i&&(i._next=s),s&&(s._prev=i),o._next=null,o._prev=null,o}const r=new pT(t);return this._records.set(t,r),r.currentValue=n,this._addToAdditions(r),r}_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,n){Object.is(n,t.currentValue)||(t.previousValue=t.currentValue,t.currentValue=n,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,n){t instanceof Map?t.forEach(n):Object.keys(t).forEach(r=>n(t[r],r))}}class pT{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 $v(){return new Ea([new Uv])}let Ea=(()=>{class e{constructor(n){this.factories=n}static create(n,r){if(null!=r){const o=r.factories.slice();n=n.concat(o)}return new e(n)}static extend(n){return{provide:e,useFactory:r=>e.create(n,r||$v()),deps:[[e,new qo,new zo]]}}find(n){const r=this.factories.find(o=>o.supports(n));if(null!=r)return r;throw new M(901,!1)}}return e.\u0275prov=F({token:e,providedIn:"root",factory:$v}),e})();function Gv(){return new _i([new Bv])}let _i=(()=>{class e{constructor(n){this.factories=n}static create(n,r){if(r){const o=r.factories.slice();n=n.concat(o)}return new e(n)}static extend(n){return{provide:e,useFactory:r=>e.create(n,r||Gv()),deps:[[e,new qo,new zo]]}}find(n){const r=this.factories.find(o=>o.supports(n));if(r)return r;throw new M(901,!1)}}return e.\u0275prov=F({token:e,providedIn:"root",factory:Gv}),e})();const yT=Av(null,"core",[]);let vT=(()=>{class e{constructor(n){}}return e.\u0275fac=function(n){return new(n||e)(R(_a))},e.\u0275mod=Lt({type:e}),e.\u0275inj=St({}),e})();function po(e){return"boolean"==typeof e?e:null!=e&&"false"!==e}let Xc=null;function un(){return Xc}class DT{}const et=new N("DocumentToken");let Qc=(()=>{class e{historyGo(n){throw new Error("Not implemented")}}return e.\u0275fac=function(n){return new(n||e)},e.\u0275prov=F({token:e,factory:function(){return function wT(){return R(zv)}()},providedIn:"platform"}),e})();const bT=new N("Location Initialized");let zv=(()=>{class e extends Qc{constructor(n){super(),this._doc=n,this._init()}_init(){this.location=window.location,this._history=window.history}getBaseHrefFromDOM(){return un().getBaseHref(this._doc)}onPopState(n){const r=un().getGlobalEventTarget(this._doc,"window");return r.addEventListener("popstate",n,!1),()=>r.removeEventListener("popstate",n)}onHashChange(n){const r=un().getGlobalEventTarget(this._doc,"window");return r.addEventListener("hashchange",n,!1),()=>r.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,r,o){qv()?this._history.pushState(n,r,o):this.location.hash=o}replaceState(n,r,o){qv()?this._history.replaceState(n,r,o):this.location.hash=o}forward(){this._history.forward()}back(){this._history.back()}historyGo(n=0){this._history.go(n)}getState(){return this._history.state}}return e.\u0275fac=function(n){return new(n||e)(R(et))},e.\u0275prov=F({token:e,factory:function(){return function ET(){return new zv(R(et))}()},providedIn:"platform"}),e})();function qv(){return!!window.history.pushState}function Yc(e,t){if(0==e.length)return t;if(0==t.length)return e;let n=0;return e.endsWith("/")&&n++,t.startsWith("/")&&n++,2==n?e+t.substring(1):1==n?e+t:e+"/"+t}function Wv(e){const t=e.match(/#|\?|$/),n=t&&t.index||e.length;return e.slice(0,n-("/"===e[n-1]?1:0))+e.slice(n)}function xn(e){return e&&"?"!==e[0]?"?"+e:e}let gr=(()=>{class e{historyGo(n){throw new Error("Not implemented")}}return e.\u0275fac=function(n){return new(n||e)},e.\u0275prov=F({token:e,factory:function(){return Y(Zv)},providedIn:"root"}),e})();const Kv=new N("appBaseHref");let Zv=(()=>{class e extends gr{constructor(n,r){super(),this._platformLocation=n,this._removeListenerFns=[],this._baseHref=r??this._platformLocation.getBaseHrefFromDOM()??Y(et).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 Yc(this._baseHref,n)}path(n=!1){const r=this._platformLocation.pathname+xn(this._platformLocation.search),o=this._platformLocation.hash;return o&&n?`${r}${o}`:r}pushState(n,r,o,i){const s=this.prepareExternalUrl(o+xn(i));this._platformLocation.pushState(n,r,s)}replaceState(n,r,o,i){const s=this.prepareExternalUrl(o+xn(i));this._platformLocation.replaceState(n,r,s)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(n=0){this._platformLocation.historyGo?.(n)}}return e.\u0275fac=function(n){return new(n||e)(R(Qc),R(Kv,8))},e.\u0275prov=F({token:e,factory:e.\u0275fac,providedIn:"root"}),e})(),ST=(()=>{class e extends gr{constructor(n,r){super(),this._platformLocation=n,this._baseHref="",this._removeListenerFns=[],null!=r&&(this._baseHref=r)}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 r=this._platformLocation.hash;return null==r&&(r="#"),r.length>0?r.substring(1):r}prepareExternalUrl(n){const r=Yc(this._baseHref,n);return r.length>0?"#"+r:r}pushState(n,r,o,i){let s=this.prepareExternalUrl(o+xn(i));0==s.length&&(s=this._platformLocation.pathname),this._platformLocation.pushState(n,r,s)}replaceState(n,r,o,i){let s=this.prepareExternalUrl(o+xn(i));0==s.length&&(s=this._platformLocation.pathname),this._platformLocation.replaceState(n,r,s)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(n=0){this._platformLocation.historyGo?.(n)}}return e.\u0275fac=function(n){return new(n||e)(R(Qc),R(Kv,8))},e.\u0275prov=F({token:e,factory:e.\u0275fac}),e})(),Jc=(()=>{class e{constructor(n){this._subject=new Ee,this._urlChangeListeners=[],this._urlChangeSubscription=null,this._locationStrategy=n;const r=this._locationStrategy.getBaseHref();this._basePath=function AT(e){if(new RegExp("^(https?:)?//").test(e)){const[,n]=e.split(/\/\/[^\/]+/);return n}return e}(Wv(Xv(r))),this._locationStrategy.onPopState(o=>{this._subject.emit({url:this.path(!0),pop:!0,state:o.state,type:o.type})})}ngOnDestroy(){this._urlChangeSubscription?.unsubscribe(),this._urlChangeListeners=[]}path(n=!1){return this.normalize(this._locationStrategy.path(n))}getState(){return this._locationStrategy.getState()}isCurrentPathEqualTo(n,r=""){return this.path()==this.normalize(n+xn(r))}normalize(n){return e.stripTrailingSlash(function IT(e,t){return e&&t.startsWith(e)?t.substring(e.length):t}(this._basePath,Xv(n)))}prepareExternalUrl(n){return n&&"/"!==n[0]&&(n="/"+n),this._locationStrategy.prepareExternalUrl(n)}go(n,r="",o=null){this._locationStrategy.pushState(o,"",n,r),this._notifyUrlChangeListeners(this.prepareExternalUrl(n+xn(r)),o)}replaceState(n,r="",o=null){this._locationStrategy.replaceState(o,"",n,r),this._notifyUrlChangeListeners(this.prepareExternalUrl(n+xn(r)),o)}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(r=>{this._notifyUrlChangeListeners(r.url,r.state)})),()=>{const r=this._urlChangeListeners.indexOf(n);this._urlChangeListeners.splice(r,1),0===this._urlChangeListeners.length&&(this._urlChangeSubscription?.unsubscribe(),this._urlChangeSubscription=null)}}_notifyUrlChangeListeners(n="",r){this._urlChangeListeners.forEach(o=>o(n,r))}subscribe(n,r,o){return this._subject.subscribe({next:n,error:r,complete:o})}}return e.normalizeQueryParams=xn,e.joinWithSlash=Yc,e.stripTrailingSlash=Wv,e.\u0275fac=function(n){return new(n||e)(R(gr))},e.\u0275prov=F({token:e,factory:function(){return function MT(){return new Jc(R(gr))}()},providedIn:"root"}),e})();function Xv(e){return e.replace(/\/index.html$/,"")}function i_(e,t){t=encodeURIComponent(t);for(const n of e.split(";")){const r=n.indexOf("="),[o,i]=-1==r?[n,""]:[n.slice(0,r),n.slice(r+1)];if(o.trim()===t)return decodeURIComponent(i)}return null}let ud=(()=>{class e{constructor(n,r,o,i){this._iterableDiffers=n,this._keyValueDiffers=r,this._ngEl=o,this._renderer=i,this._iterableDiffer=null,this._keyValueDiffer=null,this._initialClasses=[],this._rawClass=null}set klass(n){this._removeClasses(this._initialClasses),this._initialClasses="string"==typeof n?n.split(/\s+/):[],this._applyClasses(this._initialClasses),this._applyClasses(this._rawClass)}set ngClass(n){this._removeClasses(this._rawClass),this._applyClasses(this._initialClasses),this._iterableDiffer=null,this._keyValueDiffer=null,this._rawClass="string"==typeof n?n.split(/\s+/):n,this._rawClass&&(si(this._rawClass)?this._iterableDiffer=this._iterableDiffers.find(this._rawClass).create():this._keyValueDiffer=this._keyValueDiffers.find(this._rawClass).create())}ngDoCheck(){if(this._iterableDiffer){const n=this._iterableDiffer.diff(this._rawClass);n&&this._applyIterableChanges(n)}else if(this._keyValueDiffer){const n=this._keyValueDiffer.diff(this._rawClass);n&&this._applyKeyValueChanges(n)}}_applyKeyValueChanges(n){n.forEachAddedItem(r=>this._toggleClass(r.key,r.currentValue)),n.forEachChangedItem(r=>this._toggleClass(r.key,r.currentValue)),n.forEachRemovedItem(r=>{r.previousValue&&this._toggleClass(r.key,!1)})}_applyIterableChanges(n){n.forEachAddedItem(r=>{if("string"!=typeof r.item)throw new Error(`NgClass can only toggle CSS classes expressed as strings, got ${le(r.item)}`);this._toggleClass(r.item,!0)}),n.forEachRemovedItem(r=>this._toggleClass(r.item,!1))}_applyClasses(n){n&&(Array.isArray(n)||n instanceof Set?n.forEach(r=>this._toggleClass(r,!0)):Object.keys(n).forEach(r=>this._toggleClass(r,!!n[r])))}_removeClasses(n){n&&(Array.isArray(n)||n instanceof Set?n.forEach(r=>this._toggleClass(r,!1)):Object.keys(n).forEach(r=>this._toggleClass(r,!1)))}_toggleClass(n,r){(n=n.trim())&&n.split(/\s+/g).forEach(o=>{r?this._renderer.addClass(this._ngEl.nativeElement,o):this._renderer.removeClass(this._ngEl.nativeElement,o)})}}return e.\u0275fac=function(n){return new(n||e)(S(Ea),S(_i),S(Dt),S(wn))},e.\u0275dir=B({type:e,selectors:[["","ngClass",""]],inputs:{klass:["class","klass"],ngClass:"ngClass"},standalone:!0}),e})();class fx{constructor(t,n,r,o){this.$implicit=t,this.ngForOf=n,this.index=r,this.count=o}get first(){return 0===this.index}get last(){return this.index===this.count-1}get even(){return this.index%2==0}get odd(){return!this.even}}let l_=(()=>{class e{constructor(n,r,o){this._viewContainer=n,this._template=r,this._differs=o,this._ngForOf=null,this._ngForOfDirty=!0,this._differ=null}set ngForOf(n){this._ngForOf=n,this._ngForOfDirty=!0}set ngForTrackBy(n){this._trackByFn=n}get ngForTrackBy(){return this._trackByFn}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 r=this._viewContainer;n.forEachOperation((o,i,s)=>{if(null==o.previousIndex)r.createEmbeddedView(this._template,new fx(o.item,this._ngForOf,-1,-1),null===s?void 0:s);else if(null==s)r.remove(null===i?void 0:i);else if(null!==i){const a=r.get(i);r.move(a,s),u_(a,o)}});for(let o=0,i=r.length;o{u_(r.get(o.currentIndex),o)})}static ngTemplateContextGuard(n,r){return!0}}return e.\u0275fac=function(n){return new(n||e)(S(qt),S(In),S(Ea))},e.\u0275dir=B({type:e,selectors:[["","ngFor","","ngForOf",""]],inputs:{ngForOf:"ngForOf",ngForTrackBy:"ngForTrackBy",ngForTemplate:"ngForTemplate"},standalone:!0}),e})();function u_(e,t){e.context.$implicit=t.item}let Pa=(()=>{class e{constructor(n,r){this._viewContainer=n,this._context=new px,this._thenTemplateRef=null,this._elseTemplateRef=null,this._thenViewRef=null,this._elseViewRef=null,this._thenTemplateRef=r}set ngIf(n){this._context.$implicit=this._context.ngIf=n,this._updateView()}set ngIfThen(n){c_("ngIfThen",n),this._thenTemplateRef=n,this._thenViewRef=null,this._updateView()}set ngIfElse(n){c_("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,r){return!0}}return e.\u0275fac=function(n){return new(n||e)(S(qt),S(In))},e.\u0275dir=B({type:e,selectors:[["","ngIf",""]],inputs:{ngIf:"ngIf",ngIfThen:"ngIfThen",ngIfElse:"ngIfElse"},standalone:!0}),e})();class px{constructor(){this.$implicit=null,this.ngIf=null}}function c_(e,t){if(t&&!t.createEmbeddedView)throw new Error(`${e} must be a TemplateRef, but received '${le(t)}'.`)}let $x=(()=>{class e{}return e.\u0275fac=function(n){return new(n||e)},e.\u0275mod=Lt({type:e}),e.\u0275inj=St({}),e})();let Wx=(()=>{class e{}return e.\u0275prov=F({token:e,providedIn:"root",factory:()=>new Kx(R(et),window)}),e})();class Kx{constructor(t,n){this.document=t,this.window=n,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 n=function Zx(e,t){const n=e.getElementById(t)||e.getElementsByName(t)[0];if(n)return n;if("function"==typeof e.createTreeWalker&&e.body&&(e.body.createShadowRoot||e.body.attachShadow)){const r=e.createTreeWalker(e.body,NodeFilter.SHOW_ELEMENT);let o=r.currentNode;for(;o;){const i=o.shadowRoot;if(i){const s=i.getElementById(t)||i.querySelector(`[name="${t}"]`);if(s)return s}o=r.nextNode()}}return null}(this.document,t);n&&(this.scrollToElement(n),n.focus())}setHistoryScrollRestoration(t){if(this.supportScrollRestoration()){const n=this.window.history;n&&n.scrollRestoration&&(n.scrollRestoration=t)}}scrollToElement(t){const n=t.getBoundingClientRect(),r=n.left+this.window.pageXOffset,o=n.top+this.window.pageYOffset,i=this.offset();this.window.scrollTo(r-i[0],o-i[1])}supportScrollRestoration(){try{if(!this.supportsScrolling())return!1;const t=p_(this.window.history)||p_(Object.getPrototypeOf(this.window.history));return!(!t||!t.writable&&!t.set)}catch{return!1}}supportsScrolling(){try{return!!this.window&&!!this.window.scrollTo&&"pageXOffset"in this.window}catch{return!1}}}function p_(e){return Object.getOwnPropertyDescriptor(e,"scrollRestoration")}class g_{}class wR extends DT{constructor(){super(...arguments),this.supportsDOMEvents=!0}}class md extends wR{static makeCurrent(){!function CT(e){Xc||(Xc=e)}(new md)}onAndCancel(t,n,r){return t.addEventListener(n,r,!1),()=>{t.removeEventListener(n,r,!1)}}dispatchEvent(t,n){t.dispatchEvent(n)}remove(t){t.parentNode&&t.parentNode.removeChild(t)}createElement(t,n){return(n=n||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,n){return"window"===n?window:"document"===n?t:"body"===n?t.body:null}getBaseHref(t){const n=function bR(){return bi=bi||document.querySelector("base"),bi?bi.getAttribute("href"):null}();return null==n?null:function ER(e){ka=ka||document.createElement("a"),ka.setAttribute("href",e);const t=ka.pathname;return"/"===t.charAt(0)?t:`/${t}`}(n)}resetBaseElement(){bi=null}getUserAgent(){return window.navigator.userAgent}getCookie(t){return i_(document.cookie,t)}}let ka,bi=null;const D_=new N("TRANSITION_ID"),MR=[{provide:ma,useFactory:function SR(e,t,n){return()=>{n.get(ya).donePromise.then(()=>{const r=un(),o=t.querySelectorAll(`style[ng-transition="${e}"]`);for(let i=0;i{class e{build(){return new XMLHttpRequest}}return e.\u0275fac=function(n){return new(n||e)},e.\u0275prov=F({token:e,factory:e.\u0275fac}),e})();const La=new N("EventManagerPlugins");let Va=(()=>{class e{constructor(n,r){this._zone=r,this._eventNameToPlugin=new Map,n.forEach(o=>o.manager=this),this._plugins=n.slice().reverse()}addEventListener(n,r,o){return this._findPluginFor(r).addEventListener(n,r,o)}addGlobalEventListener(n,r,o){return this._findPluginFor(r).addGlobalEventListener(n,r,o)}getZone(){return this._zone}_findPluginFor(n){const r=this._eventNameToPlugin.get(n);if(r)return r;const o=this._plugins;for(let i=0;i{class e{constructor(){this._stylesSet=new Set}addStyles(n){const r=new Set;n.forEach(o=>{this._stylesSet.has(o)||(this._stylesSet.add(o),r.add(o))}),this.onStylesAdded(r)}onStylesAdded(n){}getAllStyles(){return Array.from(this._stylesSet)}}return e.\u0275fac=function(n){return new(n||e)},e.\u0275prov=F({token:e,factory:e.\u0275fac}),e})(),Ei=(()=>{class e extends b_{constructor(n){super(),this._doc=n,this._hostNodes=new Map,this._hostNodes.set(n.head,[])}_addStylesToHost(n,r,o){n.forEach(i=>{const s=this._doc.createElement("style");s.textContent=i,o.push(r.appendChild(s))})}addHost(n){const r=[];this._addStylesToHost(this._stylesSet,n,r),this._hostNodes.set(n,r)}removeHost(n){const r=this._hostNodes.get(n);r&&r.forEach(E_),this._hostNodes.delete(n)}onStylesAdded(n){this._hostNodes.forEach((r,o)=>{this._addStylesToHost(n,o,r)})}ngOnDestroy(){this._hostNodes.forEach(n=>n.forEach(E_))}}return e.\u0275fac=function(n){return new(n||e)(R(et))},e.\u0275prov=F({token:e,factory:e.\u0275fac}),e})();function E_(e){un().remove(e)}const yd={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/"},vd=/%COMP%/g;function _d(e,t){return t.flat(100).map(n=>n.replace(vd,e))}function I_(e){return t=>{if("__ngUnwrap__"===t)return e;!1===e(t)&&(t.preventDefault(),t.returnValue=!1)}}let Cd=(()=>{class e{constructor(n,r,o){this.eventManager=n,this.sharedStylesHost=r,this.appId=o,this.rendererByCompId=new Map,this.defaultRenderer=new Dd(n)}createRenderer(n,r){if(!n||!r)return this.defaultRenderer;switch(r.encapsulation){case Jt.Emulated:{let o=this.rendererByCompId.get(r.id);return o||(o=new PR(this.eventManager,this.sharedStylesHost,r,this.appId),this.rendererByCompId.set(r.id,o)),o.applyToHost(n),o}case 1:case Jt.ShadowDom:return new OR(this.eventManager,this.sharedStylesHost,n,r);default:if(!this.rendererByCompId.has(r.id)){const o=_d(r.id,r.styles);this.sharedStylesHost.addStyles(o),this.rendererByCompId.set(r.id,this.defaultRenderer)}return this.defaultRenderer}}begin(){}end(){}}return e.\u0275fac=function(n){return new(n||e)(R(Va),R(Ei),R(vi))},e.\u0275prov=F({token:e,factory:e.\u0275fac}),e})();class Dd{constructor(t){this.eventManager=t,this.data=Object.create(null),this.destroyNode=null}destroy(){}createElement(t,n){return n?document.createElementNS(yd[n]||n,t):document.createElement(t)}createComment(t){return document.createComment(t)}createText(t){return document.createTextNode(t)}appendChild(t,n){(T_(t)?t.content:t).appendChild(n)}insertBefore(t,n,r){t&&(T_(t)?t.content:t).insertBefore(n,r)}removeChild(t,n){t&&t.removeChild(n)}selectRootElement(t,n){let r="string"==typeof t?document.querySelector(t):t;if(!r)throw new Error(`The selector "${t}" did not match any elements`);return n||(r.textContent=""),r}parentNode(t){return t.parentNode}nextSibling(t){return t.nextSibling}setAttribute(t,n,r,o){if(o){n=o+":"+n;const i=yd[o];i?t.setAttributeNS(i,n,r):t.setAttribute(n,r)}else t.setAttribute(n,r)}removeAttribute(t,n,r){if(r){const o=yd[r];o?t.removeAttributeNS(o,n):t.removeAttribute(`${r}:${n}`)}else t.removeAttribute(n)}addClass(t,n){t.classList.add(n)}removeClass(t,n){t.classList.remove(n)}setStyle(t,n,r,o){o&(dt.DashCase|dt.Important)?t.style.setProperty(n,r,o&dt.Important?"important":""):t.style[n]=r}removeStyle(t,n,r){r&dt.DashCase?t.style.removeProperty(n):t.style[n]=""}setProperty(t,n,r){t[n]=r}setValue(t,n){t.nodeValue=n}listen(t,n,r){return"string"==typeof t?this.eventManager.addGlobalEventListener(t,n,I_(r)):this.eventManager.addEventListener(t,n,I_(r))}}function T_(e){return"TEMPLATE"===e.tagName&&void 0!==e.content}class PR extends Dd{constructor(t,n,r,o){super(t),this.component=r;const i=_d(o+"-"+r.id,r.styles);n.addStyles(i),this.contentAttr=function RR(e){return"_ngcontent-%COMP%".replace(vd,e)}(o+"-"+r.id),this.hostAttr=function NR(e){return"_nghost-%COMP%".replace(vd,e)}(o+"-"+r.id)}applyToHost(t){super.setAttribute(t,this.hostAttr,"")}createElement(t,n){const r=super.createElement(t,n);return super.setAttribute(r,this.contentAttr,""),r}}class OR extends Dd{constructor(t,n,r,o){super(t),this.sharedStylesHost=n,this.hostEl=r,this.shadowRoot=r.attachShadow({mode:"open"}),this.sharedStylesHost.addHost(this.shadowRoot);const i=_d(o.id,o.styles);for(let s=0;s{class e extends w_{constructor(n){super(n)}supports(n){return!0}addEventListener(n,r,o){return n.addEventListener(r,o,!1),()=>this.removeEventListener(n,r,o)}removeEventListener(n,r,o){return n.removeEventListener(r,o)}}return e.\u0275fac=function(n){return new(n||e)(R(et))},e.\u0275prov=F({token:e,factory:e.\u0275fac}),e})();const x_=["alt","control","meta","shift"],LR={"\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"},VR={alt:e=>e.altKey,control:e=>e.ctrlKey,meta:e=>e.metaKey,shift:e=>e.shiftKey};let UR=(()=>{class e extends w_{constructor(n){super(n)}supports(n){return null!=e.parseEventName(n)}addEventListener(n,r,o){const i=e.parseEventName(r),s=e.eventCallback(i.fullKey,o,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>un().onAndCancel(n,i.domEventName,s))}static parseEventName(n){const r=n.toLowerCase().split("."),o=r.shift();if(0===r.length||"keydown"!==o&&"keyup"!==o)return null;const i=e._normalizeKey(r.pop());let s="",a=r.indexOf("code");if(a>-1&&(r.splice(a,1),s="code."),x_.forEach(u=>{const c=r.indexOf(u);c>-1&&(r.splice(c,1),s+=u+".")}),s+=i,0!=r.length||0===i.length)return null;const l={};return l.domEventName=o,l.fullKey=s,l}static matchEventFullKeyCode(n,r){let o=LR[n.key]||n.key,i="";return r.indexOf("code.")>-1&&(o=n.code,i="code."),!(null==o||!o)&&(o=o.toLowerCase()," "===o?o="space":"."===o&&(o="dot"),x_.forEach(s=>{s!==o&&(0,VR[s])(n)&&(i+=s+".")}),i+=o,i===r)}static eventCallback(n,r,o){return i=>{e.matchEventFullKeyCode(i,n)&&o.runGuarded(()=>r(i))}}static _normalizeKey(n){return"esc"===n?"escape":n}}return e.\u0275fac=function(n){return new(n||e)(R(et))},e.\u0275prov=F({token:e,factory:e.\u0275fac}),e})();const $R=Av(yT,"browser",[{provide:Lc,useValue:"browser"},{provide:yv,useValue:function HR(){md.makeCurrent()},multi:!0},{provide:et,useFactory:function BR(){return function y0(e){Au=e}(document),document},deps:[]}]),F_=new N(""),P_=[{provide:va,useClass:class IR{addToWindow(t){pe.getAngularTestability=(r,o=!0)=>{const i=t.findTestabilityInTree(r,o);if(null==i)throw new Error("Could not find testability for element.");return i},pe.getAllAngularTestabilities=()=>t.getAllTestabilities(),pe.getAllAngularRootElements=()=>t.getAllRootElements(),pe.frameworkStabilizers||(pe.frameworkStabilizers=[]),pe.frameworkStabilizers.push(r=>{const o=pe.getAllAngularTestabilities();let i=o.length,s=!1;const a=function(l){s=s||l,i--,0==i&&r(s)};o.forEach(function(l){l.whenStable(a)})})}findTestabilityInTree(t,n,r){return null==n?null:t.getTestability(n)??(r?un().isShadowRoot(n)?this.findTestabilityInTree(t,n.host,!0):this.findTestabilityInTree(t,n.parentElement,!0):null)}},deps:[]},{provide:Ev,useClass:jc,deps:[Ne,Bc,va]},{provide:jc,useClass:jc,deps:[Ne,Bc,va]}],O_=[{provide:Lu,useValue:"root"},{provide:qr,useFactory:function jR(){return new qr},deps:[]},{provide:La,useClass:kR,multi:!0,deps:[et,Ne,Lc]},{provide:La,useClass:UR,multi:!0,deps:[et]},{provide:Cd,useClass:Cd,deps:[Va,Ei,vi]},{provide:ug,useExisting:Cd},{provide:b_,useExisting:Ei},{provide:Ei,useClass:Ei,deps:[et]},{provide:Va,useClass:Va,deps:[La,Ne]},{provide:g_,useClass:AR,deps:[]},[]];let GR=(()=>{class e{constructor(n){}static withServerTransition(n){return{ngModule:e,providers:[{provide:vi,useValue:n.appId},{provide:D_,useExisting:vi},MR]}}}return e.\u0275fac=function(n){return new(n||e)(R(F_,12))},e.\u0275mod=Lt({type:e}),e.\u0275inj=St({providers:[...O_,...P_],imports:[$x,vT]}),e})(),k_=(()=>{class e{constructor(n){this._doc=n}getTitle(){return this._doc.title}setTitle(n){this._doc.title=n||""}}return e.\u0275fac=function(n){return new(n||e)(R(et))},e.\u0275prov=F({token:e,factory:function(n){let r=null;return r=n?new n:function qR(){return new k_(R(et))}(),r},providedIn:"root"}),e})();function O(...e){return Me(e,xo(e))}function $n(e,t){return fe(t)?$e(e,t,1):$e(e,1)}function Xt(e,t){return Be((n,r)=>{let o=0;n.subscribe(ke(r,i=>e.call(t,i,o++)&&r.next(i)))})}typeof window<"u"&&window;class Ua{}class Ed{}class Nn{constructor(t){this.normalizedNames=new Map,this.lazyUpdate=null,t?this.lazyInit="string"==typeof t?()=>{this.headers=new Map,t.split("\n").forEach(n=>{const r=n.indexOf(":");if(r>0){const o=n.slice(0,r),i=o.toLowerCase(),s=n.slice(r+1).trim();this.maybeSetNormalizedName(o,i),this.headers.has(i)?this.headers.get(i).push(s):this.headers.set(i,[s])}})}:()=>{this.headers=new Map,Object.keys(t).forEach(n=>{let r=t[n];const o=n.toLowerCase();"string"==typeof r&&(r=[r]),r.length>0&&(this.headers.set(o,r),this.maybeSetNormalizedName(n,o))})}:this.headers=new Map}has(t){return this.init(),this.headers.has(t.toLowerCase())}get(t){this.init();const n=this.headers.get(t.toLowerCase());return n&&n.length>0?n[0]:null}keys(){return this.init(),Array.from(this.normalizedNames.values())}getAll(t){return this.init(),this.headers.get(t.toLowerCase())||null}append(t,n){return this.clone({name:t,value:n,op:"a"})}set(t,n){return this.clone({name:t,value:n,op:"s"})}delete(t,n){return this.clone({name:t,value:n,op:"d"})}maybeSetNormalizedName(t,n){this.normalizedNames.has(n)||this.normalizedNames.set(n,t)}init(){this.lazyInit&&(this.lazyInit instanceof Nn?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(n=>{this.headers.set(n,t.headers.get(n)),this.normalizedNames.set(n,t.normalizedNames.get(n))})}clone(t){const n=new Nn;return n.lazyInit=this.lazyInit&&this.lazyInit instanceof Nn?this.lazyInit:this,n.lazyUpdate=(this.lazyUpdate||[]).concat([t]),n}applyUpdate(t){const n=t.name.toLowerCase();switch(t.op){case"a":case"s":let r=t.value;if("string"==typeof r&&(r=[r]),0===r.length)return;this.maybeSetNormalizedName(t.name,n);const o=("a"===t.op?this.headers.get(n):void 0)||[];o.push(...r),this.headers.set(n,o);break;case"d":const i=t.value;if(i){let s=this.headers.get(n);if(!s)return;s=s.filter(a=>-1===i.indexOf(a)),0===s.length?(this.headers.delete(n),this.normalizedNames.delete(n)):this.headers.set(n,s)}else this.headers.delete(n),this.normalizedNames.delete(n)}}forEach(t){this.init(),Array.from(this.normalizedNames.keys()).forEach(n=>t(this.normalizedNames.get(n),this.headers.get(n)))}}class eN{encodeKey(t){return U_(t)}encodeValue(t){return U_(t)}decodeKey(t){return decodeURIComponent(t)}decodeValue(t){return decodeURIComponent(t)}}const nN=/%(\d[a-f0-9])/gi,rN={40:"@","3A":":",24:"$","2C":",","3B":";","3D":"=","3F":"?","2F":"/"};function U_(e){return encodeURIComponent(e).replace(nN,(t,n)=>rN[n]??t)}function Ha(e){return`${e}`}class Gn{constructor(t={}){if(this.updates=null,this.cloneFrom=null,this.encoder=t.encoder||new eN,t.fromString){if(t.fromObject)throw new Error("Cannot specify both fromString and fromObject.");this.map=function tN(e,t){const n=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=n.get(s)||[];l.push(a),n.set(s,l)}),n}(t.fromString,this.encoder)}else t.fromObject?(this.map=new Map,Object.keys(t.fromObject).forEach(n=>{const r=t.fromObject[n],o=Array.isArray(r)?r.map(Ha):[Ha(r)];this.map.set(n,o)})):this.map=null}has(t){return this.init(),this.map.has(t)}get(t){this.init();const n=this.map.get(t);return n?n[0]:null}getAll(t){return this.init(),this.map.get(t)||null}keys(){return this.init(),Array.from(this.map.keys())}append(t,n){return this.clone({param:t,value:n,op:"a"})}appendAll(t){const n=[];return Object.keys(t).forEach(r=>{const o=t[r];Array.isArray(o)?o.forEach(i=>{n.push({param:r,value:i,op:"a"})}):n.push({param:r,value:o,op:"a"})}),this.clone(n)}set(t,n){return this.clone({param:t,value:n,op:"s"})}delete(t,n){return this.clone({param:t,value:n,op:"d"})}toString(){return this.init(),this.keys().map(t=>{const n=this.encoder.encodeKey(t);return this.map.get(t).map(r=>n+"="+this.encoder.encodeValue(r)).join("&")}).filter(t=>""!==t).join("&")}clone(t){const n=new Gn({encoder:this.encoder});return n.cloneFrom=this.cloneFrom||this,n.updates=(this.updates||[]).concat(t),n}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 n=("a"===t.op?this.map.get(t.param):void 0)||[];n.push(Ha(t.value)),this.map.set(t.param,n);break;case"d":if(void 0===t.value){this.map.delete(t.param);break}{let r=this.map.get(t.param)||[];const o=r.indexOf(Ha(t.value));-1!==o&&r.splice(o,1),r.length>0?this.map.set(t.param,r):this.map.delete(t.param)}}}),this.cloneFrom=this.updates=null)}}class oN{constructor(){this.map=new Map}set(t,n){return this.map.set(t,n),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 H_(e){return typeof ArrayBuffer<"u"&&e instanceof ArrayBuffer}function j_(e){return typeof Blob<"u"&&e instanceof Blob}function B_(e){return typeof FormData<"u"&&e instanceof FormData}class Si{constructor(t,n,r,o){let i;if(this.url=n,this.body=null,this.reportProgress=!1,this.withCredentials=!1,this.responseType="json",this.method=t.toUpperCase(),function iN(e){switch(e){case"DELETE":case"GET":case"HEAD":case"OPTIONS":case"JSONP":return!1;default:return!0}}(this.method)||o?(this.body=void 0!==r?r:null,i=o):i=r,i&&(this.reportProgress=!!i.reportProgress,this.withCredentials=!!i.withCredentials,i.responseType&&(this.responseType=i.responseType),i.headers&&(this.headers=i.headers),i.context&&(this.context=i.context),i.params&&(this.params=i.params)),this.headers||(this.headers=new Nn),this.context||(this.context=new oN),this.params){const s=this.params.toString();if(0===s.length)this.urlWithParams=n;else{const a=n.indexOf("?");this.urlWithParams=n+(-1===a?"?":ad.set(g,t.setHeaders[g]),l)),t.setParams&&(u=Object.keys(t.setParams).reduce((d,g)=>d.set(g,t.setParams[g]),u)),new Si(n,r,i,{params:u,headers:l,context:c,reportProgress:a,responseType:o,withCredentials:s})}}var Oe=(()=>((Oe=Oe||{})[Oe.Sent=0]="Sent",Oe[Oe.UploadProgress=1]="UploadProgress",Oe[Oe.ResponseHeader=2]="ResponseHeader",Oe[Oe.DownloadProgress=3]="DownloadProgress",Oe[Oe.Response=4]="Response",Oe[Oe.User=5]="User",Oe))();class Sd{constructor(t,n=200,r="OK"){this.headers=t.headers||new Nn,this.status=void 0!==t.status?t.status:n,this.statusText=t.statusText||r,this.url=t.url||null,this.ok=this.status>=200&&this.status<300}}class Md extends Sd{constructor(t={}){super(t),this.type=Oe.ResponseHeader}clone(t={}){return new Md({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 ja extends Sd{constructor(t={}){super(t),this.type=Oe.Response,this.body=void 0!==t.body?t.body:null}clone(t={}){return new ja({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 $_ extends Sd{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 Id(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 Ad=(()=>{class e{constructor(n){this.handler=n}request(n,r,o={}){let i;if(n instanceof Si)i=n;else{let l,u;l=o.headers instanceof Nn?o.headers:new Nn(o.headers),o.params&&(u=o.params instanceof Gn?o.params:new Gn({fromObject:o.params})),i=new Si(n,r,void 0!==o.body?o.body:null,{headers:l,context:o.context,params:u,reportProgress:o.reportProgress,responseType:o.responseType||"json",withCredentials:o.withCredentials})}const s=O(i).pipe($n(l=>this.handler.handle(l)));if(n instanceof Si||"events"===o.observe)return s;const a=s.pipe(Xt(l=>l instanceof ja));switch(o.observe||"body"){case"body":switch(i.responseType){case"arraybuffer":return a.pipe(W(l=>{if(null!==l.body&&!(l.body instanceof ArrayBuffer))throw new Error("Response is not an ArrayBuffer.");return l.body}));case"blob":return a.pipe(W(l=>{if(null!==l.body&&!(l.body instanceof Blob))throw new Error("Response is not a Blob.");return l.body}));case"text":return a.pipe(W(l=>{if(null!==l.body&&"string"!=typeof l.body)throw new Error("Response is not a string.");return l.body}));default:return a.pipe(W(l=>l.body))}case"response":return a;default:throw new Error(`Unreachable: unhandled observe type ${o.observe}}`)}}delete(n,r={}){return this.request("DELETE",n,r)}get(n,r={}){return this.request("GET",n,r)}head(n,r={}){return this.request("HEAD",n,r)}jsonp(n,r){return this.request("JSONP",n,{params:(new Gn).append(r,"JSONP_CALLBACK"),observe:"body",responseType:"json"})}options(n,r={}){return this.request("OPTIONS",n,r)}patch(n,r,o={}){return this.request("PATCH",n,Id(o,r))}post(n,r,o={}){return this.request("POST",n,Id(o,r))}put(n,r,o={}){return this.request("PUT",n,Id(o,r))}}return e.\u0275fac=function(n){return new(n||e)(R(Ua))},e.\u0275prov=F({token:e,factory:e.\u0275fac}),e})();function G_(e,t){return t(e)}function aN(e,t){return(n,r)=>t.intercept(n,{handle:o=>e(o,r)})}const uN=new N("HTTP_INTERCEPTORS"),Mi=new N("HTTP_INTERCEPTOR_FNS");function cN(){let e=null;return(t,n)=>(null===e&&(e=(Y(uN,{optional:!0})??[]).reduceRight(aN,G_)),e(t,n))}let z_=(()=>{class e extends Ua{constructor(n,r){super(),this.backend=n,this.injector=r,this.chain=null}handle(n){if(null===this.chain){const r=Array.from(new Set(this.injector.get(Mi)));this.chain=r.reduceRight((o,i)=>function lN(e,t,n){return(r,o)=>n.runInContext(()=>t(r,i=>e(i,o)))}(o,i,this.injector),G_)}return this.chain(n,r=>this.backend.handle(r))}}return e.\u0275fac=function(n){return new(n||e)(R(Ed),R(rn))},e.\u0275prov=F({token:e,factory:e.\u0275fac}),e})();const pN=/^\)\]\}',?\n/;let W_=(()=>{class e{constructor(n){this.xhrFactory=n}handle(n){if("JSONP"===n.method)throw new Error("Attempted to construct Jsonp request without HttpClientJsonpModule installed.");return new Se(r=>{const o=this.xhrFactory.build();if(o.open(n.method,n.urlWithParams),n.withCredentials&&(o.withCredentials=!0),n.headers.forEach((m,y)=>o.setRequestHeader(m,y.join(","))),n.headers.has("Accept")||o.setRequestHeader("Accept","application/json, text/plain, */*"),!n.headers.has("Content-Type")){const m=n.detectContentTypeHeader();null!==m&&o.setRequestHeader("Content-Type",m)}if(n.responseType){const m=n.responseType.toLowerCase();o.responseType="json"!==m?m:"text"}const i=n.serializeBody();let s=null;const a=()=>{if(null!==s)return s;const m=o.statusText||"OK",y=new Nn(o.getAllResponseHeaders()),v=function gN(e){return"responseURL"in e&&e.responseURL?e.responseURL:/^X-Request-URL:/m.test(e.getAllResponseHeaders())?e.getResponseHeader("X-Request-URL"):null}(o)||n.url;return s=new Md({headers:y,status:o.status,statusText:m,url:v}),s},l=()=>{let{headers:m,status:y,statusText:v,url:w}=a(),E=null;204!==y&&(E=typeof o.response>"u"?o.responseText:o.response),0===y&&(y=E?200:0);let A=y>=200&&y<300;if("json"===n.responseType&&"string"==typeof E){const D=E;E=E.replace(pN,"");try{E=""!==E?JSON.parse(E):null}catch(L){E=D,A&&(A=!1,E={error:L,text:E})}}A?(r.next(new ja({body:E,headers:m,status:y,statusText:v,url:w||void 0})),r.complete()):r.error(new $_({error:E,headers:m,status:y,statusText:v,url:w||void 0}))},u=m=>{const{url:y}=a(),v=new $_({error:m,status:o.status||0,statusText:o.statusText||"Unknown Error",url:y||void 0});r.error(v)};let c=!1;const d=m=>{c||(r.next(a()),c=!0);let y={type:Oe.DownloadProgress,loaded:m.loaded};m.lengthComputable&&(y.total=m.total),"text"===n.responseType&&!!o.responseText&&(y.partialText=o.responseText),r.next(y)},g=m=>{let y={type:Oe.UploadProgress,loaded:m.loaded};m.lengthComputable&&(y.total=m.total),r.next(y)};return o.addEventListener("load",l),o.addEventListener("error",u),o.addEventListener("timeout",u),o.addEventListener("abort",u),n.reportProgress&&(o.addEventListener("progress",d),null!==i&&o.upload&&o.upload.addEventListener("progress",g)),o.send(i),r.next({type:Oe.Sent}),()=>{o.removeEventListener("error",u),o.removeEventListener("abort",u),o.removeEventListener("load",l),o.removeEventListener("timeout",u),n.reportProgress&&(o.removeEventListener("progress",d),null!==i&&o.upload&&o.upload.removeEventListener("progress",g)),o.readyState!==o.DONE&&o.abort()}})}}return e.\u0275fac=function(n){return new(n||e)(R(g_))},e.\u0275prov=F({token:e,factory:e.\u0275fac}),e})();const Td=new N("XSRF_ENABLED"),K_="XSRF-TOKEN",Z_=new N("XSRF_COOKIE_NAME",{providedIn:"root",factory:()=>K_}),X_="X-XSRF-TOKEN",Q_=new N("XSRF_HEADER_NAME",{providedIn:"root",factory:()=>X_});class Y_{}let mN=(()=>{class e{constructor(n,r,o){this.doc=n,this.platform=r,this.cookieName=o,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=i_(n,this.cookieName),this.lastCookieString=n),this.lastToken}}return e.\u0275fac=function(n){return new(n||e)(R(et),R(Lc),R(Z_))},e.\u0275prov=F({token:e,factory:e.\u0275fac}),e})();function yN(e,t){const n=e.url.toLowerCase();if(!Y(Td)||"GET"===e.method||"HEAD"===e.method||n.startsWith("http://")||n.startsWith("https://"))return t(e);const r=Y(Y_).getToken(),o=Y(Q_);return null!=r&&!e.headers.has(o)&&(e=e.clone({headers:e.headers.set(o,r)})),t(e)}var Te=(()=>((Te=Te||{})[Te.Interceptors=0]="Interceptors",Te[Te.LegacyInterceptors=1]="LegacyInterceptors",Te[Te.CustomXsrfConfiguration=2]="CustomXsrfConfiguration",Te[Te.NoXsrfProtection=3]="NoXsrfProtection",Te[Te.JsonpSupport=4]="JsonpSupport",Te[Te.RequestsMadeViaParent=5]="RequestsMadeViaParent",Te))();function go(e,t){return{\u0275kind:e,\u0275providers:t}}function vN(...e){const t=[Ad,W_,z_,{provide:Ua,useExisting:z_},{provide:Ed,useExisting:W_},{provide:Mi,useValue:yN,multi:!0},{provide:Td,useValue:!0},{provide:Y_,useClass:mN}];for(const n of e)t.push(...n.\u0275providers);return function H0(e){return{\u0275providers:e}}(t)}const J_=new N("LEGACY_INTERCEPTOR_FN");function CN({cookieName:e,headerName:t}){const n=[];return void 0!==e&&n.push({provide:Z_,useValue:e}),void 0!==t&&n.push({provide:Q_,useValue:t}),go(Te.CustomXsrfConfiguration,n)}let DN=(()=>{class e{}return e.\u0275fac=function(n){return new(n||e)},e.\u0275mod=Lt({type:e}),e.\u0275inj=St({providers:[vN(go(Te.LegacyInterceptors,[{provide:J_,useFactory:cN},{provide:Mi,useExisting:J_,multi:!0}]),CN({cookieName:K_,headerName:X_}))]}),e})();const{isArray:wN}=Array,{getPrototypeOf:bN,prototype:EN,keys:SN}=Object;function eC(e){if(1===e.length){const t=e[0];if(wN(t))return{args:t,keys:null};if(function MN(e){return e&&"object"==typeof e&&bN(e)===EN}(t)){const n=SN(t);return{args:n.map(r=>t[r]),keys:n}}}return{args:e,keys:null}}const{isArray:IN}=Array;function tC(e){return W(t=>function AN(e,t){return IN(t)?e(...t):e(t)}(e,t))}function nC(e,t){return e.reduce((n,r,o)=>(n[r]=t[o],n),{})}let rC=(()=>{class e{constructor(n,r){this._renderer=n,this._elementRef=r,this.onChange=o=>{},this.onTouched=()=>{}}setProperty(n,r){this._renderer.setProperty(this._elementRef.nativeElement,n,r)}registerOnTouched(n){this.onTouched=n}registerOnChange(n){this.onChange=n}setDisabledState(n){this.setProperty("disabled",n)}}return e.\u0275fac=function(n){return new(n||e)(S(wn),S(Dt))},e.\u0275dir=B({type:e}),e})(),mr=(()=>{class e extends rC{}return e.\u0275fac=function(){let t;return function(r){return(t||(t=We(e)))(r||e)}}(),e.\u0275dir=B({type:e,features:[se]}),e})();const cn=new N("NgValueAccessor"),RN={provide:cn,useExisting:he(()=>Ii),multi:!0},FN=new N("CompositionEventMode");let Ii=(()=>{class e extends rC{constructor(n,r,o){super(n,r),this._compositionMode=o,this._composing=!1,null==this._compositionMode&&(this._compositionMode=!function NN(){const e=un()?un().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.\u0275fac=function(n){return new(n||e)(S(wn),S(Dt),S(FN,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,r){1&n&&P("input",function(i){return r._handleInput(i.target.value)})("blur",function(){return r.onTouched()})("compositionstart",function(){return r._compositionStart()})("compositionend",function(i){return r._compositionEnd(i.target.value)})},features:[ye([RN]),se]}),e})();function zn(e){return null==e||("string"==typeof e||Array.isArray(e))&&0===e.length}const tt=new N("NgValidators"),qn=new N("NgAsyncValidators");function lC(e){return zn(e.value)?{required:!0}:null}function Ba(e){return null}function pC(e){return null!=e}function gC(e){return li(e)?Me(e):e}function mC(e){let t={};return e.forEach(n=>{t=null!=n?{...t,...n}:t}),0===Object.keys(t).length?null:t}function yC(e,t){return t.map(n=>n(e))}function vC(e){return e.map(t=>function kN(e){return!e.validate}(t)?t:n=>t.validate(n))}function xd(e){return null!=e?function _C(e){if(!e)return null;const t=e.filter(pC);return 0==t.length?null:function(n){return mC(yC(n,t))}}(vC(e)):null}function Rd(e){return null!=e?function CC(e){if(!e)return null;const t=e.filter(pC);return 0==t.length?null:function(n){return function TN(...e){const t=th(e),{args:n,keys:r}=eC(e),o=new Se(i=>{const{length:s}=n;if(!s)return void i.complete();const a=new Array(s);let l=s,u=s;for(let c=0;c{d||(d=!0,u--),a[c]=g},()=>l--,void 0,()=>{(!l||!d)&&(u||i.next(r?nC(r,a):a),i.complete())}))}});return t?o.pipe(tC(t)):o}(yC(n,t).map(gC)).pipe(W(mC))}}(vC(e)):null}function DC(e,t){return null===e?[t]:Array.isArray(e)?[...e,t]:[e,t]}function Nd(e){return e?Array.isArray(e)?e:[e]:[]}function $a(e,t){return Array.isArray(e)?e.includes(t):e===t}function EC(e,t){const n=Nd(t);return Nd(e).forEach(o=>{$a(n,o)||n.push(o)}),n}function SC(e,t){return Nd(t).filter(n=>!$a(e,n))}class MC{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=xd(this._rawValidators)}_setAsyncValidators(t){this._rawAsyncValidators=t||[],this._composedAsyncValidatorFn=Rd(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){this.control&&this.control.reset(t)}hasError(t,n){return!!this.control&&this.control.hasError(t,n)}getError(t,n){return this.control?this.control.getError(t,n):null}}class ut extends MC{get formDirective(){return null}get path(){return null}}class Wn extends MC{constructor(){super(...arguments),this._parent=null,this.name=null,this.valueAccessor=null}}class IC{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 Fd=(()=>{class e extends IC{constructor(n){super(n)}}return e.\u0275fac=function(n){return new(n||e)(S(Wn,2))},e.\u0275dir=B({type:e,selectors:[["","formControlName",""],["","ngModel",""],["","formControl",""]],hostVars:14,hostBindings:function(n,r){2&n&&sa("ng-untouched",r.isUntouched)("ng-touched",r.isTouched)("ng-pristine",r.isPristine)("ng-dirty",r.isDirty)("ng-valid",r.isValid)("ng-invalid",r.isInvalid)("ng-pending",r.isPending)},features:[se]}),e})(),Pd=(()=>{class e extends IC{constructor(n){super(n)}}return e.\u0275fac=function(n){return new(n||e)(S(ut,10))},e.\u0275dir=B({type:e,selectors:[["","formGroupName",""],["","formArrayName",""],["","ngModelGroup",""],["","formGroup",""],["form",3,"ngNoForm",""],["","ngForm",""]],hostVars:16,hostBindings:function(n,r){2&n&&sa("ng-untouched",r.isUntouched)("ng-touched",r.isTouched)("ng-pristine",r.isPristine)("ng-dirty",r.isDirty)("ng-valid",r.isValid)("ng-invalid",r.isInvalid)("ng-pending",r.isPending)("ng-submitted",r.isSubmitted)},features:[se]}),e})();const Ai="VALID",za="INVALID",mo="PENDING",Ti="DISABLED";function Vd(e){return(qa(e)?e.validators:e)||null}function Ud(e,t){return(qa(t)?t.asyncValidators:e)||null}function qa(e){return null!=e&&!Array.isArray(e)&&"object"==typeof e}class RC{constructor(t,n){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(n)}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===Ai}get invalid(){return this.status===za}get pending(){return this.status==mo}get disabled(){return this.status===Ti}get enabled(){return this.status!==Ti}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(EC(t,this._rawValidators))}addAsyncValidators(t){this.setAsyncValidators(EC(t,this._rawAsyncValidators))}removeValidators(t){this.setValidators(SC(t,this._rawValidators))}removeAsyncValidators(t){this.setAsyncValidators(SC(t,this._rawAsyncValidators))}hasValidator(t){return $a(this._rawValidators,t)}hasAsyncValidator(t){return $a(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(n=>{n.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(n=>{n.markAsPristine({onlySelf:!0})}),this._parent&&!t.onlySelf&&this._parent._updatePristine(t)}markAsPending(t={}){this.status=mo,!1!==t.emitEvent&&this.statusChanges.emit(this.status),this._parent&&!t.onlySelf&&this._parent.markAsPending(t)}disable(t={}){const n=this._parentMarkedDirty(t.onlySelf);this.status=Ti,this.errors=null,this._forEachChild(r=>{r.disable({...t,onlySelf:!0})}),this._updateValue(),!1!==t.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors({...t,skipPristineCheck:n}),this._onDisabledChange.forEach(r=>r(!0))}enable(t={}){const n=this._parentMarkedDirty(t.onlySelf);this.status=Ai,this._forEachChild(r=>{r.enable({...t,onlySelf:!0})}),this.updateValueAndValidity({onlySelf:!0,emitEvent:t.emitEvent}),this._updateAncestors({...t,skipPristineCheck:n}),this._onDisabledChange.forEach(r=>r(!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===Ai||this.status===mo)&&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(n=>n._updateTreeValidity(t)),this.updateValueAndValidity({onlySelf:!0,emitEvent:t.emitEvent})}_setInitialStatus(){this.status=this._allControlsDisabled()?Ti:Ai}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(t){if(this.asyncValidator){this.status=mo,this._hasOwnPendingAsyncValidator=!0;const n=gC(this.asyncValidator(this));this._asyncValidationSubscription=n.subscribe(r=>{this._hasOwnPendingAsyncValidator=!1,this.setErrors(r,{emitEvent:t})})}}_cancelExistingSubscription(){this._asyncValidationSubscription&&(this._asyncValidationSubscription.unsubscribe(),this._hasOwnPendingAsyncValidator=!1)}setErrors(t,n={}){this.errors=t,this._updateControlsErrors(!1!==n.emitEvent)}get(t){let n=t;return null==n||(Array.isArray(n)||(n=n.split(".")),0===n.length)?null:n.reduce((r,o)=>r&&r._find(o),this)}getError(t,n){const r=n?this.get(n):this;return r&&r.errors?r.errors[t]:null}hasError(t,n){return!!this.getError(t,n)}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()?Ti:this.errors?za:this._hasOwnPendingAsyncValidator||this._anyControlsHaveStatus(mo)?mo:this._anyControlsHaveStatus(za)?za:Ai}_anyControlsHaveStatus(t){return this._anyControls(n=>n.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){qa(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 $N(e){return Array.isArray(e)?xd(e):e||null}(this._rawValidators)}_assignAsyncValidators(t){this._rawAsyncValidators=Array.isArray(t)?t.slice():t,this._composedAsyncValidatorFn=function GN(e){return Array.isArray(e)?Rd(e):e||null}(this._rawAsyncValidators)}}class Hd extends RC{constructor(t,n,r){super(Vd(n),Ud(r,n)),this.controls=t,this._initObservables(),this._setUpdateStrategy(n),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}registerControl(t,n){return this.controls[t]?this.controls[t]:(this.controls[t]=n,n.setParent(this),n._registerOnCollectionChange(this._onCollectionChange),n)}addControl(t,n,r={}){this.registerControl(t,n),this.updateValueAndValidity({emitEvent:r.emitEvent}),this._onCollectionChange()}removeControl(t,n={}){this.controls[t]&&this.controls[t]._registerOnCollectionChange(()=>{}),delete this.controls[t],this.updateValueAndValidity({emitEvent:n.emitEvent}),this._onCollectionChange()}setControl(t,n,r={}){this.controls[t]&&this.controls[t]._registerOnCollectionChange(()=>{}),delete this.controls[t],n&&this.registerControl(t,n),this.updateValueAndValidity({emitEvent:r.emitEvent}),this._onCollectionChange()}contains(t){return this.controls.hasOwnProperty(t)&&this.controls[t].enabled}setValue(t,n={}){(function xC(e,t,n){e._forEachChild((r,o)=>{if(void 0===n[o])throw new M(1002,"")})})(this,0,t),Object.keys(t).forEach(r=>{(function TC(e,t,n){const r=e.controls;if(!(t?Object.keys(r):r).length)throw new M(1e3,"");if(!r[n])throw new M(1001,"")})(this,!0,r),this.controls[r].setValue(t[r],{onlySelf:!0,emitEvent:n.emitEvent})}),this.updateValueAndValidity(n)}patchValue(t,n={}){null!=t&&(Object.keys(t).forEach(r=>{const o=this.controls[r];o&&o.patchValue(t[r],{onlySelf:!0,emitEvent:n.emitEvent})}),this.updateValueAndValidity(n))}reset(t={},n={}){this._forEachChild((r,o)=>{r.reset(t[o],{onlySelf:!0,emitEvent:n.emitEvent})}),this._updatePristine(n),this._updateTouched(n),this.updateValueAndValidity(n)}getRawValue(){return this._reduceChildren({},(t,n,r)=>(t[r]=n.getRawValue(),t))}_syncPendingControls(){let t=this._reduceChildren(!1,(n,r)=>!!r._syncPendingControls()||n);return t&&this.updateValueAndValidity({onlySelf:!0}),t}_forEachChild(t){Object.keys(this.controls).forEach(n=>{const r=this.controls[n];r&&t(r,n)})}_setUpControls(){this._forEachChild(t=>{t.setParent(this),t._registerOnCollectionChange(this._onCollectionChange)})}_updateValue(){this.value=this._reduceValue()}_anyControls(t){for(const[n,r]of Object.entries(this.controls))if(this.contains(n)&&t(r))return!0;return!1}_reduceValue(){return this._reduceChildren({},(n,r,o)=>((r.enabled||this.disabled)&&(n[o]=r.value),n))}_reduceChildren(t,n){let r=t;return this._forEachChild((o,i)=>{r=n(r,o,i)}),r}_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 xi=new N("CallSetDisabledState",{providedIn:"root",factory:()=>jd}),jd="always";function Ri(e,t,n=jd){Bd(e,t),t.valueAccessor.writeValue(e.value),(e.disabled||"always"===n)&&t.valueAccessor.setDisabledState?.(e.disabled),function WN(e,t){t.valueAccessor.registerOnChange(n=>{e._pendingValue=n,e._pendingChange=!0,e._pendingDirty=!0,"change"===e.updateOn&&NC(e,t)})}(e,t),function ZN(e,t){const n=(r,o)=>{t.valueAccessor.writeValue(r),o&&t.viewToModelUpdate(r)};e.registerOnChange(n),t._registerOnDestroy(()=>{e._unregisterOnChange(n)})}(e,t),function KN(e,t){t.valueAccessor.registerOnTouched(()=>{e._pendingTouched=!0,"blur"===e.updateOn&&e._pendingChange&&NC(e,t),"submit"!==e.updateOn&&e.markAsTouched()})}(e,t),function qN(e,t){if(t.valueAccessor.setDisabledState){const n=r=>{t.valueAccessor.setDisabledState(r)};e.registerOnDisabledChange(n),t._registerOnDestroy(()=>{e._unregisterOnDisabledChange(n)})}}(e,t)}function Za(e,t){e.forEach(n=>{n.registerOnValidatorChange&&n.registerOnValidatorChange(t)})}function Bd(e,t){const n=function wC(e){return e._rawValidators}(e);null!==t.validator?e.setValidators(DC(n,t.validator)):"function"==typeof n&&e.setValidators([n]);const r=function bC(e){return e._rawAsyncValidators}(e);null!==t.asyncValidator?e.setAsyncValidators(DC(r,t.asyncValidator)):"function"==typeof r&&e.setAsyncValidators([r]);const o=()=>e.updateValueAndValidity();Za(t._rawValidators,o),Za(t._rawAsyncValidators,o)}function NC(e,t){e._pendingDirty&&e.markAsDirty(),e.setValue(e._pendingValue,{emitModelToViewChange:!1}),t.viewToModelUpdate(e._pendingValue),e._pendingChange=!1}const eF={provide:ut,useExisting:he(()=>Fi)},Ni=(()=>Promise.resolve())();let Fi=(()=>{class e extends ut{constructor(n,r,o){super(),this.callSetDisabledState=o,this.submitted=!1,this._directives=new Set,this.ngSubmit=new Ee,this.form=new Hd({},xd(n),Rd(r))}ngAfterViewInit(){this._setUpdateStrategy()}get formDirective(){return this}get control(){return this.form}get path(){return[]}get controls(){return this.form.controls}addControl(n){Ni.then(()=>{const r=this._findContainer(n.path);n.control=r.registerControl(n.name,n.control),Ri(n.control,n,this.callSetDisabledState),n.control.updateValueAndValidity({emitEvent:!1}),this._directives.add(n)})}getControl(n){return this.form.get(n.path)}removeControl(n){Ni.then(()=>{const r=this._findContainer(n.path);r&&r.removeControl(n.name),this._directives.delete(n)})}addFormGroup(n){Ni.then(()=>{const r=this._findContainer(n.path),o=new Hd({});(function FC(e,t){Bd(e,t)})(o,n),r.registerControl(n.name,o),o.updateValueAndValidity({emitEvent:!1})})}removeFormGroup(n){Ni.then(()=>{const r=this._findContainer(n.path);r&&r.removeControl(n.name)})}getFormGroup(n){return this.form.get(n.path)}updateModel(n,r){Ni.then(()=>{this.form.get(n.path).setValue(r)})}setValue(n){this.control.setValue(n)}onSubmit(n){return this.submitted=!0,function PC(e,t){e._syncPendingControls(),t.forEach(n=>{const r=n.control;"submit"===r.updateOn&&r._pendingChange&&(n.viewToModelUpdate(r._pendingValue),r._pendingChange=!1)})}(this.form,this._directives),this.ngSubmit.emit(n),"dialog"===n?.target?.method}onReset(){this.resetForm()}resetForm(n){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.\u0275fac=function(n){return new(n||e)(S(tt,10),S(qn,10),S(xi,8))},e.\u0275dir=B({type:e,selectors:[["form",3,"ngNoForm","",3,"formGroup",""],["ng-form"],["","ngForm",""]],hostBindings:function(n,r){1&n&&P("submit",function(i){return r.onSubmit(i)})("reset",function(){return r.onReset()})},inputs:{options:["ngFormOptions","options"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],features:[ye([eF]),se]}),e})();function OC(e,t){const n=e.indexOf(t);n>-1&&e.splice(n,1)}function kC(e){return"object"==typeof e&&null!==e&&2===Object.keys(e).length&&"value"in e&&"disabled"in e}const LC=class extends RC{constructor(t=null,n,r){super(Vd(n),Ud(r,n)),this.defaultValue=null,this._onChange=[],this._pendingChange=!1,this._applyFormState(t),this._setUpdateStrategy(n),this._initObservables(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator}),qa(n)&&(n.nonNullable||n.initialValueIsDefault)&&(this.defaultValue=kC(t)?t.value:t)}setValue(t,n={}){this.value=this._pendingValue=t,this._onChange.length&&!1!==n.emitModelToViewChange&&this._onChange.forEach(r=>r(this.value,!1!==n.emitViewToModelChange)),this.updateValueAndValidity(n)}patchValue(t,n={}){this.setValue(t,n)}reset(t=this.defaultValue,n={}){this._applyFormState(t),this.markAsPristine(n),this.markAsUntouched(n),this.setValue(this.value,n),this._pendingChange=!1}_updateValue(){}_anyControls(t){return!1}_allControlsDisabled(){return this.disabled}registerOnChange(t){this._onChange.push(t)}_unregisterOnChange(t){OC(this._onChange,t)}registerOnDisabledChange(t){this._onDisabledChange.push(t)}_unregisterOnDisabledChange(t){OC(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){kC(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}},rF={provide:Wn,useExisting:he(()=>Qa)},HC=(()=>Promise.resolve())();let Qa=(()=>{class e extends Wn{constructor(n,r,o,i,s,a){super(),this._changeDetectorRef=s,this.callSetDisabledState=a,this.control=new LC,this._registered=!1,this.update=new Ee,this._parent=n,this._setValidators(r),this._setAsyncValidators(o),this.valueAccessor=function zd(e,t){if(!t)return null;let n,r,o;return Array.isArray(t),t.forEach(i=>{i.constructor===Ii?n=i:function YN(e){return Object.getPrototypeOf(e.constructor)===mr}(i)?r=i:o=i}),o||r||n||null}(0,i)}ngOnChanges(n){if(this._checkForErrors(),!this._registered||"name"in n){if(this._registered&&(this._checkName(),this.formDirective)){const r=n.name.previousValue;this.formDirective.removeControl({name:r,path:this._getPath(r)})}this._setUpControl()}"isDisabled"in n&&this._updateDisabled(n),function Gd(e,t){if(!e.hasOwnProperty("model"))return!1;const n=e.model;return!!n.isFirstChange()||!Object.is(t,n.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(){Ri(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){HC.then(()=>{this.control.setValue(n,{emitViewToModelChange:!1}),this._changeDetectorRef?.markForCheck()})}_updateDisabled(n){const r=n.isDisabled.currentValue,o=0!==r&&po(r);HC.then(()=>{o&&!this.control.disabled?this.control.disable():!o&&this.control.disabled&&this.control.enable(),this._changeDetectorRef?.markForCheck()})}_getPath(n){return this._parent?function Wa(e,t){return[...t.path,e]}(n,this._parent):[n]}}return e.\u0275fac=function(n){return new(n||e)(S(ut,9),S(tt,10),S(qn,10),S(cn,10),S(Da,8),S(xi,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:[ye([rF]),se,At]}),e})(),qd=(()=>{class e{}return e.\u0275fac=function(n){return new(n||e)},e.\u0275dir=B({type:e,selectors:[["form",3,"ngNoForm","",3,"ngNativeValidate",""]],hostAttrs:["novalidate",""]}),e})();const iF={provide:cn,useExisting:he(()=>Wd),multi:!0};let BC=(()=>{class e{}return e.\u0275fac=function(n){return new(n||e)},e.\u0275mod=Lt({type:e}),e.\u0275inj=St({}),e})(),sF=(()=>{class e{constructor(){this._accessors=[]}add(n,r){this._accessors.push([n,r])}remove(n){for(let r=this._accessors.length-1;r>=0;--r)if(this._accessors[r][1]===n)return void this._accessors.splice(r,1)}select(n){this._accessors.forEach(r=>{this._isSameGroup(r,n)&&r[1]!==n&&r[1].fireUncheck(n.value)})}_isSameGroup(n,r){return!!n[0].control&&n[0]._parent===r._control._parent&&n[1].name===r.name}}return e.\u0275fac=function(n){return new(n||e)},e.\u0275prov=F({token:e,factory:e.\u0275fac,providedIn:BC}),e})(),Wd=(()=>{class e extends mr{constructor(n,r,o,i){super(n,r),this._registry=o,this._injector=i,this.onChange=()=>{}}ngOnInit(){this._control=this._injector.get(Wn),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)}}fireUncheck(n){this.writeValue(n)}_checkName(){!this.name&&this.formControlName&&(this.name=this.formControlName)}}return e.\u0275fac=function(n){return new(n||e)(S(wn),S(Dt),S(sF),S(Bt))},e.\u0275dir=B({type:e,selectors:[["input","type","radio","formControlName",""],["input","type","radio","formControl",""],["input","type","radio","ngModel",""]],hostBindings:function(n,r){1&n&&P("change",function(){return r.onChange()})("blur",function(){return r.onTouched()})},inputs:{name:"name",formControlName:"formControlName",value:"value"},features:[ye([iF]),se]}),e})();const hF={provide:cn,useExisting:he(()=>Ya),multi:!0};function KC(e,t){return null==e?`${t}`:(t&&"object"==typeof t&&(t="Object"),`${e}: ${t}`.slice(0,50))}let Ya=(()=>{class e extends mr{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 o=KC(this._getOptionId(n),n);this.setProperty("value",o)}registerOnChange(n){this.onChange=r=>{this.value=this._getOptionValue(r),n(this.value)}}_registerOption(){return(this._idCounter++).toString()}_getOptionId(n){for(const r of Array.from(this._optionMap.keys()))if(this._compareWith(this._optionMap.get(r),n))return r;return null}_getOptionValue(n){const r=function pF(e){return e.split(":")[0]}(n);return this._optionMap.has(r)?this._optionMap.get(r):n}}return e.\u0275fac=function(){let t;return function(r){return(t||(t=We(e)))(r||e)}}(),e.\u0275dir=B({type:e,selectors:[["select","formControlName","",3,"multiple",""],["select","formControl","",3,"multiple",""],["select","ngModel","",3,"multiple",""]],hostBindings:function(n,r){1&n&&P("change",function(i){return r.onChange(i.target.value)})("blur",function(){return r.onTouched()})},inputs:{compareWith:"compareWith"},features:[ye([hF]),se]}),e})(),ZC=(()=>{class e{constructor(n,r,o){this._element=n,this._renderer=r,this._select=o,this._select&&(this.id=this._select._registerOption())}set ngValue(n){null!=this._select&&(this._select._optionMap.set(this.id,n),this._setElementValue(KC(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.\u0275fac=function(n){return new(n||e)(S(Dt),S(wn),S(Ya,9))},e.\u0275dir=B({type:e,selectors:[["option"]],inputs:{ngValue:"ngValue",value:"value"}}),e})();const gF={provide:cn,useExisting:he(()=>Qd),multi:!0};function XC(e,t){return null==e?`${t}`:("string"==typeof t&&(t=`'${t}'`),t&&"object"==typeof t&&(t="Object"),`${e}: ${t}`.slice(0,50))}let Qd=(()=>{class e extends mr{constructor(){super(...arguments),this._optionMap=new Map,this._idCounter=0,this._compareWith=Object.is}set compareWith(n){this._compareWith=n}writeValue(n){let r;if(this.value=n,Array.isArray(n)){const o=n.map(i=>this._getOptionId(i));r=(i,s)=>{i._setSelected(o.indexOf(s.toString())>-1)}}else r=(o,i)=>{o._setSelected(!1)};this._optionMap.forEach(r)}registerOnChange(n){this.onChange=r=>{const o=[],i=r.selectedOptions;if(void 0!==i){const s=i;for(let a=0;a{class e{constructor(n,r,o){this._element=n,this._renderer=r,this._select=o,this._select&&(this.id=this._select._registerOption(this))}set ngValue(n){null!=this._select&&(this._value=n,this._setElementValue(XC(this.id,n)),this._select.writeValue(this._select.value))}set value(n){this._select?(this._value=n,this._setElementValue(XC(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.\u0275fac=function(n){return new(n||e)(S(Dt),S(wn),S(Qd,9))},e.\u0275dir=B({type:e,selectors:[["option"]],inputs:{ngValue:"ngValue",value:"value"}}),e})(),yr=(()=>{class e{constructor(){this._validator=Ba}ngOnChanges(n){if(this.inputName in n){const r=this.normalizeInput(n[this.inputName].currentValue);this._enabled=this.enabled(r),this._validator=this._enabled?this.createValidator(r):Ba,this._onChange&&this._onChange()}}validate(n){return this._validator(n)}registerOnValidatorChange(n){this._onChange=n}enabled(n){return null!=n}}return e.\u0275fac=function(n){return new(n||e)},e.\u0275dir=B({type:e,features:[At]}),e})();const _F={provide:tt,useExisting:he(()=>Pi),multi:!0};let Pi=(()=>{class e extends yr{constructor(){super(...arguments),this.inputName="required",this.normalizeInput=po,this.createValidator=n=>lC}enabled(n){return n}}return e.\u0275fac=function(){let t;return function(r){return(t||(t=We(e)))(r||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,r){2&n&&$t("required",r._enabled?"":null)},inputs:{required:"required"},features:[ye([_F]),se]}),e})();const EF={provide:tt,useExisting:he(()=>Yd),multi:!0};let Yd=(()=>{class e extends yr{constructor(){super(...arguments),this.inputName="pattern",this.normalizeInput=n=>n,this.createValidator=n=>function hC(e){if(!e)return Ba;let t,n;return"string"==typeof e?(n="","^"!==e.charAt(0)&&(n+="^"),n+=e,"$"!==e.charAt(e.length-1)&&(n+="$"),t=new RegExp(n)):(n=e.toString(),t=e),r=>{if(zn(r.value))return null;const o=r.value;return t.test(o)?null:{pattern:{requiredPattern:n,actualValue:o}}}}(n)}}return e.\u0275fac=function(){let t;return function(r){return(t||(t=We(e)))(r||e)}}(),e.\u0275dir=B({type:e,selectors:[["","pattern","","formControlName",""],["","pattern","","formControl",""],["","pattern","","ngModel",""]],hostVars:1,hostBindings:function(n,r){2&n&&$t("pattern",r._enabled?r.pattern:null)},inputs:{pattern:"pattern"},features:[ye([EF]),se]}),e})(),SF=(()=>{class e{}return e.\u0275fac=function(n){return new(n||e)},e.\u0275mod=Lt({type:e}),e.\u0275inj=St({imports:[BC]}),e})(),MF=(()=>{class e{static withConfig(n){return{ngModule:e,providers:[{provide:xi,useValue:n.callSetDisabledState??jd}]}}}return e.\u0275fac=function(n){return new(n||e)},e.\u0275mod=Lt({type:e}),e.\u0275inj=St({imports:[SF]}),e})();class Qt extends hn{constructor(t){super(),this._value=t}get value(){return this.getValue()}_subscribe(t){const n=super._subscribe(t);return!n.closed&&t.next(this._value),n}getValue(){const{hasError:t,thrownError:n,_value:r}=this;if(t)throw n;return this._throwIfClosed(),r}next(t){super.next(this._value=t)}}const Ja=Ao(e=>function(){e(this),this.name="EmptyError",this.message="no elements in sequence"});function sD(...e){const t=xo(e),n=th(e),{args:r,keys:o}=eC(e);if(0===r.length)return Me([],t);const i=new Se(function AF(e,t,n=er){return r=>{aD(t,()=>{const{length:o}=e,i=new Array(o);let s=o,a=o;for(let l=0;l{const u=Me(e[l],t);let c=!1;u.subscribe(ke(r,d=>{i[l]=d,c||(c=!0,a--),a||r.next(n(i.slice()))},()=>{--s||r.complete()}))},r)},r)}}(r,t,o?s=>nC(o,s):er));return n?i.pipe(tC(n)):i}function aD(e,t,n){e?pn(n,e,t):t()}function Jd(...e){return function TF(){return Sr(1)}()(Me(e,xo(e)))}function lD(e){return new Se(t=>{Yt(e()).subscribe(t)})}function Oi(e,t){const n=fe(e)?e:()=>e,r=o=>o.error(n());return new Se(t?o=>t.schedule(r,0,o):r)}function ef(){return Be((e,t)=>{let n=null;e._refCount++;const r=ke(t,void 0,void 0,void 0,()=>{if(!e||e._refCount<=0||0<--e._refCount)return void(n=null);const o=e._connection,i=n;n=null,o&&(!i||o===i)&&o.unsubscribe(),t.unsubscribe()});e.subscribe(r),r.closed||(n=e.connect())})}class uD extends Se{constructor(t,n){super(),this.source=t,this.subjectFactory=n,this._subject=null,this._refCount=0,this._connection=null,jf(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 bt;const n=this.getSubject();t.add(this.source.subscribe(ke(n,void 0,()=>{this._teardown(),n.complete()},r=>{this._teardown(),n.error(r)},()=>this._teardown()))),t.closed&&(this._connection=null,t=bt.EMPTY)}return t}refCount(){return ef()(this)}}function dn(e,t){return Be((n,r)=>{let o=null,i=0,s=!1;const a=()=>s&&!o&&r.complete();n.subscribe(ke(r,l=>{o?.unsubscribe();let u=0;const c=i++;Yt(e(l,c)).subscribe(o=ke(r,d=>r.next(t?t(l,d,c,u++):d),()=>{o=null,a()}))},()=>{s=!0,a()}))})}function el(e){return Be((t,n)=>{let r=!1;t.subscribe(ke(n,o=>{r=!0,n.next(o)},()=>{r||n.next(e),n.complete()}))})}function cD(e=RF){return Be((t,n)=>{let r=!1;t.subscribe(ke(n,o=>{r=!0,n.next(o)},()=>r?n.complete():n.error(e())))})}function RF(){return new Ja}function Kn(e,t){const n=arguments.length>=2;return r=>r.pipe(e?Xt((o,i)=>e(o,i,r)):er,Mr(1),n?el(t):cD(()=>new Ja))}function nt(e,t,n){const r=fe(e)||t||n?{next:e,error:t,complete:n}:e;return r?Be((o,i)=>{var s;null===(s=r.subscribe)||void 0===s||s.call(r);let a=!0;o.subscribe(ke(i,l=>{var u;null===(u=r.next)||void 0===u||u.call(r,l),i.next(l)},()=>{var l;a=!1,null===(l=r.complete)||void 0===l||l.call(r),i.complete()},l=>{var u;a=!1,null===(u=r.error)||void 0===u||u.call(r,l),i.error(l)},()=>{var l,u;a&&(null===(l=r.unsubscribe)||void 0===l||l.call(r)),null===(u=r.finalize)||void 0===u||u.call(r)}))}):er}function Zn(e){return Be((t,n)=>{let i,r=null,o=!1;r=t.subscribe(ke(n,void 0,void 0,s=>{i=Yt(e(s,Zn(e)(t))),r?(r.unsubscribe(),r=null,i.subscribe(n)):o=!0})),o&&(r.unsubscribe(),r=null,i.subscribe(n))})}function NF(e,t,n,r,o){return(i,s)=>{let a=n,l=t,u=0;i.subscribe(ke(s,c=>{const d=u++;l=a?e(l,c,d):(a=!0,c),r&&s.next(l)},o&&(()=>{a&&s.next(l),s.complete()})))}}function dD(e,t){return Be(NF(e,t,arguments.length>=2,!0))}function tf(e){return e<=0?()=>gn:Be((t,n)=>{let r=[];t.subscribe(ke(n,o=>{r.push(o),e{for(const o of r)n.next(o);n.complete()},void 0,()=>{r=null}))})}function fD(e,t){const n=arguments.length>=2;return r=>r.pipe(e?Xt((o,i)=>e(o,i,r)):er,tf(1),n?el(t):cD(()=>new Ja))}function nf(e){return Be((t,n)=>{try{t.subscribe(n)}finally{n.add(e)}})}const Q="primary",ki=Symbol("RouteTitle");class OF{constructor(t){this.params=t||{}}has(t){return Object.prototype.hasOwnProperty.call(this.params,t)}get(t){if(this.has(t)){const n=this.params[t];return Array.isArray(n)?n[0]:n}return null}getAll(t){if(this.has(t)){const n=this.params[t];return Array.isArray(n)?n:[n]}return[]}get keys(){return Object.keys(this.params)}}function yo(e){return new OF(e)}function kF(e,t,n){const r=n.path.split("/");if(r.length>e.length||"full"===n.pathMatch&&(t.hasChildren()||r.lengthr[i]===o)}return e===t}function pD(e){return Array.prototype.concat.apply([],e)}function gD(e){return e.length>0?e[e.length-1]:null}function Ke(e,t){for(const n in e)e.hasOwnProperty(n)&&t(e[n],n)}function Xn(e){return cc(e)?e:li(e)?Me(Promise.resolve(e)):O(e)}const tl=!1,VF={exact:function vD(e,t,n){if(!_r(e.segments,t.segments)||!nl(e.segments,t.segments,n)||e.numberOfChildren!==t.numberOfChildren)return!1;for(const r in t.children)if(!e.children[r]||!vD(e.children[r],t.children[r],n))return!1;return!0},subset:_D},mD={exact:function UF(e,t){return fn(e,t)},subset:function HF(e,t){return Object.keys(t).length<=Object.keys(e).length&&Object.keys(t).every(n=>hD(e[n],t[n]))},ignored:()=>!0};function yD(e,t,n){return VF[n.paths](e.root,t.root,n.matrixParams)&&mD[n.queryParams](e.queryParams,t.queryParams)&&!("exact"===n.fragment&&e.fragment!==t.fragment)}function _D(e,t,n){return CD(e,t,t.segments,n)}function CD(e,t,n,r){if(e.segments.length>n.length){const o=e.segments.slice(0,n.length);return!(!_r(o,n)||t.hasChildren()||!nl(o,n,r))}if(e.segments.length===n.length){if(!_r(e.segments,n)||!nl(e.segments,n,r))return!1;for(const o in t.children)if(!e.children[o]||!_D(e.children[o],t.children[o],r))return!1;return!0}{const o=n.slice(0,e.segments.length),i=n.slice(e.segments.length);return!!(_r(e.segments,o)&&nl(e.segments,o,r)&&e.children[Q])&&CD(e.children[Q],t,i,r)}}function nl(e,t,n){return t.every((r,o)=>mD[n](e[o].parameters,r.parameters))}class vr{constructor(t=new J([],{}),n={},r=null){this.root=t,this.queryParams=n,this.fragment=r}get queryParamMap(){return this._queryParamMap||(this._queryParamMap=yo(this.queryParams)),this._queryParamMap}toString(){return $F.serialize(this)}}class J{constructor(t,n){this.segments=t,this.children=n,this.parent=null,Ke(n,(r,o)=>r.parent=this)}hasChildren(){return this.numberOfChildren>0}get numberOfChildren(){return Object.keys(this.children).length}toString(){return rl(this)}}class Li{constructor(t,n){this.path=t,this.parameters=n}get parameterMap(){return this._parameterMap||(this._parameterMap=yo(this.parameters)),this._parameterMap}toString(){return bD(this)}}function _r(e,t){return e.length===t.length&&e.every((n,r)=>n.path===t[r].path)}let Vi=(()=>{class e{}return e.\u0275fac=function(n){return new(n||e)},e.\u0275prov=F({token:e,factory:function(){return new rf},providedIn:"root"}),e})();class rf{parse(t){const n=new YF(t);return new vr(n.parseRootSegment(),n.parseQueryParams(),n.parseFragment())}serialize(t){const n=`/${Ui(t.root,!0)}`,r=function qF(e){const t=Object.keys(e).map(n=>{const r=e[n];return Array.isArray(r)?r.map(o=>`${ol(n)}=${ol(o)}`).join("&"):`${ol(n)}=${ol(r)}`}).filter(n=>!!n);return t.length?`?${t.join("&")}`:""}(t.queryParams);return`${n}${r}${"string"==typeof t.fragment?`#${function GF(e){return encodeURI(e)}(t.fragment)}`:""}`}}const $F=new rf;function rl(e){return e.segments.map(t=>bD(t)).join("/")}function Ui(e,t){if(!e.hasChildren())return rl(e);if(t){const n=e.children[Q]?Ui(e.children[Q],!1):"",r=[];return Ke(e.children,(o,i)=>{i!==Q&&r.push(`${i}:${Ui(o,!1)}`)}),r.length>0?`${n}(${r.join("//")})`:n}{const n=function BF(e,t){let n=[];return Ke(e.children,(r,o)=>{o===Q&&(n=n.concat(t(r,o)))}),Ke(e.children,(r,o)=>{o!==Q&&(n=n.concat(t(r,o)))}),n}(e,(r,o)=>o===Q?[Ui(e.children[Q],!1)]:[`${o}:${Ui(r,!1)}`]);return 1===Object.keys(e.children).length&&null!=e.children[Q]?`${rl(e)}/${n[0]}`:`${rl(e)}/(${n.join("//")})`}}function DD(e){return encodeURIComponent(e).replace(/%40/g,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",")}function ol(e){return DD(e).replace(/%3B/gi,";")}function sf(e){return DD(e).replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/%26/gi,"&")}function il(e){return decodeURIComponent(e)}function wD(e){return il(e.replace(/\+/g,"%20"))}function bD(e){return`${sf(e.path)}${function zF(e){return Object.keys(e).map(t=>`;${sf(t)}=${sf(e[t])}`).join("")}(e.parameters)}`}const WF=/^[^\/()?;=#]+/;function sl(e){const t=e.match(WF);return t?t[0]:""}const KF=/^[^=?&#]+/,XF=/^[^&#]+/;class YF{constructor(t){this.url=t,this.remaining=t}parseRootSegment(){return this.consumeOptional("/"),""===this.remaining||this.peekStartsWith("?")||this.peekStartsWith("#")?new J([],{}):new J([],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 n={};this.peekStartsWith("/(")&&(this.capture("/"),n=this.parseParens(!0));let r={};return this.peekStartsWith("(")&&(r=this.parseParens(!1)),(t.length>0||Object.keys(n).length>0)&&(r[Q]=new J(t,n)),r}parseSegment(){const t=sl(this.remaining);if(""===t&&this.peekStartsWith(";"))throw new M(4009,tl);return this.capture(t),new Li(il(t),this.parseMatrixParams())}parseMatrixParams(){const t={};for(;this.consumeOptional(";");)this.parseParam(t);return t}parseParam(t){const n=sl(this.remaining);if(!n)return;this.capture(n);let r="";if(this.consumeOptional("=")){const o=sl(this.remaining);o&&(r=o,this.capture(r))}t[il(n)]=il(r)}parseQueryParam(t){const n=function ZF(e){const t=e.match(KF);return t?t[0]:""}(this.remaining);if(!n)return;this.capture(n);let r="";if(this.consumeOptional("=")){const s=function QF(e){const t=e.match(XF);return t?t[0]:""}(this.remaining);s&&(r=s,this.capture(r))}const o=wD(n),i=wD(r);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 n={};for(this.capture("(");!this.consumeOptional(")")&&this.remaining.length>0;){const r=sl(this.remaining),o=this.remaining[r.length];if("/"!==o&&")"!==o&&";"!==o)throw new M(4010,tl);let i;r.indexOf(":")>-1?(i=r.slice(0,r.indexOf(":")),this.capture(i),this.capture(":")):t&&(i=Q);const s=this.parseChildren();n[i]=1===Object.keys(s).length?s[Q]:new J([],s),this.consumeOptional("//")}return n}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 M(4011,tl)}}function af(e){return e.segments.length>0?new J([],{[Q]:e}):e}function al(e){const t={};for(const r of Object.keys(e.children)){const i=al(e.children[r]);(i.segments.length>0||i.hasChildren())&&(t[r]=i)}return function JF(e){if(1===e.numberOfChildren&&e.children[Q]){const t=e.children[Q];return new J(e.segments.concat(t.segments),t.children)}return e}(new J(e.segments,t))}function Cr(e){return e instanceof vr}function nP(e,t,n,r,o){if(0===n.length)return vo(t.root,t.root,t.root,r,o);const i=function MD(e){if("string"==typeof e[0]&&1===e.length&&"/"===e[0])return new SD(!0,0,e);let t=0,n=!1;const r=e.reduce((o,i,s)=>{if("object"==typeof i&&null!=i){if(i.outlets){const a={};return Ke(i.outlets,(l,u)=>{a[u]="string"==typeof l?l.split("/"):l}),[...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?n=!0:".."===a?t++:""!=a&&o.push(a))}),o):[...o,i]},[]);return new SD(n,t,r)}(n);return i.toRoot()?vo(t.root,t.root,new J([],{}),r,o):function s(l){const u=function oP(e,t,n,r){if(e.isAbsolute)return new _o(t.root,!0,0);if(-1===r)return new _o(n,n===t.root,0);return function ID(e,t,n){let r=e,o=t,i=n;for(;i>o;){if(i-=o,r=r.parent,!r)throw new M(4005,!1);o=r.segments.length}return new _o(r,!1,o-i)}(n,r+(Hi(e.commands[0])?0:1),e.numberOfDoubleDots)}(i,t,e.snapshot?._urlSegment,l),c=u.processChildren?Bi(u.segmentGroup,u.index,i.commands):uf(u.segmentGroup,u.index,i.commands);return vo(t.root,u.segmentGroup,c,r,o)}(e.snapshot?._lastPathIndex)}function Hi(e){return"object"==typeof e&&null!=e&&!e.outlets&&!e.segmentPath}function ji(e){return"object"==typeof e&&null!=e&&e.outlets}function vo(e,t,n,r,o){let s,i={};r&&Ke(r,(l,u)=>{i[u]=Array.isArray(l)?l.map(c=>`${c}`):`${l}`}),s=e===t?n:ED(e,t,n);const a=af(al(s));return new vr(a,i,o)}function ED(e,t,n){const r={};return Ke(e.children,(o,i)=>{r[i]=o===t?n:ED(o,t,n)}),new J(e.segments,r)}class SD{constructor(t,n,r){if(this.isAbsolute=t,this.numberOfDoubleDots=n,this.commands=r,t&&r.length>0&&Hi(r[0]))throw new M(4003,!1);const o=r.find(ji);if(o&&o!==gD(r))throw new M(4004,!1)}toRoot(){return this.isAbsolute&&1===this.commands.length&&"/"==this.commands[0]}}class _o{constructor(t,n,r){this.segmentGroup=t,this.processChildren=n,this.index=r}}function uf(e,t,n){if(e||(e=new J([],{})),0===e.segments.length&&e.hasChildren())return Bi(e,t,n);const r=function sP(e,t,n){let r=0,o=t;const i={match:!1,pathIndex:0,commandIndex:0};for(;o=n.length)return i;const s=e.segments[o],a=n[r];if(ji(a))break;const l=`${a}`,u=r0&&void 0===l)break;if(l&&u&&"object"==typeof u&&void 0===u.outlets){if(!TD(l,u,s))return i;r+=2}else{if(!TD(l,{},s))return i;r++}o++}return{match:!0,pathIndex:o,commandIndex:r}}(e,t,n),o=n.slice(r.commandIndex);if(r.match&&r.pathIndex{"string"==typeof i&&(i=[i]),null!==i&&(o[s]=uf(e.children[s],t,i))}),Ke(e.children,(i,s)=>{void 0===r[s]&&(o[s]=i)}),new J(e.segments,o)}}function cf(e,t,n){const r=e.segments.slice(0,t);let o=0;for(;o{"string"==typeof n&&(n=[n]),null!==n&&(t[r]=cf(new J([],{}),0,n))}),t}function AD(e){const t={};return Ke(e,(n,r)=>t[r]=`${n}`),t}function TD(e,t,n){return e==n.path&&fn(t,n.parameters)}class Fn{constructor(t,n){this.id=t,this.url=n}}class df extends Fn{constructor(t,n,r="imperative",o=null){super(t,n),this.type=0,this.navigationTrigger=r,this.restoredState=o}toString(){return`NavigationStart(id: ${this.id}, url: '${this.url}')`}}class Qn extends Fn{constructor(t,n,r){super(t,n),this.urlAfterRedirects=r,this.type=1}toString(){return`NavigationEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}')`}}class ll extends Fn{constructor(t,n,r,o){super(t,n),this.reason=r,this.code=o,this.type=2}toString(){return`NavigationCancel(id: ${this.id}, url: '${this.url}')`}}class xD extends Fn{constructor(t,n,r,o){super(t,n),this.error=r,this.target=o,this.type=3}toString(){return`NavigationError(id: ${this.id}, url: '${this.url}', error: ${this.error})`}}class lP extends Fn{constructor(t,n,r,o){super(t,n),this.urlAfterRedirects=r,this.state=o,this.type=4}toString(){return`RoutesRecognized(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class uP extends Fn{constructor(t,n,r,o){super(t,n),this.urlAfterRedirects=r,this.state=o,this.type=7}toString(){return`GuardsCheckStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class cP extends Fn{constructor(t,n,r,o,i){super(t,n),this.urlAfterRedirects=r,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 dP extends Fn{constructor(t,n,r,o){super(t,n),this.urlAfterRedirects=r,this.state=o,this.type=5}toString(){return`ResolveStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class fP extends Fn{constructor(t,n,r,o){super(t,n),this.urlAfterRedirects=r,this.state=o,this.type=6}toString(){return`ResolveEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class hP{constructor(t){this.route=t,this.type=9}toString(){return`RouteConfigLoadStart(path: ${this.route.path})`}}class pP{constructor(t){this.route=t,this.type=10}toString(){return`RouteConfigLoadEnd(path: ${this.route.path})`}}class gP{constructor(t){this.snapshot=t,this.type=11}toString(){return`ChildActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class mP{constructor(t){this.snapshot=t,this.type=12}toString(){return`ChildActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class yP{constructor(t){this.snapshot=t,this.type=13}toString(){return`ActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class vP{constructor(t){this.snapshot=t,this.type=14}toString(){return`ActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class RD{constructor(t,n,r){this.routerEvent=t,this.position=n,this.anchor=r,this.type=15}toString(){return`Scroll(anchor: '${this.anchor}', position: '${this.position?`${this.position[0]}, ${this.position[1]}`:null}')`}}let CP=(()=>{class e{createUrlTree(n,r,o,i,s,a){return nP(n||r.root,o,i,s,a)}}return e.\u0275fac=function(n){return new(n||e)},e.\u0275prov=F({token:e,factory:e.\u0275fac}),e})(),DP=(()=>{class e{}return e.\u0275fac=function(n){return new(n||e)},e.\u0275prov=F({token:e,factory:function(t){return CP.\u0275fac(t)},providedIn:"root"}),e})();class ND{constructor(t){this._root=t}get root(){return this._root.value}parent(t){const n=this.pathFromRoot(t);return n.length>1?n[n.length-2]:null}children(t){const n=ff(t,this._root);return n?n.children.map(r=>r.value):[]}firstChild(t){const n=ff(t,this._root);return n&&n.children.length>0?n.children[0].value:null}siblings(t){const n=hf(t,this._root);return n.length<2?[]:n[n.length-2].children.map(o=>o.value).filter(o=>o!==t)}pathFromRoot(t){return hf(t,this._root).map(n=>n.value)}}function ff(e,t){if(e===t.value)return t;for(const n of t.children){const r=ff(e,n);if(r)return r}return null}function hf(e,t){if(e===t.value)return[t];for(const n of t.children){const r=hf(e,n);if(r.length)return r.unshift(t),r}return[]}class Pn{constructor(t,n){this.value=t,this.children=n}toString(){return`TreeNode(${this.value})`}}function Co(e){const t={};return e&&e.children.forEach(n=>t[n.value.outlet]=n),t}class FD extends ND{constructor(t,n){super(t),this.snapshot=n,pf(this,t)}toString(){return this.snapshot.toString()}}function PD(e,t){const n=function wP(e,t){const s=new ul([],{},{},"",{},Q,t,null,e.root,-1,{});return new kD("",new Pn(s,[]))}(e,t),r=new Qt([new Li("",{})]),o=new Qt({}),i=new Qt({}),s=new Qt({}),a=new Qt(""),l=new Dr(r,o,s,a,i,Q,t,n.root);return l.snapshot=n.root,new FD(new Pn(l,[]),n)}class Dr{constructor(t,n,r,o,i,s,a,l){this.url=t,this.params=n,this.queryParams=r,this.fragment=o,this.data=i,this.outlet=s,this.component=a,this.title=this.data?.pipe(W(u=>u[ki]))??O(void 0),this._futureSnapshot=l}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(W(t=>yo(t)))),this._paramMap}get queryParamMap(){return this._queryParamMap||(this._queryParamMap=this.queryParams.pipe(W(t=>yo(t)))),this._queryParamMap}toString(){return this.snapshot?this.snapshot.toString():`Future(${this._futureSnapshot})`}}function OD(e,t="emptyOnly"){const n=e.pathFromRoot;let r=0;if("always"!==t)for(r=n.length-1;r>=1;){const o=n[r],i=n[r-1];if(o.routeConfig&&""===o.routeConfig.path)r--;else{if(i.component)break;r--}}return function bP(e){return e.reduce((t,n)=>({params:{...t.params,...n.params},data:{...t.data,...n.data},resolve:{...n.data,...t.resolve,...n.routeConfig?.data,...n._resolvedData}}),{params:{},data:{},resolve:{}})}(n.slice(r))}class ul{constructor(t,n,r,o,i,s,a,l,u,c,d){this.url=t,this.params=n,this.queryParams=r,this.fragment=o,this.data=i,this.outlet=s,this.component=a,this.routeConfig=l,this._urlSegment=u,this._lastPathIndex=c,this._resolve=d}get title(){return this.data?.[ki]}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=yo(this.params)),this._paramMap}get queryParamMap(){return this._queryParamMap||(this._queryParamMap=yo(this.queryParams)),this._queryParamMap}toString(){return`Route(url:'${this.url.map(r=>r.toString()).join("/")}', path:'${this.routeConfig?this.routeConfig.path:""}')`}}class kD extends ND{constructor(t,n){super(n),this.url=t,pf(this,n)}toString(){return LD(this._root)}}function pf(e,t){t.value._routerState=e,t.children.forEach(n=>pf(e,n))}function LD(e){const t=e.children.length>0?` { ${e.children.map(LD).join(", ")} } `:"";return`${e.value}${t}`}function gf(e){if(e.snapshot){const t=e.snapshot,n=e._futureSnapshot;e.snapshot=n,fn(t.queryParams,n.queryParams)||e.queryParams.next(n.queryParams),t.fragment!==n.fragment&&e.fragment.next(n.fragment),fn(t.params,n.params)||e.params.next(n.params),function LF(e,t){if(e.length!==t.length)return!1;for(let n=0;nfn(n.parameters,t[r].parameters))}(e.url,t.url);return n&&!(!e.parent!=!t.parent)&&(!e.parent||mf(e.parent,t.parent))}function $i(e,t,n){if(n&&e.shouldReuseRoute(t.value,n.value.snapshot)){const r=n.value;r._futureSnapshot=t.value;const o=function SP(e,t,n){return t.children.map(r=>{for(const o of n.children)if(e.shouldReuseRoute(r.value,o.value.snapshot))return $i(e,r,o);return $i(e,r)})}(e,t,n);return new Pn(r,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=>$i(e,a)),s}}const r=function MP(e){return new Dr(new Qt(e.url),new Qt(e.params),new Qt(e.queryParams),new Qt(e.fragment),new Qt(e.data),e.outlet,e.component,e)}(t.value),o=t.children.map(i=>$i(e,i));return new Pn(r,o)}}const yf="ngNavigationCancelingError";function VD(e,t){const{redirectTo:n,navigationBehaviorOptions:r}=Cr(t)?{redirectTo:t,navigationBehaviorOptions:void 0}:t,o=UD(!1,0,t);return o.url=n,o.navigationBehaviorOptions=r,o}function UD(e,t,n){const r=new Error("NavigationCancelingError: "+(e||""));return r[yf]=!0,r.cancellationCode=t,n&&(r.url=n),r}function HD(e){return jD(e)&&Cr(e.url)}function jD(e){return e&&e[yf]}class IP{constructor(){this.outlet=null,this.route=null,this.resolver=null,this.injector=null,this.children=new Gi,this.attachRef=null}}let Gi=(()=>{class e{constructor(){this.contexts=new Map}onChildOutletCreated(n,r){const o=this.getOrCreateContext(n);o.outlet=r,this.contexts.set(n,o)}onChildOutletDestroyed(n){const r=this.getContext(n);r&&(r.outlet=null,r.attachRef=null)}onOutletDeactivated(){const n=this.contexts;return this.contexts=new Map,n}onOutletReAttached(n){this.contexts=n}getOrCreateContext(n){let r=this.getContext(n);return r||(r=new IP,this.contexts.set(n,r)),r}getContext(n){return this.contexts.get(n)||null}}return e.\u0275fac=function(n){return new(n||e)},e.\u0275prov=F({token:e,factory:e.\u0275fac,providedIn:"root"}),e})();const cl=!1;let vf=(()=>{class e{constructor(){this.activated=null,this._activatedRoute=null,this.name=Q,this.activateEvents=new Ee,this.deactivateEvents=new Ee,this.attachEvents=new Ee,this.detachEvents=new Ee,this.parentContexts=Y(Gi),this.location=Y(qt),this.changeDetector=Y(Da),this.environmentInjector=Y(rn)}ngOnChanges(n){if(n.name){const{firstChange:r,previousValue:o}=n.name;if(r)return;this.isTrackedInParentContexts(o)&&(this.deactivate(),this.parentContexts.onChildOutletDestroyed(o)),this.initializeOutletWithName()}}ngOnDestroy(){this.isTrackedInParentContexts(this.name)&&this.parentContexts.onChildOutletDestroyed(this.name)}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 M(4012,cl);return this.activated.instance}get activatedRoute(){if(!this.activated)throw new M(4012,cl);return this._activatedRoute}get activatedRouteData(){return this._activatedRoute?this._activatedRoute.snapshot.data:{}}detach(){if(!this.activated)throw new M(4012,cl);this.location.detach();const n=this.activated;return this.activated=null,this._activatedRoute=null,this.detachEvents.emit(n.instance),n}attach(n,r){this.activated=n,this._activatedRoute=r,this.location.insert(n.hostView),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,r){if(this.isActivated)throw new M(4013,cl);this._activatedRoute=n;const o=this.location,s=n.snapshot.component,a=this.parentContexts.getOrCreateContext(this.name).children,l=new AP(n,a,o.injector);if(r&&function TP(e){return!!e.resolveComponentFactory}(r)){const u=r.resolveComponentFactory(s);this.activated=o.createComponent(u,o.length,l)}else this.activated=o.createComponent(s,{index:o.length,injector:l,environmentInjector:r??this.environmentInjector});this.changeDetector.markForCheck(),this.activateEvents.emit(this.activated.instance)}}return e.\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:[At]}),e})();class AP{constructor(t,n,r){this.route=t,this.childContexts=n,this.parent=r}get(t,n){return t===Dr?this.route:t===Gi?this.childContexts:this.parent.get(t,n)}}let _f=(()=>{class e{}return e.\u0275fac=function(n){return new(n||e)},e.\u0275cmp=It({type:e,selectors:[["ng-component"]],standalone:!0,features:[Ty],decls:1,vars:0,template:function(n,r){1&n&&_(0,"router-outlet")},dependencies:[vf],encapsulation:2}),e})();function BD(e,t){return e.providers&&!e._injector&&(e._injector=fa(e.providers,t,`Route: ${e.path}`)),e._injector??t}function Df(e){const t=e.children&&e.children.map(Df),n=t?{...e,children:t}:{...e};return!n.component&&!n.loadComponent&&(t||n.loadChildren)&&n.outlet&&n.outlet!==Q&&(n.component=_f),n}function Pt(e){return e.outlet||Q}function $D(e,t){const n=e.filter(r=>Pt(r)===t);return n.push(...e.filter(r=>Pt(r)!==t)),n}function zi(e){if(!e)return null;if(e.routeConfig?._injector)return e.routeConfig._injector;for(let t=e.parent;t;t=t.parent){const n=t.routeConfig;if(n?._loadedInjector)return n._loadedInjector;if(n?._injector)return n._injector}return null}class PP{constructor(t,n,r,o){this.routeReuseStrategy=t,this.futureState=n,this.currState=r,this.forwardEvent=o}activate(t){const n=this.futureState._root,r=this.currState?this.currState._root:null;this.deactivateChildRoutes(n,r,t),gf(this.futureState.root),this.activateChildRoutes(n,r,t)}deactivateChildRoutes(t,n,r){const o=Co(n);t.children.forEach(i=>{const s=i.value.outlet;this.deactivateRoutes(i,o[s],r),delete o[s]}),Ke(o,(i,s)=>{this.deactivateRouteAndItsChildren(i,r)})}deactivateRoutes(t,n,r){const o=t.value,i=n?n.value:null;if(o===i)if(o.component){const s=r.getContext(o.outlet);s&&this.deactivateChildRoutes(t,n,s.children)}else this.deactivateChildRoutes(t,n,r);else i&&this.deactivateRouteAndItsChildren(n,r)}deactivateRouteAndItsChildren(t,n){t.value.component&&this.routeReuseStrategy.shouldDetach(t.value.snapshot)?this.detachAndStoreRouteSubtree(t,n):this.deactivateRouteAndOutlet(t,n)}detachAndStoreRouteSubtree(t,n){const r=n.getContext(t.value.outlet),o=r&&t.value.component?r.children:n,i=Co(t);for(const s of Object.keys(i))this.deactivateRouteAndItsChildren(i[s],o);if(r&&r.outlet){const s=r.outlet.detach(),a=r.children.onOutletDeactivated();this.routeReuseStrategy.store(t.value.snapshot,{componentRef:s,route:t,contexts:a})}}deactivateRouteAndOutlet(t,n){const r=n.getContext(t.value.outlet),o=r&&t.value.component?r.children:n,i=Co(t);for(const s of Object.keys(i))this.deactivateRouteAndItsChildren(i[s],o);r&&r.outlet&&(r.outlet.deactivate(),r.children.onOutletDeactivated(),r.attachRef=null,r.resolver=null,r.route=null)}activateChildRoutes(t,n,r){const o=Co(n);t.children.forEach(i=>{this.activateRoutes(i,o[i.value.outlet],r),this.forwardEvent(new vP(i.value.snapshot))}),t.children.length&&this.forwardEvent(new mP(t.value.snapshot))}activateRoutes(t,n,r){const o=t.value,i=n?n.value:null;if(gf(o),o===i)if(o.component){const s=r.getOrCreateContext(o.outlet);this.activateChildRoutes(t,n,s.children)}else this.activateChildRoutes(t,n,r);else if(o.component){const s=r.getOrCreateContext(o.outlet);if(this.routeReuseStrategy.shouldAttach(o.snapshot)){const a=this.routeReuseStrategy.retrieve(o.snapshot);this.routeReuseStrategy.store(o.snapshot,null),s.children.onOutletReAttached(a.contexts),s.attachRef=a.componentRef,s.route=a.route.value,s.outlet&&s.outlet.attach(a.componentRef,a.route.value),gf(a.route.value),this.activateChildRoutes(t,null,s.children)}else{const a=zi(o.snapshot),l=a?.get(ti)??null;s.attachRef=null,s.route=o,s.resolver=l,s.injector=a,s.outlet&&s.outlet.activateWith(o,s.injector),this.activateChildRoutes(t,null,s.children)}}else this.activateChildRoutes(t,null,r)}}class GD{constructor(t){this.path=t,this.route=this.path[this.path.length-1]}}class dl{constructor(t,n){this.component=t,this.route=n}}function OP(e,t,n){const r=e._root;return qi(r,t?t._root:null,n,[r.value])}function Do(e,t){const n=Symbol(),r=t.get(e,n);return r===n?"function"!=typeof e||function db(e){return null!==gs(e)}(e)?t.get(e):e:r}function qi(e,t,n,r,o={canDeactivateChecks:[],canActivateChecks:[]}){const i=Co(t);return e.children.forEach(s=>{(function LP(e,t,n,r,o={canDeactivateChecks:[],canActivateChecks:[]}){const i=e.value,s=t?t.value:null,a=n?n.getContext(e.value.outlet):null;if(s&&i.routeConfig===s.routeConfig){const l=function VP(e,t,n){if("function"==typeof n)return n(e,t);switch(n){case"pathParamsChange":return!_r(e.url,t.url);case"pathParamsOrQueryParamsChange":return!_r(e.url,t.url)||!fn(e.queryParams,t.queryParams);case"always":return!0;case"paramsOrQueryParamsChange":return!mf(e,t)||!fn(e.queryParams,t.queryParams);default:return!mf(e,t)}}(s,i,i.routeConfig.runGuardsAndResolvers);l?o.canActivateChecks.push(new GD(r)):(i.data=s.data,i._resolvedData=s._resolvedData),qi(e,t,i.component?a?a.children:null:n,r,o),l&&a&&a.outlet&&a.outlet.isActivated&&o.canDeactivateChecks.push(new dl(a.outlet.component,s))}else s&&Wi(t,a,o),o.canActivateChecks.push(new GD(r)),qi(e,null,i.component?a?a.children:null:n,r,o)})(s,i[s.value.outlet],n,r.concat([s.value]),o),delete i[s.value.outlet]}),Ke(i,(s,a)=>Wi(s,n.getContext(a),o)),o}function Wi(e,t,n){const r=Co(e),o=e.value;Ke(r,(i,s)=>{Wi(i,o.component?t?t.children.getContext(s):null:t,n)}),n.canDeactivateChecks.push(new dl(o.component&&t&&t.outlet&&t.outlet.isActivated?t.outlet.component:null,o))}function Ki(e){return"function"==typeof e}function wf(e){return e instanceof Ja||"EmptyError"===e?.name}const fl=Symbol("INITIAL_VALUE");function wo(){return dn(e=>sD(e.map(t=>t.pipe(Mr(1),function xF(...e){const t=xo(e);return Be((n,r)=>{(t?Jd(e,n,t):Jd(e,n)).subscribe(r)})}(fl)))).pipe(W(t=>{for(const n of t)if(!0!==n){if(n===fl)return fl;if(!1===n||n instanceof vr)return n}return!0}),Xt(t=>t!==fl),Mr(1)))}function zD(e){return function xw(...e){return Vf(e)}(nt(t=>{if(Cr(t))throw VD(0,t)}),W(t=>!0===t))}const bf={matched:!1,consumedSegments:[],remainingSegments:[],parameters:{},positionalParamSegments:{}};function qD(e,t,n,r,o){const i=Ef(e,t,n);return i.matched?function tO(e,t,n,r){const o=t.canMatch;return o&&0!==o.length?O(o.map(s=>{const a=Do(s,e);return Xn(function GP(e){return e&&Ki(e.canMatch)}(a)?a.canMatch(t,n):e.runInContext(()=>a(t,n)))})).pipe(wo(),zD()):O(!0)}(r=BD(t,r),t,n).pipe(W(s=>!0===s?i:{...bf})):O(i)}function Ef(e,t,n){if(""===t.path)return"full"===t.pathMatch&&(e.hasChildren()||n.length>0)?{...bf}:{matched:!0,consumedSegments:[],remainingSegments:n,parameters:{},positionalParamSegments:{}};const o=(t.matcher||kF)(n,e,t);if(!o)return{...bf};const i={};Ke(o.posParams,(a,l)=>{i[l]=a.path});const s=o.consumed.length>0?{...i,...o.consumed[o.consumed.length-1].parameters}:i;return{matched:!0,consumedSegments:o.consumed,remainingSegments:n.slice(o.consumed.length),parameters:s,positionalParamSegments:o.posParams??{}}}function hl(e,t,n,r){if(n.length>0&&function oO(e,t,n){return n.some(r=>pl(e,t,r)&&Pt(r)!==Q)}(e,n,r)){const i=new J(t,function rO(e,t,n,r){const o={};o[Q]=r,r._sourceSegment=e,r._segmentIndexShift=t.length;for(const i of n)if(""===i.path&&Pt(i)!==Q){const s=new J([],{});s._sourceSegment=e,s._segmentIndexShift=t.length,o[Pt(i)]=s}return o}(e,t,r,new J(n,e.children)));return i._sourceSegment=e,i._segmentIndexShift=t.length,{segmentGroup:i,slicedSegments:[]}}if(0===n.length&&function iO(e,t,n){return n.some(r=>pl(e,t,r))}(e,n,r)){const i=new J(e.segments,function nO(e,t,n,r,o){const i={};for(const s of r)if(pl(e,n,s)&&!o[Pt(s)]){const a=new J([],{});a._sourceSegment=e,a._segmentIndexShift=t.length,i[Pt(s)]=a}return{...o,...i}}(e,t,n,r,e.children));return i._sourceSegment=e,i._segmentIndexShift=t.length,{segmentGroup:i,slicedSegments:n}}const o=new J(e.segments,e.children);return o._sourceSegment=e,o._segmentIndexShift=t.length,{segmentGroup:o,slicedSegments:n}}function pl(e,t,n){return(!(e.hasChildren()||t.length>0)||"full"!==n.pathMatch)&&""===n.path}function WD(e,t,n,r){return!!(Pt(e)===r||r!==Q&&pl(t,n,e))&&("**"===e.path||Ef(t,e,n).matched)}function KD(e,t,n){return 0===t.length&&!e.children[n]}const gl=!1;class ml{constructor(t){this.segmentGroup=t||null}}class ZD{constructor(t){this.urlTree=t}}function Zi(e){return Oi(new ml(e))}function XD(e){return Oi(new ZD(e))}class uO{constructor(t,n,r,o,i){this.injector=t,this.configLoader=n,this.urlSerializer=r,this.urlTree=o,this.config=i,this.allowRedirects=!0}apply(){const t=hl(this.urlTree.root,[],[],this.config).segmentGroup,n=new J(t.segments,t.children);return this.expandSegmentGroup(this.injector,this.config,n,Q).pipe(W(i=>this.createUrlTree(al(i),this.urlTree.queryParams,this.urlTree.fragment))).pipe(Zn(i=>{if(i instanceof ZD)return this.allowRedirects=!1,this.match(i.urlTree);throw i instanceof ml?this.noMatchError(i):i}))}match(t){return this.expandSegmentGroup(this.injector,this.config,t.root,Q).pipe(W(o=>this.createUrlTree(al(o),t.queryParams,t.fragment))).pipe(Zn(o=>{throw o instanceof ml?this.noMatchError(o):o}))}noMatchError(t){return new M(4002,gl)}createUrlTree(t,n,r){const o=af(t);return new vr(o,n,r)}expandSegmentGroup(t,n,r,o){return 0===r.segments.length&&r.hasChildren()?this.expandChildren(t,n,r).pipe(W(i=>new J([],i))):this.expandSegment(t,r,n,r.segments,o,!0)}expandChildren(t,n,r){const o=[];for(const i of Object.keys(r.children))"primary"===i?o.unshift(i):o.push(i);return Me(o).pipe($n(i=>{const s=r.children[i],a=$D(n,i);return this.expandSegmentGroup(t,a,s,i).pipe(W(l=>({segment:l,outlet:i})))}),dD((i,s)=>(i[s.outlet]=s.segment,i),{}),fD())}expandSegment(t,n,r,o,i,s){return Me(r).pipe($n(a=>this.expandSegmentAgainstRoute(t,n,r,a,o,i,s).pipe(Zn(u=>{if(u instanceof ml)return O(null);throw u}))),Kn(a=>!!a),Zn((a,l)=>{if(wf(a))return KD(n,o,i)?O(new J([],{})):Zi(n);throw a}))}expandSegmentAgainstRoute(t,n,r,o,i,s,a){return WD(o,n,i,s)?void 0===o.redirectTo?this.matchSegmentAgainstRoute(t,n,o,i,s):a&&this.allowRedirects?this.expandSegmentAgainstRouteUsingRedirect(t,n,r,o,i,s):Zi(n):Zi(n)}expandSegmentAgainstRouteUsingRedirect(t,n,r,o,i,s){return"**"===o.path?this.expandWildCardWithParamsAgainstRouteUsingRedirect(t,r,o,s):this.expandRegularSegmentAgainstRouteUsingRedirect(t,n,r,o,i,s)}expandWildCardWithParamsAgainstRouteUsingRedirect(t,n,r,o){const i=this.applyRedirectCommands([],r.redirectTo,{});return r.redirectTo.startsWith("/")?XD(i):this.lineralizeSegments(r,i).pipe($e(s=>{const a=new J(s,{});return this.expandSegment(t,a,n,s,o,!1)}))}expandRegularSegmentAgainstRouteUsingRedirect(t,n,r,o,i,s){const{matched:a,consumedSegments:l,remainingSegments:u,positionalParamSegments:c}=Ef(n,o,i);if(!a)return Zi(n);const d=this.applyRedirectCommands(l,o.redirectTo,c);return o.redirectTo.startsWith("/")?XD(d):this.lineralizeSegments(o,d).pipe($e(g=>this.expandSegment(t,n,r,g.concat(u),s,!1)))}matchSegmentAgainstRoute(t,n,r,o,i){return"**"===r.path?(t=BD(r,t),r.loadChildren?(r._loadedRoutes?O({routes:r._loadedRoutes,injector:r._loadedInjector}):this.configLoader.loadChildren(t,r)).pipe(W(a=>(r._loadedRoutes=a.routes,r._loadedInjector=a.injector,new J(o,{})))):O(new J(o,{}))):qD(n,r,o,t).pipe(dn(({matched:s,consumedSegments:a,remainingSegments:l})=>s?this.getChildConfig(t=r._injector??t,r,o).pipe($e(c=>{const d=c.injector??t,g=c.routes,{segmentGroup:m,slicedSegments:y}=hl(n,a,l,g),v=new J(m.segments,m.children);if(0===y.length&&v.hasChildren())return this.expandChildren(d,g,v).pipe(W(D=>new J(a,D)));if(0===g.length&&0===y.length)return O(new J(a,{}));const w=Pt(r)===i;return this.expandSegment(d,v,g,y,w?Q:i,!0).pipe(W(A=>new J(a.concat(A.segments),A.children)))})):Zi(n)))}getChildConfig(t,n,r){return n.children?O({routes:n.children,injector:t}):n.loadChildren?void 0!==n._loadedRoutes?O({routes:n._loadedRoutes,injector:n._loadedInjector}):function eO(e,t,n,r){const o=t.canLoad;return void 0===o||0===o.length?O(!0):O(o.map(s=>{const a=Do(s,e);return Xn(function HP(e){return e&&Ki(e.canLoad)}(a)?a.canLoad(t,n):e.runInContext(()=>a(t,n)))})).pipe(wo(),zD())}(t,n,r).pipe($e(o=>o?this.configLoader.loadChildren(t,n).pipe(nt(i=>{n._loadedRoutes=i.routes,n._loadedInjector=i.injector})):function aO(e){return Oi(UD(gl,3))}())):O({routes:[],injector:t})}lineralizeSegments(t,n){let r=[],o=n.root;for(;;){if(r=r.concat(o.segments),0===o.numberOfChildren)return O(r);if(o.numberOfChildren>1||!o.children[Q])return Oi(new M(4e3,gl));o=o.children[Q]}}applyRedirectCommands(t,n,r){return this.applyRedirectCreateUrlTree(n,this.urlSerializer.parse(n),t,r)}applyRedirectCreateUrlTree(t,n,r,o){const i=this.createSegmentGroup(t,n.root,r,o);return new vr(i,this.createQueryParams(n.queryParams,this.urlTree.queryParams),n.fragment)}createQueryParams(t,n){const r={};return Ke(t,(o,i)=>{if("string"==typeof o&&o.startsWith(":")){const a=o.substring(1);r[i]=n[a]}else r[i]=o}),r}createSegmentGroup(t,n,r,o){const i=this.createSegments(t,n.segments,r,o);let s={};return Ke(n.children,(a,l)=>{s[l]=this.createSegmentGroup(t,a,r,o)}),new J(i,s)}createSegments(t,n,r,o){return n.map(i=>i.path.startsWith(":")?this.findPosParam(t,i,o):this.findOrReturn(i,r))}findPosParam(t,n,r){const o=r[n.path.substring(1)];if(!o)throw new M(4001,gl);return o}findOrReturn(t,n){let r=0;for(const o of n){if(o.path===t.path)return n.splice(r),o;r++}return t}}class dO{}class pO{constructor(t,n,r,o,i,s,a){this.injector=t,this.rootComponentType=n,this.config=r,this.urlTree=o,this.url=i,this.paramsInheritanceStrategy=s,this.urlSerializer=a}recognize(){const t=hl(this.urlTree.root,[],[],this.config.filter(n=>void 0===n.redirectTo)).segmentGroup;return this.processSegmentGroup(this.injector,this.config,t,Q).pipe(W(n=>{if(null===n)return null;const r=new ul([],Object.freeze({}),Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,{},Q,this.rootComponentType,null,this.urlTree.root,-1,{}),o=new Pn(r,n),i=new kD(this.url,o);return this.inheritParamsAndData(i._root),i}))}inheritParamsAndData(t){const n=t.value,r=OD(n,this.paramsInheritanceStrategy);n.params=Object.freeze(r.params),n.data=Object.freeze(r.data),t.children.forEach(o=>this.inheritParamsAndData(o))}processSegmentGroup(t,n,r,o){return 0===r.segments.length&&r.hasChildren()?this.processChildren(t,n,r):this.processSegment(t,n,r,r.segments,o)}processChildren(t,n,r){return Me(Object.keys(r.children)).pipe($n(o=>{const i=r.children[o],s=$D(n,o);return this.processSegmentGroup(t,s,i,o)}),dD((o,i)=>o&&i?(o.push(...i),o):null),function FF(e,t=!1){return Be((n,r)=>{let o=0;n.subscribe(ke(r,i=>{const s=e(i,o++);(s||t)&&r.next(i),!s&&r.complete()}))})}(o=>null!==o),el(null),fD(),W(o=>{if(null===o)return null;const i=YD(o);return function gO(e){e.sort((t,n)=>t.value.outlet===Q?-1:n.value.outlet===Q?1:t.value.outlet.localeCompare(n.value.outlet))}(i),i}))}processSegment(t,n,r,o,i){return Me(n).pipe($n(s=>this.processSegmentAgainstRoute(s._injector??t,s,r,o,i)),Kn(s=>!!s),Zn(s=>{if(wf(s))return KD(r,o,i)?O([]):O(null);throw s}))}processSegmentAgainstRoute(t,n,r,o,i){if(n.redirectTo||!WD(n,r,o,i))return O(null);let s;if("**"===n.path){const a=o.length>0?gD(o).parameters:{},l=ew(r)+o.length;s=O({snapshot:new ul(o,a,Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,tw(n),Pt(n),n.component??n._loadedComponent??null,n,JD(r),l,nw(n)),consumedSegments:[],remainingSegments:[]})}else s=qD(r,n,o,t).pipe(W(({matched:a,consumedSegments:l,remainingSegments:u,parameters:c})=>{if(!a)return null;const d=ew(r)+l.length;return{snapshot:new ul(l,c,Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,tw(n),Pt(n),n.component??n._loadedComponent??null,n,JD(r),d,nw(n)),consumedSegments:l,remainingSegments:u}}));return s.pipe(dn(a=>{if(null===a)return O(null);const{snapshot:l,consumedSegments:u,remainingSegments:c}=a;t=n._injector??t;const d=n._loadedInjector??t,g=function mO(e){return e.children?e.children:e.loadChildren?e._loadedRoutes:[]}(n),{segmentGroup:m,slicedSegments:y}=hl(r,u,c,g.filter(w=>void 0===w.redirectTo));if(0===y.length&&m.hasChildren())return this.processChildren(d,g,m).pipe(W(w=>null===w?null:[new Pn(l,w)]));if(0===g.length&&0===y.length)return O([new Pn(l,[])]);const v=Pt(n)===i;return this.processSegment(d,g,m,y,v?Q:i).pipe(W(w=>null===w?null:[new Pn(l,w)]))}))}}function yO(e){const t=e.value.routeConfig;return t&&""===t.path&&void 0===t.redirectTo}function YD(e){const t=[],n=new Set;for(const r of e){if(!yO(r)){t.push(r);continue}const o=t.find(i=>r.value.routeConfig===i.value.routeConfig);void 0!==o?(o.children.push(...r.children),n.add(o)):t.push(r)}for(const r of n){const o=YD(r.children);t.push(new Pn(r.value,o))}return t.filter(r=>!n.has(r))}function JD(e){let t=e;for(;t._sourceSegment;)t=t._sourceSegment;return t}function ew(e){let t=e,n=t._segmentIndexShift??0;for(;t._sourceSegment;)t=t._sourceSegment,n+=t._segmentIndexShift??0;return n-1}function tw(e){return e.data||{}}function nw(e){return e.resolve||{}}function rw(e){return"string"==typeof e.title||null===e.title}function Sf(e){return dn(t=>{const n=e(t);return n?Me(n).pipe(W(()=>t)):O(t)})}const bo=new N("ROUTES");let Mf=(()=>{class e{constructor(n,r){this.injector=n,this.compiler=r,this.componentLoaders=new WeakMap,this.childrenLoaders=new WeakMap}loadComponent(n){if(this.componentLoaders.get(n))return this.componentLoaders.get(n);if(n._loadedComponent)return O(n._loadedComponent);this.onLoadStartListener&&this.onLoadStartListener(n);const r=Xn(n.loadComponent()).pipe(W(iw),nt(i=>{this.onLoadEndListener&&this.onLoadEndListener(n),n._loadedComponent=i}),nf(()=>{this.componentLoaders.delete(n)})),o=new uD(r,()=>new hn).pipe(ef());return this.componentLoaders.set(n,o),o}loadChildren(n,r){if(this.childrenLoaders.get(r))return this.childrenLoaders.get(r);if(r._loadedRoutes)return O({routes:r._loadedRoutes,injector:r._loadedInjector});this.onLoadStartListener&&this.onLoadStartListener(r);const i=this.loadModuleFactoryOrRoutes(r.loadChildren).pipe(W(a=>{this.onLoadEndListener&&this.onLoadEndListener(r);let l,u,c=!1;Array.isArray(a)?u=a:(l=a.create(n).injector,u=pD(l.get(bo,[],U.Self|U.Optional)));return{routes:u.map(Df),injector:l}}),nf(()=>{this.childrenLoaders.delete(r)})),s=new uD(i,()=>new hn).pipe(ef());return this.childrenLoaders.set(r,s),s}loadModuleFactoryOrRoutes(n){return Xn(n()).pipe(W(iw),$e(o=>o instanceof Iy||Array.isArray(o)?O(o):Me(this.compiler.compileModuleAsync(o))))}}return e.\u0275fac=function(n){return new(n||e)(R(Bt),R(_v))},e.\u0275prov=F({token:e,factory:e.\u0275fac,providedIn:"root"}),e})();function iw(e){return function MO(e){return e&&"object"==typeof e&&"default"in e}(e)?e.default:e}let If=(()=>{class e{constructor(){this.currentNavigation=null,this.lastSuccessfulNavigation=null,this.events=new hn,this.configLoader=Y(Mf),this.environmentInjector=Y(rn),this.urlSerializer=Y(Vi),this.rootContexts=Y(Gi),this.navigationId=0,this.configLoader.onLoadEndListener=o=>this.events.next(new pP(o)),this.configLoader.onLoadStartListener=o=>this.events.next(new hP(o))}get hasRequestedNavigation(){return 0!==this.navigationId}complete(){this.transitions?.complete()}handleNavigationRequest(n){const r=++this.navigationId;this.transitions?.next({...this.transitions.value,...n,id:r})}setupNavigations(n){return this.transitions=new Qt({id:0,targetPageId:0,currentUrlTree:n.currentUrlTree,currentRawUrl:n.currentUrlTree,extractedUrl:n.urlHandlingStrategy.extract(n.currentUrlTree),urlAfterRedirects:n.urlHandlingStrategy.extract(n.currentUrlTree),rawUrl:n.currentUrlTree,extras:{},resolve:null,reject:null,promise:Promise.resolve(!0),source:"imperative",restoredState:null,currentSnapshot:n.routerState.snapshot,targetSnapshot:null,currentRouterState:n.routerState,targetRouterState:null,guards:{canActivateChecks:[],canDeactivateChecks:[]},guardsResult:null}),this.transitions.pipe(Xt(r=>0!==r.id),W(r=>({...r,extractedUrl:n.urlHandlingStrategy.extract(r.rawUrl)})),dn(r=>{let o=!1,i=!1;return O(r).pipe(nt(s=>{this.currentNavigation={id:s.id,initialUrl:s.rawUrl,extractedUrl:s.extractedUrl,trigger:s.source,extras:s.extras,previousNavigation:this.lastSuccessfulNavigation?{...this.lastSuccessfulNavigation,previousNavigation:null}:null}}),dn(s=>{const a=n.browserUrlTree.toString(),l=!n.navigated||s.extractedUrl.toString()!==a||a!==n.currentUrlTree.toString();if(("reload"===n.onSameUrlNavigation||l)&&n.urlHandlingStrategy.shouldProcessUrl(s.rawUrl))return aw(s.source)&&(n.browserUrlTree=s.extractedUrl),O(s).pipe(dn(c=>{const d=this.transitions?.getValue();return this.events.next(new df(c.id,this.urlSerializer.serialize(c.extractedUrl),c.source,c.restoredState)),d!==this.transitions?.getValue()?gn:Promise.resolve(c)}),function cO(e,t,n,r){return dn(o=>function lO(e,t,n,r,o){return new uO(e,t,n,r,o).apply()}(e,t,n,o.extractedUrl,r).pipe(W(i=>({...o,urlAfterRedirects:i}))))}(this.environmentInjector,this.configLoader,this.urlSerializer,n.config),nt(c=>{this.currentNavigation={...this.currentNavigation,finalUrl:c.urlAfterRedirects},r.urlAfterRedirects=c.urlAfterRedirects}),function _O(e,t,n,r,o){return $e(i=>function hO(e,t,n,r,o,i,s="emptyOnly"){return new pO(e,t,n,r,o,s,i).recognize().pipe(dn(a=>null===a?function fO(e){return new Se(t=>t.error(e))}(new dO):O(a)))}(e,t,n,i.urlAfterRedirects,r.serialize(i.urlAfterRedirects),r,o).pipe(W(s=>({...i,targetSnapshot:s}))))}(this.environmentInjector,n.rootComponentType,n.config,this.urlSerializer,n.paramsInheritanceStrategy),nt(c=>{if(r.targetSnapshot=c.targetSnapshot,"eager"===n.urlUpdateStrategy){if(!c.extras.skipLocationChange){const g=n.urlHandlingStrategy.merge(c.urlAfterRedirects,c.rawUrl);n.setBrowserUrl(g,c)}n.browserUrlTree=c.urlAfterRedirects}const d=new lP(c.id,this.urlSerializer.serialize(c.extractedUrl),this.urlSerializer.serialize(c.urlAfterRedirects),c.targetSnapshot);this.events.next(d)}));if(l&&n.rawUrlTree&&n.urlHandlingStrategy.shouldProcessUrl(n.rawUrlTree)){const{id:d,extractedUrl:g,source:m,restoredState:y,extras:v}=s,w=new df(d,this.urlSerializer.serialize(g),m,y);this.events.next(w);const E=PD(g,n.rootComponentType).snapshot;return O(r={...s,targetSnapshot:E,urlAfterRedirects:g,extras:{...v,skipLocationChange:!1,replaceUrl:!1}})}return n.rawUrlTree=s.rawUrl,s.resolve(null),gn}),nt(s=>{const a=new uP(s.id,this.urlSerializer.serialize(s.extractedUrl),this.urlSerializer.serialize(s.urlAfterRedirects),s.targetSnapshot);this.events.next(a)}),W(s=>r={...s,guards:OP(s.targetSnapshot,s.currentSnapshot,this.rootContexts)}),function qP(e,t){return $e(n=>{const{targetSnapshot:r,currentSnapshot:o,guards:{canActivateChecks:i,canDeactivateChecks:s}}=n;return 0===s.length&&0===i.length?O({...n,guardsResult:!0}):function WP(e,t,n,r){return Me(e).pipe($e(o=>function JP(e,t,n,r,o){const i=t&&t.routeConfig?t.routeConfig.canDeactivate:null;return i&&0!==i.length?O(i.map(a=>{const l=zi(t)??o,u=Do(a,l);return Xn(function $P(e){return e&&Ki(e.canDeactivate)}(u)?u.canDeactivate(e,t,n,r):l.runInContext(()=>u(e,t,n,r))).pipe(Kn())})).pipe(wo()):O(!0)}(o.component,o.route,n,t,r)),Kn(o=>!0!==o,!0))}(s,r,o,e).pipe($e(a=>a&&function UP(e){return"boolean"==typeof e}(a)?function KP(e,t,n,r){return Me(t).pipe($n(o=>Jd(function XP(e,t){return null!==e&&t&&t(new gP(e)),O(!0)}(o.route.parent,r),function ZP(e,t){return null!==e&&t&&t(new yP(e)),O(!0)}(o.route,r),function YP(e,t,n){const r=t[t.length-1],i=t.slice(0,t.length-1).reverse().map(s=>function kP(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=>lD(()=>O(s.guards.map(l=>{const u=zi(s.node)??n,c=Do(l,u);return Xn(function BP(e){return e&&Ki(e.canActivateChild)}(c)?c.canActivateChild(r,e):u.runInContext(()=>c(r,e))).pipe(Kn())})).pipe(wo())));return O(i).pipe(wo())}(e,o.path,n),function QP(e,t,n){const r=t.routeConfig?t.routeConfig.canActivate:null;if(!r||0===r.length)return O(!0);const o=r.map(i=>lD(()=>{const s=zi(t)??n,a=Do(i,s);return Xn(function jP(e){return e&&Ki(e.canActivate)}(a)?a.canActivate(t,e):s.runInContext(()=>a(t,e))).pipe(Kn())}));return O(o).pipe(wo())}(e,o.route,n))),Kn(o=>!0!==o,!0))}(r,i,e,t):O(a)),W(a=>({...n,guardsResult:a})))})}(this.environmentInjector,s=>this.events.next(s)),nt(s=>{if(r.guardsResult=s.guardsResult,Cr(s.guardsResult))throw VD(0,s.guardsResult);const a=new cP(s.id,this.urlSerializer.serialize(s.extractedUrl),this.urlSerializer.serialize(s.urlAfterRedirects),s.targetSnapshot,!!s.guardsResult);this.events.next(a)}),Xt(s=>!!s.guardsResult||(n.restoreHistory(s),this.cancelNavigationTransition(s,"",3,n),!1)),Sf(s=>{if(s.guards.canActivateChecks.length)return O(s).pipe(nt(a=>{const l=new dP(a.id,this.urlSerializer.serialize(a.extractedUrl),this.urlSerializer.serialize(a.urlAfterRedirects),a.targetSnapshot);this.events.next(l)}),dn(a=>{let l=!1;return O(a).pipe(function CO(e,t){return $e(n=>{const{targetSnapshot:r,guards:{canActivateChecks:o}}=n;if(!o.length)return O(n);let i=0;return Me(o).pipe($n(s=>function DO(e,t,n,r){const o=e.routeConfig,i=e._resolve;return void 0!==o?.title&&!rw(o)&&(i[ki]=o.title),function wO(e,t,n,r){const o=function bO(e){return[...Object.keys(e),...Object.getOwnPropertySymbols(e)]}(e);if(0===o.length)return O({});const i={};return Me(o).pipe($e(s=>function EO(e,t,n,r){const o=zi(t)??r,i=Do(e,o);return Xn(i.resolve?i.resolve(t,n):o.runInContext(()=>i(t,n)))}(e[s],t,n,r).pipe(Kn(),nt(a=>{i[s]=a}))),tf(1),function PF(e){return W(()=>e)}(i),Zn(s=>wf(s)?gn:Oi(s)))}(i,e,t,r).pipe(W(s=>(e._resolvedData=s,e.data=OD(e,n).resolve,o&&rw(o)&&(e.data[ki]=o.title),null)))}(s.route,r,e,t)),nt(()=>i++),tf(1),$e(s=>i===o.length?O(n):gn))})}(n.paramsInheritanceStrategy,this.environmentInjector),nt({next:()=>l=!0,complete:()=>{l||(n.restoreHistory(a),this.cancelNavigationTransition(a,"",2,n))}}))}),nt(a=>{const l=new fP(a.id,this.urlSerializer.serialize(a.extractedUrl),this.urlSerializer.serialize(a.urlAfterRedirects),a.targetSnapshot);this.events.next(l)}))}),Sf(s=>{const a=l=>{const u=[];l.routeConfig?.loadComponent&&!l.routeConfig._loadedComponent&&u.push(this.configLoader.loadComponent(l.routeConfig).pipe(nt(c=>{l.component=c}),W(()=>{})));for(const c of l.children)u.push(...a(c));return u};return sD(a(s.targetSnapshot.root)).pipe(el(),Mr(1))}),Sf(()=>n.afterPreactivation()),W(s=>{const a=function EP(e,t,n){const r=$i(e,t._root,n?n._root:void 0);return new FD(r,t)}(n.routeReuseStrategy,s.targetSnapshot,s.currentRouterState);return r={...s,targetRouterState:a}}),nt(s=>{n.currentUrlTree=s.urlAfterRedirects,n.rawUrlTree=n.urlHandlingStrategy.merge(s.urlAfterRedirects,s.rawUrl),n.routerState=s.targetRouterState,"deferred"===n.urlUpdateStrategy&&(s.extras.skipLocationChange||n.setBrowserUrl(n.rawUrlTree,s),n.browserUrlTree=s.urlAfterRedirects)}),((e,t,n)=>W(r=>(new PP(t,r.targetRouterState,r.currentRouterState,n).activate(e),r)))(this.rootContexts,n.routeReuseStrategy,s=>this.events.next(s)),nt({next:s=>{o=!0,this.lastSuccessfulNavigation=this.currentNavigation,n.navigated=!0,this.events.next(new Qn(s.id,this.urlSerializer.serialize(s.extractedUrl),this.urlSerializer.serialize(n.currentUrlTree))),n.titleStrategy?.updateTitle(s.targetRouterState.snapshot),s.resolve(!0)},complete:()=>{o=!0}}),nf(()=>{o||i||this.cancelNavigationTransition(r,"",1,n),this.currentNavigation?.id===r.id&&(this.currentNavigation=null)}),Zn(s=>{if(i=!0,jD(s)){HD(s)||(n.navigated=!0,n.restoreHistory(r,!0));const a=new ll(r.id,this.urlSerializer.serialize(r.extractedUrl),s.message,s.cancellationCode);if(this.events.next(a),HD(s)){const l=n.urlHandlingStrategy.merge(s.url,n.rawUrlTree),u={skipLocationChange:r.extras.skipLocationChange,replaceUrl:"eager"===n.urlUpdateStrategy||aw(r.source)};n.scheduleNavigation(l,"imperative",null,u,{resolve:r.resolve,reject:r.reject,promise:r.promise})}else r.resolve(!1)}else{n.restoreHistory(r,!0);const a=new xD(r.id,this.urlSerializer.serialize(r.extractedUrl),s,r.targetSnapshot??void 0);this.events.next(a);try{r.resolve(n.errorHandler(s))}catch(l){r.reject(l)}}return gn}))}))}cancelNavigationTransition(n,r,o,i){const s=new ll(n.id,this.urlSerializer.serialize(n.extractedUrl),r,o);this.events.next(s),n.resolve(!1)}}return e.\u0275fac=function(n){return new(n||e)},e.\u0275prov=F({token:e,factory:e.\u0275fac,providedIn:"root"}),e})();function aw(e){return"imperative"!==e}let lw=(()=>{class e{buildTitle(n){let r,o=n.root;for(;void 0!==o;)r=this.getResolvedTitleForRoute(o)??r,o=o.children.find(i=>i.outlet===Q);return r}getResolvedTitleForRoute(n){return n.data[ki]}}return e.\u0275fac=function(n){return new(n||e)},e.\u0275prov=F({token:e,factory:function(){return Y(IO)},providedIn:"root"}),e})(),IO=(()=>{class e extends lw{constructor(n){super(),this.title=n}updateTitle(n){const r=this.buildTitle(n);void 0!==r&&this.title.setTitle(r)}}return e.\u0275fac=function(n){return new(n||e)(R(k_))},e.\u0275prov=F({token:e,factory:e.\u0275fac,providedIn:"root"}),e})(),AO=(()=>{class e{}return e.\u0275fac=function(n){return new(n||e)},e.\u0275prov=F({token:e,factory:function(){return Y(xO)},providedIn:"root"}),e})();class TO{shouldDetach(t){return!1}store(t,n){}shouldAttach(t){return!1}retrieve(t){return null}shouldReuseRoute(t,n){return t.routeConfig===n.routeConfig}}let xO=(()=>{class e extends TO{}return e.\u0275fac=function(){let t;return function(r){return(t||(t=We(e)))(r||e)}}(),e.\u0275prov=F({token:e,factory:e.\u0275fac,providedIn:"root"}),e})();const yl=new N("",{providedIn:"root",factory:()=>({})});let NO=(()=>{class e{}return e.\u0275fac=function(n){return new(n||e)},e.\u0275prov=F({token:e,factory:function(){return Y(FO)},providedIn:"root"}),e})(),FO=(()=>{class e{shouldProcessUrl(n){return!0}extract(n){return n}merge(n,r){return n}}return e.\u0275fac=function(n){return new(n||e)},e.\u0275prov=F({token:e,factory:e.\u0275fac,providedIn:"root"}),e})();function PO(e){throw e}function OO(e,t,n){return t.parse("/")}const kO={paths:"exact",fragment:"ignored",matrixParams:"ignored",queryParams:"exact"},LO={paths:"subset",fragment:"ignored",matrixParams:"ignored",queryParams:"subset"};let pt=(()=>{class e{constructor(){this.disposed=!1,this.currentPageId=0,this.console=Y(VA),this.isNgZoneEnabled=!1,this.options=Y(yl,{optional:!0})||{},this.errorHandler=this.options.errorHandler||PO,this.malformedUriErrorHandler=this.options.malformedUriErrorHandler||OO,this.navigated=!1,this.lastSuccessfulId=-1,this.afterPreactivation=()=>O(void 0),this.urlHandlingStrategy=Y(NO),this.routeReuseStrategy=Y(AO),this.urlCreationStrategy=Y(DP),this.titleStrategy=Y(lw),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=pD(Y(bo,{optional:!0})??[]),this.navigationTransitions=Y(If),this.urlSerializer=Y(Vi),this.location=Y(Jc),this.rootComponentType=null,this.isNgZoneEnabled=Y(Ne)instanceof Ne&&Ne.isInAngularZone(),this.resetConfig(this.config),this.currentUrlTree=new vr,this.rawUrlTree=this.currentUrlTree,this.browserUrlTree=this.currentUrlTree,this.routerState=PD(this.currentUrlTree,this.rootComponentType),this.navigationTransitions.setupNavigations(this).subscribe(n=>{this.lastSuccessfulId=n.id,this.currentPageId=n.targetPageId},n=>{this.console.warn(`Unhandled Navigation Error: ${n}`)})}get navigationId(){return this.navigationTransitions.navigationId}get browserPageId(){return this.location.getState()?.\u0275routerPageId}get events(){return this.navigationTransitions.events}resetRootComponentType(n){this.rootComponentType=n,this.routerState.root.component=this.rootComponentType}initialNavigation(){this.setUpLocationChangeListener(),this.navigationTransitions.hasRequestedNavigation||this.navigateByUrl(this.location.path(!0),{replaceUrl:!0})}setUpLocationChangeListener(){this.locationSubscription||(this.locationSubscription=this.location.subscribe(n=>{const r="popstate"===n.type?"popstate":"hashchange";"popstate"===r&&setTimeout(()=>{const o={replaceUrl:!0},i=n.state?.navigationId?n.state:null;if(n.state){const a={...n.state};delete a.navigationId,delete a.\u0275routerPageId,0!==Object.keys(a).length&&(o.state=a)}const s=this.parseUrl(n.url);this.scheduleNavigation(s,r,i,o)},0)}))}get url(){return this.serializeUrl(this.currentUrlTree)}getCurrentNavigation(){return this.navigationTransitions.currentNavigation}resetConfig(n){this.config=n.map(Df),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}createUrlTree(n,r={}){const{relativeTo:o,queryParams:i,fragment:s,queryParamsHandling:a,preserveFragment:l}=r,u=l?this.currentUrlTree.fragment:s;let c=null;switch(a){case"merge":c={...this.currentUrlTree.queryParams,...i};break;case"preserve":c=this.currentUrlTree.queryParams;break;default:c=i||null}return null!==c&&(c=this.removeEmptyProps(c)),this.urlCreationStrategy.createUrlTree(o,this.routerState,this.currentUrlTree,n,c,u??null)}navigateByUrl(n,r={skipLocationChange:!1}){const o=Cr(n)?n:this.parseUrl(n),i=this.urlHandlingStrategy.merge(o,this.rawUrlTree);return this.scheduleNavigation(i,"imperative",null,r)}navigate(n,r={skipLocationChange:!1}){return function VO(e){for(let t=0;t{const i=n[o];return null!=i&&(r[o]=i),r},{})}scheduleNavigation(n,r,o,i,s){if(this.disposed)return Promise.resolve(!1);let a,l,u,c;return s?(a=s.resolve,l=s.reject,u=s.promise):u=new Promise((d,g)=>{a=d,l=g}),"computed"===this.canceledNavigationResolution?(0===this.currentPageId&&(o=this.location.getState()),c=o&&o.\u0275routerPageId?o.\u0275routerPageId:i.replaceUrl||i.skipLocationChange?this.browserPageId??0:(this.browserPageId??0)+1):c=0,this.navigationTransitions.handleNavigationRequest({targetPageId:c,source:r,restoredState:o,currentUrlTree:this.currentUrlTree,currentRawUrl:this.currentUrlTree,rawUrl:n,extras:i,resolve:a,reject:l,promise:u,currentSnapshot:this.routerState.snapshot,currentRouterState:this.routerState}),u.catch(d=>Promise.reject(d))}setBrowserUrl(n,r){const o=this.urlSerializer.serialize(n),i={...r.extras.state,...this.generateNgRouterState(r.id,r.targetPageId)};this.location.isCurrentPathEqualTo(o)||r.extras.replaceUrl?this.location.replaceState(o,"",i):this.location.go(o,"",i)}restoreHistory(n,r=!1){if("computed"===this.canceledNavigationResolution){const o=this.currentPageId-n.targetPageId;"popstate"!==n.source&&"eager"!==this.urlUpdateStrategy&&this.currentUrlTree!==this.getCurrentNavigation()?.finalUrl||0===o?this.currentUrlTree===this.getCurrentNavigation()?.finalUrl&&0===o&&(this.resetState(n),this.browserUrlTree=n.currentUrlTree,this.resetUrlToCurrentUrlTree()):this.location.historyGo(o)}else"replace"===this.canceledNavigationResolution&&(r&&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,r){return"computed"===this.canceledNavigationResolution?{navigationId:n,\u0275routerPageId:r}:{navigationId:n}}}return e.\u0275fac=function(n){return new(n||e)},e.\u0275prov=F({token:e,factory:e.\u0275fac,providedIn:"root"}),e})(),On=(()=>{class e{constructor(n,r,o,i,s,a){this.router=n,this.route=r,this.tabIndexAttribute=o,this.renderer=i,this.el=s,this.locationStrategy=a,this._preserveFragment=!1,this._skipLocationChange=!1,this._replaceUrl=!1,this.href=null,this.commands=null,this.onChanges=new hn;const l=s.nativeElement.tagName;this.isAnchorElement="A"===l||"AREA"===l,this.isAnchorElement?this.subscription=n.events.subscribe(u=>{u instanceof Qn&&this.updateHref()}):this.setTabIndexIfNotOnNativeEl("0")}set preserveFragment(n){this._preserveFragment=po(n)}get preserveFragment(){return this._preserveFragment}set skipLocationChange(n){this._skipLocationChange=po(n)}get skipLocationChange(){return this._skipLocationChange}set replaceUrl(n){this._replaceUrl=po(n)}get replaceUrl(){return this._replaceUrl}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,r,o,i,s){return!!(null===this.urlTree||this.isAnchorElement&&(0!==n||r||o||i||s||"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 Qp(e,t,n){return function U0(e,t){return"src"===t&&("embed"===e||"frame"===e||"iframe"===e||"media"===e||"script"===e)||"href"===t&&("base"===e||"link"===e)?Xp:qs}(t,n)(e)}(this.href,this.el.nativeElement.tagName.toLowerCase(),"href");this.applyAttributeValue("href",n)}applyAttributeValue(n,r){const o=this.renderer,i=this.el.nativeElement;null!==r?o.setAttribute(i,n,r):o.removeAttribute(i,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.\u0275fac=function(n){return new(n||e)(S(pt),S(Dr),function Os(e){return function uE(e,t){if("class"===t)return e.classes;if("style"===t)return e.styles;const n=e.attrs;if(n){const r=n.length;let o=0;for(;o{class e{constructor(n,r,o,i,s){this.router=n,this.element=r,this.renderer=o,this.cdr=i,this.link=s,this.classes=[],this.isActive=!1,this.routerLinkActiveOptions={exact:!1},this.isActiveChange=new Ee,this.routerEventsSubscription=n.events.subscribe(a=>{a instanceof Qn&&this.update()})}ngAfterContentInit(){O(this.links.changes,O(null)).pipe(Sr()).subscribe(n=>{this.update(),this.subscribeToEachLinkOnChanges()})}subscribeToEachLinkOnChanges(){this.linkInputChangesSubscription?.unsubscribe();const n=[...this.links.toArray(),this.link].filter(r=>!!r).map(r=>r.onChanges);this.linkInputChangesSubscription=Me(n).pipe(Sr()).subscribe(r=>{this.isActive!==this.isLinkActive(this.router)(r)&&this.update()})}set routerLinkActive(n){const r=Array.isArray(n)?n:n.split(" ");this.classes=r.filter(o=>!!o)}ngOnChanges(n){this.update()}ngOnDestroy(){this.routerEventsSubscription.unsubscribe(),this.linkInputChangesSubscription?.unsubscribe()}update(){!this.links||!this.router.navigated||Promise.resolve().then(()=>{const n=this.hasActiveLinks();this.isActive!==n&&(this.isActive=n,this.cdr.markForCheck(),this.classes.forEach(r=>{n?this.renderer.addClass(this.element.nativeElement,r):this.renderer.removeClass(this.element.nativeElement,r)}),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 r=function UO(e){return!!e.paths}(this.routerLinkActiveOptions)?this.routerLinkActiveOptions:this.routerLinkActiveOptions.exact||!1;return o=>!!o.urlTree&&n.isActive(o.urlTree,r)}hasActiveLinks(){const n=this.isLinkActive(this.router);return this.link&&n(this.link)||this.links.some(n)}}return e.\u0275fac=function(n){return new(n||e)(S(pt),S(Dt),S(wn),S(Da),S(On,8))},e.\u0275dir=B({type:e,selectors:[["","routerLinkActive",""]],contentQueries:function(n,r,o){if(1&n&&Wy(o,On,5),2&n){let i;qy(i=function Ky(){return function mA(e,t){return e[19].queries[t].queryList}(b(),Ph())}())&&(r.links=i)}},inputs:{routerLinkActiveOptions:"routerLinkActiveOptions",ariaCurrentWhenActive:"ariaCurrentWhenActive",routerLinkActive:"routerLinkActive"},outputs:{isActiveChange:"isActiveChange"},exportAs:["routerLinkActive"],standalone:!0,features:[At]}),e})();class dw{}let HO=(()=>{class e{constructor(n,r,o,i,s){this.router=n,this.injector=o,this.preloadingStrategy=i,this.loader=s}setUpPreloading(){this.subscription=this.router.events.pipe(Xt(n=>n instanceof Qn),$n(()=>this.preload())).subscribe(()=>{})}preload(){return this.processRoutes(this.injector,this.router.config)}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}processRoutes(n,r){const o=[];for(const i of r){i.providers&&!i._injector&&(i._injector=fa(i.providers,n,`Route: ${i.path}`));const s=i._injector??n,a=i._loadedInjector??s;i.loadChildren&&!i._loadedRoutes&&void 0===i.canLoad||i.loadComponent&&!i._loadedComponent?o.push(this.preloadConfig(s,i)):(i.children||i._loadedRoutes)&&o.push(this.processRoutes(a,i.children??i._loadedRoutes))}return Me(o).pipe(Sr())}preloadConfig(n,r){return this.preloadingStrategy.preload(r,()=>{let o;o=r.loadChildren&&void 0===r.canLoad?this.loader.loadChildren(n,r):O(null);const i=o.pipe($e(s=>null===s?O(void 0):(r._loadedRoutes=s.routes,r._loadedInjector=s.injector,this.processRoutes(s.injector??n,s.routes))));return r.loadComponent&&!r._loadedComponent?Me([i,this.loader.loadComponent(r)]).pipe(Sr()):i})}}return e.\u0275fac=function(n){return new(n||e)(R(pt),R(_v),R(rn),R(dw),R(Mf))},e.\u0275prov=F({token:e,factory:e.\u0275fac,providedIn:"root"}),e})();const Af=new N("");let fw=(()=>{class e{constructor(n,r,o,i,s={}){this.urlSerializer=n,this.transitions=r,this.viewportScroller=o,this.zone=i,this.options=s,this.lastId=0,this.lastSource="imperative",this.restoredId=0,this.store={},s.scrollPositionRestoration=s.scrollPositionRestoration||"disabled",s.anchorScrolling=s.anchorScrolling||"disabled"}init(){"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.setHistoryScrollRestoration("manual"),this.routerEventsSubscription=this.createScrollEvents(),this.scrollEventsSubscription=this.consumeScrollEvents()}createScrollEvents(){return this.transitions.events.subscribe(n=>{n instanceof df?(this.store[this.lastId]=this.viewportScroller.getScrollPosition(),this.lastSource=n.navigationTrigger,this.restoredId=n.restoredState?n.restoredState.navigationId:0):n instanceof Qn&&(this.lastId=n.id,this.scheduleScrollEvent(n,this.urlSerializer.parse(n.urlAfterRedirects).fragment))})}consumeScrollEvents(){return this.transitions.events.subscribe(n=>{n instanceof RD&&(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,r){this.zone.runOutsideAngular(()=>{setTimeout(()=>{this.zone.run(()=>{this.transitions.events.next(new RD(n,"popstate"===this.lastSource?this.store[this.restoredId]:null,r))})},0)})}ngOnDestroy(){this.routerEventsSubscription?.unsubscribe(),this.scrollEventsSubscription?.unsubscribe()}}return e.\u0275fac=function(n){!function Ag(){throw new Error("invalid")}()},e.\u0275prov=F({token:e,factory:e.\u0275fac}),e})();function So(e,t){return{\u0275kind:e,\u0275providers:t}}function pw(){const e=Y(Bt);return t=>{const n=e.get(_a);if(t!==n.components[0])return;const r=e.get(pt),o=e.get(gw);1===e.get(xf)&&r.initialNavigation(),e.get(mw,null,U.Optional)?.setUpPreloading(),e.get(Af,null,U.Optional)?.init(),r.resetRootComponentType(n.componentTypes[0]),o.closed||(o.next(),o.unsubscribe())}}const gw=new N("",{factory:()=>new hn}),xf=new N("",{providedIn:"root",factory:()=>1});const mw=new N("");function zO(e){return So(0,[{provide:mw,useExisting:HO},{provide:dw,useExisting:e}])}const yw=new N("ROUTER_FORROOT_GUARD"),qO=[Jc,{provide:Vi,useClass:rf},pt,Gi,{provide:Dr,useFactory:function hw(e){return e.routerState.root},deps:[pt]},Mf,[]];function WO(){return new Mv("Router",pt)}let vw=(()=>{class e{constructor(n){}static forRoot(n,r){return{ngModule:e,providers:[qO,[],{provide:bo,multi:!0,useValue:n},{provide:yw,useFactory:QO,deps:[[pt,new zo,new qo]]},{provide:yl,useValue:r||{}},r?.useHash?{provide:gr,useClass:ST}:{provide:gr,useClass:Zv},{provide:Af,useFactory:()=>{const e=Y(Wx),t=Y(Ne),n=Y(yl),r=Y(If),o=Y(Vi);return n.scrollOffset&&e.setOffset(n.scrollOffset),new fw(o,r,e,t,n)}},r?.preloadingStrategy?zO(r.preloadingStrategy).\u0275providers:[],{provide:Mv,multi:!0,useFactory:WO},r?.initialNavigation?YO(r):[],[{provide:_w,useFactory:pw},{provide:vv,multi:!0,useExisting:_w}]]}}static forChild(n){return{ngModule:e,providers:[{provide:bo,multi:!0,useValue:n}]}}}return e.\u0275fac=function(n){return new(n||e)(R(yw,8))},e.\u0275mod=Lt({type:e}),e.\u0275inj=St({imports:[_f]}),e})();function QO(e){return"guarded"}function YO(e){return["disabled"===e.initialNavigation?So(3,[{provide:ma,multi:!0,useFactory:()=>{const t=Y(pt);return()=>{t.setUpLocationChangeListener()}}},{provide:xf,useValue:2}]).\u0275providers:[],"enabledBlocking"===e.initialNavigation?So(2,[{provide:xf,useValue:0},{provide:ma,multi:!0,deps:[Bt],useFactory:t=>{const n=t.get(bT,Promise.resolve());return()=>n.then(()=>new Promise(o=>{const i=t.get(pt),s=t.get(gw);(function r(o){t.get(pt).events.pipe(Xt(s=>s instanceof Qn||s instanceof ll||s instanceof xD),W(s=>s instanceof Qn||s instanceof ll&&(0===s.code||1===s.code)&&null),Xt(s=>null!==s),Mr(1)).subscribe(()=>{o()})})(()=>{o(!0)}),i.afterPreactivation=()=>(o(!0),s.closed?O(void 0):s),i.initialNavigation()}))}}]).\u0275providers:[]]}const _w=new N("");class ek{constructor(){this.name="",this.email="",this.message=""}}const je_apiBaseUrl="https://www.palmmedia.de/api/";class wr{constructor(t){this.httpClient=t}postContactForm(t){return this.httpClient.post(`${je_apiBaseUrl}contact`,t)}}function tk(e,t){if(1&e){const n=Ge();f(0,"form",5,6),P("ngSubmit",function(){return ue(n),ce(j().submit())}),f(2,"div",7)(3,"label",8),h(4,"Name "),f(5,"span",9),h(6,"*"),p()(),f(7,"input",10),P("ngModelChange",function(o){return ue(n),ce(j().contactViewModel.name=o)}),p()(),f(8,"div",7)(9,"label",11),h(10,"E-Mail "),f(11,"span",9),h(12,"*"),p()(),f(13,"input",12),P("ngModelChange",function(o){return ue(n),ce(j().contactViewModel.email=o)}),p()(),f(14,"div",7)(15,"label",13),h(16,"Nachricht "),f(17,"span",9),h(18,"*"),p()(),f(19,"textarea",14),P("ngModelChange",function(o){return ue(n),ce(j().contactViewModel.message=o)}),p()(),f(20,"button",15),h(21,"Submit"),p()()}if(2&e){const n=function om(e){return function Fr(e,t){return e[t]}(function $b(){return G.lFrame.contextLView}(),22+e)}(1),r=j();C(7),I("ngModel",r.contactViewModel.name),C(6),I("ngModel",r.contactViewModel.email),C(6),I("ngModel",r.contactViewModel.message),C(1),I("disabled",!n.valid||r.enableFormCountDown>0)}}function nk(e,t){1&e&&(f(0,"p"),h(1,"Thanks for your message."),p())}function rk(e,t){1&e&&(f(0,"p",16),h(1,"Something went wrong. Please try again later."),p())}wr.\u0275fac=function(t){return new(t||wr)(R(Ad))},wr.\u0275prov=F({token:wr,factory:wr.\u0275fac});class Qi{constructor(t){this.contactService=t,this.contactViewModel=new ek,this.success=!1,this.error=!1,this.enableFormCountDown=100,this.intervalId=null}ngOnInit(){this.intervalId=setInterval(()=>{this.enableFormCountDown-=1,0===this.enableFormCountDown&&clearInterval(this.intervalId)},50)}ngOnDestroy(){this.intervalId&&clearInterval(this.intervalId)}submit(){this.contactService.postContactForm(this.contactViewModel).subscribe({next:t=>{console.log("Submitted form"),this.success=!0},error:t=>{console.error(t),this.error=!0},complete:()=>console.info("complete")})}}Qi.\u0275fac=function(t){return new(t||Qi)(S(wr))},Qi.\u0275cmp=It({type:Qi,selectors:[["app-contact-component"]],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","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(t,n){1&t&&(f(0,"div",0)(1,"h1",1),h(2,"Contact"),p(),q(3,tk,22,4,"form",2),q(4,nk,2,0,"p",3),q(5,rk,2,0,"p",4),p()),2&t&&(C(3),I("ngIf",!n.success&&!n.error),C(1),I("ngIf",n.success),C(1),I("ngIf",n.error))},dependencies:[Pa,qd,Ii,Fd,Pd,Pi,Qa,Fi],styles:[".required[_ngcontent-%COMP%]{color:#1c8eb7}"]});const Ot={dotnetSDKVersion:"6.x",majorVersion:"5",version:"5.1.14"},ok=function(){return["/usage"]};class Yi{constructor(){this.versions=Ot}}Yi.\u0275fac=function(t){return new(t||Yi)},Yi.\u0275cmp=It({type:Yi,selectors:[["app-getstarted"]],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(t,n){1&t&&(f(0,"div",0)(1,"h1",1),h(2,"Get started"),p(),f(3,"h2"),h(4,"General"),p(),f(5,"p"),h(6,"In general you need a tool that instruments your test code and collects coverage information."),_(7,"br"),h(8,"This information is typically stored in a XML file (e.g. in Cobertura format)."),_(9,"br"),f(10,"em"),h(11,"ReportGenerator"),p(),h(12," uses this file and generates a report in HTML format (other formats are available)."),p(),f(13,"p"),h(14,"Use the online "),f(15,"a",2),h(16,"configuration tool"),p(),h(17," to get started quickly."),p(),f(18,"h2",3),h(19,".NET"),p(),f(20,"p"),h(21,"For .NET you can use "),f(22,"a",4),h(23,"coverlet"),p(),h(24," or "),f(25,"a",5),h(26,"altcover"),p(),h(27," for instrumenting your test code."),p(),f(28,"p"),h(29,"After adding the dependencies to your project, you can execute your tests and generate the coverage report."),p(),f(30,"p")(31,"strong"),h(32,"Add dependencies to your "),f(33,"code"),h(34,"*.csproj"),p(),h(35," file:"),p()(),f(36,"pre",6),h(37),p(),f(38,"p")(39,"strong"),h(40,"Execute tests and create coverage report"),p()(),f(41,"pre",6),h(42),p(),f(43,"h2",7),h(44,"Java"),p(),f(45,"p"),h(46,"For Java you can use "),f(47,"a",8),h(48,"JaCoCo"),p(),h(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(),f(50,"p")(51,"strong"),h(52,"Add dependencies to your "),f(53,"code"),h(54,"pom.xml"),p(),h(55," file:"),p()(),f(56,"pre",6),h(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(),f(58,"p")(59,"strong"),h(60,"Execute tests and create coverage report"),p()(),f(61,"pre",6),h(62),p(),f(63,"h2",9),h(64,"NodeJS"),p(),f(65,"p"),h(66,"For NodeJS you can use "),f(67,"a",10),h(68,"Istanbul"),p(),h(69," for instrumenting your test code.\nAfter installing Istanbul, you can execute your tests and generate the coverage report."),p(),f(70,"pre",6),h(71),p()()),2&t&&(C(15),I("routerLink",be(5,ok)),C(22),Mn('\n \n runtime; build; native; contentfiles; analyzers; buildtransitive\n all\n \n \n \n \n all\n runtime; build; native; contentfiles; analyzers\n \n\n'),C(5),Mn('dotnet test --collect:"XPlat Code Coverage"\n"%UserProfile%\\.nuget\\packages\\reportgenerator\\',n.versions.version,'\\tools\\net6.0\\ReportGenerator.exe" -reports:*\\TestResults\\*\\coverage.cobertura.xml -targetdir:coveragereport\n'),C(20),Mn("mvn test jacoco:report\n\ndotnet tool update dotnet-reportgenerator-globaltool --tool-path tools --version ",n.versions.version,"\ntools\\reportgenerator -reports:target\\site\\jacoco\\jacoco.xml -targetdir:coveragereport -sourcedirs:src\\main\\java\n"),C(9),Mn("npm i nyc --save-dev\nnyc --reporter=coberatura mocha\n\ndotnet tool update dotnet-reportgenerator-globaltool --tool-path tools --version ",n.versions.version,"\ntools\\reportgenerator -reports:coverage/cobertura-coverage.xml -targetdir:coveragereport\n"))},dependencies:[On]});const ik=function(){return["/pro"]},sk=function(){return["/usage"]},ak=function(){return["/getstarted"]};class Ji{}Ji.\u0275fac=function(t){return new(t||Ji)},Ji.\u0275cmp=It({type:Ji,selectors:[["app-home"]],decls:126,vars:6,consts:[[1,"container"],[1,"row"],[1,"col-4","col-md-3"],["src","resources/logo_512.png","alt","Logo ReportGenerator",1,"img-fluid"],[1,"col-xs-12","col-md-9"],[1,"mt-5"],[1,"line","btn-primary"],[1,"mt-4","h5"],[1,"pro-text"],[1,"row","mt-5"],[1,"col-sm-12","col-md-4"],[1,"icon"],[1,"fa-solid","fa-scale-balanced"],[1,"h6","mt-3"],["data-splitbee-event","Routing","data-splitbee-event-source","HomeComponent",3,"routerLink"],[1,"col-sm-12","col-md-4","mt-4","mt-md-0"],[1,"fa-solid","fa-lightbulb"],[3,"routerLink"],[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","bg-light"],[1,"text-center"],[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"],[1,"container-fluid","mt-5","pt-5","pb-5"],["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(t,n){1&t&&(f(0,"section",0)(1,"div",1)(2,"div",2),_(3,"img",3),p(),f(4,"div",4)(5,"h1"),h(6,"ReportGenerator"),p(),f(7,"h2",5),h(8,"Powerful code coverage visualization"),p(),f(9,"div",6),h(10,"\xa0"),p(),f(11,"div",7)(12,"p")(13,"i"),h(14,"ReportGenerator"),p(),h(15," converts "),f(16,"span",8),h(17,"coverage reports"),p(),h(18," generated by coverlet, OpenCover, dotCover, Visual Studio, NCover, Cobertura, JaCoCo, Clover, gcov or lcov into "),f(19,"span",8),h(20,"human readable reports in various formats"),p(),h(21,"."),p(),f(22,"p"),h(23,"The reports show the "),f(24,"span",8),h(25,"coverage quotas"),p(),h(26," and also visualize which lines of your source code have been covered."),p()()()(),f(27,"div",9)(28,"div",10)(29,"div",11),_(30,"i",12),p(),f(31,"div",13),h(32,"Open source"),p(),f(33,"p")(34,"i"),h(35,"ReportGenerator"),p(),h(36," is open source under the permissive Apache License."),p(),f(37,"p"),h(38,"It's free to use."),_(39,"br"),h(40,"The "),f(41,"a",14),h(42,"PRO"),p(),h(43," version offers additional features."),p()(),f(44,"div",15)(45,"div",11),_(46,"i",16),p(),f(47,"div",13),h(48,"Easy to use"),p(),f(49,"p")(50,"i"),h(51,"ReportGenerator"),p(),h(52," is a command line tool which only requires a "),f(53,"a",17),h(54,"few parameters"),p(),h(55,"."),p(),f(56,"p"),h(57,"Integration into your build pipeline will only take a couple of minutes."),p()(),f(58,"div",15)(59,"div",11),_(60,"i",18),p(),f(61,"div",13),h(62,"Integration"),p(),f(63,"p")(64,"i"),h(65,"ReportGenerator"),p(),h(66," works on Windows, Linux and macOS."),p(),f(67,"p"),h(68,"Support for "),f(69,"a",19),h(70,"GitHub actions"),p(),h(71," and "),f(72,"a",20),h(73,"Azure DevOps"),p(),h(74," is available."),p()()(),f(75,"div",9)(76,"div",21)(77,"a",22),_(78,"i",23),h(79," Learn how to use"),p(),f(80,"a",24),_(81,"i",25),h(82," GitHub"),p()()()(),f(83,"section",26)(84,"div",0)(85,"h2",27),h(86,"Trusted by"),p(),f(87,"div",9)(88,"div",28),_(89,"i",29)(90,"br"),f(91,"a",30),h(92,".NET Runtime"),p()(),f(93,"div",28),_(94,"i",31)(95,"br"),f(96,"a",32),h(97,"Google Cloud"),p()(),f(98,"div",28),_(99,"i",33)(100,"br"),f(101,"a",34),h(102,"AWS Encryption SDK"),p()(),f(103,"div",35),_(104,"i",36)(105,"br"),f(106,"a",37),h(107,"Many more"),p()()()()(),f(108,"section",38)(109,"div",0)(110,"h2"),h(111,"Screenshots"),p(),f(112,"p"),h(113,"The screenshots show two snippets of the generated reports."),p(),f(114,"p"),h(115," You can also download "),f(116,"a",39),h(117,"sample reports"),p(),h(118," of all supported output formats."),p(),f(119,"div",1)(120,"div",40)(121,"a",41),_(122,"img",42),p()(),f(123,"div",43)(124,"a",44),_(125,"img",45),p()()()()()),2&t&&(C(41),I("routerLink",be(3,ik)),C(12),I("routerLink",be(4,sk)),C(24),I("routerLink",be(5,ak)))},dependencies:[On],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,#1c7ed6 0%,#23b8cf 100%);height:50px;width:50px;border-radius:8px;text-align:center;color:#fff;line-height:50px;font-size:1.5rem}@media (max-width: 767px){section[_ngcontent-%COMP%]:first-of-type{padding-top:40px}}"]});class es{}es.\u0275fac=function(t){return new(t||es)},es.\u0275cmp=It({type:es,selectors:[["app-not-found"]],decls:5,vars:0,consts:[[1,"container"],[1,"mb-4"],[1,"fa-solid","fa-triangle-exclamation","fs-1","me-4"]],template:function(t,n){1&t&&(f(0,"div",0)(1,"h1",1),h(2,"Not found"),p(),_(3,"i",2),h(4," The requested page does not exist.\n"),p())}});class Cw{constructor(){this.error=null,this.isSponsor=!1,this.license=null}}class br{initCodeFlow(){const r=`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: "+r),location.href=r}validateStateAndExtractCode(){let t=location.href;const n=t.indexOf("?");n>-1&&(t=t.substring(n+1));const r=this.parseQueryString(t);return r.state&&r.code&&this.validateNonce(r.state)?r.code:null}createAndSaveNonce(){const t=this.createNonce();return typeof window.localStorage<"u"&&localStorage.setItem("nonce",t),t}validateNonce(t){let n;return typeof window.localStorage<"u"&&(n=localStorage.getItem("nonce"),localStorage.removeItem("nonce")),n&&0!==n.length?n===t||(console.error("Validating nonce failed. Values do not match.",n,t),!1):(console.error("Validating nonce failed. No saved nonce available.",n,t),!1)}createNonce(){const t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~";let n=45,r="";const o=typeof self>"u"?null:self.crypto||self.msCrypto;if(o){let s=new Uint8Array(n);o.getRandomValues(s),s.map||(s.map=Array.prototype.map);const a=[];for(var i=0;i0&&(l=decodeURIComponent(s),u=decodeURIComponent(a),"/"===l.substring(0,1)&&(l=l.substring(1)),n[l]=u);return n}base64UrlEncode(t){return btoa(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}}br.\u0275fac=function(t){return new(t||br)},br.\u0275prov=F({token:br,factory:br.\u0275fac});class Er{constructor(t){this.httpClient=t}getLicense(t){return this.httpClient.get(`${je_apiBaseUrl}reportgenerator/license?code=${encodeURIComponent(t)}`)}getPaddleLicense(t){return this.httpClient.post(`${je_apiBaseUrl}reportgenerator/paddlelicense`,t)}}function lk(e,t){1&e&&(f(0,"div",38)(1,"span",39),h(2,"Loading..."),p()())}Er.\u0275fac=function(t){return new(t||Er)(R(Ad))},Er.\u0275prov=F({token:Er,factory:Er.\u0275fac});const Rf=function(){return["/contact"]};function uk(e,t){if(1&e&&(f(0,"div")(1,"p"),h(2),p(),f(3,"p"),h(4,"Please try again later or use the "),f(5,"a",14),h(6," contact form"),p(),h(7,"."),p()()),2&e){const n=j(2);C(2),_e(n.license.error),C(3),I("routerLink",be(2,Rf))}}function ck(e,t){1&e&&(f(0,"div")(1,"p"),h(2,"Please become a "),f(3,"a",41),h(4,"GitHub sponsor"),p(),h(5," first."),p()())}function dk(e,t){1&e&&(f(0,"span"),_(1,"i",45),h(2," Copy"),p())}function fk(e,t){1&e&&(f(0,"span"),_(1,"i",46),h(2," Copied"),p())}function hk(e,t){if(1&e){const n=Ge();f(0,"div")(1,"label",42),h(2,"Thank you for becoming a sponsor. Here's your license:"),p(),f(3,"textarea",43),h(4),p(),f(5,"button",44),P("click",function(){return ue(n),ce(j(2).copy())}),q(6,dk,3,0,"span",40),q(7,fk,3,0,"span",40),p()()}if(2&e){const n=j(2);C(4),_e(n.license.license),C(2),I("ngIf",!n.licenseCopied),C(1),I("ngIf",n.licenseCopied)}}function pk(e,t){if(1&e&&(f(0,"div",17),q(1,uk,8,3,"div",40),q(2,ck,6,0,"div",40),q(3,hk,8,3,"div",40),p()),2&e){const n=j();C(1),I("ngIf",n.license.error),C(1),I("ngIf",!n.license.error&&!n.license.isSponsor),C(1),I("ngIf",!n.license.error&&n.license.isSponsor&&n.license.license)}}function gk(e,t){if(1&e){const n=Ge();f(0,"button",56),P("click",function(){return ue(n),ce(j(2).openPaddleCheckout("individual"))}),h(1,"Buy now"),p()}}function mk(e,t){1&e&&(f(0,"button",57),h(1,"Coming soon"),p())}function yk(e,t){if(1&e){const n=Ge();f(0,"button",58),P("click",function(){return ue(n),ce(j(2).openPaddleCheckout("team"))}),h(1,"Buy now"),p()}}function vk(e,t){1&e&&(f(0,"button",57),h(1,"Coming soon"),p())}function _k(e,t){if(1&e){const n=Ge();f(0,"button",59),P("click",function(){return ue(n),ce(j(2).openPaddleCheckout("enterprise"))}),h(1,"Buy now"),p()}}function Ck(e,t){1&e&&(f(0,"button",57),h(1,"Coming soon"),p())}function Dk(e,t){if(1&e&&(f(0,"div",2)(1,"div",47),_(2,"img",48),f(3,"h4",49),h(4,"Individual"),_(5,"br"),h(6),p(),f(7,"p"),h(8,"Annual - Per developer license."),p(),q(9,gk,2,0,"button",50),q(10,mk,2,0,"button",51),p(),f(11,"div",47),_(12,"img",52),f(13,"h4",49),h(14,"Team"),_(15,"br"),h(16),p(),f(17,"p"),h(18,"Annual - Up to 10 developers."),p(),q(19,yk,2,0,"button",53),q(20,vk,2,0,"button",51),p(),f(21,"div",47),_(22,"img",54),f(23,"h4",49),h(24,"Enterprise"),_(25,"br"),h(26),p(),f(27,"p"),h(28,"Annual - Unlimited developers."),p(),q(29,_k,2,0,"button",55),q(30,Ck,2,0,"button",51),p()()),2&e){const n=j();C(6),_e(n.paddleIndividualLicensePrice),C(3),I("ngIf",n.enablePaddle),C(1),I("ngIf",!n.enablePaddle),C(6),_e(n.paddleTeamLicensePrice),C(3),I("ngIf",n.enablePaddle),C(1),I("ngIf",!n.enablePaddle),C(6),_e(n.paddleEnterpriseLicensePrice),C(3),I("ngIf",n.enablePaddle),C(1),I("ngIf",!n.enablePaddle)}}function wk(e,t){1&e&&(io(0),f(1,"div",38)(2,"span",39),h(3,"Loading..."),p()(),f(4,"span",61),h(5,"Your license is being generated. Please wait."),p(),so())}function bk(e,t){if(1&e&&(f(0,"div")(1,"p"),h(2),p(),f(3,"p"),h(4,"Please try again later or use the "),f(5,"a",14),h(6," contact form"),p(),h(7,"."),p()()),2&e){const n=j(3);C(2),_e(n.paddleLicense.error),C(3),I("routerLink",be(2,Rf))}}function Ek(e,t){1&e&&(f(0,"span"),_(1,"i",45),h(2," Copy"),p())}function Sk(e,t){1&e&&(f(0,"span"),_(1,"i",46),h(2," Copied"),p())}function Mk(e,t){if(1&e){const n=Ge();f(0,"div")(1,"label",63),h(2,"Thank you for buying a license. Please save your license key persistently:"),p(),f(3,"textarea",64),h(4),p(),f(5,"button",44),P("click",function(){return ue(n),ce(j(3).copyPaddle())}),q(6,Ek,3,0,"span",40),q(7,Sk,3,0,"span",40),p()()}if(2&e){const n=j(3);C(4),_e(n.paddleLicense.license),C(2),I("ngIf",!n.paddleLicenseCopied),C(1),I("ngIf",n.paddleLicenseCopied)}}function Ik(e,t){if(1&e&&(f(0,"div",62),q(1,bk,8,3,"div",40),q(2,Mk,8,3,"div",40),p()),2&e){const n=j(2);C(1),I("ngIf",n.paddleLicense.error),C(1),I("ngIf",!n.paddleLicense.error&&n.paddleLicense.license)}}function Ak(e,t){if(1&e&&(f(0,"div",2),q(1,wk,6,0,"ng-container",40),q(2,Ik,3,2,"div",60),p()),2&e){const n=j();C(1),I("ngIf",n.paddleLicenseRequested&&!n.paddleLicense),C(1),I("ngIf",n.paddleLicense)}}class ts{constructor(t,n){this.oauthService=t,this.licenseService=n,this.paddleIndividualLicensePrice="US$49",this.paddleTeamLicensePrice="US$149",this.paddleEnterpriseLicensePrice="US$299",this.licenseRequested=!1,this.licenseCopied=!1,this.license=null,this.enablePaddle=!0,this.paddleLicenseRequested=!1,this.paddleLicenseCopied=!1,this.paddleLicense=null,this.self=this,window.paddleCheckoutComplete=r=>{this.paddleCheckoutComplete(r)},window.Paddle.Setup({vendor:144162}),window.Paddle.Product.Prices(762579,r=>{this.paddleIndividualLicensePrice=r.recurring.price.gross}),window.Paddle.Product.Prices(762580,r=>{this.paddleTeamLicensePrice=r.recurring.price.gross}),window.Paddle.Product.Prices(762581,r=>{this.paddleEnterpriseLicensePrice=r.recurring.price.gross})}ngOnInit(){const t=this.oauthService.validateStateAndExtractCode();null!==t?(console.log("Code received",t),this.licenseRequested=!0,this.licenseService.getLicense(t).subscribe({next:n=>{console.log("Received license response"),this.license=n,this.scrollToGithub();try{window.splitbee?.track("GitHub_LicenceCreated")}catch{}},error:n=>{console.error(n),this.license=new Cw,this.license.error="Unable to generate license."},complete:()=>console.info("complete")})):console.log("No code available")}requestLicense(){this.licenseRequested=!0,this.oauthService.initCodeFlow()}copy(){try{navigator.clipboard.writeText(this.license.license),this.licenseCopied=!0}catch(t){console.error("Failed to copy license",t)}}copyPaddle(){try{navigator.clipboard.writeText(this.paddleLicense.license),this.paddleLicenseCopied=!0}catch(t){console.error("Failed to copy paddle license",t)}}scrollToGithub(){return document.querySelector("#github").scrollIntoView(!0),!1}scrollToPaddle(){return document.querySelector("#paddle").scrollIntoView(!0),!1}openPaddleCheckout(t){"enterprise"===t?window.Paddle.Checkout.open({product:762581,successCallback:"paddleCheckoutComplete"}):"team"===t?window.Paddle.Checkout.open({product:762580,successCallback:"paddleCheckoutComplete"}):window.Paddle.Checkout.open({product:762579,successCallback:"paddleCheckoutComplete"})}paddleCheckoutComplete(t){console.log("Checkout completed",t),this.paddleLicenseRequested=!0,this.licenseService.getPaddleLicense(t).subscribe({next:n=>{console.log("Received paddle license response"),this.paddleLicense=n,this.scrollToPaddle();try{window.splitbee?.track("Paddle_LicenceCreated")}catch{}},error:n=>{console.error(n),this.paddleLicense=new Cw,this.paddleLicense.error="Unable to generate paddle license."},complete:()=>console.info("complete")})}}ts.\u0275fac=function(t){return new(t||ts)(S(br),S(Er))},ts.\u0275cmp=It({type:ts,selectors:[["app-pro-component"]],decls:136,vars:7,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"],[1,"text-center"],[1,"fa-solid","fa-circle-check","text-secondary"],[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","data-splitbee-event","GitHub_BecomeSponsor",1,"btn","btn-outline-dark"],[1,"fa-solid","fa-heart","githubheart"],["type","button","data-splitbee-event","GitHub_GetLicense",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-xs-12 col-md-6 pb-3",4,"ngIf"],["id","paddle"],["class","row",4,"ngIf"],[1,"mt-5"],["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"],["role","status",1,"spinner-border","text-info"],[1,"visually-hidden"],[4,"ngIf"],["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,"col-xs-6","col-md-4","pb-3","text-center"],["src","resources/individual.svg","alt","Individual",1,"img-fluid"],[1,"mt-3"],["type","button","class","btn btn-primary","data-splitbee-event","Paddle_ChoosePlan","data-splitbee-event-planType","Individual",3,"click",4,"ngIf"],["type","button","class","btn btn-primary","disabled","",4,"ngIf"],["src","resources/team.svg","alt","Team",1,"img-fluid"],["type","button","class","btn btn-primary","data-splitbee-event","Paddle_ChoosePlan","data-splitbee-event-planType","Team",3,"click",4,"ngIf"],["src","resources/enterprise.svg","alt","Enterprise",1,"img-fluid"],["type","button","class","btn btn-primary","data-splitbee-event","Paddle_ChoosePlan","data-splitbee-event-planType","Enterprise",3,"click",4,"ngIf"],["type","button","data-splitbee-event","Paddle_ChoosePlan","data-splitbee-event-planType","Individual",1,"btn","btn-primary",3,"click"],["type","button","disabled","",1,"btn","btn-primary"],["type","button","data-splitbee-event","Paddle_ChoosePlan","data-splitbee-event-planType","Team",1,"btn","btn-primary",3,"click"],["type","button","data-splitbee-event","Paddle_ChoosePlan","data-splitbee-event-planType","Enterprise",1,"btn","btn-primary",3,"click"],["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"],["id","paddlelicensetext","rows","5","readonly","",1,"form-control","mt-2"]],template:function(t,n){1&t&&(f(0,"div",0)(1,"h1",1),h(2,"PRO"),p(),f(3,"div",2)(4,"div",3)(5,"table",4)(6,"thead")(7,"tr"),_(8,"th",5),f(9,"th",6),h(10,"Free"),p(),f(11,"th",6)(12,"span",7),h(13,"PRO"),p()()()(),f(14,"tbody")(15,"tr")(16,"th",8),h(17,"Metrics"),p(),f(18,"td",9),_(19,"i",10),p(),f(20,"td",9),_(21,"i",10),p()(),f(22,"tr")(23,"th",8),h(24,"Risk Hotspots"),p(),f(25,"td",9),_(26,"i",10),p(),f(27,"td",9),_(28,"i",10),p()(),f(29,"tr")(30,"th",8),h(31,"Line coverage"),p(),f(32,"td",9),_(33,"i",10),p(),f(34,"td",9),_(35,"i",10),p()(),f(36,"tr")(37,"th",8),h(38,"Branch coverage"),p(),f(39,"td",9),_(40,"i",10),p(),f(41,"td",9),_(42,"i",10),p()(),f(43,"tr")(44,"th",8),h(45,"Method coverage"),p(),_(46,"td",9),f(47,"td",9),_(48,"i",11),p()()()()(),f(49,"div",12)(50,"p")(51,"i"),h(52,"ReportGenerator"),p(),h(53," is Open Source and free to use."),_(54,"br"),h(55," Some of the advanced features require a PRO license. "),p(),f(56,"p"),h(57," You can either become a "),f(58,"a",13),P("click",function(){return n.scrollToGithub()}),h(59,"GitHub sponsor"),p(),h(60," or you can "),f(61,"a",13),P("click",function(){return n.scrollToPaddle()}),h(62,"buy a license"),p(),h(63,"."),_(64,"br"),p(),f(65,"p"),h(66," Get "),f(67,"a",14),h(68,"in touch"),p(),h(69," if you have any issues and we will figure it out. "),p()()(),_(70,"div",15),p(),f(71,"section",16)(72,"div",0)(73,"h2",1),h(74,"Get your license as a sponsor"),p(),f(75,"div",2)(76,"div",17)(77,"p"),h(78,"You can obtain your license in two easy steps (no sign up required):"),p(),f(79,"span",18),h(80,"1."),p(),f(81,"a",19),_(82,"i",20),h(83," Become a GitHub sponsor"),p(),_(84,"br"),f(85,"span",18),h(86,"2."),p(),f(87,"button",21),P("click",function(){return n.requestLicense()}),_(88,"i",22),h(89," Get license"),p(),q(90,lk,3,0,"div",23),p(),q(91,pk,4,3,"div",24),p()(),_(92,"div",25),p(),f(93,"section",16)(94,"div",0)(95,"h2",1),h(96,"Buy a license"),p(),q(97,Dk,31,9,"div",26),q(98,Ak,3,2,"div",26),f(99,"div",27)(100,"p")(101,"i"),h(102,"ReportGenerator"),p(),h(103," licence purchases are provided with a 30 day money back guarantee."),p(),f(104,"p"),h(105,"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()()()(),f(106,"section",28)(107,"h2",1),h(108,"Frequently Asked Questions"),p(),f(109,"div",29)(110,"div",30)(111,"h2",31)(112,"button",32),h(113," Are there limitations on number of users? "),p()(),f(114,"div",33)(115,"div",34)(116,"b"),h(117,"GitHub sponsors"),p(),_(118,"br"),f(119,"p"),h(120,"There's no enforced limit. Just pick a sponsor level that fits your company size and budget."),p(),f(121,"b"),h(122,"Bought license"),p(),_(123,"br"),f(124,"p"),h(125,"There's no enforced limit. Please choose a plan that matches the number of developers using "),f(126,"i"),h(127,"ReportGenerator"),p(),h(128,"."),p()()()(),f(129,"div",30)(130,"h2",35)(131,"button",36),h(132," Will my license expire? "),p()(),f(133,"div",37)(134,"div",34),h(135," Your license will not expire. "),p()()()()()),2&t&&(C(67),I("routerLink",be(6,Rf)),C(20),I("disabled",n.licenseRequested),C(3),I("ngIf",n.licenseRequested&&!n.license),C(1),I("ngIf",n.license),C(6),I("ngIf",!n.paddleLicenseRequested),C(1),I("ngIf",n.paddleLicenseRequested))},dependencies:[Pa,On],styles:[".number[_ngcontent-%COMP%]{display:inline-block;position:relative;top:8px}.spinner-border[_ngcontent-%COMP%]{position:relative;top:9px}"]});class vl{constructor(t,n,r,o,i,s){this.name=t,this.url=n,this.runtimes=r,this.description=o,this.installOptions=i,this.executables=s}formatExecutable(t){return t.tool}formatArgument(t,n){if(""===(n=n.trim()))return"";const r=n.indexOf(" ")>-1?'"':"";return`\r\n${r}-${t}:${n}${r}`}formatArguments(t,n){return this.formatArgument(t,n.filter(r=>null!=r&&0!==r.length&&0!==r.trim().length).join(";"))}}class Tk extends vl{formatExecutable(t){let n=`- task: ${t.tool}@${Ot.majorVersion}`;return n+="\r\n displayName: ReportGenerator",n+="\r\n inputs:",console.log("hello",n),n}formatArgument(t,n){if(""===(n=n.trim()))return"";const r=n.indexOf(" ")>-1?"'":"";return`\r\n ${t}: ${r}${n}${r}`}}class xk{constructor(){this.verbosities=["Verbose","Info","Warning","Error","Off"],this.reports=["cobertura.xml"],this.targetdir="coveragereport",this.reporttypes=[{name:"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",description:"Same as Html but with a light theme.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/Html_Light/index.html"},{name:"Html_Dark",description:"Same as Html but with a dark theme.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/Html_Dark/index.html"},{name:"HtmlSummary",description:"Creates a single HTML file (summary.html) without links.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/HtmlSummary/summary.html"},{name:"HtmlChart",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",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",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",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",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",description:"Same as HTML but packaged into a single MHTML file.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/MHtml/Summary.mht"},{name:"Clover",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",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:"SonarQube",description:"Creates a XML file in SonarQube 'Generic Test Data' format.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/SonarQube/SonarQube.xml"},{name:"lcov",description:"Creates a text file in 'lcov' format.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/lcov/lcov.info"},{name:"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",description:"Creates a single XML file containing a summary for all classes.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/XmlSummary/Summary.xml"},{name:"JsonSummary",description:"Creates a single JSON file containing a summary for all classes.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/JsonSummary/Summary.json"},{name:"Latex",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",description:"Creates a single TEX file containing a summary for all classes.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/LatexSummary/Summary.tex"},{name:"TeamCitySummary",description:"Command line output interpreted by TeamCity.",requiresHistoryDir:!1,checked:!1,sampleReport:null},{name:"TextSummary",description:"Creates a single TXT file containing coverage information per class.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/TextSummary/Summary.txt"},{name:"TextDeltaSummary",description:"Creates a single TXT file containing delta coverage information.",requiresHistoryDir:!0,checked:!1,sampleReport:"resources/reports/TextDeltaSummary/DeltaSummary.txt"},{name:"CsvSummary",description:"Creates a single CSV file containing coverage information per class.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/CsvSummary/Summary.csv"},{name:"MarkdownSummary",description:"Creates a single Markdown file containing coverage information per class.",requiresHistoryDir:!1,checked:!1,sampleReport:"resources/reports/MarkdownSummary/Summary.md"},{name:"MarkdownSummaryGithub",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/Summary.md"},{name:"MarkdownDeltaSummary",description:"Creates a single Markdown file containing delta coverage information.",requiresHistoryDir:!0,checked:!1,sampleReport:"resources/reports/MarkdownDeltaSummary/DeltaSummary.md"},{name:"PngChart",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",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[0],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,n){const r=t.executables.find(a=>a.runtime==n);let o=void 0!==r?t.formatExecutable(r):"";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),"Verbose"!==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}: ${r}${n}${r}`}}class Nf{constructor(t,n){this.tool=t,this.command=n}}function Nk(e,t){if(1&e){const n=Ge();f(0,"div",33)(1,"label",34)(2,"input",35),P("ngModelChange",function(o){return ue(n),ce(j().selectedEnvironment=o)})("ngModelChange",function(){return ue(n),ce(j().selectedEnvironmentChanged())}),p(),f(3,"b"),h(4),p(),_(5,"br"),f(6,"div",36),h(7),p()()()}if(2&e){const n=t.$implicit,r=j();C(2),I("ngModel",r.selectedEnvironment)("value",n)("checked",r.selectedEnvironment.name===n.name),C(2),_e(n.name),C(3),_e(n.description)}}function Fk(e,t){if(1&e){const n=Ge();f(0,"div",33)(1,"label",34)(2,"input",39),P("ngModelChange",function(o){return ue(n),ce(j(3).selectedPackage=o)}),p(),f(3,"b"),h(4),p(),_(5,"br"),f(6,"div",36),h(7),p()()()}if(2&e){const n=j().$implicit,r=j(2);C(2),I("ngModel",r.selectedPackage)("value",n),C(2),_e(n.name),C(3),_e(n.description)}}function Pk(e,t){if(1&e&&(io(0),q(1,Fk,8,4,"div",38),so()),2&e){const n=t.$implicit,r=j(2);C(1),I("ngIf",n.runtimes.indexOf(r.selectedEnvironment.name)>-1)}}function Ok(e,t){if(1&e&&(io(0),f(1,"h4"),h(2,"NuGet Package"),p(),q(3,Pk,2,1,"ng-container",37),so()),2&e){const n=j();C(3),I("ngForOf",n.packages)}}function kk(e,t){if(1&e){const n=Ge();f(0,"span",43),P("click",function(){ue(n);const o=j().index;return ce(j().configuration.removeReport(o))}),f(1,"a",44),_(2,"i",45),p()()}}const Lk=function(e){return{"input-group":e}};function Vk(e,t){if(1&e){const n=Ge();f(0,"div",36)(1,"div",40)(2,"input",41),P("ngModelChange",function(o){const s=ue(n).index;return ce(j().configuration.reports[s]=o)}),p(),q(3,kk,3,0,"span",42),p()()}if(2&e){const n=t.index,r=j();C(1),I("ngClass",bc(4,Lk,n>0)),C(1),Sn("name","report_",n,""),I("ngModel",r.configuration.reports[n]),C(1),I("ngIf",n>0)}}function Uk(e,t){if(1&e){const n=Ge();f(0,"span",48),_(1,"i",49),h(2," Please specify a "),f(3,"a",9),P("click",function(){return ue(n),ce(j(2).scrollToHistoryDir())}),h(4,"history directory"),p()()}}function Hk(e,t){if(1&e){const n=Ge();f(0,"div",33)(1,"label",34)(2,"input",46),P("change",function(){const i=ue(n).$implicit;return ce(i.checked=!i.checked)}),p(),f(3,"b"),h(4),p(),q(5,Uk,5,0,"span",47),_(6,"br"),f(7,"div",36),h(8),p()()()}if(2&e){const n=t.$implicit,r=j();C(2),I("checked",n.checked),C(2),_e(n.name),C(1),I("ngIf",n.checked&&n.requiresHistoryDir&&!r.configuration.historydir),C(3),Mn("",n.description," ")}}function jk(e,t){if(1&e){const n=Ge();f(0,"div",8)(1,"div",50)(2,"input",51),P("ngModelChange",function(o){const s=ue(n).index;return ce(j().configuration.sourcedirectories[s]=o)}),p(),f(3,"span",43),P("click",function(){const i=ue(n).index;return ce(j().configuration.removeSourceDirectory(i))}),f(4,"a",44),_(5,"i",45),p()()()()}if(2&e){const n=t.index,r=j();C(2),Sn("name","sourcedir_",n,""),I("ngModel",r.configuration.sourcedirectories[n])}}function Bk(e,t){if(1&e){const n=Ge();f(0,"div",8)(1,"div",50)(2,"input",52),P("ngModelChange",function(o){const s=ue(n).index;return ce(j().configuration.plugins[s]=o)}),p(),f(3,"span",43),P("click",function(){const i=ue(n).index;return ce(j().configuration.removePlugin(i))}),f(4,"a",44),_(5,"i",45),p()()()()}if(2&e){const n=t.index,r=j();C(2),Sn("name","plugin_",n,""),I("ngModel",r.configuration.plugins[n])}}function $k(e,t){if(1&e){const n=Ge();f(0,"div",8)(1,"div",50)(2,"input",53),P("ngModelChange",function(o){const s=ue(n).index;return ce(j().configuration.assemblyfilters[s]=o)}),p(),f(3,"span",43),P("click",function(){const i=ue(n).index;return ce(j().configuration.removeAssemblyFilter(i))}),f(4,"a",44),_(5,"i",45),p()()()()}if(2&e){const n=t.index,r=j();C(2),Sn("name","assemblyfilter_",n,""),I("ngModel",r.configuration.assemblyfilters[n])}}function Gk(e,t){if(1&e){const n=Ge();f(0,"div",8)(1,"div",50)(2,"input",54),P("ngModelChange",function(o){const s=ue(n).index;return ce(j().configuration.classfilters[s]=o)}),p(),f(3,"span",43),P("click",function(){const i=ue(n).index;return ce(j().configuration.removeClassFilter(i))}),f(4,"a",44),_(5,"i",45),p()()()()}if(2&e){const n=t.index,r=j();C(2),Sn("name","classfilter_",n,""),I("ngModel",r.configuration.classfilters[n])}}function zk(e,t){if(1&e){const n=Ge();f(0,"div",8)(1,"div",50)(2,"input",55),P("ngModelChange",function(o){const s=ue(n).index;return ce(j().configuration.filefilters[s]=o)}),p(),f(3,"span",43),P("click",function(){const i=ue(n).index;return ce(j().configuration.removeFileFilter(i))}),f(4,"a",44),_(5,"i",45),p()()()()}if(2&e){const n=t.index,r=j();C(2),Sn("name","filefilter_",n,""),I("ngModel",r.configuration.filefilters[n])}}function qk(e,t){if(1&e&&(f(0,"option",56),h(1),p()),2&e){const n=t.$implicit;I("value",n),C(1),_e(n)}}function Wk(e,t){if(1&e&&(f(0,"div",57)(1,"b"),h(2),p(),_(3,"br"),f(4,"pre",30),h(5),p()()),2&e){const n=t.$implicit;C(2),_e(n.tool),C(3),_e(n.command)}}function Kk(e,t){if(1&e&&(f(0,"div",57)(1,"b"),h(2),p(),_(3,"br"),f(4,"pre",30),h(5),p()()),2&e){const n=t.$implicit;C(2),_e(n.tool),C(3),_e(n.command)}}function Zk(e,t){1&e&&(f(0,"span"),_(1,"i",58),h(2," Copy"),p())}function Xk(e,t){1&e&&(f(0,"span"),_(1,"i",59),h(2," Copied"),p())}const Qk=function(){return["/pro"]};class rs{constructor(){this.versions=Ot,this.lastResult="",this.usageCopied=!1,this.configuration=new xk,this.environments=[new _l(".NET Core",".NET Core"),new _l(".NET Framework","The full .NET framework"),new _l("Azure DevOps",null),new _l("Github Action",null)],this.packages=[new vl("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 Nf("Package Manager",`Install-Package ReportGenerator -Version ${Ot.version}`),new Nf(".NET CLI",`dotnet add package ReportGenerator --version ${Ot.version}`)],[new ns(".NET Framework",`$(UserProfile)\\.nuget\\packages\\reportgenerator\\${Ot.version}\\tools\\net47\\ReportGenerator.exe`),new ns(".NET Core",`dotnet $(UserProfile)\\.nuget\\packages\\reportgenerator\\${Ot.version}\\tools\\net6.0\\ReportGenerator.dll`)]),new vl("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 Nf(".NET CLI",`dotnet tool install --global dotnet-reportgenerator-globaltool --version ${Ot.version}\r\n\r\ndotnet tool install dotnet-reportgenerator-globaltool --tool-path tools --version ${Ot.version}\r\n\r\ndotnet new tool-manifest\r\ndotnet tool install dotnet-reportgenerator-globaltool --version ${Ot.version}`)],[new ns(".NET Core","reportgenerator")]),new Tk("Azure DevOps","https://marketplace.visualstudio.com/items?itemName=Palmmedia.reportgenerator",["Azure DevOps"],"Use this package within Azure DevOps",[],[new ns("Azure DevOps","reportgenerator")]),new Rk("GitHub Action","https://github.com/marketplace/actions/reportgenerator",["Github Action"],"Use this package within Github Actions",[],[new ns("Github Action","danielpalme/ReportGenerator-GitHub-Action")])],this.selectedEnvironment=this.environments[0],this.selectedPackage=this.packages[0]}selectedEnvironmentChanged(){this.selectedPackage=this.packages.find(t=>t.runtimes.indexOf(this.selectedEnvironment.name)>-1)}severalPackagesAvailable(){return this.packages.filter(t=>t.runtimes.indexOf(this.selectedEnvironment.name)>-1).length>1}getUsage(){const t=this.configuration.getUsage(this.selectedPackage,this.selectedEnvironment.name);return this.lastResult!==t&&(this.lastResult=t,this.usageCopied=!1),t}copy(){try{navigator.clipboard.writeText(this.getUsage()),this.usageCopied=!0}catch(t){console.error("Failed to copy license",t)}}scrollToHistoryDir(){return document.querySelector("#historydir").scrollIntoView(!0),!1}trackByIndex(t,n){return t}}rs.\u0275fac=function(t){return new(t||rs)},rs.\u0275cmp=It({type:rs,selectors:[["app-usage-component"]],decls:212,vars:37,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"],["class","form-check",4,"ngFor","ngForOf","ngForTrackBy"],["class","input-group mb-3",4,"ngFor","ngForOf","ngForTrackBy"],["id","historydir",1,"input-group","mb-3"],["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,"d-none","d-md-block","sticky"],[1,"btn","btn-outline-dark","mt-2",3,"click"],[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","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,"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(t,n){1&t&&(f(0,"div",0)(1,"h1",1),h(2,"Usage"),p(),f(3,"div",2)(4,"div",3)(5,"form")(6,"h3"),h(7,"Environment"),p(),q(8,Nk,8,5,"div",4),_(9,"hr"),q(10,Ok,4,1,"ng-container",5),_(11,"hr"),f(12,"h3"),h(13,"Reports"),p(),f(14,"div",6),h(15,"Path to the coverage report(s) that should be parsed."),_(16,"br"),h(17,"Globbing is supported."),p(),q(18,Vk,4,6,"div",7),f(19,"div",8)(20,"a",9),P("click",function(){return n.configuration.addReport()}),_(21,"i",10),h(22," Add report"),p()(),_(23,"br"),f(24,"h3"),h(25,"Target directory"),p(),f(26,"div",6),h(27,"The directory where the generated report(s) should be saved."),p(),f(28,"div",8)(29,"input",11),P("ngModelChange",function(o){return n.configuration.targetdir=o}),p()(),_(30,"br"),f(31,"h3"),h(32,"Report types"),p(),f(33,"div",6),h(34,"Download "),f(35,"a",12),h(36,"sample reports"),p()(),q(37,Hk,9,4,"div",13),f(38,"h3"),h(39,"Source directories"),p(),f(40,"div",6),h(41,"Optional directories which contain the corresponding source code."),_(42,"br"),h(43,"The source directories are used if coverage report contains classes without path information."),p(),q(44,jk,6,2,"div",14),f(45,"div",15)(46,"a",9),P("click",function(){return n.configuration.addSourceDirectory()}),_(47,"i",10),h(48," Add source directory"),p()(),_(49,"br"),f(50,"h3"),h(51,"History directory"),p(),f(52,"div",6),h(53,"Optional directory for storing "),f(54,"b"),h(55,"persistent"),p(),h(56," coverage information. Choose a directory which does not get deleted between builds."),_(57,"br"),h(58,"Required to show the history chart in the HTML reports."),p(),f(59,"div",8)(60,"input",16),P("ngModelChange",function(o){return n.configuration.historydir=o}),p()(),_(61,"br"),f(62,"h3"),h(63,"Plugins"),p(),f(64,"div",6),h(65,"Optional plugin files for "),f(66,"a",17),h(67,"custom reports"),p(),h(68," or "),f(69,"a",18),h(70,"custom history storage"),p(),h(71,"."),p(),q(72,Bk,6,2,"div",14),f(73,"div",8)(74,"a",9),P("click",function(){return n.configuration.addPlugin()}),_(75,"i",10),h(76," Add plugin"),p()(),_(77,"br"),f(78,"h3"),h(79,"Assembly filters"),p(),f(80,"div",6),h(81,"Optional list of "),f(82,"b"),h(83,"assemblies"),p(),h(84," that should be included or excluded in the report. "),_(85,"br"),h(86,"Exclusion filters take precedence over inclusion filters. "),_(87,"br"),h(88,"Wildcards are allowed."),_(89,"br"),f(90,"p"),h(91,"Examples:"),_(92,"br"),f(93,"code"),h(94,"+Included"),p(),_(95,"br"),f(96,"code"),h(97,"-Excluded"),p()()(),q(98,$k,6,2,"div",14),f(99,"div",8)(100,"a",9),P("click",function(){return n.configuration.addAssemblyFilter()}),_(101,"i",10),h(102," Add assembly filter"),p()(),_(103,"br"),f(104,"h3"),h(105,"Class filters"),p(),f(106,"div",6),h(107,"Optional list of "),f(108,"b"),h(109,"classes"),p(),h(110," that should be included or excluded in the report. "),_(111,"br"),h(112,"Exclusion filters take precedence over inclusion filters. "),_(113,"br"),h(114,"Wildcards are allowed."),_(115,"br"),f(116,"p"),h(117,"Examples:"),_(118,"br"),f(119,"code"),h(120,"+Included"),p(),_(121,"br"),f(122,"code"),h(123,"-Excluded"),p()()(),q(124,Gk,6,2,"div",14),f(125,"div",8)(126,"a",9),P("click",function(){return n.configuration.addClassFilter()}),_(127,"i",10),h(128," Add class filter"),p()(),_(129,"br"),f(130,"h3"),h(131,"File filters"),p(),f(132,"div",6),h(133,"Optional list of "),f(134,"b"),h(135,"files"),p(),h(136," that should be included or excluded in the report. "),_(137,"br"),h(138,"Exclusion filters take precedence over inclusion filters. "),_(139,"br"),h(140,"Wildcards are allowed."),_(141,"br"),f(142,"p"),h(143,"Examples:"),_(144,"br"),f(145,"code"),h(146,"+Included"),p(),_(147,"br"),f(148,"code"),h(149,"-Excluded"),p()()(),q(150,zk,6,2,"div",14),f(151,"div",8)(152,"a",9),P("click",function(){return n.configuration.addFileFilter()}),_(153,"i",10),h(154," Add file filter"),p()(),_(155,"br"),f(156,"h3"),h(157,"Verbosity"),p(),f(158,"div",6),h(159,"The verbosity level of the log messages."),p(),f(160,"div",8)(161,"select",19),P("ngModelChange",function(o){return n.configuration.selectedverbosity=o}),q(162,qk,2,2,"option",20),p()(),_(163,"br"),f(164,"h3"),h(165,"Title"),p(),f(166,"div",6),h(167,"Optional title."),p(),f(168,"div",8)(169,"input",21),P("ngModelChange",function(o){return n.configuration.title=o}),p()(),_(170,"br"),f(171,"h3"),h(172,"Tag"),p(),f(173,"div",6),h(174,"Optional tag or build version."),p(),f(175,"div",8)(176,"input",22),P("ngModelChange",function(o){return n.configuration.tag=o}),p()(),_(177,"br"),f(178,"h3"),h(179,"License"),p(),f(180,"div",6),h(181,"Optional license. Get your license here: "),f(182,"a",23),h(183,"https://reportgenerator.io/pro"),p()(),f(184,"div",8)(185,"textarea",24),P("ngModelChange",function(o){return n.configuration.license=o}),p()()()(),f(186,"div",25)(187,"div",26)(188,"h3"),h(189,"Instructions"),p(),h(190," Install "),f(191,"a",27),h(192),p(),q(193,Wk,6,2,"div",28),f(194,"h4",29),h(195,"Usage"),p(),f(196,"pre",30),h(197),p()(),f(198,"div",31)(199,"h3"),h(200,"Instructions"),p(),h(201," Install "),f(202,"a",27),h(203),p(),q(204,Kk,6,2,"div",28),f(205,"h4",29),h(206,"Usage"),p(),f(207,"pre",30),h(208),p(),f(209,"button",32),P("click",function(){return n.copy()}),q(210,Zk,3,0,"span",5),q(211,Xk,3,0,"span",5),p()()()()()),2&t&&(C(8),I("ngForOf",n.environments),C(2),I("ngIf",n.severalPackagesAvailable()),C(8),I("ngForOf",n.configuration.reports)("ngForTrackBy",n.trackByIndex),C(11),I("ngModel",n.configuration.targetdir),C(8),I("ngForOf",n.configuration.reporttypes)("ngForTrackBy",n.trackByIndex),C(7),I("ngForOf",n.configuration.sourcedirectories)("ngForTrackBy",n.trackByIndex),C(16),I("ngModel",n.configuration.historydir)("required",n.configuration.historyDirRequired()),C(12),I("ngForOf",n.configuration.plugins)("ngForTrackBy",n.trackByIndex),C(26),I("ngForOf",n.configuration.assemblyfilters)("ngForTrackBy",n.trackByIndex),C(26),I("ngForOf",n.configuration.classfilters)("ngForTrackBy",n.trackByIndex),C(26),I("ngForOf",n.configuration.filefilters)("ngForTrackBy",n.trackByIndex),C(11),I("ngModel",n.configuration.selectedverbosity),C(1),I("ngForOf",n.configuration.verbosities)("ngForTrackBy",n.trackByIndex),C(7),I("ngModel",n.configuration.title),C(7),I("ngModel",n.configuration.tag),C(6),I("routerLink",be(36,Qk)),C(3),I("ngModel",n.configuration.license),C(6),I("href",n.selectedPackage.url,qs),C(1),_e(n.selectedPackage.name),C(1),I("ngForOf",n.selectedPackage.installOptions),C(4),_e(n.getUsage()),C(5),I("href",n.selectedPackage.url,qs),C(1),_e(n.selectedPackage.name),C(1),I("ngForOf",n.selectedPackage.installOptions),C(4),_e(n.getUsage()),C(2),I("ngIf",!n.usageCopied),C(1),I("ngIf",n.usageCopied))},dependencies:[ud,l_,Pa,On,qd,ZC,QC,Ii,Ya,Wd,Fd,Pd,Pi,Yd,Qa,Fi],styles:[".sticky[_ngcontent-%COMP%]{position:sticky;top:100px}"]});const Yk=[{path:"",component:Ji,pathMatch:"full",title:"Home",data:{canonical:"/"}},{path:"getstarted",component:Yi,title:"Get started",data:{canonical:"/getstarted"}},{path:"getstarted.html",redirectTo:"/getstarted"},{path:"usage",component:rs,title:"Usage",data:{canonical:"/usage"}},{path:"usage.html",redirectTo:"/usage"},{path:"pro",component:ts,title:"PRO",data:{canonical:"/pro"}},{path:"pro.html",redirectTo:"/pro"},{path:"contact",component:Qi,title:"Contact",data:{canonical:"/contact"}},{path:"contact.html",redirectTo:"/contact"},{path:"404",component:es,title:"404 - Not found"},{path:"**",redirectTo:"/404"}];class Mo{}Mo.\u0275fac=function(t){return new(t||Mo)},Mo.\u0275mod=Lt({type:Mo}),Mo.\u0275inj=St({imports:[vw.forRoot(Yk,{scrollPositionRestoration:"enabled",scrollOffset:[0,0],anchorScrolling:"enabled"}),vw]});const Dw=function(){return["/"]},Jk=function(e){return{show:e}},os=function(){return["link-active"]},eL=function(){return{exact:!0}},tL=function(){return["/getstarted"]},nL=function(){return["/usage"]},rL=function(){return["/contact"]},oL=function(){return["/pro"]};class is{constructor(){this.isExpanded=!1}collapse(){this.isExpanded=!1}toggle(){this.isExpanded=!this.isExpanded}}is.\u0275fac=function(t){return new(t||is)},is.\u0275cmp=It({type:is,selectors:[["app-nav-menu"]],decls:39,vars:28,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.png","height","48","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"],["data-splitbee-event","Routing","data-splitbee-event-source","NavMenu",1,"nav-link","text-dark",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(t,n){1&t&&(f(0,"header",0)(1,"nav",1)(2,"div",2)(3,"a",3),_(4,"img",4),f(5,"span",5),h(6,"ReportGenerator"),p()(),f(7,"button",6),P("click",function(){return n.toggle()}),_(8,"span",7),p(),f(9,"div",8)(10,"ul",9)(11,"li",10)(12,"a",11),h(13,"Home"),p()(),f(14,"li",12)(15,"a",13),h(16,"Get started"),p()(),f(17,"li",12)(18,"a",11),h(19,"Usage"),p()(),f(20,"li",12)(21,"a",11),h(22,"Contact"),p()(),f(23,"li",12)(24,"a",14)(25,"span",15),h(26,"PRO"),p()()()(),_(27,"hr",16),f(28,"ul",17)(29,"li",18)(30,"a",19),_(31,"i",20),f(32,"span",21),h(33,"GitHub"),p()()(),f(34,"li",18)(35,"a",22),_(36,"i",23),f(37,"span",21),h(38,"Twitter"),p()()()()()()()()),2&t&&(C(3),I("routerLink",be(14,Dw)),C(4),$t("aria-expanded",n.isExpanded),C(2),I("ngClass",bc(15,Jk,n.isExpanded)),C(2),I("routerLinkActive",be(17,os))("routerLinkActiveOptions",be(18,eL)),C(1),I("routerLink",be(19,Dw)),C(2),I("routerLinkActive",be(20,os)),C(1),I("routerLink",be(21,tL)),C(2),I("routerLinkActive",be(22,os)),C(1),I("routerLink",be(23,nL)),C(2),I("routerLinkActive",be(24,os)),C(1),I("routerLink",be(25,rL)),C(2),I("routerLinkActive",be(26,os)),C(1),I("routerLink",be(27,oL)))},dependencies:[ud,On,cw],styles:[".box-shadow[_ngcontent-%COMP%]{box-shadow:0 .25rem .75rem #0000000d}@keyframes _ngcontent-%COMP%_pro-button-animation{0%{background-color:#20a0d2;background-image:linear-gradient(50deg,#1c7ed6 0%,#23b8cf 100%)}50%{background-color:#1c8eb7;background-image:linear-gradient(50deg,#1A6FBA 0%,#1EA1B5 100%);box-shadow:0 0 6px 1px #20a0d2}to{background-color:#20a0d2;background-image:linear-gradient(50deg,#1c7ed6 0%,#23b8cf 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:#1c8eb7;background-image:linear-gradient(50deg,#1A6FBA 0%,#1EA1B5 100%);box-shadow:0 0 6px 1px #20a0d2}.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:#1c8eb7!important;font-weight:400}"]});const iL=function(){return["/pro"]};class ss{constructor(){this.years=(new Date).getFullYear()-2009}}ss.\u0275fac=function(t){return new(t||ss)},ss.\u0275cmp=It({type:ss,selectors:[["app-footer"]],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"],["data-splitbee-event","Routing","data-splitbee-event-source","Footer",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(t,n){1&t&&(f(0,"footer",0)(1,"div",1)(2,"div",2)(3,"div",3)(4,"div",4),_(5,"img",5),p(),f(6,"div",6)(7,"h2"),h(8,"Who's behind"),p(),f(9,"p"),h(10,"My name is Daniel Palme. I'm a software developer from Germany."),p(),f(11,"p"),h(12," Back in 2009 I wanted to create a code coverage report based on "),f(13,"i"),h(14,"PartCover"),p(),h(15," files."),_(16,"br"),h(17," Since no existing tool was able to merge several coverage files and generate a visual appealing report, I decided to create my own."),_(18,"br"),h(19),f(20,"i"),h(21,"ReportGenerator"),p(),h(22,". "),p(),f(23,"p"),h(24," You can support the ongoing maintenance by becoming a "),_(25,"i",7),h(26,"\xa0"),f(27,"a",8),h(28,"GitHub sponsor"),p(),h(29," or by buying a "),f(30,"a",9),h(31,"PRO license"),p(),h(32,". "),p()()()()(),f(33,"div",2)(34,"div",3),_(35,"hr"),p()(),f(36,"div",1)(37,"div",2)(38,"div",3)(39,"div",10)(40,"p")(41,"b"),h(42,"GitHub"),p()(),f(43,"a",11),h(44,"Source code"),p(),_(45,"br"),f(46,"a",12),h(47,"Wiki"),p(),_(48,"br"),f(49,"a",13),h(50,"FAQ"),p()(),f(51,"div",14)(52,"p")(53,"b"),h(54,"Download"),p()(),f(55,"i"),h(56,"NuGet"),p(),_(57,"br"),f(58,"a",15),h(59,"ReportGenerator"),p(),_(60,"br"),f(61,"a",16),h(62,"dotnet-reportgenerator-globaltool"),p(),_(63,"br"),f(64,"a",17),h(65,"ReportGenerator.Core"),p(),_(66,"br")(67,"br"),f(68,"i"),h(69,"Integration"),p(),_(70,"br"),f(71,"a",18),h(72,"GitHub actions"),p(),_(73,"br"),f(74,"a",19),h(75,"Azure DevOps"),p()(),f(76,"div",20)(77,"p")(78,"b"),h(79,"Community"),p()(),f(80,"a",11),_(81,"i",21),h(82," GitHub"),p(),_(83,"br"),f(84,"a",22),_(85,"i",23),h(86," Twitter"),p(),_(87,"br")(88,"br"),f(89,"a",24),h(90,"Privacy"),p(),_(91,"br"),f(92,"a",25),h(93,"Imprint"),p()()()()()()),2&t&&(C(19),Mn(" Fast forward ",n.years," years, I'm still maintaining "),C(11),I("routerLink",be(2,iL)))},dependencies:[On],styles:["footer[_ngcontent-%COMP%]{background-color:#464646}footer[_ngcontent-%COMP%], a[_ngcontent-%COMP%]{color:#fff}"]});class as{constructor(t,n,r){this.dom=t,this.router=n,this.activatedRoute=r}ngOnInit(){this.router.events.pipe(Xt(t=>t instanceof Qn),W(()=>this.activatedRoute),W(t=>{for(;t.firstChild;)t=t.firstChild;return t}),Xt(t=>"primary"===t.outlet),$e(t=>t.data)).subscribe(t=>{const n=`${window.location.protocol}//${window.location.hostname}`;this.updateCanonicalUrl(t.canonical?n+t.canonical:n+this.router.url)})}updateCanonicalUrl(t){const n=this.dom.getElementsByTagName("head")[0];var r=this.dom.querySelector("link[rel='canonical']")||null;null==r&&(r=this.dom.createElement("link"),n.appendChild(r)),r.setAttribute("rel","canonical"),r.setAttribute("href",t)}}as.\u0275fac=function(t){return new(t||as)(S(et),S(pt),S(Dr))},as.\u0275cmp=It({type:as,selectors:[["app-root"]],decls:3,vars:0,template:function(t,n){1&t&&_(0,"app-nav-menu")(1,"router-outlet")(2,"app-footer")},dependencies:[vf,is,ss],encapsulation:2});class Io{}Io.\u0275fac=function(t){return new(t||Io)},Io.\u0275mod=Lt({type:Io,bootstrap:[as]}),Io.\u0275inj=St({providers:[br,Er,wr],imports:[GR,Mo,DN,MF]}),$R().bootstrapModule(Io).catch(e=>console.error(e))}},fe=>{fe(fe.s=754)}]); \ No newline at end of file diff --git a/docs/polyfills.215fa4dd00872c0e.js b/docs/polyfills.215fa4dd00872c0e.js new file mode 100644 index 00000000..8c8146ca --- /dev/null +++ b/docs/polyfills.215fa4dd00872c0e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkReportGenerator_io=self.webpackChunkReportGenerator_io||[]).push([[429],{435:(we,ue,he)=>{he(583)},583:()=>{!function(e){const n=e.performance;function i(I){n&&n.mark&&n.mark(I)}function r(I,p){n&&n.measure&&n.measure(I,p)}i("Zone");const c=e.__Zone_symbol_prefix||"__zone_symbol__";function u(I){return c+I}const f=!0===e[u("forceDuplicateZoneCheck")];if(e.Zone){if(f||"function"!=typeof e.Zone.__symbol__)throw new Error("Zone already loaded.");return e.Zone}let _=(()=>{class I{constructor(t,o){this._parent=t,this._name=o?o.name||"unnamed":"",this._properties=o&&o.properties||{},this._zoneDelegate=new T(this,this._parent&&this._parent._zoneDelegate,o)}static assertZonePatched(){if(e.Promise!==J.ZoneAwarePromise)throw new Error("Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)")}static get root(){let t=I.current;for(;t.parent;)t=t.parent;return t}static get current(){return V.zone}static get currentTask(){return te}static __load_patch(t,o,y=!1){if(J.hasOwnProperty(t)){if(!y&&f)throw Error("Already loaded patch: "+t)}else if(!e["__Zone_disable_"+t]){const P="Zone:"+t;i(P),J[t]=o(e,I,le),r(P,P)}}get parent(){return this._parent}get name(){return this._name}get(t){const o=this.getZoneWith(t);if(o)return o._properties[t]}getZoneWith(t){let o=this;for(;o;){if(o._properties.hasOwnProperty(t))return o;o=o._parent}return null}fork(t){if(!t)throw new Error("ZoneSpec required!");return this._zoneDelegate.fork(this,t)}wrap(t,o){if("function"!=typeof t)throw new Error("Expecting function got: "+t);const y=this._zoneDelegate.intercept(this,t,o),P=this;return function(){return P.runGuarded(y,this,arguments,o)}}run(t,o,y,P){V={parent:V,zone:this};try{return this._zoneDelegate.invoke(this,t,o,y,P)}finally{V=V.parent}}runGuarded(t,o=null,y,P){V={parent:V,zone:this};try{try{return this._zoneDelegate.invoke(this,t,o,y,P)}catch(K){if(this._zoneDelegate.handleError(this,K))throw K}}finally{V=V.parent}}runTask(t,o,y){if(t.zone!=this)throw new Error("A task can only be run in the zone of creation! (Creation: "+(t.zone||z).name+"; Execution: "+this.name+")");if(t.state===j&&(t.type===R||t.type===M))return;const P=t.state!=X;P&&t._transitionTo(X,O),t.runCount++;const K=te;te=t,V={parent:V,zone:this};try{t.type==M&&t.data&&!t.data.isPeriodic&&(t.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,t,o,y)}catch(l){if(this._zoneDelegate.handleError(this,l))throw l}}finally{t.state!==j&&t.state!==Y&&(t.type==R||t.data&&t.data.isPeriodic?P&&t._transitionTo(O,X):(t.runCount=0,this._updateTaskCount(t,-1),P&&t._transitionTo(j,X,j))),V=V.parent,te=K}}scheduleTask(t){if(t.zone&&t.zone!==this){let y=this;for(;y;){if(y===t.zone)throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${t.zone.name}`);y=y.parent}}t._transitionTo(q,j);const o=[];t._zoneDelegates=o,t._zone=this;try{t=this._zoneDelegate.scheduleTask(this,t)}catch(y){throw t._transitionTo(Y,q,j),this._zoneDelegate.handleError(this,y),y}return t._zoneDelegates===o&&this._updateTaskCount(t,1),t.state==q&&t._transitionTo(O,q),t}scheduleMicroTask(t,o,y,P){return this.scheduleTask(new m(v,t,o,y,P,void 0))}scheduleMacroTask(t,o,y,P,K){return this.scheduleTask(new m(M,t,o,y,P,K))}scheduleEventTask(t,o,y,P,K){return this.scheduleTask(new m(R,t,o,y,P,K))}cancelTask(t){if(t.zone!=this)throw new Error("A task can only be cancelled in the zone of creation! (Creation: "+(t.zone||z).name+"; Execution: "+this.name+")");t._transitionTo(A,O,X);try{this._zoneDelegate.cancelTask(this,t)}catch(o){throw t._transitionTo(Y,A),this._zoneDelegate.handleError(this,o),o}return this._updateTaskCount(t,-1),t._transitionTo(j,A),t.runCount=0,t}_updateTaskCount(t,o){const y=t._zoneDelegates;-1==o&&(t._zoneDelegates=null);for(let P=0;PI.hasTask(t,o),onScheduleTask:(I,p,t,o)=>I.scheduleTask(t,o),onInvokeTask:(I,p,t,o,y,P)=>I.invokeTask(t,o,y,P),onCancelTask:(I,p,t,o)=>I.cancelTask(t,o)};class T{constructor(p,t,o){this._taskCounts={microTask:0,macroTask:0,eventTask:0},this.zone=p,this._parentDelegate=t,this._forkZS=o&&(o&&o.onFork?o:t._forkZS),this._forkDlgt=o&&(o.onFork?t:t._forkDlgt),this._forkCurrZone=o&&(o.onFork?this.zone:t._forkCurrZone),this._interceptZS=o&&(o.onIntercept?o:t._interceptZS),this._interceptDlgt=o&&(o.onIntercept?t:t._interceptDlgt),this._interceptCurrZone=o&&(o.onIntercept?this.zone:t._interceptCurrZone),this._invokeZS=o&&(o.onInvoke?o:t._invokeZS),this._invokeDlgt=o&&(o.onInvoke?t:t._invokeDlgt),this._invokeCurrZone=o&&(o.onInvoke?this.zone:t._invokeCurrZone),this._handleErrorZS=o&&(o.onHandleError?o:t._handleErrorZS),this._handleErrorDlgt=o&&(o.onHandleError?t:t._handleErrorDlgt),this._handleErrorCurrZone=o&&(o.onHandleError?this.zone:t._handleErrorCurrZone),this._scheduleTaskZS=o&&(o.onScheduleTask?o:t._scheduleTaskZS),this._scheduleTaskDlgt=o&&(o.onScheduleTask?t:t._scheduleTaskDlgt),this._scheduleTaskCurrZone=o&&(o.onScheduleTask?this.zone:t._scheduleTaskCurrZone),this._invokeTaskZS=o&&(o.onInvokeTask?o:t._invokeTaskZS),this._invokeTaskDlgt=o&&(o.onInvokeTask?t:t._invokeTaskDlgt),this._invokeTaskCurrZone=o&&(o.onInvokeTask?this.zone:t._invokeTaskCurrZone),this._cancelTaskZS=o&&(o.onCancelTask?o:t._cancelTaskZS),this._cancelTaskDlgt=o&&(o.onCancelTask?t:t._cancelTaskDlgt),this._cancelTaskCurrZone=o&&(o.onCancelTask?this.zone:t._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;const y=o&&o.onHasTask;(y||t&&t._hasTaskZS)&&(this._hasTaskZS=y?o:g,this._hasTaskDlgt=t,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=p,o.onScheduleTask||(this._scheduleTaskZS=g,this._scheduleTaskDlgt=t,this._scheduleTaskCurrZone=this.zone),o.onInvokeTask||(this._invokeTaskZS=g,this._invokeTaskDlgt=t,this._invokeTaskCurrZone=this.zone),o.onCancelTask||(this._cancelTaskZS=g,this._cancelTaskDlgt=t,this._cancelTaskCurrZone=this.zone))}fork(p,t){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,p,t):new _(p,t)}intercept(p,t,o){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,p,t,o):t}invoke(p,t,o,y,P){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,p,t,o,y,P):t.apply(o,y)}handleError(p,t){return!this._handleErrorZS||this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,p,t)}scheduleTask(p,t){let o=t;if(this._scheduleTaskZS)this._hasTaskZS&&o._zoneDelegates.push(this._hasTaskDlgtOwner),o=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,p,t),o||(o=t);else if(t.scheduleFn)t.scheduleFn(t);else{if(t.type!=v)throw new Error("Task is missing scheduleFn.");d(t)}return o}invokeTask(p,t,o,y){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,p,t,o,y):t.callback.apply(o,y)}cancelTask(p,t){let o;if(this._cancelTaskZS)o=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,p,t);else{if(!t.cancelFn)throw Error("Task is not cancelable");o=t.cancelFn(t)}return o}hasTask(p,t){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,p,t)}catch(o){this.handleError(p,o)}}_updateTaskCount(p,t){const o=this._taskCounts,y=o[p],P=o[p]=y+t;if(P<0)throw new Error("More tasks executed then were scheduled.");0!=y&&0!=P||this.hasTask(this.zone,{microTask:o.microTask>0,macroTask:o.macroTask>0,eventTask:o.eventTask>0,change:p})}}class m{constructor(p,t,o,y,P,K){if(this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state="notScheduled",this.type=p,this.source=t,this.data=y,this.scheduleFn=P,this.cancelFn=K,!o)throw new Error("callback is not defined");this.callback=o;const l=this;this.invoke=p===R&&y&&y.useG?m.invokeTask:function(){return m.invokeTask.call(e,l,this,arguments)}}static invokeTask(p,t,o){p||(p=this),re++;try{return p.runCount++,p.zone.runTask(p,t,o)}finally{1==re&&L(),re--}}get zone(){return this._zone}get state(){return this._state}cancelScheduleRequest(){this._transitionTo(j,q)}_transitionTo(p,t,o){if(this._state!==t&&this._state!==o)throw new Error(`${this.type} '${this.source}': can not transition to '${p}', expecting state '${t}'${o?" or '"+o+"'":""}, was '${this._state}'.`);this._state=p,p==j&&(this._zoneDelegates=null)}toString(){return this.data&&typeof this.data.handleId<"u"?this.data.handleId.toString():Object.prototype.toString.call(this)}toJSON(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}}}const S=u("setTimeout"),D=u("Promise"),Z=u("then");let E,B=[],G=!1;function d(I){if(0===re&&0===B.length)if(E||e[D]&&(E=e[D].resolve(0)),E){let p=E[Z];p||(p=E.then),p.call(E,L)}else e[S](L,0);I&&B.push(I)}function L(){if(!G){for(G=!0;B.length;){const I=B;B=[];for(let p=0;pV,onUnhandledError:F,microtaskDrainDone:F,scheduleMicroTask:d,showUncaughtError:()=>!_[u("ignoreConsoleErrorUncaughtError")],patchEventTarget:()=>[],patchOnProperties:F,patchMethod:()=>F,bindArguments:()=>[],patchThen:()=>F,patchMacroTask:()=>F,patchEventPrototype:()=>F,isIEOrEdge:()=>!1,getGlobalObjects:()=>{},ObjectDefineProperty:()=>F,ObjectGetOwnPropertyDescriptor:()=>{},ObjectCreate:()=>{},ArraySlice:()=>[],patchClass:()=>F,wrapWithCurrentZone:()=>F,filterProperties:()=>[],attachOriginToPatched:()=>F,_redefineProperty:()=>F,patchCallbacks:()=>F};let V={parent:null,zone:new _(null,null)},te=null,re=0;function F(){}r("Zone","Zone"),e.Zone=_}(typeof window<"u"&&window||typeof self<"u"&&self||global);const ue=Object.getOwnPropertyDescriptor,he=Object.defineProperty,de=Object.getPrototypeOf,Be=Object.create,ut=Array.prototype.slice,Se="addEventListener",Oe="removeEventListener",Ze=Zone.__symbol__(Se),Ie=Zone.__symbol__(Oe),se="true",ie="false",ke=Zone.__symbol__("");function Le(e,n){return Zone.current.wrap(e,n)}function Me(e,n,i,r,c){return Zone.current.scheduleMacroTask(e,n,i,r,c)}const x=Zone.__symbol__,Pe=typeof window<"u",pe=Pe?window:void 0,$=Pe&&pe||"object"==typeof self&&self||global,ht=[null];function Ae(e,n){for(let i=e.length-1;i>=0;i--)"function"==typeof e[i]&&(e[i]=Le(e[i],n+"_"+i));return e}function Fe(e){return!e||!1!==e.writable&&!("function"==typeof e.get&&typeof e.set>"u")}const Ue=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope,Re=!("nw"in $)&&typeof $.process<"u"&&"[object process]"==={}.toString.call($.process),je=!Re&&!Ue&&!(!Pe||!pe.HTMLElement),We=typeof $.process<"u"&&"[object process]"==={}.toString.call($.process)&&!Ue&&!(!Pe||!pe.HTMLElement),Ce={},qe=function(e){if(!(e=e||$.event))return;let n=Ce[e.type];n||(n=Ce[e.type]=x("ON_PROPERTY"+e.type));const i=this||e.target||$,r=i[n];let c;return je&&i===pe&&"error"===e.type?(c=r&&r.call(this,e.message,e.filename,e.lineno,e.colno,e.error),!0===c&&e.preventDefault()):(c=r&&r.apply(this,arguments),null!=c&&!c&&e.preventDefault()),c};function Xe(e,n,i){let r=ue(e,n);if(!r&&i&&ue(i,n)&&(r={enumerable:!0,configurable:!0}),!r||!r.configurable)return;const c=x("on"+n+"patched");if(e.hasOwnProperty(c)&&e[c])return;delete r.writable,delete r.value;const u=r.get,f=r.set,_=n.substr(2);let g=Ce[_];g||(g=Ce[_]=x("ON_PROPERTY"+_)),r.set=function(T){let m=this;!m&&e===$&&(m=$),m&&(m[g]&&m.removeEventListener(_,qe),f&&f.apply(m,ht),"function"==typeof T?(m[g]=T,m.addEventListener(_,qe,!1)):m[g]=null)},r.get=function(){let T=this;if(!T&&e===$&&(T=$),!T)return null;const m=T[g];if(m)return m;if(u){let S=u&&u.call(this);if(S)return r.set.call(this,S),"function"==typeof T.removeAttribute&&T.removeAttribute(n),S}return null},he(e,n,r),e[c]=!0}function Ye(e,n,i){if(n)for(let r=0;rfunction(f,_){const g=i(f,_);return g.cbIdx>=0&&"function"==typeof _[g.cbIdx]?Me(g.name,_[g.cbIdx],g,c):u.apply(f,_)})}function ae(e,n){e[x("OriginalDelegate")]=n}let $e=!1,He=!1;function mt(){if($e)return He;$e=!0;try{const e=pe.navigator.userAgent;(-1!==e.indexOf("MSIE ")||-1!==e.indexOf("Trident/")||-1!==e.indexOf("Edge/"))&&(He=!0)}catch{}return He}Zone.__load_patch("ZoneAwarePromise",(e,n,i)=>{const r=Object.getOwnPropertyDescriptor,c=Object.defineProperty,f=i.symbol,_=[],g=!0===e[f("DISABLE_WRAPPING_UNCAUGHT_PROMISE_REJECTION")],T=f("Promise"),m=f("then");i.onUnhandledError=l=>{if(i.showUncaughtError()){const s=l&&l.rejection;s?console.error("Unhandled Promise rejection:",s instanceof Error?s.message:s,"; Zone:",l.zone.name,"; Task:",l.task&&l.task.source,"; Value:",s,s instanceof Error?s.stack:void 0):console.error(l)}},i.microtaskDrainDone=()=>{for(;_.length;){const l=_.shift();try{l.zone.runGuarded(()=>{throw l.throwOriginal?l.rejection:l})}catch(s){Z(s)}}};const D=f("unhandledPromiseRejectionHandler");function Z(l){i.onUnhandledError(l);try{const s=n[D];"function"==typeof s&&s.call(this,l)}catch{}}function B(l){return l&&l.then}function G(l){return l}function E(l){return t.reject(l)}const d=f("state"),L=f("value"),z=f("finally"),j=f("parentPromiseValue"),q=f("parentPromiseState"),X=null,A=!0,Y=!1;function M(l,s){return a=>{try{V(l,s,a)}catch(h){V(l,!1,h)}}}const le=f("currentTaskTrace");function V(l,s,a){const h=function(){let l=!1;return function(a){return function(){l||(l=!0,a.apply(null,arguments))}}}();if(l===a)throw new TypeError("Promise resolved with itself");if(l[d]===X){let w=null;try{("object"==typeof a||"function"==typeof a)&&(w=a&&a.then)}catch(C){return h(()=>{V(l,!1,C)})(),l}if(s!==Y&&a instanceof t&&a.hasOwnProperty(d)&&a.hasOwnProperty(L)&&a[d]!==X)re(a),V(l,a[d],a[L]);else if(s!==Y&&"function"==typeof w)try{w.call(a,h(M(l,s)),h(M(l,!1)))}catch(C){h(()=>{V(l,!1,C)})()}else{l[d]=s;const C=l[L];if(l[L]=a,l[z]===z&&s===A&&(l[d]=l[q],l[L]=l[j]),s===Y&&a instanceof Error){const k=n.currentTask&&n.currentTask.data&&n.currentTask.data.__creationTrace__;k&&c(a,le,{configurable:!0,enumerable:!1,writable:!0,value:k})}for(let k=0;k{try{const b=l[L],N=!!a&&z===a[z];N&&(a[j]=b,a[q]=C);const H=s.run(k,void 0,N&&k!==E&&k!==G?[]:[b]);V(a,!0,H)}catch(b){V(a,!1,b)}},a)}const p=function(){};class t{static toString(){return"function ZoneAwarePromise() { [native code] }"}static resolve(s){return V(new this(null),A,s)}static reject(s){return V(new this(null),Y,s)}static race(s){let a,h,w=new this((b,N)=>{a=b,h=N});function C(b){a(b)}function k(b){h(b)}for(let b of s)B(b)||(b=this.resolve(b)),b.then(C,k);return w}static all(s){return t.allWithCallback(s)}static allSettled(s){return(this&&this.prototype instanceof t?this:t).allWithCallback(s,{thenCallback:h=>({status:"fulfilled",value:h}),errorCallback:h=>({status:"rejected",reason:h})})}static allWithCallback(s,a){let h,w,C=new this((H,U)=>{h=H,w=U}),k=2,b=0;const N=[];for(let H of s){B(H)||(H=this.resolve(H));const U=b;try{H.then(Q=>{N[U]=a?a.thenCallback(Q):Q,k--,0===k&&h(N)},Q=>{a?(N[U]=a.errorCallback(Q),k--,0===k&&h(N)):w(Q)})}catch(Q){w(Q)}k++,b++}return k-=2,0===k&&h(N),C}constructor(s){const a=this;if(!(a instanceof t))throw new Error("Must be an instanceof Promise.");a[d]=X,a[L]=[];try{s&&s(M(a,A),M(a,Y))}catch(h){V(a,!1,h)}}get[Symbol.toStringTag](){return"Promise"}get[Symbol.species](){return t}then(s,a){let h=this.constructor[Symbol.species];(!h||"function"!=typeof h)&&(h=this.constructor||t);const w=new h(p),C=n.current;return this[d]==X?this[L].push(C,w,s,a):F(this,C,w,s,a),w}catch(s){return this.then(null,s)}finally(s){let a=this.constructor[Symbol.species];(!a||"function"!=typeof a)&&(a=t);const h=new a(p);h[z]=z;const w=n.current;return this[d]==X?this[L].push(w,h,s,s):F(this,w,h,s,s),h}}t.resolve=t.resolve,t.reject=t.reject,t.race=t.race,t.all=t.all;const o=e[T]=e.Promise;e.Promise=t;const y=f("thenPatched");function P(l){const s=l.prototype,a=r(s,"then");if(a&&(!1===a.writable||!a.configurable))return;const h=s.then;s[m]=h,l.prototype.then=function(w,C){return new t((b,N)=>{h.call(this,b,N)}).then(w,C)},l[y]=!0}return i.patchThen=P,o&&(P(o),ce(e,"fetch",l=>function K(l){return function(s,a){let h=l.apply(s,a);if(h instanceof t)return h;let w=h.constructor;return w[y]||P(w),h}}(l))),Promise[n.__symbol__("uncaughtPromiseErrors")]=_,t}),Zone.__load_patch("toString",e=>{const n=Function.prototype.toString,i=x("OriginalDelegate"),r=x("Promise"),c=x("Error"),u=function(){if("function"==typeof this){const T=this[i];if(T)return"function"==typeof T?n.call(T):Object.prototype.toString.call(T);if(this===Promise){const m=e[r];if(m)return n.call(m)}if(this===Error){const m=e[c];if(m)return n.call(m)}}return n.call(this)};u[i]=n,Function.prototype.toString=u;const f=Object.prototype.toString;Object.prototype.toString=function(){return"function"==typeof Promise&&this instanceof Promise?"[object Promise]":f.call(this)}});let me=!1;if(typeof window<"u")try{const e=Object.defineProperty({},"passive",{get:function(){me=!0}});window.addEventListener("test",e,e),window.removeEventListener("test",e,e)}catch{me=!1}const Et={useG:!0},ee={},Ke={},Je=new RegExp("^"+ke+"(\\w+)(true|false)$"),xe=x("propagationStopped");function Qe(e,n){const i=(n?n(e):e)+ie,r=(n?n(e):e)+se,c=ke+i,u=ke+r;ee[e]={},ee[e][ie]=c,ee[e][se]=u}function Tt(e,n,i){const r=i&&i.add||Se,c=i&&i.rm||Oe,u=i&&i.listeners||"eventListeners",f=i&&i.rmAll||"removeAllListeners",_=x(r),g="."+r+":",T="prependListener",m="."+T+":",S=function(E,d,L){if(E.isRemoved)return;const z=E.callback;"object"==typeof z&&z.handleEvent&&(E.callback=q=>z.handleEvent(q),E.originalDelegate=z),E.invoke(E,d,[L]);const j=E.options;j&&"object"==typeof j&&j.once&&d[c].call(d,L.type,E.originalDelegate?E.originalDelegate:E.callback,j)},D=function(E){if(!(E=E||e.event))return;const d=this||E.target||e,L=d[ee[E.type][ie]];if(L)if(1===L.length)S(L[0],d,E);else{const z=L.slice();for(let j=0;jfunction(c,u){c[xe]=!0,r&&r.apply(c,u)})}function gt(e,n,i,r,c){const u=Zone.__symbol__(r);if(n[u])return;const f=n[u]=n[r];n[r]=function(_,g,T){return g&&g.prototype&&c.forEach(function(m){const S=`${i}.${r}::`+m,D=g.prototype;if(D.hasOwnProperty(m)){const Z=e.ObjectGetOwnPropertyDescriptor(D,m);Z&&Z.value?(Z.value=e.wrapWithCurrentZone(Z.value,S),e._redefineProperty(g.prototype,m,Z)):D[m]&&(D[m]=e.wrapWithCurrentZone(D[m],S))}else D[m]&&(D[m]=e.wrapWithCurrentZone(D[m],S))}),f.call(n,_,g,T)},e.attachOriginToPatched(n[r],f)}const Ge=["absolutedeviceorientation","afterinput","afterprint","appinstalled","beforeinstallprompt","beforeprint","beforeunload","devicelight","devicemotion","deviceorientation","deviceorientationabsolute","deviceproximity","hashchange","languagechange","message","mozbeforepaint","offline","online","paint","pageshow","pagehide","popstate","rejectionhandled","storage","unhandledrejection","unload","userproximity","vrdisplayconnected","vrdisplaydisconnected","vrdisplaypresentchange"],wt=["encrypted","waitingforkey","msneedkey","mozinterruptbegin","mozinterruptend"],tt=["load"],nt=["blur","error","focus","load","resize","scroll","messageerror"],Dt=["bounce","finish","start"],rt=["loadstart","progress","abort","error","load","progress","timeout","loadend","readystatechange"],Ee=["upgradeneeded","complete","abort","success","error","blocked","versionchange","close"],St=["close","error","open","message"],Ot=["error","message"],Te=["abort","animationcancel","animationend","animationiteration","auxclick","beforeinput","blur","cancel","canplay","canplaythrough","change","compositionstart","compositionupdate","compositionend","cuechange","click","close","contextmenu","curechange","dblclick","drag","dragend","dragenter","dragexit","dragleave","dragover","drop","durationchange","emptied","ended","error","focus","focusin","focusout","gotpointercapture","input","invalid","keydown","keypress","keyup","load","loadstart","loadeddata","loadedmetadata","lostpointercapture","mousedown","mouseenter","mouseleave","mousemove","mouseout","mouseover","mouseup","mousewheel","orientationchange","pause","play","playing","pointercancel","pointerdown","pointerenter","pointerleave","pointerlockchange","mozpointerlockchange","webkitpointerlockerchange","pointerlockerror","mozpointerlockerror","webkitpointerlockerror","pointermove","pointout","pointerover","pointerup","progress","ratechange","reset","resize","scroll","seeked","seeking","select","selectionchange","selectstart","show","sort","stalled","submit","suspend","timeupdate","volumechange","touchcancel","touchmove","touchstart","touchend","transitioncancel","transitionend","waiting","wheel"].concat(["webglcontextrestored","webglcontextlost","webglcontextcreationerror"],["autocomplete","autocompleteerror"],["toggle"],["afterscriptexecute","beforescriptexecute","DOMContentLoaded","freeze","fullscreenchange","mozfullscreenchange","webkitfullscreenchange","msfullscreenchange","fullscreenerror","mozfullscreenerror","webkitfullscreenerror","msfullscreenerror","readystatechange","visibilitychange","resume"],Ge,["beforecopy","beforecut","beforepaste","copy","cut","paste","dragstart","loadend","animationstart","search","transitionrun","transitionstart","webkitanimationend","webkitanimationiteration","webkitanimationstart","webkittransitionend"],["activate","afterupdate","ariarequest","beforeactivate","beforedeactivate","beforeeditfocus","beforeupdate","cellchange","controlselect","dataavailable","datasetchanged","datasetcomplete","errorupdate","filterchange","layoutcomplete","losecapture","move","moveend","movestart","propertychange","resizeend","resizestart","rowenter","rowexit","rowsdelete","rowsinserted","command","compassneedscalibration","deactivate","help","mscontentzoom","msmanipulationstatechanged","msgesturechange","msgesturedoubletap","msgestureend","msgesturehold","msgesturestart","msgesturetap","msgotpointercapture","msinertiastart","mslostpointercapture","mspointercancel","mspointerdown","mspointerenter","mspointerhover","mspointerleave","mspointermove","mspointerout","mspointerover","mspointerup","pointerout","mssitemodejumplistitemremoved","msthumbnailclick","stop","storagecommit"]);function ot(e,n,i){if(!i||0===i.length)return n;const r=i.filter(u=>u.target===e);if(!r||0===r.length)return n;const c=r[0].ignoreProperties;return n.filter(u=>-1===c.indexOf(u))}function W(e,n,i,r){e&&Ye(e,ot(e,n,i),r)}Zone.__load_patch("util",(e,n,i)=>{i.patchOnProperties=Ye,i.patchMethod=ce,i.bindArguments=Ae,i.patchMacroTask=_t;const r=n.__symbol__("BLACK_LISTED_EVENTS"),c=n.__symbol__("UNPATCHED_EVENTS");e[c]&&(e[r]=e[c]),e[r]&&(n[r]=n[c]=e[r]),i.patchEventPrototype=yt,i.patchEventTarget=Tt,i.isIEOrEdge=mt,i.ObjectDefineProperty=he,i.ObjectGetOwnPropertyDescriptor=ue,i.ObjectCreate=Be,i.ArraySlice=ut,i.patchClass=ve,i.wrapWithCurrentZone=Le,i.filterProperties=ot,i.attachOriginToPatched=ae,i._redefineProperty=Object.defineProperty,i.patchCallbacks=gt,i.getGlobalObjects=()=>({globalSources:Ke,zoneSymbolEventNames:ee,eventNames:Te,isBrowser:je,isMix:We,isNode:Re,TRUE_STR:se,FALSE_STR:ie,ZONE_SYMBOL_PREFIX:ke,ADD_EVENT_LISTENER_STR:Se,REMOVE_EVENT_LISTENER_STR:Oe})});const Ne=x("zoneTask");function ye(e,n,i,r){let c=null,u=null;i+=r;const f={};function _(T){const m=T.data;return m.args[0]=function(){return T.invoke.apply(this,arguments)},m.handleId=c.apply(e,m.args),T}function g(T){return u.call(e,T.data.handleId)}c=ce(e,n+=r,T=>function(m,S){if("function"==typeof S[0]){const D={isPeriodic:"Interval"===r,delay:"Timeout"===r||"Interval"===r?S[1]||0:void 0,args:S},Z=S[0];S[0]=function(){try{return Z.apply(this,arguments)}finally{D.isPeriodic||("number"==typeof D.handleId?delete f[D.handleId]:D.handleId&&(D.handleId[Ne]=null))}};const B=Me(n,S[0],D,_,g);if(!B)return B;const G=B.data.handleId;return"number"==typeof G?f[G]=B:G&&(G[Ne]=B),G&&G.ref&&G.unref&&"function"==typeof G.ref&&"function"==typeof G.unref&&(B.ref=G.ref.bind(G),B.unref=G.unref.bind(G)),"number"==typeof G||G?G:B}return T.apply(e,S)}),u=ce(e,i,T=>function(m,S){const D=S[0];let Z;"number"==typeof D?Z=f[D]:(Z=D&&D[Ne],Z||(Z=D)),Z&&"string"==typeof Z.type?"notScheduled"!==Z.state&&(Z.cancelFn&&Z.data.isPeriodic||0===Z.runCount)&&("number"==typeof D?delete f[D]:D&&(D[Ne]=null),Z.zone.cancelTask(Z)):T.apply(e,S)})}Zone.__load_patch("legacy",e=>{const n=e[Zone.__symbol__("legacyPatch")];n&&n()}),Zone.__load_patch("queueMicrotask",(e,n,i)=>{i.patchMethod(e,"queueMicrotask",r=>function(c,u){n.current.scheduleMicroTask("queueMicrotask",u[0])})}),Zone.__load_patch("timers",e=>{const n="set",i="clear";ye(e,n,i,"Timeout"),ye(e,n,i,"Interval"),ye(e,n,i,"Immediate")}),Zone.__load_patch("requestAnimationFrame",e=>{ye(e,"request","cancel","AnimationFrame"),ye(e,"mozRequest","mozCancel","AnimationFrame"),ye(e,"webkitRequest","webkitCancel","AnimationFrame")}),Zone.__load_patch("blocking",(e,n)=>{const i=["alert","prompt","confirm"];for(let r=0;rfunction(g,T){return n.current.run(u,e,T,_)})}),Zone.__load_patch("EventTarget",(e,n,i)=>{(function Mt(e,n){n.patchEventPrototype(e,n)})(e,i),function Lt(e,n){if(Zone[n.symbol("patchEventTarget")])return;const{eventNames:i,zoneSymbolEventNames:r,TRUE_STR:c,FALSE_STR:u,ZONE_SYMBOL_PREFIX:f}=n.getGlobalObjects();for(let g=0;g{ve("MutationObserver"),ve("WebKitMutationObserver")}),Zone.__load_patch("IntersectionObserver",(e,n,i)=>{ve("IntersectionObserver")}),Zone.__load_patch("FileReader",(e,n,i)=>{ve("FileReader")}),Zone.__load_patch("on_property",(e,n,i)=>{!function Zt(e,n){if(Re&&!We||Zone[e.symbol("patchEvents")])return;const i=typeof WebSocket<"u",r=n.__Zone_ignore_on_properties;if(je){const f=window,_=function pt(){try{const e=pe.navigator.userAgent;if(-1!==e.indexOf("MSIE ")||-1!==e.indexOf("Trident/"))return!0}catch{}return!1}()?[{target:f,ignoreProperties:["error"]}]:[];W(f,Te.concat(["messageerror"]),r&&r.concat(_),de(f)),W(Document.prototype,Te,r),typeof f.SVGElement<"u"&&W(f.SVGElement.prototype,Te,r),W(Element.prototype,Te,r),W(HTMLElement.prototype,Te,r),W(HTMLMediaElement.prototype,wt,r),W(HTMLFrameSetElement.prototype,Ge.concat(nt),r),W(HTMLBodyElement.prototype,Ge.concat(nt),r),W(HTMLFrameElement.prototype,tt,r),W(HTMLIFrameElement.prototype,tt,r);const g=f.HTMLMarqueeElement;g&&W(g.prototype,Dt,r);const T=f.Worker;T&&W(T.prototype,Ot,r)}const c=n.XMLHttpRequest;c&&W(c.prototype,rt,r);const u=n.XMLHttpRequestEventTarget;u&&W(u&&u.prototype,rt,r),typeof IDBIndex<"u"&&(W(IDBIndex.prototype,Ee,r),W(IDBRequest.prototype,Ee,r),W(IDBOpenDBRequest.prototype,Ee,r),W(IDBDatabase.prototype,Ee,r),W(IDBTransaction.prototype,Ee,r),W(IDBCursor.prototype,Ee,r)),i&&W(WebSocket.prototype,St,r)}(i,e)}),Zone.__load_patch("customElements",(e,n,i)=>{!function It(e,n){const{isBrowser:i,isMix:r}=n.getGlobalObjects();(i||r)&&e.customElements&&"customElements"in e&&n.patchCallbacks(n,e.customElements,"customElements","define",["connectedCallback","disconnectedCallback","adoptedCallback","attributeChangedCallback"])}(e,i)}),Zone.__load_patch("XHR",(e,n)=>{!function g(T){const m=T.XMLHttpRequest;if(!m)return;const S=m.prototype;let Z=S[Ze],B=S[Ie];if(!Z){const v=T.XMLHttpRequestEventTarget;if(v){const M=v.prototype;Z=M[Ze],B=M[Ie]}}const G="readystatechange",E="scheduled";function d(v){const M=v.data,R=M.target;R[u]=!1,R[_]=!1;const J=R[c];Z||(Z=R[Ze],B=R[Ie]),J&&B.call(R,G,J);const le=R[c]=()=>{if(R.readyState===R.DONE)if(!M.aborted&&R[u]&&v.state===E){const te=R[n.__symbol__("loadfalse")];if(0!==R.status&&te&&te.length>0){const re=v.invoke;v.invoke=function(){const F=R[n.__symbol__("loadfalse")];for(let I=0;Ifunction(v,M){return v[r]=0==M[2],v[f]=M[1],j.apply(v,M)}),O=x("fetchTaskAborting"),X=x("fetchTaskScheduling"),A=ce(S,"send",()=>function(v,M){if(!0===n.current[X]||v[r])return A.apply(v,M);{const R={target:v,url:v[f],isPeriodic:!1,args:M,aborted:!1},J=Me("XMLHttpRequest.send",L,R,d,z);v&&!0===v[_]&&!R.aborted&&J.state===E&&J.invoke()}}),Y=ce(S,"abort",()=>function(v,M){const R=function D(v){return v[i]}(v);if(R&&"string"==typeof R.type){if(null==R.cancelFn||R.data&&R.data.aborted)return;R.zone.cancelTask(R)}else if(!0===n.current[O])return Y.apply(v,M)})}(e);const i=x("xhrTask"),r=x("xhrSync"),c=x("xhrListener"),u=x("xhrScheduled"),f=x("xhrURL"),_=x("xhrErrorBeforeScheduled")}),Zone.__load_patch("geolocation",e=>{e.navigator&&e.navigator.geolocation&&function dt(e,n){const i=e.constructor.name;for(let r=0;r{const g=function(){return _.apply(this,Ae(arguments,i+"."+c))};return ae(g,_),g})(u)}}}(e.navigator.geolocation,["getCurrentPosition","watchPosition"])}),Zone.__load_patch("PromiseRejectionEvent",(e,n)=>{function i(r){return function(c){et(e,r).forEach(f=>{const _=e.PromiseRejectionEvent;if(_){const g=new _(r,{promise:c.promise,reason:c.rejection});f.invoke(g)}})}}e.PromiseRejectionEvent&&(n[x("unhandledPromiseRejectionHandler")]=i("unhandledrejection"),n[x("rejectionHandledHandler")]=i("rejectionhandled"))})}},we=>{we(we.s=435)}]); \ No newline at end of file diff --git a/docs/polyfills.9a22b7af111a7897.js b/docs/polyfills.9a22b7af111a7897.js deleted file mode 100644 index 8d2e29a0..00000000 --- a/docs/polyfills.9a22b7af111a7897.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkReportGenerator_io=self.webpackChunkReportGenerator_io||[]).push([[429],{435:(we,ue,he)=>{he(583)},583:()=>{!function(e){const n=e.performance;function i(I){n&&n.mark&&n.mark(I)}function r(I,p){n&&n.measure&&n.measure(I,p)}i("Zone");const c=e.__Zone_symbol_prefix||"__zone_symbol__";function u(I){return c+I}const f=!0===e[u("forceDuplicateZoneCheck")];if(e.Zone){if(f||"function"!=typeof e.Zone.__symbol__)throw new Error("Zone already loaded.");return e.Zone}let _=(()=>{class I{constructor(t,o){this._parent=t,this._name=o?o.name||"unnamed":"",this._properties=o&&o.properties||{},this._zoneDelegate=new T(this,this._parent&&this._parent._zoneDelegate,o)}static assertZonePatched(){if(e.Promise!==J.ZoneAwarePromise)throw new Error("Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)")}static get root(){let t=I.current;for(;t.parent;)t=t.parent;return t}static get current(){return V.zone}static get currentTask(){return te}static __load_patch(t,o,y=!1){if(J.hasOwnProperty(t)){if(!y&&f)throw Error("Already loaded patch: "+t)}else if(!e["__Zone_disable_"+t]){const P="Zone:"+t;i(P),J[t]=o(e,I,le),r(P,P)}}get parent(){return this._parent}get name(){return this._name}get(t){const o=this.getZoneWith(t);if(o)return o._properties[t]}getZoneWith(t){let o=this;for(;o;){if(o._properties.hasOwnProperty(t))return o;o=o._parent}return null}fork(t){if(!t)throw new Error("ZoneSpec required!");return this._zoneDelegate.fork(this,t)}wrap(t,o){if("function"!=typeof t)throw new Error("Expecting function got: "+t);const y=this._zoneDelegate.intercept(this,t,o),P=this;return function(){return P.runGuarded(y,this,arguments,o)}}run(t,o,y,P){V={parent:V,zone:this};try{return this._zoneDelegate.invoke(this,t,o,y,P)}finally{V=V.parent}}runGuarded(t,o=null,y,P){V={parent:V,zone:this};try{try{return this._zoneDelegate.invoke(this,t,o,y,P)}catch(K){if(this._zoneDelegate.handleError(this,K))throw K}}finally{V=V.parent}}runTask(t,o,y){if(t.zone!=this)throw new Error("A task can only be run in the zone of creation! (Creation: "+(t.zone||z).name+"; Execution: "+this.name+")");if(t.state===j&&(t.type===R||t.type===M))return;const P=t.state!=X;P&&t._transitionTo(X,O),t.runCount++;const K=te;te=t,V={parent:V,zone:this};try{t.type==M&&t.data&&!t.data.isPeriodic&&(t.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,t,o,y)}catch(l){if(this._zoneDelegate.handleError(this,l))throw l}}finally{t.state!==j&&t.state!==Y&&(t.type==R||t.data&&t.data.isPeriodic?P&&t._transitionTo(O,X):(t.runCount=0,this._updateTaskCount(t,-1),P&&t._transitionTo(j,X,j))),V=V.parent,te=K}}scheduleTask(t){if(t.zone&&t.zone!==this){let y=this;for(;y;){if(y===t.zone)throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${t.zone.name}`);y=y.parent}}t._transitionTo(q,j);const o=[];t._zoneDelegates=o,t._zone=this;try{t=this._zoneDelegate.scheduleTask(this,t)}catch(y){throw t._transitionTo(Y,q,j),this._zoneDelegate.handleError(this,y),y}return t._zoneDelegates===o&&this._updateTaskCount(t,1),t.state==q&&t._transitionTo(O,q),t}scheduleMicroTask(t,o,y,P){return this.scheduleTask(new m(v,t,o,y,P,void 0))}scheduleMacroTask(t,o,y,P,K){return this.scheduleTask(new m(M,t,o,y,P,K))}scheduleEventTask(t,o,y,P,K){return this.scheduleTask(new m(R,t,o,y,P,K))}cancelTask(t){if(t.zone!=this)throw new Error("A task can only be cancelled in the zone of creation! (Creation: "+(t.zone||z).name+"; Execution: "+this.name+")");t._transitionTo(A,O,X);try{this._zoneDelegate.cancelTask(this,t)}catch(o){throw t._transitionTo(Y,A),this._zoneDelegate.handleError(this,o),o}return this._updateTaskCount(t,-1),t._transitionTo(j,A),t.runCount=0,t}_updateTaskCount(t,o){const y=t._zoneDelegates;-1==o&&(t._zoneDelegates=null);for(let P=0;PI.hasTask(t,o),onScheduleTask:(I,p,t,o)=>I.scheduleTask(t,o),onInvokeTask:(I,p,t,o,y,P)=>I.invokeTask(t,o,y,P),onCancelTask:(I,p,t,o)=>I.cancelTask(t,o)};class T{constructor(p,t,o){this._taskCounts={microTask:0,macroTask:0,eventTask:0},this.zone=p,this._parentDelegate=t,this._forkZS=o&&(o&&o.onFork?o:t._forkZS),this._forkDlgt=o&&(o.onFork?t:t._forkDlgt),this._forkCurrZone=o&&(o.onFork?this.zone:t._forkCurrZone),this._interceptZS=o&&(o.onIntercept?o:t._interceptZS),this._interceptDlgt=o&&(o.onIntercept?t:t._interceptDlgt),this._interceptCurrZone=o&&(o.onIntercept?this.zone:t._interceptCurrZone),this._invokeZS=o&&(o.onInvoke?o:t._invokeZS),this._invokeDlgt=o&&(o.onInvoke?t:t._invokeDlgt),this._invokeCurrZone=o&&(o.onInvoke?this.zone:t._invokeCurrZone),this._handleErrorZS=o&&(o.onHandleError?o:t._handleErrorZS),this._handleErrorDlgt=o&&(o.onHandleError?t:t._handleErrorDlgt),this._handleErrorCurrZone=o&&(o.onHandleError?this.zone:t._handleErrorCurrZone),this._scheduleTaskZS=o&&(o.onScheduleTask?o:t._scheduleTaskZS),this._scheduleTaskDlgt=o&&(o.onScheduleTask?t:t._scheduleTaskDlgt),this._scheduleTaskCurrZone=o&&(o.onScheduleTask?this.zone:t._scheduleTaskCurrZone),this._invokeTaskZS=o&&(o.onInvokeTask?o:t._invokeTaskZS),this._invokeTaskDlgt=o&&(o.onInvokeTask?t:t._invokeTaskDlgt),this._invokeTaskCurrZone=o&&(o.onInvokeTask?this.zone:t._invokeTaskCurrZone),this._cancelTaskZS=o&&(o.onCancelTask?o:t._cancelTaskZS),this._cancelTaskDlgt=o&&(o.onCancelTask?t:t._cancelTaskDlgt),this._cancelTaskCurrZone=o&&(o.onCancelTask?this.zone:t._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;const y=o&&o.onHasTask;(y||t&&t._hasTaskZS)&&(this._hasTaskZS=y?o:g,this._hasTaskDlgt=t,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=p,o.onScheduleTask||(this._scheduleTaskZS=g,this._scheduleTaskDlgt=t,this._scheduleTaskCurrZone=this.zone),o.onInvokeTask||(this._invokeTaskZS=g,this._invokeTaskDlgt=t,this._invokeTaskCurrZone=this.zone),o.onCancelTask||(this._cancelTaskZS=g,this._cancelTaskDlgt=t,this._cancelTaskCurrZone=this.zone))}fork(p,t){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,p,t):new _(p,t)}intercept(p,t,o){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,p,t,o):t}invoke(p,t,o,y,P){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,p,t,o,y,P):t.apply(o,y)}handleError(p,t){return!this._handleErrorZS||this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,p,t)}scheduleTask(p,t){let o=t;if(this._scheduleTaskZS)this._hasTaskZS&&o._zoneDelegates.push(this._hasTaskDlgtOwner),o=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,p,t),o||(o=t);else if(t.scheduleFn)t.scheduleFn(t);else{if(t.type!=v)throw new Error("Task is missing scheduleFn.");d(t)}return o}invokeTask(p,t,o,y){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,p,t,o,y):t.callback.apply(o,y)}cancelTask(p,t){let o;if(this._cancelTaskZS)o=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,p,t);else{if(!t.cancelFn)throw Error("Task is not cancelable");o=t.cancelFn(t)}return o}hasTask(p,t){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,p,t)}catch(o){this.handleError(p,o)}}_updateTaskCount(p,t){const o=this._taskCounts,y=o[p],P=o[p]=y+t;if(P<0)throw new Error("More tasks executed then were scheduled.");0!=y&&0!=P||this.hasTask(this.zone,{microTask:o.microTask>0,macroTask:o.macroTask>0,eventTask:o.eventTask>0,change:p})}}class m{constructor(p,t,o,y,P,K){if(this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state="notScheduled",this.type=p,this.source=t,this.data=y,this.scheduleFn=P,this.cancelFn=K,!o)throw new Error("callback is not defined");this.callback=o;const l=this;this.invoke=p===R&&y&&y.useG?m.invokeTask:function(){return m.invokeTask.call(e,l,this,arguments)}}static invokeTask(p,t,o){p||(p=this),re++;try{return p.runCount++,p.zone.runTask(p,t,o)}finally{1==re&&L(),re--}}get zone(){return this._zone}get state(){return this._state}cancelScheduleRequest(){this._transitionTo(j,q)}_transitionTo(p,t,o){if(this._state!==t&&this._state!==o)throw new Error(`${this.type} '${this.source}': can not transition to '${p}', expecting state '${t}'${o?" or '"+o+"'":""}, was '${this._state}'.`);this._state=p,p==j&&(this._zoneDelegates=null)}toString(){return this.data&&typeof this.data.handleId<"u"?this.data.handleId.toString():Object.prototype.toString.call(this)}toJSON(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}}}const S=u("setTimeout"),D=u("Promise"),Z=u("then");let E,B=[],G=!1;function d(I){if(0===re&&0===B.length)if(E||e[D]&&(E=e[D].resolve(0)),E){let p=E[Z];p||(p=E.then),p.call(E,L)}else e[S](L,0);I&&B.push(I)}function L(){if(!G){for(G=!0;B.length;){const I=B;B=[];for(let p=0;pV,onUnhandledError:F,microtaskDrainDone:F,scheduleMicroTask:d,showUncaughtError:()=>!_[u("ignoreConsoleErrorUncaughtError")],patchEventTarget:()=>[],patchOnProperties:F,patchMethod:()=>F,bindArguments:()=>[],patchThen:()=>F,patchMacroTask:()=>F,patchEventPrototype:()=>F,isIEOrEdge:()=>!1,getGlobalObjects:()=>{},ObjectDefineProperty:()=>F,ObjectGetOwnPropertyDescriptor:()=>{},ObjectCreate:()=>{},ArraySlice:()=>[],patchClass:()=>F,wrapWithCurrentZone:()=>F,filterProperties:()=>[],attachOriginToPatched:()=>F,_redefineProperty:()=>F,patchCallbacks:()=>F};let V={parent:null,zone:new _(null,null)},te=null,re=0;function F(){}r("Zone","Zone"),e.Zone=_}(typeof window<"u"&&window||typeof self<"u"&&self||global);const ue=Object.getOwnPropertyDescriptor,he=Object.defineProperty,de=Object.getPrototypeOf,Be=Object.create,ut=Array.prototype.slice,Se="addEventListener",Oe="removeEventListener",Ze=Zone.__symbol__(Se),Ie=Zone.__symbol__(Oe),se="true",ie="false",ke=Zone.__symbol__("");function Le(e,n){return Zone.current.wrap(e,n)}function Me(e,n,i,r,c){return Zone.current.scheduleMacroTask(e,n,i,r,c)}const x=Zone.__symbol__,Pe=typeof window<"u",pe=Pe?window:void 0,$=Pe&&pe||"object"==typeof self&&self||global,ht=[null];function Ae(e,n){for(let i=e.length-1;i>=0;i--)"function"==typeof e[i]&&(e[i]=Le(e[i],n+"_"+i));return e}function Fe(e){return!e||!1!==e.writable&&!("function"==typeof e.get&&typeof e.set>"u")}const Ue=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope,Re=!("nw"in $)&&typeof $.process<"u"&&"[object process]"==={}.toString.call($.process),je=!Re&&!Ue&&!(!Pe||!pe.HTMLElement),We=typeof $.process<"u"&&"[object process]"==={}.toString.call($.process)&&!Ue&&!(!Pe||!pe.HTMLElement),Ce={},qe=function(e){if(!(e=e||$.event))return;let n=Ce[e.type];n||(n=Ce[e.type]=x("ON_PROPERTY"+e.type));const i=this||e.target||$,r=i[n];let c;if(je&&i===pe&&"error"===e.type){const u=e;c=r&&r.call(this,u.message,u.filename,u.lineno,u.colno,u.error),!0===c&&e.preventDefault()}else c=r&&r.apply(this,arguments),null!=c&&!c&&e.preventDefault();return c};function Xe(e,n,i){let r=ue(e,n);if(!r&&i&&ue(i,n)&&(r={enumerable:!0,configurable:!0}),!r||!r.configurable)return;const c=x("on"+n+"patched");if(e.hasOwnProperty(c)&&e[c])return;delete r.writable,delete r.value;const u=r.get,f=r.set,_=n.substr(2);let g=Ce[_];g||(g=Ce[_]=x("ON_PROPERTY"+_)),r.set=function(T){let m=this;!m&&e===$&&(m=$),m&&(m[g]&&m.removeEventListener(_,qe),f&&f.apply(m,ht),"function"==typeof T?(m[g]=T,m.addEventListener(_,qe,!1)):m[g]=null)},r.get=function(){let T=this;if(!T&&e===$&&(T=$),!T)return null;const m=T[g];if(m)return m;if(u){let S=u&&u.call(this);if(S)return r.set.call(this,S),"function"==typeof T.removeAttribute&&T.removeAttribute(n),S}return null},he(e,n,r),e[c]=!0}function Ye(e,n,i){if(n)for(let r=0;rfunction(f,_){const g=i(f,_);return g.cbIdx>=0&&"function"==typeof _[g.cbIdx]?Me(g.name,_[g.cbIdx],g,c):u.apply(f,_)})}function ae(e,n){e[x("OriginalDelegate")]=n}let $e=!1,He=!1;function mt(){if($e)return He;$e=!0;try{const e=pe.navigator.userAgent;(-1!==e.indexOf("MSIE ")||-1!==e.indexOf("Trident/")||-1!==e.indexOf("Edge/"))&&(He=!0)}catch{}return He}Zone.__load_patch("ZoneAwarePromise",(e,n,i)=>{const r=Object.getOwnPropertyDescriptor,c=Object.defineProperty,f=i.symbol,_=[],g=!0===e[f("DISABLE_WRAPPING_UNCAUGHT_PROMISE_REJECTION")],T=f("Promise"),m=f("then");i.onUnhandledError=l=>{if(i.showUncaughtError()){const s=l&&l.rejection;s?console.error("Unhandled Promise rejection:",s instanceof Error?s.message:s,"; Zone:",l.zone.name,"; Task:",l.task&&l.task.source,"; Value:",s,s instanceof Error?s.stack:void 0):console.error(l)}},i.microtaskDrainDone=()=>{for(;_.length;){const l=_.shift();try{l.zone.runGuarded(()=>{throw l.throwOriginal?l.rejection:l})}catch(s){Z(s)}}};const D=f("unhandledPromiseRejectionHandler");function Z(l){i.onUnhandledError(l);try{const s=n[D];"function"==typeof s&&s.call(this,l)}catch{}}function B(l){return l&&l.then}function G(l){return l}function E(l){return t.reject(l)}const d=f("state"),L=f("value"),z=f("finally"),j=f("parentPromiseValue"),q=f("parentPromiseState"),X=null,A=!0,Y=!1;function M(l,s){return a=>{try{V(l,s,a)}catch(h){V(l,!1,h)}}}const le=f("currentTaskTrace");function V(l,s,a){const h=function(){let l=!1;return function(a){return function(){l||(l=!0,a.apply(null,arguments))}}}();if(l===a)throw new TypeError("Promise resolved with itself");if(l[d]===X){let w=null;try{("object"==typeof a||"function"==typeof a)&&(w=a&&a.then)}catch(C){return h(()=>{V(l,!1,C)})(),l}if(s!==Y&&a instanceof t&&a.hasOwnProperty(d)&&a.hasOwnProperty(L)&&a[d]!==X)re(a),V(l,a[d],a[L]);else if(s!==Y&&"function"==typeof w)try{w.call(a,h(M(l,s)),h(M(l,!1)))}catch(C){h(()=>{V(l,!1,C)})()}else{l[d]=s;const C=l[L];if(l[L]=a,l[z]===z&&s===A&&(l[d]=l[q],l[L]=l[j]),s===Y&&a instanceof Error){const k=n.currentTask&&n.currentTask.data&&n.currentTask.data.__creationTrace__;k&&c(a,le,{configurable:!0,enumerable:!1,writable:!0,value:k})}for(let k=0;k{try{const b=l[L],N=!!a&&z===a[z];N&&(a[j]=b,a[q]=C);const H=s.run(k,void 0,N&&k!==E&&k!==G?[]:[b]);V(a,!0,H)}catch(b){V(a,!1,b)}},a)}const p=function(){};class t{static toString(){return"function ZoneAwarePromise() { [native code] }"}static resolve(s){return V(new this(null),A,s)}static reject(s){return V(new this(null),Y,s)}static race(s){let a,h,w=new this((b,N)=>{a=b,h=N});function C(b){a(b)}function k(b){h(b)}for(let b of s)B(b)||(b=this.resolve(b)),b.then(C,k);return w}static all(s){return t.allWithCallback(s)}static allSettled(s){return(this&&this.prototype instanceof t?this:t).allWithCallback(s,{thenCallback:h=>({status:"fulfilled",value:h}),errorCallback:h=>({status:"rejected",reason:h})})}static allWithCallback(s,a){let h,w,C=new this((H,U)=>{h=H,w=U}),k=2,b=0;const N=[];for(let H of s){B(H)||(H=this.resolve(H));const U=b;try{H.then(Q=>{N[U]=a?a.thenCallback(Q):Q,k--,0===k&&h(N)},Q=>{a?(N[U]=a.errorCallback(Q),k--,0===k&&h(N)):w(Q)})}catch(Q){w(Q)}k++,b++}return k-=2,0===k&&h(N),C}constructor(s){const a=this;if(!(a instanceof t))throw new Error("Must be an instanceof Promise.");a[d]=X,a[L]=[];try{s&&s(M(a,A),M(a,Y))}catch(h){V(a,!1,h)}}get[Symbol.toStringTag](){return"Promise"}get[Symbol.species](){return t}then(s,a){let h=this.constructor[Symbol.species];(!h||"function"!=typeof h)&&(h=this.constructor||t);const w=new h(p),C=n.current;return this[d]==X?this[L].push(C,w,s,a):F(this,C,w,s,a),w}catch(s){return this.then(null,s)}finally(s){let a=this.constructor[Symbol.species];(!a||"function"!=typeof a)&&(a=t);const h=new a(p);h[z]=z;const w=n.current;return this[d]==X?this[L].push(w,h,s,s):F(this,w,h,s,s),h}}t.resolve=t.resolve,t.reject=t.reject,t.race=t.race,t.all=t.all;const o=e[T]=e.Promise;e.Promise=t;const y=f("thenPatched");function P(l){const s=l.prototype,a=r(s,"then");if(a&&(!1===a.writable||!a.configurable))return;const h=s.then;s[m]=h,l.prototype.then=function(w,C){return new t((b,N)=>{h.call(this,b,N)}).then(w,C)},l[y]=!0}return i.patchThen=P,o&&(P(o),ce(e,"fetch",l=>function K(l){return function(s,a){let h=l.apply(s,a);if(h instanceof t)return h;let w=h.constructor;return w[y]||P(w),h}}(l))),Promise[n.__symbol__("uncaughtPromiseErrors")]=_,t}),Zone.__load_patch("toString",e=>{const n=Function.prototype.toString,i=x("OriginalDelegate"),r=x("Promise"),c=x("Error"),u=function(){if("function"==typeof this){const T=this[i];if(T)return"function"==typeof T?n.call(T):Object.prototype.toString.call(T);if(this===Promise){const m=e[r];if(m)return n.call(m)}if(this===Error){const m=e[c];if(m)return n.call(m)}}return n.call(this)};u[i]=n,Function.prototype.toString=u;const f=Object.prototype.toString;Object.prototype.toString=function(){return"function"==typeof Promise&&this instanceof Promise?"[object Promise]":f.call(this)}});let me=!1;if(typeof window<"u")try{const e=Object.defineProperty({},"passive",{get:function(){me=!0}});window.addEventListener("test",e,e),window.removeEventListener("test",e,e)}catch{me=!1}const Et={useG:!0},ee={},Ke={},Je=new RegExp("^"+ke+"(\\w+)(true|false)$"),xe=x("propagationStopped");function Qe(e,n){const i=(n?n(e):e)+ie,r=(n?n(e):e)+se,c=ke+i,u=ke+r;ee[e]={},ee[e][ie]=c,ee[e][se]=u}function Tt(e,n,i){const r=i&&i.add||Se,c=i&&i.rm||Oe,u=i&&i.listeners||"eventListeners",f=i&&i.rmAll||"removeAllListeners",_=x(r),g="."+r+":",S=function(E,d,L){if(E.isRemoved)return;const z=E.callback;"object"==typeof z&&z.handleEvent&&(E.callback=q=>z.handleEvent(q),E.originalDelegate=z),E.invoke(E,d,[L]);const j=E.options;j&&"object"==typeof j&&j.once&&d[c].call(d,L.type,E.originalDelegate?E.originalDelegate:E.callback,j)},D=function(E){if(!(E=E||e.event))return;const d=this||E.target||e,L=d[ee[E.type][ie]];if(L)if(1===L.length)S(L[0],d,E);else{const z=L.slice();for(let j=0;jfunction(c,u){c[xe]=!0,r&&r.apply(c,u)})}function gt(e,n,i,r,c){const u=Zone.__symbol__(r);if(n[u])return;const f=n[u]=n[r];n[r]=function(_,g,T){return g&&g.prototype&&c.forEach(function(m){const S=`${i}.${r}::`+m,D=g.prototype;if(D.hasOwnProperty(m)){const Z=e.ObjectGetOwnPropertyDescriptor(D,m);Z&&Z.value?(Z.value=e.wrapWithCurrentZone(Z.value,S),e._redefineProperty(g.prototype,m,Z)):D[m]&&(D[m]=e.wrapWithCurrentZone(D[m],S))}else D[m]&&(D[m]=e.wrapWithCurrentZone(D[m],S))}),f.call(n,_,g,T)},e.attachOriginToPatched(n[r],f)}const Ge=["absolutedeviceorientation","afterinput","afterprint","appinstalled","beforeinstallprompt","beforeprint","beforeunload","devicelight","devicemotion","deviceorientation","deviceorientationabsolute","deviceproximity","hashchange","languagechange","message","mozbeforepaint","offline","online","paint","pageshow","pagehide","popstate","rejectionhandled","storage","unhandledrejection","unload","userproximity","vrdisplayconnected","vrdisplaydisconnected","vrdisplaypresentchange"],wt=["encrypted","waitingforkey","msneedkey","mozinterruptbegin","mozinterruptend"],tt=["load"],nt=["blur","error","focus","load","resize","scroll","messageerror"],Dt=["bounce","finish","start"],rt=["loadstart","progress","abort","error","load","progress","timeout","loadend","readystatechange"],Ee=["upgradeneeded","complete","abort","success","error","blocked","versionchange","close"],St=["close","error","open","message"],Ot=["error","message"],Te=["abort","animationcancel","animationend","animationiteration","auxclick","beforeinput","blur","cancel","canplay","canplaythrough","change","compositionstart","compositionupdate","compositionend","cuechange","click","close","contextmenu","curechange","dblclick","drag","dragend","dragenter","dragexit","dragleave","dragover","drop","durationchange","emptied","ended","error","focus","focusin","focusout","gotpointercapture","input","invalid","keydown","keypress","keyup","load","loadstart","loadeddata","loadedmetadata","lostpointercapture","mousedown","mouseenter","mouseleave","mousemove","mouseout","mouseover","mouseup","mousewheel","orientationchange","pause","play","playing","pointercancel","pointerdown","pointerenter","pointerleave","pointerlockchange","mozpointerlockchange","webkitpointerlockerchange","pointerlockerror","mozpointerlockerror","webkitpointerlockerror","pointermove","pointout","pointerover","pointerup","progress","ratechange","reset","resize","scroll","seeked","seeking","select","selectionchange","selectstart","show","sort","stalled","submit","suspend","timeupdate","volumechange","touchcancel","touchmove","touchstart","touchend","transitioncancel","transitionend","waiting","wheel"].concat(["webglcontextrestored","webglcontextlost","webglcontextcreationerror"],["autocomplete","autocompleteerror"],["toggle"],["afterscriptexecute","beforescriptexecute","DOMContentLoaded","freeze","fullscreenchange","mozfullscreenchange","webkitfullscreenchange","msfullscreenchange","fullscreenerror","mozfullscreenerror","webkitfullscreenerror","msfullscreenerror","readystatechange","visibilitychange","resume"],Ge,["beforecopy","beforecut","beforepaste","copy","cut","paste","dragstart","loadend","animationstart","search","transitionrun","transitionstart","webkitanimationend","webkitanimationiteration","webkitanimationstart","webkittransitionend"],["activate","afterupdate","ariarequest","beforeactivate","beforedeactivate","beforeeditfocus","beforeupdate","cellchange","controlselect","dataavailable","datasetchanged","datasetcomplete","errorupdate","filterchange","layoutcomplete","losecapture","move","moveend","movestart","propertychange","resizeend","resizestart","rowenter","rowexit","rowsdelete","rowsinserted","command","compassneedscalibration","deactivate","help","mscontentzoom","msmanipulationstatechanged","msgesturechange","msgesturedoubletap","msgestureend","msgesturehold","msgesturestart","msgesturetap","msgotpointercapture","msinertiastart","mslostpointercapture","mspointercancel","mspointerdown","mspointerenter","mspointerhover","mspointerleave","mspointermove","mspointerout","mspointerover","mspointerup","pointerout","mssitemodejumplistitemremoved","msthumbnailclick","stop","storagecommit"]);function ot(e,n,i){if(!i||0===i.length)return n;const r=i.filter(u=>u.target===e);if(!r||0===r.length)return n;const c=r[0].ignoreProperties;return n.filter(u=>-1===c.indexOf(u))}function W(e,n,i,r){e&&Ye(e,ot(e,n,i),r)}Zone.__load_patch("util",(e,n,i)=>{i.patchOnProperties=Ye,i.patchMethod=ce,i.bindArguments=Ae,i.patchMacroTask=_t;const r=n.__symbol__("BLACK_LISTED_EVENTS"),c=n.__symbol__("UNPATCHED_EVENTS");e[c]&&(e[r]=e[c]),e[r]&&(n[r]=n[c]=e[r]),i.patchEventPrototype=yt,i.patchEventTarget=Tt,i.isIEOrEdge=mt,i.ObjectDefineProperty=he,i.ObjectGetOwnPropertyDescriptor=ue,i.ObjectCreate=Be,i.ArraySlice=ut,i.patchClass=ve,i.wrapWithCurrentZone=Le,i.filterProperties=ot,i.attachOriginToPatched=ae,i._redefineProperty=Object.defineProperty,i.patchCallbacks=gt,i.getGlobalObjects=()=>({globalSources:Ke,zoneSymbolEventNames:ee,eventNames:Te,isBrowser:je,isMix:We,isNode:Re,TRUE_STR:se,FALSE_STR:ie,ZONE_SYMBOL_PREFIX:ke,ADD_EVENT_LISTENER_STR:Se,REMOVE_EVENT_LISTENER_STR:Oe})});const Ne=x("zoneTask");function ye(e,n,i,r){let c=null,u=null;i+=r;const f={};function _(T){const m=T.data;return m.args[0]=function(){return T.invoke.apply(this,arguments)},m.handleId=c.apply(e,m.args),T}function g(T){return u.call(e,T.data.handleId)}c=ce(e,n+=r,T=>function(m,S){if("function"==typeof S[0]){const D={isPeriodic:"Interval"===r,delay:"Timeout"===r||"Interval"===r?S[1]||0:void 0,args:S},Z=S[0];S[0]=function(){try{return Z.apply(this,arguments)}finally{D.isPeriodic||("number"==typeof D.handleId?delete f[D.handleId]:D.handleId&&(D.handleId[Ne]=null))}};const B=Me(n,S[0],D,_,g);if(!B)return B;const G=B.data.handleId;return"number"==typeof G?f[G]=B:G&&(G[Ne]=B),G&&G.ref&&G.unref&&"function"==typeof G.ref&&"function"==typeof G.unref&&(B.ref=G.ref.bind(G),B.unref=G.unref.bind(G)),"number"==typeof G||G?G:B}return T.apply(e,S)}),u=ce(e,i,T=>function(m,S){const D=S[0];let Z;"number"==typeof D?Z=f[D]:(Z=D&&D[Ne],Z||(Z=D)),Z&&"string"==typeof Z.type?"notScheduled"!==Z.state&&(Z.cancelFn&&Z.data.isPeriodic||0===Z.runCount)&&("number"==typeof D?delete f[D]:D&&(D[Ne]=null),Z.zone.cancelTask(Z)):T.apply(e,S)})}Zone.__load_patch("legacy",e=>{const n=e[Zone.__symbol__("legacyPatch")];n&&n()}),Zone.__load_patch("queueMicrotask",(e,n,i)=>{i.patchMethod(e,"queueMicrotask",r=>function(c,u){n.current.scheduleMicroTask("queueMicrotask",u[0])})}),Zone.__load_patch("timers",e=>{const n="set",i="clear";ye(e,n,i,"Timeout"),ye(e,n,i,"Interval"),ye(e,n,i,"Immediate")}),Zone.__load_patch("requestAnimationFrame",e=>{ye(e,"request","cancel","AnimationFrame"),ye(e,"mozRequest","mozCancel","AnimationFrame"),ye(e,"webkitRequest","webkitCancel","AnimationFrame")}),Zone.__load_patch("blocking",(e,n)=>{const i=["alert","prompt","confirm"];for(let r=0;rfunction(g,T){return n.current.run(u,e,T,_)})}),Zone.__load_patch("EventTarget",(e,n,i)=>{(function Mt(e,n){n.patchEventPrototype(e,n)})(e,i),function Lt(e,n){if(Zone[n.symbol("patchEventTarget")])return;const{eventNames:i,zoneSymbolEventNames:r,TRUE_STR:c,FALSE_STR:u,ZONE_SYMBOL_PREFIX:f}=n.getGlobalObjects();for(let g=0;g{ve("MutationObserver"),ve("WebKitMutationObserver")}),Zone.__load_patch("IntersectionObserver",(e,n,i)=>{ve("IntersectionObserver")}),Zone.__load_patch("FileReader",(e,n,i)=>{ve("FileReader")}),Zone.__load_patch("on_property",(e,n,i)=>{!function Zt(e,n){if(Re&&!We||Zone[e.symbol("patchEvents")])return;const i=typeof WebSocket<"u",r=n.__Zone_ignore_on_properties;if(je){const f=window,_=function pt(){try{const e=pe.navigator.userAgent;if(-1!==e.indexOf("MSIE ")||-1!==e.indexOf("Trident/"))return!0}catch{}return!1}()?[{target:f,ignoreProperties:["error"]}]:[];W(f,Te.concat(["messageerror"]),r&&r.concat(_),de(f)),W(Document.prototype,Te,r),typeof f.SVGElement<"u"&&W(f.SVGElement.prototype,Te,r),W(Element.prototype,Te,r),W(HTMLElement.prototype,Te,r),W(HTMLMediaElement.prototype,wt,r),W(HTMLFrameSetElement.prototype,Ge.concat(nt),r),W(HTMLBodyElement.prototype,Ge.concat(nt),r),W(HTMLFrameElement.prototype,tt,r),W(HTMLIFrameElement.prototype,tt,r);const g=f.HTMLMarqueeElement;g&&W(g.prototype,Dt,r);const T=f.Worker;T&&W(T.prototype,Ot,r)}const c=n.XMLHttpRequest;c&&W(c.prototype,rt,r);const u=n.XMLHttpRequestEventTarget;u&&W(u&&u.prototype,rt,r),typeof IDBIndex<"u"&&(W(IDBIndex.prototype,Ee,r),W(IDBRequest.prototype,Ee,r),W(IDBOpenDBRequest.prototype,Ee,r),W(IDBDatabase.prototype,Ee,r),W(IDBTransaction.prototype,Ee,r),W(IDBCursor.prototype,Ee,r)),i&&W(WebSocket.prototype,St,r)}(i,e)}),Zone.__load_patch("customElements",(e,n,i)=>{!function It(e,n){const{isBrowser:i,isMix:r}=n.getGlobalObjects();(i||r)&&e.customElements&&"customElements"in e&&n.patchCallbacks(n,e.customElements,"customElements","define",["connectedCallback","disconnectedCallback","adoptedCallback","attributeChangedCallback"])}(e,i)}),Zone.__load_patch("XHR",(e,n)=>{!function g(T){const m=T.XMLHttpRequest;if(!m)return;const S=m.prototype;let Z=S[Ze],B=S[Ie];if(!Z){const v=T.XMLHttpRequestEventTarget;if(v){const M=v.prototype;Z=M[Ze],B=M[Ie]}}const G="readystatechange",E="scheduled";function d(v){const M=v.data,R=M.target;R[u]=!1,R[_]=!1;const J=R[c];Z||(Z=R[Ze],B=R[Ie]),J&&B.call(R,G,J);const le=R[c]=()=>{if(R.readyState===R.DONE)if(!M.aborted&&R[u]&&v.state===E){const te=R[n.__symbol__("loadfalse")];if(0!==R.status&&te&&te.length>0){const re=v.invoke;v.invoke=function(){const F=R[n.__symbol__("loadfalse")];for(let I=0;Ifunction(v,M){return v[r]=0==M[2],v[f]=M[1],j.apply(v,M)}),O=x("fetchTaskAborting"),X=x("fetchTaskScheduling"),A=ce(S,"send",()=>function(v,M){if(!0===n.current[X]||v[r])return A.apply(v,M);{const R={target:v,url:v[f],isPeriodic:!1,args:M,aborted:!1},J=Me("XMLHttpRequest.send",L,R,d,z);v&&!0===v[_]&&!R.aborted&&J.state===E&&J.invoke()}}),Y=ce(S,"abort",()=>function(v,M){const R=function D(v){return v[i]}(v);if(R&&"string"==typeof R.type){if(null==R.cancelFn||R.data&&R.data.aborted)return;R.zone.cancelTask(R)}else if(!0===n.current[O])return Y.apply(v,M)})}(e);const i=x("xhrTask"),r=x("xhrSync"),c=x("xhrListener"),u=x("xhrScheduled"),f=x("xhrURL"),_=x("xhrErrorBeforeScheduled")}),Zone.__load_patch("geolocation",e=>{e.navigator&&e.navigator.geolocation&&function dt(e,n){const i=e.constructor.name;for(let r=0;r{const g=function(){return _.apply(this,Ae(arguments,i+"."+c))};return ae(g,_),g})(u)}}}(e.navigator.geolocation,["getCurrentPosition","watchPosition"])}),Zone.__load_patch("PromiseRejectionEvent",(e,n)=>{function i(r){return function(c){et(e,r).forEach(f=>{const _=e.PromiseRejectionEvent;if(_){const g=new _(r,{promise:c.promise,reason:c.rejection});f.invoke(g)}})}}e.PromiseRejectionEvent&&(n[x("unhandledPromiseRejectionHandler")]=i("unhandledrejection"),n[x("rejectionHandledHandler")]=i("rejectionhandled"))})}},we=>{we(we.s=435)}]); \ No newline at end of file diff --git a/docs/pro.html b/docs/pro.html index 6a4e6d38..7916fab2 100644 --- a/docs/pro.html +++ b/docs/pro.html @@ -22,5 +22,5 @@ h.appendChild(s); } - + \ No newline at end of file diff --git a/docs/resources/SampleReports.zip b/docs/resources/SampleReports.zip index ffb8f620..49a030ef 100644 Binary files a/docs/resources/SampleReports.zip and b/docs/resources/SampleReports.zip differ diff --git a/docs/resources/badge.svg b/docs/resources/badge.svg index 71c03815..d2d23fd6 100644 --- a/docs/resources/badge.svg +++ b/docs/resources/badge.svg @@ -1,28 +1,46 @@ + \ No newline at end of file diff --git a/docs/resources/features/details@1x.webp b/docs/resources/features/details@1x.webp new file mode 100644 index 00000000..25bf28c8 Binary files /dev/null and b/docs/resources/features/details@1x.webp differ diff --git a/docs/resources/features/details@2x.webp b/docs/resources/features/details@2x.webp new file mode 100644 index 00000000..9f03e9f0 Binary files /dev/null and b/docs/resources/features/details@2x.webp differ diff --git a/docs/resources/features/history@1x.webp b/docs/resources/features/history@1x.webp new file mode 100644 index 00000000..dc24d989 Binary files /dev/null and b/docs/resources/features/history@1x.webp differ diff --git a/docs/resources/features/history@2x.webp b/docs/resources/features/history@2x.webp new file mode 100644 index 00000000..2475d119 Binary files /dev/null and b/docs/resources/features/history@2x.webp differ diff --git a/docs/resources/features/metrics_details@1x.webp b/docs/resources/features/metrics_details@1x.webp new file mode 100644 index 00000000..772df3d0 Binary files /dev/null and b/docs/resources/features/metrics_details@1x.webp differ diff --git a/docs/resources/features/metrics_details@2x.webp b/docs/resources/features/metrics_details@2x.webp new file mode 100644 index 00000000..605bbbe0 Binary files /dev/null and b/docs/resources/features/metrics_details@2x.webp differ diff --git a/docs/resources/features/metrics_summary@1x.webp b/docs/resources/features/metrics_summary@1x.webp new file mode 100644 index 00000000..dcc35ca1 Binary files /dev/null and b/docs/resources/features/metrics_summary@1x.webp differ diff --git a/docs/resources/features/metrics_summary@2x.webp b/docs/resources/features/metrics_summary@2x.webp new file mode 100644 index 00000000..4b27f403 Binary files /dev/null and b/docs/resources/features/metrics_summary@2x.webp differ diff --git a/docs/resources/features/quota@1x.webp b/docs/resources/features/quota@1x.webp new file mode 100644 index 00000000..e1e5f563 Binary files /dev/null and b/docs/resources/features/quota@1x.webp differ diff --git a/docs/resources/features/quota@2x.webp b/docs/resources/features/quota@2x.webp new file mode 100644 index 00000000..81ce5d99 Binary files /dev/null and b/docs/resources/features/quota@2x.webp differ diff --git a/docs/resources/features/riskhotspots@1x.webp b/docs/resources/features/riskhotspots@1x.webp new file mode 100644 index 00000000..ae878d1b Binary files /dev/null and b/docs/resources/features/riskhotspots@1x.webp differ diff --git a/docs/resources/features/riskhotspots@2x.webp b/docs/resources/features/riskhotspots@2x.webp new file mode 100644 index 00000000..9eca7dbf Binary files /dev/null and b/docs/resources/features/riskhotspots@2x.webp differ diff --git a/docs/resources/features/summary@1x.webp b/docs/resources/features/summary@1x.webp new file mode 100644 index 00000000..f171e38a Binary files /dev/null and b/docs/resources/features/summary@1x.webp differ diff --git a/docs/resources/features/summary@2x.webp b/docs/resources/features/summary@2x.webp new file mode 100644 index 00000000..51f09d75 Binary files /dev/null and b/docs/resources/features/summary@2x.webp differ diff --git a/docs/resources/input_output.png b/docs/resources/input_output.png index 79f2aeb8..0086c9d2 100644 Binary files a/docs/resources/input_output.png and b/docs/resources/input_output.png differ diff --git a/docs/resources/logo.png b/docs/resources/logo.png index 0f04dbad..467e7504 100644 Binary files a/docs/resources/logo.png and b/docs/resources/logo.png differ diff --git a/docs/resources/logo.svg b/docs/resources/logo.svg new file mode 100644 index 00000000..873756b8 --- /dev/null +++ b/docs/resources/logo.svg @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/resources/logo_512.png b/docs/resources/logo_512.png index deb0ba25..fba22467 100644 Binary files a/docs/resources/logo_512.png and b/docs/resources/logo_512.png differ diff --git a/docs/resources/logo_cli_512.png b/docs/resources/logo_cli_512.png index 4ce4252e..7a3812c1 100644 Binary files a/docs/resources/logo_cli_512.png and b/docs/resources/logo_cli_512.png differ diff --git a/docs/resources/logo_global_512.png b/docs/resources/logo_global_512.png index 379444cd..77228c7b 100644 Binary files a/docs/resources/logo_global_512.png and b/docs/resources/logo_global_512.png differ diff --git a/docs/resources/logo_plugin_512.png b/docs/resources/logo_plugin_512.png index 5233544d..77b23b31 100644 Binary files a/docs/resources/logo_plugin_512.png and b/docs/resources/logo_plugin_512.png differ diff --git a/docs/resources/reports/Badges/badge_branchcoverage.png b/docs/resources/reports/Badges/badge_branchcoverage.png new file mode 100644 index 00000000..1c06e3c6 Binary files /dev/null and b/docs/resources/reports/Badges/badge_branchcoverage.png differ diff --git a/docs/resources/reports/Badges/badge_branchcoverage.svg b/docs/resources/reports/Badges/badge_branchcoverage.svg new file mode 100644 index 00000000..50c3513c --- /dev/null +++ b/docs/resources/reports/Badges/badge_branchcoverage.svg @@ -0,0 +1,113 @@ + + + Code coverage + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Generated by: ReportGenerator 5.1.14.0 + + + + Coverage + Coverage + + 50%50% + + + + + + Branch coverage + + + \ No newline at end of file diff --git a/docs/resources/reports/Badges/badge_combined.svg b/docs/resources/reports/Badges/badge_combined.svg new file mode 100644 index 00000000..a29db4fd --- /dev/null +++ b/docs/resources/reports/Badges/badge_combined.svg @@ -0,0 +1,113 @@ + + + Code coverage + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Generated by: ReportGenerator 5.1.14.0 + + + + Coverage + Coverage + 66.4%66.4% + 50%50% + 58.3%58.3% + + + + Line coverage + Branch coverage + Method coverage + + \ No newline at end of file diff --git a/docs/resources/reports/Badges/badge_linecoverage.png b/docs/resources/reports/Badges/badge_linecoverage.png new file mode 100644 index 00000000..ec52db91 Binary files /dev/null and b/docs/resources/reports/Badges/badge_linecoverage.png differ diff --git a/docs/resources/reports/Badges/badge_linecoverage.svg b/docs/resources/reports/Badges/badge_linecoverage.svg new file mode 100644 index 00000000..4f7d0c69 --- /dev/null +++ b/docs/resources/reports/Badges/badge_linecoverage.svg @@ -0,0 +1,113 @@ + + + Code coverage + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Generated by: ReportGenerator 5.1.14.0 + + + + Coverage + Coverage + 66.4%66.4% + + + + + + Line coverage + + + + \ No newline at end of file diff --git a/docs/resources/reports/Badges/badge_methodcoverage.png b/docs/resources/reports/Badges/badge_methodcoverage.png new file mode 100644 index 00000000..1b43ce8c Binary files /dev/null and b/docs/resources/reports/Badges/badge_methodcoverage.png differ diff --git a/docs/resources/reports/Badges/badge_methodcoverage.svg b/docs/resources/reports/Badges/badge_methodcoverage.svg new file mode 100644 index 00000000..255d3e8a --- /dev/null +++ b/docs/resources/reports/Badges/badge_methodcoverage.svg @@ -0,0 +1,113 @@ + + + Code coverage + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Generated by: ReportGenerator 5.1.14.0 + + + + Coverage + Coverage + + + 58.3%58.3% + + + + + + Method coverage + + \ No newline at end of file diff --git a/docs/resources/reports/Badges/badge_shieldsio_branchcoverage_blue.svg b/docs/resources/reports/Badges/badge_shieldsio_branchcoverage_blue.svg new file mode 100644 index 00000000..b9ef440d --- /dev/null +++ b/docs/resources/reports/Badges/badge_shieldsio_branchcoverage_blue.svg @@ -0,0 +1 @@ + coveragecoverage50%50% \ No newline at end of file diff --git a/docs/resources/reports/Badges/badge_shieldsio_branchcoverage_brightgreen.svg b/docs/resources/reports/Badges/badge_shieldsio_branchcoverage_brightgreen.svg new file mode 100644 index 00000000..5a8619f0 --- /dev/null +++ b/docs/resources/reports/Badges/badge_shieldsio_branchcoverage_brightgreen.svg @@ -0,0 +1 @@ + coveragecoverage50%50% \ No newline at end of file diff --git a/docs/resources/reports/Badges/badge_shieldsio_branchcoverage_green.svg b/docs/resources/reports/Badges/badge_shieldsio_branchcoverage_green.svg new file mode 100644 index 00000000..5aa02b45 --- /dev/null +++ b/docs/resources/reports/Badges/badge_shieldsio_branchcoverage_green.svg @@ -0,0 +1 @@ + coveragecoverage50%50% \ No newline at end of file diff --git a/docs/resources/reports/Badges/badge_shieldsio_branchcoverage_lightgrey.svg b/docs/resources/reports/Badges/badge_shieldsio_branchcoverage_lightgrey.svg new file mode 100644 index 00000000..8b6b9bf0 --- /dev/null +++ b/docs/resources/reports/Badges/badge_shieldsio_branchcoverage_lightgrey.svg @@ -0,0 +1 @@ + coveragecoverage50%50% \ No newline at end of file diff --git a/docs/resources/reports/Badges/badge_shieldsio_branchcoverage_orange.svg b/docs/resources/reports/Badges/badge_shieldsio_branchcoverage_orange.svg new file mode 100644 index 00000000..7b2381a6 --- /dev/null +++ b/docs/resources/reports/Badges/badge_shieldsio_branchcoverage_orange.svg @@ -0,0 +1 @@ + coveragecoverage50%50% \ No newline at end of file diff --git a/docs/resources/reports/Badges/badge_shieldsio_branchcoverage_red.svg b/docs/resources/reports/Badges/badge_shieldsio_branchcoverage_red.svg new file mode 100644 index 00000000..e8ba16b0 --- /dev/null +++ b/docs/resources/reports/Badges/badge_shieldsio_branchcoverage_red.svg @@ -0,0 +1 @@ + coveragecoverage50%50% \ No newline at end of file diff --git a/docs/resources/reports/Badges/badge_shieldsio_branchcoverage_yellow.svg b/docs/resources/reports/Badges/badge_shieldsio_branchcoverage_yellow.svg new file mode 100644 index 00000000..27862d72 --- /dev/null +++ b/docs/resources/reports/Badges/badge_shieldsio_branchcoverage_yellow.svg @@ -0,0 +1 @@ + coveragecoverage50%50% \ No newline at end of file diff --git a/docs/resources/reports/Badges/badge_shieldsio_branchcoverage_yellowgreen.svg b/docs/resources/reports/Badges/badge_shieldsio_branchcoverage_yellowgreen.svg new file mode 100644 index 00000000..01ac9043 --- /dev/null +++ b/docs/resources/reports/Badges/badge_shieldsio_branchcoverage_yellowgreen.svg @@ -0,0 +1 @@ + coveragecoverage50%50% \ No newline at end of file diff --git a/docs/resources/reports/Badges/badge_shieldsio_linecoverage_blue.svg b/docs/resources/reports/Badges/badge_shieldsio_linecoverage_blue.svg new file mode 100644 index 00000000..d85bffd1 --- /dev/null +++ b/docs/resources/reports/Badges/badge_shieldsio_linecoverage_blue.svg @@ -0,0 +1 @@ + coveragecoverage66%66% \ No newline at end of file diff --git a/docs/resources/reports/Badges/badge_shieldsio_linecoverage_brightgreen.svg b/docs/resources/reports/Badges/badge_shieldsio_linecoverage_brightgreen.svg new file mode 100644 index 00000000..095be8d9 --- /dev/null +++ b/docs/resources/reports/Badges/badge_shieldsio_linecoverage_brightgreen.svg @@ -0,0 +1 @@ + coveragecoverage66%66% \ No newline at end of file diff --git a/docs/resources/reports/Badges/badge_shieldsio_linecoverage_green.svg b/docs/resources/reports/Badges/badge_shieldsio_linecoverage_green.svg new file mode 100644 index 00000000..2a38bcfb --- /dev/null +++ b/docs/resources/reports/Badges/badge_shieldsio_linecoverage_green.svg @@ -0,0 +1 @@ + coveragecoverage66%66% \ No newline at end of file diff --git a/docs/resources/reports/Badges/badge_shieldsio_linecoverage_lightgrey.svg b/docs/resources/reports/Badges/badge_shieldsio_linecoverage_lightgrey.svg new file mode 100644 index 00000000..c7d67a2d --- /dev/null +++ b/docs/resources/reports/Badges/badge_shieldsio_linecoverage_lightgrey.svg @@ -0,0 +1 @@ + coveragecoverage66%66% \ No newline at end of file diff --git a/docs/resources/reports/Badges/badge_shieldsio_linecoverage_orange.svg b/docs/resources/reports/Badges/badge_shieldsio_linecoverage_orange.svg new file mode 100644 index 00000000..6f316bff --- /dev/null +++ b/docs/resources/reports/Badges/badge_shieldsio_linecoverage_orange.svg @@ -0,0 +1 @@ + coveragecoverage66%66% \ No newline at end of file diff --git a/docs/resources/reports/Badges/badge_shieldsio_linecoverage_red.svg b/docs/resources/reports/Badges/badge_shieldsio_linecoverage_red.svg new file mode 100644 index 00000000..28fc79cd --- /dev/null +++ b/docs/resources/reports/Badges/badge_shieldsio_linecoverage_red.svg @@ -0,0 +1 @@ + coveragecoverage66%66% \ No newline at end of file diff --git a/docs/resources/reports/Badges/badge_shieldsio_linecoverage_yellow.svg b/docs/resources/reports/Badges/badge_shieldsio_linecoverage_yellow.svg new file mode 100644 index 00000000..3fef2f8c --- /dev/null +++ b/docs/resources/reports/Badges/badge_shieldsio_linecoverage_yellow.svg @@ -0,0 +1 @@ + coveragecoverage66%66% \ No newline at end of file diff --git a/docs/resources/reports/Badges/badge_shieldsio_linecoverage_yellowgreen.svg b/docs/resources/reports/Badges/badge_shieldsio_linecoverage_yellowgreen.svg new file mode 100644 index 00000000..743ac22a --- /dev/null +++ b/docs/resources/reports/Badges/badge_shieldsio_linecoverage_yellowgreen.svg @@ -0,0 +1 @@ + coveragecoverage66%66% \ No newline at end of file diff --git a/docs/resources/reports/Badges/badge_shieldsio_methodcoverage_blue.svg b/docs/resources/reports/Badges/badge_shieldsio_methodcoverage_blue.svg new file mode 100644 index 00000000..e08b6a7f --- /dev/null +++ b/docs/resources/reports/Badges/badge_shieldsio_methodcoverage_blue.svg @@ -0,0 +1 @@ + coveragecoverage58%58% \ No newline at end of file diff --git a/docs/resources/reports/Badges/badge_shieldsio_methodcoverage_brightgreen.svg b/docs/resources/reports/Badges/badge_shieldsio_methodcoverage_brightgreen.svg new file mode 100644 index 00000000..4d52d96e --- /dev/null +++ b/docs/resources/reports/Badges/badge_shieldsio_methodcoverage_brightgreen.svg @@ -0,0 +1 @@ + coveragecoverage58%58% \ No newline at end of file diff --git a/docs/resources/reports/Badges/badge_shieldsio_methodcoverage_green.svg b/docs/resources/reports/Badges/badge_shieldsio_methodcoverage_green.svg new file mode 100644 index 00000000..f25876b5 --- /dev/null +++ b/docs/resources/reports/Badges/badge_shieldsio_methodcoverage_green.svg @@ -0,0 +1 @@ + coveragecoverage58%58% \ No newline at end of file diff --git a/docs/resources/reports/Badges/badge_shieldsio_methodcoverage_lightgrey.svg b/docs/resources/reports/Badges/badge_shieldsio_methodcoverage_lightgrey.svg new file mode 100644 index 00000000..44d2fd06 --- /dev/null +++ b/docs/resources/reports/Badges/badge_shieldsio_methodcoverage_lightgrey.svg @@ -0,0 +1 @@ + coveragecoverage58%58% \ No newline at end of file diff --git a/docs/resources/reports/Badges/badge_shieldsio_methodcoverage_orange.svg b/docs/resources/reports/Badges/badge_shieldsio_methodcoverage_orange.svg new file mode 100644 index 00000000..b6811cfd --- /dev/null +++ b/docs/resources/reports/Badges/badge_shieldsio_methodcoverage_orange.svg @@ -0,0 +1 @@ + coveragecoverage58%58% \ No newline at end of file diff --git a/docs/resources/reports/Badges/badge_shieldsio_methodcoverage_red.svg b/docs/resources/reports/Badges/badge_shieldsio_methodcoverage_red.svg new file mode 100644 index 00000000..e568cfe5 --- /dev/null +++ b/docs/resources/reports/Badges/badge_shieldsio_methodcoverage_red.svg @@ -0,0 +1 @@ + coveragecoverage58%58% \ No newline at end of file diff --git a/docs/resources/reports/Badges/badge_shieldsio_methodcoverage_yellow.svg b/docs/resources/reports/Badges/badge_shieldsio_methodcoverage_yellow.svg new file mode 100644 index 00000000..ee7bb898 --- /dev/null +++ b/docs/resources/reports/Badges/badge_shieldsio_methodcoverage_yellow.svg @@ -0,0 +1 @@ + coveragecoverage58%58% \ No newline at end of file diff --git a/docs/resources/reports/Badges/badge_shieldsio_methodcoverage_yellowgreen.svg b/docs/resources/reports/Badges/badge_shieldsio_methodcoverage_yellowgreen.svg new file mode 100644 index 00000000..6894be2f --- /dev/null +++ b/docs/resources/reports/Badges/badge_shieldsio_methodcoverage_yellowgreen.svg @@ -0,0 +1 @@ + coveragecoverage58%58% \ No newline at end of file diff --git a/docs/resources/reports/Badges/index.html b/docs/resources/reports/Badges/index.html new file mode 100644 index 00000000..d5ed29a4 --- /dev/null +++ b/docs/resources/reports/Badges/index.html @@ -0,0 +1,63 @@ + + + + + + + +Badges - ReportGenerator + + + +
+

Badges

+

Combined

+ + +
badge_combined.svg
+

Line coverage

+ + + + + + + + + + + +
badge_linecoverage.svg
 
badge_shieldsio_linecoverage_blue.svg
badge_shieldsio_linecoverage_brightgreen.svg
badge_shieldsio_linecoverage_green.svg
badge_shieldsio_linecoverage_lightgrey.svg
badge_shieldsio_linecoverage_orange.svg
badge_shieldsio_linecoverage_red.svg
badge_shieldsio_linecoverage_yellow.svg
badge_shieldsio_linecoverage_yellowgreen.svg
+

Branch coverage

+ + + + + + + + + + + + +
badge_branchcoverage.svg
 
badge_shieldsio_branchcoverage_blue.svg
badge_shieldsio_branchcoverage_brightgreen.svg
badge_shieldsio_branchcoverage_green.svg
badge_shieldsio_branchcoverage_lightgrey.svg
badge_shieldsio_branchcoverage_orange.svg
badge_shieldsio_branchcoverage_red.svg
badge_shieldsio_branchcoverage_yellow.svg
badge_shieldsio_branchcoverage_yellowgreen.svg
+

Method coverage

+ + + + + + + + + + + +
badge_methodcoverage.svg
 
badge_shieldsio_methodcoverage_blue.svg
badge_shieldsio_methodcoverage_brightgreen.svg
badge_shieldsio_methodcoverage_green.svg
badge_shieldsio_methodcoverage_lightgrey.svg
badge_shieldsio_methodcoverage_orange.svg
badge_shieldsio_methodcoverage_red.svg
badge_shieldsio_methodcoverage_yellow.svg
badge_shieldsio_methodcoverage_yellowgreen.svg
+
+ + \ No newline at end of file diff --git a/docs/resources/reports/Clover/Clover.xml b/docs/resources/reports/Clover/Clover.xml new file mode 100644 index 00000000..98a50ea5 --- /dev/null +++ b/docs/resources/reports/Clover/Clover.xml @@ -0,0 +1,167 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/resources/reports/Cobertura/Cobertura.xml b/docs/resources/reports/Cobertura/Cobertura.xml new file mode 100644 index 00000000..8bfc951a --- /dev/null +++ b/docs/resources/reports/Cobertura/Cobertura.xml @@ -0,0 +1,399 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/resources/reports/CsvSummary/Summary.csv b/docs/resources/reports/CsvSummary/Summary.csv new file mode 100644 index 00000000..f4919ff4 --- /dev/null +++ b/docs/resources/reports/CsvSummary/Summary.csv @@ -0,0 +1,18 @@ +Summary +Generated on:;18.01.2023 - 20:03:59 +Parser:;OpenCover +Assemblies:;1 +Classes:;4 +Files:;5 +Line coverage:;66.4% +Covered lines:;83 +Uncovered lines:;42 +Coverable lines:;125 +Total lines:;260 + +Sample;66.4% + +Sample.PartialClass;54.5% +Sample.TestClass;57.1% +Test.Program;79.5% +Test.TestClass2;63.1% diff --git a/docs/resources/reports/Html/Sample_PartialClass.html b/docs/resources/reports/Html/Sample_PartialClass.html new file mode 100644 index 00000000..59af14bc --- /dev/null +++ b/docs/resources/reports/Html/Sample_PartialClass.html @@ -0,0 +1,260 @@ + + + + + + + +Sample.PartialClass - Coverage Report + +
+

< Summary

+
+
+
Information
+
+
+ + + + + + + + + + + + + +
Class:Sample.PartialClass
Assembly:Sample
File(s):File 1: C:\temp\PartialClass.cs
File 2: C:\temp\PartialClass2.cs
+
+
+
+
+
+
+
Line coverage
+
+
54%
+
+ + + + + + + + + + + + + + + + + + + + + +
Covered lines:12
Uncovered lines:10
Coverable lines:22
Total lines:53
Line coverage:54.5%
+
+
+
+
+
Branch coverage
+
+
50%
+
+ + + + + + + + + + + + + +
Covered branches:1
Total branches:2
Branch coverage:50%
+
+
+
+
+
Method coverage
+
+
50%
+
+ + + + + + + + + + + + + +
Covered methods:3
Total methods:6
Method coverage:50%
+
+
+
+
+

Coverage history

+
+ +

Metrics

+
+ + + + + + + + +
MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
File 1: ExecutedMethod_1()100%110100%
File 1: UnExecutedMethod_1()0%2100%
File 2: ExecutedMethod_2()100%110100%
File 2: UnExecutedMethod_2()0%2100%
+
+

File(s)

+

C:\temp\PartialClass.cs

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
#LineLine coverage
 1using System;
 2
 3namespace Test
 4{
 5    partial class PartialClass
 6    {
 7        public void ExecutedMethod_1()
 18        {
 19            Console.WriteLine("Test");
 110        }
 11
 12        public void UnExecutedMethod_1()
 013        {
 014            Console.WriteLine("Test");
 015        }
 16
 17        private int someProperty;
 18
 19        public int SomeProperty
 20        {
 021            get { return this.someProperty; }
 22
 23            set
 124            {
 125                if (value < 0)
 126                {
 127                    this.someProperty = 0;
 128                }
 29                else
 030                {
 031                    this.someProperty = value;
 032                }
 133            }
 34        }
 35    }
 36}
+
+

C:\temp\PartialClass2.cs

+
+ + + + + + + + + + + + + + + + + + + + + +
#LineLine coverage
 1using System;
 2
 3namespace Test
 4{
 5    partial class PartialClass
 6    {
 7        public void ExecutedMethod_2()
 18        {
 19            Console.WriteLine("Test");
 110        }
 11
 12        public void UnExecutedMethod_2()
 013        {
 014            Console.WriteLine("Test");
 015        }
 16    }
 17}
+
+
+
+ + \ No newline at end of file diff --git a/docs/resources/reports/Html/Sample_Program.html b/docs/resources/reports/Html/Sample_Program.html new file mode 100644 index 00000000..3e783e2e --- /dev/null +++ b/docs/resources/reports/Html/Sample_Program.html @@ -0,0 +1,285 @@ + + + + + + + +Test.Program - Coverage Report + +
+

< Summary

+
+
+
Information
+
+
+ + + + + + + + + + + + + +
Class:Test.Program
Assembly:Sample
File(s):C:\temp\Program.cs
+
+
+
+
+
+
+
Line coverage
+
+
79%
+
+ + + + + + + + + + + + + + + + + + + + + +
Covered lines:35
Uncovered lines:9
Coverable lines:44
Total lines:84
Line coverage:79.5%
+
+
+
+
+
Branch coverage
+
+
N/A
+
+ + + + + + + + + + + + + +
Covered branches:0
Total branches:0
Branch coverage:N/A
+
+
+
+
+
Method coverage
+
+
66%
+
+ + + + + + + + + + + + + +
Covered methods:4
Total methods:6
Method coverage:66.6%
+
+
+
+
+

Coverage history

+
+ +

Metrics

+
+ + + + + + + + + + +
MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
Main(...)100%11088%
CSharp_ExecuteTest1()0%2100%
CSharp_ExecuteTest2()0%2100%
CallAsyncMethod()100%330100%
.ctor(...)100%110100%
SendAsync(...)100%110100%
+
+

File(s)

+

C:\temp\Program.cs

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
#LineLine coverage
 1using System.Net.Http;
 2using System.Threading;
 3using System.Threading.Tasks;
 4using Microsoft.VisualStudio.TestTools.UnitTesting;
 5
 6namespace Test
 7{
 8    [TestClass]
 9    public class Program
 10    {
 11        static void Main(string[] args)
 112        {
 113            new TestClass().SampleFunction();
 14
 115            new TestClass2("Test").ExecutedMethod();
 116            new TestClass2("Test").SampleFunction("Munich");
 17
 118            new PartialClass().ExecutedMethod_1();
 119            new PartialClass().ExecutedMethod_2();
 120            new PartialClass().SomeProperty = -10;
 21
 122            new PartialClassWithAutoProperties().Property1 = "Test";
 123            new PartialClassWithAutoProperties().Property2 = "Test";
 24
 125            new SomeClass().Property1 = "Test";
 26
 127            new ClassWithExcludes().IncludedMethod();
 128            new ClassWithExcludes().ExcludedMethod();
 29
 130            new GenericClass<SomeModel, IState>().Process(null);
 131            new GenericClass<SomeModel, IState>().PostProcess(null);
 32
 133            new CodeContract_Target().Calculate(-1);
 34
 135            new AbstractClass_SampleImpl1();
 136            new AbstractClass_SampleImpl2();
 37
 138            CallAsyncMethod();
 39
 40            try
 141            {
 142                new CodeContract_Target().Calculate(0);
 143            }
 044            catch (System.ArgumentException)
 045            {
 046            }
 147        }
 48
 49        [TestMethod]
 50        public void CSharp_ExecuteTest1()
 051        {
 052            Main(null);
 053        }
 54
 55        [TestMethod]
 56        public void CSharp_ExecuteTest2()
 057        {
 058            Main(null);
 059        }
 60
 61        private static async void CallAsyncMethod()
 162        {
 163            var expected = new HttpResponseMessage();
 164            var handler = new AsyncClass() { InnerHandler = new EchoHandler(expected) };
 165            var invoker = new HttpMessageInvoker(handler, false);
 166            var actual = await invoker.SendAsync(new HttpRequestMessage(), new CancellationToken());
 167        }
 68
 69        private class EchoHandler : DelegatingHandler
 70        {
 71            private HttpResponseMessage _response;
 72
 173            public EchoHandler(HttpResponseMessage response)
 174            {
 175                this._response = response;
 176            }
 77
 78            protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancell
 179            {
 180                return Task.FromResult(this._response);
 181            }
 82        }
 83    }
 84}
+
+
+
+ + \ No newline at end of file diff --git a/docs/resources/reports/Html/Sample_TestClass.html b/docs/resources/reports/Html/Sample_TestClass.html new file mode 100644 index 00000000..f4b6e590 --- /dev/null +++ b/docs/resources/reports/Html/Sample_TestClass.html @@ -0,0 +1,231 @@ + + + + + + + +Sample.TestClass - Coverage Report + +
+

< Summary

+
+
+
Information
+
+
+ + + + + + + + + + + + + +
Class:Sample.TestClass
Assembly:Sample
File(s):C:\temp\TestClass.cs
+
+
+
+
+
+
+
Line coverage
+
+
57%
+
+ + + + + + + + + + + + + + + + + + + + + +
Covered lines:12
Uncovered lines:9
Coverable lines:21
Total lines:38
Line coverage:57.1%
+
+
+
+
+
Branch coverage
+
+
50%
+
+ + + + + + + + + + + + + +
Covered branches:1
Total branches:2
Branch coverage:50%
+
+
+
+
+
Method coverage
+
+
50%
+
+ + + + + + + + + + + + + +
Covered methods:1
Total methods:2
Method coverage:50%
+
+
+
+
+

Coverage history

+
+ +

Metrics

+
+ + + + + + +
MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
SampleFunction()66.67%3.143275%
SampleFunction()0%2100%
+
+

File(s)

+

C:\temp\TestClass.cs

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
#LineLine coverage
 1using System;
 2
 3namespace Test
 4{
 5    class TestClass
 6    {
 7        public void SampleFunction()
 18        {
 19            string test = string.Format(
 110                "{0} {1}",
 111                 "Hello",
 112                 "World");
 13
 114            Console.WriteLine(test);
 115            int i = 10;
 16
 117            if (i > 0 || i > 1)
 118            {
 119                Console.WriteLine(i + " is greater that 0");
 120            }
 21            else
 022            {
 023                Console.WriteLine(i + " is not greater that 0");
 024            }
 125        }
 26
 27        public class NestedClass
 28        {
 29            public void SampleFunction()
 030            {
 031                Console.WriteLine(
 032                    "{0} {1}",
 033                     "Hello",
 034                     "World");
 035            }
 36        }
 37    }
 38}
+
+
+
+
+

Methods/Properties

+SampleFunction()
+SampleFunction()
+
+
+ + \ No newline at end of file diff --git a/docs/resources/reports/Html/Sample_TestClass2.html b/docs/resources/reports/Html/Sample_TestClass2.html new file mode 100644 index 00000000..0acfc4ff --- /dev/null +++ b/docs/resources/reports/Html/Sample_TestClass2.html @@ -0,0 +1,290 @@ + + + + + + + +Test.TestClass2 - Coverage Report + +
+

< Summary

+
+
+
Information
+
+
+ + + + + + + + + + + + + +
Class:Test.TestClass2
Assembly:Sample
File(s):C:\temp\TestClass2.cs
+
+
+
+
+
+
+
Line coverage
+
+
63%
+
+ + + + + + + + + + + + + + + + + + + + + +
Covered lines:24
Uncovered lines:14
Coverable lines:38
Total lines:85
Line coverage:63.1%
+
+
+
+
+
Branch coverage
+
+
50%
+
+ + + + + + + + + + + + + +
Covered branches:1
Total branches:2
Branch coverage:50%
+
+
+
+
+
Method coverage
+
+
60%
+
+ + + + + + + + + + + + + +
Covered methods:6
Total methods:10
Method coverage:60%
+
+
+
+
+

Coverage history

+
+ +

Metrics

+
+ + + + + + + + + + +
MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
.ctor()0%2100%
.ctor(...)100%110100%
ExecutedMethod()100%110100%
UnExecutedMethod()0%2100%
SampleFunction(...)66.67%552100%
DoSomething(...)0%2100%
+
+

File(s)

+

C:\temp\TestClass2.cs

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
#LineLine coverage
 1using System;
 2using System.Collections.Generic;
 3using System.Linq;
 4
 5namespace Test
 6{
 7    class TestClass2
 8    {
 9        private string name;
 10
 211        private Dictionary<string, int> dict = new Dictionary<string, int>();
 12
 313        public string ExecutedProperty { get; set; }
 14
 015        public string UnExecutedProperty { get; set; }
 16
 017        public TestClass2()
 018        {
 019            this.name = "Nobody";
 020            this.ExecutedProperty = "Nobody";
 021        }
 22
 223        public TestClass2(string name)
 224        {
 225            this.name = name;
 226            this.ExecutedProperty = name + name;
 227        }
 28
 29        public void ExecutedMethod()
 130        {
 131            Console.WriteLine(this.name);
 132            Console.WriteLine(this.ExecutedProperty);
 133        }
 34
 35        public void UnExecutedMethod()
 036        {
 037            Console.WriteLine(this.name);
 038            Console.WriteLine(this.ExecutedProperty);
 039        }
 40
 41        public void SampleFunction(string city)
 142        {
 143            int[] values = new int[] { 0, 1, 2, 3 };
 44
 545            var doubled = values.Select(i => i * 2);
 46
 1147            foreach (var item in doubled)
 448            {
 449                Console.WriteLine(item);
 450            }
 51
 152            string[] cities = new string[] { "Berlin", "Munich", "Paris" };
 53
 454            if (cities.SingleOrDefault(c => c.Equals(city, StringComparison.OrdinalIgnoreCase)) != null)
 155            {
 156                Console.WriteLine("Found " + city);
 157            }
 158        }
 59
 60        public string DoSomething(string value,
 61            string[] stringArray,
 62            Guid id,
 63            IEnumerable<string> stringEnumerable,
 64            IList<string> stringList,
 65            decimal dec,
 66            int i,
 67            Dictionary<string, int> dict,
 68            out int g,
 69            float fff,
 70            double dou,
 71            bool bo,
 72            byte by,
 73            char ch,
 74            object o,
 75            sbyte sby,
 76            short sh,
 77            uint ui,
 78            ulong ul,
 79            ushort usho)
 080        {
 081            g = 0;
 082            return null;
 083        }
 84    }
 85}
+
+
+
+ + \ No newline at end of file diff --git a/docs/resources/reports/Html/class.js b/docs/resources/reports/Html/class.js new file mode 100644 index 00000000..b7a43b26 --- /dev/null +++ b/docs/resources/reports/Html/class.js @@ -0,0 +1,218 @@ +/* Chartist.js 0.11.4 + * Copyright © 2019 Gion Kunz + * Free to use under either the WTFPL license or the MIT license. + * https://raw.githubusercontent.com/gionkunz/chartist-js/master/LICENSE-WTFPL + * https://raw.githubusercontent.com/gionkunz/chartist-js/master/LICENSE-MIT + */ + +!function (a, b) { "function" == typeof define && define.amd ? define("Chartist", [], function () { return a.Chartist = b() }) : "object" == typeof module && module.exports ? module.exports = b() : a.Chartist = b() }(this, function () { + var a = { version: "0.11.4" }; return function (a, b) { "use strict"; var c = a.window, d = a.document; b.namespaces = { svg: "http://www.w3.org/2000/svg", xmlns: "http://www.w3.org/2000/xmlns/", xhtml: "http://www.w3.org/1999/xhtml", xlink: "http://www.w3.org/1999/xlink", ct: "http://gionkunz.github.com/chartist-js/ct" }, b.noop = function (a) { return a }, b.alphaNumerate = function (a) { return String.fromCharCode(97 + a % 26) }, b.extend = function (a) { var c, d, e; for (a = a || {}, c = 1; c < arguments.length; c++) { d = arguments[c]; for (var f in d) e = d[f], "object" != typeof e || null === e || e instanceof Array ? a[f] = e : a[f] = b.extend(a[f], e) } return a }, b.replaceAll = function (a, b, c) { return a.replace(new RegExp(b, "g"), c) }, b.ensureUnit = function (a, b) { return "number" == typeof a && (a += b), a }, b.quantity = function (a) { if ("string" == typeof a) { var b = /^(\d+)\s*(.*)$/g.exec(a); return { value: +b[1], unit: b[2] || void 0 } } return { value: a } }, b.querySelector = function (a) { return a instanceof Node ? a : d.querySelector(a) }, b.times = function (a) { return Array.apply(null, new Array(a)) }, b.sum = function (a, b) { return a + (b ? b : 0) }, b.mapMultiply = function (a) { return function (b) { return b * a } }, b.mapAdd = function (a) { return function (b) { return b + a } }, b.serialMap = function (a, c) { var d = [], e = Math.max.apply(null, a.map(function (a) { return a.length })); return b.times(e).forEach(function (b, e) { var f = a.map(function (a) { return a[e] }); d[e] = c.apply(null, f) }), d }, b.roundWithPrecision = function (a, c) { var d = Math.pow(10, c || b.precision); return Math.round(a * d) / d }, b.precision = 8, b.escapingMap = { "&": "&", "<": "<", ">": ">", '"': """, "'": "'" }, b.serialize = function (a) { return null === a || void 0 === a ? a : ("number" == typeof a ? a = "" + a : "object" == typeof a && (a = JSON.stringify({ data: a })), Object.keys(b.escapingMap).reduce(function (a, c) { return b.replaceAll(a, c, b.escapingMap[c]) }, a)) }, b.deserialize = function (a) { if ("string" != typeof a) return a; a = Object.keys(b.escapingMap).reduce(function (a, c) { return b.replaceAll(a, b.escapingMap[c], c) }, a); try { a = JSON.parse(a), a = void 0 !== a.data ? a.data : a } catch (c) { } return a }, b.createSvg = function (a, c, d, e) { var f; return c = c || "100%", d = d || "100%", Array.prototype.slice.call(a.querySelectorAll("svg")).filter(function (a) { return a.getAttributeNS(b.namespaces.xmlns, "ct") }).forEach(function (b) { a.removeChild(b) }), f = new b.Svg("svg").attr({ width: c, height: d }).addClass(e), f._node.style.width = c, f._node.style.height = d, a.appendChild(f._node), f }, b.normalizeData = function (a, c, d) { var e, f = { raw: a, normalized: {} }; return f.normalized.series = b.getDataArray({ series: a.series || [] }, c, d), e = f.normalized.series.every(function (a) { return a instanceof Array }) ? Math.max.apply(null, f.normalized.series.map(function (a) { return a.length })) : f.normalized.series.length, f.normalized.labels = (a.labels || []).slice(), Array.prototype.push.apply(f.normalized.labels, b.times(Math.max(0, e - f.normalized.labels.length)).map(function () { return "" })), c && b.reverseData(f.normalized), f }, b.safeHasProperty = function (a, b) { return null !== a && "object" == typeof a && a.hasOwnProperty(b) }, b.isDataHoleValue = function (a) { return null === a || void 0 === a || "number" == typeof a && isNaN(a) }, b.reverseData = function (a) { a.labels.reverse(), a.series.reverse(); for (var b = 0; b < a.series.length; b++)"object" == typeof a.series[b] && void 0 !== a.series[b].data ? a.series[b].data.reverse() : a.series[b] instanceof Array && a.series[b].reverse() }, b.getDataArray = function (a, c, d) { function e(a) { if (b.safeHasProperty(a, "value")) return e(a.value); if (b.safeHasProperty(a, "data")) return e(a.data); if (a instanceof Array) return a.map(e); if (!b.isDataHoleValue(a)) { if (d) { var c = {}; return "string" == typeof d ? c[d] = b.getNumberOrUndefined(a) : c.y = b.getNumberOrUndefined(a), c.x = a.hasOwnProperty("x") ? b.getNumberOrUndefined(a.x) : c.x, c.y = a.hasOwnProperty("y") ? b.getNumberOrUndefined(a.y) : c.y, c } return b.getNumberOrUndefined(a) } } return a.series.map(e) }, b.normalizePadding = function (a, b) { return b = b || 0, "number" == typeof a ? { top: a, right: a, bottom: a, left: a } : { top: "number" == typeof a.top ? a.top : b, right: "number" == typeof a.right ? a.right : b, bottom: "number" == typeof a.bottom ? a.bottom : b, left: "number" == typeof a.left ? a.left : b } }, b.getMetaData = function (a, b) { var c = a.data ? a.data[b] : a[b]; return c ? c.meta : void 0 }, b.orderOfMagnitude = function (a) { return Math.floor(Math.log(Math.abs(a)) / Math.LN10) }, b.projectLength = function (a, b, c) { return b / c.range * a }, b.getAvailableHeight = function (a, c) { return Math.max((b.quantity(c.height).value || a.height()) - (c.chartPadding.top + c.chartPadding.bottom) - c.axisX.offset, 0) }, b.getHighLow = function (a, c, d) { function e(a) { if (void 0 !== a) if (a instanceof Array) for (var b = 0; b < a.length; b++)e(a[b]); else { var c = d ? +a[d] : +a; g && c > f.high && (f.high = c), h && c < f.low && (f.low = c) } } c = b.extend({}, c, d ? c["axis" + d.toUpperCase()] : {}); var f = { high: void 0 === c.high ? -Number.MAX_VALUE : +c.high, low: void 0 === c.low ? Number.MAX_VALUE : +c.low }, g = void 0 === c.high, h = void 0 === c.low; return (g || h) && e(a), (c.referenceValue || 0 === c.referenceValue) && (f.high = Math.max(c.referenceValue, f.high), f.low = Math.min(c.referenceValue, f.low)), f.high <= f.low && (0 === f.low ? f.high = 1 : f.low < 0 ? f.high = 0 : f.high > 0 ? f.low = 0 : (f.high = 1, f.low = 0)), f }, b.isNumeric = function (a) { return null !== a && isFinite(a) }, b.isFalseyButZero = function (a) { return !a && 0 !== a }, b.getNumberOrUndefined = function (a) { return b.isNumeric(a) ? +a : void 0 }, b.isMultiValue = function (a) { return "object" == typeof a && ("x" in a || "y" in a) }, b.getMultiValue = function (a, c) { return b.isMultiValue(a) ? b.getNumberOrUndefined(a[c || "y"]) : b.getNumberOrUndefined(a) }, b.rho = function (a) { function b(a, c) { return a % c === 0 ? c : b(c, a % c) } function c(a) { return a * a + 1 } if (1 === a) return a; var d, e = 2, f = 2; if (a % 2 === 0) return 2; do e = c(e) % a, f = c(c(f)) % a, d = b(Math.abs(e - f), a); while (1 === d); return d }, b.getBounds = function (a, c, d, e) { function f(a, b) { return a === (a += b) && (a *= 1 + (b > 0 ? o : -o)), a } var g, h, i, j = 0, k = { high: c.high, low: c.low }; k.valueRange = k.high - k.low, k.oom = b.orderOfMagnitude(k.valueRange), k.step = Math.pow(10, k.oom), k.min = Math.floor(k.low / k.step) * k.step, k.max = Math.ceil(k.high / k.step) * k.step, k.range = k.max - k.min, k.numberOfSteps = Math.round(k.range / k.step); var l = b.projectLength(a, k.step, k), m = l < d, n = e ? b.rho(k.range) : 0; if (e && b.projectLength(a, 1, k) >= d) k.step = 1; else if (e && n < k.step && b.projectLength(a, n, k) >= d) k.step = n; else for (; ;) { if (m && b.projectLength(a, k.step, k) <= d) k.step *= 2; else { if (m || !(b.projectLength(a, k.step / 2, k) >= d)) break; if (k.step /= 2, e && k.step % 1 !== 0) { k.step *= 2; break } } if (j++ > 1e3) throw new Error("Exceeded maximum number of iterations while optimizing scale step!") } var o = 2.221e-16; for (k.step = Math.max(k.step, o), h = k.min, i = k.max; h + k.step <= k.low;)h = f(h, k.step); for (; i - k.step >= k.high;)i = f(i, -k.step); k.min = h, k.max = i, k.range = k.max - k.min; var p = []; for (g = k.min; g <= k.max; g = f(g, k.step)) { var q = b.roundWithPrecision(g); q !== p[p.length - 1] && p.push(q) } return k.values = p, k }, b.polarToCartesian = function (a, b, c, d) { var e = (d - 90) * Math.PI / 180; return { x: a + c * Math.cos(e), y: b + c * Math.sin(e) } }, b.createChartRect = function (a, c, d) { var e = !(!c.axisX && !c.axisY), f = e ? c.axisY.offset : 0, g = e ? c.axisX.offset : 0, h = a.width() || b.quantity(c.width).value || 0, i = a.height() || b.quantity(c.height).value || 0, j = b.normalizePadding(c.chartPadding, d); h = Math.max(h, f + j.left + j.right), i = Math.max(i, g + j.top + j.bottom); var k = { padding: j, width: function () { return this.x2 - this.x1 }, height: function () { return this.y1 - this.y2 } }; return e ? ("start" === c.axisX.position ? (k.y2 = j.top + g, k.y1 = Math.max(i - j.bottom, k.y2 + 1)) : (k.y2 = j.top, k.y1 = Math.max(i - j.bottom - g, k.y2 + 1)), "start" === c.axisY.position ? (k.x1 = j.left + f, k.x2 = Math.max(h - j.right, k.x1 + 1)) : (k.x1 = j.left, k.x2 = Math.max(h - j.right - f, k.x1 + 1))) : (k.x1 = j.left, k.x2 = Math.max(h - j.right, k.x1 + 1), k.y2 = j.top, k.y1 = Math.max(i - j.bottom, k.y2 + 1)), k }, b.createGrid = function (a, c, d, e, f, g, h, i) { var j = {}; j[d.units.pos + "1"] = a, j[d.units.pos + "2"] = a, j[d.counterUnits.pos + "1"] = e, j[d.counterUnits.pos + "2"] = e + f; var k = g.elem("line", j, h.join(" ")); i.emit("draw", b.extend({ type: "grid", axis: d, index: c, group: g, element: k }, j)) }, b.createGridBackground = function (a, b, c, d) { var e = a.elem("rect", { x: b.x1, y: b.y2, width: b.width(), height: b.height() }, c, !0); d.emit("draw", { type: "gridBackground", group: a, element: e }) }, b.createLabel = function (a, c, e, f, g, h, i, j, k, l, m) { var n, o = {}; if (o[g.units.pos] = a + i[g.units.pos], o[g.counterUnits.pos] = i[g.counterUnits.pos], o[g.units.len] = c, o[g.counterUnits.len] = Math.max(0, h - 10), l) { var p = d.createElement("span"); p.className = k.join(" "), p.setAttribute("xmlns", b.namespaces.xhtml), p.innerText = f[e], p.style[g.units.len] = Math.round(o[g.units.len]) + "px", p.style[g.counterUnits.len] = Math.round(o[g.counterUnits.len]) + "px", n = j.foreignObject(p, b.extend({ style: "overflow: visible;" }, o)) } else n = j.elem("text", o, k.join(" ")).text(f[e]); m.emit("draw", b.extend({ type: "label", axis: g, index: e, group: j, element: n, text: f[e] }, o)) }, b.getSeriesOption = function (a, b, c) { if (a.name && b.series && b.series[a.name]) { var d = b.series[a.name]; return d.hasOwnProperty(c) ? d[c] : b[c] } return b[c] }, b.optionsProvider = function (a, d, e) { function f(a) { var f = h; if (h = b.extend({}, j), d) for (i = 0; i < d.length; i++) { var g = c.matchMedia(d[i][0]); g.matches && (h = b.extend(h, d[i][1])) } e && a && e.emit("optionsChanged", { previousOptions: f, currentOptions: h }) } function g() { k.forEach(function (a) { a.removeListener(f) }) } var h, i, j = b.extend({}, a), k = []; if (!c.matchMedia) throw "window.matchMedia not found! Make sure you're using a polyfill."; if (d) for (i = 0; i < d.length; i++) { var l = c.matchMedia(d[i][0]); l.addListener(f), k.push(l) } return f(), { removeMediaQueryListeners: g, getCurrentOptions: function () { return b.extend({}, h) } } }, b.splitIntoSegments = function (a, c, d) { var e = { increasingX: !1, fillHoles: !1 }; d = b.extend({}, e, d); for (var f = [], g = !0, h = 0; h < a.length; h += 2)void 0 === b.getMultiValue(c[h / 2].value) ? d.fillHoles || (g = !0) : (d.increasingX && h >= 2 && a[h] <= a[h - 2] && (g = !0), g && (f.push({ pathCoordinates: [], valueData: [] }), g = !1), f[f.length - 1].pathCoordinates.push(a[h], a[h + 1]), f[f.length - 1].valueData.push(c[h / 2])); return f } }(this || global, a), function (a, b) { "use strict"; b.Interpolation = {}, b.Interpolation.none = function (a) { var c = { fillHoles: !1 }; return a = b.extend({}, c, a), function (c, d) { for (var e = new b.Svg.Path, f = !0, g = 0; g < c.length; g += 2) { var h = c[g], i = c[g + 1], j = d[g / 2]; void 0 !== b.getMultiValue(j.value) ? (f ? e.move(h, i, !1, j) : e.line(h, i, !1, j), f = !1) : a.fillHoles || (f = !0) } return e } }, b.Interpolation.simple = function (a) { var c = { divisor: 2, fillHoles: !1 }; a = b.extend({}, c, a); var d = 1 / Math.max(1, a.divisor); return function (c, e) { for (var f, g, h, i = new b.Svg.Path, j = 0; j < c.length; j += 2) { var k = c[j], l = c[j + 1], m = (k - f) * d, n = e[j / 2]; void 0 !== n.value ? (void 0 === h ? i.move(k, l, !1, n) : i.curve(f + m, g, k - m, l, k, l, !1, n), f = k, g = l, h = n) : a.fillHoles || (f = k = h = void 0) } return i } }, b.Interpolation.cardinal = function (a) { var c = { tension: 1, fillHoles: !1 }; a = b.extend({}, c, a); var d = Math.min(1, Math.max(0, a.tension)), e = 1 - d; return function f(c, g) { var h = b.splitIntoSegments(c, g, { fillHoles: a.fillHoles }); if (h.length) { if (h.length > 1) { var i = []; return h.forEach(function (a) { i.push(f(a.pathCoordinates, a.valueData)) }), b.Svg.Path.join(i) } if (c = h[0].pathCoordinates, g = h[0].valueData, c.length <= 4) return b.Interpolation.none()(c, g); for (var j, k = (new b.Svg.Path).move(c[0], c[1], !1, g[0]), l = 0, m = c.length; m - 2 * !j > l; l += 2) { var n = [{ x: +c[l - 2], y: +c[l - 1] }, { x: +c[l], y: +c[l + 1] }, { x: +c[l + 2], y: +c[l + 3] }, { x: +c[l + 4], y: +c[l + 5] }]; j ? l ? m - 4 === l ? n[3] = { x: +c[0], y: +c[1] } : m - 2 === l && (n[2] = { x: +c[0], y: +c[1] }, n[3] = { x: +c[2], y: +c[3] }) : n[0] = { x: +c[m - 2], y: +c[m - 1] } : m - 4 === l ? n[3] = n[2] : l || (n[0] = { x: +c[l], y: +c[l + 1] }), k.curve(d * (-n[0].x + 6 * n[1].x + n[2].x) / 6 + e * n[2].x, d * (-n[0].y + 6 * n[1].y + n[2].y) / 6 + e * n[2].y, d * (n[1].x + 6 * n[2].x - n[3].x) / 6 + e * n[2].x, d * (n[1].y + 6 * n[2].y - n[3].y) / 6 + e * n[2].y, n[2].x, n[2].y, !1, g[(l + 2) / 2]) } return k } return b.Interpolation.none()([]) } }, b.Interpolation.monotoneCubic = function (a) { var c = { fillHoles: !1 }; return a = b.extend({}, c, a), function d(c, e) { var f = b.splitIntoSegments(c, e, { fillHoles: a.fillHoles, increasingX: !0 }); if (f.length) { if (f.length > 1) { var g = []; return f.forEach(function (a) { g.push(d(a.pathCoordinates, a.valueData)) }), b.Svg.Path.join(g) } if (c = f[0].pathCoordinates, e = f[0].valueData, c.length <= 4) return b.Interpolation.none()(c, e); var h, i, j = [], k = [], l = c.length / 2, m = [], n = [], o = [], p = []; for (h = 0; h < l; h++)j[h] = c[2 * h], k[h] = c[2 * h + 1]; for (h = 0; h < l - 1; h++)o[h] = k[h + 1] - k[h], p[h] = j[h + 1] - j[h], n[h] = o[h] / p[h]; for (m[0] = n[0], m[l - 1] = n[l - 2], h = 1; h < l - 1; h++)0 === n[h] || 0 === n[h - 1] || n[h - 1] > 0 != n[h] > 0 ? m[h] = 0 : (m[h] = 3 * (p[h - 1] + p[h]) / ((2 * p[h] + p[h - 1]) / n[h - 1] + (p[h] + 2 * p[h - 1]) / n[h]), isFinite(m[h]) || (m[h] = 0)); for (i = (new b.Svg.Path).move(j[0], k[0], !1, e[0]), h = 0; h < l - 1; h++)i.curve(j[h] + p[h] / 3, k[h] + m[h] * p[h] / 3, j[h + 1] - p[h] / 3, k[h + 1] - m[h + 1] * p[h] / 3, j[h + 1], k[h + 1], !1, e[h + 1]); return i } return b.Interpolation.none()([]) } }, b.Interpolation.step = function (a) { var c = { postpone: !0, fillHoles: !1 }; return a = b.extend({}, c, a), function (c, d) { for (var e, f, g, h = new b.Svg.Path, i = 0; i < c.length; i += 2) { var j = c[i], k = c[i + 1], l = d[i / 2]; void 0 !== l.value ? (void 0 === g ? h.move(j, k, !1, l) : (a.postpone ? h.line(j, f, !1, g) : h.line(e, k, !1, l), h.line(j, k, !1, l)), e = j, f = k, g = l) : a.fillHoles || (e = f = g = void 0) } return h } } }(this || global, a), function (a, b) { "use strict"; b.EventEmitter = function () { function a(a, b) { d[a] = d[a] || [], d[a].push(b) } function b(a, b) { d[a] && (b ? (d[a].splice(d[a].indexOf(b), 1), 0 === d[a].length && delete d[a]) : delete d[a]) } function c(a, b) { d[a] && d[a].forEach(function (a) { a(b) }), d["*"] && d["*"].forEach(function (c) { c(a, b) }) } var d = []; return { addEventHandler: a, removeEventHandler: b, emit: c } } }(this || global, a), function (a, b) { "use strict"; function c(a) { var b = []; if (a.length) for (var c = 0; c < a.length; c++)b.push(a[c]); return b } function d(a, c) { var d = c || this.prototype || b.Class, e = Object.create(d); b.Class.cloneDefinitions(e, a); var f = function () { var a, c = e.constructor || function () { }; return a = this === b ? Object.create(e) : this, c.apply(a, Array.prototype.slice.call(arguments, 0)), a }; return f.prototype = e, f["super"] = d, f.extend = this.extend, f } function e() { var a = c(arguments), b = a[0]; return a.splice(1, a.length - 1).forEach(function (a) { Object.getOwnPropertyNames(a).forEach(function (c) { delete b[c], Object.defineProperty(b, c, Object.getOwnPropertyDescriptor(a, c)) }) }), b } b.Class = { extend: d, cloneDefinitions: e } }(this || global, a), function (a, b) { "use strict"; function c(a, c, d) { return a && (this.data = a || {}, this.data.labels = this.data.labels || [], this.data.series = this.data.series || [], this.eventEmitter.emit("data", { type: "update", data: this.data })), c && (this.options = b.extend({}, d ? this.options : this.defaultOptions, c), this.initializeTimeoutId || (this.optionsProvider.removeMediaQueryListeners(), this.optionsProvider = b.optionsProvider(this.options, this.responsiveOptions, this.eventEmitter))), this.initializeTimeoutId || this.createChart(this.optionsProvider.getCurrentOptions()), this } function d() { return this.initializeTimeoutId ? i.clearTimeout(this.initializeTimeoutId) : (i.removeEventListener("resize", this.resizeListener), this.optionsProvider.removeMediaQueryListeners()), this } function e(a, b) { return this.eventEmitter.addEventHandler(a, b), this } function f(a, b) { return this.eventEmitter.removeEventHandler(a, b), this } function g() { i.addEventListener("resize", this.resizeListener), this.optionsProvider = b.optionsProvider(this.options, this.responsiveOptions, this.eventEmitter), this.eventEmitter.addEventHandler("optionsChanged", function () { this.update() }.bind(this)), this.options.plugins && this.options.plugins.forEach(function (a) { a instanceof Array ? a[0](this, a[1]) : a(this) }.bind(this)), this.eventEmitter.emit("data", { type: "initial", data: this.data }), this.createChart(this.optionsProvider.getCurrentOptions()), this.initializeTimeoutId = void 0 } function h(a, c, d, e, f) { this.container = b.querySelector(a), this.data = c || {}, this.data.labels = this.data.labels || [], this.data.series = this.data.series || [], this.defaultOptions = d, this.options = e, this.responsiveOptions = f, this.eventEmitter = b.EventEmitter(), this.supportsForeignObject = b.Svg.isSupported("Extensibility"), this.supportsAnimations = b.Svg.isSupported("AnimationEventsAttribute"), this.resizeListener = function () { this.update() }.bind(this), this.container && (this.container.__chartist__ && this.container.__chartist__.detach(), this.container.__chartist__ = this), this.initializeTimeoutId = setTimeout(g.bind(this), 0) } var i = a.window; b.Base = b.Class.extend({ constructor: h, optionsProvider: void 0, container: void 0, svg: void 0, eventEmitter: void 0, createChart: function () { throw new Error("Base chart type can't be instantiated!") }, update: c, detach: d, on: e, off: f, version: b.version, supportsForeignObject: !1 }) }(this || global, a), function (a, b) { "use strict"; function c(a, c, d, e, f) { a instanceof Element ? this._node = a : (this._node = y.createElementNS(b.namespaces.svg, a), "svg" === a && this.attr({ "xmlns:ct": b.namespaces.ct })), c && this.attr(c), d && this.addClass(d), e && (f && e._node.firstChild ? e._node.insertBefore(this._node, e._node.firstChild) : e._node.appendChild(this._node)) } function d(a, c) { return "string" == typeof a ? c ? this._node.getAttributeNS(c, a) : this._node.getAttribute(a) : (Object.keys(a).forEach(function (c) { if (void 0 !== a[c]) if (c.indexOf(":") !== -1) { var d = c.split(":"); this._node.setAttributeNS(b.namespaces[d[0]], c, a[c]) } else this._node.setAttribute(c, a[c]) }.bind(this)), this) } function e(a, c, d, e) { return new b.Svg(a, c, d, this, e) } function f() { return this._node.parentNode instanceof SVGElement ? new b.Svg(this._node.parentNode) : null } function g() { for (var a = this._node; "svg" !== a.nodeName;)a = a.parentNode; return new b.Svg(a) } function h(a) { var c = this._node.querySelector(a); return c ? new b.Svg(c) : null } function i(a) { var c = this._node.querySelectorAll(a); return c.length ? new b.Svg.List(c) : null } function j() { return this._node } function k(a, c, d, e) { if ("string" == typeof a) { var f = y.createElement("div"); f.innerHTML = a, a = f.firstChild } a.setAttribute("xmlns", b.namespaces.xmlns); var g = this.elem("foreignObject", c, d, e); return g._node.appendChild(a), g } function l(a) { return this._node.appendChild(y.createTextNode(a)), this } function m() { for (; this._node.firstChild;)this._node.removeChild(this._node.firstChild); return this } function n() { return this._node.parentNode.removeChild(this._node), this.parent() } function o(a) { return this._node.parentNode.replaceChild(a._node, this._node), a } function p(a, b) { return b && this._node.firstChild ? this._node.insertBefore(a._node, this._node.firstChild) : this._node.appendChild(a._node), this } function q() { return this._node.getAttribute("class") ? this._node.getAttribute("class").trim().split(/\s+/) : [] } function r(a) { return this._node.setAttribute("class", this.classes(this._node).concat(a.trim().split(/\s+/)).filter(function (a, b, c) { return c.indexOf(a) === b }).join(" ")), this } function s(a) { var b = a.trim().split(/\s+/); return this._node.setAttribute("class", this.classes(this._node).filter(function (a) { return b.indexOf(a) === -1 }).join(" ")), this } function t() { return this._node.setAttribute("class", ""), this } function u() { return this._node.getBoundingClientRect().height } function v() { return this._node.getBoundingClientRect().width } function w(a, c, d) { return void 0 === c && (c = !0), Object.keys(a).forEach(function (e) { function f(a, c) { var f, g, h, i = {}; a.easing && (h = a.easing instanceof Array ? a.easing : b.Svg.Easing[a.easing], delete a.easing), a.begin = b.ensureUnit(a.begin, "ms"), a.dur = b.ensureUnit(a.dur, "ms"), h && (a.calcMode = "spline", a.keySplines = h.join(" "), a.keyTimes = "0;1"), c && (a.fill = "freeze", i[e] = a.from, this.attr(i), g = b.quantity(a.begin || 0).value, a.begin = "indefinite"), f = this.elem("animate", b.extend({ attributeName: e }, a)), c && setTimeout(function () { try { f._node.beginElement() } catch (b) { i[e] = a.to, this.attr(i), f.remove() } }.bind(this), g), d && f._node.addEventListener("beginEvent", function () { d.emit("animationBegin", { element: this, animate: f._node, params: a }) }.bind(this)), f._node.addEventListener("endEvent", function () { d && d.emit("animationEnd", { element: this, animate: f._node, params: a }), c && (i[e] = a.to, this.attr(i), f.remove()) }.bind(this)) } a[e] instanceof Array ? a[e].forEach(function (a) { f.bind(this)(a, !1) }.bind(this)) : f.bind(this)(a[e], c) }.bind(this)), this } function x(a) { var c = this; this.svgElements = []; for (var d = 0; d < a.length; d++)this.svgElements.push(new b.Svg(a[d])); Object.keys(b.Svg.prototype).filter(function (a) { return ["constructor", "parent", "querySelector", "querySelectorAll", "replace", "append", "classes", "height", "width"].indexOf(a) === -1 }).forEach(function (a) { c[a] = function () { var d = Array.prototype.slice.call(arguments, 0); return c.svgElements.forEach(function (c) { b.Svg.prototype[a].apply(c, d) }), c } }) } var y = a.document; b.Svg = b.Class.extend({ constructor: c, attr: d, elem: e, parent: f, root: g, querySelector: h, querySelectorAll: i, getNode: j, foreignObject: k, text: l, empty: m, remove: n, replace: o, append: p, classes: q, addClass: r, removeClass: s, removeAllClasses: t, height: u, width: v, animate: w }), b.Svg.isSupported = function (a) { return y.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#" + a, "1.1") }; var z = { easeInSine: [.47, 0, .745, .715], easeOutSine: [.39, .575, .565, 1], easeInOutSine: [.445, .05, .55, .95], easeInQuad: [.55, .085, .68, .53], easeOutQuad: [.25, .46, .45, .94], easeInOutQuad: [.455, .03, .515, .955], easeInCubic: [.55, .055, .675, .19], easeOutCubic: [.215, .61, .355, 1], easeInOutCubic: [.645, .045, .355, 1], easeInQuart: [.895, .03, .685, .22], easeOutQuart: [.165, .84, .44, 1], easeInOutQuart: [.77, 0, .175, 1], easeInQuint: [.755, .05, .855, .06], easeOutQuint: [.23, 1, .32, 1], easeInOutQuint: [.86, 0, .07, 1], easeInExpo: [.95, .05, .795, .035], easeOutExpo: [.19, 1, .22, 1], easeInOutExpo: [1, 0, 0, 1], easeInCirc: [.6, .04, .98, .335], easeOutCirc: [.075, .82, .165, 1], easeInOutCirc: [.785, .135, .15, .86], easeInBack: [.6, -.28, .735, .045], easeOutBack: [.175, .885, .32, 1.275], easeInOutBack: [.68, -.55, .265, 1.55] }; b.Svg.Easing = z, b.Svg.List = b.Class.extend({ constructor: x }) }(this || global, a), function (a, b) { "use strict"; function c(a, c, d, e, f, g) { var h = b.extend({ command: f ? a.toLowerCase() : a.toUpperCase() }, c, g ? { data: g } : {}); d.splice(e, 0, h) } function d(a, b) { a.forEach(function (c, d) { t[c.command.toLowerCase()].forEach(function (e, f) { b(c, e, d, f, a) }) }) } function e(a, c) { this.pathElements = [], this.pos = 0, this.close = a, this.options = b.extend({}, u, c) } function f(a) { return void 0 !== a ? (this.pos = Math.max(0, Math.min(this.pathElements.length, a)), this) : this.pos } function g(a) { return this.pathElements.splice(this.pos, a), this } function h(a, b, d, e) { return c("M", { x: +a, y: +b }, this.pathElements, this.pos++, d, e), this } function i(a, b, d, e) { return c("L", { x: +a, y: +b }, this.pathElements, this.pos++, d, e), this } function j(a, b, d, e, f, g, h, i) { return c("C", { x1: +a, y1: +b, x2: +d, y2: +e, x: +f, y: +g }, this.pathElements, this.pos++, h, i), this } function k(a, b, d, e, f, g, h, i, j) { return c("A", { rx: +a, ry: +b, xAr: +d, lAf: +e, sf: +f, x: +g, y: +h }, this.pathElements, this.pos++, i, j), this } function l(a) { var c = a.replace(/([A-Za-z])([0-9])/g, "$1 $2").replace(/([0-9])([A-Za-z])/g, "$1 $2").split(/[\s,]+/).reduce(function (a, b) { return b.match(/[A-Za-z]/) && a.push([]), a[a.length - 1].push(b), a }, []); "Z" === c[c.length - 1][0].toUpperCase() && c.pop(); var d = c.map(function (a) { var c = a.shift(), d = t[c.toLowerCase()]; return b.extend({ command: c }, d.reduce(function (b, c, d) { return b[c] = +a[d], b }, {})) }), e = [this.pos, 0]; return Array.prototype.push.apply(e, d), Array.prototype.splice.apply(this.pathElements, e), this.pos += d.length, this } function m() { var a = Math.pow(10, this.options.accuracy); return this.pathElements.reduce(function (b, c) { var d = t[c.command.toLowerCase()].map(function (b) { return this.options.accuracy ? Math.round(c[b] * a) / a : c[b] }.bind(this)); return b + c.command + d.join(",") }.bind(this), "") + (this.close ? "Z" : "") } function n(a, b) { return d(this.pathElements, function (c, d) { c[d] *= "x" === d[0] ? a : b }), this } function o(a, b) { return d(this.pathElements, function (c, d) { c[d] += "x" === d[0] ? a : b }), this } function p(a) { return d(this.pathElements, function (b, c, d, e, f) { var g = a(b, c, d, e, f); (g || 0 === g) && (b[c] = g) }), this } function q(a) { var c = new b.Svg.Path(a || this.close); return c.pos = this.pos, c.pathElements = this.pathElements.slice().map(function (a) { return b.extend({}, a) }), c.options = b.extend({}, this.options), c } function r(a) { var c = [new b.Svg.Path]; return this.pathElements.forEach(function (d) { d.command === a.toUpperCase() && 0 !== c[c.length - 1].pathElements.length && c.push(new b.Svg.Path), c[c.length - 1].pathElements.push(d) }), c } function s(a, c, d) { for (var e = new b.Svg.Path(c, d), f = 0; f < a.length; f++)for (var g = a[f], h = 0; h < g.pathElements.length; h++)e.pathElements.push(g.pathElements[h]); return e } var t = { m: ["x", "y"], l: ["x", "y"], c: ["x1", "y1", "x2", "y2", "x", "y"], a: ["rx", "ry", "xAr", "lAf", "sf", "x", "y"] }, u = { accuracy: 3 }; b.Svg.Path = b.Class.extend({ constructor: e, position: f, remove: g, move: h, line: i, curve: j, arc: k, scale: n, translate: o, transform: p, parse: l, stringify: m, clone: q, splitByCommand: r }), b.Svg.Path.elementDescriptions = t, b.Svg.Path.join = s }(this || global, a), function (a, b) { "use strict"; function c(a, b, c, d) { this.units = a, this.counterUnits = a === e.x ? e.y : e.x, this.chartRect = b, this.axisLength = b[a.rectEnd] - b[a.rectStart], this.gridOffset = b[a.rectOffset], this.ticks = c, this.options = d } function d(a, c, d, e, f) { var g = e["axis" + this.units.pos.toUpperCase()], h = this.ticks.map(this.projectValue.bind(this)), i = this.ticks.map(g.labelInterpolationFnc); h.forEach(function (j, k) { var l, m = { x: 0, y: 0 }; l = h[k + 1] ? h[k + 1] - j : Math.max(this.axisLength - j, 30), b.isFalseyButZero(i[k]) && "" !== i[k] || ("x" === this.units.pos ? (j = this.chartRect.x1 + j, m.x = e.axisX.labelOffset.x, "start" === e.axisX.position ? m.y = this.chartRect.padding.top + e.axisX.labelOffset.y + (d ? 5 : 20) : m.y = this.chartRect.y1 + e.axisX.labelOffset.y + (d ? 5 : 20)) : (j = this.chartRect.y1 - j, m.y = e.axisY.labelOffset.y - (d ? l : 0), "start" === e.axisY.position ? m.x = d ? this.chartRect.padding.left + e.axisY.labelOffset.x : this.chartRect.x1 - 10 : m.x = this.chartRect.x2 + e.axisY.labelOffset.x + 10), g.showGrid && b.createGrid(j, k, this, this.gridOffset, this.chartRect[this.counterUnits.len](), a, [e.classNames.grid, e.classNames[this.units.dir]], f), g.showLabel && b.createLabel(j, l, k, i, this, g.offset, m, c, [e.classNames.label, e.classNames[this.units.dir], "start" === g.position ? e.classNames[g.position] : e.classNames.end], d, f)) }.bind(this)) } var e = (a.window, a.document, { x: { pos: "x", len: "width", dir: "horizontal", rectStart: "x1", rectEnd: "x2", rectOffset: "y2" }, y: { pos: "y", len: "height", dir: "vertical", rectStart: "y2", rectEnd: "y1", rectOffset: "x1" } }); b.Axis = b.Class.extend({ constructor: c, createGridAndLabels: d, projectValue: function (a, b, c) { throw new Error("Base axis can't be instantiated!") } }), b.Axis.units = e }(this || global, a), function (a, b) { "use strict"; function c(a, c, d, e) { var f = e.highLow || b.getHighLow(c, e, a.pos); this.bounds = b.getBounds(d[a.rectEnd] - d[a.rectStart], f, e.scaleMinSpace || 20, e.onlyInteger), this.range = { min: this.bounds.min, max: this.bounds.max }, b.AutoScaleAxis["super"].constructor.call(this, a, d, this.bounds.values, e) } function d(a) { return this.axisLength * (+b.getMultiValue(a, this.units.pos) - this.bounds.min) / this.bounds.range } a.window, a.document; b.AutoScaleAxis = b.Axis.extend({ constructor: c, projectValue: d }) }(this || global, a), function (a, b) { "use strict"; function c(a, c, d, e) { var f = e.highLow || b.getHighLow(c, e, a.pos); this.divisor = e.divisor || 1, this.ticks = e.ticks || b.times(this.divisor).map(function (a, b) { return f.low + (f.high - f.low) / this.divisor * b }.bind(this)), this.ticks.sort(function (a, b) { return a - b }), this.range = { min: f.low, max: f.high }, b.FixedScaleAxis["super"].constructor.call(this, a, d, this.ticks, e), this.stepLength = this.axisLength / this.divisor } function d(a) { return this.axisLength * (+b.getMultiValue(a, this.units.pos) - this.range.min) / (this.range.max - this.range.min) } a.window, a.document; b.FixedScaleAxis = b.Axis.extend({ constructor: c, projectValue: d }) }(this || global, a), function (a, b) { "use strict"; function c(a, c, d, e) { b.StepAxis["super"].constructor.call(this, a, d, e.ticks, e); var f = Math.max(1, e.ticks.length - (e.stretch ? 1 : 0)); this.stepLength = this.axisLength / f } function d(a, b) { return this.stepLength * b } a.window, a.document; b.StepAxis = b.Axis.extend({ constructor: c, projectValue: d }) }(this || global, a), function (a, b) { "use strict"; function c(a) { var c = b.normalizeData(this.data, a.reverseData, !0); this.svg = b.createSvg(this.container, a.width, a.height, a.classNames.chart); var d, f, g = this.svg.elem("g").addClass(a.classNames.gridGroup), h = this.svg.elem("g"), i = this.svg.elem("g").addClass(a.classNames.labelGroup), j = b.createChartRect(this.svg, a, e.padding); d = void 0 === a.axisX.type ? new b.StepAxis(b.Axis.units.x, c.normalized.series, j, b.extend({}, a.axisX, { ticks: c.normalized.labels, stretch: a.fullWidth })) : a.axisX.type.call(b, b.Axis.units.x, c.normalized.series, j, a.axisX), f = void 0 === a.axisY.type ? new b.AutoScaleAxis(b.Axis.units.y, c.normalized.series, j, b.extend({}, a.axisY, { high: b.isNumeric(a.high) ? a.high : a.axisY.high, low: b.isNumeric(a.low) ? a.low : a.axisY.low })) : a.axisY.type.call(b, b.Axis.units.y, c.normalized.series, j, a.axisY), d.createGridAndLabels(g, i, this.supportsForeignObject, a, this.eventEmitter), f.createGridAndLabels(g, i, this.supportsForeignObject, a, this.eventEmitter), a.showGridBackground && b.createGridBackground(g, j, a.classNames.gridBackground, this.eventEmitter), c.raw.series.forEach(function (e, g) { var i = h.elem("g"); i.attr({ "ct:series-name": e.name, "ct:meta": b.serialize(e.meta) }), i.addClass([a.classNames.series, e.className || a.classNames.series + "-" + b.alphaNumerate(g)].join(" ")); var k = [], l = []; c.normalized.series[g].forEach(function (a, h) { var i = { x: j.x1 + d.projectValue(a, h, c.normalized.series[g]), y: j.y1 - f.projectValue(a, h, c.normalized.series[g]) }; k.push(i.x, i.y), l.push({ value: a, valueIndex: h, meta: b.getMetaData(e, h) }) }.bind(this)); var m = { lineSmooth: b.getSeriesOption(e, a, "lineSmooth"), showPoint: b.getSeriesOption(e, a, "showPoint"), showLine: b.getSeriesOption(e, a, "showLine"), showArea: b.getSeriesOption(e, a, "showArea"), areaBase: b.getSeriesOption(e, a, "areaBase") }, n = "function" == typeof m.lineSmooth ? m.lineSmooth : m.lineSmooth ? b.Interpolation.monotoneCubic() : b.Interpolation.none(), o = n(k, l); if (m.showPoint && o.pathElements.forEach(function (c) { var h = i.elem("line", { x1: c.x, y1: c.y, x2: c.x + .01, y2: c.y }, a.classNames.point).attr({ "ct:value": [c.data.value.x, c.data.value.y].filter(b.isNumeric).join(","), "ct:meta": b.serialize(c.data.meta) }); this.eventEmitter.emit("draw", { type: "point", value: c.data.value, index: c.data.valueIndex, meta: c.data.meta, series: e, seriesIndex: g, axisX: d, axisY: f, group: i, element: h, x: c.x, y: c.y }) }.bind(this)), m.showLine) { var p = i.elem("path", { d: o.stringify() }, a.classNames.line, !0); this.eventEmitter.emit("draw", { type: "line", values: c.normalized.series[g], path: o.clone(), chartRect: j, index: g, series: e, seriesIndex: g, seriesMeta: e.meta, axisX: d, axisY: f, group: i, element: p }) } if (m.showArea && f.range) { var q = Math.max(Math.min(m.areaBase, f.range.max), f.range.min), r = j.y1 - f.projectValue(q); o.splitByCommand("M").filter(function (a) { return a.pathElements.length > 1 }).map(function (a) { var b = a.pathElements[0], c = a.pathElements[a.pathElements.length - 1]; return a.clone(!0).position(0).remove(1).move(b.x, r).line(b.x, b.y).position(a.pathElements.length + 1).line(c.x, r) }).forEach(function (b) { var h = i.elem("path", { d: b.stringify() }, a.classNames.area, !0); this.eventEmitter.emit("draw", { type: "area", values: c.normalized.series[g], path: b.clone(), series: e, seriesIndex: g, axisX: d, axisY: f, chartRect: j, index: g, group: i, element: h }) }.bind(this)) } }.bind(this)), this.eventEmitter.emit("created", { bounds: f.bounds, chartRect: j, axisX: d, axisY: f, svg: this.svg, options: a }) } function d(a, c, d, f) { b.Line["super"].constructor.call(this, a, c, e, b.extend({}, e, d), f) } var e = (a.window, a.document, { axisX: { offset: 30, position: "end", labelOffset: { x: 0, y: 0 }, showLabel: !0, showGrid: !0, labelInterpolationFnc: b.noop, type: void 0 }, axisY: { offset: 40, position: "start", labelOffset: { x: 0, y: 0 }, showLabel: !0, showGrid: !0, labelInterpolationFnc: b.noop, type: void 0, scaleMinSpace: 20, onlyInteger: !1 }, width: void 0, height: void 0, showLine: !0, showPoint: !0, showArea: !1, areaBase: 0, lineSmooth: !0, showGridBackground: !1, low: void 0, high: void 0, chartPadding: { top: 15, right: 15, bottom: 5, left: 10 }, fullWidth: !1, reverseData: !1, classNames: { chart: "ct-chart-line", label: "ct-label", labelGroup: "ct-labels", series: "ct-series", line: "ct-line", point: "ct-point", area: "ct-area", grid: "ct-grid", gridGroup: "ct-grids", gridBackground: "ct-grid-background", vertical: "ct-vertical", horizontal: "ct-horizontal", start: "ct-start", end: "ct-end" } }); b.Line = b.Base.extend({ constructor: d, createChart: c }) }(this || global, a), function (a, b) { + "use strict"; function c(a) { + var c, d; a.distributeSeries ? (c = b.normalizeData(this.data, a.reverseData, a.horizontalBars ? "x" : "y"), c.normalized.series = c.normalized.series.map(function (a) { return [a] })) : c = b.normalizeData(this.data, a.reverseData, a.horizontalBars ? "x" : "y"), this.svg = b.createSvg(this.container, a.width, a.height, a.classNames.chart + (a.horizontalBars ? " " + a.classNames.horizontalBars : "")); var f = this.svg.elem("g").addClass(a.classNames.gridGroup), g = this.svg.elem("g"), h = this.svg.elem("g").addClass(a.classNames.labelGroup); + if (a.stackBars && 0 !== c.normalized.series.length) { var i = b.serialMap(c.normalized.series, function () { return Array.prototype.slice.call(arguments).map(function (a) { return a }).reduce(function (a, b) { return { x: a.x + (b && b.x) || 0, y: a.y + (b && b.y) || 0 } }, { x: 0, y: 0 }) }); d = b.getHighLow([i], a, a.horizontalBars ? "x" : "y") } else d = b.getHighLow(c.normalized.series, a, a.horizontalBars ? "x" : "y"); d.high = +a.high || (0 === a.high ? 0 : d.high), d.low = +a.low || (0 === a.low ? 0 : d.low); var j, k, l, m, n, o = b.createChartRect(this.svg, a, e.padding); k = a.distributeSeries && a.stackBars ? c.normalized.labels.slice(0, 1) : c.normalized.labels, a.horizontalBars ? (j = m = void 0 === a.axisX.type ? new b.AutoScaleAxis(b.Axis.units.x, c.normalized.series, o, b.extend({}, a.axisX, { highLow: d, referenceValue: 0 })) : a.axisX.type.call(b, b.Axis.units.x, c.normalized.series, o, b.extend({}, a.axisX, { highLow: d, referenceValue: 0 })), l = n = void 0 === a.axisY.type ? new b.StepAxis(b.Axis.units.y, c.normalized.series, o, { ticks: k }) : a.axisY.type.call(b, b.Axis.units.y, c.normalized.series, o, a.axisY)) : (l = m = void 0 === a.axisX.type ? new b.StepAxis(b.Axis.units.x, c.normalized.series, o, { ticks: k }) : a.axisX.type.call(b, b.Axis.units.x, c.normalized.series, o, a.axisX), j = n = void 0 === a.axisY.type ? new b.AutoScaleAxis(b.Axis.units.y, c.normalized.series, o, b.extend({}, a.axisY, { highLow: d, referenceValue: 0 })) : a.axisY.type.call(b, b.Axis.units.y, c.normalized.series, o, b.extend({}, a.axisY, { highLow: d, referenceValue: 0 }))); var p = a.horizontalBars ? o.x1 + j.projectValue(0) : o.y1 - j.projectValue(0), q = []; l.createGridAndLabels(f, h, this.supportsForeignObject, a, this.eventEmitter), j.createGridAndLabels(f, h, this.supportsForeignObject, a, this.eventEmitter), a.showGridBackground && b.createGridBackground(f, o, a.classNames.gridBackground, this.eventEmitter), c.raw.series.forEach(function (d, e) { var f, h, i = e - (c.raw.series.length - 1) / 2; f = a.distributeSeries && !a.stackBars ? l.axisLength / c.normalized.series.length / 2 : a.distributeSeries && a.stackBars ? l.axisLength / 2 : l.axisLength / c.normalized.series[e].length / 2, h = g.elem("g"), h.attr({ "ct:series-name": d.name, "ct:meta": b.serialize(d.meta) }), h.addClass([a.classNames.series, d.className || a.classNames.series + "-" + b.alphaNumerate(e)].join(" ")), c.normalized.series[e].forEach(function (g, k) { var r, s, t, u; if (u = a.distributeSeries && !a.stackBars ? e : a.distributeSeries && a.stackBars ? 0 : k, r = a.horizontalBars ? { x: o.x1 + j.projectValue(g && g.x ? g.x : 0, k, c.normalized.series[e]), y: o.y1 - l.projectValue(g && g.y ? g.y : 0, u, c.normalized.series[e]) } : { x: o.x1 + l.projectValue(g && g.x ? g.x : 0, u, c.normalized.series[e]), y: o.y1 - j.projectValue(g && g.y ? g.y : 0, k, c.normalized.series[e]) }, l instanceof b.StepAxis && (l.options.stretch || (r[l.units.pos] += f * (a.horizontalBars ? -1 : 1)), r[l.units.pos] += a.stackBars || a.distributeSeries ? 0 : i * a.seriesBarDistance * (a.horizontalBars ? -1 : 1)), t = q[k] || p, q[k] = t - (p - r[l.counterUnits.pos]), void 0 !== g) { var v = {}; v[l.units.pos + "1"] = r[l.units.pos], v[l.units.pos + "2"] = r[l.units.pos], !a.stackBars || "accumulate" !== a.stackMode && a.stackMode ? (v[l.counterUnits.pos + "1"] = p, v[l.counterUnits.pos + "2"] = r[l.counterUnits.pos]) : (v[l.counterUnits.pos + "1"] = t, v[l.counterUnits.pos + "2"] = q[k]), v.x1 = Math.min(Math.max(v.x1, o.x1), o.x2), v.x2 = Math.min(Math.max(v.x2, o.x1), o.x2), v.y1 = Math.min(Math.max(v.y1, o.y2), o.y1), v.y2 = Math.min(Math.max(v.y2, o.y2), o.y1); var w = b.getMetaData(d, k); s = h.elem("line", v, a.classNames.bar).attr({ "ct:value": [g.x, g.y].filter(b.isNumeric).join(","), "ct:meta": b.serialize(w) }), this.eventEmitter.emit("draw", b.extend({ type: "bar", value: g, index: k, meta: w, series: d, seriesIndex: e, axisX: m, axisY: n, chartRect: o, group: h, element: s }, v)) } }.bind(this)) }.bind(this)), this.eventEmitter.emit("created", { bounds: j.bounds, chartRect: o, axisX: m, axisY: n, svg: this.svg, options: a }) + } function d(a, c, d, f) { b.Bar["super"].constructor.call(this, a, c, e, b.extend({}, e, d), f) } var e = (a.window, a.document, { axisX: { offset: 30, position: "end", labelOffset: { x: 0, y: 0 }, showLabel: !0, showGrid: !0, labelInterpolationFnc: b.noop, scaleMinSpace: 30, onlyInteger: !1 }, axisY: { offset: 40, position: "start", labelOffset: { x: 0, y: 0 }, showLabel: !0, showGrid: !0, labelInterpolationFnc: b.noop, scaleMinSpace: 20, onlyInteger: !1 }, width: void 0, height: void 0, high: void 0, low: void 0, referenceValue: 0, chartPadding: { top: 15, right: 15, bottom: 5, left: 10 }, seriesBarDistance: 15, stackBars: !1, stackMode: "accumulate", horizontalBars: !1, distributeSeries: !1, reverseData: !1, showGridBackground: !1, classNames: { chart: "ct-chart-bar", horizontalBars: "ct-horizontal-bars", label: "ct-label", labelGroup: "ct-labels", series: "ct-series", bar: "ct-bar", grid: "ct-grid", gridGroup: "ct-grids", gridBackground: "ct-grid-background", vertical: "ct-vertical", horizontal: "ct-horizontal", start: "ct-start", end: "ct-end" } }); b.Bar = b.Base.extend({ constructor: d, createChart: c }) + }(this || global, a), function (a, b) { "use strict"; function c(a, b, c) { var d = b.x > a.x; return d && "explode" === c || !d && "implode" === c ? "start" : d && "implode" === c || !d && "explode" === c ? "end" : "middle" } function d(a) { var d, e, g, h, i, j = b.normalizeData(this.data), k = [], l = a.startAngle; this.svg = b.createSvg(this.container, a.width, a.height, a.donut ? a.classNames.chartDonut : a.classNames.chartPie), e = b.createChartRect(this.svg, a, f.padding), g = Math.min(e.width() / 2, e.height() / 2), i = a.total || j.normalized.series.reduce(function (a, b) { return a + b }, 0); var m = b.quantity(a.donutWidth); "%" === m.unit && (m.value *= g / 100), g -= a.donut && !a.donutSolid ? m.value / 2 : 0, h = "outside" === a.labelPosition || a.donut && !a.donutSolid ? g : "center" === a.labelPosition ? 0 : a.donutSolid ? g - m.value / 2 : g / 2, h += a.labelOffset; var n = { x: e.x1 + e.width() / 2, y: e.y2 + e.height() / 2 }, o = 1 === j.raw.series.filter(function (a) { return a.hasOwnProperty("value") ? 0 !== a.value : 0 !== a }).length; j.raw.series.forEach(function (a, b) { k[b] = this.svg.elem("g", null, null) }.bind(this)), a.showLabel && (d = this.svg.elem("g", null, null)), j.raw.series.forEach(function (e, f) { if (0 !== j.normalized.series[f] || !a.ignoreEmptyValues) { k[f].attr({ "ct:series-name": e.name }), k[f].addClass([a.classNames.series, e.className || a.classNames.series + "-" + b.alphaNumerate(f)].join(" ")); var p = i > 0 ? l + j.normalized.series[f] / i * 360 : 0, q = Math.max(0, l - (0 === f || o ? 0 : .2)); p - q >= 359.99 && (p = q + 359.99); var r, s, t, u = b.polarToCartesian(n.x, n.y, g, q), v = b.polarToCartesian(n.x, n.y, g, p), w = new b.Svg.Path(!a.donut || a.donutSolid).move(v.x, v.y).arc(g, g, 0, p - l > 180, 0, u.x, u.y); a.donut ? a.donutSolid && (t = g - m.value, r = b.polarToCartesian(n.x, n.y, t, l - (0 === f || o ? 0 : .2)), s = b.polarToCartesian(n.x, n.y, t, p), w.line(r.x, r.y), w.arc(t, t, 0, p - l > 180, 1, s.x, s.y)) : w.line(n.x, n.y); var x = a.classNames.slicePie; a.donut && (x = a.classNames.sliceDonut, a.donutSolid && (x = a.classNames.sliceDonutSolid)); var y = k[f].elem("path", { d: w.stringify() }, x); if (y.attr({ "ct:value": j.normalized.series[f], "ct:meta": b.serialize(e.meta) }), a.donut && !a.donutSolid && (y._node.style.strokeWidth = m.value + "px"), this.eventEmitter.emit("draw", { type: "slice", value: j.normalized.series[f], totalDataSum: i, index: f, meta: e.meta, series: e, group: k[f], element: y, path: w.clone(), center: n, radius: g, startAngle: l, endAngle: p }), a.showLabel) { var z; z = 1 === j.raw.series.length ? { x: n.x, y: n.y } : b.polarToCartesian(n.x, n.y, h, l + (p - l) / 2); var A; A = j.normalized.labels && !b.isFalseyButZero(j.normalized.labels[f]) ? j.normalized.labels[f] : j.normalized.series[f]; var B = a.labelInterpolationFnc(A, f); if (B || 0 === B) { var C = d.elem("text", { dx: z.x, dy: z.y, "text-anchor": c(n, z, a.labelDirection) }, a.classNames.label).text("" + B); this.eventEmitter.emit("draw", { type: "label", index: f, group: d, element: C, text: "" + B, x: z.x, y: z.y }) } } l = p } }.bind(this)), this.eventEmitter.emit("created", { chartRect: e, svg: this.svg, options: a }) } function e(a, c, d, e) { b.Pie["super"].constructor.call(this, a, c, f, b.extend({}, f, d), e) } var f = (a.window, a.document, { width: void 0, height: void 0, chartPadding: 5, classNames: { chartPie: "ct-chart-pie", chartDonut: "ct-chart-donut", series: "ct-series", slicePie: "ct-slice-pie", sliceDonut: "ct-slice-donut", sliceDonutSolid: "ct-slice-donut-solid", label: "ct-label" }, startAngle: 0, total: void 0, donut: !1, donutSolid: !1, donutWidth: 60, showLabel: !0, labelOffset: 0, labelPosition: "inside", labelInterpolationFnc: b.noop, labelDirection: "neutral", reverseData: !1, ignoreEmptyValues: !1 }); b.Pie = b.Base.extend({ constructor: e, createChart: d, determineAnchorPosition: c }) }(this || global, a), a +}); +//# sourceMappingURL=chartist.min.js.map + +var i, l, selectedLine = null; + +/* Navigate to hash without browser history entry */ +var navigateToHash = function () { + if (window.history !== undefined && window.history.replaceState !== undefined) { + window.history.replaceState(undefined, undefined, this.getAttribute("href")); + } +}; + +var hashLinks = document.getElementsByClassName('navigatetohash'); +for (i = 0, l = hashLinks.length; i < l; i++) { + hashLinks[i].addEventListener('click', navigateToHash); +} + +/* Switch test method */ +var switchTestMethod = function () { + var method = this.getAttribute("value"); + console.log("Selected test method: " + method); + + var lines, i, l, coverageData, lineAnalysis, cells; + + lines = document.querySelectorAll('.lineAnalysis tr'); + + for (i = 1, l = lines.length; i < l; i++) { + coverageData = JSON.parse(lines[i].getAttribute('data-coverage').replace(/'/g, '"')); + lineAnalysis = coverageData[method]; + cells = lines[i].querySelectorAll('td'); + if (lineAnalysis === undefined) { + lineAnalysis = coverageData.AllTestMethods; + if (lineAnalysis.LVS !== 'gray') { + cells[0].setAttribute('class', 'red'); + cells[1].innerText = cells[1].textContent = '0'; + cells[4].setAttribute('class', 'lightred'); + } + } else { + cells[0].setAttribute('class', lineAnalysis.LVS); + cells[1].innerText = cells[1].textContent = lineAnalysis.VC; + cells[4].setAttribute('class', 'light' + lineAnalysis.LVS); + } + } +}; + +var testMethods = document.getElementsByClassName('switchtestmethod'); +for (i = 0, l = testMethods.length; i < l; i++) { + testMethods[i].addEventListener('change', switchTestMethod); +} + +/* Highlight test method by line */ +var toggleLine = function () { + if (selectedLine === this) { + selectedLine = null; + } else { + selectedLine = null; + unhighlightTestMethods(); + highlightTestMethods.call(this); + selectedLine = this; + } + +}; +var highlightTestMethods = function () { + if (selectedLine !== null) { + return; + } + + var lineAnalysis; + var coverageData = JSON.parse(this.getAttribute('data-coverage').replace(/'/g, '"')); + var testMethods = document.getElementsByClassName('testmethod'); + + for (i = 0, l = testMethods.length; i < l; i++) { + lineAnalysis = coverageData[testMethods[i].id]; + if (lineAnalysis === undefined) { + testMethods[i].className = testMethods[i].className.replace(/\s*light.+/g, ""); + } else { + testMethods[i].className += ' light' + lineAnalysis.LVS; + } + } +}; +var unhighlightTestMethods = function () { + if (selectedLine !== null) { + return; + } + + var testMethods = document.getElementsByClassName('testmethod'); + for (i = 0, l = testMethods.length; i < l; i++) { + testMethods[i].className = testMethods[i].className.replace(/\s*light.+/g, ""); + } +}; +var coverableLines = document.getElementsByClassName('coverableline'); +for (i = 0, l = coverableLines.length; i < l; i++) { + coverableLines[i].addEventListener('click', toggleLine); + coverableLines[i].addEventListener('mouseenter', highlightTestMethods); + coverableLines[i].addEventListener('mouseleave', unhighlightTestMethods); +} + +/* History charts */ +var renderChart = function (chart) { + // Remove current children (e.g. PNG placeholder) + while (chart.firstChild) { + chart.firstChild.remove(); + } + + var chartData = window[chart.getAttribute('data-data')]; + var options = { + axisY: { + type: undefined, + onlyInteger: true + }, + lineSmooth: false, + low: 0, + high: 100, + scaleMinSpace: 20, + onlyInteger: true, + fullWidth: true + }; + var lineChart = new Chartist.Line(chart, { + labels: [], + series: chartData.series + }, options); + + /* Zoom */ + var zoomButtonDiv = document.createElement("div"); + zoomButtonDiv.className = "toggleZoom"; + var zoomButtonLink = document.createElement("a"); + zoomButtonLink.setAttribute("href", ""); + var zoomButtonText = document.createElement("i"); + zoomButtonText.className = "icon-search-plus"; + + zoomButtonLink.appendChild(zoomButtonText); + zoomButtonDiv.appendChild(zoomButtonLink); + + chart.appendChild(zoomButtonDiv); + + zoomButtonDiv.addEventListener('click', function (event) { + event.preventDefault(); + + if (options.axisY.type === undefined) { + options.axisY.type = Chartist.AutoScaleAxis; + zoomButtonText.className = "icon-search-minus"; + } else { + options.axisY.type = undefined; + zoomButtonText.className = "icon-search-plus"; + } + + lineChart.update(null, options); + }); + + var tooltip = document.createElement("div"); + tooltip.className = "tooltip"; + + chart.appendChild(tooltip); + + /* Tooltips */ + var showToolTip = function () { + var index = this.getAttribute('ct:meta'); + + tooltip.innerHTML = chartData.tooltips[index]; + tooltip.style.display = 'block'; + }; + + var moveToolTip = function (event) { + var box = chart.getBoundingClientRect(); + var left = event.pageX - box.left - window.pageXOffset; + var top = event.pageY - box.top - window.pageYOffset; + + left = left + 20; + top = top - tooltip.offsetHeight / 2; + + if (left + tooltip.offsetWidth > box.width) { + left -= tooltip.offsetWidth + 40; + } + + if (top < 0) { + top = 0; + } + + if (top + tooltip.offsetHeight > box.height) { + top = box.height - tooltip.offsetHeight; + } + + tooltip.style.left = left + 'px'; + tooltip.style.top = top + 'px'; + }; + + var hideToolTip = function () { + tooltip.style.display = 'none'; + }; + chart.addEventListener('mousemove', moveToolTip); + + lineChart.on('created', function () { + var chartPoints = chart.getElementsByClassName('ct-point'); + for (i = 0, l = chartPoints.length; i < l; i++) { + chartPoints[i].addEventListener('mousemove', showToolTip); + chartPoints[i].addEventListener('mouseout', hideToolTip); + } + }); +}; + +var charts = document.getElementsByClassName('historychart'); +for (i = 0, l = charts.length; i < l; i++) { + renderChart(charts[i]); +} \ No newline at end of file diff --git a/docs/resources/reports/Html/icon_cog.svg b/docs/resources/reports/Html/icon_cog.svg new file mode 100644 index 00000000..d730bf12 --- /dev/null +++ b/docs/resources/reports/Html/icon_cog.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/resources/reports/Html/icon_cog_dark.svg b/docs/resources/reports/Html/icon_cog_dark.svg new file mode 100644 index 00000000..ccbcd9b0 --- /dev/null +++ b/docs/resources/reports/Html/icon_cog_dark.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/resources/reports/Html/icon_cube.svg b/docs/resources/reports/Html/icon_cube.svg new file mode 100644 index 00000000..3302443c --- /dev/null +++ b/docs/resources/reports/Html/icon_cube.svg @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/docs/resources/reports/Html/icon_cube_dark.svg b/docs/resources/reports/Html/icon_cube_dark.svg new file mode 100644 index 00000000..3e7f0fa8 --- /dev/null +++ b/docs/resources/reports/Html/icon_cube_dark.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/resources/reports/Html/icon_down-dir_active.svg b/docs/resources/reports/Html/icon_down-dir_active.svg new file mode 100644 index 00000000..d11cf041 --- /dev/null +++ b/docs/resources/reports/Html/icon_down-dir_active.svg @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/docs/resources/reports/Html/icon_down-dir_active_dark.svg b/docs/resources/reports/Html/icon_down-dir_active_dark.svg new file mode 100644 index 00000000..fa34aeb3 --- /dev/null +++ b/docs/resources/reports/Html/icon_down-dir_active_dark.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/resources/reports/Html/icon_fork.svg b/docs/resources/reports/Html/icon_fork.svg new file mode 100644 index 00000000..f0148b3a --- /dev/null +++ b/docs/resources/reports/Html/icon_fork.svg @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/docs/resources/reports/Html/icon_fork_dark.svg b/docs/resources/reports/Html/icon_fork_dark.svg new file mode 100644 index 00000000..11930c9b --- /dev/null +++ b/docs/resources/reports/Html/icon_fork_dark.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/resources/reports/Html/icon_info-circled.svg b/docs/resources/reports/Html/icon_info-circled.svg new file mode 100644 index 00000000..252166bb --- /dev/null +++ b/docs/resources/reports/Html/icon_info-circled.svg @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/docs/resources/reports/Html/icon_info-circled_dark.svg b/docs/resources/reports/Html/icon_info-circled_dark.svg new file mode 100644 index 00000000..252166bb --- /dev/null +++ b/docs/resources/reports/Html/icon_info-circled_dark.svg @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/docs/resources/reports/Html/icon_minus.svg b/docs/resources/reports/Html/icon_minus.svg new file mode 100644 index 00000000..3c30c365 --- /dev/null +++ b/docs/resources/reports/Html/icon_minus.svg @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/docs/resources/reports/Html/icon_minus_dark.svg b/docs/resources/reports/Html/icon_minus_dark.svg new file mode 100644 index 00000000..2516b6fc --- /dev/null +++ b/docs/resources/reports/Html/icon_minus_dark.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/resources/reports/Html/icon_plus.svg b/docs/resources/reports/Html/icon_plus.svg new file mode 100644 index 00000000..79327232 --- /dev/null +++ b/docs/resources/reports/Html/icon_plus.svg @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/docs/resources/reports/Html/icon_plus_dark.svg b/docs/resources/reports/Html/icon_plus_dark.svg new file mode 100644 index 00000000..6ed4edd0 --- /dev/null +++ b/docs/resources/reports/Html/icon_plus_dark.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/resources/reports/Html/icon_search-minus.svg b/docs/resources/reports/Html/icon_search-minus.svg new file mode 100644 index 00000000..c174eb5e --- /dev/null +++ b/docs/resources/reports/Html/icon_search-minus.svg @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/docs/resources/reports/Html/icon_search-minus_dark.svg b/docs/resources/reports/Html/icon_search-minus_dark.svg new file mode 100644 index 00000000..9caaffbc --- /dev/null +++ b/docs/resources/reports/Html/icon_search-minus_dark.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/resources/reports/Html/icon_search-plus.svg b/docs/resources/reports/Html/icon_search-plus.svg new file mode 100644 index 00000000..04b24ecc --- /dev/null +++ b/docs/resources/reports/Html/icon_search-plus.svg @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/docs/resources/reports/Html/icon_search-plus_dark.svg b/docs/resources/reports/Html/icon_search-plus_dark.svg new file mode 100644 index 00000000..53241945 --- /dev/null +++ b/docs/resources/reports/Html/icon_search-plus_dark.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/resources/reports/Html/icon_sponsor.svg b/docs/resources/reports/Html/icon_sponsor.svg new file mode 100644 index 00000000..bf6d9591 --- /dev/null +++ b/docs/resources/reports/Html/icon_sponsor.svg @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/docs/resources/reports/Html/icon_star.svg b/docs/resources/reports/Html/icon_star.svg new file mode 100644 index 00000000..b23c54ea --- /dev/null +++ b/docs/resources/reports/Html/icon_star.svg @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/docs/resources/reports/Html/icon_star_dark.svg b/docs/resources/reports/Html/icon_star_dark.svg new file mode 100644 index 00000000..49c0d034 --- /dev/null +++ b/docs/resources/reports/Html/icon_star_dark.svg @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/docs/resources/reports/Html/icon_up-dir.svg b/docs/resources/reports/Html/icon_up-dir.svg new file mode 100644 index 00000000..567c11f3 --- /dev/null +++ b/docs/resources/reports/Html/icon_up-dir.svg @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/docs/resources/reports/Html/icon_up-dir_active.svg b/docs/resources/reports/Html/icon_up-dir_active.svg new file mode 100644 index 00000000..bb225544 --- /dev/null +++ b/docs/resources/reports/Html/icon_up-dir_active.svg @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/docs/resources/reports/Html/icon_wrench.svg b/docs/resources/reports/Html/icon_wrench.svg new file mode 100644 index 00000000..b6aa318c --- /dev/null +++ b/docs/resources/reports/Html/icon_wrench.svg @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/docs/resources/reports/Html/icon_wrench_dark.svg b/docs/resources/reports/Html/icon_wrench_dark.svg new file mode 100644 index 00000000..5c77a9c8 --- /dev/null +++ b/docs/resources/reports/Html/icon_wrench_dark.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/resources/reports/Html/index.html b/docs/resources/reports/Html/index.html new file mode 100644 index 00000000..caba7719 --- /dev/null +++ b/docs/resources/reports/Html/index.html @@ -0,0 +1,207 @@ + + + + + + + +Summary - Coverage Report + +
+

SummaryStarSponsor

+
+
+
Information
+
+
+ + + + + + + + + + + + + + + + + +
Parser:OpenCover
Assemblies:1
Classes:4
Files:5
+
+
+
+
+
Line coverage
+
+
66%
+
+ + + + + + + + + + + + + + + + + + + + + +
Covered lines:83
Uncovered lines:42
Coverable lines:125
Total lines:260
Line coverage:66.4%
+
+
+
+
+
Branch coverage
+
+
50%
+
+ + + + + + + + + + + + + +
Covered branches:3
Total branches:6
Branch coverage:50%
+
+
+
+
+
Method coverage
+
+
58%
+
+ + + + + + + + + + + + + +
Covered methods:14
Total methods:24
Method coverage:58.3%
+
+
+
+
+

Coverage history

+
+ +

Risk Hotspots

+ + +

No risk hotspots found.

+

Coverage

+ +
+ +++++++++++++++++ + + + + + + + + + + +
Line coverageBranch coverageMethod coverage
NameCoveredUncoveredCoverableTotalPercentageCoveredTotalPercentageCoveredTotalPercentage
Sample834212526066.4%
  
3650%
  
142458.3%
  
Sample.PartialClass1210225354.5%
  
1250%
  
3650%
  
Sample.TestClass129213857.1%
  
1250%
  
1250%
  
Test.Program359448479.5%
  
00
 
4666.6%
  
Test.TestClass22414388563.1%
  
1250%
  
61060%
  
+
+
+
+ + \ No newline at end of file diff --git a/docs/resources/reports/Html/main.js b/docs/resources/reports/Html/main.js new file mode 100644 index 00000000..09e0c6b8 --- /dev/null +++ b/docs/resources/reports/Html/main.js @@ -0,0 +1,290 @@ +/* Chartist.js 0.11.4 + * Copyright © 2019 Gion Kunz + * Free to use under either the WTFPL license or the MIT license. + * https://raw.githubusercontent.com/gionkunz/chartist-js/master/LICENSE-WTFPL + * https://raw.githubusercontent.com/gionkunz/chartist-js/master/LICENSE-MIT + */ + +!function (a, b) { "function" == typeof define && define.amd ? define("Chartist", [], function () { return a.Chartist = b() }) : "object" == typeof module && module.exports ? module.exports = b() : a.Chartist = b() }(this, function () { + var a = { version: "0.11.4" }; return function (a, b) { "use strict"; var c = a.window, d = a.document; b.namespaces = { svg: "http://www.w3.org/2000/svg", xmlns: "http://www.w3.org/2000/xmlns/", xhtml: "http://www.w3.org/1999/xhtml", xlink: "http://www.w3.org/1999/xlink", ct: "http://gionkunz.github.com/chartist-js/ct" }, b.noop = function (a) { return a }, b.alphaNumerate = function (a) { return String.fromCharCode(97 + a % 26) }, b.extend = function (a) { var c, d, e; for (a = a || {}, c = 1; c < arguments.length; c++) { d = arguments[c]; for (var f in d) e = d[f], "object" != typeof e || null === e || e instanceof Array ? a[f] = e : a[f] = b.extend(a[f], e) } return a }, b.replaceAll = function (a, b, c) { return a.replace(new RegExp(b, "g"), c) }, b.ensureUnit = function (a, b) { return "number" == typeof a && (a += b), a }, b.quantity = function (a) { if ("string" == typeof a) { var b = /^(\d+)\s*(.*)$/g.exec(a); return { value: +b[1], unit: b[2] || void 0 } } return { value: a } }, b.querySelector = function (a) { return a instanceof Node ? a : d.querySelector(a) }, b.times = function (a) { return Array.apply(null, new Array(a)) }, b.sum = function (a, b) { return a + (b ? b : 0) }, b.mapMultiply = function (a) { return function (b) { return b * a } }, b.mapAdd = function (a) { return function (b) { return b + a } }, b.serialMap = function (a, c) { var d = [], e = Math.max.apply(null, a.map(function (a) { return a.length })); return b.times(e).forEach(function (b, e) { var f = a.map(function (a) { return a[e] }); d[e] = c.apply(null, f) }), d }, b.roundWithPrecision = function (a, c) { var d = Math.pow(10, c || b.precision); return Math.round(a * d) / d }, b.precision = 8, b.escapingMap = { "&": "&", "<": "<", ">": ">", '"': """, "'": "'" }, b.serialize = function (a) { return null === a || void 0 === a ? a : ("number" == typeof a ? a = "" + a : "object" == typeof a && (a = JSON.stringify({ data: a })), Object.keys(b.escapingMap).reduce(function (a, c) { return b.replaceAll(a, c, b.escapingMap[c]) }, a)) }, b.deserialize = function (a) { if ("string" != typeof a) return a; a = Object.keys(b.escapingMap).reduce(function (a, c) { return b.replaceAll(a, b.escapingMap[c], c) }, a); try { a = JSON.parse(a), a = void 0 !== a.data ? a.data : a } catch (c) { } return a }, b.createSvg = function (a, c, d, e) { var f; return c = c || "100%", d = d || "100%", Array.prototype.slice.call(a.querySelectorAll("svg")).filter(function (a) { return a.getAttributeNS(b.namespaces.xmlns, "ct") }).forEach(function (b) { a.removeChild(b) }), f = new b.Svg("svg").attr({ width: c, height: d }).addClass(e), f._node.style.width = c, f._node.style.height = d, a.appendChild(f._node), f }, b.normalizeData = function (a, c, d) { var e, f = { raw: a, normalized: {} }; return f.normalized.series = b.getDataArray({ series: a.series || [] }, c, d), e = f.normalized.series.every(function (a) { return a instanceof Array }) ? Math.max.apply(null, f.normalized.series.map(function (a) { return a.length })) : f.normalized.series.length, f.normalized.labels = (a.labels || []).slice(), Array.prototype.push.apply(f.normalized.labels, b.times(Math.max(0, e - f.normalized.labels.length)).map(function () { return "" })), c && b.reverseData(f.normalized), f }, b.safeHasProperty = function (a, b) { return null !== a && "object" == typeof a && a.hasOwnProperty(b) }, b.isDataHoleValue = function (a) { return null === a || void 0 === a || "number" == typeof a && isNaN(a) }, b.reverseData = function (a) { a.labels.reverse(), a.series.reverse(); for (var b = 0; b < a.series.length; b++)"object" == typeof a.series[b] && void 0 !== a.series[b].data ? a.series[b].data.reverse() : a.series[b] instanceof Array && a.series[b].reverse() }, b.getDataArray = function (a, c, d) { function e(a) { if (b.safeHasProperty(a, "value")) return e(a.value); if (b.safeHasProperty(a, "data")) return e(a.data); if (a instanceof Array) return a.map(e); if (!b.isDataHoleValue(a)) { if (d) { var c = {}; return "string" == typeof d ? c[d] = b.getNumberOrUndefined(a) : c.y = b.getNumberOrUndefined(a), c.x = a.hasOwnProperty("x") ? b.getNumberOrUndefined(a.x) : c.x, c.y = a.hasOwnProperty("y") ? b.getNumberOrUndefined(a.y) : c.y, c } return b.getNumberOrUndefined(a) } } return a.series.map(e) }, b.normalizePadding = function (a, b) { return b = b || 0, "number" == typeof a ? { top: a, right: a, bottom: a, left: a } : { top: "number" == typeof a.top ? a.top : b, right: "number" == typeof a.right ? a.right : b, bottom: "number" == typeof a.bottom ? a.bottom : b, left: "number" == typeof a.left ? a.left : b } }, b.getMetaData = function (a, b) { var c = a.data ? a.data[b] : a[b]; return c ? c.meta : void 0 }, b.orderOfMagnitude = function (a) { return Math.floor(Math.log(Math.abs(a)) / Math.LN10) }, b.projectLength = function (a, b, c) { return b / c.range * a }, b.getAvailableHeight = function (a, c) { return Math.max((b.quantity(c.height).value || a.height()) - (c.chartPadding.top + c.chartPadding.bottom) - c.axisX.offset, 0) }, b.getHighLow = function (a, c, d) { function e(a) { if (void 0 !== a) if (a instanceof Array) for (var b = 0; b < a.length; b++)e(a[b]); else { var c = d ? +a[d] : +a; g && c > f.high && (f.high = c), h && c < f.low && (f.low = c) } } c = b.extend({}, c, d ? c["axis" + d.toUpperCase()] : {}); var f = { high: void 0 === c.high ? -Number.MAX_VALUE : +c.high, low: void 0 === c.low ? Number.MAX_VALUE : +c.low }, g = void 0 === c.high, h = void 0 === c.low; return (g || h) && e(a), (c.referenceValue || 0 === c.referenceValue) && (f.high = Math.max(c.referenceValue, f.high), f.low = Math.min(c.referenceValue, f.low)), f.high <= f.low && (0 === f.low ? f.high = 1 : f.low < 0 ? f.high = 0 : f.high > 0 ? f.low = 0 : (f.high = 1, f.low = 0)), f }, b.isNumeric = function (a) { return null !== a && isFinite(a) }, b.isFalseyButZero = function (a) { return !a && 0 !== a }, b.getNumberOrUndefined = function (a) { return b.isNumeric(a) ? +a : void 0 }, b.isMultiValue = function (a) { return "object" == typeof a && ("x" in a || "y" in a) }, b.getMultiValue = function (a, c) { return b.isMultiValue(a) ? b.getNumberOrUndefined(a[c || "y"]) : b.getNumberOrUndefined(a) }, b.rho = function (a) { function b(a, c) { return a % c === 0 ? c : b(c, a % c) } function c(a) { return a * a + 1 } if (1 === a) return a; var d, e = 2, f = 2; if (a % 2 === 0) return 2; do e = c(e) % a, f = c(c(f)) % a, d = b(Math.abs(e - f), a); while (1 === d); return d }, b.getBounds = function (a, c, d, e) { function f(a, b) { return a === (a += b) && (a *= 1 + (b > 0 ? o : -o)), a } var g, h, i, j = 0, k = { high: c.high, low: c.low }; k.valueRange = k.high - k.low, k.oom = b.orderOfMagnitude(k.valueRange), k.step = Math.pow(10, k.oom), k.min = Math.floor(k.low / k.step) * k.step, k.max = Math.ceil(k.high / k.step) * k.step, k.range = k.max - k.min, k.numberOfSteps = Math.round(k.range / k.step); var l = b.projectLength(a, k.step, k), m = l < d, n = e ? b.rho(k.range) : 0; if (e && b.projectLength(a, 1, k) >= d) k.step = 1; else if (e && n < k.step && b.projectLength(a, n, k) >= d) k.step = n; else for (; ;) { if (m && b.projectLength(a, k.step, k) <= d) k.step *= 2; else { if (m || !(b.projectLength(a, k.step / 2, k) >= d)) break; if (k.step /= 2, e && k.step % 1 !== 0) { k.step *= 2; break } } if (j++ > 1e3) throw new Error("Exceeded maximum number of iterations while optimizing scale step!") } var o = 2.221e-16; for (k.step = Math.max(k.step, o), h = k.min, i = k.max; h + k.step <= k.low;)h = f(h, k.step); for (; i - k.step >= k.high;)i = f(i, -k.step); k.min = h, k.max = i, k.range = k.max - k.min; var p = []; for (g = k.min; g <= k.max; g = f(g, k.step)) { var q = b.roundWithPrecision(g); q !== p[p.length - 1] && p.push(q) } return k.values = p, k }, b.polarToCartesian = function (a, b, c, d) { var e = (d - 90) * Math.PI / 180; return { x: a + c * Math.cos(e), y: b + c * Math.sin(e) } }, b.createChartRect = function (a, c, d) { var e = !(!c.axisX && !c.axisY), f = e ? c.axisY.offset : 0, g = e ? c.axisX.offset : 0, h = a.width() || b.quantity(c.width).value || 0, i = a.height() || b.quantity(c.height).value || 0, j = b.normalizePadding(c.chartPadding, d); h = Math.max(h, f + j.left + j.right), i = Math.max(i, g + j.top + j.bottom); var k = { padding: j, width: function () { return this.x2 - this.x1 }, height: function () { return this.y1 - this.y2 } }; return e ? ("start" === c.axisX.position ? (k.y2 = j.top + g, k.y1 = Math.max(i - j.bottom, k.y2 + 1)) : (k.y2 = j.top, k.y1 = Math.max(i - j.bottom - g, k.y2 + 1)), "start" === c.axisY.position ? (k.x1 = j.left + f, k.x2 = Math.max(h - j.right, k.x1 + 1)) : (k.x1 = j.left, k.x2 = Math.max(h - j.right - f, k.x1 + 1))) : (k.x1 = j.left, k.x2 = Math.max(h - j.right, k.x1 + 1), k.y2 = j.top, k.y1 = Math.max(i - j.bottom, k.y2 + 1)), k }, b.createGrid = function (a, c, d, e, f, g, h, i) { var j = {}; j[d.units.pos + "1"] = a, j[d.units.pos + "2"] = a, j[d.counterUnits.pos + "1"] = e, j[d.counterUnits.pos + "2"] = e + f; var k = g.elem("line", j, h.join(" ")); i.emit("draw", b.extend({ type: "grid", axis: d, index: c, group: g, element: k }, j)) }, b.createGridBackground = function (a, b, c, d) { var e = a.elem("rect", { x: b.x1, y: b.y2, width: b.width(), height: b.height() }, c, !0); d.emit("draw", { type: "gridBackground", group: a, element: e }) }, b.createLabel = function (a, c, e, f, g, h, i, j, k, l, m) { var n, o = {}; if (o[g.units.pos] = a + i[g.units.pos], o[g.counterUnits.pos] = i[g.counterUnits.pos], o[g.units.len] = c, o[g.counterUnits.len] = Math.max(0, h - 10), l) { var p = d.createElement("span"); p.className = k.join(" "), p.setAttribute("xmlns", b.namespaces.xhtml), p.innerText = f[e], p.style[g.units.len] = Math.round(o[g.units.len]) + "px", p.style[g.counterUnits.len] = Math.round(o[g.counterUnits.len]) + "px", n = j.foreignObject(p, b.extend({ style: "overflow: visible;" }, o)) } else n = j.elem("text", o, k.join(" ")).text(f[e]); m.emit("draw", b.extend({ type: "label", axis: g, index: e, group: j, element: n, text: f[e] }, o)) }, b.getSeriesOption = function (a, b, c) { if (a.name && b.series && b.series[a.name]) { var d = b.series[a.name]; return d.hasOwnProperty(c) ? d[c] : b[c] } return b[c] }, b.optionsProvider = function (a, d, e) { function f(a) { var f = h; if (h = b.extend({}, j), d) for (i = 0; i < d.length; i++) { var g = c.matchMedia(d[i][0]); g.matches && (h = b.extend(h, d[i][1])) } e && a && e.emit("optionsChanged", { previousOptions: f, currentOptions: h }) } function g() { k.forEach(function (a) { a.removeListener(f) }) } var h, i, j = b.extend({}, a), k = []; if (!c.matchMedia) throw "window.matchMedia not found! Make sure you're using a polyfill."; if (d) for (i = 0; i < d.length; i++) { var l = c.matchMedia(d[i][0]); l.addListener(f), k.push(l) } return f(), { removeMediaQueryListeners: g, getCurrentOptions: function () { return b.extend({}, h) } } }, b.splitIntoSegments = function (a, c, d) { var e = { increasingX: !1, fillHoles: !1 }; d = b.extend({}, e, d); for (var f = [], g = !0, h = 0; h < a.length; h += 2)void 0 === b.getMultiValue(c[h / 2].value) ? d.fillHoles || (g = !0) : (d.increasingX && h >= 2 && a[h] <= a[h - 2] && (g = !0), g && (f.push({ pathCoordinates: [], valueData: [] }), g = !1), f[f.length - 1].pathCoordinates.push(a[h], a[h + 1]), f[f.length - 1].valueData.push(c[h / 2])); return f } }(this || global, a), function (a, b) { "use strict"; b.Interpolation = {}, b.Interpolation.none = function (a) { var c = { fillHoles: !1 }; return a = b.extend({}, c, a), function (c, d) { for (var e = new b.Svg.Path, f = !0, g = 0; g < c.length; g += 2) { var h = c[g], i = c[g + 1], j = d[g / 2]; void 0 !== b.getMultiValue(j.value) ? (f ? e.move(h, i, !1, j) : e.line(h, i, !1, j), f = !1) : a.fillHoles || (f = !0) } return e } }, b.Interpolation.simple = function (a) { var c = { divisor: 2, fillHoles: !1 }; a = b.extend({}, c, a); var d = 1 / Math.max(1, a.divisor); return function (c, e) { for (var f, g, h, i = new b.Svg.Path, j = 0; j < c.length; j += 2) { var k = c[j], l = c[j + 1], m = (k - f) * d, n = e[j / 2]; void 0 !== n.value ? (void 0 === h ? i.move(k, l, !1, n) : i.curve(f + m, g, k - m, l, k, l, !1, n), f = k, g = l, h = n) : a.fillHoles || (f = k = h = void 0) } return i } }, b.Interpolation.cardinal = function (a) { var c = { tension: 1, fillHoles: !1 }; a = b.extend({}, c, a); var d = Math.min(1, Math.max(0, a.tension)), e = 1 - d; return function f(c, g) { var h = b.splitIntoSegments(c, g, { fillHoles: a.fillHoles }); if (h.length) { if (h.length > 1) { var i = []; return h.forEach(function (a) { i.push(f(a.pathCoordinates, a.valueData)) }), b.Svg.Path.join(i) } if (c = h[0].pathCoordinates, g = h[0].valueData, c.length <= 4) return b.Interpolation.none()(c, g); for (var j, k = (new b.Svg.Path).move(c[0], c[1], !1, g[0]), l = 0, m = c.length; m - 2 * !j > l; l += 2) { var n = [{ x: +c[l - 2], y: +c[l - 1] }, { x: +c[l], y: +c[l + 1] }, { x: +c[l + 2], y: +c[l + 3] }, { x: +c[l + 4], y: +c[l + 5] }]; j ? l ? m - 4 === l ? n[3] = { x: +c[0], y: +c[1] } : m - 2 === l && (n[2] = { x: +c[0], y: +c[1] }, n[3] = { x: +c[2], y: +c[3] }) : n[0] = { x: +c[m - 2], y: +c[m - 1] } : m - 4 === l ? n[3] = n[2] : l || (n[0] = { x: +c[l], y: +c[l + 1] }), k.curve(d * (-n[0].x + 6 * n[1].x + n[2].x) / 6 + e * n[2].x, d * (-n[0].y + 6 * n[1].y + n[2].y) / 6 + e * n[2].y, d * (n[1].x + 6 * n[2].x - n[3].x) / 6 + e * n[2].x, d * (n[1].y + 6 * n[2].y - n[3].y) / 6 + e * n[2].y, n[2].x, n[2].y, !1, g[(l + 2) / 2]) } return k } return b.Interpolation.none()([]) } }, b.Interpolation.monotoneCubic = function (a) { var c = { fillHoles: !1 }; return a = b.extend({}, c, a), function d(c, e) { var f = b.splitIntoSegments(c, e, { fillHoles: a.fillHoles, increasingX: !0 }); if (f.length) { if (f.length > 1) { var g = []; return f.forEach(function (a) { g.push(d(a.pathCoordinates, a.valueData)) }), b.Svg.Path.join(g) } if (c = f[0].pathCoordinates, e = f[0].valueData, c.length <= 4) return b.Interpolation.none()(c, e); var h, i, j = [], k = [], l = c.length / 2, m = [], n = [], o = [], p = []; for (h = 0; h < l; h++)j[h] = c[2 * h], k[h] = c[2 * h + 1]; for (h = 0; h < l - 1; h++)o[h] = k[h + 1] - k[h], p[h] = j[h + 1] - j[h], n[h] = o[h] / p[h]; for (m[0] = n[0], m[l - 1] = n[l - 2], h = 1; h < l - 1; h++)0 === n[h] || 0 === n[h - 1] || n[h - 1] > 0 != n[h] > 0 ? m[h] = 0 : (m[h] = 3 * (p[h - 1] + p[h]) / ((2 * p[h] + p[h - 1]) / n[h - 1] + (p[h] + 2 * p[h - 1]) / n[h]), isFinite(m[h]) || (m[h] = 0)); for (i = (new b.Svg.Path).move(j[0], k[0], !1, e[0]), h = 0; h < l - 1; h++)i.curve(j[h] + p[h] / 3, k[h] + m[h] * p[h] / 3, j[h + 1] - p[h] / 3, k[h + 1] - m[h + 1] * p[h] / 3, j[h + 1], k[h + 1], !1, e[h + 1]); return i } return b.Interpolation.none()([]) } }, b.Interpolation.step = function (a) { var c = { postpone: !0, fillHoles: !1 }; return a = b.extend({}, c, a), function (c, d) { for (var e, f, g, h = new b.Svg.Path, i = 0; i < c.length; i += 2) { var j = c[i], k = c[i + 1], l = d[i / 2]; void 0 !== l.value ? (void 0 === g ? h.move(j, k, !1, l) : (a.postpone ? h.line(j, f, !1, g) : h.line(e, k, !1, l), h.line(j, k, !1, l)), e = j, f = k, g = l) : a.fillHoles || (e = f = g = void 0) } return h } } }(this || global, a), function (a, b) { "use strict"; b.EventEmitter = function () { function a(a, b) { d[a] = d[a] || [], d[a].push(b) } function b(a, b) { d[a] && (b ? (d[a].splice(d[a].indexOf(b), 1), 0 === d[a].length && delete d[a]) : delete d[a]) } function c(a, b) { d[a] && d[a].forEach(function (a) { a(b) }), d["*"] && d["*"].forEach(function (c) { c(a, b) }) } var d = []; return { addEventHandler: a, removeEventHandler: b, emit: c } } }(this || global, a), function (a, b) { "use strict"; function c(a) { var b = []; if (a.length) for (var c = 0; c < a.length; c++)b.push(a[c]); return b } function d(a, c) { var d = c || this.prototype || b.Class, e = Object.create(d); b.Class.cloneDefinitions(e, a); var f = function () { var a, c = e.constructor || function () { }; return a = this === b ? Object.create(e) : this, c.apply(a, Array.prototype.slice.call(arguments, 0)), a }; return f.prototype = e, f["super"] = d, f.extend = this.extend, f } function e() { var a = c(arguments), b = a[0]; return a.splice(1, a.length - 1).forEach(function (a) { Object.getOwnPropertyNames(a).forEach(function (c) { delete b[c], Object.defineProperty(b, c, Object.getOwnPropertyDescriptor(a, c)) }) }), b } b.Class = { extend: d, cloneDefinitions: e } }(this || global, a), function (a, b) { "use strict"; function c(a, c, d) { return a && (this.data = a || {}, this.data.labels = this.data.labels || [], this.data.series = this.data.series || [], this.eventEmitter.emit("data", { type: "update", data: this.data })), c && (this.options = b.extend({}, d ? this.options : this.defaultOptions, c), this.initializeTimeoutId || (this.optionsProvider.removeMediaQueryListeners(), this.optionsProvider = b.optionsProvider(this.options, this.responsiveOptions, this.eventEmitter))), this.initializeTimeoutId || this.createChart(this.optionsProvider.getCurrentOptions()), this } function d() { return this.initializeTimeoutId ? i.clearTimeout(this.initializeTimeoutId) : (i.removeEventListener("resize", this.resizeListener), this.optionsProvider.removeMediaQueryListeners()), this } function e(a, b) { return this.eventEmitter.addEventHandler(a, b), this } function f(a, b) { return this.eventEmitter.removeEventHandler(a, b), this } function g() { i.addEventListener("resize", this.resizeListener), this.optionsProvider = b.optionsProvider(this.options, this.responsiveOptions, this.eventEmitter), this.eventEmitter.addEventHandler("optionsChanged", function () { this.update() }.bind(this)), this.options.plugins && this.options.plugins.forEach(function (a) { a instanceof Array ? a[0](this, a[1]) : a(this) }.bind(this)), this.eventEmitter.emit("data", { type: "initial", data: this.data }), this.createChart(this.optionsProvider.getCurrentOptions()), this.initializeTimeoutId = void 0 } function h(a, c, d, e, f) { this.container = b.querySelector(a), this.data = c || {}, this.data.labels = this.data.labels || [], this.data.series = this.data.series || [], this.defaultOptions = d, this.options = e, this.responsiveOptions = f, this.eventEmitter = b.EventEmitter(), this.supportsForeignObject = b.Svg.isSupported("Extensibility"), this.supportsAnimations = b.Svg.isSupported("AnimationEventsAttribute"), this.resizeListener = function () { this.update() }.bind(this), this.container && (this.container.__chartist__ && this.container.__chartist__.detach(), this.container.__chartist__ = this), this.initializeTimeoutId = setTimeout(g.bind(this), 0) } var i = a.window; b.Base = b.Class.extend({ constructor: h, optionsProvider: void 0, container: void 0, svg: void 0, eventEmitter: void 0, createChart: function () { throw new Error("Base chart type can't be instantiated!") }, update: c, detach: d, on: e, off: f, version: b.version, supportsForeignObject: !1 }) }(this || global, a), function (a, b) { "use strict"; function c(a, c, d, e, f) { a instanceof Element ? this._node = a : (this._node = y.createElementNS(b.namespaces.svg, a), "svg" === a && this.attr({ "xmlns:ct": b.namespaces.ct })), c && this.attr(c), d && this.addClass(d), e && (f && e._node.firstChild ? e._node.insertBefore(this._node, e._node.firstChild) : e._node.appendChild(this._node)) } function d(a, c) { return "string" == typeof a ? c ? this._node.getAttributeNS(c, a) : this._node.getAttribute(a) : (Object.keys(a).forEach(function (c) { if (void 0 !== a[c]) if (c.indexOf(":") !== -1) { var d = c.split(":"); this._node.setAttributeNS(b.namespaces[d[0]], c, a[c]) } else this._node.setAttribute(c, a[c]) }.bind(this)), this) } function e(a, c, d, e) { return new b.Svg(a, c, d, this, e) } function f() { return this._node.parentNode instanceof SVGElement ? new b.Svg(this._node.parentNode) : null } function g() { for (var a = this._node; "svg" !== a.nodeName;)a = a.parentNode; return new b.Svg(a) } function h(a) { var c = this._node.querySelector(a); return c ? new b.Svg(c) : null } function i(a) { var c = this._node.querySelectorAll(a); return c.length ? new b.Svg.List(c) : null } function j() { return this._node } function k(a, c, d, e) { if ("string" == typeof a) { var f = y.createElement("div"); f.innerHTML = a, a = f.firstChild } a.setAttribute("xmlns", b.namespaces.xmlns); var g = this.elem("foreignObject", c, d, e); return g._node.appendChild(a), g } function l(a) { return this._node.appendChild(y.createTextNode(a)), this } function m() { for (; this._node.firstChild;)this._node.removeChild(this._node.firstChild); return this } function n() { return this._node.parentNode.removeChild(this._node), this.parent() } function o(a) { return this._node.parentNode.replaceChild(a._node, this._node), a } function p(a, b) { return b && this._node.firstChild ? this._node.insertBefore(a._node, this._node.firstChild) : this._node.appendChild(a._node), this } function q() { return this._node.getAttribute("class") ? this._node.getAttribute("class").trim().split(/\s+/) : [] } function r(a) { return this._node.setAttribute("class", this.classes(this._node).concat(a.trim().split(/\s+/)).filter(function (a, b, c) { return c.indexOf(a) === b }).join(" ")), this } function s(a) { var b = a.trim().split(/\s+/); return this._node.setAttribute("class", this.classes(this._node).filter(function (a) { return b.indexOf(a) === -1 }).join(" ")), this } function t() { return this._node.setAttribute("class", ""), this } function u() { return this._node.getBoundingClientRect().height } function v() { return this._node.getBoundingClientRect().width } function w(a, c, d) { return void 0 === c && (c = !0), Object.keys(a).forEach(function (e) { function f(a, c) { var f, g, h, i = {}; a.easing && (h = a.easing instanceof Array ? a.easing : b.Svg.Easing[a.easing], delete a.easing), a.begin = b.ensureUnit(a.begin, "ms"), a.dur = b.ensureUnit(a.dur, "ms"), h && (a.calcMode = "spline", a.keySplines = h.join(" "), a.keyTimes = "0;1"), c && (a.fill = "freeze", i[e] = a.from, this.attr(i), g = b.quantity(a.begin || 0).value, a.begin = "indefinite"), f = this.elem("animate", b.extend({ attributeName: e }, a)), c && setTimeout(function () { try { f._node.beginElement() } catch (b) { i[e] = a.to, this.attr(i), f.remove() } }.bind(this), g), d && f._node.addEventListener("beginEvent", function () { d.emit("animationBegin", { element: this, animate: f._node, params: a }) }.bind(this)), f._node.addEventListener("endEvent", function () { d && d.emit("animationEnd", { element: this, animate: f._node, params: a }), c && (i[e] = a.to, this.attr(i), f.remove()) }.bind(this)) } a[e] instanceof Array ? a[e].forEach(function (a) { f.bind(this)(a, !1) }.bind(this)) : f.bind(this)(a[e], c) }.bind(this)), this } function x(a) { var c = this; this.svgElements = []; for (var d = 0; d < a.length; d++)this.svgElements.push(new b.Svg(a[d])); Object.keys(b.Svg.prototype).filter(function (a) { return ["constructor", "parent", "querySelector", "querySelectorAll", "replace", "append", "classes", "height", "width"].indexOf(a) === -1 }).forEach(function (a) { c[a] = function () { var d = Array.prototype.slice.call(arguments, 0); return c.svgElements.forEach(function (c) { b.Svg.prototype[a].apply(c, d) }), c } }) } var y = a.document; b.Svg = b.Class.extend({ constructor: c, attr: d, elem: e, parent: f, root: g, querySelector: h, querySelectorAll: i, getNode: j, foreignObject: k, text: l, empty: m, remove: n, replace: o, append: p, classes: q, addClass: r, removeClass: s, removeAllClasses: t, height: u, width: v, animate: w }), b.Svg.isSupported = function (a) { return y.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#" + a, "1.1") }; var z = { easeInSine: [.47, 0, .745, .715], easeOutSine: [.39, .575, .565, 1], easeInOutSine: [.445, .05, .55, .95], easeInQuad: [.55, .085, .68, .53], easeOutQuad: [.25, .46, .45, .94], easeInOutQuad: [.455, .03, .515, .955], easeInCubic: [.55, .055, .675, .19], easeOutCubic: [.215, .61, .355, 1], easeInOutCubic: [.645, .045, .355, 1], easeInQuart: [.895, .03, .685, .22], easeOutQuart: [.165, .84, .44, 1], easeInOutQuart: [.77, 0, .175, 1], easeInQuint: [.755, .05, .855, .06], easeOutQuint: [.23, 1, .32, 1], easeInOutQuint: [.86, 0, .07, 1], easeInExpo: [.95, .05, .795, .035], easeOutExpo: [.19, 1, .22, 1], easeInOutExpo: [1, 0, 0, 1], easeInCirc: [.6, .04, .98, .335], easeOutCirc: [.075, .82, .165, 1], easeInOutCirc: [.785, .135, .15, .86], easeInBack: [.6, -.28, .735, .045], easeOutBack: [.175, .885, .32, 1.275], easeInOutBack: [.68, -.55, .265, 1.55] }; b.Svg.Easing = z, b.Svg.List = b.Class.extend({ constructor: x }) }(this || global, a), function (a, b) { "use strict"; function c(a, c, d, e, f, g) { var h = b.extend({ command: f ? a.toLowerCase() : a.toUpperCase() }, c, g ? { data: g } : {}); d.splice(e, 0, h) } function d(a, b) { a.forEach(function (c, d) { t[c.command.toLowerCase()].forEach(function (e, f) { b(c, e, d, f, a) }) }) } function e(a, c) { this.pathElements = [], this.pos = 0, this.close = a, this.options = b.extend({}, u, c) } function f(a) { return void 0 !== a ? (this.pos = Math.max(0, Math.min(this.pathElements.length, a)), this) : this.pos } function g(a) { return this.pathElements.splice(this.pos, a), this } function h(a, b, d, e) { return c("M", { x: +a, y: +b }, this.pathElements, this.pos++, d, e), this } function i(a, b, d, e) { return c("L", { x: +a, y: +b }, this.pathElements, this.pos++, d, e), this } function j(a, b, d, e, f, g, h, i) { return c("C", { x1: +a, y1: +b, x2: +d, y2: +e, x: +f, y: +g }, this.pathElements, this.pos++, h, i), this } function k(a, b, d, e, f, g, h, i, j) { return c("A", { rx: +a, ry: +b, xAr: +d, lAf: +e, sf: +f, x: +g, y: +h }, this.pathElements, this.pos++, i, j), this } function l(a) { var c = a.replace(/([A-Za-z])([0-9])/g, "$1 $2").replace(/([0-9])([A-Za-z])/g, "$1 $2").split(/[\s,]+/).reduce(function (a, b) { return b.match(/[A-Za-z]/) && a.push([]), a[a.length - 1].push(b), a }, []); "Z" === c[c.length - 1][0].toUpperCase() && c.pop(); var d = c.map(function (a) { var c = a.shift(), d = t[c.toLowerCase()]; return b.extend({ command: c }, d.reduce(function (b, c, d) { return b[c] = +a[d], b }, {})) }), e = [this.pos, 0]; return Array.prototype.push.apply(e, d), Array.prototype.splice.apply(this.pathElements, e), this.pos += d.length, this } function m() { var a = Math.pow(10, this.options.accuracy); return this.pathElements.reduce(function (b, c) { var d = t[c.command.toLowerCase()].map(function (b) { return this.options.accuracy ? Math.round(c[b] * a) / a : c[b] }.bind(this)); return b + c.command + d.join(",") }.bind(this), "") + (this.close ? "Z" : "") } function n(a, b) { return d(this.pathElements, function (c, d) { c[d] *= "x" === d[0] ? a : b }), this } function o(a, b) { return d(this.pathElements, function (c, d) { c[d] += "x" === d[0] ? a : b }), this } function p(a) { return d(this.pathElements, function (b, c, d, e, f) { var g = a(b, c, d, e, f); (g || 0 === g) && (b[c] = g) }), this } function q(a) { var c = new b.Svg.Path(a || this.close); return c.pos = this.pos, c.pathElements = this.pathElements.slice().map(function (a) { return b.extend({}, a) }), c.options = b.extend({}, this.options), c } function r(a) { var c = [new b.Svg.Path]; return this.pathElements.forEach(function (d) { d.command === a.toUpperCase() && 0 !== c[c.length - 1].pathElements.length && c.push(new b.Svg.Path), c[c.length - 1].pathElements.push(d) }), c } function s(a, c, d) { for (var e = new b.Svg.Path(c, d), f = 0; f < a.length; f++)for (var g = a[f], h = 0; h < g.pathElements.length; h++)e.pathElements.push(g.pathElements[h]); return e } var t = { m: ["x", "y"], l: ["x", "y"], c: ["x1", "y1", "x2", "y2", "x", "y"], a: ["rx", "ry", "xAr", "lAf", "sf", "x", "y"] }, u = { accuracy: 3 }; b.Svg.Path = b.Class.extend({ constructor: e, position: f, remove: g, move: h, line: i, curve: j, arc: k, scale: n, translate: o, transform: p, parse: l, stringify: m, clone: q, splitByCommand: r }), b.Svg.Path.elementDescriptions = t, b.Svg.Path.join = s }(this || global, a), function (a, b) { "use strict"; function c(a, b, c, d) { this.units = a, this.counterUnits = a === e.x ? e.y : e.x, this.chartRect = b, this.axisLength = b[a.rectEnd] - b[a.rectStart], this.gridOffset = b[a.rectOffset], this.ticks = c, this.options = d } function d(a, c, d, e, f) { var g = e["axis" + this.units.pos.toUpperCase()], h = this.ticks.map(this.projectValue.bind(this)), i = this.ticks.map(g.labelInterpolationFnc); h.forEach(function (j, k) { var l, m = { x: 0, y: 0 }; l = h[k + 1] ? h[k + 1] - j : Math.max(this.axisLength - j, 30), b.isFalseyButZero(i[k]) && "" !== i[k] || ("x" === this.units.pos ? (j = this.chartRect.x1 + j, m.x = e.axisX.labelOffset.x, "start" === e.axisX.position ? m.y = this.chartRect.padding.top + e.axisX.labelOffset.y + (d ? 5 : 20) : m.y = this.chartRect.y1 + e.axisX.labelOffset.y + (d ? 5 : 20)) : (j = this.chartRect.y1 - j, m.y = e.axisY.labelOffset.y - (d ? l : 0), "start" === e.axisY.position ? m.x = d ? this.chartRect.padding.left + e.axisY.labelOffset.x : this.chartRect.x1 - 10 : m.x = this.chartRect.x2 + e.axisY.labelOffset.x + 10), g.showGrid && b.createGrid(j, k, this, this.gridOffset, this.chartRect[this.counterUnits.len](), a, [e.classNames.grid, e.classNames[this.units.dir]], f), g.showLabel && b.createLabel(j, l, k, i, this, g.offset, m, c, [e.classNames.label, e.classNames[this.units.dir], "start" === g.position ? e.classNames[g.position] : e.classNames.end], d, f)) }.bind(this)) } var e = (a.window, a.document, { x: { pos: "x", len: "width", dir: "horizontal", rectStart: "x1", rectEnd: "x2", rectOffset: "y2" }, y: { pos: "y", len: "height", dir: "vertical", rectStart: "y2", rectEnd: "y1", rectOffset: "x1" } }); b.Axis = b.Class.extend({ constructor: c, createGridAndLabels: d, projectValue: function (a, b, c) { throw new Error("Base axis can't be instantiated!") } }), b.Axis.units = e }(this || global, a), function (a, b) { "use strict"; function c(a, c, d, e) { var f = e.highLow || b.getHighLow(c, e, a.pos); this.bounds = b.getBounds(d[a.rectEnd] - d[a.rectStart], f, e.scaleMinSpace || 20, e.onlyInteger), this.range = { min: this.bounds.min, max: this.bounds.max }, b.AutoScaleAxis["super"].constructor.call(this, a, d, this.bounds.values, e) } function d(a) { return this.axisLength * (+b.getMultiValue(a, this.units.pos) - this.bounds.min) / this.bounds.range } a.window, a.document; b.AutoScaleAxis = b.Axis.extend({ constructor: c, projectValue: d }) }(this || global, a), function (a, b) { "use strict"; function c(a, c, d, e) { var f = e.highLow || b.getHighLow(c, e, a.pos); this.divisor = e.divisor || 1, this.ticks = e.ticks || b.times(this.divisor).map(function (a, b) { return f.low + (f.high - f.low) / this.divisor * b }.bind(this)), this.ticks.sort(function (a, b) { return a - b }), this.range = { min: f.low, max: f.high }, b.FixedScaleAxis["super"].constructor.call(this, a, d, this.ticks, e), this.stepLength = this.axisLength / this.divisor } function d(a) { return this.axisLength * (+b.getMultiValue(a, this.units.pos) - this.range.min) / (this.range.max - this.range.min) } a.window, a.document; b.FixedScaleAxis = b.Axis.extend({ constructor: c, projectValue: d }) }(this || global, a), function (a, b) { "use strict"; function c(a, c, d, e) { b.StepAxis["super"].constructor.call(this, a, d, e.ticks, e); var f = Math.max(1, e.ticks.length - (e.stretch ? 1 : 0)); this.stepLength = this.axisLength / f } function d(a, b) { return this.stepLength * b } a.window, a.document; b.StepAxis = b.Axis.extend({ constructor: c, projectValue: d }) }(this || global, a), function (a, b) { "use strict"; function c(a) { var c = b.normalizeData(this.data, a.reverseData, !0); this.svg = b.createSvg(this.container, a.width, a.height, a.classNames.chart); var d, f, g = this.svg.elem("g").addClass(a.classNames.gridGroup), h = this.svg.elem("g"), i = this.svg.elem("g").addClass(a.classNames.labelGroup), j = b.createChartRect(this.svg, a, e.padding); d = void 0 === a.axisX.type ? new b.StepAxis(b.Axis.units.x, c.normalized.series, j, b.extend({}, a.axisX, { ticks: c.normalized.labels, stretch: a.fullWidth })) : a.axisX.type.call(b, b.Axis.units.x, c.normalized.series, j, a.axisX), f = void 0 === a.axisY.type ? new b.AutoScaleAxis(b.Axis.units.y, c.normalized.series, j, b.extend({}, a.axisY, { high: b.isNumeric(a.high) ? a.high : a.axisY.high, low: b.isNumeric(a.low) ? a.low : a.axisY.low })) : a.axisY.type.call(b, b.Axis.units.y, c.normalized.series, j, a.axisY), d.createGridAndLabels(g, i, this.supportsForeignObject, a, this.eventEmitter), f.createGridAndLabels(g, i, this.supportsForeignObject, a, this.eventEmitter), a.showGridBackground && b.createGridBackground(g, j, a.classNames.gridBackground, this.eventEmitter), c.raw.series.forEach(function (e, g) { var i = h.elem("g"); i.attr({ "ct:series-name": e.name, "ct:meta": b.serialize(e.meta) }), i.addClass([a.classNames.series, e.className || a.classNames.series + "-" + b.alphaNumerate(g)].join(" ")); var k = [], l = []; c.normalized.series[g].forEach(function (a, h) { var i = { x: j.x1 + d.projectValue(a, h, c.normalized.series[g]), y: j.y1 - f.projectValue(a, h, c.normalized.series[g]) }; k.push(i.x, i.y), l.push({ value: a, valueIndex: h, meta: b.getMetaData(e, h) }) }.bind(this)); var m = { lineSmooth: b.getSeriesOption(e, a, "lineSmooth"), showPoint: b.getSeriesOption(e, a, "showPoint"), showLine: b.getSeriesOption(e, a, "showLine"), showArea: b.getSeriesOption(e, a, "showArea"), areaBase: b.getSeriesOption(e, a, "areaBase") }, n = "function" == typeof m.lineSmooth ? m.lineSmooth : m.lineSmooth ? b.Interpolation.monotoneCubic() : b.Interpolation.none(), o = n(k, l); if (m.showPoint && o.pathElements.forEach(function (c) { var h = i.elem("line", { x1: c.x, y1: c.y, x2: c.x + .01, y2: c.y }, a.classNames.point).attr({ "ct:value": [c.data.value.x, c.data.value.y].filter(b.isNumeric).join(","), "ct:meta": b.serialize(c.data.meta) }); this.eventEmitter.emit("draw", { type: "point", value: c.data.value, index: c.data.valueIndex, meta: c.data.meta, series: e, seriesIndex: g, axisX: d, axisY: f, group: i, element: h, x: c.x, y: c.y }) }.bind(this)), m.showLine) { var p = i.elem("path", { d: o.stringify() }, a.classNames.line, !0); this.eventEmitter.emit("draw", { type: "line", values: c.normalized.series[g], path: o.clone(), chartRect: j, index: g, series: e, seriesIndex: g, seriesMeta: e.meta, axisX: d, axisY: f, group: i, element: p }) } if (m.showArea && f.range) { var q = Math.max(Math.min(m.areaBase, f.range.max), f.range.min), r = j.y1 - f.projectValue(q); o.splitByCommand("M").filter(function (a) { return a.pathElements.length > 1 }).map(function (a) { var b = a.pathElements[0], c = a.pathElements[a.pathElements.length - 1]; return a.clone(!0).position(0).remove(1).move(b.x, r).line(b.x, b.y).position(a.pathElements.length + 1).line(c.x, r) }).forEach(function (b) { var h = i.elem("path", { d: b.stringify() }, a.classNames.area, !0); this.eventEmitter.emit("draw", { type: "area", values: c.normalized.series[g], path: b.clone(), series: e, seriesIndex: g, axisX: d, axisY: f, chartRect: j, index: g, group: i, element: h }) }.bind(this)) } }.bind(this)), this.eventEmitter.emit("created", { bounds: f.bounds, chartRect: j, axisX: d, axisY: f, svg: this.svg, options: a }) } function d(a, c, d, f) { b.Line["super"].constructor.call(this, a, c, e, b.extend({}, e, d), f) } var e = (a.window, a.document, { axisX: { offset: 30, position: "end", labelOffset: { x: 0, y: 0 }, showLabel: !0, showGrid: !0, labelInterpolationFnc: b.noop, type: void 0 }, axisY: { offset: 40, position: "start", labelOffset: { x: 0, y: 0 }, showLabel: !0, showGrid: !0, labelInterpolationFnc: b.noop, type: void 0, scaleMinSpace: 20, onlyInteger: !1 }, width: void 0, height: void 0, showLine: !0, showPoint: !0, showArea: !1, areaBase: 0, lineSmooth: !0, showGridBackground: !1, low: void 0, high: void 0, chartPadding: { top: 15, right: 15, bottom: 5, left: 10 }, fullWidth: !1, reverseData: !1, classNames: { chart: "ct-chart-line", label: "ct-label", labelGroup: "ct-labels", series: "ct-series", line: "ct-line", point: "ct-point", area: "ct-area", grid: "ct-grid", gridGroup: "ct-grids", gridBackground: "ct-grid-background", vertical: "ct-vertical", horizontal: "ct-horizontal", start: "ct-start", end: "ct-end" } }); b.Line = b.Base.extend({ constructor: d, createChart: c }) }(this || global, a), function (a, b) { + "use strict"; function c(a) { + var c, d; a.distributeSeries ? (c = b.normalizeData(this.data, a.reverseData, a.horizontalBars ? "x" : "y"), c.normalized.series = c.normalized.series.map(function (a) { return [a] })) : c = b.normalizeData(this.data, a.reverseData, a.horizontalBars ? "x" : "y"), this.svg = b.createSvg(this.container, a.width, a.height, a.classNames.chart + (a.horizontalBars ? " " + a.classNames.horizontalBars : "")); var f = this.svg.elem("g").addClass(a.classNames.gridGroup), g = this.svg.elem("g"), h = this.svg.elem("g").addClass(a.classNames.labelGroup); + if (a.stackBars && 0 !== c.normalized.series.length) { var i = b.serialMap(c.normalized.series, function () { return Array.prototype.slice.call(arguments).map(function (a) { return a }).reduce(function (a, b) { return { x: a.x + (b && b.x) || 0, y: a.y + (b && b.y) || 0 } }, { x: 0, y: 0 }) }); d = b.getHighLow([i], a, a.horizontalBars ? "x" : "y") } else d = b.getHighLow(c.normalized.series, a, a.horizontalBars ? "x" : "y"); d.high = +a.high || (0 === a.high ? 0 : d.high), d.low = +a.low || (0 === a.low ? 0 : d.low); var j, k, l, m, n, o = b.createChartRect(this.svg, a, e.padding); k = a.distributeSeries && a.stackBars ? c.normalized.labels.slice(0, 1) : c.normalized.labels, a.horizontalBars ? (j = m = void 0 === a.axisX.type ? new b.AutoScaleAxis(b.Axis.units.x, c.normalized.series, o, b.extend({}, a.axisX, { highLow: d, referenceValue: 0 })) : a.axisX.type.call(b, b.Axis.units.x, c.normalized.series, o, b.extend({}, a.axisX, { highLow: d, referenceValue: 0 })), l = n = void 0 === a.axisY.type ? new b.StepAxis(b.Axis.units.y, c.normalized.series, o, { ticks: k }) : a.axisY.type.call(b, b.Axis.units.y, c.normalized.series, o, a.axisY)) : (l = m = void 0 === a.axisX.type ? new b.StepAxis(b.Axis.units.x, c.normalized.series, o, { ticks: k }) : a.axisX.type.call(b, b.Axis.units.x, c.normalized.series, o, a.axisX), j = n = void 0 === a.axisY.type ? new b.AutoScaleAxis(b.Axis.units.y, c.normalized.series, o, b.extend({}, a.axisY, { highLow: d, referenceValue: 0 })) : a.axisY.type.call(b, b.Axis.units.y, c.normalized.series, o, b.extend({}, a.axisY, { highLow: d, referenceValue: 0 }))); var p = a.horizontalBars ? o.x1 + j.projectValue(0) : o.y1 - j.projectValue(0), q = []; l.createGridAndLabels(f, h, this.supportsForeignObject, a, this.eventEmitter), j.createGridAndLabels(f, h, this.supportsForeignObject, a, this.eventEmitter), a.showGridBackground && b.createGridBackground(f, o, a.classNames.gridBackground, this.eventEmitter), c.raw.series.forEach(function (d, e) { var f, h, i = e - (c.raw.series.length - 1) / 2; f = a.distributeSeries && !a.stackBars ? l.axisLength / c.normalized.series.length / 2 : a.distributeSeries && a.stackBars ? l.axisLength / 2 : l.axisLength / c.normalized.series[e].length / 2, h = g.elem("g"), h.attr({ "ct:series-name": d.name, "ct:meta": b.serialize(d.meta) }), h.addClass([a.classNames.series, d.className || a.classNames.series + "-" + b.alphaNumerate(e)].join(" ")), c.normalized.series[e].forEach(function (g, k) { var r, s, t, u; if (u = a.distributeSeries && !a.stackBars ? e : a.distributeSeries && a.stackBars ? 0 : k, r = a.horizontalBars ? { x: o.x1 + j.projectValue(g && g.x ? g.x : 0, k, c.normalized.series[e]), y: o.y1 - l.projectValue(g && g.y ? g.y : 0, u, c.normalized.series[e]) } : { x: o.x1 + l.projectValue(g && g.x ? g.x : 0, u, c.normalized.series[e]), y: o.y1 - j.projectValue(g && g.y ? g.y : 0, k, c.normalized.series[e]) }, l instanceof b.StepAxis && (l.options.stretch || (r[l.units.pos] += f * (a.horizontalBars ? -1 : 1)), r[l.units.pos] += a.stackBars || a.distributeSeries ? 0 : i * a.seriesBarDistance * (a.horizontalBars ? -1 : 1)), t = q[k] || p, q[k] = t - (p - r[l.counterUnits.pos]), void 0 !== g) { var v = {}; v[l.units.pos + "1"] = r[l.units.pos], v[l.units.pos + "2"] = r[l.units.pos], !a.stackBars || "accumulate" !== a.stackMode && a.stackMode ? (v[l.counterUnits.pos + "1"] = p, v[l.counterUnits.pos + "2"] = r[l.counterUnits.pos]) : (v[l.counterUnits.pos + "1"] = t, v[l.counterUnits.pos + "2"] = q[k]), v.x1 = Math.min(Math.max(v.x1, o.x1), o.x2), v.x2 = Math.min(Math.max(v.x2, o.x1), o.x2), v.y1 = Math.min(Math.max(v.y1, o.y2), o.y1), v.y2 = Math.min(Math.max(v.y2, o.y2), o.y1); var w = b.getMetaData(d, k); s = h.elem("line", v, a.classNames.bar).attr({ "ct:value": [g.x, g.y].filter(b.isNumeric).join(","), "ct:meta": b.serialize(w) }), this.eventEmitter.emit("draw", b.extend({ type: "bar", value: g, index: k, meta: w, series: d, seriesIndex: e, axisX: m, axisY: n, chartRect: o, group: h, element: s }, v)) } }.bind(this)) }.bind(this)), this.eventEmitter.emit("created", { bounds: j.bounds, chartRect: o, axisX: m, axisY: n, svg: this.svg, options: a }) + } function d(a, c, d, f) { b.Bar["super"].constructor.call(this, a, c, e, b.extend({}, e, d), f) } var e = (a.window, a.document, { axisX: { offset: 30, position: "end", labelOffset: { x: 0, y: 0 }, showLabel: !0, showGrid: !0, labelInterpolationFnc: b.noop, scaleMinSpace: 30, onlyInteger: !1 }, axisY: { offset: 40, position: "start", labelOffset: { x: 0, y: 0 }, showLabel: !0, showGrid: !0, labelInterpolationFnc: b.noop, scaleMinSpace: 20, onlyInteger: !1 }, width: void 0, height: void 0, high: void 0, low: void 0, referenceValue: 0, chartPadding: { top: 15, right: 15, bottom: 5, left: 10 }, seriesBarDistance: 15, stackBars: !1, stackMode: "accumulate", horizontalBars: !1, distributeSeries: !1, reverseData: !1, showGridBackground: !1, classNames: { chart: "ct-chart-bar", horizontalBars: "ct-horizontal-bars", label: "ct-label", labelGroup: "ct-labels", series: "ct-series", bar: "ct-bar", grid: "ct-grid", gridGroup: "ct-grids", gridBackground: "ct-grid-background", vertical: "ct-vertical", horizontal: "ct-horizontal", start: "ct-start", end: "ct-end" } }); b.Bar = b.Base.extend({ constructor: d, createChart: c }) + }(this || global, a), function (a, b) { "use strict"; function c(a, b, c) { var d = b.x > a.x; return d && "explode" === c || !d && "implode" === c ? "start" : d && "implode" === c || !d && "explode" === c ? "end" : "middle" } function d(a) { var d, e, g, h, i, j = b.normalizeData(this.data), k = [], l = a.startAngle; this.svg = b.createSvg(this.container, a.width, a.height, a.donut ? a.classNames.chartDonut : a.classNames.chartPie), e = b.createChartRect(this.svg, a, f.padding), g = Math.min(e.width() / 2, e.height() / 2), i = a.total || j.normalized.series.reduce(function (a, b) { return a + b }, 0); var m = b.quantity(a.donutWidth); "%" === m.unit && (m.value *= g / 100), g -= a.donut && !a.donutSolid ? m.value / 2 : 0, h = "outside" === a.labelPosition || a.donut && !a.donutSolid ? g : "center" === a.labelPosition ? 0 : a.donutSolid ? g - m.value / 2 : g / 2, h += a.labelOffset; var n = { x: e.x1 + e.width() / 2, y: e.y2 + e.height() / 2 }, o = 1 === j.raw.series.filter(function (a) { return a.hasOwnProperty("value") ? 0 !== a.value : 0 !== a }).length; j.raw.series.forEach(function (a, b) { k[b] = this.svg.elem("g", null, null) }.bind(this)), a.showLabel && (d = this.svg.elem("g", null, null)), j.raw.series.forEach(function (e, f) { if (0 !== j.normalized.series[f] || !a.ignoreEmptyValues) { k[f].attr({ "ct:series-name": e.name }), k[f].addClass([a.classNames.series, e.className || a.classNames.series + "-" + b.alphaNumerate(f)].join(" ")); var p = i > 0 ? l + j.normalized.series[f] / i * 360 : 0, q = Math.max(0, l - (0 === f || o ? 0 : .2)); p - q >= 359.99 && (p = q + 359.99); var r, s, t, u = b.polarToCartesian(n.x, n.y, g, q), v = b.polarToCartesian(n.x, n.y, g, p), w = new b.Svg.Path(!a.donut || a.donutSolid).move(v.x, v.y).arc(g, g, 0, p - l > 180, 0, u.x, u.y); a.donut ? a.donutSolid && (t = g - m.value, r = b.polarToCartesian(n.x, n.y, t, l - (0 === f || o ? 0 : .2)), s = b.polarToCartesian(n.x, n.y, t, p), w.line(r.x, r.y), w.arc(t, t, 0, p - l > 180, 1, s.x, s.y)) : w.line(n.x, n.y); var x = a.classNames.slicePie; a.donut && (x = a.classNames.sliceDonut, a.donutSolid && (x = a.classNames.sliceDonutSolid)); var y = k[f].elem("path", { d: w.stringify() }, x); if (y.attr({ "ct:value": j.normalized.series[f], "ct:meta": b.serialize(e.meta) }), a.donut && !a.donutSolid && (y._node.style.strokeWidth = m.value + "px"), this.eventEmitter.emit("draw", { type: "slice", value: j.normalized.series[f], totalDataSum: i, index: f, meta: e.meta, series: e, group: k[f], element: y, path: w.clone(), center: n, radius: g, startAngle: l, endAngle: p }), a.showLabel) { var z; z = 1 === j.raw.series.length ? { x: n.x, y: n.y } : b.polarToCartesian(n.x, n.y, h, l + (p - l) / 2); var A; A = j.normalized.labels && !b.isFalseyButZero(j.normalized.labels[f]) ? j.normalized.labels[f] : j.normalized.series[f]; var B = a.labelInterpolationFnc(A, f); if (B || 0 === B) { var C = d.elem("text", { dx: z.x, dy: z.y, "text-anchor": c(n, z, a.labelDirection) }, a.classNames.label).text("" + B); this.eventEmitter.emit("draw", { type: "label", index: f, group: d, element: C, text: "" + B, x: z.x, y: z.y }) } } l = p } }.bind(this)), this.eventEmitter.emit("created", { chartRect: e, svg: this.svg, options: a }) } function e(a, c, d, e) { b.Pie["super"].constructor.call(this, a, c, f, b.extend({}, f, d), e) } var f = (a.window, a.document, { width: void 0, height: void 0, chartPadding: 5, classNames: { chartPie: "ct-chart-pie", chartDonut: "ct-chart-donut", series: "ct-series", slicePie: "ct-slice-pie", sliceDonut: "ct-slice-donut", sliceDonutSolid: "ct-slice-donut-solid", label: "ct-label" }, startAngle: 0, total: void 0, donut: !1, donutSolid: !1, donutWidth: 60, showLabel: !0, labelOffset: 0, labelPosition: "inside", labelInterpolationFnc: b.noop, labelDirection: "neutral", reverseData: !1, ignoreEmptyValues: !1 }); b.Pie = b.Base.extend({ constructor: e, createChart: d, determineAnchorPosition: c }) }(this || global, a), a +}); +//# sourceMappingURL=chartist.min.js.map + +var i, l, selectedLine = null; + +/* Navigate to hash without browser history entry */ +var navigateToHash = function () { + if (window.history !== undefined && window.history.replaceState !== undefined) { + window.history.replaceState(undefined, undefined, this.getAttribute("href")); + } +}; + +var hashLinks = document.getElementsByClassName('navigatetohash'); +for (i = 0, l = hashLinks.length; i < l; i++) { + hashLinks[i].addEventListener('click', navigateToHash); +} + +/* Switch test method */ +var switchTestMethod = function () { + var method = this.getAttribute("value"); + console.log("Selected test method: " + method); + + var lines, i, l, coverageData, lineAnalysis, cells; + + lines = document.querySelectorAll('.lineAnalysis tr'); + + for (i = 1, l = lines.length; i < l; i++) { + coverageData = JSON.parse(lines[i].getAttribute('data-coverage').replace(/'/g, '"')); + lineAnalysis = coverageData[method]; + cells = lines[i].querySelectorAll('td'); + if (lineAnalysis === undefined) { + lineAnalysis = coverageData.AllTestMethods; + if (lineAnalysis.LVS !== 'gray') { + cells[0].setAttribute('class', 'red'); + cells[1].innerText = cells[1].textContent = '0'; + cells[4].setAttribute('class', 'lightred'); + } + } else { + cells[0].setAttribute('class', lineAnalysis.LVS); + cells[1].innerText = cells[1].textContent = lineAnalysis.VC; + cells[4].setAttribute('class', 'light' + lineAnalysis.LVS); + } + } +}; + +var testMethods = document.getElementsByClassName('switchtestmethod'); +for (i = 0, l = testMethods.length; i < l; i++) { + testMethods[i].addEventListener('change', switchTestMethod); +} + +/* Highlight test method by line */ +var toggleLine = function () { + if (selectedLine === this) { + selectedLine = null; + } else { + selectedLine = null; + unhighlightTestMethods(); + highlightTestMethods.call(this); + selectedLine = this; + } + +}; +var highlightTestMethods = function () { + if (selectedLine !== null) { + return; + } + + var lineAnalysis; + var coverageData = JSON.parse(this.getAttribute('data-coverage').replace(/'/g, '"')); + var testMethods = document.getElementsByClassName('testmethod'); + + for (i = 0, l = testMethods.length; i < l; i++) { + lineAnalysis = coverageData[testMethods[i].id]; + if (lineAnalysis === undefined) { + testMethods[i].className = testMethods[i].className.replace(/\s*light.+/g, ""); + } else { + testMethods[i].className += ' light' + lineAnalysis.LVS; + } + } +}; +var unhighlightTestMethods = function () { + if (selectedLine !== null) { + return; + } + + var testMethods = document.getElementsByClassName('testmethod'); + for (i = 0, l = testMethods.length; i < l; i++) { + testMethods[i].className = testMethods[i].className.replace(/\s*light.+/g, ""); + } +}; +var coverableLines = document.getElementsByClassName('coverableline'); +for (i = 0, l = coverableLines.length; i < l; i++) { + coverableLines[i].addEventListener('click', toggleLine); + coverableLines[i].addEventListener('mouseenter', highlightTestMethods); + coverableLines[i].addEventListener('mouseleave', unhighlightTestMethods); +} + +/* History charts */ +var renderChart = function (chart) { + // Remove current children (e.g. PNG placeholder) + while (chart.firstChild) { + chart.firstChild.remove(); + } + + var chartData = window[chart.getAttribute('data-data')]; + var options = { + axisY: { + type: undefined, + onlyInteger: true + }, + lineSmooth: false, + low: 0, + high: 100, + scaleMinSpace: 20, + onlyInteger: true, + fullWidth: true + }; + var lineChart = new Chartist.Line(chart, { + labels: [], + series: chartData.series + }, options); + + /* Zoom */ + var zoomButtonDiv = document.createElement("div"); + zoomButtonDiv.className = "toggleZoom"; + var zoomButtonLink = document.createElement("a"); + zoomButtonLink.setAttribute("href", ""); + var zoomButtonText = document.createElement("i"); + zoomButtonText.className = "icon-search-plus"; + + zoomButtonLink.appendChild(zoomButtonText); + zoomButtonDiv.appendChild(zoomButtonLink); + + chart.appendChild(zoomButtonDiv); + + zoomButtonDiv.addEventListener('click', function (event) { + event.preventDefault(); + + if (options.axisY.type === undefined) { + options.axisY.type = Chartist.AutoScaleAxis; + zoomButtonText.className = "icon-search-minus"; + } else { + options.axisY.type = undefined; + zoomButtonText.className = "icon-search-plus"; + } + + lineChart.update(null, options); + }); + + var tooltip = document.createElement("div"); + tooltip.className = "tooltip"; + + chart.appendChild(tooltip); + + /* Tooltips */ + var showToolTip = function () { + var index = this.getAttribute('ct:meta'); + + tooltip.innerHTML = chartData.tooltips[index]; + tooltip.style.display = 'block'; + }; + + var moveToolTip = function (event) { + var box = chart.getBoundingClientRect(); + var left = event.pageX - box.left - window.pageXOffset; + var top = event.pageY - box.top - window.pageYOffset; + + left = left + 20; + top = top - tooltip.offsetHeight / 2; + + if (left + tooltip.offsetWidth > box.width) { + left -= tooltip.offsetWidth + 40; + } + + if (top < 0) { + top = 0; + } + + if (top + tooltip.offsetHeight > box.height) { + top = box.height - tooltip.offsetHeight; + } + + tooltip.style.left = left + 'px'; + tooltip.style.top = top + 'px'; + }; + + var hideToolTip = function () { + tooltip.style.display = 'none'; + }; + chart.addEventListener('mousemove', moveToolTip); + + lineChart.on('created', function () { + var chartPoints = chart.getElementsByClassName('ct-point'); + for (i = 0, l = chartPoints.length; i < l; i++) { + chartPoints[i].addEventListener('mousemove', showToolTip); + chartPoints[i].addEventListener('mouseout', hideToolTip); + } + }); +}; + +var charts = document.getElementsByClassName('historychart'); +for (i = 0, l = charts.length; i < l; i++) { + renderChart(charts[i]); +} + +var assemblies = [ + { + "name": "Sample", + "classes": [ + { "name": "Sample.PartialClass", "rp": "Sample_PartialClass.html", "cl": 12, "ucl": 10, "cal": 22, "tl": 53, "ct": "LineCoverage", "cbm": "-", "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": "18.01.2023 - 20:03:16", "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": "Sample_TestClass.html", "cl": 12, "ucl": 9, "cal": 21, "tl": 38, "ct": "LineCoverage", "cbm": "-", "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": "18.01.2023 - 20:03:16", "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": "Sample_Program.html", "cl": 35, "ucl": 9, "cal": 44, "tl": 84, "ct": "LineCoverage", "cbm": "-", "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": "18.01.2023 - 20:03:16", "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": "Sample_TestClass2.html", "cl": 24, "ucl": 14, "cal": 38, "tl": 85, "ct": "LineCoverage", "cbm": "-", "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": "18.01.2023 - 20:03:16", "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 } }, + ]}, +]; + +var metrics = [{ "name": "Cyclomatic complexity", "abbreviation": "cc", "explanationUrl": "https://en.wikipedia.org/wiki/Cyclomatic_complexity" }, { "name": "NPath complexity", "abbreviation": "npth", "explanationUrl": "https://modess.io/npath-complexity-cyclomatic-complexity-explained" }, { "name": "Sequence coverage", "abbreviation": "seq", "explanationUrl": "https://en.wikipedia.org/wiki/Code_coverage" }, { "name": "Branch coverage", "abbreviation": "bcov", "explanationUrl": "https://en.wikipedia.org/wiki/Code_coverage" }, { "name": "Crap Score", "abbreviation": "crp", "explanationUrl": "https://googletesting.blogspot.de/2011/02/this-code-is-crap.html" }]; + +var historicCoverageExecutionTimes = ["09.02.2022 - 20:50:35", "08.02.2022 - 20:50:35", "07.02.2022 - 20:50:35", "06.02.2022 - 20:50:35", "05.02.2022 - 20:50:35", "04.02.2022 - 20:50:35", "03.02.2022 - 20:50:35", "02.02.2022 - 20:50:35", "01.02.2022 - 20:50:35"]; + +var riskHotspotMetrics = [ +]; + +var riskHotspots = [ +]; + +var branchCoverageAvailable = true; +var methodCoverageAvailable = true; + + +var translations = { +'top': 'Top:', +'all': 'All', +'assembly': 'Assembly', +'class': 'Class', +'method': 'Method', +'lineCoverage': 'LineCoverage', +'noGrouping': 'No grouping', +'byAssembly': 'By assembly', +'byNamespace': 'By namespace, Level:', +'all': 'All', +'collapseAll': 'Collapse all', +'expandAll': 'Expand all', +'grouping': 'Grouping:', +'filter': 'Filter:', +'name': 'Name', +'covered': 'Covered', +'uncovered': 'Uncovered', +'coverable': 'Coverable', +'total': 'Total', +'coverage': 'Line coverage', +'branchCoverage': 'Branch coverage', +'methodCoverage': 'Method coverage', +'percentage': 'Percentage', +'history': 'Coverage history', +'compareHistory': 'Compare with:', +'date': 'Date', +'allChanges': 'All changes', +'selectCoverageTypes': 'Select coverage types', +'selectCoverageTypesAndMetrics': 'Select coverage types & metrics', +'coverageTypes': 'Coverage types', +'metrics': 'Metrics', +'methodCoverageProVersion': 'Feature is only available for sponsors', +'lineCoverageIncreaseOnly': 'Line coverage: Increase only', +'lineCoverageDecreaseOnly': 'Line coverage: Decrease only', +'branchCoverageIncreaseOnly': 'Branch coverage: Increase only', +'branchCoverageDecreaseOnly': 'Branch coverage: Decrease only', +'methodCoverageIncreaseOnly': 'Method coverage: Increase only', +'methodCoverageDecreaseOnly': 'Method coverage: Decrease only' +}; + + +(()=>{"use strict";var e,_={},p={};function n(e){var a=p[e];if(void 0!==a)return a.exports;var r=p[e]={exports:{}};return _[e](r,r.exports,n),r.exports}n.m=_,e=[],n.O=(a,r,u,l)=>{if(!r){var o=1/0;for(f=0;f=l)&&Object.keys(n.O).every(h=>n.O[h](r[t]))?r.splice(t--,1):(v=!1,l0&&e[f-1][2]>l;f--)e[f]=e[f-1];e[f]=[r,u,l]},n.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return n.d(a,{a}),a},n.d=(e,a)=>{for(var r in a)n.o(a,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:a[r]})},n.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),(()=>{var e={666:0};n.O.j=u=>0===e[u];var a=(u,l)=>{var t,c,[f,o,v]=l,s=0;if(f.some(d=>0!==e[d])){for(t in o)n.o(o,t)&&(n.m[t]=o[t]);if(v)var b=v(n)}for(u&&u(l);s{he(583)},583:()=>{!function(e){const n=e.performance;function i(I){n&&n.mark&&n.mark(I)}function r(I,p){n&&n.measure&&n.measure(I,p)}i("Zone");const c=e.__Zone_symbol_prefix||"__zone_symbol__";function u(I){return c+I}const f=!0===e[u("forceDuplicateZoneCheck")];if(e.Zone){if(f||"function"!=typeof e.Zone.__symbol__)throw new Error("Zone already loaded.");return e.Zone}let _=(()=>{class I{constructor(t,o){this._parent=t,this._name=o?o.name||"unnamed":"",this._properties=o&&o.properties||{},this._zoneDelegate=new T(this,this._parent&&this._parent._zoneDelegate,o)}static assertZonePatched(){if(e.Promise!==J.ZoneAwarePromise)throw new Error("Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)")}static get root(){let t=I.current;for(;t.parent;)t=t.parent;return t}static get current(){return G.zone}static get currentTask(){return te}static __load_patch(t,o,g=!1){if(J.hasOwnProperty(t)){if(!g&&f)throw Error("Already loaded patch: "+t)}else if(!e["__Zone_disable_"+t]){const P="Zone:"+t;i(P),J[t]=o(e,I,le),r(P,P)}}get parent(){return this._parent}get name(){return this._name}get(t){const o=this.getZoneWith(t);if(o)return o._properties[t]}getZoneWith(t){let o=this;for(;o;){if(o._properties.hasOwnProperty(t))return o;o=o._parent}return null}fork(t){if(!t)throw new Error("ZoneSpec required!");return this._zoneDelegate.fork(this,t)}wrap(t,o){if("function"!=typeof t)throw new Error("Expecting function got: "+t);const g=this._zoneDelegate.intercept(this,t,o),P=this;return function(){return P.runGuarded(g,this,arguments,o)}}run(t,o,g,P){G={parent:G,zone:this};try{return this._zoneDelegate.invoke(this,t,o,g,P)}finally{G=G.parent}}runGuarded(t,o=null,g,P){G={parent:G,zone:this};try{try{return this._zoneDelegate.invoke(this,t,o,g,P)}catch(K){if(this._zoneDelegate.handleError(this,K))throw K}}finally{G=G.parent}}runTask(t,o,g){if(t.zone!=this)throw new Error("A task can only be run in the zone of creation! (Creation: "+(t.zone||z).name+"; Execution: "+this.name+")");if(t.state===j&&(t.type===R||t.type===M))return;const P=t.state!=X;P&&t._transitionTo(X,O),t.runCount++;const K=te;te=t,G={parent:G,zone:this};try{t.type==M&&t.data&&!t.data.isPeriodic&&(t.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,t,o,g)}catch(l){if(this._zoneDelegate.handleError(this,l))throw l}}finally{t.state!==j&&t.state!==Y&&(t.type==R||t.data&&t.data.isPeriodic?P&&t._transitionTo(O,X):(t.runCount=0,this._updateTaskCount(t,-1),P&&t._transitionTo(j,X,j))),G=G.parent,te=K}}scheduleTask(t){if(t.zone&&t.zone!==this){let g=this;for(;g;){if(g===t.zone)throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${t.zone.name}`);g=g.parent}}t._transitionTo(q,j);const o=[];t._zoneDelegates=o,t._zone=this;try{t=this._zoneDelegate.scheduleTask(this,t)}catch(g){throw t._transitionTo(Y,q,j),this._zoneDelegate.handleError(this,g),g}return t._zoneDelegates===o&&this._updateTaskCount(t,1),t.state==q&&t._transitionTo(O,q),t}scheduleMicroTask(t,o,g,P){return this.scheduleTask(new m(v,t,o,g,P,void 0))}scheduleMacroTask(t,o,g,P,K){return this.scheduleTask(new m(M,t,o,g,P,K))}scheduleEventTask(t,o,g,P,K){return this.scheduleTask(new m(R,t,o,g,P,K))}cancelTask(t){if(t.zone!=this)throw new Error("A task can only be cancelled in the zone of creation! (Creation: "+(t.zone||z).name+"; Execution: "+this.name+")");t._transitionTo(A,O,X);try{this._zoneDelegate.cancelTask(this,t)}catch(o){throw t._transitionTo(Y,A),this._zoneDelegate.handleError(this,o),o}return this._updateTaskCount(t,-1),t._transitionTo(j,A),t.runCount=0,t}_updateTaskCount(t,o){const g=t._zoneDelegates;-1==o&&(t._zoneDelegates=null);for(let P=0;PI.hasTask(t,o),onScheduleTask:(I,p,t,o)=>I.scheduleTask(t,o),onInvokeTask:(I,p,t,o,g,P)=>I.invokeTask(t,o,g,P),onCancelTask:(I,p,t,o)=>I.cancelTask(t,o)};class T{constructor(p,t,o){this._taskCounts={microTask:0,macroTask:0,eventTask:0},this.zone=p,this._parentDelegate=t,this._forkZS=o&&(o&&o.onFork?o:t._forkZS),this._forkDlgt=o&&(o.onFork?t:t._forkDlgt),this._forkCurrZone=o&&(o.onFork?this.zone:t._forkCurrZone),this._interceptZS=o&&(o.onIntercept?o:t._interceptZS),this._interceptDlgt=o&&(o.onIntercept?t:t._interceptDlgt),this._interceptCurrZone=o&&(o.onIntercept?this.zone:t._interceptCurrZone),this._invokeZS=o&&(o.onInvoke?o:t._invokeZS),this._invokeDlgt=o&&(o.onInvoke?t:t._invokeDlgt),this._invokeCurrZone=o&&(o.onInvoke?this.zone:t._invokeCurrZone),this._handleErrorZS=o&&(o.onHandleError?o:t._handleErrorZS),this._handleErrorDlgt=o&&(o.onHandleError?t:t._handleErrorDlgt),this._handleErrorCurrZone=o&&(o.onHandleError?this.zone:t._handleErrorCurrZone),this._scheduleTaskZS=o&&(o.onScheduleTask?o:t._scheduleTaskZS),this._scheduleTaskDlgt=o&&(o.onScheduleTask?t:t._scheduleTaskDlgt),this._scheduleTaskCurrZone=o&&(o.onScheduleTask?this.zone:t._scheduleTaskCurrZone),this._invokeTaskZS=o&&(o.onInvokeTask?o:t._invokeTaskZS),this._invokeTaskDlgt=o&&(o.onInvokeTask?t:t._invokeTaskDlgt),this._invokeTaskCurrZone=o&&(o.onInvokeTask?this.zone:t._invokeTaskCurrZone),this._cancelTaskZS=o&&(o.onCancelTask?o:t._cancelTaskZS),this._cancelTaskDlgt=o&&(o.onCancelTask?t:t._cancelTaskDlgt),this._cancelTaskCurrZone=o&&(o.onCancelTask?this.zone:t._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;const g=o&&o.onHasTask;(g||t&&t._hasTaskZS)&&(this._hasTaskZS=g?o:y,this._hasTaskDlgt=t,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=p,o.onScheduleTask||(this._scheduleTaskZS=y,this._scheduleTaskDlgt=t,this._scheduleTaskCurrZone=this.zone),o.onInvokeTask||(this._invokeTaskZS=y,this._invokeTaskDlgt=t,this._invokeTaskCurrZone=this.zone),o.onCancelTask||(this._cancelTaskZS=y,this._cancelTaskDlgt=t,this._cancelTaskCurrZone=this.zone))}fork(p,t){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,p,t):new _(p,t)}intercept(p,t,o){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,p,t,o):t}invoke(p,t,o,g,P){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,p,t,o,g,P):t.apply(o,g)}handleError(p,t){return!this._handleErrorZS||this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,p,t)}scheduleTask(p,t){let o=t;if(this._scheduleTaskZS)this._hasTaskZS&&o._zoneDelegates.push(this._hasTaskDlgtOwner),o=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,p,t),o||(o=t);else if(t.scheduleFn)t.scheduleFn(t);else{if(t.type!=v)throw new Error("Task is missing scheduleFn.");d(t)}return o}invokeTask(p,t,o,g){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,p,t,o,g):t.callback.apply(o,g)}cancelTask(p,t){let o;if(this._cancelTaskZS)o=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,p,t);else{if(!t.cancelFn)throw Error("Task is not cancelable");o=t.cancelFn(t)}return o}hasTask(p,t){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,p,t)}catch(o){this.handleError(p,o)}}_updateTaskCount(p,t){const o=this._taskCounts,g=o[p],P=o[p]=g+t;if(P<0)throw new Error("More tasks executed then were scheduled.");0!=g&&0!=P||this.hasTask(this.zone,{microTask:o.microTask>0,macroTask:o.macroTask>0,eventTask:o.eventTask>0,change:p})}}class m{constructor(p,t,o,g,P,K){if(this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state="notScheduled",this.type=p,this.source=t,this.data=g,this.scheduleFn=P,this.cancelFn=K,!o)throw new Error("callback is not defined");this.callback=o;const l=this;this.invoke=p===R&&g&&g.useG?m.invokeTask:function(){return m.invokeTask.call(e,l,this,arguments)}}static invokeTask(p,t,o){p||(p=this),re++;try{return p.runCount++,p.zone.runTask(p,t,o)}finally{1==re&&L(),re--}}get zone(){return this._zone}get state(){return this._state}cancelScheduleRequest(){this._transitionTo(j,q)}_transitionTo(p,t,o){if(this._state!==t&&this._state!==o)throw new Error(`${this.type} '${this.source}': can not transition to '${p}', expecting state '${t}'${o?" or '"+o+"'":""}, was '${this._state}'.`);this._state=p,p==j&&(this._zoneDelegates=null)}toString(){return this.data&&typeof this.data.handleId<"u"?this.data.handleId.toString():Object.prototype.toString.call(this)}toJSON(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}}}const S=u("setTimeout"),D=u("Promise"),Z=u("then");let E,B=[],V=!1;function d(I){if(0===re&&0===B.length)if(E||e[D]&&(E=e[D].resolve(0)),E){let p=E[Z];p||(p=E.then),p.call(E,L)}else e[S](L,0);I&&B.push(I)}function L(){if(!V){for(V=!0;B.length;){const I=B;B=[];for(let p=0;pG,onUnhandledError:F,microtaskDrainDone:F,scheduleMicroTask:d,showUncaughtError:()=>!_[u("ignoreConsoleErrorUncaughtError")],patchEventTarget:()=>[],patchOnProperties:F,patchMethod:()=>F,bindArguments:()=>[],patchThen:()=>F,patchMacroTask:()=>F,patchEventPrototype:()=>F,isIEOrEdge:()=>!1,getGlobalObjects:()=>{},ObjectDefineProperty:()=>F,ObjectGetOwnPropertyDescriptor:()=>{},ObjectCreate:()=>{},ArraySlice:()=>[],patchClass:()=>F,wrapWithCurrentZone:()=>F,filterProperties:()=>[],attachOriginToPatched:()=>F,_redefineProperty:()=>F,patchCallbacks:()=>F};let G={parent:null,zone:new _(null,null)},te=null,re=0;function F(){}r("Zone","Zone"),e.Zone=_}(typeof window<"u"&&window||typeof self<"u"&&self||global);const ue=Object.getOwnPropertyDescriptor,he=Object.defineProperty,de=Object.getPrototypeOf,Be=Object.create,ut=Array.prototype.slice,Se="addEventListener",Oe="removeEventListener",Ze=Zone.__symbol__(Se),Ie=Zone.__symbol__(Oe),se="true",ie="false",ke=Zone.__symbol__("");function Le(e,n){return Zone.current.wrap(e,n)}function Me(e,n,i,r,c){return Zone.current.scheduleMacroTask(e,n,i,r,c)}const x=Zone.__symbol__,Pe=typeof window<"u",pe=Pe?window:void 0,$=Pe&&pe||"object"==typeof self&&self||global,ht=[null];function Ae(e,n){for(let i=e.length-1;i>=0;i--)"function"==typeof e[i]&&(e[i]=Le(e[i],n+"_"+i));return e}function Fe(e){return!e||!1!==e.writable&&!("function"==typeof e.get&&typeof e.set>"u")}const Ue=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope,Re=!("nw"in $)&&typeof $.process<"u"&&"[object process]"==={}.toString.call($.process),je=!Re&&!Ue&&!(!Pe||!pe.HTMLElement),We=typeof $.process<"u"&&"[object process]"==={}.toString.call($.process)&&!Ue&&!(!Pe||!pe.HTMLElement),Ce={},qe=function(e){if(!(e=e||$.event))return;let n=Ce[e.type];n||(n=Ce[e.type]=x("ON_PROPERTY"+e.type));const i=this||e.target||$,r=i[n];let c;return je&&i===pe&&"error"===e.type?(c=r&&r.call(this,e.message,e.filename,e.lineno,e.colno,e.error),!0===c&&e.preventDefault()):(c=r&&r.apply(this,arguments),null!=c&&!c&&e.preventDefault()),c};function Xe(e,n,i){let r=ue(e,n);if(!r&&i&&ue(i,n)&&(r={enumerable:!0,configurable:!0}),!r||!r.configurable)return;const c=x("on"+n+"patched");if(e.hasOwnProperty(c)&&e[c])return;delete r.writable,delete r.value;const u=r.get,f=r.set,_=n.substr(2);let y=Ce[_];y||(y=Ce[_]=x("ON_PROPERTY"+_)),r.set=function(T){let m=this;!m&&e===$&&(m=$),m&&(m[y]&&m.removeEventListener(_,qe),f&&f.apply(m,ht),"function"==typeof T?(m[y]=T,m.addEventListener(_,qe,!1)):m[y]=null)},r.get=function(){let T=this;if(!T&&e===$&&(T=$),!T)return null;const m=T[y];if(m)return m;if(u){let S=u&&u.call(this);if(S)return r.set.call(this,S),"function"==typeof T.removeAttribute&&T.removeAttribute(n),S}return null},he(e,n,r),e[c]=!0}function Ye(e,n,i){if(n)for(let r=0;rfunction(f,_){const y=i(f,_);return y.cbIdx>=0&&"function"==typeof _[y.cbIdx]?Me(y.name,_[y.cbIdx],y,c):u.apply(f,_)})}function ae(e,n){e[x("OriginalDelegate")]=n}let $e=!1,He=!1;function mt(){if($e)return He;$e=!0;try{const e=pe.navigator.userAgent;(-1!==e.indexOf("MSIE ")||-1!==e.indexOf("Trident/")||-1!==e.indexOf("Edge/"))&&(He=!0)}catch{}return He}Zone.__load_patch("ZoneAwarePromise",(e,n,i)=>{const r=Object.getOwnPropertyDescriptor,c=Object.defineProperty,f=i.symbol,_=[],y=!0===e[f("DISABLE_WRAPPING_UNCAUGHT_PROMISE_REJECTION")],T=f("Promise"),m=f("then");i.onUnhandledError=l=>{if(i.showUncaughtError()){const s=l&&l.rejection;s?console.error("Unhandled Promise rejection:",s instanceof Error?s.message:s,"; Zone:",l.zone.name,"; Task:",l.task&&l.task.source,"; Value:",s,s instanceof Error?s.stack:void 0):console.error(l)}},i.microtaskDrainDone=()=>{for(;_.length;){const l=_.shift();try{l.zone.runGuarded(()=>{throw l.throwOriginal?l.rejection:l})}catch(s){Z(s)}}};const D=f("unhandledPromiseRejectionHandler");function Z(l){i.onUnhandledError(l);try{const s=n[D];"function"==typeof s&&s.call(this,l)}catch{}}function B(l){return l&&l.then}function V(l){return l}function E(l){return t.reject(l)}const d=f("state"),L=f("value"),z=f("finally"),j=f("parentPromiseValue"),q=f("parentPromiseState"),X=null,A=!0,Y=!1;function M(l,s){return a=>{try{G(l,s,a)}catch(h){G(l,!1,h)}}}const le=f("currentTaskTrace");function G(l,s,a){const h=function(){let l=!1;return function(a){return function(){l||(l=!0,a.apply(null,arguments))}}}();if(l===a)throw new TypeError("Promise resolved with itself");if(l[d]===X){let w=null;try{("object"==typeof a||"function"==typeof a)&&(w=a&&a.then)}catch(C){return h(()=>{G(l,!1,C)})(),l}if(s!==Y&&a instanceof t&&a.hasOwnProperty(d)&&a.hasOwnProperty(L)&&a[d]!==X)re(a),G(l,a[d],a[L]);else if(s!==Y&&"function"==typeof w)try{w.call(a,h(M(l,s)),h(M(l,!1)))}catch(C){h(()=>{G(l,!1,C)})()}else{l[d]=s;const C=l[L];if(l[L]=a,l[z]===z&&s===A&&(l[d]=l[q],l[L]=l[j]),s===Y&&a instanceof Error){const k=n.currentTask&&n.currentTask.data&&n.currentTask.data.__creationTrace__;k&&c(a,le,{configurable:!0,enumerable:!1,writable:!0,value:k})}for(let k=0;k{try{const b=l[L],N=!!a&&z===a[z];N&&(a[j]=b,a[q]=C);const H=s.run(k,void 0,N&&k!==E&&k!==V?[]:[b]);G(a,!0,H)}catch(b){G(a,!1,b)}},a)}const p=function(){};class t{static toString(){return"function ZoneAwarePromise() { [native code] }"}static resolve(s){return G(new this(null),A,s)}static reject(s){return G(new this(null),Y,s)}static race(s){let a,h,w=new this((b,N)=>{a=b,h=N});function C(b){a(b)}function k(b){h(b)}for(let b of s)B(b)||(b=this.resolve(b)),b.then(C,k);return w}static all(s){return t.allWithCallback(s)}static allSettled(s){return(this&&this.prototype instanceof t?this:t).allWithCallback(s,{thenCallback:h=>({status:"fulfilled",value:h}),errorCallback:h=>({status:"rejected",reason:h})})}static allWithCallback(s,a){let h,w,C=new this((H,U)=>{h=H,w=U}),k=2,b=0;const N=[];for(let H of s){B(H)||(H=this.resolve(H));const U=b;try{H.then(Q=>{N[U]=a?a.thenCallback(Q):Q,k--,0===k&&h(N)},Q=>{a?(N[U]=a.errorCallback(Q),k--,0===k&&h(N)):w(Q)})}catch(Q){w(Q)}k++,b++}return k-=2,0===k&&h(N),C}constructor(s){const a=this;if(!(a instanceof t))throw new Error("Must be an instanceof Promise.");a[d]=X,a[L]=[];try{s&&s(M(a,A),M(a,Y))}catch(h){G(a,!1,h)}}get[Symbol.toStringTag](){return"Promise"}get[Symbol.species](){return t}then(s,a){let h=this.constructor[Symbol.species];(!h||"function"!=typeof h)&&(h=this.constructor||t);const w=new h(p),C=n.current;return this[d]==X?this[L].push(C,w,s,a):F(this,C,w,s,a),w}catch(s){return this.then(null,s)}finally(s){let a=this.constructor[Symbol.species];(!a||"function"!=typeof a)&&(a=t);const h=new a(p);h[z]=z;const w=n.current;return this[d]==X?this[L].push(w,h,s,s):F(this,w,h,s,s),h}}t.resolve=t.resolve,t.reject=t.reject,t.race=t.race,t.all=t.all;const o=e[T]=e.Promise;e.Promise=t;const g=f("thenPatched");function P(l){const s=l.prototype,a=r(s,"then");if(a&&(!1===a.writable||!a.configurable))return;const h=s.then;s[m]=h,l.prototype.then=function(w,C){return new t((b,N)=>{h.call(this,b,N)}).then(w,C)},l[g]=!0}return i.patchThen=P,o&&(P(o),ce(e,"fetch",l=>function K(l){return function(s,a){let h=l.apply(s,a);if(h instanceof t)return h;let w=h.constructor;return w[g]||P(w),h}}(l))),Promise[n.__symbol__("uncaughtPromiseErrors")]=_,t}),Zone.__load_patch("toString",e=>{const n=Function.prototype.toString,i=x("OriginalDelegate"),r=x("Promise"),c=x("Error"),u=function(){if("function"==typeof this){const T=this[i];if(T)return"function"==typeof T?n.call(T):Object.prototype.toString.call(T);if(this===Promise){const m=e[r];if(m)return n.call(m)}if(this===Error){const m=e[c];if(m)return n.call(m)}}return n.call(this)};u[i]=n,Function.prototype.toString=u;const f=Object.prototype.toString;Object.prototype.toString=function(){return"function"==typeof Promise&&this instanceof Promise?"[object Promise]":f.call(this)}});let me=!1;if(typeof window<"u")try{const e=Object.defineProperty({},"passive",{get:function(){me=!0}});window.addEventListener("test",e,e),window.removeEventListener("test",e,e)}catch{me=!1}const Et={useG:!0},ee={},Ke={},Je=new RegExp("^"+ke+"(\\w+)(true|false)$"),xe=x("propagationStopped");function Qe(e,n){const i=(n?n(e):e)+ie,r=(n?n(e):e)+se,c=ke+i,u=ke+r;ee[e]={},ee[e][ie]=c,ee[e][se]=u}function Tt(e,n,i){const r=i&&i.add||Se,c=i&&i.rm||Oe,u=i&&i.listeners||"eventListeners",f=i&&i.rmAll||"removeAllListeners",_=x(r),y="."+r+":",T="prependListener",m="."+T+":",S=function(E,d,L){if(E.isRemoved)return;const z=E.callback;"object"==typeof z&&z.handleEvent&&(E.callback=q=>z.handleEvent(q),E.originalDelegate=z),E.invoke(E,d,[L]);const j=E.options;j&&"object"==typeof j&&j.once&&d[c].call(d,L.type,E.originalDelegate?E.originalDelegate:E.callback,j)},D=function(E){if(!(E=E||e.event))return;const d=this||E.target||e,L=d[ee[E.type][ie]];if(L)if(1===L.length)S(L[0],d,E);else{const z=L.slice();for(let j=0;jfunction(c,u){c[xe]=!0,r&&r.apply(c,u)})}function yt(e,n,i,r,c){const u=Zone.__symbol__(r);if(n[u])return;const f=n[u]=n[r];n[r]=function(_,y,T){return y&&y.prototype&&c.forEach(function(m){const S=`${i}.${r}::`+m,D=y.prototype;if(D.hasOwnProperty(m)){const Z=e.ObjectGetOwnPropertyDescriptor(D,m);Z&&Z.value?(Z.value=e.wrapWithCurrentZone(Z.value,S),e._redefineProperty(y.prototype,m,Z)):D[m]&&(D[m]=e.wrapWithCurrentZone(D[m],S))}else D[m]&&(D[m]=e.wrapWithCurrentZone(D[m],S))}),f.call(n,_,y,T)},e.attachOriginToPatched(n[r],f)}const Ve=["absolutedeviceorientation","afterinput","afterprint","appinstalled","beforeinstallprompt","beforeprint","beforeunload","devicelight","devicemotion","deviceorientation","deviceorientationabsolute","deviceproximity","hashchange","languagechange","message","mozbeforepaint","offline","online","paint","pageshow","pagehide","popstate","rejectionhandled","storage","unhandledrejection","unload","userproximity","vrdisplayconnected","vrdisplaydisconnected","vrdisplaypresentchange"],wt=["encrypted","waitingforkey","msneedkey","mozinterruptbegin","mozinterruptend"],tt=["load"],nt=["blur","error","focus","load","resize","scroll","messageerror"],Dt=["bounce","finish","start"],rt=["loadstart","progress","abort","error","load","progress","timeout","loadend","readystatechange"],Ee=["upgradeneeded","complete","abort","success","error","blocked","versionchange","close"],St=["close","error","open","message"],Ot=["error","message"],Te=["abort","animationcancel","animationend","animationiteration","auxclick","beforeinput","blur","cancel","canplay","canplaythrough","change","compositionstart","compositionupdate","compositionend","cuechange","click","close","contextmenu","curechange","dblclick","drag","dragend","dragenter","dragexit","dragleave","dragover","drop","durationchange","emptied","ended","error","focus","focusin","focusout","gotpointercapture","input","invalid","keydown","keypress","keyup","load","loadstart","loadeddata","loadedmetadata","lostpointercapture","mousedown","mouseenter","mouseleave","mousemove","mouseout","mouseover","mouseup","mousewheel","orientationchange","pause","play","playing","pointercancel","pointerdown","pointerenter","pointerleave","pointerlockchange","mozpointerlockchange","webkitpointerlockerchange","pointerlockerror","mozpointerlockerror","webkitpointerlockerror","pointermove","pointout","pointerover","pointerup","progress","ratechange","reset","resize","scroll","seeked","seeking","select","selectionchange","selectstart","show","sort","stalled","submit","suspend","timeupdate","volumechange","touchcancel","touchmove","touchstart","touchend","transitioncancel","transitionend","waiting","wheel"].concat(["webglcontextrestored","webglcontextlost","webglcontextcreationerror"],["autocomplete","autocompleteerror"],["toggle"],["afterscriptexecute","beforescriptexecute","DOMContentLoaded","freeze","fullscreenchange","mozfullscreenchange","webkitfullscreenchange","msfullscreenchange","fullscreenerror","mozfullscreenerror","webkitfullscreenerror","msfullscreenerror","readystatechange","visibilitychange","resume"],Ve,["beforecopy","beforecut","beforepaste","copy","cut","paste","dragstart","loadend","animationstart","search","transitionrun","transitionstart","webkitanimationend","webkitanimationiteration","webkitanimationstart","webkittransitionend"],["activate","afterupdate","ariarequest","beforeactivate","beforedeactivate","beforeeditfocus","beforeupdate","cellchange","controlselect","dataavailable","datasetchanged","datasetcomplete","errorupdate","filterchange","layoutcomplete","losecapture","move","moveend","movestart","propertychange","resizeend","resizestart","rowenter","rowexit","rowsdelete","rowsinserted","command","compassneedscalibration","deactivate","help","mscontentzoom","msmanipulationstatechanged","msgesturechange","msgesturedoubletap","msgestureend","msgesturehold","msgesturestart","msgesturetap","msgotpointercapture","msinertiastart","mslostpointercapture","mspointercancel","mspointerdown","mspointerenter","mspointerhover","mspointerleave","mspointermove","mspointerout","mspointerover","mspointerup","pointerout","mssitemodejumplistitemremoved","msthumbnailclick","stop","storagecommit"]);function ot(e,n,i){if(!i||0===i.length)return n;const r=i.filter(u=>u.target===e);if(!r||0===r.length)return n;const c=r[0].ignoreProperties;return n.filter(u=>-1===c.indexOf(u))}function W(e,n,i,r){e&&Ye(e,ot(e,n,i),r)}Zone.__load_patch("util",(e,n,i)=>{i.patchOnProperties=Ye,i.patchMethod=ce,i.bindArguments=Ae,i.patchMacroTask=_t;const r=n.__symbol__("BLACK_LISTED_EVENTS"),c=n.__symbol__("UNPATCHED_EVENTS");e[c]&&(e[r]=e[c]),e[r]&&(n[r]=n[c]=e[r]),i.patchEventPrototype=gt,i.patchEventTarget=Tt,i.isIEOrEdge=mt,i.ObjectDefineProperty=he,i.ObjectGetOwnPropertyDescriptor=ue,i.ObjectCreate=Be,i.ArraySlice=ut,i.patchClass=ve,i.wrapWithCurrentZone=Le,i.filterProperties=ot,i.attachOriginToPatched=ae,i._redefineProperty=Object.defineProperty,i.patchCallbacks=yt,i.getGlobalObjects=()=>({globalSources:Ke,zoneSymbolEventNames:ee,eventNames:Te,isBrowser:je,isMix:We,isNode:Re,TRUE_STR:se,FALSE_STR:ie,ZONE_SYMBOL_PREFIX:ke,ADD_EVENT_LISTENER_STR:Se,REMOVE_EVENT_LISTENER_STR:Oe})});const Ne=x("zoneTask");function ge(e,n,i,r){let c=null,u=null;i+=r;const f={};function _(T){const m=T.data;return m.args[0]=function(){return T.invoke.apply(this,arguments)},m.handleId=c.apply(e,m.args),T}function y(T){return u.call(e,T.data.handleId)}c=ce(e,n+=r,T=>function(m,S){if("function"==typeof S[0]){const D={isPeriodic:"Interval"===r,delay:"Timeout"===r||"Interval"===r?S[1]||0:void 0,args:S},Z=S[0];S[0]=function(){try{return Z.apply(this,arguments)}finally{D.isPeriodic||("number"==typeof D.handleId?delete f[D.handleId]:D.handleId&&(D.handleId[Ne]=null))}};const B=Me(n,S[0],D,_,y);if(!B)return B;const V=B.data.handleId;return"number"==typeof V?f[V]=B:V&&(V[Ne]=B),V&&V.ref&&V.unref&&"function"==typeof V.ref&&"function"==typeof V.unref&&(B.ref=V.ref.bind(V),B.unref=V.unref.bind(V)),"number"==typeof V||V?V:B}return T.apply(e,S)}),u=ce(e,i,T=>function(m,S){const D=S[0];let Z;"number"==typeof D?Z=f[D]:(Z=D&&D[Ne],Z||(Z=D)),Z&&"string"==typeof Z.type?"notScheduled"!==Z.state&&(Z.cancelFn&&Z.data.isPeriodic||0===Z.runCount)&&("number"==typeof D?delete f[D]:D&&(D[Ne]=null),Z.zone.cancelTask(Z)):T.apply(e,S)})}Zone.__load_patch("legacy",e=>{const n=e[Zone.__symbol__("legacyPatch")];n&&n()}),Zone.__load_patch("queueMicrotask",(e,n,i)=>{i.patchMethod(e,"queueMicrotask",r=>function(c,u){n.current.scheduleMicroTask("queueMicrotask",u[0])})}),Zone.__load_patch("timers",e=>{const n="set",i="clear";ge(e,n,i,"Timeout"),ge(e,n,i,"Interval"),ge(e,n,i,"Immediate")}),Zone.__load_patch("requestAnimationFrame",e=>{ge(e,"request","cancel","AnimationFrame"),ge(e,"mozRequest","mozCancel","AnimationFrame"),ge(e,"webkitRequest","webkitCancel","AnimationFrame")}),Zone.__load_patch("blocking",(e,n)=>{const i=["alert","prompt","confirm"];for(let r=0;rfunction(y,T){return n.current.run(u,e,T,_)})}),Zone.__load_patch("EventTarget",(e,n,i)=>{(function Mt(e,n){n.patchEventPrototype(e,n)})(e,i),function Lt(e,n){if(Zone[n.symbol("patchEventTarget")])return;const{eventNames:i,zoneSymbolEventNames:r,TRUE_STR:c,FALSE_STR:u,ZONE_SYMBOL_PREFIX:f}=n.getGlobalObjects();for(let y=0;y{ve("MutationObserver"),ve("WebKitMutationObserver")}),Zone.__load_patch("IntersectionObserver",(e,n,i)=>{ve("IntersectionObserver")}),Zone.__load_patch("FileReader",(e,n,i)=>{ve("FileReader")}),Zone.__load_patch("on_property",(e,n,i)=>{!function Zt(e,n){if(Re&&!We||Zone[e.symbol("patchEvents")])return;const i=typeof WebSocket<"u",r=n.__Zone_ignore_on_properties;if(je){const f=window,_=function pt(){try{const e=pe.navigator.userAgent;if(-1!==e.indexOf("MSIE ")||-1!==e.indexOf("Trident/"))return!0}catch{}return!1}()?[{target:f,ignoreProperties:["error"]}]:[];W(f,Te.concat(["messageerror"]),r&&r.concat(_),de(f)),W(Document.prototype,Te,r),typeof f.SVGElement<"u"&&W(f.SVGElement.prototype,Te,r),W(Element.prototype,Te,r),W(HTMLElement.prototype,Te,r),W(HTMLMediaElement.prototype,wt,r),W(HTMLFrameSetElement.prototype,Ve.concat(nt),r),W(HTMLBodyElement.prototype,Ve.concat(nt),r),W(HTMLFrameElement.prototype,tt,r),W(HTMLIFrameElement.prototype,tt,r);const y=f.HTMLMarqueeElement;y&&W(y.prototype,Dt,r);const T=f.Worker;T&&W(T.prototype,Ot,r)}const c=n.XMLHttpRequest;c&&W(c.prototype,rt,r);const u=n.XMLHttpRequestEventTarget;u&&W(u&&u.prototype,rt,r),typeof IDBIndex<"u"&&(W(IDBIndex.prototype,Ee,r),W(IDBRequest.prototype,Ee,r),W(IDBOpenDBRequest.prototype,Ee,r),W(IDBDatabase.prototype,Ee,r),W(IDBTransaction.prototype,Ee,r),W(IDBCursor.prototype,Ee,r)),i&&W(WebSocket.prototype,St,r)}(i,e)}),Zone.__load_patch("customElements",(e,n,i)=>{!function It(e,n){const{isBrowser:i,isMix:r}=n.getGlobalObjects();(i||r)&&e.customElements&&"customElements"in e&&n.patchCallbacks(n,e.customElements,"customElements","define",["connectedCallback","disconnectedCallback","adoptedCallback","attributeChangedCallback"])}(e,i)}),Zone.__load_patch("XHR",(e,n)=>{!function y(T){const m=T.XMLHttpRequest;if(!m)return;const S=m.prototype;let Z=S[Ze],B=S[Ie];if(!Z){const v=T.XMLHttpRequestEventTarget;if(v){const M=v.prototype;Z=M[Ze],B=M[Ie]}}const V="readystatechange",E="scheduled";function d(v){const M=v.data,R=M.target;R[u]=!1,R[_]=!1;const J=R[c];Z||(Z=R[Ze],B=R[Ie]),J&&B.call(R,V,J);const le=R[c]=()=>{if(R.readyState===R.DONE)if(!M.aborted&&R[u]&&v.state===E){const te=R[n.__symbol__("loadfalse")];if(0!==R.status&&te&&te.length>0){const re=v.invoke;v.invoke=function(){const F=R[n.__symbol__("loadfalse")];for(let I=0;Ifunction(v,M){return v[r]=0==M[2],v[f]=M[1],j.apply(v,M)}),O=x("fetchTaskAborting"),X=x("fetchTaskScheduling"),A=ce(S,"send",()=>function(v,M){if(!0===n.current[X]||v[r])return A.apply(v,M);{const R={target:v,url:v[f],isPeriodic:!1,args:M,aborted:!1},J=Me("XMLHttpRequest.send",L,R,d,z);v&&!0===v[_]&&!R.aborted&&J.state===E&&J.invoke()}}),Y=ce(S,"abort",()=>function(v,M){const R=function D(v){return v[i]}(v);if(R&&"string"==typeof R.type){if(null==R.cancelFn||R.data&&R.data.aborted)return;R.zone.cancelTask(R)}else if(!0===n.current[O])return Y.apply(v,M)})}(e);const i=x("xhrTask"),r=x("xhrSync"),c=x("xhrListener"),u=x("xhrScheduled"),f=x("xhrURL"),_=x("xhrErrorBeforeScheduled")}),Zone.__load_patch("geolocation",e=>{e.navigator&&e.navigator.geolocation&&function dt(e,n){const i=e.constructor.name;for(let r=0;r{const y=function(){return _.apply(this,Ae(arguments,i+"."+c))};return ae(y,_),y})(u)}}}(e.navigator.geolocation,["getCurrentPosition","watchPosition"])}),Zone.__load_patch("PromiseRejectionEvent",(e,n)=>{function i(r){return function(c){et(e,r).forEach(f=>{const _=e.PromiseRejectionEvent;if(_){const y=new _(r,{promise:c.promise,reason:c.rejection});f.invoke(y)}})}}e.PromiseRejectionEvent&&(n[x("unhandledPromiseRejectionHandler")]=i("unhandledrejection"),n[x("rejectionHandledHandler")]=i("rejectionhandled"))})}},we=>{we(we.s=435)}]); + +"use strict";(self.webpackChunkcoverage_app=self.webpackChunkcoverage_app||[]).push([[179],{938:()=>{function me(e){return"function"==typeof e}function $o(e){const t=e(r=>{Error.call(r),r.stack=(new Error).stack});return t.prototype=Object.create(Error.prototype),t.prototype.constructor=t,t}const Uo=$o(e=>function(t){e(this),this.message=t?`${t.length} errors occurred during unsubscription:\n${t.map((r,o)=>`${o+1}) ${r.toString()}`).join("\n ")}`:"",this.name="UnsubscriptionError",this.errors=t});function Rr(e,n){if(e){const t=e.indexOf(n);0<=t&&e.splice(t,1)}}class Tt{constructor(n){this.initialTeardown=n,this.closed=!1,this._parentage=null,this._teardowns=null}unsubscribe(){let n;if(!this.closed){this.closed=!0;const{_parentage:t}=this;if(t)if(this._parentage=null,Array.isArray(t))for(const i of t)i.remove(this);else t.remove(this);const{initialTeardown:r}=this;if(me(r))try{r()}catch(i){n=i instanceof Uo?i.errors:[i]}const{_teardowns:o}=this;if(o){this._teardowns=null;for(const i of o)try{uu(i)}catch(s){n=n??[],s instanceof Uo?n=[...n,...s.errors]:n.push(s)}}if(n)throw new Uo(n)}}add(n){var t;if(n&&n!==this)if(this.closed)uu(n);else{if(n instanceof Tt){if(n.closed||n._hasParent(this))return;n._addParent(this)}(this._teardowns=null!==(t=this._teardowns)&&void 0!==t?t:[]).push(n)}}_hasParent(n){const{_parentage:t}=this;return t===n||Array.isArray(t)&&t.includes(n)}_addParent(n){const{_parentage:t}=this;this._parentage=Array.isArray(t)?(t.push(n),t):t?[t,n]:n}_removeParent(n){const{_parentage:t}=this;t===n?this._parentage=null:Array.isArray(t)&&Rr(t,n)}remove(n){const{_teardowns:t}=this;t&&Rr(t,n),n instanceof Tt&&n._removeParent(this)}}Tt.EMPTY=(()=>{const e=new Tt;return e.closed=!0,e})();const lu=Tt.EMPTY;function cu(e){return e instanceof Tt||e&&"closed"in e&&me(e.remove)&&me(e.add)&&me(e.unsubscribe)}function uu(e){me(e)?e():e.unsubscribe()}const wn={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},zo={setTimeout(...e){const{delegate:n}=zo;return(n?.setTimeout||setTimeout)(...e)},clearTimeout(e){const{delegate:n}=zo;return(n?.clearTimeout||clearTimeout)(e)},delegate:void 0};function du(e){zo.setTimeout(()=>{const{onUnhandledError:n}=wn;if(!n)throw e;n(e)})}function Go(){}const av=As("C",void 0,void 0);function As(e,n,t){return{kind:e,value:n,error:t}}let bn=null;function Wo(e){if(wn.useDeprecatedSynchronousErrorHandling){const n=!bn;if(n&&(bn={errorThrown:!1,error:null}),e(),n){const{errorThrown:t,error:r}=bn;if(bn=null,t)throw r}}else e()}class Ts extends Tt{constructor(n){super(),this.isStopped=!1,n?(this.destination=n,cu(n)&&n.add(this)):this.destination=dv}static create(n,t,r){return new xs(n,t,r)}next(n){this.isStopped?Fs(function cv(e){return As("N",e,void 0)}(n),this):this._next(n)}error(n){this.isStopped?Fs(function lv(e){return As("E",void 0,e)}(n),this):(this.isStopped=!0,this._error(n))}complete(){this.isStopped?Fs(av,this):(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe(),this.destination=null)}_next(n){this.destination.next(n)}_error(n){try{this.destination.error(n)}finally{this.unsubscribe()}}_complete(){try{this.destination.complete()}finally{this.unsubscribe()}}}class xs extends Ts{constructor(n,t,r){let o;if(super(),me(n))o=n;else if(n){let i;({next:o,error:t,complete:r}=n),this&&wn.useDeprecatedNextContext?(i=Object.create(n),i.unsubscribe=()=>this.unsubscribe()):i=n,o=o?.bind(i),t=t?.bind(i),r=r?.bind(i)}this.destination={next:o?Ns(o):Go,error:Ns(t??fu),complete:r?Ns(r):Go}}}function Ns(e,n){return(...t)=>{try{e(...t)}catch(r){wn.useDeprecatedSynchronousErrorHandling?function uv(e){wn.useDeprecatedSynchronousErrorHandling&&bn&&(bn.errorThrown=!0,bn.error=e)}(r):du(r)}}}function fu(e){throw e}function Fs(e,n){const{onStoppedNotification:t}=wn;t&&zo.setTimeout(()=>t(e,n))}const dv={closed:!0,next:Go,error:fu,complete:Go},Os="function"==typeof Symbol&&Symbol.observable||"@@observable";function hu(e){return e}let ze=(()=>{class e{constructor(t){t&&(this._subscribe=t)}lift(t){const r=new e;return r.source=this,r.operator=t,r}subscribe(t,r,o){const i=function hv(e){return e&&e instanceof Ts||function fv(e){return e&&me(e.next)&&me(e.error)&&me(e.complete)}(e)&&cu(e)}(t)?t:new xs(t,r,o);return Wo(()=>{const{operator:s,source:a}=this;i.add(s?s.call(i,a):a?this._subscribe(i):this._trySubscribe(i))}),i}_trySubscribe(t){try{return this._subscribe(t)}catch(r){t.error(r)}}forEach(t,r){return new(r=gu(r))((o,i)=>{let s;s=this.subscribe(a=>{try{t(a)}catch(l){i(l),s?.unsubscribe()}},i,o)})}_subscribe(t){var r;return null===(r=this.source)||void 0===r?void 0:r.subscribe(t)}[Os](){return this}pipe(...t){return function pu(e){return 0===e.length?hu:1===e.length?e[0]:function(t){return e.reduce((r,o)=>o(r),t)}}(t)(this)}toPromise(t){return new(t=gu(t))((r,o)=>{let i;this.subscribe(s=>i=s,s=>o(s),()=>r(i))})}}return e.create=n=>new e(n),e})();function gu(e){var n;return null!==(n=e??wn.Promise)&&void 0!==n?n:Promise}const pv=$o(e=>function(){e(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"});let Rs=(()=>{class e extends ze{constructor(){super(),this.closed=!1,this.observers=[],this.isStopped=!1,this.hasError=!1,this.thrownError=null}lift(t){const r=new mu(this,this);return r.operator=t,r}_throwIfClosed(){if(this.closed)throw new pv}next(t){Wo(()=>{if(this._throwIfClosed(),!this.isStopped){const r=this.observers.slice();for(const o of r)o.next(t)}})}error(t){Wo(()=>{if(this._throwIfClosed(),!this.isStopped){this.hasError=this.isStopped=!0,this.thrownError=t;const{observers:r}=this;for(;r.length;)r.shift().error(t)}})}complete(){Wo(()=>{if(this._throwIfClosed(),!this.isStopped){this.isStopped=!0;const{observers:t}=this;for(;t.length;)t.shift().complete()}})}unsubscribe(){this.isStopped=this.closed=!0,this.observers=null}get observed(){var t;return(null===(t=this.observers)||void 0===t?void 0:t.length)>0}_trySubscribe(t){return this._throwIfClosed(),super._trySubscribe(t)}_subscribe(t){return this._throwIfClosed(),this._checkFinalizedStatuses(t),this._innerSubscribe(t)}_innerSubscribe(t){const{hasError:r,isStopped:o,observers:i}=this;return r||o?lu:(i.push(t),new Tt(()=>Rr(i,t)))}_checkFinalizedStatuses(t){const{hasError:r,thrownError:o,isStopped:i}=this;r?t.error(o):i&&t.complete()}asObservable(){const t=new ze;return t.source=this,t}}return e.create=(n,t)=>new mu(n,t),e})();class mu extends Rs{constructor(n,t){super(),this.destination=n,this.source=t}next(n){var t,r;null===(r=null===(t=this.destination)||void 0===t?void 0:t.next)||void 0===r||r.call(t,n)}error(n){var t,r;null===(r=null===(t=this.destination)||void 0===t?void 0:t.error)||void 0===r||r.call(t,n)}complete(){var n,t;null===(t=null===(n=this.destination)||void 0===n?void 0:n.complete)||void 0===t||t.call(n)}_subscribe(n){var t,r;return null!==(r=null===(t=this.source)||void 0===t?void 0:t.subscribe(n))&&void 0!==r?r:lu}}function zn(e){return n=>{if(function gv(e){return me(e?.lift)}(n))return n.lift(function(t){try{return e(t,this)}catch(r){this.error(r)}});throw new TypeError("Unable to lift unknown Observable type")}}class Gn extends Ts{constructor(n,t,r,o,i){super(n),this.onFinalize=i,this._next=t?function(s){try{t(s)}catch(a){n.error(a)}}:super._next,this._error=o?function(s){try{o(s)}catch(a){n.error(a)}finally{this.unsubscribe()}}:super._error,this._complete=r?function(){try{r()}catch(s){n.error(s)}finally{this.unsubscribe()}}:super._complete}unsubscribe(){var n;const{closed:t}=this;super.unsubscribe(),!t&&(null===(n=this.onFinalize)||void 0===n||n.call(this))}}function Ps(e,n){return zn((t,r)=>{let o=0;t.subscribe(new Gn(r,i=>{r.next(e.call(n,i,o++))}))})}function En(e){return this instanceof En?(this.v=e,this):new En(e)}function vv(e,n,t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var o,r=t.apply(e,n||[]),i=[];return o={},s("next"),s("throw"),s("return"),o[Symbol.asyncIterator]=function(){return this},o;function s(h){r[h]&&(o[h]=function(p){return new Promise(function(m,D){i.push([h,p,m,D])>1||a(h,p)})})}function a(h,p){try{!function l(h){h.value instanceof En?Promise.resolve(h.value.v).then(c,u):d(i[0][2],h)}(r[h](p))}catch(m){d(i[0][3],m)}}function c(h){a("next",h)}function u(h){a("throw",h)}function d(h,p){h(p),i.shift(),i.length&&a(i[0][0],i[0][1])}}function yv(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,n=e[Symbol.asyncIterator];return n?n.call(e):(e=function yu(e){var n="function"==typeof Symbol&&Symbol.iterator,t=n&&e[n],r=0;if(t)return t.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(n?"Object is not iterable.":"Symbol.iterator is not defined.")}(e),t={},r("next"),r("throw"),r("return"),t[Symbol.asyncIterator]=function(){return this},t);function r(i){t[i]=e[i]&&function(s){return new Promise(function(a,l){!function o(i,s,a,l){Promise.resolve(l).then(function(c){i({value:c,done:a})},s)}(a,l,(s=e[i](s)).done,s.value)})}}}const Cu=e=>e&&"number"==typeof e.length&&"function"!=typeof e;function Du(e){return me(e?.then)}function wu(e){return me(e[Os])}function bu(e){return Symbol.asyncIterator&&me(e?.[Symbol.asyncIterator])}function Eu(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 Iu=function Dv(){return"function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator"}();function Mu(e){return me(e?.[Iu])}function Su(e){return vv(this,arguments,function*(){const t=e.getReader();try{for(;;){const{value:r,done:o}=yield En(t.read());if(o)return yield En(void 0);yield yield En(r)}}finally{t.releaseLock()}})}function Au(e){return me(e?.getReader)}function In(e){if(e instanceof ze)return e;if(null!=e){if(wu(e))return function wv(e){return new ze(n=>{const t=e[Os]();if(me(t.subscribe))return t.subscribe(n);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}(e);if(Cu(e))return function bv(e){return new ze(n=>{for(let t=0;t{e.then(t=>{n.closed||(n.next(t),n.complete())},t=>n.error(t)).then(null,du)})}(e);if(bu(e))return Tu(e);if(Mu(e))return function Iv(e){return new ze(n=>{for(const t of e)if(n.next(t),n.closed)return;n.complete()})}(e);if(Au(e))return function Mv(e){return Tu(Su(e))}(e)}throw Eu(e)}function Tu(e){return new ze(n=>{(function Sv(e,n){var t,r,o,i;return function mv(e,n,t,r){return new(t||(t=Promise))(function(i,s){function a(u){try{c(r.next(u))}catch(d){s(d)}}function l(u){try{c(r.throw(u))}catch(d){s(d)}}function c(u){u.done?i(u.value):function o(i){return i instanceof t?i:new t(function(s){s(i)})}(u.value).then(a,l)}c((r=r.apply(e,n||[])).next())})}(this,void 0,void 0,function*(){try{for(t=yv(e);!(r=yield t.next()).done;)if(n.next(r.value),n.closed)return}catch(s){o={error:s}}finally{try{r&&!r.done&&(i=t.return)&&(yield i.call(t))}finally{if(o)throw o.error}}n.complete()})})(e,n).catch(t=>n.error(t))})}function rn(e,n,t,r=0,o=!1){const i=n.schedule(function(){t(),o?e.add(this.schedule(null,r)):this.unsubscribe()},r);if(e.add(i),!o)return i}function xu(e,n,t=1/0){return me(n)?xu((r,o)=>Ps((i,s)=>n(r,i,o,s))(In(e(r,o))),t):("number"==typeof n&&(t=n),zn((r,o)=>function Av(e,n,t,r,o,i,s,a){const l=[];let c=0,u=0,d=!1;const h=()=>{d&&!l.length&&!c&&n.complete()},p=D=>c{i&&n.next(D),c++;let I=!1;In(t(D,u++)).subscribe(new Gn(n,S=>{o?.(S),i?p(S):n.next(S)},()=>{I=!0},void 0,()=>{if(I)try{for(c--;l.length&&cm(S)):m(S)}h()}catch(S){n.error(S)}}))};return e.subscribe(new Gn(n,p,()=>{d=!0,h()})),()=>{a?.()}}(r,o,e,t)))}const Ls=new ze(e=>e.complete());function Vs(e){return e[e.length-1]}function Nu(e,n=0){return zn((t,r)=>{t.subscribe(new Gn(r,o=>rn(r,e,()=>r.next(o),n),()=>rn(r,e,()=>r.complete(),n),o=>rn(r,e,()=>r.error(o),n)))})}function Fu(e,n=0){return zn((t,r)=>{r.add(e.schedule(()=>t.subscribe(r),n))})}function Ou(e,n){if(!e)throw new Error("Iterable cannot be null");return new ze(t=>{rn(t,n,()=>{const r=e[Symbol.asyncIterator]();rn(t,n,()=>{r.next().then(o=>{o.done?t.complete():t.next(o.value)})},0,!0)})})}function Bs(e,n){return n?function Hv(e,n){if(null!=e){if(wu(e))return function Pv(e,n){return In(e).pipe(Fu(n),Nu(n))}(e,n);if(Cu(e))return function Lv(e,n){return new ze(t=>{let r=0;return n.schedule(function(){r===e.length?t.complete():(t.next(e[r++]),t.closed||this.schedule())})})}(e,n);if(Du(e))return function kv(e,n){return In(e).pipe(Fu(n),Nu(n))}(e,n);if(bu(e))return Ou(e,n);if(Mu(e))return function Vv(e,n){return new ze(t=>{let r;return rn(t,n,()=>{r=e[Iu](),rn(t,n,()=>{let o,i;try{({value:o,done:i}=r.next())}catch(s){return void t.error(s)}i?t.complete():t.next(o)},0,!0)}),()=>me(r?.return)&&r.return()})}(e,n);if(Au(e))return function Bv(e,n){return Ou(Su(e),n)}(e,n)}throw Eu(e)}(e,n):In(e)}function jv(...e){const n=function Ov(e){return function Nv(e){return e&&me(e.schedule)}(Vs(e))?e.pop():void 0}(e),t=function Rv(e,n){return"number"==typeof Vs(e)?e.pop():n}(e,1/0),r=e;return r.length?1===r.length?In(r[0]):function Tv(e=1/0){return xu(hu,e)}(t)(Bs(r,n)):Ls}function Hs(e,n,...t){return!0===n?(e(),null):!1===n?null:n(...t).pipe(function $v(e){return e<=0?()=>Ls:zn((n,t)=>{let r=0;n.subscribe(new Gn(t,o=>{++r<=e&&(t.next(o),e<=r&&t.complete())}))})}(1)).subscribe(()=>e())}function ae(e){for(let n in e)if(e[n]===ae)return n;throw Error("Could not find renamed property on target object.")}function js(e,n){for(const t in n)n.hasOwnProperty(t)&&!e.hasOwnProperty(t)&&(e[t]=n[t])}function le(e){if("string"==typeof e)return e;if(Array.isArray(e))return"["+e.map(le).join(", ")+"]";if(null==e)return""+e;if(e.overriddenName)return`${e.overriddenName}`;if(e.name)return`${e.name}`;const n=e.toString();if(null==n)return""+n;const t=n.indexOf("\n");return-1===t?n:n.substring(0,t)}function $s(e,n){return null==e||""===e?null===n?"":n:null==n||""===n?e:e+" "+n}const zv=ae({__forward_ref__:ae});function ue(e){return e.__forward_ref__=ue,e.toString=function(){return le(this())},e}function P(e){return Us(e)?e():e}function Us(e){return"function"==typeof e&&e.hasOwnProperty(zv)&&e.__forward_ref__===ue}function zs(e){return e&&!!e.\u0275providers}const Ru="https://g.co/ng/security#xss";class A extends Error{constructor(n,t){super(function qo(e,n){return`NG0${Math.abs(e)}${n?": "+n.trim():""}`}(n,t)),this.code=n}}function j(e){return"string"==typeof e?e:null==e?"":String(e)}function Zo(e,n){throw new A(-201,!1)}function ut(e,n){null==e&&function re(e,n,t,r){throw new Error(`ASSERTION ERROR: ${e}`+(null==r?"":` [Expected=> ${t} ${r} ${n} <=Actual]`))}(n,e,null,"!=")}function de(e){return{token:e.token,providedIn:e.providedIn||null,factory:e.factory,value:void 0}}function $t(e){return{providers:e.providers||[],imports:e.imports||[]}}function Qo(e){return Pu(e,Yo)||Pu(e,Lu)}function Pu(e,n){return e.hasOwnProperty(n)?e[n]:null}function ku(e){return e&&(e.hasOwnProperty(Gs)||e.hasOwnProperty(Jv))?e[Gs]:null}const Yo=ae({\u0275prov:ae}),Gs=ae({\u0275inj:ae}),Lu=ae({ngInjectableDef:ae}),Jv=ae({ngInjectorDef:ae});var B=(()=>((B=B||{})[B.Default=0]="Default",B[B.Host=1]="Host",B[B.Self=2]="Self",B[B.SkipSelf=4]="SkipSelf",B[B.Optional=8]="Optional",B))();let Ws;function dt(e){const n=Ws;return Ws=e,n}function Vu(e,n,t){const r=Qo(e);return r&&"root"==r.providedIn?void 0===r.value?r.value=r.factory():r.value:t&B.Optional?null:void 0!==n?n:void Zo(le(e))}const fe=(()=>typeof globalThis<"u"&&globalThis||typeof global<"u"&&global||typeof window<"u"&&window||typeof self<"u"&&typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&self)(),Pr={},qs="__NG_DI_FLAG__",Ko="ngTempTokenPath",ty=/\n/gm,Bu="__source";let kr;function Wn(e){const n=kr;return kr=e,n}function ry(e,n=B.Default){if(void 0===kr)throw new A(-203,!1);return null===kr?Vu(e,void 0,n):kr.get(e,n&B.Optional?null:void 0,n)}function oe(e,n=B.Default){return(function Xv(){return Ws}()||ry)(P(e),n)}function Jo(e){return typeof e>"u"||"number"==typeof e?e:0|(e.optional&&8)|(e.host&&1)|(e.self&&2)|(e.skipSelf&&4)}function Zs(e){const n=[];for(let t=0;t((_t=_t||{})[_t.OnPush=0]="OnPush",_t[_t.Default=1]="Default",_t))(),xt=(()=>{return(e=xt||(xt={}))[e.Emulated=0]="Emulated",e[e.None=2]="None",e[e.ShadowDom=3]="ShadowDom",xt;var e})();const Ut={},te=[],Xo=ae({\u0275cmp:ae}),Qs=ae({\u0275dir:ae}),Ys=ae({\u0275pipe:ae}),ju=ae({\u0275mod:ae}),zt=ae({\u0275fac:ae}),Vr=ae({__NG_ELEMENT_ID__:ae});let ly=0;function Nt(e){return sn(()=>{const t=!0===e.standalone,r={},o={type:e.type,providersResolver:null,decls:e.decls,vars:e.vars,factory:null,template:e.template||null,consts:e.consts||null,ngContentSelectors:e.ngContentSelectors,hostBindings:e.hostBindings||null,hostVars:e.hostVars||0,hostAttrs:e.hostAttrs||null,contentQueries:e.contentQueries||null,declaredInputs:r,inputs:null,outputs:null,exportAs:e.exportAs||null,onPush:e.changeDetection===_t.OnPush,directiveDefs:null,pipeDefs:null,standalone:t,dependencies:t&&e.dependencies||null,getStandaloneInjector:null,selectors:e.selectors||te,viewQuery:e.viewQuery||null,features:e.features||null,data:e.data||{},encapsulation:e.encapsulation||xt.Emulated,id:"c"+ly++,styles:e.styles||te,_:null,setInput:null,schemas:e.schemas||null,tView:null,findHostDirectiveDefs:null,hostDirectives:null},i=e.dependencies,s=e.features;return o.inputs=zu(e.inputs,r),o.outputs=zu(e.outputs),s&&s.forEach(a=>a(o)),o.directiveDefs=i?()=>("function"==typeof i?i():i).map($u).filter(Uu):null,o.pipeDefs=i?()=>("function"==typeof i?i():i).map(Ge).filter(Uu):null,o})}function $u(e){return ie(e)||ke(e)}function Uu(e){return null!==e}function an(e){return sn(()=>({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 zu(e,n){if(null==e)return Ut;const t={};for(const r in e)if(e.hasOwnProperty(r)){let o=e[r],i=o;Array.isArray(o)&&(i=o[1],o=o[0]),t[o]=r,n&&(n[o]=i)}return t}const $=Nt;function Je(e){return{type:e.type,name:e.name,factory:null,pure:!1!==e.pure,standalone:!0===e.standalone,onDestroy:e.type.prototype.ngOnDestroy||null}}function ie(e){return e[Xo]||null}function ke(e){return e[Qs]||null}function Ge(e){return e[Ys]||null}const Z=11;function ot(e){return Array.isArray(e)&&"object"==typeof e[1]}function yt(e){return Array.isArray(e)&&!0===e[1]}function Xs(e){return 0!=(4&e.flags)}function Ur(e){return e.componentOffset>-1}function oi(e){return 1==(1&e.flags)}function Ct(e){return null!==e.template}function dy(e){return 0!=(256&e[2])}function Sn(e,n){return e.hasOwnProperty(zt)?e[zt]:null}class py{constructor(n,t,r){this.previousValue=n,this.currentValue=t,this.firstChange=r}isFirstChange(){return this.firstChange}}function Wt(){return Yu}function Yu(e){return e.type.prototype.ngOnChanges&&(e.setInput=my),gy}function gy(){const e=Ju(this),n=e?.current;if(n){const t=e.previous;if(t===Ut)e.previous=n;else for(let r in n)t[r]=n[r];e.current=null,this.ngOnChanges(n)}}function my(e,n,t,r){const o=this.declaredInputs[t],i=Ju(e)||function _y(e,n){return e[Ku]=n}(e,{previous:Ut,current:null}),s=i.current||(i.current={}),a=i.previous,l=a[o];s[o]=new py(l&&l.currentValue,n,a===Ut),e[r]=n}Wt.ngInherit=!0;const Ku="__ngSimpleChanges__";function Ju(e){return e[Ku]||null}function Re(e){for(;Array.isArray(e);)e=e[0];return e}function ii(e,n){return Re(n[e])}function it(e,n){return Re(n[e.index])}function td(e,n){return e.data[n]}function st(e,n){const t=n[e];return ot(t)?t:t[0]}function si(e){return 64==(64&e[2])}function ln(e,n){return null==n?null:e[n]}function nd(e){e[18]=0}function ta(e,n){e[5]+=n;let t=e,r=e[3];for(;null!==r&&(1===n&&1===t[5]||-1===n&&0===t[5]);)r[5]+=n,t=r,r=r[3]}const U={lFrame:fd(null),bindingsEnabled:!0};function od(){return U.bindingsEnabled}function E(){return U.lFrame.lView}function ee(){return U.lFrame.tView}function Q(e){return U.lFrame.contextLView=e,e[8]}function Y(e){return U.lFrame.contextLView=null,e}function Pe(){let e=id();for(;null!==e&&64===e.type;)e=e.parent;return e}function id(){return U.lFrame.currentTNode}function Ot(e,n){const t=U.lFrame;t.currentTNode=e,t.isParent=n}function na(){return U.lFrame.isParent}function ra(){U.lFrame.isParent=!1}function qe(){const e=U.lFrame;let n=e.bindingRootIndex;return-1===n&&(n=e.bindingRootIndex=e.tView.bindingStartIndex),n}function Jn(){return U.lFrame.bindingIndex++}function Zt(e){const n=U.lFrame,t=n.bindingIndex;return n.bindingIndex=n.bindingIndex+e,t}function xy(e,n){const t=U.lFrame;t.bindingIndex=t.bindingRootIndex=e,oa(n)}function oa(e){U.lFrame.currentDirectiveIndex=e}function sa(e){U.lFrame.currentQueryIndex=e}function Fy(e){const n=e[1];return 2===n.type?n.declTNode:1===n.type?e[6]:null}function ud(e,n,t){if(t&B.SkipSelf){let o=n,i=e;for(;!(o=o.parent,null!==o||t&B.Host||(o=Fy(i),null===o||(i=i[15],10&o.type))););if(null===o)return!1;n=o,e=i}const r=U.lFrame=dd();return r.currentTNode=n,r.lView=e,!0}function aa(e){const n=dd(),t=e[1];U.lFrame=n,n.currentTNode=t.firstChild,n.lView=e,n.tView=t,n.contextLView=e,n.bindingIndex=t.bindingStartIndex,n.inI18n=!1}function dd(){const e=U.lFrame,n=null===e?null:e.child;return null===n?fd(e):n}function fd(e){const n={currentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:-1,contextLView:null,elementDepthCount:0,currentNamespace:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:e,child:null,inI18n:!1};return null!==e&&(e.child=n),n}function hd(){const e=U.lFrame;return U.lFrame=e.parent,e.currentTNode=null,e.lView=null,e}const pd=hd;function la(){const e=hd();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 Ze(){return U.lFrame.selectedIndex}function An(e){U.lFrame.selectedIndex=e}function _e(){const e=U.lFrame;return td(e.tView,e.selectedIndex)}function ai(e,n){for(let t=n.directiveStart,r=n.directiveEnd;t=r)break}else n[l]<0&&(e[18]+=65536),(a>11>16&&(3&e[2])===n){e[2]+=2048;try{i.call(a)}finally{}}}else try{i.call(a)}finally{}}class Gr{constructor(n,t,r){this.factory=n,this.resolving=!1,this.canSeeViewProviders=t,this.injectImpl=r}}function da(e,n,t){let r=0;for(;rn){s=i-1;break}}}for(;i>16}(e),r=n;for(;t>0;)r=r[15],t--;return r}let fa=!0;function fi(e){const n=fa;return fa=e,n}let Gy=0;const Rt={};function hi(e,n){const t=bd(e,n);if(-1!==t)return t;const r=n[1];r.firstCreatePass&&(e.injectorIndex=n.length,ha(r.data,e),ha(n,null),ha(r.blueprint,null));const o=pa(e,n),i=e.injectorIndex;if(Cd(o)){const s=ui(o),a=di(o,n),l=a[1].data;for(let c=0;c<8;c++)n[i+c]=a[s+c]|l[s+c]}return n[i+8]=o,i}function ha(e,n){e.push(0,0,0,0,0,0,0,0,n)}function bd(e,n){return-1===e.injectorIndex||e.parent&&e.parent.injectorIndex===e.injectorIndex||null===n[e.injectorIndex+8]?-1:e.injectorIndex}function pa(e,n){if(e.parent&&-1!==e.parent.injectorIndex)return e.parent.injectorIndex;let t=0,r=null,o=n;for(;null!==o;){if(r=xd(o),null===r)return-1;if(t++,o=o[15],-1!==r.injectorIndex)return r.injectorIndex|t<<16}return-1}function ga(e,n,t){!function Wy(e,n,t){let r;"string"==typeof t?r=t.charCodeAt(0)||0:t.hasOwnProperty(Vr)&&(r=t[Vr]),null==r&&(r=t[Vr]=Gy++);const o=255&r;n.data[e+(o>>5)]|=1<=0?255&n:Yy:n}(t);if("function"==typeof i){if(!ud(n,e,r))return r&B.Host?Ed(o,0,r):Id(n,t,r,o);try{const s=i(r);if(null!=s||r&B.Optional)return s;Zo()}finally{pd()}}else if("number"==typeof i){let s=null,a=bd(e,n),l=-1,c=r&B.Host?n[16][6]:null;for((-1===a||r&B.SkipSelf)&&(l=-1===a?pa(e,n):n[a+8],-1!==l&&Td(r,!1)?(s=n[1],a=ui(l),n=di(l,n)):a=-1);-1!==a;){const u=n[1];if(Ad(i,a,u.data)){const d=Zy(a,n,t,s,r,c);if(d!==Rt)return d}l=n[a+8],-1!==l&&Td(r,n[1].data[a+8]===c)&&Ad(i,a,n)?(s=u,a=ui(l),n=di(l,n)):a=-1}}return o}function Zy(e,n,t,r,o,i){const s=n[1],a=s.data[e+8],u=function pi(e,n,t,r,o){const i=e.providerIndexes,s=n.data,a=1048575&i,l=e.directiveStart,u=i>>20,h=o?a+u:e.directiveEnd;for(let p=r?a:a+u;p=l&&m.type===t)return p}if(o){const p=s[l];if(p&&Ct(p)&&p.type===t)return l}return null}(a,s,t,null==r?Ur(a)&&fa:r!=s&&0!=(3&a.type),o&B.Host&&i===a);return null!==u?Tn(n,s,u,a):Rt}function Tn(e,n,t,r){let o=e[t];const i=n.data;if(function jy(e){return e instanceof Gr}(o)){const s=o;s.resolving&&function Gv(e,n){const t=n?`. Dependency path: ${n.join(" > ")} > ${e}`:"";throw new A(-200,`Circular dependency in DI detected for ${e}${t}`)}(function ne(e){return"function"==typeof e?e.name||e.toString():"object"==typeof e&&null!=e&&"function"==typeof e.type?e.type.name||e.type.toString():j(e)}(i[t]));const a=fi(s.canSeeViewProviders);s.resolving=!0;const l=s.injectImpl?dt(s.injectImpl):null;ud(e,r,B.Default);try{o=e[t]=s.factory(void 0,i,e,r),n.firstCreatePass&&t>=r.directiveStart&&function By(e,n,t){const{ngOnChanges:r,ngOnInit:o,ngDoCheck:i}=n.type.prototype;if(r){const s=Yu(n);(t.preOrderHooks||(t.preOrderHooks=[])).push(e,s),(t.preOrderCheckHooks||(t.preOrderCheckHooks=[])).push(e,s)}o&&(t.preOrderHooks||(t.preOrderHooks=[])).push(0-e,o),i&&((t.preOrderHooks||(t.preOrderHooks=[])).push(e,i),(t.preOrderCheckHooks||(t.preOrderCheckHooks=[])).push(e,i))}(t,i[t],n)}finally{null!==l&&dt(l),fi(a),s.resolving=!1,pd()}}return o}function Ad(e,n,t){return!!(t[n+(e>>5)]&1<{const n=e.prototype.constructor,t=n[zt]||ma(n),r=Object.prototype;let o=Object.getPrototypeOf(e.prototype).constructor;for(;o&&o!==r;){const i=o[zt]||ma(o);if(i&&i!==t)return i;o=Object.getPrototypeOf(o)}return i=>new i})}function ma(e){return Us(e)?()=>{const n=ma(P(e));return n&&n()}:Sn(e)}function xd(e){const n=e[1],t=n.type;return 2===t?n.declTNode:1===t?e[6]:null}const nr="__parameters__";function or(e,n,t){return sn(()=>{const r=function va(e){return function(...t){if(e){const r=e(...t);for(const o in r)this[o]=r[o]}}}(n);function o(...i){if(this instanceof o)return r.apply(this,i),this;const s=new o(...i);return a.annotation=s,a;function a(l,c,u){const d=l.hasOwnProperty(nr)?l[nr]:Object.defineProperty(l,nr,{value:[]})[nr];for(;d.length<=u;)d.push(null);return(d[u]=d[u]||[]).push(s),l}}return t&&(o.prototype=Object.create(t.prototype)),o.prototype.ngMetadataName=e,o.annotationCls=o,o})}class H{constructor(n,t){this._desc=n,this.ngMetadataName="InjectionToken",this.\u0275prov=void 0,"number"==typeof t?this.__NG_ELEMENT_ID__=t:void 0!==t&&(this.\u0275prov=de({token:this,providedIn:t.providedIn||"root",factory:t.factory}))}get multi(){return this}toString(){return`InjectionToken ${this._desc}`}}function xn(e,n){e.forEach(t=>Array.isArray(t)?xn(t,n):n(t))}function Fd(e,n,t){n>=e.length?e.push(t):e.splice(n,0,t)}function gi(e,n){return n>=e.length-1?e.pop():e.splice(n,1)[0]}function at(e,n,t){let r=ir(e,n);return r>=0?e[1|r]=t:(r=~r,function tC(e,n,t,r){let o=e.length;if(o==n)e.push(t,r);else if(1===o)e.push(r,e[0]),e[0]=t;else{for(o--,e.push(e[o-1],e[o]);o>n;)e[o]=e[o-2],o--;e[n]=t,e[n+1]=r}}(e,r,n,t)),r}function Ca(e,n){const t=ir(e,n);if(t>=0)return e[1|t]}function ir(e,n){return function Od(e,n,t){let r=0,o=e.length>>t;for(;o!==r;){const i=r+(o-r>>1),s=e[i<n?o=i:r=i+1}return~(o<((Xe=Xe||{})[Xe.Important=1]="Important",Xe[Xe.DashCase=2]="DashCase",Xe))();const Ma=new Map;let bC=0;const Aa="__ngContext__";function He(e,n){ot(n)?(e[Aa]=n[20],function IC(e){Ma.set(e[20],e)}(n)):e[Aa]=n}function xa(e,n){return undefined(e,n)}function Xr(e){const n=e[3];return yt(n)?n[3]:n}function Na(e){return Xd(e[13])}function Fa(e){return Xd(e[4])}function Xd(e){for(;null!==e&&!yt(e);)e=e[4];return e}function ar(e,n,t,r,o){if(null!=r){let i,s=!1;yt(r)?i=r:ot(r)&&(s=!0,r=r[0]);const a=Re(r);0===e&&null!==t?null==o?sf(n,t,a):Nn(n,t,a,o||null,!0):1===e&&null!==t?Nn(n,t,a,o||null,!0):2===e?function Ba(e,n,t){const r=Di(e,n);r&&function GC(e,n,t,r){e.removeChild(n,t,r)}(e,r,n,t)}(n,a,s):3===e&&n.destroyNode(a),null!=i&&function ZC(e,n,t,r,o){const i=t[7];i!==Re(t)&&ar(n,e,r,i,o);for(let a=10;a0&&(e[t-1][4]=r[4]);const i=gi(e,10+n);!function LC(e,n){eo(e,n,n[Z],2,null,null),n[0]=null,n[6]=null}(r[1],r);const s=i[19];null!==s&&s.detachView(i[1]),r[3]=null,r[4]=null,r[2]&=-65}return r}function nf(e,n){if(!(128&n[2])){const t=n[Z];t.destroyNode&&eo(e,n,t,3,null,null),function HC(e){let n=e[13];if(!n)return ka(e[1],e);for(;n;){let t=null;if(ot(n))t=n[13];else{const r=n[10];r&&(t=r)}if(!t){for(;n&&!n[4]&&n!==e;)ot(n)&&ka(n[1],n),n=n[3];null===n&&(n=e),ot(n)&&ka(n[1],n),t=n&&n[4]}n=t}}(n)}}function ka(e,n){if(!(128&n[2])){n[2]&=-65,n[2]|=128,function zC(e,n){let t;if(null!=e&&null!=(t=e.destroyHooks))for(let r=0;r=0?r[o=s]():r[o=-s].unsubscribe(),i+=2}else{const s=r[o=t[i+1]];t[i].call(s)}if(null!==r){for(let i=o+1;i-1){const{encapsulation:i}=e.data[r.directiveStart+o];if(i===xt.None||i===xt.Emulated)return null}return it(r,t)}}(e,n.parent,t)}function Nn(e,n,t,r,o){e.insertBefore(n,t,r,o)}function sf(e,n,t){e.appendChild(n,t)}function af(e,n,t,r,o){null!==r?Nn(e,n,t,r,o):sf(e,n,t)}function Di(e,n){return e.parentNode(n)}let $a,uf=function cf(e,n,t){return 40&e.type?it(e,t):null};function wi(e,n,t,r){const o=rf(e,r,n),i=n[Z],a=function lf(e,n,t){return uf(e,n,t)}(r.parent||n[6],r,n);if(null!=o)if(Array.isArray(t))for(let l=0;l((Me=Me||{})[Me.NONE=0]="NONE",Me[Me.HTML=1]="HTML",Me[Me.STYLE=2]="STYLE",Me[Me.SCRIPT=3]="SCRIPT",Me[Me.URL=4]="URL",Me[Me.RESOURCE_URL=5]="RESOURCE_URL",Me))();function un(e){const n=function ro(){const e=E();return e&&e[12]}();return n?n.sanitize(Me.URL,e)||"":function to(e,n){const t=function sD(e){return e instanceof Cf&&e.getTypeName()||null}(e);if(null!=t&&t!==n){if("ResourceURL"===t&&"URL"===n)return!0;throw new Error(`Required a safe ${n}, got a ${t} (see ${Ru})`)}return t===n}(e,"URL")?cn(e):function za(e){return(e=String(e)).match(uD)?e:"unsafe:"+e}(j(e))}const Af=new H("ENVIRONMENT_INITIALIZER"),Tf=new H("INJECTOR",-1),xf=new H("INJECTOR_DEF_TYPES");class Nf{get(n,t=Pr){if(t===Pr){const r=new Error(`NullInjectorError: No provider for ${le(n)}!`);throw r.name="NullInjectorError",r}return t}}function ED(...e){return{\u0275providers:Ff(0,e),\u0275fromNgModule:!0}}function Ff(e,...n){const t=[],r=new Set;let o;return xn(n,i=>{const s=i;Za(s,t,[],r)&&(o||(o=[]),o.push(s))}),void 0!==o&&Of(o,t),t}function Of(e,n){for(let t=0;t{n.push(i)})}}function Za(e,n,t,r){if(!(e=P(e)))return!1;let o=null,i=ku(e);const s=!i&&ie(e);if(i||s){if(s&&!s.standalone)return!1;o=e}else{const l=e.ngModule;if(i=ku(l),!i)return!1;o=l}const a=r.has(o);if(s){if(a)return!1;if(r.add(o),s.dependencies){const l="function"==typeof s.dependencies?s.dependencies():s.dependencies;for(const c of l)Za(c,n,t,r)}}else{if(!i)return!1;{if(null!=i.imports&&!a){let c;r.add(o);try{xn(i.imports,u=>{Za(u,n,t,r)&&(c||(c=[]),c.push(u))})}finally{}void 0!==c&&Of(c,n)}if(!a){const c=Sn(o)||(()=>new o);n.push({provide:o,useFactory:c,deps:te},{provide:xf,useValue:o,multi:!0},{provide:Af,useValue:()=>oe(o),multi:!0})}const l=i.providers;null==l||a||Qa(l,u=>{n.push(u)})}}return o!==e&&void 0!==e.providers}function Qa(e,n){for(let t of e)zs(t)&&(t=t.\u0275providers),Array.isArray(t)?Qa(t,n):n(t)}const ID=ae({provide:String,useValue:ae});function Ya(e){return null!==e&&"object"==typeof e&&ID in e}function On(e){return"function"==typeof e}const Ka=new H("Set Injector scope."),Si={},SD={};let Ja;function Ai(){return void 0===Ja&&(Ja=new Nf),Ja}class lr{}class kf extends lr{get destroyed(){return this._destroyed}constructor(n,t,r,o){super(),this.parent=t,this.source=r,this.scopes=o,this.records=new Map,this._ngOnDestroyHooks=new Set,this._onDestroyHooks=[],this._destroyed=!1,el(n,s=>this.processProvider(s)),this.records.set(Tf,cr(void 0,this)),o.has("environment")&&this.records.set(lr,cr(void 0,this));const i=this.records.get(Ka);null!=i&&"string"==typeof i.value&&this.scopes.add(i.value),this.injectorDefTypes=new Set(this.get(xf.multi,te,B.Self))}destroy(){this.assertNotDestroyed(),this._destroyed=!0;try{for(const n of this._ngOnDestroyHooks)n.ngOnDestroy();for(const n of this._onDestroyHooks)n()}finally{this.records.clear(),this._ngOnDestroyHooks.clear(),this.injectorDefTypes.clear(),this._onDestroyHooks.length=0}}onDestroy(n){this._onDestroyHooks.push(n)}runInContext(n){this.assertNotDestroyed();const t=Wn(this),r=dt(void 0);try{return n()}finally{Wn(t),dt(r)}}get(n,t=Pr,r=B.Default){this.assertNotDestroyed(),r=Jo(r);const o=Wn(this),i=dt(void 0);try{if(!(r&B.SkipSelf)){let a=this.records.get(n);if(void 0===a){const l=function FD(e){return"function"==typeof e||"object"==typeof e&&e instanceof H}(n)&&Qo(n);a=l&&this.injectableDefInScope(l)?cr(Xa(n),Si):null,this.records.set(n,a)}if(null!=a)return this.hydrate(n,a)}return(r&B.Self?Ai():this.parent).get(n,t=r&B.Optional&&t===Pr?null:t)}catch(s){if("NullInjectorError"===s.name){if((s[Ko]=s[Ko]||[]).unshift(le(n)),o)throw s;return function sy(e,n,t,r){const o=e[Ko];throw n[Bu]&&o.unshift(n[Bu]),e.message=function ay(e,n,t,r=null){e=e&&"\n"===e.charAt(0)&&"\u0275"==e.charAt(1)?e.slice(2):e;let o=le(n);if(Array.isArray(n))o=n.map(le).join(" -> ");else if("object"==typeof n){let i=[];for(let s in n)if(n.hasOwnProperty(s)){let a=n[s];i.push(s+":"+("string"==typeof a?JSON.stringify(a):le(a)))}o=`{${i.join(", ")}}`}return`${t}${r?"("+r+")":""}[${o}]: ${e.replace(ty,"\n ")}`}("\n"+e.message,o,t,r),e.ngTokenPath=o,e[Ko]=null,e}(s,n,"R3InjectorError",this.source)}throw s}finally{dt(i),Wn(o)}}resolveInjectorInitializers(){const n=Wn(this),t=dt(void 0);try{const r=this.get(Af.multi,te,B.Self);for(const o of r)o()}finally{Wn(n),dt(t)}}toString(){const n=[],t=this.records;for(const r of t.keys())n.push(le(r));return`R3Injector[${n.join(", ")}]`}assertNotDestroyed(){if(this._destroyed)throw new A(205,!1)}processProvider(n){let t=On(n=P(n))?n:P(n&&n.provide);const r=function TD(e){return Ya(e)?cr(void 0,e.useValue):cr(Lf(e),Si)}(n);if(On(n)||!0!==n.multi)this.records.get(t);else{let o=this.records.get(t);o||(o=cr(void 0,Si,!0),o.factory=()=>Zs(o.multi),this.records.set(t,o)),t=n,o.multi.push(n)}this.records.set(t,r)}hydrate(n,t){return t.value===Si&&(t.value=SD,t.value=t.factory()),"object"==typeof t.value&&t.value&&function ND(e){return null!==e&&"object"==typeof e&&"function"==typeof e.ngOnDestroy}(t.value)&&this._ngOnDestroyHooks.add(t.value),t.value}injectableDefInScope(n){if(!n.providedIn)return!1;const t=P(n.providedIn);return"string"==typeof t?"any"===t||this.scopes.has(t):this.injectorDefTypes.has(t)}}function Xa(e){const n=Qo(e),t=null!==n?n.factory:Sn(e);if(null!==t)return t;if(e instanceof H)throw new A(204,!1);if(e instanceof Function)return function AD(e){const n=e.length;if(n>0)throw function Qr(e,n){const t=[];for(let r=0;rt.factory(e):()=>new e}(e);throw new A(204,!1)}function Lf(e,n,t){let r;if(On(e)){const o=P(e);return Sn(o)||Xa(o)}if(Ya(e))r=()=>P(e.useValue);else if(function Pf(e){return!(!e||!e.useFactory)}(e))r=()=>e.useFactory(...Zs(e.deps||[]));else if(function Rf(e){return!(!e||!e.useExisting)}(e))r=()=>oe(P(e.useExisting));else{const o=P(e&&(e.useClass||e.provide));if(!function xD(e){return!!e.deps}(e))return Sn(o)||Xa(o);r=()=>new o(...Zs(e.deps))}return r}function cr(e,n,t=!1){return{factory:e,value:n,multi:t?[]:void 0}}function el(e,n){for(const t of e)Array.isArray(t)?el(t,n):t&&zs(t)?el(t.\u0275providers,n):n(t)}class OD{}class Vf{}class PD{resolveComponentFactory(n){throw function RD(e){const n=Error(`No component factory found for ${le(e)}. Did you add it to @NgModule.entryComponents?`);return n.ngComponent=e,n}(n)}}let Ti=(()=>{class e{}return e.NULL=new PD,e})();function kD(){return ur(Pe(),E())}function ur(e,n){return new Dt(it(e,n))}let Dt=(()=>{class e{constructor(t){this.nativeElement=t}}return e.__NG_ELEMENT_ID__=kD,e})();class Hf{}let Rn=(()=>{class e{}return e.__NG_ELEMENT_ID__=()=>function VD(){const e=E(),t=st(Pe().index,e);return(ot(t)?t:e)[Z]}(),e})(),BD=(()=>{class e{}return e.\u0275prov=de({token:e,providedIn:"root",factory:()=>null}),e})();class xi{constructor(n){this.full=n,this.major=n.split(".")[0],this.minor=n.split(".")[1],this.patch=n.split(".").slice(2).join(".")}}const HD=new xi("15.1.0"),tl={};function rl(e){return e.ngOriginalError}class dr{constructor(){this._console=console}handleError(n){const t=this._findOriginalError(n);this._console.error("ERROR",n),t&&this._console.error("ORIGINAL ERROR",t)}_findOriginalError(n){let t=n&&rl(n);for(;t&&rl(t);)t=rl(t);return t||null}}function ol(e){return e.ownerDocument.defaultView}function $f(e,n,t){let r=e.length;for(;;){const o=e.indexOf(n,t);if(-1===o)return o;if(0===o||e.charCodeAt(o-1)<=32){const i=n.length;if(o+i===r||e.charCodeAt(o+i)<=32)return o}t=o+1}}const Uf="ng-template";function YD(e,n,t){let r=0;for(;ri?"":o[d+1].toLowerCase();const p=8&r?h:null;if(p&&-1!==$f(p,c,0)||2&r&&c!==h){if(wt(r))return!1;s=!0}}}}else{if(!s&&!wt(r)&&!wt(l))return!1;if(s&&wt(l))continue;s=!1,r=l|1&r}}return wt(r)||s}function wt(e){return 0==(1&e)}function XD(e,n,t,r){if(null===n)return-1;let o=0;if(r||!t){let i=!1;for(;o-1)for(t++;t0?'="'+a+'"':"")+"]"}else 8&r?o+="."+s:4&r&&(o+=" "+s);else""!==o&&!wt(s)&&(n+=Wf(i,o),o=""),r=s,i=i||!wt(r);t++}return""!==o&&(n+=Wf(i,o)),n}const z={};function f(e){qf(ee(),E(),Ze()+e,!1)}function qf(e,n,t,r){if(!r)if(3==(3&n[2])){const i=e.preOrderCheckHooks;null!==i&&li(n,i,t)}else{const i=e.preOrderHooks;null!==i&&ci(n,i,0,t)}An(t)}function Kf(e,n=null,t=null,r){const o=Jf(e,n,t,r);return o.resolveInjectorInitializers(),o}function Jf(e,n=null,t=null,r,o=new Set){const i=[t||te,ED(e)];return r=r||("object"==typeof e?void 0:le(e)),new kf(i,n||Ai(),r||null,o)}let dn=(()=>{class e{static create(t,r){if(Array.isArray(t))return Kf({name:""},r,t,"");{const o=t.name??"";return Kf({name:o},t.parent,t.providers,o)}}}return e.THROW_IF_NOT_FOUND=Pr,e.NULL=new Nf,e.\u0275prov=de({token:e,providedIn:"any",factory:()=>oe(Tf)}),e.__NG_ELEMENT_ID__=-1,e})();function M(e,n=B.Default){const t=E();return null===t?oe(e,n):Md(Pe(),t,P(e),n)}function ih(e,n){const t=e.contentQueries;if(null!==t)for(let r=0;r22&&qf(e,n,22,!1),t(r,o)}finally{An(i)}}function dl(e,n,t){if(Xs(n)){const o=n.directiveEnd;for(let i=n.directiveStart;i0;){const t=e[--n];if("number"==typeof t&&t<0)return t}return 0})(s)!=a&&s.push(a),s.push(t,r,i)}}(e,n,r,oo(e,t,o.hostVars,z),o)}function Pt(e,n,t,r,o,i){const s=it(e,n);!function _l(e,n,t,r,o,i,s){if(null==i)e.removeAttribute(n,o,t);else{const a=null==s?j(i):s(i,r||"",o);e.setAttribute(n,o,a,t)}}(n[Z],s,i,e.value,t,r,o)}function Gw(e,n,t,r,o,i){const s=i[n];if(null!==s){const a=r.setInput;for(let l=0;l0&&vl(t)}}function vl(e){for(let r=Na(e);null!==r;r=Fa(r))for(let o=10;o0&&vl(i)}const t=e[1].components;if(null!==t)for(let r=0;r0&&vl(o)}}function Yw(e,n){const t=st(n,e),r=t[1];(function Kw(e,n){for(let t=n.length;t-1&&(Pa(n,r),gi(t,r))}this._attachedToViewContainer=!1}nf(this._lView[1],this._lView)}onDestroy(n){!function lh(e,n,t,r){const o=gh(n);null===t?o.push(r):(o.push(t),e.firstCreatePass&&mh(e).push(r,o.length-1))}(this._lView[1],this._lView,null,n)}markForCheck(){yl(this._cdRefInjectingView||this._lView)}detach(){this._lView[2]&=-65}reattach(){this._lView[2]|=64}detectChanges(){Pi(this._lView[1],this._lView,this.context)}checkNoChanges(){}attachToViewContainerRef(){if(this._appRef)throw new A(902,!1);this._attachedToViewContainer=!0}detachFromAppRef(){this._appRef=null,function BC(e,n){eo(e,n,n[Z],2,null,null)}(this._lView[1],this._lView)}attachToAppRef(n){if(this._attachedToViewContainer)throw new A(902,!1);this._appRef=n}}class Jw extends io{constructor(n){super(n),this._view=n}detectChanges(){const n=this._view;Pi(n[1],n,n[8],!1)}checkNoChanges(){}get context(){return null}}class yh extends Ti{constructor(n){super(),this.ngModule=n}resolveComponentFactory(n){const t=ie(n);return new so(t,this.ngModule)}}function Ch(e){const n=[];for(let t in e)e.hasOwnProperty(t)&&n.push({propName:e[t],templateName:t});return n}class eb{constructor(n,t){this.injector=n,this.parentInjector=t}get(n,t,r){r=Jo(r);const o=this.injector.get(n,tl,r);return o!==tl||t===tl?o:this.parentInjector.get(n,t,r)}}class so extends Vf{get inputs(){return Ch(this.componentDef.inputs)}get outputs(){return Ch(this.componentDef.outputs)}constructor(n,t){super(),this.componentDef=n,this.ngModule=t,this.componentType=n.type,this.selector=function iw(e){return e.map(ow).join(",")}(n.selectors),this.ngContentSelectors=n.ngContentSelectors?n.ngContentSelectors:[],this.isBoundToModule=!!t}create(n,t,r,o){let i=(o=o||this.ngModule)instanceof lr?o:o?.injector;i&&null!==this.componentDef.getStandaloneInjector&&(i=this.componentDef.getStandaloneInjector(i)||i);const s=i?new eb(n,i):n,a=s.get(Hf,null);if(null===a)throw new A(407,!1);const l=s.get(BD,null),c=a.createRenderer(null,this.componentDef),u=this.componentDef.selectors[0][0]||"div",d=r?function xw(e,n,t){return e.selectRootElement(n,t===xt.ShadowDom)}(c,r,this.componentDef.encapsulation):Ra(c,u,function Xw(e){const n=e.toLowerCase();return"svg"===n?"svg":"math"===n?"math":null}(u)),h=this.componentDef.onPush?288:272,p=pl(0,null,null,1,0,null,null,null,null,null),m=Fi(null,p,null,h,null,null,a,c,l,s,null);let D,I;aa(m);try{const S=this.componentDef;let O,b=null;S.findHostDirectiveDefs?(O=[],b=new Map,S.findHostDirectiveDefs(S,O,b),O.push(S)):O=[S];const V=function nb(e,n){const t=e[1];return e[22]=n,pr(t,22,2,"#host",null)}(m,d),ce=function rb(e,n,t,r,o,i,s,a){const l=o[1];!function ob(e,n,t,r){for(const o of e)n.mergedAttrs=Wr(n.mergedAttrs,o.hostAttrs);null!==n.mergedAttrs&&(ki(n,n.mergedAttrs,!0),null!==t&&gf(r,t,n))}(r,e,n,s);const c=i.createRenderer(n,t),u=Fi(o,ah(t),null,t.onPush?32:16,o[e.index],e,i,c,a||null,null,null);return l.firstCreatePass&&ml(l,e,r.length-1),Ri(o,u),o[e.index]=u}(V,d,S,O,m,a,c);I=td(p,22),d&&function sb(e,n,t,r){if(r)da(e,t,["ng-version",HD.full]);else{const{attrs:o,classes:i}=function sw(e){const n=[],t=[];let r=1,o=2;for(;r0&&pf(e,t,i.join(" "))}}(c,S,d,r),void 0!==t&&function ab(e,n,t){const r=e.projection=[];for(let o=0;o=0;r--){const o=e[r];o.hostVars=n+=o.hostVars,o.hostAttrs=Wr(o.hostAttrs,t=Wr(t,o.hostAttrs))}}(r)}function wl(e){return e===Ut?{}:e===te?[]:e}function ub(e,n){const t=e.viewQuery;e.viewQuery=t?(r,o)=>{n(r,o),t(r,o)}:n}function db(e,n){const t=e.contentQueries;e.contentQueries=t?(r,o,i)=>{n(r,o,i),t(r,o,i)}:n}function fb(e,n){const t=e.hostBindings;e.hostBindings=t?(r,o)=>{n(r,o),t(r,o)}:n}let Vi=null;function Pn(){if(!Vi){const e=fe.Symbol;if(e&&e.iterator)Vi=e.iterator;else{const n=Object.getOwnPropertyNames(Map.prototype);for(let t=0;ts(Re(V[r.index])):r.index;let b=null;if(!s&&a&&(b=function Sb(e,n,t,r){const o=e.cleanup;if(null!=o)for(let i=0;il?a[l]:null}"string"==typeof s&&(i+=2)}return null}(e,n,o,r.index)),null!==b)(b.__ngLastListenerFn__||b).__ngNextListenerFn__=i,b.__ngLastListenerFn__=i,h=!1;else{i=Hh(r,n,u,i,!1);const V=t.listen(I,o,i);d.push(i,V),c&&c.push(o,O,S,S+1)}}else i=Hh(r,n,u,i,!1);const p=r.outputs;let m;if(h&&null!==p&&(m=p[o])){const D=m.length;if(D)for(let I=0;I-1?st(e.index,n):n);let l=Bh(n,0,r,s),c=i.__ngNextListenerFn__;for(;c;)l=Bh(n,0,c,s)&&l,c=c.__ngNextListenerFn__;return o&&!1===l&&(s.preventDefault(),s.returnValue=!1),l}}function _(e=1){return function Oy(e){return(U.lFrame.contextLView=function Ry(e,n){for(;e>0;)n=n[15],e--;return n}(e,U.lFrame.contextLView))[8]}(e)}function fn(e,n,t){return Il(e,"",n,"",t),fn}function Il(e,n,t,r,o){const i=E(),s=mr(i,n,t,r);return s!==z&<(ee(),_e(),i,e,s,i[Z],o,!1),Il}function ji(e,n){return e<<17|n<<2}function hn(e){return e>>17&32767}function Ml(e){return 2|e}function Ln(e){return(131068&e)>>2}function Sl(e,n){return-131069&e|n<<2}function Al(e){return 1|e}function Qh(e,n,t,r,o){const i=e[t+1],s=null===n;let a=r?hn(i):Ln(i),l=!1;for(;0!==a&&(!1===l||s);){const u=e[a+1];kb(e[a],n)&&(l=!0,e[a+1]=r?Al(u):Ml(u)),a=r?hn(u):Ln(u)}l&&(e[t+1]=r?Ml(i):Al(i))}function kb(e,n){return null===e||null==n||(Array.isArray(e)?e[1]:e)===n||!(!Array.isArray(e)||"string"!=typeof n)&&ir(e,n)>=0}const xe={textEnd:0,key:0,keyEnd:0,value:0,valueEnd:0};function Yh(e){return e.substring(xe.key,xe.keyEnd)}function Kh(e,n){const t=xe.textEnd;return t===n?-1:(n=xe.keyEnd=function Hb(e,n,t){for(;n32;)n++;return n}(e,xe.key=n,t),Er(e,n,t))}function Er(e,n,t){for(;n=0;t=Kh(n,t))at(e,Yh(n),!0)}function rp(e,n){return n>=e.expandoStartIndex}function op(e,n,t,r){const o=e.data;if(null===o[t+1]){const i=o[Ze()],s=rp(e,t);lp(i,r)&&null===n&&!s&&(n=!1),n=function Gb(e,n,t,r){const o=function ia(e){const n=U.lFrame.currentDirectiveIndex;return-1===n?null:e[n]}(e);let i=r?n.residualClasses:n.residualStyles;if(null===o)0===(r?n.classBindings:n.styleBindings)&&(t=co(t=Tl(null,e,n,t,r),n.attrs,r),i=null);else{const s=n.directiveStylingLast;if(-1===s||e[s]!==o)if(t=Tl(o,e,n,t,r),null===i){let l=function Wb(e,n,t){const r=t?n.classBindings:n.styleBindings;if(0!==Ln(r))return e[hn(r)]}(e,n,r);void 0!==l&&Array.isArray(l)&&(l=Tl(null,e,n,l[1],r),l=co(l,n.attrs,r),function qb(e,n,t,r){e[hn(t?n.classBindings:n.styleBindings)]=r}(e,n,r,l))}else i=function Zb(e,n,t){let r;const o=n.directiveEnd;for(let i=1+n.directiveStylingLast;i0)&&(c=!0)):u=t,o)if(0!==l){const h=hn(e[a+1]);e[r+1]=ji(h,a),0!==h&&(e[h+1]=Sl(e[h+1],r)),e[a+1]=function Fb(e,n){return 131071&e|n<<17}(e[a+1],r)}else e[r+1]=ji(a,0),0!==a&&(e[a+1]=Sl(e[a+1],r)),a=r;else e[r+1]=ji(l,0),0===a?a=r:e[l+1]=Sl(e[l+1],r),l=r;c&&(e[r+1]=Ml(e[r+1])),Qh(e,u,r,!0),Qh(e,u,r,!1),function Pb(e,n,t,r,o){const i=o?e.residualClasses:e.residualStyles;null!=i&&"string"==typeof n&&ir(i,n)>=0&&(t[r+1]=Al(t[r+1]))}(n,u,e,r,i),s=ji(a,l),i?n.classBindings=s:n.styleBindings=s}(o,i,n,t,s,r)}}function Tl(e,n,t,r,o){let i=null;const s=t.directiveEnd;let a=t.directiveStylingLast;for(-1===a?a=t.directiveStart:a++;a0;){const l=e[o],c=Array.isArray(l),u=c?l[1]:l,d=null===u;let h=t[o+1];h===z&&(h=d?te:void 0);let p=d?Ca(h,r):u===r?h:void 0;if(c&&!Ui(p)&&(p=Ca(l,r)),Ui(p)&&(a=p,s))return a;const m=e[o+1];o=s?hn(m):Ln(m)}if(null!==n){let l=i?n.residualClasses:n.residualStyles;null!=l&&(a=Ca(l,r))}return a}function Ui(e){return void 0!==e}function lp(e,n){return 0!=(e.flags&(n?8:16))}function w(e,n=""){const t=E(),r=ee(),o=e+22,i=r.firstCreatePass?pr(r,o,1,n,null):r.data[o],s=t[o]=function Oa(e,n){return e.createText(n)}(t[Z],n);wi(r,t,s,i),Ot(i,!1)}function F(e){return G("",e,""),F}function G(e,n,t){const r=E(),o=mr(r,e,n,t);return o!==z&&function Kt(e,n,t){const r=ii(n,e);!function ef(e,n,t){e.setValue(n,t)}(e[Z],r,t)}(r,Ze(),o),G}function Bt(e,n,t){!function It(e,n,t,r){const o=ee(),i=Zt(2);o.firstUpdatePass&&op(o,null,i,r);const s=E();if(t!==z&&je(s,i,t)){const a=o.data[Ze()];if(lp(a,r)&&!rp(o,i)){let l=r?a.classesWithoutHost:a.stylesWithoutHost;null!==l&&(t=$s(l,t||"")),El(o,a,s,t,r)}else!function Yb(e,n,t,r,o,i,s,a){o===z&&(o=te);let l=0,c=0,u=0>20;if(On(e)||!e.multi){const p=new Gr(l,o,M),m=Rl(a,n,o?u:u+h,d);-1===m?(ga(hi(c,s),i,a),Ol(i,e,n.length),n.push(a),c.directiveStart++,c.directiveEnd++,o&&(c.providerIndexes+=1048576),t.push(p),s.push(p)):(t[m]=p,s[m]=p)}else{const p=Rl(a,n,u+h,d),m=Rl(a,n,u,u+h),I=m>=0&&t[m];if(o&&!I||!o&&!(p>=0&&t[p])){ga(hi(c,s),i,a);const S=function gE(e,n,t,r,o){const i=new Gr(e,t,M);return i.multi=[],i.index=n,i.componentProviders=0,tg(i,o,r&&!t),i}(o?pE:hE,t.length,o,r,l);!o&&I&&(t[m].providerFactory=S),Ol(i,e,n.length,0),n.push(a),c.directiveStart++,c.directiveEnd++,o&&(c.providerIndexes+=1048576),t.push(S),s.push(S)}else Ol(i,e,p>-1?p:m,tg(t[o?m:p],l,!o&&r));!o&&r&&I&&t[m].componentProviders++}}}function Ol(e,n,t,r){const o=On(n),i=function MD(e){return!!e.useClass}(n);if(o||i){const l=(i?P(n.useClass):n).prototype.ngOnDestroy;if(l){const c=e.destroyHooks||(e.destroyHooks=[]);if(!o&&n.multi){const u=c.indexOf(t);-1===u?c.push(t,[r,l]):c[u+1].push(r,l)}else c.push(t,l)}}}function tg(e,n,t){return t&&e.componentProviders++,e.multi.push(n)-1}function Rl(e,n,t,r){for(let o=t;o{t.providersResolver=(r,o)=>function fE(e,n,t){const r=ee();if(r.firstCreatePass){const o=Ct(e);Fl(t,r.data,r.blueprint,o,!0),Fl(n,r.data,r.blueprint,o,!1)}}(r,o?o(e):e,n)}}class Sr{}class mE{}class ng extends Sr{constructor(n,t){super(),this._parent=t,this._bootstrapComponents=[],this.destroyCbs=[],this.componentFactoryResolver=new yh(this);const r=function rt(e,n){const t=e[ju]||null;if(!t&&!0===n)throw new Error(`Type ${le(e)} does not have '\u0275mod' property.`);return t}(n);this._bootstrapComponents=function Yt(e){return e instanceof Function?e():e}(r.bootstrap),this._r3Injector=Jf(n,t,[{provide:Sr,useValue:this},{provide:Ti,useValue:this.componentFactoryResolver}],le(n),new Set(["environment"])),this._r3Injector.resolveInjectorInitializers(),this.instance=this._r3Injector.get(n)}get injector(){return this._r3Injector}destroy(){const n=this._r3Injector;!n.destroyed&&n.destroy(),this.destroyCbs.forEach(t=>t()),this.destroyCbs=null}onDestroy(n){this.destroyCbs.push(n)}}class kl extends mE{constructor(n){super(),this.moduleType=n}create(n){return new ng(this.moduleType,n)}}function Zi(e,n,t,r){return function ug(e,n,t,r,o,i){const s=n+t;return je(e,s,o)?kt(e,s+1,i?r.call(i,o):r(o)):mo(e,s+1)}(E(),qe(),e,n,t,r)}function Vl(e,n,t,r,o){return function dg(e,n,t,r,o,i,s){const a=n+t;return kn(e,a,o,i)?kt(e,a+2,s?r.call(s,o,i):r(o,i)):mo(e,a+2)}(E(),qe(),e,n,t,r,o)}function Oe(e,n,t,r,o,i){return fg(E(),qe(),e,n,t,r,o,i)}function mo(e,n){const t=e[n];return t===z?void 0:t}function fg(e,n,t,r,o,i,s,a){const l=n+t;return function Bi(e,n,t,r,o){const i=kn(e,n,t,r);return je(e,n+2,o)||i}(e,l,o,i,s)?kt(e,l+3,a?r.call(a,o,i,s):r(o,i,s)):mo(e,l+3)}function Bl(e){return n=>{setTimeout(e,void 0,n)}}const be=class jE extends Rs{constructor(n=!1){super(),this.__isAsync=n}emit(n){super.next(n)}subscribe(n,t,r){let o=n,i=t||(()=>null),s=r;if(n&&"object"==typeof n){const l=n;o=l.next?.bind(l),i=l.error?.bind(l),s=l.complete?.bind(l)}this.__isAsync&&(i=Bl(i),o&&(o=Bl(o)),s&&(s=Bl(s)));const a=super.subscribe({next:o,error:i,complete:s});return n instanceof Tt&&n.add(a),a}};let Jt=(()=>{class e{}return e.__NG_ELEMENT_ID__=GE,e})();const UE=Jt,zE=class extends UE{constructor(n,t,r){super(),this._declarationLView=n,this._declarationTContainer=t,this.elementRef=r}createEmbeddedView(n,t){const r=this._declarationTContainer.tViews,o=Fi(this._declarationLView,r,n,16,null,r.declTNode,null,null,null,null,t||null);o[17]=this._declarationLView[this._declarationTContainer.index];const s=this._declarationLView[19];return null!==s&&(o[19]=s.createEmbeddedView(r)),ul(r,o,n),new io(o)}};function GE(){return function Qi(e,n){return 4&e.type?new zE(n,e,ur(e,n)):null}(Pe(),E())}let Ht=(()=>{class e{}return e.__NG_ELEMENT_ID__=WE,e})();function WE(){return function yg(e,n){let t;const r=n[e.index];if(yt(r))t=r;else{let o;if(8&e.type)o=Re(r);else{const i=n[Z];o=i.createComment("");const s=it(e,n);Nn(i,Di(i,s),o,function WC(e,n){return e.nextSibling(n)}(i,s),!1)}n[e.index]=t=ph(r,n,o,e),Ri(n,t)}return new _g(t,e,n)}(Pe(),E())}const qE=Ht,_g=class extends qE{constructor(n,t,r){super(),this._lContainer=n,this._hostTNode=t,this._hostLView=r}get element(){return ur(this._hostTNode,this._hostLView)}get injector(){return new er(this._hostTNode,this._hostLView)}get parentInjector(){const n=pa(this._hostTNode,this._hostLView);if(Cd(n)){const t=di(n,this._hostLView),r=ui(n);return new er(t[1].data[r+8],t)}return new er(null,this._hostLView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(n){const t=vg(this._lContainer);return null!==t&&t[n]||null}get length(){return this._lContainer.length-10}createEmbeddedView(n,t,r){let o,i;"number"==typeof r?o=r:null!=r&&(o=r.index,i=r.injector);const s=n.createEmbeddedView(t||{},i);return this.insert(s,o),s}createComponent(n,t,r,o,i){const s=n&&!function Zr(e){return"function"==typeof e}(n);let a;if(s)a=t;else{const d=t||{};a=d.index,r=d.injector,o=d.projectableNodes,i=d.environmentInjector||d.ngModuleRef}const l=s?n:new so(ie(n)),c=r||this.parentInjector;if(!i&&null==l.ngModule){const h=(s?c:this.parentInjector).get(lr,null);h&&(i=h)}const u=l.create(c,o,void 0,i);return this.insert(u.hostView,a),u}insert(n,t){const r=n._lView,o=r[1];if(function wy(e){return yt(e[3])}(r)){const u=this.indexOf(n);if(-1!==u)this.detach(u);else{const d=r[3],h=new _g(d,d[6],d[3]);h.detach(h.indexOf(n))}}const i=this._adjustIndex(t),s=this._lContainer;!function jC(e,n,t,r){const o=10+r,i=t.length;r>0&&(t[o-1][4]=n),r{class e{constructor(t){this.appInits=t,this.resolve=Ki,this.reject=Ki,this.initialized=!1,this.done=!1,this.donePromise=new Promise((r,o)=>{this.resolve=r,this.reject=o})}runInitializers(){if(this.initialized)return;const t=[],r=()=>{this.done=!0,this.resolve()};if(this.appInits)for(let o=0;o{i.subscribe({complete:a,error:l})});t.push(s)}}Promise.all(t).then(()=>{r()}).catch(o=>{this.reject(o)}),0===t.length&&r(),this.initialized=!0}}return e.\u0275fac=function(t){return new(t||e)(oe(Ug,8))},e.\u0275prov=de({token:e,factory:e.\u0275fac,providedIn:"root"}),e})();const yo=new H("AppId",{providedIn:"root",factory:function zg(){return`${Kl()}${Kl()}${Kl()}`}});function Kl(){return String.fromCharCode(97+Math.floor(25*Math.random()))}const Gg=new H("Platform Initializer"),Wg=new H("Platform ID",{providedIn:"platform",factory:()=>"unknown"}),E1=new H("appBootstrapListener"),Xt=new H("LocaleId",{providedIn:"root",factory:()=>function oy(e,n=B.Default){return oe(e,Jo(n))}(Xt,B.Optional|B.SkipSelf)||function I1(){return typeof $localize<"u"&&$localize.locale||Mr}()}),x1=(()=>Promise.resolve(0))();function Jl(e){typeof Zone>"u"?x1.then(()=>{e&&e.apply(null,null)}):Zone.current.scheduleMicroTask("scheduleMicrotask",e)}class $e{constructor({enableLongStackTrace:n=!1,shouldCoalesceEventChangeDetection:t=!1,shouldCoalesceRunChangeDetection:r=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new be(!1),this.onMicrotaskEmpty=new be(!1),this.onStable=new be(!1),this.onError=new be(!1),typeof Zone>"u")throw new A(908,!1);Zone.assertZonePatched();const o=this;o._nesting=0,o._outer=o._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(o._inner=o._inner.fork(new Zone.TaskTrackingZoneSpec)),n&&Zone.longStackTraceZoneSpec&&(o._inner=o._inner.fork(Zone.longStackTraceZoneSpec)),o.shouldCoalesceEventChangeDetection=!r&&t,o.shouldCoalesceRunChangeDetection=r,o.lastRequestAnimationFrameId=-1,o.nativeRequestAnimationFrame=function N1(){let e=fe.requestAnimationFrame,n=fe.cancelAnimationFrame;if(typeof Zone<"u"&&e&&n){const t=e[Zone.__symbol__("OriginalDelegate")];t&&(e=t);const r=n[Zone.__symbol__("OriginalDelegate")];r&&(n=r)}return{nativeRequestAnimationFrame:e,nativeCancelAnimationFrame:n}}().nativeRequestAnimationFrame,function R1(e){const n=()=>{!function O1(e){e.isCheckStableRunning||-1!==e.lastRequestAnimationFrameId||(e.lastRequestAnimationFrameId=e.nativeRequestAnimationFrame.call(fe,()=>{e.fakeTopEventTask||(e.fakeTopEventTask=Zone.root.scheduleEventTask("fakeTopEventTask",()=>{e.lastRequestAnimationFrameId=-1,ec(e),e.isCheckStableRunning=!0,Xl(e),e.isCheckStableRunning=!1},void 0,()=>{},()=>{})),e.fakeTopEventTask.invoke()}),ec(e))}(e)};e._inner=e._inner.fork({name:"angular",properties:{isAngularZone:!0},onInvokeTask:(t,r,o,i,s,a)=>{try{return Qg(e),t.invokeTask(o,i,s,a)}finally{(e.shouldCoalesceEventChangeDetection&&"eventTask"===i.type||e.shouldCoalesceRunChangeDetection)&&n(),Yg(e)}},onInvoke:(t,r,o,i,s,a,l)=>{try{return Qg(e),t.invoke(o,i,s,a,l)}finally{e.shouldCoalesceRunChangeDetection&&n(),Yg(e)}},onHasTask:(t,r,o,i)=>{t.hasTask(o,i),r===o&&("microTask"==i.change?(e._hasPendingMicrotasks=i.microTask,ec(e),Xl(e)):"macroTask"==i.change&&(e.hasPendingMacrotasks=i.macroTask))},onHandleError:(t,r,o,i)=>(t.handleError(o,i),e.runOutsideAngular(()=>e.onError.emit(i)),!1)})}(o)}static isInAngularZone(){return typeof Zone<"u"&&!0===Zone.current.get("isAngularZone")}static assertInAngularZone(){if(!$e.isInAngularZone())throw new A(909,!1)}static assertNotInAngularZone(){if($e.isInAngularZone())throw new A(909,!1)}run(n,t,r){return this._inner.run(n,t,r)}runTask(n,t,r,o){const i=this._inner,s=i.scheduleEventTask("NgZoneEvent: "+o,n,F1,Ki,Ki);try{return i.runTask(s,t,r)}finally{i.cancelTask(s)}}runGuarded(n,t,r){return this._inner.runGuarded(n,t,r)}runOutsideAngular(n){return this._outer.run(n)}}const F1={};function Xl(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 ec(e){e.hasPendingMicrotasks=!!(e._hasPendingMicrotasks||(e.shouldCoalesceEventChangeDetection||e.shouldCoalesceRunChangeDetection)&&-1!==e.lastRequestAnimationFrameId)}function Qg(e){e._nesting++,e.isStable&&(e.isStable=!1,e.onUnstable.emit(null))}function Yg(e){e._nesting--,Xl(e)}class P1{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new be,this.onMicrotaskEmpty=new be,this.onStable=new be,this.onError=new be}run(n,t,r){return n.apply(t,r)}runGuarded(n,t,r){return n.apply(t,r)}runOutsideAngular(n){return n()}runTask(n,t,r,o){return n.apply(t,r)}}const Kg=new H(""),Xi=new H("");let rc,tc=(()=>{class e{constructor(t,r,o){this._ngZone=t,this.registry=r,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,rc||(function k1(e){rc=e}(o),o.addToWindow(r)),this._watchAngularEvents(),t.run(()=>{this.taskTrackingZone=typeof Zone>"u"?null:Zone.current.get("TaskTrackingZone")})}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._didWork=!0,this._isZoneStable=!1}}),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.subscribe({next:()=>{$e.assertNotInAngularZone(),Jl(()=>{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())Jl(()=>{for(;0!==this._callbacks.length;){let t=this._callbacks.pop();clearTimeout(t.timeoutId),t.doneCb(this._didWork)}this._didWork=!1});else{let t=this.getPendingTasks();this._callbacks=this._callbacks.filter(r=>!r.updateCb||!r.updateCb(t)||(clearTimeout(r.timeoutId),!1)),this._didWork=!0}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(t=>({source:t.source,creationLocation:t.creationLocation,data:t.data})):[]}addCallback(t,r,o){let i=-1;r&&r>0&&(i=setTimeout(()=>{this._callbacks=this._callbacks.filter(s=>s.timeoutId!==i),t(this._didWork,this.getPendingTasks())},r)),this._callbacks.push({doneCb:t,timeoutId:i,updateCb:o})}whenStable(t,r,o){if(o&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is "zone.js/plugins/task-tracking" loaded?');this.addCallback(t,r,o),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}registerApplication(t){this.registry.registerApplication(t,this)}unregisterApplication(t){this.registry.unregisterApplication(t)}findProviders(t,r,o){return[]}}return e.\u0275fac=function(t){return new(t||e)(oe($e),oe(nc),oe(Xi))},e.\u0275prov=de({token:e,factory:e.\u0275fac}),e})(),nc=(()=>{class e{constructor(){this._applications=new Map}registerApplication(t,r){this._applications.set(t,r)}unregisterApplication(t){this._applications.delete(t)}unregisterAllApplications(){this._applications.clear()}getTestability(t){return this._applications.get(t)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(t,r=!0){return rc?.findTestabilityInTree(this,t,r)??null}}return e.\u0275fac=function(t){return new(t||e)},e.\u0275prov=de({token:e,factory:e.\u0275fac,providedIn:"platform"}),e})(),pn=null;const Jg=new H("AllowMultipleToken"),oc=new H("PlatformDestroyListeners");function em(e,n,t=[]){const r=`Platform: ${n}`,o=new H(r);return(i=[])=>{let s=ic();if(!s||s.injector.get(Jg,!1)){const a=[...t,...i,{provide:o,useValue:!0}];e?e(a):function B1(e){if(pn&&!pn.get(Jg,!1))throw new A(400,!1);pn=e;const n=e.get(nm);(function Xg(e){const n=e.get(Gg,null);n&&n.forEach(t=>t())})(e)}(function tm(e=[],n){return dn.create({name:n,providers:[{provide:Ka,useValue:"platform"},{provide:oc,useValue:new Set([()=>pn=null])},...e]})}(a,r))}return function j1(e){const n=ic();if(!n)throw new A(401,!1);return n}()}}function ic(){return pn?.get(nm)??null}let nm=(()=>{class e{constructor(t){this._injector=t,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(t,r){const o=function om(e,n){let t;return t="noop"===e?new P1:("zone.js"===e?void 0:e)||new $e(n),t}(r?.ngZone,function rm(e){return{enableLongStackTrace:!1,shouldCoalesceEventChangeDetection:!(!e||!e.ngZoneEventCoalescing)||!1,shouldCoalesceRunChangeDetection:!(!e||!e.ngZoneRunCoalescing)||!1}}(r)),i=[{provide:$e,useValue:o}];return o.run(()=>{const s=dn.create({providers:i,parent:this.injector,name:t.moduleType.name}),a=t.create(s),l=a.injector.get(dr,null);if(!l)throw new A(402,!1);return o.runOutsideAngular(()=>{const c=o.onError.subscribe({next:u=>{l.handleError(u)}});a.onDestroy(()=>{es(this._modules,a),c.unsubscribe()})}),function im(e,n,t){try{const r=t();return Hi(r)?r.catch(o=>{throw n.runOutsideAngular(()=>e.handleError(o)),o}):r}catch(r){throw n.runOutsideAngular(()=>e.handleError(r)),r}}(l,o,()=>{const c=a.injector.get(Ji);return c.runInitializers(),c.donePromise.then(()=>(function Np(e){ut(e,"Expected localeId to be defined"),"string"==typeof e&&(xp=e.toLowerCase().replace(/_/g,"-"))}(a.injector.get(Xt,Mr)||Mr),this._moduleDoBootstrap(a),a))})})}bootstrapModule(t,r=[]){const o=sm({},r);return function L1(e,n,t){const r=new kl(t);return Promise.resolve(r)}(0,0,t).then(i=>this.bootstrapModuleFactory(i,o))}_moduleDoBootstrap(t){const r=t.injector.get(sc);if(t._bootstrapComponents.length>0)t._bootstrapComponents.forEach(o=>r.bootstrap(o));else{if(!t.instance.ngDoBootstrap)throw new A(-403,!1);t.instance.ngDoBootstrap(r)}this._modules.push(t)}onDestroy(t){this._destroyListeners.push(t)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new A(404,!1);this._modules.slice().forEach(r=>r.destroy()),this._destroyListeners.forEach(r=>r());const t=this._injector.get(oc,null);t&&(t.forEach(r=>r()),t.clear()),this._destroyed=!0}get destroyed(){return this._destroyed}}return e.\u0275fac=function(t){return new(t||e)(oe(dn))},e.\u0275prov=de({token:e,factory:e.\u0275fac,providedIn:"platform"}),e})();function sm(e,n){return Array.isArray(n)?n.reduce(sm,e):{...e,...n}}let sc=(()=>{class e{get destroyed(){return this._destroyed}get injector(){return this._injector}constructor(t,r,o){this._zone=t,this._injector=r,this._exceptionHandler=o,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._stable=!0,this._destroyed=!1,this._destroyListeners=[],this.componentTypes=[],this.components=[],this._onMicrotaskEmptySubscription=this._zone.onMicrotaskEmpty.subscribe({next:()=>{this._zone.run(()=>{this.tick()})}});const i=new ze(a=>{this._stable=this._zone.isStable&&!this._zone.hasPendingMacrotasks&&!this._zone.hasPendingMicrotasks,this._zone.runOutsideAngular(()=>{a.next(this._stable),a.complete()})}),s=new ze(a=>{let l;this._zone.runOutsideAngular(()=>{l=this._zone.onStable.subscribe(()=>{$e.assertNotInAngularZone(),Jl(()=>{!this._stable&&!this._zone.hasPendingMacrotasks&&!this._zone.hasPendingMicrotasks&&(this._stable=!0,a.next(!0))})})});const c=this._zone.onUnstable.subscribe(()=>{$e.assertInAngularZone(),this._stable&&(this._stable=!1,this._zone.runOutsideAngular(()=>{a.next(!1)}))});return()=>{l.unsubscribe(),c.unsubscribe()}});this.isStable=jv(i,s.pipe(function Uv(e={}){const{connector:n=(()=>new Rs),resetOnError:t=!0,resetOnComplete:r=!0,resetOnRefCountZero:o=!0}=e;return i=>{let s=null,a=null,l=null,c=0,u=!1,d=!1;const h=()=>{a?.unsubscribe(),a=null},p=()=>{h(),s=l=null,u=d=!1},m=()=>{const D=s;p(),D?.unsubscribe()};return zn((D,I)=>{c++,!d&&!u&&h();const S=l=l??n();I.add(()=>{c--,0===c&&!d&&!u&&(a=Hs(m,o))}),S.subscribe(I),s||(s=new xs({next:O=>S.next(O),error:O=>{d=!0,h(),a=Hs(p,t,O),S.error(O)},complete:()=>{u=!0,h(),a=Hs(p,r),S.complete()}}),Bs(D).subscribe(s))})(i)}}()))}bootstrap(t,r){const o=t instanceof Vf;if(!this._injector.get(Ji).done)throw!o&&function Br(e){const n=ie(e)||ke(e)||Ge(e);return null!==n&&n.standalone}(t),new A(405,false);let s;s=o?t:this._injector.get(Ti).resolveComponentFactory(t),this.componentTypes.push(s.componentType);const a=function V1(e){return e.isBoundToModule}(s)?void 0:this._injector.get(Sr),c=s.create(dn.NULL,[],r||s.selector,a),u=c.location.nativeElement,d=c.injector.get(Kg,null);return d?.registerApplication(u),c.onDestroy(()=>{this.detachView(c.hostView),es(this.components,c),d?.unregisterApplication(u)}),this._loadComponent(c),c}tick(){if(this._runningTick)throw new A(101,!1);try{this._runningTick=!0;for(let t of this._views)t.detectChanges()}catch(t){this._zone.runOutsideAngular(()=>this._exceptionHandler.handleError(t))}finally{this._runningTick=!1}}attachView(t){const r=t;this._views.push(r),r.attachToAppRef(this)}detachView(t){const r=t;es(this._views,r),r.detachFromAppRef()}_loadComponent(t){this.attachView(t.hostView),this.tick(),this.components.push(t);const r=this._injector.get(E1,[]);r.push(...this._bootstrapListeners),r.forEach(o=>o(t))}ngOnDestroy(){if(!this._destroyed)try{this._destroyListeners.forEach(t=>t()),this._views.slice().forEach(t=>t.destroy()),this._onMicrotaskEmptySubscription.unsubscribe()}finally{this._destroyed=!0,this._views=[],this._bootstrapListeners=[],this._destroyListeners=[]}}onDestroy(t){return this._destroyListeners.push(t),()=>es(this._destroyListeners,t)}destroy(){if(this._destroyed)throw new A(406,!1);const t=this._injector;t.destroy&&!t.destroyed&&t.destroy()}get viewCount(){return this._views.length}warnIfDestroyed(){}}return e.\u0275fac=function(t){return new(t||e)(oe($e),oe(lr),oe(dr))},e.\u0275prov=de({token:e,factory:e.\u0275fac,providedIn:"root"}),e})();function es(e,n){const t=e.indexOf(n);t>-1&&e.splice(t,1)}let cm=(()=>{class e{}return e.__NG_ELEMENT_ID__=U1,e})();function U1(e){return function z1(e,n,t){if(Ur(e)&&!t){const r=st(e.index,n);return new io(r,r)}return 47&e.type?new io(n[16],n):null}(Pe(),E(),16==(16&e))}class fm{constructor(){}supports(n){return ao(n)}create(n){return new Y1(n)}}const Q1=(e,n)=>n;class Y1{constructor(n){this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=n||Q1}forEachItem(n){let t;for(t=this._itHead;null!==t;t=t._next)n(t)}forEachOperation(n){let t=this._itHead,r=this._removalsHead,o=0,i=null;for(;t||r;){const s=!r||t&&t.currentIndex{s=this._trackByFn(o,a),null!==t&&Object.is(t.trackById,s)?(r&&(t=this._verifyReinsertion(t,a,s,o)),Object.is(t.item,a)||this._addIdentityChange(t,a)):(t=this._mismatch(t,a,s,o),r=!0),t=t._next,o++}),this.length=o;return this._truncate(t),this.collection=n,this.isDirty}get isDirty(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}_reset(){if(this.isDirty){let n;for(n=this._previousItHead=this._itHead;null!==n;n=n._next)n._nextPrevious=n._next;for(n=this._additionsHead;null!==n;n=n._nextAdded)n.previousIndex=n.currentIndex;for(this._additionsHead=this._additionsTail=null,n=this._movesHead;null!==n;n=n._nextMoved)n.previousIndex=n.currentIndex;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(n,t,r,o){let i;return null===n?i=this._itTail:(i=n._prev,this._remove(n)),null!==(n=null===this._unlinkedRecords?null:this._unlinkedRecords.get(r,null))?(Object.is(n.item,t)||this._addIdentityChange(n,t),this._reinsertAfter(n,i,o)):null!==(n=null===this._linkedRecords?null:this._linkedRecords.get(r,o))?(Object.is(n.item,t)||this._addIdentityChange(n,t),this._moveAfter(n,i,o)):n=this._addAfter(new K1(t,r),i,o),n}_verifyReinsertion(n,t,r,o){let i=null===this._unlinkedRecords?null:this._unlinkedRecords.get(r,null);return null!==i?n=this._reinsertAfter(i,n._prev,o):n.currentIndex!=o&&(n.currentIndex=o,this._addToMoves(n,o)),n}_truncate(n){for(;null!==n;){const t=n._next;this._addToRemovals(this._unlink(n)),n=t}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(n,t,r){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(n);const o=n._prevRemoved,i=n._nextRemoved;return null===o?this._removalsHead=i:o._nextRemoved=i,null===i?this._removalsTail=o:i._prevRemoved=o,this._insertAfter(n,t,r),this._addToMoves(n,r),n}_moveAfter(n,t,r){return this._unlink(n),this._insertAfter(n,t,r),this._addToMoves(n,r),n}_addAfter(n,t,r){return this._insertAfter(n,t,r),this._additionsTail=null===this._additionsTail?this._additionsHead=n:this._additionsTail._nextAdded=n,n}_insertAfter(n,t,r){const o=null===t?this._itHead:t._next;return n._next=o,n._prev=t,null===o?this._itTail=n:o._prev=n,null===t?this._itHead=n:t._next=n,null===this._linkedRecords&&(this._linkedRecords=new hm),this._linkedRecords.put(n),n.currentIndex=r,n}_remove(n){return this._addToRemovals(this._unlink(n))}_unlink(n){null!==this._linkedRecords&&this._linkedRecords.remove(n);const t=n._prev,r=n._next;return null===t?this._itHead=r:t._next=r,null===r?this._itTail=t:r._prev=t,n}_addToMoves(n,t){return n.previousIndex===t||(this._movesTail=null===this._movesTail?this._movesHead=n:this._movesTail._nextMoved=n),n}_addToRemovals(n){return null===this._unlinkedRecords&&(this._unlinkedRecords=new hm),this._unlinkedRecords.put(n),n.currentIndex=null,n._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=n,n._prevRemoved=null):(n._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=n),n}_addIdentityChange(n,t){return n.item=t,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=n:this._identityChangesTail._nextIdentityChange=n,n}}class K1{constructor(n,t){this.item=n,this.trackById=t,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null}}class J1{constructor(){this._head=null,this._tail=null}add(n){null===this._head?(this._head=this._tail=n,n._nextDup=null,n._prevDup=null):(this._tail._nextDup=n,n._prevDup=this._tail,n._nextDup=null,this._tail=n)}get(n,t){let r;for(r=this._head;null!==r;r=r._nextDup)if((null===t||t<=r.currentIndex)&&Object.is(r.trackById,n))return r;return null}remove(n){const t=n._prevDup,r=n._nextDup;return null===t?this._head=r:t._nextDup=r,null===r?this._tail=t:r._prevDup=t,null===this._head}}class hm{constructor(){this.map=new Map}put(n){const t=n.trackById;let r=this.map.get(t);r||(r=new J1,this.map.set(t,r)),r.add(n)}get(n,t){const o=this.map.get(n);return o?o.get(n,t):null}remove(n){const t=n.trackById;return this.map.get(t).remove(n)&&this.map.delete(t),n}get isEmpty(){return 0===this.map.size}clear(){this.map.clear()}}function pm(e,n,t){const r=e.previousIndex;if(null===r)return r;let o=0;return t&&r{if(t&&t.key===o)this._maybeAddToChanges(t,r),this._appendAfter=t,t=t._next;else{const i=this._getOrCreateRecordForKey(o,r);t=this._insertBeforeOrAppend(t,i)}}),t){t._prev&&(t._prev._next=null),this._removalsHead=t;for(let r=t;null!==r;r=r._nextRemoved)r===this._mapHead&&(this._mapHead=null),this._records.delete(r.key),r._nextRemoved=r._next,r.previousValue=r.currentValue,r.currentValue=null,r._prev=null,r._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(n,t){if(n){const r=n._prev;return t._next=n,t._prev=r,n._prev=t,r&&(r._next=t),n===this._mapHead&&(this._mapHead=t),this._appendAfter=n,n}return this._appendAfter?(this._appendAfter._next=t,t._prev=this._appendAfter):this._mapHead=t,this._appendAfter=t,null}_getOrCreateRecordForKey(n,t){if(this._records.has(n)){const o=this._records.get(n);this._maybeAddToChanges(o,t);const i=o._prev,s=o._next;return i&&(i._next=s),s&&(s._prev=i),o._next=null,o._prev=null,o}const r=new eI(n);return this._records.set(n,r),r.currentValue=t,this._addToAdditions(r),r}_reset(){if(this.isDirty){let n;for(this._previousMapHead=this._mapHead,n=this._previousMapHead;null!==n;n=n._next)n._nextPrevious=n._next;for(n=this._changesHead;null!==n;n=n._nextChanged)n.previousValue=n.currentValue;for(n=this._additionsHead;null!=n;n=n._nextAdded)n.previousValue=n.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(n,t){Object.is(t,n.currentValue)||(n.previousValue=n.currentValue,n.currentValue=t,this._addToChanges(n))}_addToAdditions(n){null===this._additionsHead?this._additionsHead=this._additionsTail=n:(this._additionsTail._nextAdded=n,this._additionsTail=n)}_addToChanges(n){null===this._changesHead?this._changesHead=this._changesTail=n:(this._changesTail._nextChanged=n,this._changesTail=n)}_forEach(n,t){n instanceof Map?n.forEach(t):Object.keys(n).forEach(r=>t(n[r],r))}}class eI{constructor(n){this.key=n,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 mm(){return new rs([new fm])}let rs=(()=>{class e{constructor(t){this.factories=t}static create(t,r){if(null!=r){const o=r.factories.slice();t=t.concat(o)}return new e(t)}static extend(t){return{provide:e,useFactory:r=>e.create(t,r||mm()),deps:[[e,new vi,new _i]]}}find(t){const r=this.factories.find(o=>o.supports(t));if(null!=r)return r;throw new A(901,!1)}}return e.\u0275prov=de({token:e,providedIn:"root",factory:mm}),e})();function _m(){return new Co([new gm])}let Co=(()=>{class e{constructor(t){this.factories=t}static create(t,r){if(r){const o=r.factories.slice();t=t.concat(o)}return new e(t)}static extend(t){return{provide:e,useFactory:r=>e.create(t,r||_m()),deps:[[e,new vi,new _i]]}}find(t){const r=this.factories.find(o=>o.supports(t));if(r)return r;throw new A(901,!1)}}return e.\u0275prov=de({token:e,providedIn:"root",factory:_m}),e})();const rI=em(null,"core",[]);let oI=(()=>{class e{constructor(t){}}return e.\u0275fac=function(t){return new(t||e)(oe(sc))},e.\u0275mod=an({type:e}),e.\u0275inj=$t({}),e})();let fc=null;function Hn(){return fc}class aI{}const tn=new H("DocumentToken");let bo=(()=>{class e{constructor(t,r,o,i){this._iterableDiffers=t,this._keyValueDiffers=r,this._ngEl=o,this._renderer=i,this._iterableDiffer=null,this._keyValueDiffer=null,this._initialClasses=[],this._rawClass=null}set klass(t){this._removeClasses(this._initialClasses),this._initialClasses="string"==typeof t?t.split(/\s+/):[],this._applyClasses(this._initialClasses),this._applyClasses(this._rawClass)}set ngClass(t){this._removeClasses(this._rawClass),this._applyClasses(this._initialClasses),this._iterableDiffer=null,this._keyValueDiffer=null,this._rawClass="string"==typeof t?t.split(/\s+/):t,this._rawClass&&(ao(this._rawClass)?this._iterableDiffer=this._iterableDiffers.find(this._rawClass).create():this._keyValueDiffer=this._keyValueDiffers.find(this._rawClass).create())}ngDoCheck(){if(this._iterableDiffer){const t=this._iterableDiffer.diff(this._rawClass);t&&this._applyIterableChanges(t)}else if(this._keyValueDiffer){const t=this._keyValueDiffer.diff(this._rawClass);t&&this._applyKeyValueChanges(t)}}_applyKeyValueChanges(t){t.forEachAddedItem(r=>this._toggleClass(r.key,r.currentValue)),t.forEachChangedItem(r=>this._toggleClass(r.key,r.currentValue)),t.forEachRemovedItem(r=>{r.previousValue&&this._toggleClass(r.key,!1)})}_applyIterableChanges(t){t.forEachAddedItem(r=>{if("string"!=typeof r.item)throw new Error(`NgClass can only toggle CSS classes expressed as strings, got ${le(r.item)}`);this._toggleClass(r.item,!0)}),t.forEachRemovedItem(r=>this._toggleClass(r.item,!1))}_applyClasses(t){t&&(Array.isArray(t)||t instanceof Set?t.forEach(r=>this._toggleClass(r,!0)):Object.keys(t).forEach(r=>this._toggleClass(r,!!t[r])))}_removeClasses(t){t&&(Array.isArray(t)||t instanceof Set?t.forEach(r=>this._toggleClass(r,!1)):Object.keys(t).forEach(r=>this._toggleClass(r,!1)))}_toggleClass(t,r){(t=t.trim())&&t.split(/\s+/g).forEach(o=>{r?this._renderer.addClass(this._ngEl.nativeElement,o):this._renderer.removeClass(this._ngEl.nativeElement,o)})}}return e.\u0275fac=function(t){return new(t||e)(M(rs),M(Co),M(Dt),M(Rn))},e.\u0275dir=$({type:e,selectors:[["","ngClass",""]],inputs:{klass:["class","klass"],ngClass:"ngClass"},standalone:!0}),e})();class ZI{constructor(n,t,r,o){this.$implicit=n,this.ngForOf=t,this.index=r,this.count=o}get first(){return 0===this.index}get last(){return this.index===this.count-1}get even(){return this.index%2==0}get odd(){return!this.even}}let xr=(()=>{class e{set ngForOf(t){this._ngForOf=t,this._ngForOfDirty=!0}set ngForTrackBy(t){this._trackByFn=t}get ngForTrackBy(){return this._trackByFn}constructor(t,r,o){this._viewContainer=t,this._template=r,this._differs=o,this._ngForOf=null,this._ngForOfDirty=!0,this._differ=null}set ngForTemplate(t){t&&(this._template=t)}ngDoCheck(){if(this._ngForOfDirty){this._ngForOfDirty=!1;const t=this._ngForOf;!this._differ&&t&&(this._differ=this._differs.find(t).create(this.ngForTrackBy))}if(this._differ){const t=this._differ.diff(this._ngForOf);t&&this._applyChanges(t)}}_applyChanges(t){const r=this._viewContainer;t.forEachOperation((o,i,s)=>{if(null==o.previousIndex)r.createEmbeddedView(this._template,new ZI(o.item,this._ngForOf,-1,-1),null===s?void 0:s);else if(null==s)r.remove(null===i?void 0:i);else if(null!==i){const a=r.get(i);r.move(a,s),Tm(a,o)}});for(let o=0,i=r.length;o{Tm(r.get(o.currentIndex),o)})}static ngTemplateContextGuard(t,r){return!0}}return e.\u0275fac=function(t){return new(t||e)(M(Ht),M(Jt),M(rs))},e.\u0275dir=$({type:e,selectors:[["","ngFor","","ngForOf",""]],inputs:{ngForOf:"ngForOf",ngForTrackBy:"ngForTrackBy",ngForTemplate:"ngForTemplate"},standalone:!0}),e})();function Tm(e,n){e.context.$implicit=n.item}let jn=(()=>{class e{constructor(t,r){this._viewContainer=t,this._context=new YI,this._thenTemplateRef=null,this._elseTemplateRef=null,this._thenViewRef=null,this._elseViewRef=null,this._thenTemplateRef=r}set ngIf(t){this._context.$implicit=this._context.ngIf=t,this._updateView()}set ngIfThen(t){xm("ngIfThen",t),this._thenTemplateRef=t,this._thenViewRef=null,this._updateView()}set ngIfElse(t){xm("ngIfElse",t),this._elseTemplateRef=t,this._elseViewRef=null,this._updateView()}_updateView(){this._context.$implicit?this._thenViewRef||(this._viewContainer.clear(),this._elseViewRef=null,this._thenTemplateRef&&(this._thenViewRef=this._viewContainer.createEmbeddedView(this._thenTemplateRef,this._context))):this._elseViewRef||(this._viewContainer.clear(),this._thenViewRef=null,this._elseTemplateRef&&(this._elseViewRef=this._viewContainer.createEmbeddedView(this._elseTemplateRef,this._context)))}static ngTemplateContextGuard(t,r){return!0}}return e.\u0275fac=function(t){return new(t||e)(M(Ht),M(Jt))},e.\u0275dir=$({type:e,selectors:[["","ngIf",""]],inputs:{ngIf:"ngIf",ngIfThen:"ngIfThen",ngIfElse:"ngIfElse"},standalone:!0}),e})();class YI{constructor(){this.$implicit=null,this.ngIf=null}}function xm(e,n){if(n&&!n.createEmbeddedView)throw new Error(`${e} must be a TemplateRef, but received '${le(n)}'.`)}let Om=(()=>{class e{transform(t,r,o){if(null==t)return null;if(!this.supports(t))throw function At(e,n){return new A(2100,!1)}();return t.slice(r,o)}supports(t){return"string"==typeof t||Array.isArray(t)}}return e.\u0275fac=function(t){return new(t||e)},e.\u0275pipe=Je({name:"slice",type:e,pure:!1,standalone:!0}),e})(),DM=(()=>{class e{}return e.\u0275fac=function(t){return new(t||e)},e.\u0275mod=an({type:e}),e.\u0275inj=$t({}),e})();class XM extends aI{constructor(){super(...arguments),this.supportsDOMEvents=!0}}class Ac extends XM{static makeCurrent(){!function sI(e){fc||(fc=e)}(new Ac)}onAndCancel(n,t,r){return n.addEventListener(t,r,!1),()=>{n.removeEventListener(t,r,!1)}}dispatchEvent(n,t){n.dispatchEvent(t)}remove(n){n.parentNode&&n.parentNode.removeChild(n)}createElement(n,t){return(t=t||this.getDefaultDocument()).createElement(n)}createHtmlDocument(){return document.implementation.createHTMLDocument("fakeTitle")}getDefaultDocument(){return document}isElementNode(n){return n.nodeType===Node.ELEMENT_NODE}isShadowRoot(n){return n instanceof DocumentFragment}getGlobalEventTarget(n,t){return"window"===t?window:"document"===t?n:"body"===t?n.body:null}getBaseHref(n){const t=function eS(){return Io=Io||document.querySelector("base"),Io?Io.getAttribute("href"):null}();return null==t?null:function tS(e){ps=ps||document.createElement("a"),ps.setAttribute("href",e);const n=ps.pathname;return"/"===n.charAt(0)?n:`/${n}`}(t)}resetBaseElement(){Io=null}getUserAgent(){return window.navigator.userAgent}getCookie(n){return function WI(e,n){n=encodeURIComponent(n);for(const t of e.split(";")){const r=t.indexOf("="),[o,i]=-1==r?[t,""]:[t.slice(0,r),t.slice(r+1)];if(o.trim()===n)return decodeURIComponent(i)}return null}(document.cookie,n)}}let ps,Io=null;const jm=new H("TRANSITION_ID"),rS=[{provide:Ug,useFactory:function nS(e,n,t){return()=>{t.get(Ji).donePromise.then(()=>{const r=Hn(),o=n.querySelectorAll(`style[ng-transition="${e}"]`);for(let i=0;i{class e{build(){return new XMLHttpRequest}}return e.\u0275fac=function(t){return new(t||e)},e.\u0275prov=de({token:e,factory:e.\u0275fac}),e})();const gs=new H("EventManagerPlugins");let ms=(()=>{class e{constructor(t,r){this._zone=r,this._eventNameToPlugin=new Map,t.forEach(o=>o.manager=this),this._plugins=t.slice().reverse()}addEventListener(t,r,o){return this._findPluginFor(r).addEventListener(t,r,o)}addGlobalEventListener(t,r,o){return this._findPluginFor(r).addGlobalEventListener(t,r,o)}getZone(){return this._zone}_findPluginFor(t){const r=this._eventNameToPlugin.get(t);if(r)return r;const o=this._plugins;for(let i=0;i{class e{constructor(){this._stylesSet=new Set}addStyles(t){const r=new Set;t.forEach(o=>{this._stylesSet.has(o)||(this._stylesSet.add(o),r.add(o))}),this.onStylesAdded(r)}onStylesAdded(t){}getAllStyles(){return Array.from(this._stylesSet)}}return e.\u0275fac=function(t){return new(t||e)},e.\u0275prov=de({token:e,factory:e.\u0275fac}),e})(),Mo=(()=>{class e extends Um{constructor(t){super(),this._doc=t,this._hostNodes=new Map,this._hostNodes.set(t.head,[])}_addStylesToHost(t,r,o){t.forEach(i=>{const s=this._doc.createElement("style");s.textContent=i,o.push(r.appendChild(s))})}addHost(t){const r=[];this._addStylesToHost(this._stylesSet,t,r),this._hostNodes.set(t,r)}removeHost(t){const r=this._hostNodes.get(t);r&&r.forEach(zm),this._hostNodes.delete(t)}onStylesAdded(t){this._hostNodes.forEach((r,o)=>{this._addStylesToHost(t,o,r)})}ngOnDestroy(){this._hostNodes.forEach(t=>t.forEach(zm))}}return e.\u0275fac=function(t){return new(t||e)(oe(tn))},e.\u0275prov=de({token:e,factory:e.\u0275fac}),e})();function zm(e){Hn().remove(e)}const Tc={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/"},xc=/%COMP%/g;function Nc(e,n){return n.flat(100).map(t=>t.replace(xc,e))}function qm(e){return n=>{if("__ngUnwrap__"===n)return e;!1===e(n)&&(n.preventDefault(),n.returnValue=!1)}}let Fc=(()=>{class e{constructor(t,r,o){this.eventManager=t,this.sharedStylesHost=r,this.appId=o,this.rendererByCompId=new Map,this.defaultRenderer=new Oc(t)}createRenderer(t,r){if(!t||!r)return this.defaultRenderer;switch(r.encapsulation){case xt.Emulated:{let o=this.rendererByCompId.get(r.id);return o||(o=new dS(this.eventManager,this.sharedStylesHost,r,this.appId),this.rendererByCompId.set(r.id,o)),o.applyToHost(t),o}case xt.ShadowDom:return new fS(this.eventManager,this.sharedStylesHost,t,r);default:if(!this.rendererByCompId.has(r.id)){const o=Nc(r.id,r.styles);this.sharedStylesHost.addStyles(o),this.rendererByCompId.set(r.id,this.defaultRenderer)}return this.defaultRenderer}}begin(){}end(){}}return e.\u0275fac=function(t){return new(t||e)(oe(ms),oe(Mo),oe(yo))},e.\u0275prov=de({token:e,factory:e.\u0275fac}),e})();class Oc{constructor(n){this.eventManager=n,this.data=Object.create(null),this.destroyNode=null}destroy(){}createElement(n,t){return t?document.createElementNS(Tc[t]||t,n):document.createElement(n)}createComment(n){return document.createComment(n)}createText(n){return document.createTextNode(n)}appendChild(n,t){(Qm(n)?n.content:n).appendChild(t)}insertBefore(n,t,r){n&&(Qm(n)?n.content:n).insertBefore(t,r)}removeChild(n,t){n&&n.removeChild(t)}selectRootElement(n,t){let r="string"==typeof n?document.querySelector(n):n;if(!r)throw new Error(`The selector "${n}" did not match any elements`);return t||(r.textContent=""),r}parentNode(n){return n.parentNode}nextSibling(n){return n.nextSibling}setAttribute(n,t,r,o){if(o){t=o+":"+t;const i=Tc[o];i?n.setAttributeNS(i,t,r):n.setAttribute(t,r)}else n.setAttribute(t,r)}removeAttribute(n,t,r){if(r){const o=Tc[r];o?n.removeAttributeNS(o,t):n.removeAttribute(`${r}:${t}`)}else n.removeAttribute(t)}addClass(n,t){n.classList.add(t)}removeClass(n,t){n.classList.remove(t)}setStyle(n,t,r,o){o&(Xe.DashCase|Xe.Important)?n.style.setProperty(t,r,o&Xe.Important?"important":""):n.style[t]=r}removeStyle(n,t,r){r&Xe.DashCase?n.style.removeProperty(t):n.style[t]=""}setProperty(n,t,r){n[t]=r}setValue(n,t){n.nodeValue=t}listen(n,t,r){return"string"==typeof n?this.eventManager.addGlobalEventListener(n,t,qm(r)):this.eventManager.addEventListener(n,t,qm(r))}}function Qm(e){return"TEMPLATE"===e.tagName&&void 0!==e.content}class dS extends Oc{constructor(n,t,r,o){super(n),this.component=r;const i=Nc(o+"-"+r.id,r.styles);t.addStyles(i),this.contentAttr=function lS(e){return"_ngcontent-%COMP%".replace(xc,e)}(o+"-"+r.id),this.hostAttr=function cS(e){return"_nghost-%COMP%".replace(xc,e)}(o+"-"+r.id)}applyToHost(n){super.setAttribute(n,this.hostAttr,"")}createElement(n,t){const r=super.createElement(n,t);return super.setAttribute(r,this.contentAttr,""),r}}class fS extends Oc{constructor(n,t,r,o){super(n),this.sharedStylesHost=t,this.hostEl=r,this.shadowRoot=r.attachShadow({mode:"open"}),this.sharedStylesHost.addHost(this.shadowRoot);const i=Nc(o.id,o.styles);for(let s=0;s{class e extends $m{constructor(t){super(t)}supports(t){return!0}addEventListener(t,r,o){return t.addEventListener(r,o,!1),()=>this.removeEventListener(t,r,o)}removeEventListener(t,r,o){return t.removeEventListener(r,o)}}return e.\u0275fac=function(t){return new(t||e)(oe(tn))},e.\u0275prov=de({token:e,factory:e.\u0275fac}),e})();const Ym=["alt","control","meta","shift"],pS={"\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"},gS={alt:e=>e.altKey,control:e=>e.ctrlKey,meta:e=>e.metaKey,shift:e=>e.shiftKey};let mS=(()=>{class e extends $m{constructor(t){super(t)}supports(t){return null!=e.parseEventName(t)}addEventListener(t,r,o){const i=e.parseEventName(r),s=e.eventCallback(i.fullKey,o,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>Hn().onAndCancel(t,i.domEventName,s))}static parseEventName(t){const r=t.toLowerCase().split("."),o=r.shift();if(0===r.length||"keydown"!==o&&"keyup"!==o)return null;const i=e._normalizeKey(r.pop());let s="",a=r.indexOf("code");if(a>-1&&(r.splice(a,1),s="code."),Ym.forEach(c=>{const u=r.indexOf(c);u>-1&&(r.splice(u,1),s+=c+".")}),s+=i,0!=r.length||0===i.length)return null;const l={};return l.domEventName=o,l.fullKey=s,l}static matchEventFullKeyCode(t,r){let o=pS[t.key]||t.key,i="";return r.indexOf("code.")>-1&&(o=t.code,i="code."),!(null==o||!o)&&(o=o.toLowerCase()," "===o?o="space":"."===o&&(o="dot"),Ym.forEach(s=>{s!==o&&(0,gS[s])(t)&&(i+=s+".")}),i+=o,i===r)}static eventCallback(t,r,o){return i=>{e.matchEventFullKeyCode(i,t)&&o.runGuarded(()=>r(i))}}static _normalizeKey(t){return"esc"===t?"escape":t}}return e.\u0275fac=function(t){return new(t||e)(oe(tn))},e.\u0275prov=de({token:e,factory:e.\u0275fac}),e})();const CS=em(rI,"browser",[{provide:Wg,useValue:"browser"},{provide:Gg,useValue:function _S(){Ac.makeCurrent()},multi:!0},{provide:tn,useFactory:function yS(){return function eD(e){$a=e}(document),document},deps:[]}]),Xm=new H(""),e_=[{provide:Xi,useClass:class oS{addToWindow(n){fe.getAngularTestability=(r,o=!0)=>{const i=n.findTestabilityInTree(r,o);if(null==i)throw new Error("Could not find testability for element.");return i},fe.getAllAngularTestabilities=()=>n.getAllTestabilities(),fe.getAllAngularRootElements=()=>n.getAllRootElements(),fe.frameworkStabilizers||(fe.frameworkStabilizers=[]),fe.frameworkStabilizers.push(r=>{const o=fe.getAllAngularTestabilities();let i=o.length,s=!1;const a=function(l){s=s||l,i--,0==i&&r(s)};o.forEach(function(l){l.whenStable(a)})})}findTestabilityInTree(n,t,r){return null==t?null:n.getTestability(t)??(r?Hn().isShadowRoot(t)?this.findTestabilityInTree(n,t.host,!0):this.findTestabilityInTree(n,t.parentElement,!0):null)}},deps:[]},{provide:Kg,useClass:tc,deps:[$e,nc,Xi]},{provide:tc,useClass:tc,deps:[$e,nc,Xi]}],t_=[{provide:Ka,useValue:"root"},{provide:dr,useFactory:function vS(){return new dr},deps:[]},{provide:gs,useClass:hS,multi:!0,deps:[tn,$e,Wg]},{provide:gs,useClass:mS,multi:!0,deps:[tn]},{provide:Fc,useClass:Fc,deps:[ms,Mo,yo]},{provide:Hf,useExisting:Fc},{provide:Um,useExisting:Mo},{provide:Mo,useClass:Mo,deps:[tn]},{provide:ms,useClass:ms,deps:[gs,$e]},{provide:class MM{},useClass:iS,deps:[]},[]];let DS=(()=>{class e{constructor(t){}static withServerTransition(t){return{ngModule:e,providers:[{provide:yo,useValue:t.appId},{provide:jm,useExisting:yo},rS]}}}return e.\u0275fac=function(t){return new(t||e)(oe(Xm,12))},e.\u0275mod=an({type:e}),e.\u0275inj=$t({providers:[...t_,...e_],imports:[DM,oI]}),e})();typeof window<"u"&&window;const{isArray:NS}=Array,{getPrototypeOf:FS,prototype:OS,keys:RS}=Object;const{isArray:LS}=Array;function HS(e,n){return e.reduce((t,r,o)=>(t[r]=n[o],t),{})}function jS(...e){const n=function Fv(e){return me(Vs(e))?e.pop():void 0}(e),{args:t,keys:r}=function PS(e){if(1===e.length){const n=e[0];if(NS(n))return{args:n,keys:null};if(function kS(e){return e&&"object"==typeof e&&FS(e)===OS}(n)){const t=RS(n);return{args:t.map(r=>n[r]),keys:t}}}return{args:e,keys:null}}(e),o=new ze(i=>{const{length:s}=t;if(!s)return void i.complete();const a=new Array(s);let l=s,c=s;for(let u=0;u{d||(d=!0,c--),a[u]=h},()=>l--,void 0,()=>{(!l||!d)&&(c||i.next(r?HS(r,a):a),i.complete())}))}});return n?o.pipe(function BS(e){return Ps(n=>function VS(e,n){return LS(n)?e(...n):e(n)}(e,n))}(n)):o}let o_=(()=>{class e{constructor(t,r){this._renderer=t,this._elementRef=r,this.onChange=o=>{},this.onTouched=()=>{}}setProperty(t,r){this._renderer.setProperty(this._elementRef.nativeElement,t,r)}registerOnTouched(t){this.onTouched=t}registerOnChange(t){this.onChange=t}setDisabledState(t){this.setProperty("disabled",t)}}return e.\u0275fac=function(t){return new(t||e)(M(Rn),M(Dt))},e.\u0275dir=$({type:e}),e})(),$n=(()=>{class e extends o_{}return e.\u0275fac=function(){let n;return function(r){return(n||(n=Be(e)))(r||e)}}(),e.\u0275dir=$({type:e,features:[se]}),e})();const jt=new H("NgValueAccessor"),$S={provide:jt,useExisting:ue(()=>kc),multi:!0};let kc=(()=>{class e extends $n{writeValue(t){this.setProperty("checked",t)}}return e.\u0275fac=function(){let n;return function(r){return(n||(n=Be(e)))(r||e)}}(),e.\u0275dir=$({type:e,selectors:[["input","type","checkbox","formControlName",""],["input","type","checkbox","formControl",""],["input","type","checkbox","ngModel",""]],hostBindings:function(t,r){1&t&&k("change",function(i){return r.onChange(i.target.checked)})("blur",function(){return r.onTouched()})},features:[ge([$S]),se]}),e})();const US={provide:jt,useExisting:ue(()=>So),multi:!0},GS=new H("CompositionEventMode");let So=(()=>{class e extends o_{constructor(t,r,o){super(t,r),this._compositionMode=o,this._composing=!1,null==this._compositionMode&&(this._compositionMode=!function zS(){const e=Hn()?Hn().getUserAgent():"";return/android (\d+)/.test(e.toLowerCase())}())}writeValue(t){this.setProperty("value",t??"")}_handleInput(t){(!this._compositionMode||this._compositionMode&&!this._composing)&&this.onChange(t)}_compositionStart(){this._composing=!0}_compositionEnd(t){this._composing=!1,this._compositionMode&&this.onChange(t)}}return e.\u0275fac=function(t){return new(t||e)(M(Rn),M(Dt),M(GS,8))},e.\u0275dir=$({type:e,selectors:[["input","formControlName","",3,"type","checkbox"],["textarea","formControlName",""],["input","formControl","",3,"type","checkbox"],["textarea","formControl",""],["input","ngModel","",3,"type","checkbox"],["textarea","ngModel",""],["","ngDefaultControl",""]],hostBindings:function(t,r){1&t&&k("input",function(i){return r._handleInput(i.target.value)})("blur",function(){return r.onTouched()})("compositionstart",function(){return r._compositionStart()})("compositionend",function(i){return r._compositionEnd(i.target.value)})},features:[ge([US]),se]}),e})();const Ue=new H("NgValidators"),_n=new H("NgAsyncValidators");function p_(e){return null!=e}function g_(e){return Hi(e)?Bs(e):e}function m_(e){let n={};return e.forEach(t=>{n=null!=t?{...n,...t}:n}),0===Object.keys(n).length?null:n}function __(e,n){return n.map(t=>t(e))}function v_(e){return e.map(n=>function ZS(e){return!e.validate}(n)?n:t=>n.validate(t))}function Lc(e){return null!=e?function y_(e){if(!e)return null;const n=e.filter(p_);return 0==n.length?null:function(t){return m_(__(t,n))}}(v_(e)):null}function Vc(e){return null!=e?function C_(e){if(!e)return null;const n=e.filter(p_);return 0==n.length?null:function(t){return jS(__(t,n).map(g_)).pipe(Ps(m_))}}(v_(e)):null}function D_(e,n){return null===e?[n]:Array.isArray(e)?[...e,n]:[e,n]}function Bc(e){return e?Array.isArray(e)?e:[e]:[]}function vs(e,n){return Array.isArray(e)?e.includes(n):e===n}function E_(e,n){const t=Bc(n);return Bc(e).forEach(o=>{vs(t,o)||t.push(o)}),t}function I_(e,n){return Bc(n).filter(t=>!vs(e,t))}class M_{constructor(){this._rawValidators=[],this._rawAsyncValidators=[],this._onDestroyCallbacks=[]}get value(){return this.control?this.control.value:null}get valid(){return this.control?this.control.valid:null}get invalid(){return this.control?this.control.invalid:null}get pending(){return this.control?this.control.pending:null}get disabled(){return this.control?this.control.disabled:null}get enabled(){return this.control?this.control.enabled:null}get errors(){return this.control?this.control.errors:null}get pristine(){return this.control?this.control.pristine:null}get dirty(){return this.control?this.control.dirty:null}get touched(){return this.control?this.control.touched:null}get status(){return this.control?this.control.status:null}get untouched(){return this.control?this.control.untouched:null}get statusChanges(){return this.control?this.control.statusChanges:null}get valueChanges(){return this.control?this.control.valueChanges:null}get path(){return null}_setValidators(n){this._rawValidators=n||[],this._composedValidatorFn=Lc(this._rawValidators)}_setAsyncValidators(n){this._rawAsyncValidators=n||[],this._composedAsyncValidatorFn=Vc(this._rawAsyncValidators)}get validator(){return this._composedValidatorFn||null}get asyncValidator(){return this._composedAsyncValidatorFn||null}_registerOnDestroy(n){this._onDestroyCallbacks.push(n)}_invokeOnDestroyCallbacks(){this._onDestroyCallbacks.forEach(n=>n()),this._onDestroyCallbacks=[]}reset(n){this.control&&this.control.reset(n)}hasError(n,t){return!!this.control&&this.control.hasError(n,t)}getError(n,t){return this.control?this.control.getError(n,t):null}}class Ke extends M_{get formDirective(){return null}get path(){return null}}class vn extends M_{constructor(){super(...arguments),this._parent=null,this.name=null,this.valueAccessor=null}}class S_{constructor(n){this._cd=n}get isTouched(){return!!this._cd?.control?.touched}get isUntouched(){return!!this._cd?.control?.untouched}get isPristine(){return!!this._cd?.control?.pristine}get isDirty(){return!!this._cd?.control?.dirty}get isValid(){return!!this._cd?.control?.valid}get isInvalid(){return!!this._cd?.control?.invalid}get isPending(){return!!this._cd?.control?.pending}get isSubmitted(){return!!this._cd?.submitted}}let ys=(()=>{class e extends S_{constructor(t){super(t)}}return e.\u0275fac=function(t){return new(t||e)(M(vn,2))},e.\u0275dir=$({type:e,selectors:[["","formControlName",""],["","ngModel",""],["","formControl",""]],hostVars:14,hostBindings:function(t,r){2&t&&$i("ng-untouched",r.isUntouched)("ng-touched",r.isTouched)("ng-pristine",r.isPristine)("ng-dirty",r.isDirty)("ng-valid",r.isValid)("ng-invalid",r.isInvalid)("ng-pending",r.isPending)},features:[se]}),e})();const Ao="VALID",Ds="INVALID",Nr="PENDING",To="DISABLED";function ws(e){return null!=e&&!Array.isArray(e)&&"object"==typeof e}class N_{constructor(n,t){this._pendingDirty=!1,this._hasOwnPendingAsyncValidator=!1,this._pendingTouched=!1,this._onCollectionChange=()=>{},this._parent=null,this.pristine=!0,this.touched=!1,this._onDisabledChange=[],this._assignValidators(n),this._assignAsyncValidators(t)}get validator(){return this._composedValidatorFn}set validator(n){this._rawValidators=this._composedValidatorFn=n}get asyncValidator(){return this._composedAsyncValidatorFn}set asyncValidator(n){this._rawAsyncValidators=this._composedAsyncValidatorFn=n}get parent(){return this._parent}get valid(){return this.status===Ao}get invalid(){return this.status===Ds}get pending(){return this.status==Nr}get disabled(){return this.status===To}get enabled(){return this.status!==To}get dirty(){return!this.pristine}get untouched(){return!this.touched}get updateOn(){return this._updateOn?this._updateOn:this.parent?this.parent.updateOn:"change"}setValidators(n){this._assignValidators(n)}setAsyncValidators(n){this._assignAsyncValidators(n)}addValidators(n){this.setValidators(E_(n,this._rawValidators))}addAsyncValidators(n){this.setAsyncValidators(E_(n,this._rawAsyncValidators))}removeValidators(n){this.setValidators(I_(n,this._rawValidators))}removeAsyncValidators(n){this.setAsyncValidators(I_(n,this._rawAsyncValidators))}hasValidator(n){return vs(this._rawValidators,n)}hasAsyncValidator(n){return vs(this._rawAsyncValidators,n)}clearValidators(){this.validator=null}clearAsyncValidators(){this.asyncValidator=null}markAsTouched(n={}){this.touched=!0,this._parent&&!n.onlySelf&&this._parent.markAsTouched(n)}markAllAsTouched(){this.markAsTouched({onlySelf:!0}),this._forEachChild(n=>n.markAllAsTouched())}markAsUntouched(n={}){this.touched=!1,this._pendingTouched=!1,this._forEachChild(t=>{t.markAsUntouched({onlySelf:!0})}),this._parent&&!n.onlySelf&&this._parent._updateTouched(n)}markAsDirty(n={}){this.pristine=!1,this._parent&&!n.onlySelf&&this._parent.markAsDirty(n)}markAsPristine(n={}){this.pristine=!0,this._pendingDirty=!1,this._forEachChild(t=>{t.markAsPristine({onlySelf:!0})}),this._parent&&!n.onlySelf&&this._parent._updatePristine(n)}markAsPending(n={}){this.status=Nr,!1!==n.emitEvent&&this.statusChanges.emit(this.status),this._parent&&!n.onlySelf&&this._parent.markAsPending(n)}disable(n={}){const t=this._parentMarkedDirty(n.onlySelf);this.status=To,this.errors=null,this._forEachChild(r=>{r.disable({...n,onlySelf:!0})}),this._updateValue(),!1!==n.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors({...n,skipPristineCheck:t}),this._onDisabledChange.forEach(r=>r(!0))}enable(n={}){const t=this._parentMarkedDirty(n.onlySelf);this.status=Ao,this._forEachChild(r=>{r.enable({...n,onlySelf:!0})}),this.updateValueAndValidity({onlySelf:!0,emitEvent:n.emitEvent}),this._updateAncestors({...n,skipPristineCheck:t}),this._onDisabledChange.forEach(r=>r(!1))}_updateAncestors(n){this._parent&&!n.onlySelf&&(this._parent.updateValueAndValidity(n),n.skipPristineCheck||this._parent._updatePristine(),this._parent._updateTouched())}setParent(n){this._parent=n}getRawValue(){return this.value}updateValueAndValidity(n={}){this._setInitialStatus(),this._updateValue(),this.enabled&&(this._cancelExistingSubscription(),this.errors=this._runValidator(),this.status=this._calculateStatus(),(this.status===Ao||this.status===Nr)&&this._runAsyncValidator(n.emitEvent)),!1!==n.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._parent&&!n.onlySelf&&this._parent.updateValueAndValidity(n)}_updateTreeValidity(n={emitEvent:!0}){this._forEachChild(t=>t._updateTreeValidity(n)),this.updateValueAndValidity({onlySelf:!0,emitEvent:n.emitEvent})}_setInitialStatus(){this.status=this._allControlsDisabled()?To:Ao}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(n){if(this.asyncValidator){this.status=Nr,this._hasOwnPendingAsyncValidator=!0;const t=g_(this.asyncValidator(this));this._asyncValidationSubscription=t.subscribe(r=>{this._hasOwnPendingAsyncValidator=!1,this.setErrors(r,{emitEvent:n})})}}_cancelExistingSubscription(){this._asyncValidationSubscription&&(this._asyncValidationSubscription.unsubscribe(),this._hasOwnPendingAsyncValidator=!1)}setErrors(n,t={}){this.errors=n,this._updateControlsErrors(!1!==t.emitEvent)}get(n){let t=n;return null==t||(Array.isArray(t)||(t=t.split(".")),0===t.length)?null:t.reduce((r,o)=>r&&r._find(o),this)}getError(n,t){const r=t?this.get(t):this;return r&&r.errors?r.errors[n]:null}hasError(n,t){return!!this.getError(n,t)}get root(){let n=this;for(;n._parent;)n=n._parent;return n}_updateControlsErrors(n){this.status=this._calculateStatus(),n&&this.statusChanges.emit(this.status),this._parent&&this._parent._updateControlsErrors(n)}_initObservables(){this.valueChanges=new be,this.statusChanges=new be}_calculateStatus(){return this._allControlsDisabled()?To:this.errors?Ds:this._hasOwnPendingAsyncValidator||this._anyControlsHaveStatus(Nr)?Nr:this._anyControlsHaveStatus(Ds)?Ds:Ao}_anyControlsHaveStatus(n){return this._anyControls(t=>t.status===n)}_anyControlsDirty(){return this._anyControls(n=>n.dirty)}_anyControlsTouched(){return this._anyControls(n=>n.touched)}_updatePristine(n={}){this.pristine=!this._anyControlsDirty(),this._parent&&!n.onlySelf&&this._parent._updatePristine(n)}_updateTouched(n={}){this.touched=this._anyControlsTouched(),this._parent&&!n.onlySelf&&this._parent._updateTouched(n)}_registerOnCollectionChange(n){this._onCollectionChange=n}_setUpdateStrategy(n){ws(n)&&null!=n.updateOn&&(this._updateOn=n.updateOn)}_parentMarkedDirty(n){return!n&&!(!this._parent||!this._parent.dirty)&&!this._parent._anyControlsDirty()}_find(n){return null}_assignValidators(n){this._rawValidators=Array.isArray(n)?n.slice():n,this._composedValidatorFn=function nA(e){return Array.isArray(e)?Lc(e):e||null}(this._rawValidators)}_assignAsyncValidators(n){this._rawAsyncValidators=Array.isArray(n)?n.slice():n,this._composedAsyncValidatorFn=function rA(e){return Array.isArray(e)?Vc(e):e||null}(this._rawAsyncValidators)}}const xo=new H("CallSetDisabledState",{providedIn:"root",factory:()=>Wc}),Wc="always";function No(e,n,t=Wc){(function qc(e,n){const t=function w_(e){return e._rawValidators}(e);null!==n.validator?e.setValidators(D_(t,n.validator)):"function"==typeof t&&e.setValidators([t]);const r=function b_(e){return e._rawAsyncValidators}(e);null!==n.asyncValidator?e.setAsyncValidators(D_(r,n.asyncValidator)):"function"==typeof r&&e.setAsyncValidators([r]);const o=()=>e.updateValueAndValidity();Is(n._rawValidators,o),Is(n._rawAsyncValidators,o)})(e,n),n.valueAccessor.writeValue(e.value),(e.disabled||"always"===t)&&n.valueAccessor.setDisabledState?.(e.disabled),function sA(e,n){n.valueAccessor.registerOnChange(t=>{e._pendingValue=t,e._pendingChange=!0,e._pendingDirty=!0,"change"===e.updateOn&&F_(e,n)})}(e,n),function lA(e,n){const t=(r,o)=>{n.valueAccessor.writeValue(r),o&&n.viewToModelUpdate(r)};e.registerOnChange(t),n._registerOnDestroy(()=>{e._unregisterOnChange(t)})}(e,n),function aA(e,n){n.valueAccessor.registerOnTouched(()=>{e._pendingTouched=!0,"blur"===e.updateOn&&e._pendingChange&&F_(e,n),"submit"!==e.updateOn&&e.markAsTouched()})}(e,n),function iA(e,n){if(n.valueAccessor.setDisabledState){const t=r=>{n.valueAccessor.setDisabledState(r)};e.registerOnDisabledChange(t),n._registerOnDestroy(()=>{e._unregisterOnDisabledChange(t)})}}(e,n)}function Is(e,n){e.forEach(t=>{t.registerOnValidatorChange&&t.registerOnValidatorChange(n)})}function F_(e,n){e._pendingDirty&&e.markAsDirty(),e.setValue(e._pendingValue,{emitModelToViewChange:!1}),n.viewToModelUpdate(e._pendingValue),e._pendingChange=!1}function P_(e,n){const t=e.indexOf(n);t>-1&&e.splice(t,1)}function k_(e){return"object"==typeof e&&null!==e&&2===Object.keys(e).length&&"value"in e&&"disabled"in e}const L_=class extends N_{constructor(n=null,t,r){super(function Uc(e){return(ws(e)?e.validators:e)||null}(t),function zc(e,n){return(ws(n)?n.asyncValidators:e)||null}(r,t)),this.defaultValue=null,this._onChange=[],this._pendingChange=!1,this._applyFormState(n),this._setUpdateStrategy(t),this._initObservables(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator}),ws(t)&&(t.nonNullable||t.initialValueIsDefault)&&(this.defaultValue=k_(n)?n.value:n)}setValue(n,t={}){this.value=this._pendingValue=n,this._onChange.length&&!1!==t.emitModelToViewChange&&this._onChange.forEach(r=>r(this.value,!1!==t.emitViewToModelChange)),this.updateValueAndValidity(t)}patchValue(n,t={}){this.setValue(n,t)}reset(n=this.defaultValue,t={}){this._applyFormState(n),this.markAsPristine(t),this.markAsUntouched(t),this.setValue(this.value,t),this._pendingChange=!1}_updateValue(){}_anyControls(n){return!1}_allControlsDisabled(){return this.disabled}registerOnChange(n){this._onChange.push(n)}_unregisterOnChange(n){P_(this._onChange,n)}registerOnDisabledChange(n){this._onDisabledChange.push(n)}_unregisterOnDisabledChange(n){P_(this._onDisabledChange,n)}_forEachChild(n){}_syncPendingControls(){return!("submit"!==this.updateOn||(this._pendingDirty&&this.markAsDirty(),this._pendingTouched&&this.markAsTouched(),!this._pendingChange)||(this.setValue(this._pendingValue,{onlySelf:!0,emitModelToViewChange:!1}),0))}_applyFormState(n){k_(n)?(this.value=this._pendingValue=n.value,n.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this.value=this._pendingValue=n}},mA={provide:vn,useExisting:ue(()=>Oo)},H_=(()=>Promise.resolve())();let Oo=(()=>{class e extends vn{constructor(t,r,o,i,s,a){super(),this._changeDetectorRef=s,this.callSetDisabledState=a,this.control=new L_,this._registered=!1,this.update=new be,this._parent=t,this._setValidators(r),this._setAsyncValidators(o),this.valueAccessor=function Yc(e,n){if(!n)return null;let t,r,o;return Array.isArray(n),n.forEach(i=>{i.constructor===So?t=i:function dA(e){return Object.getPrototypeOf(e.constructor)===$n}(i)?r=i:o=i}),o||r||t||null}(0,i)}ngOnChanges(t){if(this._checkForErrors(),!this._registered||"name"in t){if(this._registered&&(this._checkName(),this.formDirective)){const r=t.name.previousValue;this.formDirective.removeControl({name:r,path:this._getPath(r)})}this._setUpControl()}"isDisabled"in t&&this._updateDisabled(t),function Qc(e,n){if(!e.hasOwnProperty("model"))return!1;const t=e.model;return!!t.isFirstChange()||!Object.is(n,t.currentValue)}(t,this.viewModel)&&(this._updateValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}get path(){return this._getPath(this.name)}get formDirective(){return this._parent?this._parent.formDirective:null}viewToModelUpdate(t){this.viewModel=t,this.update.emit(t)}_setUpControl(){this._setUpdateStrategy(),this._isStandalone()?this._setUpStandalone():this.formDirective.addControl(this),this._registered=!0}_setUpdateStrategy(){this.options&&null!=this.options.updateOn&&(this.control._updateOn=this.options.updateOn)}_isStandalone(){return!this._parent||!(!this.options||!this.options.standalone)}_setUpStandalone(){No(this.control,this,this.callSetDisabledState),this.control.updateValueAndValidity({emitEvent:!1})}_checkForErrors(){this._isStandalone()||this._checkParentType(),this._checkName()}_checkParentType(){}_checkName(){this.options&&this.options.name&&(this.name=this.options.name),this._isStandalone()}_updateValue(t){H_.then(()=>{this.control.setValue(t,{emitViewToModelChange:!1}),this._changeDetectorRef?.markForCheck()})}_updateDisabled(t){const r=t.isDisabled.currentValue,o=0!==r&&function dc(e){return"boolean"==typeof e?e:null!=e&&"false"!==e}(r);H_.then(()=>{o&&!this.control.disabled?this.control.disable():!o&&this.control.disabled&&this.control.enable(),this._changeDetectorRef?.markForCheck()})}_getPath(t){return this._parent?function bs(e,n){return[...n.path,e]}(t,this._parent):[t]}}return e.\u0275fac=function(t){return new(t||e)(M(Ke,9),M(Ue,10),M(_n,10),M(jt,10),M(cm,8),M(xo,8))},e.\u0275dir=$({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:[ge([mA]),se,Wt]}),e})(),$_=(()=>{class e{}return e.\u0275fac=function(t){return new(t||e)},e.\u0275mod=an({type:e}),e.\u0275inj=$t({}),e})();const DA={provide:jt,useExisting:ue(()=>Jc),multi:!0};let Jc=(()=>{class e extends $n{writeValue(t){this.setProperty("value",parseFloat(t))}registerOnChange(t){this.onChange=r=>{t(""==r?null:parseFloat(r))}}}return e.\u0275fac=function(){let n;return function(r){return(n||(n=Be(e)))(r||e)}}(),e.\u0275dir=$({type:e,selectors:[["input","type","range","formControlName",""],["input","type","range","formControl",""],["input","type","range","ngModel",""]],hostBindings:function(t,r){1&t&&k("change",function(i){return r.onChange(i.target.value)})("input",function(i){return r.onChange(i.target.value)})("blur",function(){return r.onTouched()})},features:[ge([DA]),se]}),e})();const SA={provide:jt,useExisting:ue(()=>Ro),multi:!0};function Z_(e,n){return null==e?`${n}`:(n&&"object"==typeof n&&(n="Object"),`${e}: ${n}`.slice(0,50))}let Ro=(()=>{class e extends $n{constructor(){super(...arguments),this._optionMap=new Map,this._idCounter=0,this._compareWith=Object.is}set compareWith(t){this._compareWith=t}writeValue(t){this.value=t;const o=Z_(this._getOptionId(t),t);this.setProperty("value",o)}registerOnChange(t){this.onChange=r=>{this.value=this._getOptionValue(r),t(this.value)}}_registerOption(){return(this._idCounter++).toString()}_getOptionId(t){for(const r of Array.from(this._optionMap.keys()))if(this._compareWith(this._optionMap.get(r),t))return r;return null}_getOptionValue(t){const r=function AA(e){return e.split(":")[0]}(t);return this._optionMap.has(r)?this._optionMap.get(r):t}}return e.\u0275fac=function(){let n;return function(r){return(n||(n=Be(e)))(r||e)}}(),e.\u0275dir=$({type:e,selectors:[["select","formControlName","",3,"multiple",""],["select","formControl","",3,"multiple",""],["select","ngModel","",3,"multiple",""]],hostBindings:function(t,r){1&t&&k("change",function(i){return r.onChange(i.target.value)})("blur",function(){return r.onTouched()})},inputs:{compareWith:"compareWith"},features:[ge([SA]),se]}),e})(),nu=(()=>{class e{constructor(t,r,o){this._element=t,this._renderer=r,this._select=o,this._select&&(this.id=this._select._registerOption())}set ngValue(t){null!=this._select&&(this._select._optionMap.set(this.id,t),this._setElementValue(Z_(this.id,t)),this._select.writeValue(this._select.value))}set value(t){this._setElementValue(t),this._select&&this._select.writeValue(this._select.value)}_setElementValue(t){this._renderer.setProperty(this._element.nativeElement,"value",t)}ngOnDestroy(){this._select&&(this._select._optionMap.delete(this.id),this._select.writeValue(this._select.value))}}return e.\u0275fac=function(t){return new(t||e)(M(Dt),M(Rn),M(Ro,9))},e.\u0275dir=$({type:e,selectors:[["option"]],inputs:{ngValue:"ngValue",value:"value"}}),e})();const TA={provide:jt,useExisting:ue(()=>ru),multi:!0};function Q_(e,n){return null==e?`${n}`:("string"==typeof n&&(n=`'${n}'`),n&&"object"==typeof n&&(n="Object"),`${e}: ${n}`.slice(0,50))}let ru=(()=>{class e extends $n{constructor(){super(...arguments),this._optionMap=new Map,this._idCounter=0,this._compareWith=Object.is}set compareWith(t){this._compareWith=t}writeValue(t){let r;if(this.value=t,Array.isArray(t)){const o=t.map(i=>this._getOptionId(i));r=(i,s)=>{i._setSelected(o.indexOf(s.toString())>-1)}}else r=(o,i)=>{o._setSelected(!1)};this._optionMap.forEach(r)}registerOnChange(t){this.onChange=r=>{const o=[],i=r.selectedOptions;if(void 0!==i){const s=i;for(let a=0;a{class e{constructor(t,r,o){this._element=t,this._renderer=r,this._select=o,this._select&&(this.id=this._select._registerOption(this))}set ngValue(t){null!=this._select&&(this._value=t,this._setElementValue(Q_(this.id,t)),this._select.writeValue(this._select.value))}set value(t){this._select?(this._value=t,this._setElementValue(Q_(this.id,t)),this._select.writeValue(this._select.value)):this._setElementValue(t)}_setElementValue(t){this._renderer.setProperty(this._element.nativeElement,"value",t)}_setSelected(t){this._renderer.setProperty(this._element.nativeElement,"selected",t)}ngOnDestroy(){this._select&&(this._select._optionMap.delete(this.id),this._select.writeValue(this._select.value))}}return e.\u0275fac=function(t){return new(t||e)(M(Dt),M(Rn),M(ru,9))},e.\u0275dir=$({type:e,selectors:[["option"]],inputs:{ngValue:"ngValue",value:"value"}}),e})(),BA=(()=>{class e{}return e.\u0275fac=function(t){return new(t||e)},e.\u0275mod=an({type:e}),e.\u0275inj=$t({imports:[$_]}),e})(),jA=(()=>{class e{static withConfig(t){return{ngModule:e,providers:[{provide:xo,useValue:t.callSetDisabledState??Wc}]}}}return e.\u0275fac=function(t){return new(t||e)},e.\u0275mod=an({type:e}),e.\u0275inj=$t({imports:[BA]}),e})();class iv{constructor(){this.riskHotspotsSettings=null,this.coverageInfoSettings=null}}class $A{constructor(){this.showLineCoverage=!0,this.showBranchCoverage=!0,this.showMethodCoverage=!0,this.visibleMetrics=[],this.groupingMaximum=0,this.grouping=0,this.historyComparisionDate="",this.historyComparisionType="",this.filter="",this.sortBy="name",this.sortOrder="asc",this.collapseStates=[]}}class UA{constructor(n){this.et="",this.et=n.et,this.cl=n.cl,this.ucl=n.ucl,this.cal=n.cal,this.tl=n.tl,this.lcq=n.lcq,this.cb=n.cb,this.tb=n.tb,this.bcq=n.bcq,this.cm=n.cm,this.tm=n.tm,this.mcq=n.mcq}get coverageRatioText(){return 0===this.tl?"-":this.cl+"/"+this.cal}get branchCoverageRatioText(){return 0===this.tb?"-":this.cb+"/"+this.tb}get methodCoverageRatioText(){return 0===this.tm?"-":this.cm+"/"+this.tm}}class yn{static roundNumber(n,t){return Math.floor(n*Math.pow(10,t))/Math.pow(10,t)}static getNthOrLastIndexOf(n,t,r){let o=0,i=-1,s=-1;for(;o{this.historicCoverages.push(new UA(r))}),this.metrics=n.metrics}get coverage(){return 0===this.coverableLines?"-"!==this.coverageByMethod?parseFloat(this.coverageByMethod):NaN:yn.roundNumber(100*this.coveredLines/this.coverableLines,1)}get coverageType(){return 0===this.coverableLines?"-"!==this.coverageByMethod?this._coverageType:"":this._coverageType}visible(n,t){if(""!==n&&-1===this.name.toLowerCase().indexOf(n.toLowerCase()))return!1;if(""===t||null===this.currentHistoricCoverage)return!0;if("allChanges"===t){if(this.coveredLines===this.currentHistoricCoverage.cl&&this.uncoveredLines===this.currentHistoricCoverage.ucl&&this.coverableLines===this.currentHistoricCoverage.cal&&this.totalLines===this.currentHistoricCoverage.tl&&this.coveredBranches===this.currentHistoricCoverage.cb&&this.totalBranches===this.currentHistoricCoverage.tb&&this.coveredMethods===this.currentHistoricCoverage.cm&&this.totalMethods===this.currentHistoricCoverage.tm)return!1}else if("lineCoverageIncreaseOnly"===t){let r=this.coverage;if(isNaN(r)||r<=this.currentHistoricCoverage.lcq)return!1}else if("lineCoverageDecreaseOnly"===t){let r=this.coverage;if(isNaN(r)||r>=this.currentHistoricCoverage.lcq)return!1}else if("branchCoverageIncreaseOnly"===t){let r=this.branchCoverage;if(isNaN(r)||r<=this.currentHistoricCoverage.bcq)return!1}else if("branchCoverageDecreaseOnly"===t){let r=this.branchCoverage;if(isNaN(r)||r>=this.currentHistoricCoverage.bcq)return!1}else if("methodCoverageIncreaseOnly"===t){let r=this.methodCoverage;if(isNaN(r)||r<=this.currentHistoricCoverage.mcq)return!1}else if("methodCoverageDecreaseOnly"===t){let r=this.methodCoverage;if(isNaN(r)||r>=this.currentHistoricCoverage.mcq)return!1}return!0}updateCurrentHistoricCoverage(n){if(this.currentHistoricCoverage=null,""!==n)for(let t=0;t-1&&null===t}visible(n,t){if(""!==n&&this.name.toLowerCase().indexOf(n.toLowerCase())>-1)return!0;for(let r=0;rt.name===n.name)}toggleMetric(n){let t=this.visibleMetrics.find(r=>r.name===n.name);t?this.visibleMetrics.splice(this.visibleMetrics.indexOf(t),1):this.visibleMetrics.push(n),this.visibleMetrics=[...this.visibleMetrics],this.visibleMetricsChange.emit(this.visibleMetrics)}close(){this.visible=!1,this.visibleChange.emit(this.visible)}cancelEvent(n){n.stopPropagation()}}function KA(e,n){1&e&&N(0,"td",3)}function JA(e,n){1&e&&N(0,"td"),2&e&&Bt("green ",_().greenClass,"")}function XA(e,n){1&e&&N(0,"td"),2&e&&Bt("red ",_().redClass,"")}ko.\u0275fac=function(n){return new(n||ko)},ko.\u0275cmp=Nt({type:ko,selectors:[["popup"]],inputs:{visible:"visible",translations:"translations",branchCoverageAvailable:"branchCoverageAvailable",methodCoverageAvailable:"methodCoverageAvailable",metrics:"metrics",showLineCoverage:"showLineCoverage",showBranchCoverage:"showBranchCoverage",showMethodCoverage:"showMethodCoverage",visibleMetrics:"visibleMetrics"},outputs:{visibleChange:"visibleChange",showLineCoverageChange:"showLineCoverageChange",showBranchCoverageChange:"showBranchCoverageChange",showMethodCoverageChange:"showMethodCoverageChange",visibleMetricsChange:"visibleMetricsChange"},decls:17,vars:9,consts:[[1,"popup-container",3,"click"],[1,"popup",3,"click"],[1,"close",3,"click"],[1,"mt-1"],["type","checkbox",3,"ngModel","ngModelChange","change"],["class","mt-1",4,"ngIf"],["type","checkbox",3,"ngModel","disabled","ngModelChange","change"],[3,"translations",4,"ngIf"],[4,"ngIf"],[3,"translations"],["class","mt-1",4,"ngFor","ngForOf"],["type","checkbox",3,"checked","disabled","change"],["target","_blank",3,"href",4,"ngIf"],["target","_blank",3,"href"],[1,"icon-info-circled"]],template:function(n,t){1&n&&(y(0,"div",0),k("click",function(){return t.close()}),y(1,"div",1),k("click",function(o){return t.cancelEvent(o)}),y(2,"div",2),k("click",function(){return t.close()}),w(3,"X"),v(),y(4,"b"),w(5),v(),y(6,"div",3)(7,"label")(8,"input",4),k("ngModelChange",function(o){return t.showLineCoverage=o})("change",function(){return t.showLineCoverageChange.emit(t.showLineCoverage)}),v(),w(9),v()(),C(10,GA,4,2,"div",5),y(11,"div",3)(12,"label")(13,"input",6),k("ngModelChange",function(o){return t.showMethodCoverage=o})("change",function(){return t.showMethodCoverageChange.emit(t.showMethodCoverage)}),v(),w(14),v(),C(15,WA,1,1,"pro-button",7),v(),C(16,YA,7,3,"ng-container",8),v()()),2&n&&(f(5),F(t.translations.coverageTypes),f(3),g("ngModel",t.showLineCoverage),f(1),G(" ",t.translations.coverage,""),f(1),g("ngIf",t.branchCoverageAvailable),f(3),g("ngModel",t.showMethodCoverage)("disabled",!t.methodCoverageAvailable),f(1),G(" ",t.translations.methodCoverage,""),f(1),g("ngIf",!t.methodCoverageAvailable),f(1),g("ngIf",t.metrics.length>0))},dependencies:[xr,jn,kc,ys,Oo,Po],encapsulation:2});class Fr{constructor(){this.grayVisible=!0,this.greenVisible=!1,this.redVisible=!1,this.greenClass="",this.redClass="",this._percentage=NaN}get percentage(){return this._percentage}set percentage(n){this._percentage=n,this.grayVisible=isNaN(n),this.greenVisible=!isNaN(n)&&Math.round(n)>0,this.redVisible=!isNaN(n)&&100-Math.round(n)>0,this.greenClass="covered"+Math.round(n),this.redClass="covered"+(100-Math.round(n))}}function tT(e,n){if(1&e&&(y(0,"th",5),w(1),v()),2&e){const t=_();f(1),F(t.element.coveredLines)}}function nT(e,n){if(1&e&&(y(0,"th",5),w(1),v()),2&e){const t=_();f(1),F(t.element.uncoveredLines)}}function rT(e,n){if(1&e&&(y(0,"th",5),w(1),v()),2&e){const t=_();f(1),F(t.element.coverableLines)}}function oT(e,n){if(1&e&&(y(0,"th",5),w(1),v()),2&e){const t=_();f(1),F(t.element.totalLines)}}function iT(e,n){if(1&e&&(y(0,"th",6),w(1),v()),2&e){const t=_();g("title",t.element.coverageRatioText),f(1),F(t.element.coveragePercentage)}}function sT(e,n){if(1&e&&(y(0,"th",5),N(1,"coverage-bar",7),v()),2&e){const t=_();f(1),g("percentage",t.element.coverage)}}function aT(e,n){if(1&e&&(y(0,"th",5),w(1),v()),2&e){const t=_();f(1),F(t.element.coveredBranches)}}function lT(e,n){if(1&e&&(y(0,"th",5),w(1),v()),2&e){const t=_();f(1),F(t.element.totalBranches)}}function cT(e,n){if(1&e&&(y(0,"th",6),w(1),v()),2&e){const t=_();g("title",t.element.branchCoverageRatioText),f(1),F(t.element.branchCoveragePercentage)}}function uT(e,n){if(1&e&&(y(0,"th",5),N(1,"coverage-bar",7),v()),2&e){const t=_();f(1),g("percentage",t.element.branchCoverage)}}function dT(e,n){if(1&e&&(y(0,"th",5),w(1),v()),2&e){const t=_();f(1),F(t.element.coveredMethods)}}function fT(e,n){if(1&e&&(y(0,"th",5),w(1),v()),2&e){const t=_();f(1),F(t.element.totalMethods)}}function hT(e,n){if(1&e&&(y(0,"th",6),w(1),v()),2&e){const t=_();g("title",t.element.methodCoverageRatioText),f(1),F(t.element.methodCoveragePercentage)}}function pT(e,n){if(1&e&&(y(0,"th",5),N(1,"coverage-bar",7),v()),2&e){const t=_();f(1),g("percentage",t.element.methodCoverage)}}function gT(e,n){1&e&&N(0,"th",5)}Fr.\u0275fac=function(n){return new(n||Fr)},Fr.\u0275cmp=Nt({type:Fr,selectors:[["coverage-bar"]],inputs:{percentage:"percentage"},decls:4,vars:3,consts:[[1,"coverage"],["class","gray covered100",4,"ngIf"],[3,"class",4,"ngIf"],[1,"gray","covered100"]],template:function(n,t){1&n&&(y(0,"table",0),C(1,KA,1,0,"td",1),C(2,JA,1,3,"td",2),C(3,XA,1,3,"td",2),v()),2&n&&(f(1),g("ngIf",t.grayVisible),f(1),g("ngIf",t.greenVisible),f(1),g("ngIf",t.redVisible))},dependencies:[jn],encapsulation:2,changeDetection:0});const mT=function(e,n){return{"icon-plus":e,"icon-minus":n}};class Lo{constructor(){this.collapsed=!1,this.lineCoverageAvailable=!1,this.branchCoverageAvailable=!1,this.methodCoverageAvailable=!1,this.visibleMetrics=[]}}Lo.\u0275fac=function(n){return new(n||Lo)},Lo.\u0275cmp=Nt({type:Lo,selectors:[["","codeelement-row",""]],inputs:{element:"element",collapsed:"collapsed",lineCoverageAvailable:"lineCoverageAvailable",branchCoverageAvailable:"branchCoverageAvailable",methodCoverageAvailable:"methodCoverageAvailable",visibleMetrics:"visibleMetrics"},attrs:["codeelement-row",""],decls:19,vars:20,consts:[["href","#",3,"click"],[3,"ngClass"],["class","right",4,"ngIf"],["class","right",3,"title",4,"ngIf"],["class","right",4,"ngFor","ngForOf"],[1,"right"],[1,"right",3,"title"],[3,"percentage"]],template:function(n,t){1&n&&(y(0,"th")(1,"a",0),k("click",function(o){return t.element.toggleCollapse(o)}),N(2,"i",1),w(3),v()(),C(4,tT,2,1,"th",2),C(5,nT,2,1,"th",2),C(6,rT,2,1,"th",2),C(7,oT,2,1,"th",2),C(8,iT,2,2,"th",3),C(9,sT,2,1,"th",2),C(10,aT,2,1,"th",2),C(11,lT,2,1,"th",2),C(12,cT,2,2,"th",3),C(13,uT,2,1,"th",2),C(14,dT,2,1,"th",2),C(15,fT,2,1,"th",2),C(16,hT,2,2,"th",3),C(17,pT,2,1,"th",2),C(18,gT,1,0,"th",4)),2&n&&(f(2),g("ngClass",Vl(17,mT,t.element.collapsed,!t.element.collapsed)),f(1),G(" ",t.element.name,""),f(1),g("ngIf",t.lineCoverageAvailable),f(1),g("ngIf",t.lineCoverageAvailable),f(1),g("ngIf",t.lineCoverageAvailable),f(1),g("ngIf",t.lineCoverageAvailable),f(1),g("ngIf",t.lineCoverageAvailable),f(1),g("ngIf",t.lineCoverageAvailable),f(1),g("ngIf",t.branchCoverageAvailable),f(1),g("ngIf",t.branchCoverageAvailable),f(1),g("ngIf",t.branchCoverageAvailable),f(1),g("ngIf",t.branchCoverageAvailable),f(1),g("ngIf",t.methodCoverageAvailable),f(1),g("ngIf",t.methodCoverageAvailable),f(1),g("ngIf",t.methodCoverageAvailable),f(1),g("ngIf",t.methodCoverageAvailable),f(1),g("ngForOf",t.visibleMetrics))},dependencies:[bo,xr,jn,Fr],encapsulation:2,changeDetection:0});class Vo{constructor(){this.path=null,this._historicCoverages=[]}get historicCoverages(){return this._historicCoverages}set historicCoverages(n){if(this._historicCoverages=n,n.length>1){let t="";for(let r=0;r1),f(1),g("ngIf",null!==t.clazz.currentHistoricCoverage),f(1),g("ngIf",null===t.clazz.currentHistoricCoverage)}}function LT(e,n){if(1&e&&(y(0,"td",6),N(1,"coverage-bar",12),v()),2&e){const t=_();f(1),g("percentage",t.clazz.coverage)}}function VT(e,n){if(1&e&&(J(0),y(1,"div"),w(2),v(),y(3,"div",7),w(4),v(),X()),2&e){const t=_(2);f(1),Bt("currenthistory ",t.getClassName(t.clazz.coveredBranches,t.clazz.currentHistoricCoverage.cb),""),f(1),G(" ",t.clazz.coveredBranches," "),f(1),g("title",t.clazz.currentHistoricCoverage.et),f(1),G(" ",t.clazz.currentHistoricCoverage.cb," ")}}function BT(e,n){if(1&e&&(J(0),w(1),X()),2&e){const t=_(2);f(1),G(" ",t.clazz.coveredBranches," ")}}function HT(e,n){if(1&e&&(y(0,"td",6),C(1,VT,5,6,"ng-container",1),C(2,BT,2,1,"ng-container",1),v()),2&e){const t=_();f(1),g("ngIf",null!==t.clazz.currentHistoricCoverage),f(1),g("ngIf",null===t.clazz.currentHistoricCoverage)}}function jT(e,n){if(1&e&&(J(0),y(1,"div",8),w(2),v(),y(3,"div",7),w(4),v(),X()),2&e){const t=_(2);f(2),F(t.clazz.totalBranches),f(1),g("title",t.clazz.currentHistoricCoverage.et),f(1),F(t.clazz.currentHistoricCoverage.tb)}}function $T(e,n){if(1&e&&(J(0),w(1),X()),2&e){const t=_(2);f(1),G(" ",t.clazz.totalBranches," ")}}function UT(e,n){if(1&e&&(y(0,"td",6),C(1,jT,5,3,"ng-container",1),C(2,$T,2,1,"ng-container",1),v()),2&e){const t=_();f(1),g("ngIf",null!==t.clazz.currentHistoricCoverage),f(1),g("ngIf",null===t.clazz.currentHistoricCoverage)}}function zT(e,n){if(1&e&&N(0,"div",14),2&e){const t=_(2);fn("title",t.translations.history+": "+t.translations.branchCoverage),g("historicCoverages",t.clazz.branchCoverageHistory)("ngClass",Zi(3,au,null!==t.clazz.currentHistoricCoverage))}}function GT(e,n){if(1&e&&(J(0),y(1,"div"),w(2),v(),y(3,"div",7),w(4),v(),X()),2&e){const t=_(2);f(1),Bt("currenthistory ",t.getClassName(t.clazz.branchCoverage,t.clazz.currentHistoricCoverage.bcq),""),f(1),G(" ",t.clazz.branchCoveragePercentage," "),f(1),g("title",t.clazz.currentHistoricCoverage.et+": "+t.clazz.currentHistoricCoverage.branchCoverageRatioText),f(1),G("",t.clazz.currentHistoricCoverage.bcq,"%")}}function WT(e,n){if(1&e&&(J(0),w(1),X()),2&e){const t=_(2);f(1),G(" ",t.clazz.branchCoveragePercentage," ")}}function qT(e,n){if(1&e&&(y(0,"td",9),C(1,zT,1,5,"div",13),C(2,GT,5,6,"ng-container",1),C(3,WT,2,1,"ng-container",1),v()),2&e){const t=_();g("title",t.clazz.branchCoverageRatioText),f(1),g("ngIf",t.clazz.branchCoverageHistory.length>1),f(1),g("ngIf",null!==t.clazz.currentHistoricCoverage),f(1),g("ngIf",null===t.clazz.currentHistoricCoverage)}}function ZT(e,n){if(1&e&&(y(0,"td",6),N(1,"coverage-bar",12),v()),2&e){const t=_();f(1),g("percentage",t.clazz.branchCoverage)}}function QT(e,n){if(1&e&&(J(0),y(1,"div"),w(2),v(),y(3,"div",7),w(4),v(),X()),2&e){const t=_(2);f(1),Bt("currenthistory ",t.getClassName(t.clazz.coveredMethods,t.clazz.currentHistoricCoverage.cm),""),f(1),G(" ",t.clazz.coveredMethods," "),f(1),g("title",t.clazz.currentHistoricCoverage.et),f(1),G(" ",t.clazz.currentHistoricCoverage.cm," ")}}function YT(e,n){if(1&e&&(J(0),w(1),X()),2&e){const t=_(2);f(1),G(" ",t.clazz.coveredMethods," ")}}function KT(e,n){if(1&e&&(y(0,"td",6),C(1,QT,5,6,"ng-container",1),C(2,YT,2,1,"ng-container",1),v()),2&e){const t=_();f(1),g("ngIf",null!==t.clazz.currentHistoricCoverage),f(1),g("ngIf",null===t.clazz.currentHistoricCoverage)}}function JT(e,n){if(1&e&&(J(0),y(1,"div",8),w(2),v(),y(3,"div",7),w(4),v(),X()),2&e){const t=_(2);f(2),F(t.clazz.totalMethods),f(1),g("title",t.clazz.currentHistoricCoverage.et),f(1),F(t.clazz.currentHistoricCoverage.tm)}}function XT(e,n){if(1&e&&(J(0),w(1),X()),2&e){const t=_(2);f(1),G(" ",t.clazz.totalMethods," ")}}function ex(e,n){if(1&e&&(y(0,"td",6),C(1,JT,5,3,"ng-container",1),C(2,XT,2,1,"ng-container",1),v()),2&e){const t=_();f(1),g("ngIf",null!==t.clazz.currentHistoricCoverage),f(1),g("ngIf",null===t.clazz.currentHistoricCoverage)}}function tx(e,n){if(1&e&&N(0,"div",16),2&e){const t=_(2);fn("title",t.translations.history+": "+t.translations.methodCoverage),g("historicCoverages",t.clazz.methodCoverageHistory)("ngClass",Zi(3,au,null!==t.clazz.currentHistoricCoverage))}}function nx(e,n){if(1&e&&(J(0),y(1,"div"),w(2),v(),y(3,"div",7),w(4),v(),X()),2&e){const t=_(2);f(1),Bt("currenthistory ",t.getClassName(t.clazz.methodCoverage,t.clazz.currentHistoricCoverage.mcq),""),f(1),G(" ",t.clazz.methodCoveragePercentage," "),f(1),g("title",t.clazz.currentHistoricCoverage.et+": "+t.clazz.currentHistoricCoverage.methodCoverageRatioText),f(1),G("",t.clazz.currentHistoricCoverage.mcq,"%")}}function rx(e,n){if(1&e&&(J(0),w(1),X()),2&e){const t=_(2);f(1),G(" ",t.clazz.methodCoveragePercentage," ")}}function ox(e,n){if(1&e&&(y(0,"td",9),C(1,tx,1,5,"div",15),C(2,nx,5,6,"ng-container",1),C(3,rx,2,1,"ng-container",1),v()),2&e){const t=_();g("title",t.clazz.methodCoverageRatioText),f(1),g("ngIf",t.clazz.methodCoverageHistory.length>1),f(1),g("ngIf",null!==t.clazz.currentHistoricCoverage),f(1),g("ngIf",null===t.clazz.currentHistoricCoverage)}}function ix(e,n){if(1&e&&(y(0,"td",6),N(1,"coverage-bar",12),v()),2&e){const t=_();f(1),g("percentage",t.clazz.methodCoverage)}}function sx(e,n){if(1&e&&(y(0,"td",6),w(1),v()),2&e){const t=n.$implicit,r=_();f(1),F(r.clazz.metrics[t.abbreviation])}}class Bo{constructor(){this.translations={},this.lineCoverageAvailable=!1,this.branchCoverageAvailable=!1,this.methodCoverageAvailable=!1,this.visibleMetrics=[],this.historyComparisionDate=""}getClassName(n,t){return n>t?"lightgreen":n0),f(2),G(" ",t.translations.grouping," "),f(1),g("max",t.settings.groupingMaximum)("ngModel",t.settings.grouping),f(2),g("ngIf",t.historicCoverageExecutionTimes.length>0),f(5),F(t.metrics.length>0?t.translations.selectCoverageTypesAndMetrics:t.translations.selectCoverageTypes),f(4),G("",t.translations.filter," "),f(1),g("ngModel",t.settings.filter),f(5),g("ngIf",t.settings.showLineCoverage),f(1),g("ngIf",t.settings.showLineCoverage),f(1),g("ngIf",t.settings.showLineCoverage),f(1),g("ngIf",t.settings.showLineCoverage),f(1),g("ngIf",t.settings.showLineCoverage),f(1),g("ngIf",t.settings.showLineCoverage),f(1),g("ngIf",t.branchCoverageAvailable&&t.settings.showBranchCoverage),f(1),g("ngIf",t.branchCoverageAvailable&&t.settings.showBranchCoverage),f(1),g("ngIf",t.branchCoverageAvailable&&t.settings.showBranchCoverage),f(1),g("ngIf",t.branchCoverageAvailable&&t.settings.showBranchCoverage),f(1),g("ngIf",t.methodCoverageAvailable&&t.settings.showMethodCoverage),f(1),g("ngIf",t.methodCoverageAvailable&&t.settings.showMethodCoverage),f(1),g("ngIf",t.methodCoverageAvailable&&t.settings.showMethodCoverage),f(1),g("ngIf",t.methodCoverageAvailable&&t.settings.showMethodCoverage),f(1),g("ngForOf",t.settings.visibleMetrics),f(4),g("ngIf",t.settings.showLineCoverage),f(1),g("ngIf",t.branchCoverageAvailable&&t.settings.showBranchCoverage),f(1),g("ngIf",t.methodCoverageAvailable&&t.settings.showMethodCoverage),f(1),g("ngIf",t.settings.visibleMetrics.length>0),f(4),g("ngClass",Oe(47,ct,"name"===t.settings.sortBy&&"desc"===t.settings.sortOrder,"name"===t.settings.sortBy&&"asc"===t.settings.sortOrder,"name"!==t.settings.sortBy)),f(1),F(t.translations.name),f(1),g("ngIf",t.settings.showLineCoverage),f(1),g("ngIf",t.settings.showLineCoverage),f(1),g("ngIf",t.settings.showLineCoverage),f(1),g("ngIf",t.settings.showLineCoverage),f(1),g("ngIf",t.settings.showLineCoverage),f(1),g("ngIf",t.branchCoverageAvailable&&t.settings.showBranchCoverage),f(1),g("ngIf",t.branchCoverageAvailable&&t.settings.showBranchCoverage),f(1),g("ngIf",t.branchCoverageAvailable&&t.settings.showBranchCoverage),f(1),g("ngIf",t.methodCoverageAvailable&&t.settings.showMethodCoverage),f(1),g("ngIf",t.methodCoverageAvailable&&t.settings.showMethodCoverage),f(1),g("ngIf",t.methodCoverageAvailable&&t.settings.showMethodCoverage),f(1),g("ngForOf",t.settings.visibleMetrics),f(2),g("ngForOf",t.codeElements)}}class Ho{constructor(n){this.queryString="",this.historicCoverageExecutionTimes=[],this.branchCoverageAvailable=!1,this.methodCoverageAvailable=!1,this.metrics=[],this.codeElements=[],this.translations={},this.popupVisible=!1,this.settings=new $A,this.window=n.nativeWindow}ngOnInit(){this.historicCoverageExecutionTimes=this.window.historicCoverageExecutionTimes,this.branchCoverageAvailable=this.window.branchCoverageAvailable,this.methodCoverageAvailable=this.window.methodCoverageAvailable,this.metrics=this.window.metrics,this.translations=this.window.translations;let n=!1;if(void 0!==this.window.history&&void 0!==this.window.history.replaceState&&null!==this.window.history.state&&null!=this.window.history.state.coverageInfoSettings)console.log("Coverage info: Restoring from history",this.window.history.state.coverageInfoSettings),n=!0,this.settings=JSON.parse(JSON.stringify(this.window.history.state.coverageInfoSettings));else{let r=0,o=this.window.assemblies;for(let i=0;i-1&&(this.queryString=window.location.href.substring(t)),this.updateCoverageInfo(),n&&this.restoreCollapseState()}onBeforeUnload(){if(this.saveCollapseState(),void 0!==this.window.history&&void 0!==this.window.history.replaceState){console.log("Coverage info: Updating history",this.settings);let n=new iv;null!==window.history.state&&(n=JSON.parse(JSON.stringify(this.window.history.state))),n.coverageInfoSettings=JSON.parse(JSON.stringify(this.settings)),window.history.replaceState(n,"")}}updateCoverageInfo(){let n=(new Date).getTime(),t=this.window.assemblies,r=[],o=0;if(0===this.settings.grouping)for(let a=0;a{for(let r=0;r{for(let o=0;on&&(r[o].collapsed=this.settings.collapseStates[n]),n++,t(r[o].subElements)};t(this.codeElements)}}Ho.\u0275fac=function(n){return new(n||Ho)(M(Dn))},Ho.\u0275cmp=Nt({type:Ho,selectors:[["coverage-info"]],hostBindings:function(n,t){1&n&&k("beforeunload",function(){return t.onBeforeUnload()},0,ol)},decls:1,vars:1,consts:[[4,"ngIf"],[3,"visible","translations","branchCoverageAvailable","methodCoverageAvailable","metrics","showLineCoverage","showBranchCoverage","showMethodCoverage","visibleMetrics","visibleChange","showLineCoverageChange","showBranchCoverageChange","showMethodCoverageChange","visibleMetricsChange",4,"ngIf"],[1,"customizebox"],["href","#",3,"click"],[1,"center"],["type","range","step","1","min","-1",3,"max","ngModel","ngModelChange"],[1,"right"],["type","button",3,"click"],[1,"icon-cog"],["type","text",3,"ngModel","ngModelChange"],[1,"table-responsive"],[1,"overview","table-fixed","stripped"],[1,"column-min-200"],["class","column90",4,"ngIf"],["class","column105",4,"ngIf"],["class","column100",4,"ngIf"],["class","column70",4,"ngIf"],["class","column98",4,"ngIf"],["class","column112",4,"ngIf"],["class","column112",4,"ngFor","ngForOf"],[1,"header"],["class","center","colspan","6",4,"ngIf"],["class","center","colspan","4",4,"ngIf"],["class","center",4,"ngIf"],[1,"icon-down-dir",3,"ngClass"],["class","right",4,"ngIf"],["class","center","colspan","2",4,"ngIf"],[4,"ngFor","ngForOf"],[3,"visible","translations","branchCoverageAvailable","methodCoverageAvailable","metrics","showLineCoverage","showBranchCoverage","showMethodCoverage","visibleMetrics","visibleChange","showLineCoverageChange","showBranchCoverageChange","showMethodCoverageChange","visibleMetricsChange"],[3,"ngModel","ngModelChange"],["value",""],[3,"value",4,"ngFor","ngForOf"],[3,"value"],["value","allChanges"],["value","lineCoverageIncreaseOnly"],["value","lineCoverageDecreaseOnly"],["value","branchCoverageIncreaseOnly",4,"ngIf"],["value","branchCoverageDecreaseOnly",4,"ngIf"],["value","methodCoverageIncreaseOnly",4,"ngIf"],["value","methodCoverageDecreaseOnly",4,"ngIf"],["value","branchCoverageIncreaseOnly"],["value","branchCoverageDecreaseOnly"],["value","methodCoverageIncreaseOnly"],["value","methodCoverageDecreaseOnly"],[1,"column90"],[1,"column105"],[1,"column100"],[1,"column70"],[1,"column98"],[1,"column112"],["colspan","6",1,"center"],["colspan","4",1,"center"],["colspan","2",1,"center"],["target","_blank",3,"href"],[1,"icon-info-circled"],["codeelement-row","",3,"element","collapsed","lineCoverageAvailable","branchCoverageAvailable","methodCoverageAvailable","visibleMetrics",4,"ngIf"],["codeelement-row","",3,"element","collapsed","lineCoverageAvailable","branchCoverageAvailable","methodCoverageAvailable","visibleMetrics"],["class-row","",3,"clazz","translations","lineCoverageAvailable","branchCoverageAvailable","methodCoverageAvailable","visibleMetrics","historyComparisionDate",4,"ngIf"],["class-row","",3,"clazz","translations","lineCoverageAvailable","branchCoverageAvailable","methodCoverageAvailable","visibleMetrics","historyComparisionDate"],["codeelement-row","",1,"namespace",3,"element","collapsed","lineCoverageAvailable","branchCoverageAvailable","methodCoverageAvailable","visibleMetrics"],["class","namespace","class-row","",3,"clazz","translations","lineCoverageAvailable","branchCoverageAvailable","methodCoverageAvailable","visibleMetrics","historyComparisionDate",4,"ngIf"],["class-row","",1,"namespace",3,"clazz","translations","lineCoverageAvailable","branchCoverageAvailable","methodCoverageAvailable","visibleMetrics","historyComparisionDate"]],template:function(n,t){1&n&&C(0,oN,73,51,"div",0),2&n&&g("ngIf",t.codeElements.length>0)},dependencies:[bo,xr,jn,nu,ou,So,Jc,Ro,ys,Oo,ko,Lo,Bo],encapsulation:2});class iN{constructor(){this.assembly="",this.numberOfRiskHotspots=10,this.filter="",this.sortBy="",this.sortOrder="asc"}}function sN(e,n){if(1&e&&(y(0,"option",15),w(1),v()),2&e){const t=n.$implicit;g("value",t),f(1),F(t)}}function aN(e,n){if(1&e&&(y(0,"span"),w(1),v()),2&e){const t=_(2);f(1),F(t.translations.top)}}function lN(e,n){1&e&&(y(0,"option",22),w(1,"20"),v())}function cN(e,n){1&e&&(y(0,"option",23),w(1,"50"),v())}function uN(e,n){1&e&&(y(0,"option",24),w(1,"100"),v())}function dN(e,n){if(1&e&&(y(0,"option",15),w(1),v()),2&e){const t=_(3);g("value",t.totalNumberOfRiskHotspots),f(1),F(t.translations.all)}}function fN(e,n){if(1&e){const t=Ce();y(0,"select",16),k("ngModelChange",function(o){return Q(t),Y(_(2).settings.numberOfRiskHotspots=o)}),y(1,"option",17),w(2,"10"),v(),C(3,lN,2,0,"option",18),C(4,cN,2,0,"option",19),C(5,uN,2,0,"option",20),C(6,dN,2,2,"option",21),v()}if(2&e){const t=_(2);g("ngModel",t.settings.numberOfRiskHotspots),f(3),g("ngIf",t.totalNumberOfRiskHotspots>10),f(1),g("ngIf",t.totalNumberOfRiskHotspots>20),f(1),g("ngIf",t.totalNumberOfRiskHotspots>50),f(1),g("ngIf",t.totalNumberOfRiskHotspots>100)}}function hN(e,n){1&e&&N(0,"col",25)}const Ss=function(e,n,t){return{"icon-up-dir_active":e,"icon-down-dir_active":n,"icon-down-dir":t}};function pN(e,n){if(1&e){const t=Ce();y(0,"th")(1,"a",12),k("click",function(o){const s=Q(t).index;return Y(_(2).updateSorting(""+s,o))}),N(2,"i",13),w(3),v(),y(4,"a",26),N(5,"i",27),v()()}if(2&e){const t=n.$implicit,r=n.index,o=_(2);f(2),g("ngClass",Oe(3,Ss,o.settings.sortBy===""+r&&"desc"===o.settings.sortOrder,o.settings.sortBy===""+r&&"asc"===o.settings.sortOrder,o.settings.sortBy!==""+r)),f(1),F(t.name),f(1),fn("href",t.explanationUrl,un)}}const gN=function(e,n){return{lightred:e,lightgreen:n}};function mN(e,n){if(1&e&&(y(0,"td",31),w(1),v()),2&e){const t=n.$implicit;g("ngClass",Vl(2,gN,t.exceeded,!t.exceeded)),f(1),F(t.value)}}function _N(e,n){if(1&e&&(y(0,"tr")(1,"td"),w(2),v(),y(3,"td")(4,"a",28),w(5),v()(),y(6,"td",29)(7,"a",28),w(8),v()(),C(9,mN,2,5,"td",30),v()),2&e){const t=n.$implicit,r=_(2);f(2),F(t.assembly),f(2),g("href",t.reportPath+r.queryString,un),f(1),F(t.class),f(1),g("title",t.methodName),f(1),g("href",t.reportPath+r.queryString+"#file"+t.fileIndex+"_line"+t.line,un),f(1),G(" ",t.methodShortName," "),f(1),g("ngForOf",t.metrics)}}function vN(e,n){if(1&e){const t=Ce();y(0,"div")(1,"div",1)(2,"div")(3,"select",2),k("ngModelChange",function(o){return Q(t),Y(_().settings.assembly=o)})("ngModelChange",function(){return Q(t),Y(_().updateRiskHotpots())}),y(4,"option",3),w(5),v(),C(6,sN,2,2,"option",4),v()(),y(7,"div",5),C(8,aN,2,1,"span",0),C(9,fN,7,5,"select",6),v(),N(10,"div",5),y(11,"div",7)(12,"span"),w(13),v(),y(14,"input",8),k("ngModelChange",function(o){return Q(t),Y(_().settings.filter=o)})("ngModelChange",function(){return Q(t),Y(_().updateRiskHotpots())}),v()()(),y(15,"div",9)(16,"table",10)(17,"colgroup"),N(18,"col")(19,"col")(20,"col"),C(21,hN,1,0,"col",11),v(),y(22,"thead")(23,"tr")(24,"th")(25,"a",12),k("click",function(o){return Q(t),Y(_().updateSorting("assembly",o))}),N(26,"i",13),w(27),v()(),y(28,"th")(29,"a",12),k("click",function(o){return Q(t),Y(_().updateSorting("class",o))}),N(30,"i",13),w(31),v()(),y(32,"th")(33,"a",12),k("click",function(o){return Q(t),Y(_().updateSorting("method",o))}),N(34,"i",13),w(35),v()(),C(36,pN,6,7,"th",14),v()(),y(37,"tbody"),C(38,_N,10,7,"tr",14),function gg(e,n){const t=ee();let r;const o=e+22;t.firstCreatePass?(r=function kE(e,n){if(n)for(let t=n.length-1;t>=0;t--){const r=n[t];if(e===r.name)return r}}(n,t.pipeRegistry),t.data[o]=r,r.onDestroy&&(t.destroyHooks||(t.destroyHooks=[])).push(o,r.onDestroy)):r=t.data[o];const i=r.factory||(r.factory=Sn(r.type)),s=dt(M);try{const a=fi(!1),l=i();return fi(a),function bb(e,n,t,r){t>=e.data.length&&(e.data[t]=null,e.blueprint[t]=null),n[t]=r}(t,E(),o,l),l}finally{dt(s)}}(39,"slice"),v()()()()}if(2&e){const t=_();f(3),g("ngModel",t.settings.assembly),f(2),F(t.translations.assembly),f(1),g("ngForOf",t.assemblies),f(2),g("ngIf",t.totalNumberOfRiskHotspots>10),f(1),g("ngIf",t.totalNumberOfRiskHotspots>10),f(4),G("",t.translations.filter," "),f(1),g("ngModel",t.settings.filter),f(7),g("ngForOf",t.riskHotspotMetrics),f(5),g("ngClass",Oe(20,Ss,"assembly"===t.settings.sortBy&&"desc"===t.settings.sortOrder,"assembly"===t.settings.sortBy&&"asc"===t.settings.sortOrder,"assembly"!==t.settings.sortBy)),f(1),F(t.translations.assembly),f(3),g("ngClass",Oe(24,Ss,"class"===t.settings.sortBy&&"desc"===t.settings.sortOrder,"class"===t.settings.sortBy&&"asc"===t.settings.sortOrder,"class"!==t.settings.sortBy)),f(1),F(t.translations.class),f(3),g("ngClass",Oe(28,Ss,"method"===t.settings.sortBy&&"desc"===t.settings.sortOrder,"method"===t.settings.sortBy&&"asc"===t.settings.sortOrder,"method"!==t.settings.sortBy)),f(1),F(t.translations.method),f(1),g("ngForOf",t.riskHotspotMetrics),f(2),g("ngForOf",function mg(e,n,t,r,o){const i=e+22,s=E(),a=function Kn(e,n){return e[n]}(s,i);return function _o(e,n){return e[1].data[n].pure}(s,i)?fg(s,qe(),n,a.transform,t,r,o,a):a.transform(t,r,o)}(39,16,t.riskHotspots,0,t.settings.numberOfRiskHotspots))}}class jo{constructor(n){this.queryString="",this.riskHotspotMetrics=[],this.riskHotspots=[],this.totalNumberOfRiskHotspots=0,this.assemblies=[],this.translations={},this.settings=new iN,this.window=n.nativeWindow}ngOnInit(){this.riskHotspotMetrics=this.window.riskHotspotMetrics,this.translations=this.window.translations,void 0!==this.window.history&&void 0!==this.window.history.replaceState&&null!==this.window.history.state&&null!=this.window.history.state.riskHotspotsSettings&&(console.log("Risk hotspots: Restoring from history",this.window.history.state.riskHotspotsSettings),this.settings=JSON.parse(JSON.stringify(this.window.history.state.riskHotspotsSettings)));const n=window.location.href.indexOf("?");n>-1&&(this.queryString=window.location.href.substring(n)),this.updateRiskHotpots()}onDonBeforeUnlodad(){if(void 0!==this.window.history&&void 0!==this.window.history.replaceState){console.log("Risk hotspots: Updating history",this.settings);let n=new iv;null!==window.history.state&&(n=JSON.parse(JSON.stringify(this.window.history.state))),n.riskHotspotsSettings=JSON.parse(JSON.stringify(this.settings)),window.history.replaceState(n,"")}}updateRiskHotpots(){const n=this.window.riskHotspots;if(this.totalNumberOfRiskHotspots=n.length,0===this.assemblies.length){let i=[];for(let s=0;s0)},dependencies:[bo,xr,jn,nu,ou,So,Ro,ys,Oo,Om],encapsulation:2});class Or{}Or.\u0275fac=function(n){return new(n||Or)},Or.\u0275mod=an({type:Or,bootstrap:[jo,Ho]}),Or.\u0275inj=$t({providers:[Dn],imports:[DS,jA]}),CS().bootstrapModule(Or).catch(e=>console.error(e))}},me=>{me(me.s=938)}]); \ No newline at end of file diff --git a/docs/resources/reports/Html/report.css b/docs/resources/reports/Html/report.css new file mode 100644 index 00000000..6ace14a3 --- /dev/null +++ b/docs/resources/reports/Html/report.css @@ -0,0 +1,771 @@ +html { font-family: sans-serif; margin: 0; padding: 0; font-size: 0.9em; background-color: #d6d6d6; height: 100%; } +body { margin: 0; padding: 0; height: 100%; color: #000; } +h1 { font-family: 'Century Gothic', sans-serif; font-size: 1.2em; font-weight: normal; color: #fff; background-color: #6f6f6f; padding: 10px; margin: 20px -20px 20px -20px; } +h1:first-of-type { margin-top: 0; } +h2 { font-size: 1.0em; font-weight: bold; margin: 10px 0 15px 0; padding: 0; } +h3 { font-size: 1.0em; font-weight: bold; margin: 0 0 10px 0; padding: 0; display: inline-block; } +input, select, button { border: 1px solid #767676; border-radius: 0; } +button { background-color: #ddd; cursor: pointer; } +a { color: #c00; text-decoration: none; } +a:hover { color: #000; text-decoration: none; } +h1 a.back { color: #fff; background-color: #949494; display: inline-block; margin: -12px 5px -10px -10px; padding: 10px; border-right: 1px solid #fff; } +h1 a.back:hover { background-color: #ccc; } +h1 a.button { color: #000; background-color: #bebebe; margin: -5px 0 0 10px; padding: 5px 8px 5px 8px; border: 1px solid #fff; font-size: 0.9em; border-radius: 3px; float:right; } +h1 a.button:hover { background-color: #ccc; } +h1 a.button i { position: relative; top: 1px; } + +.container { margin: auto; max-width: 1650px; width: 90%; background-color: #fff; display: flex; box-shadow: 0 0 60px #7d7d7d; min-height: 100%; } +.containerleft { padding: 0 20px 20px 20px; flex: 1; min-width: 1%; } +.containerright { width: 340px; min-width: 340px; background-color: #e5e5e5; height: 100%; } +.containerrightfixed { position: fixed; padding: 0 20px 20px 20px; border-left: 1px solid #6f6f6f; width: 300px; overflow-y: auto; height: 100%; top: 0; bottom: 0; } +.containerrightfixed h1 { background-color: #c00; } +.containerrightfixed label, .containerright a { white-space: nowrap; overflow: hidden; display: inline-block; width: 100%; max-width: 300px; text-overflow: ellipsis; } +.containerright a { margin-bottom: 3px; } + +@media screen and (max-width:1200px){ + .container { box-shadow: none; width: 100%; } + .containerright { display: none; } +} + +.popup-container { position: fixed; left: 0; right: 0; top: 0; bottom: 0; background-color: rgb(0, 0, 0, 0.6); z-index: 100; } +.popup { position: absolute; top: 50%; right: 50%; transform: translate(50%,-50%); background-color: #fff; padding: 25px; border-radius: 15px; min-width: 300px; } +.popup .close { text-align: right; color: #979797; font-size: 25px;position: relative; left: 10px; bottom: 10px; cursor: pointer; } + +.footer { font-size: 0.7em; text-align: center; margin-top: 35px; } + +.card-group { display: flex; flex-wrap: wrap; margin-top: -15px; margin-left: -15px; } +.card-group + .card-group { margin-top: 0; } +.card-group .card { margin-top: 15px; margin-left: 15px; display: flex; flex-direction: column; background-color: #e4e4e4; background: radial-gradient(circle, #fefefe 0%, #f6f6f6 100%); border: 1px solid #c1c1c1; padding: 15px; color: #6f6f6f; max-width: 100% } +.card-group .card .card-header { font-size: 1.5rem; font-family: 'Century Gothic', sans-serif; margin-bottom: 15px; flex-grow: 1; } +.card-group .card .card-body { display: flex; flex-direction: row; gap: 15px; flex-grow: 1; } +.card-group .card .card-body div.table { display: flex; flex-direction: column; } +.card-group .card .large { font-size: 5rem; line-height: 5rem; font-weight: bold; align-self: flex-end; border-left-width: 4px; padding-left: 10px; } +.card-group .card table { align-self: flex-end; border-collapse: collapse; } +.card-group .card table tr { border-bottom: 1px solid #c1c1c1; } +.card-group .card table tr:hover { background-color: #c1c1c1; } +.card-group .card table tr:last-child { border-bottom: none; } +.card-group .card table th, .card-group .card table td { padding: 2px; } +.card-group td.limit-width { max-width: 200px; text-overflow: ellipsis; overflow: hidden; } +.card-group td.overflow-wrap { overflow-wrap: anywhere; } + +.pro-button { color: #fff; background-color: #20A0D2; background-image: linear-gradient(50deg, #1c7ed6 0%, #23b8cf 100%); padding: 10px; border-radius: 3px; font-weight: bold; display: inline-block; } +.pro-button:hover { color: #fff; background-color: #1C8EB7; background-image: linear-gradient(50deg, #1A6FBA 0%, #1EA1B5 100%); } +.pro-button-tiny { border-radius: 10px; padding: 3px 8px; } + +th { text-align: left; } +.table-fixed { table-layout: fixed; } +.table-responsive { overflow-x: auto; } +.table-responsive::-webkit-scrollbar { height: 20px; } +.table-responsive::-webkit-scrollbar-thumb { background-color: #6f6f6f; border-radius: 20px; border: 5px solid #fff; } +.overview { border: 1px solid #c1c1c1; border-collapse: collapse; width: 100%; word-wrap: break-word; } +.overview th { border: 1px solid #c1c1c1; border-collapse: collapse; padding: 2px 4px 2px 4px; background-color: #ddd; } +.overview tr.namespace th { background-color: #dcdcdc; } +.overview thead th { background-color: #d1d1d1; } +.overview th a { color: #000; } +.overview tr.namespace a { margin-left: 15px; display: block; } +.overview td { border: 1px solid #c1c1c1; border-collapse: collapse; padding: 2px 5px 2px 5px; } +.overview tr.header th { background-color: #d1d1d1; } +.overview tr.header th:nth-child(2n+1) { background-color: #ddd; } +.overview tr.header th:first-child { border-left: 1px solid #fff; border-top: 1px solid #fff; background-color: #fff; } + +div.currenthistory { margin: -2px -5px 0 -5px; padding: 2px 5px 2px 5px; height: 16px; } +.coverage { border-collapse: collapse; font-size: 5px; height: 10px; } +.coverage td { padding: 0; border: none; } +.stripped tr:nth-child(2n+1) { background-color: #F3F3F3; } + +.customizebox { font-size: 0.75em; margin-bottom: 7px; } +.customizebox>div { width: 25%; display: inline-block; } +.customizebox div.right input { width: 150px; } +#namespaceslider { width: 200px; display: inline-block; margin-left: 8px; } + +.percentagebar { + padding-left: 3px; +} +a.percentagebar { + padding-left: 6px; +} +.percentagebarundefined { + border-left: 2px solid #fff; +} +.percentagebar0 { + border-left: 2px solid #c10909; +} +.percentagebar10 { + border-left: 2px solid; + border-image: linear-gradient(to bottom, #c10909 90%, #0aad0a 90%, #0aad0a 100%) 1; +} +.percentagebar20 { + border-left: 2px solid; + border-image: linear-gradient(to bottom, #c10909 80%, #0aad0a 80%, #0aad0a 100%) 1; +} +.percentagebar30 { + border-left: 2px solid; + border-image: linear-gradient(to bottom, #c10909 70%, #0aad0a 70%, #0aad0a 100%) 1; +} +.percentagebar40 { + border-left: 2px solid; + border-image: linear-gradient(to bottom, #c10909 60%, #0aad0a 60%, #0aad0a 100%) 1; +} +.percentagebar50 { + border-left: 2px solid; + border-image: linear-gradient(to bottom, #c10909 50%, #0aad0a 50%, #0aad0a 100%) 1; +} +.percentagebar60 { + border-left: 2px solid; + border-image: linear-gradient(to bottom, #c10909 40%, #0aad0a 40%, #0aad0a 100%) 1; +} +.percentagebar70 { + border-left: 2px solid; + border-image: linear-gradient(to bottom, #c10909 30%, #0aad0a 30%, #0aad0a 100%) 1; +} +.percentagebar80 { + border-left: 2px solid; + border-image: linear-gradient(to bottom, #c10909 20%, #0aad0a 20%, #0aad0a 100%) 1; +} +.percentagebar90 { + border-left: 2px solid; + border-image: linear-gradient(to bottom, #c10909 10%, #0aad0a 10%, #0aad0a 100%) 1; +} +.percentagebar100 { + border-left: 2px solid #0aad0a; +} + +.mt-1 { margin-top: 4px; } +.hidden, .ng-hide { display: none; } +.right { text-align: right; } +.center { text-align: center; } +.rightmargin { padding-right: 8px; } +.leftmargin { padding-left: 5px; } +.green { background-color: #0aad0a; } +.lightgreen { background-color: #dcf4dc; } +.red { background-color: #c10909; } +.lightred { background-color: #f7dede; } +.orange { background-color: #FFA500; } +.lightorange { background-color: #FFEFD5; } +.gray { background-color: #dcdcdc; } +.lightgray { color: #888888; } +.lightgraybg { background-color: #dadada; } + +code { font-family: Consolas, monospace; font-size: 0.9em; } + +.toggleZoom { text-align:right; } + +.ct-chart { position: relative; } +.ct-chart .ct-line { stroke-width: 2px !important; } +.ct-chart .ct-point { stroke-width: 6px !important; transition: stroke-width .2s; } +.ct-chart .ct-point:hover { stroke-width: 10px !important; } +.ct-chart .ct-series.ct-series-a .ct-line, .ct-chart .ct-series.ct-series-a .ct-point { stroke: #c00 !important;} +.ct-chart .ct-series.ct-series-b .ct-line, .ct-chart .ct-series.ct-series-b .ct-point { stroke: #1c2298 !important;} +.ct-chart .ct-series.ct-series-c .ct-line, .ct-chart .ct-series.ct-series-c .ct-point { stroke: #0aad0a !important;} + +.tinylinecoveragechart, .tinybranchcoveragechart, .tinymethodcoveragechart { background-color: #fff; margin-left: -3px; float: left; border: 1px solid #c1c1c1; width: 30px; height: 18px; } +.historiccoverageoffset { margin-top: 7px; } + +.tinylinecoveragechart .ct-line, .tinybranchcoveragechart .ct-line, .tinymethodcoveragechart .ct-line { stroke-width: 1px !important; } +.tinybranchcoveragechart .ct-series.ct-series-a .ct-line { stroke: #1c2298 !important; } +.tinymethodcoveragechart .ct-series.ct-series-a .ct-line { stroke: #0aad0a !important; } + +.linecoverage { background-color: #c00; width: 10px; height: 8px; border: 1px solid #000; display: inline-block; } +.branchcoverage { background-color: #1c2298; width: 10px; height: 8px; border: 1px solid #000; display: inline-block; } +.codeelementcoverage { background-color: #0aad0a; width: 10px; height: 8px; border: 1px solid #000; display: inline-block; } + +.tooltip { position: absolute; display: none; padding: 5px; background: #F4C63D; color: #453D3F; pointer-events: none; z-index: 1; min-width: 250px; } + +.column-min-200 { min-width: 200px; } +.column60 { width: 60px; } +.column70 { width: 70px; } +.column90 { width: 90px; } +.column98 { width: 98px; } +.column100 { width: 100px; } +.column105 { width: 105px; } +.column112 { width: 112px; } + +.cardpercentagebar { border-left-style: solid; } +.cardpercentagebar0 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 0%, #0aad0a 0%) 1; } +.cardpercentagebar1 { border-image: linear-gradient(to bottom, #c10909 1%, #c10909 1%, #0aad0a 1%) 1; } +.cardpercentagebar2 { border-image: linear-gradient(to bottom, #c10909 2%, #c10909 2%, #0aad0a 2%) 1; } +.cardpercentagebar3 { border-image: linear-gradient(to bottom, #c10909 3%, #c10909 3%, #0aad0a 3%) 1; } +.cardpercentagebar4 { border-image: linear-gradient(to bottom, #c10909 4%, #c10909 4%, #0aad0a 4%) 1; } +.cardpercentagebar5 { border-image: linear-gradient(to bottom, #c10909 5%, #c10909 5%, #0aad0a 5%) 1; } +.cardpercentagebar6 { border-image: linear-gradient(to bottom, #c10909 6%, #c10909 6%, #0aad0a 6%) 1; } +.cardpercentagebar7 { border-image: linear-gradient(to bottom, #c10909 7%, #c10909 7%, #0aad0a 7%) 1; } +.cardpercentagebar8 { border-image: linear-gradient(to bottom, #c10909 8%, #c10909 8%, #0aad0a 8%) 1; } +.cardpercentagebar9 { border-image: linear-gradient(to bottom, #c10909 9%, #c10909 9%, #0aad0a 9%) 1; } +.cardpercentagebar10 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 10%, #0aad0a 10%) 1; } +.cardpercentagebar11 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 11%, #0aad0a 11%) 1; } +.cardpercentagebar12 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 12%, #0aad0a 12%) 1; } +.cardpercentagebar13 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 13%, #0aad0a 13%) 1; } +.cardpercentagebar14 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 14%, #0aad0a 14%) 1; } +.cardpercentagebar15 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 15%, #0aad0a 15%) 1; } +.cardpercentagebar16 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 16%, #0aad0a 16%) 1; } +.cardpercentagebar17 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 17%, #0aad0a 17%) 1; } +.cardpercentagebar18 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 18%, #0aad0a 18%) 1; } +.cardpercentagebar19 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 19%, #0aad0a 19%) 1; } +.cardpercentagebar20 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 20%, #0aad0a 20%) 1; } +.cardpercentagebar21 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 21%, #0aad0a 21%) 1; } +.cardpercentagebar22 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 22%, #0aad0a 22%) 1; } +.cardpercentagebar23 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 23%, #0aad0a 23%) 1; } +.cardpercentagebar24 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 24%, #0aad0a 24%) 1; } +.cardpercentagebar25 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 25%, #0aad0a 25%) 1; } +.cardpercentagebar26 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 26%, #0aad0a 26%) 1; } +.cardpercentagebar27 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 27%, #0aad0a 27%) 1; } +.cardpercentagebar28 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 28%, #0aad0a 28%) 1; } +.cardpercentagebar29 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 29%, #0aad0a 29%) 1; } +.cardpercentagebar30 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 30%, #0aad0a 30%) 1; } +.cardpercentagebar31 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 31%, #0aad0a 31%) 1; } +.cardpercentagebar32 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 32%, #0aad0a 32%) 1; } +.cardpercentagebar33 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 33%, #0aad0a 33%) 1; } +.cardpercentagebar34 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 34%, #0aad0a 34%) 1; } +.cardpercentagebar35 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 35%, #0aad0a 35%) 1; } +.cardpercentagebar36 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 36%, #0aad0a 36%) 1; } +.cardpercentagebar37 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 37%, #0aad0a 37%) 1; } +.cardpercentagebar38 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 38%, #0aad0a 38%) 1; } +.cardpercentagebar39 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 39%, #0aad0a 39%) 1; } +.cardpercentagebar40 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 40%, #0aad0a 40%) 1; } +.cardpercentagebar41 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 41%, #0aad0a 41%) 1; } +.cardpercentagebar42 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 42%, #0aad0a 42%) 1; } +.cardpercentagebar43 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 43%, #0aad0a 43%) 1; } +.cardpercentagebar44 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 44%, #0aad0a 44%) 1; } +.cardpercentagebar45 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 45%, #0aad0a 45%) 1; } +.cardpercentagebar46 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 46%, #0aad0a 46%) 1; } +.cardpercentagebar47 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 47%, #0aad0a 47%) 1; } +.cardpercentagebar48 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 48%, #0aad0a 48%) 1; } +.cardpercentagebar49 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 49%, #0aad0a 49%) 1; } +.cardpercentagebar50 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 50%, #0aad0a 50%) 1; } +.cardpercentagebar51 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 51%, #0aad0a 51%) 1; } +.cardpercentagebar52 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 52%, #0aad0a 52%) 1; } +.cardpercentagebar53 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 53%, #0aad0a 53%) 1; } +.cardpercentagebar54 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 54%, #0aad0a 54%) 1; } +.cardpercentagebar55 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 55%, #0aad0a 55%) 1; } +.cardpercentagebar56 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 56%, #0aad0a 56%) 1; } +.cardpercentagebar57 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 57%, #0aad0a 57%) 1; } +.cardpercentagebar58 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 58%, #0aad0a 58%) 1; } +.cardpercentagebar59 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 59%, #0aad0a 59%) 1; } +.cardpercentagebar60 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 60%, #0aad0a 60%) 1; } +.cardpercentagebar61 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 61%, #0aad0a 61%) 1; } +.cardpercentagebar62 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 62%, #0aad0a 62%) 1; } +.cardpercentagebar63 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 63%, #0aad0a 63%) 1; } +.cardpercentagebar64 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 64%, #0aad0a 64%) 1; } +.cardpercentagebar65 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 65%, #0aad0a 65%) 1; } +.cardpercentagebar66 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 66%, #0aad0a 66%) 1; } +.cardpercentagebar67 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 67%, #0aad0a 67%) 1; } +.cardpercentagebar68 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 68%, #0aad0a 68%) 1; } +.cardpercentagebar69 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 69%, #0aad0a 69%) 1; } +.cardpercentagebar70 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 70%, #0aad0a 70%) 1; } +.cardpercentagebar71 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 71%, #0aad0a 71%) 1; } +.cardpercentagebar72 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 72%, #0aad0a 72%) 1; } +.cardpercentagebar73 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 73%, #0aad0a 73%) 1; } +.cardpercentagebar74 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 74%, #0aad0a 74%) 1; } +.cardpercentagebar75 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 75%, #0aad0a 75%) 1; } +.cardpercentagebar76 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 76%, #0aad0a 76%) 1; } +.cardpercentagebar77 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 77%, #0aad0a 77%) 1; } +.cardpercentagebar78 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 78%, #0aad0a 78%) 1; } +.cardpercentagebar79 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 79%, #0aad0a 79%) 1; } +.cardpercentagebar80 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 80%, #0aad0a 80%) 1; } +.cardpercentagebar81 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 81%, #0aad0a 81%) 1; } +.cardpercentagebar82 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 82%, #0aad0a 82%) 1; } +.cardpercentagebar83 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 83%, #0aad0a 83%) 1; } +.cardpercentagebar84 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 84%, #0aad0a 84%) 1; } +.cardpercentagebar85 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 85%, #0aad0a 85%) 1; } +.cardpercentagebar86 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 86%, #0aad0a 86%) 1; } +.cardpercentagebar87 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 87%, #0aad0a 87%) 1; } +.cardpercentagebar88 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 88%, #0aad0a 88%) 1; } +.cardpercentagebar89 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 89%, #0aad0a 89%) 1; } +.cardpercentagebar90 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 90%, #0aad0a 90%) 1; } +.cardpercentagebar91 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 91%, #0aad0a 91%) 1; } +.cardpercentagebar92 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 92%, #0aad0a 92%) 1; } +.cardpercentagebar93 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 93%, #0aad0a 93%) 1; } +.cardpercentagebar94 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 94%, #0aad0a 94%) 1; } +.cardpercentagebar95 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 95%, #0aad0a 95%) 1; } +.cardpercentagebar96 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 96%, #0aad0a 96%) 1; } +.cardpercentagebar97 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 97%, #0aad0a 97%) 1; } +.cardpercentagebar98 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 98%, #0aad0a 98%) 1; } +.cardpercentagebar99 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 99%, #0aad0a 99%) 1; } +.cardpercentagebar100 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 100%, #0aad0a 100%) 1; } + +.covered0 { width: 0px; } +.covered1 { width: 1px; } +.covered2 { width: 2px; } +.covered3 { width: 3px; } +.covered4 { width: 4px; } +.covered5 { width: 5px; } +.covered6 { width: 6px; } +.covered7 { width: 7px; } +.covered8 { width: 8px; } +.covered9 { width: 9px; } +.covered10 { width: 10px; } +.covered11 { width: 11px; } +.covered12 { width: 12px; } +.covered13 { width: 13px; } +.covered14 { width: 14px; } +.covered15 { width: 15px; } +.covered16 { width: 16px; } +.covered17 { width: 17px; } +.covered18 { width: 18px; } +.covered19 { width: 19px; } +.covered20 { width: 20px; } +.covered21 { width: 21px; } +.covered22 { width: 22px; } +.covered23 { width: 23px; } +.covered24 { width: 24px; } +.covered25 { width: 25px; } +.covered26 { width: 26px; } +.covered27 { width: 27px; } +.covered28 { width: 28px; } +.covered29 { width: 29px; } +.covered30 { width: 30px; } +.covered31 { width: 31px; } +.covered32 { width: 32px; } +.covered33 { width: 33px; } +.covered34 { width: 34px; } +.covered35 { width: 35px; } +.covered36 { width: 36px; } +.covered37 { width: 37px; } +.covered38 { width: 38px; } +.covered39 { width: 39px; } +.covered40 { width: 40px; } +.covered41 { width: 41px; } +.covered42 { width: 42px; } +.covered43 { width: 43px; } +.covered44 { width: 44px; } +.covered45 { width: 45px; } +.covered46 { width: 46px; } +.covered47 { width: 47px; } +.covered48 { width: 48px; } +.covered49 { width: 49px; } +.covered50 { width: 50px; } +.covered51 { width: 51px; } +.covered52 { width: 52px; } +.covered53 { width: 53px; } +.covered54 { width: 54px; } +.covered55 { width: 55px; } +.covered56 { width: 56px; } +.covered57 { width: 57px; } +.covered58 { width: 58px; } +.covered59 { width: 59px; } +.covered60 { width: 60px; } +.covered61 { width: 61px; } +.covered62 { width: 62px; } +.covered63 { width: 63px; } +.covered64 { width: 64px; } +.covered65 { width: 65px; } +.covered66 { width: 66px; } +.covered67 { width: 67px; } +.covered68 { width: 68px; } +.covered69 { width: 69px; } +.covered70 { width: 70px; } +.covered71 { width: 71px; } +.covered72 { width: 72px; } +.covered73 { width: 73px; } +.covered74 { width: 74px; } +.covered75 { width: 75px; } +.covered76 { width: 76px; } +.covered77 { width: 77px; } +.covered78 { width: 78px; } +.covered79 { width: 79px; } +.covered80 { width: 80px; } +.covered81 { width: 81px; } +.covered82 { width: 82px; } +.covered83 { width: 83px; } +.covered84 { width: 84px; } +.covered85 { width: 85px; } +.covered86 { width: 86px; } +.covered87 { width: 87px; } +.covered88 { width: 88px; } +.covered89 { width: 89px; } +.covered90 { width: 90px; } +.covered91 { width: 91px; } +.covered92 { width: 92px; } +.covered93 { width: 93px; } +.covered94 { width: 94px; } +.covered95 { width: 95px; } +.covered96 { width: 96px; } +.covered97 { width: 97px; } +.covered98 { width: 98px; } +.covered99 { width: 99px; } +.covered100 { width: 100px; } + + @media print { + html, body { background-color: #fff; } + .container { max-width: 100%; width: 100%; padding: 0; } + .overview colgroup col:first-child { width: 300px; } +} + +.icon-up-dir_active { + background-image: url(icon_up-dir.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMTc5MiIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMTc5MiAxNzkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGZpbGw9IiNjMDAiIGQ9Ik0xNDA4IDEyMTZxMCAyNi0xOSA0NXQtNDUgMTloLTg5NnEtMjYgMC00NS0xOXQtMTktNDUgMTktNDVsNDQ4LTQ0OHExOS0xOSA0NS0xOXQ0NSAxOWw0NDggNDQ4cTE5IDE5IDE5IDQ1eiIvPjwvc3ZnPg==); + background-repeat: no-repeat; + background-size: contain; + padding-left: 15px; + height: 0.9em; + display: inline-block; + position: relative; + top: 3px; +} +.icon-down-dir_active { + background-image: url(icon_up-dir_active.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMTc5MiIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMTc5MiAxNzkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGZpbGw9IiNjMDAiIGQ9Ik0xNDA4IDcwNHEwIDI2LTE5IDQ1bC00NDggNDQ4cS0xOSAxOS00NSAxOXQtNDUtMTlsLTQ0OC00NDhxLTE5LTE5LTE5LTQ1dDE5LTQ1IDQ1LTE5aDg5NnEyNiAwIDQ1IDE5dDE5IDQ1eiIvPjwvc3ZnPg==); + background-repeat: no-repeat; + background-size: contain; + padding-left: 15px; + height: 0.9em; + display: inline-block; + position: relative; + top: 3px; +} +.icon-down-dir { + background-image: url(icon_down-dir_active.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMTc5MiIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMTc5MiAxNzkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0xNDA4IDcwNHEwIDI2LTE5IDQ1bC00NDggNDQ4cS0xOSAxOS00NSAxOXQtNDUtMTlsLTQ0OC00NDhxLTE5LTE5LTE5LTQ1dDE5LTQ1IDQ1LTE5aDg5NnEyNiAwIDQ1IDE5dDE5IDQ1eiIvPjwvc3ZnPg==); + background-repeat: no-repeat; + background-size: contain; + padding-left: 15px; + height: 0.9em; + display: inline-block; + position: relative; + top: 3px; +} +.icon-info-circled { + background-image: url(icon_info-circled.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMTc5MiIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMTc5MiAxNzkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxjaXJjbGUgY3g9Ijg5NiIgY3k9Ijg5NiIgcj0iNzUwIiBmaWxsPSIjZmZmIiAvPjxwYXRoIGZpbGw9IiMyOEE1RkYiIGQ9Ik0xMTUyIDEzNzZ2LTE2MHEwLTE0LTktMjN0LTIzLTloLTk2di01MTJxMC0xNC05LTIzdC0yMy05aC0zMjBxLTE0IDAtMjMgOXQtOSAyM3YxNjBxMCAxNCA5IDIzdDIzIDloOTZ2MzIwaC05NnEtMTQgMC0yMyA5dC05IDIzdjE2MHEwIDE0IDkgMjN0MjMgOWg0NDhxMTQgMCAyMy05dDktMjN6bS0xMjgtODk2di0xNjBxMC0xNC05LTIzdC0yMy05aC0xOTJxLTE0IDAtMjMgOXQtOSAyM3YxNjBxMCAxNCA5IDIzdDIzIDloMTkycTE0IDAgMjMtOXQ5LTIzem02NDAgNDE2cTAgMjA5LTEwMyAzODUuNXQtMjc5LjUgMjc5LjUtMzg1LjUgMTAzLTM4NS41LTEwMy0yNzkuNS0yNzkuNS0xMDMtMzg1LjUgMTAzLTM4NS41IDI3OS41LTI3OS41IDM4NS41LTEwMyAzODUuNSAxMDMgMjc5LjUgMjc5LjUgMTAzIDM4NS41eiIvPjwvc3ZnPg==); + background-repeat: no-repeat; + background-size: contain; + padding-left: 15px; + height: 0.9em; + display: inline-block; +} +.icon-plus { + background-image: url(icon_plus.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMTc5MiIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMTc5MiAxNzkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0xNjAwIDczNnYxOTJxMCA0MC0yOCA2OHQtNjggMjhoLTQxNnY0MTZxMCA0MC0yOCA2OHQtNjggMjhoLTE5MnEtNDAgMC02OC0yOHQtMjgtNjh2LTQxNmgtNDE2cS00MCAwLTY4LTI4dC0yOC02OHYtMTkycTAtNDAgMjgtNjh0NjgtMjhoNDE2di00MTZxMC00MCAyOC02OHQ2OC0yOGgxOTJxNDAgMCA2OCAyOHQyOCA2OHY0MTZoNDE2cTQwIDAgNjggMjh0MjggNjh6Ii8+PC9zdmc+); + background-repeat: no-repeat; + background-size: contain; + padding-left: 15px; + height: 0.9em; + display: inline-block; + position: relative; + top: 3px; +} +.icon-minus { + background-image: url(icon_minus.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMTc5MiIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMTc5MiAxNzkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGZpbGw9IiNjMDAiIGQ9Ik0xNjAwIDczNnYxOTJxMCA0MC0yOCA2OHQtNjggMjhoLTEyMTZxLTQwIDAtNjgtMjh0LTI4LTY4di0xOTJxMC00MCAyOC02OHQ2OC0yOGgxMjE2cTQwIDAgNjggMjh0MjggNjh6Ii8+PC9zdmc+); + background-repeat: no-repeat; + background-size: contain; + padding-left: 15px; + height: 0.9em; + display: inline-block; + position: relative; + top: 3px; +} +.icon-wrench { + background-image: url(icon_wrench.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMTc5MiIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMTc5MiAxNzkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik00NDggMTQ3MnEwLTI2LTE5LTQ1dC00NS0xOS00NSAxOS0xOSA0NSAxOSA0NSA0NSAxOSA0NS0xOSAxOS00NXptNjQ0LTQyMGwtNjgyIDY4MnEtMzcgMzctOTAgMzctNTIgMC05MS0zN2wtMTA2LTEwOHEtMzgtMzYtMzgtOTAgMC01MyAzOC05MWw2ODEtNjgxcTM5IDk4IDExNC41IDE3My41dDE3My41IDExNC41em02MzQtNDM1cTAgMzktMjMgMTA2LTQ3IDEzNC0xNjQuNSAyMTcuNXQtMjU4LjUgODMuNXEtMTg1IDAtMzE2LjUtMTMxLjV0LTEzMS41LTMxNi41IDEzMS41LTMxNi41IDMxNi41LTEzMS41cTU4IDAgMTIxLjUgMTYuNXQxMDcuNSA0Ni41cTE2IDExIDE2IDI4dC0xNiAyOGwtMjkzIDE2OXYyMjRsMTkzIDEwN3E1LTMgNzktNDguNXQxMzUuNS04MSA3MC41LTM1LjVxMTUgMCAyMy41IDEwdDguNSAyNXoiLz48L3N2Zz4=); + background-repeat: no-repeat; + background-size: contain; + padding-left: 20px; + height: 0.9em; + display: inline-block; +} +.icon-cog { + background-image: url(icon_cog.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiB2aWV3Qm94PSIwIDAgNTEyIDUxMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNDQ0Ljc4OCAyOTEuMWw0Mi42MTYgMjQuNTk5YzQuODY3IDIuODA5IDcuMTI2IDguNjE4IDUuNDU5IDEzLjk4NS0xMS4wNyAzNS42NDItMjkuOTcgNjcuODQyLTU0LjY4OSA5NC41ODZhMTIuMDE2IDEyLjAxNiAwIDAgMS0xNC44MzIgMi4yNTRsLTQyLjU4NC0yNC41OTVhMTkxLjU3NyAxOTEuNTc3IDAgMCAxLTYwLjc1OSAzNS4xM3Y0OS4xODJhMTIuMDEgMTIuMDEgMCAwIDEtOS4zNzcgMTEuNzE4Yy0zNC45NTYgNy44NS03Mi40OTkgOC4yNTYtMTA5LjIxOS4wMDctNS40OS0xLjIzMy05LjQwMy02LjA5Ni05LjQwMy0xMS43MjN2LTQ5LjE4NGExOTEuNTU1IDE5MS41NTUgMCAwIDEtNjAuNzU5LTM1LjEzbC00Mi41ODQgMjQuNTk1YTEyLjAxNiAxMi4wMTYgMCAwIDEtMTQuODMyLTIuMjU0Yy0yNC43MTgtMjYuNzQ0LTQzLjYxOS01OC45NDQtNTQuNjg5LTk0LjU4Ni0xLjY2Ny01LjM2Ni41OTItMTEuMTc1IDUuNDU5LTEzLjk4NUw2Ny4yMTIgMjkxLjFhMTkzLjQ4IDE5My40OCAwIDAgMSAwLTcwLjE5OWwtNDIuNjE2LTI0LjU5OWMtNC44NjctMi44MDktNy4xMjYtOC42MTgtNS40NTktMTMuOTg1IDExLjA3LTM1LjY0MiAyOS45Ny02Ny44NDIgNTQuNjg5LTk0LjU4NmExMi4wMTYgMTIuMDE2IDAgMCAxIDE0LjgzMi0yLjI1NGw0Mi41ODQgMjQuNTk1YTE5MS41NzcgMTkxLjU3NyAwIDAgMSA2MC43NTktMzUuMTNWMjUuNzU5YTEyLjAxIDEyLjAxIDAgMCAxIDkuMzc3LTExLjcxOGMzNC45NTYtNy44NSA3Mi40OTktOC4yNTYgMTA5LjIxOS0uMDA3IDUuNDkgMS4yMzMgOS40MDMgNi4wOTYgOS40MDMgMTEuNzIzdjQ5LjE4NGExOTEuNTU1IDE5MS41NTUgMCAwIDEgNjAuNzU5IDM1LjEzbDQyLjU4NC0yNC41OTVhMTIuMDE2IDEyLjAxNiAwIDAgMSAxNC44MzIgMi4yNTRjMjQuNzE4IDI2Ljc0NCA0My42MTkgNTguOTQ0IDU0LjY4OSA5NC41ODYgMS42NjcgNS4zNjYtLjU5MiAxMS4xNzUtNS40NTkgMTMuOTg1TDQ0NC43ODggMjIwLjlhMTkzLjQ4NSAxOTMuNDg1IDAgMCAxIDAgNzAuMnpNMzM2IDI1NmMwLTQ0LjExMi0zNS44ODgtODAtODAtODBzLTgwIDM1Ljg4OC04MCA4MCAzNS44ODggODAgODAgODAgODAtMzUuODg4IDgwLTgweiIvPjwvc3ZnPg==); + background-repeat: no-repeat; + background-size: contain; + padding-left: 16px; + height: 0.8em; + display: inline-block; +} +.icon-fork { + background-image: url(icon_fork.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMTc5MiIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMTc5MiAxNzkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxyZWN0IHdpZHRoPSIxNzkyIiBoZWlnaHQ9IjE3OTIiIHN0eWxlPSJmaWxsOiNmZmYiIC8+PHBhdGggZD0iTTY3MiAxNDcycTAtNDAtMjgtNjh0LTY4LTI4LTY4IDI4LTI4IDY4IDI4IDY4IDY4IDI4IDY4LTI4IDI4LTY4em0wLTExNTJxMC00MC0yOC02OHQtNjgtMjgtNjggMjgtMjggNjggMjggNjggNjggMjggNjgtMjggMjgtNjh6bTY0MCAxMjhxMC00MC0yOC02OHQtNjgtMjgtNjggMjgtMjggNjggMjggNjggNjggMjggNjgtMjggMjgtNjh6bTk2IDBxMCA1Mi0yNiA5Ni41dC03MCA2OS41cS0yIDI4Ny0yMjYgNDE0LTY3IDM4LTIwMyA4MS0xMjggNDAtMTY5LjUgNzF0LTQxLjUgMTAwdjI2cTQ0IDI1IDcwIDY5LjV0MjYgOTYuNXEwIDgwLTU2IDEzNnQtMTM2IDU2LTEzNi01Ni01Ni0xMzZxMC01MiAyNi05Ni41dDcwLTY5LjV2LTgyMHEtNDQtMjUtNzAtNjkuNXQtMjYtOTYuNXEwLTgwIDU2LTEzNnQxMzYtNTYgMTM2IDU2IDU2IDEzNnEwIDUyLTI2IDk2LjV0LTcwIDY5LjV2NDk3cTU0LTI2IDE1NC01NyA1NS0xNyA4Ny41LTI5LjV0NzAuNS0zMSA1OS0zOS41IDQwLjUtNTEgMjgtNjkuNSA4LjUtOTEuNXEtNDQtMjUtNzAtNjkuNXQtMjYtOTYuNXEwLTgwIDU2LTEzNnQxMzYtNTYgMTM2IDU2IDU2IDEzNnoiLz48L3N2Zz4=); + background-repeat: no-repeat; + background-size: contain; + padding-left: 20px; + height: 0.9em; + display: inline-block; +} +.icon-cube { + background-image: url(icon_cube.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMTc5MiIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMTc5MiAxNzkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik04OTYgMTYyOWw2NDAtMzQ5di02MzZsLTY0MCAyMzN2NzUyem0tNjQtODY1bDY5OC0yNTQtNjk4LTI1NC02OTggMjU0em04MzItMjUydjc2OHEwIDM1LTE4IDY1dC00OSA0N2wtNzA0IDM4NHEtMjggMTYtNjEgMTZ0LTYxLTE2bC03MDQtMzg0cS0zMS0xNy00OS00N3QtMTgtNjV2LTc2OHEwLTQwIDIzLTczdDYxLTQ3bDcwNC0yNTZxMjItOCA0NC04dDQ0IDhsNzA0IDI1NnEzOCAxNCA2MSA0N3QyMyA3M3oiLz48L3N2Zz4=); + background-repeat: no-repeat; + background-size: contain; + padding-left: 20px; + height: 0.9em; + display: inline-block; +} +.icon-search-plus { + background-image: url(icon_search-plus.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMTc5MiIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMTc5MiAxNzkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGZpbGw9IiM2ZjZmNmYiIGQ9Ik0xMDg4IDgwMHY2NHEwIDEzLTkuNSAyMi41dC0yMi41IDkuNWgtMjI0djIyNHEwIDEzLTkuNSAyMi41dC0yMi41IDkuNWgtNjRxLTEzIDAtMjIuNS05LjV0LTkuNS0yMi41di0yMjRoLTIyNHEtMTMgMC0yMi41LTkuNXQtOS41LTIyLjV2LTY0cTAtMTMgOS41LTIyLjV0MjIuNS05LjVoMjI0di0yMjRxMC0xMyA5LjUtMjIuNXQyMi41LTkuNWg2NHExMyAwIDIyLjUgOS41dDkuNSAyMi41djIyNGgyMjRxMTMgMCAyMi41IDkuNXQ5LjUgMjIuNXptMTI4IDMycTAtMTg1LTEzMS41LTMxNi41dC0zMTYuNS0xMzEuNS0zMTYuNSAxMzEuNS0xMzEuNSAzMTYuNSAxMzEuNSAzMTYuNSAzMTYuNSAxMzEuNSAzMTYuNS0xMzEuNSAxMzEuNS0zMTYuNXptNTEyIDgzMnEwIDUzLTM3LjUgOTAuNXQtOTAuNSAzNy41cS01NCAwLTkwLTM4bC0zNDMtMzQycS0xNzkgMTI0LTM5OSAxMjQtMTQzIDAtMjczLjUtNTUuNXQtMjI1LTE1MC0xNTAtMjI1LTU1LjUtMjczLjUgNTUuNS0yNzMuNSAxNTAtMjI1IDIyNS0xNTAgMjczLjUtNTUuNSAyNzMuNSA1NS41IDIyNSAxNTAgMTUwIDIyNSA1NS41IDI3My41cTAgMjIwLTEyNCAzOTlsMzQzIDM0M3EzNyAzNyAzNyA5MHoiLz48L3N2Zz4=); + background-repeat: no-repeat; + background-size: contain; + padding-left: 20px; + height: 0.9em; + display: inline-block; +} +.icon-search-minus { + background-image: url(icon_search-minus.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMTc5MiIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMTc5MiAxNzkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGZpbGw9IiM2ZjZmNmYiIGQ9Ik0xMDg4IDgwMHY2NHEwIDEzLTkuNSAyMi41dC0yMi41IDkuNWgtNTc2cS0xMyAwLTIyLjUtOS41dC05LjUtMjIuNXYtNjRxMC0xMyA5LjUtMjIuNXQyMi41LTkuNWg1NzZxMTMgMCAyMi41IDkuNXQ5LjUgMjIuNXptMTI4IDMycTAtMTg1LTEzMS41LTMxNi41dC0zMTYuNS0xMzEuNS0zMTYuNSAxMzEuNS0xMzEuNSAzMTYuNSAxMzEuNSAzMTYuNSAzMTYuNSAxMzEuNSAzMTYuNS0xMzEuNSAxMzEuNS0zMTYuNXptNTEyIDgzMnEwIDUzLTM3LjUgOTAuNXQtOTAuNSAzNy41cS01NCAwLTkwLTM4bC0zNDMtMzQycS0xNzkgMTI0LTM5OSAxMjQtMTQzIDAtMjczLjUtNTUuNXQtMjI1LTE1MC0xNTAtMjI1LTU1LjUtMjczLjUgNTUuNS0yNzMuNSAxNTAtMjI1IDIyNS0xNTAgMjczLjUtNTUuNSAyNzMuNSA1NS41IDIyNSAxNTAgMTUwIDIyNSA1NS41IDI3My41cTAgMjIwLTEyNCAzOTlsMzQzIDM0M3EzNyAzNyAzNyA5MHoiLz48L3N2Zz4=); + background-repeat: no-repeat; + background-size: contain; + padding-left: 20px; + height: 0.9em; + display: inline-block; +} +.icon-star { + background-image: url(icon_star.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMTc5MiIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMTc5MiAxNzkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0xNzI4IDY0N3EwIDIyLTI2IDQ4bC0zNjMgMzU0IDg2IDUwMHExIDcgMSAyMCAwIDIxLTEwLjUgMzUuNXQtMzAuNSAxNC41cS0xOSAwLTQwLTEybC00NDktMjM2LTQ0OSAyMzZxLTIyIDEyLTQwIDEyLTIxIDAtMzEuNS0xNC41dC0xMC41LTM1LjVxMC02IDItMjBsODYtNTAwLTM2NC0zNTRxLTI1LTI3LTI1LTQ4IDAtMzcgNTYtNDZsNTAyLTczIDIyNS00NTVxMTktNDEgNDktNDF0NDkgNDFsMjI1IDQ1NSA1MDIgNzNxNTYgOSA1NiA0NnoiIGZpbGw9IiMwMDAiLz48L3N2Zz4=); + background-repeat: no-repeat; + background-size: contain; + padding-left: 20px; + height: 0.9em; + display: inline-block; +} +.icon-sponsor { + background-image: url(icon_sponsor.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMTc5MiIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMTc5MiAxNzkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik04OTYgMTY2NHEtMjYgMC00NC0xOGwtNjI0LTYwMnEtMTAtOC0yNy41LTI2dC01NS41LTY1LjUtNjgtOTcuNS01My41LTEyMS0yMy41LTEzOHEwLTIyMCAxMjctMzQ0dDM1MS0xMjRxNjIgMCAxMjYuNSAyMS41dDEyMCA1OCA5NS41IDY4LjUgNzYgNjhxMzYtMzYgNzYtNjh0OTUuNS02OC41IDEyMC01OCAxMjYuNS0yMS41cTIyNCAwIDM1MSAxMjR0MTI3IDM0NHEwIDIyMS0yMjkgNDUwbC02MjMgNjAwcS0xOCAxOC00NCAxOHoiIGZpbGw9IiNlYTRhYWEiLz48L3N2Zz4=); + background-repeat: no-repeat; + background-size: contain; + padding-left: 20px; + height: 0.9em; + display: inline-block; +} + + + +@media (prefers-color-scheme: dark) { + @media screen { + html { + background-color: #333; + color: #fff; + } + + body { + color: #fff; + } + + h1 { + background-color: #555453; + color: #fff; + } + + .container { + background-color: #333; + box-shadow: 0 0 60px #0c0c0c; + } + + .containerrightfixed { + background-color: #3D3C3C; + border-left: 1px solid #515050; + } + + .containerrightfixed h1 { + background-color: #484747; + } + + .popup-container { + background-color: rgb(80, 80, 80, 0.6); + } + + .popup { + background-color: #333; + } + + .card-group .card { + background-color: #333; + background: radial-gradient(circle, #444 0%, #333 100%); + border: 1px solid #545454; + color: #fff; + } + + .card-group .card table tr { + border-bottom: 1px solid #545454; + } + + .card-group .card table tr:hover { + background-color: #2E2D2C; + } + + .table-responsive::-webkit-scrollbar-thumb { + background-color: #555453; + border: 5px solid #333; + } + + .overview tr:hover { + background-color: #2E2D2C; + } + + .overview th { + background-color: #444; + border: 1px solid #3B3A39; + } + + .overview tr.namespace th { + background-color: #444; + } + + .overview thead th { + background-color: #444; + } + + .overview th a { + color: #fff; + color: rgba(255, 255, 255, 0.95); + } + + .overview th a:hover { + color: #0078d4; + } + + .overview td { + border: 1px solid #3B3A39; + } + + .overview .coverage td { + border: none; + } + + .overview tr.header th { + background-color: #444; + } + + .overview tr.header th:nth-child(2n+1) { + background-color: #3a3a3a; + } + + .overview tr.header th:first-child { + border-left: 1px solid #333; + border-top: 1px solid #333; + background-color: #333; + } + + .stripped tr:nth-child(2n+1) { + background-color: #3c3c3c; + } + + input, select, button { + background-color: #333; + color: #fff; + border: 1px solid #A19F9D; + } + + a { + color: #fff; + color: rgba(255, 255, 255, 0.95); + } + + a:hover { + color: #0078d4; + } + + h1 a.back { + background-color: #4a4846; + } + + h1 a.button { + color: #fff; + background-color: #565656; + border-color: #c1c1c1; + } + + h1 a.button:hover { + background-color: #8d8d8d; + } + + .gray { + background-color: #484747; + } + + .lightgray { + color: #ebebeb; + } + + .lightgraybg { + background-color: #474747; + } + + .lightgreen { + background-color: #406540; + } + + .lightorange { + background-color: #ab7f36; + } + + .lightred { + background-color: #954848; + } + + .ct-label { + color: #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; + } + + .ct-chart .ct-series.ct-series-c .ct-line, .ct-chart .ct-series.ct-series-c .ct-point { + stroke: #e58f1d !important; + } + + .linecoverage { + background-color: #0078D4; + } + + .branchcoverage { + background-color: #6dc428; + } + .codeelementcoverage { + background-color: #e58f1d; + } + + .tinylinecoveragechart, .tinybranchcoveragechart, .tinymethodcoveragechart { + background-color: #333; + } + + .tinybranchcoveragechart .ct-series.ct-series-a .ct-line { + stroke: #6dc428 !important; + } + + .tinymethodcoveragechart .ct-series.ct-series-a .ct-line { + stroke: #e58f1d !important; + } + + .icon-down-dir { + background-image: url(icon_down-dir_active_dark.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHdpZHRoPSIxNzkyIiBoZWlnaHQ9IjE3OTIiIHZpZXdCb3g9IjAgMCAxNzkyIDE3OTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbD0iI0JGQkZDMCIgZD0iTTE0MDggNzA0cTAgMjYtMTkgNDVsLTQ0OCA0NDhxLTE5IDE5LTQ1IDE5dC00NS0xOWwtNDQ4LTQ0OHEtMTktMTktMTktNDV0MTktNDUgNDUtMTloODk2cTI2IDAgNDUgMTl0MTkgNDV6Ii8+PC9zdmc+); + } + + .icon-info-circled { + background-image: url(icon_info-circled_dark.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMTc5MiIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMTc5MiAxNzkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxjaXJjbGUgY3g9Ijg5NiIgY3k9Ijg5NiIgcj0iNzUwIiBmaWxsPSIjZmZmIiAvPjxwYXRoIGZpbGw9IiMyOEE1RkYiIGQ9Ik0xMTUyIDEzNzZ2LTE2MHEwLTE0LTktMjN0LTIzLTloLTk2di01MTJxMC0xNC05LTIzdC0yMy05aC0zMjBxLTE0IDAtMjMgOXQtOSAyM3YxNjBxMCAxNCA5IDIzdDIzIDloOTZ2MzIwaC05NnEtMTQgMC0yMyA5dC05IDIzdjE2MHEwIDE0IDkgMjN0MjMgOWg0NDhxMTQgMCAyMy05dDktMjN6bS0xMjgtODk2di0xNjBxMC0xNC05LTIzdC0yMy05aC0xOTJxLTE0IDAtMjMgOXQtOSAyM3YxNjBxMCAxNCA5IDIzdDIzIDloMTkycTE0IDAgMjMtOXQ5LTIzem02NDAgNDE2cTAgMjA5LTEwMyAzODUuNXQtMjc5LjUgMjc5LjUtMzg1LjUgMTAzLTM4NS41LTEwMy0yNzkuNS0yNzkuNS0xMDMtMzg1LjUgMTAzLTM4NS41IDI3OS41LTI3OS41IDM4NS41LTEwMyAzODUuNSAxMDMgMjc5LjUgMjc5LjUgMTAzIDM4NS41eiIvPjwvc3ZnPg==); + } + + .icon-plus { + background-image: url(icon_plus_dark.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHdpZHRoPSIxNzkyIiBoZWlnaHQ9IjE3OTIiIHZpZXdCb3g9IjAgMCAxNzkyIDE3OTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbD0iI0JGQkZDMCIgZD0iTTE2MDAgNzM2djE5MnEwIDQwLTI4IDY4dC02OCAyOGgtNDE2djQxNnEwIDQwLTI4IDY4dC02OCAyOGgtMTkycS00MCAwLTY4LTI4dC0yOC02OHYtNDE2aC00MTZxLTQwIDAtNjgtMjh0LTI4LTY4di0xOTJxMC00MCAyOC02OHQ2OC0yOGg0MTZ2LTQxNnEwLTQwIDI4LTY4dDY4LTI4aDE5MnE0MCAwIDY4IDI4dDI4IDY4djQxNmg0MTZxNDAgMCA2OCAyOHQyOCA2OHoiLz48L3N2Zz4=); + } + + .icon-minus { + background-image: url(icon_minus_dark.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHdpZHRoPSIxNzkyIiBoZWlnaHQ9IjE3OTIiIHZpZXdCb3g9IjAgMCAxNzkyIDE3OTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbD0iI0JGQkZDMCIgZD0iTTE2MDAgNzM2djE5MnEwIDQwLTI4IDY4dC02OCAyOGgtMTIxNnEtNDAgMC02OC0yOHQtMjgtNjh2LTE5MnEwLTQwIDI4LTY4dDY4LTI4aDEyMTZxNDAgMCA2OCAyOHQyOCA2OHoiLz48L3N2Zz4=); + } + + .icon-wrench { + background-image: url(icon_wrench_dark.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHdpZHRoPSIxNzkyIiBoZWlnaHQ9IjE3OTIiIHZpZXdCb3g9IjAgMCAxNzkyIDE3OTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbD0iI0JEQkRCRiIgZD0iTTQ0OCAxNDcycTAtMjYtMTktNDV0LTQ1LTE5LTQ1IDE5LTE5IDQ1IDE5IDQ1IDQ1IDE5IDQ1LTE5IDE5LTQ1em02NDQtNDIwbC02ODIgNjgycS0zNyAzNy05MCAzNy01MiAwLTkxLTM3bC0xMDYtMTA4cS0zOC0zNi0zOC05MCAwLTUzIDM4LTkxbDY4MS02ODFxMzkgOTggMTE0LjUgMTczLjV0MTczLjUgMTE0LjV6bTYzNC00MzVxMCAzOS0yMyAxMDYtNDcgMTM0LTE2NC41IDIxNy41dC0yNTguNSA4My41cS0xODUgMC0zMTYuNS0xMzEuNXQtMTMxLjUtMzE2LjUgMTMxLjUtMzE2LjUgMzE2LjUtMTMxLjVxNTggMCAxMjEuNSAxNi41dDEwNy41IDQ2LjVxMTYgMTEgMTYgMjh0LTE2IDI4bC0yOTMgMTY5djIyNGwxOTMgMTA3cTUtMyA3OS00OC41dDEzNS41LTgxIDcwLjUtMzUuNXExNSAwIDIzLjUgMTB0OC41IDI1eiIvPjwvc3ZnPg==); + } + + .icon-cog { + background-image: url(icon_cog_dark.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiB2aWV3Qm94PSIwIDAgNTEyIDUxMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBmaWxsPSIjQkRCREJGIiBkPSJNNDQ0Ljc4OCAyOTEuMWw0Mi42MTYgMjQuNTk5YzQuODY3IDIuODA5IDcuMTI2IDguNjE4IDUuNDU5IDEzLjk4NS0xMS4wNyAzNS42NDItMjkuOTcgNjcuODQyLTU0LjY4OSA5NC41ODZhMTIuMDE2IDEyLjAxNiAwIDAgMS0xNC44MzIgMi4yNTRsLTQyLjU4NC0yNC41OTVhMTkxLjU3NyAxOTEuNTc3IDAgMCAxLTYwLjc1OSAzNS4xM3Y0OS4xODJhMTIuMDEgMTIuMDEgMCAwIDEtOS4zNzcgMTEuNzE4Yy0zNC45NTYgNy44NS03Mi40OTkgOC4yNTYtMTA5LjIxOS4wMDctNS40OS0xLjIzMy05LjQwMy02LjA5Ni05LjQwMy0xMS43MjN2LTQ5LjE4NGExOTEuNTU1IDE5MS41NTUgMCAwIDEtNjAuNzU5LTM1LjEzbC00Mi41ODQgMjQuNTk1YTEyLjAxNiAxMi4wMTYgMCAwIDEtMTQuODMyLTIuMjU0Yy0yNC43MTgtMjYuNzQ0LTQzLjYxOS01OC45NDQtNTQuNjg5LTk0LjU4Ni0xLjY2Ny01LjM2Ni41OTItMTEuMTc1IDUuNDU5LTEzLjk4NUw2Ny4yMTIgMjkxLjFhMTkzLjQ4IDE5My40OCAwIDAgMSAwLTcwLjE5OWwtNDIuNjE2LTI0LjU5OWMtNC44NjctMi44MDktNy4xMjYtOC42MTgtNS40NTktMTMuOTg1IDExLjA3LTM1LjY0MiAyOS45Ny02Ny44NDIgNTQuNjg5LTk0LjU4NmExMi4wMTYgMTIuMDE2IDAgMCAxIDE0LjgzMi0yLjI1NGw0Mi41ODQgMjQuNTk1YTE5MS41NzcgMTkxLjU3NyAwIDAgMSA2MC43NTktMzUuMTNWMjUuNzU5YTEyLjAxIDEyLjAxIDAgMCAxIDkuMzc3LTExLjcxOGMzNC45NTYtNy44NSA3Mi40OTktOC4yNTYgMTA5LjIxOS0uMDA3IDUuNDkgMS4yMzMgOS40MDMgNi4wOTYgOS40MDMgMTEuNzIzdjQ5LjE4NGExOTEuNTU1IDE5MS41NTUgMCAwIDEgNjAuNzU5IDM1LjEzbDQyLjU4NC0yNC41OTVhMTIuMDE2IDEyLjAxNiAwIDAgMSAxNC44MzIgMi4yNTRjMjQuNzE4IDI2Ljc0NCA0My42MTkgNTguOTQ0IDU0LjY4OSA5NC41ODYgMS42NjcgNS4zNjYtLjU5MiAxMS4xNzUtNS40NTkgMTMuOTg1TDQ0NC43ODggMjIwLjlhMTkzLjQ4NSAxOTMuNDg1IDAgMCAxIDAgNzAuMnpNMzM2IDI1NmMwLTQ0LjExMi0zNS44ODgtODAtODAtODBzLTgwIDM1Ljg4OC04MCA4MCAzNS44ODggODAgODAgODAgODAtMzUuODg4IDgwLTgweiIvPjwvc3ZnPg==); + } + + .icon-fork { + background-image: url(icon_fork_dark.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHdpZHRoPSIxNzkyIiBoZWlnaHQ9IjE3OTIiIHZpZXdCb3g9IjAgMCAxNzkyIDE3OTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbD0iI0JGQkZDMCIgZD0iTTY3MiAxNDcycTAtNDAtMjgtNjh0LTY4LTI4LTY4IDI4LTI4IDY4IDI4IDY4IDY4IDI4IDY4LTI4IDI4LTY4em0wLTExNTJxMC00MC0yOC02OHQtNjgtMjgtNjggMjgtMjggNjggMjggNjggNjggMjggNjgtMjggMjgtNjh6bTY0MCAxMjhxMC00MC0yOC02OHQtNjgtMjgtNjggMjgtMjggNjggMjggNjggNjggMjggNjgtMjggMjgtNjh6bTk2IDBxMCA1Mi0yNiA5Ni41dC03MCA2OS41cS0yIDI4Ny0yMjYgNDE0LTY3IDM4LTIwMyA4MS0xMjggNDAtMTY5LjUgNzF0LTQxLjUgMTAwdjI2cTQ0IDI1IDcwIDY5LjV0MjYgOTYuNXEwIDgwLTU2IDEzNnQtMTM2IDU2LTEzNi01Ni01Ni0xMzZxMC01MiAyNi05Ni41dDcwLTY5LjV2LTgyMHEtNDQtMjUtNzAtNjkuNXQtMjYtOTYuNXEwLTgwIDU2LTEzNnQxMzYtNTYgMTM2IDU2IDU2IDEzNnEwIDUyLTI2IDk2LjV0LTcwIDY5LjV2NDk3cTU0LTI2IDE1NC01NyA1NS0xNyA4Ny41LTI5LjV0NzAuNS0zMSA1OS0zOS41IDQwLjUtNTEgMjgtNjkuNSA4LjUtOTEuNXEtNDQtMjUtNzAtNjkuNXQtMjYtOTYuNXEwLTgwIDU2LTEzNnQxMzYtNTYgMTM2IDU2IDU2IDEzNnoiLz48L3N2Zz4=); + } + + .icon-cube { + background-image: url(icon_cube_dark.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHdpZHRoPSIxNzkyIiBoZWlnaHQ9IjE3OTIiIHZpZXdCb3g9IjAgMCAxNzkyIDE3OTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbD0iI0JGQkZDMCIgZD0iTTg5NiAxNjI5bDY0MC0zNDl2LTYzNmwtNjQwIDIzM3Y3NTJ6bS02NC04NjVsNjk4LTI1NC02OTgtMjU0LTY5OCAyNTR6bTgzMi0yNTJ2NzY4cTAgMzUtMTggNjV0LTQ5IDQ3bC03MDQgMzg0cS0yOCAxNi02MSAxNnQtNjEtMTZsLTcwNC0zODRxLTMxLTE3LTQ5LTQ3dC0xOC02NXYtNzY4cTAtNDAgMjMtNzN0NjEtNDdsNzA0LTI1NnEyMi04IDQ0LTh0NDQgOGw3MDQgMjU2cTM4IDE0IDYxIDQ3dDIzIDczeiIvPjwvc3ZnPg==); + } + + .icon-search-plus { + background-image: url(icon_search-plus_dark.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHdpZHRoPSIxNzkyIiBoZWlnaHQ9IjE3OTIiIHZpZXdCb3g9IjAgMCAxNzkyIDE3OTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbD0iI0JGQkZDMCIgZD0iTTEwODggODAwdjY0cTAgMTMtOS41IDIyLjV0LTIyLjUgOS41aC0yMjR2MjI0cTAgMTMtOS41IDIyLjV0LTIyLjUgOS41aC02NHEtMTMgMC0yMi41LTkuNXQtOS41LTIyLjV2LTIyNGgtMjI0cS0xMyAwLTIyLjUtOS41dC05LjUtMjIuNXYtNjRxMC0xMyA5LjUtMjIuNXQyMi41LTkuNWgyMjR2LTIyNHEwLTEzIDkuNS0yMi41dDIyLjUtOS41aDY0cTEzIDAgMjIuNSA5LjV0OS41IDIyLjV2MjI0aDIyNHExMyAwIDIyLjUgOS41dDkuNSAyMi41em0xMjggMzJxMC0xODUtMTMxLjUtMzE2LjV0LTMxNi41LTEzMS41LTMxNi41IDEzMS41LTEzMS41IDMxNi41IDEzMS41IDMxNi41IDMxNi41IDEzMS41IDMxNi41LTEzMS41IDEzMS41LTMxNi41em01MTIgODMycTAgNTMtMzcuNSA5MC41dC05MC41IDM3LjVxLTU0IDAtOTAtMzhsLTM0My0zNDJxLTE3OSAxMjQtMzk5IDEyNC0xNDMgMC0yNzMuNS01NS41dC0yMjUtMTUwLTE1MC0yMjUtNTUuNS0yNzMuNSA1NS41LTI3My41IDE1MC0yMjUgMjI1LTE1MCAyNzMuNS01NS41IDI3My41IDU1LjUgMjI1IDE1MCAxNTAgMjI1IDU1LjUgMjczLjVxMCAyMjAtMTI0IDM5OWwzNDMgMzQzcTM3IDM3IDM3IDkweiIvPjwvc3ZnPg==); + } + + .icon-search-minus { + background-image: url(icon_search-minus_dark.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHdpZHRoPSIxNzkyIiBoZWlnaHQ9IjE3OTIiIHZpZXdCb3g9IjAgMCAxNzkyIDE3OTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbD0iI0JGQkZDMCIgZD0iTTEwODggODAwdjY0cTAgMTMtOS41IDIyLjV0LTIyLjUgOS41aC01NzZxLTEzIDAtMjIuNS05LjV0LTkuNS0yMi41di02NHEwLTEzIDkuNS0yMi41dDIyLjUtOS41aDU3NnExMyAwIDIyLjUgOS41dDkuNSAyMi41em0xMjggMzJxMC0xODUtMTMxLjUtMzE2LjV0LTMxNi41LTEzMS41LTMxNi41IDEzMS41LTEzMS41IDMxNi41IDEzMS41IDMxNi41IDMxNi41IDEzMS41IDMxNi41LTEzMS41IDEzMS41LTMxNi41em01MTIgODMycTAgNTMtMzcuNSA5MC41dC05MC41IDM3LjVxLTU0IDAtOTAtMzhsLTM0My0zNDJxLTE3OSAxMjQtMzk5IDEyNC0xNDMgMC0yNzMuNS01NS41dC0yMjUtMTUwLTE1MC0yMjUtNTUuNS0yNzMuNSA1NS41LTI3My41IDE1MC0yMjUgMjI1LTE1MCAyNzMuNS01NS41IDI3My41IDU1LjUgMjI1IDE1MCAxNTAgMjI1IDU1LjUgMjczLjVxMCAyMjAtMTI0IDM5OWwzNDMgMzQzcTM3IDM3IDM3IDkweiIvPjwvc3ZnPg==); + } + + .icon-star { + background-image: url(icon_star_dark.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMTc5MiIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMTc5MiAxNzkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0xNzI4IDY0N3EwIDIyLTI2IDQ4bC0zNjMgMzU0IDg2IDUwMHExIDcgMSAyMCAwIDIxLTEwLjUgMzUuNXQtMzAuNSAxNC41cS0xOSAwLTQwLTEybC00NDktMjM2LTQ0OSAyMzZxLTIyIDEyLTQwIDEyLTIxIDAtMzEuNS0xNC41dC0xMC41LTM1LjVxMC02IDItMjBsODYtNTAwLTM2NC0zNTRxLTI1LTI3LTI1LTQ4IDAtMzcgNTYtNDZsNTAyLTczIDIyNS00NTVxMTktNDEgNDktNDF0NDkgNDFsMjI1IDQ1NSA1MDIgNzNxNTYgOSA1NiA0NnoiIGZpbGw9IiNmZmYiLz48L3N2Zz4=); + } + } +} + +.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} \ No newline at end of file diff --git a/docs/resources/reports/HtmlChart/CoverageHistory.htm b/docs/resources/reports/HtmlChart/CoverageHistory.htm new file mode 100644 index 00000000..384af688 --- /dev/null +++ b/docs/resources/reports/HtmlChart/CoverageHistory.htm @@ -0,0 +1,1084 @@ + + + + + + + +Summary - Coverage Report + +
+
+ +
+ + \ No newline at end of file diff --git a/docs/resources/reports/HtmlChart/CoverageHistory.html b/docs/resources/reports/HtmlChart/CoverageHistory.html new file mode 100644 index 00000000..384af688 --- /dev/null +++ b/docs/resources/reports/HtmlChart/CoverageHistory.html @@ -0,0 +1,1084 @@ + + + + + + + +Summary - Coverage Report + +
+
+ +
+ + \ No newline at end of file diff --git a/docs/resources/reports/HtmlInline/Sample_PartialClass.html b/docs/resources/reports/HtmlInline/Sample_PartialClass.html new file mode 100644 index 00000000..333aaa36 --- /dev/null +++ b/docs/resources/reports/HtmlInline/Sample_PartialClass.html @@ -0,0 +1,1206 @@ + + + + + + + +Sample.PartialClass - Coverage Report + +
+

< Summary

+
+
+
Information
+
+
+ + + + + + + + + + + + + +
Class:Sample.PartialClass
Assembly:Sample
File(s):File 1: C:\temp\PartialClass.cs
File 2: C:\temp\PartialClass2.cs
+
+
+
+
+
+
+
Line coverage
+
+
54%
+
+ + + + + + + + + + + + + + + + + + + + + +
Covered lines:12
Uncovered lines:10
Coverable lines:22
Total lines:53
Line coverage:54.5%
+
+
+
+
+
Branch coverage
+
+
50%
+
+ + + + + + + + + + + + + +
Covered branches:1
Total branches:2
Branch coverage:50%
+
+
+
+
+
Method coverage
+
+
50%
+
+ + + + + + + + + + + + + +
Covered methods:3
Total methods:6
Method coverage:50%
+
+
+
+
+

Coverage history

+
+ +

Metrics

+
+ + + + + + + + +
MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
File 1: ExecutedMethod_1()100%110100%
File 1: UnExecutedMethod_1()0%2100%
File 2: ExecutedMethod_2()100%110100%
File 2: UnExecutedMethod_2()0%2100%
+
+

File(s)

+

C:\temp\PartialClass.cs

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
#LineLine coverage
 1using System;
 2
 3namespace Test
 4{
 5    partial class PartialClass
 6    {
 7        public void ExecutedMethod_1()
 18        {
 19            Console.WriteLine("Test");
 110        }
 11
 12        public void UnExecutedMethod_1()
 013        {
 014            Console.WriteLine("Test");
 015        }
 16
 17        private int someProperty;
 18
 19        public int SomeProperty
 20        {
 021            get { return this.someProperty; }
 22
 23            set
 124            {
 125                if (value < 0)
 126                {
 127                    this.someProperty = 0;
 128                }
 29                else
 030                {
 031                    this.someProperty = value;
 032                }
 133            }
 34        }
 35    }
 36}
+
+

C:\temp\PartialClass2.cs

+
+ + + + + + + + + + + + + + + + + + + + + +
#LineLine coverage
 1using System;
 2
 3namespace Test
 4{
 5    partial class PartialClass
 6    {
 7        public void ExecutedMethod_2()
 18        {
 19            Console.WriteLine("Test");
 110        }
 11
 12        public void UnExecutedMethod_2()
 013        {
 014            Console.WriteLine("Test");
 015        }
 16    }
 17}
+
+
+
+ + \ No newline at end of file diff --git a/docs/resources/reports/HtmlInline/Sample_Program.html b/docs/resources/reports/HtmlInline/Sample_Program.html new file mode 100644 index 00000000..1e321982 --- /dev/null +++ b/docs/resources/reports/HtmlInline/Sample_Program.html @@ -0,0 +1,1231 @@ + + + + + + + +Test.Program - Coverage Report + +
+

< Summary

+
+
+
Information
+
+
+ + + + + + + + + + + + + +
Class:Test.Program
Assembly:Sample
File(s):C:\temp\Program.cs
+
+
+
+
+
+
+
Line coverage
+
+
79%
+
+ + + + + + + + + + + + + + + + + + + + + +
Covered lines:35
Uncovered lines:9
Coverable lines:44
Total lines:84
Line coverage:79.5%
+
+
+
+
+
Branch coverage
+
+
N/A
+
+ + + + + + + + + + + + + +
Covered branches:0
Total branches:0
Branch coverage:N/A
+
+
+
+
+
Method coverage
+
+
66%
+
+ + + + + + + + + + + + + +
Covered methods:4
Total methods:6
Method coverage:66.6%
+
+
+
+
+

Coverage history

+
+ +

Metrics

+
+ + + + + + + + + + +
MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
Main(...)100%11088%
CSharp_ExecuteTest1()0%2100%
CSharp_ExecuteTest2()0%2100%
CallAsyncMethod()100%330100%
.ctor(...)100%110100%
SendAsync(...)100%110100%
+
+

File(s)

+

C:\temp\Program.cs

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
#LineLine coverage
 1using System.Net.Http;
 2using System.Threading;
 3using System.Threading.Tasks;
 4using Microsoft.VisualStudio.TestTools.UnitTesting;
 5
 6namespace Test
 7{
 8    [TestClass]
 9    public class Program
 10    {
 11        static void Main(string[] args)
 112        {
 113            new TestClass().SampleFunction();
 14
 115            new TestClass2("Test").ExecutedMethod();
 116            new TestClass2("Test").SampleFunction("Munich");
 17
 118            new PartialClass().ExecutedMethod_1();
 119            new PartialClass().ExecutedMethod_2();
 120            new PartialClass().SomeProperty = -10;
 21
 122            new PartialClassWithAutoProperties().Property1 = "Test";
 123            new PartialClassWithAutoProperties().Property2 = "Test";
 24
 125            new SomeClass().Property1 = "Test";
 26
 127            new ClassWithExcludes().IncludedMethod();
 128            new ClassWithExcludes().ExcludedMethod();
 29
 130            new GenericClass<SomeModel, IState>().Process(null);
 131            new GenericClass<SomeModel, IState>().PostProcess(null);
 32
 133            new CodeContract_Target().Calculate(-1);
 34
 135            new AbstractClass_SampleImpl1();
 136            new AbstractClass_SampleImpl2();
 37
 138            CallAsyncMethod();
 39
 40            try
 141            {
 142                new CodeContract_Target().Calculate(0);
 143            }
 044            catch (System.ArgumentException)
 045            {
 046            }
 147        }
 48
 49        [TestMethod]
 50        public void CSharp_ExecuteTest1()
 051        {
 052            Main(null);
 053        }
 54
 55        [TestMethod]
 56        public void CSharp_ExecuteTest2()
 057        {
 058            Main(null);
 059        }
 60
 61        private static async void CallAsyncMethod()
 162        {
 163            var expected = new HttpResponseMessage();
 164            var handler = new AsyncClass() { InnerHandler = new EchoHandler(expected) };
 165            var invoker = new HttpMessageInvoker(handler, false);
 166            var actual = await invoker.SendAsync(new HttpRequestMessage(), new CancellationToken());
 167        }
 68
 69        private class EchoHandler : DelegatingHandler
 70        {
 71            private HttpResponseMessage _response;
 72
 173            public EchoHandler(HttpResponseMessage response)
 174            {
 175                this._response = response;
 176            }
 77
 78            protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancell
 179            {
 180                return Task.FromResult(this._response);
 181            }
 82        }
 83    }
 84}
+
+
+
+ + \ No newline at end of file diff --git a/docs/resources/reports/HtmlInline/Sample_TestClass.html b/docs/resources/reports/HtmlInline/Sample_TestClass.html new file mode 100644 index 00000000..1eefd839 --- /dev/null +++ b/docs/resources/reports/HtmlInline/Sample_TestClass.html @@ -0,0 +1,1177 @@ + + + + + + + +Sample.TestClass - Coverage Report + +
+

< Summary

+
+
+
Information
+
+
+ + + + + + + + + + + + + +
Class:Sample.TestClass
Assembly:Sample
File(s):C:\temp\TestClass.cs
+
+
+
+
+
+
+
Line coverage
+
+
57%
+
+ + + + + + + + + + + + + + + + + + + + + +
Covered lines:12
Uncovered lines:9
Coverable lines:21
Total lines:38
Line coverage:57.1%
+
+
+
+
+
Branch coverage
+
+
50%
+
+ + + + + + + + + + + + + +
Covered branches:1
Total branches:2
Branch coverage:50%
+
+
+
+
+
Method coverage
+
+
50%
+
+ + + + + + + + + + + + + +
Covered methods:1
Total methods:2
Method coverage:50%
+
+
+
+
+

Coverage history

+
+ +

Metrics

+
+ + + + + + +
MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
SampleFunction()66.67%3.143275%
SampleFunction()0%2100%
+
+

File(s)

+

C:\temp\TestClass.cs

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
#LineLine coverage
 1using System;
 2
 3namespace Test
 4{
 5    class TestClass
 6    {
 7        public void SampleFunction()
 18        {
 19            string test = string.Format(
 110                "{0} {1}",
 111                 "Hello",
 112                 "World");
 13
 114            Console.WriteLine(test);
 115            int i = 10;
 16
 117            if (i > 0 || i > 1)
 118            {
 119                Console.WriteLine(i + " is greater that 0");
 120            }
 21            else
 022            {
 023                Console.WriteLine(i + " is not greater that 0");
 024            }
 125        }
 26
 27        public class NestedClass
 28        {
 29            public void SampleFunction()
 030            {
 031                Console.WriteLine(
 032                    "{0} {1}",
 033                     "Hello",
 034                     "World");
 035            }
 36        }
 37    }
 38}
+
+
+
+
+

Methods/Properties

+SampleFunction()
+SampleFunction()
+
+
+ + \ No newline at end of file diff --git a/docs/resources/reports/HtmlInline/Sample_TestClass2.html b/docs/resources/reports/HtmlInline/Sample_TestClass2.html new file mode 100644 index 00000000..098f1c37 --- /dev/null +++ b/docs/resources/reports/HtmlInline/Sample_TestClass2.html @@ -0,0 +1,1236 @@ + + + + + + + +Test.TestClass2 - Coverage Report + +
+

< Summary

+
+
+
Information
+
+
+ + + + + + + + + + + + + +
Class:Test.TestClass2
Assembly:Sample
File(s):C:\temp\TestClass2.cs
+
+
+
+
+
+
+
Line coverage
+
+
63%
+
+ + + + + + + + + + + + + + + + + + + + + +
Covered lines:24
Uncovered lines:14
Coverable lines:38
Total lines:85
Line coverage:63.1%
+
+
+
+
+
Branch coverage
+
+
50%
+
+ + + + + + + + + + + + + +
Covered branches:1
Total branches:2
Branch coverage:50%
+
+
+
+
+
Method coverage
+
+
60%
+
+ + + + + + + + + + + + + +
Covered methods:6
Total methods:10
Method coverage:60%
+
+
+
+
+

Coverage history

+
+ +

Metrics

+
+ + + + + + + + + + +
MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
.ctor()0%2100%
.ctor(...)100%110100%
ExecutedMethod()100%110100%
UnExecutedMethod()0%2100%
SampleFunction(...)66.67%552100%
DoSomething(...)0%2100%
+
+

File(s)

+

C:\temp\TestClass2.cs

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
#LineLine coverage
 1using System;
 2using System.Collections.Generic;
 3using System.Linq;
 4
 5namespace Test
 6{
 7    class TestClass2
 8    {
 9        private string name;
 10
 211        private Dictionary<string, int> dict = new Dictionary<string, int>();
 12
 313        public string ExecutedProperty { get; set; }
 14
 015        public string UnExecutedProperty { get; set; }
 16
 017        public TestClass2()
 018        {
 019            this.name = "Nobody";
 020            this.ExecutedProperty = "Nobody";
 021        }
 22
 223        public TestClass2(string name)
 224        {
 225            this.name = name;
 226            this.ExecutedProperty = name + name;
 227        }
 28
 29        public void ExecutedMethod()
 130        {
 131            Console.WriteLine(this.name);
 132            Console.WriteLine(this.ExecutedProperty);
 133        }
 34
 35        public void UnExecutedMethod()
 036        {
 037            Console.WriteLine(this.name);
 038            Console.WriteLine(this.ExecutedProperty);
 039        }
 40
 41        public void SampleFunction(string city)
 142        {
 143            int[] values = new int[] { 0, 1, 2, 3 };
 44
 545            var doubled = values.Select(i => i * 2);
 46
 1147            foreach (var item in doubled)
 448            {
 449                Console.WriteLine(item);
 450            }
 51
 152            string[] cities = new string[] { "Berlin", "Munich", "Paris" };
 53
 454            if (cities.SingleOrDefault(c => c.Equals(city, StringComparison.OrdinalIgnoreCase)) != null)
 155            {
 156                Console.WriteLine("Found " + city);
 157            }
 158        }
 59
 60        public string DoSomething(string value,
 61            string[] stringArray,
 62            Guid id,
 63            IEnumerable<string> stringEnumerable,
 64            IList<string> stringList,
 65            decimal dec,
 66            int i,
 67            Dictionary<string, int> dict,
 68            out int g,
 69            float fff,
 70            double dou,
 71            bool bo,
 72            byte by,
 73            char ch,
 74            object o,
 75            sbyte sby,
 76            short sh,
 77            uint ui,
 78            ulong ul,
 79            ushort usho)
 080        {
 081            g = 0;
 082            return null;
 083        }
 84    }
 85}
+
+
+
+ + \ No newline at end of file diff --git a/docs/resources/reports/HtmlInline/index.html b/docs/resources/reports/HtmlInline/index.html new file mode 100644 index 00000000..b8f9863b --- /dev/null +++ b/docs/resources/reports/HtmlInline/index.html @@ -0,0 +1,1225 @@ + + + + + + + +Summary - Coverage Report + +
+

SummaryStarSponsor

+
+
+
Information
+
+
+ + + + + + + + + + + + + + + + + +
Parser:OpenCover
Assemblies:1
Classes:4
Files:5
+
+
+
+
+
Line coverage
+
+
66%
+
+ + + + + + + + + + + + + + + + + + + + + +
Covered lines:83
Uncovered lines:42
Coverable lines:125
Total lines:260
Line coverage:66.4%
+
+
+
+
+
Branch coverage
+
+
50%
+
+ + + + + + + + + + + + + +
Covered branches:3
Total branches:6
Branch coverage:50%
+
+
+
+
+
Method coverage
+
+
58%
+
+ + + + + + + + + + + + + +
Covered methods:14
Total methods:24
Method coverage:58.3%
+
+
+
+
+

Coverage history

+
+ +

Risk Hotspots

+ + +

No risk hotspots found.

+

Coverage

+ +
+ +++++++++++++++++ + + + + + + + + + + +
Line coverageBranch coverageMethod coverage
NameCoveredUncoveredCoverableTotalPercentageCoveredTotalPercentageCoveredTotalPercentage
Sample834212526066.4%
  
3650%
  
142458.3%
  
Sample.PartialClass1210225354.5%
  
1250%
  
3650%
  
Sample.TestClass129213857.1%
  
1250%
  
1250%
  
Test.Program359448479.5%
  
00
 
4666.6%
  
Test.TestClass22414388563.1%
  
1250%
  
61060%
  
+
+
+
+ + \ No newline at end of file diff --git a/docs/resources/reports/HtmlInline_AzurePipelines/Sample_PartialClass.html b/docs/resources/reports/HtmlInline_AzurePipelines/Sample_PartialClass.html new file mode 100644 index 00000000..bea065b6 --- /dev/null +++ b/docs/resources/reports/HtmlInline_AzurePipelines/Sample_PartialClass.html @@ -0,0 +1,1032 @@ + + + + + + + +Sample.PartialClass - Coverage Report + +
+

< Summary

+
+
+
Information
+
+
+ + + + + + + + + + + + + +
Class:Sample.PartialClass
Assembly:Sample
File(s):File 1: C:\temp\PartialClass.cs
File 2: C:\temp\PartialClass2.cs
+
+
+
+
+
+
+
Line coverage
+
+
54%
+
+ + + + + + + + + + + + + + + + + + + + + +
Covered lines:12
Uncovered lines:10
Coverable lines:22
Total lines:53
Line coverage:54.5%
+
+
+
+
+
Branch coverage
+
+
50%
+
+ + + + + + + + + + + + + +
Covered branches:1
Total branches:2
Branch coverage:50%
+
+
+
+
+
Method coverage
+
+
50%
+
+ + + + + + + + + + + + + +
Covered methods:3
Total methods:6
Method coverage:50%
+
+
+
+
+

Coverage history

+
+ +

Metrics

+
+ + + + + + + + +
MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
File 1: ExecutedMethod_1()100%110100%
File 1: UnExecutedMethod_1()0%2100%
File 2: ExecutedMethod_2()100%110100%
File 2: UnExecutedMethod_2()0%2100%
+
+

File(s)

+

C:\temp\PartialClass.cs

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
#LineLine coverage
 1using System;
 2
 3namespace Test
 4{
 5    partial class PartialClass
 6    {
 7        public void ExecutedMethod_1()
 18        {
 19            Console.WriteLine("Test");
 110        }
 11
 12        public void UnExecutedMethod_1()
 013        {
 014            Console.WriteLine("Test");
 015        }
 16
 17        private int someProperty;
 18
 19        public int SomeProperty
 20        {
 021            get { return this.someProperty; }
 22
 23            set
 124            {
 125                if (value < 0)
 126                {
 127                    this.someProperty = 0;
 128                }
 29                else
 030                {
 031                    this.someProperty = value;
 032                }
 133            }
 34        }
 35    }
 36}
+
+

C:\temp\PartialClass2.cs

+
+ + + + + + + + + + + + + + + + + + + + + +
#LineLine coverage
 1using System;
 2
 3namespace Test
 4{
 5    partial class PartialClass
 6    {
 7        public void ExecutedMethod_2()
 18        {
 19            Console.WriteLine("Test");
 110        }
 11
 12        public void UnExecutedMethod_2()
 013        {
 014            Console.WriteLine("Test");
 015        }
 16    }
 17}
+
+
+
+ + \ No newline at end of file diff --git a/docs/resources/reports/HtmlInline_AzurePipelines/Sample_Program.html b/docs/resources/reports/HtmlInline_AzurePipelines/Sample_Program.html new file mode 100644 index 00000000..24c53abe --- /dev/null +++ b/docs/resources/reports/HtmlInline_AzurePipelines/Sample_Program.html @@ -0,0 +1,1057 @@ + + + + + + + +Test.Program - Coverage Report + +
+

< Summary

+
+
+
Information
+
+
+ + + + + + + + + + + + + +
Class:Test.Program
Assembly:Sample
File(s):C:\temp\Program.cs
+
+
+
+
+
+
+
Line coverage
+
+
79%
+
+ + + + + + + + + + + + + + + + + + + + + +
Covered lines:35
Uncovered lines:9
Coverable lines:44
Total lines:84
Line coverage:79.5%
+
+
+
+
+
Branch coverage
+
+
N/A
+
+ + + + + + + + + + + + + +
Covered branches:0
Total branches:0
Branch coverage:N/A
+
+
+
+
+
Method coverage
+
+
66%
+
+ + + + + + + + + + + + + +
Covered methods:4
Total methods:6
Method coverage:66.6%
+
+
+
+
+

Coverage history

+
+ +

Metrics

+
+ + + + + + + + + + +
MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
Main(...)100%11088%
CSharp_ExecuteTest1()0%2100%
CSharp_ExecuteTest2()0%2100%
CallAsyncMethod()100%330100%
.ctor(...)100%110100%
SendAsync(...)100%110100%
+
+

File(s)

+

C:\temp\Program.cs

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
#LineLine coverage
 1using System.Net.Http;
 2using System.Threading;
 3using System.Threading.Tasks;
 4using Microsoft.VisualStudio.TestTools.UnitTesting;
 5
 6namespace Test
 7{
 8    [TestClass]
 9    public class Program
 10    {
 11        static void Main(string[] args)
 112        {
 113            new TestClass().SampleFunction();
 14
 115            new TestClass2("Test").ExecutedMethod();
 116            new TestClass2("Test").SampleFunction("Munich");
 17
 118            new PartialClass().ExecutedMethod_1();
 119            new PartialClass().ExecutedMethod_2();
 120            new PartialClass().SomeProperty = -10;
 21
 122            new PartialClassWithAutoProperties().Property1 = "Test";
 123            new PartialClassWithAutoProperties().Property2 = "Test";
 24
 125            new SomeClass().Property1 = "Test";
 26
 127            new ClassWithExcludes().IncludedMethod();
 128            new ClassWithExcludes().ExcludedMethod();
 29
 130            new GenericClass<SomeModel, IState>().Process(null);
 131            new GenericClass<SomeModel, IState>().PostProcess(null);
 32
 133            new CodeContract_Target().Calculate(-1);
 34
 135            new AbstractClass_SampleImpl1();
 136            new AbstractClass_SampleImpl2();
 37
 138            CallAsyncMethod();
 39
 40            try
 141            {
 142                new CodeContract_Target().Calculate(0);
 143            }
 044            catch (System.ArgumentException)
 045            {
 046            }
 147        }
 48
 49        [TestMethod]
 50        public void CSharp_ExecuteTest1()
 051        {
 052            Main(null);
 053        }
 54
 55        [TestMethod]
 56        public void CSharp_ExecuteTest2()
 057        {
 058            Main(null);
 059        }
 60
 61        private static async void CallAsyncMethod()
 162        {
 163            var expected = new HttpResponseMessage();
 164            var handler = new AsyncClass() { InnerHandler = new EchoHandler(expected) };
 165            var invoker = new HttpMessageInvoker(handler, false);
 166            var actual = await invoker.SendAsync(new HttpRequestMessage(), new CancellationToken());
 167        }
 68
 69        private class EchoHandler : DelegatingHandler
 70        {
 71            private HttpResponseMessage _response;
 72
 173            public EchoHandler(HttpResponseMessage response)
 174            {
 175                this._response = response;
 176            }
 77
 78            protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancell
 179            {
 180                return Task.FromResult(this._response);
 181            }
 82        }
 83    }
 84}
+
+
+
+ + \ No newline at end of file diff --git a/docs/resources/reports/HtmlInline_AzurePipelines/Sample_TestClass.html b/docs/resources/reports/HtmlInline_AzurePipelines/Sample_TestClass.html new file mode 100644 index 00000000..b98cd58a --- /dev/null +++ b/docs/resources/reports/HtmlInline_AzurePipelines/Sample_TestClass.html @@ -0,0 +1,1003 @@ + + + + + + + +Sample.TestClass - Coverage Report + +
+

< Summary

+
+
+
Information
+
+
+ + + + + + + + + + + + + +
Class:Sample.TestClass
Assembly:Sample
File(s):C:\temp\TestClass.cs
+
+
+
+
+
+
+
Line coverage
+
+
57%
+
+ + + + + + + + + + + + + + + + + + + + + +
Covered lines:12
Uncovered lines:9
Coverable lines:21
Total lines:38
Line coverage:57.1%
+
+
+
+
+
Branch coverage
+
+
50%
+
+ + + + + + + + + + + + + +
Covered branches:1
Total branches:2
Branch coverage:50%
+
+
+
+
+
Method coverage
+
+
50%
+
+ + + + + + + + + + + + + +
Covered methods:1
Total methods:2
Method coverage:50%
+
+
+
+
+

Coverage history

+
+ +

Metrics

+
+ + + + + + +
MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
SampleFunction()66.67%3.143275%
SampleFunction()0%2100%
+
+

File(s)

+

C:\temp\TestClass.cs

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
#LineLine coverage
 1using System;
 2
 3namespace Test
 4{
 5    class TestClass
 6    {
 7        public void SampleFunction()
 18        {
 19            string test = string.Format(
 110                "{0} {1}",
 111                 "Hello",
 112                 "World");
 13
 114            Console.WriteLine(test);
 115            int i = 10;
 16
 117            if (i > 0 || i > 1)
 118            {
 119                Console.WriteLine(i + " is greater that 0");
 120            }
 21            else
 022            {
 023                Console.WriteLine(i + " is not greater that 0");
 024            }
 125        }
 26
 27        public class NestedClass
 28        {
 29            public void SampleFunction()
 030            {
 031                Console.WriteLine(
 032                    "{0} {1}",
 033                     "Hello",
 034                     "World");
 035            }
 36        }
 37    }
 38}
+
+
+
+
+

Methods/Properties

+SampleFunction()
+SampleFunction()
+
+
+ + \ No newline at end of file diff --git a/docs/resources/reports/HtmlInline_AzurePipelines/Sample_TestClass2.html b/docs/resources/reports/HtmlInline_AzurePipelines/Sample_TestClass2.html new file mode 100644 index 00000000..dc196f76 --- /dev/null +++ b/docs/resources/reports/HtmlInline_AzurePipelines/Sample_TestClass2.html @@ -0,0 +1,1062 @@ + + + + + + + +Test.TestClass2 - Coverage Report + +
+

< Summary

+
+
+
Information
+
+
+ + + + + + + + + + + + + +
Class:Test.TestClass2
Assembly:Sample
File(s):C:\temp\TestClass2.cs
+
+
+
+
+
+
+
Line coverage
+
+
63%
+
+ + + + + + + + + + + + + + + + + + + + + +
Covered lines:24
Uncovered lines:14
Coverable lines:38
Total lines:85
Line coverage:63.1%
+
+
+
+
+
Branch coverage
+
+
50%
+
+ + + + + + + + + + + + + +
Covered branches:1
Total branches:2
Branch coverage:50%
+
+
+
+
+
Method coverage
+
+
60%
+
+ + + + + + + + + + + + + +
Covered methods:6
Total methods:10
Method coverage:60%
+
+
+
+
+

Coverage history

+
+ +

Metrics

+
+ + + + + + + + + + +
MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
.ctor()0%2100%
.ctor(...)100%110100%
ExecutedMethod()100%110100%
UnExecutedMethod()0%2100%
SampleFunction(...)66.67%552100%
DoSomething(...)0%2100%
+
+

File(s)

+

C:\temp\TestClass2.cs

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
#LineLine coverage
 1using System;
 2using System.Collections.Generic;
 3using System.Linq;
 4
 5namespace Test
 6{
 7    class TestClass2
 8    {
 9        private string name;
 10
 211        private Dictionary<string, int> dict = new Dictionary<string, int>();
 12
 313        public string ExecutedProperty { get; set; }
 14
 015        public string UnExecutedProperty { get; set; }
 16
 017        public TestClass2()
 018        {
 019            this.name = "Nobody";
 020            this.ExecutedProperty = "Nobody";
 021        }
 22
 223        public TestClass2(string name)
 224        {
 225            this.name = name;
 226            this.ExecutedProperty = name + name;
 227        }
 28
 29        public void ExecutedMethod()
 130        {
 131            Console.WriteLine(this.name);
 132            Console.WriteLine(this.ExecutedProperty);
 133        }
 34
 35        public void UnExecutedMethod()
 036        {
 037            Console.WriteLine(this.name);
 038            Console.WriteLine(this.ExecutedProperty);
 039        }
 40
 41        public void SampleFunction(string city)
 142        {
 143            int[] values = new int[] { 0, 1, 2, 3 };
 44
 545            var doubled = values.Select(i => i * 2);
 46
 1147            foreach (var item in doubled)
 448            {
 449                Console.WriteLine(item);
 450            }
 51
 152            string[] cities = new string[] { "Berlin", "Munich", "Paris" };
 53
 454            if (cities.SingleOrDefault(c => c.Equals(city, StringComparison.OrdinalIgnoreCase)) != null)
 155            {
 156                Console.WriteLine("Found " + city);
 157            }
 158        }
 59
 60        public string DoSomething(string value,
 61            string[] stringArray,
 62            Guid id,
 63            IEnumerable<string> stringEnumerable,
 64            IList<string> stringList,
 65            decimal dec,
 66            int i,
 67            Dictionary<string, int> dict,
 68            out int g,
 69            float fff,
 70            double dou,
 71            bool bo,
 72            byte by,
 73            char ch,
 74            object o,
 75            sbyte sby,
 76            short sh,
 77            uint ui,
 78            ulong ul,
 79            ushort usho)
 080        {
 081            g = 0;
 082            return null;
 083        }
 84    }
 85}
+
+
+
+ + \ No newline at end of file diff --git a/docs/resources/reports/HtmlInline_AzurePipelines/index.html b/docs/resources/reports/HtmlInline_AzurePipelines/index.html new file mode 100644 index 00000000..d5b4352a --- /dev/null +++ b/docs/resources/reports/HtmlInline_AzurePipelines/index.html @@ -0,0 +1,1051 @@ + + + + + + + +Summary - Coverage Report + +
+

SummaryStarSponsor

+
+
+
Information
+
+
+ + + + + + + + + + + + + + + + + +
Parser:OpenCover
Assemblies:1
Classes:4
Files:5
+
+
+
+
+
Line coverage
+
+
66%
+
+ + + + + + + + + + + + + + + + + + + + + +
Covered lines:83
Uncovered lines:42
Coverable lines:125
Total lines:260
Line coverage:66.4%
+
+
+
+
+
Branch coverage
+
+
50%
+
+ + + + + + + + + + + + + +
Covered branches:3
Total branches:6
Branch coverage:50%
+
+
+
+
+
Method coverage
+
+
58%
+
+ + + + + + + + + + + + + +
Covered methods:14
Total methods:24
Method coverage:58.3%
+
+
+
+
+

Coverage history

+
+ +

Risk Hotspots

+ + +

No risk hotspots found.

+

Coverage

+ +
+ +++++++++++++++++ + + + + + + + + + + +
Line coverageBranch coverageMethod coverage
NameCoveredUncoveredCoverableTotalPercentageCoveredTotalPercentageCoveredTotalPercentage
Sample834212526066.4%
  
3650%
  
142458.3%
  
Sample.PartialClass1210225354.5%
  
1250%
  
3650%
  
Sample.TestClass129213857.1%
  
1250%
  
1250%
  
Test.Program359448479.5%
  
00
 
4666.6%
  
Test.TestClass22414388563.1%
  
1250%
  
61060%
  
+
+
+
+ + \ No newline at end of file diff --git a/docs/resources/reports/HtmlInline_AzurePipelines_Dark/Sample_PartialClass.html b/docs/resources/reports/HtmlInline_AzurePipelines_Dark/Sample_PartialClass.html new file mode 100644 index 00000000..235e9648 --- /dev/null +++ b/docs/resources/reports/HtmlInline_AzurePipelines_Dark/Sample_PartialClass.html @@ -0,0 +1,1031 @@ + + + + + + + +Sample.PartialClass - Coverage Report + +
+

< Summary

+
+
+
Information
+
+
+ + + + + + + + + + + + + +
Class:Sample.PartialClass
Assembly:Sample
File(s):File 1: C:\temp\PartialClass.cs
File 2: C:\temp\PartialClass2.cs
+
+
+
+
+
+
+
Line coverage
+
+
54%
+
+ + + + + + + + + + + + + + + + + + + + + +
Covered lines:12
Uncovered lines:10
Coverable lines:22
Total lines:53
Line coverage:54.5%
+
+
+
+
+
Branch coverage
+
+
50%
+
+ + + + + + + + + + + + + +
Covered branches:1
Total branches:2
Branch coverage:50%
+
+
+
+
+
Method coverage
+
+
50%
+
+ + + + + + + + + + + + + +
Covered methods:3
Total methods:6
Method coverage:50%
+
+
+
+
+

Coverage history

+
+ +

Metrics

+
+ + + + + + + + +
MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
File 1: ExecutedMethod_1()100%110100%
File 1: UnExecutedMethod_1()0%2100%
File 2: ExecutedMethod_2()100%110100%
File 2: UnExecutedMethod_2()0%2100%
+
+

File(s)

+

C:\temp\PartialClass.cs

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
#LineLine coverage
 1using System;
 2
 3namespace Test
 4{
 5    partial class PartialClass
 6    {
 7        public void ExecutedMethod_1()
 18        {
 19            Console.WriteLine("Test");
 110        }
 11
 12        public void UnExecutedMethod_1()
 013        {
 014            Console.WriteLine("Test");
 015        }
 16
 17        private int someProperty;
 18
 19        public int SomeProperty
 20        {
 021            get { return this.someProperty; }
 22
 23            set
 124            {
 125                if (value < 0)
 126                {
 127                    this.someProperty = 0;
 128                }
 29                else
 030                {
 031                    this.someProperty = value;
 032                }
 133            }
 34        }
 35    }
 36}
+
+

C:\temp\PartialClass2.cs

+
+ + + + + + + + + + + + + + + + + + + + + +
#LineLine coverage
 1using System;
 2
 3namespace Test
 4{
 5    partial class PartialClass
 6    {
 7        public void ExecutedMethod_2()
 18        {
 19            Console.WriteLine("Test");
 110        }
 11
 12        public void UnExecutedMethod_2()
 013        {
 014            Console.WriteLine("Test");
 015        }
 16    }
 17}
+
+
+
+ + \ No newline at end of file diff --git a/docs/resources/reports/HtmlInline_AzurePipelines_Dark/Sample_Program.html b/docs/resources/reports/HtmlInline_AzurePipelines_Dark/Sample_Program.html new file mode 100644 index 00000000..a44ee474 --- /dev/null +++ b/docs/resources/reports/HtmlInline_AzurePipelines_Dark/Sample_Program.html @@ -0,0 +1,1056 @@ + + + + + + + +Test.Program - Coverage Report + +
+

< Summary

+
+
+
Information
+
+
+ + + + + + + + + + + + + +
Class:Test.Program
Assembly:Sample
File(s):C:\temp\Program.cs
+
+
+
+
+
+
+
Line coverage
+
+
79%
+
+ + + + + + + + + + + + + + + + + + + + + +
Covered lines:35
Uncovered lines:9
Coverable lines:44
Total lines:84
Line coverage:79.5%
+
+
+
+
+
Branch coverage
+
+
N/A
+
+ + + + + + + + + + + + + +
Covered branches:0
Total branches:0
Branch coverage:N/A
+
+
+
+
+
Method coverage
+
+
66%
+
+ + + + + + + + + + + + + +
Covered methods:4
Total methods:6
Method coverage:66.6%
+
+
+
+
+

Coverage history

+
+ +

Metrics

+
+ + + + + + + + + + +
MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
Main(...)100%11088%
CSharp_ExecuteTest1()0%2100%
CSharp_ExecuteTest2()0%2100%
CallAsyncMethod()100%330100%
.ctor(...)100%110100%
SendAsync(...)100%110100%
+
+

File(s)

+

C:\temp\Program.cs

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
#LineLine coverage
 1using System.Net.Http;
 2using System.Threading;
 3using System.Threading.Tasks;
 4using Microsoft.VisualStudio.TestTools.UnitTesting;
 5
 6namespace Test
 7{
 8    [TestClass]
 9    public class Program
 10    {
 11        static void Main(string[] args)
 112        {
 113            new TestClass().SampleFunction();
 14
 115            new TestClass2("Test").ExecutedMethod();
 116            new TestClass2("Test").SampleFunction("Munich");
 17
 118            new PartialClass().ExecutedMethod_1();
 119            new PartialClass().ExecutedMethod_2();
 120            new PartialClass().SomeProperty = -10;
 21
 122            new PartialClassWithAutoProperties().Property1 = "Test";
 123            new PartialClassWithAutoProperties().Property2 = "Test";
 24
 125            new SomeClass().Property1 = "Test";
 26
 127            new ClassWithExcludes().IncludedMethod();
 128            new ClassWithExcludes().ExcludedMethod();
 29
 130            new GenericClass<SomeModel, IState>().Process(null);
 131            new GenericClass<SomeModel, IState>().PostProcess(null);
 32
 133            new CodeContract_Target().Calculate(-1);
 34
 135            new AbstractClass_SampleImpl1();
 136            new AbstractClass_SampleImpl2();
 37
 138            CallAsyncMethod();
 39
 40            try
 141            {
 142                new CodeContract_Target().Calculate(0);
 143            }
 044            catch (System.ArgumentException)
 045            {
 046            }
 147        }
 48
 49        [TestMethod]
 50        public void CSharp_ExecuteTest1()
 051        {
 052            Main(null);
 053        }
 54
 55        [TestMethod]
 56        public void CSharp_ExecuteTest2()
 057        {
 058            Main(null);
 059        }
 60
 61        private static async void CallAsyncMethod()
 162        {
 163            var expected = new HttpResponseMessage();
 164            var handler = new AsyncClass() { InnerHandler = new EchoHandler(expected) };
 165            var invoker = new HttpMessageInvoker(handler, false);
 166            var actual = await invoker.SendAsync(new HttpRequestMessage(), new CancellationToken());
 167        }
 68
 69        private class EchoHandler : DelegatingHandler
 70        {
 71            private HttpResponseMessage _response;
 72
 173            public EchoHandler(HttpResponseMessage response)
 174            {
 175                this._response = response;
 176            }
 77
 78            protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancell
 179            {
 180                return Task.FromResult(this._response);
 181            }
 82        }
 83    }
 84}
+
+
+
+ + \ No newline at end of file diff --git a/docs/resources/reports/HtmlInline_AzurePipelines_Dark/Sample_TestClass.html b/docs/resources/reports/HtmlInline_AzurePipelines_Dark/Sample_TestClass.html new file mode 100644 index 00000000..bfd26e17 --- /dev/null +++ b/docs/resources/reports/HtmlInline_AzurePipelines_Dark/Sample_TestClass.html @@ -0,0 +1,1002 @@ + + + + + + + +Sample.TestClass - Coverage Report + +
+

< Summary

+
+
+
Information
+
+
+ + + + + + + + + + + + + +
Class:Sample.TestClass
Assembly:Sample
File(s):C:\temp\TestClass.cs
+
+
+
+
+
+
+
Line coverage
+
+
57%
+
+ + + + + + + + + + + + + + + + + + + + + +
Covered lines:12
Uncovered lines:9
Coverable lines:21
Total lines:38
Line coverage:57.1%
+
+
+
+
+
Branch coverage
+
+
50%
+
+ + + + + + + + + + + + + +
Covered branches:1
Total branches:2
Branch coverage:50%
+
+
+
+
+
Method coverage
+
+
50%
+
+ + + + + + + + + + + + + +
Covered methods:1
Total methods:2
Method coverage:50%
+
+
+
+
+

Coverage history

+
+ +

Metrics

+
+ + + + + + +
MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
SampleFunction()66.67%3.143275%
SampleFunction()0%2100%
+
+

File(s)

+

C:\temp\TestClass.cs

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
#LineLine coverage
 1using System;
 2
 3namespace Test
 4{
 5    class TestClass
 6    {
 7        public void SampleFunction()
 18        {
 19            string test = string.Format(
 110                "{0} {1}",
 111                 "Hello",
 112                 "World");
 13
 114            Console.WriteLine(test);
 115            int i = 10;
 16
 117            if (i > 0 || i > 1)
 118            {
 119                Console.WriteLine(i + " is greater that 0");
 120            }
 21            else
 022            {
 023                Console.WriteLine(i + " is not greater that 0");
 024            }
 125        }
 26
 27        public class NestedClass
 28        {
 29            public void SampleFunction()
 030            {
 031                Console.WriteLine(
 032                    "{0} {1}",
 033                     "Hello",
 034                     "World");
 035            }
 36        }
 37    }
 38}
+
+
+
+
+

Methods/Properties

+SampleFunction()
+SampleFunction()
+
+
+ + \ No newline at end of file diff --git a/docs/resources/reports/HtmlInline_AzurePipelines_Dark/Sample_TestClass2.html b/docs/resources/reports/HtmlInline_AzurePipelines_Dark/Sample_TestClass2.html new file mode 100644 index 00000000..2a3859a7 --- /dev/null +++ b/docs/resources/reports/HtmlInline_AzurePipelines_Dark/Sample_TestClass2.html @@ -0,0 +1,1061 @@ + + + + + + + +Test.TestClass2 - Coverage Report + +
+

< Summary

+
+
+
Information
+
+
+ + + + + + + + + + + + + +
Class:Test.TestClass2
Assembly:Sample
File(s):C:\temp\TestClass2.cs
+
+
+
+
+
+
+
Line coverage
+
+
63%
+
+ + + + + + + + + + + + + + + + + + + + + +
Covered lines:24
Uncovered lines:14
Coverable lines:38
Total lines:85
Line coverage:63.1%
+
+
+
+
+
Branch coverage
+
+
50%
+
+ + + + + + + + + + + + + +
Covered branches:1
Total branches:2
Branch coverage:50%
+
+
+
+
+
Method coverage
+
+
60%
+
+ + + + + + + + + + + + + +
Covered methods:6
Total methods:10
Method coverage:60%
+
+
+
+
+

Coverage history

+
+ +

Metrics

+
+ + + + + + + + + + +
MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
.ctor()0%2100%
.ctor(...)100%110100%
ExecutedMethod()100%110100%
UnExecutedMethod()0%2100%
SampleFunction(...)66.67%552100%
DoSomething(...)0%2100%
+
+

File(s)

+

C:\temp\TestClass2.cs

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
#LineLine coverage
 1using System;
 2using System.Collections.Generic;
 3using System.Linq;
 4
 5namespace Test
 6{
 7    class TestClass2
 8    {
 9        private string name;
 10
 211        private Dictionary<string, int> dict = new Dictionary<string, int>();
 12
 313        public string ExecutedProperty { get; set; }
 14
 015        public string UnExecutedProperty { get; set; }
 16
 017        public TestClass2()
 018        {
 019            this.name = "Nobody";
 020            this.ExecutedProperty = "Nobody";
 021        }
 22
 223        public TestClass2(string name)
 224        {
 225            this.name = name;
 226            this.ExecutedProperty = name + name;
 227        }
 28
 29        public void ExecutedMethod()
 130        {
 131            Console.WriteLine(this.name);
 132            Console.WriteLine(this.ExecutedProperty);
 133        }
 34
 35        public void UnExecutedMethod()
 036        {
 037            Console.WriteLine(this.name);
 038            Console.WriteLine(this.ExecutedProperty);
 039        }
 40
 41        public void SampleFunction(string city)
 142        {
 143            int[] values = new int[] { 0, 1, 2, 3 };
 44
 545            var doubled = values.Select(i => i * 2);
 46
 1147            foreach (var item in doubled)
 448            {
 449                Console.WriteLine(item);
 450            }
 51
 152            string[] cities = new string[] { "Berlin", "Munich", "Paris" };
 53
 454            if (cities.SingleOrDefault(c => c.Equals(city, StringComparison.OrdinalIgnoreCase)) != null)
 155            {
 156                Console.WriteLine("Found " + city);
 157            }
 158        }
 59
 60        public string DoSomething(string value,
 61            string[] stringArray,
 62            Guid id,
 63            IEnumerable<string> stringEnumerable,
 64            IList<string> stringList,
 65            decimal dec,
 66            int i,
 67            Dictionary<string, int> dict,
 68            out int g,
 69            float fff,
 70            double dou,
 71            bool bo,
 72            byte by,
 73            char ch,
 74            object o,
 75            sbyte sby,
 76            short sh,
 77            uint ui,
 78            ulong ul,
 79            ushort usho)
 080        {
 081            g = 0;
 082            return null;
 083        }
 84    }
 85}
+
+
+
+ + \ No newline at end of file diff --git a/docs/resources/reports/HtmlInline_AzurePipelines_Dark/index.html b/docs/resources/reports/HtmlInline_AzurePipelines_Dark/index.html new file mode 100644 index 00000000..639f202c --- /dev/null +++ b/docs/resources/reports/HtmlInline_AzurePipelines_Dark/index.html @@ -0,0 +1,1050 @@ + + + + + + + +Summary - Coverage Report + +
+

SummaryStarSponsor

+
+
+
Information
+
+
+ + + + + + + + + + + + + + + + + +
Parser:OpenCover
Assemblies:1
Classes:4
Files:5
+
+
+
+
+
Line coverage
+
+
66%
+
+ + + + + + + + + + + + + + + + + + + + + +
Covered lines:83
Uncovered lines:42
Coverable lines:125
Total lines:260
Line coverage:66.4%
+
+
+
+
+
Branch coverage
+
+
50%
+
+ + + + + + + + + + + + + +
Covered branches:3
Total branches:6
Branch coverage:50%
+
+
+
+
+
Method coverage
+
+
58%
+
+ + + + + + + + + + + + + +
Covered methods:14
Total methods:24
Method coverage:58.3%
+
+
+
+
+

Coverage history

+
+ +

Risk Hotspots

+ + +

No risk hotspots found.

+

Coverage

+ +
+ +++++++++++++++++ + + + + + + + + + + +
Line coverageBranch coverageMethod coverage
NameCoveredUncoveredCoverableTotalPercentageCoveredTotalPercentageCoveredTotalPercentage
Sample834212526066.4%
  
3650%
  
142458.3%
  
Sample.PartialClass1210225354.5%
  
1250%
  
3650%
  
Sample.TestClass129213857.1%
  
1250%
  
1250%
  
Test.Program359448479.5%
  
00
 
4666.6%
  
Test.TestClass22414388563.1%
  
1250%
  
61060%
  
+
+
+
+ + \ No newline at end of file diff --git a/docs/resources/reports/HtmlInline_AzurePipelines_Light/Sample_PartialClass.html b/docs/resources/reports/HtmlInline_AzurePipelines_Light/Sample_PartialClass.html new file mode 100644 index 00000000..92b51637 --- /dev/null +++ b/docs/resources/reports/HtmlInline_AzurePipelines_Light/Sample_PartialClass.html @@ -0,0 +1,948 @@ + + + + + + + +Sample.PartialClass - Coverage Report + +
+

< Summary

+
+
+
Information
+
+
+ + + + + + + + + + + + + +
Class:Sample.PartialClass
Assembly:Sample
File(s):File 1: C:\temp\PartialClass.cs
File 2: C:\temp\PartialClass2.cs
+
+
+
+
+
+
+
Line coverage
+
+
54%
+
+ + + + + + + + + + + + + + + + + + + + + +
Covered lines:12
Uncovered lines:10
Coverable lines:22
Total lines:53
Line coverage:54.5%
+
+
+
+
+
Branch coverage
+
+
50%
+
+ + + + + + + + + + + + + +
Covered branches:1
Total branches:2
Branch coverage:50%
+
+
+
+
+
Method coverage
+
+
50%
+
+ + + + + + + + + + + + + +
Covered methods:3
Total methods:6
Method coverage:50%
+
+
+
+
+

Coverage history

+
+ +

Metrics

+
+ + + + + + + + +
MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
File 1: ExecutedMethod_1()100%110100%
File 1: UnExecutedMethod_1()0%2100%
File 2: ExecutedMethod_2()100%110100%
File 2: UnExecutedMethod_2()0%2100%
+
+

File(s)

+

C:\temp\PartialClass.cs

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
#LineLine coverage
 1using System;
 2
 3namespace Test
 4{
 5    partial class PartialClass
 6    {
 7        public void ExecutedMethod_1()
 18        {
 19            Console.WriteLine("Test");
 110        }
 11
 12        public void UnExecutedMethod_1()
 013        {
 014            Console.WriteLine("Test");
 015        }
 16
 17        private int someProperty;
 18
 19        public int SomeProperty
 20        {
 021            get { return this.someProperty; }
 22
 23            set
 124            {
 125                if (value < 0)
 126                {
 127                    this.someProperty = 0;
 128                }
 29                else
 030                {
 031                    this.someProperty = value;
 032                }
 133            }
 34        }
 35    }
 36}
+
+

C:\temp\PartialClass2.cs

+
+ + + + + + + + + + + + + + + + + + + + + +
#LineLine coverage
 1using System;
 2
 3namespace Test
 4{
 5    partial class PartialClass
 6    {
 7        public void ExecutedMethod_2()
 18        {
 19            Console.WriteLine("Test");
 110        }
 11
 12        public void UnExecutedMethod_2()
 013        {
 014            Console.WriteLine("Test");
 015        }
 16    }
 17}
+
+
+
+ + \ No newline at end of file diff --git a/docs/resources/reports/HtmlInline_AzurePipelines_Light/Sample_Program.html b/docs/resources/reports/HtmlInline_AzurePipelines_Light/Sample_Program.html new file mode 100644 index 00000000..c8e3882b --- /dev/null +++ b/docs/resources/reports/HtmlInline_AzurePipelines_Light/Sample_Program.html @@ -0,0 +1,973 @@ + + + + + + + +Test.Program - Coverage Report + +
+

< Summary

+
+
+
Information
+
+
+ + + + + + + + + + + + + +
Class:Test.Program
Assembly:Sample
File(s):C:\temp\Program.cs
+
+
+
+
+
+
+
Line coverage
+
+
79%
+
+ + + + + + + + + + + + + + + + + + + + + +
Covered lines:35
Uncovered lines:9
Coverable lines:44
Total lines:84
Line coverage:79.5%
+
+
+
+
+
Branch coverage
+
+
N/A
+
+ + + + + + + + + + + + + +
Covered branches:0
Total branches:0
Branch coverage:N/A
+
+
+
+
+
Method coverage
+
+
66%
+
+ + + + + + + + + + + + + +
Covered methods:4
Total methods:6
Method coverage:66.6%
+
+
+
+
+

Coverage history

+
+ +

Metrics

+
+ + + + + + + + + + +
MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
Main(...)100%11088%
CSharp_ExecuteTest1()0%2100%
CSharp_ExecuteTest2()0%2100%
CallAsyncMethod()100%330100%
.ctor(...)100%110100%
SendAsync(...)100%110100%
+
+

File(s)

+

C:\temp\Program.cs

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
#LineLine coverage
 1using System.Net.Http;
 2using System.Threading;
 3using System.Threading.Tasks;
 4using Microsoft.VisualStudio.TestTools.UnitTesting;
 5
 6namespace Test
 7{
 8    [TestClass]
 9    public class Program
 10    {
 11        static void Main(string[] args)
 112        {
 113            new TestClass().SampleFunction();
 14
 115            new TestClass2("Test").ExecutedMethod();
 116            new TestClass2("Test").SampleFunction("Munich");
 17
 118            new PartialClass().ExecutedMethod_1();
 119            new PartialClass().ExecutedMethod_2();
 120            new PartialClass().SomeProperty = -10;
 21
 122            new PartialClassWithAutoProperties().Property1 = "Test";
 123            new PartialClassWithAutoProperties().Property2 = "Test";
 24
 125            new SomeClass().Property1 = "Test";
 26
 127            new ClassWithExcludes().IncludedMethod();
 128            new ClassWithExcludes().ExcludedMethod();
 29
 130            new GenericClass<SomeModel, IState>().Process(null);
 131            new GenericClass<SomeModel, IState>().PostProcess(null);
 32
 133            new CodeContract_Target().Calculate(-1);
 34
 135            new AbstractClass_SampleImpl1();
 136            new AbstractClass_SampleImpl2();
 37
 138            CallAsyncMethod();
 39
 40            try
 141            {
 142                new CodeContract_Target().Calculate(0);
 143            }
 044            catch (System.ArgumentException)
 045            {
 046            }
 147        }
 48
 49        [TestMethod]
 50        public void CSharp_ExecuteTest1()
 051        {
 052            Main(null);
 053        }
 54
 55        [TestMethod]
 56        public void CSharp_ExecuteTest2()
 057        {
 058            Main(null);
 059        }
 60
 61        private static async void CallAsyncMethod()
 162        {
 163            var expected = new HttpResponseMessage();
 164            var handler = new AsyncClass() { InnerHandler = new EchoHandler(expected) };
 165            var invoker = new HttpMessageInvoker(handler, false);
 166            var actual = await invoker.SendAsync(new HttpRequestMessage(), new CancellationToken());
 167        }
 68
 69        private class EchoHandler : DelegatingHandler
 70        {
 71            private HttpResponseMessage _response;
 72
 173            public EchoHandler(HttpResponseMessage response)
 174            {
 175                this._response = response;
 176            }
 77
 78            protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancell
 179            {
 180                return Task.FromResult(this._response);
 181            }
 82        }
 83    }
 84}
+
+
+
+ + \ No newline at end of file diff --git a/docs/resources/reports/HtmlInline_AzurePipelines_Light/Sample_TestClass.html b/docs/resources/reports/HtmlInline_AzurePipelines_Light/Sample_TestClass.html new file mode 100644 index 00000000..387d9062 --- /dev/null +++ b/docs/resources/reports/HtmlInline_AzurePipelines_Light/Sample_TestClass.html @@ -0,0 +1,919 @@ + + + + + + + +Sample.TestClass - Coverage Report + +
+

< Summary

+
+
+
Information
+
+
+ + + + + + + + + + + + + +
Class:Sample.TestClass
Assembly:Sample
File(s):C:\temp\TestClass.cs
+
+
+
+
+
+
+
Line coverage
+
+
57%
+
+ + + + + + + + + + + + + + + + + + + + + +
Covered lines:12
Uncovered lines:9
Coverable lines:21
Total lines:38
Line coverage:57.1%
+
+
+
+
+
Branch coverage
+
+
50%
+
+ + + + + + + + + + + + + +
Covered branches:1
Total branches:2
Branch coverage:50%
+
+
+
+
+
Method coverage
+
+
50%
+
+ + + + + + + + + + + + + +
Covered methods:1
Total methods:2
Method coverage:50%
+
+
+
+
+

Coverage history

+
+ +

Metrics

+
+ + + + + + +
MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
SampleFunction()66.67%3.143275%
SampleFunction()0%2100%
+
+

File(s)

+

C:\temp\TestClass.cs

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
#LineLine coverage
 1using System;
 2
 3namespace Test
 4{
 5    class TestClass
 6    {
 7        public void SampleFunction()
 18        {
 19            string test = string.Format(
 110                "{0} {1}",
 111                 "Hello",
 112                 "World");
 13
 114            Console.WriteLine(test);
 115            int i = 10;
 16
 117            if (i > 0 || i > 1)
 118            {
 119                Console.WriteLine(i + " is greater that 0");
 120            }
 21            else
 022            {
 023                Console.WriteLine(i + " is not greater that 0");
 024            }
 125        }
 26
 27        public class NestedClass
 28        {
 29            public void SampleFunction()
 030            {
 031                Console.WriteLine(
 032                    "{0} {1}",
 033                     "Hello",
 034                     "World");
 035            }
 36        }
 37    }
 38}
+
+
+
+
+

Methods/Properties

+SampleFunction()
+SampleFunction()
+
+
+ + \ No newline at end of file diff --git a/docs/resources/reports/HtmlInline_AzurePipelines_Light/Sample_TestClass2.html b/docs/resources/reports/HtmlInline_AzurePipelines_Light/Sample_TestClass2.html new file mode 100644 index 00000000..d5fc829d --- /dev/null +++ b/docs/resources/reports/HtmlInline_AzurePipelines_Light/Sample_TestClass2.html @@ -0,0 +1,978 @@ + + + + + + + +Test.TestClass2 - Coverage Report + +
+

< Summary

+
+
+
Information
+
+
+ + + + + + + + + + + + + +
Class:Test.TestClass2
Assembly:Sample
File(s):C:\temp\TestClass2.cs
+
+
+
+
+
+
+
Line coverage
+
+
63%
+
+ + + + + + + + + + + + + + + + + + + + + +
Covered lines:24
Uncovered lines:14
Coverable lines:38
Total lines:85
Line coverage:63.1%
+
+
+
+
+
Branch coverage
+
+
50%
+
+ + + + + + + + + + + + + +
Covered branches:1
Total branches:2
Branch coverage:50%
+
+
+
+
+
Method coverage
+
+
60%
+
+ + + + + + + + + + + + + +
Covered methods:6
Total methods:10
Method coverage:60%
+
+
+
+
+

Coverage history

+
+ +

Metrics

+
+ + + + + + + + + + +
MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
.ctor()0%2100%
.ctor(...)100%110100%
ExecutedMethod()100%110100%
UnExecutedMethod()0%2100%
SampleFunction(...)66.67%552100%
DoSomething(...)0%2100%
+
+

File(s)

+

C:\temp\TestClass2.cs

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
#LineLine coverage
 1using System;
 2using System.Collections.Generic;
 3using System.Linq;
 4
 5namespace Test
 6{
 7    class TestClass2
 8    {
 9        private string name;
 10
 211        private Dictionary<string, int> dict = new Dictionary<string, int>();
 12
 313        public string ExecutedProperty { get; set; }
 14
 015        public string UnExecutedProperty { get; set; }
 16
 017        public TestClass2()
 018        {
 019            this.name = "Nobody";
 020            this.ExecutedProperty = "Nobody";
 021        }
 22
 223        public TestClass2(string name)
 224        {
 225            this.name = name;
 226            this.ExecutedProperty = name + name;
 227        }
 28
 29        public void ExecutedMethod()
 130        {
 131            Console.WriteLine(this.name);
 132            Console.WriteLine(this.ExecutedProperty);
 133        }
 34
 35        public void UnExecutedMethod()
 036        {
 037            Console.WriteLine(this.name);
 038            Console.WriteLine(this.ExecutedProperty);
 039        }
 40
 41        public void SampleFunction(string city)
 142        {
 143            int[] values = new int[] { 0, 1, 2, 3 };
 44
 545            var doubled = values.Select(i => i * 2);
 46
 1147            foreach (var item in doubled)
 448            {
 449                Console.WriteLine(item);
 450            }
 51
 152            string[] cities = new string[] { "Berlin", "Munich", "Paris" };
 53
 454            if (cities.SingleOrDefault(c => c.Equals(city, StringComparison.OrdinalIgnoreCase)) != null)
 155            {
 156                Console.WriteLine("Found " + city);
 157            }
 158        }
 59
 60        public string DoSomething(string value,
 61            string[] stringArray,
 62            Guid id,
 63            IEnumerable<string> stringEnumerable,
 64            IList<string> stringList,
 65            decimal dec,
 66            int i,
 67            Dictionary<string, int> dict,
 68            out int g,
 69            float fff,
 70            double dou,
 71            bool bo,
 72            byte by,
 73            char ch,
 74            object o,
 75            sbyte sby,
 76            short sh,
 77            uint ui,
 78            ulong ul,
 79            ushort usho)
 080        {
 081            g = 0;
 082            return null;
 083        }
 84    }
 85}
+
+
+
+ + \ No newline at end of file diff --git a/docs/resources/reports/HtmlInline_AzurePipelines_Light/index.html b/docs/resources/reports/HtmlInline_AzurePipelines_Light/index.html new file mode 100644 index 00000000..5bf6ef38 --- /dev/null +++ b/docs/resources/reports/HtmlInline_AzurePipelines_Light/index.html @@ -0,0 +1,967 @@ + + + + + + + +Summary - Coverage Report + +
+

SummaryStarSponsor

+
+
+
Information
+
+
+ + + + + + + + + + + + + + + + + +
Parser:OpenCover
Assemblies:1
Classes:4
Files:5
+
+
+
+
+
Line coverage
+
+
66%
+
+ + + + + + + + + + + + + + + + + + + + + +
Covered lines:83
Uncovered lines:42
Coverable lines:125
Total lines:260
Line coverage:66.4%
+
+
+
+
+
Branch coverage
+
+
50%
+
+ + + + + + + + + + + + + +
Covered branches:3
Total branches:6
Branch coverage:50%
+
+
+
+
+
Method coverage
+
+
58%
+
+ + + + + + + + + + + + + +
Covered methods:14
Total methods:24
Method coverage:58.3%
+
+
+
+
+

Coverage history

+
+ +

Risk Hotspots

+ + +

No risk hotspots found.

+

Coverage

+ +
+ +++++++++++++++++ + + + + + + + + + + +
Line coverageBranch coverageMethod coverage
NameCoveredUncoveredCoverableTotalPercentageCoveredTotalPercentageCoveredTotalPercentage
Sample834212526066.4%
  
3650%
  
142458.3%
  
Sample.PartialClass1210225354.5%
  
1250%
  
3650%
  
Sample.TestClass129213857.1%
  
1250%
  
1250%
  
Test.Program359448479.5%
  
00
 
4666.6%
  
Test.TestClass22414388563.1%
  
1250%
  
61060%
  
+
+
+
+ + \ No newline at end of file diff --git a/docs/resources/reports/HtmlSummary/summary.html b/docs/resources/reports/HtmlSummary/summary.html new file mode 100644 index 00000000..f886bca5 --- /dev/null +++ b/docs/resources/reports/HtmlSummary/summary.html @@ -0,0 +1,1225 @@ + + + + + + + +Summary - Coverage Report + +
+

SummaryStarSponsor

+
+
+
Information
+
+
+ + + + + + + + + + + + + + + + + +
Parser:OpenCover
Assemblies:1
Classes:4
Files:5
+
+
+
+
+
Line coverage
+
+
66%
+
+ + + + + + + + + + + + + + + + + + + + + +
Covered lines:83
Uncovered lines:42
Coverable lines:125
Total lines:260
Line coverage:66.4%
+
+
+
+
+
Branch coverage
+
+
50%
+
+ + + + + + + + + + + + + +
Covered branches:3
Total branches:6
Branch coverage:50%
+
+
+
+
+
Method coverage
+
+
58%
+
+ + + + + + + + + + + + + +
Covered methods:14
Total methods:24
Method coverage:58.3%
+
+
+
+
+

Coverage history

+
+ +

Risk Hotspots

+ + +

No risk hotspots found.

+

Coverage

+ +
+ +++++++++++++++++ + + + + + + + + + + +
Line coverageBranch coverageMethod coverage
NameCoveredUncoveredCoverableTotalPercentageCoveredTotalPercentageCoveredTotalPercentage
Sample834212526066.4%
  
3650%
  
142458.3%
  
Sample.PartialClass1210225354.5%
  
1250%
  
3650%
  
Sample.TestClass129213857.1%
  
1250%
  
1250%
  
Test.Program359448479.5%
  
00
 
4666.6%
  
Test.TestClass22414388563.1%
  
1250%
  
61060%
  
+
+
+
+ + \ No newline at end of file diff --git a/docs/resources/reports/Html_Dark/Sample_PartialClass.html b/docs/resources/reports/Html_Dark/Sample_PartialClass.html new file mode 100644 index 00000000..8e58fef8 --- /dev/null +++ b/docs/resources/reports/Html_Dark/Sample_PartialClass.html @@ -0,0 +1,260 @@ + + + + + + + +Sample.PartialClass - Coverage Report + +
+

< Summary

+
+
+
Information
+
+
+ + + + + + + + + + + + + +
Class:Sample.PartialClass
Assembly:Sample
File(s):File 1: C:\temp\PartialClass.cs
File 2: C:\temp\PartialClass2.cs
+
+
+
+
+
+
+
Line coverage
+
+
54%
+
+ + + + + + + + + + + + + + + + + + + + + +
Covered lines:12
Uncovered lines:10
Coverable lines:22
Total lines:53
Line coverage:54.5%
+
+
+
+
+
Branch coverage
+
+
50%
+
+ + + + + + + + + + + + + +
Covered branches:1
Total branches:2
Branch coverage:50%
+
+
+
+
+
Method coverage
+
+
50%
+
+ + + + + + + + + + + + + +
Covered methods:3
Total methods:6
Method coverage:50%
+
+
+
+
+

Coverage history

+
+ +

Metrics

+
+ + + + + + + + +
MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
File 1: ExecutedMethod_1()100%110100%
File 1: UnExecutedMethod_1()0%2100%
File 2: ExecutedMethod_2()100%110100%
File 2: UnExecutedMethod_2()0%2100%
+
+

File(s)

+

C:\temp\PartialClass.cs

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
#LineLine coverage
 1using System;
 2
 3namespace Test
 4{
 5    partial class PartialClass
 6    {
 7        public void ExecutedMethod_1()
 18        {
 19            Console.WriteLine("Test");
 110        }
 11
 12        public void UnExecutedMethod_1()
 013        {
 014            Console.WriteLine("Test");
 015        }
 16
 17        private int someProperty;
 18
 19        public int SomeProperty
 20        {
 021            get { return this.someProperty; }
 22
 23            set
 124            {
 125                if (value < 0)
 126                {
 127                    this.someProperty = 0;
 128                }
 29                else
 030                {
 031                    this.someProperty = value;
 032                }
 133            }
 34        }
 35    }
 36}
+
+

C:\temp\PartialClass2.cs

+
+ + + + + + + + + + + + + + + + + + + + + +
#LineLine coverage
 1using System;
 2
 3namespace Test
 4{
 5    partial class PartialClass
 6    {
 7        public void ExecutedMethod_2()
 18        {
 19            Console.WriteLine("Test");
 110        }
 11
 12        public void UnExecutedMethod_2()
 013        {
 014            Console.WriteLine("Test");
 015        }
 16    }
 17}
+
+
+
+ + \ No newline at end of file diff --git a/docs/resources/reports/Html_Dark/Sample_Program.html b/docs/resources/reports/Html_Dark/Sample_Program.html new file mode 100644 index 00000000..73046674 --- /dev/null +++ b/docs/resources/reports/Html_Dark/Sample_Program.html @@ -0,0 +1,285 @@ + + + + + + + +Test.Program - Coverage Report + +
+

< Summary

+
+
+
Information
+
+
+ + + + + + + + + + + + + +
Class:Test.Program
Assembly:Sample
File(s):C:\temp\Program.cs
+
+
+
+
+
+
+
Line coverage
+
+
79%
+
+ + + + + + + + + + + + + + + + + + + + + +
Covered lines:35
Uncovered lines:9
Coverable lines:44
Total lines:84
Line coverage:79.5%
+
+
+
+
+
Branch coverage
+
+
N/A
+
+ + + + + + + + + + + + + +
Covered branches:0
Total branches:0
Branch coverage:N/A
+
+
+
+
+
Method coverage
+
+
66%
+
+ + + + + + + + + + + + + +
Covered methods:4
Total methods:6
Method coverage:66.6%
+
+
+
+
+

Coverage history

+
+ +

Metrics

+
+ + + + + + + + + + +
MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
Main(...)100%11088%
CSharp_ExecuteTest1()0%2100%
CSharp_ExecuteTest2()0%2100%
CallAsyncMethod()100%330100%
.ctor(...)100%110100%
SendAsync(...)100%110100%
+
+

File(s)

+

C:\temp\Program.cs

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
#LineLine coverage
 1using System.Net.Http;
 2using System.Threading;
 3using System.Threading.Tasks;
 4using Microsoft.VisualStudio.TestTools.UnitTesting;
 5
 6namespace Test
 7{
 8    [TestClass]
 9    public class Program
 10    {
 11        static void Main(string[] args)
 112        {
 113            new TestClass().SampleFunction();
 14
 115            new TestClass2("Test").ExecutedMethod();
 116            new TestClass2("Test").SampleFunction("Munich");
 17
 118            new PartialClass().ExecutedMethod_1();
 119            new PartialClass().ExecutedMethod_2();
 120            new PartialClass().SomeProperty = -10;
 21
 122            new PartialClassWithAutoProperties().Property1 = "Test";
 123            new PartialClassWithAutoProperties().Property2 = "Test";
 24
 125            new SomeClass().Property1 = "Test";
 26
 127            new ClassWithExcludes().IncludedMethod();
 128            new ClassWithExcludes().ExcludedMethod();
 29
 130            new GenericClass<SomeModel, IState>().Process(null);
 131            new GenericClass<SomeModel, IState>().PostProcess(null);
 32
 133            new CodeContract_Target().Calculate(-1);
 34
 135            new AbstractClass_SampleImpl1();
 136            new AbstractClass_SampleImpl2();
 37
 138            CallAsyncMethod();
 39
 40            try
 141            {
 142                new CodeContract_Target().Calculate(0);
 143            }
 044            catch (System.ArgumentException)
 045            {
 046            }
 147        }
 48
 49        [TestMethod]
 50        public void CSharp_ExecuteTest1()
 051        {
 052            Main(null);
 053        }
 54
 55        [TestMethod]
 56        public void CSharp_ExecuteTest2()
 057        {
 058            Main(null);
 059        }
 60
 61        private static async void CallAsyncMethod()
 162        {
 163            var expected = new HttpResponseMessage();
 164            var handler = new AsyncClass() { InnerHandler = new EchoHandler(expected) };
 165            var invoker = new HttpMessageInvoker(handler, false);
 166            var actual = await invoker.SendAsync(new HttpRequestMessage(), new CancellationToken());
 167        }
 68
 69        private class EchoHandler : DelegatingHandler
 70        {
 71            private HttpResponseMessage _response;
 72
 173            public EchoHandler(HttpResponseMessage response)
 174            {
 175                this._response = response;
 176            }
 77
 78            protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancell
 179            {
 180                return Task.FromResult(this._response);
 181            }
 82        }
 83    }
 84}
+
+
+
+ + \ No newline at end of file diff --git a/docs/resources/reports/Html_Dark/Sample_TestClass.html b/docs/resources/reports/Html_Dark/Sample_TestClass.html new file mode 100644 index 00000000..e3e56e3c --- /dev/null +++ b/docs/resources/reports/Html_Dark/Sample_TestClass.html @@ -0,0 +1,231 @@ + + + + + + + +Sample.TestClass - Coverage Report + +
+

< Summary

+
+
+
Information
+
+
+ + + + + + + + + + + + + +
Class:Sample.TestClass
Assembly:Sample
File(s):C:\temp\TestClass.cs
+
+
+
+
+
+
+
Line coverage
+
+
57%
+
+ + + + + + + + + + + + + + + + + + + + + +
Covered lines:12
Uncovered lines:9
Coverable lines:21
Total lines:38
Line coverage:57.1%
+
+
+
+
+
Branch coverage
+
+
50%
+
+ + + + + + + + + + + + + +
Covered branches:1
Total branches:2
Branch coverage:50%
+
+
+
+
+
Method coverage
+
+
50%
+
+ + + + + + + + + + + + + +
Covered methods:1
Total methods:2
Method coverage:50%
+
+
+
+
+

Coverage history

+
+ +

Metrics

+
+ + + + + + +
MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
SampleFunction()66.67%3.143275%
SampleFunction()0%2100%
+
+

File(s)

+

C:\temp\TestClass.cs

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
#LineLine coverage
 1using System;
 2
 3namespace Test
 4{
 5    class TestClass
 6    {
 7        public void SampleFunction()
 18        {
 19            string test = string.Format(
 110                "{0} {1}",
 111                 "Hello",
 112                 "World");
 13
 114            Console.WriteLine(test);
 115            int i = 10;
 16
 117            if (i > 0 || i > 1)
 118            {
 119                Console.WriteLine(i + " is greater that 0");
 120            }
 21            else
 022            {
 023                Console.WriteLine(i + " is not greater that 0");
 024            }
 125        }
 26
 27        public class NestedClass
 28        {
 29            public void SampleFunction()
 030            {
 031                Console.WriteLine(
 032                    "{0} {1}",
 033                     "Hello",
 034                     "World");
 035            }
 36        }
 37    }
 38}
+
+
+
+
+

Methods/Properties

+SampleFunction()
+SampleFunction()
+
+
+ + \ No newline at end of file diff --git a/docs/resources/reports/Html_Dark/Sample_TestClass2.html b/docs/resources/reports/Html_Dark/Sample_TestClass2.html new file mode 100644 index 00000000..e0857fbd --- /dev/null +++ b/docs/resources/reports/Html_Dark/Sample_TestClass2.html @@ -0,0 +1,290 @@ + + + + + + + +Test.TestClass2 - Coverage Report + +
+

< Summary

+
+
+
Information
+
+
+ + + + + + + + + + + + + +
Class:Test.TestClass2
Assembly:Sample
File(s):C:\temp\TestClass2.cs
+
+
+
+
+
+
+
Line coverage
+
+
63%
+
+ + + + + + + + + + + + + + + + + + + + + +
Covered lines:24
Uncovered lines:14
Coverable lines:38
Total lines:85
Line coverage:63.1%
+
+
+
+
+
Branch coverage
+
+
50%
+
+ + + + + + + + + + + + + +
Covered branches:1
Total branches:2
Branch coverage:50%
+
+
+
+
+
Method coverage
+
+
60%
+
+ + + + + + + + + + + + + +
Covered methods:6
Total methods:10
Method coverage:60%
+
+
+
+
+

Coverage history

+
+ +

Metrics

+
+ + + + + + + + + + +
MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
.ctor()0%2100%
.ctor(...)100%110100%
ExecutedMethod()100%110100%
UnExecutedMethod()0%2100%
SampleFunction(...)66.67%552100%
DoSomething(...)0%2100%
+
+

File(s)

+

C:\temp\TestClass2.cs

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
#LineLine coverage
 1using System;
 2using System.Collections.Generic;
 3using System.Linq;
 4
 5namespace Test
 6{
 7    class TestClass2
 8    {
 9        private string name;
 10
 211        private Dictionary<string, int> dict = new Dictionary<string, int>();
 12
 313        public string ExecutedProperty { get; set; }
 14
 015        public string UnExecutedProperty { get; set; }
 16
 017        public TestClass2()
 018        {
 019            this.name = "Nobody";
 020            this.ExecutedProperty = "Nobody";
 021        }
 22
 223        public TestClass2(string name)
 224        {
 225            this.name = name;
 226            this.ExecutedProperty = name + name;
 227        }
 28
 29        public void ExecutedMethod()
 130        {
 131            Console.WriteLine(this.name);
 132            Console.WriteLine(this.ExecutedProperty);
 133        }
 34
 35        public void UnExecutedMethod()
 036        {
 037            Console.WriteLine(this.name);
 038            Console.WriteLine(this.ExecutedProperty);
 039        }
 40
 41        public void SampleFunction(string city)
 142        {
 143            int[] values = new int[] { 0, 1, 2, 3 };
 44
 545            var doubled = values.Select(i => i * 2);
 46
 1147            foreach (var item in doubled)
 448            {
 449                Console.WriteLine(item);
 450            }
 51
 152            string[] cities = new string[] { "Berlin", "Munich", "Paris" };
 53
 454            if (cities.SingleOrDefault(c => c.Equals(city, StringComparison.OrdinalIgnoreCase)) != null)
 155            {
 156                Console.WriteLine("Found " + city);
 157            }
 158        }
 59
 60        public string DoSomething(string value,
 61            string[] stringArray,
 62            Guid id,
 63            IEnumerable<string> stringEnumerable,
 64            IList<string> stringList,
 65            decimal dec,
 66            int i,
 67            Dictionary<string, int> dict,
 68            out int g,
 69            float fff,
 70            double dou,
 71            bool bo,
 72            byte by,
 73            char ch,
 74            object o,
 75            sbyte sby,
 76            short sh,
 77            uint ui,
 78            ulong ul,
 79            ushort usho)
 080        {
 081            g = 0;
 082            return null;
 083        }
 84    }
 85}
+
+
+
+ + \ No newline at end of file diff --git a/docs/resources/reports/Html_Dark/class.js b/docs/resources/reports/Html_Dark/class.js new file mode 100644 index 00000000..b7a43b26 --- /dev/null +++ b/docs/resources/reports/Html_Dark/class.js @@ -0,0 +1,218 @@ +/* Chartist.js 0.11.4 + * Copyright © 2019 Gion Kunz + * Free to use under either the WTFPL license or the MIT license. + * https://raw.githubusercontent.com/gionkunz/chartist-js/master/LICENSE-WTFPL + * https://raw.githubusercontent.com/gionkunz/chartist-js/master/LICENSE-MIT + */ + +!function (a, b) { "function" == typeof define && define.amd ? define("Chartist", [], function () { return a.Chartist = b() }) : "object" == typeof module && module.exports ? module.exports = b() : a.Chartist = b() }(this, function () { + var a = { version: "0.11.4" }; return function (a, b) { "use strict"; var c = a.window, d = a.document; b.namespaces = { svg: "http://www.w3.org/2000/svg", xmlns: "http://www.w3.org/2000/xmlns/", xhtml: "http://www.w3.org/1999/xhtml", xlink: "http://www.w3.org/1999/xlink", ct: "http://gionkunz.github.com/chartist-js/ct" }, b.noop = function (a) { return a }, b.alphaNumerate = function (a) { return String.fromCharCode(97 + a % 26) }, b.extend = function (a) { var c, d, e; for (a = a || {}, c = 1; c < arguments.length; c++) { d = arguments[c]; for (var f in d) e = d[f], "object" != typeof e || null === e || e instanceof Array ? a[f] = e : a[f] = b.extend(a[f], e) } return a }, b.replaceAll = function (a, b, c) { return a.replace(new RegExp(b, "g"), c) }, b.ensureUnit = function (a, b) { return "number" == typeof a && (a += b), a }, b.quantity = function (a) { if ("string" == typeof a) { var b = /^(\d+)\s*(.*)$/g.exec(a); return { value: +b[1], unit: b[2] || void 0 } } return { value: a } }, b.querySelector = function (a) { return a instanceof Node ? a : d.querySelector(a) }, b.times = function (a) { return Array.apply(null, new Array(a)) }, b.sum = function (a, b) { return a + (b ? b : 0) }, b.mapMultiply = function (a) { return function (b) { return b * a } }, b.mapAdd = function (a) { return function (b) { return b + a } }, b.serialMap = function (a, c) { var d = [], e = Math.max.apply(null, a.map(function (a) { return a.length })); return b.times(e).forEach(function (b, e) { var f = a.map(function (a) { return a[e] }); d[e] = c.apply(null, f) }), d }, b.roundWithPrecision = function (a, c) { var d = Math.pow(10, c || b.precision); return Math.round(a * d) / d }, b.precision = 8, b.escapingMap = { "&": "&", "<": "<", ">": ">", '"': """, "'": "'" }, b.serialize = function (a) { return null === a || void 0 === a ? a : ("number" == typeof a ? a = "" + a : "object" == typeof a && (a = JSON.stringify({ data: a })), Object.keys(b.escapingMap).reduce(function (a, c) { return b.replaceAll(a, c, b.escapingMap[c]) }, a)) }, b.deserialize = function (a) { if ("string" != typeof a) return a; a = Object.keys(b.escapingMap).reduce(function (a, c) { return b.replaceAll(a, b.escapingMap[c], c) }, a); try { a = JSON.parse(a), a = void 0 !== a.data ? a.data : a } catch (c) { } return a }, b.createSvg = function (a, c, d, e) { var f; return c = c || "100%", d = d || "100%", Array.prototype.slice.call(a.querySelectorAll("svg")).filter(function (a) { return a.getAttributeNS(b.namespaces.xmlns, "ct") }).forEach(function (b) { a.removeChild(b) }), f = new b.Svg("svg").attr({ width: c, height: d }).addClass(e), f._node.style.width = c, f._node.style.height = d, a.appendChild(f._node), f }, b.normalizeData = function (a, c, d) { var e, f = { raw: a, normalized: {} }; return f.normalized.series = b.getDataArray({ series: a.series || [] }, c, d), e = f.normalized.series.every(function (a) { return a instanceof Array }) ? Math.max.apply(null, f.normalized.series.map(function (a) { return a.length })) : f.normalized.series.length, f.normalized.labels = (a.labels || []).slice(), Array.prototype.push.apply(f.normalized.labels, b.times(Math.max(0, e - f.normalized.labels.length)).map(function () { return "" })), c && b.reverseData(f.normalized), f }, b.safeHasProperty = function (a, b) { return null !== a && "object" == typeof a && a.hasOwnProperty(b) }, b.isDataHoleValue = function (a) { return null === a || void 0 === a || "number" == typeof a && isNaN(a) }, b.reverseData = function (a) { a.labels.reverse(), a.series.reverse(); for (var b = 0; b < a.series.length; b++)"object" == typeof a.series[b] && void 0 !== a.series[b].data ? a.series[b].data.reverse() : a.series[b] instanceof Array && a.series[b].reverse() }, b.getDataArray = function (a, c, d) { function e(a) { if (b.safeHasProperty(a, "value")) return e(a.value); if (b.safeHasProperty(a, "data")) return e(a.data); if (a instanceof Array) return a.map(e); if (!b.isDataHoleValue(a)) { if (d) { var c = {}; return "string" == typeof d ? c[d] = b.getNumberOrUndefined(a) : c.y = b.getNumberOrUndefined(a), c.x = a.hasOwnProperty("x") ? b.getNumberOrUndefined(a.x) : c.x, c.y = a.hasOwnProperty("y") ? b.getNumberOrUndefined(a.y) : c.y, c } return b.getNumberOrUndefined(a) } } return a.series.map(e) }, b.normalizePadding = function (a, b) { return b = b || 0, "number" == typeof a ? { top: a, right: a, bottom: a, left: a } : { top: "number" == typeof a.top ? a.top : b, right: "number" == typeof a.right ? a.right : b, bottom: "number" == typeof a.bottom ? a.bottom : b, left: "number" == typeof a.left ? a.left : b } }, b.getMetaData = function (a, b) { var c = a.data ? a.data[b] : a[b]; return c ? c.meta : void 0 }, b.orderOfMagnitude = function (a) { return Math.floor(Math.log(Math.abs(a)) / Math.LN10) }, b.projectLength = function (a, b, c) { return b / c.range * a }, b.getAvailableHeight = function (a, c) { return Math.max((b.quantity(c.height).value || a.height()) - (c.chartPadding.top + c.chartPadding.bottom) - c.axisX.offset, 0) }, b.getHighLow = function (a, c, d) { function e(a) { if (void 0 !== a) if (a instanceof Array) for (var b = 0; b < a.length; b++)e(a[b]); else { var c = d ? +a[d] : +a; g && c > f.high && (f.high = c), h && c < f.low && (f.low = c) } } c = b.extend({}, c, d ? c["axis" + d.toUpperCase()] : {}); var f = { high: void 0 === c.high ? -Number.MAX_VALUE : +c.high, low: void 0 === c.low ? Number.MAX_VALUE : +c.low }, g = void 0 === c.high, h = void 0 === c.low; return (g || h) && e(a), (c.referenceValue || 0 === c.referenceValue) && (f.high = Math.max(c.referenceValue, f.high), f.low = Math.min(c.referenceValue, f.low)), f.high <= f.low && (0 === f.low ? f.high = 1 : f.low < 0 ? f.high = 0 : f.high > 0 ? f.low = 0 : (f.high = 1, f.low = 0)), f }, b.isNumeric = function (a) { return null !== a && isFinite(a) }, b.isFalseyButZero = function (a) { return !a && 0 !== a }, b.getNumberOrUndefined = function (a) { return b.isNumeric(a) ? +a : void 0 }, b.isMultiValue = function (a) { return "object" == typeof a && ("x" in a || "y" in a) }, b.getMultiValue = function (a, c) { return b.isMultiValue(a) ? b.getNumberOrUndefined(a[c || "y"]) : b.getNumberOrUndefined(a) }, b.rho = function (a) { function b(a, c) { return a % c === 0 ? c : b(c, a % c) } function c(a) { return a * a + 1 } if (1 === a) return a; var d, e = 2, f = 2; if (a % 2 === 0) return 2; do e = c(e) % a, f = c(c(f)) % a, d = b(Math.abs(e - f), a); while (1 === d); return d }, b.getBounds = function (a, c, d, e) { function f(a, b) { return a === (a += b) && (a *= 1 + (b > 0 ? o : -o)), a } var g, h, i, j = 0, k = { high: c.high, low: c.low }; k.valueRange = k.high - k.low, k.oom = b.orderOfMagnitude(k.valueRange), k.step = Math.pow(10, k.oom), k.min = Math.floor(k.low / k.step) * k.step, k.max = Math.ceil(k.high / k.step) * k.step, k.range = k.max - k.min, k.numberOfSteps = Math.round(k.range / k.step); var l = b.projectLength(a, k.step, k), m = l < d, n = e ? b.rho(k.range) : 0; if (e && b.projectLength(a, 1, k) >= d) k.step = 1; else if (e && n < k.step && b.projectLength(a, n, k) >= d) k.step = n; else for (; ;) { if (m && b.projectLength(a, k.step, k) <= d) k.step *= 2; else { if (m || !(b.projectLength(a, k.step / 2, k) >= d)) break; if (k.step /= 2, e && k.step % 1 !== 0) { k.step *= 2; break } } if (j++ > 1e3) throw new Error("Exceeded maximum number of iterations while optimizing scale step!") } var o = 2.221e-16; for (k.step = Math.max(k.step, o), h = k.min, i = k.max; h + k.step <= k.low;)h = f(h, k.step); for (; i - k.step >= k.high;)i = f(i, -k.step); k.min = h, k.max = i, k.range = k.max - k.min; var p = []; for (g = k.min; g <= k.max; g = f(g, k.step)) { var q = b.roundWithPrecision(g); q !== p[p.length - 1] && p.push(q) } return k.values = p, k }, b.polarToCartesian = function (a, b, c, d) { var e = (d - 90) * Math.PI / 180; return { x: a + c * Math.cos(e), y: b + c * Math.sin(e) } }, b.createChartRect = function (a, c, d) { var e = !(!c.axisX && !c.axisY), f = e ? c.axisY.offset : 0, g = e ? c.axisX.offset : 0, h = a.width() || b.quantity(c.width).value || 0, i = a.height() || b.quantity(c.height).value || 0, j = b.normalizePadding(c.chartPadding, d); h = Math.max(h, f + j.left + j.right), i = Math.max(i, g + j.top + j.bottom); var k = { padding: j, width: function () { return this.x2 - this.x1 }, height: function () { return this.y1 - this.y2 } }; return e ? ("start" === c.axisX.position ? (k.y2 = j.top + g, k.y1 = Math.max(i - j.bottom, k.y2 + 1)) : (k.y2 = j.top, k.y1 = Math.max(i - j.bottom - g, k.y2 + 1)), "start" === c.axisY.position ? (k.x1 = j.left + f, k.x2 = Math.max(h - j.right, k.x1 + 1)) : (k.x1 = j.left, k.x2 = Math.max(h - j.right - f, k.x1 + 1))) : (k.x1 = j.left, k.x2 = Math.max(h - j.right, k.x1 + 1), k.y2 = j.top, k.y1 = Math.max(i - j.bottom, k.y2 + 1)), k }, b.createGrid = function (a, c, d, e, f, g, h, i) { var j = {}; j[d.units.pos + "1"] = a, j[d.units.pos + "2"] = a, j[d.counterUnits.pos + "1"] = e, j[d.counterUnits.pos + "2"] = e + f; var k = g.elem("line", j, h.join(" ")); i.emit("draw", b.extend({ type: "grid", axis: d, index: c, group: g, element: k }, j)) }, b.createGridBackground = function (a, b, c, d) { var e = a.elem("rect", { x: b.x1, y: b.y2, width: b.width(), height: b.height() }, c, !0); d.emit("draw", { type: "gridBackground", group: a, element: e }) }, b.createLabel = function (a, c, e, f, g, h, i, j, k, l, m) { var n, o = {}; if (o[g.units.pos] = a + i[g.units.pos], o[g.counterUnits.pos] = i[g.counterUnits.pos], o[g.units.len] = c, o[g.counterUnits.len] = Math.max(0, h - 10), l) { var p = d.createElement("span"); p.className = k.join(" "), p.setAttribute("xmlns", b.namespaces.xhtml), p.innerText = f[e], p.style[g.units.len] = Math.round(o[g.units.len]) + "px", p.style[g.counterUnits.len] = Math.round(o[g.counterUnits.len]) + "px", n = j.foreignObject(p, b.extend({ style: "overflow: visible;" }, o)) } else n = j.elem("text", o, k.join(" ")).text(f[e]); m.emit("draw", b.extend({ type: "label", axis: g, index: e, group: j, element: n, text: f[e] }, o)) }, b.getSeriesOption = function (a, b, c) { if (a.name && b.series && b.series[a.name]) { var d = b.series[a.name]; return d.hasOwnProperty(c) ? d[c] : b[c] } return b[c] }, b.optionsProvider = function (a, d, e) { function f(a) { var f = h; if (h = b.extend({}, j), d) for (i = 0; i < d.length; i++) { var g = c.matchMedia(d[i][0]); g.matches && (h = b.extend(h, d[i][1])) } e && a && e.emit("optionsChanged", { previousOptions: f, currentOptions: h }) } function g() { k.forEach(function (a) { a.removeListener(f) }) } var h, i, j = b.extend({}, a), k = []; if (!c.matchMedia) throw "window.matchMedia not found! Make sure you're using a polyfill."; if (d) for (i = 0; i < d.length; i++) { var l = c.matchMedia(d[i][0]); l.addListener(f), k.push(l) } return f(), { removeMediaQueryListeners: g, getCurrentOptions: function () { return b.extend({}, h) } } }, b.splitIntoSegments = function (a, c, d) { var e = { increasingX: !1, fillHoles: !1 }; d = b.extend({}, e, d); for (var f = [], g = !0, h = 0; h < a.length; h += 2)void 0 === b.getMultiValue(c[h / 2].value) ? d.fillHoles || (g = !0) : (d.increasingX && h >= 2 && a[h] <= a[h - 2] && (g = !0), g && (f.push({ pathCoordinates: [], valueData: [] }), g = !1), f[f.length - 1].pathCoordinates.push(a[h], a[h + 1]), f[f.length - 1].valueData.push(c[h / 2])); return f } }(this || global, a), function (a, b) { "use strict"; b.Interpolation = {}, b.Interpolation.none = function (a) { var c = { fillHoles: !1 }; return a = b.extend({}, c, a), function (c, d) { for (var e = new b.Svg.Path, f = !0, g = 0; g < c.length; g += 2) { var h = c[g], i = c[g + 1], j = d[g / 2]; void 0 !== b.getMultiValue(j.value) ? (f ? e.move(h, i, !1, j) : e.line(h, i, !1, j), f = !1) : a.fillHoles || (f = !0) } return e } }, b.Interpolation.simple = function (a) { var c = { divisor: 2, fillHoles: !1 }; a = b.extend({}, c, a); var d = 1 / Math.max(1, a.divisor); return function (c, e) { for (var f, g, h, i = new b.Svg.Path, j = 0; j < c.length; j += 2) { var k = c[j], l = c[j + 1], m = (k - f) * d, n = e[j / 2]; void 0 !== n.value ? (void 0 === h ? i.move(k, l, !1, n) : i.curve(f + m, g, k - m, l, k, l, !1, n), f = k, g = l, h = n) : a.fillHoles || (f = k = h = void 0) } return i } }, b.Interpolation.cardinal = function (a) { var c = { tension: 1, fillHoles: !1 }; a = b.extend({}, c, a); var d = Math.min(1, Math.max(0, a.tension)), e = 1 - d; return function f(c, g) { var h = b.splitIntoSegments(c, g, { fillHoles: a.fillHoles }); if (h.length) { if (h.length > 1) { var i = []; return h.forEach(function (a) { i.push(f(a.pathCoordinates, a.valueData)) }), b.Svg.Path.join(i) } if (c = h[0].pathCoordinates, g = h[0].valueData, c.length <= 4) return b.Interpolation.none()(c, g); for (var j, k = (new b.Svg.Path).move(c[0], c[1], !1, g[0]), l = 0, m = c.length; m - 2 * !j > l; l += 2) { var n = [{ x: +c[l - 2], y: +c[l - 1] }, { x: +c[l], y: +c[l + 1] }, { x: +c[l + 2], y: +c[l + 3] }, { x: +c[l + 4], y: +c[l + 5] }]; j ? l ? m - 4 === l ? n[3] = { x: +c[0], y: +c[1] } : m - 2 === l && (n[2] = { x: +c[0], y: +c[1] }, n[3] = { x: +c[2], y: +c[3] }) : n[0] = { x: +c[m - 2], y: +c[m - 1] } : m - 4 === l ? n[3] = n[2] : l || (n[0] = { x: +c[l], y: +c[l + 1] }), k.curve(d * (-n[0].x + 6 * n[1].x + n[2].x) / 6 + e * n[2].x, d * (-n[0].y + 6 * n[1].y + n[2].y) / 6 + e * n[2].y, d * (n[1].x + 6 * n[2].x - n[3].x) / 6 + e * n[2].x, d * (n[1].y + 6 * n[2].y - n[3].y) / 6 + e * n[2].y, n[2].x, n[2].y, !1, g[(l + 2) / 2]) } return k } return b.Interpolation.none()([]) } }, b.Interpolation.monotoneCubic = function (a) { var c = { fillHoles: !1 }; return a = b.extend({}, c, a), function d(c, e) { var f = b.splitIntoSegments(c, e, { fillHoles: a.fillHoles, increasingX: !0 }); if (f.length) { if (f.length > 1) { var g = []; return f.forEach(function (a) { g.push(d(a.pathCoordinates, a.valueData)) }), b.Svg.Path.join(g) } if (c = f[0].pathCoordinates, e = f[0].valueData, c.length <= 4) return b.Interpolation.none()(c, e); var h, i, j = [], k = [], l = c.length / 2, m = [], n = [], o = [], p = []; for (h = 0; h < l; h++)j[h] = c[2 * h], k[h] = c[2 * h + 1]; for (h = 0; h < l - 1; h++)o[h] = k[h + 1] - k[h], p[h] = j[h + 1] - j[h], n[h] = o[h] / p[h]; for (m[0] = n[0], m[l - 1] = n[l - 2], h = 1; h < l - 1; h++)0 === n[h] || 0 === n[h - 1] || n[h - 1] > 0 != n[h] > 0 ? m[h] = 0 : (m[h] = 3 * (p[h - 1] + p[h]) / ((2 * p[h] + p[h - 1]) / n[h - 1] + (p[h] + 2 * p[h - 1]) / n[h]), isFinite(m[h]) || (m[h] = 0)); for (i = (new b.Svg.Path).move(j[0], k[0], !1, e[0]), h = 0; h < l - 1; h++)i.curve(j[h] + p[h] / 3, k[h] + m[h] * p[h] / 3, j[h + 1] - p[h] / 3, k[h + 1] - m[h + 1] * p[h] / 3, j[h + 1], k[h + 1], !1, e[h + 1]); return i } return b.Interpolation.none()([]) } }, b.Interpolation.step = function (a) { var c = { postpone: !0, fillHoles: !1 }; return a = b.extend({}, c, a), function (c, d) { for (var e, f, g, h = new b.Svg.Path, i = 0; i < c.length; i += 2) { var j = c[i], k = c[i + 1], l = d[i / 2]; void 0 !== l.value ? (void 0 === g ? h.move(j, k, !1, l) : (a.postpone ? h.line(j, f, !1, g) : h.line(e, k, !1, l), h.line(j, k, !1, l)), e = j, f = k, g = l) : a.fillHoles || (e = f = g = void 0) } return h } } }(this || global, a), function (a, b) { "use strict"; b.EventEmitter = function () { function a(a, b) { d[a] = d[a] || [], d[a].push(b) } function b(a, b) { d[a] && (b ? (d[a].splice(d[a].indexOf(b), 1), 0 === d[a].length && delete d[a]) : delete d[a]) } function c(a, b) { d[a] && d[a].forEach(function (a) { a(b) }), d["*"] && d["*"].forEach(function (c) { c(a, b) }) } var d = []; return { addEventHandler: a, removeEventHandler: b, emit: c } } }(this || global, a), function (a, b) { "use strict"; function c(a) { var b = []; if (a.length) for (var c = 0; c < a.length; c++)b.push(a[c]); return b } function d(a, c) { var d = c || this.prototype || b.Class, e = Object.create(d); b.Class.cloneDefinitions(e, a); var f = function () { var a, c = e.constructor || function () { }; return a = this === b ? Object.create(e) : this, c.apply(a, Array.prototype.slice.call(arguments, 0)), a }; return f.prototype = e, f["super"] = d, f.extend = this.extend, f } function e() { var a = c(arguments), b = a[0]; return a.splice(1, a.length - 1).forEach(function (a) { Object.getOwnPropertyNames(a).forEach(function (c) { delete b[c], Object.defineProperty(b, c, Object.getOwnPropertyDescriptor(a, c)) }) }), b } b.Class = { extend: d, cloneDefinitions: e } }(this || global, a), function (a, b) { "use strict"; function c(a, c, d) { return a && (this.data = a || {}, this.data.labels = this.data.labels || [], this.data.series = this.data.series || [], this.eventEmitter.emit("data", { type: "update", data: this.data })), c && (this.options = b.extend({}, d ? this.options : this.defaultOptions, c), this.initializeTimeoutId || (this.optionsProvider.removeMediaQueryListeners(), this.optionsProvider = b.optionsProvider(this.options, this.responsiveOptions, this.eventEmitter))), this.initializeTimeoutId || this.createChart(this.optionsProvider.getCurrentOptions()), this } function d() { return this.initializeTimeoutId ? i.clearTimeout(this.initializeTimeoutId) : (i.removeEventListener("resize", this.resizeListener), this.optionsProvider.removeMediaQueryListeners()), this } function e(a, b) { return this.eventEmitter.addEventHandler(a, b), this } function f(a, b) { return this.eventEmitter.removeEventHandler(a, b), this } function g() { i.addEventListener("resize", this.resizeListener), this.optionsProvider = b.optionsProvider(this.options, this.responsiveOptions, this.eventEmitter), this.eventEmitter.addEventHandler("optionsChanged", function () { this.update() }.bind(this)), this.options.plugins && this.options.plugins.forEach(function (a) { a instanceof Array ? a[0](this, a[1]) : a(this) }.bind(this)), this.eventEmitter.emit("data", { type: "initial", data: this.data }), this.createChart(this.optionsProvider.getCurrentOptions()), this.initializeTimeoutId = void 0 } function h(a, c, d, e, f) { this.container = b.querySelector(a), this.data = c || {}, this.data.labels = this.data.labels || [], this.data.series = this.data.series || [], this.defaultOptions = d, this.options = e, this.responsiveOptions = f, this.eventEmitter = b.EventEmitter(), this.supportsForeignObject = b.Svg.isSupported("Extensibility"), this.supportsAnimations = b.Svg.isSupported("AnimationEventsAttribute"), this.resizeListener = function () { this.update() }.bind(this), this.container && (this.container.__chartist__ && this.container.__chartist__.detach(), this.container.__chartist__ = this), this.initializeTimeoutId = setTimeout(g.bind(this), 0) } var i = a.window; b.Base = b.Class.extend({ constructor: h, optionsProvider: void 0, container: void 0, svg: void 0, eventEmitter: void 0, createChart: function () { throw new Error("Base chart type can't be instantiated!") }, update: c, detach: d, on: e, off: f, version: b.version, supportsForeignObject: !1 }) }(this || global, a), function (a, b) { "use strict"; function c(a, c, d, e, f) { a instanceof Element ? this._node = a : (this._node = y.createElementNS(b.namespaces.svg, a), "svg" === a && this.attr({ "xmlns:ct": b.namespaces.ct })), c && this.attr(c), d && this.addClass(d), e && (f && e._node.firstChild ? e._node.insertBefore(this._node, e._node.firstChild) : e._node.appendChild(this._node)) } function d(a, c) { return "string" == typeof a ? c ? this._node.getAttributeNS(c, a) : this._node.getAttribute(a) : (Object.keys(a).forEach(function (c) { if (void 0 !== a[c]) if (c.indexOf(":") !== -1) { var d = c.split(":"); this._node.setAttributeNS(b.namespaces[d[0]], c, a[c]) } else this._node.setAttribute(c, a[c]) }.bind(this)), this) } function e(a, c, d, e) { return new b.Svg(a, c, d, this, e) } function f() { return this._node.parentNode instanceof SVGElement ? new b.Svg(this._node.parentNode) : null } function g() { for (var a = this._node; "svg" !== a.nodeName;)a = a.parentNode; return new b.Svg(a) } function h(a) { var c = this._node.querySelector(a); return c ? new b.Svg(c) : null } function i(a) { var c = this._node.querySelectorAll(a); return c.length ? new b.Svg.List(c) : null } function j() { return this._node } function k(a, c, d, e) { if ("string" == typeof a) { var f = y.createElement("div"); f.innerHTML = a, a = f.firstChild } a.setAttribute("xmlns", b.namespaces.xmlns); var g = this.elem("foreignObject", c, d, e); return g._node.appendChild(a), g } function l(a) { return this._node.appendChild(y.createTextNode(a)), this } function m() { for (; this._node.firstChild;)this._node.removeChild(this._node.firstChild); return this } function n() { return this._node.parentNode.removeChild(this._node), this.parent() } function o(a) { return this._node.parentNode.replaceChild(a._node, this._node), a } function p(a, b) { return b && this._node.firstChild ? this._node.insertBefore(a._node, this._node.firstChild) : this._node.appendChild(a._node), this } function q() { return this._node.getAttribute("class") ? this._node.getAttribute("class").trim().split(/\s+/) : [] } function r(a) { return this._node.setAttribute("class", this.classes(this._node).concat(a.trim().split(/\s+/)).filter(function (a, b, c) { return c.indexOf(a) === b }).join(" ")), this } function s(a) { var b = a.trim().split(/\s+/); return this._node.setAttribute("class", this.classes(this._node).filter(function (a) { return b.indexOf(a) === -1 }).join(" ")), this } function t() { return this._node.setAttribute("class", ""), this } function u() { return this._node.getBoundingClientRect().height } function v() { return this._node.getBoundingClientRect().width } function w(a, c, d) { return void 0 === c && (c = !0), Object.keys(a).forEach(function (e) { function f(a, c) { var f, g, h, i = {}; a.easing && (h = a.easing instanceof Array ? a.easing : b.Svg.Easing[a.easing], delete a.easing), a.begin = b.ensureUnit(a.begin, "ms"), a.dur = b.ensureUnit(a.dur, "ms"), h && (a.calcMode = "spline", a.keySplines = h.join(" "), a.keyTimes = "0;1"), c && (a.fill = "freeze", i[e] = a.from, this.attr(i), g = b.quantity(a.begin || 0).value, a.begin = "indefinite"), f = this.elem("animate", b.extend({ attributeName: e }, a)), c && setTimeout(function () { try { f._node.beginElement() } catch (b) { i[e] = a.to, this.attr(i), f.remove() } }.bind(this), g), d && f._node.addEventListener("beginEvent", function () { d.emit("animationBegin", { element: this, animate: f._node, params: a }) }.bind(this)), f._node.addEventListener("endEvent", function () { d && d.emit("animationEnd", { element: this, animate: f._node, params: a }), c && (i[e] = a.to, this.attr(i), f.remove()) }.bind(this)) } a[e] instanceof Array ? a[e].forEach(function (a) { f.bind(this)(a, !1) }.bind(this)) : f.bind(this)(a[e], c) }.bind(this)), this } function x(a) { var c = this; this.svgElements = []; for (var d = 0; d < a.length; d++)this.svgElements.push(new b.Svg(a[d])); Object.keys(b.Svg.prototype).filter(function (a) { return ["constructor", "parent", "querySelector", "querySelectorAll", "replace", "append", "classes", "height", "width"].indexOf(a) === -1 }).forEach(function (a) { c[a] = function () { var d = Array.prototype.slice.call(arguments, 0); return c.svgElements.forEach(function (c) { b.Svg.prototype[a].apply(c, d) }), c } }) } var y = a.document; b.Svg = b.Class.extend({ constructor: c, attr: d, elem: e, parent: f, root: g, querySelector: h, querySelectorAll: i, getNode: j, foreignObject: k, text: l, empty: m, remove: n, replace: o, append: p, classes: q, addClass: r, removeClass: s, removeAllClasses: t, height: u, width: v, animate: w }), b.Svg.isSupported = function (a) { return y.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#" + a, "1.1") }; var z = { easeInSine: [.47, 0, .745, .715], easeOutSine: [.39, .575, .565, 1], easeInOutSine: [.445, .05, .55, .95], easeInQuad: [.55, .085, .68, .53], easeOutQuad: [.25, .46, .45, .94], easeInOutQuad: [.455, .03, .515, .955], easeInCubic: [.55, .055, .675, .19], easeOutCubic: [.215, .61, .355, 1], easeInOutCubic: [.645, .045, .355, 1], easeInQuart: [.895, .03, .685, .22], easeOutQuart: [.165, .84, .44, 1], easeInOutQuart: [.77, 0, .175, 1], easeInQuint: [.755, .05, .855, .06], easeOutQuint: [.23, 1, .32, 1], easeInOutQuint: [.86, 0, .07, 1], easeInExpo: [.95, .05, .795, .035], easeOutExpo: [.19, 1, .22, 1], easeInOutExpo: [1, 0, 0, 1], easeInCirc: [.6, .04, .98, .335], easeOutCirc: [.075, .82, .165, 1], easeInOutCirc: [.785, .135, .15, .86], easeInBack: [.6, -.28, .735, .045], easeOutBack: [.175, .885, .32, 1.275], easeInOutBack: [.68, -.55, .265, 1.55] }; b.Svg.Easing = z, b.Svg.List = b.Class.extend({ constructor: x }) }(this || global, a), function (a, b) { "use strict"; function c(a, c, d, e, f, g) { var h = b.extend({ command: f ? a.toLowerCase() : a.toUpperCase() }, c, g ? { data: g } : {}); d.splice(e, 0, h) } function d(a, b) { a.forEach(function (c, d) { t[c.command.toLowerCase()].forEach(function (e, f) { b(c, e, d, f, a) }) }) } function e(a, c) { this.pathElements = [], this.pos = 0, this.close = a, this.options = b.extend({}, u, c) } function f(a) { return void 0 !== a ? (this.pos = Math.max(0, Math.min(this.pathElements.length, a)), this) : this.pos } function g(a) { return this.pathElements.splice(this.pos, a), this } function h(a, b, d, e) { return c("M", { x: +a, y: +b }, this.pathElements, this.pos++, d, e), this } function i(a, b, d, e) { return c("L", { x: +a, y: +b }, this.pathElements, this.pos++, d, e), this } function j(a, b, d, e, f, g, h, i) { return c("C", { x1: +a, y1: +b, x2: +d, y2: +e, x: +f, y: +g }, this.pathElements, this.pos++, h, i), this } function k(a, b, d, e, f, g, h, i, j) { return c("A", { rx: +a, ry: +b, xAr: +d, lAf: +e, sf: +f, x: +g, y: +h }, this.pathElements, this.pos++, i, j), this } function l(a) { var c = a.replace(/([A-Za-z])([0-9])/g, "$1 $2").replace(/([0-9])([A-Za-z])/g, "$1 $2").split(/[\s,]+/).reduce(function (a, b) { return b.match(/[A-Za-z]/) && a.push([]), a[a.length - 1].push(b), a }, []); "Z" === c[c.length - 1][0].toUpperCase() && c.pop(); var d = c.map(function (a) { var c = a.shift(), d = t[c.toLowerCase()]; return b.extend({ command: c }, d.reduce(function (b, c, d) { return b[c] = +a[d], b }, {})) }), e = [this.pos, 0]; return Array.prototype.push.apply(e, d), Array.prototype.splice.apply(this.pathElements, e), this.pos += d.length, this } function m() { var a = Math.pow(10, this.options.accuracy); return this.pathElements.reduce(function (b, c) { var d = t[c.command.toLowerCase()].map(function (b) { return this.options.accuracy ? Math.round(c[b] * a) / a : c[b] }.bind(this)); return b + c.command + d.join(",") }.bind(this), "") + (this.close ? "Z" : "") } function n(a, b) { return d(this.pathElements, function (c, d) { c[d] *= "x" === d[0] ? a : b }), this } function o(a, b) { return d(this.pathElements, function (c, d) { c[d] += "x" === d[0] ? a : b }), this } function p(a) { return d(this.pathElements, function (b, c, d, e, f) { var g = a(b, c, d, e, f); (g || 0 === g) && (b[c] = g) }), this } function q(a) { var c = new b.Svg.Path(a || this.close); return c.pos = this.pos, c.pathElements = this.pathElements.slice().map(function (a) { return b.extend({}, a) }), c.options = b.extend({}, this.options), c } function r(a) { var c = [new b.Svg.Path]; return this.pathElements.forEach(function (d) { d.command === a.toUpperCase() && 0 !== c[c.length - 1].pathElements.length && c.push(new b.Svg.Path), c[c.length - 1].pathElements.push(d) }), c } function s(a, c, d) { for (var e = new b.Svg.Path(c, d), f = 0; f < a.length; f++)for (var g = a[f], h = 0; h < g.pathElements.length; h++)e.pathElements.push(g.pathElements[h]); return e } var t = { m: ["x", "y"], l: ["x", "y"], c: ["x1", "y1", "x2", "y2", "x", "y"], a: ["rx", "ry", "xAr", "lAf", "sf", "x", "y"] }, u = { accuracy: 3 }; b.Svg.Path = b.Class.extend({ constructor: e, position: f, remove: g, move: h, line: i, curve: j, arc: k, scale: n, translate: o, transform: p, parse: l, stringify: m, clone: q, splitByCommand: r }), b.Svg.Path.elementDescriptions = t, b.Svg.Path.join = s }(this || global, a), function (a, b) { "use strict"; function c(a, b, c, d) { this.units = a, this.counterUnits = a === e.x ? e.y : e.x, this.chartRect = b, this.axisLength = b[a.rectEnd] - b[a.rectStart], this.gridOffset = b[a.rectOffset], this.ticks = c, this.options = d } function d(a, c, d, e, f) { var g = e["axis" + this.units.pos.toUpperCase()], h = this.ticks.map(this.projectValue.bind(this)), i = this.ticks.map(g.labelInterpolationFnc); h.forEach(function (j, k) { var l, m = { x: 0, y: 0 }; l = h[k + 1] ? h[k + 1] - j : Math.max(this.axisLength - j, 30), b.isFalseyButZero(i[k]) && "" !== i[k] || ("x" === this.units.pos ? (j = this.chartRect.x1 + j, m.x = e.axisX.labelOffset.x, "start" === e.axisX.position ? m.y = this.chartRect.padding.top + e.axisX.labelOffset.y + (d ? 5 : 20) : m.y = this.chartRect.y1 + e.axisX.labelOffset.y + (d ? 5 : 20)) : (j = this.chartRect.y1 - j, m.y = e.axisY.labelOffset.y - (d ? l : 0), "start" === e.axisY.position ? m.x = d ? this.chartRect.padding.left + e.axisY.labelOffset.x : this.chartRect.x1 - 10 : m.x = this.chartRect.x2 + e.axisY.labelOffset.x + 10), g.showGrid && b.createGrid(j, k, this, this.gridOffset, this.chartRect[this.counterUnits.len](), a, [e.classNames.grid, e.classNames[this.units.dir]], f), g.showLabel && b.createLabel(j, l, k, i, this, g.offset, m, c, [e.classNames.label, e.classNames[this.units.dir], "start" === g.position ? e.classNames[g.position] : e.classNames.end], d, f)) }.bind(this)) } var e = (a.window, a.document, { x: { pos: "x", len: "width", dir: "horizontal", rectStart: "x1", rectEnd: "x2", rectOffset: "y2" }, y: { pos: "y", len: "height", dir: "vertical", rectStart: "y2", rectEnd: "y1", rectOffset: "x1" } }); b.Axis = b.Class.extend({ constructor: c, createGridAndLabels: d, projectValue: function (a, b, c) { throw new Error("Base axis can't be instantiated!") } }), b.Axis.units = e }(this || global, a), function (a, b) { "use strict"; function c(a, c, d, e) { var f = e.highLow || b.getHighLow(c, e, a.pos); this.bounds = b.getBounds(d[a.rectEnd] - d[a.rectStart], f, e.scaleMinSpace || 20, e.onlyInteger), this.range = { min: this.bounds.min, max: this.bounds.max }, b.AutoScaleAxis["super"].constructor.call(this, a, d, this.bounds.values, e) } function d(a) { return this.axisLength * (+b.getMultiValue(a, this.units.pos) - this.bounds.min) / this.bounds.range } a.window, a.document; b.AutoScaleAxis = b.Axis.extend({ constructor: c, projectValue: d }) }(this || global, a), function (a, b) { "use strict"; function c(a, c, d, e) { var f = e.highLow || b.getHighLow(c, e, a.pos); this.divisor = e.divisor || 1, this.ticks = e.ticks || b.times(this.divisor).map(function (a, b) { return f.low + (f.high - f.low) / this.divisor * b }.bind(this)), this.ticks.sort(function (a, b) { return a - b }), this.range = { min: f.low, max: f.high }, b.FixedScaleAxis["super"].constructor.call(this, a, d, this.ticks, e), this.stepLength = this.axisLength / this.divisor } function d(a) { return this.axisLength * (+b.getMultiValue(a, this.units.pos) - this.range.min) / (this.range.max - this.range.min) } a.window, a.document; b.FixedScaleAxis = b.Axis.extend({ constructor: c, projectValue: d }) }(this || global, a), function (a, b) { "use strict"; function c(a, c, d, e) { b.StepAxis["super"].constructor.call(this, a, d, e.ticks, e); var f = Math.max(1, e.ticks.length - (e.stretch ? 1 : 0)); this.stepLength = this.axisLength / f } function d(a, b) { return this.stepLength * b } a.window, a.document; b.StepAxis = b.Axis.extend({ constructor: c, projectValue: d }) }(this || global, a), function (a, b) { "use strict"; function c(a) { var c = b.normalizeData(this.data, a.reverseData, !0); this.svg = b.createSvg(this.container, a.width, a.height, a.classNames.chart); var d, f, g = this.svg.elem("g").addClass(a.classNames.gridGroup), h = this.svg.elem("g"), i = this.svg.elem("g").addClass(a.classNames.labelGroup), j = b.createChartRect(this.svg, a, e.padding); d = void 0 === a.axisX.type ? new b.StepAxis(b.Axis.units.x, c.normalized.series, j, b.extend({}, a.axisX, { ticks: c.normalized.labels, stretch: a.fullWidth })) : a.axisX.type.call(b, b.Axis.units.x, c.normalized.series, j, a.axisX), f = void 0 === a.axisY.type ? new b.AutoScaleAxis(b.Axis.units.y, c.normalized.series, j, b.extend({}, a.axisY, { high: b.isNumeric(a.high) ? a.high : a.axisY.high, low: b.isNumeric(a.low) ? a.low : a.axisY.low })) : a.axisY.type.call(b, b.Axis.units.y, c.normalized.series, j, a.axisY), d.createGridAndLabels(g, i, this.supportsForeignObject, a, this.eventEmitter), f.createGridAndLabels(g, i, this.supportsForeignObject, a, this.eventEmitter), a.showGridBackground && b.createGridBackground(g, j, a.classNames.gridBackground, this.eventEmitter), c.raw.series.forEach(function (e, g) { var i = h.elem("g"); i.attr({ "ct:series-name": e.name, "ct:meta": b.serialize(e.meta) }), i.addClass([a.classNames.series, e.className || a.classNames.series + "-" + b.alphaNumerate(g)].join(" ")); var k = [], l = []; c.normalized.series[g].forEach(function (a, h) { var i = { x: j.x1 + d.projectValue(a, h, c.normalized.series[g]), y: j.y1 - f.projectValue(a, h, c.normalized.series[g]) }; k.push(i.x, i.y), l.push({ value: a, valueIndex: h, meta: b.getMetaData(e, h) }) }.bind(this)); var m = { lineSmooth: b.getSeriesOption(e, a, "lineSmooth"), showPoint: b.getSeriesOption(e, a, "showPoint"), showLine: b.getSeriesOption(e, a, "showLine"), showArea: b.getSeriesOption(e, a, "showArea"), areaBase: b.getSeriesOption(e, a, "areaBase") }, n = "function" == typeof m.lineSmooth ? m.lineSmooth : m.lineSmooth ? b.Interpolation.monotoneCubic() : b.Interpolation.none(), o = n(k, l); if (m.showPoint && o.pathElements.forEach(function (c) { var h = i.elem("line", { x1: c.x, y1: c.y, x2: c.x + .01, y2: c.y }, a.classNames.point).attr({ "ct:value": [c.data.value.x, c.data.value.y].filter(b.isNumeric).join(","), "ct:meta": b.serialize(c.data.meta) }); this.eventEmitter.emit("draw", { type: "point", value: c.data.value, index: c.data.valueIndex, meta: c.data.meta, series: e, seriesIndex: g, axisX: d, axisY: f, group: i, element: h, x: c.x, y: c.y }) }.bind(this)), m.showLine) { var p = i.elem("path", { d: o.stringify() }, a.classNames.line, !0); this.eventEmitter.emit("draw", { type: "line", values: c.normalized.series[g], path: o.clone(), chartRect: j, index: g, series: e, seriesIndex: g, seriesMeta: e.meta, axisX: d, axisY: f, group: i, element: p }) } if (m.showArea && f.range) { var q = Math.max(Math.min(m.areaBase, f.range.max), f.range.min), r = j.y1 - f.projectValue(q); o.splitByCommand("M").filter(function (a) { return a.pathElements.length > 1 }).map(function (a) { var b = a.pathElements[0], c = a.pathElements[a.pathElements.length - 1]; return a.clone(!0).position(0).remove(1).move(b.x, r).line(b.x, b.y).position(a.pathElements.length + 1).line(c.x, r) }).forEach(function (b) { var h = i.elem("path", { d: b.stringify() }, a.classNames.area, !0); this.eventEmitter.emit("draw", { type: "area", values: c.normalized.series[g], path: b.clone(), series: e, seriesIndex: g, axisX: d, axisY: f, chartRect: j, index: g, group: i, element: h }) }.bind(this)) } }.bind(this)), this.eventEmitter.emit("created", { bounds: f.bounds, chartRect: j, axisX: d, axisY: f, svg: this.svg, options: a }) } function d(a, c, d, f) { b.Line["super"].constructor.call(this, a, c, e, b.extend({}, e, d), f) } var e = (a.window, a.document, { axisX: { offset: 30, position: "end", labelOffset: { x: 0, y: 0 }, showLabel: !0, showGrid: !0, labelInterpolationFnc: b.noop, type: void 0 }, axisY: { offset: 40, position: "start", labelOffset: { x: 0, y: 0 }, showLabel: !0, showGrid: !0, labelInterpolationFnc: b.noop, type: void 0, scaleMinSpace: 20, onlyInteger: !1 }, width: void 0, height: void 0, showLine: !0, showPoint: !0, showArea: !1, areaBase: 0, lineSmooth: !0, showGridBackground: !1, low: void 0, high: void 0, chartPadding: { top: 15, right: 15, bottom: 5, left: 10 }, fullWidth: !1, reverseData: !1, classNames: { chart: "ct-chart-line", label: "ct-label", labelGroup: "ct-labels", series: "ct-series", line: "ct-line", point: "ct-point", area: "ct-area", grid: "ct-grid", gridGroup: "ct-grids", gridBackground: "ct-grid-background", vertical: "ct-vertical", horizontal: "ct-horizontal", start: "ct-start", end: "ct-end" } }); b.Line = b.Base.extend({ constructor: d, createChart: c }) }(this || global, a), function (a, b) { + "use strict"; function c(a) { + var c, d; a.distributeSeries ? (c = b.normalizeData(this.data, a.reverseData, a.horizontalBars ? "x" : "y"), c.normalized.series = c.normalized.series.map(function (a) { return [a] })) : c = b.normalizeData(this.data, a.reverseData, a.horizontalBars ? "x" : "y"), this.svg = b.createSvg(this.container, a.width, a.height, a.classNames.chart + (a.horizontalBars ? " " + a.classNames.horizontalBars : "")); var f = this.svg.elem("g").addClass(a.classNames.gridGroup), g = this.svg.elem("g"), h = this.svg.elem("g").addClass(a.classNames.labelGroup); + if (a.stackBars && 0 !== c.normalized.series.length) { var i = b.serialMap(c.normalized.series, function () { return Array.prototype.slice.call(arguments).map(function (a) { return a }).reduce(function (a, b) { return { x: a.x + (b && b.x) || 0, y: a.y + (b && b.y) || 0 } }, { x: 0, y: 0 }) }); d = b.getHighLow([i], a, a.horizontalBars ? "x" : "y") } else d = b.getHighLow(c.normalized.series, a, a.horizontalBars ? "x" : "y"); d.high = +a.high || (0 === a.high ? 0 : d.high), d.low = +a.low || (0 === a.low ? 0 : d.low); var j, k, l, m, n, o = b.createChartRect(this.svg, a, e.padding); k = a.distributeSeries && a.stackBars ? c.normalized.labels.slice(0, 1) : c.normalized.labels, a.horizontalBars ? (j = m = void 0 === a.axisX.type ? new b.AutoScaleAxis(b.Axis.units.x, c.normalized.series, o, b.extend({}, a.axisX, { highLow: d, referenceValue: 0 })) : a.axisX.type.call(b, b.Axis.units.x, c.normalized.series, o, b.extend({}, a.axisX, { highLow: d, referenceValue: 0 })), l = n = void 0 === a.axisY.type ? new b.StepAxis(b.Axis.units.y, c.normalized.series, o, { ticks: k }) : a.axisY.type.call(b, b.Axis.units.y, c.normalized.series, o, a.axisY)) : (l = m = void 0 === a.axisX.type ? new b.StepAxis(b.Axis.units.x, c.normalized.series, o, { ticks: k }) : a.axisX.type.call(b, b.Axis.units.x, c.normalized.series, o, a.axisX), j = n = void 0 === a.axisY.type ? new b.AutoScaleAxis(b.Axis.units.y, c.normalized.series, o, b.extend({}, a.axisY, { highLow: d, referenceValue: 0 })) : a.axisY.type.call(b, b.Axis.units.y, c.normalized.series, o, b.extend({}, a.axisY, { highLow: d, referenceValue: 0 }))); var p = a.horizontalBars ? o.x1 + j.projectValue(0) : o.y1 - j.projectValue(0), q = []; l.createGridAndLabels(f, h, this.supportsForeignObject, a, this.eventEmitter), j.createGridAndLabels(f, h, this.supportsForeignObject, a, this.eventEmitter), a.showGridBackground && b.createGridBackground(f, o, a.classNames.gridBackground, this.eventEmitter), c.raw.series.forEach(function (d, e) { var f, h, i = e - (c.raw.series.length - 1) / 2; f = a.distributeSeries && !a.stackBars ? l.axisLength / c.normalized.series.length / 2 : a.distributeSeries && a.stackBars ? l.axisLength / 2 : l.axisLength / c.normalized.series[e].length / 2, h = g.elem("g"), h.attr({ "ct:series-name": d.name, "ct:meta": b.serialize(d.meta) }), h.addClass([a.classNames.series, d.className || a.classNames.series + "-" + b.alphaNumerate(e)].join(" ")), c.normalized.series[e].forEach(function (g, k) { var r, s, t, u; if (u = a.distributeSeries && !a.stackBars ? e : a.distributeSeries && a.stackBars ? 0 : k, r = a.horizontalBars ? { x: o.x1 + j.projectValue(g && g.x ? g.x : 0, k, c.normalized.series[e]), y: o.y1 - l.projectValue(g && g.y ? g.y : 0, u, c.normalized.series[e]) } : { x: o.x1 + l.projectValue(g && g.x ? g.x : 0, u, c.normalized.series[e]), y: o.y1 - j.projectValue(g && g.y ? g.y : 0, k, c.normalized.series[e]) }, l instanceof b.StepAxis && (l.options.stretch || (r[l.units.pos] += f * (a.horizontalBars ? -1 : 1)), r[l.units.pos] += a.stackBars || a.distributeSeries ? 0 : i * a.seriesBarDistance * (a.horizontalBars ? -1 : 1)), t = q[k] || p, q[k] = t - (p - r[l.counterUnits.pos]), void 0 !== g) { var v = {}; v[l.units.pos + "1"] = r[l.units.pos], v[l.units.pos + "2"] = r[l.units.pos], !a.stackBars || "accumulate" !== a.stackMode && a.stackMode ? (v[l.counterUnits.pos + "1"] = p, v[l.counterUnits.pos + "2"] = r[l.counterUnits.pos]) : (v[l.counterUnits.pos + "1"] = t, v[l.counterUnits.pos + "2"] = q[k]), v.x1 = Math.min(Math.max(v.x1, o.x1), o.x2), v.x2 = Math.min(Math.max(v.x2, o.x1), o.x2), v.y1 = Math.min(Math.max(v.y1, o.y2), o.y1), v.y2 = Math.min(Math.max(v.y2, o.y2), o.y1); var w = b.getMetaData(d, k); s = h.elem("line", v, a.classNames.bar).attr({ "ct:value": [g.x, g.y].filter(b.isNumeric).join(","), "ct:meta": b.serialize(w) }), this.eventEmitter.emit("draw", b.extend({ type: "bar", value: g, index: k, meta: w, series: d, seriesIndex: e, axisX: m, axisY: n, chartRect: o, group: h, element: s }, v)) } }.bind(this)) }.bind(this)), this.eventEmitter.emit("created", { bounds: j.bounds, chartRect: o, axisX: m, axisY: n, svg: this.svg, options: a }) + } function d(a, c, d, f) { b.Bar["super"].constructor.call(this, a, c, e, b.extend({}, e, d), f) } var e = (a.window, a.document, { axisX: { offset: 30, position: "end", labelOffset: { x: 0, y: 0 }, showLabel: !0, showGrid: !0, labelInterpolationFnc: b.noop, scaleMinSpace: 30, onlyInteger: !1 }, axisY: { offset: 40, position: "start", labelOffset: { x: 0, y: 0 }, showLabel: !0, showGrid: !0, labelInterpolationFnc: b.noop, scaleMinSpace: 20, onlyInteger: !1 }, width: void 0, height: void 0, high: void 0, low: void 0, referenceValue: 0, chartPadding: { top: 15, right: 15, bottom: 5, left: 10 }, seriesBarDistance: 15, stackBars: !1, stackMode: "accumulate", horizontalBars: !1, distributeSeries: !1, reverseData: !1, showGridBackground: !1, classNames: { chart: "ct-chart-bar", horizontalBars: "ct-horizontal-bars", label: "ct-label", labelGroup: "ct-labels", series: "ct-series", bar: "ct-bar", grid: "ct-grid", gridGroup: "ct-grids", gridBackground: "ct-grid-background", vertical: "ct-vertical", horizontal: "ct-horizontal", start: "ct-start", end: "ct-end" } }); b.Bar = b.Base.extend({ constructor: d, createChart: c }) + }(this || global, a), function (a, b) { "use strict"; function c(a, b, c) { var d = b.x > a.x; return d && "explode" === c || !d && "implode" === c ? "start" : d && "implode" === c || !d && "explode" === c ? "end" : "middle" } function d(a) { var d, e, g, h, i, j = b.normalizeData(this.data), k = [], l = a.startAngle; this.svg = b.createSvg(this.container, a.width, a.height, a.donut ? a.classNames.chartDonut : a.classNames.chartPie), e = b.createChartRect(this.svg, a, f.padding), g = Math.min(e.width() / 2, e.height() / 2), i = a.total || j.normalized.series.reduce(function (a, b) { return a + b }, 0); var m = b.quantity(a.donutWidth); "%" === m.unit && (m.value *= g / 100), g -= a.donut && !a.donutSolid ? m.value / 2 : 0, h = "outside" === a.labelPosition || a.donut && !a.donutSolid ? g : "center" === a.labelPosition ? 0 : a.donutSolid ? g - m.value / 2 : g / 2, h += a.labelOffset; var n = { x: e.x1 + e.width() / 2, y: e.y2 + e.height() / 2 }, o = 1 === j.raw.series.filter(function (a) { return a.hasOwnProperty("value") ? 0 !== a.value : 0 !== a }).length; j.raw.series.forEach(function (a, b) { k[b] = this.svg.elem("g", null, null) }.bind(this)), a.showLabel && (d = this.svg.elem("g", null, null)), j.raw.series.forEach(function (e, f) { if (0 !== j.normalized.series[f] || !a.ignoreEmptyValues) { k[f].attr({ "ct:series-name": e.name }), k[f].addClass([a.classNames.series, e.className || a.classNames.series + "-" + b.alphaNumerate(f)].join(" ")); var p = i > 0 ? l + j.normalized.series[f] / i * 360 : 0, q = Math.max(0, l - (0 === f || o ? 0 : .2)); p - q >= 359.99 && (p = q + 359.99); var r, s, t, u = b.polarToCartesian(n.x, n.y, g, q), v = b.polarToCartesian(n.x, n.y, g, p), w = new b.Svg.Path(!a.donut || a.donutSolid).move(v.x, v.y).arc(g, g, 0, p - l > 180, 0, u.x, u.y); a.donut ? a.donutSolid && (t = g - m.value, r = b.polarToCartesian(n.x, n.y, t, l - (0 === f || o ? 0 : .2)), s = b.polarToCartesian(n.x, n.y, t, p), w.line(r.x, r.y), w.arc(t, t, 0, p - l > 180, 1, s.x, s.y)) : w.line(n.x, n.y); var x = a.classNames.slicePie; a.donut && (x = a.classNames.sliceDonut, a.donutSolid && (x = a.classNames.sliceDonutSolid)); var y = k[f].elem("path", { d: w.stringify() }, x); if (y.attr({ "ct:value": j.normalized.series[f], "ct:meta": b.serialize(e.meta) }), a.donut && !a.donutSolid && (y._node.style.strokeWidth = m.value + "px"), this.eventEmitter.emit("draw", { type: "slice", value: j.normalized.series[f], totalDataSum: i, index: f, meta: e.meta, series: e, group: k[f], element: y, path: w.clone(), center: n, radius: g, startAngle: l, endAngle: p }), a.showLabel) { var z; z = 1 === j.raw.series.length ? { x: n.x, y: n.y } : b.polarToCartesian(n.x, n.y, h, l + (p - l) / 2); var A; A = j.normalized.labels && !b.isFalseyButZero(j.normalized.labels[f]) ? j.normalized.labels[f] : j.normalized.series[f]; var B = a.labelInterpolationFnc(A, f); if (B || 0 === B) { var C = d.elem("text", { dx: z.x, dy: z.y, "text-anchor": c(n, z, a.labelDirection) }, a.classNames.label).text("" + B); this.eventEmitter.emit("draw", { type: "label", index: f, group: d, element: C, text: "" + B, x: z.x, y: z.y }) } } l = p } }.bind(this)), this.eventEmitter.emit("created", { chartRect: e, svg: this.svg, options: a }) } function e(a, c, d, e) { b.Pie["super"].constructor.call(this, a, c, f, b.extend({}, f, d), e) } var f = (a.window, a.document, { width: void 0, height: void 0, chartPadding: 5, classNames: { chartPie: "ct-chart-pie", chartDonut: "ct-chart-donut", series: "ct-series", slicePie: "ct-slice-pie", sliceDonut: "ct-slice-donut", sliceDonutSolid: "ct-slice-donut-solid", label: "ct-label" }, startAngle: 0, total: void 0, donut: !1, donutSolid: !1, donutWidth: 60, showLabel: !0, labelOffset: 0, labelPosition: "inside", labelInterpolationFnc: b.noop, labelDirection: "neutral", reverseData: !1, ignoreEmptyValues: !1 }); b.Pie = b.Base.extend({ constructor: e, createChart: d, determineAnchorPosition: c }) }(this || global, a), a +}); +//# sourceMappingURL=chartist.min.js.map + +var i, l, selectedLine = null; + +/* Navigate to hash without browser history entry */ +var navigateToHash = function () { + if (window.history !== undefined && window.history.replaceState !== undefined) { + window.history.replaceState(undefined, undefined, this.getAttribute("href")); + } +}; + +var hashLinks = document.getElementsByClassName('navigatetohash'); +for (i = 0, l = hashLinks.length; i < l; i++) { + hashLinks[i].addEventListener('click', navigateToHash); +} + +/* Switch test method */ +var switchTestMethod = function () { + var method = this.getAttribute("value"); + console.log("Selected test method: " + method); + + var lines, i, l, coverageData, lineAnalysis, cells; + + lines = document.querySelectorAll('.lineAnalysis tr'); + + for (i = 1, l = lines.length; i < l; i++) { + coverageData = JSON.parse(lines[i].getAttribute('data-coverage').replace(/'/g, '"')); + lineAnalysis = coverageData[method]; + cells = lines[i].querySelectorAll('td'); + if (lineAnalysis === undefined) { + lineAnalysis = coverageData.AllTestMethods; + if (lineAnalysis.LVS !== 'gray') { + cells[0].setAttribute('class', 'red'); + cells[1].innerText = cells[1].textContent = '0'; + cells[4].setAttribute('class', 'lightred'); + } + } else { + cells[0].setAttribute('class', lineAnalysis.LVS); + cells[1].innerText = cells[1].textContent = lineAnalysis.VC; + cells[4].setAttribute('class', 'light' + lineAnalysis.LVS); + } + } +}; + +var testMethods = document.getElementsByClassName('switchtestmethod'); +for (i = 0, l = testMethods.length; i < l; i++) { + testMethods[i].addEventListener('change', switchTestMethod); +} + +/* Highlight test method by line */ +var toggleLine = function () { + if (selectedLine === this) { + selectedLine = null; + } else { + selectedLine = null; + unhighlightTestMethods(); + highlightTestMethods.call(this); + selectedLine = this; + } + +}; +var highlightTestMethods = function () { + if (selectedLine !== null) { + return; + } + + var lineAnalysis; + var coverageData = JSON.parse(this.getAttribute('data-coverage').replace(/'/g, '"')); + var testMethods = document.getElementsByClassName('testmethod'); + + for (i = 0, l = testMethods.length; i < l; i++) { + lineAnalysis = coverageData[testMethods[i].id]; + if (lineAnalysis === undefined) { + testMethods[i].className = testMethods[i].className.replace(/\s*light.+/g, ""); + } else { + testMethods[i].className += ' light' + lineAnalysis.LVS; + } + } +}; +var unhighlightTestMethods = function () { + if (selectedLine !== null) { + return; + } + + var testMethods = document.getElementsByClassName('testmethod'); + for (i = 0, l = testMethods.length; i < l; i++) { + testMethods[i].className = testMethods[i].className.replace(/\s*light.+/g, ""); + } +}; +var coverableLines = document.getElementsByClassName('coverableline'); +for (i = 0, l = coverableLines.length; i < l; i++) { + coverableLines[i].addEventListener('click', toggleLine); + coverableLines[i].addEventListener('mouseenter', highlightTestMethods); + coverableLines[i].addEventListener('mouseleave', unhighlightTestMethods); +} + +/* History charts */ +var renderChart = function (chart) { + // Remove current children (e.g. PNG placeholder) + while (chart.firstChild) { + chart.firstChild.remove(); + } + + var chartData = window[chart.getAttribute('data-data')]; + var options = { + axisY: { + type: undefined, + onlyInteger: true + }, + lineSmooth: false, + low: 0, + high: 100, + scaleMinSpace: 20, + onlyInteger: true, + fullWidth: true + }; + var lineChart = new Chartist.Line(chart, { + labels: [], + series: chartData.series + }, options); + + /* Zoom */ + var zoomButtonDiv = document.createElement("div"); + zoomButtonDiv.className = "toggleZoom"; + var zoomButtonLink = document.createElement("a"); + zoomButtonLink.setAttribute("href", ""); + var zoomButtonText = document.createElement("i"); + zoomButtonText.className = "icon-search-plus"; + + zoomButtonLink.appendChild(zoomButtonText); + zoomButtonDiv.appendChild(zoomButtonLink); + + chart.appendChild(zoomButtonDiv); + + zoomButtonDiv.addEventListener('click', function (event) { + event.preventDefault(); + + if (options.axisY.type === undefined) { + options.axisY.type = Chartist.AutoScaleAxis; + zoomButtonText.className = "icon-search-minus"; + } else { + options.axisY.type = undefined; + zoomButtonText.className = "icon-search-plus"; + } + + lineChart.update(null, options); + }); + + var tooltip = document.createElement("div"); + tooltip.className = "tooltip"; + + chart.appendChild(tooltip); + + /* Tooltips */ + var showToolTip = function () { + var index = this.getAttribute('ct:meta'); + + tooltip.innerHTML = chartData.tooltips[index]; + tooltip.style.display = 'block'; + }; + + var moveToolTip = function (event) { + var box = chart.getBoundingClientRect(); + var left = event.pageX - box.left - window.pageXOffset; + var top = event.pageY - box.top - window.pageYOffset; + + left = left + 20; + top = top - tooltip.offsetHeight / 2; + + if (left + tooltip.offsetWidth > box.width) { + left -= tooltip.offsetWidth + 40; + } + + if (top < 0) { + top = 0; + } + + if (top + tooltip.offsetHeight > box.height) { + top = box.height - tooltip.offsetHeight; + } + + tooltip.style.left = left + 'px'; + tooltip.style.top = top + 'px'; + }; + + var hideToolTip = function () { + tooltip.style.display = 'none'; + }; + chart.addEventListener('mousemove', moveToolTip); + + lineChart.on('created', function () { + var chartPoints = chart.getElementsByClassName('ct-point'); + for (i = 0, l = chartPoints.length; i < l; i++) { + chartPoints[i].addEventListener('mousemove', showToolTip); + chartPoints[i].addEventListener('mouseout', hideToolTip); + } + }); +}; + +var charts = document.getElementsByClassName('historychart'); +for (i = 0, l = charts.length; i < l; i++) { + renderChart(charts[i]); +} \ No newline at end of file diff --git a/docs/resources/reports/Html_Dark/icon_cog.svg b/docs/resources/reports/Html_Dark/icon_cog.svg new file mode 100644 index 00000000..d730bf12 --- /dev/null +++ b/docs/resources/reports/Html_Dark/icon_cog.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/resources/reports/Html_Dark/icon_cog_dark.svg b/docs/resources/reports/Html_Dark/icon_cog_dark.svg new file mode 100644 index 00000000..ccbcd9b0 --- /dev/null +++ b/docs/resources/reports/Html_Dark/icon_cog_dark.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/resources/reports/Html_Dark/icon_cube.svg b/docs/resources/reports/Html_Dark/icon_cube.svg new file mode 100644 index 00000000..3302443c --- /dev/null +++ b/docs/resources/reports/Html_Dark/icon_cube.svg @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/docs/resources/reports/Html_Dark/icon_cube_dark.svg b/docs/resources/reports/Html_Dark/icon_cube_dark.svg new file mode 100644 index 00000000..3e7f0fa8 --- /dev/null +++ b/docs/resources/reports/Html_Dark/icon_cube_dark.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/resources/reports/Html_Dark/icon_down-dir_active.svg b/docs/resources/reports/Html_Dark/icon_down-dir_active.svg new file mode 100644 index 00000000..d11cf041 --- /dev/null +++ b/docs/resources/reports/Html_Dark/icon_down-dir_active.svg @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/docs/resources/reports/Html_Dark/icon_down-dir_active_dark.svg b/docs/resources/reports/Html_Dark/icon_down-dir_active_dark.svg new file mode 100644 index 00000000..fa34aeb3 --- /dev/null +++ b/docs/resources/reports/Html_Dark/icon_down-dir_active_dark.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/resources/reports/Html_Dark/icon_fork.svg b/docs/resources/reports/Html_Dark/icon_fork.svg new file mode 100644 index 00000000..f0148b3a --- /dev/null +++ b/docs/resources/reports/Html_Dark/icon_fork.svg @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/docs/resources/reports/Html_Dark/icon_fork_dark.svg b/docs/resources/reports/Html_Dark/icon_fork_dark.svg new file mode 100644 index 00000000..11930c9b --- /dev/null +++ b/docs/resources/reports/Html_Dark/icon_fork_dark.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/resources/reports/Html_Dark/icon_info-circled.svg b/docs/resources/reports/Html_Dark/icon_info-circled.svg new file mode 100644 index 00000000..252166bb --- /dev/null +++ b/docs/resources/reports/Html_Dark/icon_info-circled.svg @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/docs/resources/reports/Html_Dark/icon_info-circled_dark.svg b/docs/resources/reports/Html_Dark/icon_info-circled_dark.svg new file mode 100644 index 00000000..252166bb --- /dev/null +++ b/docs/resources/reports/Html_Dark/icon_info-circled_dark.svg @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/docs/resources/reports/Html_Dark/icon_minus.svg b/docs/resources/reports/Html_Dark/icon_minus.svg new file mode 100644 index 00000000..3c30c365 --- /dev/null +++ b/docs/resources/reports/Html_Dark/icon_minus.svg @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/docs/resources/reports/Html_Dark/icon_minus_dark.svg b/docs/resources/reports/Html_Dark/icon_minus_dark.svg new file mode 100644 index 00000000..2516b6fc --- /dev/null +++ b/docs/resources/reports/Html_Dark/icon_minus_dark.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/resources/reports/Html_Dark/icon_plus.svg b/docs/resources/reports/Html_Dark/icon_plus.svg new file mode 100644 index 00000000..79327232 --- /dev/null +++ b/docs/resources/reports/Html_Dark/icon_plus.svg @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/docs/resources/reports/Html_Dark/icon_plus_dark.svg b/docs/resources/reports/Html_Dark/icon_plus_dark.svg new file mode 100644 index 00000000..6ed4edd0 --- /dev/null +++ b/docs/resources/reports/Html_Dark/icon_plus_dark.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/resources/reports/Html_Dark/icon_search-minus.svg b/docs/resources/reports/Html_Dark/icon_search-minus.svg new file mode 100644 index 00000000..c174eb5e --- /dev/null +++ b/docs/resources/reports/Html_Dark/icon_search-minus.svg @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/docs/resources/reports/Html_Dark/icon_search-minus_dark.svg b/docs/resources/reports/Html_Dark/icon_search-minus_dark.svg new file mode 100644 index 00000000..9caaffbc --- /dev/null +++ b/docs/resources/reports/Html_Dark/icon_search-minus_dark.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/resources/reports/Html_Dark/icon_search-plus.svg b/docs/resources/reports/Html_Dark/icon_search-plus.svg new file mode 100644 index 00000000..04b24ecc --- /dev/null +++ b/docs/resources/reports/Html_Dark/icon_search-plus.svg @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/docs/resources/reports/Html_Dark/icon_search-plus_dark.svg b/docs/resources/reports/Html_Dark/icon_search-plus_dark.svg new file mode 100644 index 00000000..53241945 --- /dev/null +++ b/docs/resources/reports/Html_Dark/icon_search-plus_dark.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/resources/reports/Html_Dark/icon_sponsor.svg b/docs/resources/reports/Html_Dark/icon_sponsor.svg new file mode 100644 index 00000000..bf6d9591 --- /dev/null +++ b/docs/resources/reports/Html_Dark/icon_sponsor.svg @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/docs/resources/reports/Html_Dark/icon_star.svg b/docs/resources/reports/Html_Dark/icon_star.svg new file mode 100644 index 00000000..b23c54ea --- /dev/null +++ b/docs/resources/reports/Html_Dark/icon_star.svg @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/docs/resources/reports/Html_Dark/icon_star_dark.svg b/docs/resources/reports/Html_Dark/icon_star_dark.svg new file mode 100644 index 00000000..49c0d034 --- /dev/null +++ b/docs/resources/reports/Html_Dark/icon_star_dark.svg @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/docs/resources/reports/Html_Dark/icon_up-dir.svg b/docs/resources/reports/Html_Dark/icon_up-dir.svg new file mode 100644 index 00000000..567c11f3 --- /dev/null +++ b/docs/resources/reports/Html_Dark/icon_up-dir.svg @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/docs/resources/reports/Html_Dark/icon_up-dir_active.svg b/docs/resources/reports/Html_Dark/icon_up-dir_active.svg new file mode 100644 index 00000000..bb225544 --- /dev/null +++ b/docs/resources/reports/Html_Dark/icon_up-dir_active.svg @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/docs/resources/reports/Html_Dark/icon_wrench.svg b/docs/resources/reports/Html_Dark/icon_wrench.svg new file mode 100644 index 00000000..b6aa318c --- /dev/null +++ b/docs/resources/reports/Html_Dark/icon_wrench.svg @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/docs/resources/reports/Html_Dark/icon_wrench_dark.svg b/docs/resources/reports/Html_Dark/icon_wrench_dark.svg new file mode 100644 index 00000000..5c77a9c8 --- /dev/null +++ b/docs/resources/reports/Html_Dark/icon_wrench_dark.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/resources/reports/Html_Dark/index.html b/docs/resources/reports/Html_Dark/index.html new file mode 100644 index 00000000..ad33beed --- /dev/null +++ b/docs/resources/reports/Html_Dark/index.html @@ -0,0 +1,207 @@ + + + + + + + +Summary - Coverage Report + +
+

SummaryStarSponsor

+
+
+
Information
+
+
+ + + + + + + + + + + + + + + + + +
Parser:OpenCover
Assemblies:1
Classes:4
Files:5
+
+
+
+
+
Line coverage
+
+
66%
+
+ + + + + + + + + + + + + + + + + + + + + +
Covered lines:83
Uncovered lines:42
Coverable lines:125
Total lines:260
Line coverage:66.4%
+
+
+
+
+
Branch coverage
+
+
50%
+
+ + + + + + + + + + + + + +
Covered branches:3
Total branches:6
Branch coverage:50%
+
+
+
+
+
Method coverage
+
+
58%
+
+ + + + + + + + + + + + + +
Covered methods:14
Total methods:24
Method coverage:58.3%
+
+
+
+
+

Coverage history

+
+ +

Risk Hotspots

+ + +

No risk hotspots found.

+

Coverage

+ +
+ +++++++++++++++++ + + + + + + + + + + +
Line coverageBranch coverageMethod coverage
NameCoveredUncoveredCoverableTotalPercentageCoveredTotalPercentageCoveredTotalPercentage
Sample834212526066.4%
  
3650%
  
142458.3%
  
Sample.PartialClass1210225354.5%
  
1250%
  
3650%
  
Sample.TestClass129213857.1%
  
1250%
  
1250%
  
Test.Program359448479.5%
  
00
 
4666.6%
  
Test.TestClass22414388563.1%
  
1250%
  
61060%
  
+
+
+
+ + \ No newline at end of file diff --git a/docs/resources/reports/Html_Dark/main.js b/docs/resources/reports/Html_Dark/main.js new file mode 100644 index 00000000..a91801ce --- /dev/null +++ b/docs/resources/reports/Html_Dark/main.js @@ -0,0 +1,290 @@ +/* Chartist.js 0.11.4 + * Copyright © 2019 Gion Kunz + * Free to use under either the WTFPL license or the MIT license. + * https://raw.githubusercontent.com/gionkunz/chartist-js/master/LICENSE-WTFPL + * https://raw.githubusercontent.com/gionkunz/chartist-js/master/LICENSE-MIT + */ + +!function (a, b) { "function" == typeof define && define.amd ? define("Chartist", [], function () { return a.Chartist = b() }) : "object" == typeof module && module.exports ? module.exports = b() : a.Chartist = b() }(this, function () { + var a = { version: "0.11.4" }; return function (a, b) { "use strict"; var c = a.window, d = a.document; b.namespaces = { svg: "http://www.w3.org/2000/svg", xmlns: "http://www.w3.org/2000/xmlns/", xhtml: "http://www.w3.org/1999/xhtml", xlink: "http://www.w3.org/1999/xlink", ct: "http://gionkunz.github.com/chartist-js/ct" }, b.noop = function (a) { return a }, b.alphaNumerate = function (a) { return String.fromCharCode(97 + a % 26) }, b.extend = function (a) { var c, d, e; for (a = a || {}, c = 1; c < arguments.length; c++) { d = arguments[c]; for (var f in d) e = d[f], "object" != typeof e || null === e || e instanceof Array ? a[f] = e : a[f] = b.extend(a[f], e) } return a }, b.replaceAll = function (a, b, c) { return a.replace(new RegExp(b, "g"), c) }, b.ensureUnit = function (a, b) { return "number" == typeof a && (a += b), a }, b.quantity = function (a) { if ("string" == typeof a) { var b = /^(\d+)\s*(.*)$/g.exec(a); return { value: +b[1], unit: b[2] || void 0 } } return { value: a } }, b.querySelector = function (a) { return a instanceof Node ? a : d.querySelector(a) }, b.times = function (a) { return Array.apply(null, new Array(a)) }, b.sum = function (a, b) { return a + (b ? b : 0) }, b.mapMultiply = function (a) { return function (b) { return b * a } }, b.mapAdd = function (a) { return function (b) { return b + a } }, b.serialMap = function (a, c) { var d = [], e = Math.max.apply(null, a.map(function (a) { return a.length })); return b.times(e).forEach(function (b, e) { var f = a.map(function (a) { return a[e] }); d[e] = c.apply(null, f) }), d }, b.roundWithPrecision = function (a, c) { var d = Math.pow(10, c || b.precision); return Math.round(a * d) / d }, b.precision = 8, b.escapingMap = { "&": "&", "<": "<", ">": ">", '"': """, "'": "'" }, b.serialize = function (a) { return null === a || void 0 === a ? a : ("number" == typeof a ? a = "" + a : "object" == typeof a && (a = JSON.stringify({ data: a })), Object.keys(b.escapingMap).reduce(function (a, c) { return b.replaceAll(a, c, b.escapingMap[c]) }, a)) }, b.deserialize = function (a) { if ("string" != typeof a) return a; a = Object.keys(b.escapingMap).reduce(function (a, c) { return b.replaceAll(a, b.escapingMap[c], c) }, a); try { a = JSON.parse(a), a = void 0 !== a.data ? a.data : a } catch (c) { } return a }, b.createSvg = function (a, c, d, e) { var f; return c = c || "100%", d = d || "100%", Array.prototype.slice.call(a.querySelectorAll("svg")).filter(function (a) { return a.getAttributeNS(b.namespaces.xmlns, "ct") }).forEach(function (b) { a.removeChild(b) }), f = new b.Svg("svg").attr({ width: c, height: d }).addClass(e), f._node.style.width = c, f._node.style.height = d, a.appendChild(f._node), f }, b.normalizeData = function (a, c, d) { var e, f = { raw: a, normalized: {} }; return f.normalized.series = b.getDataArray({ series: a.series || [] }, c, d), e = f.normalized.series.every(function (a) { return a instanceof Array }) ? Math.max.apply(null, f.normalized.series.map(function (a) { return a.length })) : f.normalized.series.length, f.normalized.labels = (a.labels || []).slice(), Array.prototype.push.apply(f.normalized.labels, b.times(Math.max(0, e - f.normalized.labels.length)).map(function () { return "" })), c && b.reverseData(f.normalized), f }, b.safeHasProperty = function (a, b) { return null !== a && "object" == typeof a && a.hasOwnProperty(b) }, b.isDataHoleValue = function (a) { return null === a || void 0 === a || "number" == typeof a && isNaN(a) }, b.reverseData = function (a) { a.labels.reverse(), a.series.reverse(); for (var b = 0; b < a.series.length; b++)"object" == typeof a.series[b] && void 0 !== a.series[b].data ? a.series[b].data.reverse() : a.series[b] instanceof Array && a.series[b].reverse() }, b.getDataArray = function (a, c, d) { function e(a) { if (b.safeHasProperty(a, "value")) return e(a.value); if (b.safeHasProperty(a, "data")) return e(a.data); if (a instanceof Array) return a.map(e); if (!b.isDataHoleValue(a)) { if (d) { var c = {}; return "string" == typeof d ? c[d] = b.getNumberOrUndefined(a) : c.y = b.getNumberOrUndefined(a), c.x = a.hasOwnProperty("x") ? b.getNumberOrUndefined(a.x) : c.x, c.y = a.hasOwnProperty("y") ? b.getNumberOrUndefined(a.y) : c.y, c } return b.getNumberOrUndefined(a) } } return a.series.map(e) }, b.normalizePadding = function (a, b) { return b = b || 0, "number" == typeof a ? { top: a, right: a, bottom: a, left: a } : { top: "number" == typeof a.top ? a.top : b, right: "number" == typeof a.right ? a.right : b, bottom: "number" == typeof a.bottom ? a.bottom : b, left: "number" == typeof a.left ? a.left : b } }, b.getMetaData = function (a, b) { var c = a.data ? a.data[b] : a[b]; return c ? c.meta : void 0 }, b.orderOfMagnitude = function (a) { return Math.floor(Math.log(Math.abs(a)) / Math.LN10) }, b.projectLength = function (a, b, c) { return b / c.range * a }, b.getAvailableHeight = function (a, c) { return Math.max((b.quantity(c.height).value || a.height()) - (c.chartPadding.top + c.chartPadding.bottom) - c.axisX.offset, 0) }, b.getHighLow = function (a, c, d) { function e(a) { if (void 0 !== a) if (a instanceof Array) for (var b = 0; b < a.length; b++)e(a[b]); else { var c = d ? +a[d] : +a; g && c > f.high && (f.high = c), h && c < f.low && (f.low = c) } } c = b.extend({}, c, d ? c["axis" + d.toUpperCase()] : {}); var f = { high: void 0 === c.high ? -Number.MAX_VALUE : +c.high, low: void 0 === c.low ? Number.MAX_VALUE : +c.low }, g = void 0 === c.high, h = void 0 === c.low; return (g || h) && e(a), (c.referenceValue || 0 === c.referenceValue) && (f.high = Math.max(c.referenceValue, f.high), f.low = Math.min(c.referenceValue, f.low)), f.high <= f.low && (0 === f.low ? f.high = 1 : f.low < 0 ? f.high = 0 : f.high > 0 ? f.low = 0 : (f.high = 1, f.low = 0)), f }, b.isNumeric = function (a) { return null !== a && isFinite(a) }, b.isFalseyButZero = function (a) { return !a && 0 !== a }, b.getNumberOrUndefined = function (a) { return b.isNumeric(a) ? +a : void 0 }, b.isMultiValue = function (a) { return "object" == typeof a && ("x" in a || "y" in a) }, b.getMultiValue = function (a, c) { return b.isMultiValue(a) ? b.getNumberOrUndefined(a[c || "y"]) : b.getNumberOrUndefined(a) }, b.rho = function (a) { function b(a, c) { return a % c === 0 ? c : b(c, a % c) } function c(a) { return a * a + 1 } if (1 === a) return a; var d, e = 2, f = 2; if (a % 2 === 0) return 2; do e = c(e) % a, f = c(c(f)) % a, d = b(Math.abs(e - f), a); while (1 === d); return d }, b.getBounds = function (a, c, d, e) { function f(a, b) { return a === (a += b) && (a *= 1 + (b > 0 ? o : -o)), a } var g, h, i, j = 0, k = { high: c.high, low: c.low }; k.valueRange = k.high - k.low, k.oom = b.orderOfMagnitude(k.valueRange), k.step = Math.pow(10, k.oom), k.min = Math.floor(k.low / k.step) * k.step, k.max = Math.ceil(k.high / k.step) * k.step, k.range = k.max - k.min, k.numberOfSteps = Math.round(k.range / k.step); var l = b.projectLength(a, k.step, k), m = l < d, n = e ? b.rho(k.range) : 0; if (e && b.projectLength(a, 1, k) >= d) k.step = 1; else if (e && n < k.step && b.projectLength(a, n, k) >= d) k.step = n; else for (; ;) { if (m && b.projectLength(a, k.step, k) <= d) k.step *= 2; else { if (m || !(b.projectLength(a, k.step / 2, k) >= d)) break; if (k.step /= 2, e && k.step % 1 !== 0) { k.step *= 2; break } } if (j++ > 1e3) throw new Error("Exceeded maximum number of iterations while optimizing scale step!") } var o = 2.221e-16; for (k.step = Math.max(k.step, o), h = k.min, i = k.max; h + k.step <= k.low;)h = f(h, k.step); for (; i - k.step >= k.high;)i = f(i, -k.step); k.min = h, k.max = i, k.range = k.max - k.min; var p = []; for (g = k.min; g <= k.max; g = f(g, k.step)) { var q = b.roundWithPrecision(g); q !== p[p.length - 1] && p.push(q) } return k.values = p, k }, b.polarToCartesian = function (a, b, c, d) { var e = (d - 90) * Math.PI / 180; return { x: a + c * Math.cos(e), y: b + c * Math.sin(e) } }, b.createChartRect = function (a, c, d) { var e = !(!c.axisX && !c.axisY), f = e ? c.axisY.offset : 0, g = e ? c.axisX.offset : 0, h = a.width() || b.quantity(c.width).value || 0, i = a.height() || b.quantity(c.height).value || 0, j = b.normalizePadding(c.chartPadding, d); h = Math.max(h, f + j.left + j.right), i = Math.max(i, g + j.top + j.bottom); var k = { padding: j, width: function () { return this.x2 - this.x1 }, height: function () { return this.y1 - this.y2 } }; return e ? ("start" === c.axisX.position ? (k.y2 = j.top + g, k.y1 = Math.max(i - j.bottom, k.y2 + 1)) : (k.y2 = j.top, k.y1 = Math.max(i - j.bottom - g, k.y2 + 1)), "start" === c.axisY.position ? (k.x1 = j.left + f, k.x2 = Math.max(h - j.right, k.x1 + 1)) : (k.x1 = j.left, k.x2 = Math.max(h - j.right - f, k.x1 + 1))) : (k.x1 = j.left, k.x2 = Math.max(h - j.right, k.x1 + 1), k.y2 = j.top, k.y1 = Math.max(i - j.bottom, k.y2 + 1)), k }, b.createGrid = function (a, c, d, e, f, g, h, i) { var j = {}; j[d.units.pos + "1"] = a, j[d.units.pos + "2"] = a, j[d.counterUnits.pos + "1"] = e, j[d.counterUnits.pos + "2"] = e + f; var k = g.elem("line", j, h.join(" ")); i.emit("draw", b.extend({ type: "grid", axis: d, index: c, group: g, element: k }, j)) }, b.createGridBackground = function (a, b, c, d) { var e = a.elem("rect", { x: b.x1, y: b.y2, width: b.width(), height: b.height() }, c, !0); d.emit("draw", { type: "gridBackground", group: a, element: e }) }, b.createLabel = function (a, c, e, f, g, h, i, j, k, l, m) { var n, o = {}; if (o[g.units.pos] = a + i[g.units.pos], o[g.counterUnits.pos] = i[g.counterUnits.pos], o[g.units.len] = c, o[g.counterUnits.len] = Math.max(0, h - 10), l) { var p = d.createElement("span"); p.className = k.join(" "), p.setAttribute("xmlns", b.namespaces.xhtml), p.innerText = f[e], p.style[g.units.len] = Math.round(o[g.units.len]) + "px", p.style[g.counterUnits.len] = Math.round(o[g.counterUnits.len]) + "px", n = j.foreignObject(p, b.extend({ style: "overflow: visible;" }, o)) } else n = j.elem("text", o, k.join(" ")).text(f[e]); m.emit("draw", b.extend({ type: "label", axis: g, index: e, group: j, element: n, text: f[e] }, o)) }, b.getSeriesOption = function (a, b, c) { if (a.name && b.series && b.series[a.name]) { var d = b.series[a.name]; return d.hasOwnProperty(c) ? d[c] : b[c] } return b[c] }, b.optionsProvider = function (a, d, e) { function f(a) { var f = h; if (h = b.extend({}, j), d) for (i = 0; i < d.length; i++) { var g = c.matchMedia(d[i][0]); g.matches && (h = b.extend(h, d[i][1])) } e && a && e.emit("optionsChanged", { previousOptions: f, currentOptions: h }) } function g() { k.forEach(function (a) { a.removeListener(f) }) } var h, i, j = b.extend({}, a), k = []; if (!c.matchMedia) throw "window.matchMedia not found! Make sure you're using a polyfill."; if (d) for (i = 0; i < d.length; i++) { var l = c.matchMedia(d[i][0]); l.addListener(f), k.push(l) } return f(), { removeMediaQueryListeners: g, getCurrentOptions: function () { return b.extend({}, h) } } }, b.splitIntoSegments = function (a, c, d) { var e = { increasingX: !1, fillHoles: !1 }; d = b.extend({}, e, d); for (var f = [], g = !0, h = 0; h < a.length; h += 2)void 0 === b.getMultiValue(c[h / 2].value) ? d.fillHoles || (g = !0) : (d.increasingX && h >= 2 && a[h] <= a[h - 2] && (g = !0), g && (f.push({ pathCoordinates: [], valueData: [] }), g = !1), f[f.length - 1].pathCoordinates.push(a[h], a[h + 1]), f[f.length - 1].valueData.push(c[h / 2])); return f } }(this || global, a), function (a, b) { "use strict"; b.Interpolation = {}, b.Interpolation.none = function (a) { var c = { fillHoles: !1 }; return a = b.extend({}, c, a), function (c, d) { for (var e = new b.Svg.Path, f = !0, g = 0; g < c.length; g += 2) { var h = c[g], i = c[g + 1], j = d[g / 2]; void 0 !== b.getMultiValue(j.value) ? (f ? e.move(h, i, !1, j) : e.line(h, i, !1, j), f = !1) : a.fillHoles || (f = !0) } return e } }, b.Interpolation.simple = function (a) { var c = { divisor: 2, fillHoles: !1 }; a = b.extend({}, c, a); var d = 1 / Math.max(1, a.divisor); return function (c, e) { for (var f, g, h, i = new b.Svg.Path, j = 0; j < c.length; j += 2) { var k = c[j], l = c[j + 1], m = (k - f) * d, n = e[j / 2]; void 0 !== n.value ? (void 0 === h ? i.move(k, l, !1, n) : i.curve(f + m, g, k - m, l, k, l, !1, n), f = k, g = l, h = n) : a.fillHoles || (f = k = h = void 0) } return i } }, b.Interpolation.cardinal = function (a) { var c = { tension: 1, fillHoles: !1 }; a = b.extend({}, c, a); var d = Math.min(1, Math.max(0, a.tension)), e = 1 - d; return function f(c, g) { var h = b.splitIntoSegments(c, g, { fillHoles: a.fillHoles }); if (h.length) { if (h.length > 1) { var i = []; return h.forEach(function (a) { i.push(f(a.pathCoordinates, a.valueData)) }), b.Svg.Path.join(i) } if (c = h[0].pathCoordinates, g = h[0].valueData, c.length <= 4) return b.Interpolation.none()(c, g); for (var j, k = (new b.Svg.Path).move(c[0], c[1], !1, g[0]), l = 0, m = c.length; m - 2 * !j > l; l += 2) { var n = [{ x: +c[l - 2], y: +c[l - 1] }, { x: +c[l], y: +c[l + 1] }, { x: +c[l + 2], y: +c[l + 3] }, { x: +c[l + 4], y: +c[l + 5] }]; j ? l ? m - 4 === l ? n[3] = { x: +c[0], y: +c[1] } : m - 2 === l && (n[2] = { x: +c[0], y: +c[1] }, n[3] = { x: +c[2], y: +c[3] }) : n[0] = { x: +c[m - 2], y: +c[m - 1] } : m - 4 === l ? n[3] = n[2] : l || (n[0] = { x: +c[l], y: +c[l + 1] }), k.curve(d * (-n[0].x + 6 * n[1].x + n[2].x) / 6 + e * n[2].x, d * (-n[0].y + 6 * n[1].y + n[2].y) / 6 + e * n[2].y, d * (n[1].x + 6 * n[2].x - n[3].x) / 6 + e * n[2].x, d * (n[1].y + 6 * n[2].y - n[3].y) / 6 + e * n[2].y, n[2].x, n[2].y, !1, g[(l + 2) / 2]) } return k } return b.Interpolation.none()([]) } }, b.Interpolation.monotoneCubic = function (a) { var c = { fillHoles: !1 }; return a = b.extend({}, c, a), function d(c, e) { var f = b.splitIntoSegments(c, e, { fillHoles: a.fillHoles, increasingX: !0 }); if (f.length) { if (f.length > 1) { var g = []; return f.forEach(function (a) { g.push(d(a.pathCoordinates, a.valueData)) }), b.Svg.Path.join(g) } if (c = f[0].pathCoordinates, e = f[0].valueData, c.length <= 4) return b.Interpolation.none()(c, e); var h, i, j = [], k = [], l = c.length / 2, m = [], n = [], o = [], p = []; for (h = 0; h < l; h++)j[h] = c[2 * h], k[h] = c[2 * h + 1]; for (h = 0; h < l - 1; h++)o[h] = k[h + 1] - k[h], p[h] = j[h + 1] - j[h], n[h] = o[h] / p[h]; for (m[0] = n[0], m[l - 1] = n[l - 2], h = 1; h < l - 1; h++)0 === n[h] || 0 === n[h - 1] || n[h - 1] > 0 != n[h] > 0 ? m[h] = 0 : (m[h] = 3 * (p[h - 1] + p[h]) / ((2 * p[h] + p[h - 1]) / n[h - 1] + (p[h] + 2 * p[h - 1]) / n[h]), isFinite(m[h]) || (m[h] = 0)); for (i = (new b.Svg.Path).move(j[0], k[0], !1, e[0]), h = 0; h < l - 1; h++)i.curve(j[h] + p[h] / 3, k[h] + m[h] * p[h] / 3, j[h + 1] - p[h] / 3, k[h + 1] - m[h + 1] * p[h] / 3, j[h + 1], k[h + 1], !1, e[h + 1]); return i } return b.Interpolation.none()([]) } }, b.Interpolation.step = function (a) { var c = { postpone: !0, fillHoles: !1 }; return a = b.extend({}, c, a), function (c, d) { for (var e, f, g, h = new b.Svg.Path, i = 0; i < c.length; i += 2) { var j = c[i], k = c[i + 1], l = d[i / 2]; void 0 !== l.value ? (void 0 === g ? h.move(j, k, !1, l) : (a.postpone ? h.line(j, f, !1, g) : h.line(e, k, !1, l), h.line(j, k, !1, l)), e = j, f = k, g = l) : a.fillHoles || (e = f = g = void 0) } return h } } }(this || global, a), function (a, b) { "use strict"; b.EventEmitter = function () { function a(a, b) { d[a] = d[a] || [], d[a].push(b) } function b(a, b) { d[a] && (b ? (d[a].splice(d[a].indexOf(b), 1), 0 === d[a].length && delete d[a]) : delete d[a]) } function c(a, b) { d[a] && d[a].forEach(function (a) { a(b) }), d["*"] && d["*"].forEach(function (c) { c(a, b) }) } var d = []; return { addEventHandler: a, removeEventHandler: b, emit: c } } }(this || global, a), function (a, b) { "use strict"; function c(a) { var b = []; if (a.length) for (var c = 0; c < a.length; c++)b.push(a[c]); return b } function d(a, c) { var d = c || this.prototype || b.Class, e = Object.create(d); b.Class.cloneDefinitions(e, a); var f = function () { var a, c = e.constructor || function () { }; return a = this === b ? Object.create(e) : this, c.apply(a, Array.prototype.slice.call(arguments, 0)), a }; return f.prototype = e, f["super"] = d, f.extend = this.extend, f } function e() { var a = c(arguments), b = a[0]; return a.splice(1, a.length - 1).forEach(function (a) { Object.getOwnPropertyNames(a).forEach(function (c) { delete b[c], Object.defineProperty(b, c, Object.getOwnPropertyDescriptor(a, c)) }) }), b } b.Class = { extend: d, cloneDefinitions: e } }(this || global, a), function (a, b) { "use strict"; function c(a, c, d) { return a && (this.data = a || {}, this.data.labels = this.data.labels || [], this.data.series = this.data.series || [], this.eventEmitter.emit("data", { type: "update", data: this.data })), c && (this.options = b.extend({}, d ? this.options : this.defaultOptions, c), this.initializeTimeoutId || (this.optionsProvider.removeMediaQueryListeners(), this.optionsProvider = b.optionsProvider(this.options, this.responsiveOptions, this.eventEmitter))), this.initializeTimeoutId || this.createChart(this.optionsProvider.getCurrentOptions()), this } function d() { return this.initializeTimeoutId ? i.clearTimeout(this.initializeTimeoutId) : (i.removeEventListener("resize", this.resizeListener), this.optionsProvider.removeMediaQueryListeners()), this } function e(a, b) { return this.eventEmitter.addEventHandler(a, b), this } function f(a, b) { return this.eventEmitter.removeEventHandler(a, b), this } function g() { i.addEventListener("resize", this.resizeListener), this.optionsProvider = b.optionsProvider(this.options, this.responsiveOptions, this.eventEmitter), this.eventEmitter.addEventHandler("optionsChanged", function () { this.update() }.bind(this)), this.options.plugins && this.options.plugins.forEach(function (a) { a instanceof Array ? a[0](this, a[1]) : a(this) }.bind(this)), this.eventEmitter.emit("data", { type: "initial", data: this.data }), this.createChart(this.optionsProvider.getCurrentOptions()), this.initializeTimeoutId = void 0 } function h(a, c, d, e, f) { this.container = b.querySelector(a), this.data = c || {}, this.data.labels = this.data.labels || [], this.data.series = this.data.series || [], this.defaultOptions = d, this.options = e, this.responsiveOptions = f, this.eventEmitter = b.EventEmitter(), this.supportsForeignObject = b.Svg.isSupported("Extensibility"), this.supportsAnimations = b.Svg.isSupported("AnimationEventsAttribute"), this.resizeListener = function () { this.update() }.bind(this), this.container && (this.container.__chartist__ && this.container.__chartist__.detach(), this.container.__chartist__ = this), this.initializeTimeoutId = setTimeout(g.bind(this), 0) } var i = a.window; b.Base = b.Class.extend({ constructor: h, optionsProvider: void 0, container: void 0, svg: void 0, eventEmitter: void 0, createChart: function () { throw new Error("Base chart type can't be instantiated!") }, update: c, detach: d, on: e, off: f, version: b.version, supportsForeignObject: !1 }) }(this || global, a), function (a, b) { "use strict"; function c(a, c, d, e, f) { a instanceof Element ? this._node = a : (this._node = y.createElementNS(b.namespaces.svg, a), "svg" === a && this.attr({ "xmlns:ct": b.namespaces.ct })), c && this.attr(c), d && this.addClass(d), e && (f && e._node.firstChild ? e._node.insertBefore(this._node, e._node.firstChild) : e._node.appendChild(this._node)) } function d(a, c) { return "string" == typeof a ? c ? this._node.getAttributeNS(c, a) : this._node.getAttribute(a) : (Object.keys(a).forEach(function (c) { if (void 0 !== a[c]) if (c.indexOf(":") !== -1) { var d = c.split(":"); this._node.setAttributeNS(b.namespaces[d[0]], c, a[c]) } else this._node.setAttribute(c, a[c]) }.bind(this)), this) } function e(a, c, d, e) { return new b.Svg(a, c, d, this, e) } function f() { return this._node.parentNode instanceof SVGElement ? new b.Svg(this._node.parentNode) : null } function g() { for (var a = this._node; "svg" !== a.nodeName;)a = a.parentNode; return new b.Svg(a) } function h(a) { var c = this._node.querySelector(a); return c ? new b.Svg(c) : null } function i(a) { var c = this._node.querySelectorAll(a); return c.length ? new b.Svg.List(c) : null } function j() { return this._node } function k(a, c, d, e) { if ("string" == typeof a) { var f = y.createElement("div"); f.innerHTML = a, a = f.firstChild } a.setAttribute("xmlns", b.namespaces.xmlns); var g = this.elem("foreignObject", c, d, e); return g._node.appendChild(a), g } function l(a) { return this._node.appendChild(y.createTextNode(a)), this } function m() { for (; this._node.firstChild;)this._node.removeChild(this._node.firstChild); return this } function n() { return this._node.parentNode.removeChild(this._node), this.parent() } function o(a) { return this._node.parentNode.replaceChild(a._node, this._node), a } function p(a, b) { return b && this._node.firstChild ? this._node.insertBefore(a._node, this._node.firstChild) : this._node.appendChild(a._node), this } function q() { return this._node.getAttribute("class") ? this._node.getAttribute("class").trim().split(/\s+/) : [] } function r(a) { return this._node.setAttribute("class", this.classes(this._node).concat(a.trim().split(/\s+/)).filter(function (a, b, c) { return c.indexOf(a) === b }).join(" ")), this } function s(a) { var b = a.trim().split(/\s+/); return this._node.setAttribute("class", this.classes(this._node).filter(function (a) { return b.indexOf(a) === -1 }).join(" ")), this } function t() { return this._node.setAttribute("class", ""), this } function u() { return this._node.getBoundingClientRect().height } function v() { return this._node.getBoundingClientRect().width } function w(a, c, d) { return void 0 === c && (c = !0), Object.keys(a).forEach(function (e) { function f(a, c) { var f, g, h, i = {}; a.easing && (h = a.easing instanceof Array ? a.easing : b.Svg.Easing[a.easing], delete a.easing), a.begin = b.ensureUnit(a.begin, "ms"), a.dur = b.ensureUnit(a.dur, "ms"), h && (a.calcMode = "spline", a.keySplines = h.join(" "), a.keyTimes = "0;1"), c && (a.fill = "freeze", i[e] = a.from, this.attr(i), g = b.quantity(a.begin || 0).value, a.begin = "indefinite"), f = this.elem("animate", b.extend({ attributeName: e }, a)), c && setTimeout(function () { try { f._node.beginElement() } catch (b) { i[e] = a.to, this.attr(i), f.remove() } }.bind(this), g), d && f._node.addEventListener("beginEvent", function () { d.emit("animationBegin", { element: this, animate: f._node, params: a }) }.bind(this)), f._node.addEventListener("endEvent", function () { d && d.emit("animationEnd", { element: this, animate: f._node, params: a }), c && (i[e] = a.to, this.attr(i), f.remove()) }.bind(this)) } a[e] instanceof Array ? a[e].forEach(function (a) { f.bind(this)(a, !1) }.bind(this)) : f.bind(this)(a[e], c) }.bind(this)), this } function x(a) { var c = this; this.svgElements = []; for (var d = 0; d < a.length; d++)this.svgElements.push(new b.Svg(a[d])); Object.keys(b.Svg.prototype).filter(function (a) { return ["constructor", "parent", "querySelector", "querySelectorAll", "replace", "append", "classes", "height", "width"].indexOf(a) === -1 }).forEach(function (a) { c[a] = function () { var d = Array.prototype.slice.call(arguments, 0); return c.svgElements.forEach(function (c) { b.Svg.prototype[a].apply(c, d) }), c } }) } var y = a.document; b.Svg = b.Class.extend({ constructor: c, attr: d, elem: e, parent: f, root: g, querySelector: h, querySelectorAll: i, getNode: j, foreignObject: k, text: l, empty: m, remove: n, replace: o, append: p, classes: q, addClass: r, removeClass: s, removeAllClasses: t, height: u, width: v, animate: w }), b.Svg.isSupported = function (a) { return y.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#" + a, "1.1") }; var z = { easeInSine: [.47, 0, .745, .715], easeOutSine: [.39, .575, .565, 1], easeInOutSine: [.445, .05, .55, .95], easeInQuad: [.55, .085, .68, .53], easeOutQuad: [.25, .46, .45, .94], easeInOutQuad: [.455, .03, .515, .955], easeInCubic: [.55, .055, .675, .19], easeOutCubic: [.215, .61, .355, 1], easeInOutCubic: [.645, .045, .355, 1], easeInQuart: [.895, .03, .685, .22], easeOutQuart: [.165, .84, .44, 1], easeInOutQuart: [.77, 0, .175, 1], easeInQuint: [.755, .05, .855, .06], easeOutQuint: [.23, 1, .32, 1], easeInOutQuint: [.86, 0, .07, 1], easeInExpo: [.95, .05, .795, .035], easeOutExpo: [.19, 1, .22, 1], easeInOutExpo: [1, 0, 0, 1], easeInCirc: [.6, .04, .98, .335], easeOutCirc: [.075, .82, .165, 1], easeInOutCirc: [.785, .135, .15, .86], easeInBack: [.6, -.28, .735, .045], easeOutBack: [.175, .885, .32, 1.275], easeInOutBack: [.68, -.55, .265, 1.55] }; b.Svg.Easing = z, b.Svg.List = b.Class.extend({ constructor: x }) }(this || global, a), function (a, b) { "use strict"; function c(a, c, d, e, f, g) { var h = b.extend({ command: f ? a.toLowerCase() : a.toUpperCase() }, c, g ? { data: g } : {}); d.splice(e, 0, h) } function d(a, b) { a.forEach(function (c, d) { t[c.command.toLowerCase()].forEach(function (e, f) { b(c, e, d, f, a) }) }) } function e(a, c) { this.pathElements = [], this.pos = 0, this.close = a, this.options = b.extend({}, u, c) } function f(a) { return void 0 !== a ? (this.pos = Math.max(0, Math.min(this.pathElements.length, a)), this) : this.pos } function g(a) { return this.pathElements.splice(this.pos, a), this } function h(a, b, d, e) { return c("M", { x: +a, y: +b }, this.pathElements, this.pos++, d, e), this } function i(a, b, d, e) { return c("L", { x: +a, y: +b }, this.pathElements, this.pos++, d, e), this } function j(a, b, d, e, f, g, h, i) { return c("C", { x1: +a, y1: +b, x2: +d, y2: +e, x: +f, y: +g }, this.pathElements, this.pos++, h, i), this } function k(a, b, d, e, f, g, h, i, j) { return c("A", { rx: +a, ry: +b, xAr: +d, lAf: +e, sf: +f, x: +g, y: +h }, this.pathElements, this.pos++, i, j), this } function l(a) { var c = a.replace(/([A-Za-z])([0-9])/g, "$1 $2").replace(/([0-9])([A-Za-z])/g, "$1 $2").split(/[\s,]+/).reduce(function (a, b) { return b.match(/[A-Za-z]/) && a.push([]), a[a.length - 1].push(b), a }, []); "Z" === c[c.length - 1][0].toUpperCase() && c.pop(); var d = c.map(function (a) { var c = a.shift(), d = t[c.toLowerCase()]; return b.extend({ command: c }, d.reduce(function (b, c, d) { return b[c] = +a[d], b }, {})) }), e = [this.pos, 0]; return Array.prototype.push.apply(e, d), Array.prototype.splice.apply(this.pathElements, e), this.pos += d.length, this } function m() { var a = Math.pow(10, this.options.accuracy); return this.pathElements.reduce(function (b, c) { var d = t[c.command.toLowerCase()].map(function (b) { return this.options.accuracy ? Math.round(c[b] * a) / a : c[b] }.bind(this)); return b + c.command + d.join(",") }.bind(this), "") + (this.close ? "Z" : "") } function n(a, b) { return d(this.pathElements, function (c, d) { c[d] *= "x" === d[0] ? a : b }), this } function o(a, b) { return d(this.pathElements, function (c, d) { c[d] += "x" === d[0] ? a : b }), this } function p(a) { return d(this.pathElements, function (b, c, d, e, f) { var g = a(b, c, d, e, f); (g || 0 === g) && (b[c] = g) }), this } function q(a) { var c = new b.Svg.Path(a || this.close); return c.pos = this.pos, c.pathElements = this.pathElements.slice().map(function (a) { return b.extend({}, a) }), c.options = b.extend({}, this.options), c } function r(a) { var c = [new b.Svg.Path]; return this.pathElements.forEach(function (d) { d.command === a.toUpperCase() && 0 !== c[c.length - 1].pathElements.length && c.push(new b.Svg.Path), c[c.length - 1].pathElements.push(d) }), c } function s(a, c, d) { for (var e = new b.Svg.Path(c, d), f = 0; f < a.length; f++)for (var g = a[f], h = 0; h < g.pathElements.length; h++)e.pathElements.push(g.pathElements[h]); return e } var t = { m: ["x", "y"], l: ["x", "y"], c: ["x1", "y1", "x2", "y2", "x", "y"], a: ["rx", "ry", "xAr", "lAf", "sf", "x", "y"] }, u = { accuracy: 3 }; b.Svg.Path = b.Class.extend({ constructor: e, position: f, remove: g, move: h, line: i, curve: j, arc: k, scale: n, translate: o, transform: p, parse: l, stringify: m, clone: q, splitByCommand: r }), b.Svg.Path.elementDescriptions = t, b.Svg.Path.join = s }(this || global, a), function (a, b) { "use strict"; function c(a, b, c, d) { this.units = a, this.counterUnits = a === e.x ? e.y : e.x, this.chartRect = b, this.axisLength = b[a.rectEnd] - b[a.rectStart], this.gridOffset = b[a.rectOffset], this.ticks = c, this.options = d } function d(a, c, d, e, f) { var g = e["axis" + this.units.pos.toUpperCase()], h = this.ticks.map(this.projectValue.bind(this)), i = this.ticks.map(g.labelInterpolationFnc); h.forEach(function (j, k) { var l, m = { x: 0, y: 0 }; l = h[k + 1] ? h[k + 1] - j : Math.max(this.axisLength - j, 30), b.isFalseyButZero(i[k]) && "" !== i[k] || ("x" === this.units.pos ? (j = this.chartRect.x1 + j, m.x = e.axisX.labelOffset.x, "start" === e.axisX.position ? m.y = this.chartRect.padding.top + e.axisX.labelOffset.y + (d ? 5 : 20) : m.y = this.chartRect.y1 + e.axisX.labelOffset.y + (d ? 5 : 20)) : (j = this.chartRect.y1 - j, m.y = e.axisY.labelOffset.y - (d ? l : 0), "start" === e.axisY.position ? m.x = d ? this.chartRect.padding.left + e.axisY.labelOffset.x : this.chartRect.x1 - 10 : m.x = this.chartRect.x2 + e.axisY.labelOffset.x + 10), g.showGrid && b.createGrid(j, k, this, this.gridOffset, this.chartRect[this.counterUnits.len](), a, [e.classNames.grid, e.classNames[this.units.dir]], f), g.showLabel && b.createLabel(j, l, k, i, this, g.offset, m, c, [e.classNames.label, e.classNames[this.units.dir], "start" === g.position ? e.classNames[g.position] : e.classNames.end], d, f)) }.bind(this)) } var e = (a.window, a.document, { x: { pos: "x", len: "width", dir: "horizontal", rectStart: "x1", rectEnd: "x2", rectOffset: "y2" }, y: { pos: "y", len: "height", dir: "vertical", rectStart: "y2", rectEnd: "y1", rectOffset: "x1" } }); b.Axis = b.Class.extend({ constructor: c, createGridAndLabels: d, projectValue: function (a, b, c) { throw new Error("Base axis can't be instantiated!") } }), b.Axis.units = e }(this || global, a), function (a, b) { "use strict"; function c(a, c, d, e) { var f = e.highLow || b.getHighLow(c, e, a.pos); this.bounds = b.getBounds(d[a.rectEnd] - d[a.rectStart], f, e.scaleMinSpace || 20, e.onlyInteger), this.range = { min: this.bounds.min, max: this.bounds.max }, b.AutoScaleAxis["super"].constructor.call(this, a, d, this.bounds.values, e) } function d(a) { return this.axisLength * (+b.getMultiValue(a, this.units.pos) - this.bounds.min) / this.bounds.range } a.window, a.document; b.AutoScaleAxis = b.Axis.extend({ constructor: c, projectValue: d }) }(this || global, a), function (a, b) { "use strict"; function c(a, c, d, e) { var f = e.highLow || b.getHighLow(c, e, a.pos); this.divisor = e.divisor || 1, this.ticks = e.ticks || b.times(this.divisor).map(function (a, b) { return f.low + (f.high - f.low) / this.divisor * b }.bind(this)), this.ticks.sort(function (a, b) { return a - b }), this.range = { min: f.low, max: f.high }, b.FixedScaleAxis["super"].constructor.call(this, a, d, this.ticks, e), this.stepLength = this.axisLength / this.divisor } function d(a) { return this.axisLength * (+b.getMultiValue(a, this.units.pos) - this.range.min) / (this.range.max - this.range.min) } a.window, a.document; b.FixedScaleAxis = b.Axis.extend({ constructor: c, projectValue: d }) }(this || global, a), function (a, b) { "use strict"; function c(a, c, d, e) { b.StepAxis["super"].constructor.call(this, a, d, e.ticks, e); var f = Math.max(1, e.ticks.length - (e.stretch ? 1 : 0)); this.stepLength = this.axisLength / f } function d(a, b) { return this.stepLength * b } a.window, a.document; b.StepAxis = b.Axis.extend({ constructor: c, projectValue: d }) }(this || global, a), function (a, b) { "use strict"; function c(a) { var c = b.normalizeData(this.data, a.reverseData, !0); this.svg = b.createSvg(this.container, a.width, a.height, a.classNames.chart); var d, f, g = this.svg.elem("g").addClass(a.classNames.gridGroup), h = this.svg.elem("g"), i = this.svg.elem("g").addClass(a.classNames.labelGroup), j = b.createChartRect(this.svg, a, e.padding); d = void 0 === a.axisX.type ? new b.StepAxis(b.Axis.units.x, c.normalized.series, j, b.extend({}, a.axisX, { ticks: c.normalized.labels, stretch: a.fullWidth })) : a.axisX.type.call(b, b.Axis.units.x, c.normalized.series, j, a.axisX), f = void 0 === a.axisY.type ? new b.AutoScaleAxis(b.Axis.units.y, c.normalized.series, j, b.extend({}, a.axisY, { high: b.isNumeric(a.high) ? a.high : a.axisY.high, low: b.isNumeric(a.low) ? a.low : a.axisY.low })) : a.axisY.type.call(b, b.Axis.units.y, c.normalized.series, j, a.axisY), d.createGridAndLabels(g, i, this.supportsForeignObject, a, this.eventEmitter), f.createGridAndLabels(g, i, this.supportsForeignObject, a, this.eventEmitter), a.showGridBackground && b.createGridBackground(g, j, a.classNames.gridBackground, this.eventEmitter), c.raw.series.forEach(function (e, g) { var i = h.elem("g"); i.attr({ "ct:series-name": e.name, "ct:meta": b.serialize(e.meta) }), i.addClass([a.classNames.series, e.className || a.classNames.series + "-" + b.alphaNumerate(g)].join(" ")); var k = [], l = []; c.normalized.series[g].forEach(function (a, h) { var i = { x: j.x1 + d.projectValue(a, h, c.normalized.series[g]), y: j.y1 - f.projectValue(a, h, c.normalized.series[g]) }; k.push(i.x, i.y), l.push({ value: a, valueIndex: h, meta: b.getMetaData(e, h) }) }.bind(this)); var m = { lineSmooth: b.getSeriesOption(e, a, "lineSmooth"), showPoint: b.getSeriesOption(e, a, "showPoint"), showLine: b.getSeriesOption(e, a, "showLine"), showArea: b.getSeriesOption(e, a, "showArea"), areaBase: b.getSeriesOption(e, a, "areaBase") }, n = "function" == typeof m.lineSmooth ? m.lineSmooth : m.lineSmooth ? b.Interpolation.monotoneCubic() : b.Interpolation.none(), o = n(k, l); if (m.showPoint && o.pathElements.forEach(function (c) { var h = i.elem("line", { x1: c.x, y1: c.y, x2: c.x + .01, y2: c.y }, a.classNames.point).attr({ "ct:value": [c.data.value.x, c.data.value.y].filter(b.isNumeric).join(","), "ct:meta": b.serialize(c.data.meta) }); this.eventEmitter.emit("draw", { type: "point", value: c.data.value, index: c.data.valueIndex, meta: c.data.meta, series: e, seriesIndex: g, axisX: d, axisY: f, group: i, element: h, x: c.x, y: c.y }) }.bind(this)), m.showLine) { var p = i.elem("path", { d: o.stringify() }, a.classNames.line, !0); this.eventEmitter.emit("draw", { type: "line", values: c.normalized.series[g], path: o.clone(), chartRect: j, index: g, series: e, seriesIndex: g, seriesMeta: e.meta, axisX: d, axisY: f, group: i, element: p }) } if (m.showArea && f.range) { var q = Math.max(Math.min(m.areaBase, f.range.max), f.range.min), r = j.y1 - f.projectValue(q); o.splitByCommand("M").filter(function (a) { return a.pathElements.length > 1 }).map(function (a) { var b = a.pathElements[0], c = a.pathElements[a.pathElements.length - 1]; return a.clone(!0).position(0).remove(1).move(b.x, r).line(b.x, b.y).position(a.pathElements.length + 1).line(c.x, r) }).forEach(function (b) { var h = i.elem("path", { d: b.stringify() }, a.classNames.area, !0); this.eventEmitter.emit("draw", { type: "area", values: c.normalized.series[g], path: b.clone(), series: e, seriesIndex: g, axisX: d, axisY: f, chartRect: j, index: g, group: i, element: h }) }.bind(this)) } }.bind(this)), this.eventEmitter.emit("created", { bounds: f.bounds, chartRect: j, axisX: d, axisY: f, svg: this.svg, options: a }) } function d(a, c, d, f) { b.Line["super"].constructor.call(this, a, c, e, b.extend({}, e, d), f) } var e = (a.window, a.document, { axisX: { offset: 30, position: "end", labelOffset: { x: 0, y: 0 }, showLabel: !0, showGrid: !0, labelInterpolationFnc: b.noop, type: void 0 }, axisY: { offset: 40, position: "start", labelOffset: { x: 0, y: 0 }, showLabel: !0, showGrid: !0, labelInterpolationFnc: b.noop, type: void 0, scaleMinSpace: 20, onlyInteger: !1 }, width: void 0, height: void 0, showLine: !0, showPoint: !0, showArea: !1, areaBase: 0, lineSmooth: !0, showGridBackground: !1, low: void 0, high: void 0, chartPadding: { top: 15, right: 15, bottom: 5, left: 10 }, fullWidth: !1, reverseData: !1, classNames: { chart: "ct-chart-line", label: "ct-label", labelGroup: "ct-labels", series: "ct-series", line: "ct-line", point: "ct-point", area: "ct-area", grid: "ct-grid", gridGroup: "ct-grids", gridBackground: "ct-grid-background", vertical: "ct-vertical", horizontal: "ct-horizontal", start: "ct-start", end: "ct-end" } }); b.Line = b.Base.extend({ constructor: d, createChart: c }) }(this || global, a), function (a, b) { + "use strict"; function c(a) { + var c, d; a.distributeSeries ? (c = b.normalizeData(this.data, a.reverseData, a.horizontalBars ? "x" : "y"), c.normalized.series = c.normalized.series.map(function (a) { return [a] })) : c = b.normalizeData(this.data, a.reverseData, a.horizontalBars ? "x" : "y"), this.svg = b.createSvg(this.container, a.width, a.height, a.classNames.chart + (a.horizontalBars ? " " + a.classNames.horizontalBars : "")); var f = this.svg.elem("g").addClass(a.classNames.gridGroup), g = this.svg.elem("g"), h = this.svg.elem("g").addClass(a.classNames.labelGroup); + if (a.stackBars && 0 !== c.normalized.series.length) { var i = b.serialMap(c.normalized.series, function () { return Array.prototype.slice.call(arguments).map(function (a) { return a }).reduce(function (a, b) { return { x: a.x + (b && b.x) || 0, y: a.y + (b && b.y) || 0 } }, { x: 0, y: 0 }) }); d = b.getHighLow([i], a, a.horizontalBars ? "x" : "y") } else d = b.getHighLow(c.normalized.series, a, a.horizontalBars ? "x" : "y"); d.high = +a.high || (0 === a.high ? 0 : d.high), d.low = +a.low || (0 === a.low ? 0 : d.low); var j, k, l, m, n, o = b.createChartRect(this.svg, a, e.padding); k = a.distributeSeries && a.stackBars ? c.normalized.labels.slice(0, 1) : c.normalized.labels, a.horizontalBars ? (j = m = void 0 === a.axisX.type ? new b.AutoScaleAxis(b.Axis.units.x, c.normalized.series, o, b.extend({}, a.axisX, { highLow: d, referenceValue: 0 })) : a.axisX.type.call(b, b.Axis.units.x, c.normalized.series, o, b.extend({}, a.axisX, { highLow: d, referenceValue: 0 })), l = n = void 0 === a.axisY.type ? new b.StepAxis(b.Axis.units.y, c.normalized.series, o, { ticks: k }) : a.axisY.type.call(b, b.Axis.units.y, c.normalized.series, o, a.axisY)) : (l = m = void 0 === a.axisX.type ? new b.StepAxis(b.Axis.units.x, c.normalized.series, o, { ticks: k }) : a.axisX.type.call(b, b.Axis.units.x, c.normalized.series, o, a.axisX), j = n = void 0 === a.axisY.type ? new b.AutoScaleAxis(b.Axis.units.y, c.normalized.series, o, b.extend({}, a.axisY, { highLow: d, referenceValue: 0 })) : a.axisY.type.call(b, b.Axis.units.y, c.normalized.series, o, b.extend({}, a.axisY, { highLow: d, referenceValue: 0 }))); var p = a.horizontalBars ? o.x1 + j.projectValue(0) : o.y1 - j.projectValue(0), q = []; l.createGridAndLabels(f, h, this.supportsForeignObject, a, this.eventEmitter), j.createGridAndLabels(f, h, this.supportsForeignObject, a, this.eventEmitter), a.showGridBackground && b.createGridBackground(f, o, a.classNames.gridBackground, this.eventEmitter), c.raw.series.forEach(function (d, e) { var f, h, i = e - (c.raw.series.length - 1) / 2; f = a.distributeSeries && !a.stackBars ? l.axisLength / c.normalized.series.length / 2 : a.distributeSeries && a.stackBars ? l.axisLength / 2 : l.axisLength / c.normalized.series[e].length / 2, h = g.elem("g"), h.attr({ "ct:series-name": d.name, "ct:meta": b.serialize(d.meta) }), h.addClass([a.classNames.series, d.className || a.classNames.series + "-" + b.alphaNumerate(e)].join(" ")), c.normalized.series[e].forEach(function (g, k) { var r, s, t, u; if (u = a.distributeSeries && !a.stackBars ? e : a.distributeSeries && a.stackBars ? 0 : k, r = a.horizontalBars ? { x: o.x1 + j.projectValue(g && g.x ? g.x : 0, k, c.normalized.series[e]), y: o.y1 - l.projectValue(g && g.y ? g.y : 0, u, c.normalized.series[e]) } : { x: o.x1 + l.projectValue(g && g.x ? g.x : 0, u, c.normalized.series[e]), y: o.y1 - j.projectValue(g && g.y ? g.y : 0, k, c.normalized.series[e]) }, l instanceof b.StepAxis && (l.options.stretch || (r[l.units.pos] += f * (a.horizontalBars ? -1 : 1)), r[l.units.pos] += a.stackBars || a.distributeSeries ? 0 : i * a.seriesBarDistance * (a.horizontalBars ? -1 : 1)), t = q[k] || p, q[k] = t - (p - r[l.counterUnits.pos]), void 0 !== g) { var v = {}; v[l.units.pos + "1"] = r[l.units.pos], v[l.units.pos + "2"] = r[l.units.pos], !a.stackBars || "accumulate" !== a.stackMode && a.stackMode ? (v[l.counterUnits.pos + "1"] = p, v[l.counterUnits.pos + "2"] = r[l.counterUnits.pos]) : (v[l.counterUnits.pos + "1"] = t, v[l.counterUnits.pos + "2"] = q[k]), v.x1 = Math.min(Math.max(v.x1, o.x1), o.x2), v.x2 = Math.min(Math.max(v.x2, o.x1), o.x2), v.y1 = Math.min(Math.max(v.y1, o.y2), o.y1), v.y2 = Math.min(Math.max(v.y2, o.y2), o.y1); var w = b.getMetaData(d, k); s = h.elem("line", v, a.classNames.bar).attr({ "ct:value": [g.x, g.y].filter(b.isNumeric).join(","), "ct:meta": b.serialize(w) }), this.eventEmitter.emit("draw", b.extend({ type: "bar", value: g, index: k, meta: w, series: d, seriesIndex: e, axisX: m, axisY: n, chartRect: o, group: h, element: s }, v)) } }.bind(this)) }.bind(this)), this.eventEmitter.emit("created", { bounds: j.bounds, chartRect: o, axisX: m, axisY: n, svg: this.svg, options: a }) + } function d(a, c, d, f) { b.Bar["super"].constructor.call(this, a, c, e, b.extend({}, e, d), f) } var e = (a.window, a.document, { axisX: { offset: 30, position: "end", labelOffset: { x: 0, y: 0 }, showLabel: !0, showGrid: !0, labelInterpolationFnc: b.noop, scaleMinSpace: 30, onlyInteger: !1 }, axisY: { offset: 40, position: "start", labelOffset: { x: 0, y: 0 }, showLabel: !0, showGrid: !0, labelInterpolationFnc: b.noop, scaleMinSpace: 20, onlyInteger: !1 }, width: void 0, height: void 0, high: void 0, low: void 0, referenceValue: 0, chartPadding: { top: 15, right: 15, bottom: 5, left: 10 }, seriesBarDistance: 15, stackBars: !1, stackMode: "accumulate", horizontalBars: !1, distributeSeries: !1, reverseData: !1, showGridBackground: !1, classNames: { chart: "ct-chart-bar", horizontalBars: "ct-horizontal-bars", label: "ct-label", labelGroup: "ct-labels", series: "ct-series", bar: "ct-bar", grid: "ct-grid", gridGroup: "ct-grids", gridBackground: "ct-grid-background", vertical: "ct-vertical", horizontal: "ct-horizontal", start: "ct-start", end: "ct-end" } }); b.Bar = b.Base.extend({ constructor: d, createChart: c }) + }(this || global, a), function (a, b) { "use strict"; function c(a, b, c) { var d = b.x > a.x; return d && "explode" === c || !d && "implode" === c ? "start" : d && "implode" === c || !d && "explode" === c ? "end" : "middle" } function d(a) { var d, e, g, h, i, j = b.normalizeData(this.data), k = [], l = a.startAngle; this.svg = b.createSvg(this.container, a.width, a.height, a.donut ? a.classNames.chartDonut : a.classNames.chartPie), e = b.createChartRect(this.svg, a, f.padding), g = Math.min(e.width() / 2, e.height() / 2), i = a.total || j.normalized.series.reduce(function (a, b) { return a + b }, 0); var m = b.quantity(a.donutWidth); "%" === m.unit && (m.value *= g / 100), g -= a.donut && !a.donutSolid ? m.value / 2 : 0, h = "outside" === a.labelPosition || a.donut && !a.donutSolid ? g : "center" === a.labelPosition ? 0 : a.donutSolid ? g - m.value / 2 : g / 2, h += a.labelOffset; var n = { x: e.x1 + e.width() / 2, y: e.y2 + e.height() / 2 }, o = 1 === j.raw.series.filter(function (a) { return a.hasOwnProperty("value") ? 0 !== a.value : 0 !== a }).length; j.raw.series.forEach(function (a, b) { k[b] = this.svg.elem("g", null, null) }.bind(this)), a.showLabel && (d = this.svg.elem("g", null, null)), j.raw.series.forEach(function (e, f) { if (0 !== j.normalized.series[f] || !a.ignoreEmptyValues) { k[f].attr({ "ct:series-name": e.name }), k[f].addClass([a.classNames.series, e.className || a.classNames.series + "-" + b.alphaNumerate(f)].join(" ")); var p = i > 0 ? l + j.normalized.series[f] / i * 360 : 0, q = Math.max(0, l - (0 === f || o ? 0 : .2)); p - q >= 359.99 && (p = q + 359.99); var r, s, t, u = b.polarToCartesian(n.x, n.y, g, q), v = b.polarToCartesian(n.x, n.y, g, p), w = new b.Svg.Path(!a.donut || a.donutSolid).move(v.x, v.y).arc(g, g, 0, p - l > 180, 0, u.x, u.y); a.donut ? a.donutSolid && (t = g - m.value, r = b.polarToCartesian(n.x, n.y, t, l - (0 === f || o ? 0 : .2)), s = b.polarToCartesian(n.x, n.y, t, p), w.line(r.x, r.y), w.arc(t, t, 0, p - l > 180, 1, s.x, s.y)) : w.line(n.x, n.y); var x = a.classNames.slicePie; a.donut && (x = a.classNames.sliceDonut, a.donutSolid && (x = a.classNames.sliceDonutSolid)); var y = k[f].elem("path", { d: w.stringify() }, x); if (y.attr({ "ct:value": j.normalized.series[f], "ct:meta": b.serialize(e.meta) }), a.donut && !a.donutSolid && (y._node.style.strokeWidth = m.value + "px"), this.eventEmitter.emit("draw", { type: "slice", value: j.normalized.series[f], totalDataSum: i, index: f, meta: e.meta, series: e, group: k[f], element: y, path: w.clone(), center: n, radius: g, startAngle: l, endAngle: p }), a.showLabel) { var z; z = 1 === j.raw.series.length ? { x: n.x, y: n.y } : b.polarToCartesian(n.x, n.y, h, l + (p - l) / 2); var A; A = j.normalized.labels && !b.isFalseyButZero(j.normalized.labels[f]) ? j.normalized.labels[f] : j.normalized.series[f]; var B = a.labelInterpolationFnc(A, f); if (B || 0 === B) { var C = d.elem("text", { dx: z.x, dy: z.y, "text-anchor": c(n, z, a.labelDirection) }, a.classNames.label).text("" + B); this.eventEmitter.emit("draw", { type: "label", index: f, group: d, element: C, text: "" + B, x: z.x, y: z.y }) } } l = p } }.bind(this)), this.eventEmitter.emit("created", { chartRect: e, svg: this.svg, options: a }) } function e(a, c, d, e) { b.Pie["super"].constructor.call(this, a, c, f, b.extend({}, f, d), e) } var f = (a.window, a.document, { width: void 0, height: void 0, chartPadding: 5, classNames: { chartPie: "ct-chart-pie", chartDonut: "ct-chart-donut", series: "ct-series", slicePie: "ct-slice-pie", sliceDonut: "ct-slice-donut", sliceDonutSolid: "ct-slice-donut-solid", label: "ct-label" }, startAngle: 0, total: void 0, donut: !1, donutSolid: !1, donutWidth: 60, showLabel: !0, labelOffset: 0, labelPosition: "inside", labelInterpolationFnc: b.noop, labelDirection: "neutral", reverseData: !1, ignoreEmptyValues: !1 }); b.Pie = b.Base.extend({ constructor: e, createChart: d, determineAnchorPosition: c }) }(this || global, a), a +}); +//# sourceMappingURL=chartist.min.js.map + +var i, l, selectedLine = null; + +/* Navigate to hash without browser history entry */ +var navigateToHash = function () { + if (window.history !== undefined && window.history.replaceState !== undefined) { + window.history.replaceState(undefined, undefined, this.getAttribute("href")); + } +}; + +var hashLinks = document.getElementsByClassName('navigatetohash'); +for (i = 0, l = hashLinks.length; i < l; i++) { + hashLinks[i].addEventListener('click', navigateToHash); +} + +/* Switch test method */ +var switchTestMethod = function () { + var method = this.getAttribute("value"); + console.log("Selected test method: " + method); + + var lines, i, l, coverageData, lineAnalysis, cells; + + lines = document.querySelectorAll('.lineAnalysis tr'); + + for (i = 1, l = lines.length; i < l; i++) { + coverageData = JSON.parse(lines[i].getAttribute('data-coverage').replace(/'/g, '"')); + lineAnalysis = coverageData[method]; + cells = lines[i].querySelectorAll('td'); + if (lineAnalysis === undefined) { + lineAnalysis = coverageData.AllTestMethods; + if (lineAnalysis.LVS !== 'gray') { + cells[0].setAttribute('class', 'red'); + cells[1].innerText = cells[1].textContent = '0'; + cells[4].setAttribute('class', 'lightred'); + } + } else { + cells[0].setAttribute('class', lineAnalysis.LVS); + cells[1].innerText = cells[1].textContent = lineAnalysis.VC; + cells[4].setAttribute('class', 'light' + lineAnalysis.LVS); + } + } +}; + +var testMethods = document.getElementsByClassName('switchtestmethod'); +for (i = 0, l = testMethods.length; i < l; i++) { + testMethods[i].addEventListener('change', switchTestMethod); +} + +/* Highlight test method by line */ +var toggleLine = function () { + if (selectedLine === this) { + selectedLine = null; + } else { + selectedLine = null; + unhighlightTestMethods(); + highlightTestMethods.call(this); + selectedLine = this; + } + +}; +var highlightTestMethods = function () { + if (selectedLine !== null) { + return; + } + + var lineAnalysis; + var coverageData = JSON.parse(this.getAttribute('data-coverage').replace(/'/g, '"')); + var testMethods = document.getElementsByClassName('testmethod'); + + for (i = 0, l = testMethods.length; i < l; i++) { + lineAnalysis = coverageData[testMethods[i].id]; + if (lineAnalysis === undefined) { + testMethods[i].className = testMethods[i].className.replace(/\s*light.+/g, ""); + } else { + testMethods[i].className += ' light' + lineAnalysis.LVS; + } + } +}; +var unhighlightTestMethods = function () { + if (selectedLine !== null) { + return; + } + + var testMethods = document.getElementsByClassName('testmethod'); + for (i = 0, l = testMethods.length; i < l; i++) { + testMethods[i].className = testMethods[i].className.replace(/\s*light.+/g, ""); + } +}; +var coverableLines = document.getElementsByClassName('coverableline'); +for (i = 0, l = coverableLines.length; i < l; i++) { + coverableLines[i].addEventListener('click', toggleLine); + coverableLines[i].addEventListener('mouseenter', highlightTestMethods); + coverableLines[i].addEventListener('mouseleave', unhighlightTestMethods); +} + +/* History charts */ +var renderChart = function (chart) { + // Remove current children (e.g. PNG placeholder) + while (chart.firstChild) { + chart.firstChild.remove(); + } + + var chartData = window[chart.getAttribute('data-data')]; + var options = { + axisY: { + type: undefined, + onlyInteger: true + }, + lineSmooth: false, + low: 0, + high: 100, + scaleMinSpace: 20, + onlyInteger: true, + fullWidth: true + }; + var lineChart = new Chartist.Line(chart, { + labels: [], + series: chartData.series + }, options); + + /* Zoom */ + var zoomButtonDiv = document.createElement("div"); + zoomButtonDiv.className = "toggleZoom"; + var zoomButtonLink = document.createElement("a"); + zoomButtonLink.setAttribute("href", ""); + var zoomButtonText = document.createElement("i"); + zoomButtonText.className = "icon-search-plus"; + + zoomButtonLink.appendChild(zoomButtonText); + zoomButtonDiv.appendChild(zoomButtonLink); + + chart.appendChild(zoomButtonDiv); + + zoomButtonDiv.addEventListener('click', function (event) { + event.preventDefault(); + + if (options.axisY.type === undefined) { + options.axisY.type = Chartist.AutoScaleAxis; + zoomButtonText.className = "icon-search-minus"; + } else { + options.axisY.type = undefined; + zoomButtonText.className = "icon-search-plus"; + } + + lineChart.update(null, options); + }); + + var tooltip = document.createElement("div"); + tooltip.className = "tooltip"; + + chart.appendChild(tooltip); + + /* Tooltips */ + var showToolTip = function () { + var index = this.getAttribute('ct:meta'); + + tooltip.innerHTML = chartData.tooltips[index]; + tooltip.style.display = 'block'; + }; + + var moveToolTip = function (event) { + var box = chart.getBoundingClientRect(); + var left = event.pageX - box.left - window.pageXOffset; + var top = event.pageY - box.top - window.pageYOffset; + + left = left + 20; + top = top - tooltip.offsetHeight / 2; + + if (left + tooltip.offsetWidth > box.width) { + left -= tooltip.offsetWidth + 40; + } + + if (top < 0) { + top = 0; + } + + if (top + tooltip.offsetHeight > box.height) { + top = box.height - tooltip.offsetHeight; + } + + tooltip.style.left = left + 'px'; + tooltip.style.top = top + 'px'; + }; + + var hideToolTip = function () { + tooltip.style.display = 'none'; + }; + chart.addEventListener('mousemove', moveToolTip); + + lineChart.on('created', function () { + var chartPoints = chart.getElementsByClassName('ct-point'); + for (i = 0, l = chartPoints.length; i < l; i++) { + chartPoints[i].addEventListener('mousemove', showToolTip); + chartPoints[i].addEventListener('mouseout', hideToolTip); + } + }); +}; + +var charts = document.getElementsByClassName('historychart'); +for (i = 0, l = charts.length; i < l; i++) { + renderChart(charts[i]); +} + +var assemblies = [ + { + "name": "Sample", + "classes": [ + { "name": "Sample.PartialClass", "rp": "Sample_PartialClass.html", "cl": 12, "ucl": 10, "cal": 22, "tl": 53, "ct": "LineCoverage", "cbm": "-", "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": "18.01.2023 - 20:03:20", "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": "Sample_TestClass.html", "cl": 12, "ucl": 9, "cal": 21, "tl": 38, "ct": "LineCoverage", "cbm": "-", "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": "18.01.2023 - 20:03:20", "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": "Sample_Program.html", "cl": 35, "ucl": 9, "cal": 44, "tl": 84, "ct": "LineCoverage", "cbm": "-", "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": "18.01.2023 - 20:03:20", "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": "Sample_TestClass2.html", "cl": 24, "ucl": 14, "cal": 38, "tl": 85, "ct": "LineCoverage", "cbm": "-", "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": "18.01.2023 - 20:03:20", "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 } }, + ]}, +]; + +var metrics = [{ "name": "Cyclomatic complexity", "abbreviation": "cc", "explanationUrl": "https://en.wikipedia.org/wiki/Cyclomatic_complexity" }, { "name": "NPath complexity", "abbreviation": "npth", "explanationUrl": "https://modess.io/npath-complexity-cyclomatic-complexity-explained" }, { "name": "Sequence coverage", "abbreviation": "seq", "explanationUrl": "https://en.wikipedia.org/wiki/Code_coverage" }, { "name": "Branch coverage", "abbreviation": "bcov", "explanationUrl": "https://en.wikipedia.org/wiki/Code_coverage" }, { "name": "Crap Score", "abbreviation": "crp", "explanationUrl": "https://googletesting.blogspot.de/2011/02/this-code-is-crap.html" }]; + +var historicCoverageExecutionTimes = ["09.02.2022 - 20:50:35", "08.02.2022 - 20:50:35", "07.02.2022 - 20:50:35", "06.02.2022 - 20:50:35", "05.02.2022 - 20:50:35", "04.02.2022 - 20:50:35", "03.02.2022 - 20:50:35", "02.02.2022 - 20:50:35", "01.02.2022 - 20:50:35"]; + +var riskHotspotMetrics = [ +]; + +var riskHotspots = [ +]; + +var branchCoverageAvailable = true; +var methodCoverageAvailable = true; + + +var translations = { +'top': 'Top:', +'all': 'All', +'assembly': 'Assembly', +'class': 'Class', +'method': 'Method', +'lineCoverage': 'LineCoverage', +'noGrouping': 'No grouping', +'byAssembly': 'By assembly', +'byNamespace': 'By namespace, Level:', +'all': 'All', +'collapseAll': 'Collapse all', +'expandAll': 'Expand all', +'grouping': 'Grouping:', +'filter': 'Filter:', +'name': 'Name', +'covered': 'Covered', +'uncovered': 'Uncovered', +'coverable': 'Coverable', +'total': 'Total', +'coverage': 'Line coverage', +'branchCoverage': 'Branch coverage', +'methodCoverage': 'Method coverage', +'percentage': 'Percentage', +'history': 'Coverage history', +'compareHistory': 'Compare with:', +'date': 'Date', +'allChanges': 'All changes', +'selectCoverageTypes': 'Select coverage types', +'selectCoverageTypesAndMetrics': 'Select coverage types & metrics', +'coverageTypes': 'Coverage types', +'metrics': 'Metrics', +'methodCoverageProVersion': 'Feature is only available for sponsors', +'lineCoverageIncreaseOnly': 'Line coverage: Increase only', +'lineCoverageDecreaseOnly': 'Line coverage: Decrease only', +'branchCoverageIncreaseOnly': 'Branch coverage: Increase only', +'branchCoverageDecreaseOnly': 'Branch coverage: Decrease only', +'methodCoverageIncreaseOnly': 'Method coverage: Increase only', +'methodCoverageDecreaseOnly': 'Method coverage: Decrease only' +}; + + +(()=>{"use strict";var e,_={},p={};function n(e){var a=p[e];if(void 0!==a)return a.exports;var r=p[e]={exports:{}};return _[e](r,r.exports,n),r.exports}n.m=_,e=[],n.O=(a,r,u,l)=>{if(!r){var o=1/0;for(f=0;f=l)&&Object.keys(n.O).every(h=>n.O[h](r[t]))?r.splice(t--,1):(v=!1,l0&&e[f-1][2]>l;f--)e[f]=e[f-1];e[f]=[r,u,l]},n.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return n.d(a,{a}),a},n.d=(e,a)=>{for(var r in a)n.o(a,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:a[r]})},n.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),(()=>{var e={666:0};n.O.j=u=>0===e[u];var a=(u,l)=>{var t,c,[f,o,v]=l,s=0;if(f.some(d=>0!==e[d])){for(t in o)n.o(o,t)&&(n.m[t]=o[t]);if(v)var b=v(n)}for(u&&u(l);s{he(583)},583:()=>{!function(e){const n=e.performance;function i(I){n&&n.mark&&n.mark(I)}function r(I,p){n&&n.measure&&n.measure(I,p)}i("Zone");const c=e.__Zone_symbol_prefix||"__zone_symbol__";function u(I){return c+I}const f=!0===e[u("forceDuplicateZoneCheck")];if(e.Zone){if(f||"function"!=typeof e.Zone.__symbol__)throw new Error("Zone already loaded.");return e.Zone}let _=(()=>{class I{constructor(t,o){this._parent=t,this._name=o?o.name||"unnamed":"",this._properties=o&&o.properties||{},this._zoneDelegate=new T(this,this._parent&&this._parent._zoneDelegate,o)}static assertZonePatched(){if(e.Promise!==J.ZoneAwarePromise)throw new Error("Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)")}static get root(){let t=I.current;for(;t.parent;)t=t.parent;return t}static get current(){return G.zone}static get currentTask(){return te}static __load_patch(t,o,g=!1){if(J.hasOwnProperty(t)){if(!g&&f)throw Error("Already loaded patch: "+t)}else if(!e["__Zone_disable_"+t]){const P="Zone:"+t;i(P),J[t]=o(e,I,le),r(P,P)}}get parent(){return this._parent}get name(){return this._name}get(t){const o=this.getZoneWith(t);if(o)return o._properties[t]}getZoneWith(t){let o=this;for(;o;){if(o._properties.hasOwnProperty(t))return o;o=o._parent}return null}fork(t){if(!t)throw new Error("ZoneSpec required!");return this._zoneDelegate.fork(this,t)}wrap(t,o){if("function"!=typeof t)throw new Error("Expecting function got: "+t);const g=this._zoneDelegate.intercept(this,t,o),P=this;return function(){return P.runGuarded(g,this,arguments,o)}}run(t,o,g,P){G={parent:G,zone:this};try{return this._zoneDelegate.invoke(this,t,o,g,P)}finally{G=G.parent}}runGuarded(t,o=null,g,P){G={parent:G,zone:this};try{try{return this._zoneDelegate.invoke(this,t,o,g,P)}catch(K){if(this._zoneDelegate.handleError(this,K))throw K}}finally{G=G.parent}}runTask(t,o,g){if(t.zone!=this)throw new Error("A task can only be run in the zone of creation! (Creation: "+(t.zone||z).name+"; Execution: "+this.name+")");if(t.state===j&&(t.type===R||t.type===M))return;const P=t.state!=X;P&&t._transitionTo(X,O),t.runCount++;const K=te;te=t,G={parent:G,zone:this};try{t.type==M&&t.data&&!t.data.isPeriodic&&(t.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,t,o,g)}catch(l){if(this._zoneDelegate.handleError(this,l))throw l}}finally{t.state!==j&&t.state!==Y&&(t.type==R||t.data&&t.data.isPeriodic?P&&t._transitionTo(O,X):(t.runCount=0,this._updateTaskCount(t,-1),P&&t._transitionTo(j,X,j))),G=G.parent,te=K}}scheduleTask(t){if(t.zone&&t.zone!==this){let g=this;for(;g;){if(g===t.zone)throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${t.zone.name}`);g=g.parent}}t._transitionTo(q,j);const o=[];t._zoneDelegates=o,t._zone=this;try{t=this._zoneDelegate.scheduleTask(this,t)}catch(g){throw t._transitionTo(Y,q,j),this._zoneDelegate.handleError(this,g),g}return t._zoneDelegates===o&&this._updateTaskCount(t,1),t.state==q&&t._transitionTo(O,q),t}scheduleMicroTask(t,o,g,P){return this.scheduleTask(new m(v,t,o,g,P,void 0))}scheduleMacroTask(t,o,g,P,K){return this.scheduleTask(new m(M,t,o,g,P,K))}scheduleEventTask(t,o,g,P,K){return this.scheduleTask(new m(R,t,o,g,P,K))}cancelTask(t){if(t.zone!=this)throw new Error("A task can only be cancelled in the zone of creation! (Creation: "+(t.zone||z).name+"; Execution: "+this.name+")");t._transitionTo(A,O,X);try{this._zoneDelegate.cancelTask(this,t)}catch(o){throw t._transitionTo(Y,A),this._zoneDelegate.handleError(this,o),o}return this._updateTaskCount(t,-1),t._transitionTo(j,A),t.runCount=0,t}_updateTaskCount(t,o){const g=t._zoneDelegates;-1==o&&(t._zoneDelegates=null);for(let P=0;PI.hasTask(t,o),onScheduleTask:(I,p,t,o)=>I.scheduleTask(t,o),onInvokeTask:(I,p,t,o,g,P)=>I.invokeTask(t,o,g,P),onCancelTask:(I,p,t,o)=>I.cancelTask(t,o)};class T{constructor(p,t,o){this._taskCounts={microTask:0,macroTask:0,eventTask:0},this.zone=p,this._parentDelegate=t,this._forkZS=o&&(o&&o.onFork?o:t._forkZS),this._forkDlgt=o&&(o.onFork?t:t._forkDlgt),this._forkCurrZone=o&&(o.onFork?this.zone:t._forkCurrZone),this._interceptZS=o&&(o.onIntercept?o:t._interceptZS),this._interceptDlgt=o&&(o.onIntercept?t:t._interceptDlgt),this._interceptCurrZone=o&&(o.onIntercept?this.zone:t._interceptCurrZone),this._invokeZS=o&&(o.onInvoke?o:t._invokeZS),this._invokeDlgt=o&&(o.onInvoke?t:t._invokeDlgt),this._invokeCurrZone=o&&(o.onInvoke?this.zone:t._invokeCurrZone),this._handleErrorZS=o&&(o.onHandleError?o:t._handleErrorZS),this._handleErrorDlgt=o&&(o.onHandleError?t:t._handleErrorDlgt),this._handleErrorCurrZone=o&&(o.onHandleError?this.zone:t._handleErrorCurrZone),this._scheduleTaskZS=o&&(o.onScheduleTask?o:t._scheduleTaskZS),this._scheduleTaskDlgt=o&&(o.onScheduleTask?t:t._scheduleTaskDlgt),this._scheduleTaskCurrZone=o&&(o.onScheduleTask?this.zone:t._scheduleTaskCurrZone),this._invokeTaskZS=o&&(o.onInvokeTask?o:t._invokeTaskZS),this._invokeTaskDlgt=o&&(o.onInvokeTask?t:t._invokeTaskDlgt),this._invokeTaskCurrZone=o&&(o.onInvokeTask?this.zone:t._invokeTaskCurrZone),this._cancelTaskZS=o&&(o.onCancelTask?o:t._cancelTaskZS),this._cancelTaskDlgt=o&&(o.onCancelTask?t:t._cancelTaskDlgt),this._cancelTaskCurrZone=o&&(o.onCancelTask?this.zone:t._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;const g=o&&o.onHasTask;(g||t&&t._hasTaskZS)&&(this._hasTaskZS=g?o:y,this._hasTaskDlgt=t,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=p,o.onScheduleTask||(this._scheduleTaskZS=y,this._scheduleTaskDlgt=t,this._scheduleTaskCurrZone=this.zone),o.onInvokeTask||(this._invokeTaskZS=y,this._invokeTaskDlgt=t,this._invokeTaskCurrZone=this.zone),o.onCancelTask||(this._cancelTaskZS=y,this._cancelTaskDlgt=t,this._cancelTaskCurrZone=this.zone))}fork(p,t){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,p,t):new _(p,t)}intercept(p,t,o){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,p,t,o):t}invoke(p,t,o,g,P){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,p,t,o,g,P):t.apply(o,g)}handleError(p,t){return!this._handleErrorZS||this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,p,t)}scheduleTask(p,t){let o=t;if(this._scheduleTaskZS)this._hasTaskZS&&o._zoneDelegates.push(this._hasTaskDlgtOwner),o=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,p,t),o||(o=t);else if(t.scheduleFn)t.scheduleFn(t);else{if(t.type!=v)throw new Error("Task is missing scheduleFn.");d(t)}return o}invokeTask(p,t,o,g){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,p,t,o,g):t.callback.apply(o,g)}cancelTask(p,t){let o;if(this._cancelTaskZS)o=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,p,t);else{if(!t.cancelFn)throw Error("Task is not cancelable");o=t.cancelFn(t)}return o}hasTask(p,t){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,p,t)}catch(o){this.handleError(p,o)}}_updateTaskCount(p,t){const o=this._taskCounts,g=o[p],P=o[p]=g+t;if(P<0)throw new Error("More tasks executed then were scheduled.");0!=g&&0!=P||this.hasTask(this.zone,{microTask:o.microTask>0,macroTask:o.macroTask>0,eventTask:o.eventTask>0,change:p})}}class m{constructor(p,t,o,g,P,K){if(this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state="notScheduled",this.type=p,this.source=t,this.data=g,this.scheduleFn=P,this.cancelFn=K,!o)throw new Error("callback is not defined");this.callback=o;const l=this;this.invoke=p===R&&g&&g.useG?m.invokeTask:function(){return m.invokeTask.call(e,l,this,arguments)}}static invokeTask(p,t,o){p||(p=this),re++;try{return p.runCount++,p.zone.runTask(p,t,o)}finally{1==re&&L(),re--}}get zone(){return this._zone}get state(){return this._state}cancelScheduleRequest(){this._transitionTo(j,q)}_transitionTo(p,t,o){if(this._state!==t&&this._state!==o)throw new Error(`${this.type} '${this.source}': can not transition to '${p}', expecting state '${t}'${o?" or '"+o+"'":""}, was '${this._state}'.`);this._state=p,p==j&&(this._zoneDelegates=null)}toString(){return this.data&&typeof this.data.handleId<"u"?this.data.handleId.toString():Object.prototype.toString.call(this)}toJSON(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}}}const S=u("setTimeout"),D=u("Promise"),Z=u("then");let E,B=[],V=!1;function d(I){if(0===re&&0===B.length)if(E||e[D]&&(E=e[D].resolve(0)),E){let p=E[Z];p||(p=E.then),p.call(E,L)}else e[S](L,0);I&&B.push(I)}function L(){if(!V){for(V=!0;B.length;){const I=B;B=[];for(let p=0;pG,onUnhandledError:F,microtaskDrainDone:F,scheduleMicroTask:d,showUncaughtError:()=>!_[u("ignoreConsoleErrorUncaughtError")],patchEventTarget:()=>[],patchOnProperties:F,patchMethod:()=>F,bindArguments:()=>[],patchThen:()=>F,patchMacroTask:()=>F,patchEventPrototype:()=>F,isIEOrEdge:()=>!1,getGlobalObjects:()=>{},ObjectDefineProperty:()=>F,ObjectGetOwnPropertyDescriptor:()=>{},ObjectCreate:()=>{},ArraySlice:()=>[],patchClass:()=>F,wrapWithCurrentZone:()=>F,filterProperties:()=>[],attachOriginToPatched:()=>F,_redefineProperty:()=>F,patchCallbacks:()=>F};let G={parent:null,zone:new _(null,null)},te=null,re=0;function F(){}r("Zone","Zone"),e.Zone=_}(typeof window<"u"&&window||typeof self<"u"&&self||global);const ue=Object.getOwnPropertyDescriptor,he=Object.defineProperty,de=Object.getPrototypeOf,Be=Object.create,ut=Array.prototype.slice,Se="addEventListener",Oe="removeEventListener",Ze=Zone.__symbol__(Se),Ie=Zone.__symbol__(Oe),se="true",ie="false",ke=Zone.__symbol__("");function Le(e,n){return Zone.current.wrap(e,n)}function Me(e,n,i,r,c){return Zone.current.scheduleMacroTask(e,n,i,r,c)}const x=Zone.__symbol__,Pe=typeof window<"u",pe=Pe?window:void 0,$=Pe&&pe||"object"==typeof self&&self||global,ht=[null];function Ae(e,n){for(let i=e.length-1;i>=0;i--)"function"==typeof e[i]&&(e[i]=Le(e[i],n+"_"+i));return e}function Fe(e){return!e||!1!==e.writable&&!("function"==typeof e.get&&typeof e.set>"u")}const Ue=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope,Re=!("nw"in $)&&typeof $.process<"u"&&"[object process]"==={}.toString.call($.process),je=!Re&&!Ue&&!(!Pe||!pe.HTMLElement),We=typeof $.process<"u"&&"[object process]"==={}.toString.call($.process)&&!Ue&&!(!Pe||!pe.HTMLElement),Ce={},qe=function(e){if(!(e=e||$.event))return;let n=Ce[e.type];n||(n=Ce[e.type]=x("ON_PROPERTY"+e.type));const i=this||e.target||$,r=i[n];let c;return je&&i===pe&&"error"===e.type?(c=r&&r.call(this,e.message,e.filename,e.lineno,e.colno,e.error),!0===c&&e.preventDefault()):(c=r&&r.apply(this,arguments),null!=c&&!c&&e.preventDefault()),c};function Xe(e,n,i){let r=ue(e,n);if(!r&&i&&ue(i,n)&&(r={enumerable:!0,configurable:!0}),!r||!r.configurable)return;const c=x("on"+n+"patched");if(e.hasOwnProperty(c)&&e[c])return;delete r.writable,delete r.value;const u=r.get,f=r.set,_=n.substr(2);let y=Ce[_];y||(y=Ce[_]=x("ON_PROPERTY"+_)),r.set=function(T){let m=this;!m&&e===$&&(m=$),m&&(m[y]&&m.removeEventListener(_,qe),f&&f.apply(m,ht),"function"==typeof T?(m[y]=T,m.addEventListener(_,qe,!1)):m[y]=null)},r.get=function(){let T=this;if(!T&&e===$&&(T=$),!T)return null;const m=T[y];if(m)return m;if(u){let S=u&&u.call(this);if(S)return r.set.call(this,S),"function"==typeof T.removeAttribute&&T.removeAttribute(n),S}return null},he(e,n,r),e[c]=!0}function Ye(e,n,i){if(n)for(let r=0;rfunction(f,_){const y=i(f,_);return y.cbIdx>=0&&"function"==typeof _[y.cbIdx]?Me(y.name,_[y.cbIdx],y,c):u.apply(f,_)})}function ae(e,n){e[x("OriginalDelegate")]=n}let $e=!1,He=!1;function mt(){if($e)return He;$e=!0;try{const e=pe.navigator.userAgent;(-1!==e.indexOf("MSIE ")||-1!==e.indexOf("Trident/")||-1!==e.indexOf("Edge/"))&&(He=!0)}catch{}return He}Zone.__load_patch("ZoneAwarePromise",(e,n,i)=>{const r=Object.getOwnPropertyDescriptor,c=Object.defineProperty,f=i.symbol,_=[],y=!0===e[f("DISABLE_WRAPPING_UNCAUGHT_PROMISE_REJECTION")],T=f("Promise"),m=f("then");i.onUnhandledError=l=>{if(i.showUncaughtError()){const s=l&&l.rejection;s?console.error("Unhandled Promise rejection:",s instanceof Error?s.message:s,"; Zone:",l.zone.name,"; Task:",l.task&&l.task.source,"; Value:",s,s instanceof Error?s.stack:void 0):console.error(l)}},i.microtaskDrainDone=()=>{for(;_.length;){const l=_.shift();try{l.zone.runGuarded(()=>{throw l.throwOriginal?l.rejection:l})}catch(s){Z(s)}}};const D=f("unhandledPromiseRejectionHandler");function Z(l){i.onUnhandledError(l);try{const s=n[D];"function"==typeof s&&s.call(this,l)}catch{}}function B(l){return l&&l.then}function V(l){return l}function E(l){return t.reject(l)}const d=f("state"),L=f("value"),z=f("finally"),j=f("parentPromiseValue"),q=f("parentPromiseState"),X=null,A=!0,Y=!1;function M(l,s){return a=>{try{G(l,s,a)}catch(h){G(l,!1,h)}}}const le=f("currentTaskTrace");function G(l,s,a){const h=function(){let l=!1;return function(a){return function(){l||(l=!0,a.apply(null,arguments))}}}();if(l===a)throw new TypeError("Promise resolved with itself");if(l[d]===X){let w=null;try{("object"==typeof a||"function"==typeof a)&&(w=a&&a.then)}catch(C){return h(()=>{G(l,!1,C)})(),l}if(s!==Y&&a instanceof t&&a.hasOwnProperty(d)&&a.hasOwnProperty(L)&&a[d]!==X)re(a),G(l,a[d],a[L]);else if(s!==Y&&"function"==typeof w)try{w.call(a,h(M(l,s)),h(M(l,!1)))}catch(C){h(()=>{G(l,!1,C)})()}else{l[d]=s;const C=l[L];if(l[L]=a,l[z]===z&&s===A&&(l[d]=l[q],l[L]=l[j]),s===Y&&a instanceof Error){const k=n.currentTask&&n.currentTask.data&&n.currentTask.data.__creationTrace__;k&&c(a,le,{configurable:!0,enumerable:!1,writable:!0,value:k})}for(let k=0;k{try{const b=l[L],N=!!a&&z===a[z];N&&(a[j]=b,a[q]=C);const H=s.run(k,void 0,N&&k!==E&&k!==V?[]:[b]);G(a,!0,H)}catch(b){G(a,!1,b)}},a)}const p=function(){};class t{static toString(){return"function ZoneAwarePromise() { [native code] }"}static resolve(s){return G(new this(null),A,s)}static reject(s){return G(new this(null),Y,s)}static race(s){let a,h,w=new this((b,N)=>{a=b,h=N});function C(b){a(b)}function k(b){h(b)}for(let b of s)B(b)||(b=this.resolve(b)),b.then(C,k);return w}static all(s){return t.allWithCallback(s)}static allSettled(s){return(this&&this.prototype instanceof t?this:t).allWithCallback(s,{thenCallback:h=>({status:"fulfilled",value:h}),errorCallback:h=>({status:"rejected",reason:h})})}static allWithCallback(s,a){let h,w,C=new this((H,U)=>{h=H,w=U}),k=2,b=0;const N=[];for(let H of s){B(H)||(H=this.resolve(H));const U=b;try{H.then(Q=>{N[U]=a?a.thenCallback(Q):Q,k--,0===k&&h(N)},Q=>{a?(N[U]=a.errorCallback(Q),k--,0===k&&h(N)):w(Q)})}catch(Q){w(Q)}k++,b++}return k-=2,0===k&&h(N),C}constructor(s){const a=this;if(!(a instanceof t))throw new Error("Must be an instanceof Promise.");a[d]=X,a[L]=[];try{s&&s(M(a,A),M(a,Y))}catch(h){G(a,!1,h)}}get[Symbol.toStringTag](){return"Promise"}get[Symbol.species](){return t}then(s,a){let h=this.constructor[Symbol.species];(!h||"function"!=typeof h)&&(h=this.constructor||t);const w=new h(p),C=n.current;return this[d]==X?this[L].push(C,w,s,a):F(this,C,w,s,a),w}catch(s){return this.then(null,s)}finally(s){let a=this.constructor[Symbol.species];(!a||"function"!=typeof a)&&(a=t);const h=new a(p);h[z]=z;const w=n.current;return this[d]==X?this[L].push(w,h,s,s):F(this,w,h,s,s),h}}t.resolve=t.resolve,t.reject=t.reject,t.race=t.race,t.all=t.all;const o=e[T]=e.Promise;e.Promise=t;const g=f("thenPatched");function P(l){const s=l.prototype,a=r(s,"then");if(a&&(!1===a.writable||!a.configurable))return;const h=s.then;s[m]=h,l.prototype.then=function(w,C){return new t((b,N)=>{h.call(this,b,N)}).then(w,C)},l[g]=!0}return i.patchThen=P,o&&(P(o),ce(e,"fetch",l=>function K(l){return function(s,a){let h=l.apply(s,a);if(h instanceof t)return h;let w=h.constructor;return w[g]||P(w),h}}(l))),Promise[n.__symbol__("uncaughtPromiseErrors")]=_,t}),Zone.__load_patch("toString",e=>{const n=Function.prototype.toString,i=x("OriginalDelegate"),r=x("Promise"),c=x("Error"),u=function(){if("function"==typeof this){const T=this[i];if(T)return"function"==typeof T?n.call(T):Object.prototype.toString.call(T);if(this===Promise){const m=e[r];if(m)return n.call(m)}if(this===Error){const m=e[c];if(m)return n.call(m)}}return n.call(this)};u[i]=n,Function.prototype.toString=u;const f=Object.prototype.toString;Object.prototype.toString=function(){return"function"==typeof Promise&&this instanceof Promise?"[object Promise]":f.call(this)}});let me=!1;if(typeof window<"u")try{const e=Object.defineProperty({},"passive",{get:function(){me=!0}});window.addEventListener("test",e,e),window.removeEventListener("test",e,e)}catch{me=!1}const Et={useG:!0},ee={},Ke={},Je=new RegExp("^"+ke+"(\\w+)(true|false)$"),xe=x("propagationStopped");function Qe(e,n){const i=(n?n(e):e)+ie,r=(n?n(e):e)+se,c=ke+i,u=ke+r;ee[e]={},ee[e][ie]=c,ee[e][se]=u}function Tt(e,n,i){const r=i&&i.add||Se,c=i&&i.rm||Oe,u=i&&i.listeners||"eventListeners",f=i&&i.rmAll||"removeAllListeners",_=x(r),y="."+r+":",T="prependListener",m="."+T+":",S=function(E,d,L){if(E.isRemoved)return;const z=E.callback;"object"==typeof z&&z.handleEvent&&(E.callback=q=>z.handleEvent(q),E.originalDelegate=z),E.invoke(E,d,[L]);const j=E.options;j&&"object"==typeof j&&j.once&&d[c].call(d,L.type,E.originalDelegate?E.originalDelegate:E.callback,j)},D=function(E){if(!(E=E||e.event))return;const d=this||E.target||e,L=d[ee[E.type][ie]];if(L)if(1===L.length)S(L[0],d,E);else{const z=L.slice();for(let j=0;jfunction(c,u){c[xe]=!0,r&&r.apply(c,u)})}function yt(e,n,i,r,c){const u=Zone.__symbol__(r);if(n[u])return;const f=n[u]=n[r];n[r]=function(_,y,T){return y&&y.prototype&&c.forEach(function(m){const S=`${i}.${r}::`+m,D=y.prototype;if(D.hasOwnProperty(m)){const Z=e.ObjectGetOwnPropertyDescriptor(D,m);Z&&Z.value?(Z.value=e.wrapWithCurrentZone(Z.value,S),e._redefineProperty(y.prototype,m,Z)):D[m]&&(D[m]=e.wrapWithCurrentZone(D[m],S))}else D[m]&&(D[m]=e.wrapWithCurrentZone(D[m],S))}),f.call(n,_,y,T)},e.attachOriginToPatched(n[r],f)}const Ve=["absolutedeviceorientation","afterinput","afterprint","appinstalled","beforeinstallprompt","beforeprint","beforeunload","devicelight","devicemotion","deviceorientation","deviceorientationabsolute","deviceproximity","hashchange","languagechange","message","mozbeforepaint","offline","online","paint","pageshow","pagehide","popstate","rejectionhandled","storage","unhandledrejection","unload","userproximity","vrdisplayconnected","vrdisplaydisconnected","vrdisplaypresentchange"],wt=["encrypted","waitingforkey","msneedkey","mozinterruptbegin","mozinterruptend"],tt=["load"],nt=["blur","error","focus","load","resize","scroll","messageerror"],Dt=["bounce","finish","start"],rt=["loadstart","progress","abort","error","load","progress","timeout","loadend","readystatechange"],Ee=["upgradeneeded","complete","abort","success","error","blocked","versionchange","close"],St=["close","error","open","message"],Ot=["error","message"],Te=["abort","animationcancel","animationend","animationiteration","auxclick","beforeinput","blur","cancel","canplay","canplaythrough","change","compositionstart","compositionupdate","compositionend","cuechange","click","close","contextmenu","curechange","dblclick","drag","dragend","dragenter","dragexit","dragleave","dragover","drop","durationchange","emptied","ended","error","focus","focusin","focusout","gotpointercapture","input","invalid","keydown","keypress","keyup","load","loadstart","loadeddata","loadedmetadata","lostpointercapture","mousedown","mouseenter","mouseleave","mousemove","mouseout","mouseover","mouseup","mousewheel","orientationchange","pause","play","playing","pointercancel","pointerdown","pointerenter","pointerleave","pointerlockchange","mozpointerlockchange","webkitpointerlockerchange","pointerlockerror","mozpointerlockerror","webkitpointerlockerror","pointermove","pointout","pointerover","pointerup","progress","ratechange","reset","resize","scroll","seeked","seeking","select","selectionchange","selectstart","show","sort","stalled","submit","suspend","timeupdate","volumechange","touchcancel","touchmove","touchstart","touchend","transitioncancel","transitionend","waiting","wheel"].concat(["webglcontextrestored","webglcontextlost","webglcontextcreationerror"],["autocomplete","autocompleteerror"],["toggle"],["afterscriptexecute","beforescriptexecute","DOMContentLoaded","freeze","fullscreenchange","mozfullscreenchange","webkitfullscreenchange","msfullscreenchange","fullscreenerror","mozfullscreenerror","webkitfullscreenerror","msfullscreenerror","readystatechange","visibilitychange","resume"],Ve,["beforecopy","beforecut","beforepaste","copy","cut","paste","dragstart","loadend","animationstart","search","transitionrun","transitionstart","webkitanimationend","webkitanimationiteration","webkitanimationstart","webkittransitionend"],["activate","afterupdate","ariarequest","beforeactivate","beforedeactivate","beforeeditfocus","beforeupdate","cellchange","controlselect","dataavailable","datasetchanged","datasetcomplete","errorupdate","filterchange","layoutcomplete","losecapture","move","moveend","movestart","propertychange","resizeend","resizestart","rowenter","rowexit","rowsdelete","rowsinserted","command","compassneedscalibration","deactivate","help","mscontentzoom","msmanipulationstatechanged","msgesturechange","msgesturedoubletap","msgestureend","msgesturehold","msgesturestart","msgesturetap","msgotpointercapture","msinertiastart","mslostpointercapture","mspointercancel","mspointerdown","mspointerenter","mspointerhover","mspointerleave","mspointermove","mspointerout","mspointerover","mspointerup","pointerout","mssitemodejumplistitemremoved","msthumbnailclick","stop","storagecommit"]);function ot(e,n,i){if(!i||0===i.length)return n;const r=i.filter(u=>u.target===e);if(!r||0===r.length)return n;const c=r[0].ignoreProperties;return n.filter(u=>-1===c.indexOf(u))}function W(e,n,i,r){e&&Ye(e,ot(e,n,i),r)}Zone.__load_patch("util",(e,n,i)=>{i.patchOnProperties=Ye,i.patchMethod=ce,i.bindArguments=Ae,i.patchMacroTask=_t;const r=n.__symbol__("BLACK_LISTED_EVENTS"),c=n.__symbol__("UNPATCHED_EVENTS");e[c]&&(e[r]=e[c]),e[r]&&(n[r]=n[c]=e[r]),i.patchEventPrototype=gt,i.patchEventTarget=Tt,i.isIEOrEdge=mt,i.ObjectDefineProperty=he,i.ObjectGetOwnPropertyDescriptor=ue,i.ObjectCreate=Be,i.ArraySlice=ut,i.patchClass=ve,i.wrapWithCurrentZone=Le,i.filterProperties=ot,i.attachOriginToPatched=ae,i._redefineProperty=Object.defineProperty,i.patchCallbacks=yt,i.getGlobalObjects=()=>({globalSources:Ke,zoneSymbolEventNames:ee,eventNames:Te,isBrowser:je,isMix:We,isNode:Re,TRUE_STR:se,FALSE_STR:ie,ZONE_SYMBOL_PREFIX:ke,ADD_EVENT_LISTENER_STR:Se,REMOVE_EVENT_LISTENER_STR:Oe})});const Ne=x("zoneTask");function ge(e,n,i,r){let c=null,u=null;i+=r;const f={};function _(T){const m=T.data;return m.args[0]=function(){return T.invoke.apply(this,arguments)},m.handleId=c.apply(e,m.args),T}function y(T){return u.call(e,T.data.handleId)}c=ce(e,n+=r,T=>function(m,S){if("function"==typeof S[0]){const D={isPeriodic:"Interval"===r,delay:"Timeout"===r||"Interval"===r?S[1]||0:void 0,args:S},Z=S[0];S[0]=function(){try{return Z.apply(this,arguments)}finally{D.isPeriodic||("number"==typeof D.handleId?delete f[D.handleId]:D.handleId&&(D.handleId[Ne]=null))}};const B=Me(n,S[0],D,_,y);if(!B)return B;const V=B.data.handleId;return"number"==typeof V?f[V]=B:V&&(V[Ne]=B),V&&V.ref&&V.unref&&"function"==typeof V.ref&&"function"==typeof V.unref&&(B.ref=V.ref.bind(V),B.unref=V.unref.bind(V)),"number"==typeof V||V?V:B}return T.apply(e,S)}),u=ce(e,i,T=>function(m,S){const D=S[0];let Z;"number"==typeof D?Z=f[D]:(Z=D&&D[Ne],Z||(Z=D)),Z&&"string"==typeof Z.type?"notScheduled"!==Z.state&&(Z.cancelFn&&Z.data.isPeriodic||0===Z.runCount)&&("number"==typeof D?delete f[D]:D&&(D[Ne]=null),Z.zone.cancelTask(Z)):T.apply(e,S)})}Zone.__load_patch("legacy",e=>{const n=e[Zone.__symbol__("legacyPatch")];n&&n()}),Zone.__load_patch("queueMicrotask",(e,n,i)=>{i.patchMethod(e,"queueMicrotask",r=>function(c,u){n.current.scheduleMicroTask("queueMicrotask",u[0])})}),Zone.__load_patch("timers",e=>{const n="set",i="clear";ge(e,n,i,"Timeout"),ge(e,n,i,"Interval"),ge(e,n,i,"Immediate")}),Zone.__load_patch("requestAnimationFrame",e=>{ge(e,"request","cancel","AnimationFrame"),ge(e,"mozRequest","mozCancel","AnimationFrame"),ge(e,"webkitRequest","webkitCancel","AnimationFrame")}),Zone.__load_patch("blocking",(e,n)=>{const i=["alert","prompt","confirm"];for(let r=0;rfunction(y,T){return n.current.run(u,e,T,_)})}),Zone.__load_patch("EventTarget",(e,n,i)=>{(function Mt(e,n){n.patchEventPrototype(e,n)})(e,i),function Lt(e,n){if(Zone[n.symbol("patchEventTarget")])return;const{eventNames:i,zoneSymbolEventNames:r,TRUE_STR:c,FALSE_STR:u,ZONE_SYMBOL_PREFIX:f}=n.getGlobalObjects();for(let y=0;y{ve("MutationObserver"),ve("WebKitMutationObserver")}),Zone.__load_patch("IntersectionObserver",(e,n,i)=>{ve("IntersectionObserver")}),Zone.__load_patch("FileReader",(e,n,i)=>{ve("FileReader")}),Zone.__load_patch("on_property",(e,n,i)=>{!function Zt(e,n){if(Re&&!We||Zone[e.symbol("patchEvents")])return;const i=typeof WebSocket<"u",r=n.__Zone_ignore_on_properties;if(je){const f=window,_=function pt(){try{const e=pe.navigator.userAgent;if(-1!==e.indexOf("MSIE ")||-1!==e.indexOf("Trident/"))return!0}catch{}return!1}()?[{target:f,ignoreProperties:["error"]}]:[];W(f,Te.concat(["messageerror"]),r&&r.concat(_),de(f)),W(Document.prototype,Te,r),typeof f.SVGElement<"u"&&W(f.SVGElement.prototype,Te,r),W(Element.prototype,Te,r),W(HTMLElement.prototype,Te,r),W(HTMLMediaElement.prototype,wt,r),W(HTMLFrameSetElement.prototype,Ve.concat(nt),r),W(HTMLBodyElement.prototype,Ve.concat(nt),r),W(HTMLFrameElement.prototype,tt,r),W(HTMLIFrameElement.prototype,tt,r);const y=f.HTMLMarqueeElement;y&&W(y.prototype,Dt,r);const T=f.Worker;T&&W(T.prototype,Ot,r)}const c=n.XMLHttpRequest;c&&W(c.prototype,rt,r);const u=n.XMLHttpRequestEventTarget;u&&W(u&&u.prototype,rt,r),typeof IDBIndex<"u"&&(W(IDBIndex.prototype,Ee,r),W(IDBRequest.prototype,Ee,r),W(IDBOpenDBRequest.prototype,Ee,r),W(IDBDatabase.prototype,Ee,r),W(IDBTransaction.prototype,Ee,r),W(IDBCursor.prototype,Ee,r)),i&&W(WebSocket.prototype,St,r)}(i,e)}),Zone.__load_patch("customElements",(e,n,i)=>{!function It(e,n){const{isBrowser:i,isMix:r}=n.getGlobalObjects();(i||r)&&e.customElements&&"customElements"in e&&n.patchCallbacks(n,e.customElements,"customElements","define",["connectedCallback","disconnectedCallback","adoptedCallback","attributeChangedCallback"])}(e,i)}),Zone.__load_patch("XHR",(e,n)=>{!function y(T){const m=T.XMLHttpRequest;if(!m)return;const S=m.prototype;let Z=S[Ze],B=S[Ie];if(!Z){const v=T.XMLHttpRequestEventTarget;if(v){const M=v.prototype;Z=M[Ze],B=M[Ie]}}const V="readystatechange",E="scheduled";function d(v){const M=v.data,R=M.target;R[u]=!1,R[_]=!1;const J=R[c];Z||(Z=R[Ze],B=R[Ie]),J&&B.call(R,V,J);const le=R[c]=()=>{if(R.readyState===R.DONE)if(!M.aborted&&R[u]&&v.state===E){const te=R[n.__symbol__("loadfalse")];if(0!==R.status&&te&&te.length>0){const re=v.invoke;v.invoke=function(){const F=R[n.__symbol__("loadfalse")];for(let I=0;Ifunction(v,M){return v[r]=0==M[2],v[f]=M[1],j.apply(v,M)}),O=x("fetchTaskAborting"),X=x("fetchTaskScheduling"),A=ce(S,"send",()=>function(v,M){if(!0===n.current[X]||v[r])return A.apply(v,M);{const R={target:v,url:v[f],isPeriodic:!1,args:M,aborted:!1},J=Me("XMLHttpRequest.send",L,R,d,z);v&&!0===v[_]&&!R.aborted&&J.state===E&&J.invoke()}}),Y=ce(S,"abort",()=>function(v,M){const R=function D(v){return v[i]}(v);if(R&&"string"==typeof R.type){if(null==R.cancelFn||R.data&&R.data.aborted)return;R.zone.cancelTask(R)}else if(!0===n.current[O])return Y.apply(v,M)})}(e);const i=x("xhrTask"),r=x("xhrSync"),c=x("xhrListener"),u=x("xhrScheduled"),f=x("xhrURL"),_=x("xhrErrorBeforeScheduled")}),Zone.__load_patch("geolocation",e=>{e.navigator&&e.navigator.geolocation&&function dt(e,n){const i=e.constructor.name;for(let r=0;r{const y=function(){return _.apply(this,Ae(arguments,i+"."+c))};return ae(y,_),y})(u)}}}(e.navigator.geolocation,["getCurrentPosition","watchPosition"])}),Zone.__load_patch("PromiseRejectionEvent",(e,n)=>{function i(r){return function(c){et(e,r).forEach(f=>{const _=e.PromiseRejectionEvent;if(_){const y=new _(r,{promise:c.promise,reason:c.rejection});f.invoke(y)}})}}e.PromiseRejectionEvent&&(n[x("unhandledPromiseRejectionHandler")]=i("unhandledrejection"),n[x("rejectionHandledHandler")]=i("rejectionhandled"))})}},we=>{we(we.s=435)}]); + +"use strict";(self.webpackChunkcoverage_app=self.webpackChunkcoverage_app||[]).push([[179],{938:()=>{function me(e){return"function"==typeof e}function $o(e){const t=e(r=>{Error.call(r),r.stack=(new Error).stack});return t.prototype=Object.create(Error.prototype),t.prototype.constructor=t,t}const Uo=$o(e=>function(t){e(this),this.message=t?`${t.length} errors occurred during unsubscription:\n${t.map((r,o)=>`${o+1}) ${r.toString()}`).join("\n ")}`:"",this.name="UnsubscriptionError",this.errors=t});function Rr(e,n){if(e){const t=e.indexOf(n);0<=t&&e.splice(t,1)}}class Tt{constructor(n){this.initialTeardown=n,this.closed=!1,this._parentage=null,this._teardowns=null}unsubscribe(){let n;if(!this.closed){this.closed=!0;const{_parentage:t}=this;if(t)if(this._parentage=null,Array.isArray(t))for(const i of t)i.remove(this);else t.remove(this);const{initialTeardown:r}=this;if(me(r))try{r()}catch(i){n=i instanceof Uo?i.errors:[i]}const{_teardowns:o}=this;if(o){this._teardowns=null;for(const i of o)try{uu(i)}catch(s){n=n??[],s instanceof Uo?n=[...n,...s.errors]:n.push(s)}}if(n)throw new Uo(n)}}add(n){var t;if(n&&n!==this)if(this.closed)uu(n);else{if(n instanceof Tt){if(n.closed||n._hasParent(this))return;n._addParent(this)}(this._teardowns=null!==(t=this._teardowns)&&void 0!==t?t:[]).push(n)}}_hasParent(n){const{_parentage:t}=this;return t===n||Array.isArray(t)&&t.includes(n)}_addParent(n){const{_parentage:t}=this;this._parentage=Array.isArray(t)?(t.push(n),t):t?[t,n]:n}_removeParent(n){const{_parentage:t}=this;t===n?this._parentage=null:Array.isArray(t)&&Rr(t,n)}remove(n){const{_teardowns:t}=this;t&&Rr(t,n),n instanceof Tt&&n._removeParent(this)}}Tt.EMPTY=(()=>{const e=new Tt;return e.closed=!0,e})();const lu=Tt.EMPTY;function cu(e){return e instanceof Tt||e&&"closed"in e&&me(e.remove)&&me(e.add)&&me(e.unsubscribe)}function uu(e){me(e)?e():e.unsubscribe()}const wn={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},zo={setTimeout(...e){const{delegate:n}=zo;return(n?.setTimeout||setTimeout)(...e)},clearTimeout(e){const{delegate:n}=zo;return(n?.clearTimeout||clearTimeout)(e)},delegate:void 0};function du(e){zo.setTimeout(()=>{const{onUnhandledError:n}=wn;if(!n)throw e;n(e)})}function Go(){}const av=As("C",void 0,void 0);function As(e,n,t){return{kind:e,value:n,error:t}}let bn=null;function Wo(e){if(wn.useDeprecatedSynchronousErrorHandling){const n=!bn;if(n&&(bn={errorThrown:!1,error:null}),e(),n){const{errorThrown:t,error:r}=bn;if(bn=null,t)throw r}}else e()}class Ts extends Tt{constructor(n){super(),this.isStopped=!1,n?(this.destination=n,cu(n)&&n.add(this)):this.destination=dv}static create(n,t,r){return new xs(n,t,r)}next(n){this.isStopped?Fs(function cv(e){return As("N",e,void 0)}(n),this):this._next(n)}error(n){this.isStopped?Fs(function lv(e){return As("E",void 0,e)}(n),this):(this.isStopped=!0,this._error(n))}complete(){this.isStopped?Fs(av,this):(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe(),this.destination=null)}_next(n){this.destination.next(n)}_error(n){try{this.destination.error(n)}finally{this.unsubscribe()}}_complete(){try{this.destination.complete()}finally{this.unsubscribe()}}}class xs extends Ts{constructor(n,t,r){let o;if(super(),me(n))o=n;else if(n){let i;({next:o,error:t,complete:r}=n),this&&wn.useDeprecatedNextContext?(i=Object.create(n),i.unsubscribe=()=>this.unsubscribe()):i=n,o=o?.bind(i),t=t?.bind(i),r=r?.bind(i)}this.destination={next:o?Ns(o):Go,error:Ns(t??fu),complete:r?Ns(r):Go}}}function Ns(e,n){return(...t)=>{try{e(...t)}catch(r){wn.useDeprecatedSynchronousErrorHandling?function uv(e){wn.useDeprecatedSynchronousErrorHandling&&bn&&(bn.errorThrown=!0,bn.error=e)}(r):du(r)}}}function fu(e){throw e}function Fs(e,n){const{onStoppedNotification:t}=wn;t&&zo.setTimeout(()=>t(e,n))}const dv={closed:!0,next:Go,error:fu,complete:Go},Os="function"==typeof Symbol&&Symbol.observable||"@@observable";function hu(e){return e}let ze=(()=>{class e{constructor(t){t&&(this._subscribe=t)}lift(t){const r=new e;return r.source=this,r.operator=t,r}subscribe(t,r,o){const i=function hv(e){return e&&e instanceof Ts||function fv(e){return e&&me(e.next)&&me(e.error)&&me(e.complete)}(e)&&cu(e)}(t)?t:new xs(t,r,o);return Wo(()=>{const{operator:s,source:a}=this;i.add(s?s.call(i,a):a?this._subscribe(i):this._trySubscribe(i))}),i}_trySubscribe(t){try{return this._subscribe(t)}catch(r){t.error(r)}}forEach(t,r){return new(r=gu(r))((o,i)=>{let s;s=this.subscribe(a=>{try{t(a)}catch(l){i(l),s?.unsubscribe()}},i,o)})}_subscribe(t){var r;return null===(r=this.source)||void 0===r?void 0:r.subscribe(t)}[Os](){return this}pipe(...t){return function pu(e){return 0===e.length?hu:1===e.length?e[0]:function(t){return e.reduce((r,o)=>o(r),t)}}(t)(this)}toPromise(t){return new(t=gu(t))((r,o)=>{let i;this.subscribe(s=>i=s,s=>o(s),()=>r(i))})}}return e.create=n=>new e(n),e})();function gu(e){var n;return null!==(n=e??wn.Promise)&&void 0!==n?n:Promise}const pv=$o(e=>function(){e(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"});let Rs=(()=>{class e extends ze{constructor(){super(),this.closed=!1,this.observers=[],this.isStopped=!1,this.hasError=!1,this.thrownError=null}lift(t){const r=new mu(this,this);return r.operator=t,r}_throwIfClosed(){if(this.closed)throw new pv}next(t){Wo(()=>{if(this._throwIfClosed(),!this.isStopped){const r=this.observers.slice();for(const o of r)o.next(t)}})}error(t){Wo(()=>{if(this._throwIfClosed(),!this.isStopped){this.hasError=this.isStopped=!0,this.thrownError=t;const{observers:r}=this;for(;r.length;)r.shift().error(t)}})}complete(){Wo(()=>{if(this._throwIfClosed(),!this.isStopped){this.isStopped=!0;const{observers:t}=this;for(;t.length;)t.shift().complete()}})}unsubscribe(){this.isStopped=this.closed=!0,this.observers=null}get observed(){var t;return(null===(t=this.observers)||void 0===t?void 0:t.length)>0}_trySubscribe(t){return this._throwIfClosed(),super._trySubscribe(t)}_subscribe(t){return this._throwIfClosed(),this._checkFinalizedStatuses(t),this._innerSubscribe(t)}_innerSubscribe(t){const{hasError:r,isStopped:o,observers:i}=this;return r||o?lu:(i.push(t),new Tt(()=>Rr(i,t)))}_checkFinalizedStatuses(t){const{hasError:r,thrownError:o,isStopped:i}=this;r?t.error(o):i&&t.complete()}asObservable(){const t=new ze;return t.source=this,t}}return e.create=(n,t)=>new mu(n,t),e})();class mu extends Rs{constructor(n,t){super(),this.destination=n,this.source=t}next(n){var t,r;null===(r=null===(t=this.destination)||void 0===t?void 0:t.next)||void 0===r||r.call(t,n)}error(n){var t,r;null===(r=null===(t=this.destination)||void 0===t?void 0:t.error)||void 0===r||r.call(t,n)}complete(){var n,t;null===(t=null===(n=this.destination)||void 0===n?void 0:n.complete)||void 0===t||t.call(n)}_subscribe(n){var t,r;return null!==(r=null===(t=this.source)||void 0===t?void 0:t.subscribe(n))&&void 0!==r?r:lu}}function zn(e){return n=>{if(function gv(e){return me(e?.lift)}(n))return n.lift(function(t){try{return e(t,this)}catch(r){this.error(r)}});throw new TypeError("Unable to lift unknown Observable type")}}class Gn extends Ts{constructor(n,t,r,o,i){super(n),this.onFinalize=i,this._next=t?function(s){try{t(s)}catch(a){n.error(a)}}:super._next,this._error=o?function(s){try{o(s)}catch(a){n.error(a)}finally{this.unsubscribe()}}:super._error,this._complete=r?function(){try{r()}catch(s){n.error(s)}finally{this.unsubscribe()}}:super._complete}unsubscribe(){var n;const{closed:t}=this;super.unsubscribe(),!t&&(null===(n=this.onFinalize)||void 0===n||n.call(this))}}function Ps(e,n){return zn((t,r)=>{let o=0;t.subscribe(new Gn(r,i=>{r.next(e.call(n,i,o++))}))})}function En(e){return this instanceof En?(this.v=e,this):new En(e)}function vv(e,n,t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var o,r=t.apply(e,n||[]),i=[];return o={},s("next"),s("throw"),s("return"),o[Symbol.asyncIterator]=function(){return this},o;function s(h){r[h]&&(o[h]=function(p){return new Promise(function(m,D){i.push([h,p,m,D])>1||a(h,p)})})}function a(h,p){try{!function l(h){h.value instanceof En?Promise.resolve(h.value.v).then(c,u):d(i[0][2],h)}(r[h](p))}catch(m){d(i[0][3],m)}}function c(h){a("next",h)}function u(h){a("throw",h)}function d(h,p){h(p),i.shift(),i.length&&a(i[0][0],i[0][1])}}function yv(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,n=e[Symbol.asyncIterator];return n?n.call(e):(e=function yu(e){var n="function"==typeof Symbol&&Symbol.iterator,t=n&&e[n],r=0;if(t)return t.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(n?"Object is not iterable.":"Symbol.iterator is not defined.")}(e),t={},r("next"),r("throw"),r("return"),t[Symbol.asyncIterator]=function(){return this},t);function r(i){t[i]=e[i]&&function(s){return new Promise(function(a,l){!function o(i,s,a,l){Promise.resolve(l).then(function(c){i({value:c,done:a})},s)}(a,l,(s=e[i](s)).done,s.value)})}}}const Cu=e=>e&&"number"==typeof e.length&&"function"!=typeof e;function Du(e){return me(e?.then)}function wu(e){return me(e[Os])}function bu(e){return Symbol.asyncIterator&&me(e?.[Symbol.asyncIterator])}function Eu(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 Iu=function Dv(){return"function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator"}();function Mu(e){return me(e?.[Iu])}function Su(e){return vv(this,arguments,function*(){const t=e.getReader();try{for(;;){const{value:r,done:o}=yield En(t.read());if(o)return yield En(void 0);yield yield En(r)}}finally{t.releaseLock()}})}function Au(e){return me(e?.getReader)}function In(e){if(e instanceof ze)return e;if(null!=e){if(wu(e))return function wv(e){return new ze(n=>{const t=e[Os]();if(me(t.subscribe))return t.subscribe(n);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}(e);if(Cu(e))return function bv(e){return new ze(n=>{for(let t=0;t{e.then(t=>{n.closed||(n.next(t),n.complete())},t=>n.error(t)).then(null,du)})}(e);if(bu(e))return Tu(e);if(Mu(e))return function Iv(e){return new ze(n=>{for(const t of e)if(n.next(t),n.closed)return;n.complete()})}(e);if(Au(e))return function Mv(e){return Tu(Su(e))}(e)}throw Eu(e)}function Tu(e){return new ze(n=>{(function Sv(e,n){var t,r,o,i;return function mv(e,n,t,r){return new(t||(t=Promise))(function(i,s){function a(u){try{c(r.next(u))}catch(d){s(d)}}function l(u){try{c(r.throw(u))}catch(d){s(d)}}function c(u){u.done?i(u.value):function o(i){return i instanceof t?i:new t(function(s){s(i)})}(u.value).then(a,l)}c((r=r.apply(e,n||[])).next())})}(this,void 0,void 0,function*(){try{for(t=yv(e);!(r=yield t.next()).done;)if(n.next(r.value),n.closed)return}catch(s){o={error:s}}finally{try{r&&!r.done&&(i=t.return)&&(yield i.call(t))}finally{if(o)throw o.error}}n.complete()})})(e,n).catch(t=>n.error(t))})}function rn(e,n,t,r=0,o=!1){const i=n.schedule(function(){t(),o?e.add(this.schedule(null,r)):this.unsubscribe()},r);if(e.add(i),!o)return i}function xu(e,n,t=1/0){return me(n)?xu((r,o)=>Ps((i,s)=>n(r,i,o,s))(In(e(r,o))),t):("number"==typeof n&&(t=n),zn((r,o)=>function Av(e,n,t,r,o,i,s,a){const l=[];let c=0,u=0,d=!1;const h=()=>{d&&!l.length&&!c&&n.complete()},p=D=>c{i&&n.next(D),c++;let I=!1;In(t(D,u++)).subscribe(new Gn(n,S=>{o?.(S),i?p(S):n.next(S)},()=>{I=!0},void 0,()=>{if(I)try{for(c--;l.length&&cm(S)):m(S)}h()}catch(S){n.error(S)}}))};return e.subscribe(new Gn(n,p,()=>{d=!0,h()})),()=>{a?.()}}(r,o,e,t)))}const Ls=new ze(e=>e.complete());function Vs(e){return e[e.length-1]}function Nu(e,n=0){return zn((t,r)=>{t.subscribe(new Gn(r,o=>rn(r,e,()=>r.next(o),n),()=>rn(r,e,()=>r.complete(),n),o=>rn(r,e,()=>r.error(o),n)))})}function Fu(e,n=0){return zn((t,r)=>{r.add(e.schedule(()=>t.subscribe(r),n))})}function Ou(e,n){if(!e)throw new Error("Iterable cannot be null");return new ze(t=>{rn(t,n,()=>{const r=e[Symbol.asyncIterator]();rn(t,n,()=>{r.next().then(o=>{o.done?t.complete():t.next(o.value)})},0,!0)})})}function Bs(e,n){return n?function Hv(e,n){if(null!=e){if(wu(e))return function Pv(e,n){return In(e).pipe(Fu(n),Nu(n))}(e,n);if(Cu(e))return function Lv(e,n){return new ze(t=>{let r=0;return n.schedule(function(){r===e.length?t.complete():(t.next(e[r++]),t.closed||this.schedule())})})}(e,n);if(Du(e))return function kv(e,n){return In(e).pipe(Fu(n),Nu(n))}(e,n);if(bu(e))return Ou(e,n);if(Mu(e))return function Vv(e,n){return new ze(t=>{let r;return rn(t,n,()=>{r=e[Iu](),rn(t,n,()=>{let o,i;try{({value:o,done:i}=r.next())}catch(s){return void t.error(s)}i?t.complete():t.next(o)},0,!0)}),()=>me(r?.return)&&r.return()})}(e,n);if(Au(e))return function Bv(e,n){return Ou(Su(e),n)}(e,n)}throw Eu(e)}(e,n):In(e)}function jv(...e){const n=function Ov(e){return function Nv(e){return e&&me(e.schedule)}(Vs(e))?e.pop():void 0}(e),t=function Rv(e,n){return"number"==typeof Vs(e)?e.pop():n}(e,1/0),r=e;return r.length?1===r.length?In(r[0]):function Tv(e=1/0){return xu(hu,e)}(t)(Bs(r,n)):Ls}function Hs(e,n,...t){return!0===n?(e(),null):!1===n?null:n(...t).pipe(function $v(e){return e<=0?()=>Ls:zn((n,t)=>{let r=0;n.subscribe(new Gn(t,o=>{++r<=e&&(t.next(o),e<=r&&t.complete())}))})}(1)).subscribe(()=>e())}function ae(e){for(let n in e)if(e[n]===ae)return n;throw Error("Could not find renamed property on target object.")}function js(e,n){for(const t in n)n.hasOwnProperty(t)&&!e.hasOwnProperty(t)&&(e[t]=n[t])}function le(e){if("string"==typeof e)return e;if(Array.isArray(e))return"["+e.map(le).join(", ")+"]";if(null==e)return""+e;if(e.overriddenName)return`${e.overriddenName}`;if(e.name)return`${e.name}`;const n=e.toString();if(null==n)return""+n;const t=n.indexOf("\n");return-1===t?n:n.substring(0,t)}function $s(e,n){return null==e||""===e?null===n?"":n:null==n||""===n?e:e+" "+n}const zv=ae({__forward_ref__:ae});function ue(e){return e.__forward_ref__=ue,e.toString=function(){return le(this())},e}function P(e){return Us(e)?e():e}function Us(e){return"function"==typeof e&&e.hasOwnProperty(zv)&&e.__forward_ref__===ue}function zs(e){return e&&!!e.\u0275providers}const Ru="https://g.co/ng/security#xss";class A extends Error{constructor(n,t){super(function qo(e,n){return`NG0${Math.abs(e)}${n?": "+n.trim():""}`}(n,t)),this.code=n}}function j(e){return"string"==typeof e?e:null==e?"":String(e)}function Zo(e,n){throw new A(-201,!1)}function ut(e,n){null==e&&function re(e,n,t,r){throw new Error(`ASSERTION ERROR: ${e}`+(null==r?"":` [Expected=> ${t} ${r} ${n} <=Actual]`))}(n,e,null,"!=")}function de(e){return{token:e.token,providedIn:e.providedIn||null,factory:e.factory,value:void 0}}function $t(e){return{providers:e.providers||[],imports:e.imports||[]}}function Qo(e){return Pu(e,Yo)||Pu(e,Lu)}function Pu(e,n){return e.hasOwnProperty(n)?e[n]:null}function ku(e){return e&&(e.hasOwnProperty(Gs)||e.hasOwnProperty(Jv))?e[Gs]:null}const Yo=ae({\u0275prov:ae}),Gs=ae({\u0275inj:ae}),Lu=ae({ngInjectableDef:ae}),Jv=ae({ngInjectorDef:ae});var B=(()=>((B=B||{})[B.Default=0]="Default",B[B.Host=1]="Host",B[B.Self=2]="Self",B[B.SkipSelf=4]="SkipSelf",B[B.Optional=8]="Optional",B))();let Ws;function dt(e){const n=Ws;return Ws=e,n}function Vu(e,n,t){const r=Qo(e);return r&&"root"==r.providedIn?void 0===r.value?r.value=r.factory():r.value:t&B.Optional?null:void 0!==n?n:void Zo(le(e))}const fe=(()=>typeof globalThis<"u"&&globalThis||typeof global<"u"&&global||typeof window<"u"&&window||typeof self<"u"&&typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&self)(),Pr={},qs="__NG_DI_FLAG__",Ko="ngTempTokenPath",ty=/\n/gm,Bu="__source";let kr;function Wn(e){const n=kr;return kr=e,n}function ry(e,n=B.Default){if(void 0===kr)throw new A(-203,!1);return null===kr?Vu(e,void 0,n):kr.get(e,n&B.Optional?null:void 0,n)}function oe(e,n=B.Default){return(function Xv(){return Ws}()||ry)(P(e),n)}function Jo(e){return typeof e>"u"||"number"==typeof e?e:0|(e.optional&&8)|(e.host&&1)|(e.self&&2)|(e.skipSelf&&4)}function Zs(e){const n=[];for(let t=0;t((_t=_t||{})[_t.OnPush=0]="OnPush",_t[_t.Default=1]="Default",_t))(),xt=(()=>{return(e=xt||(xt={}))[e.Emulated=0]="Emulated",e[e.None=2]="None",e[e.ShadowDom=3]="ShadowDom",xt;var e})();const Ut={},te=[],Xo=ae({\u0275cmp:ae}),Qs=ae({\u0275dir:ae}),Ys=ae({\u0275pipe:ae}),ju=ae({\u0275mod:ae}),zt=ae({\u0275fac:ae}),Vr=ae({__NG_ELEMENT_ID__:ae});let ly=0;function Nt(e){return sn(()=>{const t=!0===e.standalone,r={},o={type:e.type,providersResolver:null,decls:e.decls,vars:e.vars,factory:null,template:e.template||null,consts:e.consts||null,ngContentSelectors:e.ngContentSelectors,hostBindings:e.hostBindings||null,hostVars:e.hostVars||0,hostAttrs:e.hostAttrs||null,contentQueries:e.contentQueries||null,declaredInputs:r,inputs:null,outputs:null,exportAs:e.exportAs||null,onPush:e.changeDetection===_t.OnPush,directiveDefs:null,pipeDefs:null,standalone:t,dependencies:t&&e.dependencies||null,getStandaloneInjector:null,selectors:e.selectors||te,viewQuery:e.viewQuery||null,features:e.features||null,data:e.data||{},encapsulation:e.encapsulation||xt.Emulated,id:"c"+ly++,styles:e.styles||te,_:null,setInput:null,schemas:e.schemas||null,tView:null,findHostDirectiveDefs:null,hostDirectives:null},i=e.dependencies,s=e.features;return o.inputs=zu(e.inputs,r),o.outputs=zu(e.outputs),s&&s.forEach(a=>a(o)),o.directiveDefs=i?()=>("function"==typeof i?i():i).map($u).filter(Uu):null,o.pipeDefs=i?()=>("function"==typeof i?i():i).map(Ge).filter(Uu):null,o})}function $u(e){return ie(e)||ke(e)}function Uu(e){return null!==e}function an(e){return sn(()=>({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 zu(e,n){if(null==e)return Ut;const t={};for(const r in e)if(e.hasOwnProperty(r)){let o=e[r],i=o;Array.isArray(o)&&(i=o[1],o=o[0]),t[o]=r,n&&(n[o]=i)}return t}const $=Nt;function Je(e){return{type:e.type,name:e.name,factory:null,pure:!1!==e.pure,standalone:!0===e.standalone,onDestroy:e.type.prototype.ngOnDestroy||null}}function ie(e){return e[Xo]||null}function ke(e){return e[Qs]||null}function Ge(e){return e[Ys]||null}const Z=11;function ot(e){return Array.isArray(e)&&"object"==typeof e[1]}function yt(e){return Array.isArray(e)&&!0===e[1]}function Xs(e){return 0!=(4&e.flags)}function Ur(e){return e.componentOffset>-1}function oi(e){return 1==(1&e.flags)}function Ct(e){return null!==e.template}function dy(e){return 0!=(256&e[2])}function Sn(e,n){return e.hasOwnProperty(zt)?e[zt]:null}class py{constructor(n,t,r){this.previousValue=n,this.currentValue=t,this.firstChange=r}isFirstChange(){return this.firstChange}}function Wt(){return Yu}function Yu(e){return e.type.prototype.ngOnChanges&&(e.setInput=my),gy}function gy(){const e=Ju(this),n=e?.current;if(n){const t=e.previous;if(t===Ut)e.previous=n;else for(let r in n)t[r]=n[r];e.current=null,this.ngOnChanges(n)}}function my(e,n,t,r){const o=this.declaredInputs[t],i=Ju(e)||function _y(e,n){return e[Ku]=n}(e,{previous:Ut,current:null}),s=i.current||(i.current={}),a=i.previous,l=a[o];s[o]=new py(l&&l.currentValue,n,a===Ut),e[r]=n}Wt.ngInherit=!0;const Ku="__ngSimpleChanges__";function Ju(e){return e[Ku]||null}function Re(e){for(;Array.isArray(e);)e=e[0];return e}function ii(e,n){return Re(n[e])}function it(e,n){return Re(n[e.index])}function td(e,n){return e.data[n]}function st(e,n){const t=n[e];return ot(t)?t:t[0]}function si(e){return 64==(64&e[2])}function ln(e,n){return null==n?null:e[n]}function nd(e){e[18]=0}function ta(e,n){e[5]+=n;let t=e,r=e[3];for(;null!==r&&(1===n&&1===t[5]||-1===n&&0===t[5]);)r[5]+=n,t=r,r=r[3]}const U={lFrame:fd(null),bindingsEnabled:!0};function od(){return U.bindingsEnabled}function E(){return U.lFrame.lView}function ee(){return U.lFrame.tView}function Q(e){return U.lFrame.contextLView=e,e[8]}function Y(e){return U.lFrame.contextLView=null,e}function Pe(){let e=id();for(;null!==e&&64===e.type;)e=e.parent;return e}function id(){return U.lFrame.currentTNode}function Ot(e,n){const t=U.lFrame;t.currentTNode=e,t.isParent=n}function na(){return U.lFrame.isParent}function ra(){U.lFrame.isParent=!1}function qe(){const e=U.lFrame;let n=e.bindingRootIndex;return-1===n&&(n=e.bindingRootIndex=e.tView.bindingStartIndex),n}function Jn(){return U.lFrame.bindingIndex++}function Zt(e){const n=U.lFrame,t=n.bindingIndex;return n.bindingIndex=n.bindingIndex+e,t}function xy(e,n){const t=U.lFrame;t.bindingIndex=t.bindingRootIndex=e,oa(n)}function oa(e){U.lFrame.currentDirectiveIndex=e}function sa(e){U.lFrame.currentQueryIndex=e}function Fy(e){const n=e[1];return 2===n.type?n.declTNode:1===n.type?e[6]:null}function ud(e,n,t){if(t&B.SkipSelf){let o=n,i=e;for(;!(o=o.parent,null!==o||t&B.Host||(o=Fy(i),null===o||(i=i[15],10&o.type))););if(null===o)return!1;n=o,e=i}const r=U.lFrame=dd();return r.currentTNode=n,r.lView=e,!0}function aa(e){const n=dd(),t=e[1];U.lFrame=n,n.currentTNode=t.firstChild,n.lView=e,n.tView=t,n.contextLView=e,n.bindingIndex=t.bindingStartIndex,n.inI18n=!1}function dd(){const e=U.lFrame,n=null===e?null:e.child;return null===n?fd(e):n}function fd(e){const n={currentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:-1,contextLView:null,elementDepthCount:0,currentNamespace:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:e,child:null,inI18n:!1};return null!==e&&(e.child=n),n}function hd(){const e=U.lFrame;return U.lFrame=e.parent,e.currentTNode=null,e.lView=null,e}const pd=hd;function la(){const e=hd();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 Ze(){return U.lFrame.selectedIndex}function An(e){U.lFrame.selectedIndex=e}function _e(){const e=U.lFrame;return td(e.tView,e.selectedIndex)}function ai(e,n){for(let t=n.directiveStart,r=n.directiveEnd;t=r)break}else n[l]<0&&(e[18]+=65536),(a>11>16&&(3&e[2])===n){e[2]+=2048;try{i.call(a)}finally{}}}else try{i.call(a)}finally{}}class Gr{constructor(n,t,r){this.factory=n,this.resolving=!1,this.canSeeViewProviders=t,this.injectImpl=r}}function da(e,n,t){let r=0;for(;rn){s=i-1;break}}}for(;i>16}(e),r=n;for(;t>0;)r=r[15],t--;return r}let fa=!0;function fi(e){const n=fa;return fa=e,n}let Gy=0;const Rt={};function hi(e,n){const t=bd(e,n);if(-1!==t)return t;const r=n[1];r.firstCreatePass&&(e.injectorIndex=n.length,ha(r.data,e),ha(n,null),ha(r.blueprint,null));const o=pa(e,n),i=e.injectorIndex;if(Cd(o)){const s=ui(o),a=di(o,n),l=a[1].data;for(let c=0;c<8;c++)n[i+c]=a[s+c]|l[s+c]}return n[i+8]=o,i}function ha(e,n){e.push(0,0,0,0,0,0,0,0,n)}function bd(e,n){return-1===e.injectorIndex||e.parent&&e.parent.injectorIndex===e.injectorIndex||null===n[e.injectorIndex+8]?-1:e.injectorIndex}function pa(e,n){if(e.parent&&-1!==e.parent.injectorIndex)return e.parent.injectorIndex;let t=0,r=null,o=n;for(;null!==o;){if(r=xd(o),null===r)return-1;if(t++,o=o[15],-1!==r.injectorIndex)return r.injectorIndex|t<<16}return-1}function ga(e,n,t){!function Wy(e,n,t){let r;"string"==typeof t?r=t.charCodeAt(0)||0:t.hasOwnProperty(Vr)&&(r=t[Vr]),null==r&&(r=t[Vr]=Gy++);const o=255&r;n.data[e+(o>>5)]|=1<=0?255&n:Yy:n}(t);if("function"==typeof i){if(!ud(n,e,r))return r&B.Host?Ed(o,0,r):Id(n,t,r,o);try{const s=i(r);if(null!=s||r&B.Optional)return s;Zo()}finally{pd()}}else if("number"==typeof i){let s=null,a=bd(e,n),l=-1,c=r&B.Host?n[16][6]:null;for((-1===a||r&B.SkipSelf)&&(l=-1===a?pa(e,n):n[a+8],-1!==l&&Td(r,!1)?(s=n[1],a=ui(l),n=di(l,n)):a=-1);-1!==a;){const u=n[1];if(Ad(i,a,u.data)){const d=Zy(a,n,t,s,r,c);if(d!==Rt)return d}l=n[a+8],-1!==l&&Td(r,n[1].data[a+8]===c)&&Ad(i,a,n)?(s=u,a=ui(l),n=di(l,n)):a=-1}}return o}function Zy(e,n,t,r,o,i){const s=n[1],a=s.data[e+8],u=function pi(e,n,t,r,o){const i=e.providerIndexes,s=n.data,a=1048575&i,l=e.directiveStart,u=i>>20,h=o?a+u:e.directiveEnd;for(let p=r?a:a+u;p=l&&m.type===t)return p}if(o){const p=s[l];if(p&&Ct(p)&&p.type===t)return l}return null}(a,s,t,null==r?Ur(a)&&fa:r!=s&&0!=(3&a.type),o&B.Host&&i===a);return null!==u?Tn(n,s,u,a):Rt}function Tn(e,n,t,r){let o=e[t];const i=n.data;if(function jy(e){return e instanceof Gr}(o)){const s=o;s.resolving&&function Gv(e,n){const t=n?`. Dependency path: ${n.join(" > ")} > ${e}`:"";throw new A(-200,`Circular dependency in DI detected for ${e}${t}`)}(function ne(e){return"function"==typeof e?e.name||e.toString():"object"==typeof e&&null!=e&&"function"==typeof e.type?e.type.name||e.type.toString():j(e)}(i[t]));const a=fi(s.canSeeViewProviders);s.resolving=!0;const l=s.injectImpl?dt(s.injectImpl):null;ud(e,r,B.Default);try{o=e[t]=s.factory(void 0,i,e,r),n.firstCreatePass&&t>=r.directiveStart&&function By(e,n,t){const{ngOnChanges:r,ngOnInit:o,ngDoCheck:i}=n.type.prototype;if(r){const s=Yu(n);(t.preOrderHooks||(t.preOrderHooks=[])).push(e,s),(t.preOrderCheckHooks||(t.preOrderCheckHooks=[])).push(e,s)}o&&(t.preOrderHooks||(t.preOrderHooks=[])).push(0-e,o),i&&((t.preOrderHooks||(t.preOrderHooks=[])).push(e,i),(t.preOrderCheckHooks||(t.preOrderCheckHooks=[])).push(e,i))}(t,i[t],n)}finally{null!==l&&dt(l),fi(a),s.resolving=!1,pd()}}return o}function Ad(e,n,t){return!!(t[n+(e>>5)]&1<{const n=e.prototype.constructor,t=n[zt]||ma(n),r=Object.prototype;let o=Object.getPrototypeOf(e.prototype).constructor;for(;o&&o!==r;){const i=o[zt]||ma(o);if(i&&i!==t)return i;o=Object.getPrototypeOf(o)}return i=>new i})}function ma(e){return Us(e)?()=>{const n=ma(P(e));return n&&n()}:Sn(e)}function xd(e){const n=e[1],t=n.type;return 2===t?n.declTNode:1===t?e[6]:null}const nr="__parameters__";function or(e,n,t){return sn(()=>{const r=function va(e){return function(...t){if(e){const r=e(...t);for(const o in r)this[o]=r[o]}}}(n);function o(...i){if(this instanceof o)return r.apply(this,i),this;const s=new o(...i);return a.annotation=s,a;function a(l,c,u){const d=l.hasOwnProperty(nr)?l[nr]:Object.defineProperty(l,nr,{value:[]})[nr];for(;d.length<=u;)d.push(null);return(d[u]=d[u]||[]).push(s),l}}return t&&(o.prototype=Object.create(t.prototype)),o.prototype.ngMetadataName=e,o.annotationCls=o,o})}class H{constructor(n,t){this._desc=n,this.ngMetadataName="InjectionToken",this.\u0275prov=void 0,"number"==typeof t?this.__NG_ELEMENT_ID__=t:void 0!==t&&(this.\u0275prov=de({token:this,providedIn:t.providedIn||"root",factory:t.factory}))}get multi(){return this}toString(){return`InjectionToken ${this._desc}`}}function xn(e,n){e.forEach(t=>Array.isArray(t)?xn(t,n):n(t))}function Fd(e,n,t){n>=e.length?e.push(t):e.splice(n,0,t)}function gi(e,n){return n>=e.length-1?e.pop():e.splice(n,1)[0]}function at(e,n,t){let r=ir(e,n);return r>=0?e[1|r]=t:(r=~r,function tC(e,n,t,r){let o=e.length;if(o==n)e.push(t,r);else if(1===o)e.push(r,e[0]),e[0]=t;else{for(o--,e.push(e[o-1],e[o]);o>n;)e[o]=e[o-2],o--;e[n]=t,e[n+1]=r}}(e,r,n,t)),r}function Ca(e,n){const t=ir(e,n);if(t>=0)return e[1|t]}function ir(e,n){return function Od(e,n,t){let r=0,o=e.length>>t;for(;o!==r;){const i=r+(o-r>>1),s=e[i<n?o=i:r=i+1}return~(o<((Xe=Xe||{})[Xe.Important=1]="Important",Xe[Xe.DashCase=2]="DashCase",Xe))();const Ma=new Map;let bC=0;const Aa="__ngContext__";function He(e,n){ot(n)?(e[Aa]=n[20],function IC(e){Ma.set(e[20],e)}(n)):e[Aa]=n}function xa(e,n){return undefined(e,n)}function Xr(e){const n=e[3];return yt(n)?n[3]:n}function Na(e){return Xd(e[13])}function Fa(e){return Xd(e[4])}function Xd(e){for(;null!==e&&!yt(e);)e=e[4];return e}function ar(e,n,t,r,o){if(null!=r){let i,s=!1;yt(r)?i=r:ot(r)&&(s=!0,r=r[0]);const a=Re(r);0===e&&null!==t?null==o?sf(n,t,a):Nn(n,t,a,o||null,!0):1===e&&null!==t?Nn(n,t,a,o||null,!0):2===e?function Ba(e,n,t){const r=Di(e,n);r&&function GC(e,n,t,r){e.removeChild(n,t,r)}(e,r,n,t)}(n,a,s):3===e&&n.destroyNode(a),null!=i&&function ZC(e,n,t,r,o){const i=t[7];i!==Re(t)&&ar(n,e,r,i,o);for(let a=10;a0&&(e[t-1][4]=r[4]);const i=gi(e,10+n);!function LC(e,n){eo(e,n,n[Z],2,null,null),n[0]=null,n[6]=null}(r[1],r);const s=i[19];null!==s&&s.detachView(i[1]),r[3]=null,r[4]=null,r[2]&=-65}return r}function nf(e,n){if(!(128&n[2])){const t=n[Z];t.destroyNode&&eo(e,n,t,3,null,null),function HC(e){let n=e[13];if(!n)return ka(e[1],e);for(;n;){let t=null;if(ot(n))t=n[13];else{const r=n[10];r&&(t=r)}if(!t){for(;n&&!n[4]&&n!==e;)ot(n)&&ka(n[1],n),n=n[3];null===n&&(n=e),ot(n)&&ka(n[1],n),t=n&&n[4]}n=t}}(n)}}function ka(e,n){if(!(128&n[2])){n[2]&=-65,n[2]|=128,function zC(e,n){let t;if(null!=e&&null!=(t=e.destroyHooks))for(let r=0;r=0?r[o=s]():r[o=-s].unsubscribe(),i+=2}else{const s=r[o=t[i+1]];t[i].call(s)}if(null!==r){for(let i=o+1;i-1){const{encapsulation:i}=e.data[r.directiveStart+o];if(i===xt.None||i===xt.Emulated)return null}return it(r,t)}}(e,n.parent,t)}function Nn(e,n,t,r,o){e.insertBefore(n,t,r,o)}function sf(e,n,t){e.appendChild(n,t)}function af(e,n,t,r,o){null!==r?Nn(e,n,t,r,o):sf(e,n,t)}function Di(e,n){return e.parentNode(n)}let $a,uf=function cf(e,n,t){return 40&e.type?it(e,t):null};function wi(e,n,t,r){const o=rf(e,r,n),i=n[Z],a=function lf(e,n,t){return uf(e,n,t)}(r.parent||n[6],r,n);if(null!=o)if(Array.isArray(t))for(let l=0;l((Me=Me||{})[Me.NONE=0]="NONE",Me[Me.HTML=1]="HTML",Me[Me.STYLE=2]="STYLE",Me[Me.SCRIPT=3]="SCRIPT",Me[Me.URL=4]="URL",Me[Me.RESOURCE_URL=5]="RESOURCE_URL",Me))();function un(e){const n=function ro(){const e=E();return e&&e[12]}();return n?n.sanitize(Me.URL,e)||"":function to(e,n){const t=function sD(e){return e instanceof Cf&&e.getTypeName()||null}(e);if(null!=t&&t!==n){if("ResourceURL"===t&&"URL"===n)return!0;throw new Error(`Required a safe ${n}, got a ${t} (see ${Ru})`)}return t===n}(e,"URL")?cn(e):function za(e){return(e=String(e)).match(uD)?e:"unsafe:"+e}(j(e))}const Af=new H("ENVIRONMENT_INITIALIZER"),Tf=new H("INJECTOR",-1),xf=new H("INJECTOR_DEF_TYPES");class Nf{get(n,t=Pr){if(t===Pr){const r=new Error(`NullInjectorError: No provider for ${le(n)}!`);throw r.name="NullInjectorError",r}return t}}function ED(...e){return{\u0275providers:Ff(0,e),\u0275fromNgModule:!0}}function Ff(e,...n){const t=[],r=new Set;let o;return xn(n,i=>{const s=i;Za(s,t,[],r)&&(o||(o=[]),o.push(s))}),void 0!==o&&Of(o,t),t}function Of(e,n){for(let t=0;t{n.push(i)})}}function Za(e,n,t,r){if(!(e=P(e)))return!1;let o=null,i=ku(e);const s=!i&&ie(e);if(i||s){if(s&&!s.standalone)return!1;o=e}else{const l=e.ngModule;if(i=ku(l),!i)return!1;o=l}const a=r.has(o);if(s){if(a)return!1;if(r.add(o),s.dependencies){const l="function"==typeof s.dependencies?s.dependencies():s.dependencies;for(const c of l)Za(c,n,t,r)}}else{if(!i)return!1;{if(null!=i.imports&&!a){let c;r.add(o);try{xn(i.imports,u=>{Za(u,n,t,r)&&(c||(c=[]),c.push(u))})}finally{}void 0!==c&&Of(c,n)}if(!a){const c=Sn(o)||(()=>new o);n.push({provide:o,useFactory:c,deps:te},{provide:xf,useValue:o,multi:!0},{provide:Af,useValue:()=>oe(o),multi:!0})}const l=i.providers;null==l||a||Qa(l,u=>{n.push(u)})}}return o!==e&&void 0!==e.providers}function Qa(e,n){for(let t of e)zs(t)&&(t=t.\u0275providers),Array.isArray(t)?Qa(t,n):n(t)}const ID=ae({provide:String,useValue:ae});function Ya(e){return null!==e&&"object"==typeof e&&ID in e}function On(e){return"function"==typeof e}const Ka=new H("Set Injector scope."),Si={},SD={};let Ja;function Ai(){return void 0===Ja&&(Ja=new Nf),Ja}class lr{}class kf extends lr{get destroyed(){return this._destroyed}constructor(n,t,r,o){super(),this.parent=t,this.source=r,this.scopes=o,this.records=new Map,this._ngOnDestroyHooks=new Set,this._onDestroyHooks=[],this._destroyed=!1,el(n,s=>this.processProvider(s)),this.records.set(Tf,cr(void 0,this)),o.has("environment")&&this.records.set(lr,cr(void 0,this));const i=this.records.get(Ka);null!=i&&"string"==typeof i.value&&this.scopes.add(i.value),this.injectorDefTypes=new Set(this.get(xf.multi,te,B.Self))}destroy(){this.assertNotDestroyed(),this._destroyed=!0;try{for(const n of this._ngOnDestroyHooks)n.ngOnDestroy();for(const n of this._onDestroyHooks)n()}finally{this.records.clear(),this._ngOnDestroyHooks.clear(),this.injectorDefTypes.clear(),this._onDestroyHooks.length=0}}onDestroy(n){this._onDestroyHooks.push(n)}runInContext(n){this.assertNotDestroyed();const t=Wn(this),r=dt(void 0);try{return n()}finally{Wn(t),dt(r)}}get(n,t=Pr,r=B.Default){this.assertNotDestroyed(),r=Jo(r);const o=Wn(this),i=dt(void 0);try{if(!(r&B.SkipSelf)){let a=this.records.get(n);if(void 0===a){const l=function FD(e){return"function"==typeof e||"object"==typeof e&&e instanceof H}(n)&&Qo(n);a=l&&this.injectableDefInScope(l)?cr(Xa(n),Si):null,this.records.set(n,a)}if(null!=a)return this.hydrate(n,a)}return(r&B.Self?Ai():this.parent).get(n,t=r&B.Optional&&t===Pr?null:t)}catch(s){if("NullInjectorError"===s.name){if((s[Ko]=s[Ko]||[]).unshift(le(n)),o)throw s;return function sy(e,n,t,r){const o=e[Ko];throw n[Bu]&&o.unshift(n[Bu]),e.message=function ay(e,n,t,r=null){e=e&&"\n"===e.charAt(0)&&"\u0275"==e.charAt(1)?e.slice(2):e;let o=le(n);if(Array.isArray(n))o=n.map(le).join(" -> ");else if("object"==typeof n){let i=[];for(let s in n)if(n.hasOwnProperty(s)){let a=n[s];i.push(s+":"+("string"==typeof a?JSON.stringify(a):le(a)))}o=`{${i.join(", ")}}`}return`${t}${r?"("+r+")":""}[${o}]: ${e.replace(ty,"\n ")}`}("\n"+e.message,o,t,r),e.ngTokenPath=o,e[Ko]=null,e}(s,n,"R3InjectorError",this.source)}throw s}finally{dt(i),Wn(o)}}resolveInjectorInitializers(){const n=Wn(this),t=dt(void 0);try{const r=this.get(Af.multi,te,B.Self);for(const o of r)o()}finally{Wn(n),dt(t)}}toString(){const n=[],t=this.records;for(const r of t.keys())n.push(le(r));return`R3Injector[${n.join(", ")}]`}assertNotDestroyed(){if(this._destroyed)throw new A(205,!1)}processProvider(n){let t=On(n=P(n))?n:P(n&&n.provide);const r=function TD(e){return Ya(e)?cr(void 0,e.useValue):cr(Lf(e),Si)}(n);if(On(n)||!0!==n.multi)this.records.get(t);else{let o=this.records.get(t);o||(o=cr(void 0,Si,!0),o.factory=()=>Zs(o.multi),this.records.set(t,o)),t=n,o.multi.push(n)}this.records.set(t,r)}hydrate(n,t){return t.value===Si&&(t.value=SD,t.value=t.factory()),"object"==typeof t.value&&t.value&&function ND(e){return null!==e&&"object"==typeof e&&"function"==typeof e.ngOnDestroy}(t.value)&&this._ngOnDestroyHooks.add(t.value),t.value}injectableDefInScope(n){if(!n.providedIn)return!1;const t=P(n.providedIn);return"string"==typeof t?"any"===t||this.scopes.has(t):this.injectorDefTypes.has(t)}}function Xa(e){const n=Qo(e),t=null!==n?n.factory:Sn(e);if(null!==t)return t;if(e instanceof H)throw new A(204,!1);if(e instanceof Function)return function AD(e){const n=e.length;if(n>0)throw function Qr(e,n){const t=[];for(let r=0;rt.factory(e):()=>new e}(e);throw new A(204,!1)}function Lf(e,n,t){let r;if(On(e)){const o=P(e);return Sn(o)||Xa(o)}if(Ya(e))r=()=>P(e.useValue);else if(function Pf(e){return!(!e||!e.useFactory)}(e))r=()=>e.useFactory(...Zs(e.deps||[]));else if(function Rf(e){return!(!e||!e.useExisting)}(e))r=()=>oe(P(e.useExisting));else{const o=P(e&&(e.useClass||e.provide));if(!function xD(e){return!!e.deps}(e))return Sn(o)||Xa(o);r=()=>new o(...Zs(e.deps))}return r}function cr(e,n,t=!1){return{factory:e,value:n,multi:t?[]:void 0}}function el(e,n){for(const t of e)Array.isArray(t)?el(t,n):t&&zs(t)?el(t.\u0275providers,n):n(t)}class OD{}class Vf{}class PD{resolveComponentFactory(n){throw function RD(e){const n=Error(`No component factory found for ${le(e)}. Did you add it to @NgModule.entryComponents?`);return n.ngComponent=e,n}(n)}}let Ti=(()=>{class e{}return e.NULL=new PD,e})();function kD(){return ur(Pe(),E())}function ur(e,n){return new Dt(it(e,n))}let Dt=(()=>{class e{constructor(t){this.nativeElement=t}}return e.__NG_ELEMENT_ID__=kD,e})();class Hf{}let Rn=(()=>{class e{}return e.__NG_ELEMENT_ID__=()=>function VD(){const e=E(),t=st(Pe().index,e);return(ot(t)?t:e)[Z]}(),e})(),BD=(()=>{class e{}return e.\u0275prov=de({token:e,providedIn:"root",factory:()=>null}),e})();class xi{constructor(n){this.full=n,this.major=n.split(".")[0],this.minor=n.split(".")[1],this.patch=n.split(".").slice(2).join(".")}}const HD=new xi("15.1.0"),tl={};function rl(e){return e.ngOriginalError}class dr{constructor(){this._console=console}handleError(n){const t=this._findOriginalError(n);this._console.error("ERROR",n),t&&this._console.error("ORIGINAL ERROR",t)}_findOriginalError(n){let t=n&&rl(n);for(;t&&rl(t);)t=rl(t);return t||null}}function ol(e){return e.ownerDocument.defaultView}function $f(e,n,t){let r=e.length;for(;;){const o=e.indexOf(n,t);if(-1===o)return o;if(0===o||e.charCodeAt(o-1)<=32){const i=n.length;if(o+i===r||e.charCodeAt(o+i)<=32)return o}t=o+1}}const Uf="ng-template";function YD(e,n,t){let r=0;for(;ri?"":o[d+1].toLowerCase();const p=8&r?h:null;if(p&&-1!==$f(p,c,0)||2&r&&c!==h){if(wt(r))return!1;s=!0}}}}else{if(!s&&!wt(r)&&!wt(l))return!1;if(s&&wt(l))continue;s=!1,r=l|1&r}}return wt(r)||s}function wt(e){return 0==(1&e)}function XD(e,n,t,r){if(null===n)return-1;let o=0;if(r||!t){let i=!1;for(;o-1)for(t++;t0?'="'+a+'"':"")+"]"}else 8&r?o+="."+s:4&r&&(o+=" "+s);else""!==o&&!wt(s)&&(n+=Wf(i,o),o=""),r=s,i=i||!wt(r);t++}return""!==o&&(n+=Wf(i,o)),n}const z={};function f(e){qf(ee(),E(),Ze()+e,!1)}function qf(e,n,t,r){if(!r)if(3==(3&n[2])){const i=e.preOrderCheckHooks;null!==i&&li(n,i,t)}else{const i=e.preOrderHooks;null!==i&&ci(n,i,0,t)}An(t)}function Kf(e,n=null,t=null,r){const o=Jf(e,n,t,r);return o.resolveInjectorInitializers(),o}function Jf(e,n=null,t=null,r,o=new Set){const i=[t||te,ED(e)];return r=r||("object"==typeof e?void 0:le(e)),new kf(i,n||Ai(),r||null,o)}let dn=(()=>{class e{static create(t,r){if(Array.isArray(t))return Kf({name:""},r,t,"");{const o=t.name??"";return Kf({name:o},t.parent,t.providers,o)}}}return e.THROW_IF_NOT_FOUND=Pr,e.NULL=new Nf,e.\u0275prov=de({token:e,providedIn:"any",factory:()=>oe(Tf)}),e.__NG_ELEMENT_ID__=-1,e})();function M(e,n=B.Default){const t=E();return null===t?oe(e,n):Md(Pe(),t,P(e),n)}function ih(e,n){const t=e.contentQueries;if(null!==t)for(let r=0;r22&&qf(e,n,22,!1),t(r,o)}finally{An(i)}}function dl(e,n,t){if(Xs(n)){const o=n.directiveEnd;for(let i=n.directiveStart;i0;){const t=e[--n];if("number"==typeof t&&t<0)return t}return 0})(s)!=a&&s.push(a),s.push(t,r,i)}}(e,n,r,oo(e,t,o.hostVars,z),o)}function Pt(e,n,t,r,o,i){const s=it(e,n);!function _l(e,n,t,r,o,i,s){if(null==i)e.removeAttribute(n,o,t);else{const a=null==s?j(i):s(i,r||"",o);e.setAttribute(n,o,a,t)}}(n[Z],s,i,e.value,t,r,o)}function Gw(e,n,t,r,o,i){const s=i[n];if(null!==s){const a=r.setInput;for(let l=0;l0&&vl(t)}}function vl(e){for(let r=Na(e);null!==r;r=Fa(r))for(let o=10;o0&&vl(i)}const t=e[1].components;if(null!==t)for(let r=0;r0&&vl(o)}}function Yw(e,n){const t=st(n,e),r=t[1];(function Kw(e,n){for(let t=n.length;t-1&&(Pa(n,r),gi(t,r))}this._attachedToViewContainer=!1}nf(this._lView[1],this._lView)}onDestroy(n){!function lh(e,n,t,r){const o=gh(n);null===t?o.push(r):(o.push(t),e.firstCreatePass&&mh(e).push(r,o.length-1))}(this._lView[1],this._lView,null,n)}markForCheck(){yl(this._cdRefInjectingView||this._lView)}detach(){this._lView[2]&=-65}reattach(){this._lView[2]|=64}detectChanges(){Pi(this._lView[1],this._lView,this.context)}checkNoChanges(){}attachToViewContainerRef(){if(this._appRef)throw new A(902,!1);this._attachedToViewContainer=!0}detachFromAppRef(){this._appRef=null,function BC(e,n){eo(e,n,n[Z],2,null,null)}(this._lView[1],this._lView)}attachToAppRef(n){if(this._attachedToViewContainer)throw new A(902,!1);this._appRef=n}}class Jw extends io{constructor(n){super(n),this._view=n}detectChanges(){const n=this._view;Pi(n[1],n,n[8],!1)}checkNoChanges(){}get context(){return null}}class yh extends Ti{constructor(n){super(),this.ngModule=n}resolveComponentFactory(n){const t=ie(n);return new so(t,this.ngModule)}}function Ch(e){const n=[];for(let t in e)e.hasOwnProperty(t)&&n.push({propName:e[t],templateName:t});return n}class eb{constructor(n,t){this.injector=n,this.parentInjector=t}get(n,t,r){r=Jo(r);const o=this.injector.get(n,tl,r);return o!==tl||t===tl?o:this.parentInjector.get(n,t,r)}}class so extends Vf{get inputs(){return Ch(this.componentDef.inputs)}get outputs(){return Ch(this.componentDef.outputs)}constructor(n,t){super(),this.componentDef=n,this.ngModule=t,this.componentType=n.type,this.selector=function iw(e){return e.map(ow).join(",")}(n.selectors),this.ngContentSelectors=n.ngContentSelectors?n.ngContentSelectors:[],this.isBoundToModule=!!t}create(n,t,r,o){let i=(o=o||this.ngModule)instanceof lr?o:o?.injector;i&&null!==this.componentDef.getStandaloneInjector&&(i=this.componentDef.getStandaloneInjector(i)||i);const s=i?new eb(n,i):n,a=s.get(Hf,null);if(null===a)throw new A(407,!1);const l=s.get(BD,null),c=a.createRenderer(null,this.componentDef),u=this.componentDef.selectors[0][0]||"div",d=r?function xw(e,n,t){return e.selectRootElement(n,t===xt.ShadowDom)}(c,r,this.componentDef.encapsulation):Ra(c,u,function Xw(e){const n=e.toLowerCase();return"svg"===n?"svg":"math"===n?"math":null}(u)),h=this.componentDef.onPush?288:272,p=pl(0,null,null,1,0,null,null,null,null,null),m=Fi(null,p,null,h,null,null,a,c,l,s,null);let D,I;aa(m);try{const S=this.componentDef;let O,b=null;S.findHostDirectiveDefs?(O=[],b=new Map,S.findHostDirectiveDefs(S,O,b),O.push(S)):O=[S];const V=function nb(e,n){const t=e[1];return e[22]=n,pr(t,22,2,"#host",null)}(m,d),ce=function rb(e,n,t,r,o,i,s,a){const l=o[1];!function ob(e,n,t,r){for(const o of e)n.mergedAttrs=Wr(n.mergedAttrs,o.hostAttrs);null!==n.mergedAttrs&&(ki(n,n.mergedAttrs,!0),null!==t&&gf(r,t,n))}(r,e,n,s);const c=i.createRenderer(n,t),u=Fi(o,ah(t),null,t.onPush?32:16,o[e.index],e,i,c,a||null,null,null);return l.firstCreatePass&&ml(l,e,r.length-1),Ri(o,u),o[e.index]=u}(V,d,S,O,m,a,c);I=td(p,22),d&&function sb(e,n,t,r){if(r)da(e,t,["ng-version",HD.full]);else{const{attrs:o,classes:i}=function sw(e){const n=[],t=[];let r=1,o=2;for(;r0&&pf(e,t,i.join(" "))}}(c,S,d,r),void 0!==t&&function ab(e,n,t){const r=e.projection=[];for(let o=0;o=0;r--){const o=e[r];o.hostVars=n+=o.hostVars,o.hostAttrs=Wr(o.hostAttrs,t=Wr(t,o.hostAttrs))}}(r)}function wl(e){return e===Ut?{}:e===te?[]:e}function ub(e,n){const t=e.viewQuery;e.viewQuery=t?(r,o)=>{n(r,o),t(r,o)}:n}function db(e,n){const t=e.contentQueries;e.contentQueries=t?(r,o,i)=>{n(r,o,i),t(r,o,i)}:n}function fb(e,n){const t=e.hostBindings;e.hostBindings=t?(r,o)=>{n(r,o),t(r,o)}:n}let Vi=null;function Pn(){if(!Vi){const e=fe.Symbol;if(e&&e.iterator)Vi=e.iterator;else{const n=Object.getOwnPropertyNames(Map.prototype);for(let t=0;ts(Re(V[r.index])):r.index;let b=null;if(!s&&a&&(b=function Sb(e,n,t,r){const o=e.cleanup;if(null!=o)for(let i=0;il?a[l]:null}"string"==typeof s&&(i+=2)}return null}(e,n,o,r.index)),null!==b)(b.__ngLastListenerFn__||b).__ngNextListenerFn__=i,b.__ngLastListenerFn__=i,h=!1;else{i=Hh(r,n,u,i,!1);const V=t.listen(I,o,i);d.push(i,V),c&&c.push(o,O,S,S+1)}}else i=Hh(r,n,u,i,!1);const p=r.outputs;let m;if(h&&null!==p&&(m=p[o])){const D=m.length;if(D)for(let I=0;I-1?st(e.index,n):n);let l=Bh(n,0,r,s),c=i.__ngNextListenerFn__;for(;c;)l=Bh(n,0,c,s)&&l,c=c.__ngNextListenerFn__;return o&&!1===l&&(s.preventDefault(),s.returnValue=!1),l}}function _(e=1){return function Oy(e){return(U.lFrame.contextLView=function Ry(e,n){for(;e>0;)n=n[15],e--;return n}(e,U.lFrame.contextLView))[8]}(e)}function fn(e,n,t){return Il(e,"",n,"",t),fn}function Il(e,n,t,r,o){const i=E(),s=mr(i,n,t,r);return s!==z&<(ee(),_e(),i,e,s,i[Z],o,!1),Il}function ji(e,n){return e<<17|n<<2}function hn(e){return e>>17&32767}function Ml(e){return 2|e}function Ln(e){return(131068&e)>>2}function Sl(e,n){return-131069&e|n<<2}function Al(e){return 1|e}function Qh(e,n,t,r,o){const i=e[t+1],s=null===n;let a=r?hn(i):Ln(i),l=!1;for(;0!==a&&(!1===l||s);){const u=e[a+1];kb(e[a],n)&&(l=!0,e[a+1]=r?Al(u):Ml(u)),a=r?hn(u):Ln(u)}l&&(e[t+1]=r?Ml(i):Al(i))}function kb(e,n){return null===e||null==n||(Array.isArray(e)?e[1]:e)===n||!(!Array.isArray(e)||"string"!=typeof n)&&ir(e,n)>=0}const xe={textEnd:0,key:0,keyEnd:0,value:0,valueEnd:0};function Yh(e){return e.substring(xe.key,xe.keyEnd)}function Kh(e,n){const t=xe.textEnd;return t===n?-1:(n=xe.keyEnd=function Hb(e,n,t){for(;n32;)n++;return n}(e,xe.key=n,t),Er(e,n,t))}function Er(e,n,t){for(;n=0;t=Kh(n,t))at(e,Yh(n),!0)}function rp(e,n){return n>=e.expandoStartIndex}function op(e,n,t,r){const o=e.data;if(null===o[t+1]){const i=o[Ze()],s=rp(e,t);lp(i,r)&&null===n&&!s&&(n=!1),n=function Gb(e,n,t,r){const o=function ia(e){const n=U.lFrame.currentDirectiveIndex;return-1===n?null:e[n]}(e);let i=r?n.residualClasses:n.residualStyles;if(null===o)0===(r?n.classBindings:n.styleBindings)&&(t=co(t=Tl(null,e,n,t,r),n.attrs,r),i=null);else{const s=n.directiveStylingLast;if(-1===s||e[s]!==o)if(t=Tl(o,e,n,t,r),null===i){let l=function Wb(e,n,t){const r=t?n.classBindings:n.styleBindings;if(0!==Ln(r))return e[hn(r)]}(e,n,r);void 0!==l&&Array.isArray(l)&&(l=Tl(null,e,n,l[1],r),l=co(l,n.attrs,r),function qb(e,n,t,r){e[hn(t?n.classBindings:n.styleBindings)]=r}(e,n,r,l))}else i=function Zb(e,n,t){let r;const o=n.directiveEnd;for(let i=1+n.directiveStylingLast;i0)&&(c=!0)):u=t,o)if(0!==l){const h=hn(e[a+1]);e[r+1]=ji(h,a),0!==h&&(e[h+1]=Sl(e[h+1],r)),e[a+1]=function Fb(e,n){return 131071&e|n<<17}(e[a+1],r)}else e[r+1]=ji(a,0),0!==a&&(e[a+1]=Sl(e[a+1],r)),a=r;else e[r+1]=ji(l,0),0===a?a=r:e[l+1]=Sl(e[l+1],r),l=r;c&&(e[r+1]=Ml(e[r+1])),Qh(e,u,r,!0),Qh(e,u,r,!1),function Pb(e,n,t,r,o){const i=o?e.residualClasses:e.residualStyles;null!=i&&"string"==typeof n&&ir(i,n)>=0&&(t[r+1]=Al(t[r+1]))}(n,u,e,r,i),s=ji(a,l),i?n.classBindings=s:n.styleBindings=s}(o,i,n,t,s,r)}}function Tl(e,n,t,r,o){let i=null;const s=t.directiveEnd;let a=t.directiveStylingLast;for(-1===a?a=t.directiveStart:a++;a0;){const l=e[o],c=Array.isArray(l),u=c?l[1]:l,d=null===u;let h=t[o+1];h===z&&(h=d?te:void 0);let p=d?Ca(h,r):u===r?h:void 0;if(c&&!Ui(p)&&(p=Ca(l,r)),Ui(p)&&(a=p,s))return a;const m=e[o+1];o=s?hn(m):Ln(m)}if(null!==n){let l=i?n.residualClasses:n.residualStyles;null!=l&&(a=Ca(l,r))}return a}function Ui(e){return void 0!==e}function lp(e,n){return 0!=(e.flags&(n?8:16))}function w(e,n=""){const t=E(),r=ee(),o=e+22,i=r.firstCreatePass?pr(r,o,1,n,null):r.data[o],s=t[o]=function Oa(e,n){return e.createText(n)}(t[Z],n);wi(r,t,s,i),Ot(i,!1)}function F(e){return G("",e,""),F}function G(e,n,t){const r=E(),o=mr(r,e,n,t);return o!==z&&function Kt(e,n,t){const r=ii(n,e);!function ef(e,n,t){e.setValue(n,t)}(e[Z],r,t)}(r,Ze(),o),G}function Bt(e,n,t){!function It(e,n,t,r){const o=ee(),i=Zt(2);o.firstUpdatePass&&op(o,null,i,r);const s=E();if(t!==z&&je(s,i,t)){const a=o.data[Ze()];if(lp(a,r)&&!rp(o,i)){let l=r?a.classesWithoutHost:a.stylesWithoutHost;null!==l&&(t=$s(l,t||"")),El(o,a,s,t,r)}else!function Yb(e,n,t,r,o,i,s,a){o===z&&(o=te);let l=0,c=0,u=0>20;if(On(e)||!e.multi){const p=new Gr(l,o,M),m=Rl(a,n,o?u:u+h,d);-1===m?(ga(hi(c,s),i,a),Ol(i,e,n.length),n.push(a),c.directiveStart++,c.directiveEnd++,o&&(c.providerIndexes+=1048576),t.push(p),s.push(p)):(t[m]=p,s[m]=p)}else{const p=Rl(a,n,u+h,d),m=Rl(a,n,u,u+h),I=m>=0&&t[m];if(o&&!I||!o&&!(p>=0&&t[p])){ga(hi(c,s),i,a);const S=function gE(e,n,t,r,o){const i=new Gr(e,t,M);return i.multi=[],i.index=n,i.componentProviders=0,tg(i,o,r&&!t),i}(o?pE:hE,t.length,o,r,l);!o&&I&&(t[m].providerFactory=S),Ol(i,e,n.length,0),n.push(a),c.directiveStart++,c.directiveEnd++,o&&(c.providerIndexes+=1048576),t.push(S),s.push(S)}else Ol(i,e,p>-1?p:m,tg(t[o?m:p],l,!o&&r));!o&&r&&I&&t[m].componentProviders++}}}function Ol(e,n,t,r){const o=On(n),i=function MD(e){return!!e.useClass}(n);if(o||i){const l=(i?P(n.useClass):n).prototype.ngOnDestroy;if(l){const c=e.destroyHooks||(e.destroyHooks=[]);if(!o&&n.multi){const u=c.indexOf(t);-1===u?c.push(t,[r,l]):c[u+1].push(r,l)}else c.push(t,l)}}}function tg(e,n,t){return t&&e.componentProviders++,e.multi.push(n)-1}function Rl(e,n,t,r){for(let o=t;o{t.providersResolver=(r,o)=>function fE(e,n,t){const r=ee();if(r.firstCreatePass){const o=Ct(e);Fl(t,r.data,r.blueprint,o,!0),Fl(n,r.data,r.blueprint,o,!1)}}(r,o?o(e):e,n)}}class Sr{}class mE{}class ng extends Sr{constructor(n,t){super(),this._parent=t,this._bootstrapComponents=[],this.destroyCbs=[],this.componentFactoryResolver=new yh(this);const r=function rt(e,n){const t=e[ju]||null;if(!t&&!0===n)throw new Error(`Type ${le(e)} does not have '\u0275mod' property.`);return t}(n);this._bootstrapComponents=function Yt(e){return e instanceof Function?e():e}(r.bootstrap),this._r3Injector=Jf(n,t,[{provide:Sr,useValue:this},{provide:Ti,useValue:this.componentFactoryResolver}],le(n),new Set(["environment"])),this._r3Injector.resolveInjectorInitializers(),this.instance=this._r3Injector.get(n)}get injector(){return this._r3Injector}destroy(){const n=this._r3Injector;!n.destroyed&&n.destroy(),this.destroyCbs.forEach(t=>t()),this.destroyCbs=null}onDestroy(n){this.destroyCbs.push(n)}}class kl extends mE{constructor(n){super(),this.moduleType=n}create(n){return new ng(this.moduleType,n)}}function Zi(e,n,t,r){return function ug(e,n,t,r,o,i){const s=n+t;return je(e,s,o)?kt(e,s+1,i?r.call(i,o):r(o)):mo(e,s+1)}(E(),qe(),e,n,t,r)}function Vl(e,n,t,r,o){return function dg(e,n,t,r,o,i,s){const a=n+t;return kn(e,a,o,i)?kt(e,a+2,s?r.call(s,o,i):r(o,i)):mo(e,a+2)}(E(),qe(),e,n,t,r,o)}function Oe(e,n,t,r,o,i){return fg(E(),qe(),e,n,t,r,o,i)}function mo(e,n){const t=e[n];return t===z?void 0:t}function fg(e,n,t,r,o,i,s,a){const l=n+t;return function Bi(e,n,t,r,o){const i=kn(e,n,t,r);return je(e,n+2,o)||i}(e,l,o,i,s)?kt(e,l+3,a?r.call(a,o,i,s):r(o,i,s)):mo(e,l+3)}function Bl(e){return n=>{setTimeout(e,void 0,n)}}const be=class jE extends Rs{constructor(n=!1){super(),this.__isAsync=n}emit(n){super.next(n)}subscribe(n,t,r){let o=n,i=t||(()=>null),s=r;if(n&&"object"==typeof n){const l=n;o=l.next?.bind(l),i=l.error?.bind(l),s=l.complete?.bind(l)}this.__isAsync&&(i=Bl(i),o&&(o=Bl(o)),s&&(s=Bl(s)));const a=super.subscribe({next:o,error:i,complete:s});return n instanceof Tt&&n.add(a),a}};let Jt=(()=>{class e{}return e.__NG_ELEMENT_ID__=GE,e})();const UE=Jt,zE=class extends UE{constructor(n,t,r){super(),this._declarationLView=n,this._declarationTContainer=t,this.elementRef=r}createEmbeddedView(n,t){const r=this._declarationTContainer.tViews,o=Fi(this._declarationLView,r,n,16,null,r.declTNode,null,null,null,null,t||null);o[17]=this._declarationLView[this._declarationTContainer.index];const s=this._declarationLView[19];return null!==s&&(o[19]=s.createEmbeddedView(r)),ul(r,o,n),new io(o)}};function GE(){return function Qi(e,n){return 4&e.type?new zE(n,e,ur(e,n)):null}(Pe(),E())}let Ht=(()=>{class e{}return e.__NG_ELEMENT_ID__=WE,e})();function WE(){return function yg(e,n){let t;const r=n[e.index];if(yt(r))t=r;else{let o;if(8&e.type)o=Re(r);else{const i=n[Z];o=i.createComment("");const s=it(e,n);Nn(i,Di(i,s),o,function WC(e,n){return e.nextSibling(n)}(i,s),!1)}n[e.index]=t=ph(r,n,o,e),Ri(n,t)}return new _g(t,e,n)}(Pe(),E())}const qE=Ht,_g=class extends qE{constructor(n,t,r){super(),this._lContainer=n,this._hostTNode=t,this._hostLView=r}get element(){return ur(this._hostTNode,this._hostLView)}get injector(){return new er(this._hostTNode,this._hostLView)}get parentInjector(){const n=pa(this._hostTNode,this._hostLView);if(Cd(n)){const t=di(n,this._hostLView),r=ui(n);return new er(t[1].data[r+8],t)}return new er(null,this._hostLView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(n){const t=vg(this._lContainer);return null!==t&&t[n]||null}get length(){return this._lContainer.length-10}createEmbeddedView(n,t,r){let o,i;"number"==typeof r?o=r:null!=r&&(o=r.index,i=r.injector);const s=n.createEmbeddedView(t||{},i);return this.insert(s,o),s}createComponent(n,t,r,o,i){const s=n&&!function Zr(e){return"function"==typeof e}(n);let a;if(s)a=t;else{const d=t||{};a=d.index,r=d.injector,o=d.projectableNodes,i=d.environmentInjector||d.ngModuleRef}const l=s?n:new so(ie(n)),c=r||this.parentInjector;if(!i&&null==l.ngModule){const h=(s?c:this.parentInjector).get(lr,null);h&&(i=h)}const u=l.create(c,o,void 0,i);return this.insert(u.hostView,a),u}insert(n,t){const r=n._lView,o=r[1];if(function wy(e){return yt(e[3])}(r)){const u=this.indexOf(n);if(-1!==u)this.detach(u);else{const d=r[3],h=new _g(d,d[6],d[3]);h.detach(h.indexOf(n))}}const i=this._adjustIndex(t),s=this._lContainer;!function jC(e,n,t,r){const o=10+r,i=t.length;r>0&&(t[o-1][4]=n),r{class e{constructor(t){this.appInits=t,this.resolve=Ki,this.reject=Ki,this.initialized=!1,this.done=!1,this.donePromise=new Promise((r,o)=>{this.resolve=r,this.reject=o})}runInitializers(){if(this.initialized)return;const t=[],r=()=>{this.done=!0,this.resolve()};if(this.appInits)for(let o=0;o{i.subscribe({complete:a,error:l})});t.push(s)}}Promise.all(t).then(()=>{r()}).catch(o=>{this.reject(o)}),0===t.length&&r(),this.initialized=!0}}return e.\u0275fac=function(t){return new(t||e)(oe(Ug,8))},e.\u0275prov=de({token:e,factory:e.\u0275fac,providedIn:"root"}),e})();const yo=new H("AppId",{providedIn:"root",factory:function zg(){return`${Kl()}${Kl()}${Kl()}`}});function Kl(){return String.fromCharCode(97+Math.floor(25*Math.random()))}const Gg=new H("Platform Initializer"),Wg=new H("Platform ID",{providedIn:"platform",factory:()=>"unknown"}),E1=new H("appBootstrapListener"),Xt=new H("LocaleId",{providedIn:"root",factory:()=>function oy(e,n=B.Default){return oe(e,Jo(n))}(Xt,B.Optional|B.SkipSelf)||function I1(){return typeof $localize<"u"&&$localize.locale||Mr}()}),x1=(()=>Promise.resolve(0))();function Jl(e){typeof Zone>"u"?x1.then(()=>{e&&e.apply(null,null)}):Zone.current.scheduleMicroTask("scheduleMicrotask",e)}class $e{constructor({enableLongStackTrace:n=!1,shouldCoalesceEventChangeDetection:t=!1,shouldCoalesceRunChangeDetection:r=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new be(!1),this.onMicrotaskEmpty=new be(!1),this.onStable=new be(!1),this.onError=new be(!1),typeof Zone>"u")throw new A(908,!1);Zone.assertZonePatched();const o=this;o._nesting=0,o._outer=o._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(o._inner=o._inner.fork(new Zone.TaskTrackingZoneSpec)),n&&Zone.longStackTraceZoneSpec&&(o._inner=o._inner.fork(Zone.longStackTraceZoneSpec)),o.shouldCoalesceEventChangeDetection=!r&&t,o.shouldCoalesceRunChangeDetection=r,o.lastRequestAnimationFrameId=-1,o.nativeRequestAnimationFrame=function N1(){let e=fe.requestAnimationFrame,n=fe.cancelAnimationFrame;if(typeof Zone<"u"&&e&&n){const t=e[Zone.__symbol__("OriginalDelegate")];t&&(e=t);const r=n[Zone.__symbol__("OriginalDelegate")];r&&(n=r)}return{nativeRequestAnimationFrame:e,nativeCancelAnimationFrame:n}}().nativeRequestAnimationFrame,function R1(e){const n=()=>{!function O1(e){e.isCheckStableRunning||-1!==e.lastRequestAnimationFrameId||(e.lastRequestAnimationFrameId=e.nativeRequestAnimationFrame.call(fe,()=>{e.fakeTopEventTask||(e.fakeTopEventTask=Zone.root.scheduleEventTask("fakeTopEventTask",()=>{e.lastRequestAnimationFrameId=-1,ec(e),e.isCheckStableRunning=!0,Xl(e),e.isCheckStableRunning=!1},void 0,()=>{},()=>{})),e.fakeTopEventTask.invoke()}),ec(e))}(e)};e._inner=e._inner.fork({name:"angular",properties:{isAngularZone:!0},onInvokeTask:(t,r,o,i,s,a)=>{try{return Qg(e),t.invokeTask(o,i,s,a)}finally{(e.shouldCoalesceEventChangeDetection&&"eventTask"===i.type||e.shouldCoalesceRunChangeDetection)&&n(),Yg(e)}},onInvoke:(t,r,o,i,s,a,l)=>{try{return Qg(e),t.invoke(o,i,s,a,l)}finally{e.shouldCoalesceRunChangeDetection&&n(),Yg(e)}},onHasTask:(t,r,o,i)=>{t.hasTask(o,i),r===o&&("microTask"==i.change?(e._hasPendingMicrotasks=i.microTask,ec(e),Xl(e)):"macroTask"==i.change&&(e.hasPendingMacrotasks=i.macroTask))},onHandleError:(t,r,o,i)=>(t.handleError(o,i),e.runOutsideAngular(()=>e.onError.emit(i)),!1)})}(o)}static isInAngularZone(){return typeof Zone<"u"&&!0===Zone.current.get("isAngularZone")}static assertInAngularZone(){if(!$e.isInAngularZone())throw new A(909,!1)}static assertNotInAngularZone(){if($e.isInAngularZone())throw new A(909,!1)}run(n,t,r){return this._inner.run(n,t,r)}runTask(n,t,r,o){const i=this._inner,s=i.scheduleEventTask("NgZoneEvent: "+o,n,F1,Ki,Ki);try{return i.runTask(s,t,r)}finally{i.cancelTask(s)}}runGuarded(n,t,r){return this._inner.runGuarded(n,t,r)}runOutsideAngular(n){return this._outer.run(n)}}const F1={};function Xl(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 ec(e){e.hasPendingMicrotasks=!!(e._hasPendingMicrotasks||(e.shouldCoalesceEventChangeDetection||e.shouldCoalesceRunChangeDetection)&&-1!==e.lastRequestAnimationFrameId)}function Qg(e){e._nesting++,e.isStable&&(e.isStable=!1,e.onUnstable.emit(null))}function Yg(e){e._nesting--,Xl(e)}class P1{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new be,this.onMicrotaskEmpty=new be,this.onStable=new be,this.onError=new be}run(n,t,r){return n.apply(t,r)}runGuarded(n,t,r){return n.apply(t,r)}runOutsideAngular(n){return n()}runTask(n,t,r,o){return n.apply(t,r)}}const Kg=new H(""),Xi=new H("");let rc,tc=(()=>{class e{constructor(t,r,o){this._ngZone=t,this.registry=r,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,rc||(function k1(e){rc=e}(o),o.addToWindow(r)),this._watchAngularEvents(),t.run(()=>{this.taskTrackingZone=typeof Zone>"u"?null:Zone.current.get("TaskTrackingZone")})}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._didWork=!0,this._isZoneStable=!1}}),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.subscribe({next:()=>{$e.assertNotInAngularZone(),Jl(()=>{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())Jl(()=>{for(;0!==this._callbacks.length;){let t=this._callbacks.pop();clearTimeout(t.timeoutId),t.doneCb(this._didWork)}this._didWork=!1});else{let t=this.getPendingTasks();this._callbacks=this._callbacks.filter(r=>!r.updateCb||!r.updateCb(t)||(clearTimeout(r.timeoutId),!1)),this._didWork=!0}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(t=>({source:t.source,creationLocation:t.creationLocation,data:t.data})):[]}addCallback(t,r,o){let i=-1;r&&r>0&&(i=setTimeout(()=>{this._callbacks=this._callbacks.filter(s=>s.timeoutId!==i),t(this._didWork,this.getPendingTasks())},r)),this._callbacks.push({doneCb:t,timeoutId:i,updateCb:o})}whenStable(t,r,o){if(o&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is "zone.js/plugins/task-tracking" loaded?');this.addCallback(t,r,o),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}registerApplication(t){this.registry.registerApplication(t,this)}unregisterApplication(t){this.registry.unregisterApplication(t)}findProviders(t,r,o){return[]}}return e.\u0275fac=function(t){return new(t||e)(oe($e),oe(nc),oe(Xi))},e.\u0275prov=de({token:e,factory:e.\u0275fac}),e})(),nc=(()=>{class e{constructor(){this._applications=new Map}registerApplication(t,r){this._applications.set(t,r)}unregisterApplication(t){this._applications.delete(t)}unregisterAllApplications(){this._applications.clear()}getTestability(t){return this._applications.get(t)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(t,r=!0){return rc?.findTestabilityInTree(this,t,r)??null}}return e.\u0275fac=function(t){return new(t||e)},e.\u0275prov=de({token:e,factory:e.\u0275fac,providedIn:"platform"}),e})(),pn=null;const Jg=new H("AllowMultipleToken"),oc=new H("PlatformDestroyListeners");function em(e,n,t=[]){const r=`Platform: ${n}`,o=new H(r);return(i=[])=>{let s=ic();if(!s||s.injector.get(Jg,!1)){const a=[...t,...i,{provide:o,useValue:!0}];e?e(a):function B1(e){if(pn&&!pn.get(Jg,!1))throw new A(400,!1);pn=e;const n=e.get(nm);(function Xg(e){const n=e.get(Gg,null);n&&n.forEach(t=>t())})(e)}(function tm(e=[],n){return dn.create({name:n,providers:[{provide:Ka,useValue:"platform"},{provide:oc,useValue:new Set([()=>pn=null])},...e]})}(a,r))}return function j1(e){const n=ic();if(!n)throw new A(401,!1);return n}()}}function ic(){return pn?.get(nm)??null}let nm=(()=>{class e{constructor(t){this._injector=t,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(t,r){const o=function om(e,n){let t;return t="noop"===e?new P1:("zone.js"===e?void 0:e)||new $e(n),t}(r?.ngZone,function rm(e){return{enableLongStackTrace:!1,shouldCoalesceEventChangeDetection:!(!e||!e.ngZoneEventCoalescing)||!1,shouldCoalesceRunChangeDetection:!(!e||!e.ngZoneRunCoalescing)||!1}}(r)),i=[{provide:$e,useValue:o}];return o.run(()=>{const s=dn.create({providers:i,parent:this.injector,name:t.moduleType.name}),a=t.create(s),l=a.injector.get(dr,null);if(!l)throw new A(402,!1);return o.runOutsideAngular(()=>{const c=o.onError.subscribe({next:u=>{l.handleError(u)}});a.onDestroy(()=>{es(this._modules,a),c.unsubscribe()})}),function im(e,n,t){try{const r=t();return Hi(r)?r.catch(o=>{throw n.runOutsideAngular(()=>e.handleError(o)),o}):r}catch(r){throw n.runOutsideAngular(()=>e.handleError(r)),r}}(l,o,()=>{const c=a.injector.get(Ji);return c.runInitializers(),c.donePromise.then(()=>(function Np(e){ut(e,"Expected localeId to be defined"),"string"==typeof e&&(xp=e.toLowerCase().replace(/_/g,"-"))}(a.injector.get(Xt,Mr)||Mr),this._moduleDoBootstrap(a),a))})})}bootstrapModule(t,r=[]){const o=sm({},r);return function L1(e,n,t){const r=new kl(t);return Promise.resolve(r)}(0,0,t).then(i=>this.bootstrapModuleFactory(i,o))}_moduleDoBootstrap(t){const r=t.injector.get(sc);if(t._bootstrapComponents.length>0)t._bootstrapComponents.forEach(o=>r.bootstrap(o));else{if(!t.instance.ngDoBootstrap)throw new A(-403,!1);t.instance.ngDoBootstrap(r)}this._modules.push(t)}onDestroy(t){this._destroyListeners.push(t)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new A(404,!1);this._modules.slice().forEach(r=>r.destroy()),this._destroyListeners.forEach(r=>r());const t=this._injector.get(oc,null);t&&(t.forEach(r=>r()),t.clear()),this._destroyed=!0}get destroyed(){return this._destroyed}}return e.\u0275fac=function(t){return new(t||e)(oe(dn))},e.\u0275prov=de({token:e,factory:e.\u0275fac,providedIn:"platform"}),e})();function sm(e,n){return Array.isArray(n)?n.reduce(sm,e):{...e,...n}}let sc=(()=>{class e{get destroyed(){return this._destroyed}get injector(){return this._injector}constructor(t,r,o){this._zone=t,this._injector=r,this._exceptionHandler=o,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._stable=!0,this._destroyed=!1,this._destroyListeners=[],this.componentTypes=[],this.components=[],this._onMicrotaskEmptySubscription=this._zone.onMicrotaskEmpty.subscribe({next:()=>{this._zone.run(()=>{this.tick()})}});const i=new ze(a=>{this._stable=this._zone.isStable&&!this._zone.hasPendingMacrotasks&&!this._zone.hasPendingMicrotasks,this._zone.runOutsideAngular(()=>{a.next(this._stable),a.complete()})}),s=new ze(a=>{let l;this._zone.runOutsideAngular(()=>{l=this._zone.onStable.subscribe(()=>{$e.assertNotInAngularZone(),Jl(()=>{!this._stable&&!this._zone.hasPendingMacrotasks&&!this._zone.hasPendingMicrotasks&&(this._stable=!0,a.next(!0))})})});const c=this._zone.onUnstable.subscribe(()=>{$e.assertInAngularZone(),this._stable&&(this._stable=!1,this._zone.runOutsideAngular(()=>{a.next(!1)}))});return()=>{l.unsubscribe(),c.unsubscribe()}});this.isStable=jv(i,s.pipe(function Uv(e={}){const{connector:n=(()=>new Rs),resetOnError:t=!0,resetOnComplete:r=!0,resetOnRefCountZero:o=!0}=e;return i=>{let s=null,a=null,l=null,c=0,u=!1,d=!1;const h=()=>{a?.unsubscribe(),a=null},p=()=>{h(),s=l=null,u=d=!1},m=()=>{const D=s;p(),D?.unsubscribe()};return zn((D,I)=>{c++,!d&&!u&&h();const S=l=l??n();I.add(()=>{c--,0===c&&!d&&!u&&(a=Hs(m,o))}),S.subscribe(I),s||(s=new xs({next:O=>S.next(O),error:O=>{d=!0,h(),a=Hs(p,t,O),S.error(O)},complete:()=>{u=!0,h(),a=Hs(p,r),S.complete()}}),Bs(D).subscribe(s))})(i)}}()))}bootstrap(t,r){const o=t instanceof Vf;if(!this._injector.get(Ji).done)throw!o&&function Br(e){const n=ie(e)||ke(e)||Ge(e);return null!==n&&n.standalone}(t),new A(405,false);let s;s=o?t:this._injector.get(Ti).resolveComponentFactory(t),this.componentTypes.push(s.componentType);const a=function V1(e){return e.isBoundToModule}(s)?void 0:this._injector.get(Sr),c=s.create(dn.NULL,[],r||s.selector,a),u=c.location.nativeElement,d=c.injector.get(Kg,null);return d?.registerApplication(u),c.onDestroy(()=>{this.detachView(c.hostView),es(this.components,c),d?.unregisterApplication(u)}),this._loadComponent(c),c}tick(){if(this._runningTick)throw new A(101,!1);try{this._runningTick=!0;for(let t of this._views)t.detectChanges()}catch(t){this._zone.runOutsideAngular(()=>this._exceptionHandler.handleError(t))}finally{this._runningTick=!1}}attachView(t){const r=t;this._views.push(r),r.attachToAppRef(this)}detachView(t){const r=t;es(this._views,r),r.detachFromAppRef()}_loadComponent(t){this.attachView(t.hostView),this.tick(),this.components.push(t);const r=this._injector.get(E1,[]);r.push(...this._bootstrapListeners),r.forEach(o=>o(t))}ngOnDestroy(){if(!this._destroyed)try{this._destroyListeners.forEach(t=>t()),this._views.slice().forEach(t=>t.destroy()),this._onMicrotaskEmptySubscription.unsubscribe()}finally{this._destroyed=!0,this._views=[],this._bootstrapListeners=[],this._destroyListeners=[]}}onDestroy(t){return this._destroyListeners.push(t),()=>es(this._destroyListeners,t)}destroy(){if(this._destroyed)throw new A(406,!1);const t=this._injector;t.destroy&&!t.destroyed&&t.destroy()}get viewCount(){return this._views.length}warnIfDestroyed(){}}return e.\u0275fac=function(t){return new(t||e)(oe($e),oe(lr),oe(dr))},e.\u0275prov=de({token:e,factory:e.\u0275fac,providedIn:"root"}),e})();function es(e,n){const t=e.indexOf(n);t>-1&&e.splice(t,1)}let cm=(()=>{class e{}return e.__NG_ELEMENT_ID__=U1,e})();function U1(e){return function z1(e,n,t){if(Ur(e)&&!t){const r=st(e.index,n);return new io(r,r)}return 47&e.type?new io(n[16],n):null}(Pe(),E(),16==(16&e))}class fm{constructor(){}supports(n){return ao(n)}create(n){return new Y1(n)}}const Q1=(e,n)=>n;class Y1{constructor(n){this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=n||Q1}forEachItem(n){let t;for(t=this._itHead;null!==t;t=t._next)n(t)}forEachOperation(n){let t=this._itHead,r=this._removalsHead,o=0,i=null;for(;t||r;){const s=!r||t&&t.currentIndex{s=this._trackByFn(o,a),null!==t&&Object.is(t.trackById,s)?(r&&(t=this._verifyReinsertion(t,a,s,o)),Object.is(t.item,a)||this._addIdentityChange(t,a)):(t=this._mismatch(t,a,s,o),r=!0),t=t._next,o++}),this.length=o;return this._truncate(t),this.collection=n,this.isDirty}get isDirty(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}_reset(){if(this.isDirty){let n;for(n=this._previousItHead=this._itHead;null!==n;n=n._next)n._nextPrevious=n._next;for(n=this._additionsHead;null!==n;n=n._nextAdded)n.previousIndex=n.currentIndex;for(this._additionsHead=this._additionsTail=null,n=this._movesHead;null!==n;n=n._nextMoved)n.previousIndex=n.currentIndex;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(n,t,r,o){let i;return null===n?i=this._itTail:(i=n._prev,this._remove(n)),null!==(n=null===this._unlinkedRecords?null:this._unlinkedRecords.get(r,null))?(Object.is(n.item,t)||this._addIdentityChange(n,t),this._reinsertAfter(n,i,o)):null!==(n=null===this._linkedRecords?null:this._linkedRecords.get(r,o))?(Object.is(n.item,t)||this._addIdentityChange(n,t),this._moveAfter(n,i,o)):n=this._addAfter(new K1(t,r),i,o),n}_verifyReinsertion(n,t,r,o){let i=null===this._unlinkedRecords?null:this._unlinkedRecords.get(r,null);return null!==i?n=this._reinsertAfter(i,n._prev,o):n.currentIndex!=o&&(n.currentIndex=o,this._addToMoves(n,o)),n}_truncate(n){for(;null!==n;){const t=n._next;this._addToRemovals(this._unlink(n)),n=t}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(n,t,r){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(n);const o=n._prevRemoved,i=n._nextRemoved;return null===o?this._removalsHead=i:o._nextRemoved=i,null===i?this._removalsTail=o:i._prevRemoved=o,this._insertAfter(n,t,r),this._addToMoves(n,r),n}_moveAfter(n,t,r){return this._unlink(n),this._insertAfter(n,t,r),this._addToMoves(n,r),n}_addAfter(n,t,r){return this._insertAfter(n,t,r),this._additionsTail=null===this._additionsTail?this._additionsHead=n:this._additionsTail._nextAdded=n,n}_insertAfter(n,t,r){const o=null===t?this._itHead:t._next;return n._next=o,n._prev=t,null===o?this._itTail=n:o._prev=n,null===t?this._itHead=n:t._next=n,null===this._linkedRecords&&(this._linkedRecords=new hm),this._linkedRecords.put(n),n.currentIndex=r,n}_remove(n){return this._addToRemovals(this._unlink(n))}_unlink(n){null!==this._linkedRecords&&this._linkedRecords.remove(n);const t=n._prev,r=n._next;return null===t?this._itHead=r:t._next=r,null===r?this._itTail=t:r._prev=t,n}_addToMoves(n,t){return n.previousIndex===t||(this._movesTail=null===this._movesTail?this._movesHead=n:this._movesTail._nextMoved=n),n}_addToRemovals(n){return null===this._unlinkedRecords&&(this._unlinkedRecords=new hm),this._unlinkedRecords.put(n),n.currentIndex=null,n._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=n,n._prevRemoved=null):(n._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=n),n}_addIdentityChange(n,t){return n.item=t,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=n:this._identityChangesTail._nextIdentityChange=n,n}}class K1{constructor(n,t){this.item=n,this.trackById=t,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null}}class J1{constructor(){this._head=null,this._tail=null}add(n){null===this._head?(this._head=this._tail=n,n._nextDup=null,n._prevDup=null):(this._tail._nextDup=n,n._prevDup=this._tail,n._nextDup=null,this._tail=n)}get(n,t){let r;for(r=this._head;null!==r;r=r._nextDup)if((null===t||t<=r.currentIndex)&&Object.is(r.trackById,n))return r;return null}remove(n){const t=n._prevDup,r=n._nextDup;return null===t?this._head=r:t._nextDup=r,null===r?this._tail=t:r._prevDup=t,null===this._head}}class hm{constructor(){this.map=new Map}put(n){const t=n.trackById;let r=this.map.get(t);r||(r=new J1,this.map.set(t,r)),r.add(n)}get(n,t){const o=this.map.get(n);return o?o.get(n,t):null}remove(n){const t=n.trackById;return this.map.get(t).remove(n)&&this.map.delete(t),n}get isEmpty(){return 0===this.map.size}clear(){this.map.clear()}}function pm(e,n,t){const r=e.previousIndex;if(null===r)return r;let o=0;return t&&r{if(t&&t.key===o)this._maybeAddToChanges(t,r),this._appendAfter=t,t=t._next;else{const i=this._getOrCreateRecordForKey(o,r);t=this._insertBeforeOrAppend(t,i)}}),t){t._prev&&(t._prev._next=null),this._removalsHead=t;for(let r=t;null!==r;r=r._nextRemoved)r===this._mapHead&&(this._mapHead=null),this._records.delete(r.key),r._nextRemoved=r._next,r.previousValue=r.currentValue,r.currentValue=null,r._prev=null,r._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(n,t){if(n){const r=n._prev;return t._next=n,t._prev=r,n._prev=t,r&&(r._next=t),n===this._mapHead&&(this._mapHead=t),this._appendAfter=n,n}return this._appendAfter?(this._appendAfter._next=t,t._prev=this._appendAfter):this._mapHead=t,this._appendAfter=t,null}_getOrCreateRecordForKey(n,t){if(this._records.has(n)){const o=this._records.get(n);this._maybeAddToChanges(o,t);const i=o._prev,s=o._next;return i&&(i._next=s),s&&(s._prev=i),o._next=null,o._prev=null,o}const r=new eI(n);return this._records.set(n,r),r.currentValue=t,this._addToAdditions(r),r}_reset(){if(this.isDirty){let n;for(this._previousMapHead=this._mapHead,n=this._previousMapHead;null!==n;n=n._next)n._nextPrevious=n._next;for(n=this._changesHead;null!==n;n=n._nextChanged)n.previousValue=n.currentValue;for(n=this._additionsHead;null!=n;n=n._nextAdded)n.previousValue=n.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(n,t){Object.is(t,n.currentValue)||(n.previousValue=n.currentValue,n.currentValue=t,this._addToChanges(n))}_addToAdditions(n){null===this._additionsHead?this._additionsHead=this._additionsTail=n:(this._additionsTail._nextAdded=n,this._additionsTail=n)}_addToChanges(n){null===this._changesHead?this._changesHead=this._changesTail=n:(this._changesTail._nextChanged=n,this._changesTail=n)}_forEach(n,t){n instanceof Map?n.forEach(t):Object.keys(n).forEach(r=>t(n[r],r))}}class eI{constructor(n){this.key=n,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 mm(){return new rs([new fm])}let rs=(()=>{class e{constructor(t){this.factories=t}static create(t,r){if(null!=r){const o=r.factories.slice();t=t.concat(o)}return new e(t)}static extend(t){return{provide:e,useFactory:r=>e.create(t,r||mm()),deps:[[e,new vi,new _i]]}}find(t){const r=this.factories.find(o=>o.supports(t));if(null!=r)return r;throw new A(901,!1)}}return e.\u0275prov=de({token:e,providedIn:"root",factory:mm}),e})();function _m(){return new Co([new gm])}let Co=(()=>{class e{constructor(t){this.factories=t}static create(t,r){if(r){const o=r.factories.slice();t=t.concat(o)}return new e(t)}static extend(t){return{provide:e,useFactory:r=>e.create(t,r||_m()),deps:[[e,new vi,new _i]]}}find(t){const r=this.factories.find(o=>o.supports(t));if(r)return r;throw new A(901,!1)}}return e.\u0275prov=de({token:e,providedIn:"root",factory:_m}),e})();const rI=em(null,"core",[]);let oI=(()=>{class e{constructor(t){}}return e.\u0275fac=function(t){return new(t||e)(oe(sc))},e.\u0275mod=an({type:e}),e.\u0275inj=$t({}),e})();let fc=null;function Hn(){return fc}class aI{}const tn=new H("DocumentToken");let bo=(()=>{class e{constructor(t,r,o,i){this._iterableDiffers=t,this._keyValueDiffers=r,this._ngEl=o,this._renderer=i,this._iterableDiffer=null,this._keyValueDiffer=null,this._initialClasses=[],this._rawClass=null}set klass(t){this._removeClasses(this._initialClasses),this._initialClasses="string"==typeof t?t.split(/\s+/):[],this._applyClasses(this._initialClasses),this._applyClasses(this._rawClass)}set ngClass(t){this._removeClasses(this._rawClass),this._applyClasses(this._initialClasses),this._iterableDiffer=null,this._keyValueDiffer=null,this._rawClass="string"==typeof t?t.split(/\s+/):t,this._rawClass&&(ao(this._rawClass)?this._iterableDiffer=this._iterableDiffers.find(this._rawClass).create():this._keyValueDiffer=this._keyValueDiffers.find(this._rawClass).create())}ngDoCheck(){if(this._iterableDiffer){const t=this._iterableDiffer.diff(this._rawClass);t&&this._applyIterableChanges(t)}else if(this._keyValueDiffer){const t=this._keyValueDiffer.diff(this._rawClass);t&&this._applyKeyValueChanges(t)}}_applyKeyValueChanges(t){t.forEachAddedItem(r=>this._toggleClass(r.key,r.currentValue)),t.forEachChangedItem(r=>this._toggleClass(r.key,r.currentValue)),t.forEachRemovedItem(r=>{r.previousValue&&this._toggleClass(r.key,!1)})}_applyIterableChanges(t){t.forEachAddedItem(r=>{if("string"!=typeof r.item)throw new Error(`NgClass can only toggle CSS classes expressed as strings, got ${le(r.item)}`);this._toggleClass(r.item,!0)}),t.forEachRemovedItem(r=>this._toggleClass(r.item,!1))}_applyClasses(t){t&&(Array.isArray(t)||t instanceof Set?t.forEach(r=>this._toggleClass(r,!0)):Object.keys(t).forEach(r=>this._toggleClass(r,!!t[r])))}_removeClasses(t){t&&(Array.isArray(t)||t instanceof Set?t.forEach(r=>this._toggleClass(r,!1)):Object.keys(t).forEach(r=>this._toggleClass(r,!1)))}_toggleClass(t,r){(t=t.trim())&&t.split(/\s+/g).forEach(o=>{r?this._renderer.addClass(this._ngEl.nativeElement,o):this._renderer.removeClass(this._ngEl.nativeElement,o)})}}return e.\u0275fac=function(t){return new(t||e)(M(rs),M(Co),M(Dt),M(Rn))},e.\u0275dir=$({type:e,selectors:[["","ngClass",""]],inputs:{klass:["class","klass"],ngClass:"ngClass"},standalone:!0}),e})();class ZI{constructor(n,t,r,o){this.$implicit=n,this.ngForOf=t,this.index=r,this.count=o}get first(){return 0===this.index}get last(){return this.index===this.count-1}get even(){return this.index%2==0}get odd(){return!this.even}}let xr=(()=>{class e{set ngForOf(t){this._ngForOf=t,this._ngForOfDirty=!0}set ngForTrackBy(t){this._trackByFn=t}get ngForTrackBy(){return this._trackByFn}constructor(t,r,o){this._viewContainer=t,this._template=r,this._differs=o,this._ngForOf=null,this._ngForOfDirty=!0,this._differ=null}set ngForTemplate(t){t&&(this._template=t)}ngDoCheck(){if(this._ngForOfDirty){this._ngForOfDirty=!1;const t=this._ngForOf;!this._differ&&t&&(this._differ=this._differs.find(t).create(this.ngForTrackBy))}if(this._differ){const t=this._differ.diff(this._ngForOf);t&&this._applyChanges(t)}}_applyChanges(t){const r=this._viewContainer;t.forEachOperation((o,i,s)=>{if(null==o.previousIndex)r.createEmbeddedView(this._template,new ZI(o.item,this._ngForOf,-1,-1),null===s?void 0:s);else if(null==s)r.remove(null===i?void 0:i);else if(null!==i){const a=r.get(i);r.move(a,s),Tm(a,o)}});for(let o=0,i=r.length;o{Tm(r.get(o.currentIndex),o)})}static ngTemplateContextGuard(t,r){return!0}}return e.\u0275fac=function(t){return new(t||e)(M(Ht),M(Jt),M(rs))},e.\u0275dir=$({type:e,selectors:[["","ngFor","","ngForOf",""]],inputs:{ngForOf:"ngForOf",ngForTrackBy:"ngForTrackBy",ngForTemplate:"ngForTemplate"},standalone:!0}),e})();function Tm(e,n){e.context.$implicit=n.item}let jn=(()=>{class e{constructor(t,r){this._viewContainer=t,this._context=new YI,this._thenTemplateRef=null,this._elseTemplateRef=null,this._thenViewRef=null,this._elseViewRef=null,this._thenTemplateRef=r}set ngIf(t){this._context.$implicit=this._context.ngIf=t,this._updateView()}set ngIfThen(t){xm("ngIfThen",t),this._thenTemplateRef=t,this._thenViewRef=null,this._updateView()}set ngIfElse(t){xm("ngIfElse",t),this._elseTemplateRef=t,this._elseViewRef=null,this._updateView()}_updateView(){this._context.$implicit?this._thenViewRef||(this._viewContainer.clear(),this._elseViewRef=null,this._thenTemplateRef&&(this._thenViewRef=this._viewContainer.createEmbeddedView(this._thenTemplateRef,this._context))):this._elseViewRef||(this._viewContainer.clear(),this._thenViewRef=null,this._elseTemplateRef&&(this._elseViewRef=this._viewContainer.createEmbeddedView(this._elseTemplateRef,this._context)))}static ngTemplateContextGuard(t,r){return!0}}return e.\u0275fac=function(t){return new(t||e)(M(Ht),M(Jt))},e.\u0275dir=$({type:e,selectors:[["","ngIf",""]],inputs:{ngIf:"ngIf",ngIfThen:"ngIfThen",ngIfElse:"ngIfElse"},standalone:!0}),e})();class YI{constructor(){this.$implicit=null,this.ngIf=null}}function xm(e,n){if(n&&!n.createEmbeddedView)throw new Error(`${e} must be a TemplateRef, but received '${le(n)}'.`)}let Om=(()=>{class e{transform(t,r,o){if(null==t)return null;if(!this.supports(t))throw function At(e,n){return new A(2100,!1)}();return t.slice(r,o)}supports(t){return"string"==typeof t||Array.isArray(t)}}return e.\u0275fac=function(t){return new(t||e)},e.\u0275pipe=Je({name:"slice",type:e,pure:!1,standalone:!0}),e})(),DM=(()=>{class e{}return e.\u0275fac=function(t){return new(t||e)},e.\u0275mod=an({type:e}),e.\u0275inj=$t({}),e})();class XM extends aI{constructor(){super(...arguments),this.supportsDOMEvents=!0}}class Ac extends XM{static makeCurrent(){!function sI(e){fc||(fc=e)}(new Ac)}onAndCancel(n,t,r){return n.addEventListener(t,r,!1),()=>{n.removeEventListener(t,r,!1)}}dispatchEvent(n,t){n.dispatchEvent(t)}remove(n){n.parentNode&&n.parentNode.removeChild(n)}createElement(n,t){return(t=t||this.getDefaultDocument()).createElement(n)}createHtmlDocument(){return document.implementation.createHTMLDocument("fakeTitle")}getDefaultDocument(){return document}isElementNode(n){return n.nodeType===Node.ELEMENT_NODE}isShadowRoot(n){return n instanceof DocumentFragment}getGlobalEventTarget(n,t){return"window"===t?window:"document"===t?n:"body"===t?n.body:null}getBaseHref(n){const t=function eS(){return Io=Io||document.querySelector("base"),Io?Io.getAttribute("href"):null}();return null==t?null:function tS(e){ps=ps||document.createElement("a"),ps.setAttribute("href",e);const n=ps.pathname;return"/"===n.charAt(0)?n:`/${n}`}(t)}resetBaseElement(){Io=null}getUserAgent(){return window.navigator.userAgent}getCookie(n){return function WI(e,n){n=encodeURIComponent(n);for(const t of e.split(";")){const r=t.indexOf("="),[o,i]=-1==r?[t,""]:[t.slice(0,r),t.slice(r+1)];if(o.trim()===n)return decodeURIComponent(i)}return null}(document.cookie,n)}}let ps,Io=null;const jm=new H("TRANSITION_ID"),rS=[{provide:Ug,useFactory:function nS(e,n,t){return()=>{t.get(Ji).donePromise.then(()=>{const r=Hn(),o=n.querySelectorAll(`style[ng-transition="${e}"]`);for(let i=0;i{class e{build(){return new XMLHttpRequest}}return e.\u0275fac=function(t){return new(t||e)},e.\u0275prov=de({token:e,factory:e.\u0275fac}),e})();const gs=new H("EventManagerPlugins");let ms=(()=>{class e{constructor(t,r){this._zone=r,this._eventNameToPlugin=new Map,t.forEach(o=>o.manager=this),this._plugins=t.slice().reverse()}addEventListener(t,r,o){return this._findPluginFor(r).addEventListener(t,r,o)}addGlobalEventListener(t,r,o){return this._findPluginFor(r).addGlobalEventListener(t,r,o)}getZone(){return this._zone}_findPluginFor(t){const r=this._eventNameToPlugin.get(t);if(r)return r;const o=this._plugins;for(let i=0;i{class e{constructor(){this._stylesSet=new Set}addStyles(t){const r=new Set;t.forEach(o=>{this._stylesSet.has(o)||(this._stylesSet.add(o),r.add(o))}),this.onStylesAdded(r)}onStylesAdded(t){}getAllStyles(){return Array.from(this._stylesSet)}}return e.\u0275fac=function(t){return new(t||e)},e.\u0275prov=de({token:e,factory:e.\u0275fac}),e})(),Mo=(()=>{class e extends Um{constructor(t){super(),this._doc=t,this._hostNodes=new Map,this._hostNodes.set(t.head,[])}_addStylesToHost(t,r,o){t.forEach(i=>{const s=this._doc.createElement("style");s.textContent=i,o.push(r.appendChild(s))})}addHost(t){const r=[];this._addStylesToHost(this._stylesSet,t,r),this._hostNodes.set(t,r)}removeHost(t){const r=this._hostNodes.get(t);r&&r.forEach(zm),this._hostNodes.delete(t)}onStylesAdded(t){this._hostNodes.forEach((r,o)=>{this._addStylesToHost(t,o,r)})}ngOnDestroy(){this._hostNodes.forEach(t=>t.forEach(zm))}}return e.\u0275fac=function(t){return new(t||e)(oe(tn))},e.\u0275prov=de({token:e,factory:e.\u0275fac}),e})();function zm(e){Hn().remove(e)}const Tc={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/"},xc=/%COMP%/g;function Nc(e,n){return n.flat(100).map(t=>t.replace(xc,e))}function qm(e){return n=>{if("__ngUnwrap__"===n)return e;!1===e(n)&&(n.preventDefault(),n.returnValue=!1)}}let Fc=(()=>{class e{constructor(t,r,o){this.eventManager=t,this.sharedStylesHost=r,this.appId=o,this.rendererByCompId=new Map,this.defaultRenderer=new Oc(t)}createRenderer(t,r){if(!t||!r)return this.defaultRenderer;switch(r.encapsulation){case xt.Emulated:{let o=this.rendererByCompId.get(r.id);return o||(o=new dS(this.eventManager,this.sharedStylesHost,r,this.appId),this.rendererByCompId.set(r.id,o)),o.applyToHost(t),o}case xt.ShadowDom:return new fS(this.eventManager,this.sharedStylesHost,t,r);default:if(!this.rendererByCompId.has(r.id)){const o=Nc(r.id,r.styles);this.sharedStylesHost.addStyles(o),this.rendererByCompId.set(r.id,this.defaultRenderer)}return this.defaultRenderer}}begin(){}end(){}}return e.\u0275fac=function(t){return new(t||e)(oe(ms),oe(Mo),oe(yo))},e.\u0275prov=de({token:e,factory:e.\u0275fac}),e})();class Oc{constructor(n){this.eventManager=n,this.data=Object.create(null),this.destroyNode=null}destroy(){}createElement(n,t){return t?document.createElementNS(Tc[t]||t,n):document.createElement(n)}createComment(n){return document.createComment(n)}createText(n){return document.createTextNode(n)}appendChild(n,t){(Qm(n)?n.content:n).appendChild(t)}insertBefore(n,t,r){n&&(Qm(n)?n.content:n).insertBefore(t,r)}removeChild(n,t){n&&n.removeChild(t)}selectRootElement(n,t){let r="string"==typeof n?document.querySelector(n):n;if(!r)throw new Error(`The selector "${n}" did not match any elements`);return t||(r.textContent=""),r}parentNode(n){return n.parentNode}nextSibling(n){return n.nextSibling}setAttribute(n,t,r,o){if(o){t=o+":"+t;const i=Tc[o];i?n.setAttributeNS(i,t,r):n.setAttribute(t,r)}else n.setAttribute(t,r)}removeAttribute(n,t,r){if(r){const o=Tc[r];o?n.removeAttributeNS(o,t):n.removeAttribute(`${r}:${t}`)}else n.removeAttribute(t)}addClass(n,t){n.classList.add(t)}removeClass(n,t){n.classList.remove(t)}setStyle(n,t,r,o){o&(Xe.DashCase|Xe.Important)?n.style.setProperty(t,r,o&Xe.Important?"important":""):n.style[t]=r}removeStyle(n,t,r){r&Xe.DashCase?n.style.removeProperty(t):n.style[t]=""}setProperty(n,t,r){n[t]=r}setValue(n,t){n.nodeValue=t}listen(n,t,r){return"string"==typeof n?this.eventManager.addGlobalEventListener(n,t,qm(r)):this.eventManager.addEventListener(n,t,qm(r))}}function Qm(e){return"TEMPLATE"===e.tagName&&void 0!==e.content}class dS extends Oc{constructor(n,t,r,o){super(n),this.component=r;const i=Nc(o+"-"+r.id,r.styles);t.addStyles(i),this.contentAttr=function lS(e){return"_ngcontent-%COMP%".replace(xc,e)}(o+"-"+r.id),this.hostAttr=function cS(e){return"_nghost-%COMP%".replace(xc,e)}(o+"-"+r.id)}applyToHost(n){super.setAttribute(n,this.hostAttr,"")}createElement(n,t){const r=super.createElement(n,t);return super.setAttribute(r,this.contentAttr,""),r}}class fS extends Oc{constructor(n,t,r,o){super(n),this.sharedStylesHost=t,this.hostEl=r,this.shadowRoot=r.attachShadow({mode:"open"}),this.sharedStylesHost.addHost(this.shadowRoot);const i=Nc(o.id,o.styles);for(let s=0;s{class e extends $m{constructor(t){super(t)}supports(t){return!0}addEventListener(t,r,o){return t.addEventListener(r,o,!1),()=>this.removeEventListener(t,r,o)}removeEventListener(t,r,o){return t.removeEventListener(r,o)}}return e.\u0275fac=function(t){return new(t||e)(oe(tn))},e.\u0275prov=de({token:e,factory:e.\u0275fac}),e})();const Ym=["alt","control","meta","shift"],pS={"\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"},gS={alt:e=>e.altKey,control:e=>e.ctrlKey,meta:e=>e.metaKey,shift:e=>e.shiftKey};let mS=(()=>{class e extends $m{constructor(t){super(t)}supports(t){return null!=e.parseEventName(t)}addEventListener(t,r,o){const i=e.parseEventName(r),s=e.eventCallback(i.fullKey,o,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>Hn().onAndCancel(t,i.domEventName,s))}static parseEventName(t){const r=t.toLowerCase().split("."),o=r.shift();if(0===r.length||"keydown"!==o&&"keyup"!==o)return null;const i=e._normalizeKey(r.pop());let s="",a=r.indexOf("code");if(a>-1&&(r.splice(a,1),s="code."),Ym.forEach(c=>{const u=r.indexOf(c);u>-1&&(r.splice(u,1),s+=c+".")}),s+=i,0!=r.length||0===i.length)return null;const l={};return l.domEventName=o,l.fullKey=s,l}static matchEventFullKeyCode(t,r){let o=pS[t.key]||t.key,i="";return r.indexOf("code.")>-1&&(o=t.code,i="code."),!(null==o||!o)&&(o=o.toLowerCase()," "===o?o="space":"."===o&&(o="dot"),Ym.forEach(s=>{s!==o&&(0,gS[s])(t)&&(i+=s+".")}),i+=o,i===r)}static eventCallback(t,r,o){return i=>{e.matchEventFullKeyCode(i,t)&&o.runGuarded(()=>r(i))}}static _normalizeKey(t){return"esc"===t?"escape":t}}return e.\u0275fac=function(t){return new(t||e)(oe(tn))},e.\u0275prov=de({token:e,factory:e.\u0275fac}),e})();const CS=em(rI,"browser",[{provide:Wg,useValue:"browser"},{provide:Gg,useValue:function _S(){Ac.makeCurrent()},multi:!0},{provide:tn,useFactory:function yS(){return function eD(e){$a=e}(document),document},deps:[]}]),Xm=new H(""),e_=[{provide:Xi,useClass:class oS{addToWindow(n){fe.getAngularTestability=(r,o=!0)=>{const i=n.findTestabilityInTree(r,o);if(null==i)throw new Error("Could not find testability for element.");return i},fe.getAllAngularTestabilities=()=>n.getAllTestabilities(),fe.getAllAngularRootElements=()=>n.getAllRootElements(),fe.frameworkStabilizers||(fe.frameworkStabilizers=[]),fe.frameworkStabilizers.push(r=>{const o=fe.getAllAngularTestabilities();let i=o.length,s=!1;const a=function(l){s=s||l,i--,0==i&&r(s)};o.forEach(function(l){l.whenStable(a)})})}findTestabilityInTree(n,t,r){return null==t?null:n.getTestability(t)??(r?Hn().isShadowRoot(t)?this.findTestabilityInTree(n,t.host,!0):this.findTestabilityInTree(n,t.parentElement,!0):null)}},deps:[]},{provide:Kg,useClass:tc,deps:[$e,nc,Xi]},{provide:tc,useClass:tc,deps:[$e,nc,Xi]}],t_=[{provide:Ka,useValue:"root"},{provide:dr,useFactory:function vS(){return new dr},deps:[]},{provide:gs,useClass:hS,multi:!0,deps:[tn,$e,Wg]},{provide:gs,useClass:mS,multi:!0,deps:[tn]},{provide:Fc,useClass:Fc,deps:[ms,Mo,yo]},{provide:Hf,useExisting:Fc},{provide:Um,useExisting:Mo},{provide:Mo,useClass:Mo,deps:[tn]},{provide:ms,useClass:ms,deps:[gs,$e]},{provide:class MM{},useClass:iS,deps:[]},[]];let DS=(()=>{class e{constructor(t){}static withServerTransition(t){return{ngModule:e,providers:[{provide:yo,useValue:t.appId},{provide:jm,useExisting:yo},rS]}}}return e.\u0275fac=function(t){return new(t||e)(oe(Xm,12))},e.\u0275mod=an({type:e}),e.\u0275inj=$t({providers:[...t_,...e_],imports:[DM,oI]}),e})();typeof window<"u"&&window;const{isArray:NS}=Array,{getPrototypeOf:FS,prototype:OS,keys:RS}=Object;const{isArray:LS}=Array;function HS(e,n){return e.reduce((t,r,o)=>(t[r]=n[o],t),{})}function jS(...e){const n=function Fv(e){return me(Vs(e))?e.pop():void 0}(e),{args:t,keys:r}=function PS(e){if(1===e.length){const n=e[0];if(NS(n))return{args:n,keys:null};if(function kS(e){return e&&"object"==typeof e&&FS(e)===OS}(n)){const t=RS(n);return{args:t.map(r=>n[r]),keys:t}}}return{args:e,keys:null}}(e),o=new ze(i=>{const{length:s}=t;if(!s)return void i.complete();const a=new Array(s);let l=s,c=s;for(let u=0;u{d||(d=!0,c--),a[u]=h},()=>l--,void 0,()=>{(!l||!d)&&(c||i.next(r?HS(r,a):a),i.complete())}))}});return n?o.pipe(function BS(e){return Ps(n=>function VS(e,n){return LS(n)?e(...n):e(n)}(e,n))}(n)):o}let o_=(()=>{class e{constructor(t,r){this._renderer=t,this._elementRef=r,this.onChange=o=>{},this.onTouched=()=>{}}setProperty(t,r){this._renderer.setProperty(this._elementRef.nativeElement,t,r)}registerOnTouched(t){this.onTouched=t}registerOnChange(t){this.onChange=t}setDisabledState(t){this.setProperty("disabled",t)}}return e.\u0275fac=function(t){return new(t||e)(M(Rn),M(Dt))},e.\u0275dir=$({type:e}),e})(),$n=(()=>{class e extends o_{}return e.\u0275fac=function(){let n;return function(r){return(n||(n=Be(e)))(r||e)}}(),e.\u0275dir=$({type:e,features:[se]}),e})();const jt=new H("NgValueAccessor"),$S={provide:jt,useExisting:ue(()=>kc),multi:!0};let kc=(()=>{class e extends $n{writeValue(t){this.setProperty("checked",t)}}return e.\u0275fac=function(){let n;return function(r){return(n||(n=Be(e)))(r||e)}}(),e.\u0275dir=$({type:e,selectors:[["input","type","checkbox","formControlName",""],["input","type","checkbox","formControl",""],["input","type","checkbox","ngModel",""]],hostBindings:function(t,r){1&t&&k("change",function(i){return r.onChange(i.target.checked)})("blur",function(){return r.onTouched()})},features:[ge([$S]),se]}),e})();const US={provide:jt,useExisting:ue(()=>So),multi:!0},GS=new H("CompositionEventMode");let So=(()=>{class e extends o_{constructor(t,r,o){super(t,r),this._compositionMode=o,this._composing=!1,null==this._compositionMode&&(this._compositionMode=!function zS(){const e=Hn()?Hn().getUserAgent():"";return/android (\d+)/.test(e.toLowerCase())}())}writeValue(t){this.setProperty("value",t??"")}_handleInput(t){(!this._compositionMode||this._compositionMode&&!this._composing)&&this.onChange(t)}_compositionStart(){this._composing=!0}_compositionEnd(t){this._composing=!1,this._compositionMode&&this.onChange(t)}}return e.\u0275fac=function(t){return new(t||e)(M(Rn),M(Dt),M(GS,8))},e.\u0275dir=$({type:e,selectors:[["input","formControlName","",3,"type","checkbox"],["textarea","formControlName",""],["input","formControl","",3,"type","checkbox"],["textarea","formControl",""],["input","ngModel","",3,"type","checkbox"],["textarea","ngModel",""],["","ngDefaultControl",""]],hostBindings:function(t,r){1&t&&k("input",function(i){return r._handleInput(i.target.value)})("blur",function(){return r.onTouched()})("compositionstart",function(){return r._compositionStart()})("compositionend",function(i){return r._compositionEnd(i.target.value)})},features:[ge([US]),se]}),e})();const Ue=new H("NgValidators"),_n=new H("NgAsyncValidators");function p_(e){return null!=e}function g_(e){return Hi(e)?Bs(e):e}function m_(e){let n={};return e.forEach(t=>{n=null!=t?{...n,...t}:n}),0===Object.keys(n).length?null:n}function __(e,n){return n.map(t=>t(e))}function v_(e){return e.map(n=>function ZS(e){return!e.validate}(n)?n:t=>n.validate(t))}function Lc(e){return null!=e?function y_(e){if(!e)return null;const n=e.filter(p_);return 0==n.length?null:function(t){return m_(__(t,n))}}(v_(e)):null}function Vc(e){return null!=e?function C_(e){if(!e)return null;const n=e.filter(p_);return 0==n.length?null:function(t){return jS(__(t,n).map(g_)).pipe(Ps(m_))}}(v_(e)):null}function D_(e,n){return null===e?[n]:Array.isArray(e)?[...e,n]:[e,n]}function Bc(e){return e?Array.isArray(e)?e:[e]:[]}function vs(e,n){return Array.isArray(e)?e.includes(n):e===n}function E_(e,n){const t=Bc(n);return Bc(e).forEach(o=>{vs(t,o)||t.push(o)}),t}function I_(e,n){return Bc(n).filter(t=>!vs(e,t))}class M_{constructor(){this._rawValidators=[],this._rawAsyncValidators=[],this._onDestroyCallbacks=[]}get value(){return this.control?this.control.value:null}get valid(){return this.control?this.control.valid:null}get invalid(){return this.control?this.control.invalid:null}get pending(){return this.control?this.control.pending:null}get disabled(){return this.control?this.control.disabled:null}get enabled(){return this.control?this.control.enabled:null}get errors(){return this.control?this.control.errors:null}get pristine(){return this.control?this.control.pristine:null}get dirty(){return this.control?this.control.dirty:null}get touched(){return this.control?this.control.touched:null}get status(){return this.control?this.control.status:null}get untouched(){return this.control?this.control.untouched:null}get statusChanges(){return this.control?this.control.statusChanges:null}get valueChanges(){return this.control?this.control.valueChanges:null}get path(){return null}_setValidators(n){this._rawValidators=n||[],this._composedValidatorFn=Lc(this._rawValidators)}_setAsyncValidators(n){this._rawAsyncValidators=n||[],this._composedAsyncValidatorFn=Vc(this._rawAsyncValidators)}get validator(){return this._composedValidatorFn||null}get asyncValidator(){return this._composedAsyncValidatorFn||null}_registerOnDestroy(n){this._onDestroyCallbacks.push(n)}_invokeOnDestroyCallbacks(){this._onDestroyCallbacks.forEach(n=>n()),this._onDestroyCallbacks=[]}reset(n){this.control&&this.control.reset(n)}hasError(n,t){return!!this.control&&this.control.hasError(n,t)}getError(n,t){return this.control?this.control.getError(n,t):null}}class Ke extends M_{get formDirective(){return null}get path(){return null}}class vn extends M_{constructor(){super(...arguments),this._parent=null,this.name=null,this.valueAccessor=null}}class S_{constructor(n){this._cd=n}get isTouched(){return!!this._cd?.control?.touched}get isUntouched(){return!!this._cd?.control?.untouched}get isPristine(){return!!this._cd?.control?.pristine}get isDirty(){return!!this._cd?.control?.dirty}get isValid(){return!!this._cd?.control?.valid}get isInvalid(){return!!this._cd?.control?.invalid}get isPending(){return!!this._cd?.control?.pending}get isSubmitted(){return!!this._cd?.submitted}}let ys=(()=>{class e extends S_{constructor(t){super(t)}}return e.\u0275fac=function(t){return new(t||e)(M(vn,2))},e.\u0275dir=$({type:e,selectors:[["","formControlName",""],["","ngModel",""],["","formControl",""]],hostVars:14,hostBindings:function(t,r){2&t&&$i("ng-untouched",r.isUntouched)("ng-touched",r.isTouched)("ng-pristine",r.isPristine)("ng-dirty",r.isDirty)("ng-valid",r.isValid)("ng-invalid",r.isInvalid)("ng-pending",r.isPending)},features:[se]}),e})();const Ao="VALID",Ds="INVALID",Nr="PENDING",To="DISABLED";function ws(e){return null!=e&&!Array.isArray(e)&&"object"==typeof e}class N_{constructor(n,t){this._pendingDirty=!1,this._hasOwnPendingAsyncValidator=!1,this._pendingTouched=!1,this._onCollectionChange=()=>{},this._parent=null,this.pristine=!0,this.touched=!1,this._onDisabledChange=[],this._assignValidators(n),this._assignAsyncValidators(t)}get validator(){return this._composedValidatorFn}set validator(n){this._rawValidators=this._composedValidatorFn=n}get asyncValidator(){return this._composedAsyncValidatorFn}set asyncValidator(n){this._rawAsyncValidators=this._composedAsyncValidatorFn=n}get parent(){return this._parent}get valid(){return this.status===Ao}get invalid(){return this.status===Ds}get pending(){return this.status==Nr}get disabled(){return this.status===To}get enabled(){return this.status!==To}get dirty(){return!this.pristine}get untouched(){return!this.touched}get updateOn(){return this._updateOn?this._updateOn:this.parent?this.parent.updateOn:"change"}setValidators(n){this._assignValidators(n)}setAsyncValidators(n){this._assignAsyncValidators(n)}addValidators(n){this.setValidators(E_(n,this._rawValidators))}addAsyncValidators(n){this.setAsyncValidators(E_(n,this._rawAsyncValidators))}removeValidators(n){this.setValidators(I_(n,this._rawValidators))}removeAsyncValidators(n){this.setAsyncValidators(I_(n,this._rawAsyncValidators))}hasValidator(n){return vs(this._rawValidators,n)}hasAsyncValidator(n){return vs(this._rawAsyncValidators,n)}clearValidators(){this.validator=null}clearAsyncValidators(){this.asyncValidator=null}markAsTouched(n={}){this.touched=!0,this._parent&&!n.onlySelf&&this._parent.markAsTouched(n)}markAllAsTouched(){this.markAsTouched({onlySelf:!0}),this._forEachChild(n=>n.markAllAsTouched())}markAsUntouched(n={}){this.touched=!1,this._pendingTouched=!1,this._forEachChild(t=>{t.markAsUntouched({onlySelf:!0})}),this._parent&&!n.onlySelf&&this._parent._updateTouched(n)}markAsDirty(n={}){this.pristine=!1,this._parent&&!n.onlySelf&&this._parent.markAsDirty(n)}markAsPristine(n={}){this.pristine=!0,this._pendingDirty=!1,this._forEachChild(t=>{t.markAsPristine({onlySelf:!0})}),this._parent&&!n.onlySelf&&this._parent._updatePristine(n)}markAsPending(n={}){this.status=Nr,!1!==n.emitEvent&&this.statusChanges.emit(this.status),this._parent&&!n.onlySelf&&this._parent.markAsPending(n)}disable(n={}){const t=this._parentMarkedDirty(n.onlySelf);this.status=To,this.errors=null,this._forEachChild(r=>{r.disable({...n,onlySelf:!0})}),this._updateValue(),!1!==n.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors({...n,skipPristineCheck:t}),this._onDisabledChange.forEach(r=>r(!0))}enable(n={}){const t=this._parentMarkedDirty(n.onlySelf);this.status=Ao,this._forEachChild(r=>{r.enable({...n,onlySelf:!0})}),this.updateValueAndValidity({onlySelf:!0,emitEvent:n.emitEvent}),this._updateAncestors({...n,skipPristineCheck:t}),this._onDisabledChange.forEach(r=>r(!1))}_updateAncestors(n){this._parent&&!n.onlySelf&&(this._parent.updateValueAndValidity(n),n.skipPristineCheck||this._parent._updatePristine(),this._parent._updateTouched())}setParent(n){this._parent=n}getRawValue(){return this.value}updateValueAndValidity(n={}){this._setInitialStatus(),this._updateValue(),this.enabled&&(this._cancelExistingSubscription(),this.errors=this._runValidator(),this.status=this._calculateStatus(),(this.status===Ao||this.status===Nr)&&this._runAsyncValidator(n.emitEvent)),!1!==n.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._parent&&!n.onlySelf&&this._parent.updateValueAndValidity(n)}_updateTreeValidity(n={emitEvent:!0}){this._forEachChild(t=>t._updateTreeValidity(n)),this.updateValueAndValidity({onlySelf:!0,emitEvent:n.emitEvent})}_setInitialStatus(){this.status=this._allControlsDisabled()?To:Ao}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(n){if(this.asyncValidator){this.status=Nr,this._hasOwnPendingAsyncValidator=!0;const t=g_(this.asyncValidator(this));this._asyncValidationSubscription=t.subscribe(r=>{this._hasOwnPendingAsyncValidator=!1,this.setErrors(r,{emitEvent:n})})}}_cancelExistingSubscription(){this._asyncValidationSubscription&&(this._asyncValidationSubscription.unsubscribe(),this._hasOwnPendingAsyncValidator=!1)}setErrors(n,t={}){this.errors=n,this._updateControlsErrors(!1!==t.emitEvent)}get(n){let t=n;return null==t||(Array.isArray(t)||(t=t.split(".")),0===t.length)?null:t.reduce((r,o)=>r&&r._find(o),this)}getError(n,t){const r=t?this.get(t):this;return r&&r.errors?r.errors[n]:null}hasError(n,t){return!!this.getError(n,t)}get root(){let n=this;for(;n._parent;)n=n._parent;return n}_updateControlsErrors(n){this.status=this._calculateStatus(),n&&this.statusChanges.emit(this.status),this._parent&&this._parent._updateControlsErrors(n)}_initObservables(){this.valueChanges=new be,this.statusChanges=new be}_calculateStatus(){return this._allControlsDisabled()?To:this.errors?Ds:this._hasOwnPendingAsyncValidator||this._anyControlsHaveStatus(Nr)?Nr:this._anyControlsHaveStatus(Ds)?Ds:Ao}_anyControlsHaveStatus(n){return this._anyControls(t=>t.status===n)}_anyControlsDirty(){return this._anyControls(n=>n.dirty)}_anyControlsTouched(){return this._anyControls(n=>n.touched)}_updatePristine(n={}){this.pristine=!this._anyControlsDirty(),this._parent&&!n.onlySelf&&this._parent._updatePristine(n)}_updateTouched(n={}){this.touched=this._anyControlsTouched(),this._parent&&!n.onlySelf&&this._parent._updateTouched(n)}_registerOnCollectionChange(n){this._onCollectionChange=n}_setUpdateStrategy(n){ws(n)&&null!=n.updateOn&&(this._updateOn=n.updateOn)}_parentMarkedDirty(n){return!n&&!(!this._parent||!this._parent.dirty)&&!this._parent._anyControlsDirty()}_find(n){return null}_assignValidators(n){this._rawValidators=Array.isArray(n)?n.slice():n,this._composedValidatorFn=function nA(e){return Array.isArray(e)?Lc(e):e||null}(this._rawValidators)}_assignAsyncValidators(n){this._rawAsyncValidators=Array.isArray(n)?n.slice():n,this._composedAsyncValidatorFn=function rA(e){return Array.isArray(e)?Vc(e):e||null}(this._rawAsyncValidators)}}const xo=new H("CallSetDisabledState",{providedIn:"root",factory:()=>Wc}),Wc="always";function No(e,n,t=Wc){(function qc(e,n){const t=function w_(e){return e._rawValidators}(e);null!==n.validator?e.setValidators(D_(t,n.validator)):"function"==typeof t&&e.setValidators([t]);const r=function b_(e){return e._rawAsyncValidators}(e);null!==n.asyncValidator?e.setAsyncValidators(D_(r,n.asyncValidator)):"function"==typeof r&&e.setAsyncValidators([r]);const o=()=>e.updateValueAndValidity();Is(n._rawValidators,o),Is(n._rawAsyncValidators,o)})(e,n),n.valueAccessor.writeValue(e.value),(e.disabled||"always"===t)&&n.valueAccessor.setDisabledState?.(e.disabled),function sA(e,n){n.valueAccessor.registerOnChange(t=>{e._pendingValue=t,e._pendingChange=!0,e._pendingDirty=!0,"change"===e.updateOn&&F_(e,n)})}(e,n),function lA(e,n){const t=(r,o)=>{n.valueAccessor.writeValue(r),o&&n.viewToModelUpdate(r)};e.registerOnChange(t),n._registerOnDestroy(()=>{e._unregisterOnChange(t)})}(e,n),function aA(e,n){n.valueAccessor.registerOnTouched(()=>{e._pendingTouched=!0,"blur"===e.updateOn&&e._pendingChange&&F_(e,n),"submit"!==e.updateOn&&e.markAsTouched()})}(e,n),function iA(e,n){if(n.valueAccessor.setDisabledState){const t=r=>{n.valueAccessor.setDisabledState(r)};e.registerOnDisabledChange(t),n._registerOnDestroy(()=>{e._unregisterOnDisabledChange(t)})}}(e,n)}function Is(e,n){e.forEach(t=>{t.registerOnValidatorChange&&t.registerOnValidatorChange(n)})}function F_(e,n){e._pendingDirty&&e.markAsDirty(),e.setValue(e._pendingValue,{emitModelToViewChange:!1}),n.viewToModelUpdate(e._pendingValue),e._pendingChange=!1}function P_(e,n){const t=e.indexOf(n);t>-1&&e.splice(t,1)}function k_(e){return"object"==typeof e&&null!==e&&2===Object.keys(e).length&&"value"in e&&"disabled"in e}const L_=class extends N_{constructor(n=null,t,r){super(function Uc(e){return(ws(e)?e.validators:e)||null}(t),function zc(e,n){return(ws(n)?n.asyncValidators:e)||null}(r,t)),this.defaultValue=null,this._onChange=[],this._pendingChange=!1,this._applyFormState(n),this._setUpdateStrategy(t),this._initObservables(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator}),ws(t)&&(t.nonNullable||t.initialValueIsDefault)&&(this.defaultValue=k_(n)?n.value:n)}setValue(n,t={}){this.value=this._pendingValue=n,this._onChange.length&&!1!==t.emitModelToViewChange&&this._onChange.forEach(r=>r(this.value,!1!==t.emitViewToModelChange)),this.updateValueAndValidity(t)}patchValue(n,t={}){this.setValue(n,t)}reset(n=this.defaultValue,t={}){this._applyFormState(n),this.markAsPristine(t),this.markAsUntouched(t),this.setValue(this.value,t),this._pendingChange=!1}_updateValue(){}_anyControls(n){return!1}_allControlsDisabled(){return this.disabled}registerOnChange(n){this._onChange.push(n)}_unregisterOnChange(n){P_(this._onChange,n)}registerOnDisabledChange(n){this._onDisabledChange.push(n)}_unregisterOnDisabledChange(n){P_(this._onDisabledChange,n)}_forEachChild(n){}_syncPendingControls(){return!("submit"!==this.updateOn||(this._pendingDirty&&this.markAsDirty(),this._pendingTouched&&this.markAsTouched(),!this._pendingChange)||(this.setValue(this._pendingValue,{onlySelf:!0,emitModelToViewChange:!1}),0))}_applyFormState(n){k_(n)?(this.value=this._pendingValue=n.value,n.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this.value=this._pendingValue=n}},mA={provide:vn,useExisting:ue(()=>Oo)},H_=(()=>Promise.resolve())();let Oo=(()=>{class e extends vn{constructor(t,r,o,i,s,a){super(),this._changeDetectorRef=s,this.callSetDisabledState=a,this.control=new L_,this._registered=!1,this.update=new be,this._parent=t,this._setValidators(r),this._setAsyncValidators(o),this.valueAccessor=function Yc(e,n){if(!n)return null;let t,r,o;return Array.isArray(n),n.forEach(i=>{i.constructor===So?t=i:function dA(e){return Object.getPrototypeOf(e.constructor)===$n}(i)?r=i:o=i}),o||r||t||null}(0,i)}ngOnChanges(t){if(this._checkForErrors(),!this._registered||"name"in t){if(this._registered&&(this._checkName(),this.formDirective)){const r=t.name.previousValue;this.formDirective.removeControl({name:r,path:this._getPath(r)})}this._setUpControl()}"isDisabled"in t&&this._updateDisabled(t),function Qc(e,n){if(!e.hasOwnProperty("model"))return!1;const t=e.model;return!!t.isFirstChange()||!Object.is(n,t.currentValue)}(t,this.viewModel)&&(this._updateValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}get path(){return this._getPath(this.name)}get formDirective(){return this._parent?this._parent.formDirective:null}viewToModelUpdate(t){this.viewModel=t,this.update.emit(t)}_setUpControl(){this._setUpdateStrategy(),this._isStandalone()?this._setUpStandalone():this.formDirective.addControl(this),this._registered=!0}_setUpdateStrategy(){this.options&&null!=this.options.updateOn&&(this.control._updateOn=this.options.updateOn)}_isStandalone(){return!this._parent||!(!this.options||!this.options.standalone)}_setUpStandalone(){No(this.control,this,this.callSetDisabledState),this.control.updateValueAndValidity({emitEvent:!1})}_checkForErrors(){this._isStandalone()||this._checkParentType(),this._checkName()}_checkParentType(){}_checkName(){this.options&&this.options.name&&(this.name=this.options.name),this._isStandalone()}_updateValue(t){H_.then(()=>{this.control.setValue(t,{emitViewToModelChange:!1}),this._changeDetectorRef?.markForCheck()})}_updateDisabled(t){const r=t.isDisabled.currentValue,o=0!==r&&function dc(e){return"boolean"==typeof e?e:null!=e&&"false"!==e}(r);H_.then(()=>{o&&!this.control.disabled?this.control.disable():!o&&this.control.disabled&&this.control.enable(),this._changeDetectorRef?.markForCheck()})}_getPath(t){return this._parent?function bs(e,n){return[...n.path,e]}(t,this._parent):[t]}}return e.\u0275fac=function(t){return new(t||e)(M(Ke,9),M(Ue,10),M(_n,10),M(jt,10),M(cm,8),M(xo,8))},e.\u0275dir=$({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:[ge([mA]),se,Wt]}),e})(),$_=(()=>{class e{}return e.\u0275fac=function(t){return new(t||e)},e.\u0275mod=an({type:e}),e.\u0275inj=$t({}),e})();const DA={provide:jt,useExisting:ue(()=>Jc),multi:!0};let Jc=(()=>{class e extends $n{writeValue(t){this.setProperty("value",parseFloat(t))}registerOnChange(t){this.onChange=r=>{t(""==r?null:parseFloat(r))}}}return e.\u0275fac=function(){let n;return function(r){return(n||(n=Be(e)))(r||e)}}(),e.\u0275dir=$({type:e,selectors:[["input","type","range","formControlName",""],["input","type","range","formControl",""],["input","type","range","ngModel",""]],hostBindings:function(t,r){1&t&&k("change",function(i){return r.onChange(i.target.value)})("input",function(i){return r.onChange(i.target.value)})("blur",function(){return r.onTouched()})},features:[ge([DA]),se]}),e})();const SA={provide:jt,useExisting:ue(()=>Ro),multi:!0};function Z_(e,n){return null==e?`${n}`:(n&&"object"==typeof n&&(n="Object"),`${e}: ${n}`.slice(0,50))}let Ro=(()=>{class e extends $n{constructor(){super(...arguments),this._optionMap=new Map,this._idCounter=0,this._compareWith=Object.is}set compareWith(t){this._compareWith=t}writeValue(t){this.value=t;const o=Z_(this._getOptionId(t),t);this.setProperty("value",o)}registerOnChange(t){this.onChange=r=>{this.value=this._getOptionValue(r),t(this.value)}}_registerOption(){return(this._idCounter++).toString()}_getOptionId(t){for(const r of Array.from(this._optionMap.keys()))if(this._compareWith(this._optionMap.get(r),t))return r;return null}_getOptionValue(t){const r=function AA(e){return e.split(":")[0]}(t);return this._optionMap.has(r)?this._optionMap.get(r):t}}return e.\u0275fac=function(){let n;return function(r){return(n||(n=Be(e)))(r||e)}}(),e.\u0275dir=$({type:e,selectors:[["select","formControlName","",3,"multiple",""],["select","formControl","",3,"multiple",""],["select","ngModel","",3,"multiple",""]],hostBindings:function(t,r){1&t&&k("change",function(i){return r.onChange(i.target.value)})("blur",function(){return r.onTouched()})},inputs:{compareWith:"compareWith"},features:[ge([SA]),se]}),e})(),nu=(()=>{class e{constructor(t,r,o){this._element=t,this._renderer=r,this._select=o,this._select&&(this.id=this._select._registerOption())}set ngValue(t){null!=this._select&&(this._select._optionMap.set(this.id,t),this._setElementValue(Z_(this.id,t)),this._select.writeValue(this._select.value))}set value(t){this._setElementValue(t),this._select&&this._select.writeValue(this._select.value)}_setElementValue(t){this._renderer.setProperty(this._element.nativeElement,"value",t)}ngOnDestroy(){this._select&&(this._select._optionMap.delete(this.id),this._select.writeValue(this._select.value))}}return e.\u0275fac=function(t){return new(t||e)(M(Dt),M(Rn),M(Ro,9))},e.\u0275dir=$({type:e,selectors:[["option"]],inputs:{ngValue:"ngValue",value:"value"}}),e})();const TA={provide:jt,useExisting:ue(()=>ru),multi:!0};function Q_(e,n){return null==e?`${n}`:("string"==typeof n&&(n=`'${n}'`),n&&"object"==typeof n&&(n="Object"),`${e}: ${n}`.slice(0,50))}let ru=(()=>{class e extends $n{constructor(){super(...arguments),this._optionMap=new Map,this._idCounter=0,this._compareWith=Object.is}set compareWith(t){this._compareWith=t}writeValue(t){let r;if(this.value=t,Array.isArray(t)){const o=t.map(i=>this._getOptionId(i));r=(i,s)=>{i._setSelected(o.indexOf(s.toString())>-1)}}else r=(o,i)=>{o._setSelected(!1)};this._optionMap.forEach(r)}registerOnChange(t){this.onChange=r=>{const o=[],i=r.selectedOptions;if(void 0!==i){const s=i;for(let a=0;a{class e{constructor(t,r,o){this._element=t,this._renderer=r,this._select=o,this._select&&(this.id=this._select._registerOption(this))}set ngValue(t){null!=this._select&&(this._value=t,this._setElementValue(Q_(this.id,t)),this._select.writeValue(this._select.value))}set value(t){this._select?(this._value=t,this._setElementValue(Q_(this.id,t)),this._select.writeValue(this._select.value)):this._setElementValue(t)}_setElementValue(t){this._renderer.setProperty(this._element.nativeElement,"value",t)}_setSelected(t){this._renderer.setProperty(this._element.nativeElement,"selected",t)}ngOnDestroy(){this._select&&(this._select._optionMap.delete(this.id),this._select.writeValue(this._select.value))}}return e.\u0275fac=function(t){return new(t||e)(M(Dt),M(Rn),M(ru,9))},e.\u0275dir=$({type:e,selectors:[["option"]],inputs:{ngValue:"ngValue",value:"value"}}),e})(),BA=(()=>{class e{}return e.\u0275fac=function(t){return new(t||e)},e.\u0275mod=an({type:e}),e.\u0275inj=$t({imports:[$_]}),e})(),jA=(()=>{class e{static withConfig(t){return{ngModule:e,providers:[{provide:xo,useValue:t.callSetDisabledState??Wc}]}}}return e.\u0275fac=function(t){return new(t||e)},e.\u0275mod=an({type:e}),e.\u0275inj=$t({imports:[BA]}),e})();class iv{constructor(){this.riskHotspotsSettings=null,this.coverageInfoSettings=null}}class $A{constructor(){this.showLineCoverage=!0,this.showBranchCoverage=!0,this.showMethodCoverage=!0,this.visibleMetrics=[],this.groupingMaximum=0,this.grouping=0,this.historyComparisionDate="",this.historyComparisionType="",this.filter="",this.sortBy="name",this.sortOrder="asc",this.collapseStates=[]}}class UA{constructor(n){this.et="",this.et=n.et,this.cl=n.cl,this.ucl=n.ucl,this.cal=n.cal,this.tl=n.tl,this.lcq=n.lcq,this.cb=n.cb,this.tb=n.tb,this.bcq=n.bcq,this.cm=n.cm,this.tm=n.tm,this.mcq=n.mcq}get coverageRatioText(){return 0===this.tl?"-":this.cl+"/"+this.cal}get branchCoverageRatioText(){return 0===this.tb?"-":this.cb+"/"+this.tb}get methodCoverageRatioText(){return 0===this.tm?"-":this.cm+"/"+this.tm}}class yn{static roundNumber(n,t){return Math.floor(n*Math.pow(10,t))/Math.pow(10,t)}static getNthOrLastIndexOf(n,t,r){let o=0,i=-1,s=-1;for(;o{this.historicCoverages.push(new UA(r))}),this.metrics=n.metrics}get coverage(){return 0===this.coverableLines?"-"!==this.coverageByMethod?parseFloat(this.coverageByMethod):NaN:yn.roundNumber(100*this.coveredLines/this.coverableLines,1)}get coverageType(){return 0===this.coverableLines?"-"!==this.coverageByMethod?this._coverageType:"":this._coverageType}visible(n,t){if(""!==n&&-1===this.name.toLowerCase().indexOf(n.toLowerCase()))return!1;if(""===t||null===this.currentHistoricCoverage)return!0;if("allChanges"===t){if(this.coveredLines===this.currentHistoricCoverage.cl&&this.uncoveredLines===this.currentHistoricCoverage.ucl&&this.coverableLines===this.currentHistoricCoverage.cal&&this.totalLines===this.currentHistoricCoverage.tl&&this.coveredBranches===this.currentHistoricCoverage.cb&&this.totalBranches===this.currentHistoricCoverage.tb&&this.coveredMethods===this.currentHistoricCoverage.cm&&this.totalMethods===this.currentHistoricCoverage.tm)return!1}else if("lineCoverageIncreaseOnly"===t){let r=this.coverage;if(isNaN(r)||r<=this.currentHistoricCoverage.lcq)return!1}else if("lineCoverageDecreaseOnly"===t){let r=this.coverage;if(isNaN(r)||r>=this.currentHistoricCoverage.lcq)return!1}else if("branchCoverageIncreaseOnly"===t){let r=this.branchCoverage;if(isNaN(r)||r<=this.currentHistoricCoverage.bcq)return!1}else if("branchCoverageDecreaseOnly"===t){let r=this.branchCoverage;if(isNaN(r)||r>=this.currentHistoricCoverage.bcq)return!1}else if("methodCoverageIncreaseOnly"===t){let r=this.methodCoverage;if(isNaN(r)||r<=this.currentHistoricCoverage.mcq)return!1}else if("methodCoverageDecreaseOnly"===t){let r=this.methodCoverage;if(isNaN(r)||r>=this.currentHistoricCoverage.mcq)return!1}return!0}updateCurrentHistoricCoverage(n){if(this.currentHistoricCoverage=null,""!==n)for(let t=0;t-1&&null===t}visible(n,t){if(""!==n&&this.name.toLowerCase().indexOf(n.toLowerCase())>-1)return!0;for(let r=0;rt.name===n.name)}toggleMetric(n){let t=this.visibleMetrics.find(r=>r.name===n.name);t?this.visibleMetrics.splice(this.visibleMetrics.indexOf(t),1):this.visibleMetrics.push(n),this.visibleMetrics=[...this.visibleMetrics],this.visibleMetricsChange.emit(this.visibleMetrics)}close(){this.visible=!1,this.visibleChange.emit(this.visible)}cancelEvent(n){n.stopPropagation()}}function KA(e,n){1&e&&N(0,"td",3)}function JA(e,n){1&e&&N(0,"td"),2&e&&Bt("green ",_().greenClass,"")}function XA(e,n){1&e&&N(0,"td"),2&e&&Bt("red ",_().redClass,"")}ko.\u0275fac=function(n){return new(n||ko)},ko.\u0275cmp=Nt({type:ko,selectors:[["popup"]],inputs:{visible:"visible",translations:"translations",branchCoverageAvailable:"branchCoverageAvailable",methodCoverageAvailable:"methodCoverageAvailable",metrics:"metrics",showLineCoverage:"showLineCoverage",showBranchCoverage:"showBranchCoverage",showMethodCoverage:"showMethodCoverage",visibleMetrics:"visibleMetrics"},outputs:{visibleChange:"visibleChange",showLineCoverageChange:"showLineCoverageChange",showBranchCoverageChange:"showBranchCoverageChange",showMethodCoverageChange:"showMethodCoverageChange",visibleMetricsChange:"visibleMetricsChange"},decls:17,vars:9,consts:[[1,"popup-container",3,"click"],[1,"popup",3,"click"],[1,"close",3,"click"],[1,"mt-1"],["type","checkbox",3,"ngModel","ngModelChange","change"],["class","mt-1",4,"ngIf"],["type","checkbox",3,"ngModel","disabled","ngModelChange","change"],[3,"translations",4,"ngIf"],[4,"ngIf"],[3,"translations"],["class","mt-1",4,"ngFor","ngForOf"],["type","checkbox",3,"checked","disabled","change"],["target","_blank",3,"href",4,"ngIf"],["target","_blank",3,"href"],[1,"icon-info-circled"]],template:function(n,t){1&n&&(y(0,"div",0),k("click",function(){return t.close()}),y(1,"div",1),k("click",function(o){return t.cancelEvent(o)}),y(2,"div",2),k("click",function(){return t.close()}),w(3,"X"),v(),y(4,"b"),w(5),v(),y(6,"div",3)(7,"label")(8,"input",4),k("ngModelChange",function(o){return t.showLineCoverage=o})("change",function(){return t.showLineCoverageChange.emit(t.showLineCoverage)}),v(),w(9),v()(),C(10,GA,4,2,"div",5),y(11,"div",3)(12,"label")(13,"input",6),k("ngModelChange",function(o){return t.showMethodCoverage=o})("change",function(){return t.showMethodCoverageChange.emit(t.showMethodCoverage)}),v(),w(14),v(),C(15,WA,1,1,"pro-button",7),v(),C(16,YA,7,3,"ng-container",8),v()()),2&n&&(f(5),F(t.translations.coverageTypes),f(3),g("ngModel",t.showLineCoverage),f(1),G(" ",t.translations.coverage,""),f(1),g("ngIf",t.branchCoverageAvailable),f(3),g("ngModel",t.showMethodCoverage)("disabled",!t.methodCoverageAvailable),f(1),G(" ",t.translations.methodCoverage,""),f(1),g("ngIf",!t.methodCoverageAvailable),f(1),g("ngIf",t.metrics.length>0))},dependencies:[xr,jn,kc,ys,Oo,Po],encapsulation:2});class Fr{constructor(){this.grayVisible=!0,this.greenVisible=!1,this.redVisible=!1,this.greenClass="",this.redClass="",this._percentage=NaN}get percentage(){return this._percentage}set percentage(n){this._percentage=n,this.grayVisible=isNaN(n),this.greenVisible=!isNaN(n)&&Math.round(n)>0,this.redVisible=!isNaN(n)&&100-Math.round(n)>0,this.greenClass="covered"+Math.round(n),this.redClass="covered"+(100-Math.round(n))}}function tT(e,n){if(1&e&&(y(0,"th",5),w(1),v()),2&e){const t=_();f(1),F(t.element.coveredLines)}}function nT(e,n){if(1&e&&(y(0,"th",5),w(1),v()),2&e){const t=_();f(1),F(t.element.uncoveredLines)}}function rT(e,n){if(1&e&&(y(0,"th",5),w(1),v()),2&e){const t=_();f(1),F(t.element.coverableLines)}}function oT(e,n){if(1&e&&(y(0,"th",5),w(1),v()),2&e){const t=_();f(1),F(t.element.totalLines)}}function iT(e,n){if(1&e&&(y(0,"th",6),w(1),v()),2&e){const t=_();g("title",t.element.coverageRatioText),f(1),F(t.element.coveragePercentage)}}function sT(e,n){if(1&e&&(y(0,"th",5),N(1,"coverage-bar",7),v()),2&e){const t=_();f(1),g("percentage",t.element.coverage)}}function aT(e,n){if(1&e&&(y(0,"th",5),w(1),v()),2&e){const t=_();f(1),F(t.element.coveredBranches)}}function lT(e,n){if(1&e&&(y(0,"th",5),w(1),v()),2&e){const t=_();f(1),F(t.element.totalBranches)}}function cT(e,n){if(1&e&&(y(0,"th",6),w(1),v()),2&e){const t=_();g("title",t.element.branchCoverageRatioText),f(1),F(t.element.branchCoveragePercentage)}}function uT(e,n){if(1&e&&(y(0,"th",5),N(1,"coverage-bar",7),v()),2&e){const t=_();f(1),g("percentage",t.element.branchCoverage)}}function dT(e,n){if(1&e&&(y(0,"th",5),w(1),v()),2&e){const t=_();f(1),F(t.element.coveredMethods)}}function fT(e,n){if(1&e&&(y(0,"th",5),w(1),v()),2&e){const t=_();f(1),F(t.element.totalMethods)}}function hT(e,n){if(1&e&&(y(0,"th",6),w(1),v()),2&e){const t=_();g("title",t.element.methodCoverageRatioText),f(1),F(t.element.methodCoveragePercentage)}}function pT(e,n){if(1&e&&(y(0,"th",5),N(1,"coverage-bar",7),v()),2&e){const t=_();f(1),g("percentage",t.element.methodCoverage)}}function gT(e,n){1&e&&N(0,"th",5)}Fr.\u0275fac=function(n){return new(n||Fr)},Fr.\u0275cmp=Nt({type:Fr,selectors:[["coverage-bar"]],inputs:{percentage:"percentage"},decls:4,vars:3,consts:[[1,"coverage"],["class","gray covered100",4,"ngIf"],[3,"class",4,"ngIf"],[1,"gray","covered100"]],template:function(n,t){1&n&&(y(0,"table",0),C(1,KA,1,0,"td",1),C(2,JA,1,3,"td",2),C(3,XA,1,3,"td",2),v()),2&n&&(f(1),g("ngIf",t.grayVisible),f(1),g("ngIf",t.greenVisible),f(1),g("ngIf",t.redVisible))},dependencies:[jn],encapsulation:2,changeDetection:0});const mT=function(e,n){return{"icon-plus":e,"icon-minus":n}};class Lo{constructor(){this.collapsed=!1,this.lineCoverageAvailable=!1,this.branchCoverageAvailable=!1,this.methodCoverageAvailable=!1,this.visibleMetrics=[]}}Lo.\u0275fac=function(n){return new(n||Lo)},Lo.\u0275cmp=Nt({type:Lo,selectors:[["","codeelement-row",""]],inputs:{element:"element",collapsed:"collapsed",lineCoverageAvailable:"lineCoverageAvailable",branchCoverageAvailable:"branchCoverageAvailable",methodCoverageAvailable:"methodCoverageAvailable",visibleMetrics:"visibleMetrics"},attrs:["codeelement-row",""],decls:19,vars:20,consts:[["href","#",3,"click"],[3,"ngClass"],["class","right",4,"ngIf"],["class","right",3,"title",4,"ngIf"],["class","right",4,"ngFor","ngForOf"],[1,"right"],[1,"right",3,"title"],[3,"percentage"]],template:function(n,t){1&n&&(y(0,"th")(1,"a",0),k("click",function(o){return t.element.toggleCollapse(o)}),N(2,"i",1),w(3),v()(),C(4,tT,2,1,"th",2),C(5,nT,2,1,"th",2),C(6,rT,2,1,"th",2),C(7,oT,2,1,"th",2),C(8,iT,2,2,"th",3),C(9,sT,2,1,"th",2),C(10,aT,2,1,"th",2),C(11,lT,2,1,"th",2),C(12,cT,2,2,"th",3),C(13,uT,2,1,"th",2),C(14,dT,2,1,"th",2),C(15,fT,2,1,"th",2),C(16,hT,2,2,"th",3),C(17,pT,2,1,"th",2),C(18,gT,1,0,"th",4)),2&n&&(f(2),g("ngClass",Vl(17,mT,t.element.collapsed,!t.element.collapsed)),f(1),G(" ",t.element.name,""),f(1),g("ngIf",t.lineCoverageAvailable),f(1),g("ngIf",t.lineCoverageAvailable),f(1),g("ngIf",t.lineCoverageAvailable),f(1),g("ngIf",t.lineCoverageAvailable),f(1),g("ngIf",t.lineCoverageAvailable),f(1),g("ngIf",t.lineCoverageAvailable),f(1),g("ngIf",t.branchCoverageAvailable),f(1),g("ngIf",t.branchCoverageAvailable),f(1),g("ngIf",t.branchCoverageAvailable),f(1),g("ngIf",t.branchCoverageAvailable),f(1),g("ngIf",t.methodCoverageAvailable),f(1),g("ngIf",t.methodCoverageAvailable),f(1),g("ngIf",t.methodCoverageAvailable),f(1),g("ngIf",t.methodCoverageAvailable),f(1),g("ngForOf",t.visibleMetrics))},dependencies:[bo,xr,jn,Fr],encapsulation:2,changeDetection:0});class Vo{constructor(){this.path=null,this._historicCoverages=[]}get historicCoverages(){return this._historicCoverages}set historicCoverages(n){if(this._historicCoverages=n,n.length>1){let t="";for(let r=0;r1),f(1),g("ngIf",null!==t.clazz.currentHistoricCoverage),f(1),g("ngIf",null===t.clazz.currentHistoricCoverage)}}function LT(e,n){if(1&e&&(y(0,"td",6),N(1,"coverage-bar",12),v()),2&e){const t=_();f(1),g("percentage",t.clazz.coverage)}}function VT(e,n){if(1&e&&(J(0),y(1,"div"),w(2),v(),y(3,"div",7),w(4),v(),X()),2&e){const t=_(2);f(1),Bt("currenthistory ",t.getClassName(t.clazz.coveredBranches,t.clazz.currentHistoricCoverage.cb),""),f(1),G(" ",t.clazz.coveredBranches," "),f(1),g("title",t.clazz.currentHistoricCoverage.et),f(1),G(" ",t.clazz.currentHistoricCoverage.cb," ")}}function BT(e,n){if(1&e&&(J(0),w(1),X()),2&e){const t=_(2);f(1),G(" ",t.clazz.coveredBranches," ")}}function HT(e,n){if(1&e&&(y(0,"td",6),C(1,VT,5,6,"ng-container",1),C(2,BT,2,1,"ng-container",1),v()),2&e){const t=_();f(1),g("ngIf",null!==t.clazz.currentHistoricCoverage),f(1),g("ngIf",null===t.clazz.currentHistoricCoverage)}}function jT(e,n){if(1&e&&(J(0),y(1,"div",8),w(2),v(),y(3,"div",7),w(4),v(),X()),2&e){const t=_(2);f(2),F(t.clazz.totalBranches),f(1),g("title",t.clazz.currentHistoricCoverage.et),f(1),F(t.clazz.currentHistoricCoverage.tb)}}function $T(e,n){if(1&e&&(J(0),w(1),X()),2&e){const t=_(2);f(1),G(" ",t.clazz.totalBranches," ")}}function UT(e,n){if(1&e&&(y(0,"td",6),C(1,jT,5,3,"ng-container",1),C(2,$T,2,1,"ng-container",1),v()),2&e){const t=_();f(1),g("ngIf",null!==t.clazz.currentHistoricCoverage),f(1),g("ngIf",null===t.clazz.currentHistoricCoverage)}}function zT(e,n){if(1&e&&N(0,"div",14),2&e){const t=_(2);fn("title",t.translations.history+": "+t.translations.branchCoverage),g("historicCoverages",t.clazz.branchCoverageHistory)("ngClass",Zi(3,au,null!==t.clazz.currentHistoricCoverage))}}function GT(e,n){if(1&e&&(J(0),y(1,"div"),w(2),v(),y(3,"div",7),w(4),v(),X()),2&e){const t=_(2);f(1),Bt("currenthistory ",t.getClassName(t.clazz.branchCoverage,t.clazz.currentHistoricCoverage.bcq),""),f(1),G(" ",t.clazz.branchCoveragePercentage," "),f(1),g("title",t.clazz.currentHistoricCoverage.et+": "+t.clazz.currentHistoricCoverage.branchCoverageRatioText),f(1),G("",t.clazz.currentHistoricCoverage.bcq,"%")}}function WT(e,n){if(1&e&&(J(0),w(1),X()),2&e){const t=_(2);f(1),G(" ",t.clazz.branchCoveragePercentage," ")}}function qT(e,n){if(1&e&&(y(0,"td",9),C(1,zT,1,5,"div",13),C(2,GT,5,6,"ng-container",1),C(3,WT,2,1,"ng-container",1),v()),2&e){const t=_();g("title",t.clazz.branchCoverageRatioText),f(1),g("ngIf",t.clazz.branchCoverageHistory.length>1),f(1),g("ngIf",null!==t.clazz.currentHistoricCoverage),f(1),g("ngIf",null===t.clazz.currentHistoricCoverage)}}function ZT(e,n){if(1&e&&(y(0,"td",6),N(1,"coverage-bar",12),v()),2&e){const t=_();f(1),g("percentage",t.clazz.branchCoverage)}}function QT(e,n){if(1&e&&(J(0),y(1,"div"),w(2),v(),y(3,"div",7),w(4),v(),X()),2&e){const t=_(2);f(1),Bt("currenthistory ",t.getClassName(t.clazz.coveredMethods,t.clazz.currentHistoricCoverage.cm),""),f(1),G(" ",t.clazz.coveredMethods," "),f(1),g("title",t.clazz.currentHistoricCoverage.et),f(1),G(" ",t.clazz.currentHistoricCoverage.cm," ")}}function YT(e,n){if(1&e&&(J(0),w(1),X()),2&e){const t=_(2);f(1),G(" ",t.clazz.coveredMethods," ")}}function KT(e,n){if(1&e&&(y(0,"td",6),C(1,QT,5,6,"ng-container",1),C(2,YT,2,1,"ng-container",1),v()),2&e){const t=_();f(1),g("ngIf",null!==t.clazz.currentHistoricCoverage),f(1),g("ngIf",null===t.clazz.currentHistoricCoverage)}}function JT(e,n){if(1&e&&(J(0),y(1,"div",8),w(2),v(),y(3,"div",7),w(4),v(),X()),2&e){const t=_(2);f(2),F(t.clazz.totalMethods),f(1),g("title",t.clazz.currentHistoricCoverage.et),f(1),F(t.clazz.currentHistoricCoverage.tm)}}function XT(e,n){if(1&e&&(J(0),w(1),X()),2&e){const t=_(2);f(1),G(" ",t.clazz.totalMethods," ")}}function ex(e,n){if(1&e&&(y(0,"td",6),C(1,JT,5,3,"ng-container",1),C(2,XT,2,1,"ng-container",1),v()),2&e){const t=_();f(1),g("ngIf",null!==t.clazz.currentHistoricCoverage),f(1),g("ngIf",null===t.clazz.currentHistoricCoverage)}}function tx(e,n){if(1&e&&N(0,"div",16),2&e){const t=_(2);fn("title",t.translations.history+": "+t.translations.methodCoverage),g("historicCoverages",t.clazz.methodCoverageHistory)("ngClass",Zi(3,au,null!==t.clazz.currentHistoricCoverage))}}function nx(e,n){if(1&e&&(J(0),y(1,"div"),w(2),v(),y(3,"div",7),w(4),v(),X()),2&e){const t=_(2);f(1),Bt("currenthistory ",t.getClassName(t.clazz.methodCoverage,t.clazz.currentHistoricCoverage.mcq),""),f(1),G(" ",t.clazz.methodCoveragePercentage," "),f(1),g("title",t.clazz.currentHistoricCoverage.et+": "+t.clazz.currentHistoricCoverage.methodCoverageRatioText),f(1),G("",t.clazz.currentHistoricCoverage.mcq,"%")}}function rx(e,n){if(1&e&&(J(0),w(1),X()),2&e){const t=_(2);f(1),G(" ",t.clazz.methodCoveragePercentage," ")}}function ox(e,n){if(1&e&&(y(0,"td",9),C(1,tx,1,5,"div",15),C(2,nx,5,6,"ng-container",1),C(3,rx,2,1,"ng-container",1),v()),2&e){const t=_();g("title",t.clazz.methodCoverageRatioText),f(1),g("ngIf",t.clazz.methodCoverageHistory.length>1),f(1),g("ngIf",null!==t.clazz.currentHistoricCoverage),f(1),g("ngIf",null===t.clazz.currentHistoricCoverage)}}function ix(e,n){if(1&e&&(y(0,"td",6),N(1,"coverage-bar",12),v()),2&e){const t=_();f(1),g("percentage",t.clazz.methodCoverage)}}function sx(e,n){if(1&e&&(y(0,"td",6),w(1),v()),2&e){const t=n.$implicit,r=_();f(1),F(r.clazz.metrics[t.abbreviation])}}class Bo{constructor(){this.translations={},this.lineCoverageAvailable=!1,this.branchCoverageAvailable=!1,this.methodCoverageAvailable=!1,this.visibleMetrics=[],this.historyComparisionDate=""}getClassName(n,t){return n>t?"lightgreen":n0),f(2),G(" ",t.translations.grouping," "),f(1),g("max",t.settings.groupingMaximum)("ngModel",t.settings.grouping),f(2),g("ngIf",t.historicCoverageExecutionTimes.length>0),f(5),F(t.metrics.length>0?t.translations.selectCoverageTypesAndMetrics:t.translations.selectCoverageTypes),f(4),G("",t.translations.filter," "),f(1),g("ngModel",t.settings.filter),f(5),g("ngIf",t.settings.showLineCoverage),f(1),g("ngIf",t.settings.showLineCoverage),f(1),g("ngIf",t.settings.showLineCoverage),f(1),g("ngIf",t.settings.showLineCoverage),f(1),g("ngIf",t.settings.showLineCoverage),f(1),g("ngIf",t.settings.showLineCoverage),f(1),g("ngIf",t.branchCoverageAvailable&&t.settings.showBranchCoverage),f(1),g("ngIf",t.branchCoverageAvailable&&t.settings.showBranchCoverage),f(1),g("ngIf",t.branchCoverageAvailable&&t.settings.showBranchCoverage),f(1),g("ngIf",t.branchCoverageAvailable&&t.settings.showBranchCoverage),f(1),g("ngIf",t.methodCoverageAvailable&&t.settings.showMethodCoverage),f(1),g("ngIf",t.methodCoverageAvailable&&t.settings.showMethodCoverage),f(1),g("ngIf",t.methodCoverageAvailable&&t.settings.showMethodCoverage),f(1),g("ngIf",t.methodCoverageAvailable&&t.settings.showMethodCoverage),f(1),g("ngForOf",t.settings.visibleMetrics),f(4),g("ngIf",t.settings.showLineCoverage),f(1),g("ngIf",t.branchCoverageAvailable&&t.settings.showBranchCoverage),f(1),g("ngIf",t.methodCoverageAvailable&&t.settings.showMethodCoverage),f(1),g("ngIf",t.settings.visibleMetrics.length>0),f(4),g("ngClass",Oe(47,ct,"name"===t.settings.sortBy&&"desc"===t.settings.sortOrder,"name"===t.settings.sortBy&&"asc"===t.settings.sortOrder,"name"!==t.settings.sortBy)),f(1),F(t.translations.name),f(1),g("ngIf",t.settings.showLineCoverage),f(1),g("ngIf",t.settings.showLineCoverage),f(1),g("ngIf",t.settings.showLineCoverage),f(1),g("ngIf",t.settings.showLineCoverage),f(1),g("ngIf",t.settings.showLineCoverage),f(1),g("ngIf",t.branchCoverageAvailable&&t.settings.showBranchCoverage),f(1),g("ngIf",t.branchCoverageAvailable&&t.settings.showBranchCoverage),f(1),g("ngIf",t.branchCoverageAvailable&&t.settings.showBranchCoverage),f(1),g("ngIf",t.methodCoverageAvailable&&t.settings.showMethodCoverage),f(1),g("ngIf",t.methodCoverageAvailable&&t.settings.showMethodCoverage),f(1),g("ngIf",t.methodCoverageAvailable&&t.settings.showMethodCoverage),f(1),g("ngForOf",t.settings.visibleMetrics),f(2),g("ngForOf",t.codeElements)}}class Ho{constructor(n){this.queryString="",this.historicCoverageExecutionTimes=[],this.branchCoverageAvailable=!1,this.methodCoverageAvailable=!1,this.metrics=[],this.codeElements=[],this.translations={},this.popupVisible=!1,this.settings=new $A,this.window=n.nativeWindow}ngOnInit(){this.historicCoverageExecutionTimes=this.window.historicCoverageExecutionTimes,this.branchCoverageAvailable=this.window.branchCoverageAvailable,this.methodCoverageAvailable=this.window.methodCoverageAvailable,this.metrics=this.window.metrics,this.translations=this.window.translations;let n=!1;if(void 0!==this.window.history&&void 0!==this.window.history.replaceState&&null!==this.window.history.state&&null!=this.window.history.state.coverageInfoSettings)console.log("Coverage info: Restoring from history",this.window.history.state.coverageInfoSettings),n=!0,this.settings=JSON.parse(JSON.stringify(this.window.history.state.coverageInfoSettings));else{let r=0,o=this.window.assemblies;for(let i=0;i-1&&(this.queryString=window.location.href.substring(t)),this.updateCoverageInfo(),n&&this.restoreCollapseState()}onBeforeUnload(){if(this.saveCollapseState(),void 0!==this.window.history&&void 0!==this.window.history.replaceState){console.log("Coverage info: Updating history",this.settings);let n=new iv;null!==window.history.state&&(n=JSON.parse(JSON.stringify(this.window.history.state))),n.coverageInfoSettings=JSON.parse(JSON.stringify(this.settings)),window.history.replaceState(n,"")}}updateCoverageInfo(){let n=(new Date).getTime(),t=this.window.assemblies,r=[],o=0;if(0===this.settings.grouping)for(let a=0;a{for(let r=0;r{for(let o=0;on&&(r[o].collapsed=this.settings.collapseStates[n]),n++,t(r[o].subElements)};t(this.codeElements)}}Ho.\u0275fac=function(n){return new(n||Ho)(M(Dn))},Ho.\u0275cmp=Nt({type:Ho,selectors:[["coverage-info"]],hostBindings:function(n,t){1&n&&k("beforeunload",function(){return t.onBeforeUnload()},0,ol)},decls:1,vars:1,consts:[[4,"ngIf"],[3,"visible","translations","branchCoverageAvailable","methodCoverageAvailable","metrics","showLineCoverage","showBranchCoverage","showMethodCoverage","visibleMetrics","visibleChange","showLineCoverageChange","showBranchCoverageChange","showMethodCoverageChange","visibleMetricsChange",4,"ngIf"],[1,"customizebox"],["href","#",3,"click"],[1,"center"],["type","range","step","1","min","-1",3,"max","ngModel","ngModelChange"],[1,"right"],["type","button",3,"click"],[1,"icon-cog"],["type","text",3,"ngModel","ngModelChange"],[1,"table-responsive"],[1,"overview","table-fixed","stripped"],[1,"column-min-200"],["class","column90",4,"ngIf"],["class","column105",4,"ngIf"],["class","column100",4,"ngIf"],["class","column70",4,"ngIf"],["class","column98",4,"ngIf"],["class","column112",4,"ngIf"],["class","column112",4,"ngFor","ngForOf"],[1,"header"],["class","center","colspan","6",4,"ngIf"],["class","center","colspan","4",4,"ngIf"],["class","center",4,"ngIf"],[1,"icon-down-dir",3,"ngClass"],["class","right",4,"ngIf"],["class","center","colspan","2",4,"ngIf"],[4,"ngFor","ngForOf"],[3,"visible","translations","branchCoverageAvailable","methodCoverageAvailable","metrics","showLineCoverage","showBranchCoverage","showMethodCoverage","visibleMetrics","visibleChange","showLineCoverageChange","showBranchCoverageChange","showMethodCoverageChange","visibleMetricsChange"],[3,"ngModel","ngModelChange"],["value",""],[3,"value",4,"ngFor","ngForOf"],[3,"value"],["value","allChanges"],["value","lineCoverageIncreaseOnly"],["value","lineCoverageDecreaseOnly"],["value","branchCoverageIncreaseOnly",4,"ngIf"],["value","branchCoverageDecreaseOnly",4,"ngIf"],["value","methodCoverageIncreaseOnly",4,"ngIf"],["value","methodCoverageDecreaseOnly",4,"ngIf"],["value","branchCoverageIncreaseOnly"],["value","branchCoverageDecreaseOnly"],["value","methodCoverageIncreaseOnly"],["value","methodCoverageDecreaseOnly"],[1,"column90"],[1,"column105"],[1,"column100"],[1,"column70"],[1,"column98"],[1,"column112"],["colspan","6",1,"center"],["colspan","4",1,"center"],["colspan","2",1,"center"],["target","_blank",3,"href"],[1,"icon-info-circled"],["codeelement-row","",3,"element","collapsed","lineCoverageAvailable","branchCoverageAvailable","methodCoverageAvailable","visibleMetrics",4,"ngIf"],["codeelement-row","",3,"element","collapsed","lineCoverageAvailable","branchCoverageAvailable","methodCoverageAvailable","visibleMetrics"],["class-row","",3,"clazz","translations","lineCoverageAvailable","branchCoverageAvailable","methodCoverageAvailable","visibleMetrics","historyComparisionDate",4,"ngIf"],["class-row","",3,"clazz","translations","lineCoverageAvailable","branchCoverageAvailable","methodCoverageAvailable","visibleMetrics","historyComparisionDate"],["codeelement-row","",1,"namespace",3,"element","collapsed","lineCoverageAvailable","branchCoverageAvailable","methodCoverageAvailable","visibleMetrics"],["class","namespace","class-row","",3,"clazz","translations","lineCoverageAvailable","branchCoverageAvailable","methodCoverageAvailable","visibleMetrics","historyComparisionDate",4,"ngIf"],["class-row","",1,"namespace",3,"clazz","translations","lineCoverageAvailable","branchCoverageAvailable","methodCoverageAvailable","visibleMetrics","historyComparisionDate"]],template:function(n,t){1&n&&C(0,oN,73,51,"div",0),2&n&&g("ngIf",t.codeElements.length>0)},dependencies:[bo,xr,jn,nu,ou,So,Jc,Ro,ys,Oo,ko,Lo,Bo],encapsulation:2});class iN{constructor(){this.assembly="",this.numberOfRiskHotspots=10,this.filter="",this.sortBy="",this.sortOrder="asc"}}function sN(e,n){if(1&e&&(y(0,"option",15),w(1),v()),2&e){const t=n.$implicit;g("value",t),f(1),F(t)}}function aN(e,n){if(1&e&&(y(0,"span"),w(1),v()),2&e){const t=_(2);f(1),F(t.translations.top)}}function lN(e,n){1&e&&(y(0,"option",22),w(1,"20"),v())}function cN(e,n){1&e&&(y(0,"option",23),w(1,"50"),v())}function uN(e,n){1&e&&(y(0,"option",24),w(1,"100"),v())}function dN(e,n){if(1&e&&(y(0,"option",15),w(1),v()),2&e){const t=_(3);g("value",t.totalNumberOfRiskHotspots),f(1),F(t.translations.all)}}function fN(e,n){if(1&e){const t=Ce();y(0,"select",16),k("ngModelChange",function(o){return Q(t),Y(_(2).settings.numberOfRiskHotspots=o)}),y(1,"option",17),w(2,"10"),v(),C(3,lN,2,0,"option",18),C(4,cN,2,0,"option",19),C(5,uN,2,0,"option",20),C(6,dN,2,2,"option",21),v()}if(2&e){const t=_(2);g("ngModel",t.settings.numberOfRiskHotspots),f(3),g("ngIf",t.totalNumberOfRiskHotspots>10),f(1),g("ngIf",t.totalNumberOfRiskHotspots>20),f(1),g("ngIf",t.totalNumberOfRiskHotspots>50),f(1),g("ngIf",t.totalNumberOfRiskHotspots>100)}}function hN(e,n){1&e&&N(0,"col",25)}const Ss=function(e,n,t){return{"icon-up-dir_active":e,"icon-down-dir_active":n,"icon-down-dir":t}};function pN(e,n){if(1&e){const t=Ce();y(0,"th")(1,"a",12),k("click",function(o){const s=Q(t).index;return Y(_(2).updateSorting(""+s,o))}),N(2,"i",13),w(3),v(),y(4,"a",26),N(5,"i",27),v()()}if(2&e){const t=n.$implicit,r=n.index,o=_(2);f(2),g("ngClass",Oe(3,Ss,o.settings.sortBy===""+r&&"desc"===o.settings.sortOrder,o.settings.sortBy===""+r&&"asc"===o.settings.sortOrder,o.settings.sortBy!==""+r)),f(1),F(t.name),f(1),fn("href",t.explanationUrl,un)}}const gN=function(e,n){return{lightred:e,lightgreen:n}};function mN(e,n){if(1&e&&(y(0,"td",31),w(1),v()),2&e){const t=n.$implicit;g("ngClass",Vl(2,gN,t.exceeded,!t.exceeded)),f(1),F(t.value)}}function _N(e,n){if(1&e&&(y(0,"tr")(1,"td"),w(2),v(),y(3,"td")(4,"a",28),w(5),v()(),y(6,"td",29)(7,"a",28),w(8),v()(),C(9,mN,2,5,"td",30),v()),2&e){const t=n.$implicit,r=_(2);f(2),F(t.assembly),f(2),g("href",t.reportPath+r.queryString,un),f(1),F(t.class),f(1),g("title",t.methodName),f(1),g("href",t.reportPath+r.queryString+"#file"+t.fileIndex+"_line"+t.line,un),f(1),G(" ",t.methodShortName," "),f(1),g("ngForOf",t.metrics)}}function vN(e,n){if(1&e){const t=Ce();y(0,"div")(1,"div",1)(2,"div")(3,"select",2),k("ngModelChange",function(o){return Q(t),Y(_().settings.assembly=o)})("ngModelChange",function(){return Q(t),Y(_().updateRiskHotpots())}),y(4,"option",3),w(5),v(),C(6,sN,2,2,"option",4),v()(),y(7,"div",5),C(8,aN,2,1,"span",0),C(9,fN,7,5,"select",6),v(),N(10,"div",5),y(11,"div",7)(12,"span"),w(13),v(),y(14,"input",8),k("ngModelChange",function(o){return Q(t),Y(_().settings.filter=o)})("ngModelChange",function(){return Q(t),Y(_().updateRiskHotpots())}),v()()(),y(15,"div",9)(16,"table",10)(17,"colgroup"),N(18,"col")(19,"col")(20,"col"),C(21,hN,1,0,"col",11),v(),y(22,"thead")(23,"tr")(24,"th")(25,"a",12),k("click",function(o){return Q(t),Y(_().updateSorting("assembly",o))}),N(26,"i",13),w(27),v()(),y(28,"th")(29,"a",12),k("click",function(o){return Q(t),Y(_().updateSorting("class",o))}),N(30,"i",13),w(31),v()(),y(32,"th")(33,"a",12),k("click",function(o){return Q(t),Y(_().updateSorting("method",o))}),N(34,"i",13),w(35),v()(),C(36,pN,6,7,"th",14),v()(),y(37,"tbody"),C(38,_N,10,7,"tr",14),function gg(e,n){const t=ee();let r;const o=e+22;t.firstCreatePass?(r=function kE(e,n){if(n)for(let t=n.length-1;t>=0;t--){const r=n[t];if(e===r.name)return r}}(n,t.pipeRegistry),t.data[o]=r,r.onDestroy&&(t.destroyHooks||(t.destroyHooks=[])).push(o,r.onDestroy)):r=t.data[o];const i=r.factory||(r.factory=Sn(r.type)),s=dt(M);try{const a=fi(!1),l=i();return fi(a),function bb(e,n,t,r){t>=e.data.length&&(e.data[t]=null,e.blueprint[t]=null),n[t]=r}(t,E(),o,l),l}finally{dt(s)}}(39,"slice"),v()()()()}if(2&e){const t=_();f(3),g("ngModel",t.settings.assembly),f(2),F(t.translations.assembly),f(1),g("ngForOf",t.assemblies),f(2),g("ngIf",t.totalNumberOfRiskHotspots>10),f(1),g("ngIf",t.totalNumberOfRiskHotspots>10),f(4),G("",t.translations.filter," "),f(1),g("ngModel",t.settings.filter),f(7),g("ngForOf",t.riskHotspotMetrics),f(5),g("ngClass",Oe(20,Ss,"assembly"===t.settings.sortBy&&"desc"===t.settings.sortOrder,"assembly"===t.settings.sortBy&&"asc"===t.settings.sortOrder,"assembly"!==t.settings.sortBy)),f(1),F(t.translations.assembly),f(3),g("ngClass",Oe(24,Ss,"class"===t.settings.sortBy&&"desc"===t.settings.sortOrder,"class"===t.settings.sortBy&&"asc"===t.settings.sortOrder,"class"!==t.settings.sortBy)),f(1),F(t.translations.class),f(3),g("ngClass",Oe(28,Ss,"method"===t.settings.sortBy&&"desc"===t.settings.sortOrder,"method"===t.settings.sortBy&&"asc"===t.settings.sortOrder,"method"!==t.settings.sortBy)),f(1),F(t.translations.method),f(1),g("ngForOf",t.riskHotspotMetrics),f(2),g("ngForOf",function mg(e,n,t,r,o){const i=e+22,s=E(),a=function Kn(e,n){return e[n]}(s,i);return function _o(e,n){return e[1].data[n].pure}(s,i)?fg(s,qe(),n,a.transform,t,r,o,a):a.transform(t,r,o)}(39,16,t.riskHotspots,0,t.settings.numberOfRiskHotspots))}}class jo{constructor(n){this.queryString="",this.riskHotspotMetrics=[],this.riskHotspots=[],this.totalNumberOfRiskHotspots=0,this.assemblies=[],this.translations={},this.settings=new iN,this.window=n.nativeWindow}ngOnInit(){this.riskHotspotMetrics=this.window.riskHotspotMetrics,this.translations=this.window.translations,void 0!==this.window.history&&void 0!==this.window.history.replaceState&&null!==this.window.history.state&&null!=this.window.history.state.riskHotspotsSettings&&(console.log("Risk hotspots: Restoring from history",this.window.history.state.riskHotspotsSettings),this.settings=JSON.parse(JSON.stringify(this.window.history.state.riskHotspotsSettings)));const n=window.location.href.indexOf("?");n>-1&&(this.queryString=window.location.href.substring(n)),this.updateRiskHotpots()}onDonBeforeUnlodad(){if(void 0!==this.window.history&&void 0!==this.window.history.replaceState){console.log("Risk hotspots: Updating history",this.settings);let n=new iv;null!==window.history.state&&(n=JSON.parse(JSON.stringify(this.window.history.state))),n.riskHotspotsSettings=JSON.parse(JSON.stringify(this.settings)),window.history.replaceState(n,"")}}updateRiskHotpots(){const n=this.window.riskHotspots;if(this.totalNumberOfRiskHotspots=n.length,0===this.assemblies.length){let i=[];for(let s=0;s0)},dependencies:[bo,xr,jn,nu,ou,So,Ro,ys,Oo,Om],encapsulation:2});class Or{}Or.\u0275fac=function(n){return new(n||Or)},Or.\u0275mod=an({type:Or,bootstrap:[jo,Ho]}),Or.\u0275inj=$t({providers:[Dn],imports:[DS,jA]}),CS().bootstrapModule(Or).catch(e=>console.error(e))}},me=>{me(me.s=938)}]); \ No newline at end of file diff --git a/docs/resources/reports/Html_Dark/report.css b/docs/resources/reports/Html_Dark/report.css new file mode 100644 index 00000000..e67b2e67 --- /dev/null +++ b/docs/resources/reports/Html_Dark/report.css @@ -0,0 +1,770 @@ +html { font-family: sans-serif; margin: 0; padding: 0; font-size: 0.9em; background-color: #d6d6d6; height: 100%; } +body { margin: 0; padding: 0; height: 100%; color: #000; } +h1 { font-family: 'Century Gothic', sans-serif; font-size: 1.2em; font-weight: normal; color: #fff; background-color: #6f6f6f; padding: 10px; margin: 20px -20px 20px -20px; } +h1:first-of-type { margin-top: 0; } +h2 { font-size: 1.0em; font-weight: bold; margin: 10px 0 15px 0; padding: 0; } +h3 { font-size: 1.0em; font-weight: bold; margin: 0 0 10px 0; padding: 0; display: inline-block; } +input, select, button { border: 1px solid #767676; border-radius: 0; } +button { background-color: #ddd; cursor: pointer; } +a { color: #c00; text-decoration: none; } +a:hover { color: #000; text-decoration: none; } +h1 a.back { color: #fff; background-color: #949494; display: inline-block; margin: -12px 5px -10px -10px; padding: 10px; border-right: 1px solid #fff; } +h1 a.back:hover { background-color: #ccc; } +h1 a.button { color: #000; background-color: #bebebe; margin: -5px 0 0 10px; padding: 5px 8px 5px 8px; border: 1px solid #fff; font-size: 0.9em; border-radius: 3px; float:right; } +h1 a.button:hover { background-color: #ccc; } +h1 a.button i { position: relative; top: 1px; } + +.container { margin: auto; max-width: 1650px; width: 90%; background-color: #fff; display: flex; box-shadow: 0 0 60px #7d7d7d; min-height: 100%; } +.containerleft { padding: 0 20px 20px 20px; flex: 1; min-width: 1%; } +.containerright { width: 340px; min-width: 340px; background-color: #e5e5e5; height: 100%; } +.containerrightfixed { position: fixed; padding: 0 20px 20px 20px; border-left: 1px solid #6f6f6f; width: 300px; overflow-y: auto; height: 100%; top: 0; bottom: 0; } +.containerrightfixed h1 { background-color: #c00; } +.containerrightfixed label, .containerright a { white-space: nowrap; overflow: hidden; display: inline-block; width: 100%; max-width: 300px; text-overflow: ellipsis; } +.containerright a { margin-bottom: 3px; } + +@media screen and (max-width:1200px){ + .container { box-shadow: none; width: 100%; } + .containerright { display: none; } +} + +.popup-container { position: fixed; left: 0; right: 0; top: 0; bottom: 0; background-color: rgb(0, 0, 0, 0.6); z-index: 100; } +.popup { position: absolute; top: 50%; right: 50%; transform: translate(50%,-50%); background-color: #fff; padding: 25px; border-radius: 15px; min-width: 300px; } +.popup .close { text-align: right; color: #979797; font-size: 25px;position: relative; left: 10px; bottom: 10px; cursor: pointer; } + +.footer { font-size: 0.7em; text-align: center; margin-top: 35px; } + +.card-group { display: flex; flex-wrap: wrap; margin-top: -15px; margin-left: -15px; } +.card-group + .card-group { margin-top: 0; } +.card-group .card { margin-top: 15px; margin-left: 15px; display: flex; flex-direction: column; background-color: #e4e4e4; background: radial-gradient(circle, #fefefe 0%, #f6f6f6 100%); border: 1px solid #c1c1c1; padding: 15px; color: #6f6f6f; max-width: 100% } +.card-group .card .card-header { font-size: 1.5rem; font-family: 'Century Gothic', sans-serif; margin-bottom: 15px; flex-grow: 1; } +.card-group .card .card-body { display: flex; flex-direction: row; gap: 15px; flex-grow: 1; } +.card-group .card .card-body div.table { display: flex; flex-direction: column; } +.card-group .card .large { font-size: 5rem; line-height: 5rem; font-weight: bold; align-self: flex-end; border-left-width: 4px; padding-left: 10px; } +.card-group .card table { align-self: flex-end; border-collapse: collapse; } +.card-group .card table tr { border-bottom: 1px solid #c1c1c1; } +.card-group .card table tr:hover { background-color: #c1c1c1; } +.card-group .card table tr:last-child { border-bottom: none; } +.card-group .card table th, .card-group .card table td { padding: 2px; } +.card-group td.limit-width { max-width: 200px; text-overflow: ellipsis; overflow: hidden; } +.card-group td.overflow-wrap { overflow-wrap: anywhere; } + +.pro-button { color: #fff; background-color: #20A0D2; background-image: linear-gradient(50deg, #1c7ed6 0%, #23b8cf 100%); padding: 10px; border-radius: 3px; font-weight: bold; display: inline-block; } +.pro-button:hover { color: #fff; background-color: #1C8EB7; background-image: linear-gradient(50deg, #1A6FBA 0%, #1EA1B5 100%); } +.pro-button-tiny { border-radius: 10px; padding: 3px 8px; } + +th { text-align: left; } +.table-fixed { table-layout: fixed; } +.table-responsive { overflow-x: auto; } +.table-responsive::-webkit-scrollbar { height: 20px; } +.table-responsive::-webkit-scrollbar-thumb { background-color: #6f6f6f; border-radius: 20px; border: 5px solid #fff; } +.overview { border: 1px solid #c1c1c1; border-collapse: collapse; width: 100%; word-wrap: break-word; } +.overview th { border: 1px solid #c1c1c1; border-collapse: collapse; padding: 2px 4px 2px 4px; background-color: #ddd; } +.overview tr.namespace th { background-color: #dcdcdc; } +.overview thead th { background-color: #d1d1d1; } +.overview th a { color: #000; } +.overview tr.namespace a { margin-left: 15px; display: block; } +.overview td { border: 1px solid #c1c1c1; border-collapse: collapse; padding: 2px 5px 2px 5px; } +.overview tr.header th { background-color: #d1d1d1; } +.overview tr.header th:nth-child(2n+1) { background-color: #ddd; } +.overview tr.header th:first-child { border-left: 1px solid #fff; border-top: 1px solid #fff; background-color: #fff; } + +div.currenthistory { margin: -2px -5px 0 -5px; padding: 2px 5px 2px 5px; height: 16px; } +.coverage { border-collapse: collapse; font-size: 5px; height: 10px; } +.coverage td { padding: 0; border: none; } +.stripped tr:nth-child(2n+1) { background-color: #F3F3F3; } + +.customizebox { font-size: 0.75em; margin-bottom: 7px; } +.customizebox>div { width: 25%; display: inline-block; } +.customizebox div.right input { width: 150px; } +#namespaceslider { width: 200px; display: inline-block; margin-left: 8px; } + +.percentagebar { + padding-left: 3px; +} +a.percentagebar { + padding-left: 6px; +} +.percentagebarundefined { + border-left: 2px solid #fff; +} +.percentagebar0 { + border-left: 2px solid #c10909; +} +.percentagebar10 { + border-left: 2px solid; + border-image: linear-gradient(to bottom, #c10909 90%, #0aad0a 90%, #0aad0a 100%) 1; +} +.percentagebar20 { + border-left: 2px solid; + border-image: linear-gradient(to bottom, #c10909 80%, #0aad0a 80%, #0aad0a 100%) 1; +} +.percentagebar30 { + border-left: 2px solid; + border-image: linear-gradient(to bottom, #c10909 70%, #0aad0a 70%, #0aad0a 100%) 1; +} +.percentagebar40 { + border-left: 2px solid; + border-image: linear-gradient(to bottom, #c10909 60%, #0aad0a 60%, #0aad0a 100%) 1; +} +.percentagebar50 { + border-left: 2px solid; + border-image: linear-gradient(to bottom, #c10909 50%, #0aad0a 50%, #0aad0a 100%) 1; +} +.percentagebar60 { + border-left: 2px solid; + border-image: linear-gradient(to bottom, #c10909 40%, #0aad0a 40%, #0aad0a 100%) 1; +} +.percentagebar70 { + border-left: 2px solid; + border-image: linear-gradient(to bottom, #c10909 30%, #0aad0a 30%, #0aad0a 100%) 1; +} +.percentagebar80 { + border-left: 2px solid; + border-image: linear-gradient(to bottom, #c10909 20%, #0aad0a 20%, #0aad0a 100%) 1; +} +.percentagebar90 { + border-left: 2px solid; + border-image: linear-gradient(to bottom, #c10909 10%, #0aad0a 10%, #0aad0a 100%) 1; +} +.percentagebar100 { + border-left: 2px solid #0aad0a; +} + +.mt-1 { margin-top: 4px; } +.hidden, .ng-hide { display: none; } +.right { text-align: right; } +.center { text-align: center; } +.rightmargin { padding-right: 8px; } +.leftmargin { padding-left: 5px; } +.green { background-color: #0aad0a; } +.lightgreen { background-color: #dcf4dc; } +.red { background-color: #c10909; } +.lightred { background-color: #f7dede; } +.orange { background-color: #FFA500; } +.lightorange { background-color: #FFEFD5; } +.gray { background-color: #dcdcdc; } +.lightgray { color: #888888; } +.lightgraybg { background-color: #dadada; } + +code { font-family: Consolas, monospace; font-size: 0.9em; } + +.toggleZoom { text-align:right; } + +.ct-chart { position: relative; } +.ct-chart .ct-line { stroke-width: 2px !important; } +.ct-chart .ct-point { stroke-width: 6px !important; transition: stroke-width .2s; } +.ct-chart .ct-point:hover { stroke-width: 10px !important; } +.ct-chart .ct-series.ct-series-a .ct-line, .ct-chart .ct-series.ct-series-a .ct-point { stroke: #c00 !important;} +.ct-chart .ct-series.ct-series-b .ct-line, .ct-chart .ct-series.ct-series-b .ct-point { stroke: #1c2298 !important;} +.ct-chart .ct-series.ct-series-c .ct-line, .ct-chart .ct-series.ct-series-c .ct-point { stroke: #0aad0a !important;} + +.tinylinecoveragechart, .tinybranchcoveragechart, .tinymethodcoveragechart { background-color: #fff; margin-left: -3px; float: left; border: 1px solid #c1c1c1; width: 30px; height: 18px; } +.historiccoverageoffset { margin-top: 7px; } + +.tinylinecoveragechart .ct-line, .tinybranchcoveragechart .ct-line, .tinymethodcoveragechart .ct-line { stroke-width: 1px !important; } +.tinybranchcoveragechart .ct-series.ct-series-a .ct-line { stroke: #1c2298 !important; } +.tinymethodcoveragechart .ct-series.ct-series-a .ct-line { stroke: #0aad0a !important; } + +.linecoverage { background-color: #c00; width: 10px; height: 8px; border: 1px solid #000; display: inline-block; } +.branchcoverage { background-color: #1c2298; width: 10px; height: 8px; border: 1px solid #000; display: inline-block; } +.codeelementcoverage { background-color: #0aad0a; width: 10px; height: 8px; border: 1px solid #000; display: inline-block; } + +.tooltip { position: absolute; display: none; padding: 5px; background: #F4C63D; color: #453D3F; pointer-events: none; z-index: 1; min-width: 250px; } + +.column-min-200 { min-width: 200px; } +.column60 { width: 60px; } +.column70 { width: 70px; } +.column90 { width: 90px; } +.column98 { width: 98px; } +.column100 { width: 100px; } +.column105 { width: 105px; } +.column112 { width: 112px; } + +.cardpercentagebar { border-left-style: solid; } +.cardpercentagebar0 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 0%, #0aad0a 0%) 1; } +.cardpercentagebar1 { border-image: linear-gradient(to bottom, #c10909 1%, #c10909 1%, #0aad0a 1%) 1; } +.cardpercentagebar2 { border-image: linear-gradient(to bottom, #c10909 2%, #c10909 2%, #0aad0a 2%) 1; } +.cardpercentagebar3 { border-image: linear-gradient(to bottom, #c10909 3%, #c10909 3%, #0aad0a 3%) 1; } +.cardpercentagebar4 { border-image: linear-gradient(to bottom, #c10909 4%, #c10909 4%, #0aad0a 4%) 1; } +.cardpercentagebar5 { border-image: linear-gradient(to bottom, #c10909 5%, #c10909 5%, #0aad0a 5%) 1; } +.cardpercentagebar6 { border-image: linear-gradient(to bottom, #c10909 6%, #c10909 6%, #0aad0a 6%) 1; } +.cardpercentagebar7 { border-image: linear-gradient(to bottom, #c10909 7%, #c10909 7%, #0aad0a 7%) 1; } +.cardpercentagebar8 { border-image: linear-gradient(to bottom, #c10909 8%, #c10909 8%, #0aad0a 8%) 1; } +.cardpercentagebar9 { border-image: linear-gradient(to bottom, #c10909 9%, #c10909 9%, #0aad0a 9%) 1; } +.cardpercentagebar10 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 10%, #0aad0a 10%) 1; } +.cardpercentagebar11 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 11%, #0aad0a 11%) 1; } +.cardpercentagebar12 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 12%, #0aad0a 12%) 1; } +.cardpercentagebar13 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 13%, #0aad0a 13%) 1; } +.cardpercentagebar14 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 14%, #0aad0a 14%) 1; } +.cardpercentagebar15 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 15%, #0aad0a 15%) 1; } +.cardpercentagebar16 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 16%, #0aad0a 16%) 1; } +.cardpercentagebar17 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 17%, #0aad0a 17%) 1; } +.cardpercentagebar18 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 18%, #0aad0a 18%) 1; } +.cardpercentagebar19 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 19%, #0aad0a 19%) 1; } +.cardpercentagebar20 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 20%, #0aad0a 20%) 1; } +.cardpercentagebar21 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 21%, #0aad0a 21%) 1; } +.cardpercentagebar22 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 22%, #0aad0a 22%) 1; } +.cardpercentagebar23 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 23%, #0aad0a 23%) 1; } +.cardpercentagebar24 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 24%, #0aad0a 24%) 1; } +.cardpercentagebar25 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 25%, #0aad0a 25%) 1; } +.cardpercentagebar26 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 26%, #0aad0a 26%) 1; } +.cardpercentagebar27 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 27%, #0aad0a 27%) 1; } +.cardpercentagebar28 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 28%, #0aad0a 28%) 1; } +.cardpercentagebar29 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 29%, #0aad0a 29%) 1; } +.cardpercentagebar30 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 30%, #0aad0a 30%) 1; } +.cardpercentagebar31 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 31%, #0aad0a 31%) 1; } +.cardpercentagebar32 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 32%, #0aad0a 32%) 1; } +.cardpercentagebar33 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 33%, #0aad0a 33%) 1; } +.cardpercentagebar34 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 34%, #0aad0a 34%) 1; } +.cardpercentagebar35 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 35%, #0aad0a 35%) 1; } +.cardpercentagebar36 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 36%, #0aad0a 36%) 1; } +.cardpercentagebar37 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 37%, #0aad0a 37%) 1; } +.cardpercentagebar38 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 38%, #0aad0a 38%) 1; } +.cardpercentagebar39 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 39%, #0aad0a 39%) 1; } +.cardpercentagebar40 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 40%, #0aad0a 40%) 1; } +.cardpercentagebar41 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 41%, #0aad0a 41%) 1; } +.cardpercentagebar42 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 42%, #0aad0a 42%) 1; } +.cardpercentagebar43 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 43%, #0aad0a 43%) 1; } +.cardpercentagebar44 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 44%, #0aad0a 44%) 1; } +.cardpercentagebar45 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 45%, #0aad0a 45%) 1; } +.cardpercentagebar46 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 46%, #0aad0a 46%) 1; } +.cardpercentagebar47 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 47%, #0aad0a 47%) 1; } +.cardpercentagebar48 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 48%, #0aad0a 48%) 1; } +.cardpercentagebar49 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 49%, #0aad0a 49%) 1; } +.cardpercentagebar50 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 50%, #0aad0a 50%) 1; } +.cardpercentagebar51 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 51%, #0aad0a 51%) 1; } +.cardpercentagebar52 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 52%, #0aad0a 52%) 1; } +.cardpercentagebar53 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 53%, #0aad0a 53%) 1; } +.cardpercentagebar54 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 54%, #0aad0a 54%) 1; } +.cardpercentagebar55 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 55%, #0aad0a 55%) 1; } +.cardpercentagebar56 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 56%, #0aad0a 56%) 1; } +.cardpercentagebar57 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 57%, #0aad0a 57%) 1; } +.cardpercentagebar58 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 58%, #0aad0a 58%) 1; } +.cardpercentagebar59 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 59%, #0aad0a 59%) 1; } +.cardpercentagebar60 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 60%, #0aad0a 60%) 1; } +.cardpercentagebar61 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 61%, #0aad0a 61%) 1; } +.cardpercentagebar62 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 62%, #0aad0a 62%) 1; } +.cardpercentagebar63 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 63%, #0aad0a 63%) 1; } +.cardpercentagebar64 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 64%, #0aad0a 64%) 1; } +.cardpercentagebar65 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 65%, #0aad0a 65%) 1; } +.cardpercentagebar66 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 66%, #0aad0a 66%) 1; } +.cardpercentagebar67 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 67%, #0aad0a 67%) 1; } +.cardpercentagebar68 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 68%, #0aad0a 68%) 1; } +.cardpercentagebar69 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 69%, #0aad0a 69%) 1; } +.cardpercentagebar70 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 70%, #0aad0a 70%) 1; } +.cardpercentagebar71 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 71%, #0aad0a 71%) 1; } +.cardpercentagebar72 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 72%, #0aad0a 72%) 1; } +.cardpercentagebar73 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 73%, #0aad0a 73%) 1; } +.cardpercentagebar74 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 74%, #0aad0a 74%) 1; } +.cardpercentagebar75 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 75%, #0aad0a 75%) 1; } +.cardpercentagebar76 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 76%, #0aad0a 76%) 1; } +.cardpercentagebar77 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 77%, #0aad0a 77%) 1; } +.cardpercentagebar78 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 78%, #0aad0a 78%) 1; } +.cardpercentagebar79 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 79%, #0aad0a 79%) 1; } +.cardpercentagebar80 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 80%, #0aad0a 80%) 1; } +.cardpercentagebar81 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 81%, #0aad0a 81%) 1; } +.cardpercentagebar82 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 82%, #0aad0a 82%) 1; } +.cardpercentagebar83 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 83%, #0aad0a 83%) 1; } +.cardpercentagebar84 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 84%, #0aad0a 84%) 1; } +.cardpercentagebar85 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 85%, #0aad0a 85%) 1; } +.cardpercentagebar86 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 86%, #0aad0a 86%) 1; } +.cardpercentagebar87 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 87%, #0aad0a 87%) 1; } +.cardpercentagebar88 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 88%, #0aad0a 88%) 1; } +.cardpercentagebar89 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 89%, #0aad0a 89%) 1; } +.cardpercentagebar90 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 90%, #0aad0a 90%) 1; } +.cardpercentagebar91 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 91%, #0aad0a 91%) 1; } +.cardpercentagebar92 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 92%, #0aad0a 92%) 1; } +.cardpercentagebar93 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 93%, #0aad0a 93%) 1; } +.cardpercentagebar94 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 94%, #0aad0a 94%) 1; } +.cardpercentagebar95 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 95%, #0aad0a 95%) 1; } +.cardpercentagebar96 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 96%, #0aad0a 96%) 1; } +.cardpercentagebar97 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 97%, #0aad0a 97%) 1; } +.cardpercentagebar98 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 98%, #0aad0a 98%) 1; } +.cardpercentagebar99 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 99%, #0aad0a 99%) 1; } +.cardpercentagebar100 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 100%, #0aad0a 100%) 1; } + +.covered0 { width: 0px; } +.covered1 { width: 1px; } +.covered2 { width: 2px; } +.covered3 { width: 3px; } +.covered4 { width: 4px; } +.covered5 { width: 5px; } +.covered6 { width: 6px; } +.covered7 { width: 7px; } +.covered8 { width: 8px; } +.covered9 { width: 9px; } +.covered10 { width: 10px; } +.covered11 { width: 11px; } +.covered12 { width: 12px; } +.covered13 { width: 13px; } +.covered14 { width: 14px; } +.covered15 { width: 15px; } +.covered16 { width: 16px; } +.covered17 { width: 17px; } +.covered18 { width: 18px; } +.covered19 { width: 19px; } +.covered20 { width: 20px; } +.covered21 { width: 21px; } +.covered22 { width: 22px; } +.covered23 { width: 23px; } +.covered24 { width: 24px; } +.covered25 { width: 25px; } +.covered26 { width: 26px; } +.covered27 { width: 27px; } +.covered28 { width: 28px; } +.covered29 { width: 29px; } +.covered30 { width: 30px; } +.covered31 { width: 31px; } +.covered32 { width: 32px; } +.covered33 { width: 33px; } +.covered34 { width: 34px; } +.covered35 { width: 35px; } +.covered36 { width: 36px; } +.covered37 { width: 37px; } +.covered38 { width: 38px; } +.covered39 { width: 39px; } +.covered40 { width: 40px; } +.covered41 { width: 41px; } +.covered42 { width: 42px; } +.covered43 { width: 43px; } +.covered44 { width: 44px; } +.covered45 { width: 45px; } +.covered46 { width: 46px; } +.covered47 { width: 47px; } +.covered48 { width: 48px; } +.covered49 { width: 49px; } +.covered50 { width: 50px; } +.covered51 { width: 51px; } +.covered52 { width: 52px; } +.covered53 { width: 53px; } +.covered54 { width: 54px; } +.covered55 { width: 55px; } +.covered56 { width: 56px; } +.covered57 { width: 57px; } +.covered58 { width: 58px; } +.covered59 { width: 59px; } +.covered60 { width: 60px; } +.covered61 { width: 61px; } +.covered62 { width: 62px; } +.covered63 { width: 63px; } +.covered64 { width: 64px; } +.covered65 { width: 65px; } +.covered66 { width: 66px; } +.covered67 { width: 67px; } +.covered68 { width: 68px; } +.covered69 { width: 69px; } +.covered70 { width: 70px; } +.covered71 { width: 71px; } +.covered72 { width: 72px; } +.covered73 { width: 73px; } +.covered74 { width: 74px; } +.covered75 { width: 75px; } +.covered76 { width: 76px; } +.covered77 { width: 77px; } +.covered78 { width: 78px; } +.covered79 { width: 79px; } +.covered80 { width: 80px; } +.covered81 { width: 81px; } +.covered82 { width: 82px; } +.covered83 { width: 83px; } +.covered84 { width: 84px; } +.covered85 { width: 85px; } +.covered86 { width: 86px; } +.covered87 { width: 87px; } +.covered88 { width: 88px; } +.covered89 { width: 89px; } +.covered90 { width: 90px; } +.covered91 { width: 91px; } +.covered92 { width: 92px; } +.covered93 { width: 93px; } +.covered94 { width: 94px; } +.covered95 { width: 95px; } +.covered96 { width: 96px; } +.covered97 { width: 97px; } +.covered98 { width: 98px; } +.covered99 { width: 99px; } +.covered100 { width: 100px; } + + @media print { + html, body { background-color: #fff; } + .container { max-width: 100%; width: 100%; padding: 0; } + .overview colgroup col:first-child { width: 300px; } +} + +.icon-up-dir_active { + background-image: url(icon_up-dir.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMTc5MiIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMTc5MiAxNzkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGZpbGw9IiNjMDAiIGQ9Ik0xNDA4IDEyMTZxMCAyNi0xOSA0NXQtNDUgMTloLTg5NnEtMjYgMC00NS0xOXQtMTktNDUgMTktNDVsNDQ4LTQ0OHExOS0xOSA0NS0xOXQ0NSAxOWw0NDggNDQ4cTE5IDE5IDE5IDQ1eiIvPjwvc3ZnPg==); + background-repeat: no-repeat; + background-size: contain; + padding-left: 15px; + height: 0.9em; + display: inline-block; + position: relative; + top: 3px; +} +.icon-down-dir_active { + background-image: url(icon_up-dir_active.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMTc5MiIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMTc5MiAxNzkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGZpbGw9IiNjMDAiIGQ9Ik0xNDA4IDcwNHEwIDI2LTE5IDQ1bC00NDggNDQ4cS0xOSAxOS00NSAxOXQtNDUtMTlsLTQ0OC00NDhxLTE5LTE5LTE5LTQ1dDE5LTQ1IDQ1LTE5aDg5NnEyNiAwIDQ1IDE5dDE5IDQ1eiIvPjwvc3ZnPg==); + background-repeat: no-repeat; + background-size: contain; + padding-left: 15px; + height: 0.9em; + display: inline-block; + position: relative; + top: 3px; +} +.icon-down-dir { + background-image: url(icon_down-dir_active.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMTc5MiIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMTc5MiAxNzkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0xNDA4IDcwNHEwIDI2LTE5IDQ1bC00NDggNDQ4cS0xOSAxOS00NSAxOXQtNDUtMTlsLTQ0OC00NDhxLTE5LTE5LTE5LTQ1dDE5LTQ1IDQ1LTE5aDg5NnEyNiAwIDQ1IDE5dDE5IDQ1eiIvPjwvc3ZnPg==); + background-repeat: no-repeat; + background-size: contain; + padding-left: 15px; + height: 0.9em; + display: inline-block; + position: relative; + top: 3px; +} +.icon-info-circled { + background-image: url(icon_info-circled.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMTc5MiIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMTc5MiAxNzkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxjaXJjbGUgY3g9Ijg5NiIgY3k9Ijg5NiIgcj0iNzUwIiBmaWxsPSIjZmZmIiAvPjxwYXRoIGZpbGw9IiMyOEE1RkYiIGQ9Ik0xMTUyIDEzNzZ2LTE2MHEwLTE0LTktMjN0LTIzLTloLTk2di01MTJxMC0xNC05LTIzdC0yMy05aC0zMjBxLTE0IDAtMjMgOXQtOSAyM3YxNjBxMCAxNCA5IDIzdDIzIDloOTZ2MzIwaC05NnEtMTQgMC0yMyA5dC05IDIzdjE2MHEwIDE0IDkgMjN0MjMgOWg0NDhxMTQgMCAyMy05dDktMjN6bS0xMjgtODk2di0xNjBxMC0xNC05LTIzdC0yMy05aC0xOTJxLTE0IDAtMjMgOXQtOSAyM3YxNjBxMCAxNCA5IDIzdDIzIDloMTkycTE0IDAgMjMtOXQ5LTIzem02NDAgNDE2cTAgMjA5LTEwMyAzODUuNXQtMjc5LjUgMjc5LjUtMzg1LjUgMTAzLTM4NS41LTEwMy0yNzkuNS0yNzkuNS0xMDMtMzg1LjUgMTAzLTM4NS41IDI3OS41LTI3OS41IDM4NS41LTEwMyAzODUuNSAxMDMgMjc5LjUgMjc5LjUgMTAzIDM4NS41eiIvPjwvc3ZnPg==); + background-repeat: no-repeat; + background-size: contain; + padding-left: 15px; + height: 0.9em; + display: inline-block; +} +.icon-plus { + background-image: url(icon_plus.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMTc5MiIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMTc5MiAxNzkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0xNjAwIDczNnYxOTJxMCA0MC0yOCA2OHQtNjggMjhoLTQxNnY0MTZxMCA0MC0yOCA2OHQtNjggMjhoLTE5MnEtNDAgMC02OC0yOHQtMjgtNjh2LTQxNmgtNDE2cS00MCAwLTY4LTI4dC0yOC02OHYtMTkycTAtNDAgMjgtNjh0NjgtMjhoNDE2di00MTZxMC00MCAyOC02OHQ2OC0yOGgxOTJxNDAgMCA2OCAyOHQyOCA2OHY0MTZoNDE2cTQwIDAgNjggMjh0MjggNjh6Ii8+PC9zdmc+); + background-repeat: no-repeat; + background-size: contain; + padding-left: 15px; + height: 0.9em; + display: inline-block; + position: relative; + top: 3px; +} +.icon-minus { + background-image: url(icon_minus.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMTc5MiIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMTc5MiAxNzkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGZpbGw9IiNjMDAiIGQ9Ik0xNjAwIDczNnYxOTJxMCA0MC0yOCA2OHQtNjggMjhoLTEyMTZxLTQwIDAtNjgtMjh0LTI4LTY4di0xOTJxMC00MCAyOC02OHQ2OC0yOGgxMjE2cTQwIDAgNjggMjh0MjggNjh6Ii8+PC9zdmc+); + background-repeat: no-repeat; + background-size: contain; + padding-left: 15px; + height: 0.9em; + display: inline-block; + position: relative; + top: 3px; +} +.icon-wrench { + background-image: url(icon_wrench.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMTc5MiIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMTc5MiAxNzkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik00NDggMTQ3MnEwLTI2LTE5LTQ1dC00NS0xOS00NSAxOS0xOSA0NSAxOSA0NSA0NSAxOSA0NS0xOSAxOS00NXptNjQ0LTQyMGwtNjgyIDY4MnEtMzcgMzctOTAgMzctNTIgMC05MS0zN2wtMTA2LTEwOHEtMzgtMzYtMzgtOTAgMC01MyAzOC05MWw2ODEtNjgxcTM5IDk4IDExNC41IDE3My41dDE3My41IDExNC41em02MzQtNDM1cTAgMzktMjMgMTA2LTQ3IDEzNC0xNjQuNSAyMTcuNXQtMjU4LjUgODMuNXEtMTg1IDAtMzE2LjUtMTMxLjV0LTEzMS41LTMxNi41IDEzMS41LTMxNi41IDMxNi41LTEzMS41cTU4IDAgMTIxLjUgMTYuNXQxMDcuNSA0Ni41cTE2IDExIDE2IDI4dC0xNiAyOGwtMjkzIDE2OXYyMjRsMTkzIDEwN3E1LTMgNzktNDguNXQxMzUuNS04MSA3MC41LTM1LjVxMTUgMCAyMy41IDEwdDguNSAyNXoiLz48L3N2Zz4=); + background-repeat: no-repeat; + background-size: contain; + padding-left: 20px; + height: 0.9em; + display: inline-block; +} +.icon-cog { + background-image: url(icon_cog.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiB2aWV3Qm94PSIwIDAgNTEyIDUxMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNDQ0Ljc4OCAyOTEuMWw0Mi42MTYgMjQuNTk5YzQuODY3IDIuODA5IDcuMTI2IDguNjE4IDUuNDU5IDEzLjk4NS0xMS4wNyAzNS42NDItMjkuOTcgNjcuODQyLTU0LjY4OSA5NC41ODZhMTIuMDE2IDEyLjAxNiAwIDAgMS0xNC44MzIgMi4yNTRsLTQyLjU4NC0yNC41OTVhMTkxLjU3NyAxOTEuNTc3IDAgMCAxLTYwLjc1OSAzNS4xM3Y0OS4xODJhMTIuMDEgMTIuMDEgMCAwIDEtOS4zNzcgMTEuNzE4Yy0zNC45NTYgNy44NS03Mi40OTkgOC4yNTYtMTA5LjIxOS4wMDctNS40OS0xLjIzMy05LjQwMy02LjA5Ni05LjQwMy0xMS43MjN2LTQ5LjE4NGExOTEuNTU1IDE5MS41NTUgMCAwIDEtNjAuNzU5LTM1LjEzbC00Mi41ODQgMjQuNTk1YTEyLjAxNiAxMi4wMTYgMCAwIDEtMTQuODMyLTIuMjU0Yy0yNC43MTgtMjYuNzQ0LTQzLjYxOS01OC45NDQtNTQuNjg5LTk0LjU4Ni0xLjY2Ny01LjM2Ni41OTItMTEuMTc1IDUuNDU5LTEzLjk4NUw2Ny4yMTIgMjkxLjFhMTkzLjQ4IDE5My40OCAwIDAgMSAwLTcwLjE5OWwtNDIuNjE2LTI0LjU5OWMtNC44NjctMi44MDktNy4xMjYtOC42MTgtNS40NTktMTMuOTg1IDExLjA3LTM1LjY0MiAyOS45Ny02Ny44NDIgNTQuNjg5LTk0LjU4NmExMi4wMTYgMTIuMDE2IDAgMCAxIDE0LjgzMi0yLjI1NGw0Mi41ODQgMjQuNTk1YTE5MS41NzcgMTkxLjU3NyAwIDAgMSA2MC43NTktMzUuMTNWMjUuNzU5YTEyLjAxIDEyLjAxIDAgMCAxIDkuMzc3LTExLjcxOGMzNC45NTYtNy44NSA3Mi40OTktOC4yNTYgMTA5LjIxOS0uMDA3IDUuNDkgMS4yMzMgOS40MDMgNi4wOTYgOS40MDMgMTEuNzIzdjQ5LjE4NGExOTEuNTU1IDE5MS41NTUgMCAwIDEgNjAuNzU5IDM1LjEzbDQyLjU4NC0yNC41OTVhMTIuMDE2IDEyLjAxNiAwIDAgMSAxNC44MzIgMi4yNTRjMjQuNzE4IDI2Ljc0NCA0My42MTkgNTguOTQ0IDU0LjY4OSA5NC41ODYgMS42NjcgNS4zNjYtLjU5MiAxMS4xNzUtNS40NTkgMTMuOTg1TDQ0NC43ODggMjIwLjlhMTkzLjQ4NSAxOTMuNDg1IDAgMCAxIDAgNzAuMnpNMzM2IDI1NmMwLTQ0LjExMi0zNS44ODgtODAtODAtODBzLTgwIDM1Ljg4OC04MCA4MCAzNS44ODggODAgODAgODAgODAtMzUuODg4IDgwLTgweiIvPjwvc3ZnPg==); + background-repeat: no-repeat; + background-size: contain; + padding-left: 16px; + height: 0.8em; + display: inline-block; +} +.icon-fork { + background-image: url(icon_fork.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMTc5MiIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMTc5MiAxNzkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxyZWN0IHdpZHRoPSIxNzkyIiBoZWlnaHQ9IjE3OTIiIHN0eWxlPSJmaWxsOiNmZmYiIC8+PHBhdGggZD0iTTY3MiAxNDcycTAtNDAtMjgtNjh0LTY4LTI4LTY4IDI4LTI4IDY4IDI4IDY4IDY4IDI4IDY4LTI4IDI4LTY4em0wLTExNTJxMC00MC0yOC02OHQtNjgtMjgtNjggMjgtMjggNjggMjggNjggNjggMjggNjgtMjggMjgtNjh6bTY0MCAxMjhxMC00MC0yOC02OHQtNjgtMjgtNjggMjgtMjggNjggMjggNjggNjggMjggNjgtMjggMjgtNjh6bTk2IDBxMCA1Mi0yNiA5Ni41dC03MCA2OS41cS0yIDI4Ny0yMjYgNDE0LTY3IDM4LTIwMyA4MS0xMjggNDAtMTY5LjUgNzF0LTQxLjUgMTAwdjI2cTQ0IDI1IDcwIDY5LjV0MjYgOTYuNXEwIDgwLTU2IDEzNnQtMTM2IDU2LTEzNi01Ni01Ni0xMzZxMC01MiAyNi05Ni41dDcwLTY5LjV2LTgyMHEtNDQtMjUtNzAtNjkuNXQtMjYtOTYuNXEwLTgwIDU2LTEzNnQxMzYtNTYgMTM2IDU2IDU2IDEzNnEwIDUyLTI2IDk2LjV0LTcwIDY5LjV2NDk3cTU0LTI2IDE1NC01NyA1NS0xNyA4Ny41LTI5LjV0NzAuNS0zMSA1OS0zOS41IDQwLjUtNTEgMjgtNjkuNSA4LjUtOTEuNXEtNDQtMjUtNzAtNjkuNXQtMjYtOTYuNXEwLTgwIDU2LTEzNnQxMzYtNTYgMTM2IDU2IDU2IDEzNnoiLz48L3N2Zz4=); + background-repeat: no-repeat; + background-size: contain; + padding-left: 20px; + height: 0.9em; + display: inline-block; +} +.icon-cube { + background-image: url(icon_cube.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMTc5MiIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMTc5MiAxNzkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik04OTYgMTYyOWw2NDAtMzQ5di02MzZsLTY0MCAyMzN2NzUyem0tNjQtODY1bDY5OC0yNTQtNjk4LTI1NC02OTggMjU0em04MzItMjUydjc2OHEwIDM1LTE4IDY1dC00OSA0N2wtNzA0IDM4NHEtMjggMTYtNjEgMTZ0LTYxLTE2bC03MDQtMzg0cS0zMS0xNy00OS00N3QtMTgtNjV2LTc2OHEwLTQwIDIzLTczdDYxLTQ3bDcwNC0yNTZxMjItOCA0NC04dDQ0IDhsNzA0IDI1NnEzOCAxNCA2MSA0N3QyMyA3M3oiLz48L3N2Zz4=); + background-repeat: no-repeat; + background-size: contain; + padding-left: 20px; + height: 0.9em; + display: inline-block; +} +.icon-search-plus { + background-image: url(icon_search-plus.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMTc5MiIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMTc5MiAxNzkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGZpbGw9IiM2ZjZmNmYiIGQ9Ik0xMDg4IDgwMHY2NHEwIDEzLTkuNSAyMi41dC0yMi41IDkuNWgtMjI0djIyNHEwIDEzLTkuNSAyMi41dC0yMi41IDkuNWgtNjRxLTEzIDAtMjIuNS05LjV0LTkuNS0yMi41di0yMjRoLTIyNHEtMTMgMC0yMi41LTkuNXQtOS41LTIyLjV2LTY0cTAtMTMgOS41LTIyLjV0MjIuNS05LjVoMjI0di0yMjRxMC0xMyA5LjUtMjIuNXQyMi41LTkuNWg2NHExMyAwIDIyLjUgOS41dDkuNSAyMi41djIyNGgyMjRxMTMgMCAyMi41IDkuNXQ5LjUgMjIuNXptMTI4IDMycTAtMTg1LTEzMS41LTMxNi41dC0zMTYuNS0xMzEuNS0zMTYuNSAxMzEuNS0xMzEuNSAzMTYuNSAxMzEuNSAzMTYuNSAzMTYuNSAxMzEuNSAzMTYuNS0xMzEuNSAxMzEuNS0zMTYuNXptNTEyIDgzMnEwIDUzLTM3LjUgOTAuNXQtOTAuNSAzNy41cS01NCAwLTkwLTM4bC0zNDMtMzQycS0xNzkgMTI0LTM5OSAxMjQtMTQzIDAtMjczLjUtNTUuNXQtMjI1LTE1MC0xNTAtMjI1LTU1LjUtMjczLjUgNTUuNS0yNzMuNSAxNTAtMjI1IDIyNS0xNTAgMjczLjUtNTUuNSAyNzMuNSA1NS41IDIyNSAxNTAgMTUwIDIyNSA1NS41IDI3My41cTAgMjIwLTEyNCAzOTlsMzQzIDM0M3EzNyAzNyAzNyA5MHoiLz48L3N2Zz4=); + background-repeat: no-repeat; + background-size: contain; + padding-left: 20px; + height: 0.9em; + display: inline-block; +} +.icon-search-minus { + background-image: url(icon_search-minus.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMTc5MiIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMTc5MiAxNzkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGZpbGw9IiM2ZjZmNmYiIGQ9Ik0xMDg4IDgwMHY2NHEwIDEzLTkuNSAyMi41dC0yMi41IDkuNWgtNTc2cS0xMyAwLTIyLjUtOS41dC05LjUtMjIuNXYtNjRxMC0xMyA5LjUtMjIuNXQyMi41LTkuNWg1NzZxMTMgMCAyMi41IDkuNXQ5LjUgMjIuNXptMTI4IDMycTAtMTg1LTEzMS41LTMxNi41dC0zMTYuNS0xMzEuNS0zMTYuNSAxMzEuNS0xMzEuNSAzMTYuNSAxMzEuNSAzMTYuNSAzMTYuNSAxMzEuNSAzMTYuNS0xMzEuNSAxMzEuNS0zMTYuNXptNTEyIDgzMnEwIDUzLTM3LjUgOTAuNXQtOTAuNSAzNy41cS01NCAwLTkwLTM4bC0zNDMtMzQycS0xNzkgMTI0LTM5OSAxMjQtMTQzIDAtMjczLjUtNTUuNXQtMjI1LTE1MC0xNTAtMjI1LTU1LjUtMjczLjUgNTUuNS0yNzMuNSAxNTAtMjI1IDIyNS0xNTAgMjczLjUtNTUuNSAyNzMuNSA1NS41IDIyNSAxNTAgMTUwIDIyNSA1NS41IDI3My41cTAgMjIwLTEyNCAzOTlsMzQzIDM0M3EzNyAzNyAzNyA5MHoiLz48L3N2Zz4=); + background-repeat: no-repeat; + background-size: contain; + padding-left: 20px; + height: 0.9em; + display: inline-block; +} +.icon-star { + background-image: url(icon_star.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMTc5MiIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMTc5MiAxNzkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0xNzI4IDY0N3EwIDIyLTI2IDQ4bC0zNjMgMzU0IDg2IDUwMHExIDcgMSAyMCAwIDIxLTEwLjUgMzUuNXQtMzAuNSAxNC41cS0xOSAwLTQwLTEybC00NDktMjM2LTQ0OSAyMzZxLTIyIDEyLTQwIDEyLTIxIDAtMzEuNS0xNC41dC0xMC41LTM1LjVxMC02IDItMjBsODYtNTAwLTM2NC0zNTRxLTI1LTI3LTI1LTQ4IDAtMzcgNTYtNDZsNTAyLTczIDIyNS00NTVxMTktNDEgNDktNDF0NDkgNDFsMjI1IDQ1NSA1MDIgNzNxNTYgOSA1NiA0NnoiIGZpbGw9IiMwMDAiLz48L3N2Zz4=); + background-repeat: no-repeat; + background-size: contain; + padding-left: 20px; + height: 0.9em; + display: inline-block; +} +.icon-sponsor { + background-image: url(icon_sponsor.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMTc5MiIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMTc5MiAxNzkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik04OTYgMTY2NHEtMjYgMC00NC0xOGwtNjI0LTYwMnEtMTAtOC0yNy41LTI2dC01NS41LTY1LjUtNjgtOTcuNS01My41LTEyMS0yMy41LTEzOHEwLTIyMCAxMjctMzQ0dDM1MS0xMjRxNjIgMCAxMjYuNSAyMS41dDEyMCA1OCA5NS41IDY4LjUgNzYgNjhxMzYtMzYgNzYtNjh0OTUuNS02OC41IDEyMC01OCAxMjYuNS0yMS41cTIyNCAwIDM1MSAxMjR0MTI3IDM0NHEwIDIyMS0yMjkgNDUwbC02MjMgNjAwcS0xOCAxOC00NCAxOHoiIGZpbGw9IiNlYTRhYWEiLz48L3N2Zz4=); + background-repeat: no-repeat; + background-size: contain; + padding-left: 20px; + height: 0.9em; + display: inline-block; +} + + + +@media screen { + html { + background-color: #333; + color: #fff; + } + + body { + color: #fff; + } + + h1 { + background-color: #555453; + color: #fff; + } + + .container { + background-color: #333; + box-shadow: 0 0 60px #0c0c0c; + } + + .containerrightfixed { + background-color: #3D3C3C; + border-left: 1px solid #515050; + } + + .containerrightfixed h1 { + background-color: #484747; + } + + .popup-container { + background-color: rgb(80, 80, 80, 0.6); + } + + .popup { + background-color: #333; + } + + .card-group .card { + background-color: #333; + background: radial-gradient(circle, #444 0%, #333 100%); + border: 1px solid #545454; + color: #fff; + } + + .card-group .card table tr { + border-bottom: 1px solid #545454; + } + + .card-group .card table tr:hover { + background-color: #2E2D2C; + } + + .table-responsive::-webkit-scrollbar-thumb { + background-color: #555453; + border: 5px solid #333; + } + + .overview tr:hover { + background-color: #2E2D2C; + } + + .overview th { + background-color: #444; + border: 1px solid #3B3A39; + } + + .overview tr.namespace th { + background-color: #444; + } + + .overview thead th { + background-color: #444; + } + + .overview th a { + color: #fff; + color: rgba(255, 255, 255, 0.95); + } + + .overview th a:hover { + color: #0078d4; + } + + .overview td { + border: 1px solid #3B3A39; + } + + .overview .coverage td { + border: none; + } + + .overview tr.header th { + background-color: #444; + } + + .overview tr.header th:nth-child(2n+1) { + background-color: #3a3a3a; + } + + .overview tr.header th:first-child { + border-left: 1px solid #333; + border-top: 1px solid #333; + background-color: #333; + } + + .stripped tr:nth-child(2n+1) { + background-color: #3c3c3c; + } + + input, select, button { + background-color: #333; + color: #fff; + border: 1px solid #A19F9D; + } + + a { + color: #fff; + color: rgba(255, 255, 255, 0.95); + } + + a:hover { + color: #0078d4; + } + + h1 a.back { + background-color: #4a4846; + } + + h1 a.button { + color: #fff; + background-color: #565656; + border-color: #c1c1c1; + } + + h1 a.button:hover { + background-color: #8d8d8d; + } + + .gray { + background-color: #484747; + } + + .lightgray { + color: #ebebeb; + } + + .lightgraybg { + background-color: #474747; + } + + .lightgreen { + background-color: #406540; + } + + .lightorange { + background-color: #ab7f36; + } + + .lightred { + background-color: #954848; + } + + .ct-label { + color: #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; + } + + .ct-chart .ct-series.ct-series-c .ct-line, .ct-chart .ct-series.ct-series-c .ct-point { + stroke: #e58f1d !important; + } + + .linecoverage { + background-color: #0078D4; + } + + .branchcoverage { + background-color: #6dc428; + } + + .codeelementcoverage { + background-color: #e58f1d; + } + + .tinylinecoveragechart, .tinybranchcoveragechart, .tinymethodcoveragechart { + background-color: #333; + } + + .tinybranchcoveragechart .ct-series.ct-series-a .ct-line { + stroke: #6dc428 !important; + } + + .tinymethodcoveragechart .ct-series.ct-series-a .ct-line { + stroke: #e58f1d !important; + } + + .icon-down-dir { + background-image: url(icon_down-dir_active_dark.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHdpZHRoPSIxNzkyIiBoZWlnaHQ9IjE3OTIiIHZpZXdCb3g9IjAgMCAxNzkyIDE3OTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbD0iI0JGQkZDMCIgZD0iTTE0MDggNzA0cTAgMjYtMTkgNDVsLTQ0OCA0NDhxLTE5IDE5LTQ1IDE5dC00NS0xOWwtNDQ4LTQ0OHEtMTktMTktMTktNDV0MTktNDUgNDUtMTloODk2cTI2IDAgNDUgMTl0MTkgNDV6Ii8+PC9zdmc+); + } + + .icon-info-circled { + background-image: url(icon_info-circled_dark.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMTc5MiIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMTc5MiAxNzkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxjaXJjbGUgY3g9Ijg5NiIgY3k9Ijg5NiIgcj0iNzUwIiBmaWxsPSIjZmZmIiAvPjxwYXRoIGZpbGw9IiMyOEE1RkYiIGQ9Ik0xMTUyIDEzNzZ2LTE2MHEwLTE0LTktMjN0LTIzLTloLTk2di01MTJxMC0xNC05LTIzdC0yMy05aC0zMjBxLTE0IDAtMjMgOXQtOSAyM3YxNjBxMCAxNCA5IDIzdDIzIDloOTZ2MzIwaC05NnEtMTQgMC0yMyA5dC05IDIzdjE2MHEwIDE0IDkgMjN0MjMgOWg0NDhxMTQgMCAyMy05dDktMjN6bS0xMjgtODk2di0xNjBxMC0xNC05LTIzdC0yMy05aC0xOTJxLTE0IDAtMjMgOXQtOSAyM3YxNjBxMCAxNCA5IDIzdDIzIDloMTkycTE0IDAgMjMtOXQ5LTIzem02NDAgNDE2cTAgMjA5LTEwMyAzODUuNXQtMjc5LjUgMjc5LjUtMzg1LjUgMTAzLTM4NS41LTEwMy0yNzkuNS0yNzkuNS0xMDMtMzg1LjUgMTAzLTM4NS41IDI3OS41LTI3OS41IDM4NS41LTEwMyAzODUuNSAxMDMgMjc5LjUgMjc5LjUgMTAzIDM4NS41eiIvPjwvc3ZnPg==); + } + + .icon-plus { + background-image: url(icon_plus_dark.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHdpZHRoPSIxNzkyIiBoZWlnaHQ9IjE3OTIiIHZpZXdCb3g9IjAgMCAxNzkyIDE3OTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbD0iI0JGQkZDMCIgZD0iTTE2MDAgNzM2djE5MnEwIDQwLTI4IDY4dC02OCAyOGgtNDE2djQxNnEwIDQwLTI4IDY4dC02OCAyOGgtMTkycS00MCAwLTY4LTI4dC0yOC02OHYtNDE2aC00MTZxLTQwIDAtNjgtMjh0LTI4LTY4di0xOTJxMC00MCAyOC02OHQ2OC0yOGg0MTZ2LTQxNnEwLTQwIDI4LTY4dDY4LTI4aDE5MnE0MCAwIDY4IDI4dDI4IDY4djQxNmg0MTZxNDAgMCA2OCAyOHQyOCA2OHoiLz48L3N2Zz4=); + } + + .icon-minus { + background-image: url(icon_minus_dark.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHdpZHRoPSIxNzkyIiBoZWlnaHQ9IjE3OTIiIHZpZXdCb3g9IjAgMCAxNzkyIDE3OTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbD0iI0JGQkZDMCIgZD0iTTE2MDAgNzM2djE5MnEwIDQwLTI4IDY4dC02OCAyOGgtMTIxNnEtNDAgMC02OC0yOHQtMjgtNjh2LTE5MnEwLTQwIDI4LTY4dDY4LTI4aDEyMTZxNDAgMCA2OCAyOHQyOCA2OHoiLz48L3N2Zz4=); + } + + .icon-wrench { + background-image: url(icon_wrench_dark.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHdpZHRoPSIxNzkyIiBoZWlnaHQ9IjE3OTIiIHZpZXdCb3g9IjAgMCAxNzkyIDE3OTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbD0iI0JEQkRCRiIgZD0iTTQ0OCAxNDcycTAtMjYtMTktNDV0LTQ1LTE5LTQ1IDE5LTE5IDQ1IDE5IDQ1IDQ1IDE5IDQ1LTE5IDE5LTQ1em02NDQtNDIwbC02ODIgNjgycS0zNyAzNy05MCAzNy01MiAwLTkxLTM3bC0xMDYtMTA4cS0zOC0zNi0zOC05MCAwLTUzIDM4LTkxbDY4MS02ODFxMzkgOTggMTE0LjUgMTczLjV0MTczLjUgMTE0LjV6bTYzNC00MzVxMCAzOS0yMyAxMDYtNDcgMTM0LTE2NC41IDIxNy41dC0yNTguNSA4My41cS0xODUgMC0zMTYuNS0xMzEuNXQtMTMxLjUtMzE2LjUgMTMxLjUtMzE2LjUgMzE2LjUtMTMxLjVxNTggMCAxMjEuNSAxNi41dDEwNy41IDQ2LjVxMTYgMTEgMTYgMjh0LTE2IDI4bC0yOTMgMTY5djIyNGwxOTMgMTA3cTUtMyA3OS00OC41dDEzNS41LTgxIDcwLjUtMzUuNXExNSAwIDIzLjUgMTB0OC41IDI1eiIvPjwvc3ZnPg==); + } + + .icon-cog { + background-image: url(icon_cog_dark.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiB2aWV3Qm94PSIwIDAgNTEyIDUxMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBmaWxsPSIjQkRCREJGIiBkPSJNNDQ0Ljc4OCAyOTEuMWw0Mi42MTYgMjQuNTk5YzQuODY3IDIuODA5IDcuMTI2IDguNjE4IDUuNDU5IDEzLjk4NS0xMS4wNyAzNS42NDItMjkuOTcgNjcuODQyLTU0LjY4OSA5NC41ODZhMTIuMDE2IDEyLjAxNiAwIDAgMS0xNC44MzIgMi4yNTRsLTQyLjU4NC0yNC41OTVhMTkxLjU3NyAxOTEuNTc3IDAgMCAxLTYwLjc1OSAzNS4xM3Y0OS4xODJhMTIuMDEgMTIuMDEgMCAwIDEtOS4zNzcgMTEuNzE4Yy0zNC45NTYgNy44NS03Mi40OTkgOC4yNTYtMTA5LjIxOS4wMDctNS40OS0xLjIzMy05LjQwMy02LjA5Ni05LjQwMy0xMS43MjN2LTQ5LjE4NGExOTEuNTU1IDE5MS41NTUgMCAwIDEtNjAuNzU5LTM1LjEzbC00Mi41ODQgMjQuNTk1YTEyLjAxNiAxMi4wMTYgMCAwIDEtMTQuODMyLTIuMjU0Yy0yNC43MTgtMjYuNzQ0LTQzLjYxOS01OC45NDQtNTQuNjg5LTk0LjU4Ni0xLjY2Ny01LjM2Ni41OTItMTEuMTc1IDUuNDU5LTEzLjk4NUw2Ny4yMTIgMjkxLjFhMTkzLjQ4IDE5My40OCAwIDAgMSAwLTcwLjE5OWwtNDIuNjE2LTI0LjU5OWMtNC44NjctMi44MDktNy4xMjYtOC42MTgtNS40NTktMTMuOTg1IDExLjA3LTM1LjY0MiAyOS45Ny02Ny44NDIgNTQuNjg5LTk0LjU4NmExMi4wMTYgMTIuMDE2IDAgMCAxIDE0LjgzMi0yLjI1NGw0Mi41ODQgMjQuNTk1YTE5MS41NzcgMTkxLjU3NyAwIDAgMSA2MC43NTktMzUuMTNWMjUuNzU5YTEyLjAxIDEyLjAxIDAgMCAxIDkuMzc3LTExLjcxOGMzNC45NTYtNy44NSA3Mi40OTktOC4yNTYgMTA5LjIxOS0uMDA3IDUuNDkgMS4yMzMgOS40MDMgNi4wOTYgOS40MDMgMTEuNzIzdjQ5LjE4NGExOTEuNTU1IDE5MS41NTUgMCAwIDEgNjAuNzU5IDM1LjEzbDQyLjU4NC0yNC41OTVhMTIuMDE2IDEyLjAxNiAwIDAgMSAxNC44MzIgMi4yNTRjMjQuNzE4IDI2Ljc0NCA0My42MTkgNTguOTQ0IDU0LjY4OSA5NC41ODYgMS42NjcgNS4zNjYtLjU5MiAxMS4xNzUtNS40NTkgMTMuOTg1TDQ0NC43ODggMjIwLjlhMTkzLjQ4NSAxOTMuNDg1IDAgMCAxIDAgNzAuMnpNMzM2IDI1NmMwLTQ0LjExMi0zNS44ODgtODAtODAtODBzLTgwIDM1Ljg4OC04MCA4MCAzNS44ODggODAgODAgODAgODAtMzUuODg4IDgwLTgweiIvPjwvc3ZnPg==); + } + + .icon-fork { + background-image: url(icon_fork_dark.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHdpZHRoPSIxNzkyIiBoZWlnaHQ9IjE3OTIiIHZpZXdCb3g9IjAgMCAxNzkyIDE3OTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbD0iI0JGQkZDMCIgZD0iTTY3MiAxNDcycTAtNDAtMjgtNjh0LTY4LTI4LTY4IDI4LTI4IDY4IDI4IDY4IDY4IDI4IDY4LTI4IDI4LTY4em0wLTExNTJxMC00MC0yOC02OHQtNjgtMjgtNjggMjgtMjggNjggMjggNjggNjggMjggNjgtMjggMjgtNjh6bTY0MCAxMjhxMC00MC0yOC02OHQtNjgtMjgtNjggMjgtMjggNjggMjggNjggNjggMjggNjgtMjggMjgtNjh6bTk2IDBxMCA1Mi0yNiA5Ni41dC03MCA2OS41cS0yIDI4Ny0yMjYgNDE0LTY3IDM4LTIwMyA4MS0xMjggNDAtMTY5LjUgNzF0LTQxLjUgMTAwdjI2cTQ0IDI1IDcwIDY5LjV0MjYgOTYuNXEwIDgwLTU2IDEzNnQtMTM2IDU2LTEzNi01Ni01Ni0xMzZxMC01MiAyNi05Ni41dDcwLTY5LjV2LTgyMHEtNDQtMjUtNzAtNjkuNXQtMjYtOTYuNXEwLTgwIDU2LTEzNnQxMzYtNTYgMTM2IDU2IDU2IDEzNnEwIDUyLTI2IDk2LjV0LTcwIDY5LjV2NDk3cTU0LTI2IDE1NC01NyA1NS0xNyA4Ny41LTI5LjV0NzAuNS0zMSA1OS0zOS41IDQwLjUtNTEgMjgtNjkuNSA4LjUtOTEuNXEtNDQtMjUtNzAtNjkuNXQtMjYtOTYuNXEwLTgwIDU2LTEzNnQxMzYtNTYgMTM2IDU2IDU2IDEzNnoiLz48L3N2Zz4=); + } + + .icon-cube { + background-image: url(icon_cube_dark.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHdpZHRoPSIxNzkyIiBoZWlnaHQ9IjE3OTIiIHZpZXdCb3g9IjAgMCAxNzkyIDE3OTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbD0iI0JGQkZDMCIgZD0iTTg5NiAxNjI5bDY0MC0zNDl2LTYzNmwtNjQwIDIzM3Y3NTJ6bS02NC04NjVsNjk4LTI1NC02OTgtMjU0LTY5OCAyNTR6bTgzMi0yNTJ2NzY4cTAgMzUtMTggNjV0LTQ5IDQ3bC03MDQgMzg0cS0yOCAxNi02MSAxNnQtNjEtMTZsLTcwNC0zODRxLTMxLTE3LTQ5LTQ3dC0xOC02NXYtNzY4cTAtNDAgMjMtNzN0NjEtNDdsNzA0LTI1NnEyMi04IDQ0LTh0NDQgOGw3MDQgMjU2cTM4IDE0IDYxIDQ3dDIzIDczeiIvPjwvc3ZnPg==); + } + + .icon-search-plus { + background-image: url(icon_search-plus_dark.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHdpZHRoPSIxNzkyIiBoZWlnaHQ9IjE3OTIiIHZpZXdCb3g9IjAgMCAxNzkyIDE3OTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbD0iI0JGQkZDMCIgZD0iTTEwODggODAwdjY0cTAgMTMtOS41IDIyLjV0LTIyLjUgOS41aC0yMjR2MjI0cTAgMTMtOS41IDIyLjV0LTIyLjUgOS41aC02NHEtMTMgMC0yMi41LTkuNXQtOS41LTIyLjV2LTIyNGgtMjI0cS0xMyAwLTIyLjUtOS41dC05LjUtMjIuNXYtNjRxMC0xMyA5LjUtMjIuNXQyMi41LTkuNWgyMjR2LTIyNHEwLTEzIDkuNS0yMi41dDIyLjUtOS41aDY0cTEzIDAgMjIuNSA5LjV0OS41IDIyLjV2MjI0aDIyNHExMyAwIDIyLjUgOS41dDkuNSAyMi41em0xMjggMzJxMC0xODUtMTMxLjUtMzE2LjV0LTMxNi41LTEzMS41LTMxNi41IDEzMS41LTEzMS41IDMxNi41IDEzMS41IDMxNi41IDMxNi41IDEzMS41IDMxNi41LTEzMS41IDEzMS41LTMxNi41em01MTIgODMycTAgNTMtMzcuNSA5MC41dC05MC41IDM3LjVxLTU0IDAtOTAtMzhsLTM0My0zNDJxLTE3OSAxMjQtMzk5IDEyNC0xNDMgMC0yNzMuNS01NS41dC0yMjUtMTUwLTE1MC0yMjUtNTUuNS0yNzMuNSA1NS41LTI3My41IDE1MC0yMjUgMjI1LTE1MCAyNzMuNS01NS41IDI3My41IDU1LjUgMjI1IDE1MCAxNTAgMjI1IDU1LjUgMjczLjVxMCAyMjAtMTI0IDM5OWwzNDMgMzQzcTM3IDM3IDM3IDkweiIvPjwvc3ZnPg==); + } + + .icon-search-minus { + background-image: url(icon_search-minus_dark.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHdpZHRoPSIxNzkyIiBoZWlnaHQ9IjE3OTIiIHZpZXdCb3g9IjAgMCAxNzkyIDE3OTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbD0iI0JGQkZDMCIgZD0iTTEwODggODAwdjY0cTAgMTMtOS41IDIyLjV0LTIyLjUgOS41aC01NzZxLTEzIDAtMjIuNS05LjV0LTkuNS0yMi41di02NHEwLTEzIDkuNS0yMi41dDIyLjUtOS41aDU3NnExMyAwIDIyLjUgOS41dDkuNSAyMi41em0xMjggMzJxMC0xODUtMTMxLjUtMzE2LjV0LTMxNi41LTEzMS41LTMxNi41IDEzMS41LTEzMS41IDMxNi41IDEzMS41IDMxNi41IDMxNi41IDEzMS41IDMxNi41LTEzMS41IDEzMS41LTMxNi41em01MTIgODMycTAgNTMtMzcuNSA5MC41dC05MC41IDM3LjVxLTU0IDAtOTAtMzhsLTM0My0zNDJxLTE3OSAxMjQtMzk5IDEyNC0xNDMgMC0yNzMuNS01NS41dC0yMjUtMTUwLTE1MC0yMjUtNTUuNS0yNzMuNSA1NS41LTI3My41IDE1MC0yMjUgMjI1LTE1MCAyNzMuNS01NS41IDI3My41IDU1LjUgMjI1IDE1MCAxNTAgMjI1IDU1LjUgMjczLjVxMCAyMjAtMTI0IDM5OWwzNDMgMzQzcTM3IDM3IDM3IDkweiIvPjwvc3ZnPg==); + } + + .icon-star { + background-image: url(icon_star_dark.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMTc5MiIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMTc5MiAxNzkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0xNzI4IDY0N3EwIDIyLTI2IDQ4bC0zNjMgMzU0IDg2IDUwMHExIDcgMSAyMCAwIDIxLTEwLjUgMzUuNXQtMzAuNSAxNC41cS0xOSAwLTQwLTEybC00NDktMjM2LTQ0OSAyMzZxLTIyIDEyLTQwIDEyLTIxIDAtMzEuNS0xNC41dC0xMC41LTM1LjVxMC02IDItMjBsODYtNTAwLTM2NC0zNTRxLTI1LTI3LTI1LTQ4IDAtMzcgNTYtNDZsNTAyLTczIDIyNS00NTVxMTktNDEgNDktNDF0NDkgNDFsMjI1IDQ1NSA1MDIgNzNxNTYgOSA1NiA0NnoiIGZpbGw9IiNmZmYiLz48L3N2Zz4=); + } +} + +.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} \ No newline at end of file diff --git a/docs/resources/reports/Html_Light/Sample_PartialClass.html b/docs/resources/reports/Html_Light/Sample_PartialClass.html new file mode 100644 index 00000000..1fe9fe80 --- /dev/null +++ b/docs/resources/reports/Html_Light/Sample_PartialClass.html @@ -0,0 +1,260 @@ + + + + + + + +Sample.PartialClass - Coverage Report + +
+

< Summary

+
+
+
Information
+
+
+ + + + + + + + + + + + + +
Class:Sample.PartialClass
Assembly:Sample
File(s):File 1: C:\temp\PartialClass.cs
File 2: C:\temp\PartialClass2.cs
+
+
+
+
+
+
+
Line coverage
+
+
54%
+
+ + + + + + + + + + + + + + + + + + + + + +
Covered lines:12
Uncovered lines:10
Coverable lines:22
Total lines:53
Line coverage:54.5%
+
+
+
+
+
Branch coverage
+
+
50%
+
+ + + + + + + + + + + + + +
Covered branches:1
Total branches:2
Branch coverage:50%
+
+
+
+
+
Method coverage
+
+
50%
+
+ + + + + + + + + + + + + +
Covered methods:3
Total methods:6
Method coverage:50%
+
+
+
+
+

Coverage history

+
+ +

Metrics

+
+ + + + + + + + +
MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
File 1: ExecutedMethod_1()100%110100%
File 1: UnExecutedMethod_1()0%2100%
File 2: ExecutedMethod_2()100%110100%
File 2: UnExecutedMethod_2()0%2100%
+
+

File(s)

+

C:\temp\PartialClass.cs

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
#LineLine coverage
 1using System;
 2
 3namespace Test
 4{
 5    partial class PartialClass
 6    {
 7        public void ExecutedMethod_1()
 18        {
 19            Console.WriteLine("Test");
 110        }
 11
 12        public void UnExecutedMethod_1()
 013        {
 014            Console.WriteLine("Test");
 015        }
 16
 17        private int someProperty;
 18
 19        public int SomeProperty
 20        {
 021            get { return this.someProperty; }
 22
 23            set
 124            {
 125                if (value < 0)
 126                {
 127                    this.someProperty = 0;
 128                }
 29                else
 030                {
 031                    this.someProperty = value;
 032                }
 133            }
 34        }
 35    }
 36}
+
+

C:\temp\PartialClass2.cs

+
+ + + + + + + + + + + + + + + + + + + + + +
#LineLine coverage
 1using System;
 2
 3namespace Test
 4{
 5    partial class PartialClass
 6    {
 7        public void ExecutedMethod_2()
 18        {
 19            Console.WriteLine("Test");
 110        }
 11
 12        public void UnExecutedMethod_2()
 013        {
 014            Console.WriteLine("Test");
 015        }
 16    }
 17}
+
+
+
+ + \ No newline at end of file diff --git a/docs/resources/reports/Html_Light/Sample_Program.html b/docs/resources/reports/Html_Light/Sample_Program.html new file mode 100644 index 00000000..85d12280 --- /dev/null +++ b/docs/resources/reports/Html_Light/Sample_Program.html @@ -0,0 +1,285 @@ + + + + + + + +Test.Program - Coverage Report + +
+

< Summary

+
+
+
Information
+
+
+ + + + + + + + + + + + + +
Class:Test.Program
Assembly:Sample
File(s):C:\temp\Program.cs
+
+
+
+
+
+
+
Line coverage
+
+
79%
+
+ + + + + + + + + + + + + + + + + + + + + +
Covered lines:35
Uncovered lines:9
Coverable lines:44
Total lines:84
Line coverage:79.5%
+
+
+
+
+
Branch coverage
+
+
N/A
+
+ + + + + + + + + + + + + +
Covered branches:0
Total branches:0
Branch coverage:N/A
+
+
+
+
+
Method coverage
+
+
66%
+
+ + + + + + + + + + + + + +
Covered methods:4
Total methods:6
Method coverage:66.6%
+
+
+
+
+

Coverage history

+
+ +

Metrics

+
+ + + + + + + + + + +
MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
Main(...)100%11088%
CSharp_ExecuteTest1()0%2100%
CSharp_ExecuteTest2()0%2100%
CallAsyncMethod()100%330100%
.ctor(...)100%110100%
SendAsync(...)100%110100%
+
+

File(s)

+

C:\temp\Program.cs

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
#LineLine coverage
 1using System.Net.Http;
 2using System.Threading;
 3using System.Threading.Tasks;
 4using Microsoft.VisualStudio.TestTools.UnitTesting;
 5
 6namespace Test
 7{
 8    [TestClass]
 9    public class Program
 10    {
 11        static void Main(string[] args)
 112        {
 113            new TestClass().SampleFunction();
 14
 115            new TestClass2("Test").ExecutedMethod();
 116            new TestClass2("Test").SampleFunction("Munich");
 17
 118            new PartialClass().ExecutedMethod_1();
 119            new PartialClass().ExecutedMethod_2();
 120            new PartialClass().SomeProperty = -10;
 21
 122            new PartialClassWithAutoProperties().Property1 = "Test";
 123            new PartialClassWithAutoProperties().Property2 = "Test";
 24
 125            new SomeClass().Property1 = "Test";
 26
 127            new ClassWithExcludes().IncludedMethod();
 128            new ClassWithExcludes().ExcludedMethod();
 29
 130            new GenericClass<SomeModel, IState>().Process(null);
 131            new GenericClass<SomeModel, IState>().PostProcess(null);
 32
 133            new CodeContract_Target().Calculate(-1);
 34
 135            new AbstractClass_SampleImpl1();
 136            new AbstractClass_SampleImpl2();
 37
 138            CallAsyncMethod();
 39
 40            try
 141            {
 142                new CodeContract_Target().Calculate(0);
 143            }
 044            catch (System.ArgumentException)
 045            {
 046            }
 147        }
 48
 49        [TestMethod]
 50        public void CSharp_ExecuteTest1()
 051        {
 052            Main(null);
 053        }
 54
 55        [TestMethod]
 56        public void CSharp_ExecuteTest2()
 057        {
 058            Main(null);
 059        }
 60
 61        private static async void CallAsyncMethod()
 162        {
 163            var expected = new HttpResponseMessage();
 164            var handler = new AsyncClass() { InnerHandler = new EchoHandler(expected) };
 165            var invoker = new HttpMessageInvoker(handler, false);
 166            var actual = await invoker.SendAsync(new HttpRequestMessage(), new CancellationToken());
 167        }
 68
 69        private class EchoHandler : DelegatingHandler
 70        {
 71            private HttpResponseMessage _response;
 72
 173            public EchoHandler(HttpResponseMessage response)
 174            {
 175                this._response = response;
 176            }
 77
 78            protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancell
 179            {
 180                return Task.FromResult(this._response);
 181            }
 82        }
 83    }
 84}
+
+
+
+ + \ No newline at end of file diff --git a/docs/resources/reports/Html_Light/Sample_TestClass.html b/docs/resources/reports/Html_Light/Sample_TestClass.html new file mode 100644 index 00000000..ff22f8a3 --- /dev/null +++ b/docs/resources/reports/Html_Light/Sample_TestClass.html @@ -0,0 +1,231 @@ + + + + + + + +Sample.TestClass - Coverage Report + +
+

< Summary

+
+
+
Information
+
+
+ + + + + + + + + + + + + +
Class:Sample.TestClass
Assembly:Sample
File(s):C:\temp\TestClass.cs
+
+
+
+
+
+
+
Line coverage
+
+
57%
+
+ + + + + + + + + + + + + + + + + + + + + +
Covered lines:12
Uncovered lines:9
Coverable lines:21
Total lines:38
Line coverage:57.1%
+
+
+
+
+
Branch coverage
+
+
50%
+
+ + + + + + + + + + + + + +
Covered branches:1
Total branches:2
Branch coverage:50%
+
+
+
+
+
Method coverage
+
+
50%
+
+ + + + + + + + + + + + + +
Covered methods:1
Total methods:2
Method coverage:50%
+
+
+
+
+

Coverage history

+
+ +

Metrics

+
+ + + + + + +
MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
SampleFunction()66.67%3.143275%
SampleFunction()0%2100%
+
+

File(s)

+

C:\temp\TestClass.cs

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
#LineLine coverage
 1using System;
 2
 3namespace Test
 4{
 5    class TestClass
 6    {
 7        public void SampleFunction()
 18        {
 19            string test = string.Format(
 110                "{0} {1}",
 111                 "Hello",
 112                 "World");
 13
 114            Console.WriteLine(test);
 115            int i = 10;
 16
 117            if (i > 0 || i > 1)
 118            {
 119                Console.WriteLine(i + " is greater that 0");
 120            }
 21            else
 022            {
 023                Console.WriteLine(i + " is not greater that 0");
 024            }
 125        }
 26
 27        public class NestedClass
 28        {
 29            public void SampleFunction()
 030            {
 031                Console.WriteLine(
 032                    "{0} {1}",
 033                     "Hello",
 034                     "World");
 035            }
 36        }
 37    }
 38}
+
+
+
+
+

Methods/Properties

+SampleFunction()
+SampleFunction()
+
+
+ + \ No newline at end of file diff --git a/docs/resources/reports/Html_Light/Sample_TestClass2.html b/docs/resources/reports/Html_Light/Sample_TestClass2.html new file mode 100644 index 00000000..fd0ebb43 --- /dev/null +++ b/docs/resources/reports/Html_Light/Sample_TestClass2.html @@ -0,0 +1,290 @@ + + + + + + + +Test.TestClass2 - Coverage Report + +
+

< Summary

+
+
+
Information
+
+
+ + + + + + + + + + + + + +
Class:Test.TestClass2
Assembly:Sample
File(s):C:\temp\TestClass2.cs
+
+
+
+
+
+
+
Line coverage
+
+
63%
+
+ + + + + + + + + + + + + + + + + + + + + +
Covered lines:24
Uncovered lines:14
Coverable lines:38
Total lines:85
Line coverage:63.1%
+
+
+
+
+
Branch coverage
+
+
50%
+
+ + + + + + + + + + + + + +
Covered branches:1
Total branches:2
Branch coverage:50%
+
+
+
+
+
Method coverage
+
+
60%
+
+ + + + + + + + + + + + + +
Covered methods:6
Total methods:10
Method coverage:60%
+
+
+
+
+

Coverage history

+
+ +

Metrics

+
+ + + + + + + + + + +
MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
.ctor()0%2100%
.ctor(...)100%110100%
ExecutedMethod()100%110100%
UnExecutedMethod()0%2100%
SampleFunction(...)66.67%552100%
DoSomething(...)0%2100%
+
+

File(s)

+

C:\temp\TestClass2.cs

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
#LineLine coverage
 1using System;
 2using System.Collections.Generic;
 3using System.Linq;
 4
 5namespace Test
 6{
 7    class TestClass2
 8    {
 9        private string name;
 10
 211        private Dictionary<string, int> dict = new Dictionary<string, int>();
 12
 313        public string ExecutedProperty { get; set; }
 14
 015        public string UnExecutedProperty { get; set; }
 16
 017        public TestClass2()
 018        {
 019            this.name = "Nobody";
 020            this.ExecutedProperty = "Nobody";
 021        }
 22
 223        public TestClass2(string name)
 224        {
 225            this.name = name;
 226            this.ExecutedProperty = name + name;
 227        }
 28
 29        public void ExecutedMethod()
 130        {
 131            Console.WriteLine(this.name);
 132            Console.WriteLine(this.ExecutedProperty);
 133        }
 34
 35        public void UnExecutedMethod()
 036        {
 037            Console.WriteLine(this.name);
 038            Console.WriteLine(this.ExecutedProperty);
 039        }
 40
 41        public void SampleFunction(string city)
 142        {
 143            int[] values = new int[] { 0, 1, 2, 3 };
 44
 545            var doubled = values.Select(i => i * 2);
 46
 1147            foreach (var item in doubled)
 448            {
 449                Console.WriteLine(item);
 450            }
 51
 152            string[] cities = new string[] { "Berlin", "Munich", "Paris" };
 53
 454            if (cities.SingleOrDefault(c => c.Equals(city, StringComparison.OrdinalIgnoreCase)) != null)
 155            {
 156                Console.WriteLine("Found " + city);
 157            }
 158        }
 59
 60        public string DoSomething(string value,
 61            string[] stringArray,
 62            Guid id,
 63            IEnumerable<string> stringEnumerable,
 64            IList<string> stringList,
 65            decimal dec,
 66            int i,
 67            Dictionary<string, int> dict,
 68            out int g,
 69            float fff,
 70            double dou,
 71            bool bo,
 72            byte by,
 73            char ch,
 74            object o,
 75            sbyte sby,
 76            short sh,
 77            uint ui,
 78            ulong ul,
 79            ushort usho)
 080        {
 081            g = 0;
 082            return null;
 083        }
 84    }
 85}
+
+
+
+ + \ No newline at end of file diff --git a/docs/resources/reports/Html_Light/class.js b/docs/resources/reports/Html_Light/class.js new file mode 100644 index 00000000..b7a43b26 --- /dev/null +++ b/docs/resources/reports/Html_Light/class.js @@ -0,0 +1,218 @@ +/* Chartist.js 0.11.4 + * Copyright © 2019 Gion Kunz + * Free to use under either the WTFPL license or the MIT license. + * https://raw.githubusercontent.com/gionkunz/chartist-js/master/LICENSE-WTFPL + * https://raw.githubusercontent.com/gionkunz/chartist-js/master/LICENSE-MIT + */ + +!function (a, b) { "function" == typeof define && define.amd ? define("Chartist", [], function () { return a.Chartist = b() }) : "object" == typeof module && module.exports ? module.exports = b() : a.Chartist = b() }(this, function () { + var a = { version: "0.11.4" }; return function (a, b) { "use strict"; var c = a.window, d = a.document; b.namespaces = { svg: "http://www.w3.org/2000/svg", xmlns: "http://www.w3.org/2000/xmlns/", xhtml: "http://www.w3.org/1999/xhtml", xlink: "http://www.w3.org/1999/xlink", ct: "http://gionkunz.github.com/chartist-js/ct" }, b.noop = function (a) { return a }, b.alphaNumerate = function (a) { return String.fromCharCode(97 + a % 26) }, b.extend = function (a) { var c, d, e; for (a = a || {}, c = 1; c < arguments.length; c++) { d = arguments[c]; for (var f in d) e = d[f], "object" != typeof e || null === e || e instanceof Array ? a[f] = e : a[f] = b.extend(a[f], e) } return a }, b.replaceAll = function (a, b, c) { return a.replace(new RegExp(b, "g"), c) }, b.ensureUnit = function (a, b) { return "number" == typeof a && (a += b), a }, b.quantity = function (a) { if ("string" == typeof a) { var b = /^(\d+)\s*(.*)$/g.exec(a); return { value: +b[1], unit: b[2] || void 0 } } return { value: a } }, b.querySelector = function (a) { return a instanceof Node ? a : d.querySelector(a) }, b.times = function (a) { return Array.apply(null, new Array(a)) }, b.sum = function (a, b) { return a + (b ? b : 0) }, b.mapMultiply = function (a) { return function (b) { return b * a } }, b.mapAdd = function (a) { return function (b) { return b + a } }, b.serialMap = function (a, c) { var d = [], e = Math.max.apply(null, a.map(function (a) { return a.length })); return b.times(e).forEach(function (b, e) { var f = a.map(function (a) { return a[e] }); d[e] = c.apply(null, f) }), d }, b.roundWithPrecision = function (a, c) { var d = Math.pow(10, c || b.precision); return Math.round(a * d) / d }, b.precision = 8, b.escapingMap = { "&": "&", "<": "<", ">": ">", '"': """, "'": "'" }, b.serialize = function (a) { return null === a || void 0 === a ? a : ("number" == typeof a ? a = "" + a : "object" == typeof a && (a = JSON.stringify({ data: a })), Object.keys(b.escapingMap).reduce(function (a, c) { return b.replaceAll(a, c, b.escapingMap[c]) }, a)) }, b.deserialize = function (a) { if ("string" != typeof a) return a; a = Object.keys(b.escapingMap).reduce(function (a, c) { return b.replaceAll(a, b.escapingMap[c], c) }, a); try { a = JSON.parse(a), a = void 0 !== a.data ? a.data : a } catch (c) { } return a }, b.createSvg = function (a, c, d, e) { var f; return c = c || "100%", d = d || "100%", Array.prototype.slice.call(a.querySelectorAll("svg")).filter(function (a) { return a.getAttributeNS(b.namespaces.xmlns, "ct") }).forEach(function (b) { a.removeChild(b) }), f = new b.Svg("svg").attr({ width: c, height: d }).addClass(e), f._node.style.width = c, f._node.style.height = d, a.appendChild(f._node), f }, b.normalizeData = function (a, c, d) { var e, f = { raw: a, normalized: {} }; return f.normalized.series = b.getDataArray({ series: a.series || [] }, c, d), e = f.normalized.series.every(function (a) { return a instanceof Array }) ? Math.max.apply(null, f.normalized.series.map(function (a) { return a.length })) : f.normalized.series.length, f.normalized.labels = (a.labels || []).slice(), Array.prototype.push.apply(f.normalized.labels, b.times(Math.max(0, e - f.normalized.labels.length)).map(function () { return "" })), c && b.reverseData(f.normalized), f }, b.safeHasProperty = function (a, b) { return null !== a && "object" == typeof a && a.hasOwnProperty(b) }, b.isDataHoleValue = function (a) { return null === a || void 0 === a || "number" == typeof a && isNaN(a) }, b.reverseData = function (a) { a.labels.reverse(), a.series.reverse(); for (var b = 0; b < a.series.length; b++)"object" == typeof a.series[b] && void 0 !== a.series[b].data ? a.series[b].data.reverse() : a.series[b] instanceof Array && a.series[b].reverse() }, b.getDataArray = function (a, c, d) { function e(a) { if (b.safeHasProperty(a, "value")) return e(a.value); if (b.safeHasProperty(a, "data")) return e(a.data); if (a instanceof Array) return a.map(e); if (!b.isDataHoleValue(a)) { if (d) { var c = {}; return "string" == typeof d ? c[d] = b.getNumberOrUndefined(a) : c.y = b.getNumberOrUndefined(a), c.x = a.hasOwnProperty("x") ? b.getNumberOrUndefined(a.x) : c.x, c.y = a.hasOwnProperty("y") ? b.getNumberOrUndefined(a.y) : c.y, c } return b.getNumberOrUndefined(a) } } return a.series.map(e) }, b.normalizePadding = function (a, b) { return b = b || 0, "number" == typeof a ? { top: a, right: a, bottom: a, left: a } : { top: "number" == typeof a.top ? a.top : b, right: "number" == typeof a.right ? a.right : b, bottom: "number" == typeof a.bottom ? a.bottom : b, left: "number" == typeof a.left ? a.left : b } }, b.getMetaData = function (a, b) { var c = a.data ? a.data[b] : a[b]; return c ? c.meta : void 0 }, b.orderOfMagnitude = function (a) { return Math.floor(Math.log(Math.abs(a)) / Math.LN10) }, b.projectLength = function (a, b, c) { return b / c.range * a }, b.getAvailableHeight = function (a, c) { return Math.max((b.quantity(c.height).value || a.height()) - (c.chartPadding.top + c.chartPadding.bottom) - c.axisX.offset, 0) }, b.getHighLow = function (a, c, d) { function e(a) { if (void 0 !== a) if (a instanceof Array) for (var b = 0; b < a.length; b++)e(a[b]); else { var c = d ? +a[d] : +a; g && c > f.high && (f.high = c), h && c < f.low && (f.low = c) } } c = b.extend({}, c, d ? c["axis" + d.toUpperCase()] : {}); var f = { high: void 0 === c.high ? -Number.MAX_VALUE : +c.high, low: void 0 === c.low ? Number.MAX_VALUE : +c.low }, g = void 0 === c.high, h = void 0 === c.low; return (g || h) && e(a), (c.referenceValue || 0 === c.referenceValue) && (f.high = Math.max(c.referenceValue, f.high), f.low = Math.min(c.referenceValue, f.low)), f.high <= f.low && (0 === f.low ? f.high = 1 : f.low < 0 ? f.high = 0 : f.high > 0 ? f.low = 0 : (f.high = 1, f.low = 0)), f }, b.isNumeric = function (a) { return null !== a && isFinite(a) }, b.isFalseyButZero = function (a) { return !a && 0 !== a }, b.getNumberOrUndefined = function (a) { return b.isNumeric(a) ? +a : void 0 }, b.isMultiValue = function (a) { return "object" == typeof a && ("x" in a || "y" in a) }, b.getMultiValue = function (a, c) { return b.isMultiValue(a) ? b.getNumberOrUndefined(a[c || "y"]) : b.getNumberOrUndefined(a) }, b.rho = function (a) { function b(a, c) { return a % c === 0 ? c : b(c, a % c) } function c(a) { return a * a + 1 } if (1 === a) return a; var d, e = 2, f = 2; if (a % 2 === 0) return 2; do e = c(e) % a, f = c(c(f)) % a, d = b(Math.abs(e - f), a); while (1 === d); return d }, b.getBounds = function (a, c, d, e) { function f(a, b) { return a === (a += b) && (a *= 1 + (b > 0 ? o : -o)), a } var g, h, i, j = 0, k = { high: c.high, low: c.low }; k.valueRange = k.high - k.low, k.oom = b.orderOfMagnitude(k.valueRange), k.step = Math.pow(10, k.oom), k.min = Math.floor(k.low / k.step) * k.step, k.max = Math.ceil(k.high / k.step) * k.step, k.range = k.max - k.min, k.numberOfSteps = Math.round(k.range / k.step); var l = b.projectLength(a, k.step, k), m = l < d, n = e ? b.rho(k.range) : 0; if (e && b.projectLength(a, 1, k) >= d) k.step = 1; else if (e && n < k.step && b.projectLength(a, n, k) >= d) k.step = n; else for (; ;) { if (m && b.projectLength(a, k.step, k) <= d) k.step *= 2; else { if (m || !(b.projectLength(a, k.step / 2, k) >= d)) break; if (k.step /= 2, e && k.step % 1 !== 0) { k.step *= 2; break } } if (j++ > 1e3) throw new Error("Exceeded maximum number of iterations while optimizing scale step!") } var o = 2.221e-16; for (k.step = Math.max(k.step, o), h = k.min, i = k.max; h + k.step <= k.low;)h = f(h, k.step); for (; i - k.step >= k.high;)i = f(i, -k.step); k.min = h, k.max = i, k.range = k.max - k.min; var p = []; for (g = k.min; g <= k.max; g = f(g, k.step)) { var q = b.roundWithPrecision(g); q !== p[p.length - 1] && p.push(q) } return k.values = p, k }, b.polarToCartesian = function (a, b, c, d) { var e = (d - 90) * Math.PI / 180; return { x: a + c * Math.cos(e), y: b + c * Math.sin(e) } }, b.createChartRect = function (a, c, d) { var e = !(!c.axisX && !c.axisY), f = e ? c.axisY.offset : 0, g = e ? c.axisX.offset : 0, h = a.width() || b.quantity(c.width).value || 0, i = a.height() || b.quantity(c.height).value || 0, j = b.normalizePadding(c.chartPadding, d); h = Math.max(h, f + j.left + j.right), i = Math.max(i, g + j.top + j.bottom); var k = { padding: j, width: function () { return this.x2 - this.x1 }, height: function () { return this.y1 - this.y2 } }; return e ? ("start" === c.axisX.position ? (k.y2 = j.top + g, k.y1 = Math.max(i - j.bottom, k.y2 + 1)) : (k.y2 = j.top, k.y1 = Math.max(i - j.bottom - g, k.y2 + 1)), "start" === c.axisY.position ? (k.x1 = j.left + f, k.x2 = Math.max(h - j.right, k.x1 + 1)) : (k.x1 = j.left, k.x2 = Math.max(h - j.right - f, k.x1 + 1))) : (k.x1 = j.left, k.x2 = Math.max(h - j.right, k.x1 + 1), k.y2 = j.top, k.y1 = Math.max(i - j.bottom, k.y2 + 1)), k }, b.createGrid = function (a, c, d, e, f, g, h, i) { var j = {}; j[d.units.pos + "1"] = a, j[d.units.pos + "2"] = a, j[d.counterUnits.pos + "1"] = e, j[d.counterUnits.pos + "2"] = e + f; var k = g.elem("line", j, h.join(" ")); i.emit("draw", b.extend({ type: "grid", axis: d, index: c, group: g, element: k }, j)) }, b.createGridBackground = function (a, b, c, d) { var e = a.elem("rect", { x: b.x1, y: b.y2, width: b.width(), height: b.height() }, c, !0); d.emit("draw", { type: "gridBackground", group: a, element: e }) }, b.createLabel = function (a, c, e, f, g, h, i, j, k, l, m) { var n, o = {}; if (o[g.units.pos] = a + i[g.units.pos], o[g.counterUnits.pos] = i[g.counterUnits.pos], o[g.units.len] = c, o[g.counterUnits.len] = Math.max(0, h - 10), l) { var p = d.createElement("span"); p.className = k.join(" "), p.setAttribute("xmlns", b.namespaces.xhtml), p.innerText = f[e], p.style[g.units.len] = Math.round(o[g.units.len]) + "px", p.style[g.counterUnits.len] = Math.round(o[g.counterUnits.len]) + "px", n = j.foreignObject(p, b.extend({ style: "overflow: visible;" }, o)) } else n = j.elem("text", o, k.join(" ")).text(f[e]); m.emit("draw", b.extend({ type: "label", axis: g, index: e, group: j, element: n, text: f[e] }, o)) }, b.getSeriesOption = function (a, b, c) { if (a.name && b.series && b.series[a.name]) { var d = b.series[a.name]; return d.hasOwnProperty(c) ? d[c] : b[c] } return b[c] }, b.optionsProvider = function (a, d, e) { function f(a) { var f = h; if (h = b.extend({}, j), d) for (i = 0; i < d.length; i++) { var g = c.matchMedia(d[i][0]); g.matches && (h = b.extend(h, d[i][1])) } e && a && e.emit("optionsChanged", { previousOptions: f, currentOptions: h }) } function g() { k.forEach(function (a) { a.removeListener(f) }) } var h, i, j = b.extend({}, a), k = []; if (!c.matchMedia) throw "window.matchMedia not found! Make sure you're using a polyfill."; if (d) for (i = 0; i < d.length; i++) { var l = c.matchMedia(d[i][0]); l.addListener(f), k.push(l) } return f(), { removeMediaQueryListeners: g, getCurrentOptions: function () { return b.extend({}, h) } } }, b.splitIntoSegments = function (a, c, d) { var e = { increasingX: !1, fillHoles: !1 }; d = b.extend({}, e, d); for (var f = [], g = !0, h = 0; h < a.length; h += 2)void 0 === b.getMultiValue(c[h / 2].value) ? d.fillHoles || (g = !0) : (d.increasingX && h >= 2 && a[h] <= a[h - 2] && (g = !0), g && (f.push({ pathCoordinates: [], valueData: [] }), g = !1), f[f.length - 1].pathCoordinates.push(a[h], a[h + 1]), f[f.length - 1].valueData.push(c[h / 2])); return f } }(this || global, a), function (a, b) { "use strict"; b.Interpolation = {}, b.Interpolation.none = function (a) { var c = { fillHoles: !1 }; return a = b.extend({}, c, a), function (c, d) { for (var e = new b.Svg.Path, f = !0, g = 0; g < c.length; g += 2) { var h = c[g], i = c[g + 1], j = d[g / 2]; void 0 !== b.getMultiValue(j.value) ? (f ? e.move(h, i, !1, j) : e.line(h, i, !1, j), f = !1) : a.fillHoles || (f = !0) } return e } }, b.Interpolation.simple = function (a) { var c = { divisor: 2, fillHoles: !1 }; a = b.extend({}, c, a); var d = 1 / Math.max(1, a.divisor); return function (c, e) { for (var f, g, h, i = new b.Svg.Path, j = 0; j < c.length; j += 2) { var k = c[j], l = c[j + 1], m = (k - f) * d, n = e[j / 2]; void 0 !== n.value ? (void 0 === h ? i.move(k, l, !1, n) : i.curve(f + m, g, k - m, l, k, l, !1, n), f = k, g = l, h = n) : a.fillHoles || (f = k = h = void 0) } return i } }, b.Interpolation.cardinal = function (a) { var c = { tension: 1, fillHoles: !1 }; a = b.extend({}, c, a); var d = Math.min(1, Math.max(0, a.tension)), e = 1 - d; return function f(c, g) { var h = b.splitIntoSegments(c, g, { fillHoles: a.fillHoles }); if (h.length) { if (h.length > 1) { var i = []; return h.forEach(function (a) { i.push(f(a.pathCoordinates, a.valueData)) }), b.Svg.Path.join(i) } if (c = h[0].pathCoordinates, g = h[0].valueData, c.length <= 4) return b.Interpolation.none()(c, g); for (var j, k = (new b.Svg.Path).move(c[0], c[1], !1, g[0]), l = 0, m = c.length; m - 2 * !j > l; l += 2) { var n = [{ x: +c[l - 2], y: +c[l - 1] }, { x: +c[l], y: +c[l + 1] }, { x: +c[l + 2], y: +c[l + 3] }, { x: +c[l + 4], y: +c[l + 5] }]; j ? l ? m - 4 === l ? n[3] = { x: +c[0], y: +c[1] } : m - 2 === l && (n[2] = { x: +c[0], y: +c[1] }, n[3] = { x: +c[2], y: +c[3] }) : n[0] = { x: +c[m - 2], y: +c[m - 1] } : m - 4 === l ? n[3] = n[2] : l || (n[0] = { x: +c[l], y: +c[l + 1] }), k.curve(d * (-n[0].x + 6 * n[1].x + n[2].x) / 6 + e * n[2].x, d * (-n[0].y + 6 * n[1].y + n[2].y) / 6 + e * n[2].y, d * (n[1].x + 6 * n[2].x - n[3].x) / 6 + e * n[2].x, d * (n[1].y + 6 * n[2].y - n[3].y) / 6 + e * n[2].y, n[2].x, n[2].y, !1, g[(l + 2) / 2]) } return k } return b.Interpolation.none()([]) } }, b.Interpolation.monotoneCubic = function (a) { var c = { fillHoles: !1 }; return a = b.extend({}, c, a), function d(c, e) { var f = b.splitIntoSegments(c, e, { fillHoles: a.fillHoles, increasingX: !0 }); if (f.length) { if (f.length > 1) { var g = []; return f.forEach(function (a) { g.push(d(a.pathCoordinates, a.valueData)) }), b.Svg.Path.join(g) } if (c = f[0].pathCoordinates, e = f[0].valueData, c.length <= 4) return b.Interpolation.none()(c, e); var h, i, j = [], k = [], l = c.length / 2, m = [], n = [], o = [], p = []; for (h = 0; h < l; h++)j[h] = c[2 * h], k[h] = c[2 * h + 1]; for (h = 0; h < l - 1; h++)o[h] = k[h + 1] - k[h], p[h] = j[h + 1] - j[h], n[h] = o[h] / p[h]; for (m[0] = n[0], m[l - 1] = n[l - 2], h = 1; h < l - 1; h++)0 === n[h] || 0 === n[h - 1] || n[h - 1] > 0 != n[h] > 0 ? m[h] = 0 : (m[h] = 3 * (p[h - 1] + p[h]) / ((2 * p[h] + p[h - 1]) / n[h - 1] + (p[h] + 2 * p[h - 1]) / n[h]), isFinite(m[h]) || (m[h] = 0)); for (i = (new b.Svg.Path).move(j[0], k[0], !1, e[0]), h = 0; h < l - 1; h++)i.curve(j[h] + p[h] / 3, k[h] + m[h] * p[h] / 3, j[h + 1] - p[h] / 3, k[h + 1] - m[h + 1] * p[h] / 3, j[h + 1], k[h + 1], !1, e[h + 1]); return i } return b.Interpolation.none()([]) } }, b.Interpolation.step = function (a) { var c = { postpone: !0, fillHoles: !1 }; return a = b.extend({}, c, a), function (c, d) { for (var e, f, g, h = new b.Svg.Path, i = 0; i < c.length; i += 2) { var j = c[i], k = c[i + 1], l = d[i / 2]; void 0 !== l.value ? (void 0 === g ? h.move(j, k, !1, l) : (a.postpone ? h.line(j, f, !1, g) : h.line(e, k, !1, l), h.line(j, k, !1, l)), e = j, f = k, g = l) : a.fillHoles || (e = f = g = void 0) } return h } } }(this || global, a), function (a, b) { "use strict"; b.EventEmitter = function () { function a(a, b) { d[a] = d[a] || [], d[a].push(b) } function b(a, b) { d[a] && (b ? (d[a].splice(d[a].indexOf(b), 1), 0 === d[a].length && delete d[a]) : delete d[a]) } function c(a, b) { d[a] && d[a].forEach(function (a) { a(b) }), d["*"] && d["*"].forEach(function (c) { c(a, b) }) } var d = []; return { addEventHandler: a, removeEventHandler: b, emit: c } } }(this || global, a), function (a, b) { "use strict"; function c(a) { var b = []; if (a.length) for (var c = 0; c < a.length; c++)b.push(a[c]); return b } function d(a, c) { var d = c || this.prototype || b.Class, e = Object.create(d); b.Class.cloneDefinitions(e, a); var f = function () { var a, c = e.constructor || function () { }; return a = this === b ? Object.create(e) : this, c.apply(a, Array.prototype.slice.call(arguments, 0)), a }; return f.prototype = e, f["super"] = d, f.extend = this.extend, f } function e() { var a = c(arguments), b = a[0]; return a.splice(1, a.length - 1).forEach(function (a) { Object.getOwnPropertyNames(a).forEach(function (c) { delete b[c], Object.defineProperty(b, c, Object.getOwnPropertyDescriptor(a, c)) }) }), b } b.Class = { extend: d, cloneDefinitions: e } }(this || global, a), function (a, b) { "use strict"; function c(a, c, d) { return a && (this.data = a || {}, this.data.labels = this.data.labels || [], this.data.series = this.data.series || [], this.eventEmitter.emit("data", { type: "update", data: this.data })), c && (this.options = b.extend({}, d ? this.options : this.defaultOptions, c), this.initializeTimeoutId || (this.optionsProvider.removeMediaQueryListeners(), this.optionsProvider = b.optionsProvider(this.options, this.responsiveOptions, this.eventEmitter))), this.initializeTimeoutId || this.createChart(this.optionsProvider.getCurrentOptions()), this } function d() { return this.initializeTimeoutId ? i.clearTimeout(this.initializeTimeoutId) : (i.removeEventListener("resize", this.resizeListener), this.optionsProvider.removeMediaQueryListeners()), this } function e(a, b) { return this.eventEmitter.addEventHandler(a, b), this } function f(a, b) { return this.eventEmitter.removeEventHandler(a, b), this } function g() { i.addEventListener("resize", this.resizeListener), this.optionsProvider = b.optionsProvider(this.options, this.responsiveOptions, this.eventEmitter), this.eventEmitter.addEventHandler("optionsChanged", function () { this.update() }.bind(this)), this.options.plugins && this.options.plugins.forEach(function (a) { a instanceof Array ? a[0](this, a[1]) : a(this) }.bind(this)), this.eventEmitter.emit("data", { type: "initial", data: this.data }), this.createChart(this.optionsProvider.getCurrentOptions()), this.initializeTimeoutId = void 0 } function h(a, c, d, e, f) { this.container = b.querySelector(a), this.data = c || {}, this.data.labels = this.data.labels || [], this.data.series = this.data.series || [], this.defaultOptions = d, this.options = e, this.responsiveOptions = f, this.eventEmitter = b.EventEmitter(), this.supportsForeignObject = b.Svg.isSupported("Extensibility"), this.supportsAnimations = b.Svg.isSupported("AnimationEventsAttribute"), this.resizeListener = function () { this.update() }.bind(this), this.container && (this.container.__chartist__ && this.container.__chartist__.detach(), this.container.__chartist__ = this), this.initializeTimeoutId = setTimeout(g.bind(this), 0) } var i = a.window; b.Base = b.Class.extend({ constructor: h, optionsProvider: void 0, container: void 0, svg: void 0, eventEmitter: void 0, createChart: function () { throw new Error("Base chart type can't be instantiated!") }, update: c, detach: d, on: e, off: f, version: b.version, supportsForeignObject: !1 }) }(this || global, a), function (a, b) { "use strict"; function c(a, c, d, e, f) { a instanceof Element ? this._node = a : (this._node = y.createElementNS(b.namespaces.svg, a), "svg" === a && this.attr({ "xmlns:ct": b.namespaces.ct })), c && this.attr(c), d && this.addClass(d), e && (f && e._node.firstChild ? e._node.insertBefore(this._node, e._node.firstChild) : e._node.appendChild(this._node)) } function d(a, c) { return "string" == typeof a ? c ? this._node.getAttributeNS(c, a) : this._node.getAttribute(a) : (Object.keys(a).forEach(function (c) { if (void 0 !== a[c]) if (c.indexOf(":") !== -1) { var d = c.split(":"); this._node.setAttributeNS(b.namespaces[d[0]], c, a[c]) } else this._node.setAttribute(c, a[c]) }.bind(this)), this) } function e(a, c, d, e) { return new b.Svg(a, c, d, this, e) } function f() { return this._node.parentNode instanceof SVGElement ? new b.Svg(this._node.parentNode) : null } function g() { for (var a = this._node; "svg" !== a.nodeName;)a = a.parentNode; return new b.Svg(a) } function h(a) { var c = this._node.querySelector(a); return c ? new b.Svg(c) : null } function i(a) { var c = this._node.querySelectorAll(a); return c.length ? new b.Svg.List(c) : null } function j() { return this._node } function k(a, c, d, e) { if ("string" == typeof a) { var f = y.createElement("div"); f.innerHTML = a, a = f.firstChild } a.setAttribute("xmlns", b.namespaces.xmlns); var g = this.elem("foreignObject", c, d, e); return g._node.appendChild(a), g } function l(a) { return this._node.appendChild(y.createTextNode(a)), this } function m() { for (; this._node.firstChild;)this._node.removeChild(this._node.firstChild); return this } function n() { return this._node.parentNode.removeChild(this._node), this.parent() } function o(a) { return this._node.parentNode.replaceChild(a._node, this._node), a } function p(a, b) { return b && this._node.firstChild ? this._node.insertBefore(a._node, this._node.firstChild) : this._node.appendChild(a._node), this } function q() { return this._node.getAttribute("class") ? this._node.getAttribute("class").trim().split(/\s+/) : [] } function r(a) { return this._node.setAttribute("class", this.classes(this._node).concat(a.trim().split(/\s+/)).filter(function (a, b, c) { return c.indexOf(a) === b }).join(" ")), this } function s(a) { var b = a.trim().split(/\s+/); return this._node.setAttribute("class", this.classes(this._node).filter(function (a) { return b.indexOf(a) === -1 }).join(" ")), this } function t() { return this._node.setAttribute("class", ""), this } function u() { return this._node.getBoundingClientRect().height } function v() { return this._node.getBoundingClientRect().width } function w(a, c, d) { return void 0 === c && (c = !0), Object.keys(a).forEach(function (e) { function f(a, c) { var f, g, h, i = {}; a.easing && (h = a.easing instanceof Array ? a.easing : b.Svg.Easing[a.easing], delete a.easing), a.begin = b.ensureUnit(a.begin, "ms"), a.dur = b.ensureUnit(a.dur, "ms"), h && (a.calcMode = "spline", a.keySplines = h.join(" "), a.keyTimes = "0;1"), c && (a.fill = "freeze", i[e] = a.from, this.attr(i), g = b.quantity(a.begin || 0).value, a.begin = "indefinite"), f = this.elem("animate", b.extend({ attributeName: e }, a)), c && setTimeout(function () { try { f._node.beginElement() } catch (b) { i[e] = a.to, this.attr(i), f.remove() } }.bind(this), g), d && f._node.addEventListener("beginEvent", function () { d.emit("animationBegin", { element: this, animate: f._node, params: a }) }.bind(this)), f._node.addEventListener("endEvent", function () { d && d.emit("animationEnd", { element: this, animate: f._node, params: a }), c && (i[e] = a.to, this.attr(i), f.remove()) }.bind(this)) } a[e] instanceof Array ? a[e].forEach(function (a) { f.bind(this)(a, !1) }.bind(this)) : f.bind(this)(a[e], c) }.bind(this)), this } function x(a) { var c = this; this.svgElements = []; for (var d = 0; d < a.length; d++)this.svgElements.push(new b.Svg(a[d])); Object.keys(b.Svg.prototype).filter(function (a) { return ["constructor", "parent", "querySelector", "querySelectorAll", "replace", "append", "classes", "height", "width"].indexOf(a) === -1 }).forEach(function (a) { c[a] = function () { var d = Array.prototype.slice.call(arguments, 0); return c.svgElements.forEach(function (c) { b.Svg.prototype[a].apply(c, d) }), c } }) } var y = a.document; b.Svg = b.Class.extend({ constructor: c, attr: d, elem: e, parent: f, root: g, querySelector: h, querySelectorAll: i, getNode: j, foreignObject: k, text: l, empty: m, remove: n, replace: o, append: p, classes: q, addClass: r, removeClass: s, removeAllClasses: t, height: u, width: v, animate: w }), b.Svg.isSupported = function (a) { return y.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#" + a, "1.1") }; var z = { easeInSine: [.47, 0, .745, .715], easeOutSine: [.39, .575, .565, 1], easeInOutSine: [.445, .05, .55, .95], easeInQuad: [.55, .085, .68, .53], easeOutQuad: [.25, .46, .45, .94], easeInOutQuad: [.455, .03, .515, .955], easeInCubic: [.55, .055, .675, .19], easeOutCubic: [.215, .61, .355, 1], easeInOutCubic: [.645, .045, .355, 1], easeInQuart: [.895, .03, .685, .22], easeOutQuart: [.165, .84, .44, 1], easeInOutQuart: [.77, 0, .175, 1], easeInQuint: [.755, .05, .855, .06], easeOutQuint: [.23, 1, .32, 1], easeInOutQuint: [.86, 0, .07, 1], easeInExpo: [.95, .05, .795, .035], easeOutExpo: [.19, 1, .22, 1], easeInOutExpo: [1, 0, 0, 1], easeInCirc: [.6, .04, .98, .335], easeOutCirc: [.075, .82, .165, 1], easeInOutCirc: [.785, .135, .15, .86], easeInBack: [.6, -.28, .735, .045], easeOutBack: [.175, .885, .32, 1.275], easeInOutBack: [.68, -.55, .265, 1.55] }; b.Svg.Easing = z, b.Svg.List = b.Class.extend({ constructor: x }) }(this || global, a), function (a, b) { "use strict"; function c(a, c, d, e, f, g) { var h = b.extend({ command: f ? a.toLowerCase() : a.toUpperCase() }, c, g ? { data: g } : {}); d.splice(e, 0, h) } function d(a, b) { a.forEach(function (c, d) { t[c.command.toLowerCase()].forEach(function (e, f) { b(c, e, d, f, a) }) }) } function e(a, c) { this.pathElements = [], this.pos = 0, this.close = a, this.options = b.extend({}, u, c) } function f(a) { return void 0 !== a ? (this.pos = Math.max(0, Math.min(this.pathElements.length, a)), this) : this.pos } function g(a) { return this.pathElements.splice(this.pos, a), this } function h(a, b, d, e) { return c("M", { x: +a, y: +b }, this.pathElements, this.pos++, d, e), this } function i(a, b, d, e) { return c("L", { x: +a, y: +b }, this.pathElements, this.pos++, d, e), this } function j(a, b, d, e, f, g, h, i) { return c("C", { x1: +a, y1: +b, x2: +d, y2: +e, x: +f, y: +g }, this.pathElements, this.pos++, h, i), this } function k(a, b, d, e, f, g, h, i, j) { return c("A", { rx: +a, ry: +b, xAr: +d, lAf: +e, sf: +f, x: +g, y: +h }, this.pathElements, this.pos++, i, j), this } function l(a) { var c = a.replace(/([A-Za-z])([0-9])/g, "$1 $2").replace(/([0-9])([A-Za-z])/g, "$1 $2").split(/[\s,]+/).reduce(function (a, b) { return b.match(/[A-Za-z]/) && a.push([]), a[a.length - 1].push(b), a }, []); "Z" === c[c.length - 1][0].toUpperCase() && c.pop(); var d = c.map(function (a) { var c = a.shift(), d = t[c.toLowerCase()]; return b.extend({ command: c }, d.reduce(function (b, c, d) { return b[c] = +a[d], b }, {})) }), e = [this.pos, 0]; return Array.prototype.push.apply(e, d), Array.prototype.splice.apply(this.pathElements, e), this.pos += d.length, this } function m() { var a = Math.pow(10, this.options.accuracy); return this.pathElements.reduce(function (b, c) { var d = t[c.command.toLowerCase()].map(function (b) { return this.options.accuracy ? Math.round(c[b] * a) / a : c[b] }.bind(this)); return b + c.command + d.join(",") }.bind(this), "") + (this.close ? "Z" : "") } function n(a, b) { return d(this.pathElements, function (c, d) { c[d] *= "x" === d[0] ? a : b }), this } function o(a, b) { return d(this.pathElements, function (c, d) { c[d] += "x" === d[0] ? a : b }), this } function p(a) { return d(this.pathElements, function (b, c, d, e, f) { var g = a(b, c, d, e, f); (g || 0 === g) && (b[c] = g) }), this } function q(a) { var c = new b.Svg.Path(a || this.close); return c.pos = this.pos, c.pathElements = this.pathElements.slice().map(function (a) { return b.extend({}, a) }), c.options = b.extend({}, this.options), c } function r(a) { var c = [new b.Svg.Path]; return this.pathElements.forEach(function (d) { d.command === a.toUpperCase() && 0 !== c[c.length - 1].pathElements.length && c.push(new b.Svg.Path), c[c.length - 1].pathElements.push(d) }), c } function s(a, c, d) { for (var e = new b.Svg.Path(c, d), f = 0; f < a.length; f++)for (var g = a[f], h = 0; h < g.pathElements.length; h++)e.pathElements.push(g.pathElements[h]); return e } var t = { m: ["x", "y"], l: ["x", "y"], c: ["x1", "y1", "x2", "y2", "x", "y"], a: ["rx", "ry", "xAr", "lAf", "sf", "x", "y"] }, u = { accuracy: 3 }; b.Svg.Path = b.Class.extend({ constructor: e, position: f, remove: g, move: h, line: i, curve: j, arc: k, scale: n, translate: o, transform: p, parse: l, stringify: m, clone: q, splitByCommand: r }), b.Svg.Path.elementDescriptions = t, b.Svg.Path.join = s }(this || global, a), function (a, b) { "use strict"; function c(a, b, c, d) { this.units = a, this.counterUnits = a === e.x ? e.y : e.x, this.chartRect = b, this.axisLength = b[a.rectEnd] - b[a.rectStart], this.gridOffset = b[a.rectOffset], this.ticks = c, this.options = d } function d(a, c, d, e, f) { var g = e["axis" + this.units.pos.toUpperCase()], h = this.ticks.map(this.projectValue.bind(this)), i = this.ticks.map(g.labelInterpolationFnc); h.forEach(function (j, k) { var l, m = { x: 0, y: 0 }; l = h[k + 1] ? h[k + 1] - j : Math.max(this.axisLength - j, 30), b.isFalseyButZero(i[k]) && "" !== i[k] || ("x" === this.units.pos ? (j = this.chartRect.x1 + j, m.x = e.axisX.labelOffset.x, "start" === e.axisX.position ? m.y = this.chartRect.padding.top + e.axisX.labelOffset.y + (d ? 5 : 20) : m.y = this.chartRect.y1 + e.axisX.labelOffset.y + (d ? 5 : 20)) : (j = this.chartRect.y1 - j, m.y = e.axisY.labelOffset.y - (d ? l : 0), "start" === e.axisY.position ? m.x = d ? this.chartRect.padding.left + e.axisY.labelOffset.x : this.chartRect.x1 - 10 : m.x = this.chartRect.x2 + e.axisY.labelOffset.x + 10), g.showGrid && b.createGrid(j, k, this, this.gridOffset, this.chartRect[this.counterUnits.len](), a, [e.classNames.grid, e.classNames[this.units.dir]], f), g.showLabel && b.createLabel(j, l, k, i, this, g.offset, m, c, [e.classNames.label, e.classNames[this.units.dir], "start" === g.position ? e.classNames[g.position] : e.classNames.end], d, f)) }.bind(this)) } var e = (a.window, a.document, { x: { pos: "x", len: "width", dir: "horizontal", rectStart: "x1", rectEnd: "x2", rectOffset: "y2" }, y: { pos: "y", len: "height", dir: "vertical", rectStart: "y2", rectEnd: "y1", rectOffset: "x1" } }); b.Axis = b.Class.extend({ constructor: c, createGridAndLabels: d, projectValue: function (a, b, c) { throw new Error("Base axis can't be instantiated!") } }), b.Axis.units = e }(this || global, a), function (a, b) { "use strict"; function c(a, c, d, e) { var f = e.highLow || b.getHighLow(c, e, a.pos); this.bounds = b.getBounds(d[a.rectEnd] - d[a.rectStart], f, e.scaleMinSpace || 20, e.onlyInteger), this.range = { min: this.bounds.min, max: this.bounds.max }, b.AutoScaleAxis["super"].constructor.call(this, a, d, this.bounds.values, e) } function d(a) { return this.axisLength * (+b.getMultiValue(a, this.units.pos) - this.bounds.min) / this.bounds.range } a.window, a.document; b.AutoScaleAxis = b.Axis.extend({ constructor: c, projectValue: d }) }(this || global, a), function (a, b) { "use strict"; function c(a, c, d, e) { var f = e.highLow || b.getHighLow(c, e, a.pos); this.divisor = e.divisor || 1, this.ticks = e.ticks || b.times(this.divisor).map(function (a, b) { return f.low + (f.high - f.low) / this.divisor * b }.bind(this)), this.ticks.sort(function (a, b) { return a - b }), this.range = { min: f.low, max: f.high }, b.FixedScaleAxis["super"].constructor.call(this, a, d, this.ticks, e), this.stepLength = this.axisLength / this.divisor } function d(a) { return this.axisLength * (+b.getMultiValue(a, this.units.pos) - this.range.min) / (this.range.max - this.range.min) } a.window, a.document; b.FixedScaleAxis = b.Axis.extend({ constructor: c, projectValue: d }) }(this || global, a), function (a, b) { "use strict"; function c(a, c, d, e) { b.StepAxis["super"].constructor.call(this, a, d, e.ticks, e); var f = Math.max(1, e.ticks.length - (e.stretch ? 1 : 0)); this.stepLength = this.axisLength / f } function d(a, b) { return this.stepLength * b } a.window, a.document; b.StepAxis = b.Axis.extend({ constructor: c, projectValue: d }) }(this || global, a), function (a, b) { "use strict"; function c(a) { var c = b.normalizeData(this.data, a.reverseData, !0); this.svg = b.createSvg(this.container, a.width, a.height, a.classNames.chart); var d, f, g = this.svg.elem("g").addClass(a.classNames.gridGroup), h = this.svg.elem("g"), i = this.svg.elem("g").addClass(a.classNames.labelGroup), j = b.createChartRect(this.svg, a, e.padding); d = void 0 === a.axisX.type ? new b.StepAxis(b.Axis.units.x, c.normalized.series, j, b.extend({}, a.axisX, { ticks: c.normalized.labels, stretch: a.fullWidth })) : a.axisX.type.call(b, b.Axis.units.x, c.normalized.series, j, a.axisX), f = void 0 === a.axisY.type ? new b.AutoScaleAxis(b.Axis.units.y, c.normalized.series, j, b.extend({}, a.axisY, { high: b.isNumeric(a.high) ? a.high : a.axisY.high, low: b.isNumeric(a.low) ? a.low : a.axisY.low })) : a.axisY.type.call(b, b.Axis.units.y, c.normalized.series, j, a.axisY), d.createGridAndLabels(g, i, this.supportsForeignObject, a, this.eventEmitter), f.createGridAndLabels(g, i, this.supportsForeignObject, a, this.eventEmitter), a.showGridBackground && b.createGridBackground(g, j, a.classNames.gridBackground, this.eventEmitter), c.raw.series.forEach(function (e, g) { var i = h.elem("g"); i.attr({ "ct:series-name": e.name, "ct:meta": b.serialize(e.meta) }), i.addClass([a.classNames.series, e.className || a.classNames.series + "-" + b.alphaNumerate(g)].join(" ")); var k = [], l = []; c.normalized.series[g].forEach(function (a, h) { var i = { x: j.x1 + d.projectValue(a, h, c.normalized.series[g]), y: j.y1 - f.projectValue(a, h, c.normalized.series[g]) }; k.push(i.x, i.y), l.push({ value: a, valueIndex: h, meta: b.getMetaData(e, h) }) }.bind(this)); var m = { lineSmooth: b.getSeriesOption(e, a, "lineSmooth"), showPoint: b.getSeriesOption(e, a, "showPoint"), showLine: b.getSeriesOption(e, a, "showLine"), showArea: b.getSeriesOption(e, a, "showArea"), areaBase: b.getSeriesOption(e, a, "areaBase") }, n = "function" == typeof m.lineSmooth ? m.lineSmooth : m.lineSmooth ? b.Interpolation.monotoneCubic() : b.Interpolation.none(), o = n(k, l); if (m.showPoint && o.pathElements.forEach(function (c) { var h = i.elem("line", { x1: c.x, y1: c.y, x2: c.x + .01, y2: c.y }, a.classNames.point).attr({ "ct:value": [c.data.value.x, c.data.value.y].filter(b.isNumeric).join(","), "ct:meta": b.serialize(c.data.meta) }); this.eventEmitter.emit("draw", { type: "point", value: c.data.value, index: c.data.valueIndex, meta: c.data.meta, series: e, seriesIndex: g, axisX: d, axisY: f, group: i, element: h, x: c.x, y: c.y }) }.bind(this)), m.showLine) { var p = i.elem("path", { d: o.stringify() }, a.classNames.line, !0); this.eventEmitter.emit("draw", { type: "line", values: c.normalized.series[g], path: o.clone(), chartRect: j, index: g, series: e, seriesIndex: g, seriesMeta: e.meta, axisX: d, axisY: f, group: i, element: p }) } if (m.showArea && f.range) { var q = Math.max(Math.min(m.areaBase, f.range.max), f.range.min), r = j.y1 - f.projectValue(q); o.splitByCommand("M").filter(function (a) { return a.pathElements.length > 1 }).map(function (a) { var b = a.pathElements[0], c = a.pathElements[a.pathElements.length - 1]; return a.clone(!0).position(0).remove(1).move(b.x, r).line(b.x, b.y).position(a.pathElements.length + 1).line(c.x, r) }).forEach(function (b) { var h = i.elem("path", { d: b.stringify() }, a.classNames.area, !0); this.eventEmitter.emit("draw", { type: "area", values: c.normalized.series[g], path: b.clone(), series: e, seriesIndex: g, axisX: d, axisY: f, chartRect: j, index: g, group: i, element: h }) }.bind(this)) } }.bind(this)), this.eventEmitter.emit("created", { bounds: f.bounds, chartRect: j, axisX: d, axisY: f, svg: this.svg, options: a }) } function d(a, c, d, f) { b.Line["super"].constructor.call(this, a, c, e, b.extend({}, e, d), f) } var e = (a.window, a.document, { axisX: { offset: 30, position: "end", labelOffset: { x: 0, y: 0 }, showLabel: !0, showGrid: !0, labelInterpolationFnc: b.noop, type: void 0 }, axisY: { offset: 40, position: "start", labelOffset: { x: 0, y: 0 }, showLabel: !0, showGrid: !0, labelInterpolationFnc: b.noop, type: void 0, scaleMinSpace: 20, onlyInteger: !1 }, width: void 0, height: void 0, showLine: !0, showPoint: !0, showArea: !1, areaBase: 0, lineSmooth: !0, showGridBackground: !1, low: void 0, high: void 0, chartPadding: { top: 15, right: 15, bottom: 5, left: 10 }, fullWidth: !1, reverseData: !1, classNames: { chart: "ct-chart-line", label: "ct-label", labelGroup: "ct-labels", series: "ct-series", line: "ct-line", point: "ct-point", area: "ct-area", grid: "ct-grid", gridGroup: "ct-grids", gridBackground: "ct-grid-background", vertical: "ct-vertical", horizontal: "ct-horizontal", start: "ct-start", end: "ct-end" } }); b.Line = b.Base.extend({ constructor: d, createChart: c }) }(this || global, a), function (a, b) { + "use strict"; function c(a) { + var c, d; a.distributeSeries ? (c = b.normalizeData(this.data, a.reverseData, a.horizontalBars ? "x" : "y"), c.normalized.series = c.normalized.series.map(function (a) { return [a] })) : c = b.normalizeData(this.data, a.reverseData, a.horizontalBars ? "x" : "y"), this.svg = b.createSvg(this.container, a.width, a.height, a.classNames.chart + (a.horizontalBars ? " " + a.classNames.horizontalBars : "")); var f = this.svg.elem("g").addClass(a.classNames.gridGroup), g = this.svg.elem("g"), h = this.svg.elem("g").addClass(a.classNames.labelGroup); + if (a.stackBars && 0 !== c.normalized.series.length) { var i = b.serialMap(c.normalized.series, function () { return Array.prototype.slice.call(arguments).map(function (a) { return a }).reduce(function (a, b) { return { x: a.x + (b && b.x) || 0, y: a.y + (b && b.y) || 0 } }, { x: 0, y: 0 }) }); d = b.getHighLow([i], a, a.horizontalBars ? "x" : "y") } else d = b.getHighLow(c.normalized.series, a, a.horizontalBars ? "x" : "y"); d.high = +a.high || (0 === a.high ? 0 : d.high), d.low = +a.low || (0 === a.low ? 0 : d.low); var j, k, l, m, n, o = b.createChartRect(this.svg, a, e.padding); k = a.distributeSeries && a.stackBars ? c.normalized.labels.slice(0, 1) : c.normalized.labels, a.horizontalBars ? (j = m = void 0 === a.axisX.type ? new b.AutoScaleAxis(b.Axis.units.x, c.normalized.series, o, b.extend({}, a.axisX, { highLow: d, referenceValue: 0 })) : a.axisX.type.call(b, b.Axis.units.x, c.normalized.series, o, b.extend({}, a.axisX, { highLow: d, referenceValue: 0 })), l = n = void 0 === a.axisY.type ? new b.StepAxis(b.Axis.units.y, c.normalized.series, o, { ticks: k }) : a.axisY.type.call(b, b.Axis.units.y, c.normalized.series, o, a.axisY)) : (l = m = void 0 === a.axisX.type ? new b.StepAxis(b.Axis.units.x, c.normalized.series, o, { ticks: k }) : a.axisX.type.call(b, b.Axis.units.x, c.normalized.series, o, a.axisX), j = n = void 0 === a.axisY.type ? new b.AutoScaleAxis(b.Axis.units.y, c.normalized.series, o, b.extend({}, a.axisY, { highLow: d, referenceValue: 0 })) : a.axisY.type.call(b, b.Axis.units.y, c.normalized.series, o, b.extend({}, a.axisY, { highLow: d, referenceValue: 0 }))); var p = a.horizontalBars ? o.x1 + j.projectValue(0) : o.y1 - j.projectValue(0), q = []; l.createGridAndLabels(f, h, this.supportsForeignObject, a, this.eventEmitter), j.createGridAndLabels(f, h, this.supportsForeignObject, a, this.eventEmitter), a.showGridBackground && b.createGridBackground(f, o, a.classNames.gridBackground, this.eventEmitter), c.raw.series.forEach(function (d, e) { var f, h, i = e - (c.raw.series.length - 1) / 2; f = a.distributeSeries && !a.stackBars ? l.axisLength / c.normalized.series.length / 2 : a.distributeSeries && a.stackBars ? l.axisLength / 2 : l.axisLength / c.normalized.series[e].length / 2, h = g.elem("g"), h.attr({ "ct:series-name": d.name, "ct:meta": b.serialize(d.meta) }), h.addClass([a.classNames.series, d.className || a.classNames.series + "-" + b.alphaNumerate(e)].join(" ")), c.normalized.series[e].forEach(function (g, k) { var r, s, t, u; if (u = a.distributeSeries && !a.stackBars ? e : a.distributeSeries && a.stackBars ? 0 : k, r = a.horizontalBars ? { x: o.x1 + j.projectValue(g && g.x ? g.x : 0, k, c.normalized.series[e]), y: o.y1 - l.projectValue(g && g.y ? g.y : 0, u, c.normalized.series[e]) } : { x: o.x1 + l.projectValue(g && g.x ? g.x : 0, u, c.normalized.series[e]), y: o.y1 - j.projectValue(g && g.y ? g.y : 0, k, c.normalized.series[e]) }, l instanceof b.StepAxis && (l.options.stretch || (r[l.units.pos] += f * (a.horizontalBars ? -1 : 1)), r[l.units.pos] += a.stackBars || a.distributeSeries ? 0 : i * a.seriesBarDistance * (a.horizontalBars ? -1 : 1)), t = q[k] || p, q[k] = t - (p - r[l.counterUnits.pos]), void 0 !== g) { var v = {}; v[l.units.pos + "1"] = r[l.units.pos], v[l.units.pos + "2"] = r[l.units.pos], !a.stackBars || "accumulate" !== a.stackMode && a.stackMode ? (v[l.counterUnits.pos + "1"] = p, v[l.counterUnits.pos + "2"] = r[l.counterUnits.pos]) : (v[l.counterUnits.pos + "1"] = t, v[l.counterUnits.pos + "2"] = q[k]), v.x1 = Math.min(Math.max(v.x1, o.x1), o.x2), v.x2 = Math.min(Math.max(v.x2, o.x1), o.x2), v.y1 = Math.min(Math.max(v.y1, o.y2), o.y1), v.y2 = Math.min(Math.max(v.y2, o.y2), o.y1); var w = b.getMetaData(d, k); s = h.elem("line", v, a.classNames.bar).attr({ "ct:value": [g.x, g.y].filter(b.isNumeric).join(","), "ct:meta": b.serialize(w) }), this.eventEmitter.emit("draw", b.extend({ type: "bar", value: g, index: k, meta: w, series: d, seriesIndex: e, axisX: m, axisY: n, chartRect: o, group: h, element: s }, v)) } }.bind(this)) }.bind(this)), this.eventEmitter.emit("created", { bounds: j.bounds, chartRect: o, axisX: m, axisY: n, svg: this.svg, options: a }) + } function d(a, c, d, f) { b.Bar["super"].constructor.call(this, a, c, e, b.extend({}, e, d), f) } var e = (a.window, a.document, { axisX: { offset: 30, position: "end", labelOffset: { x: 0, y: 0 }, showLabel: !0, showGrid: !0, labelInterpolationFnc: b.noop, scaleMinSpace: 30, onlyInteger: !1 }, axisY: { offset: 40, position: "start", labelOffset: { x: 0, y: 0 }, showLabel: !0, showGrid: !0, labelInterpolationFnc: b.noop, scaleMinSpace: 20, onlyInteger: !1 }, width: void 0, height: void 0, high: void 0, low: void 0, referenceValue: 0, chartPadding: { top: 15, right: 15, bottom: 5, left: 10 }, seriesBarDistance: 15, stackBars: !1, stackMode: "accumulate", horizontalBars: !1, distributeSeries: !1, reverseData: !1, showGridBackground: !1, classNames: { chart: "ct-chart-bar", horizontalBars: "ct-horizontal-bars", label: "ct-label", labelGroup: "ct-labels", series: "ct-series", bar: "ct-bar", grid: "ct-grid", gridGroup: "ct-grids", gridBackground: "ct-grid-background", vertical: "ct-vertical", horizontal: "ct-horizontal", start: "ct-start", end: "ct-end" } }); b.Bar = b.Base.extend({ constructor: d, createChart: c }) + }(this || global, a), function (a, b) { "use strict"; function c(a, b, c) { var d = b.x > a.x; return d && "explode" === c || !d && "implode" === c ? "start" : d && "implode" === c || !d && "explode" === c ? "end" : "middle" } function d(a) { var d, e, g, h, i, j = b.normalizeData(this.data), k = [], l = a.startAngle; this.svg = b.createSvg(this.container, a.width, a.height, a.donut ? a.classNames.chartDonut : a.classNames.chartPie), e = b.createChartRect(this.svg, a, f.padding), g = Math.min(e.width() / 2, e.height() / 2), i = a.total || j.normalized.series.reduce(function (a, b) { return a + b }, 0); var m = b.quantity(a.donutWidth); "%" === m.unit && (m.value *= g / 100), g -= a.donut && !a.donutSolid ? m.value / 2 : 0, h = "outside" === a.labelPosition || a.donut && !a.donutSolid ? g : "center" === a.labelPosition ? 0 : a.donutSolid ? g - m.value / 2 : g / 2, h += a.labelOffset; var n = { x: e.x1 + e.width() / 2, y: e.y2 + e.height() / 2 }, o = 1 === j.raw.series.filter(function (a) { return a.hasOwnProperty("value") ? 0 !== a.value : 0 !== a }).length; j.raw.series.forEach(function (a, b) { k[b] = this.svg.elem("g", null, null) }.bind(this)), a.showLabel && (d = this.svg.elem("g", null, null)), j.raw.series.forEach(function (e, f) { if (0 !== j.normalized.series[f] || !a.ignoreEmptyValues) { k[f].attr({ "ct:series-name": e.name }), k[f].addClass([a.classNames.series, e.className || a.classNames.series + "-" + b.alphaNumerate(f)].join(" ")); var p = i > 0 ? l + j.normalized.series[f] / i * 360 : 0, q = Math.max(0, l - (0 === f || o ? 0 : .2)); p - q >= 359.99 && (p = q + 359.99); var r, s, t, u = b.polarToCartesian(n.x, n.y, g, q), v = b.polarToCartesian(n.x, n.y, g, p), w = new b.Svg.Path(!a.donut || a.donutSolid).move(v.x, v.y).arc(g, g, 0, p - l > 180, 0, u.x, u.y); a.donut ? a.donutSolid && (t = g - m.value, r = b.polarToCartesian(n.x, n.y, t, l - (0 === f || o ? 0 : .2)), s = b.polarToCartesian(n.x, n.y, t, p), w.line(r.x, r.y), w.arc(t, t, 0, p - l > 180, 1, s.x, s.y)) : w.line(n.x, n.y); var x = a.classNames.slicePie; a.donut && (x = a.classNames.sliceDonut, a.donutSolid && (x = a.classNames.sliceDonutSolid)); var y = k[f].elem("path", { d: w.stringify() }, x); if (y.attr({ "ct:value": j.normalized.series[f], "ct:meta": b.serialize(e.meta) }), a.donut && !a.donutSolid && (y._node.style.strokeWidth = m.value + "px"), this.eventEmitter.emit("draw", { type: "slice", value: j.normalized.series[f], totalDataSum: i, index: f, meta: e.meta, series: e, group: k[f], element: y, path: w.clone(), center: n, radius: g, startAngle: l, endAngle: p }), a.showLabel) { var z; z = 1 === j.raw.series.length ? { x: n.x, y: n.y } : b.polarToCartesian(n.x, n.y, h, l + (p - l) / 2); var A; A = j.normalized.labels && !b.isFalseyButZero(j.normalized.labels[f]) ? j.normalized.labels[f] : j.normalized.series[f]; var B = a.labelInterpolationFnc(A, f); if (B || 0 === B) { var C = d.elem("text", { dx: z.x, dy: z.y, "text-anchor": c(n, z, a.labelDirection) }, a.classNames.label).text("" + B); this.eventEmitter.emit("draw", { type: "label", index: f, group: d, element: C, text: "" + B, x: z.x, y: z.y }) } } l = p } }.bind(this)), this.eventEmitter.emit("created", { chartRect: e, svg: this.svg, options: a }) } function e(a, c, d, e) { b.Pie["super"].constructor.call(this, a, c, f, b.extend({}, f, d), e) } var f = (a.window, a.document, { width: void 0, height: void 0, chartPadding: 5, classNames: { chartPie: "ct-chart-pie", chartDonut: "ct-chart-donut", series: "ct-series", slicePie: "ct-slice-pie", sliceDonut: "ct-slice-donut", sliceDonutSolid: "ct-slice-donut-solid", label: "ct-label" }, startAngle: 0, total: void 0, donut: !1, donutSolid: !1, donutWidth: 60, showLabel: !0, labelOffset: 0, labelPosition: "inside", labelInterpolationFnc: b.noop, labelDirection: "neutral", reverseData: !1, ignoreEmptyValues: !1 }); b.Pie = b.Base.extend({ constructor: e, createChart: d, determineAnchorPosition: c }) }(this || global, a), a +}); +//# sourceMappingURL=chartist.min.js.map + +var i, l, selectedLine = null; + +/* Navigate to hash without browser history entry */ +var navigateToHash = function () { + if (window.history !== undefined && window.history.replaceState !== undefined) { + window.history.replaceState(undefined, undefined, this.getAttribute("href")); + } +}; + +var hashLinks = document.getElementsByClassName('navigatetohash'); +for (i = 0, l = hashLinks.length; i < l; i++) { + hashLinks[i].addEventListener('click', navigateToHash); +} + +/* Switch test method */ +var switchTestMethod = function () { + var method = this.getAttribute("value"); + console.log("Selected test method: " + method); + + var lines, i, l, coverageData, lineAnalysis, cells; + + lines = document.querySelectorAll('.lineAnalysis tr'); + + for (i = 1, l = lines.length; i < l; i++) { + coverageData = JSON.parse(lines[i].getAttribute('data-coverage').replace(/'/g, '"')); + lineAnalysis = coverageData[method]; + cells = lines[i].querySelectorAll('td'); + if (lineAnalysis === undefined) { + lineAnalysis = coverageData.AllTestMethods; + if (lineAnalysis.LVS !== 'gray') { + cells[0].setAttribute('class', 'red'); + cells[1].innerText = cells[1].textContent = '0'; + cells[4].setAttribute('class', 'lightred'); + } + } else { + cells[0].setAttribute('class', lineAnalysis.LVS); + cells[1].innerText = cells[1].textContent = lineAnalysis.VC; + cells[4].setAttribute('class', 'light' + lineAnalysis.LVS); + } + } +}; + +var testMethods = document.getElementsByClassName('switchtestmethod'); +for (i = 0, l = testMethods.length; i < l; i++) { + testMethods[i].addEventListener('change', switchTestMethod); +} + +/* Highlight test method by line */ +var toggleLine = function () { + if (selectedLine === this) { + selectedLine = null; + } else { + selectedLine = null; + unhighlightTestMethods(); + highlightTestMethods.call(this); + selectedLine = this; + } + +}; +var highlightTestMethods = function () { + if (selectedLine !== null) { + return; + } + + var lineAnalysis; + var coverageData = JSON.parse(this.getAttribute('data-coverage').replace(/'/g, '"')); + var testMethods = document.getElementsByClassName('testmethod'); + + for (i = 0, l = testMethods.length; i < l; i++) { + lineAnalysis = coverageData[testMethods[i].id]; + if (lineAnalysis === undefined) { + testMethods[i].className = testMethods[i].className.replace(/\s*light.+/g, ""); + } else { + testMethods[i].className += ' light' + lineAnalysis.LVS; + } + } +}; +var unhighlightTestMethods = function () { + if (selectedLine !== null) { + return; + } + + var testMethods = document.getElementsByClassName('testmethod'); + for (i = 0, l = testMethods.length; i < l; i++) { + testMethods[i].className = testMethods[i].className.replace(/\s*light.+/g, ""); + } +}; +var coverableLines = document.getElementsByClassName('coverableline'); +for (i = 0, l = coverableLines.length; i < l; i++) { + coverableLines[i].addEventListener('click', toggleLine); + coverableLines[i].addEventListener('mouseenter', highlightTestMethods); + coverableLines[i].addEventListener('mouseleave', unhighlightTestMethods); +} + +/* History charts */ +var renderChart = function (chart) { + // Remove current children (e.g. PNG placeholder) + while (chart.firstChild) { + chart.firstChild.remove(); + } + + var chartData = window[chart.getAttribute('data-data')]; + var options = { + axisY: { + type: undefined, + onlyInteger: true + }, + lineSmooth: false, + low: 0, + high: 100, + scaleMinSpace: 20, + onlyInteger: true, + fullWidth: true + }; + var lineChart = new Chartist.Line(chart, { + labels: [], + series: chartData.series + }, options); + + /* Zoom */ + var zoomButtonDiv = document.createElement("div"); + zoomButtonDiv.className = "toggleZoom"; + var zoomButtonLink = document.createElement("a"); + zoomButtonLink.setAttribute("href", ""); + var zoomButtonText = document.createElement("i"); + zoomButtonText.className = "icon-search-plus"; + + zoomButtonLink.appendChild(zoomButtonText); + zoomButtonDiv.appendChild(zoomButtonLink); + + chart.appendChild(zoomButtonDiv); + + zoomButtonDiv.addEventListener('click', function (event) { + event.preventDefault(); + + if (options.axisY.type === undefined) { + options.axisY.type = Chartist.AutoScaleAxis; + zoomButtonText.className = "icon-search-minus"; + } else { + options.axisY.type = undefined; + zoomButtonText.className = "icon-search-plus"; + } + + lineChart.update(null, options); + }); + + var tooltip = document.createElement("div"); + tooltip.className = "tooltip"; + + chart.appendChild(tooltip); + + /* Tooltips */ + var showToolTip = function () { + var index = this.getAttribute('ct:meta'); + + tooltip.innerHTML = chartData.tooltips[index]; + tooltip.style.display = 'block'; + }; + + var moveToolTip = function (event) { + var box = chart.getBoundingClientRect(); + var left = event.pageX - box.left - window.pageXOffset; + var top = event.pageY - box.top - window.pageYOffset; + + left = left + 20; + top = top - tooltip.offsetHeight / 2; + + if (left + tooltip.offsetWidth > box.width) { + left -= tooltip.offsetWidth + 40; + } + + if (top < 0) { + top = 0; + } + + if (top + tooltip.offsetHeight > box.height) { + top = box.height - tooltip.offsetHeight; + } + + tooltip.style.left = left + 'px'; + tooltip.style.top = top + 'px'; + }; + + var hideToolTip = function () { + tooltip.style.display = 'none'; + }; + chart.addEventListener('mousemove', moveToolTip); + + lineChart.on('created', function () { + var chartPoints = chart.getElementsByClassName('ct-point'); + for (i = 0, l = chartPoints.length; i < l; i++) { + chartPoints[i].addEventListener('mousemove', showToolTip); + chartPoints[i].addEventListener('mouseout', hideToolTip); + } + }); +}; + +var charts = document.getElementsByClassName('historychart'); +for (i = 0, l = charts.length; i < l; i++) { + renderChart(charts[i]); +} \ No newline at end of file diff --git a/docs/resources/reports/Html_Light/icon_cog.svg b/docs/resources/reports/Html_Light/icon_cog.svg new file mode 100644 index 00000000..d730bf12 --- /dev/null +++ b/docs/resources/reports/Html_Light/icon_cog.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/resources/reports/Html_Light/icon_cube.svg b/docs/resources/reports/Html_Light/icon_cube.svg new file mode 100644 index 00000000..3302443c --- /dev/null +++ b/docs/resources/reports/Html_Light/icon_cube.svg @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/docs/resources/reports/Html_Light/icon_down-dir_active.svg b/docs/resources/reports/Html_Light/icon_down-dir_active.svg new file mode 100644 index 00000000..d11cf041 --- /dev/null +++ b/docs/resources/reports/Html_Light/icon_down-dir_active.svg @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/docs/resources/reports/Html_Light/icon_fork.svg b/docs/resources/reports/Html_Light/icon_fork.svg new file mode 100644 index 00000000..f0148b3a --- /dev/null +++ b/docs/resources/reports/Html_Light/icon_fork.svg @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/docs/resources/reports/Html_Light/icon_info-circled.svg b/docs/resources/reports/Html_Light/icon_info-circled.svg new file mode 100644 index 00000000..252166bb --- /dev/null +++ b/docs/resources/reports/Html_Light/icon_info-circled.svg @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/docs/resources/reports/Html_Light/icon_minus.svg b/docs/resources/reports/Html_Light/icon_minus.svg new file mode 100644 index 00000000..3c30c365 --- /dev/null +++ b/docs/resources/reports/Html_Light/icon_minus.svg @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/docs/resources/reports/Html_Light/icon_plus.svg b/docs/resources/reports/Html_Light/icon_plus.svg new file mode 100644 index 00000000..79327232 --- /dev/null +++ b/docs/resources/reports/Html_Light/icon_plus.svg @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/docs/resources/reports/Html_Light/icon_search-minus.svg b/docs/resources/reports/Html_Light/icon_search-minus.svg new file mode 100644 index 00000000..c174eb5e --- /dev/null +++ b/docs/resources/reports/Html_Light/icon_search-minus.svg @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/docs/resources/reports/Html_Light/icon_search-plus.svg b/docs/resources/reports/Html_Light/icon_search-plus.svg new file mode 100644 index 00000000..04b24ecc --- /dev/null +++ b/docs/resources/reports/Html_Light/icon_search-plus.svg @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/docs/resources/reports/Html_Light/icon_sponsor.svg b/docs/resources/reports/Html_Light/icon_sponsor.svg new file mode 100644 index 00000000..bf6d9591 --- /dev/null +++ b/docs/resources/reports/Html_Light/icon_sponsor.svg @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/docs/resources/reports/Html_Light/icon_star.svg b/docs/resources/reports/Html_Light/icon_star.svg new file mode 100644 index 00000000..b23c54ea --- /dev/null +++ b/docs/resources/reports/Html_Light/icon_star.svg @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/docs/resources/reports/Html_Light/icon_up-dir.svg b/docs/resources/reports/Html_Light/icon_up-dir.svg new file mode 100644 index 00000000..567c11f3 --- /dev/null +++ b/docs/resources/reports/Html_Light/icon_up-dir.svg @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/docs/resources/reports/Html_Light/icon_up-dir_active.svg b/docs/resources/reports/Html_Light/icon_up-dir_active.svg new file mode 100644 index 00000000..bb225544 --- /dev/null +++ b/docs/resources/reports/Html_Light/icon_up-dir_active.svg @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/docs/resources/reports/Html_Light/icon_wrench.svg b/docs/resources/reports/Html_Light/icon_wrench.svg new file mode 100644 index 00000000..b6aa318c --- /dev/null +++ b/docs/resources/reports/Html_Light/icon_wrench.svg @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/docs/resources/reports/Html_Light/index.html b/docs/resources/reports/Html_Light/index.html new file mode 100644 index 00000000..7cacee36 --- /dev/null +++ b/docs/resources/reports/Html_Light/index.html @@ -0,0 +1,207 @@ + + + + + + + +Summary - Coverage Report + +
+

SummaryStarSponsor

+
+
+
Information
+
+
+ + + + + + + + + + + + + + + + + +
Parser:OpenCover
Assemblies:1
Classes:4
Files:5
+
+
+
+
+
Line coverage
+
+
66%
+
+ + + + + + + + + + + + + + + + + + + + + +
Covered lines:83
Uncovered lines:42
Coverable lines:125
Total lines:260
Line coverage:66.4%
+
+
+
+
+
Branch coverage
+
+
50%
+
+ + + + + + + + + + + + + +
Covered branches:3
Total branches:6
Branch coverage:50%
+
+
+
+
+
Method coverage
+
+
58%
+
+ + + + + + + + + + + + + +
Covered methods:14
Total methods:24
Method coverage:58.3%
+
+
+
+
+

Coverage history

+
+ +

Risk Hotspots

+ + +

No risk hotspots found.

+

Coverage

+ +
+ +++++++++++++++++ + + + + + + + + + + +
Line coverageBranch coverageMethod coverage
NameCoveredUncoveredCoverableTotalPercentageCoveredTotalPercentageCoveredTotalPercentage
Sample834212526066.4%
  
3650%
  
142458.3%
  
Sample.PartialClass1210225354.5%
  
1250%
  
3650%
  
Sample.TestClass129213857.1%
  
1250%
  
1250%
  
Test.Program359448479.5%
  
00
 
4666.6%
  
Test.TestClass22414388563.1%
  
1250%
  
61060%
  
+
+
+
+ + \ No newline at end of file diff --git a/docs/resources/reports/Html_Light/main.js b/docs/resources/reports/Html_Light/main.js new file mode 100644 index 00000000..11854824 --- /dev/null +++ b/docs/resources/reports/Html_Light/main.js @@ -0,0 +1,290 @@ +/* Chartist.js 0.11.4 + * Copyright © 2019 Gion Kunz + * Free to use under either the WTFPL license or the MIT license. + * https://raw.githubusercontent.com/gionkunz/chartist-js/master/LICENSE-WTFPL + * https://raw.githubusercontent.com/gionkunz/chartist-js/master/LICENSE-MIT + */ + +!function (a, b) { "function" == typeof define && define.amd ? define("Chartist", [], function () { return a.Chartist = b() }) : "object" == typeof module && module.exports ? module.exports = b() : a.Chartist = b() }(this, function () { + var a = { version: "0.11.4" }; return function (a, b) { "use strict"; var c = a.window, d = a.document; b.namespaces = { svg: "http://www.w3.org/2000/svg", xmlns: "http://www.w3.org/2000/xmlns/", xhtml: "http://www.w3.org/1999/xhtml", xlink: "http://www.w3.org/1999/xlink", ct: "http://gionkunz.github.com/chartist-js/ct" }, b.noop = function (a) { return a }, b.alphaNumerate = function (a) { return String.fromCharCode(97 + a % 26) }, b.extend = function (a) { var c, d, e; for (a = a || {}, c = 1; c < arguments.length; c++) { d = arguments[c]; for (var f in d) e = d[f], "object" != typeof e || null === e || e instanceof Array ? a[f] = e : a[f] = b.extend(a[f], e) } return a }, b.replaceAll = function (a, b, c) { return a.replace(new RegExp(b, "g"), c) }, b.ensureUnit = function (a, b) { return "number" == typeof a && (a += b), a }, b.quantity = function (a) { if ("string" == typeof a) { var b = /^(\d+)\s*(.*)$/g.exec(a); return { value: +b[1], unit: b[2] || void 0 } } return { value: a } }, b.querySelector = function (a) { return a instanceof Node ? a : d.querySelector(a) }, b.times = function (a) { return Array.apply(null, new Array(a)) }, b.sum = function (a, b) { return a + (b ? b : 0) }, b.mapMultiply = function (a) { return function (b) { return b * a } }, b.mapAdd = function (a) { return function (b) { return b + a } }, b.serialMap = function (a, c) { var d = [], e = Math.max.apply(null, a.map(function (a) { return a.length })); return b.times(e).forEach(function (b, e) { var f = a.map(function (a) { return a[e] }); d[e] = c.apply(null, f) }), d }, b.roundWithPrecision = function (a, c) { var d = Math.pow(10, c || b.precision); return Math.round(a * d) / d }, b.precision = 8, b.escapingMap = { "&": "&", "<": "<", ">": ">", '"': """, "'": "'" }, b.serialize = function (a) { return null === a || void 0 === a ? a : ("number" == typeof a ? a = "" + a : "object" == typeof a && (a = JSON.stringify({ data: a })), Object.keys(b.escapingMap).reduce(function (a, c) { return b.replaceAll(a, c, b.escapingMap[c]) }, a)) }, b.deserialize = function (a) { if ("string" != typeof a) return a; a = Object.keys(b.escapingMap).reduce(function (a, c) { return b.replaceAll(a, b.escapingMap[c], c) }, a); try { a = JSON.parse(a), a = void 0 !== a.data ? a.data : a } catch (c) { } return a }, b.createSvg = function (a, c, d, e) { var f; return c = c || "100%", d = d || "100%", Array.prototype.slice.call(a.querySelectorAll("svg")).filter(function (a) { return a.getAttributeNS(b.namespaces.xmlns, "ct") }).forEach(function (b) { a.removeChild(b) }), f = new b.Svg("svg").attr({ width: c, height: d }).addClass(e), f._node.style.width = c, f._node.style.height = d, a.appendChild(f._node), f }, b.normalizeData = function (a, c, d) { var e, f = { raw: a, normalized: {} }; return f.normalized.series = b.getDataArray({ series: a.series || [] }, c, d), e = f.normalized.series.every(function (a) { return a instanceof Array }) ? Math.max.apply(null, f.normalized.series.map(function (a) { return a.length })) : f.normalized.series.length, f.normalized.labels = (a.labels || []).slice(), Array.prototype.push.apply(f.normalized.labels, b.times(Math.max(0, e - f.normalized.labels.length)).map(function () { return "" })), c && b.reverseData(f.normalized), f }, b.safeHasProperty = function (a, b) { return null !== a && "object" == typeof a && a.hasOwnProperty(b) }, b.isDataHoleValue = function (a) { return null === a || void 0 === a || "number" == typeof a && isNaN(a) }, b.reverseData = function (a) { a.labels.reverse(), a.series.reverse(); for (var b = 0; b < a.series.length; b++)"object" == typeof a.series[b] && void 0 !== a.series[b].data ? a.series[b].data.reverse() : a.series[b] instanceof Array && a.series[b].reverse() }, b.getDataArray = function (a, c, d) { function e(a) { if (b.safeHasProperty(a, "value")) return e(a.value); if (b.safeHasProperty(a, "data")) return e(a.data); if (a instanceof Array) return a.map(e); if (!b.isDataHoleValue(a)) { if (d) { var c = {}; return "string" == typeof d ? c[d] = b.getNumberOrUndefined(a) : c.y = b.getNumberOrUndefined(a), c.x = a.hasOwnProperty("x") ? b.getNumberOrUndefined(a.x) : c.x, c.y = a.hasOwnProperty("y") ? b.getNumberOrUndefined(a.y) : c.y, c } return b.getNumberOrUndefined(a) } } return a.series.map(e) }, b.normalizePadding = function (a, b) { return b = b || 0, "number" == typeof a ? { top: a, right: a, bottom: a, left: a } : { top: "number" == typeof a.top ? a.top : b, right: "number" == typeof a.right ? a.right : b, bottom: "number" == typeof a.bottom ? a.bottom : b, left: "number" == typeof a.left ? a.left : b } }, b.getMetaData = function (a, b) { var c = a.data ? a.data[b] : a[b]; return c ? c.meta : void 0 }, b.orderOfMagnitude = function (a) { return Math.floor(Math.log(Math.abs(a)) / Math.LN10) }, b.projectLength = function (a, b, c) { return b / c.range * a }, b.getAvailableHeight = function (a, c) { return Math.max((b.quantity(c.height).value || a.height()) - (c.chartPadding.top + c.chartPadding.bottom) - c.axisX.offset, 0) }, b.getHighLow = function (a, c, d) { function e(a) { if (void 0 !== a) if (a instanceof Array) for (var b = 0; b < a.length; b++)e(a[b]); else { var c = d ? +a[d] : +a; g && c > f.high && (f.high = c), h && c < f.low && (f.low = c) } } c = b.extend({}, c, d ? c["axis" + d.toUpperCase()] : {}); var f = { high: void 0 === c.high ? -Number.MAX_VALUE : +c.high, low: void 0 === c.low ? Number.MAX_VALUE : +c.low }, g = void 0 === c.high, h = void 0 === c.low; return (g || h) && e(a), (c.referenceValue || 0 === c.referenceValue) && (f.high = Math.max(c.referenceValue, f.high), f.low = Math.min(c.referenceValue, f.low)), f.high <= f.low && (0 === f.low ? f.high = 1 : f.low < 0 ? f.high = 0 : f.high > 0 ? f.low = 0 : (f.high = 1, f.low = 0)), f }, b.isNumeric = function (a) { return null !== a && isFinite(a) }, b.isFalseyButZero = function (a) { return !a && 0 !== a }, b.getNumberOrUndefined = function (a) { return b.isNumeric(a) ? +a : void 0 }, b.isMultiValue = function (a) { return "object" == typeof a && ("x" in a || "y" in a) }, b.getMultiValue = function (a, c) { return b.isMultiValue(a) ? b.getNumberOrUndefined(a[c || "y"]) : b.getNumberOrUndefined(a) }, b.rho = function (a) { function b(a, c) { return a % c === 0 ? c : b(c, a % c) } function c(a) { return a * a + 1 } if (1 === a) return a; var d, e = 2, f = 2; if (a % 2 === 0) return 2; do e = c(e) % a, f = c(c(f)) % a, d = b(Math.abs(e - f), a); while (1 === d); return d }, b.getBounds = function (a, c, d, e) { function f(a, b) { return a === (a += b) && (a *= 1 + (b > 0 ? o : -o)), a } var g, h, i, j = 0, k = { high: c.high, low: c.low }; k.valueRange = k.high - k.low, k.oom = b.orderOfMagnitude(k.valueRange), k.step = Math.pow(10, k.oom), k.min = Math.floor(k.low / k.step) * k.step, k.max = Math.ceil(k.high / k.step) * k.step, k.range = k.max - k.min, k.numberOfSteps = Math.round(k.range / k.step); var l = b.projectLength(a, k.step, k), m = l < d, n = e ? b.rho(k.range) : 0; if (e && b.projectLength(a, 1, k) >= d) k.step = 1; else if (e && n < k.step && b.projectLength(a, n, k) >= d) k.step = n; else for (; ;) { if (m && b.projectLength(a, k.step, k) <= d) k.step *= 2; else { if (m || !(b.projectLength(a, k.step / 2, k) >= d)) break; if (k.step /= 2, e && k.step % 1 !== 0) { k.step *= 2; break } } if (j++ > 1e3) throw new Error("Exceeded maximum number of iterations while optimizing scale step!") } var o = 2.221e-16; for (k.step = Math.max(k.step, o), h = k.min, i = k.max; h + k.step <= k.low;)h = f(h, k.step); for (; i - k.step >= k.high;)i = f(i, -k.step); k.min = h, k.max = i, k.range = k.max - k.min; var p = []; for (g = k.min; g <= k.max; g = f(g, k.step)) { var q = b.roundWithPrecision(g); q !== p[p.length - 1] && p.push(q) } return k.values = p, k }, b.polarToCartesian = function (a, b, c, d) { var e = (d - 90) * Math.PI / 180; return { x: a + c * Math.cos(e), y: b + c * Math.sin(e) } }, b.createChartRect = function (a, c, d) { var e = !(!c.axisX && !c.axisY), f = e ? c.axisY.offset : 0, g = e ? c.axisX.offset : 0, h = a.width() || b.quantity(c.width).value || 0, i = a.height() || b.quantity(c.height).value || 0, j = b.normalizePadding(c.chartPadding, d); h = Math.max(h, f + j.left + j.right), i = Math.max(i, g + j.top + j.bottom); var k = { padding: j, width: function () { return this.x2 - this.x1 }, height: function () { return this.y1 - this.y2 } }; return e ? ("start" === c.axisX.position ? (k.y2 = j.top + g, k.y1 = Math.max(i - j.bottom, k.y2 + 1)) : (k.y2 = j.top, k.y1 = Math.max(i - j.bottom - g, k.y2 + 1)), "start" === c.axisY.position ? (k.x1 = j.left + f, k.x2 = Math.max(h - j.right, k.x1 + 1)) : (k.x1 = j.left, k.x2 = Math.max(h - j.right - f, k.x1 + 1))) : (k.x1 = j.left, k.x2 = Math.max(h - j.right, k.x1 + 1), k.y2 = j.top, k.y1 = Math.max(i - j.bottom, k.y2 + 1)), k }, b.createGrid = function (a, c, d, e, f, g, h, i) { var j = {}; j[d.units.pos + "1"] = a, j[d.units.pos + "2"] = a, j[d.counterUnits.pos + "1"] = e, j[d.counterUnits.pos + "2"] = e + f; var k = g.elem("line", j, h.join(" ")); i.emit("draw", b.extend({ type: "grid", axis: d, index: c, group: g, element: k }, j)) }, b.createGridBackground = function (a, b, c, d) { var e = a.elem("rect", { x: b.x1, y: b.y2, width: b.width(), height: b.height() }, c, !0); d.emit("draw", { type: "gridBackground", group: a, element: e }) }, b.createLabel = function (a, c, e, f, g, h, i, j, k, l, m) { var n, o = {}; if (o[g.units.pos] = a + i[g.units.pos], o[g.counterUnits.pos] = i[g.counterUnits.pos], o[g.units.len] = c, o[g.counterUnits.len] = Math.max(0, h - 10), l) { var p = d.createElement("span"); p.className = k.join(" "), p.setAttribute("xmlns", b.namespaces.xhtml), p.innerText = f[e], p.style[g.units.len] = Math.round(o[g.units.len]) + "px", p.style[g.counterUnits.len] = Math.round(o[g.counterUnits.len]) + "px", n = j.foreignObject(p, b.extend({ style: "overflow: visible;" }, o)) } else n = j.elem("text", o, k.join(" ")).text(f[e]); m.emit("draw", b.extend({ type: "label", axis: g, index: e, group: j, element: n, text: f[e] }, o)) }, b.getSeriesOption = function (a, b, c) { if (a.name && b.series && b.series[a.name]) { var d = b.series[a.name]; return d.hasOwnProperty(c) ? d[c] : b[c] } return b[c] }, b.optionsProvider = function (a, d, e) { function f(a) { var f = h; if (h = b.extend({}, j), d) for (i = 0; i < d.length; i++) { var g = c.matchMedia(d[i][0]); g.matches && (h = b.extend(h, d[i][1])) } e && a && e.emit("optionsChanged", { previousOptions: f, currentOptions: h }) } function g() { k.forEach(function (a) { a.removeListener(f) }) } var h, i, j = b.extend({}, a), k = []; if (!c.matchMedia) throw "window.matchMedia not found! Make sure you're using a polyfill."; if (d) for (i = 0; i < d.length; i++) { var l = c.matchMedia(d[i][0]); l.addListener(f), k.push(l) } return f(), { removeMediaQueryListeners: g, getCurrentOptions: function () { return b.extend({}, h) } } }, b.splitIntoSegments = function (a, c, d) { var e = { increasingX: !1, fillHoles: !1 }; d = b.extend({}, e, d); for (var f = [], g = !0, h = 0; h < a.length; h += 2)void 0 === b.getMultiValue(c[h / 2].value) ? d.fillHoles || (g = !0) : (d.increasingX && h >= 2 && a[h] <= a[h - 2] && (g = !0), g && (f.push({ pathCoordinates: [], valueData: [] }), g = !1), f[f.length - 1].pathCoordinates.push(a[h], a[h + 1]), f[f.length - 1].valueData.push(c[h / 2])); return f } }(this || global, a), function (a, b) { "use strict"; b.Interpolation = {}, b.Interpolation.none = function (a) { var c = { fillHoles: !1 }; return a = b.extend({}, c, a), function (c, d) { for (var e = new b.Svg.Path, f = !0, g = 0; g < c.length; g += 2) { var h = c[g], i = c[g + 1], j = d[g / 2]; void 0 !== b.getMultiValue(j.value) ? (f ? e.move(h, i, !1, j) : e.line(h, i, !1, j), f = !1) : a.fillHoles || (f = !0) } return e } }, b.Interpolation.simple = function (a) { var c = { divisor: 2, fillHoles: !1 }; a = b.extend({}, c, a); var d = 1 / Math.max(1, a.divisor); return function (c, e) { for (var f, g, h, i = new b.Svg.Path, j = 0; j < c.length; j += 2) { var k = c[j], l = c[j + 1], m = (k - f) * d, n = e[j / 2]; void 0 !== n.value ? (void 0 === h ? i.move(k, l, !1, n) : i.curve(f + m, g, k - m, l, k, l, !1, n), f = k, g = l, h = n) : a.fillHoles || (f = k = h = void 0) } return i } }, b.Interpolation.cardinal = function (a) { var c = { tension: 1, fillHoles: !1 }; a = b.extend({}, c, a); var d = Math.min(1, Math.max(0, a.tension)), e = 1 - d; return function f(c, g) { var h = b.splitIntoSegments(c, g, { fillHoles: a.fillHoles }); if (h.length) { if (h.length > 1) { var i = []; return h.forEach(function (a) { i.push(f(a.pathCoordinates, a.valueData)) }), b.Svg.Path.join(i) } if (c = h[0].pathCoordinates, g = h[0].valueData, c.length <= 4) return b.Interpolation.none()(c, g); for (var j, k = (new b.Svg.Path).move(c[0], c[1], !1, g[0]), l = 0, m = c.length; m - 2 * !j > l; l += 2) { var n = [{ x: +c[l - 2], y: +c[l - 1] }, { x: +c[l], y: +c[l + 1] }, { x: +c[l + 2], y: +c[l + 3] }, { x: +c[l + 4], y: +c[l + 5] }]; j ? l ? m - 4 === l ? n[3] = { x: +c[0], y: +c[1] } : m - 2 === l && (n[2] = { x: +c[0], y: +c[1] }, n[3] = { x: +c[2], y: +c[3] }) : n[0] = { x: +c[m - 2], y: +c[m - 1] } : m - 4 === l ? n[3] = n[2] : l || (n[0] = { x: +c[l], y: +c[l + 1] }), k.curve(d * (-n[0].x + 6 * n[1].x + n[2].x) / 6 + e * n[2].x, d * (-n[0].y + 6 * n[1].y + n[2].y) / 6 + e * n[2].y, d * (n[1].x + 6 * n[2].x - n[3].x) / 6 + e * n[2].x, d * (n[1].y + 6 * n[2].y - n[3].y) / 6 + e * n[2].y, n[2].x, n[2].y, !1, g[(l + 2) / 2]) } return k } return b.Interpolation.none()([]) } }, b.Interpolation.monotoneCubic = function (a) { var c = { fillHoles: !1 }; return a = b.extend({}, c, a), function d(c, e) { var f = b.splitIntoSegments(c, e, { fillHoles: a.fillHoles, increasingX: !0 }); if (f.length) { if (f.length > 1) { var g = []; return f.forEach(function (a) { g.push(d(a.pathCoordinates, a.valueData)) }), b.Svg.Path.join(g) } if (c = f[0].pathCoordinates, e = f[0].valueData, c.length <= 4) return b.Interpolation.none()(c, e); var h, i, j = [], k = [], l = c.length / 2, m = [], n = [], o = [], p = []; for (h = 0; h < l; h++)j[h] = c[2 * h], k[h] = c[2 * h + 1]; for (h = 0; h < l - 1; h++)o[h] = k[h + 1] - k[h], p[h] = j[h + 1] - j[h], n[h] = o[h] / p[h]; for (m[0] = n[0], m[l - 1] = n[l - 2], h = 1; h < l - 1; h++)0 === n[h] || 0 === n[h - 1] || n[h - 1] > 0 != n[h] > 0 ? m[h] = 0 : (m[h] = 3 * (p[h - 1] + p[h]) / ((2 * p[h] + p[h - 1]) / n[h - 1] + (p[h] + 2 * p[h - 1]) / n[h]), isFinite(m[h]) || (m[h] = 0)); for (i = (new b.Svg.Path).move(j[0], k[0], !1, e[0]), h = 0; h < l - 1; h++)i.curve(j[h] + p[h] / 3, k[h] + m[h] * p[h] / 3, j[h + 1] - p[h] / 3, k[h + 1] - m[h + 1] * p[h] / 3, j[h + 1], k[h + 1], !1, e[h + 1]); return i } return b.Interpolation.none()([]) } }, b.Interpolation.step = function (a) { var c = { postpone: !0, fillHoles: !1 }; return a = b.extend({}, c, a), function (c, d) { for (var e, f, g, h = new b.Svg.Path, i = 0; i < c.length; i += 2) { var j = c[i], k = c[i + 1], l = d[i / 2]; void 0 !== l.value ? (void 0 === g ? h.move(j, k, !1, l) : (a.postpone ? h.line(j, f, !1, g) : h.line(e, k, !1, l), h.line(j, k, !1, l)), e = j, f = k, g = l) : a.fillHoles || (e = f = g = void 0) } return h } } }(this || global, a), function (a, b) { "use strict"; b.EventEmitter = function () { function a(a, b) { d[a] = d[a] || [], d[a].push(b) } function b(a, b) { d[a] && (b ? (d[a].splice(d[a].indexOf(b), 1), 0 === d[a].length && delete d[a]) : delete d[a]) } function c(a, b) { d[a] && d[a].forEach(function (a) { a(b) }), d["*"] && d["*"].forEach(function (c) { c(a, b) }) } var d = []; return { addEventHandler: a, removeEventHandler: b, emit: c } } }(this || global, a), function (a, b) { "use strict"; function c(a) { var b = []; if (a.length) for (var c = 0; c < a.length; c++)b.push(a[c]); return b } function d(a, c) { var d = c || this.prototype || b.Class, e = Object.create(d); b.Class.cloneDefinitions(e, a); var f = function () { var a, c = e.constructor || function () { }; return a = this === b ? Object.create(e) : this, c.apply(a, Array.prototype.slice.call(arguments, 0)), a }; return f.prototype = e, f["super"] = d, f.extend = this.extend, f } function e() { var a = c(arguments), b = a[0]; return a.splice(1, a.length - 1).forEach(function (a) { Object.getOwnPropertyNames(a).forEach(function (c) { delete b[c], Object.defineProperty(b, c, Object.getOwnPropertyDescriptor(a, c)) }) }), b } b.Class = { extend: d, cloneDefinitions: e } }(this || global, a), function (a, b) { "use strict"; function c(a, c, d) { return a && (this.data = a || {}, this.data.labels = this.data.labels || [], this.data.series = this.data.series || [], this.eventEmitter.emit("data", { type: "update", data: this.data })), c && (this.options = b.extend({}, d ? this.options : this.defaultOptions, c), this.initializeTimeoutId || (this.optionsProvider.removeMediaQueryListeners(), this.optionsProvider = b.optionsProvider(this.options, this.responsiveOptions, this.eventEmitter))), this.initializeTimeoutId || this.createChart(this.optionsProvider.getCurrentOptions()), this } function d() { return this.initializeTimeoutId ? i.clearTimeout(this.initializeTimeoutId) : (i.removeEventListener("resize", this.resizeListener), this.optionsProvider.removeMediaQueryListeners()), this } function e(a, b) { return this.eventEmitter.addEventHandler(a, b), this } function f(a, b) { return this.eventEmitter.removeEventHandler(a, b), this } function g() { i.addEventListener("resize", this.resizeListener), this.optionsProvider = b.optionsProvider(this.options, this.responsiveOptions, this.eventEmitter), this.eventEmitter.addEventHandler("optionsChanged", function () { this.update() }.bind(this)), this.options.plugins && this.options.plugins.forEach(function (a) { a instanceof Array ? a[0](this, a[1]) : a(this) }.bind(this)), this.eventEmitter.emit("data", { type: "initial", data: this.data }), this.createChart(this.optionsProvider.getCurrentOptions()), this.initializeTimeoutId = void 0 } function h(a, c, d, e, f) { this.container = b.querySelector(a), this.data = c || {}, this.data.labels = this.data.labels || [], this.data.series = this.data.series || [], this.defaultOptions = d, this.options = e, this.responsiveOptions = f, this.eventEmitter = b.EventEmitter(), this.supportsForeignObject = b.Svg.isSupported("Extensibility"), this.supportsAnimations = b.Svg.isSupported("AnimationEventsAttribute"), this.resizeListener = function () { this.update() }.bind(this), this.container && (this.container.__chartist__ && this.container.__chartist__.detach(), this.container.__chartist__ = this), this.initializeTimeoutId = setTimeout(g.bind(this), 0) } var i = a.window; b.Base = b.Class.extend({ constructor: h, optionsProvider: void 0, container: void 0, svg: void 0, eventEmitter: void 0, createChart: function () { throw new Error("Base chart type can't be instantiated!") }, update: c, detach: d, on: e, off: f, version: b.version, supportsForeignObject: !1 }) }(this || global, a), function (a, b) { "use strict"; function c(a, c, d, e, f) { a instanceof Element ? this._node = a : (this._node = y.createElementNS(b.namespaces.svg, a), "svg" === a && this.attr({ "xmlns:ct": b.namespaces.ct })), c && this.attr(c), d && this.addClass(d), e && (f && e._node.firstChild ? e._node.insertBefore(this._node, e._node.firstChild) : e._node.appendChild(this._node)) } function d(a, c) { return "string" == typeof a ? c ? this._node.getAttributeNS(c, a) : this._node.getAttribute(a) : (Object.keys(a).forEach(function (c) { if (void 0 !== a[c]) if (c.indexOf(":") !== -1) { var d = c.split(":"); this._node.setAttributeNS(b.namespaces[d[0]], c, a[c]) } else this._node.setAttribute(c, a[c]) }.bind(this)), this) } function e(a, c, d, e) { return new b.Svg(a, c, d, this, e) } function f() { return this._node.parentNode instanceof SVGElement ? new b.Svg(this._node.parentNode) : null } function g() { for (var a = this._node; "svg" !== a.nodeName;)a = a.parentNode; return new b.Svg(a) } function h(a) { var c = this._node.querySelector(a); return c ? new b.Svg(c) : null } function i(a) { var c = this._node.querySelectorAll(a); return c.length ? new b.Svg.List(c) : null } function j() { return this._node } function k(a, c, d, e) { if ("string" == typeof a) { var f = y.createElement("div"); f.innerHTML = a, a = f.firstChild } a.setAttribute("xmlns", b.namespaces.xmlns); var g = this.elem("foreignObject", c, d, e); return g._node.appendChild(a), g } function l(a) { return this._node.appendChild(y.createTextNode(a)), this } function m() { for (; this._node.firstChild;)this._node.removeChild(this._node.firstChild); return this } function n() { return this._node.parentNode.removeChild(this._node), this.parent() } function o(a) { return this._node.parentNode.replaceChild(a._node, this._node), a } function p(a, b) { return b && this._node.firstChild ? this._node.insertBefore(a._node, this._node.firstChild) : this._node.appendChild(a._node), this } function q() { return this._node.getAttribute("class") ? this._node.getAttribute("class").trim().split(/\s+/) : [] } function r(a) { return this._node.setAttribute("class", this.classes(this._node).concat(a.trim().split(/\s+/)).filter(function (a, b, c) { return c.indexOf(a) === b }).join(" ")), this } function s(a) { var b = a.trim().split(/\s+/); return this._node.setAttribute("class", this.classes(this._node).filter(function (a) { return b.indexOf(a) === -1 }).join(" ")), this } function t() { return this._node.setAttribute("class", ""), this } function u() { return this._node.getBoundingClientRect().height } function v() { return this._node.getBoundingClientRect().width } function w(a, c, d) { return void 0 === c && (c = !0), Object.keys(a).forEach(function (e) { function f(a, c) { var f, g, h, i = {}; a.easing && (h = a.easing instanceof Array ? a.easing : b.Svg.Easing[a.easing], delete a.easing), a.begin = b.ensureUnit(a.begin, "ms"), a.dur = b.ensureUnit(a.dur, "ms"), h && (a.calcMode = "spline", a.keySplines = h.join(" "), a.keyTimes = "0;1"), c && (a.fill = "freeze", i[e] = a.from, this.attr(i), g = b.quantity(a.begin || 0).value, a.begin = "indefinite"), f = this.elem("animate", b.extend({ attributeName: e }, a)), c && setTimeout(function () { try { f._node.beginElement() } catch (b) { i[e] = a.to, this.attr(i), f.remove() } }.bind(this), g), d && f._node.addEventListener("beginEvent", function () { d.emit("animationBegin", { element: this, animate: f._node, params: a }) }.bind(this)), f._node.addEventListener("endEvent", function () { d && d.emit("animationEnd", { element: this, animate: f._node, params: a }), c && (i[e] = a.to, this.attr(i), f.remove()) }.bind(this)) } a[e] instanceof Array ? a[e].forEach(function (a) { f.bind(this)(a, !1) }.bind(this)) : f.bind(this)(a[e], c) }.bind(this)), this } function x(a) { var c = this; this.svgElements = []; for (var d = 0; d < a.length; d++)this.svgElements.push(new b.Svg(a[d])); Object.keys(b.Svg.prototype).filter(function (a) { return ["constructor", "parent", "querySelector", "querySelectorAll", "replace", "append", "classes", "height", "width"].indexOf(a) === -1 }).forEach(function (a) { c[a] = function () { var d = Array.prototype.slice.call(arguments, 0); return c.svgElements.forEach(function (c) { b.Svg.prototype[a].apply(c, d) }), c } }) } var y = a.document; b.Svg = b.Class.extend({ constructor: c, attr: d, elem: e, parent: f, root: g, querySelector: h, querySelectorAll: i, getNode: j, foreignObject: k, text: l, empty: m, remove: n, replace: o, append: p, classes: q, addClass: r, removeClass: s, removeAllClasses: t, height: u, width: v, animate: w }), b.Svg.isSupported = function (a) { return y.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#" + a, "1.1") }; var z = { easeInSine: [.47, 0, .745, .715], easeOutSine: [.39, .575, .565, 1], easeInOutSine: [.445, .05, .55, .95], easeInQuad: [.55, .085, .68, .53], easeOutQuad: [.25, .46, .45, .94], easeInOutQuad: [.455, .03, .515, .955], easeInCubic: [.55, .055, .675, .19], easeOutCubic: [.215, .61, .355, 1], easeInOutCubic: [.645, .045, .355, 1], easeInQuart: [.895, .03, .685, .22], easeOutQuart: [.165, .84, .44, 1], easeInOutQuart: [.77, 0, .175, 1], easeInQuint: [.755, .05, .855, .06], easeOutQuint: [.23, 1, .32, 1], easeInOutQuint: [.86, 0, .07, 1], easeInExpo: [.95, .05, .795, .035], easeOutExpo: [.19, 1, .22, 1], easeInOutExpo: [1, 0, 0, 1], easeInCirc: [.6, .04, .98, .335], easeOutCirc: [.075, .82, .165, 1], easeInOutCirc: [.785, .135, .15, .86], easeInBack: [.6, -.28, .735, .045], easeOutBack: [.175, .885, .32, 1.275], easeInOutBack: [.68, -.55, .265, 1.55] }; b.Svg.Easing = z, b.Svg.List = b.Class.extend({ constructor: x }) }(this || global, a), function (a, b) { "use strict"; function c(a, c, d, e, f, g) { var h = b.extend({ command: f ? a.toLowerCase() : a.toUpperCase() }, c, g ? { data: g } : {}); d.splice(e, 0, h) } function d(a, b) { a.forEach(function (c, d) { t[c.command.toLowerCase()].forEach(function (e, f) { b(c, e, d, f, a) }) }) } function e(a, c) { this.pathElements = [], this.pos = 0, this.close = a, this.options = b.extend({}, u, c) } function f(a) { return void 0 !== a ? (this.pos = Math.max(0, Math.min(this.pathElements.length, a)), this) : this.pos } function g(a) { return this.pathElements.splice(this.pos, a), this } function h(a, b, d, e) { return c("M", { x: +a, y: +b }, this.pathElements, this.pos++, d, e), this } function i(a, b, d, e) { return c("L", { x: +a, y: +b }, this.pathElements, this.pos++, d, e), this } function j(a, b, d, e, f, g, h, i) { return c("C", { x1: +a, y1: +b, x2: +d, y2: +e, x: +f, y: +g }, this.pathElements, this.pos++, h, i), this } function k(a, b, d, e, f, g, h, i, j) { return c("A", { rx: +a, ry: +b, xAr: +d, lAf: +e, sf: +f, x: +g, y: +h }, this.pathElements, this.pos++, i, j), this } function l(a) { var c = a.replace(/([A-Za-z])([0-9])/g, "$1 $2").replace(/([0-9])([A-Za-z])/g, "$1 $2").split(/[\s,]+/).reduce(function (a, b) { return b.match(/[A-Za-z]/) && a.push([]), a[a.length - 1].push(b), a }, []); "Z" === c[c.length - 1][0].toUpperCase() && c.pop(); var d = c.map(function (a) { var c = a.shift(), d = t[c.toLowerCase()]; return b.extend({ command: c }, d.reduce(function (b, c, d) { return b[c] = +a[d], b }, {})) }), e = [this.pos, 0]; return Array.prototype.push.apply(e, d), Array.prototype.splice.apply(this.pathElements, e), this.pos += d.length, this } function m() { var a = Math.pow(10, this.options.accuracy); return this.pathElements.reduce(function (b, c) { var d = t[c.command.toLowerCase()].map(function (b) { return this.options.accuracy ? Math.round(c[b] * a) / a : c[b] }.bind(this)); return b + c.command + d.join(",") }.bind(this), "") + (this.close ? "Z" : "") } function n(a, b) { return d(this.pathElements, function (c, d) { c[d] *= "x" === d[0] ? a : b }), this } function o(a, b) { return d(this.pathElements, function (c, d) { c[d] += "x" === d[0] ? a : b }), this } function p(a) { return d(this.pathElements, function (b, c, d, e, f) { var g = a(b, c, d, e, f); (g || 0 === g) && (b[c] = g) }), this } function q(a) { var c = new b.Svg.Path(a || this.close); return c.pos = this.pos, c.pathElements = this.pathElements.slice().map(function (a) { return b.extend({}, a) }), c.options = b.extend({}, this.options), c } function r(a) { var c = [new b.Svg.Path]; return this.pathElements.forEach(function (d) { d.command === a.toUpperCase() && 0 !== c[c.length - 1].pathElements.length && c.push(new b.Svg.Path), c[c.length - 1].pathElements.push(d) }), c } function s(a, c, d) { for (var e = new b.Svg.Path(c, d), f = 0; f < a.length; f++)for (var g = a[f], h = 0; h < g.pathElements.length; h++)e.pathElements.push(g.pathElements[h]); return e } var t = { m: ["x", "y"], l: ["x", "y"], c: ["x1", "y1", "x2", "y2", "x", "y"], a: ["rx", "ry", "xAr", "lAf", "sf", "x", "y"] }, u = { accuracy: 3 }; b.Svg.Path = b.Class.extend({ constructor: e, position: f, remove: g, move: h, line: i, curve: j, arc: k, scale: n, translate: o, transform: p, parse: l, stringify: m, clone: q, splitByCommand: r }), b.Svg.Path.elementDescriptions = t, b.Svg.Path.join = s }(this || global, a), function (a, b) { "use strict"; function c(a, b, c, d) { this.units = a, this.counterUnits = a === e.x ? e.y : e.x, this.chartRect = b, this.axisLength = b[a.rectEnd] - b[a.rectStart], this.gridOffset = b[a.rectOffset], this.ticks = c, this.options = d } function d(a, c, d, e, f) { var g = e["axis" + this.units.pos.toUpperCase()], h = this.ticks.map(this.projectValue.bind(this)), i = this.ticks.map(g.labelInterpolationFnc); h.forEach(function (j, k) { var l, m = { x: 0, y: 0 }; l = h[k + 1] ? h[k + 1] - j : Math.max(this.axisLength - j, 30), b.isFalseyButZero(i[k]) && "" !== i[k] || ("x" === this.units.pos ? (j = this.chartRect.x1 + j, m.x = e.axisX.labelOffset.x, "start" === e.axisX.position ? m.y = this.chartRect.padding.top + e.axisX.labelOffset.y + (d ? 5 : 20) : m.y = this.chartRect.y1 + e.axisX.labelOffset.y + (d ? 5 : 20)) : (j = this.chartRect.y1 - j, m.y = e.axisY.labelOffset.y - (d ? l : 0), "start" === e.axisY.position ? m.x = d ? this.chartRect.padding.left + e.axisY.labelOffset.x : this.chartRect.x1 - 10 : m.x = this.chartRect.x2 + e.axisY.labelOffset.x + 10), g.showGrid && b.createGrid(j, k, this, this.gridOffset, this.chartRect[this.counterUnits.len](), a, [e.classNames.grid, e.classNames[this.units.dir]], f), g.showLabel && b.createLabel(j, l, k, i, this, g.offset, m, c, [e.classNames.label, e.classNames[this.units.dir], "start" === g.position ? e.classNames[g.position] : e.classNames.end], d, f)) }.bind(this)) } var e = (a.window, a.document, { x: { pos: "x", len: "width", dir: "horizontal", rectStart: "x1", rectEnd: "x2", rectOffset: "y2" }, y: { pos: "y", len: "height", dir: "vertical", rectStart: "y2", rectEnd: "y1", rectOffset: "x1" } }); b.Axis = b.Class.extend({ constructor: c, createGridAndLabels: d, projectValue: function (a, b, c) { throw new Error("Base axis can't be instantiated!") } }), b.Axis.units = e }(this || global, a), function (a, b) { "use strict"; function c(a, c, d, e) { var f = e.highLow || b.getHighLow(c, e, a.pos); this.bounds = b.getBounds(d[a.rectEnd] - d[a.rectStart], f, e.scaleMinSpace || 20, e.onlyInteger), this.range = { min: this.bounds.min, max: this.bounds.max }, b.AutoScaleAxis["super"].constructor.call(this, a, d, this.bounds.values, e) } function d(a) { return this.axisLength * (+b.getMultiValue(a, this.units.pos) - this.bounds.min) / this.bounds.range } a.window, a.document; b.AutoScaleAxis = b.Axis.extend({ constructor: c, projectValue: d }) }(this || global, a), function (a, b) { "use strict"; function c(a, c, d, e) { var f = e.highLow || b.getHighLow(c, e, a.pos); this.divisor = e.divisor || 1, this.ticks = e.ticks || b.times(this.divisor).map(function (a, b) { return f.low + (f.high - f.low) / this.divisor * b }.bind(this)), this.ticks.sort(function (a, b) { return a - b }), this.range = { min: f.low, max: f.high }, b.FixedScaleAxis["super"].constructor.call(this, a, d, this.ticks, e), this.stepLength = this.axisLength / this.divisor } function d(a) { return this.axisLength * (+b.getMultiValue(a, this.units.pos) - this.range.min) / (this.range.max - this.range.min) } a.window, a.document; b.FixedScaleAxis = b.Axis.extend({ constructor: c, projectValue: d }) }(this || global, a), function (a, b) { "use strict"; function c(a, c, d, e) { b.StepAxis["super"].constructor.call(this, a, d, e.ticks, e); var f = Math.max(1, e.ticks.length - (e.stretch ? 1 : 0)); this.stepLength = this.axisLength / f } function d(a, b) { return this.stepLength * b } a.window, a.document; b.StepAxis = b.Axis.extend({ constructor: c, projectValue: d }) }(this || global, a), function (a, b) { "use strict"; function c(a) { var c = b.normalizeData(this.data, a.reverseData, !0); this.svg = b.createSvg(this.container, a.width, a.height, a.classNames.chart); var d, f, g = this.svg.elem("g").addClass(a.classNames.gridGroup), h = this.svg.elem("g"), i = this.svg.elem("g").addClass(a.classNames.labelGroup), j = b.createChartRect(this.svg, a, e.padding); d = void 0 === a.axisX.type ? new b.StepAxis(b.Axis.units.x, c.normalized.series, j, b.extend({}, a.axisX, { ticks: c.normalized.labels, stretch: a.fullWidth })) : a.axisX.type.call(b, b.Axis.units.x, c.normalized.series, j, a.axisX), f = void 0 === a.axisY.type ? new b.AutoScaleAxis(b.Axis.units.y, c.normalized.series, j, b.extend({}, a.axisY, { high: b.isNumeric(a.high) ? a.high : a.axisY.high, low: b.isNumeric(a.low) ? a.low : a.axisY.low })) : a.axisY.type.call(b, b.Axis.units.y, c.normalized.series, j, a.axisY), d.createGridAndLabels(g, i, this.supportsForeignObject, a, this.eventEmitter), f.createGridAndLabels(g, i, this.supportsForeignObject, a, this.eventEmitter), a.showGridBackground && b.createGridBackground(g, j, a.classNames.gridBackground, this.eventEmitter), c.raw.series.forEach(function (e, g) { var i = h.elem("g"); i.attr({ "ct:series-name": e.name, "ct:meta": b.serialize(e.meta) }), i.addClass([a.classNames.series, e.className || a.classNames.series + "-" + b.alphaNumerate(g)].join(" ")); var k = [], l = []; c.normalized.series[g].forEach(function (a, h) { var i = { x: j.x1 + d.projectValue(a, h, c.normalized.series[g]), y: j.y1 - f.projectValue(a, h, c.normalized.series[g]) }; k.push(i.x, i.y), l.push({ value: a, valueIndex: h, meta: b.getMetaData(e, h) }) }.bind(this)); var m = { lineSmooth: b.getSeriesOption(e, a, "lineSmooth"), showPoint: b.getSeriesOption(e, a, "showPoint"), showLine: b.getSeriesOption(e, a, "showLine"), showArea: b.getSeriesOption(e, a, "showArea"), areaBase: b.getSeriesOption(e, a, "areaBase") }, n = "function" == typeof m.lineSmooth ? m.lineSmooth : m.lineSmooth ? b.Interpolation.monotoneCubic() : b.Interpolation.none(), o = n(k, l); if (m.showPoint && o.pathElements.forEach(function (c) { var h = i.elem("line", { x1: c.x, y1: c.y, x2: c.x + .01, y2: c.y }, a.classNames.point).attr({ "ct:value": [c.data.value.x, c.data.value.y].filter(b.isNumeric).join(","), "ct:meta": b.serialize(c.data.meta) }); this.eventEmitter.emit("draw", { type: "point", value: c.data.value, index: c.data.valueIndex, meta: c.data.meta, series: e, seriesIndex: g, axisX: d, axisY: f, group: i, element: h, x: c.x, y: c.y }) }.bind(this)), m.showLine) { var p = i.elem("path", { d: o.stringify() }, a.classNames.line, !0); this.eventEmitter.emit("draw", { type: "line", values: c.normalized.series[g], path: o.clone(), chartRect: j, index: g, series: e, seriesIndex: g, seriesMeta: e.meta, axisX: d, axisY: f, group: i, element: p }) } if (m.showArea && f.range) { var q = Math.max(Math.min(m.areaBase, f.range.max), f.range.min), r = j.y1 - f.projectValue(q); o.splitByCommand("M").filter(function (a) { return a.pathElements.length > 1 }).map(function (a) { var b = a.pathElements[0], c = a.pathElements[a.pathElements.length - 1]; return a.clone(!0).position(0).remove(1).move(b.x, r).line(b.x, b.y).position(a.pathElements.length + 1).line(c.x, r) }).forEach(function (b) { var h = i.elem("path", { d: b.stringify() }, a.classNames.area, !0); this.eventEmitter.emit("draw", { type: "area", values: c.normalized.series[g], path: b.clone(), series: e, seriesIndex: g, axisX: d, axisY: f, chartRect: j, index: g, group: i, element: h }) }.bind(this)) } }.bind(this)), this.eventEmitter.emit("created", { bounds: f.bounds, chartRect: j, axisX: d, axisY: f, svg: this.svg, options: a }) } function d(a, c, d, f) { b.Line["super"].constructor.call(this, a, c, e, b.extend({}, e, d), f) } var e = (a.window, a.document, { axisX: { offset: 30, position: "end", labelOffset: { x: 0, y: 0 }, showLabel: !0, showGrid: !0, labelInterpolationFnc: b.noop, type: void 0 }, axisY: { offset: 40, position: "start", labelOffset: { x: 0, y: 0 }, showLabel: !0, showGrid: !0, labelInterpolationFnc: b.noop, type: void 0, scaleMinSpace: 20, onlyInteger: !1 }, width: void 0, height: void 0, showLine: !0, showPoint: !0, showArea: !1, areaBase: 0, lineSmooth: !0, showGridBackground: !1, low: void 0, high: void 0, chartPadding: { top: 15, right: 15, bottom: 5, left: 10 }, fullWidth: !1, reverseData: !1, classNames: { chart: "ct-chart-line", label: "ct-label", labelGroup: "ct-labels", series: "ct-series", line: "ct-line", point: "ct-point", area: "ct-area", grid: "ct-grid", gridGroup: "ct-grids", gridBackground: "ct-grid-background", vertical: "ct-vertical", horizontal: "ct-horizontal", start: "ct-start", end: "ct-end" } }); b.Line = b.Base.extend({ constructor: d, createChart: c }) }(this || global, a), function (a, b) { + "use strict"; function c(a) { + var c, d; a.distributeSeries ? (c = b.normalizeData(this.data, a.reverseData, a.horizontalBars ? "x" : "y"), c.normalized.series = c.normalized.series.map(function (a) { return [a] })) : c = b.normalizeData(this.data, a.reverseData, a.horizontalBars ? "x" : "y"), this.svg = b.createSvg(this.container, a.width, a.height, a.classNames.chart + (a.horizontalBars ? " " + a.classNames.horizontalBars : "")); var f = this.svg.elem("g").addClass(a.classNames.gridGroup), g = this.svg.elem("g"), h = this.svg.elem("g").addClass(a.classNames.labelGroup); + if (a.stackBars && 0 !== c.normalized.series.length) { var i = b.serialMap(c.normalized.series, function () { return Array.prototype.slice.call(arguments).map(function (a) { return a }).reduce(function (a, b) { return { x: a.x + (b && b.x) || 0, y: a.y + (b && b.y) || 0 } }, { x: 0, y: 0 }) }); d = b.getHighLow([i], a, a.horizontalBars ? "x" : "y") } else d = b.getHighLow(c.normalized.series, a, a.horizontalBars ? "x" : "y"); d.high = +a.high || (0 === a.high ? 0 : d.high), d.low = +a.low || (0 === a.low ? 0 : d.low); var j, k, l, m, n, o = b.createChartRect(this.svg, a, e.padding); k = a.distributeSeries && a.stackBars ? c.normalized.labels.slice(0, 1) : c.normalized.labels, a.horizontalBars ? (j = m = void 0 === a.axisX.type ? new b.AutoScaleAxis(b.Axis.units.x, c.normalized.series, o, b.extend({}, a.axisX, { highLow: d, referenceValue: 0 })) : a.axisX.type.call(b, b.Axis.units.x, c.normalized.series, o, b.extend({}, a.axisX, { highLow: d, referenceValue: 0 })), l = n = void 0 === a.axisY.type ? new b.StepAxis(b.Axis.units.y, c.normalized.series, o, { ticks: k }) : a.axisY.type.call(b, b.Axis.units.y, c.normalized.series, o, a.axisY)) : (l = m = void 0 === a.axisX.type ? new b.StepAxis(b.Axis.units.x, c.normalized.series, o, { ticks: k }) : a.axisX.type.call(b, b.Axis.units.x, c.normalized.series, o, a.axisX), j = n = void 0 === a.axisY.type ? new b.AutoScaleAxis(b.Axis.units.y, c.normalized.series, o, b.extend({}, a.axisY, { highLow: d, referenceValue: 0 })) : a.axisY.type.call(b, b.Axis.units.y, c.normalized.series, o, b.extend({}, a.axisY, { highLow: d, referenceValue: 0 }))); var p = a.horizontalBars ? o.x1 + j.projectValue(0) : o.y1 - j.projectValue(0), q = []; l.createGridAndLabels(f, h, this.supportsForeignObject, a, this.eventEmitter), j.createGridAndLabels(f, h, this.supportsForeignObject, a, this.eventEmitter), a.showGridBackground && b.createGridBackground(f, o, a.classNames.gridBackground, this.eventEmitter), c.raw.series.forEach(function (d, e) { var f, h, i = e - (c.raw.series.length - 1) / 2; f = a.distributeSeries && !a.stackBars ? l.axisLength / c.normalized.series.length / 2 : a.distributeSeries && a.stackBars ? l.axisLength / 2 : l.axisLength / c.normalized.series[e].length / 2, h = g.elem("g"), h.attr({ "ct:series-name": d.name, "ct:meta": b.serialize(d.meta) }), h.addClass([a.classNames.series, d.className || a.classNames.series + "-" + b.alphaNumerate(e)].join(" ")), c.normalized.series[e].forEach(function (g, k) { var r, s, t, u; if (u = a.distributeSeries && !a.stackBars ? e : a.distributeSeries && a.stackBars ? 0 : k, r = a.horizontalBars ? { x: o.x1 + j.projectValue(g && g.x ? g.x : 0, k, c.normalized.series[e]), y: o.y1 - l.projectValue(g && g.y ? g.y : 0, u, c.normalized.series[e]) } : { x: o.x1 + l.projectValue(g && g.x ? g.x : 0, u, c.normalized.series[e]), y: o.y1 - j.projectValue(g && g.y ? g.y : 0, k, c.normalized.series[e]) }, l instanceof b.StepAxis && (l.options.stretch || (r[l.units.pos] += f * (a.horizontalBars ? -1 : 1)), r[l.units.pos] += a.stackBars || a.distributeSeries ? 0 : i * a.seriesBarDistance * (a.horizontalBars ? -1 : 1)), t = q[k] || p, q[k] = t - (p - r[l.counterUnits.pos]), void 0 !== g) { var v = {}; v[l.units.pos + "1"] = r[l.units.pos], v[l.units.pos + "2"] = r[l.units.pos], !a.stackBars || "accumulate" !== a.stackMode && a.stackMode ? (v[l.counterUnits.pos + "1"] = p, v[l.counterUnits.pos + "2"] = r[l.counterUnits.pos]) : (v[l.counterUnits.pos + "1"] = t, v[l.counterUnits.pos + "2"] = q[k]), v.x1 = Math.min(Math.max(v.x1, o.x1), o.x2), v.x2 = Math.min(Math.max(v.x2, o.x1), o.x2), v.y1 = Math.min(Math.max(v.y1, o.y2), o.y1), v.y2 = Math.min(Math.max(v.y2, o.y2), o.y1); var w = b.getMetaData(d, k); s = h.elem("line", v, a.classNames.bar).attr({ "ct:value": [g.x, g.y].filter(b.isNumeric).join(","), "ct:meta": b.serialize(w) }), this.eventEmitter.emit("draw", b.extend({ type: "bar", value: g, index: k, meta: w, series: d, seriesIndex: e, axisX: m, axisY: n, chartRect: o, group: h, element: s }, v)) } }.bind(this)) }.bind(this)), this.eventEmitter.emit("created", { bounds: j.bounds, chartRect: o, axisX: m, axisY: n, svg: this.svg, options: a }) + } function d(a, c, d, f) { b.Bar["super"].constructor.call(this, a, c, e, b.extend({}, e, d), f) } var e = (a.window, a.document, { axisX: { offset: 30, position: "end", labelOffset: { x: 0, y: 0 }, showLabel: !0, showGrid: !0, labelInterpolationFnc: b.noop, scaleMinSpace: 30, onlyInteger: !1 }, axisY: { offset: 40, position: "start", labelOffset: { x: 0, y: 0 }, showLabel: !0, showGrid: !0, labelInterpolationFnc: b.noop, scaleMinSpace: 20, onlyInteger: !1 }, width: void 0, height: void 0, high: void 0, low: void 0, referenceValue: 0, chartPadding: { top: 15, right: 15, bottom: 5, left: 10 }, seriesBarDistance: 15, stackBars: !1, stackMode: "accumulate", horizontalBars: !1, distributeSeries: !1, reverseData: !1, showGridBackground: !1, classNames: { chart: "ct-chart-bar", horizontalBars: "ct-horizontal-bars", label: "ct-label", labelGroup: "ct-labels", series: "ct-series", bar: "ct-bar", grid: "ct-grid", gridGroup: "ct-grids", gridBackground: "ct-grid-background", vertical: "ct-vertical", horizontal: "ct-horizontal", start: "ct-start", end: "ct-end" } }); b.Bar = b.Base.extend({ constructor: d, createChart: c }) + }(this || global, a), function (a, b) { "use strict"; function c(a, b, c) { var d = b.x > a.x; return d && "explode" === c || !d && "implode" === c ? "start" : d && "implode" === c || !d && "explode" === c ? "end" : "middle" } function d(a) { var d, e, g, h, i, j = b.normalizeData(this.data), k = [], l = a.startAngle; this.svg = b.createSvg(this.container, a.width, a.height, a.donut ? a.classNames.chartDonut : a.classNames.chartPie), e = b.createChartRect(this.svg, a, f.padding), g = Math.min(e.width() / 2, e.height() / 2), i = a.total || j.normalized.series.reduce(function (a, b) { return a + b }, 0); var m = b.quantity(a.donutWidth); "%" === m.unit && (m.value *= g / 100), g -= a.donut && !a.donutSolid ? m.value / 2 : 0, h = "outside" === a.labelPosition || a.donut && !a.donutSolid ? g : "center" === a.labelPosition ? 0 : a.donutSolid ? g - m.value / 2 : g / 2, h += a.labelOffset; var n = { x: e.x1 + e.width() / 2, y: e.y2 + e.height() / 2 }, o = 1 === j.raw.series.filter(function (a) { return a.hasOwnProperty("value") ? 0 !== a.value : 0 !== a }).length; j.raw.series.forEach(function (a, b) { k[b] = this.svg.elem("g", null, null) }.bind(this)), a.showLabel && (d = this.svg.elem("g", null, null)), j.raw.series.forEach(function (e, f) { if (0 !== j.normalized.series[f] || !a.ignoreEmptyValues) { k[f].attr({ "ct:series-name": e.name }), k[f].addClass([a.classNames.series, e.className || a.classNames.series + "-" + b.alphaNumerate(f)].join(" ")); var p = i > 0 ? l + j.normalized.series[f] / i * 360 : 0, q = Math.max(0, l - (0 === f || o ? 0 : .2)); p - q >= 359.99 && (p = q + 359.99); var r, s, t, u = b.polarToCartesian(n.x, n.y, g, q), v = b.polarToCartesian(n.x, n.y, g, p), w = new b.Svg.Path(!a.donut || a.donutSolid).move(v.x, v.y).arc(g, g, 0, p - l > 180, 0, u.x, u.y); a.donut ? a.donutSolid && (t = g - m.value, r = b.polarToCartesian(n.x, n.y, t, l - (0 === f || o ? 0 : .2)), s = b.polarToCartesian(n.x, n.y, t, p), w.line(r.x, r.y), w.arc(t, t, 0, p - l > 180, 1, s.x, s.y)) : w.line(n.x, n.y); var x = a.classNames.slicePie; a.donut && (x = a.classNames.sliceDonut, a.donutSolid && (x = a.classNames.sliceDonutSolid)); var y = k[f].elem("path", { d: w.stringify() }, x); if (y.attr({ "ct:value": j.normalized.series[f], "ct:meta": b.serialize(e.meta) }), a.donut && !a.donutSolid && (y._node.style.strokeWidth = m.value + "px"), this.eventEmitter.emit("draw", { type: "slice", value: j.normalized.series[f], totalDataSum: i, index: f, meta: e.meta, series: e, group: k[f], element: y, path: w.clone(), center: n, radius: g, startAngle: l, endAngle: p }), a.showLabel) { var z; z = 1 === j.raw.series.length ? { x: n.x, y: n.y } : b.polarToCartesian(n.x, n.y, h, l + (p - l) / 2); var A; A = j.normalized.labels && !b.isFalseyButZero(j.normalized.labels[f]) ? j.normalized.labels[f] : j.normalized.series[f]; var B = a.labelInterpolationFnc(A, f); if (B || 0 === B) { var C = d.elem("text", { dx: z.x, dy: z.y, "text-anchor": c(n, z, a.labelDirection) }, a.classNames.label).text("" + B); this.eventEmitter.emit("draw", { type: "label", index: f, group: d, element: C, text: "" + B, x: z.x, y: z.y }) } } l = p } }.bind(this)), this.eventEmitter.emit("created", { chartRect: e, svg: this.svg, options: a }) } function e(a, c, d, e) { b.Pie["super"].constructor.call(this, a, c, f, b.extend({}, f, d), e) } var f = (a.window, a.document, { width: void 0, height: void 0, chartPadding: 5, classNames: { chartPie: "ct-chart-pie", chartDonut: "ct-chart-donut", series: "ct-series", slicePie: "ct-slice-pie", sliceDonut: "ct-slice-donut", sliceDonutSolid: "ct-slice-donut-solid", label: "ct-label" }, startAngle: 0, total: void 0, donut: !1, donutSolid: !1, donutWidth: 60, showLabel: !0, labelOffset: 0, labelPosition: "inside", labelInterpolationFnc: b.noop, labelDirection: "neutral", reverseData: !1, ignoreEmptyValues: !1 }); b.Pie = b.Base.extend({ constructor: e, createChart: d, determineAnchorPosition: c }) }(this || global, a), a +}); +//# sourceMappingURL=chartist.min.js.map + +var i, l, selectedLine = null; + +/* Navigate to hash without browser history entry */ +var navigateToHash = function () { + if (window.history !== undefined && window.history.replaceState !== undefined) { + window.history.replaceState(undefined, undefined, this.getAttribute("href")); + } +}; + +var hashLinks = document.getElementsByClassName('navigatetohash'); +for (i = 0, l = hashLinks.length; i < l; i++) { + hashLinks[i].addEventListener('click', navigateToHash); +} + +/* Switch test method */ +var switchTestMethod = function () { + var method = this.getAttribute("value"); + console.log("Selected test method: " + method); + + var lines, i, l, coverageData, lineAnalysis, cells; + + lines = document.querySelectorAll('.lineAnalysis tr'); + + for (i = 1, l = lines.length; i < l; i++) { + coverageData = JSON.parse(lines[i].getAttribute('data-coverage').replace(/'/g, '"')); + lineAnalysis = coverageData[method]; + cells = lines[i].querySelectorAll('td'); + if (lineAnalysis === undefined) { + lineAnalysis = coverageData.AllTestMethods; + if (lineAnalysis.LVS !== 'gray') { + cells[0].setAttribute('class', 'red'); + cells[1].innerText = cells[1].textContent = '0'; + cells[4].setAttribute('class', 'lightred'); + } + } else { + cells[0].setAttribute('class', lineAnalysis.LVS); + cells[1].innerText = cells[1].textContent = lineAnalysis.VC; + cells[4].setAttribute('class', 'light' + lineAnalysis.LVS); + } + } +}; + +var testMethods = document.getElementsByClassName('switchtestmethod'); +for (i = 0, l = testMethods.length; i < l; i++) { + testMethods[i].addEventListener('change', switchTestMethod); +} + +/* Highlight test method by line */ +var toggleLine = function () { + if (selectedLine === this) { + selectedLine = null; + } else { + selectedLine = null; + unhighlightTestMethods(); + highlightTestMethods.call(this); + selectedLine = this; + } + +}; +var highlightTestMethods = function () { + if (selectedLine !== null) { + return; + } + + var lineAnalysis; + var coverageData = JSON.parse(this.getAttribute('data-coverage').replace(/'/g, '"')); + var testMethods = document.getElementsByClassName('testmethod'); + + for (i = 0, l = testMethods.length; i < l; i++) { + lineAnalysis = coverageData[testMethods[i].id]; + if (lineAnalysis === undefined) { + testMethods[i].className = testMethods[i].className.replace(/\s*light.+/g, ""); + } else { + testMethods[i].className += ' light' + lineAnalysis.LVS; + } + } +}; +var unhighlightTestMethods = function () { + if (selectedLine !== null) { + return; + } + + var testMethods = document.getElementsByClassName('testmethod'); + for (i = 0, l = testMethods.length; i < l; i++) { + testMethods[i].className = testMethods[i].className.replace(/\s*light.+/g, ""); + } +}; +var coverableLines = document.getElementsByClassName('coverableline'); +for (i = 0, l = coverableLines.length; i < l; i++) { + coverableLines[i].addEventListener('click', toggleLine); + coverableLines[i].addEventListener('mouseenter', highlightTestMethods); + coverableLines[i].addEventListener('mouseleave', unhighlightTestMethods); +} + +/* History charts */ +var renderChart = function (chart) { + // Remove current children (e.g. PNG placeholder) + while (chart.firstChild) { + chart.firstChild.remove(); + } + + var chartData = window[chart.getAttribute('data-data')]; + var options = { + axisY: { + type: undefined, + onlyInteger: true + }, + lineSmooth: false, + low: 0, + high: 100, + scaleMinSpace: 20, + onlyInteger: true, + fullWidth: true + }; + var lineChart = new Chartist.Line(chart, { + labels: [], + series: chartData.series + }, options); + + /* Zoom */ + var zoomButtonDiv = document.createElement("div"); + zoomButtonDiv.className = "toggleZoom"; + var zoomButtonLink = document.createElement("a"); + zoomButtonLink.setAttribute("href", ""); + var zoomButtonText = document.createElement("i"); + zoomButtonText.className = "icon-search-plus"; + + zoomButtonLink.appendChild(zoomButtonText); + zoomButtonDiv.appendChild(zoomButtonLink); + + chart.appendChild(zoomButtonDiv); + + zoomButtonDiv.addEventListener('click', function (event) { + event.preventDefault(); + + if (options.axisY.type === undefined) { + options.axisY.type = Chartist.AutoScaleAxis; + zoomButtonText.className = "icon-search-minus"; + } else { + options.axisY.type = undefined; + zoomButtonText.className = "icon-search-plus"; + } + + lineChart.update(null, options); + }); + + var tooltip = document.createElement("div"); + tooltip.className = "tooltip"; + + chart.appendChild(tooltip); + + /* Tooltips */ + var showToolTip = function () { + var index = this.getAttribute('ct:meta'); + + tooltip.innerHTML = chartData.tooltips[index]; + tooltip.style.display = 'block'; + }; + + var moveToolTip = function (event) { + var box = chart.getBoundingClientRect(); + var left = event.pageX - box.left - window.pageXOffset; + var top = event.pageY - box.top - window.pageYOffset; + + left = left + 20; + top = top - tooltip.offsetHeight / 2; + + if (left + tooltip.offsetWidth > box.width) { + left -= tooltip.offsetWidth + 40; + } + + if (top < 0) { + top = 0; + } + + if (top + tooltip.offsetHeight > box.height) { + top = box.height - tooltip.offsetHeight; + } + + tooltip.style.left = left + 'px'; + tooltip.style.top = top + 'px'; + }; + + var hideToolTip = function () { + tooltip.style.display = 'none'; + }; + chart.addEventListener('mousemove', moveToolTip); + + lineChart.on('created', function () { + var chartPoints = chart.getElementsByClassName('ct-point'); + for (i = 0, l = chartPoints.length; i < l; i++) { + chartPoints[i].addEventListener('mousemove', showToolTip); + chartPoints[i].addEventListener('mouseout', hideToolTip); + } + }); +}; + +var charts = document.getElementsByClassName('historychart'); +for (i = 0, l = charts.length; i < l; i++) { + renderChart(charts[i]); +} + +var assemblies = [ + { + "name": "Sample", + "classes": [ + { "name": "Sample.PartialClass", "rp": "Sample_PartialClass.html", "cl": 12, "ucl": 10, "cal": 22, "tl": 53, "ct": "LineCoverage", "cbm": "-", "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": "18.01.2023 - 20:03:18", "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": "Sample_TestClass.html", "cl": 12, "ucl": 9, "cal": 21, "tl": 38, "ct": "LineCoverage", "cbm": "-", "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": "18.01.2023 - 20:03:18", "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": "Sample_Program.html", "cl": 35, "ucl": 9, "cal": 44, "tl": 84, "ct": "LineCoverage", "cbm": "-", "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": "18.01.2023 - 20:03:18", "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": "Sample_TestClass2.html", "cl": 24, "ucl": 14, "cal": 38, "tl": 85, "ct": "LineCoverage", "cbm": "-", "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": "18.01.2023 - 20:03:18", "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 } }, + ]}, +]; + +var metrics = [{ "name": "Cyclomatic complexity", "abbreviation": "cc", "explanationUrl": "https://en.wikipedia.org/wiki/Cyclomatic_complexity" }, { "name": "NPath complexity", "abbreviation": "npth", "explanationUrl": "https://modess.io/npath-complexity-cyclomatic-complexity-explained" }, { "name": "Sequence coverage", "abbreviation": "seq", "explanationUrl": "https://en.wikipedia.org/wiki/Code_coverage" }, { "name": "Branch coverage", "abbreviation": "bcov", "explanationUrl": "https://en.wikipedia.org/wiki/Code_coverage" }, { "name": "Crap Score", "abbreviation": "crp", "explanationUrl": "https://googletesting.blogspot.de/2011/02/this-code-is-crap.html" }]; + +var historicCoverageExecutionTimes = ["09.02.2022 - 20:50:35", "08.02.2022 - 20:50:35", "07.02.2022 - 20:50:35", "06.02.2022 - 20:50:35", "05.02.2022 - 20:50:35", "04.02.2022 - 20:50:35", "03.02.2022 - 20:50:35", "02.02.2022 - 20:50:35", "01.02.2022 - 20:50:35"]; + +var riskHotspotMetrics = [ +]; + +var riskHotspots = [ +]; + +var branchCoverageAvailable = true; +var methodCoverageAvailable = true; + + +var translations = { +'top': 'Top:', +'all': 'All', +'assembly': 'Assembly', +'class': 'Class', +'method': 'Method', +'lineCoverage': 'LineCoverage', +'noGrouping': 'No grouping', +'byAssembly': 'By assembly', +'byNamespace': 'By namespace, Level:', +'all': 'All', +'collapseAll': 'Collapse all', +'expandAll': 'Expand all', +'grouping': 'Grouping:', +'filter': 'Filter:', +'name': 'Name', +'covered': 'Covered', +'uncovered': 'Uncovered', +'coverable': 'Coverable', +'total': 'Total', +'coverage': 'Line coverage', +'branchCoverage': 'Branch coverage', +'methodCoverage': 'Method coverage', +'percentage': 'Percentage', +'history': 'Coverage history', +'compareHistory': 'Compare with:', +'date': 'Date', +'allChanges': 'All changes', +'selectCoverageTypes': 'Select coverage types', +'selectCoverageTypesAndMetrics': 'Select coverage types & metrics', +'coverageTypes': 'Coverage types', +'metrics': 'Metrics', +'methodCoverageProVersion': 'Feature is only available for sponsors', +'lineCoverageIncreaseOnly': 'Line coverage: Increase only', +'lineCoverageDecreaseOnly': 'Line coverage: Decrease only', +'branchCoverageIncreaseOnly': 'Branch coverage: Increase only', +'branchCoverageDecreaseOnly': 'Branch coverage: Decrease only', +'methodCoverageIncreaseOnly': 'Method coverage: Increase only', +'methodCoverageDecreaseOnly': 'Method coverage: Decrease only' +}; + + +(()=>{"use strict";var e,_={},p={};function n(e){var a=p[e];if(void 0!==a)return a.exports;var r=p[e]={exports:{}};return _[e](r,r.exports,n),r.exports}n.m=_,e=[],n.O=(a,r,u,l)=>{if(!r){var o=1/0;for(f=0;f=l)&&Object.keys(n.O).every(h=>n.O[h](r[t]))?r.splice(t--,1):(v=!1,l0&&e[f-1][2]>l;f--)e[f]=e[f-1];e[f]=[r,u,l]},n.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return n.d(a,{a}),a},n.d=(e,a)=>{for(var r in a)n.o(a,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:a[r]})},n.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),(()=>{var e={666:0};n.O.j=u=>0===e[u];var a=(u,l)=>{var t,c,[f,o,v]=l,s=0;if(f.some(d=>0!==e[d])){for(t in o)n.o(o,t)&&(n.m[t]=o[t]);if(v)var b=v(n)}for(u&&u(l);s{he(583)},583:()=>{!function(e){const n=e.performance;function i(I){n&&n.mark&&n.mark(I)}function r(I,p){n&&n.measure&&n.measure(I,p)}i("Zone");const c=e.__Zone_symbol_prefix||"__zone_symbol__";function u(I){return c+I}const f=!0===e[u("forceDuplicateZoneCheck")];if(e.Zone){if(f||"function"!=typeof e.Zone.__symbol__)throw new Error("Zone already loaded.");return e.Zone}let _=(()=>{class I{constructor(t,o){this._parent=t,this._name=o?o.name||"unnamed":"",this._properties=o&&o.properties||{},this._zoneDelegate=new T(this,this._parent&&this._parent._zoneDelegate,o)}static assertZonePatched(){if(e.Promise!==J.ZoneAwarePromise)throw new Error("Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)")}static get root(){let t=I.current;for(;t.parent;)t=t.parent;return t}static get current(){return G.zone}static get currentTask(){return te}static __load_patch(t,o,g=!1){if(J.hasOwnProperty(t)){if(!g&&f)throw Error("Already loaded patch: "+t)}else if(!e["__Zone_disable_"+t]){const P="Zone:"+t;i(P),J[t]=o(e,I,le),r(P,P)}}get parent(){return this._parent}get name(){return this._name}get(t){const o=this.getZoneWith(t);if(o)return o._properties[t]}getZoneWith(t){let o=this;for(;o;){if(o._properties.hasOwnProperty(t))return o;o=o._parent}return null}fork(t){if(!t)throw new Error("ZoneSpec required!");return this._zoneDelegate.fork(this,t)}wrap(t,o){if("function"!=typeof t)throw new Error("Expecting function got: "+t);const g=this._zoneDelegate.intercept(this,t,o),P=this;return function(){return P.runGuarded(g,this,arguments,o)}}run(t,o,g,P){G={parent:G,zone:this};try{return this._zoneDelegate.invoke(this,t,o,g,P)}finally{G=G.parent}}runGuarded(t,o=null,g,P){G={parent:G,zone:this};try{try{return this._zoneDelegate.invoke(this,t,o,g,P)}catch(K){if(this._zoneDelegate.handleError(this,K))throw K}}finally{G=G.parent}}runTask(t,o,g){if(t.zone!=this)throw new Error("A task can only be run in the zone of creation! (Creation: "+(t.zone||z).name+"; Execution: "+this.name+")");if(t.state===j&&(t.type===R||t.type===M))return;const P=t.state!=X;P&&t._transitionTo(X,O),t.runCount++;const K=te;te=t,G={parent:G,zone:this};try{t.type==M&&t.data&&!t.data.isPeriodic&&(t.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,t,o,g)}catch(l){if(this._zoneDelegate.handleError(this,l))throw l}}finally{t.state!==j&&t.state!==Y&&(t.type==R||t.data&&t.data.isPeriodic?P&&t._transitionTo(O,X):(t.runCount=0,this._updateTaskCount(t,-1),P&&t._transitionTo(j,X,j))),G=G.parent,te=K}}scheduleTask(t){if(t.zone&&t.zone!==this){let g=this;for(;g;){if(g===t.zone)throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${t.zone.name}`);g=g.parent}}t._transitionTo(q,j);const o=[];t._zoneDelegates=o,t._zone=this;try{t=this._zoneDelegate.scheduleTask(this,t)}catch(g){throw t._transitionTo(Y,q,j),this._zoneDelegate.handleError(this,g),g}return t._zoneDelegates===o&&this._updateTaskCount(t,1),t.state==q&&t._transitionTo(O,q),t}scheduleMicroTask(t,o,g,P){return this.scheduleTask(new m(v,t,o,g,P,void 0))}scheduleMacroTask(t,o,g,P,K){return this.scheduleTask(new m(M,t,o,g,P,K))}scheduleEventTask(t,o,g,P,K){return this.scheduleTask(new m(R,t,o,g,P,K))}cancelTask(t){if(t.zone!=this)throw new Error("A task can only be cancelled in the zone of creation! (Creation: "+(t.zone||z).name+"; Execution: "+this.name+")");t._transitionTo(A,O,X);try{this._zoneDelegate.cancelTask(this,t)}catch(o){throw t._transitionTo(Y,A),this._zoneDelegate.handleError(this,o),o}return this._updateTaskCount(t,-1),t._transitionTo(j,A),t.runCount=0,t}_updateTaskCount(t,o){const g=t._zoneDelegates;-1==o&&(t._zoneDelegates=null);for(let P=0;PI.hasTask(t,o),onScheduleTask:(I,p,t,o)=>I.scheduleTask(t,o),onInvokeTask:(I,p,t,o,g,P)=>I.invokeTask(t,o,g,P),onCancelTask:(I,p,t,o)=>I.cancelTask(t,o)};class T{constructor(p,t,o){this._taskCounts={microTask:0,macroTask:0,eventTask:0},this.zone=p,this._parentDelegate=t,this._forkZS=o&&(o&&o.onFork?o:t._forkZS),this._forkDlgt=o&&(o.onFork?t:t._forkDlgt),this._forkCurrZone=o&&(o.onFork?this.zone:t._forkCurrZone),this._interceptZS=o&&(o.onIntercept?o:t._interceptZS),this._interceptDlgt=o&&(o.onIntercept?t:t._interceptDlgt),this._interceptCurrZone=o&&(o.onIntercept?this.zone:t._interceptCurrZone),this._invokeZS=o&&(o.onInvoke?o:t._invokeZS),this._invokeDlgt=o&&(o.onInvoke?t:t._invokeDlgt),this._invokeCurrZone=o&&(o.onInvoke?this.zone:t._invokeCurrZone),this._handleErrorZS=o&&(o.onHandleError?o:t._handleErrorZS),this._handleErrorDlgt=o&&(o.onHandleError?t:t._handleErrorDlgt),this._handleErrorCurrZone=o&&(o.onHandleError?this.zone:t._handleErrorCurrZone),this._scheduleTaskZS=o&&(o.onScheduleTask?o:t._scheduleTaskZS),this._scheduleTaskDlgt=o&&(o.onScheduleTask?t:t._scheduleTaskDlgt),this._scheduleTaskCurrZone=o&&(o.onScheduleTask?this.zone:t._scheduleTaskCurrZone),this._invokeTaskZS=o&&(o.onInvokeTask?o:t._invokeTaskZS),this._invokeTaskDlgt=o&&(o.onInvokeTask?t:t._invokeTaskDlgt),this._invokeTaskCurrZone=o&&(o.onInvokeTask?this.zone:t._invokeTaskCurrZone),this._cancelTaskZS=o&&(o.onCancelTask?o:t._cancelTaskZS),this._cancelTaskDlgt=o&&(o.onCancelTask?t:t._cancelTaskDlgt),this._cancelTaskCurrZone=o&&(o.onCancelTask?this.zone:t._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;const g=o&&o.onHasTask;(g||t&&t._hasTaskZS)&&(this._hasTaskZS=g?o:y,this._hasTaskDlgt=t,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=p,o.onScheduleTask||(this._scheduleTaskZS=y,this._scheduleTaskDlgt=t,this._scheduleTaskCurrZone=this.zone),o.onInvokeTask||(this._invokeTaskZS=y,this._invokeTaskDlgt=t,this._invokeTaskCurrZone=this.zone),o.onCancelTask||(this._cancelTaskZS=y,this._cancelTaskDlgt=t,this._cancelTaskCurrZone=this.zone))}fork(p,t){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,p,t):new _(p,t)}intercept(p,t,o){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,p,t,o):t}invoke(p,t,o,g,P){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,p,t,o,g,P):t.apply(o,g)}handleError(p,t){return!this._handleErrorZS||this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,p,t)}scheduleTask(p,t){let o=t;if(this._scheduleTaskZS)this._hasTaskZS&&o._zoneDelegates.push(this._hasTaskDlgtOwner),o=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,p,t),o||(o=t);else if(t.scheduleFn)t.scheduleFn(t);else{if(t.type!=v)throw new Error("Task is missing scheduleFn.");d(t)}return o}invokeTask(p,t,o,g){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,p,t,o,g):t.callback.apply(o,g)}cancelTask(p,t){let o;if(this._cancelTaskZS)o=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,p,t);else{if(!t.cancelFn)throw Error("Task is not cancelable");o=t.cancelFn(t)}return o}hasTask(p,t){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,p,t)}catch(o){this.handleError(p,o)}}_updateTaskCount(p,t){const o=this._taskCounts,g=o[p],P=o[p]=g+t;if(P<0)throw new Error("More tasks executed then were scheduled.");0!=g&&0!=P||this.hasTask(this.zone,{microTask:o.microTask>0,macroTask:o.macroTask>0,eventTask:o.eventTask>0,change:p})}}class m{constructor(p,t,o,g,P,K){if(this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state="notScheduled",this.type=p,this.source=t,this.data=g,this.scheduleFn=P,this.cancelFn=K,!o)throw new Error("callback is not defined");this.callback=o;const l=this;this.invoke=p===R&&g&&g.useG?m.invokeTask:function(){return m.invokeTask.call(e,l,this,arguments)}}static invokeTask(p,t,o){p||(p=this),re++;try{return p.runCount++,p.zone.runTask(p,t,o)}finally{1==re&&L(),re--}}get zone(){return this._zone}get state(){return this._state}cancelScheduleRequest(){this._transitionTo(j,q)}_transitionTo(p,t,o){if(this._state!==t&&this._state!==o)throw new Error(`${this.type} '${this.source}': can not transition to '${p}', expecting state '${t}'${o?" or '"+o+"'":""}, was '${this._state}'.`);this._state=p,p==j&&(this._zoneDelegates=null)}toString(){return this.data&&typeof this.data.handleId<"u"?this.data.handleId.toString():Object.prototype.toString.call(this)}toJSON(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}}}const S=u("setTimeout"),D=u("Promise"),Z=u("then");let E,B=[],V=!1;function d(I){if(0===re&&0===B.length)if(E||e[D]&&(E=e[D].resolve(0)),E){let p=E[Z];p||(p=E.then),p.call(E,L)}else e[S](L,0);I&&B.push(I)}function L(){if(!V){for(V=!0;B.length;){const I=B;B=[];for(let p=0;pG,onUnhandledError:F,microtaskDrainDone:F,scheduleMicroTask:d,showUncaughtError:()=>!_[u("ignoreConsoleErrorUncaughtError")],patchEventTarget:()=>[],patchOnProperties:F,patchMethod:()=>F,bindArguments:()=>[],patchThen:()=>F,patchMacroTask:()=>F,patchEventPrototype:()=>F,isIEOrEdge:()=>!1,getGlobalObjects:()=>{},ObjectDefineProperty:()=>F,ObjectGetOwnPropertyDescriptor:()=>{},ObjectCreate:()=>{},ArraySlice:()=>[],patchClass:()=>F,wrapWithCurrentZone:()=>F,filterProperties:()=>[],attachOriginToPatched:()=>F,_redefineProperty:()=>F,patchCallbacks:()=>F};let G={parent:null,zone:new _(null,null)},te=null,re=0;function F(){}r("Zone","Zone"),e.Zone=_}(typeof window<"u"&&window||typeof self<"u"&&self||global);const ue=Object.getOwnPropertyDescriptor,he=Object.defineProperty,de=Object.getPrototypeOf,Be=Object.create,ut=Array.prototype.slice,Se="addEventListener",Oe="removeEventListener",Ze=Zone.__symbol__(Se),Ie=Zone.__symbol__(Oe),se="true",ie="false",ke=Zone.__symbol__("");function Le(e,n){return Zone.current.wrap(e,n)}function Me(e,n,i,r,c){return Zone.current.scheduleMacroTask(e,n,i,r,c)}const x=Zone.__symbol__,Pe=typeof window<"u",pe=Pe?window:void 0,$=Pe&&pe||"object"==typeof self&&self||global,ht=[null];function Ae(e,n){for(let i=e.length-1;i>=0;i--)"function"==typeof e[i]&&(e[i]=Le(e[i],n+"_"+i));return e}function Fe(e){return!e||!1!==e.writable&&!("function"==typeof e.get&&typeof e.set>"u")}const Ue=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope,Re=!("nw"in $)&&typeof $.process<"u"&&"[object process]"==={}.toString.call($.process),je=!Re&&!Ue&&!(!Pe||!pe.HTMLElement),We=typeof $.process<"u"&&"[object process]"==={}.toString.call($.process)&&!Ue&&!(!Pe||!pe.HTMLElement),Ce={},qe=function(e){if(!(e=e||$.event))return;let n=Ce[e.type];n||(n=Ce[e.type]=x("ON_PROPERTY"+e.type));const i=this||e.target||$,r=i[n];let c;return je&&i===pe&&"error"===e.type?(c=r&&r.call(this,e.message,e.filename,e.lineno,e.colno,e.error),!0===c&&e.preventDefault()):(c=r&&r.apply(this,arguments),null!=c&&!c&&e.preventDefault()),c};function Xe(e,n,i){let r=ue(e,n);if(!r&&i&&ue(i,n)&&(r={enumerable:!0,configurable:!0}),!r||!r.configurable)return;const c=x("on"+n+"patched");if(e.hasOwnProperty(c)&&e[c])return;delete r.writable,delete r.value;const u=r.get,f=r.set,_=n.substr(2);let y=Ce[_];y||(y=Ce[_]=x("ON_PROPERTY"+_)),r.set=function(T){let m=this;!m&&e===$&&(m=$),m&&(m[y]&&m.removeEventListener(_,qe),f&&f.apply(m,ht),"function"==typeof T?(m[y]=T,m.addEventListener(_,qe,!1)):m[y]=null)},r.get=function(){let T=this;if(!T&&e===$&&(T=$),!T)return null;const m=T[y];if(m)return m;if(u){let S=u&&u.call(this);if(S)return r.set.call(this,S),"function"==typeof T.removeAttribute&&T.removeAttribute(n),S}return null},he(e,n,r),e[c]=!0}function Ye(e,n,i){if(n)for(let r=0;rfunction(f,_){const y=i(f,_);return y.cbIdx>=0&&"function"==typeof _[y.cbIdx]?Me(y.name,_[y.cbIdx],y,c):u.apply(f,_)})}function ae(e,n){e[x("OriginalDelegate")]=n}let $e=!1,He=!1;function mt(){if($e)return He;$e=!0;try{const e=pe.navigator.userAgent;(-1!==e.indexOf("MSIE ")||-1!==e.indexOf("Trident/")||-1!==e.indexOf("Edge/"))&&(He=!0)}catch{}return He}Zone.__load_patch("ZoneAwarePromise",(e,n,i)=>{const r=Object.getOwnPropertyDescriptor,c=Object.defineProperty,f=i.symbol,_=[],y=!0===e[f("DISABLE_WRAPPING_UNCAUGHT_PROMISE_REJECTION")],T=f("Promise"),m=f("then");i.onUnhandledError=l=>{if(i.showUncaughtError()){const s=l&&l.rejection;s?console.error("Unhandled Promise rejection:",s instanceof Error?s.message:s,"; Zone:",l.zone.name,"; Task:",l.task&&l.task.source,"; Value:",s,s instanceof Error?s.stack:void 0):console.error(l)}},i.microtaskDrainDone=()=>{for(;_.length;){const l=_.shift();try{l.zone.runGuarded(()=>{throw l.throwOriginal?l.rejection:l})}catch(s){Z(s)}}};const D=f("unhandledPromiseRejectionHandler");function Z(l){i.onUnhandledError(l);try{const s=n[D];"function"==typeof s&&s.call(this,l)}catch{}}function B(l){return l&&l.then}function V(l){return l}function E(l){return t.reject(l)}const d=f("state"),L=f("value"),z=f("finally"),j=f("parentPromiseValue"),q=f("parentPromiseState"),X=null,A=!0,Y=!1;function M(l,s){return a=>{try{G(l,s,a)}catch(h){G(l,!1,h)}}}const le=f("currentTaskTrace");function G(l,s,a){const h=function(){let l=!1;return function(a){return function(){l||(l=!0,a.apply(null,arguments))}}}();if(l===a)throw new TypeError("Promise resolved with itself");if(l[d]===X){let w=null;try{("object"==typeof a||"function"==typeof a)&&(w=a&&a.then)}catch(C){return h(()=>{G(l,!1,C)})(),l}if(s!==Y&&a instanceof t&&a.hasOwnProperty(d)&&a.hasOwnProperty(L)&&a[d]!==X)re(a),G(l,a[d],a[L]);else if(s!==Y&&"function"==typeof w)try{w.call(a,h(M(l,s)),h(M(l,!1)))}catch(C){h(()=>{G(l,!1,C)})()}else{l[d]=s;const C=l[L];if(l[L]=a,l[z]===z&&s===A&&(l[d]=l[q],l[L]=l[j]),s===Y&&a instanceof Error){const k=n.currentTask&&n.currentTask.data&&n.currentTask.data.__creationTrace__;k&&c(a,le,{configurable:!0,enumerable:!1,writable:!0,value:k})}for(let k=0;k{try{const b=l[L],N=!!a&&z===a[z];N&&(a[j]=b,a[q]=C);const H=s.run(k,void 0,N&&k!==E&&k!==V?[]:[b]);G(a,!0,H)}catch(b){G(a,!1,b)}},a)}const p=function(){};class t{static toString(){return"function ZoneAwarePromise() { [native code] }"}static resolve(s){return G(new this(null),A,s)}static reject(s){return G(new this(null),Y,s)}static race(s){let a,h,w=new this((b,N)=>{a=b,h=N});function C(b){a(b)}function k(b){h(b)}for(let b of s)B(b)||(b=this.resolve(b)),b.then(C,k);return w}static all(s){return t.allWithCallback(s)}static allSettled(s){return(this&&this.prototype instanceof t?this:t).allWithCallback(s,{thenCallback:h=>({status:"fulfilled",value:h}),errorCallback:h=>({status:"rejected",reason:h})})}static allWithCallback(s,a){let h,w,C=new this((H,U)=>{h=H,w=U}),k=2,b=0;const N=[];for(let H of s){B(H)||(H=this.resolve(H));const U=b;try{H.then(Q=>{N[U]=a?a.thenCallback(Q):Q,k--,0===k&&h(N)},Q=>{a?(N[U]=a.errorCallback(Q),k--,0===k&&h(N)):w(Q)})}catch(Q){w(Q)}k++,b++}return k-=2,0===k&&h(N),C}constructor(s){const a=this;if(!(a instanceof t))throw new Error("Must be an instanceof Promise.");a[d]=X,a[L]=[];try{s&&s(M(a,A),M(a,Y))}catch(h){G(a,!1,h)}}get[Symbol.toStringTag](){return"Promise"}get[Symbol.species](){return t}then(s,a){let h=this.constructor[Symbol.species];(!h||"function"!=typeof h)&&(h=this.constructor||t);const w=new h(p),C=n.current;return this[d]==X?this[L].push(C,w,s,a):F(this,C,w,s,a),w}catch(s){return this.then(null,s)}finally(s){let a=this.constructor[Symbol.species];(!a||"function"!=typeof a)&&(a=t);const h=new a(p);h[z]=z;const w=n.current;return this[d]==X?this[L].push(w,h,s,s):F(this,w,h,s,s),h}}t.resolve=t.resolve,t.reject=t.reject,t.race=t.race,t.all=t.all;const o=e[T]=e.Promise;e.Promise=t;const g=f("thenPatched");function P(l){const s=l.prototype,a=r(s,"then");if(a&&(!1===a.writable||!a.configurable))return;const h=s.then;s[m]=h,l.prototype.then=function(w,C){return new t((b,N)=>{h.call(this,b,N)}).then(w,C)},l[g]=!0}return i.patchThen=P,o&&(P(o),ce(e,"fetch",l=>function K(l){return function(s,a){let h=l.apply(s,a);if(h instanceof t)return h;let w=h.constructor;return w[g]||P(w),h}}(l))),Promise[n.__symbol__("uncaughtPromiseErrors")]=_,t}),Zone.__load_patch("toString",e=>{const n=Function.prototype.toString,i=x("OriginalDelegate"),r=x("Promise"),c=x("Error"),u=function(){if("function"==typeof this){const T=this[i];if(T)return"function"==typeof T?n.call(T):Object.prototype.toString.call(T);if(this===Promise){const m=e[r];if(m)return n.call(m)}if(this===Error){const m=e[c];if(m)return n.call(m)}}return n.call(this)};u[i]=n,Function.prototype.toString=u;const f=Object.prototype.toString;Object.prototype.toString=function(){return"function"==typeof Promise&&this instanceof Promise?"[object Promise]":f.call(this)}});let me=!1;if(typeof window<"u")try{const e=Object.defineProperty({},"passive",{get:function(){me=!0}});window.addEventListener("test",e,e),window.removeEventListener("test",e,e)}catch{me=!1}const Et={useG:!0},ee={},Ke={},Je=new RegExp("^"+ke+"(\\w+)(true|false)$"),xe=x("propagationStopped");function Qe(e,n){const i=(n?n(e):e)+ie,r=(n?n(e):e)+se,c=ke+i,u=ke+r;ee[e]={},ee[e][ie]=c,ee[e][se]=u}function Tt(e,n,i){const r=i&&i.add||Se,c=i&&i.rm||Oe,u=i&&i.listeners||"eventListeners",f=i&&i.rmAll||"removeAllListeners",_=x(r),y="."+r+":",T="prependListener",m="."+T+":",S=function(E,d,L){if(E.isRemoved)return;const z=E.callback;"object"==typeof z&&z.handleEvent&&(E.callback=q=>z.handleEvent(q),E.originalDelegate=z),E.invoke(E,d,[L]);const j=E.options;j&&"object"==typeof j&&j.once&&d[c].call(d,L.type,E.originalDelegate?E.originalDelegate:E.callback,j)},D=function(E){if(!(E=E||e.event))return;const d=this||E.target||e,L=d[ee[E.type][ie]];if(L)if(1===L.length)S(L[0],d,E);else{const z=L.slice();for(let j=0;jfunction(c,u){c[xe]=!0,r&&r.apply(c,u)})}function yt(e,n,i,r,c){const u=Zone.__symbol__(r);if(n[u])return;const f=n[u]=n[r];n[r]=function(_,y,T){return y&&y.prototype&&c.forEach(function(m){const S=`${i}.${r}::`+m,D=y.prototype;if(D.hasOwnProperty(m)){const Z=e.ObjectGetOwnPropertyDescriptor(D,m);Z&&Z.value?(Z.value=e.wrapWithCurrentZone(Z.value,S),e._redefineProperty(y.prototype,m,Z)):D[m]&&(D[m]=e.wrapWithCurrentZone(D[m],S))}else D[m]&&(D[m]=e.wrapWithCurrentZone(D[m],S))}),f.call(n,_,y,T)},e.attachOriginToPatched(n[r],f)}const Ve=["absolutedeviceorientation","afterinput","afterprint","appinstalled","beforeinstallprompt","beforeprint","beforeunload","devicelight","devicemotion","deviceorientation","deviceorientationabsolute","deviceproximity","hashchange","languagechange","message","mozbeforepaint","offline","online","paint","pageshow","pagehide","popstate","rejectionhandled","storage","unhandledrejection","unload","userproximity","vrdisplayconnected","vrdisplaydisconnected","vrdisplaypresentchange"],wt=["encrypted","waitingforkey","msneedkey","mozinterruptbegin","mozinterruptend"],tt=["load"],nt=["blur","error","focus","load","resize","scroll","messageerror"],Dt=["bounce","finish","start"],rt=["loadstart","progress","abort","error","load","progress","timeout","loadend","readystatechange"],Ee=["upgradeneeded","complete","abort","success","error","blocked","versionchange","close"],St=["close","error","open","message"],Ot=["error","message"],Te=["abort","animationcancel","animationend","animationiteration","auxclick","beforeinput","blur","cancel","canplay","canplaythrough","change","compositionstart","compositionupdate","compositionend","cuechange","click","close","contextmenu","curechange","dblclick","drag","dragend","dragenter","dragexit","dragleave","dragover","drop","durationchange","emptied","ended","error","focus","focusin","focusout","gotpointercapture","input","invalid","keydown","keypress","keyup","load","loadstart","loadeddata","loadedmetadata","lostpointercapture","mousedown","mouseenter","mouseleave","mousemove","mouseout","mouseover","mouseup","mousewheel","orientationchange","pause","play","playing","pointercancel","pointerdown","pointerenter","pointerleave","pointerlockchange","mozpointerlockchange","webkitpointerlockerchange","pointerlockerror","mozpointerlockerror","webkitpointerlockerror","pointermove","pointout","pointerover","pointerup","progress","ratechange","reset","resize","scroll","seeked","seeking","select","selectionchange","selectstart","show","sort","stalled","submit","suspend","timeupdate","volumechange","touchcancel","touchmove","touchstart","touchend","transitioncancel","transitionend","waiting","wheel"].concat(["webglcontextrestored","webglcontextlost","webglcontextcreationerror"],["autocomplete","autocompleteerror"],["toggle"],["afterscriptexecute","beforescriptexecute","DOMContentLoaded","freeze","fullscreenchange","mozfullscreenchange","webkitfullscreenchange","msfullscreenchange","fullscreenerror","mozfullscreenerror","webkitfullscreenerror","msfullscreenerror","readystatechange","visibilitychange","resume"],Ve,["beforecopy","beforecut","beforepaste","copy","cut","paste","dragstart","loadend","animationstart","search","transitionrun","transitionstart","webkitanimationend","webkitanimationiteration","webkitanimationstart","webkittransitionend"],["activate","afterupdate","ariarequest","beforeactivate","beforedeactivate","beforeeditfocus","beforeupdate","cellchange","controlselect","dataavailable","datasetchanged","datasetcomplete","errorupdate","filterchange","layoutcomplete","losecapture","move","moveend","movestart","propertychange","resizeend","resizestart","rowenter","rowexit","rowsdelete","rowsinserted","command","compassneedscalibration","deactivate","help","mscontentzoom","msmanipulationstatechanged","msgesturechange","msgesturedoubletap","msgestureend","msgesturehold","msgesturestart","msgesturetap","msgotpointercapture","msinertiastart","mslostpointercapture","mspointercancel","mspointerdown","mspointerenter","mspointerhover","mspointerleave","mspointermove","mspointerout","mspointerover","mspointerup","pointerout","mssitemodejumplistitemremoved","msthumbnailclick","stop","storagecommit"]);function ot(e,n,i){if(!i||0===i.length)return n;const r=i.filter(u=>u.target===e);if(!r||0===r.length)return n;const c=r[0].ignoreProperties;return n.filter(u=>-1===c.indexOf(u))}function W(e,n,i,r){e&&Ye(e,ot(e,n,i),r)}Zone.__load_patch("util",(e,n,i)=>{i.patchOnProperties=Ye,i.patchMethod=ce,i.bindArguments=Ae,i.patchMacroTask=_t;const r=n.__symbol__("BLACK_LISTED_EVENTS"),c=n.__symbol__("UNPATCHED_EVENTS");e[c]&&(e[r]=e[c]),e[r]&&(n[r]=n[c]=e[r]),i.patchEventPrototype=gt,i.patchEventTarget=Tt,i.isIEOrEdge=mt,i.ObjectDefineProperty=he,i.ObjectGetOwnPropertyDescriptor=ue,i.ObjectCreate=Be,i.ArraySlice=ut,i.patchClass=ve,i.wrapWithCurrentZone=Le,i.filterProperties=ot,i.attachOriginToPatched=ae,i._redefineProperty=Object.defineProperty,i.patchCallbacks=yt,i.getGlobalObjects=()=>({globalSources:Ke,zoneSymbolEventNames:ee,eventNames:Te,isBrowser:je,isMix:We,isNode:Re,TRUE_STR:se,FALSE_STR:ie,ZONE_SYMBOL_PREFIX:ke,ADD_EVENT_LISTENER_STR:Se,REMOVE_EVENT_LISTENER_STR:Oe})});const Ne=x("zoneTask");function ge(e,n,i,r){let c=null,u=null;i+=r;const f={};function _(T){const m=T.data;return m.args[0]=function(){return T.invoke.apply(this,arguments)},m.handleId=c.apply(e,m.args),T}function y(T){return u.call(e,T.data.handleId)}c=ce(e,n+=r,T=>function(m,S){if("function"==typeof S[0]){const D={isPeriodic:"Interval"===r,delay:"Timeout"===r||"Interval"===r?S[1]||0:void 0,args:S},Z=S[0];S[0]=function(){try{return Z.apply(this,arguments)}finally{D.isPeriodic||("number"==typeof D.handleId?delete f[D.handleId]:D.handleId&&(D.handleId[Ne]=null))}};const B=Me(n,S[0],D,_,y);if(!B)return B;const V=B.data.handleId;return"number"==typeof V?f[V]=B:V&&(V[Ne]=B),V&&V.ref&&V.unref&&"function"==typeof V.ref&&"function"==typeof V.unref&&(B.ref=V.ref.bind(V),B.unref=V.unref.bind(V)),"number"==typeof V||V?V:B}return T.apply(e,S)}),u=ce(e,i,T=>function(m,S){const D=S[0];let Z;"number"==typeof D?Z=f[D]:(Z=D&&D[Ne],Z||(Z=D)),Z&&"string"==typeof Z.type?"notScheduled"!==Z.state&&(Z.cancelFn&&Z.data.isPeriodic||0===Z.runCount)&&("number"==typeof D?delete f[D]:D&&(D[Ne]=null),Z.zone.cancelTask(Z)):T.apply(e,S)})}Zone.__load_patch("legacy",e=>{const n=e[Zone.__symbol__("legacyPatch")];n&&n()}),Zone.__load_patch("queueMicrotask",(e,n,i)=>{i.patchMethod(e,"queueMicrotask",r=>function(c,u){n.current.scheduleMicroTask("queueMicrotask",u[0])})}),Zone.__load_patch("timers",e=>{const n="set",i="clear";ge(e,n,i,"Timeout"),ge(e,n,i,"Interval"),ge(e,n,i,"Immediate")}),Zone.__load_patch("requestAnimationFrame",e=>{ge(e,"request","cancel","AnimationFrame"),ge(e,"mozRequest","mozCancel","AnimationFrame"),ge(e,"webkitRequest","webkitCancel","AnimationFrame")}),Zone.__load_patch("blocking",(e,n)=>{const i=["alert","prompt","confirm"];for(let r=0;rfunction(y,T){return n.current.run(u,e,T,_)})}),Zone.__load_patch("EventTarget",(e,n,i)=>{(function Mt(e,n){n.patchEventPrototype(e,n)})(e,i),function Lt(e,n){if(Zone[n.symbol("patchEventTarget")])return;const{eventNames:i,zoneSymbolEventNames:r,TRUE_STR:c,FALSE_STR:u,ZONE_SYMBOL_PREFIX:f}=n.getGlobalObjects();for(let y=0;y{ve("MutationObserver"),ve("WebKitMutationObserver")}),Zone.__load_patch("IntersectionObserver",(e,n,i)=>{ve("IntersectionObserver")}),Zone.__load_patch("FileReader",(e,n,i)=>{ve("FileReader")}),Zone.__load_patch("on_property",(e,n,i)=>{!function Zt(e,n){if(Re&&!We||Zone[e.symbol("patchEvents")])return;const i=typeof WebSocket<"u",r=n.__Zone_ignore_on_properties;if(je){const f=window,_=function pt(){try{const e=pe.navigator.userAgent;if(-1!==e.indexOf("MSIE ")||-1!==e.indexOf("Trident/"))return!0}catch{}return!1}()?[{target:f,ignoreProperties:["error"]}]:[];W(f,Te.concat(["messageerror"]),r&&r.concat(_),de(f)),W(Document.prototype,Te,r),typeof f.SVGElement<"u"&&W(f.SVGElement.prototype,Te,r),W(Element.prototype,Te,r),W(HTMLElement.prototype,Te,r),W(HTMLMediaElement.prototype,wt,r),W(HTMLFrameSetElement.prototype,Ve.concat(nt),r),W(HTMLBodyElement.prototype,Ve.concat(nt),r),W(HTMLFrameElement.prototype,tt,r),W(HTMLIFrameElement.prototype,tt,r);const y=f.HTMLMarqueeElement;y&&W(y.prototype,Dt,r);const T=f.Worker;T&&W(T.prototype,Ot,r)}const c=n.XMLHttpRequest;c&&W(c.prototype,rt,r);const u=n.XMLHttpRequestEventTarget;u&&W(u&&u.prototype,rt,r),typeof IDBIndex<"u"&&(W(IDBIndex.prototype,Ee,r),W(IDBRequest.prototype,Ee,r),W(IDBOpenDBRequest.prototype,Ee,r),W(IDBDatabase.prototype,Ee,r),W(IDBTransaction.prototype,Ee,r),W(IDBCursor.prototype,Ee,r)),i&&W(WebSocket.prototype,St,r)}(i,e)}),Zone.__load_patch("customElements",(e,n,i)=>{!function It(e,n){const{isBrowser:i,isMix:r}=n.getGlobalObjects();(i||r)&&e.customElements&&"customElements"in e&&n.patchCallbacks(n,e.customElements,"customElements","define",["connectedCallback","disconnectedCallback","adoptedCallback","attributeChangedCallback"])}(e,i)}),Zone.__load_patch("XHR",(e,n)=>{!function y(T){const m=T.XMLHttpRequest;if(!m)return;const S=m.prototype;let Z=S[Ze],B=S[Ie];if(!Z){const v=T.XMLHttpRequestEventTarget;if(v){const M=v.prototype;Z=M[Ze],B=M[Ie]}}const V="readystatechange",E="scheduled";function d(v){const M=v.data,R=M.target;R[u]=!1,R[_]=!1;const J=R[c];Z||(Z=R[Ze],B=R[Ie]),J&&B.call(R,V,J);const le=R[c]=()=>{if(R.readyState===R.DONE)if(!M.aborted&&R[u]&&v.state===E){const te=R[n.__symbol__("loadfalse")];if(0!==R.status&&te&&te.length>0){const re=v.invoke;v.invoke=function(){const F=R[n.__symbol__("loadfalse")];for(let I=0;Ifunction(v,M){return v[r]=0==M[2],v[f]=M[1],j.apply(v,M)}),O=x("fetchTaskAborting"),X=x("fetchTaskScheduling"),A=ce(S,"send",()=>function(v,M){if(!0===n.current[X]||v[r])return A.apply(v,M);{const R={target:v,url:v[f],isPeriodic:!1,args:M,aborted:!1},J=Me("XMLHttpRequest.send",L,R,d,z);v&&!0===v[_]&&!R.aborted&&J.state===E&&J.invoke()}}),Y=ce(S,"abort",()=>function(v,M){const R=function D(v){return v[i]}(v);if(R&&"string"==typeof R.type){if(null==R.cancelFn||R.data&&R.data.aborted)return;R.zone.cancelTask(R)}else if(!0===n.current[O])return Y.apply(v,M)})}(e);const i=x("xhrTask"),r=x("xhrSync"),c=x("xhrListener"),u=x("xhrScheduled"),f=x("xhrURL"),_=x("xhrErrorBeforeScheduled")}),Zone.__load_patch("geolocation",e=>{e.navigator&&e.navigator.geolocation&&function dt(e,n){const i=e.constructor.name;for(let r=0;r{const y=function(){return _.apply(this,Ae(arguments,i+"."+c))};return ae(y,_),y})(u)}}}(e.navigator.geolocation,["getCurrentPosition","watchPosition"])}),Zone.__load_patch("PromiseRejectionEvent",(e,n)=>{function i(r){return function(c){et(e,r).forEach(f=>{const _=e.PromiseRejectionEvent;if(_){const y=new _(r,{promise:c.promise,reason:c.rejection});f.invoke(y)}})}}e.PromiseRejectionEvent&&(n[x("unhandledPromiseRejectionHandler")]=i("unhandledrejection"),n[x("rejectionHandledHandler")]=i("rejectionhandled"))})}},we=>{we(we.s=435)}]); + +"use strict";(self.webpackChunkcoverage_app=self.webpackChunkcoverage_app||[]).push([[179],{938:()=>{function me(e){return"function"==typeof e}function $o(e){const t=e(r=>{Error.call(r),r.stack=(new Error).stack});return t.prototype=Object.create(Error.prototype),t.prototype.constructor=t,t}const Uo=$o(e=>function(t){e(this),this.message=t?`${t.length} errors occurred during unsubscription:\n${t.map((r,o)=>`${o+1}) ${r.toString()}`).join("\n ")}`:"",this.name="UnsubscriptionError",this.errors=t});function Rr(e,n){if(e){const t=e.indexOf(n);0<=t&&e.splice(t,1)}}class Tt{constructor(n){this.initialTeardown=n,this.closed=!1,this._parentage=null,this._teardowns=null}unsubscribe(){let n;if(!this.closed){this.closed=!0;const{_parentage:t}=this;if(t)if(this._parentage=null,Array.isArray(t))for(const i of t)i.remove(this);else t.remove(this);const{initialTeardown:r}=this;if(me(r))try{r()}catch(i){n=i instanceof Uo?i.errors:[i]}const{_teardowns:o}=this;if(o){this._teardowns=null;for(const i of o)try{uu(i)}catch(s){n=n??[],s instanceof Uo?n=[...n,...s.errors]:n.push(s)}}if(n)throw new Uo(n)}}add(n){var t;if(n&&n!==this)if(this.closed)uu(n);else{if(n instanceof Tt){if(n.closed||n._hasParent(this))return;n._addParent(this)}(this._teardowns=null!==(t=this._teardowns)&&void 0!==t?t:[]).push(n)}}_hasParent(n){const{_parentage:t}=this;return t===n||Array.isArray(t)&&t.includes(n)}_addParent(n){const{_parentage:t}=this;this._parentage=Array.isArray(t)?(t.push(n),t):t?[t,n]:n}_removeParent(n){const{_parentage:t}=this;t===n?this._parentage=null:Array.isArray(t)&&Rr(t,n)}remove(n){const{_teardowns:t}=this;t&&Rr(t,n),n instanceof Tt&&n._removeParent(this)}}Tt.EMPTY=(()=>{const e=new Tt;return e.closed=!0,e})();const lu=Tt.EMPTY;function cu(e){return e instanceof Tt||e&&"closed"in e&&me(e.remove)&&me(e.add)&&me(e.unsubscribe)}function uu(e){me(e)?e():e.unsubscribe()}const wn={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},zo={setTimeout(...e){const{delegate:n}=zo;return(n?.setTimeout||setTimeout)(...e)},clearTimeout(e){const{delegate:n}=zo;return(n?.clearTimeout||clearTimeout)(e)},delegate:void 0};function du(e){zo.setTimeout(()=>{const{onUnhandledError:n}=wn;if(!n)throw e;n(e)})}function Go(){}const av=As("C",void 0,void 0);function As(e,n,t){return{kind:e,value:n,error:t}}let bn=null;function Wo(e){if(wn.useDeprecatedSynchronousErrorHandling){const n=!bn;if(n&&(bn={errorThrown:!1,error:null}),e(),n){const{errorThrown:t,error:r}=bn;if(bn=null,t)throw r}}else e()}class Ts extends Tt{constructor(n){super(),this.isStopped=!1,n?(this.destination=n,cu(n)&&n.add(this)):this.destination=dv}static create(n,t,r){return new xs(n,t,r)}next(n){this.isStopped?Fs(function cv(e){return As("N",e,void 0)}(n),this):this._next(n)}error(n){this.isStopped?Fs(function lv(e){return As("E",void 0,e)}(n),this):(this.isStopped=!0,this._error(n))}complete(){this.isStopped?Fs(av,this):(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe(),this.destination=null)}_next(n){this.destination.next(n)}_error(n){try{this.destination.error(n)}finally{this.unsubscribe()}}_complete(){try{this.destination.complete()}finally{this.unsubscribe()}}}class xs extends Ts{constructor(n,t,r){let o;if(super(),me(n))o=n;else if(n){let i;({next:o,error:t,complete:r}=n),this&&wn.useDeprecatedNextContext?(i=Object.create(n),i.unsubscribe=()=>this.unsubscribe()):i=n,o=o?.bind(i),t=t?.bind(i),r=r?.bind(i)}this.destination={next:o?Ns(o):Go,error:Ns(t??fu),complete:r?Ns(r):Go}}}function Ns(e,n){return(...t)=>{try{e(...t)}catch(r){wn.useDeprecatedSynchronousErrorHandling?function uv(e){wn.useDeprecatedSynchronousErrorHandling&&bn&&(bn.errorThrown=!0,bn.error=e)}(r):du(r)}}}function fu(e){throw e}function Fs(e,n){const{onStoppedNotification:t}=wn;t&&zo.setTimeout(()=>t(e,n))}const dv={closed:!0,next:Go,error:fu,complete:Go},Os="function"==typeof Symbol&&Symbol.observable||"@@observable";function hu(e){return e}let ze=(()=>{class e{constructor(t){t&&(this._subscribe=t)}lift(t){const r=new e;return r.source=this,r.operator=t,r}subscribe(t,r,o){const i=function hv(e){return e&&e instanceof Ts||function fv(e){return e&&me(e.next)&&me(e.error)&&me(e.complete)}(e)&&cu(e)}(t)?t:new xs(t,r,o);return Wo(()=>{const{operator:s,source:a}=this;i.add(s?s.call(i,a):a?this._subscribe(i):this._trySubscribe(i))}),i}_trySubscribe(t){try{return this._subscribe(t)}catch(r){t.error(r)}}forEach(t,r){return new(r=gu(r))((o,i)=>{let s;s=this.subscribe(a=>{try{t(a)}catch(l){i(l),s?.unsubscribe()}},i,o)})}_subscribe(t){var r;return null===(r=this.source)||void 0===r?void 0:r.subscribe(t)}[Os](){return this}pipe(...t){return function pu(e){return 0===e.length?hu:1===e.length?e[0]:function(t){return e.reduce((r,o)=>o(r),t)}}(t)(this)}toPromise(t){return new(t=gu(t))((r,o)=>{let i;this.subscribe(s=>i=s,s=>o(s),()=>r(i))})}}return e.create=n=>new e(n),e})();function gu(e){var n;return null!==(n=e??wn.Promise)&&void 0!==n?n:Promise}const pv=$o(e=>function(){e(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"});let Rs=(()=>{class e extends ze{constructor(){super(),this.closed=!1,this.observers=[],this.isStopped=!1,this.hasError=!1,this.thrownError=null}lift(t){const r=new mu(this,this);return r.operator=t,r}_throwIfClosed(){if(this.closed)throw new pv}next(t){Wo(()=>{if(this._throwIfClosed(),!this.isStopped){const r=this.observers.slice();for(const o of r)o.next(t)}})}error(t){Wo(()=>{if(this._throwIfClosed(),!this.isStopped){this.hasError=this.isStopped=!0,this.thrownError=t;const{observers:r}=this;for(;r.length;)r.shift().error(t)}})}complete(){Wo(()=>{if(this._throwIfClosed(),!this.isStopped){this.isStopped=!0;const{observers:t}=this;for(;t.length;)t.shift().complete()}})}unsubscribe(){this.isStopped=this.closed=!0,this.observers=null}get observed(){var t;return(null===(t=this.observers)||void 0===t?void 0:t.length)>0}_trySubscribe(t){return this._throwIfClosed(),super._trySubscribe(t)}_subscribe(t){return this._throwIfClosed(),this._checkFinalizedStatuses(t),this._innerSubscribe(t)}_innerSubscribe(t){const{hasError:r,isStopped:o,observers:i}=this;return r||o?lu:(i.push(t),new Tt(()=>Rr(i,t)))}_checkFinalizedStatuses(t){const{hasError:r,thrownError:o,isStopped:i}=this;r?t.error(o):i&&t.complete()}asObservable(){const t=new ze;return t.source=this,t}}return e.create=(n,t)=>new mu(n,t),e})();class mu extends Rs{constructor(n,t){super(),this.destination=n,this.source=t}next(n){var t,r;null===(r=null===(t=this.destination)||void 0===t?void 0:t.next)||void 0===r||r.call(t,n)}error(n){var t,r;null===(r=null===(t=this.destination)||void 0===t?void 0:t.error)||void 0===r||r.call(t,n)}complete(){var n,t;null===(t=null===(n=this.destination)||void 0===n?void 0:n.complete)||void 0===t||t.call(n)}_subscribe(n){var t,r;return null!==(r=null===(t=this.source)||void 0===t?void 0:t.subscribe(n))&&void 0!==r?r:lu}}function zn(e){return n=>{if(function gv(e){return me(e?.lift)}(n))return n.lift(function(t){try{return e(t,this)}catch(r){this.error(r)}});throw new TypeError("Unable to lift unknown Observable type")}}class Gn extends Ts{constructor(n,t,r,o,i){super(n),this.onFinalize=i,this._next=t?function(s){try{t(s)}catch(a){n.error(a)}}:super._next,this._error=o?function(s){try{o(s)}catch(a){n.error(a)}finally{this.unsubscribe()}}:super._error,this._complete=r?function(){try{r()}catch(s){n.error(s)}finally{this.unsubscribe()}}:super._complete}unsubscribe(){var n;const{closed:t}=this;super.unsubscribe(),!t&&(null===(n=this.onFinalize)||void 0===n||n.call(this))}}function Ps(e,n){return zn((t,r)=>{let o=0;t.subscribe(new Gn(r,i=>{r.next(e.call(n,i,o++))}))})}function En(e){return this instanceof En?(this.v=e,this):new En(e)}function vv(e,n,t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var o,r=t.apply(e,n||[]),i=[];return o={},s("next"),s("throw"),s("return"),o[Symbol.asyncIterator]=function(){return this},o;function s(h){r[h]&&(o[h]=function(p){return new Promise(function(m,D){i.push([h,p,m,D])>1||a(h,p)})})}function a(h,p){try{!function l(h){h.value instanceof En?Promise.resolve(h.value.v).then(c,u):d(i[0][2],h)}(r[h](p))}catch(m){d(i[0][3],m)}}function c(h){a("next",h)}function u(h){a("throw",h)}function d(h,p){h(p),i.shift(),i.length&&a(i[0][0],i[0][1])}}function yv(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,n=e[Symbol.asyncIterator];return n?n.call(e):(e=function yu(e){var n="function"==typeof Symbol&&Symbol.iterator,t=n&&e[n],r=0;if(t)return t.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(n?"Object is not iterable.":"Symbol.iterator is not defined.")}(e),t={},r("next"),r("throw"),r("return"),t[Symbol.asyncIterator]=function(){return this},t);function r(i){t[i]=e[i]&&function(s){return new Promise(function(a,l){!function o(i,s,a,l){Promise.resolve(l).then(function(c){i({value:c,done:a})},s)}(a,l,(s=e[i](s)).done,s.value)})}}}const Cu=e=>e&&"number"==typeof e.length&&"function"!=typeof e;function Du(e){return me(e?.then)}function wu(e){return me(e[Os])}function bu(e){return Symbol.asyncIterator&&me(e?.[Symbol.asyncIterator])}function Eu(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 Iu=function Dv(){return"function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator"}();function Mu(e){return me(e?.[Iu])}function Su(e){return vv(this,arguments,function*(){const t=e.getReader();try{for(;;){const{value:r,done:o}=yield En(t.read());if(o)return yield En(void 0);yield yield En(r)}}finally{t.releaseLock()}})}function Au(e){return me(e?.getReader)}function In(e){if(e instanceof ze)return e;if(null!=e){if(wu(e))return function wv(e){return new ze(n=>{const t=e[Os]();if(me(t.subscribe))return t.subscribe(n);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}(e);if(Cu(e))return function bv(e){return new ze(n=>{for(let t=0;t{e.then(t=>{n.closed||(n.next(t),n.complete())},t=>n.error(t)).then(null,du)})}(e);if(bu(e))return Tu(e);if(Mu(e))return function Iv(e){return new ze(n=>{for(const t of e)if(n.next(t),n.closed)return;n.complete()})}(e);if(Au(e))return function Mv(e){return Tu(Su(e))}(e)}throw Eu(e)}function Tu(e){return new ze(n=>{(function Sv(e,n){var t,r,o,i;return function mv(e,n,t,r){return new(t||(t=Promise))(function(i,s){function a(u){try{c(r.next(u))}catch(d){s(d)}}function l(u){try{c(r.throw(u))}catch(d){s(d)}}function c(u){u.done?i(u.value):function o(i){return i instanceof t?i:new t(function(s){s(i)})}(u.value).then(a,l)}c((r=r.apply(e,n||[])).next())})}(this,void 0,void 0,function*(){try{for(t=yv(e);!(r=yield t.next()).done;)if(n.next(r.value),n.closed)return}catch(s){o={error:s}}finally{try{r&&!r.done&&(i=t.return)&&(yield i.call(t))}finally{if(o)throw o.error}}n.complete()})})(e,n).catch(t=>n.error(t))})}function rn(e,n,t,r=0,o=!1){const i=n.schedule(function(){t(),o?e.add(this.schedule(null,r)):this.unsubscribe()},r);if(e.add(i),!o)return i}function xu(e,n,t=1/0){return me(n)?xu((r,o)=>Ps((i,s)=>n(r,i,o,s))(In(e(r,o))),t):("number"==typeof n&&(t=n),zn((r,o)=>function Av(e,n,t,r,o,i,s,a){const l=[];let c=0,u=0,d=!1;const h=()=>{d&&!l.length&&!c&&n.complete()},p=D=>c{i&&n.next(D),c++;let I=!1;In(t(D,u++)).subscribe(new Gn(n,S=>{o?.(S),i?p(S):n.next(S)},()=>{I=!0},void 0,()=>{if(I)try{for(c--;l.length&&cm(S)):m(S)}h()}catch(S){n.error(S)}}))};return e.subscribe(new Gn(n,p,()=>{d=!0,h()})),()=>{a?.()}}(r,o,e,t)))}const Ls=new ze(e=>e.complete());function Vs(e){return e[e.length-1]}function Nu(e,n=0){return zn((t,r)=>{t.subscribe(new Gn(r,o=>rn(r,e,()=>r.next(o),n),()=>rn(r,e,()=>r.complete(),n),o=>rn(r,e,()=>r.error(o),n)))})}function Fu(e,n=0){return zn((t,r)=>{r.add(e.schedule(()=>t.subscribe(r),n))})}function Ou(e,n){if(!e)throw new Error("Iterable cannot be null");return new ze(t=>{rn(t,n,()=>{const r=e[Symbol.asyncIterator]();rn(t,n,()=>{r.next().then(o=>{o.done?t.complete():t.next(o.value)})},0,!0)})})}function Bs(e,n){return n?function Hv(e,n){if(null!=e){if(wu(e))return function Pv(e,n){return In(e).pipe(Fu(n),Nu(n))}(e,n);if(Cu(e))return function Lv(e,n){return new ze(t=>{let r=0;return n.schedule(function(){r===e.length?t.complete():(t.next(e[r++]),t.closed||this.schedule())})})}(e,n);if(Du(e))return function kv(e,n){return In(e).pipe(Fu(n),Nu(n))}(e,n);if(bu(e))return Ou(e,n);if(Mu(e))return function Vv(e,n){return new ze(t=>{let r;return rn(t,n,()=>{r=e[Iu](),rn(t,n,()=>{let o,i;try{({value:o,done:i}=r.next())}catch(s){return void t.error(s)}i?t.complete():t.next(o)},0,!0)}),()=>me(r?.return)&&r.return()})}(e,n);if(Au(e))return function Bv(e,n){return Ou(Su(e),n)}(e,n)}throw Eu(e)}(e,n):In(e)}function jv(...e){const n=function Ov(e){return function Nv(e){return e&&me(e.schedule)}(Vs(e))?e.pop():void 0}(e),t=function Rv(e,n){return"number"==typeof Vs(e)?e.pop():n}(e,1/0),r=e;return r.length?1===r.length?In(r[0]):function Tv(e=1/0){return xu(hu,e)}(t)(Bs(r,n)):Ls}function Hs(e,n,...t){return!0===n?(e(),null):!1===n?null:n(...t).pipe(function $v(e){return e<=0?()=>Ls:zn((n,t)=>{let r=0;n.subscribe(new Gn(t,o=>{++r<=e&&(t.next(o),e<=r&&t.complete())}))})}(1)).subscribe(()=>e())}function ae(e){for(let n in e)if(e[n]===ae)return n;throw Error("Could not find renamed property on target object.")}function js(e,n){for(const t in n)n.hasOwnProperty(t)&&!e.hasOwnProperty(t)&&(e[t]=n[t])}function le(e){if("string"==typeof e)return e;if(Array.isArray(e))return"["+e.map(le).join(", ")+"]";if(null==e)return""+e;if(e.overriddenName)return`${e.overriddenName}`;if(e.name)return`${e.name}`;const n=e.toString();if(null==n)return""+n;const t=n.indexOf("\n");return-1===t?n:n.substring(0,t)}function $s(e,n){return null==e||""===e?null===n?"":n:null==n||""===n?e:e+" "+n}const zv=ae({__forward_ref__:ae});function ue(e){return e.__forward_ref__=ue,e.toString=function(){return le(this())},e}function P(e){return Us(e)?e():e}function Us(e){return"function"==typeof e&&e.hasOwnProperty(zv)&&e.__forward_ref__===ue}function zs(e){return e&&!!e.\u0275providers}const Ru="https://g.co/ng/security#xss";class A extends Error{constructor(n,t){super(function qo(e,n){return`NG0${Math.abs(e)}${n?": "+n.trim():""}`}(n,t)),this.code=n}}function j(e){return"string"==typeof e?e:null==e?"":String(e)}function Zo(e,n){throw new A(-201,!1)}function ut(e,n){null==e&&function re(e,n,t,r){throw new Error(`ASSERTION ERROR: ${e}`+(null==r?"":` [Expected=> ${t} ${r} ${n} <=Actual]`))}(n,e,null,"!=")}function de(e){return{token:e.token,providedIn:e.providedIn||null,factory:e.factory,value:void 0}}function $t(e){return{providers:e.providers||[],imports:e.imports||[]}}function Qo(e){return Pu(e,Yo)||Pu(e,Lu)}function Pu(e,n){return e.hasOwnProperty(n)?e[n]:null}function ku(e){return e&&(e.hasOwnProperty(Gs)||e.hasOwnProperty(Jv))?e[Gs]:null}const Yo=ae({\u0275prov:ae}),Gs=ae({\u0275inj:ae}),Lu=ae({ngInjectableDef:ae}),Jv=ae({ngInjectorDef:ae});var B=(()=>((B=B||{})[B.Default=0]="Default",B[B.Host=1]="Host",B[B.Self=2]="Self",B[B.SkipSelf=4]="SkipSelf",B[B.Optional=8]="Optional",B))();let Ws;function dt(e){const n=Ws;return Ws=e,n}function Vu(e,n,t){const r=Qo(e);return r&&"root"==r.providedIn?void 0===r.value?r.value=r.factory():r.value:t&B.Optional?null:void 0!==n?n:void Zo(le(e))}const fe=(()=>typeof globalThis<"u"&&globalThis||typeof global<"u"&&global||typeof window<"u"&&window||typeof self<"u"&&typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&self)(),Pr={},qs="__NG_DI_FLAG__",Ko="ngTempTokenPath",ty=/\n/gm,Bu="__source";let kr;function Wn(e){const n=kr;return kr=e,n}function ry(e,n=B.Default){if(void 0===kr)throw new A(-203,!1);return null===kr?Vu(e,void 0,n):kr.get(e,n&B.Optional?null:void 0,n)}function oe(e,n=B.Default){return(function Xv(){return Ws}()||ry)(P(e),n)}function Jo(e){return typeof e>"u"||"number"==typeof e?e:0|(e.optional&&8)|(e.host&&1)|(e.self&&2)|(e.skipSelf&&4)}function Zs(e){const n=[];for(let t=0;t((_t=_t||{})[_t.OnPush=0]="OnPush",_t[_t.Default=1]="Default",_t))(),xt=(()=>{return(e=xt||(xt={}))[e.Emulated=0]="Emulated",e[e.None=2]="None",e[e.ShadowDom=3]="ShadowDom",xt;var e})();const Ut={},te=[],Xo=ae({\u0275cmp:ae}),Qs=ae({\u0275dir:ae}),Ys=ae({\u0275pipe:ae}),ju=ae({\u0275mod:ae}),zt=ae({\u0275fac:ae}),Vr=ae({__NG_ELEMENT_ID__:ae});let ly=0;function Nt(e){return sn(()=>{const t=!0===e.standalone,r={},o={type:e.type,providersResolver:null,decls:e.decls,vars:e.vars,factory:null,template:e.template||null,consts:e.consts||null,ngContentSelectors:e.ngContentSelectors,hostBindings:e.hostBindings||null,hostVars:e.hostVars||0,hostAttrs:e.hostAttrs||null,contentQueries:e.contentQueries||null,declaredInputs:r,inputs:null,outputs:null,exportAs:e.exportAs||null,onPush:e.changeDetection===_t.OnPush,directiveDefs:null,pipeDefs:null,standalone:t,dependencies:t&&e.dependencies||null,getStandaloneInjector:null,selectors:e.selectors||te,viewQuery:e.viewQuery||null,features:e.features||null,data:e.data||{},encapsulation:e.encapsulation||xt.Emulated,id:"c"+ly++,styles:e.styles||te,_:null,setInput:null,schemas:e.schemas||null,tView:null,findHostDirectiveDefs:null,hostDirectives:null},i=e.dependencies,s=e.features;return o.inputs=zu(e.inputs,r),o.outputs=zu(e.outputs),s&&s.forEach(a=>a(o)),o.directiveDefs=i?()=>("function"==typeof i?i():i).map($u).filter(Uu):null,o.pipeDefs=i?()=>("function"==typeof i?i():i).map(Ge).filter(Uu):null,o})}function $u(e){return ie(e)||ke(e)}function Uu(e){return null!==e}function an(e){return sn(()=>({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 zu(e,n){if(null==e)return Ut;const t={};for(const r in e)if(e.hasOwnProperty(r)){let o=e[r],i=o;Array.isArray(o)&&(i=o[1],o=o[0]),t[o]=r,n&&(n[o]=i)}return t}const $=Nt;function Je(e){return{type:e.type,name:e.name,factory:null,pure:!1!==e.pure,standalone:!0===e.standalone,onDestroy:e.type.prototype.ngOnDestroy||null}}function ie(e){return e[Xo]||null}function ke(e){return e[Qs]||null}function Ge(e){return e[Ys]||null}const Z=11;function ot(e){return Array.isArray(e)&&"object"==typeof e[1]}function yt(e){return Array.isArray(e)&&!0===e[1]}function Xs(e){return 0!=(4&e.flags)}function Ur(e){return e.componentOffset>-1}function oi(e){return 1==(1&e.flags)}function Ct(e){return null!==e.template}function dy(e){return 0!=(256&e[2])}function Sn(e,n){return e.hasOwnProperty(zt)?e[zt]:null}class py{constructor(n,t,r){this.previousValue=n,this.currentValue=t,this.firstChange=r}isFirstChange(){return this.firstChange}}function Wt(){return Yu}function Yu(e){return e.type.prototype.ngOnChanges&&(e.setInput=my),gy}function gy(){const e=Ju(this),n=e?.current;if(n){const t=e.previous;if(t===Ut)e.previous=n;else for(let r in n)t[r]=n[r];e.current=null,this.ngOnChanges(n)}}function my(e,n,t,r){const o=this.declaredInputs[t],i=Ju(e)||function _y(e,n){return e[Ku]=n}(e,{previous:Ut,current:null}),s=i.current||(i.current={}),a=i.previous,l=a[o];s[o]=new py(l&&l.currentValue,n,a===Ut),e[r]=n}Wt.ngInherit=!0;const Ku="__ngSimpleChanges__";function Ju(e){return e[Ku]||null}function Re(e){for(;Array.isArray(e);)e=e[0];return e}function ii(e,n){return Re(n[e])}function it(e,n){return Re(n[e.index])}function td(e,n){return e.data[n]}function st(e,n){const t=n[e];return ot(t)?t:t[0]}function si(e){return 64==(64&e[2])}function ln(e,n){return null==n?null:e[n]}function nd(e){e[18]=0}function ta(e,n){e[5]+=n;let t=e,r=e[3];for(;null!==r&&(1===n&&1===t[5]||-1===n&&0===t[5]);)r[5]+=n,t=r,r=r[3]}const U={lFrame:fd(null),bindingsEnabled:!0};function od(){return U.bindingsEnabled}function E(){return U.lFrame.lView}function ee(){return U.lFrame.tView}function Q(e){return U.lFrame.contextLView=e,e[8]}function Y(e){return U.lFrame.contextLView=null,e}function Pe(){let e=id();for(;null!==e&&64===e.type;)e=e.parent;return e}function id(){return U.lFrame.currentTNode}function Ot(e,n){const t=U.lFrame;t.currentTNode=e,t.isParent=n}function na(){return U.lFrame.isParent}function ra(){U.lFrame.isParent=!1}function qe(){const e=U.lFrame;let n=e.bindingRootIndex;return-1===n&&(n=e.bindingRootIndex=e.tView.bindingStartIndex),n}function Jn(){return U.lFrame.bindingIndex++}function Zt(e){const n=U.lFrame,t=n.bindingIndex;return n.bindingIndex=n.bindingIndex+e,t}function xy(e,n){const t=U.lFrame;t.bindingIndex=t.bindingRootIndex=e,oa(n)}function oa(e){U.lFrame.currentDirectiveIndex=e}function sa(e){U.lFrame.currentQueryIndex=e}function Fy(e){const n=e[1];return 2===n.type?n.declTNode:1===n.type?e[6]:null}function ud(e,n,t){if(t&B.SkipSelf){let o=n,i=e;for(;!(o=o.parent,null!==o||t&B.Host||(o=Fy(i),null===o||(i=i[15],10&o.type))););if(null===o)return!1;n=o,e=i}const r=U.lFrame=dd();return r.currentTNode=n,r.lView=e,!0}function aa(e){const n=dd(),t=e[1];U.lFrame=n,n.currentTNode=t.firstChild,n.lView=e,n.tView=t,n.contextLView=e,n.bindingIndex=t.bindingStartIndex,n.inI18n=!1}function dd(){const e=U.lFrame,n=null===e?null:e.child;return null===n?fd(e):n}function fd(e){const n={currentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:-1,contextLView:null,elementDepthCount:0,currentNamespace:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:e,child:null,inI18n:!1};return null!==e&&(e.child=n),n}function hd(){const e=U.lFrame;return U.lFrame=e.parent,e.currentTNode=null,e.lView=null,e}const pd=hd;function la(){const e=hd();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 Ze(){return U.lFrame.selectedIndex}function An(e){U.lFrame.selectedIndex=e}function _e(){const e=U.lFrame;return td(e.tView,e.selectedIndex)}function ai(e,n){for(let t=n.directiveStart,r=n.directiveEnd;t=r)break}else n[l]<0&&(e[18]+=65536),(a>11>16&&(3&e[2])===n){e[2]+=2048;try{i.call(a)}finally{}}}else try{i.call(a)}finally{}}class Gr{constructor(n,t,r){this.factory=n,this.resolving=!1,this.canSeeViewProviders=t,this.injectImpl=r}}function da(e,n,t){let r=0;for(;rn){s=i-1;break}}}for(;i>16}(e),r=n;for(;t>0;)r=r[15],t--;return r}let fa=!0;function fi(e){const n=fa;return fa=e,n}let Gy=0;const Rt={};function hi(e,n){const t=bd(e,n);if(-1!==t)return t;const r=n[1];r.firstCreatePass&&(e.injectorIndex=n.length,ha(r.data,e),ha(n,null),ha(r.blueprint,null));const o=pa(e,n),i=e.injectorIndex;if(Cd(o)){const s=ui(o),a=di(o,n),l=a[1].data;for(let c=0;c<8;c++)n[i+c]=a[s+c]|l[s+c]}return n[i+8]=o,i}function ha(e,n){e.push(0,0,0,0,0,0,0,0,n)}function bd(e,n){return-1===e.injectorIndex||e.parent&&e.parent.injectorIndex===e.injectorIndex||null===n[e.injectorIndex+8]?-1:e.injectorIndex}function pa(e,n){if(e.parent&&-1!==e.parent.injectorIndex)return e.parent.injectorIndex;let t=0,r=null,o=n;for(;null!==o;){if(r=xd(o),null===r)return-1;if(t++,o=o[15],-1!==r.injectorIndex)return r.injectorIndex|t<<16}return-1}function ga(e,n,t){!function Wy(e,n,t){let r;"string"==typeof t?r=t.charCodeAt(0)||0:t.hasOwnProperty(Vr)&&(r=t[Vr]),null==r&&(r=t[Vr]=Gy++);const o=255&r;n.data[e+(o>>5)]|=1<=0?255&n:Yy:n}(t);if("function"==typeof i){if(!ud(n,e,r))return r&B.Host?Ed(o,0,r):Id(n,t,r,o);try{const s=i(r);if(null!=s||r&B.Optional)return s;Zo()}finally{pd()}}else if("number"==typeof i){let s=null,a=bd(e,n),l=-1,c=r&B.Host?n[16][6]:null;for((-1===a||r&B.SkipSelf)&&(l=-1===a?pa(e,n):n[a+8],-1!==l&&Td(r,!1)?(s=n[1],a=ui(l),n=di(l,n)):a=-1);-1!==a;){const u=n[1];if(Ad(i,a,u.data)){const d=Zy(a,n,t,s,r,c);if(d!==Rt)return d}l=n[a+8],-1!==l&&Td(r,n[1].data[a+8]===c)&&Ad(i,a,n)?(s=u,a=ui(l),n=di(l,n)):a=-1}}return o}function Zy(e,n,t,r,o,i){const s=n[1],a=s.data[e+8],u=function pi(e,n,t,r,o){const i=e.providerIndexes,s=n.data,a=1048575&i,l=e.directiveStart,u=i>>20,h=o?a+u:e.directiveEnd;for(let p=r?a:a+u;p=l&&m.type===t)return p}if(o){const p=s[l];if(p&&Ct(p)&&p.type===t)return l}return null}(a,s,t,null==r?Ur(a)&&fa:r!=s&&0!=(3&a.type),o&B.Host&&i===a);return null!==u?Tn(n,s,u,a):Rt}function Tn(e,n,t,r){let o=e[t];const i=n.data;if(function jy(e){return e instanceof Gr}(o)){const s=o;s.resolving&&function Gv(e,n){const t=n?`. Dependency path: ${n.join(" > ")} > ${e}`:"";throw new A(-200,`Circular dependency in DI detected for ${e}${t}`)}(function ne(e){return"function"==typeof e?e.name||e.toString():"object"==typeof e&&null!=e&&"function"==typeof e.type?e.type.name||e.type.toString():j(e)}(i[t]));const a=fi(s.canSeeViewProviders);s.resolving=!0;const l=s.injectImpl?dt(s.injectImpl):null;ud(e,r,B.Default);try{o=e[t]=s.factory(void 0,i,e,r),n.firstCreatePass&&t>=r.directiveStart&&function By(e,n,t){const{ngOnChanges:r,ngOnInit:o,ngDoCheck:i}=n.type.prototype;if(r){const s=Yu(n);(t.preOrderHooks||(t.preOrderHooks=[])).push(e,s),(t.preOrderCheckHooks||(t.preOrderCheckHooks=[])).push(e,s)}o&&(t.preOrderHooks||(t.preOrderHooks=[])).push(0-e,o),i&&((t.preOrderHooks||(t.preOrderHooks=[])).push(e,i),(t.preOrderCheckHooks||(t.preOrderCheckHooks=[])).push(e,i))}(t,i[t],n)}finally{null!==l&&dt(l),fi(a),s.resolving=!1,pd()}}return o}function Ad(e,n,t){return!!(t[n+(e>>5)]&1<{const n=e.prototype.constructor,t=n[zt]||ma(n),r=Object.prototype;let o=Object.getPrototypeOf(e.prototype).constructor;for(;o&&o!==r;){const i=o[zt]||ma(o);if(i&&i!==t)return i;o=Object.getPrototypeOf(o)}return i=>new i})}function ma(e){return Us(e)?()=>{const n=ma(P(e));return n&&n()}:Sn(e)}function xd(e){const n=e[1],t=n.type;return 2===t?n.declTNode:1===t?e[6]:null}const nr="__parameters__";function or(e,n,t){return sn(()=>{const r=function va(e){return function(...t){if(e){const r=e(...t);for(const o in r)this[o]=r[o]}}}(n);function o(...i){if(this instanceof o)return r.apply(this,i),this;const s=new o(...i);return a.annotation=s,a;function a(l,c,u){const d=l.hasOwnProperty(nr)?l[nr]:Object.defineProperty(l,nr,{value:[]})[nr];for(;d.length<=u;)d.push(null);return(d[u]=d[u]||[]).push(s),l}}return t&&(o.prototype=Object.create(t.prototype)),o.prototype.ngMetadataName=e,o.annotationCls=o,o})}class H{constructor(n,t){this._desc=n,this.ngMetadataName="InjectionToken",this.\u0275prov=void 0,"number"==typeof t?this.__NG_ELEMENT_ID__=t:void 0!==t&&(this.\u0275prov=de({token:this,providedIn:t.providedIn||"root",factory:t.factory}))}get multi(){return this}toString(){return`InjectionToken ${this._desc}`}}function xn(e,n){e.forEach(t=>Array.isArray(t)?xn(t,n):n(t))}function Fd(e,n,t){n>=e.length?e.push(t):e.splice(n,0,t)}function gi(e,n){return n>=e.length-1?e.pop():e.splice(n,1)[0]}function at(e,n,t){let r=ir(e,n);return r>=0?e[1|r]=t:(r=~r,function tC(e,n,t,r){let o=e.length;if(o==n)e.push(t,r);else if(1===o)e.push(r,e[0]),e[0]=t;else{for(o--,e.push(e[o-1],e[o]);o>n;)e[o]=e[o-2],o--;e[n]=t,e[n+1]=r}}(e,r,n,t)),r}function Ca(e,n){const t=ir(e,n);if(t>=0)return e[1|t]}function ir(e,n){return function Od(e,n,t){let r=0,o=e.length>>t;for(;o!==r;){const i=r+(o-r>>1),s=e[i<n?o=i:r=i+1}return~(o<((Xe=Xe||{})[Xe.Important=1]="Important",Xe[Xe.DashCase=2]="DashCase",Xe))();const Ma=new Map;let bC=0;const Aa="__ngContext__";function He(e,n){ot(n)?(e[Aa]=n[20],function IC(e){Ma.set(e[20],e)}(n)):e[Aa]=n}function xa(e,n){return undefined(e,n)}function Xr(e){const n=e[3];return yt(n)?n[3]:n}function Na(e){return Xd(e[13])}function Fa(e){return Xd(e[4])}function Xd(e){for(;null!==e&&!yt(e);)e=e[4];return e}function ar(e,n,t,r,o){if(null!=r){let i,s=!1;yt(r)?i=r:ot(r)&&(s=!0,r=r[0]);const a=Re(r);0===e&&null!==t?null==o?sf(n,t,a):Nn(n,t,a,o||null,!0):1===e&&null!==t?Nn(n,t,a,o||null,!0):2===e?function Ba(e,n,t){const r=Di(e,n);r&&function GC(e,n,t,r){e.removeChild(n,t,r)}(e,r,n,t)}(n,a,s):3===e&&n.destroyNode(a),null!=i&&function ZC(e,n,t,r,o){const i=t[7];i!==Re(t)&&ar(n,e,r,i,o);for(let a=10;a0&&(e[t-1][4]=r[4]);const i=gi(e,10+n);!function LC(e,n){eo(e,n,n[Z],2,null,null),n[0]=null,n[6]=null}(r[1],r);const s=i[19];null!==s&&s.detachView(i[1]),r[3]=null,r[4]=null,r[2]&=-65}return r}function nf(e,n){if(!(128&n[2])){const t=n[Z];t.destroyNode&&eo(e,n,t,3,null,null),function HC(e){let n=e[13];if(!n)return ka(e[1],e);for(;n;){let t=null;if(ot(n))t=n[13];else{const r=n[10];r&&(t=r)}if(!t){for(;n&&!n[4]&&n!==e;)ot(n)&&ka(n[1],n),n=n[3];null===n&&(n=e),ot(n)&&ka(n[1],n),t=n&&n[4]}n=t}}(n)}}function ka(e,n){if(!(128&n[2])){n[2]&=-65,n[2]|=128,function zC(e,n){let t;if(null!=e&&null!=(t=e.destroyHooks))for(let r=0;r=0?r[o=s]():r[o=-s].unsubscribe(),i+=2}else{const s=r[o=t[i+1]];t[i].call(s)}if(null!==r){for(let i=o+1;i-1){const{encapsulation:i}=e.data[r.directiveStart+o];if(i===xt.None||i===xt.Emulated)return null}return it(r,t)}}(e,n.parent,t)}function Nn(e,n,t,r,o){e.insertBefore(n,t,r,o)}function sf(e,n,t){e.appendChild(n,t)}function af(e,n,t,r,o){null!==r?Nn(e,n,t,r,o):sf(e,n,t)}function Di(e,n){return e.parentNode(n)}let $a,uf=function cf(e,n,t){return 40&e.type?it(e,t):null};function wi(e,n,t,r){const o=rf(e,r,n),i=n[Z],a=function lf(e,n,t){return uf(e,n,t)}(r.parent||n[6],r,n);if(null!=o)if(Array.isArray(t))for(let l=0;l((Me=Me||{})[Me.NONE=0]="NONE",Me[Me.HTML=1]="HTML",Me[Me.STYLE=2]="STYLE",Me[Me.SCRIPT=3]="SCRIPT",Me[Me.URL=4]="URL",Me[Me.RESOURCE_URL=5]="RESOURCE_URL",Me))();function un(e){const n=function ro(){const e=E();return e&&e[12]}();return n?n.sanitize(Me.URL,e)||"":function to(e,n){const t=function sD(e){return e instanceof Cf&&e.getTypeName()||null}(e);if(null!=t&&t!==n){if("ResourceURL"===t&&"URL"===n)return!0;throw new Error(`Required a safe ${n}, got a ${t} (see ${Ru})`)}return t===n}(e,"URL")?cn(e):function za(e){return(e=String(e)).match(uD)?e:"unsafe:"+e}(j(e))}const Af=new H("ENVIRONMENT_INITIALIZER"),Tf=new H("INJECTOR",-1),xf=new H("INJECTOR_DEF_TYPES");class Nf{get(n,t=Pr){if(t===Pr){const r=new Error(`NullInjectorError: No provider for ${le(n)}!`);throw r.name="NullInjectorError",r}return t}}function ED(...e){return{\u0275providers:Ff(0,e),\u0275fromNgModule:!0}}function Ff(e,...n){const t=[],r=new Set;let o;return xn(n,i=>{const s=i;Za(s,t,[],r)&&(o||(o=[]),o.push(s))}),void 0!==o&&Of(o,t),t}function Of(e,n){for(let t=0;t{n.push(i)})}}function Za(e,n,t,r){if(!(e=P(e)))return!1;let o=null,i=ku(e);const s=!i&&ie(e);if(i||s){if(s&&!s.standalone)return!1;o=e}else{const l=e.ngModule;if(i=ku(l),!i)return!1;o=l}const a=r.has(o);if(s){if(a)return!1;if(r.add(o),s.dependencies){const l="function"==typeof s.dependencies?s.dependencies():s.dependencies;for(const c of l)Za(c,n,t,r)}}else{if(!i)return!1;{if(null!=i.imports&&!a){let c;r.add(o);try{xn(i.imports,u=>{Za(u,n,t,r)&&(c||(c=[]),c.push(u))})}finally{}void 0!==c&&Of(c,n)}if(!a){const c=Sn(o)||(()=>new o);n.push({provide:o,useFactory:c,deps:te},{provide:xf,useValue:o,multi:!0},{provide:Af,useValue:()=>oe(o),multi:!0})}const l=i.providers;null==l||a||Qa(l,u=>{n.push(u)})}}return o!==e&&void 0!==e.providers}function Qa(e,n){for(let t of e)zs(t)&&(t=t.\u0275providers),Array.isArray(t)?Qa(t,n):n(t)}const ID=ae({provide:String,useValue:ae});function Ya(e){return null!==e&&"object"==typeof e&&ID in e}function On(e){return"function"==typeof e}const Ka=new H("Set Injector scope."),Si={},SD={};let Ja;function Ai(){return void 0===Ja&&(Ja=new Nf),Ja}class lr{}class kf extends lr{get destroyed(){return this._destroyed}constructor(n,t,r,o){super(),this.parent=t,this.source=r,this.scopes=o,this.records=new Map,this._ngOnDestroyHooks=new Set,this._onDestroyHooks=[],this._destroyed=!1,el(n,s=>this.processProvider(s)),this.records.set(Tf,cr(void 0,this)),o.has("environment")&&this.records.set(lr,cr(void 0,this));const i=this.records.get(Ka);null!=i&&"string"==typeof i.value&&this.scopes.add(i.value),this.injectorDefTypes=new Set(this.get(xf.multi,te,B.Self))}destroy(){this.assertNotDestroyed(),this._destroyed=!0;try{for(const n of this._ngOnDestroyHooks)n.ngOnDestroy();for(const n of this._onDestroyHooks)n()}finally{this.records.clear(),this._ngOnDestroyHooks.clear(),this.injectorDefTypes.clear(),this._onDestroyHooks.length=0}}onDestroy(n){this._onDestroyHooks.push(n)}runInContext(n){this.assertNotDestroyed();const t=Wn(this),r=dt(void 0);try{return n()}finally{Wn(t),dt(r)}}get(n,t=Pr,r=B.Default){this.assertNotDestroyed(),r=Jo(r);const o=Wn(this),i=dt(void 0);try{if(!(r&B.SkipSelf)){let a=this.records.get(n);if(void 0===a){const l=function FD(e){return"function"==typeof e||"object"==typeof e&&e instanceof H}(n)&&Qo(n);a=l&&this.injectableDefInScope(l)?cr(Xa(n),Si):null,this.records.set(n,a)}if(null!=a)return this.hydrate(n,a)}return(r&B.Self?Ai():this.parent).get(n,t=r&B.Optional&&t===Pr?null:t)}catch(s){if("NullInjectorError"===s.name){if((s[Ko]=s[Ko]||[]).unshift(le(n)),o)throw s;return function sy(e,n,t,r){const o=e[Ko];throw n[Bu]&&o.unshift(n[Bu]),e.message=function ay(e,n,t,r=null){e=e&&"\n"===e.charAt(0)&&"\u0275"==e.charAt(1)?e.slice(2):e;let o=le(n);if(Array.isArray(n))o=n.map(le).join(" -> ");else if("object"==typeof n){let i=[];for(let s in n)if(n.hasOwnProperty(s)){let a=n[s];i.push(s+":"+("string"==typeof a?JSON.stringify(a):le(a)))}o=`{${i.join(", ")}}`}return`${t}${r?"("+r+")":""}[${o}]: ${e.replace(ty,"\n ")}`}("\n"+e.message,o,t,r),e.ngTokenPath=o,e[Ko]=null,e}(s,n,"R3InjectorError",this.source)}throw s}finally{dt(i),Wn(o)}}resolveInjectorInitializers(){const n=Wn(this),t=dt(void 0);try{const r=this.get(Af.multi,te,B.Self);for(const o of r)o()}finally{Wn(n),dt(t)}}toString(){const n=[],t=this.records;for(const r of t.keys())n.push(le(r));return`R3Injector[${n.join(", ")}]`}assertNotDestroyed(){if(this._destroyed)throw new A(205,!1)}processProvider(n){let t=On(n=P(n))?n:P(n&&n.provide);const r=function TD(e){return Ya(e)?cr(void 0,e.useValue):cr(Lf(e),Si)}(n);if(On(n)||!0!==n.multi)this.records.get(t);else{let o=this.records.get(t);o||(o=cr(void 0,Si,!0),o.factory=()=>Zs(o.multi),this.records.set(t,o)),t=n,o.multi.push(n)}this.records.set(t,r)}hydrate(n,t){return t.value===Si&&(t.value=SD,t.value=t.factory()),"object"==typeof t.value&&t.value&&function ND(e){return null!==e&&"object"==typeof e&&"function"==typeof e.ngOnDestroy}(t.value)&&this._ngOnDestroyHooks.add(t.value),t.value}injectableDefInScope(n){if(!n.providedIn)return!1;const t=P(n.providedIn);return"string"==typeof t?"any"===t||this.scopes.has(t):this.injectorDefTypes.has(t)}}function Xa(e){const n=Qo(e),t=null!==n?n.factory:Sn(e);if(null!==t)return t;if(e instanceof H)throw new A(204,!1);if(e instanceof Function)return function AD(e){const n=e.length;if(n>0)throw function Qr(e,n){const t=[];for(let r=0;rt.factory(e):()=>new e}(e);throw new A(204,!1)}function Lf(e,n,t){let r;if(On(e)){const o=P(e);return Sn(o)||Xa(o)}if(Ya(e))r=()=>P(e.useValue);else if(function Pf(e){return!(!e||!e.useFactory)}(e))r=()=>e.useFactory(...Zs(e.deps||[]));else if(function Rf(e){return!(!e||!e.useExisting)}(e))r=()=>oe(P(e.useExisting));else{const o=P(e&&(e.useClass||e.provide));if(!function xD(e){return!!e.deps}(e))return Sn(o)||Xa(o);r=()=>new o(...Zs(e.deps))}return r}function cr(e,n,t=!1){return{factory:e,value:n,multi:t?[]:void 0}}function el(e,n){for(const t of e)Array.isArray(t)?el(t,n):t&&zs(t)?el(t.\u0275providers,n):n(t)}class OD{}class Vf{}class PD{resolveComponentFactory(n){throw function RD(e){const n=Error(`No component factory found for ${le(e)}. Did you add it to @NgModule.entryComponents?`);return n.ngComponent=e,n}(n)}}let Ti=(()=>{class e{}return e.NULL=new PD,e})();function kD(){return ur(Pe(),E())}function ur(e,n){return new Dt(it(e,n))}let Dt=(()=>{class e{constructor(t){this.nativeElement=t}}return e.__NG_ELEMENT_ID__=kD,e})();class Hf{}let Rn=(()=>{class e{}return e.__NG_ELEMENT_ID__=()=>function VD(){const e=E(),t=st(Pe().index,e);return(ot(t)?t:e)[Z]}(),e})(),BD=(()=>{class e{}return e.\u0275prov=de({token:e,providedIn:"root",factory:()=>null}),e})();class xi{constructor(n){this.full=n,this.major=n.split(".")[0],this.minor=n.split(".")[1],this.patch=n.split(".").slice(2).join(".")}}const HD=new xi("15.1.0"),tl={};function rl(e){return e.ngOriginalError}class dr{constructor(){this._console=console}handleError(n){const t=this._findOriginalError(n);this._console.error("ERROR",n),t&&this._console.error("ORIGINAL ERROR",t)}_findOriginalError(n){let t=n&&rl(n);for(;t&&rl(t);)t=rl(t);return t||null}}function ol(e){return e.ownerDocument.defaultView}function $f(e,n,t){let r=e.length;for(;;){const o=e.indexOf(n,t);if(-1===o)return o;if(0===o||e.charCodeAt(o-1)<=32){const i=n.length;if(o+i===r||e.charCodeAt(o+i)<=32)return o}t=o+1}}const Uf="ng-template";function YD(e,n,t){let r=0;for(;ri?"":o[d+1].toLowerCase();const p=8&r?h:null;if(p&&-1!==$f(p,c,0)||2&r&&c!==h){if(wt(r))return!1;s=!0}}}}else{if(!s&&!wt(r)&&!wt(l))return!1;if(s&&wt(l))continue;s=!1,r=l|1&r}}return wt(r)||s}function wt(e){return 0==(1&e)}function XD(e,n,t,r){if(null===n)return-1;let o=0;if(r||!t){let i=!1;for(;o-1)for(t++;t0?'="'+a+'"':"")+"]"}else 8&r?o+="."+s:4&r&&(o+=" "+s);else""!==o&&!wt(s)&&(n+=Wf(i,o),o=""),r=s,i=i||!wt(r);t++}return""!==o&&(n+=Wf(i,o)),n}const z={};function f(e){qf(ee(),E(),Ze()+e,!1)}function qf(e,n,t,r){if(!r)if(3==(3&n[2])){const i=e.preOrderCheckHooks;null!==i&&li(n,i,t)}else{const i=e.preOrderHooks;null!==i&&ci(n,i,0,t)}An(t)}function Kf(e,n=null,t=null,r){const o=Jf(e,n,t,r);return o.resolveInjectorInitializers(),o}function Jf(e,n=null,t=null,r,o=new Set){const i=[t||te,ED(e)];return r=r||("object"==typeof e?void 0:le(e)),new kf(i,n||Ai(),r||null,o)}let dn=(()=>{class e{static create(t,r){if(Array.isArray(t))return Kf({name:""},r,t,"");{const o=t.name??"";return Kf({name:o},t.parent,t.providers,o)}}}return e.THROW_IF_NOT_FOUND=Pr,e.NULL=new Nf,e.\u0275prov=de({token:e,providedIn:"any",factory:()=>oe(Tf)}),e.__NG_ELEMENT_ID__=-1,e})();function M(e,n=B.Default){const t=E();return null===t?oe(e,n):Md(Pe(),t,P(e),n)}function ih(e,n){const t=e.contentQueries;if(null!==t)for(let r=0;r22&&qf(e,n,22,!1),t(r,o)}finally{An(i)}}function dl(e,n,t){if(Xs(n)){const o=n.directiveEnd;for(let i=n.directiveStart;i0;){const t=e[--n];if("number"==typeof t&&t<0)return t}return 0})(s)!=a&&s.push(a),s.push(t,r,i)}}(e,n,r,oo(e,t,o.hostVars,z),o)}function Pt(e,n,t,r,o,i){const s=it(e,n);!function _l(e,n,t,r,o,i,s){if(null==i)e.removeAttribute(n,o,t);else{const a=null==s?j(i):s(i,r||"",o);e.setAttribute(n,o,a,t)}}(n[Z],s,i,e.value,t,r,o)}function Gw(e,n,t,r,o,i){const s=i[n];if(null!==s){const a=r.setInput;for(let l=0;l0&&vl(t)}}function vl(e){for(let r=Na(e);null!==r;r=Fa(r))for(let o=10;o0&&vl(i)}const t=e[1].components;if(null!==t)for(let r=0;r0&&vl(o)}}function Yw(e,n){const t=st(n,e),r=t[1];(function Kw(e,n){for(let t=n.length;t-1&&(Pa(n,r),gi(t,r))}this._attachedToViewContainer=!1}nf(this._lView[1],this._lView)}onDestroy(n){!function lh(e,n,t,r){const o=gh(n);null===t?o.push(r):(o.push(t),e.firstCreatePass&&mh(e).push(r,o.length-1))}(this._lView[1],this._lView,null,n)}markForCheck(){yl(this._cdRefInjectingView||this._lView)}detach(){this._lView[2]&=-65}reattach(){this._lView[2]|=64}detectChanges(){Pi(this._lView[1],this._lView,this.context)}checkNoChanges(){}attachToViewContainerRef(){if(this._appRef)throw new A(902,!1);this._attachedToViewContainer=!0}detachFromAppRef(){this._appRef=null,function BC(e,n){eo(e,n,n[Z],2,null,null)}(this._lView[1],this._lView)}attachToAppRef(n){if(this._attachedToViewContainer)throw new A(902,!1);this._appRef=n}}class Jw extends io{constructor(n){super(n),this._view=n}detectChanges(){const n=this._view;Pi(n[1],n,n[8],!1)}checkNoChanges(){}get context(){return null}}class yh extends Ti{constructor(n){super(),this.ngModule=n}resolveComponentFactory(n){const t=ie(n);return new so(t,this.ngModule)}}function Ch(e){const n=[];for(let t in e)e.hasOwnProperty(t)&&n.push({propName:e[t],templateName:t});return n}class eb{constructor(n,t){this.injector=n,this.parentInjector=t}get(n,t,r){r=Jo(r);const o=this.injector.get(n,tl,r);return o!==tl||t===tl?o:this.parentInjector.get(n,t,r)}}class so extends Vf{get inputs(){return Ch(this.componentDef.inputs)}get outputs(){return Ch(this.componentDef.outputs)}constructor(n,t){super(),this.componentDef=n,this.ngModule=t,this.componentType=n.type,this.selector=function iw(e){return e.map(ow).join(",")}(n.selectors),this.ngContentSelectors=n.ngContentSelectors?n.ngContentSelectors:[],this.isBoundToModule=!!t}create(n,t,r,o){let i=(o=o||this.ngModule)instanceof lr?o:o?.injector;i&&null!==this.componentDef.getStandaloneInjector&&(i=this.componentDef.getStandaloneInjector(i)||i);const s=i?new eb(n,i):n,a=s.get(Hf,null);if(null===a)throw new A(407,!1);const l=s.get(BD,null),c=a.createRenderer(null,this.componentDef),u=this.componentDef.selectors[0][0]||"div",d=r?function xw(e,n,t){return e.selectRootElement(n,t===xt.ShadowDom)}(c,r,this.componentDef.encapsulation):Ra(c,u,function Xw(e){const n=e.toLowerCase();return"svg"===n?"svg":"math"===n?"math":null}(u)),h=this.componentDef.onPush?288:272,p=pl(0,null,null,1,0,null,null,null,null,null),m=Fi(null,p,null,h,null,null,a,c,l,s,null);let D,I;aa(m);try{const S=this.componentDef;let O,b=null;S.findHostDirectiveDefs?(O=[],b=new Map,S.findHostDirectiveDefs(S,O,b),O.push(S)):O=[S];const V=function nb(e,n){const t=e[1];return e[22]=n,pr(t,22,2,"#host",null)}(m,d),ce=function rb(e,n,t,r,o,i,s,a){const l=o[1];!function ob(e,n,t,r){for(const o of e)n.mergedAttrs=Wr(n.mergedAttrs,o.hostAttrs);null!==n.mergedAttrs&&(ki(n,n.mergedAttrs,!0),null!==t&&gf(r,t,n))}(r,e,n,s);const c=i.createRenderer(n,t),u=Fi(o,ah(t),null,t.onPush?32:16,o[e.index],e,i,c,a||null,null,null);return l.firstCreatePass&&ml(l,e,r.length-1),Ri(o,u),o[e.index]=u}(V,d,S,O,m,a,c);I=td(p,22),d&&function sb(e,n,t,r){if(r)da(e,t,["ng-version",HD.full]);else{const{attrs:o,classes:i}=function sw(e){const n=[],t=[];let r=1,o=2;for(;r0&&pf(e,t,i.join(" "))}}(c,S,d,r),void 0!==t&&function ab(e,n,t){const r=e.projection=[];for(let o=0;o=0;r--){const o=e[r];o.hostVars=n+=o.hostVars,o.hostAttrs=Wr(o.hostAttrs,t=Wr(t,o.hostAttrs))}}(r)}function wl(e){return e===Ut?{}:e===te?[]:e}function ub(e,n){const t=e.viewQuery;e.viewQuery=t?(r,o)=>{n(r,o),t(r,o)}:n}function db(e,n){const t=e.contentQueries;e.contentQueries=t?(r,o,i)=>{n(r,o,i),t(r,o,i)}:n}function fb(e,n){const t=e.hostBindings;e.hostBindings=t?(r,o)=>{n(r,o),t(r,o)}:n}let Vi=null;function Pn(){if(!Vi){const e=fe.Symbol;if(e&&e.iterator)Vi=e.iterator;else{const n=Object.getOwnPropertyNames(Map.prototype);for(let t=0;ts(Re(V[r.index])):r.index;let b=null;if(!s&&a&&(b=function Sb(e,n,t,r){const o=e.cleanup;if(null!=o)for(let i=0;il?a[l]:null}"string"==typeof s&&(i+=2)}return null}(e,n,o,r.index)),null!==b)(b.__ngLastListenerFn__||b).__ngNextListenerFn__=i,b.__ngLastListenerFn__=i,h=!1;else{i=Hh(r,n,u,i,!1);const V=t.listen(I,o,i);d.push(i,V),c&&c.push(o,O,S,S+1)}}else i=Hh(r,n,u,i,!1);const p=r.outputs;let m;if(h&&null!==p&&(m=p[o])){const D=m.length;if(D)for(let I=0;I-1?st(e.index,n):n);let l=Bh(n,0,r,s),c=i.__ngNextListenerFn__;for(;c;)l=Bh(n,0,c,s)&&l,c=c.__ngNextListenerFn__;return o&&!1===l&&(s.preventDefault(),s.returnValue=!1),l}}function _(e=1){return function Oy(e){return(U.lFrame.contextLView=function Ry(e,n){for(;e>0;)n=n[15],e--;return n}(e,U.lFrame.contextLView))[8]}(e)}function fn(e,n,t){return Il(e,"",n,"",t),fn}function Il(e,n,t,r,o){const i=E(),s=mr(i,n,t,r);return s!==z&<(ee(),_e(),i,e,s,i[Z],o,!1),Il}function ji(e,n){return e<<17|n<<2}function hn(e){return e>>17&32767}function Ml(e){return 2|e}function Ln(e){return(131068&e)>>2}function Sl(e,n){return-131069&e|n<<2}function Al(e){return 1|e}function Qh(e,n,t,r,o){const i=e[t+1],s=null===n;let a=r?hn(i):Ln(i),l=!1;for(;0!==a&&(!1===l||s);){const u=e[a+1];kb(e[a],n)&&(l=!0,e[a+1]=r?Al(u):Ml(u)),a=r?hn(u):Ln(u)}l&&(e[t+1]=r?Ml(i):Al(i))}function kb(e,n){return null===e||null==n||(Array.isArray(e)?e[1]:e)===n||!(!Array.isArray(e)||"string"!=typeof n)&&ir(e,n)>=0}const xe={textEnd:0,key:0,keyEnd:0,value:0,valueEnd:0};function Yh(e){return e.substring(xe.key,xe.keyEnd)}function Kh(e,n){const t=xe.textEnd;return t===n?-1:(n=xe.keyEnd=function Hb(e,n,t){for(;n32;)n++;return n}(e,xe.key=n,t),Er(e,n,t))}function Er(e,n,t){for(;n=0;t=Kh(n,t))at(e,Yh(n),!0)}function rp(e,n){return n>=e.expandoStartIndex}function op(e,n,t,r){const o=e.data;if(null===o[t+1]){const i=o[Ze()],s=rp(e,t);lp(i,r)&&null===n&&!s&&(n=!1),n=function Gb(e,n,t,r){const o=function ia(e){const n=U.lFrame.currentDirectiveIndex;return-1===n?null:e[n]}(e);let i=r?n.residualClasses:n.residualStyles;if(null===o)0===(r?n.classBindings:n.styleBindings)&&(t=co(t=Tl(null,e,n,t,r),n.attrs,r),i=null);else{const s=n.directiveStylingLast;if(-1===s||e[s]!==o)if(t=Tl(o,e,n,t,r),null===i){let l=function Wb(e,n,t){const r=t?n.classBindings:n.styleBindings;if(0!==Ln(r))return e[hn(r)]}(e,n,r);void 0!==l&&Array.isArray(l)&&(l=Tl(null,e,n,l[1],r),l=co(l,n.attrs,r),function qb(e,n,t,r){e[hn(t?n.classBindings:n.styleBindings)]=r}(e,n,r,l))}else i=function Zb(e,n,t){let r;const o=n.directiveEnd;for(let i=1+n.directiveStylingLast;i0)&&(c=!0)):u=t,o)if(0!==l){const h=hn(e[a+1]);e[r+1]=ji(h,a),0!==h&&(e[h+1]=Sl(e[h+1],r)),e[a+1]=function Fb(e,n){return 131071&e|n<<17}(e[a+1],r)}else e[r+1]=ji(a,0),0!==a&&(e[a+1]=Sl(e[a+1],r)),a=r;else e[r+1]=ji(l,0),0===a?a=r:e[l+1]=Sl(e[l+1],r),l=r;c&&(e[r+1]=Ml(e[r+1])),Qh(e,u,r,!0),Qh(e,u,r,!1),function Pb(e,n,t,r,o){const i=o?e.residualClasses:e.residualStyles;null!=i&&"string"==typeof n&&ir(i,n)>=0&&(t[r+1]=Al(t[r+1]))}(n,u,e,r,i),s=ji(a,l),i?n.classBindings=s:n.styleBindings=s}(o,i,n,t,s,r)}}function Tl(e,n,t,r,o){let i=null;const s=t.directiveEnd;let a=t.directiveStylingLast;for(-1===a?a=t.directiveStart:a++;a0;){const l=e[o],c=Array.isArray(l),u=c?l[1]:l,d=null===u;let h=t[o+1];h===z&&(h=d?te:void 0);let p=d?Ca(h,r):u===r?h:void 0;if(c&&!Ui(p)&&(p=Ca(l,r)),Ui(p)&&(a=p,s))return a;const m=e[o+1];o=s?hn(m):Ln(m)}if(null!==n){let l=i?n.residualClasses:n.residualStyles;null!=l&&(a=Ca(l,r))}return a}function Ui(e){return void 0!==e}function lp(e,n){return 0!=(e.flags&(n?8:16))}function w(e,n=""){const t=E(),r=ee(),o=e+22,i=r.firstCreatePass?pr(r,o,1,n,null):r.data[o],s=t[o]=function Oa(e,n){return e.createText(n)}(t[Z],n);wi(r,t,s,i),Ot(i,!1)}function F(e){return G("",e,""),F}function G(e,n,t){const r=E(),o=mr(r,e,n,t);return o!==z&&function Kt(e,n,t){const r=ii(n,e);!function ef(e,n,t){e.setValue(n,t)}(e[Z],r,t)}(r,Ze(),o),G}function Bt(e,n,t){!function It(e,n,t,r){const o=ee(),i=Zt(2);o.firstUpdatePass&&op(o,null,i,r);const s=E();if(t!==z&&je(s,i,t)){const a=o.data[Ze()];if(lp(a,r)&&!rp(o,i)){let l=r?a.classesWithoutHost:a.stylesWithoutHost;null!==l&&(t=$s(l,t||"")),El(o,a,s,t,r)}else!function Yb(e,n,t,r,o,i,s,a){o===z&&(o=te);let l=0,c=0,u=0>20;if(On(e)||!e.multi){const p=new Gr(l,o,M),m=Rl(a,n,o?u:u+h,d);-1===m?(ga(hi(c,s),i,a),Ol(i,e,n.length),n.push(a),c.directiveStart++,c.directiveEnd++,o&&(c.providerIndexes+=1048576),t.push(p),s.push(p)):(t[m]=p,s[m]=p)}else{const p=Rl(a,n,u+h,d),m=Rl(a,n,u,u+h),I=m>=0&&t[m];if(o&&!I||!o&&!(p>=0&&t[p])){ga(hi(c,s),i,a);const S=function gE(e,n,t,r,o){const i=new Gr(e,t,M);return i.multi=[],i.index=n,i.componentProviders=0,tg(i,o,r&&!t),i}(o?pE:hE,t.length,o,r,l);!o&&I&&(t[m].providerFactory=S),Ol(i,e,n.length,0),n.push(a),c.directiveStart++,c.directiveEnd++,o&&(c.providerIndexes+=1048576),t.push(S),s.push(S)}else Ol(i,e,p>-1?p:m,tg(t[o?m:p],l,!o&&r));!o&&r&&I&&t[m].componentProviders++}}}function Ol(e,n,t,r){const o=On(n),i=function MD(e){return!!e.useClass}(n);if(o||i){const l=(i?P(n.useClass):n).prototype.ngOnDestroy;if(l){const c=e.destroyHooks||(e.destroyHooks=[]);if(!o&&n.multi){const u=c.indexOf(t);-1===u?c.push(t,[r,l]):c[u+1].push(r,l)}else c.push(t,l)}}}function tg(e,n,t){return t&&e.componentProviders++,e.multi.push(n)-1}function Rl(e,n,t,r){for(let o=t;o{t.providersResolver=(r,o)=>function fE(e,n,t){const r=ee();if(r.firstCreatePass){const o=Ct(e);Fl(t,r.data,r.blueprint,o,!0),Fl(n,r.data,r.blueprint,o,!1)}}(r,o?o(e):e,n)}}class Sr{}class mE{}class ng extends Sr{constructor(n,t){super(),this._parent=t,this._bootstrapComponents=[],this.destroyCbs=[],this.componentFactoryResolver=new yh(this);const r=function rt(e,n){const t=e[ju]||null;if(!t&&!0===n)throw new Error(`Type ${le(e)} does not have '\u0275mod' property.`);return t}(n);this._bootstrapComponents=function Yt(e){return e instanceof Function?e():e}(r.bootstrap),this._r3Injector=Jf(n,t,[{provide:Sr,useValue:this},{provide:Ti,useValue:this.componentFactoryResolver}],le(n),new Set(["environment"])),this._r3Injector.resolveInjectorInitializers(),this.instance=this._r3Injector.get(n)}get injector(){return this._r3Injector}destroy(){const n=this._r3Injector;!n.destroyed&&n.destroy(),this.destroyCbs.forEach(t=>t()),this.destroyCbs=null}onDestroy(n){this.destroyCbs.push(n)}}class kl extends mE{constructor(n){super(),this.moduleType=n}create(n){return new ng(this.moduleType,n)}}function Zi(e,n,t,r){return function ug(e,n,t,r,o,i){const s=n+t;return je(e,s,o)?kt(e,s+1,i?r.call(i,o):r(o)):mo(e,s+1)}(E(),qe(),e,n,t,r)}function Vl(e,n,t,r,o){return function dg(e,n,t,r,o,i,s){const a=n+t;return kn(e,a,o,i)?kt(e,a+2,s?r.call(s,o,i):r(o,i)):mo(e,a+2)}(E(),qe(),e,n,t,r,o)}function Oe(e,n,t,r,o,i){return fg(E(),qe(),e,n,t,r,o,i)}function mo(e,n){const t=e[n];return t===z?void 0:t}function fg(e,n,t,r,o,i,s,a){const l=n+t;return function Bi(e,n,t,r,o){const i=kn(e,n,t,r);return je(e,n+2,o)||i}(e,l,o,i,s)?kt(e,l+3,a?r.call(a,o,i,s):r(o,i,s)):mo(e,l+3)}function Bl(e){return n=>{setTimeout(e,void 0,n)}}const be=class jE extends Rs{constructor(n=!1){super(),this.__isAsync=n}emit(n){super.next(n)}subscribe(n,t,r){let o=n,i=t||(()=>null),s=r;if(n&&"object"==typeof n){const l=n;o=l.next?.bind(l),i=l.error?.bind(l),s=l.complete?.bind(l)}this.__isAsync&&(i=Bl(i),o&&(o=Bl(o)),s&&(s=Bl(s)));const a=super.subscribe({next:o,error:i,complete:s});return n instanceof Tt&&n.add(a),a}};let Jt=(()=>{class e{}return e.__NG_ELEMENT_ID__=GE,e})();const UE=Jt,zE=class extends UE{constructor(n,t,r){super(),this._declarationLView=n,this._declarationTContainer=t,this.elementRef=r}createEmbeddedView(n,t){const r=this._declarationTContainer.tViews,o=Fi(this._declarationLView,r,n,16,null,r.declTNode,null,null,null,null,t||null);o[17]=this._declarationLView[this._declarationTContainer.index];const s=this._declarationLView[19];return null!==s&&(o[19]=s.createEmbeddedView(r)),ul(r,o,n),new io(o)}};function GE(){return function Qi(e,n){return 4&e.type?new zE(n,e,ur(e,n)):null}(Pe(),E())}let Ht=(()=>{class e{}return e.__NG_ELEMENT_ID__=WE,e})();function WE(){return function yg(e,n){let t;const r=n[e.index];if(yt(r))t=r;else{let o;if(8&e.type)o=Re(r);else{const i=n[Z];o=i.createComment("");const s=it(e,n);Nn(i,Di(i,s),o,function WC(e,n){return e.nextSibling(n)}(i,s),!1)}n[e.index]=t=ph(r,n,o,e),Ri(n,t)}return new _g(t,e,n)}(Pe(),E())}const qE=Ht,_g=class extends qE{constructor(n,t,r){super(),this._lContainer=n,this._hostTNode=t,this._hostLView=r}get element(){return ur(this._hostTNode,this._hostLView)}get injector(){return new er(this._hostTNode,this._hostLView)}get parentInjector(){const n=pa(this._hostTNode,this._hostLView);if(Cd(n)){const t=di(n,this._hostLView),r=ui(n);return new er(t[1].data[r+8],t)}return new er(null,this._hostLView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(n){const t=vg(this._lContainer);return null!==t&&t[n]||null}get length(){return this._lContainer.length-10}createEmbeddedView(n,t,r){let o,i;"number"==typeof r?o=r:null!=r&&(o=r.index,i=r.injector);const s=n.createEmbeddedView(t||{},i);return this.insert(s,o),s}createComponent(n,t,r,o,i){const s=n&&!function Zr(e){return"function"==typeof e}(n);let a;if(s)a=t;else{const d=t||{};a=d.index,r=d.injector,o=d.projectableNodes,i=d.environmentInjector||d.ngModuleRef}const l=s?n:new so(ie(n)),c=r||this.parentInjector;if(!i&&null==l.ngModule){const h=(s?c:this.parentInjector).get(lr,null);h&&(i=h)}const u=l.create(c,o,void 0,i);return this.insert(u.hostView,a),u}insert(n,t){const r=n._lView,o=r[1];if(function wy(e){return yt(e[3])}(r)){const u=this.indexOf(n);if(-1!==u)this.detach(u);else{const d=r[3],h=new _g(d,d[6],d[3]);h.detach(h.indexOf(n))}}const i=this._adjustIndex(t),s=this._lContainer;!function jC(e,n,t,r){const o=10+r,i=t.length;r>0&&(t[o-1][4]=n),r{class e{constructor(t){this.appInits=t,this.resolve=Ki,this.reject=Ki,this.initialized=!1,this.done=!1,this.donePromise=new Promise((r,o)=>{this.resolve=r,this.reject=o})}runInitializers(){if(this.initialized)return;const t=[],r=()=>{this.done=!0,this.resolve()};if(this.appInits)for(let o=0;o{i.subscribe({complete:a,error:l})});t.push(s)}}Promise.all(t).then(()=>{r()}).catch(o=>{this.reject(o)}),0===t.length&&r(),this.initialized=!0}}return e.\u0275fac=function(t){return new(t||e)(oe(Ug,8))},e.\u0275prov=de({token:e,factory:e.\u0275fac,providedIn:"root"}),e})();const yo=new H("AppId",{providedIn:"root",factory:function zg(){return`${Kl()}${Kl()}${Kl()}`}});function Kl(){return String.fromCharCode(97+Math.floor(25*Math.random()))}const Gg=new H("Platform Initializer"),Wg=new H("Platform ID",{providedIn:"platform",factory:()=>"unknown"}),E1=new H("appBootstrapListener"),Xt=new H("LocaleId",{providedIn:"root",factory:()=>function oy(e,n=B.Default){return oe(e,Jo(n))}(Xt,B.Optional|B.SkipSelf)||function I1(){return typeof $localize<"u"&&$localize.locale||Mr}()}),x1=(()=>Promise.resolve(0))();function Jl(e){typeof Zone>"u"?x1.then(()=>{e&&e.apply(null,null)}):Zone.current.scheduleMicroTask("scheduleMicrotask",e)}class $e{constructor({enableLongStackTrace:n=!1,shouldCoalesceEventChangeDetection:t=!1,shouldCoalesceRunChangeDetection:r=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new be(!1),this.onMicrotaskEmpty=new be(!1),this.onStable=new be(!1),this.onError=new be(!1),typeof Zone>"u")throw new A(908,!1);Zone.assertZonePatched();const o=this;o._nesting=0,o._outer=o._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(o._inner=o._inner.fork(new Zone.TaskTrackingZoneSpec)),n&&Zone.longStackTraceZoneSpec&&(o._inner=o._inner.fork(Zone.longStackTraceZoneSpec)),o.shouldCoalesceEventChangeDetection=!r&&t,o.shouldCoalesceRunChangeDetection=r,o.lastRequestAnimationFrameId=-1,o.nativeRequestAnimationFrame=function N1(){let e=fe.requestAnimationFrame,n=fe.cancelAnimationFrame;if(typeof Zone<"u"&&e&&n){const t=e[Zone.__symbol__("OriginalDelegate")];t&&(e=t);const r=n[Zone.__symbol__("OriginalDelegate")];r&&(n=r)}return{nativeRequestAnimationFrame:e,nativeCancelAnimationFrame:n}}().nativeRequestAnimationFrame,function R1(e){const n=()=>{!function O1(e){e.isCheckStableRunning||-1!==e.lastRequestAnimationFrameId||(e.lastRequestAnimationFrameId=e.nativeRequestAnimationFrame.call(fe,()=>{e.fakeTopEventTask||(e.fakeTopEventTask=Zone.root.scheduleEventTask("fakeTopEventTask",()=>{e.lastRequestAnimationFrameId=-1,ec(e),e.isCheckStableRunning=!0,Xl(e),e.isCheckStableRunning=!1},void 0,()=>{},()=>{})),e.fakeTopEventTask.invoke()}),ec(e))}(e)};e._inner=e._inner.fork({name:"angular",properties:{isAngularZone:!0},onInvokeTask:(t,r,o,i,s,a)=>{try{return Qg(e),t.invokeTask(o,i,s,a)}finally{(e.shouldCoalesceEventChangeDetection&&"eventTask"===i.type||e.shouldCoalesceRunChangeDetection)&&n(),Yg(e)}},onInvoke:(t,r,o,i,s,a,l)=>{try{return Qg(e),t.invoke(o,i,s,a,l)}finally{e.shouldCoalesceRunChangeDetection&&n(),Yg(e)}},onHasTask:(t,r,o,i)=>{t.hasTask(o,i),r===o&&("microTask"==i.change?(e._hasPendingMicrotasks=i.microTask,ec(e),Xl(e)):"macroTask"==i.change&&(e.hasPendingMacrotasks=i.macroTask))},onHandleError:(t,r,o,i)=>(t.handleError(o,i),e.runOutsideAngular(()=>e.onError.emit(i)),!1)})}(o)}static isInAngularZone(){return typeof Zone<"u"&&!0===Zone.current.get("isAngularZone")}static assertInAngularZone(){if(!$e.isInAngularZone())throw new A(909,!1)}static assertNotInAngularZone(){if($e.isInAngularZone())throw new A(909,!1)}run(n,t,r){return this._inner.run(n,t,r)}runTask(n,t,r,o){const i=this._inner,s=i.scheduleEventTask("NgZoneEvent: "+o,n,F1,Ki,Ki);try{return i.runTask(s,t,r)}finally{i.cancelTask(s)}}runGuarded(n,t,r){return this._inner.runGuarded(n,t,r)}runOutsideAngular(n){return this._outer.run(n)}}const F1={};function Xl(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 ec(e){e.hasPendingMicrotasks=!!(e._hasPendingMicrotasks||(e.shouldCoalesceEventChangeDetection||e.shouldCoalesceRunChangeDetection)&&-1!==e.lastRequestAnimationFrameId)}function Qg(e){e._nesting++,e.isStable&&(e.isStable=!1,e.onUnstable.emit(null))}function Yg(e){e._nesting--,Xl(e)}class P1{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new be,this.onMicrotaskEmpty=new be,this.onStable=new be,this.onError=new be}run(n,t,r){return n.apply(t,r)}runGuarded(n,t,r){return n.apply(t,r)}runOutsideAngular(n){return n()}runTask(n,t,r,o){return n.apply(t,r)}}const Kg=new H(""),Xi=new H("");let rc,tc=(()=>{class e{constructor(t,r,o){this._ngZone=t,this.registry=r,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,rc||(function k1(e){rc=e}(o),o.addToWindow(r)),this._watchAngularEvents(),t.run(()=>{this.taskTrackingZone=typeof Zone>"u"?null:Zone.current.get("TaskTrackingZone")})}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._didWork=!0,this._isZoneStable=!1}}),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.subscribe({next:()=>{$e.assertNotInAngularZone(),Jl(()=>{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())Jl(()=>{for(;0!==this._callbacks.length;){let t=this._callbacks.pop();clearTimeout(t.timeoutId),t.doneCb(this._didWork)}this._didWork=!1});else{let t=this.getPendingTasks();this._callbacks=this._callbacks.filter(r=>!r.updateCb||!r.updateCb(t)||(clearTimeout(r.timeoutId),!1)),this._didWork=!0}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(t=>({source:t.source,creationLocation:t.creationLocation,data:t.data})):[]}addCallback(t,r,o){let i=-1;r&&r>0&&(i=setTimeout(()=>{this._callbacks=this._callbacks.filter(s=>s.timeoutId!==i),t(this._didWork,this.getPendingTasks())},r)),this._callbacks.push({doneCb:t,timeoutId:i,updateCb:o})}whenStable(t,r,o){if(o&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is "zone.js/plugins/task-tracking" loaded?');this.addCallback(t,r,o),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}registerApplication(t){this.registry.registerApplication(t,this)}unregisterApplication(t){this.registry.unregisterApplication(t)}findProviders(t,r,o){return[]}}return e.\u0275fac=function(t){return new(t||e)(oe($e),oe(nc),oe(Xi))},e.\u0275prov=de({token:e,factory:e.\u0275fac}),e})(),nc=(()=>{class e{constructor(){this._applications=new Map}registerApplication(t,r){this._applications.set(t,r)}unregisterApplication(t){this._applications.delete(t)}unregisterAllApplications(){this._applications.clear()}getTestability(t){return this._applications.get(t)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(t,r=!0){return rc?.findTestabilityInTree(this,t,r)??null}}return e.\u0275fac=function(t){return new(t||e)},e.\u0275prov=de({token:e,factory:e.\u0275fac,providedIn:"platform"}),e})(),pn=null;const Jg=new H("AllowMultipleToken"),oc=new H("PlatformDestroyListeners");function em(e,n,t=[]){const r=`Platform: ${n}`,o=new H(r);return(i=[])=>{let s=ic();if(!s||s.injector.get(Jg,!1)){const a=[...t,...i,{provide:o,useValue:!0}];e?e(a):function B1(e){if(pn&&!pn.get(Jg,!1))throw new A(400,!1);pn=e;const n=e.get(nm);(function Xg(e){const n=e.get(Gg,null);n&&n.forEach(t=>t())})(e)}(function tm(e=[],n){return dn.create({name:n,providers:[{provide:Ka,useValue:"platform"},{provide:oc,useValue:new Set([()=>pn=null])},...e]})}(a,r))}return function j1(e){const n=ic();if(!n)throw new A(401,!1);return n}()}}function ic(){return pn?.get(nm)??null}let nm=(()=>{class e{constructor(t){this._injector=t,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(t,r){const o=function om(e,n){let t;return t="noop"===e?new P1:("zone.js"===e?void 0:e)||new $e(n),t}(r?.ngZone,function rm(e){return{enableLongStackTrace:!1,shouldCoalesceEventChangeDetection:!(!e||!e.ngZoneEventCoalescing)||!1,shouldCoalesceRunChangeDetection:!(!e||!e.ngZoneRunCoalescing)||!1}}(r)),i=[{provide:$e,useValue:o}];return o.run(()=>{const s=dn.create({providers:i,parent:this.injector,name:t.moduleType.name}),a=t.create(s),l=a.injector.get(dr,null);if(!l)throw new A(402,!1);return o.runOutsideAngular(()=>{const c=o.onError.subscribe({next:u=>{l.handleError(u)}});a.onDestroy(()=>{es(this._modules,a),c.unsubscribe()})}),function im(e,n,t){try{const r=t();return Hi(r)?r.catch(o=>{throw n.runOutsideAngular(()=>e.handleError(o)),o}):r}catch(r){throw n.runOutsideAngular(()=>e.handleError(r)),r}}(l,o,()=>{const c=a.injector.get(Ji);return c.runInitializers(),c.donePromise.then(()=>(function Np(e){ut(e,"Expected localeId to be defined"),"string"==typeof e&&(xp=e.toLowerCase().replace(/_/g,"-"))}(a.injector.get(Xt,Mr)||Mr),this._moduleDoBootstrap(a),a))})})}bootstrapModule(t,r=[]){const o=sm({},r);return function L1(e,n,t){const r=new kl(t);return Promise.resolve(r)}(0,0,t).then(i=>this.bootstrapModuleFactory(i,o))}_moduleDoBootstrap(t){const r=t.injector.get(sc);if(t._bootstrapComponents.length>0)t._bootstrapComponents.forEach(o=>r.bootstrap(o));else{if(!t.instance.ngDoBootstrap)throw new A(-403,!1);t.instance.ngDoBootstrap(r)}this._modules.push(t)}onDestroy(t){this._destroyListeners.push(t)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new A(404,!1);this._modules.slice().forEach(r=>r.destroy()),this._destroyListeners.forEach(r=>r());const t=this._injector.get(oc,null);t&&(t.forEach(r=>r()),t.clear()),this._destroyed=!0}get destroyed(){return this._destroyed}}return e.\u0275fac=function(t){return new(t||e)(oe(dn))},e.\u0275prov=de({token:e,factory:e.\u0275fac,providedIn:"platform"}),e})();function sm(e,n){return Array.isArray(n)?n.reduce(sm,e):{...e,...n}}let sc=(()=>{class e{get destroyed(){return this._destroyed}get injector(){return this._injector}constructor(t,r,o){this._zone=t,this._injector=r,this._exceptionHandler=o,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._stable=!0,this._destroyed=!1,this._destroyListeners=[],this.componentTypes=[],this.components=[],this._onMicrotaskEmptySubscription=this._zone.onMicrotaskEmpty.subscribe({next:()=>{this._zone.run(()=>{this.tick()})}});const i=new ze(a=>{this._stable=this._zone.isStable&&!this._zone.hasPendingMacrotasks&&!this._zone.hasPendingMicrotasks,this._zone.runOutsideAngular(()=>{a.next(this._stable),a.complete()})}),s=new ze(a=>{let l;this._zone.runOutsideAngular(()=>{l=this._zone.onStable.subscribe(()=>{$e.assertNotInAngularZone(),Jl(()=>{!this._stable&&!this._zone.hasPendingMacrotasks&&!this._zone.hasPendingMicrotasks&&(this._stable=!0,a.next(!0))})})});const c=this._zone.onUnstable.subscribe(()=>{$e.assertInAngularZone(),this._stable&&(this._stable=!1,this._zone.runOutsideAngular(()=>{a.next(!1)}))});return()=>{l.unsubscribe(),c.unsubscribe()}});this.isStable=jv(i,s.pipe(function Uv(e={}){const{connector:n=(()=>new Rs),resetOnError:t=!0,resetOnComplete:r=!0,resetOnRefCountZero:o=!0}=e;return i=>{let s=null,a=null,l=null,c=0,u=!1,d=!1;const h=()=>{a?.unsubscribe(),a=null},p=()=>{h(),s=l=null,u=d=!1},m=()=>{const D=s;p(),D?.unsubscribe()};return zn((D,I)=>{c++,!d&&!u&&h();const S=l=l??n();I.add(()=>{c--,0===c&&!d&&!u&&(a=Hs(m,o))}),S.subscribe(I),s||(s=new xs({next:O=>S.next(O),error:O=>{d=!0,h(),a=Hs(p,t,O),S.error(O)},complete:()=>{u=!0,h(),a=Hs(p,r),S.complete()}}),Bs(D).subscribe(s))})(i)}}()))}bootstrap(t,r){const o=t instanceof Vf;if(!this._injector.get(Ji).done)throw!o&&function Br(e){const n=ie(e)||ke(e)||Ge(e);return null!==n&&n.standalone}(t),new A(405,false);let s;s=o?t:this._injector.get(Ti).resolveComponentFactory(t),this.componentTypes.push(s.componentType);const a=function V1(e){return e.isBoundToModule}(s)?void 0:this._injector.get(Sr),c=s.create(dn.NULL,[],r||s.selector,a),u=c.location.nativeElement,d=c.injector.get(Kg,null);return d?.registerApplication(u),c.onDestroy(()=>{this.detachView(c.hostView),es(this.components,c),d?.unregisterApplication(u)}),this._loadComponent(c),c}tick(){if(this._runningTick)throw new A(101,!1);try{this._runningTick=!0;for(let t of this._views)t.detectChanges()}catch(t){this._zone.runOutsideAngular(()=>this._exceptionHandler.handleError(t))}finally{this._runningTick=!1}}attachView(t){const r=t;this._views.push(r),r.attachToAppRef(this)}detachView(t){const r=t;es(this._views,r),r.detachFromAppRef()}_loadComponent(t){this.attachView(t.hostView),this.tick(),this.components.push(t);const r=this._injector.get(E1,[]);r.push(...this._bootstrapListeners),r.forEach(o=>o(t))}ngOnDestroy(){if(!this._destroyed)try{this._destroyListeners.forEach(t=>t()),this._views.slice().forEach(t=>t.destroy()),this._onMicrotaskEmptySubscription.unsubscribe()}finally{this._destroyed=!0,this._views=[],this._bootstrapListeners=[],this._destroyListeners=[]}}onDestroy(t){return this._destroyListeners.push(t),()=>es(this._destroyListeners,t)}destroy(){if(this._destroyed)throw new A(406,!1);const t=this._injector;t.destroy&&!t.destroyed&&t.destroy()}get viewCount(){return this._views.length}warnIfDestroyed(){}}return e.\u0275fac=function(t){return new(t||e)(oe($e),oe(lr),oe(dr))},e.\u0275prov=de({token:e,factory:e.\u0275fac,providedIn:"root"}),e})();function es(e,n){const t=e.indexOf(n);t>-1&&e.splice(t,1)}let cm=(()=>{class e{}return e.__NG_ELEMENT_ID__=U1,e})();function U1(e){return function z1(e,n,t){if(Ur(e)&&!t){const r=st(e.index,n);return new io(r,r)}return 47&e.type?new io(n[16],n):null}(Pe(),E(),16==(16&e))}class fm{constructor(){}supports(n){return ao(n)}create(n){return new Y1(n)}}const Q1=(e,n)=>n;class Y1{constructor(n){this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=n||Q1}forEachItem(n){let t;for(t=this._itHead;null!==t;t=t._next)n(t)}forEachOperation(n){let t=this._itHead,r=this._removalsHead,o=0,i=null;for(;t||r;){const s=!r||t&&t.currentIndex{s=this._trackByFn(o,a),null!==t&&Object.is(t.trackById,s)?(r&&(t=this._verifyReinsertion(t,a,s,o)),Object.is(t.item,a)||this._addIdentityChange(t,a)):(t=this._mismatch(t,a,s,o),r=!0),t=t._next,o++}),this.length=o;return this._truncate(t),this.collection=n,this.isDirty}get isDirty(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}_reset(){if(this.isDirty){let n;for(n=this._previousItHead=this._itHead;null!==n;n=n._next)n._nextPrevious=n._next;for(n=this._additionsHead;null!==n;n=n._nextAdded)n.previousIndex=n.currentIndex;for(this._additionsHead=this._additionsTail=null,n=this._movesHead;null!==n;n=n._nextMoved)n.previousIndex=n.currentIndex;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(n,t,r,o){let i;return null===n?i=this._itTail:(i=n._prev,this._remove(n)),null!==(n=null===this._unlinkedRecords?null:this._unlinkedRecords.get(r,null))?(Object.is(n.item,t)||this._addIdentityChange(n,t),this._reinsertAfter(n,i,o)):null!==(n=null===this._linkedRecords?null:this._linkedRecords.get(r,o))?(Object.is(n.item,t)||this._addIdentityChange(n,t),this._moveAfter(n,i,o)):n=this._addAfter(new K1(t,r),i,o),n}_verifyReinsertion(n,t,r,o){let i=null===this._unlinkedRecords?null:this._unlinkedRecords.get(r,null);return null!==i?n=this._reinsertAfter(i,n._prev,o):n.currentIndex!=o&&(n.currentIndex=o,this._addToMoves(n,o)),n}_truncate(n){for(;null!==n;){const t=n._next;this._addToRemovals(this._unlink(n)),n=t}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(n,t,r){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(n);const o=n._prevRemoved,i=n._nextRemoved;return null===o?this._removalsHead=i:o._nextRemoved=i,null===i?this._removalsTail=o:i._prevRemoved=o,this._insertAfter(n,t,r),this._addToMoves(n,r),n}_moveAfter(n,t,r){return this._unlink(n),this._insertAfter(n,t,r),this._addToMoves(n,r),n}_addAfter(n,t,r){return this._insertAfter(n,t,r),this._additionsTail=null===this._additionsTail?this._additionsHead=n:this._additionsTail._nextAdded=n,n}_insertAfter(n,t,r){const o=null===t?this._itHead:t._next;return n._next=o,n._prev=t,null===o?this._itTail=n:o._prev=n,null===t?this._itHead=n:t._next=n,null===this._linkedRecords&&(this._linkedRecords=new hm),this._linkedRecords.put(n),n.currentIndex=r,n}_remove(n){return this._addToRemovals(this._unlink(n))}_unlink(n){null!==this._linkedRecords&&this._linkedRecords.remove(n);const t=n._prev,r=n._next;return null===t?this._itHead=r:t._next=r,null===r?this._itTail=t:r._prev=t,n}_addToMoves(n,t){return n.previousIndex===t||(this._movesTail=null===this._movesTail?this._movesHead=n:this._movesTail._nextMoved=n),n}_addToRemovals(n){return null===this._unlinkedRecords&&(this._unlinkedRecords=new hm),this._unlinkedRecords.put(n),n.currentIndex=null,n._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=n,n._prevRemoved=null):(n._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=n),n}_addIdentityChange(n,t){return n.item=t,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=n:this._identityChangesTail._nextIdentityChange=n,n}}class K1{constructor(n,t){this.item=n,this.trackById=t,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null}}class J1{constructor(){this._head=null,this._tail=null}add(n){null===this._head?(this._head=this._tail=n,n._nextDup=null,n._prevDup=null):(this._tail._nextDup=n,n._prevDup=this._tail,n._nextDup=null,this._tail=n)}get(n,t){let r;for(r=this._head;null!==r;r=r._nextDup)if((null===t||t<=r.currentIndex)&&Object.is(r.trackById,n))return r;return null}remove(n){const t=n._prevDup,r=n._nextDup;return null===t?this._head=r:t._nextDup=r,null===r?this._tail=t:r._prevDup=t,null===this._head}}class hm{constructor(){this.map=new Map}put(n){const t=n.trackById;let r=this.map.get(t);r||(r=new J1,this.map.set(t,r)),r.add(n)}get(n,t){const o=this.map.get(n);return o?o.get(n,t):null}remove(n){const t=n.trackById;return this.map.get(t).remove(n)&&this.map.delete(t),n}get isEmpty(){return 0===this.map.size}clear(){this.map.clear()}}function pm(e,n,t){const r=e.previousIndex;if(null===r)return r;let o=0;return t&&r{if(t&&t.key===o)this._maybeAddToChanges(t,r),this._appendAfter=t,t=t._next;else{const i=this._getOrCreateRecordForKey(o,r);t=this._insertBeforeOrAppend(t,i)}}),t){t._prev&&(t._prev._next=null),this._removalsHead=t;for(let r=t;null!==r;r=r._nextRemoved)r===this._mapHead&&(this._mapHead=null),this._records.delete(r.key),r._nextRemoved=r._next,r.previousValue=r.currentValue,r.currentValue=null,r._prev=null,r._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(n,t){if(n){const r=n._prev;return t._next=n,t._prev=r,n._prev=t,r&&(r._next=t),n===this._mapHead&&(this._mapHead=t),this._appendAfter=n,n}return this._appendAfter?(this._appendAfter._next=t,t._prev=this._appendAfter):this._mapHead=t,this._appendAfter=t,null}_getOrCreateRecordForKey(n,t){if(this._records.has(n)){const o=this._records.get(n);this._maybeAddToChanges(o,t);const i=o._prev,s=o._next;return i&&(i._next=s),s&&(s._prev=i),o._next=null,o._prev=null,o}const r=new eI(n);return this._records.set(n,r),r.currentValue=t,this._addToAdditions(r),r}_reset(){if(this.isDirty){let n;for(this._previousMapHead=this._mapHead,n=this._previousMapHead;null!==n;n=n._next)n._nextPrevious=n._next;for(n=this._changesHead;null!==n;n=n._nextChanged)n.previousValue=n.currentValue;for(n=this._additionsHead;null!=n;n=n._nextAdded)n.previousValue=n.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(n,t){Object.is(t,n.currentValue)||(n.previousValue=n.currentValue,n.currentValue=t,this._addToChanges(n))}_addToAdditions(n){null===this._additionsHead?this._additionsHead=this._additionsTail=n:(this._additionsTail._nextAdded=n,this._additionsTail=n)}_addToChanges(n){null===this._changesHead?this._changesHead=this._changesTail=n:(this._changesTail._nextChanged=n,this._changesTail=n)}_forEach(n,t){n instanceof Map?n.forEach(t):Object.keys(n).forEach(r=>t(n[r],r))}}class eI{constructor(n){this.key=n,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 mm(){return new rs([new fm])}let rs=(()=>{class e{constructor(t){this.factories=t}static create(t,r){if(null!=r){const o=r.factories.slice();t=t.concat(o)}return new e(t)}static extend(t){return{provide:e,useFactory:r=>e.create(t,r||mm()),deps:[[e,new vi,new _i]]}}find(t){const r=this.factories.find(o=>o.supports(t));if(null!=r)return r;throw new A(901,!1)}}return e.\u0275prov=de({token:e,providedIn:"root",factory:mm}),e})();function _m(){return new Co([new gm])}let Co=(()=>{class e{constructor(t){this.factories=t}static create(t,r){if(r){const o=r.factories.slice();t=t.concat(o)}return new e(t)}static extend(t){return{provide:e,useFactory:r=>e.create(t,r||_m()),deps:[[e,new vi,new _i]]}}find(t){const r=this.factories.find(o=>o.supports(t));if(r)return r;throw new A(901,!1)}}return e.\u0275prov=de({token:e,providedIn:"root",factory:_m}),e})();const rI=em(null,"core",[]);let oI=(()=>{class e{constructor(t){}}return e.\u0275fac=function(t){return new(t||e)(oe(sc))},e.\u0275mod=an({type:e}),e.\u0275inj=$t({}),e})();let fc=null;function Hn(){return fc}class aI{}const tn=new H("DocumentToken");let bo=(()=>{class e{constructor(t,r,o,i){this._iterableDiffers=t,this._keyValueDiffers=r,this._ngEl=o,this._renderer=i,this._iterableDiffer=null,this._keyValueDiffer=null,this._initialClasses=[],this._rawClass=null}set klass(t){this._removeClasses(this._initialClasses),this._initialClasses="string"==typeof t?t.split(/\s+/):[],this._applyClasses(this._initialClasses),this._applyClasses(this._rawClass)}set ngClass(t){this._removeClasses(this._rawClass),this._applyClasses(this._initialClasses),this._iterableDiffer=null,this._keyValueDiffer=null,this._rawClass="string"==typeof t?t.split(/\s+/):t,this._rawClass&&(ao(this._rawClass)?this._iterableDiffer=this._iterableDiffers.find(this._rawClass).create():this._keyValueDiffer=this._keyValueDiffers.find(this._rawClass).create())}ngDoCheck(){if(this._iterableDiffer){const t=this._iterableDiffer.diff(this._rawClass);t&&this._applyIterableChanges(t)}else if(this._keyValueDiffer){const t=this._keyValueDiffer.diff(this._rawClass);t&&this._applyKeyValueChanges(t)}}_applyKeyValueChanges(t){t.forEachAddedItem(r=>this._toggleClass(r.key,r.currentValue)),t.forEachChangedItem(r=>this._toggleClass(r.key,r.currentValue)),t.forEachRemovedItem(r=>{r.previousValue&&this._toggleClass(r.key,!1)})}_applyIterableChanges(t){t.forEachAddedItem(r=>{if("string"!=typeof r.item)throw new Error(`NgClass can only toggle CSS classes expressed as strings, got ${le(r.item)}`);this._toggleClass(r.item,!0)}),t.forEachRemovedItem(r=>this._toggleClass(r.item,!1))}_applyClasses(t){t&&(Array.isArray(t)||t instanceof Set?t.forEach(r=>this._toggleClass(r,!0)):Object.keys(t).forEach(r=>this._toggleClass(r,!!t[r])))}_removeClasses(t){t&&(Array.isArray(t)||t instanceof Set?t.forEach(r=>this._toggleClass(r,!1)):Object.keys(t).forEach(r=>this._toggleClass(r,!1)))}_toggleClass(t,r){(t=t.trim())&&t.split(/\s+/g).forEach(o=>{r?this._renderer.addClass(this._ngEl.nativeElement,o):this._renderer.removeClass(this._ngEl.nativeElement,o)})}}return e.\u0275fac=function(t){return new(t||e)(M(rs),M(Co),M(Dt),M(Rn))},e.\u0275dir=$({type:e,selectors:[["","ngClass",""]],inputs:{klass:["class","klass"],ngClass:"ngClass"},standalone:!0}),e})();class ZI{constructor(n,t,r,o){this.$implicit=n,this.ngForOf=t,this.index=r,this.count=o}get first(){return 0===this.index}get last(){return this.index===this.count-1}get even(){return this.index%2==0}get odd(){return!this.even}}let xr=(()=>{class e{set ngForOf(t){this._ngForOf=t,this._ngForOfDirty=!0}set ngForTrackBy(t){this._trackByFn=t}get ngForTrackBy(){return this._trackByFn}constructor(t,r,o){this._viewContainer=t,this._template=r,this._differs=o,this._ngForOf=null,this._ngForOfDirty=!0,this._differ=null}set ngForTemplate(t){t&&(this._template=t)}ngDoCheck(){if(this._ngForOfDirty){this._ngForOfDirty=!1;const t=this._ngForOf;!this._differ&&t&&(this._differ=this._differs.find(t).create(this.ngForTrackBy))}if(this._differ){const t=this._differ.diff(this._ngForOf);t&&this._applyChanges(t)}}_applyChanges(t){const r=this._viewContainer;t.forEachOperation((o,i,s)=>{if(null==o.previousIndex)r.createEmbeddedView(this._template,new ZI(o.item,this._ngForOf,-1,-1),null===s?void 0:s);else if(null==s)r.remove(null===i?void 0:i);else if(null!==i){const a=r.get(i);r.move(a,s),Tm(a,o)}});for(let o=0,i=r.length;o{Tm(r.get(o.currentIndex),o)})}static ngTemplateContextGuard(t,r){return!0}}return e.\u0275fac=function(t){return new(t||e)(M(Ht),M(Jt),M(rs))},e.\u0275dir=$({type:e,selectors:[["","ngFor","","ngForOf",""]],inputs:{ngForOf:"ngForOf",ngForTrackBy:"ngForTrackBy",ngForTemplate:"ngForTemplate"},standalone:!0}),e})();function Tm(e,n){e.context.$implicit=n.item}let jn=(()=>{class e{constructor(t,r){this._viewContainer=t,this._context=new YI,this._thenTemplateRef=null,this._elseTemplateRef=null,this._thenViewRef=null,this._elseViewRef=null,this._thenTemplateRef=r}set ngIf(t){this._context.$implicit=this._context.ngIf=t,this._updateView()}set ngIfThen(t){xm("ngIfThen",t),this._thenTemplateRef=t,this._thenViewRef=null,this._updateView()}set ngIfElse(t){xm("ngIfElse",t),this._elseTemplateRef=t,this._elseViewRef=null,this._updateView()}_updateView(){this._context.$implicit?this._thenViewRef||(this._viewContainer.clear(),this._elseViewRef=null,this._thenTemplateRef&&(this._thenViewRef=this._viewContainer.createEmbeddedView(this._thenTemplateRef,this._context))):this._elseViewRef||(this._viewContainer.clear(),this._thenViewRef=null,this._elseTemplateRef&&(this._elseViewRef=this._viewContainer.createEmbeddedView(this._elseTemplateRef,this._context)))}static ngTemplateContextGuard(t,r){return!0}}return e.\u0275fac=function(t){return new(t||e)(M(Ht),M(Jt))},e.\u0275dir=$({type:e,selectors:[["","ngIf",""]],inputs:{ngIf:"ngIf",ngIfThen:"ngIfThen",ngIfElse:"ngIfElse"},standalone:!0}),e})();class YI{constructor(){this.$implicit=null,this.ngIf=null}}function xm(e,n){if(n&&!n.createEmbeddedView)throw new Error(`${e} must be a TemplateRef, but received '${le(n)}'.`)}let Om=(()=>{class e{transform(t,r,o){if(null==t)return null;if(!this.supports(t))throw function At(e,n){return new A(2100,!1)}();return t.slice(r,o)}supports(t){return"string"==typeof t||Array.isArray(t)}}return e.\u0275fac=function(t){return new(t||e)},e.\u0275pipe=Je({name:"slice",type:e,pure:!1,standalone:!0}),e})(),DM=(()=>{class e{}return e.\u0275fac=function(t){return new(t||e)},e.\u0275mod=an({type:e}),e.\u0275inj=$t({}),e})();class XM extends aI{constructor(){super(...arguments),this.supportsDOMEvents=!0}}class Ac extends XM{static makeCurrent(){!function sI(e){fc||(fc=e)}(new Ac)}onAndCancel(n,t,r){return n.addEventListener(t,r,!1),()=>{n.removeEventListener(t,r,!1)}}dispatchEvent(n,t){n.dispatchEvent(t)}remove(n){n.parentNode&&n.parentNode.removeChild(n)}createElement(n,t){return(t=t||this.getDefaultDocument()).createElement(n)}createHtmlDocument(){return document.implementation.createHTMLDocument("fakeTitle")}getDefaultDocument(){return document}isElementNode(n){return n.nodeType===Node.ELEMENT_NODE}isShadowRoot(n){return n instanceof DocumentFragment}getGlobalEventTarget(n,t){return"window"===t?window:"document"===t?n:"body"===t?n.body:null}getBaseHref(n){const t=function eS(){return Io=Io||document.querySelector("base"),Io?Io.getAttribute("href"):null}();return null==t?null:function tS(e){ps=ps||document.createElement("a"),ps.setAttribute("href",e);const n=ps.pathname;return"/"===n.charAt(0)?n:`/${n}`}(t)}resetBaseElement(){Io=null}getUserAgent(){return window.navigator.userAgent}getCookie(n){return function WI(e,n){n=encodeURIComponent(n);for(const t of e.split(";")){const r=t.indexOf("="),[o,i]=-1==r?[t,""]:[t.slice(0,r),t.slice(r+1)];if(o.trim()===n)return decodeURIComponent(i)}return null}(document.cookie,n)}}let ps,Io=null;const jm=new H("TRANSITION_ID"),rS=[{provide:Ug,useFactory:function nS(e,n,t){return()=>{t.get(Ji).donePromise.then(()=>{const r=Hn(),o=n.querySelectorAll(`style[ng-transition="${e}"]`);for(let i=0;i{class e{build(){return new XMLHttpRequest}}return e.\u0275fac=function(t){return new(t||e)},e.\u0275prov=de({token:e,factory:e.\u0275fac}),e})();const gs=new H("EventManagerPlugins");let ms=(()=>{class e{constructor(t,r){this._zone=r,this._eventNameToPlugin=new Map,t.forEach(o=>o.manager=this),this._plugins=t.slice().reverse()}addEventListener(t,r,o){return this._findPluginFor(r).addEventListener(t,r,o)}addGlobalEventListener(t,r,o){return this._findPluginFor(r).addGlobalEventListener(t,r,o)}getZone(){return this._zone}_findPluginFor(t){const r=this._eventNameToPlugin.get(t);if(r)return r;const o=this._plugins;for(let i=0;i{class e{constructor(){this._stylesSet=new Set}addStyles(t){const r=new Set;t.forEach(o=>{this._stylesSet.has(o)||(this._stylesSet.add(o),r.add(o))}),this.onStylesAdded(r)}onStylesAdded(t){}getAllStyles(){return Array.from(this._stylesSet)}}return e.\u0275fac=function(t){return new(t||e)},e.\u0275prov=de({token:e,factory:e.\u0275fac}),e})(),Mo=(()=>{class e extends Um{constructor(t){super(),this._doc=t,this._hostNodes=new Map,this._hostNodes.set(t.head,[])}_addStylesToHost(t,r,o){t.forEach(i=>{const s=this._doc.createElement("style");s.textContent=i,o.push(r.appendChild(s))})}addHost(t){const r=[];this._addStylesToHost(this._stylesSet,t,r),this._hostNodes.set(t,r)}removeHost(t){const r=this._hostNodes.get(t);r&&r.forEach(zm),this._hostNodes.delete(t)}onStylesAdded(t){this._hostNodes.forEach((r,o)=>{this._addStylesToHost(t,o,r)})}ngOnDestroy(){this._hostNodes.forEach(t=>t.forEach(zm))}}return e.\u0275fac=function(t){return new(t||e)(oe(tn))},e.\u0275prov=de({token:e,factory:e.\u0275fac}),e})();function zm(e){Hn().remove(e)}const Tc={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/"},xc=/%COMP%/g;function Nc(e,n){return n.flat(100).map(t=>t.replace(xc,e))}function qm(e){return n=>{if("__ngUnwrap__"===n)return e;!1===e(n)&&(n.preventDefault(),n.returnValue=!1)}}let Fc=(()=>{class e{constructor(t,r,o){this.eventManager=t,this.sharedStylesHost=r,this.appId=o,this.rendererByCompId=new Map,this.defaultRenderer=new Oc(t)}createRenderer(t,r){if(!t||!r)return this.defaultRenderer;switch(r.encapsulation){case xt.Emulated:{let o=this.rendererByCompId.get(r.id);return o||(o=new dS(this.eventManager,this.sharedStylesHost,r,this.appId),this.rendererByCompId.set(r.id,o)),o.applyToHost(t),o}case xt.ShadowDom:return new fS(this.eventManager,this.sharedStylesHost,t,r);default:if(!this.rendererByCompId.has(r.id)){const o=Nc(r.id,r.styles);this.sharedStylesHost.addStyles(o),this.rendererByCompId.set(r.id,this.defaultRenderer)}return this.defaultRenderer}}begin(){}end(){}}return e.\u0275fac=function(t){return new(t||e)(oe(ms),oe(Mo),oe(yo))},e.\u0275prov=de({token:e,factory:e.\u0275fac}),e})();class Oc{constructor(n){this.eventManager=n,this.data=Object.create(null),this.destroyNode=null}destroy(){}createElement(n,t){return t?document.createElementNS(Tc[t]||t,n):document.createElement(n)}createComment(n){return document.createComment(n)}createText(n){return document.createTextNode(n)}appendChild(n,t){(Qm(n)?n.content:n).appendChild(t)}insertBefore(n,t,r){n&&(Qm(n)?n.content:n).insertBefore(t,r)}removeChild(n,t){n&&n.removeChild(t)}selectRootElement(n,t){let r="string"==typeof n?document.querySelector(n):n;if(!r)throw new Error(`The selector "${n}" did not match any elements`);return t||(r.textContent=""),r}parentNode(n){return n.parentNode}nextSibling(n){return n.nextSibling}setAttribute(n,t,r,o){if(o){t=o+":"+t;const i=Tc[o];i?n.setAttributeNS(i,t,r):n.setAttribute(t,r)}else n.setAttribute(t,r)}removeAttribute(n,t,r){if(r){const o=Tc[r];o?n.removeAttributeNS(o,t):n.removeAttribute(`${r}:${t}`)}else n.removeAttribute(t)}addClass(n,t){n.classList.add(t)}removeClass(n,t){n.classList.remove(t)}setStyle(n,t,r,o){o&(Xe.DashCase|Xe.Important)?n.style.setProperty(t,r,o&Xe.Important?"important":""):n.style[t]=r}removeStyle(n,t,r){r&Xe.DashCase?n.style.removeProperty(t):n.style[t]=""}setProperty(n,t,r){n[t]=r}setValue(n,t){n.nodeValue=t}listen(n,t,r){return"string"==typeof n?this.eventManager.addGlobalEventListener(n,t,qm(r)):this.eventManager.addEventListener(n,t,qm(r))}}function Qm(e){return"TEMPLATE"===e.tagName&&void 0!==e.content}class dS extends Oc{constructor(n,t,r,o){super(n),this.component=r;const i=Nc(o+"-"+r.id,r.styles);t.addStyles(i),this.contentAttr=function lS(e){return"_ngcontent-%COMP%".replace(xc,e)}(o+"-"+r.id),this.hostAttr=function cS(e){return"_nghost-%COMP%".replace(xc,e)}(o+"-"+r.id)}applyToHost(n){super.setAttribute(n,this.hostAttr,"")}createElement(n,t){const r=super.createElement(n,t);return super.setAttribute(r,this.contentAttr,""),r}}class fS extends Oc{constructor(n,t,r,o){super(n),this.sharedStylesHost=t,this.hostEl=r,this.shadowRoot=r.attachShadow({mode:"open"}),this.sharedStylesHost.addHost(this.shadowRoot);const i=Nc(o.id,o.styles);for(let s=0;s{class e extends $m{constructor(t){super(t)}supports(t){return!0}addEventListener(t,r,o){return t.addEventListener(r,o,!1),()=>this.removeEventListener(t,r,o)}removeEventListener(t,r,o){return t.removeEventListener(r,o)}}return e.\u0275fac=function(t){return new(t||e)(oe(tn))},e.\u0275prov=de({token:e,factory:e.\u0275fac}),e})();const Ym=["alt","control","meta","shift"],pS={"\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"},gS={alt:e=>e.altKey,control:e=>e.ctrlKey,meta:e=>e.metaKey,shift:e=>e.shiftKey};let mS=(()=>{class e extends $m{constructor(t){super(t)}supports(t){return null!=e.parseEventName(t)}addEventListener(t,r,o){const i=e.parseEventName(r),s=e.eventCallback(i.fullKey,o,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>Hn().onAndCancel(t,i.domEventName,s))}static parseEventName(t){const r=t.toLowerCase().split("."),o=r.shift();if(0===r.length||"keydown"!==o&&"keyup"!==o)return null;const i=e._normalizeKey(r.pop());let s="",a=r.indexOf("code");if(a>-1&&(r.splice(a,1),s="code."),Ym.forEach(c=>{const u=r.indexOf(c);u>-1&&(r.splice(u,1),s+=c+".")}),s+=i,0!=r.length||0===i.length)return null;const l={};return l.domEventName=o,l.fullKey=s,l}static matchEventFullKeyCode(t,r){let o=pS[t.key]||t.key,i="";return r.indexOf("code.")>-1&&(o=t.code,i="code."),!(null==o||!o)&&(o=o.toLowerCase()," "===o?o="space":"."===o&&(o="dot"),Ym.forEach(s=>{s!==o&&(0,gS[s])(t)&&(i+=s+".")}),i+=o,i===r)}static eventCallback(t,r,o){return i=>{e.matchEventFullKeyCode(i,t)&&o.runGuarded(()=>r(i))}}static _normalizeKey(t){return"esc"===t?"escape":t}}return e.\u0275fac=function(t){return new(t||e)(oe(tn))},e.\u0275prov=de({token:e,factory:e.\u0275fac}),e})();const CS=em(rI,"browser",[{provide:Wg,useValue:"browser"},{provide:Gg,useValue:function _S(){Ac.makeCurrent()},multi:!0},{provide:tn,useFactory:function yS(){return function eD(e){$a=e}(document),document},deps:[]}]),Xm=new H(""),e_=[{provide:Xi,useClass:class oS{addToWindow(n){fe.getAngularTestability=(r,o=!0)=>{const i=n.findTestabilityInTree(r,o);if(null==i)throw new Error("Could not find testability for element.");return i},fe.getAllAngularTestabilities=()=>n.getAllTestabilities(),fe.getAllAngularRootElements=()=>n.getAllRootElements(),fe.frameworkStabilizers||(fe.frameworkStabilizers=[]),fe.frameworkStabilizers.push(r=>{const o=fe.getAllAngularTestabilities();let i=o.length,s=!1;const a=function(l){s=s||l,i--,0==i&&r(s)};o.forEach(function(l){l.whenStable(a)})})}findTestabilityInTree(n,t,r){return null==t?null:n.getTestability(t)??(r?Hn().isShadowRoot(t)?this.findTestabilityInTree(n,t.host,!0):this.findTestabilityInTree(n,t.parentElement,!0):null)}},deps:[]},{provide:Kg,useClass:tc,deps:[$e,nc,Xi]},{provide:tc,useClass:tc,deps:[$e,nc,Xi]}],t_=[{provide:Ka,useValue:"root"},{provide:dr,useFactory:function vS(){return new dr},deps:[]},{provide:gs,useClass:hS,multi:!0,deps:[tn,$e,Wg]},{provide:gs,useClass:mS,multi:!0,deps:[tn]},{provide:Fc,useClass:Fc,deps:[ms,Mo,yo]},{provide:Hf,useExisting:Fc},{provide:Um,useExisting:Mo},{provide:Mo,useClass:Mo,deps:[tn]},{provide:ms,useClass:ms,deps:[gs,$e]},{provide:class MM{},useClass:iS,deps:[]},[]];let DS=(()=>{class e{constructor(t){}static withServerTransition(t){return{ngModule:e,providers:[{provide:yo,useValue:t.appId},{provide:jm,useExisting:yo},rS]}}}return e.\u0275fac=function(t){return new(t||e)(oe(Xm,12))},e.\u0275mod=an({type:e}),e.\u0275inj=$t({providers:[...t_,...e_],imports:[DM,oI]}),e})();typeof window<"u"&&window;const{isArray:NS}=Array,{getPrototypeOf:FS,prototype:OS,keys:RS}=Object;const{isArray:LS}=Array;function HS(e,n){return e.reduce((t,r,o)=>(t[r]=n[o],t),{})}function jS(...e){const n=function Fv(e){return me(Vs(e))?e.pop():void 0}(e),{args:t,keys:r}=function PS(e){if(1===e.length){const n=e[0];if(NS(n))return{args:n,keys:null};if(function kS(e){return e&&"object"==typeof e&&FS(e)===OS}(n)){const t=RS(n);return{args:t.map(r=>n[r]),keys:t}}}return{args:e,keys:null}}(e),o=new ze(i=>{const{length:s}=t;if(!s)return void i.complete();const a=new Array(s);let l=s,c=s;for(let u=0;u{d||(d=!0,c--),a[u]=h},()=>l--,void 0,()=>{(!l||!d)&&(c||i.next(r?HS(r,a):a),i.complete())}))}});return n?o.pipe(function BS(e){return Ps(n=>function VS(e,n){return LS(n)?e(...n):e(n)}(e,n))}(n)):o}let o_=(()=>{class e{constructor(t,r){this._renderer=t,this._elementRef=r,this.onChange=o=>{},this.onTouched=()=>{}}setProperty(t,r){this._renderer.setProperty(this._elementRef.nativeElement,t,r)}registerOnTouched(t){this.onTouched=t}registerOnChange(t){this.onChange=t}setDisabledState(t){this.setProperty("disabled",t)}}return e.\u0275fac=function(t){return new(t||e)(M(Rn),M(Dt))},e.\u0275dir=$({type:e}),e})(),$n=(()=>{class e extends o_{}return e.\u0275fac=function(){let n;return function(r){return(n||(n=Be(e)))(r||e)}}(),e.\u0275dir=$({type:e,features:[se]}),e})();const jt=new H("NgValueAccessor"),$S={provide:jt,useExisting:ue(()=>kc),multi:!0};let kc=(()=>{class e extends $n{writeValue(t){this.setProperty("checked",t)}}return e.\u0275fac=function(){let n;return function(r){return(n||(n=Be(e)))(r||e)}}(),e.\u0275dir=$({type:e,selectors:[["input","type","checkbox","formControlName",""],["input","type","checkbox","formControl",""],["input","type","checkbox","ngModel",""]],hostBindings:function(t,r){1&t&&k("change",function(i){return r.onChange(i.target.checked)})("blur",function(){return r.onTouched()})},features:[ge([$S]),se]}),e})();const US={provide:jt,useExisting:ue(()=>So),multi:!0},GS=new H("CompositionEventMode");let So=(()=>{class e extends o_{constructor(t,r,o){super(t,r),this._compositionMode=o,this._composing=!1,null==this._compositionMode&&(this._compositionMode=!function zS(){const e=Hn()?Hn().getUserAgent():"";return/android (\d+)/.test(e.toLowerCase())}())}writeValue(t){this.setProperty("value",t??"")}_handleInput(t){(!this._compositionMode||this._compositionMode&&!this._composing)&&this.onChange(t)}_compositionStart(){this._composing=!0}_compositionEnd(t){this._composing=!1,this._compositionMode&&this.onChange(t)}}return e.\u0275fac=function(t){return new(t||e)(M(Rn),M(Dt),M(GS,8))},e.\u0275dir=$({type:e,selectors:[["input","formControlName","",3,"type","checkbox"],["textarea","formControlName",""],["input","formControl","",3,"type","checkbox"],["textarea","formControl",""],["input","ngModel","",3,"type","checkbox"],["textarea","ngModel",""],["","ngDefaultControl",""]],hostBindings:function(t,r){1&t&&k("input",function(i){return r._handleInput(i.target.value)})("blur",function(){return r.onTouched()})("compositionstart",function(){return r._compositionStart()})("compositionend",function(i){return r._compositionEnd(i.target.value)})},features:[ge([US]),se]}),e})();const Ue=new H("NgValidators"),_n=new H("NgAsyncValidators");function p_(e){return null!=e}function g_(e){return Hi(e)?Bs(e):e}function m_(e){let n={};return e.forEach(t=>{n=null!=t?{...n,...t}:n}),0===Object.keys(n).length?null:n}function __(e,n){return n.map(t=>t(e))}function v_(e){return e.map(n=>function ZS(e){return!e.validate}(n)?n:t=>n.validate(t))}function Lc(e){return null!=e?function y_(e){if(!e)return null;const n=e.filter(p_);return 0==n.length?null:function(t){return m_(__(t,n))}}(v_(e)):null}function Vc(e){return null!=e?function C_(e){if(!e)return null;const n=e.filter(p_);return 0==n.length?null:function(t){return jS(__(t,n).map(g_)).pipe(Ps(m_))}}(v_(e)):null}function D_(e,n){return null===e?[n]:Array.isArray(e)?[...e,n]:[e,n]}function Bc(e){return e?Array.isArray(e)?e:[e]:[]}function vs(e,n){return Array.isArray(e)?e.includes(n):e===n}function E_(e,n){const t=Bc(n);return Bc(e).forEach(o=>{vs(t,o)||t.push(o)}),t}function I_(e,n){return Bc(n).filter(t=>!vs(e,t))}class M_{constructor(){this._rawValidators=[],this._rawAsyncValidators=[],this._onDestroyCallbacks=[]}get value(){return this.control?this.control.value:null}get valid(){return this.control?this.control.valid:null}get invalid(){return this.control?this.control.invalid:null}get pending(){return this.control?this.control.pending:null}get disabled(){return this.control?this.control.disabled:null}get enabled(){return this.control?this.control.enabled:null}get errors(){return this.control?this.control.errors:null}get pristine(){return this.control?this.control.pristine:null}get dirty(){return this.control?this.control.dirty:null}get touched(){return this.control?this.control.touched:null}get status(){return this.control?this.control.status:null}get untouched(){return this.control?this.control.untouched:null}get statusChanges(){return this.control?this.control.statusChanges:null}get valueChanges(){return this.control?this.control.valueChanges:null}get path(){return null}_setValidators(n){this._rawValidators=n||[],this._composedValidatorFn=Lc(this._rawValidators)}_setAsyncValidators(n){this._rawAsyncValidators=n||[],this._composedAsyncValidatorFn=Vc(this._rawAsyncValidators)}get validator(){return this._composedValidatorFn||null}get asyncValidator(){return this._composedAsyncValidatorFn||null}_registerOnDestroy(n){this._onDestroyCallbacks.push(n)}_invokeOnDestroyCallbacks(){this._onDestroyCallbacks.forEach(n=>n()),this._onDestroyCallbacks=[]}reset(n){this.control&&this.control.reset(n)}hasError(n,t){return!!this.control&&this.control.hasError(n,t)}getError(n,t){return this.control?this.control.getError(n,t):null}}class Ke extends M_{get formDirective(){return null}get path(){return null}}class vn extends M_{constructor(){super(...arguments),this._parent=null,this.name=null,this.valueAccessor=null}}class S_{constructor(n){this._cd=n}get isTouched(){return!!this._cd?.control?.touched}get isUntouched(){return!!this._cd?.control?.untouched}get isPristine(){return!!this._cd?.control?.pristine}get isDirty(){return!!this._cd?.control?.dirty}get isValid(){return!!this._cd?.control?.valid}get isInvalid(){return!!this._cd?.control?.invalid}get isPending(){return!!this._cd?.control?.pending}get isSubmitted(){return!!this._cd?.submitted}}let ys=(()=>{class e extends S_{constructor(t){super(t)}}return e.\u0275fac=function(t){return new(t||e)(M(vn,2))},e.\u0275dir=$({type:e,selectors:[["","formControlName",""],["","ngModel",""],["","formControl",""]],hostVars:14,hostBindings:function(t,r){2&t&&$i("ng-untouched",r.isUntouched)("ng-touched",r.isTouched)("ng-pristine",r.isPristine)("ng-dirty",r.isDirty)("ng-valid",r.isValid)("ng-invalid",r.isInvalid)("ng-pending",r.isPending)},features:[se]}),e})();const Ao="VALID",Ds="INVALID",Nr="PENDING",To="DISABLED";function ws(e){return null!=e&&!Array.isArray(e)&&"object"==typeof e}class N_{constructor(n,t){this._pendingDirty=!1,this._hasOwnPendingAsyncValidator=!1,this._pendingTouched=!1,this._onCollectionChange=()=>{},this._parent=null,this.pristine=!0,this.touched=!1,this._onDisabledChange=[],this._assignValidators(n),this._assignAsyncValidators(t)}get validator(){return this._composedValidatorFn}set validator(n){this._rawValidators=this._composedValidatorFn=n}get asyncValidator(){return this._composedAsyncValidatorFn}set asyncValidator(n){this._rawAsyncValidators=this._composedAsyncValidatorFn=n}get parent(){return this._parent}get valid(){return this.status===Ao}get invalid(){return this.status===Ds}get pending(){return this.status==Nr}get disabled(){return this.status===To}get enabled(){return this.status!==To}get dirty(){return!this.pristine}get untouched(){return!this.touched}get updateOn(){return this._updateOn?this._updateOn:this.parent?this.parent.updateOn:"change"}setValidators(n){this._assignValidators(n)}setAsyncValidators(n){this._assignAsyncValidators(n)}addValidators(n){this.setValidators(E_(n,this._rawValidators))}addAsyncValidators(n){this.setAsyncValidators(E_(n,this._rawAsyncValidators))}removeValidators(n){this.setValidators(I_(n,this._rawValidators))}removeAsyncValidators(n){this.setAsyncValidators(I_(n,this._rawAsyncValidators))}hasValidator(n){return vs(this._rawValidators,n)}hasAsyncValidator(n){return vs(this._rawAsyncValidators,n)}clearValidators(){this.validator=null}clearAsyncValidators(){this.asyncValidator=null}markAsTouched(n={}){this.touched=!0,this._parent&&!n.onlySelf&&this._parent.markAsTouched(n)}markAllAsTouched(){this.markAsTouched({onlySelf:!0}),this._forEachChild(n=>n.markAllAsTouched())}markAsUntouched(n={}){this.touched=!1,this._pendingTouched=!1,this._forEachChild(t=>{t.markAsUntouched({onlySelf:!0})}),this._parent&&!n.onlySelf&&this._parent._updateTouched(n)}markAsDirty(n={}){this.pristine=!1,this._parent&&!n.onlySelf&&this._parent.markAsDirty(n)}markAsPristine(n={}){this.pristine=!0,this._pendingDirty=!1,this._forEachChild(t=>{t.markAsPristine({onlySelf:!0})}),this._parent&&!n.onlySelf&&this._parent._updatePristine(n)}markAsPending(n={}){this.status=Nr,!1!==n.emitEvent&&this.statusChanges.emit(this.status),this._parent&&!n.onlySelf&&this._parent.markAsPending(n)}disable(n={}){const t=this._parentMarkedDirty(n.onlySelf);this.status=To,this.errors=null,this._forEachChild(r=>{r.disable({...n,onlySelf:!0})}),this._updateValue(),!1!==n.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors({...n,skipPristineCheck:t}),this._onDisabledChange.forEach(r=>r(!0))}enable(n={}){const t=this._parentMarkedDirty(n.onlySelf);this.status=Ao,this._forEachChild(r=>{r.enable({...n,onlySelf:!0})}),this.updateValueAndValidity({onlySelf:!0,emitEvent:n.emitEvent}),this._updateAncestors({...n,skipPristineCheck:t}),this._onDisabledChange.forEach(r=>r(!1))}_updateAncestors(n){this._parent&&!n.onlySelf&&(this._parent.updateValueAndValidity(n),n.skipPristineCheck||this._parent._updatePristine(),this._parent._updateTouched())}setParent(n){this._parent=n}getRawValue(){return this.value}updateValueAndValidity(n={}){this._setInitialStatus(),this._updateValue(),this.enabled&&(this._cancelExistingSubscription(),this.errors=this._runValidator(),this.status=this._calculateStatus(),(this.status===Ao||this.status===Nr)&&this._runAsyncValidator(n.emitEvent)),!1!==n.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._parent&&!n.onlySelf&&this._parent.updateValueAndValidity(n)}_updateTreeValidity(n={emitEvent:!0}){this._forEachChild(t=>t._updateTreeValidity(n)),this.updateValueAndValidity({onlySelf:!0,emitEvent:n.emitEvent})}_setInitialStatus(){this.status=this._allControlsDisabled()?To:Ao}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(n){if(this.asyncValidator){this.status=Nr,this._hasOwnPendingAsyncValidator=!0;const t=g_(this.asyncValidator(this));this._asyncValidationSubscription=t.subscribe(r=>{this._hasOwnPendingAsyncValidator=!1,this.setErrors(r,{emitEvent:n})})}}_cancelExistingSubscription(){this._asyncValidationSubscription&&(this._asyncValidationSubscription.unsubscribe(),this._hasOwnPendingAsyncValidator=!1)}setErrors(n,t={}){this.errors=n,this._updateControlsErrors(!1!==t.emitEvent)}get(n){let t=n;return null==t||(Array.isArray(t)||(t=t.split(".")),0===t.length)?null:t.reduce((r,o)=>r&&r._find(o),this)}getError(n,t){const r=t?this.get(t):this;return r&&r.errors?r.errors[n]:null}hasError(n,t){return!!this.getError(n,t)}get root(){let n=this;for(;n._parent;)n=n._parent;return n}_updateControlsErrors(n){this.status=this._calculateStatus(),n&&this.statusChanges.emit(this.status),this._parent&&this._parent._updateControlsErrors(n)}_initObservables(){this.valueChanges=new be,this.statusChanges=new be}_calculateStatus(){return this._allControlsDisabled()?To:this.errors?Ds:this._hasOwnPendingAsyncValidator||this._anyControlsHaveStatus(Nr)?Nr:this._anyControlsHaveStatus(Ds)?Ds:Ao}_anyControlsHaveStatus(n){return this._anyControls(t=>t.status===n)}_anyControlsDirty(){return this._anyControls(n=>n.dirty)}_anyControlsTouched(){return this._anyControls(n=>n.touched)}_updatePristine(n={}){this.pristine=!this._anyControlsDirty(),this._parent&&!n.onlySelf&&this._parent._updatePristine(n)}_updateTouched(n={}){this.touched=this._anyControlsTouched(),this._parent&&!n.onlySelf&&this._parent._updateTouched(n)}_registerOnCollectionChange(n){this._onCollectionChange=n}_setUpdateStrategy(n){ws(n)&&null!=n.updateOn&&(this._updateOn=n.updateOn)}_parentMarkedDirty(n){return!n&&!(!this._parent||!this._parent.dirty)&&!this._parent._anyControlsDirty()}_find(n){return null}_assignValidators(n){this._rawValidators=Array.isArray(n)?n.slice():n,this._composedValidatorFn=function nA(e){return Array.isArray(e)?Lc(e):e||null}(this._rawValidators)}_assignAsyncValidators(n){this._rawAsyncValidators=Array.isArray(n)?n.slice():n,this._composedAsyncValidatorFn=function rA(e){return Array.isArray(e)?Vc(e):e||null}(this._rawAsyncValidators)}}const xo=new H("CallSetDisabledState",{providedIn:"root",factory:()=>Wc}),Wc="always";function No(e,n,t=Wc){(function qc(e,n){const t=function w_(e){return e._rawValidators}(e);null!==n.validator?e.setValidators(D_(t,n.validator)):"function"==typeof t&&e.setValidators([t]);const r=function b_(e){return e._rawAsyncValidators}(e);null!==n.asyncValidator?e.setAsyncValidators(D_(r,n.asyncValidator)):"function"==typeof r&&e.setAsyncValidators([r]);const o=()=>e.updateValueAndValidity();Is(n._rawValidators,o),Is(n._rawAsyncValidators,o)})(e,n),n.valueAccessor.writeValue(e.value),(e.disabled||"always"===t)&&n.valueAccessor.setDisabledState?.(e.disabled),function sA(e,n){n.valueAccessor.registerOnChange(t=>{e._pendingValue=t,e._pendingChange=!0,e._pendingDirty=!0,"change"===e.updateOn&&F_(e,n)})}(e,n),function lA(e,n){const t=(r,o)=>{n.valueAccessor.writeValue(r),o&&n.viewToModelUpdate(r)};e.registerOnChange(t),n._registerOnDestroy(()=>{e._unregisterOnChange(t)})}(e,n),function aA(e,n){n.valueAccessor.registerOnTouched(()=>{e._pendingTouched=!0,"blur"===e.updateOn&&e._pendingChange&&F_(e,n),"submit"!==e.updateOn&&e.markAsTouched()})}(e,n),function iA(e,n){if(n.valueAccessor.setDisabledState){const t=r=>{n.valueAccessor.setDisabledState(r)};e.registerOnDisabledChange(t),n._registerOnDestroy(()=>{e._unregisterOnDisabledChange(t)})}}(e,n)}function Is(e,n){e.forEach(t=>{t.registerOnValidatorChange&&t.registerOnValidatorChange(n)})}function F_(e,n){e._pendingDirty&&e.markAsDirty(),e.setValue(e._pendingValue,{emitModelToViewChange:!1}),n.viewToModelUpdate(e._pendingValue),e._pendingChange=!1}function P_(e,n){const t=e.indexOf(n);t>-1&&e.splice(t,1)}function k_(e){return"object"==typeof e&&null!==e&&2===Object.keys(e).length&&"value"in e&&"disabled"in e}const L_=class extends N_{constructor(n=null,t,r){super(function Uc(e){return(ws(e)?e.validators:e)||null}(t),function zc(e,n){return(ws(n)?n.asyncValidators:e)||null}(r,t)),this.defaultValue=null,this._onChange=[],this._pendingChange=!1,this._applyFormState(n),this._setUpdateStrategy(t),this._initObservables(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator}),ws(t)&&(t.nonNullable||t.initialValueIsDefault)&&(this.defaultValue=k_(n)?n.value:n)}setValue(n,t={}){this.value=this._pendingValue=n,this._onChange.length&&!1!==t.emitModelToViewChange&&this._onChange.forEach(r=>r(this.value,!1!==t.emitViewToModelChange)),this.updateValueAndValidity(t)}patchValue(n,t={}){this.setValue(n,t)}reset(n=this.defaultValue,t={}){this._applyFormState(n),this.markAsPristine(t),this.markAsUntouched(t),this.setValue(this.value,t),this._pendingChange=!1}_updateValue(){}_anyControls(n){return!1}_allControlsDisabled(){return this.disabled}registerOnChange(n){this._onChange.push(n)}_unregisterOnChange(n){P_(this._onChange,n)}registerOnDisabledChange(n){this._onDisabledChange.push(n)}_unregisterOnDisabledChange(n){P_(this._onDisabledChange,n)}_forEachChild(n){}_syncPendingControls(){return!("submit"!==this.updateOn||(this._pendingDirty&&this.markAsDirty(),this._pendingTouched&&this.markAsTouched(),!this._pendingChange)||(this.setValue(this._pendingValue,{onlySelf:!0,emitModelToViewChange:!1}),0))}_applyFormState(n){k_(n)?(this.value=this._pendingValue=n.value,n.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this.value=this._pendingValue=n}},mA={provide:vn,useExisting:ue(()=>Oo)},H_=(()=>Promise.resolve())();let Oo=(()=>{class e extends vn{constructor(t,r,o,i,s,a){super(),this._changeDetectorRef=s,this.callSetDisabledState=a,this.control=new L_,this._registered=!1,this.update=new be,this._parent=t,this._setValidators(r),this._setAsyncValidators(o),this.valueAccessor=function Yc(e,n){if(!n)return null;let t,r,o;return Array.isArray(n),n.forEach(i=>{i.constructor===So?t=i:function dA(e){return Object.getPrototypeOf(e.constructor)===$n}(i)?r=i:o=i}),o||r||t||null}(0,i)}ngOnChanges(t){if(this._checkForErrors(),!this._registered||"name"in t){if(this._registered&&(this._checkName(),this.formDirective)){const r=t.name.previousValue;this.formDirective.removeControl({name:r,path:this._getPath(r)})}this._setUpControl()}"isDisabled"in t&&this._updateDisabled(t),function Qc(e,n){if(!e.hasOwnProperty("model"))return!1;const t=e.model;return!!t.isFirstChange()||!Object.is(n,t.currentValue)}(t,this.viewModel)&&(this._updateValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}get path(){return this._getPath(this.name)}get formDirective(){return this._parent?this._parent.formDirective:null}viewToModelUpdate(t){this.viewModel=t,this.update.emit(t)}_setUpControl(){this._setUpdateStrategy(),this._isStandalone()?this._setUpStandalone():this.formDirective.addControl(this),this._registered=!0}_setUpdateStrategy(){this.options&&null!=this.options.updateOn&&(this.control._updateOn=this.options.updateOn)}_isStandalone(){return!this._parent||!(!this.options||!this.options.standalone)}_setUpStandalone(){No(this.control,this,this.callSetDisabledState),this.control.updateValueAndValidity({emitEvent:!1})}_checkForErrors(){this._isStandalone()||this._checkParentType(),this._checkName()}_checkParentType(){}_checkName(){this.options&&this.options.name&&(this.name=this.options.name),this._isStandalone()}_updateValue(t){H_.then(()=>{this.control.setValue(t,{emitViewToModelChange:!1}),this._changeDetectorRef?.markForCheck()})}_updateDisabled(t){const r=t.isDisabled.currentValue,o=0!==r&&function dc(e){return"boolean"==typeof e?e:null!=e&&"false"!==e}(r);H_.then(()=>{o&&!this.control.disabled?this.control.disable():!o&&this.control.disabled&&this.control.enable(),this._changeDetectorRef?.markForCheck()})}_getPath(t){return this._parent?function bs(e,n){return[...n.path,e]}(t,this._parent):[t]}}return e.\u0275fac=function(t){return new(t||e)(M(Ke,9),M(Ue,10),M(_n,10),M(jt,10),M(cm,8),M(xo,8))},e.\u0275dir=$({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:[ge([mA]),se,Wt]}),e})(),$_=(()=>{class e{}return e.\u0275fac=function(t){return new(t||e)},e.\u0275mod=an({type:e}),e.\u0275inj=$t({}),e})();const DA={provide:jt,useExisting:ue(()=>Jc),multi:!0};let Jc=(()=>{class e extends $n{writeValue(t){this.setProperty("value",parseFloat(t))}registerOnChange(t){this.onChange=r=>{t(""==r?null:parseFloat(r))}}}return e.\u0275fac=function(){let n;return function(r){return(n||(n=Be(e)))(r||e)}}(),e.\u0275dir=$({type:e,selectors:[["input","type","range","formControlName",""],["input","type","range","formControl",""],["input","type","range","ngModel",""]],hostBindings:function(t,r){1&t&&k("change",function(i){return r.onChange(i.target.value)})("input",function(i){return r.onChange(i.target.value)})("blur",function(){return r.onTouched()})},features:[ge([DA]),se]}),e})();const SA={provide:jt,useExisting:ue(()=>Ro),multi:!0};function Z_(e,n){return null==e?`${n}`:(n&&"object"==typeof n&&(n="Object"),`${e}: ${n}`.slice(0,50))}let Ro=(()=>{class e extends $n{constructor(){super(...arguments),this._optionMap=new Map,this._idCounter=0,this._compareWith=Object.is}set compareWith(t){this._compareWith=t}writeValue(t){this.value=t;const o=Z_(this._getOptionId(t),t);this.setProperty("value",o)}registerOnChange(t){this.onChange=r=>{this.value=this._getOptionValue(r),t(this.value)}}_registerOption(){return(this._idCounter++).toString()}_getOptionId(t){for(const r of Array.from(this._optionMap.keys()))if(this._compareWith(this._optionMap.get(r),t))return r;return null}_getOptionValue(t){const r=function AA(e){return e.split(":")[0]}(t);return this._optionMap.has(r)?this._optionMap.get(r):t}}return e.\u0275fac=function(){let n;return function(r){return(n||(n=Be(e)))(r||e)}}(),e.\u0275dir=$({type:e,selectors:[["select","formControlName","",3,"multiple",""],["select","formControl","",3,"multiple",""],["select","ngModel","",3,"multiple",""]],hostBindings:function(t,r){1&t&&k("change",function(i){return r.onChange(i.target.value)})("blur",function(){return r.onTouched()})},inputs:{compareWith:"compareWith"},features:[ge([SA]),se]}),e})(),nu=(()=>{class e{constructor(t,r,o){this._element=t,this._renderer=r,this._select=o,this._select&&(this.id=this._select._registerOption())}set ngValue(t){null!=this._select&&(this._select._optionMap.set(this.id,t),this._setElementValue(Z_(this.id,t)),this._select.writeValue(this._select.value))}set value(t){this._setElementValue(t),this._select&&this._select.writeValue(this._select.value)}_setElementValue(t){this._renderer.setProperty(this._element.nativeElement,"value",t)}ngOnDestroy(){this._select&&(this._select._optionMap.delete(this.id),this._select.writeValue(this._select.value))}}return e.\u0275fac=function(t){return new(t||e)(M(Dt),M(Rn),M(Ro,9))},e.\u0275dir=$({type:e,selectors:[["option"]],inputs:{ngValue:"ngValue",value:"value"}}),e})();const TA={provide:jt,useExisting:ue(()=>ru),multi:!0};function Q_(e,n){return null==e?`${n}`:("string"==typeof n&&(n=`'${n}'`),n&&"object"==typeof n&&(n="Object"),`${e}: ${n}`.slice(0,50))}let ru=(()=>{class e extends $n{constructor(){super(...arguments),this._optionMap=new Map,this._idCounter=0,this._compareWith=Object.is}set compareWith(t){this._compareWith=t}writeValue(t){let r;if(this.value=t,Array.isArray(t)){const o=t.map(i=>this._getOptionId(i));r=(i,s)=>{i._setSelected(o.indexOf(s.toString())>-1)}}else r=(o,i)=>{o._setSelected(!1)};this._optionMap.forEach(r)}registerOnChange(t){this.onChange=r=>{const o=[],i=r.selectedOptions;if(void 0!==i){const s=i;for(let a=0;a{class e{constructor(t,r,o){this._element=t,this._renderer=r,this._select=o,this._select&&(this.id=this._select._registerOption(this))}set ngValue(t){null!=this._select&&(this._value=t,this._setElementValue(Q_(this.id,t)),this._select.writeValue(this._select.value))}set value(t){this._select?(this._value=t,this._setElementValue(Q_(this.id,t)),this._select.writeValue(this._select.value)):this._setElementValue(t)}_setElementValue(t){this._renderer.setProperty(this._element.nativeElement,"value",t)}_setSelected(t){this._renderer.setProperty(this._element.nativeElement,"selected",t)}ngOnDestroy(){this._select&&(this._select._optionMap.delete(this.id),this._select.writeValue(this._select.value))}}return e.\u0275fac=function(t){return new(t||e)(M(Dt),M(Rn),M(ru,9))},e.\u0275dir=$({type:e,selectors:[["option"]],inputs:{ngValue:"ngValue",value:"value"}}),e})(),BA=(()=>{class e{}return e.\u0275fac=function(t){return new(t||e)},e.\u0275mod=an({type:e}),e.\u0275inj=$t({imports:[$_]}),e})(),jA=(()=>{class e{static withConfig(t){return{ngModule:e,providers:[{provide:xo,useValue:t.callSetDisabledState??Wc}]}}}return e.\u0275fac=function(t){return new(t||e)},e.\u0275mod=an({type:e}),e.\u0275inj=$t({imports:[BA]}),e})();class iv{constructor(){this.riskHotspotsSettings=null,this.coverageInfoSettings=null}}class $A{constructor(){this.showLineCoverage=!0,this.showBranchCoverage=!0,this.showMethodCoverage=!0,this.visibleMetrics=[],this.groupingMaximum=0,this.grouping=0,this.historyComparisionDate="",this.historyComparisionType="",this.filter="",this.sortBy="name",this.sortOrder="asc",this.collapseStates=[]}}class UA{constructor(n){this.et="",this.et=n.et,this.cl=n.cl,this.ucl=n.ucl,this.cal=n.cal,this.tl=n.tl,this.lcq=n.lcq,this.cb=n.cb,this.tb=n.tb,this.bcq=n.bcq,this.cm=n.cm,this.tm=n.tm,this.mcq=n.mcq}get coverageRatioText(){return 0===this.tl?"-":this.cl+"/"+this.cal}get branchCoverageRatioText(){return 0===this.tb?"-":this.cb+"/"+this.tb}get methodCoverageRatioText(){return 0===this.tm?"-":this.cm+"/"+this.tm}}class yn{static roundNumber(n,t){return Math.floor(n*Math.pow(10,t))/Math.pow(10,t)}static getNthOrLastIndexOf(n,t,r){let o=0,i=-1,s=-1;for(;o{this.historicCoverages.push(new UA(r))}),this.metrics=n.metrics}get coverage(){return 0===this.coverableLines?"-"!==this.coverageByMethod?parseFloat(this.coverageByMethod):NaN:yn.roundNumber(100*this.coveredLines/this.coverableLines,1)}get coverageType(){return 0===this.coverableLines?"-"!==this.coverageByMethod?this._coverageType:"":this._coverageType}visible(n,t){if(""!==n&&-1===this.name.toLowerCase().indexOf(n.toLowerCase()))return!1;if(""===t||null===this.currentHistoricCoverage)return!0;if("allChanges"===t){if(this.coveredLines===this.currentHistoricCoverage.cl&&this.uncoveredLines===this.currentHistoricCoverage.ucl&&this.coverableLines===this.currentHistoricCoverage.cal&&this.totalLines===this.currentHistoricCoverage.tl&&this.coveredBranches===this.currentHistoricCoverage.cb&&this.totalBranches===this.currentHistoricCoverage.tb&&this.coveredMethods===this.currentHistoricCoverage.cm&&this.totalMethods===this.currentHistoricCoverage.tm)return!1}else if("lineCoverageIncreaseOnly"===t){let r=this.coverage;if(isNaN(r)||r<=this.currentHistoricCoverage.lcq)return!1}else if("lineCoverageDecreaseOnly"===t){let r=this.coverage;if(isNaN(r)||r>=this.currentHistoricCoverage.lcq)return!1}else if("branchCoverageIncreaseOnly"===t){let r=this.branchCoverage;if(isNaN(r)||r<=this.currentHistoricCoverage.bcq)return!1}else if("branchCoverageDecreaseOnly"===t){let r=this.branchCoverage;if(isNaN(r)||r>=this.currentHistoricCoverage.bcq)return!1}else if("methodCoverageIncreaseOnly"===t){let r=this.methodCoverage;if(isNaN(r)||r<=this.currentHistoricCoverage.mcq)return!1}else if("methodCoverageDecreaseOnly"===t){let r=this.methodCoverage;if(isNaN(r)||r>=this.currentHistoricCoverage.mcq)return!1}return!0}updateCurrentHistoricCoverage(n){if(this.currentHistoricCoverage=null,""!==n)for(let t=0;t-1&&null===t}visible(n,t){if(""!==n&&this.name.toLowerCase().indexOf(n.toLowerCase())>-1)return!0;for(let r=0;rt.name===n.name)}toggleMetric(n){let t=this.visibleMetrics.find(r=>r.name===n.name);t?this.visibleMetrics.splice(this.visibleMetrics.indexOf(t),1):this.visibleMetrics.push(n),this.visibleMetrics=[...this.visibleMetrics],this.visibleMetricsChange.emit(this.visibleMetrics)}close(){this.visible=!1,this.visibleChange.emit(this.visible)}cancelEvent(n){n.stopPropagation()}}function KA(e,n){1&e&&N(0,"td",3)}function JA(e,n){1&e&&N(0,"td"),2&e&&Bt("green ",_().greenClass,"")}function XA(e,n){1&e&&N(0,"td"),2&e&&Bt("red ",_().redClass,"")}ko.\u0275fac=function(n){return new(n||ko)},ko.\u0275cmp=Nt({type:ko,selectors:[["popup"]],inputs:{visible:"visible",translations:"translations",branchCoverageAvailable:"branchCoverageAvailable",methodCoverageAvailable:"methodCoverageAvailable",metrics:"metrics",showLineCoverage:"showLineCoverage",showBranchCoverage:"showBranchCoverage",showMethodCoverage:"showMethodCoverage",visibleMetrics:"visibleMetrics"},outputs:{visibleChange:"visibleChange",showLineCoverageChange:"showLineCoverageChange",showBranchCoverageChange:"showBranchCoverageChange",showMethodCoverageChange:"showMethodCoverageChange",visibleMetricsChange:"visibleMetricsChange"},decls:17,vars:9,consts:[[1,"popup-container",3,"click"],[1,"popup",3,"click"],[1,"close",3,"click"],[1,"mt-1"],["type","checkbox",3,"ngModel","ngModelChange","change"],["class","mt-1",4,"ngIf"],["type","checkbox",3,"ngModel","disabled","ngModelChange","change"],[3,"translations",4,"ngIf"],[4,"ngIf"],[3,"translations"],["class","mt-1",4,"ngFor","ngForOf"],["type","checkbox",3,"checked","disabled","change"],["target","_blank",3,"href",4,"ngIf"],["target","_blank",3,"href"],[1,"icon-info-circled"]],template:function(n,t){1&n&&(y(0,"div",0),k("click",function(){return t.close()}),y(1,"div",1),k("click",function(o){return t.cancelEvent(o)}),y(2,"div",2),k("click",function(){return t.close()}),w(3,"X"),v(),y(4,"b"),w(5),v(),y(6,"div",3)(7,"label")(8,"input",4),k("ngModelChange",function(o){return t.showLineCoverage=o})("change",function(){return t.showLineCoverageChange.emit(t.showLineCoverage)}),v(),w(9),v()(),C(10,GA,4,2,"div",5),y(11,"div",3)(12,"label")(13,"input",6),k("ngModelChange",function(o){return t.showMethodCoverage=o})("change",function(){return t.showMethodCoverageChange.emit(t.showMethodCoverage)}),v(),w(14),v(),C(15,WA,1,1,"pro-button",7),v(),C(16,YA,7,3,"ng-container",8),v()()),2&n&&(f(5),F(t.translations.coverageTypes),f(3),g("ngModel",t.showLineCoverage),f(1),G(" ",t.translations.coverage,""),f(1),g("ngIf",t.branchCoverageAvailable),f(3),g("ngModel",t.showMethodCoverage)("disabled",!t.methodCoverageAvailable),f(1),G(" ",t.translations.methodCoverage,""),f(1),g("ngIf",!t.methodCoverageAvailable),f(1),g("ngIf",t.metrics.length>0))},dependencies:[xr,jn,kc,ys,Oo,Po],encapsulation:2});class Fr{constructor(){this.grayVisible=!0,this.greenVisible=!1,this.redVisible=!1,this.greenClass="",this.redClass="",this._percentage=NaN}get percentage(){return this._percentage}set percentage(n){this._percentage=n,this.grayVisible=isNaN(n),this.greenVisible=!isNaN(n)&&Math.round(n)>0,this.redVisible=!isNaN(n)&&100-Math.round(n)>0,this.greenClass="covered"+Math.round(n),this.redClass="covered"+(100-Math.round(n))}}function tT(e,n){if(1&e&&(y(0,"th",5),w(1),v()),2&e){const t=_();f(1),F(t.element.coveredLines)}}function nT(e,n){if(1&e&&(y(0,"th",5),w(1),v()),2&e){const t=_();f(1),F(t.element.uncoveredLines)}}function rT(e,n){if(1&e&&(y(0,"th",5),w(1),v()),2&e){const t=_();f(1),F(t.element.coverableLines)}}function oT(e,n){if(1&e&&(y(0,"th",5),w(1),v()),2&e){const t=_();f(1),F(t.element.totalLines)}}function iT(e,n){if(1&e&&(y(0,"th",6),w(1),v()),2&e){const t=_();g("title",t.element.coverageRatioText),f(1),F(t.element.coveragePercentage)}}function sT(e,n){if(1&e&&(y(0,"th",5),N(1,"coverage-bar",7),v()),2&e){const t=_();f(1),g("percentage",t.element.coverage)}}function aT(e,n){if(1&e&&(y(0,"th",5),w(1),v()),2&e){const t=_();f(1),F(t.element.coveredBranches)}}function lT(e,n){if(1&e&&(y(0,"th",5),w(1),v()),2&e){const t=_();f(1),F(t.element.totalBranches)}}function cT(e,n){if(1&e&&(y(0,"th",6),w(1),v()),2&e){const t=_();g("title",t.element.branchCoverageRatioText),f(1),F(t.element.branchCoveragePercentage)}}function uT(e,n){if(1&e&&(y(0,"th",5),N(1,"coverage-bar",7),v()),2&e){const t=_();f(1),g("percentage",t.element.branchCoverage)}}function dT(e,n){if(1&e&&(y(0,"th",5),w(1),v()),2&e){const t=_();f(1),F(t.element.coveredMethods)}}function fT(e,n){if(1&e&&(y(0,"th",5),w(1),v()),2&e){const t=_();f(1),F(t.element.totalMethods)}}function hT(e,n){if(1&e&&(y(0,"th",6),w(1),v()),2&e){const t=_();g("title",t.element.methodCoverageRatioText),f(1),F(t.element.methodCoveragePercentage)}}function pT(e,n){if(1&e&&(y(0,"th",5),N(1,"coverage-bar",7),v()),2&e){const t=_();f(1),g("percentage",t.element.methodCoverage)}}function gT(e,n){1&e&&N(0,"th",5)}Fr.\u0275fac=function(n){return new(n||Fr)},Fr.\u0275cmp=Nt({type:Fr,selectors:[["coverage-bar"]],inputs:{percentage:"percentage"},decls:4,vars:3,consts:[[1,"coverage"],["class","gray covered100",4,"ngIf"],[3,"class",4,"ngIf"],[1,"gray","covered100"]],template:function(n,t){1&n&&(y(0,"table",0),C(1,KA,1,0,"td",1),C(2,JA,1,3,"td",2),C(3,XA,1,3,"td",2),v()),2&n&&(f(1),g("ngIf",t.grayVisible),f(1),g("ngIf",t.greenVisible),f(1),g("ngIf",t.redVisible))},dependencies:[jn],encapsulation:2,changeDetection:0});const mT=function(e,n){return{"icon-plus":e,"icon-minus":n}};class Lo{constructor(){this.collapsed=!1,this.lineCoverageAvailable=!1,this.branchCoverageAvailable=!1,this.methodCoverageAvailable=!1,this.visibleMetrics=[]}}Lo.\u0275fac=function(n){return new(n||Lo)},Lo.\u0275cmp=Nt({type:Lo,selectors:[["","codeelement-row",""]],inputs:{element:"element",collapsed:"collapsed",lineCoverageAvailable:"lineCoverageAvailable",branchCoverageAvailable:"branchCoverageAvailable",methodCoverageAvailable:"methodCoverageAvailable",visibleMetrics:"visibleMetrics"},attrs:["codeelement-row",""],decls:19,vars:20,consts:[["href","#",3,"click"],[3,"ngClass"],["class","right",4,"ngIf"],["class","right",3,"title",4,"ngIf"],["class","right",4,"ngFor","ngForOf"],[1,"right"],[1,"right",3,"title"],[3,"percentage"]],template:function(n,t){1&n&&(y(0,"th")(1,"a",0),k("click",function(o){return t.element.toggleCollapse(o)}),N(2,"i",1),w(3),v()(),C(4,tT,2,1,"th",2),C(5,nT,2,1,"th",2),C(6,rT,2,1,"th",2),C(7,oT,2,1,"th",2),C(8,iT,2,2,"th",3),C(9,sT,2,1,"th",2),C(10,aT,2,1,"th",2),C(11,lT,2,1,"th",2),C(12,cT,2,2,"th",3),C(13,uT,2,1,"th",2),C(14,dT,2,1,"th",2),C(15,fT,2,1,"th",2),C(16,hT,2,2,"th",3),C(17,pT,2,1,"th",2),C(18,gT,1,0,"th",4)),2&n&&(f(2),g("ngClass",Vl(17,mT,t.element.collapsed,!t.element.collapsed)),f(1),G(" ",t.element.name,""),f(1),g("ngIf",t.lineCoverageAvailable),f(1),g("ngIf",t.lineCoverageAvailable),f(1),g("ngIf",t.lineCoverageAvailable),f(1),g("ngIf",t.lineCoverageAvailable),f(1),g("ngIf",t.lineCoverageAvailable),f(1),g("ngIf",t.lineCoverageAvailable),f(1),g("ngIf",t.branchCoverageAvailable),f(1),g("ngIf",t.branchCoverageAvailable),f(1),g("ngIf",t.branchCoverageAvailable),f(1),g("ngIf",t.branchCoverageAvailable),f(1),g("ngIf",t.methodCoverageAvailable),f(1),g("ngIf",t.methodCoverageAvailable),f(1),g("ngIf",t.methodCoverageAvailable),f(1),g("ngIf",t.methodCoverageAvailable),f(1),g("ngForOf",t.visibleMetrics))},dependencies:[bo,xr,jn,Fr],encapsulation:2,changeDetection:0});class Vo{constructor(){this.path=null,this._historicCoverages=[]}get historicCoverages(){return this._historicCoverages}set historicCoverages(n){if(this._historicCoverages=n,n.length>1){let t="";for(let r=0;r1),f(1),g("ngIf",null!==t.clazz.currentHistoricCoverage),f(1),g("ngIf",null===t.clazz.currentHistoricCoverage)}}function LT(e,n){if(1&e&&(y(0,"td",6),N(1,"coverage-bar",12),v()),2&e){const t=_();f(1),g("percentage",t.clazz.coverage)}}function VT(e,n){if(1&e&&(J(0),y(1,"div"),w(2),v(),y(3,"div",7),w(4),v(),X()),2&e){const t=_(2);f(1),Bt("currenthistory ",t.getClassName(t.clazz.coveredBranches,t.clazz.currentHistoricCoverage.cb),""),f(1),G(" ",t.clazz.coveredBranches," "),f(1),g("title",t.clazz.currentHistoricCoverage.et),f(1),G(" ",t.clazz.currentHistoricCoverage.cb," ")}}function BT(e,n){if(1&e&&(J(0),w(1),X()),2&e){const t=_(2);f(1),G(" ",t.clazz.coveredBranches," ")}}function HT(e,n){if(1&e&&(y(0,"td",6),C(1,VT,5,6,"ng-container",1),C(2,BT,2,1,"ng-container",1),v()),2&e){const t=_();f(1),g("ngIf",null!==t.clazz.currentHistoricCoverage),f(1),g("ngIf",null===t.clazz.currentHistoricCoverage)}}function jT(e,n){if(1&e&&(J(0),y(1,"div",8),w(2),v(),y(3,"div",7),w(4),v(),X()),2&e){const t=_(2);f(2),F(t.clazz.totalBranches),f(1),g("title",t.clazz.currentHistoricCoverage.et),f(1),F(t.clazz.currentHistoricCoverage.tb)}}function $T(e,n){if(1&e&&(J(0),w(1),X()),2&e){const t=_(2);f(1),G(" ",t.clazz.totalBranches," ")}}function UT(e,n){if(1&e&&(y(0,"td",6),C(1,jT,5,3,"ng-container",1),C(2,$T,2,1,"ng-container",1),v()),2&e){const t=_();f(1),g("ngIf",null!==t.clazz.currentHistoricCoverage),f(1),g("ngIf",null===t.clazz.currentHistoricCoverage)}}function zT(e,n){if(1&e&&N(0,"div",14),2&e){const t=_(2);fn("title",t.translations.history+": "+t.translations.branchCoverage),g("historicCoverages",t.clazz.branchCoverageHistory)("ngClass",Zi(3,au,null!==t.clazz.currentHistoricCoverage))}}function GT(e,n){if(1&e&&(J(0),y(1,"div"),w(2),v(),y(3,"div",7),w(4),v(),X()),2&e){const t=_(2);f(1),Bt("currenthistory ",t.getClassName(t.clazz.branchCoverage,t.clazz.currentHistoricCoverage.bcq),""),f(1),G(" ",t.clazz.branchCoveragePercentage," "),f(1),g("title",t.clazz.currentHistoricCoverage.et+": "+t.clazz.currentHistoricCoverage.branchCoverageRatioText),f(1),G("",t.clazz.currentHistoricCoverage.bcq,"%")}}function WT(e,n){if(1&e&&(J(0),w(1),X()),2&e){const t=_(2);f(1),G(" ",t.clazz.branchCoveragePercentage," ")}}function qT(e,n){if(1&e&&(y(0,"td",9),C(1,zT,1,5,"div",13),C(2,GT,5,6,"ng-container",1),C(3,WT,2,1,"ng-container",1),v()),2&e){const t=_();g("title",t.clazz.branchCoverageRatioText),f(1),g("ngIf",t.clazz.branchCoverageHistory.length>1),f(1),g("ngIf",null!==t.clazz.currentHistoricCoverage),f(1),g("ngIf",null===t.clazz.currentHistoricCoverage)}}function ZT(e,n){if(1&e&&(y(0,"td",6),N(1,"coverage-bar",12),v()),2&e){const t=_();f(1),g("percentage",t.clazz.branchCoverage)}}function QT(e,n){if(1&e&&(J(0),y(1,"div"),w(2),v(),y(3,"div",7),w(4),v(),X()),2&e){const t=_(2);f(1),Bt("currenthistory ",t.getClassName(t.clazz.coveredMethods,t.clazz.currentHistoricCoverage.cm),""),f(1),G(" ",t.clazz.coveredMethods," "),f(1),g("title",t.clazz.currentHistoricCoverage.et),f(1),G(" ",t.clazz.currentHistoricCoverage.cm," ")}}function YT(e,n){if(1&e&&(J(0),w(1),X()),2&e){const t=_(2);f(1),G(" ",t.clazz.coveredMethods," ")}}function KT(e,n){if(1&e&&(y(0,"td",6),C(1,QT,5,6,"ng-container",1),C(2,YT,2,1,"ng-container",1),v()),2&e){const t=_();f(1),g("ngIf",null!==t.clazz.currentHistoricCoverage),f(1),g("ngIf",null===t.clazz.currentHistoricCoverage)}}function JT(e,n){if(1&e&&(J(0),y(1,"div",8),w(2),v(),y(3,"div",7),w(4),v(),X()),2&e){const t=_(2);f(2),F(t.clazz.totalMethods),f(1),g("title",t.clazz.currentHistoricCoverage.et),f(1),F(t.clazz.currentHistoricCoverage.tm)}}function XT(e,n){if(1&e&&(J(0),w(1),X()),2&e){const t=_(2);f(1),G(" ",t.clazz.totalMethods," ")}}function ex(e,n){if(1&e&&(y(0,"td",6),C(1,JT,5,3,"ng-container",1),C(2,XT,2,1,"ng-container",1),v()),2&e){const t=_();f(1),g("ngIf",null!==t.clazz.currentHistoricCoverage),f(1),g("ngIf",null===t.clazz.currentHistoricCoverage)}}function tx(e,n){if(1&e&&N(0,"div",16),2&e){const t=_(2);fn("title",t.translations.history+": "+t.translations.methodCoverage),g("historicCoverages",t.clazz.methodCoverageHistory)("ngClass",Zi(3,au,null!==t.clazz.currentHistoricCoverage))}}function nx(e,n){if(1&e&&(J(0),y(1,"div"),w(2),v(),y(3,"div",7),w(4),v(),X()),2&e){const t=_(2);f(1),Bt("currenthistory ",t.getClassName(t.clazz.methodCoverage,t.clazz.currentHistoricCoverage.mcq),""),f(1),G(" ",t.clazz.methodCoveragePercentage," "),f(1),g("title",t.clazz.currentHistoricCoverage.et+": "+t.clazz.currentHistoricCoverage.methodCoverageRatioText),f(1),G("",t.clazz.currentHistoricCoverage.mcq,"%")}}function rx(e,n){if(1&e&&(J(0),w(1),X()),2&e){const t=_(2);f(1),G(" ",t.clazz.methodCoveragePercentage," ")}}function ox(e,n){if(1&e&&(y(0,"td",9),C(1,tx,1,5,"div",15),C(2,nx,5,6,"ng-container",1),C(3,rx,2,1,"ng-container",1),v()),2&e){const t=_();g("title",t.clazz.methodCoverageRatioText),f(1),g("ngIf",t.clazz.methodCoverageHistory.length>1),f(1),g("ngIf",null!==t.clazz.currentHistoricCoverage),f(1),g("ngIf",null===t.clazz.currentHistoricCoverage)}}function ix(e,n){if(1&e&&(y(0,"td",6),N(1,"coverage-bar",12),v()),2&e){const t=_();f(1),g("percentage",t.clazz.methodCoverage)}}function sx(e,n){if(1&e&&(y(0,"td",6),w(1),v()),2&e){const t=n.$implicit,r=_();f(1),F(r.clazz.metrics[t.abbreviation])}}class Bo{constructor(){this.translations={},this.lineCoverageAvailable=!1,this.branchCoverageAvailable=!1,this.methodCoverageAvailable=!1,this.visibleMetrics=[],this.historyComparisionDate=""}getClassName(n,t){return n>t?"lightgreen":n0),f(2),G(" ",t.translations.grouping," "),f(1),g("max",t.settings.groupingMaximum)("ngModel",t.settings.grouping),f(2),g("ngIf",t.historicCoverageExecutionTimes.length>0),f(5),F(t.metrics.length>0?t.translations.selectCoverageTypesAndMetrics:t.translations.selectCoverageTypes),f(4),G("",t.translations.filter," "),f(1),g("ngModel",t.settings.filter),f(5),g("ngIf",t.settings.showLineCoverage),f(1),g("ngIf",t.settings.showLineCoverage),f(1),g("ngIf",t.settings.showLineCoverage),f(1),g("ngIf",t.settings.showLineCoverage),f(1),g("ngIf",t.settings.showLineCoverage),f(1),g("ngIf",t.settings.showLineCoverage),f(1),g("ngIf",t.branchCoverageAvailable&&t.settings.showBranchCoverage),f(1),g("ngIf",t.branchCoverageAvailable&&t.settings.showBranchCoverage),f(1),g("ngIf",t.branchCoverageAvailable&&t.settings.showBranchCoverage),f(1),g("ngIf",t.branchCoverageAvailable&&t.settings.showBranchCoverage),f(1),g("ngIf",t.methodCoverageAvailable&&t.settings.showMethodCoverage),f(1),g("ngIf",t.methodCoverageAvailable&&t.settings.showMethodCoverage),f(1),g("ngIf",t.methodCoverageAvailable&&t.settings.showMethodCoverage),f(1),g("ngIf",t.methodCoverageAvailable&&t.settings.showMethodCoverage),f(1),g("ngForOf",t.settings.visibleMetrics),f(4),g("ngIf",t.settings.showLineCoverage),f(1),g("ngIf",t.branchCoverageAvailable&&t.settings.showBranchCoverage),f(1),g("ngIf",t.methodCoverageAvailable&&t.settings.showMethodCoverage),f(1),g("ngIf",t.settings.visibleMetrics.length>0),f(4),g("ngClass",Oe(47,ct,"name"===t.settings.sortBy&&"desc"===t.settings.sortOrder,"name"===t.settings.sortBy&&"asc"===t.settings.sortOrder,"name"!==t.settings.sortBy)),f(1),F(t.translations.name),f(1),g("ngIf",t.settings.showLineCoverage),f(1),g("ngIf",t.settings.showLineCoverage),f(1),g("ngIf",t.settings.showLineCoverage),f(1),g("ngIf",t.settings.showLineCoverage),f(1),g("ngIf",t.settings.showLineCoverage),f(1),g("ngIf",t.branchCoverageAvailable&&t.settings.showBranchCoverage),f(1),g("ngIf",t.branchCoverageAvailable&&t.settings.showBranchCoverage),f(1),g("ngIf",t.branchCoverageAvailable&&t.settings.showBranchCoverage),f(1),g("ngIf",t.methodCoverageAvailable&&t.settings.showMethodCoverage),f(1),g("ngIf",t.methodCoverageAvailable&&t.settings.showMethodCoverage),f(1),g("ngIf",t.methodCoverageAvailable&&t.settings.showMethodCoverage),f(1),g("ngForOf",t.settings.visibleMetrics),f(2),g("ngForOf",t.codeElements)}}class Ho{constructor(n){this.queryString="",this.historicCoverageExecutionTimes=[],this.branchCoverageAvailable=!1,this.methodCoverageAvailable=!1,this.metrics=[],this.codeElements=[],this.translations={},this.popupVisible=!1,this.settings=new $A,this.window=n.nativeWindow}ngOnInit(){this.historicCoverageExecutionTimes=this.window.historicCoverageExecutionTimes,this.branchCoverageAvailable=this.window.branchCoverageAvailable,this.methodCoverageAvailable=this.window.methodCoverageAvailable,this.metrics=this.window.metrics,this.translations=this.window.translations;let n=!1;if(void 0!==this.window.history&&void 0!==this.window.history.replaceState&&null!==this.window.history.state&&null!=this.window.history.state.coverageInfoSettings)console.log("Coverage info: Restoring from history",this.window.history.state.coverageInfoSettings),n=!0,this.settings=JSON.parse(JSON.stringify(this.window.history.state.coverageInfoSettings));else{let r=0,o=this.window.assemblies;for(let i=0;i-1&&(this.queryString=window.location.href.substring(t)),this.updateCoverageInfo(),n&&this.restoreCollapseState()}onBeforeUnload(){if(this.saveCollapseState(),void 0!==this.window.history&&void 0!==this.window.history.replaceState){console.log("Coverage info: Updating history",this.settings);let n=new iv;null!==window.history.state&&(n=JSON.parse(JSON.stringify(this.window.history.state))),n.coverageInfoSettings=JSON.parse(JSON.stringify(this.settings)),window.history.replaceState(n,"")}}updateCoverageInfo(){let n=(new Date).getTime(),t=this.window.assemblies,r=[],o=0;if(0===this.settings.grouping)for(let a=0;a{for(let r=0;r{for(let o=0;on&&(r[o].collapsed=this.settings.collapseStates[n]),n++,t(r[o].subElements)};t(this.codeElements)}}Ho.\u0275fac=function(n){return new(n||Ho)(M(Dn))},Ho.\u0275cmp=Nt({type:Ho,selectors:[["coverage-info"]],hostBindings:function(n,t){1&n&&k("beforeunload",function(){return t.onBeforeUnload()},0,ol)},decls:1,vars:1,consts:[[4,"ngIf"],[3,"visible","translations","branchCoverageAvailable","methodCoverageAvailable","metrics","showLineCoverage","showBranchCoverage","showMethodCoverage","visibleMetrics","visibleChange","showLineCoverageChange","showBranchCoverageChange","showMethodCoverageChange","visibleMetricsChange",4,"ngIf"],[1,"customizebox"],["href","#",3,"click"],[1,"center"],["type","range","step","1","min","-1",3,"max","ngModel","ngModelChange"],[1,"right"],["type","button",3,"click"],[1,"icon-cog"],["type","text",3,"ngModel","ngModelChange"],[1,"table-responsive"],[1,"overview","table-fixed","stripped"],[1,"column-min-200"],["class","column90",4,"ngIf"],["class","column105",4,"ngIf"],["class","column100",4,"ngIf"],["class","column70",4,"ngIf"],["class","column98",4,"ngIf"],["class","column112",4,"ngIf"],["class","column112",4,"ngFor","ngForOf"],[1,"header"],["class","center","colspan","6",4,"ngIf"],["class","center","colspan","4",4,"ngIf"],["class","center",4,"ngIf"],[1,"icon-down-dir",3,"ngClass"],["class","right",4,"ngIf"],["class","center","colspan","2",4,"ngIf"],[4,"ngFor","ngForOf"],[3,"visible","translations","branchCoverageAvailable","methodCoverageAvailable","metrics","showLineCoverage","showBranchCoverage","showMethodCoverage","visibleMetrics","visibleChange","showLineCoverageChange","showBranchCoverageChange","showMethodCoverageChange","visibleMetricsChange"],[3,"ngModel","ngModelChange"],["value",""],[3,"value",4,"ngFor","ngForOf"],[3,"value"],["value","allChanges"],["value","lineCoverageIncreaseOnly"],["value","lineCoverageDecreaseOnly"],["value","branchCoverageIncreaseOnly",4,"ngIf"],["value","branchCoverageDecreaseOnly",4,"ngIf"],["value","methodCoverageIncreaseOnly",4,"ngIf"],["value","methodCoverageDecreaseOnly",4,"ngIf"],["value","branchCoverageIncreaseOnly"],["value","branchCoverageDecreaseOnly"],["value","methodCoverageIncreaseOnly"],["value","methodCoverageDecreaseOnly"],[1,"column90"],[1,"column105"],[1,"column100"],[1,"column70"],[1,"column98"],[1,"column112"],["colspan","6",1,"center"],["colspan","4",1,"center"],["colspan","2",1,"center"],["target","_blank",3,"href"],[1,"icon-info-circled"],["codeelement-row","",3,"element","collapsed","lineCoverageAvailable","branchCoverageAvailable","methodCoverageAvailable","visibleMetrics",4,"ngIf"],["codeelement-row","",3,"element","collapsed","lineCoverageAvailable","branchCoverageAvailable","methodCoverageAvailable","visibleMetrics"],["class-row","",3,"clazz","translations","lineCoverageAvailable","branchCoverageAvailable","methodCoverageAvailable","visibleMetrics","historyComparisionDate",4,"ngIf"],["class-row","",3,"clazz","translations","lineCoverageAvailable","branchCoverageAvailable","methodCoverageAvailable","visibleMetrics","historyComparisionDate"],["codeelement-row","",1,"namespace",3,"element","collapsed","lineCoverageAvailable","branchCoverageAvailable","methodCoverageAvailable","visibleMetrics"],["class","namespace","class-row","",3,"clazz","translations","lineCoverageAvailable","branchCoverageAvailable","methodCoverageAvailable","visibleMetrics","historyComparisionDate",4,"ngIf"],["class-row","",1,"namespace",3,"clazz","translations","lineCoverageAvailable","branchCoverageAvailable","methodCoverageAvailable","visibleMetrics","historyComparisionDate"]],template:function(n,t){1&n&&C(0,oN,73,51,"div",0),2&n&&g("ngIf",t.codeElements.length>0)},dependencies:[bo,xr,jn,nu,ou,So,Jc,Ro,ys,Oo,ko,Lo,Bo],encapsulation:2});class iN{constructor(){this.assembly="",this.numberOfRiskHotspots=10,this.filter="",this.sortBy="",this.sortOrder="asc"}}function sN(e,n){if(1&e&&(y(0,"option",15),w(1),v()),2&e){const t=n.$implicit;g("value",t),f(1),F(t)}}function aN(e,n){if(1&e&&(y(0,"span"),w(1),v()),2&e){const t=_(2);f(1),F(t.translations.top)}}function lN(e,n){1&e&&(y(0,"option",22),w(1,"20"),v())}function cN(e,n){1&e&&(y(0,"option",23),w(1,"50"),v())}function uN(e,n){1&e&&(y(0,"option",24),w(1,"100"),v())}function dN(e,n){if(1&e&&(y(0,"option",15),w(1),v()),2&e){const t=_(3);g("value",t.totalNumberOfRiskHotspots),f(1),F(t.translations.all)}}function fN(e,n){if(1&e){const t=Ce();y(0,"select",16),k("ngModelChange",function(o){return Q(t),Y(_(2).settings.numberOfRiskHotspots=o)}),y(1,"option",17),w(2,"10"),v(),C(3,lN,2,0,"option",18),C(4,cN,2,0,"option",19),C(5,uN,2,0,"option",20),C(6,dN,2,2,"option",21),v()}if(2&e){const t=_(2);g("ngModel",t.settings.numberOfRiskHotspots),f(3),g("ngIf",t.totalNumberOfRiskHotspots>10),f(1),g("ngIf",t.totalNumberOfRiskHotspots>20),f(1),g("ngIf",t.totalNumberOfRiskHotspots>50),f(1),g("ngIf",t.totalNumberOfRiskHotspots>100)}}function hN(e,n){1&e&&N(0,"col",25)}const Ss=function(e,n,t){return{"icon-up-dir_active":e,"icon-down-dir_active":n,"icon-down-dir":t}};function pN(e,n){if(1&e){const t=Ce();y(0,"th")(1,"a",12),k("click",function(o){const s=Q(t).index;return Y(_(2).updateSorting(""+s,o))}),N(2,"i",13),w(3),v(),y(4,"a",26),N(5,"i",27),v()()}if(2&e){const t=n.$implicit,r=n.index,o=_(2);f(2),g("ngClass",Oe(3,Ss,o.settings.sortBy===""+r&&"desc"===o.settings.sortOrder,o.settings.sortBy===""+r&&"asc"===o.settings.sortOrder,o.settings.sortBy!==""+r)),f(1),F(t.name),f(1),fn("href",t.explanationUrl,un)}}const gN=function(e,n){return{lightred:e,lightgreen:n}};function mN(e,n){if(1&e&&(y(0,"td",31),w(1),v()),2&e){const t=n.$implicit;g("ngClass",Vl(2,gN,t.exceeded,!t.exceeded)),f(1),F(t.value)}}function _N(e,n){if(1&e&&(y(0,"tr")(1,"td"),w(2),v(),y(3,"td")(4,"a",28),w(5),v()(),y(6,"td",29)(7,"a",28),w(8),v()(),C(9,mN,2,5,"td",30),v()),2&e){const t=n.$implicit,r=_(2);f(2),F(t.assembly),f(2),g("href",t.reportPath+r.queryString,un),f(1),F(t.class),f(1),g("title",t.methodName),f(1),g("href",t.reportPath+r.queryString+"#file"+t.fileIndex+"_line"+t.line,un),f(1),G(" ",t.methodShortName," "),f(1),g("ngForOf",t.metrics)}}function vN(e,n){if(1&e){const t=Ce();y(0,"div")(1,"div",1)(2,"div")(3,"select",2),k("ngModelChange",function(o){return Q(t),Y(_().settings.assembly=o)})("ngModelChange",function(){return Q(t),Y(_().updateRiskHotpots())}),y(4,"option",3),w(5),v(),C(6,sN,2,2,"option",4),v()(),y(7,"div",5),C(8,aN,2,1,"span",0),C(9,fN,7,5,"select",6),v(),N(10,"div",5),y(11,"div",7)(12,"span"),w(13),v(),y(14,"input",8),k("ngModelChange",function(o){return Q(t),Y(_().settings.filter=o)})("ngModelChange",function(){return Q(t),Y(_().updateRiskHotpots())}),v()()(),y(15,"div",9)(16,"table",10)(17,"colgroup"),N(18,"col")(19,"col")(20,"col"),C(21,hN,1,0,"col",11),v(),y(22,"thead")(23,"tr")(24,"th")(25,"a",12),k("click",function(o){return Q(t),Y(_().updateSorting("assembly",o))}),N(26,"i",13),w(27),v()(),y(28,"th")(29,"a",12),k("click",function(o){return Q(t),Y(_().updateSorting("class",o))}),N(30,"i",13),w(31),v()(),y(32,"th")(33,"a",12),k("click",function(o){return Q(t),Y(_().updateSorting("method",o))}),N(34,"i",13),w(35),v()(),C(36,pN,6,7,"th",14),v()(),y(37,"tbody"),C(38,_N,10,7,"tr",14),function gg(e,n){const t=ee();let r;const o=e+22;t.firstCreatePass?(r=function kE(e,n){if(n)for(let t=n.length-1;t>=0;t--){const r=n[t];if(e===r.name)return r}}(n,t.pipeRegistry),t.data[o]=r,r.onDestroy&&(t.destroyHooks||(t.destroyHooks=[])).push(o,r.onDestroy)):r=t.data[o];const i=r.factory||(r.factory=Sn(r.type)),s=dt(M);try{const a=fi(!1),l=i();return fi(a),function bb(e,n,t,r){t>=e.data.length&&(e.data[t]=null,e.blueprint[t]=null),n[t]=r}(t,E(),o,l),l}finally{dt(s)}}(39,"slice"),v()()()()}if(2&e){const t=_();f(3),g("ngModel",t.settings.assembly),f(2),F(t.translations.assembly),f(1),g("ngForOf",t.assemblies),f(2),g("ngIf",t.totalNumberOfRiskHotspots>10),f(1),g("ngIf",t.totalNumberOfRiskHotspots>10),f(4),G("",t.translations.filter," "),f(1),g("ngModel",t.settings.filter),f(7),g("ngForOf",t.riskHotspotMetrics),f(5),g("ngClass",Oe(20,Ss,"assembly"===t.settings.sortBy&&"desc"===t.settings.sortOrder,"assembly"===t.settings.sortBy&&"asc"===t.settings.sortOrder,"assembly"!==t.settings.sortBy)),f(1),F(t.translations.assembly),f(3),g("ngClass",Oe(24,Ss,"class"===t.settings.sortBy&&"desc"===t.settings.sortOrder,"class"===t.settings.sortBy&&"asc"===t.settings.sortOrder,"class"!==t.settings.sortBy)),f(1),F(t.translations.class),f(3),g("ngClass",Oe(28,Ss,"method"===t.settings.sortBy&&"desc"===t.settings.sortOrder,"method"===t.settings.sortBy&&"asc"===t.settings.sortOrder,"method"!==t.settings.sortBy)),f(1),F(t.translations.method),f(1),g("ngForOf",t.riskHotspotMetrics),f(2),g("ngForOf",function mg(e,n,t,r,o){const i=e+22,s=E(),a=function Kn(e,n){return e[n]}(s,i);return function _o(e,n){return e[1].data[n].pure}(s,i)?fg(s,qe(),n,a.transform,t,r,o,a):a.transform(t,r,o)}(39,16,t.riskHotspots,0,t.settings.numberOfRiskHotspots))}}class jo{constructor(n){this.queryString="",this.riskHotspotMetrics=[],this.riskHotspots=[],this.totalNumberOfRiskHotspots=0,this.assemblies=[],this.translations={},this.settings=new iN,this.window=n.nativeWindow}ngOnInit(){this.riskHotspotMetrics=this.window.riskHotspotMetrics,this.translations=this.window.translations,void 0!==this.window.history&&void 0!==this.window.history.replaceState&&null!==this.window.history.state&&null!=this.window.history.state.riskHotspotsSettings&&(console.log("Risk hotspots: Restoring from history",this.window.history.state.riskHotspotsSettings),this.settings=JSON.parse(JSON.stringify(this.window.history.state.riskHotspotsSettings)));const n=window.location.href.indexOf("?");n>-1&&(this.queryString=window.location.href.substring(n)),this.updateRiskHotpots()}onDonBeforeUnlodad(){if(void 0!==this.window.history&&void 0!==this.window.history.replaceState){console.log("Risk hotspots: Updating history",this.settings);let n=new iv;null!==window.history.state&&(n=JSON.parse(JSON.stringify(this.window.history.state))),n.riskHotspotsSettings=JSON.parse(JSON.stringify(this.settings)),window.history.replaceState(n,"")}}updateRiskHotpots(){const n=this.window.riskHotspots;if(this.totalNumberOfRiskHotspots=n.length,0===this.assemblies.length){let i=[];for(let s=0;s0)},dependencies:[bo,xr,jn,nu,ou,So,Ro,ys,Oo,Om],encapsulation:2});class Or{}Or.\u0275fac=function(n){return new(n||Or)},Or.\u0275mod=an({type:Or,bootstrap:[jo,Ho]}),Or.\u0275inj=$t({providers:[Dn],imports:[DS,jA]}),CS().bootstrapModule(Or).catch(e=>console.error(e))}},me=>{me(me.s=938)}]); \ No newline at end of file diff --git a/docs/resources/reports/Html_Light/report.css b/docs/resources/reports/Html_Light/report.css new file mode 100644 index 00000000..fca63211 --- /dev/null +++ b/docs/resources/reports/Html_Light/report.css @@ -0,0 +1,517 @@ +html { font-family: sans-serif; margin: 0; padding: 0; font-size: 0.9em; background-color: #d6d6d6; height: 100%; } +body { margin: 0; padding: 0; height: 100%; color: #000; } +h1 { font-family: 'Century Gothic', sans-serif; font-size: 1.2em; font-weight: normal; color: #fff; background-color: #6f6f6f; padding: 10px; margin: 20px -20px 20px -20px; } +h1:first-of-type { margin-top: 0; } +h2 { font-size: 1.0em; font-weight: bold; margin: 10px 0 15px 0; padding: 0; } +h3 { font-size: 1.0em; font-weight: bold; margin: 0 0 10px 0; padding: 0; display: inline-block; } +input, select, button { border: 1px solid #767676; border-radius: 0; } +button { background-color: #ddd; cursor: pointer; } +a { color: #c00; text-decoration: none; } +a:hover { color: #000; text-decoration: none; } +h1 a.back { color: #fff; background-color: #949494; display: inline-block; margin: -12px 5px -10px -10px; padding: 10px; border-right: 1px solid #fff; } +h1 a.back:hover { background-color: #ccc; } +h1 a.button { color: #000; background-color: #bebebe; margin: -5px 0 0 10px; padding: 5px 8px 5px 8px; border: 1px solid #fff; font-size: 0.9em; border-radius: 3px; float:right; } +h1 a.button:hover { background-color: #ccc; } +h1 a.button i { position: relative; top: 1px; } + +.container { margin: auto; max-width: 1650px; width: 90%; background-color: #fff; display: flex; box-shadow: 0 0 60px #7d7d7d; min-height: 100%; } +.containerleft { padding: 0 20px 20px 20px; flex: 1; min-width: 1%; } +.containerright { width: 340px; min-width: 340px; background-color: #e5e5e5; height: 100%; } +.containerrightfixed { position: fixed; padding: 0 20px 20px 20px; border-left: 1px solid #6f6f6f; width: 300px; overflow-y: auto; height: 100%; top: 0; bottom: 0; } +.containerrightfixed h1 { background-color: #c00; } +.containerrightfixed label, .containerright a { white-space: nowrap; overflow: hidden; display: inline-block; width: 100%; max-width: 300px; text-overflow: ellipsis; } +.containerright a { margin-bottom: 3px; } + +@media screen and (max-width:1200px){ + .container { box-shadow: none; width: 100%; } + .containerright { display: none; } +} + +.popup-container { position: fixed; left: 0; right: 0; top: 0; bottom: 0; background-color: rgb(0, 0, 0, 0.6); z-index: 100; } +.popup { position: absolute; top: 50%; right: 50%; transform: translate(50%,-50%); background-color: #fff; padding: 25px; border-radius: 15px; min-width: 300px; } +.popup .close { text-align: right; color: #979797; font-size: 25px;position: relative; left: 10px; bottom: 10px; cursor: pointer; } + +.footer { font-size: 0.7em; text-align: center; margin-top: 35px; } + +.card-group { display: flex; flex-wrap: wrap; margin-top: -15px; margin-left: -15px; } +.card-group + .card-group { margin-top: 0; } +.card-group .card { margin-top: 15px; margin-left: 15px; display: flex; flex-direction: column; background-color: #e4e4e4; background: radial-gradient(circle, #fefefe 0%, #f6f6f6 100%); border: 1px solid #c1c1c1; padding: 15px; color: #6f6f6f; max-width: 100% } +.card-group .card .card-header { font-size: 1.5rem; font-family: 'Century Gothic', sans-serif; margin-bottom: 15px; flex-grow: 1; } +.card-group .card .card-body { display: flex; flex-direction: row; gap: 15px; flex-grow: 1; } +.card-group .card .card-body div.table { display: flex; flex-direction: column; } +.card-group .card .large { font-size: 5rem; line-height: 5rem; font-weight: bold; align-self: flex-end; border-left-width: 4px; padding-left: 10px; } +.card-group .card table { align-self: flex-end; border-collapse: collapse; } +.card-group .card table tr { border-bottom: 1px solid #c1c1c1; } +.card-group .card table tr:hover { background-color: #c1c1c1; } +.card-group .card table tr:last-child { border-bottom: none; } +.card-group .card table th, .card-group .card table td { padding: 2px; } +.card-group td.limit-width { max-width: 200px; text-overflow: ellipsis; overflow: hidden; } +.card-group td.overflow-wrap { overflow-wrap: anywhere; } + +.pro-button { color: #fff; background-color: #20A0D2; background-image: linear-gradient(50deg, #1c7ed6 0%, #23b8cf 100%); padding: 10px; border-radius: 3px; font-weight: bold; display: inline-block; } +.pro-button:hover { color: #fff; background-color: #1C8EB7; background-image: linear-gradient(50deg, #1A6FBA 0%, #1EA1B5 100%); } +.pro-button-tiny { border-radius: 10px; padding: 3px 8px; } + +th { text-align: left; } +.table-fixed { table-layout: fixed; } +.table-responsive { overflow-x: auto; } +.table-responsive::-webkit-scrollbar { height: 20px; } +.table-responsive::-webkit-scrollbar-thumb { background-color: #6f6f6f; border-radius: 20px; border: 5px solid #fff; } +.overview { border: 1px solid #c1c1c1; border-collapse: collapse; width: 100%; word-wrap: break-word; } +.overview th { border: 1px solid #c1c1c1; border-collapse: collapse; padding: 2px 4px 2px 4px; background-color: #ddd; } +.overview tr.namespace th { background-color: #dcdcdc; } +.overview thead th { background-color: #d1d1d1; } +.overview th a { color: #000; } +.overview tr.namespace a { margin-left: 15px; display: block; } +.overview td { border: 1px solid #c1c1c1; border-collapse: collapse; padding: 2px 5px 2px 5px; } +.overview tr.header th { background-color: #d1d1d1; } +.overview tr.header th:nth-child(2n+1) { background-color: #ddd; } +.overview tr.header th:first-child { border-left: 1px solid #fff; border-top: 1px solid #fff; background-color: #fff; } + +div.currenthistory { margin: -2px -5px 0 -5px; padding: 2px 5px 2px 5px; height: 16px; } +.coverage { border-collapse: collapse; font-size: 5px; height: 10px; } +.coverage td { padding: 0; border: none; } +.stripped tr:nth-child(2n+1) { background-color: #F3F3F3; } + +.customizebox { font-size: 0.75em; margin-bottom: 7px; } +.customizebox>div { width: 25%; display: inline-block; } +.customizebox div.right input { width: 150px; } +#namespaceslider { width: 200px; display: inline-block; margin-left: 8px; } + +.percentagebar { + padding-left: 3px; +} +a.percentagebar { + padding-left: 6px; +} +.percentagebarundefined { + border-left: 2px solid #fff; +} +.percentagebar0 { + border-left: 2px solid #c10909; +} +.percentagebar10 { + border-left: 2px solid; + border-image: linear-gradient(to bottom, #c10909 90%, #0aad0a 90%, #0aad0a 100%) 1; +} +.percentagebar20 { + border-left: 2px solid; + border-image: linear-gradient(to bottom, #c10909 80%, #0aad0a 80%, #0aad0a 100%) 1; +} +.percentagebar30 { + border-left: 2px solid; + border-image: linear-gradient(to bottom, #c10909 70%, #0aad0a 70%, #0aad0a 100%) 1; +} +.percentagebar40 { + border-left: 2px solid; + border-image: linear-gradient(to bottom, #c10909 60%, #0aad0a 60%, #0aad0a 100%) 1; +} +.percentagebar50 { + border-left: 2px solid; + border-image: linear-gradient(to bottom, #c10909 50%, #0aad0a 50%, #0aad0a 100%) 1; +} +.percentagebar60 { + border-left: 2px solid; + border-image: linear-gradient(to bottom, #c10909 40%, #0aad0a 40%, #0aad0a 100%) 1; +} +.percentagebar70 { + border-left: 2px solid; + border-image: linear-gradient(to bottom, #c10909 30%, #0aad0a 30%, #0aad0a 100%) 1; +} +.percentagebar80 { + border-left: 2px solid; + border-image: linear-gradient(to bottom, #c10909 20%, #0aad0a 20%, #0aad0a 100%) 1; +} +.percentagebar90 { + border-left: 2px solid; + border-image: linear-gradient(to bottom, #c10909 10%, #0aad0a 10%, #0aad0a 100%) 1; +} +.percentagebar100 { + border-left: 2px solid #0aad0a; +} + +.mt-1 { margin-top: 4px; } +.hidden, .ng-hide { display: none; } +.right { text-align: right; } +.center { text-align: center; } +.rightmargin { padding-right: 8px; } +.leftmargin { padding-left: 5px; } +.green { background-color: #0aad0a; } +.lightgreen { background-color: #dcf4dc; } +.red { background-color: #c10909; } +.lightred { background-color: #f7dede; } +.orange { background-color: #FFA500; } +.lightorange { background-color: #FFEFD5; } +.gray { background-color: #dcdcdc; } +.lightgray { color: #888888; } +.lightgraybg { background-color: #dadada; } + +code { font-family: Consolas, monospace; font-size: 0.9em; } + +.toggleZoom { text-align:right; } + +.ct-chart { position: relative; } +.ct-chart .ct-line { stroke-width: 2px !important; } +.ct-chart .ct-point { stroke-width: 6px !important; transition: stroke-width .2s; } +.ct-chart .ct-point:hover { stroke-width: 10px !important; } +.ct-chart .ct-series.ct-series-a .ct-line, .ct-chart .ct-series.ct-series-a .ct-point { stroke: #c00 !important;} +.ct-chart .ct-series.ct-series-b .ct-line, .ct-chart .ct-series.ct-series-b .ct-point { stroke: #1c2298 !important;} +.ct-chart .ct-series.ct-series-c .ct-line, .ct-chart .ct-series.ct-series-c .ct-point { stroke: #0aad0a !important;} + +.tinylinecoveragechart, .tinybranchcoveragechart, .tinymethodcoveragechart { background-color: #fff; margin-left: -3px; float: left; border: 1px solid #c1c1c1; width: 30px; height: 18px; } +.historiccoverageoffset { margin-top: 7px; } + +.tinylinecoveragechart .ct-line, .tinybranchcoveragechart .ct-line, .tinymethodcoveragechart .ct-line { stroke-width: 1px !important; } +.tinybranchcoveragechart .ct-series.ct-series-a .ct-line { stroke: #1c2298 !important; } +.tinymethodcoveragechart .ct-series.ct-series-a .ct-line { stroke: #0aad0a !important; } + +.linecoverage { background-color: #c00; width: 10px; height: 8px; border: 1px solid #000; display: inline-block; } +.branchcoverage { background-color: #1c2298; width: 10px; height: 8px; border: 1px solid #000; display: inline-block; } +.codeelementcoverage { background-color: #0aad0a; width: 10px; height: 8px; border: 1px solid #000; display: inline-block; } + +.tooltip { position: absolute; display: none; padding: 5px; background: #F4C63D; color: #453D3F; pointer-events: none; z-index: 1; min-width: 250px; } + +.column-min-200 { min-width: 200px; } +.column60 { width: 60px; } +.column70 { width: 70px; } +.column90 { width: 90px; } +.column98 { width: 98px; } +.column100 { width: 100px; } +.column105 { width: 105px; } +.column112 { width: 112px; } + +.cardpercentagebar { border-left-style: solid; } +.cardpercentagebar0 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 0%, #0aad0a 0%) 1; } +.cardpercentagebar1 { border-image: linear-gradient(to bottom, #c10909 1%, #c10909 1%, #0aad0a 1%) 1; } +.cardpercentagebar2 { border-image: linear-gradient(to bottom, #c10909 2%, #c10909 2%, #0aad0a 2%) 1; } +.cardpercentagebar3 { border-image: linear-gradient(to bottom, #c10909 3%, #c10909 3%, #0aad0a 3%) 1; } +.cardpercentagebar4 { border-image: linear-gradient(to bottom, #c10909 4%, #c10909 4%, #0aad0a 4%) 1; } +.cardpercentagebar5 { border-image: linear-gradient(to bottom, #c10909 5%, #c10909 5%, #0aad0a 5%) 1; } +.cardpercentagebar6 { border-image: linear-gradient(to bottom, #c10909 6%, #c10909 6%, #0aad0a 6%) 1; } +.cardpercentagebar7 { border-image: linear-gradient(to bottom, #c10909 7%, #c10909 7%, #0aad0a 7%) 1; } +.cardpercentagebar8 { border-image: linear-gradient(to bottom, #c10909 8%, #c10909 8%, #0aad0a 8%) 1; } +.cardpercentagebar9 { border-image: linear-gradient(to bottom, #c10909 9%, #c10909 9%, #0aad0a 9%) 1; } +.cardpercentagebar10 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 10%, #0aad0a 10%) 1; } +.cardpercentagebar11 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 11%, #0aad0a 11%) 1; } +.cardpercentagebar12 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 12%, #0aad0a 12%) 1; } +.cardpercentagebar13 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 13%, #0aad0a 13%) 1; } +.cardpercentagebar14 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 14%, #0aad0a 14%) 1; } +.cardpercentagebar15 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 15%, #0aad0a 15%) 1; } +.cardpercentagebar16 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 16%, #0aad0a 16%) 1; } +.cardpercentagebar17 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 17%, #0aad0a 17%) 1; } +.cardpercentagebar18 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 18%, #0aad0a 18%) 1; } +.cardpercentagebar19 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 19%, #0aad0a 19%) 1; } +.cardpercentagebar20 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 20%, #0aad0a 20%) 1; } +.cardpercentagebar21 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 21%, #0aad0a 21%) 1; } +.cardpercentagebar22 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 22%, #0aad0a 22%) 1; } +.cardpercentagebar23 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 23%, #0aad0a 23%) 1; } +.cardpercentagebar24 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 24%, #0aad0a 24%) 1; } +.cardpercentagebar25 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 25%, #0aad0a 25%) 1; } +.cardpercentagebar26 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 26%, #0aad0a 26%) 1; } +.cardpercentagebar27 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 27%, #0aad0a 27%) 1; } +.cardpercentagebar28 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 28%, #0aad0a 28%) 1; } +.cardpercentagebar29 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 29%, #0aad0a 29%) 1; } +.cardpercentagebar30 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 30%, #0aad0a 30%) 1; } +.cardpercentagebar31 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 31%, #0aad0a 31%) 1; } +.cardpercentagebar32 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 32%, #0aad0a 32%) 1; } +.cardpercentagebar33 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 33%, #0aad0a 33%) 1; } +.cardpercentagebar34 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 34%, #0aad0a 34%) 1; } +.cardpercentagebar35 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 35%, #0aad0a 35%) 1; } +.cardpercentagebar36 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 36%, #0aad0a 36%) 1; } +.cardpercentagebar37 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 37%, #0aad0a 37%) 1; } +.cardpercentagebar38 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 38%, #0aad0a 38%) 1; } +.cardpercentagebar39 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 39%, #0aad0a 39%) 1; } +.cardpercentagebar40 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 40%, #0aad0a 40%) 1; } +.cardpercentagebar41 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 41%, #0aad0a 41%) 1; } +.cardpercentagebar42 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 42%, #0aad0a 42%) 1; } +.cardpercentagebar43 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 43%, #0aad0a 43%) 1; } +.cardpercentagebar44 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 44%, #0aad0a 44%) 1; } +.cardpercentagebar45 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 45%, #0aad0a 45%) 1; } +.cardpercentagebar46 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 46%, #0aad0a 46%) 1; } +.cardpercentagebar47 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 47%, #0aad0a 47%) 1; } +.cardpercentagebar48 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 48%, #0aad0a 48%) 1; } +.cardpercentagebar49 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 49%, #0aad0a 49%) 1; } +.cardpercentagebar50 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 50%, #0aad0a 50%) 1; } +.cardpercentagebar51 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 51%, #0aad0a 51%) 1; } +.cardpercentagebar52 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 52%, #0aad0a 52%) 1; } +.cardpercentagebar53 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 53%, #0aad0a 53%) 1; } +.cardpercentagebar54 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 54%, #0aad0a 54%) 1; } +.cardpercentagebar55 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 55%, #0aad0a 55%) 1; } +.cardpercentagebar56 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 56%, #0aad0a 56%) 1; } +.cardpercentagebar57 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 57%, #0aad0a 57%) 1; } +.cardpercentagebar58 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 58%, #0aad0a 58%) 1; } +.cardpercentagebar59 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 59%, #0aad0a 59%) 1; } +.cardpercentagebar60 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 60%, #0aad0a 60%) 1; } +.cardpercentagebar61 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 61%, #0aad0a 61%) 1; } +.cardpercentagebar62 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 62%, #0aad0a 62%) 1; } +.cardpercentagebar63 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 63%, #0aad0a 63%) 1; } +.cardpercentagebar64 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 64%, #0aad0a 64%) 1; } +.cardpercentagebar65 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 65%, #0aad0a 65%) 1; } +.cardpercentagebar66 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 66%, #0aad0a 66%) 1; } +.cardpercentagebar67 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 67%, #0aad0a 67%) 1; } +.cardpercentagebar68 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 68%, #0aad0a 68%) 1; } +.cardpercentagebar69 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 69%, #0aad0a 69%) 1; } +.cardpercentagebar70 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 70%, #0aad0a 70%) 1; } +.cardpercentagebar71 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 71%, #0aad0a 71%) 1; } +.cardpercentagebar72 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 72%, #0aad0a 72%) 1; } +.cardpercentagebar73 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 73%, #0aad0a 73%) 1; } +.cardpercentagebar74 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 74%, #0aad0a 74%) 1; } +.cardpercentagebar75 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 75%, #0aad0a 75%) 1; } +.cardpercentagebar76 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 76%, #0aad0a 76%) 1; } +.cardpercentagebar77 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 77%, #0aad0a 77%) 1; } +.cardpercentagebar78 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 78%, #0aad0a 78%) 1; } +.cardpercentagebar79 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 79%, #0aad0a 79%) 1; } +.cardpercentagebar80 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 80%, #0aad0a 80%) 1; } +.cardpercentagebar81 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 81%, #0aad0a 81%) 1; } +.cardpercentagebar82 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 82%, #0aad0a 82%) 1; } +.cardpercentagebar83 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 83%, #0aad0a 83%) 1; } +.cardpercentagebar84 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 84%, #0aad0a 84%) 1; } +.cardpercentagebar85 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 85%, #0aad0a 85%) 1; } +.cardpercentagebar86 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 86%, #0aad0a 86%) 1; } +.cardpercentagebar87 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 87%, #0aad0a 87%) 1; } +.cardpercentagebar88 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 88%, #0aad0a 88%) 1; } +.cardpercentagebar89 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 89%, #0aad0a 89%) 1; } +.cardpercentagebar90 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 90%, #0aad0a 90%) 1; } +.cardpercentagebar91 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 91%, #0aad0a 91%) 1; } +.cardpercentagebar92 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 92%, #0aad0a 92%) 1; } +.cardpercentagebar93 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 93%, #0aad0a 93%) 1; } +.cardpercentagebar94 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 94%, #0aad0a 94%) 1; } +.cardpercentagebar95 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 95%, #0aad0a 95%) 1; } +.cardpercentagebar96 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 96%, #0aad0a 96%) 1; } +.cardpercentagebar97 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 97%, #0aad0a 97%) 1; } +.cardpercentagebar98 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 98%, #0aad0a 98%) 1; } +.cardpercentagebar99 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 99%, #0aad0a 99%) 1; } +.cardpercentagebar100 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 100%, #0aad0a 100%) 1; } + +.covered0 { width: 0px; } +.covered1 { width: 1px; } +.covered2 { width: 2px; } +.covered3 { width: 3px; } +.covered4 { width: 4px; } +.covered5 { width: 5px; } +.covered6 { width: 6px; } +.covered7 { width: 7px; } +.covered8 { width: 8px; } +.covered9 { width: 9px; } +.covered10 { width: 10px; } +.covered11 { width: 11px; } +.covered12 { width: 12px; } +.covered13 { width: 13px; } +.covered14 { width: 14px; } +.covered15 { width: 15px; } +.covered16 { width: 16px; } +.covered17 { width: 17px; } +.covered18 { width: 18px; } +.covered19 { width: 19px; } +.covered20 { width: 20px; } +.covered21 { width: 21px; } +.covered22 { width: 22px; } +.covered23 { width: 23px; } +.covered24 { width: 24px; } +.covered25 { width: 25px; } +.covered26 { width: 26px; } +.covered27 { width: 27px; } +.covered28 { width: 28px; } +.covered29 { width: 29px; } +.covered30 { width: 30px; } +.covered31 { width: 31px; } +.covered32 { width: 32px; } +.covered33 { width: 33px; } +.covered34 { width: 34px; } +.covered35 { width: 35px; } +.covered36 { width: 36px; } +.covered37 { width: 37px; } +.covered38 { width: 38px; } +.covered39 { width: 39px; } +.covered40 { width: 40px; } +.covered41 { width: 41px; } +.covered42 { width: 42px; } +.covered43 { width: 43px; } +.covered44 { width: 44px; } +.covered45 { width: 45px; } +.covered46 { width: 46px; } +.covered47 { width: 47px; } +.covered48 { width: 48px; } +.covered49 { width: 49px; } +.covered50 { width: 50px; } +.covered51 { width: 51px; } +.covered52 { width: 52px; } +.covered53 { width: 53px; } +.covered54 { width: 54px; } +.covered55 { width: 55px; } +.covered56 { width: 56px; } +.covered57 { width: 57px; } +.covered58 { width: 58px; } +.covered59 { width: 59px; } +.covered60 { width: 60px; } +.covered61 { width: 61px; } +.covered62 { width: 62px; } +.covered63 { width: 63px; } +.covered64 { width: 64px; } +.covered65 { width: 65px; } +.covered66 { width: 66px; } +.covered67 { width: 67px; } +.covered68 { width: 68px; } +.covered69 { width: 69px; } +.covered70 { width: 70px; } +.covered71 { width: 71px; } +.covered72 { width: 72px; } +.covered73 { width: 73px; } +.covered74 { width: 74px; } +.covered75 { width: 75px; } +.covered76 { width: 76px; } +.covered77 { width: 77px; } +.covered78 { width: 78px; } +.covered79 { width: 79px; } +.covered80 { width: 80px; } +.covered81 { width: 81px; } +.covered82 { width: 82px; } +.covered83 { width: 83px; } +.covered84 { width: 84px; } +.covered85 { width: 85px; } +.covered86 { width: 86px; } +.covered87 { width: 87px; } +.covered88 { width: 88px; } +.covered89 { width: 89px; } +.covered90 { width: 90px; } +.covered91 { width: 91px; } +.covered92 { width: 92px; } +.covered93 { width: 93px; } +.covered94 { width: 94px; } +.covered95 { width: 95px; } +.covered96 { width: 96px; } +.covered97 { width: 97px; } +.covered98 { width: 98px; } +.covered99 { width: 99px; } +.covered100 { width: 100px; } + + @media print { + html, body { background-color: #fff; } + .container { max-width: 100%; width: 100%; padding: 0; } + .overview colgroup col:first-child { width: 300px; } +} + +.icon-up-dir_active { + background-image: url(icon_up-dir.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMTc5MiIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMTc5MiAxNzkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGZpbGw9IiNjMDAiIGQ9Ik0xNDA4IDEyMTZxMCAyNi0xOSA0NXQtNDUgMTloLTg5NnEtMjYgMC00NS0xOXQtMTktNDUgMTktNDVsNDQ4LTQ0OHExOS0xOSA0NS0xOXQ0NSAxOWw0NDggNDQ4cTE5IDE5IDE5IDQ1eiIvPjwvc3ZnPg==); + background-repeat: no-repeat; + background-size: contain; + padding-left: 15px; + height: 0.9em; + display: inline-block; + position: relative; + top: 3px; +} +.icon-down-dir_active { + background-image: url(icon_up-dir_active.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMTc5MiIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMTc5MiAxNzkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGZpbGw9IiNjMDAiIGQ9Ik0xNDA4IDcwNHEwIDI2LTE5IDQ1bC00NDggNDQ4cS0xOSAxOS00NSAxOXQtNDUtMTlsLTQ0OC00NDhxLTE5LTE5LTE5LTQ1dDE5LTQ1IDQ1LTE5aDg5NnEyNiAwIDQ1IDE5dDE5IDQ1eiIvPjwvc3ZnPg==); + background-repeat: no-repeat; + background-size: contain; + padding-left: 15px; + height: 0.9em; + display: inline-block; + position: relative; + top: 3px; +} +.icon-down-dir { + background-image: url(icon_down-dir_active.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMTc5MiIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMTc5MiAxNzkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0xNDA4IDcwNHEwIDI2LTE5IDQ1bC00NDggNDQ4cS0xOSAxOS00NSAxOXQtNDUtMTlsLTQ0OC00NDhxLTE5LTE5LTE5LTQ1dDE5LTQ1IDQ1LTE5aDg5NnEyNiAwIDQ1IDE5dDE5IDQ1eiIvPjwvc3ZnPg==); + background-repeat: no-repeat; + background-size: contain; + padding-left: 15px; + height: 0.9em; + display: inline-block; + position: relative; + top: 3px; +} +.icon-info-circled { + background-image: url(icon_info-circled.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMTc5MiIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMTc5MiAxNzkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxjaXJjbGUgY3g9Ijg5NiIgY3k9Ijg5NiIgcj0iNzUwIiBmaWxsPSIjZmZmIiAvPjxwYXRoIGZpbGw9IiMyOEE1RkYiIGQ9Ik0xMTUyIDEzNzZ2LTE2MHEwLTE0LTktMjN0LTIzLTloLTk2di01MTJxMC0xNC05LTIzdC0yMy05aC0zMjBxLTE0IDAtMjMgOXQtOSAyM3YxNjBxMCAxNCA5IDIzdDIzIDloOTZ2MzIwaC05NnEtMTQgMC0yMyA5dC05IDIzdjE2MHEwIDE0IDkgMjN0MjMgOWg0NDhxMTQgMCAyMy05dDktMjN6bS0xMjgtODk2di0xNjBxMC0xNC05LTIzdC0yMy05aC0xOTJxLTE0IDAtMjMgOXQtOSAyM3YxNjBxMCAxNCA5IDIzdDIzIDloMTkycTE0IDAgMjMtOXQ5LTIzem02NDAgNDE2cTAgMjA5LTEwMyAzODUuNXQtMjc5LjUgMjc5LjUtMzg1LjUgMTAzLTM4NS41LTEwMy0yNzkuNS0yNzkuNS0xMDMtMzg1LjUgMTAzLTM4NS41IDI3OS41LTI3OS41IDM4NS41LTEwMyAzODUuNSAxMDMgMjc5LjUgMjc5LjUgMTAzIDM4NS41eiIvPjwvc3ZnPg==); + background-repeat: no-repeat; + background-size: contain; + padding-left: 15px; + height: 0.9em; + display: inline-block; +} +.icon-plus { + background-image: url(icon_plus.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMTc5MiIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMTc5MiAxNzkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0xNjAwIDczNnYxOTJxMCA0MC0yOCA2OHQtNjggMjhoLTQxNnY0MTZxMCA0MC0yOCA2OHQtNjggMjhoLTE5MnEtNDAgMC02OC0yOHQtMjgtNjh2LTQxNmgtNDE2cS00MCAwLTY4LTI4dC0yOC02OHYtMTkycTAtNDAgMjgtNjh0NjgtMjhoNDE2di00MTZxMC00MCAyOC02OHQ2OC0yOGgxOTJxNDAgMCA2OCAyOHQyOCA2OHY0MTZoNDE2cTQwIDAgNjggMjh0MjggNjh6Ii8+PC9zdmc+); + background-repeat: no-repeat; + background-size: contain; + padding-left: 15px; + height: 0.9em; + display: inline-block; + position: relative; + top: 3px; +} +.icon-minus { + background-image: url(icon_minus.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMTc5MiIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMTc5MiAxNzkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGZpbGw9IiNjMDAiIGQ9Ik0xNjAwIDczNnYxOTJxMCA0MC0yOCA2OHQtNjggMjhoLTEyMTZxLTQwIDAtNjgtMjh0LTI4LTY4di0xOTJxMC00MCAyOC02OHQ2OC0yOGgxMjE2cTQwIDAgNjggMjh0MjggNjh6Ii8+PC9zdmc+); + background-repeat: no-repeat; + background-size: contain; + padding-left: 15px; + height: 0.9em; + display: inline-block; + position: relative; + top: 3px; +} +.icon-wrench { + background-image: url(icon_wrench.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMTc5MiIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMTc5MiAxNzkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik00NDggMTQ3MnEwLTI2LTE5LTQ1dC00NS0xOS00NSAxOS0xOSA0NSAxOSA0NSA0NSAxOSA0NS0xOSAxOS00NXptNjQ0LTQyMGwtNjgyIDY4MnEtMzcgMzctOTAgMzctNTIgMC05MS0zN2wtMTA2LTEwOHEtMzgtMzYtMzgtOTAgMC01MyAzOC05MWw2ODEtNjgxcTM5IDk4IDExNC41IDE3My41dDE3My41IDExNC41em02MzQtNDM1cTAgMzktMjMgMTA2LTQ3IDEzNC0xNjQuNSAyMTcuNXQtMjU4LjUgODMuNXEtMTg1IDAtMzE2LjUtMTMxLjV0LTEzMS41LTMxNi41IDEzMS41LTMxNi41IDMxNi41LTEzMS41cTU4IDAgMTIxLjUgMTYuNXQxMDcuNSA0Ni41cTE2IDExIDE2IDI4dC0xNiAyOGwtMjkzIDE2OXYyMjRsMTkzIDEwN3E1LTMgNzktNDguNXQxMzUuNS04MSA3MC41LTM1LjVxMTUgMCAyMy41IDEwdDguNSAyNXoiLz48L3N2Zz4=); + background-repeat: no-repeat; + background-size: contain; + padding-left: 20px; + height: 0.9em; + display: inline-block; +} +.icon-cog { + background-image: url(icon_cog.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiB2aWV3Qm94PSIwIDAgNTEyIDUxMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNDQ0Ljc4OCAyOTEuMWw0Mi42MTYgMjQuNTk5YzQuODY3IDIuODA5IDcuMTI2IDguNjE4IDUuNDU5IDEzLjk4NS0xMS4wNyAzNS42NDItMjkuOTcgNjcuODQyLTU0LjY4OSA5NC41ODZhMTIuMDE2IDEyLjAxNiAwIDAgMS0xNC44MzIgMi4yNTRsLTQyLjU4NC0yNC41OTVhMTkxLjU3NyAxOTEuNTc3IDAgMCAxLTYwLjc1OSAzNS4xM3Y0OS4xODJhMTIuMDEgMTIuMDEgMCAwIDEtOS4zNzcgMTEuNzE4Yy0zNC45NTYgNy44NS03Mi40OTkgOC4yNTYtMTA5LjIxOS4wMDctNS40OS0xLjIzMy05LjQwMy02LjA5Ni05LjQwMy0xMS43MjN2LTQ5LjE4NGExOTEuNTU1IDE5MS41NTUgMCAwIDEtNjAuNzU5LTM1LjEzbC00Mi41ODQgMjQuNTk1YTEyLjAxNiAxMi4wMTYgMCAwIDEtMTQuODMyLTIuMjU0Yy0yNC43MTgtMjYuNzQ0LTQzLjYxOS01OC45NDQtNTQuNjg5LTk0LjU4Ni0xLjY2Ny01LjM2Ni41OTItMTEuMTc1IDUuNDU5LTEzLjk4NUw2Ny4yMTIgMjkxLjFhMTkzLjQ4IDE5My40OCAwIDAgMSAwLTcwLjE5OWwtNDIuNjE2LTI0LjU5OWMtNC44NjctMi44MDktNy4xMjYtOC42MTgtNS40NTktMTMuOTg1IDExLjA3LTM1LjY0MiAyOS45Ny02Ny44NDIgNTQuNjg5LTk0LjU4NmExMi4wMTYgMTIuMDE2IDAgMCAxIDE0LjgzMi0yLjI1NGw0Mi41ODQgMjQuNTk1YTE5MS41NzcgMTkxLjU3NyAwIDAgMSA2MC43NTktMzUuMTNWMjUuNzU5YTEyLjAxIDEyLjAxIDAgMCAxIDkuMzc3LTExLjcxOGMzNC45NTYtNy44NSA3Mi40OTktOC4yNTYgMTA5LjIxOS0uMDA3IDUuNDkgMS4yMzMgOS40MDMgNi4wOTYgOS40MDMgMTEuNzIzdjQ5LjE4NGExOTEuNTU1IDE5MS41NTUgMCAwIDEgNjAuNzU5IDM1LjEzbDQyLjU4NC0yNC41OTVhMTIuMDE2IDEyLjAxNiAwIDAgMSAxNC44MzIgMi4yNTRjMjQuNzE4IDI2Ljc0NCA0My42MTkgNTguOTQ0IDU0LjY4OSA5NC41ODYgMS42NjcgNS4zNjYtLjU5MiAxMS4xNzUtNS40NTkgMTMuOTg1TDQ0NC43ODggMjIwLjlhMTkzLjQ4NSAxOTMuNDg1IDAgMCAxIDAgNzAuMnpNMzM2IDI1NmMwLTQ0LjExMi0zNS44ODgtODAtODAtODBzLTgwIDM1Ljg4OC04MCA4MCAzNS44ODggODAgODAgODAgODAtMzUuODg4IDgwLTgweiIvPjwvc3ZnPg==); + background-repeat: no-repeat; + background-size: contain; + padding-left: 16px; + height: 0.8em; + display: inline-block; +} +.icon-fork { + background-image: url(icon_fork.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMTc5MiIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMTc5MiAxNzkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxyZWN0IHdpZHRoPSIxNzkyIiBoZWlnaHQ9IjE3OTIiIHN0eWxlPSJmaWxsOiNmZmYiIC8+PHBhdGggZD0iTTY3MiAxNDcycTAtNDAtMjgtNjh0LTY4LTI4LTY4IDI4LTI4IDY4IDI4IDY4IDY4IDI4IDY4LTI4IDI4LTY4em0wLTExNTJxMC00MC0yOC02OHQtNjgtMjgtNjggMjgtMjggNjggMjggNjggNjggMjggNjgtMjggMjgtNjh6bTY0MCAxMjhxMC00MC0yOC02OHQtNjgtMjgtNjggMjgtMjggNjggMjggNjggNjggMjggNjgtMjggMjgtNjh6bTk2IDBxMCA1Mi0yNiA5Ni41dC03MCA2OS41cS0yIDI4Ny0yMjYgNDE0LTY3IDM4LTIwMyA4MS0xMjggNDAtMTY5LjUgNzF0LTQxLjUgMTAwdjI2cTQ0IDI1IDcwIDY5LjV0MjYgOTYuNXEwIDgwLTU2IDEzNnQtMTM2IDU2LTEzNi01Ni01Ni0xMzZxMC01MiAyNi05Ni41dDcwLTY5LjV2LTgyMHEtNDQtMjUtNzAtNjkuNXQtMjYtOTYuNXEwLTgwIDU2LTEzNnQxMzYtNTYgMTM2IDU2IDU2IDEzNnEwIDUyLTI2IDk2LjV0LTcwIDY5LjV2NDk3cTU0LTI2IDE1NC01NyA1NS0xNyA4Ny41LTI5LjV0NzAuNS0zMSA1OS0zOS41IDQwLjUtNTEgMjgtNjkuNSA4LjUtOTEuNXEtNDQtMjUtNzAtNjkuNXQtMjYtOTYuNXEwLTgwIDU2LTEzNnQxMzYtNTYgMTM2IDU2IDU2IDEzNnoiLz48L3N2Zz4=); + background-repeat: no-repeat; + background-size: contain; + padding-left: 20px; + height: 0.9em; + display: inline-block; +} +.icon-cube { + background-image: url(icon_cube.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMTc5MiIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMTc5MiAxNzkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik04OTYgMTYyOWw2NDAtMzQ5di02MzZsLTY0MCAyMzN2NzUyem0tNjQtODY1bDY5OC0yNTQtNjk4LTI1NC02OTggMjU0em04MzItMjUydjc2OHEwIDM1LTE4IDY1dC00OSA0N2wtNzA0IDM4NHEtMjggMTYtNjEgMTZ0LTYxLTE2bC03MDQtMzg0cS0zMS0xNy00OS00N3QtMTgtNjV2LTc2OHEwLTQwIDIzLTczdDYxLTQ3bDcwNC0yNTZxMjItOCA0NC04dDQ0IDhsNzA0IDI1NnEzOCAxNCA2MSA0N3QyMyA3M3oiLz48L3N2Zz4=); + background-repeat: no-repeat; + background-size: contain; + padding-left: 20px; + height: 0.9em; + display: inline-block; +} +.icon-search-plus { + background-image: url(icon_search-plus.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMTc5MiIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMTc5MiAxNzkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGZpbGw9IiM2ZjZmNmYiIGQ9Ik0xMDg4IDgwMHY2NHEwIDEzLTkuNSAyMi41dC0yMi41IDkuNWgtMjI0djIyNHEwIDEzLTkuNSAyMi41dC0yMi41IDkuNWgtNjRxLTEzIDAtMjIuNS05LjV0LTkuNS0yMi41di0yMjRoLTIyNHEtMTMgMC0yMi41LTkuNXQtOS41LTIyLjV2LTY0cTAtMTMgOS41LTIyLjV0MjIuNS05LjVoMjI0di0yMjRxMC0xMyA5LjUtMjIuNXQyMi41LTkuNWg2NHExMyAwIDIyLjUgOS41dDkuNSAyMi41djIyNGgyMjRxMTMgMCAyMi41IDkuNXQ5LjUgMjIuNXptMTI4IDMycTAtMTg1LTEzMS41LTMxNi41dC0zMTYuNS0xMzEuNS0zMTYuNSAxMzEuNS0xMzEuNSAzMTYuNSAxMzEuNSAzMTYuNSAzMTYuNSAxMzEuNSAzMTYuNS0xMzEuNSAxMzEuNS0zMTYuNXptNTEyIDgzMnEwIDUzLTM3LjUgOTAuNXQtOTAuNSAzNy41cS01NCAwLTkwLTM4bC0zNDMtMzQycS0xNzkgMTI0LTM5OSAxMjQtMTQzIDAtMjczLjUtNTUuNXQtMjI1LTE1MC0xNTAtMjI1LTU1LjUtMjczLjUgNTUuNS0yNzMuNSAxNTAtMjI1IDIyNS0xNTAgMjczLjUtNTUuNSAyNzMuNSA1NS41IDIyNSAxNTAgMTUwIDIyNSA1NS41IDI3My41cTAgMjIwLTEyNCAzOTlsMzQzIDM0M3EzNyAzNyAzNyA5MHoiLz48L3N2Zz4=); + background-repeat: no-repeat; + background-size: contain; + padding-left: 20px; + height: 0.9em; + display: inline-block; +} +.icon-search-minus { + background-image: url(icon_search-minus.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMTc5MiIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMTc5MiAxNzkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGZpbGw9IiM2ZjZmNmYiIGQ9Ik0xMDg4IDgwMHY2NHEwIDEzLTkuNSAyMi41dC0yMi41IDkuNWgtNTc2cS0xMyAwLTIyLjUtOS41dC05LjUtMjIuNXYtNjRxMC0xMyA5LjUtMjIuNXQyMi41LTkuNWg1NzZxMTMgMCAyMi41IDkuNXQ5LjUgMjIuNXptMTI4IDMycTAtMTg1LTEzMS41LTMxNi41dC0zMTYuNS0xMzEuNS0zMTYuNSAxMzEuNS0xMzEuNSAzMTYuNSAxMzEuNSAzMTYuNSAzMTYuNSAxMzEuNSAzMTYuNS0xMzEuNSAxMzEuNS0zMTYuNXptNTEyIDgzMnEwIDUzLTM3LjUgOTAuNXQtOTAuNSAzNy41cS01NCAwLTkwLTM4bC0zNDMtMzQycS0xNzkgMTI0LTM5OSAxMjQtMTQzIDAtMjczLjUtNTUuNXQtMjI1LTE1MC0xNTAtMjI1LTU1LjUtMjczLjUgNTUuNS0yNzMuNSAxNTAtMjI1IDIyNS0xNTAgMjczLjUtNTUuNSAyNzMuNSA1NS41IDIyNSAxNTAgMTUwIDIyNSA1NS41IDI3My41cTAgMjIwLTEyNCAzOTlsMzQzIDM0M3EzNyAzNyAzNyA5MHoiLz48L3N2Zz4=); + background-repeat: no-repeat; + background-size: contain; + padding-left: 20px; + height: 0.9em; + display: inline-block; +} +.icon-star { + background-image: url(icon_star.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMTc5MiIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMTc5MiAxNzkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0xNzI4IDY0N3EwIDIyLTI2IDQ4bC0zNjMgMzU0IDg2IDUwMHExIDcgMSAyMCAwIDIxLTEwLjUgMzUuNXQtMzAuNSAxNC41cS0xOSAwLTQwLTEybC00NDktMjM2LTQ0OSAyMzZxLTIyIDEyLTQwIDEyLTIxIDAtMzEuNS0xNC41dC0xMC41LTM1LjVxMC02IDItMjBsODYtNTAwLTM2NC0zNTRxLTI1LTI3LTI1LTQ4IDAtMzcgNTYtNDZsNTAyLTczIDIyNS00NTVxMTktNDEgNDktNDF0NDkgNDFsMjI1IDQ1NSA1MDIgNzNxNTYgOSA1NiA0NnoiIGZpbGw9IiMwMDAiLz48L3N2Zz4=); + background-repeat: no-repeat; + background-size: contain; + padding-left: 20px; + height: 0.9em; + display: inline-block; +} +.icon-sponsor { + background-image: url(icon_sponsor.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMTc5MiIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMTc5MiAxNzkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik04OTYgMTY2NHEtMjYgMC00NC0xOGwtNjI0LTYwMnEtMTAtOC0yNy41LTI2dC01NS41LTY1LjUtNjgtOTcuNS01My41LTEyMS0yMy41LTEzOHEwLTIyMCAxMjctMzQ0dDM1MS0xMjRxNjIgMCAxMjYuNSAyMS41dDEyMCA1OCA5NS41IDY4LjUgNzYgNjhxMzYtMzYgNzYtNjh0OTUuNS02OC41IDEyMC01OCAxMjYuNS0yMS41cTIyNCAwIDM1MSAxMjR0MTI3IDM0NHEwIDIyMS0yMjkgNDUwbC02MjMgNjAwcS0xOCAxOC00NCAxOHoiIGZpbGw9IiNlYTRhYWEiLz48L3N2Zz4=); + background-repeat: no-repeat; + background-size: contain; + padding-left: 20px; + height: 0.9em; + display: inline-block; +} + +.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} \ No newline at end of file diff --git a/docs/resources/reports/JsonSummary/Summary.json b/docs/resources/reports/JsonSummary/Summary.json new file mode 100644 index 00000000..7c481b02 --- /dev/null +++ b/docs/resources/reports/JsonSummary/Summary.json @@ -0,0 +1,28 @@ +{ + "summary": { + "generatedon": "2023-01-18T19:03:55Z", + "parser": "OpenCover", + "assemblies": 1, + "classes": 4, + "files": 5, + "coveredlines": 83, + "uncoveredlines": 42, + "coverablelines": 125, + "totallines": 260, + "linecoverage": 66.4, + "coveredbranches": 3, + "totalbranches": 6, + "branchcoverage": 50, + "coveredmethods": 14, + "totalmethods": 24, + "methodcoverage": 58.3 + }, + "coverage": { + "assemblies": [ + { "name": "Sample", "classes": 4, "coverage": 66.4, "coveredlines": 83, "coverablelines": 125, "totallines": 260, "branchcoverage": 50, "coveredbranches": 3, "totalbranches": 6, "methodcoverage": 58.3, "coveredmethods": 14, "totalmethods": 24, "classesinassembly": [ + { "name": "Sample.PartialClass", "coverage": 54.5, "coveredlines": 12, "coverablelines": 22, "totallines": 53, "branchcoverage": 50, "coveredbranches": 1, "totalbranches": 2, "methodcoverage": 50, "coveredmethods": 3, "totalmethods": 6 }, + { "name": "Sample.TestClass", "coverage": 57.1, "coveredlines": 12, "coverablelines": 21, "totallines": 38, "branchcoverage": 50, "coveredbranches": 1, "totalbranches": 2, "methodcoverage": 50, "coveredmethods": 1, "totalmethods": 2 }, + { "name": "Test.Program", "coverage": 79.5, "coveredlines": 35, "coverablelines": 44, "totallines": 84, "branchcoverage": null, "coveredbranches": 0, "totalbranches": 0, "methodcoverage": 66.6, "coveredmethods": 4, "totalmethods": 6 }, + { "name": "Test.TestClass2", "coverage": 63.1, "coveredlines": 24, "coverablelines": 38, "totallines": 85, "branchcoverage": 50, "coveredbranches": 1, "totalbranches": 2, "methodcoverage": 60, "coveredmethods": 6, "totalmethods": 10 } ] } ] + } +} \ No newline at end of file diff --git a/docs/resources/reports/Latex/Summary.tex b/docs/resources/reports/Latex/Summary.tex new file mode 100644 index 00000000..732b92e0 --- /dev/null +++ b/docs/resources/reports/Latex/Summary.tex @@ -0,0 +1,493 @@ +\documentclass[a4paper,landscape,10pt]{article} +\usepackage[paper=a4paper,landscape,left=20mm,right=20mm,top=20mm,bottom=20mm]{geometry} +\usepackage{longtable} +\usepackage{fancyhdr} +\usepackage[pdftex]{color} +\usepackage{colortbl} +\definecolor{green}{rgb}{0.04,0.68,0.04} +\definecolor{orange}{rgb}{0.97,0.65,0.12} +\definecolor{red}{rgb}{0.75,0.04,0.04} +\definecolor{gray}{rgb}{0.86,0.86,0.86} + +\usepackage[pdftex, + colorlinks=true, linkcolor=red, urlcolor=green, citecolor=red,% + raiselinks=true,% + bookmarks=true,% + bookmarksopenlevel=1,% + bookmarksopen=true,% + bookmarksnumbered=true,% + hyperindex=true,% + plainpages=false,% correct hyperlinks + pdfpagelabels=true%,% view TeX pagenumber in PDF reader + %pdfborder={0 0 0.5} + ]{hyperref} + +\hypersetup{pdftitle={Coverage Report}, + pdfauthor={ReportGenerator - 5.1.14.0} + } + +\pagestyle{fancy} +\fancyhead[LE,LO]{\leftmark} +\fancyhead[R]{\thepage} +\fancyfoot[C]{ReportGenerator - 5.1.14.0} + +\begin{document} + +\setcounter{secnumdepth}{-1} +\section{Summary} +\begin{longtable}[l]{ll} +\textbf{Generated on:} & 18.01.2023 - 20:03:56\\ +\textbf{Parser:} & OpenCover\\ +\textbf{Assemblies:} & 1\\ +\textbf{Classes:} & 4\\ +\textbf{Files:} & 5\\ +\textbf{Covered lines:} & 83\\ +\textbf{Uncovered lines:} & 42\\ +\textbf{Coverable lines:} & 125\\ +\textbf{Total lines:} & 260\\ +\textbf{Line coverage:} & 66.4\% (83 of 125)\\ +\textbf{Covered branches:} & 3\\ +\textbf{Total branches:} & 6\\ +\textbf{Branch coverage:} & 50\% (3 of 6)\\ +\textbf{Covered methods:} & 14\\ +\textbf{Total methods:} & 24\\ +\textbf{Method coverage:} & 58.3\% (14 of 24)\\ +\end{longtable} +\section{Risk Hotspots} +No risk hotspots found. +\section{Coverage} +\begin{longtable}[l]{|l|r|r|r|r|r|r|r|} +\hline +\textbf{Name} & \textbf{Covered} & \textbf{Uncovered} & \textbf{Coverable} & \textbf{Total} & \textbf{Line coverage} & \textbf{Branch coverage} & \textbf{Method coverage}\\ +\hline +\textbf{Sample} & \textbf{83} & \textbf{42} & \textbf{125} & \textbf{260} & \textbf{66.4\%} & \textbf{50\%} & \textbf{58.3\%}\\ +\hline +Sample.PartialClass & 12 & 10 & 22 & 53 & 54.5\% & 50\% & 50\%\\ +\hline +Sample.TestClass & 12 & 9 & 21 & 38 & 57.1\% & 50\% & 50\%\\ +\hline +Test.Program & 35 & 9 & 44 & 84 & 79.5\% & & 66.6\%\\ +\hline +Test.TestClass2 & 24 & 14 & 38 & 85 & 63.1\% & 50\% & 60\%\\ +\hline +\end{longtable} +\newpage +\section{Sample.PartialClass} +\subsection{Summary} +\begin{longtable}[l]{ll} +\textbf{Class:} & Sample.PartialClass\\ +\textbf{Assembly:} & Sample\\ +\textbf{File(s):} & \begin{minipage}[t]{12cm}{C:\textbackslash temp\textbackslash PartialClass.cs\\C:\textbackslash temp\textbackslash PartialClass2.cs}\end{minipage} \\ +\textbf{Covered lines:} & 12\\ +\textbf{Uncovered lines:} & 10\\ +\textbf{Coverable lines:} & 22\\ +\textbf{Total lines:} & 53\\ +\textbf{Line coverage:} & 54.5\% (12 of 22)\\ +\textbf{Covered branches:} & 1\\ +\textbf{Total branches:} & 2\\ +\textbf{Branch coverage:} & 50\% (1 of 2)\\ +\textbf{Covered methods:} & 3\\ +\textbf{Total methods:} & 6\\ +\textbf{Method coverage:} & 50\% (3 of 6)\\ +\end{longtable} +\subsection{Metrics} +\begin{longtable}[l]{|l|r|r|r|r|r|} +\hline +\textbf{Method} & \textbf{Branch coverage} & \textbf{Crap Score} & \textbf{Cyclomatic complexity} & \textbf{NPath complexity} & \textbf{Sequence coverage}\\ +\hline +\textbf{ExecutedMethod\_1()} & 100\% & 1 & 1 & 0 & 100\%\\ +\hline +\textbf{ExecutedMethod\_2()} & 100\% & 1 & 1 & 0 & 100\%\\ +\hline +\textbf{UnExecutedMethod\_1()} & 0\% & 2 & 1 & 0 & 0\%\\ +\hline +\textbf{UnExecutedMethod\_2()} & 0\% & 2 & 1 & 0 & 0\%\\ +\hline +\end{longtable} +\subsection{File(s)} +\subsubsection{C:\textbackslash temp\textbackslash PartialClass.cs} +\begin{longtable}[l]{lrrll} +\textbf{} & \textbf{\#} & \textbf{Line} & \textbf{} & \textbf{Line coverage}\\ +\cellcolor{gray} & & \verb~1~ & & \verb~using System;~\\ +\cellcolor{gray} & & \verb~2~ & & \verb~~\\ +\cellcolor{gray} & & \verb~3~ & & \verb~namespace Test~\\ +\cellcolor{gray} & & \verb~4~ & & \verb~{~\\ +\cellcolor{gray} & & \verb~5~ & & \verb~ partial class PartialClass~\\ +\cellcolor{gray} & & \verb~6~ & & \verb~ {~\\ +\cellcolor{gray} & & \verb~7~ & & \verb~ public void ExecutedMethod_1()~\\ +\cellcolor{green} & 1 & \verb~8~ & & \verb~ {~\\ +\cellcolor{green} & 1 & \verb~9~ & & \verb~ Console.WriteLine("Test");~\\ +\cellcolor{green} & 1 & \verb~10~ & & \verb~ }~\\ +\cellcolor{gray} & & \verb~11~ & & \verb~~\\ +\cellcolor{gray} & & \verb~12~ & & \verb~ public void UnExecutedMethod_1()~\\ +\cellcolor{red} & 0 & \verb~13~ & & \verb~ {~\\ +\cellcolor{red} & 0 & \verb~14~ & & \verb~ Console.WriteLine("Test");~\\ +\cellcolor{red} & 0 & \verb~15~ & & \verb~ }~\\ +\cellcolor{gray} & & \verb~16~ & & \verb~~\\ +\cellcolor{gray} & & \verb~17~ & & \verb~ private int someProperty;~\\ +\cellcolor{gray} & & \verb~18~ & & \verb~~\\ +\cellcolor{gray} & & \verb~19~ & & \verb~ public int SomeProperty~\\ +\cellcolor{gray} & & \verb~20~ & & \verb~ {~\\ +\cellcolor{red} & 0 & \verb~21~ & & \verb~ get { return this.someProperty; }~\\ +\cellcolor{gray} & & \verb~22~ & & \verb~~\\ +\cellcolor{gray} & & \verb~23~ & & \verb~ set~\\ +\cellcolor{green} & 1 & \verb~24~ & & \verb~ {~\\ +\cellcolor{orange} & 1 & \verb~25~ & & \verb~ if (value < 0)~\\ +\cellcolor{green} & 1 & \verb~26~ & & \verb~ {~\\ +\cellcolor{green} & 1 & \verb~27~ & & \verb~ this.someProperty = 0;~\\ +\cellcolor{green} & 1 & \verb~28~ & & \verb~ }~\\ +\cellcolor{gray} & & \verb~29~ & & \verb~ else~\\ +\cellcolor{red} & 0 & \verb~30~ & & \verb~ {~\\ +\cellcolor{red} & 0 & \verb~31~ & & \verb~ this.someProperty = value;~\\ +\cellcolor{red} & 0 & \verb~32~ & & \verb~ }~\\ +\cellcolor{green} & 1 & \verb~33~ & & \verb~ }~\\ +\cellcolor{gray} & & \verb~34~ & & \verb~ }~\\ +\cellcolor{gray} & & \verb~35~ & & \verb~ }~\\ +\cellcolor{gray} & & \verb~36~ & & \verb~}~\\ +\end{longtable} +\subsubsection{C:\textbackslash temp\textbackslash PartialClass2.cs} +\begin{longtable}[l]{lrrll} +\textbf{} & \textbf{\#} & \textbf{Line} & \textbf{} & \textbf{Line coverage}\\ +\cellcolor{gray} & & \verb~1~ & & \verb~using System;~\\ +\cellcolor{gray} & & \verb~2~ & & \verb~~\\ +\cellcolor{gray} & & \verb~3~ & & \verb~namespace Test~\\ +\cellcolor{gray} & & \verb~4~ & & \verb~{~\\ +\cellcolor{gray} & & \verb~5~ & & \verb~ partial class PartialClass~\\ +\cellcolor{gray} & & \verb~6~ & & \verb~ {~\\ +\cellcolor{gray} & & \verb~7~ & & \verb~ public void ExecutedMethod_2()~\\ +\cellcolor{green} & 1 & \verb~8~ & & \verb~ {~\\ +\cellcolor{green} & 1 & \verb~9~ & & \verb~ Console.WriteLine("Test");~\\ +\cellcolor{green} & 1 & \verb~10~ & & \verb~ }~\\ +\cellcolor{gray} & & \verb~11~ & & \verb~~\\ +\cellcolor{gray} & & \verb~12~ & & \verb~ public void UnExecutedMethod_2()~\\ +\cellcolor{red} & 0 & \verb~13~ & & \verb~ {~\\ +\cellcolor{red} & 0 & \verb~14~ & & \verb~ Console.WriteLine("Test");~\\ +\cellcolor{red} & 0 & \verb~15~ & & \verb~ }~\\ +\cellcolor{gray} & & \verb~16~ & & \verb~ }~\\ +\cellcolor{gray} & & \verb~17~ & & \verb~}~\\ +\end{longtable} +\newpage +\section{Sample.TestClass} +\subsection{Summary} +\begin{longtable}[l]{ll} +\textbf{Class:} & Sample.TestClass\\ +\textbf{Assembly:} & Sample\\ +\textbf{File(s):} & \begin{minipage}[t]{12cm}{C:\textbackslash temp\textbackslash TestClass.cs}\end{minipage} \\ +\textbf{Covered lines:} & 12\\ +\textbf{Uncovered lines:} & 9\\ +\textbf{Coverable lines:} & 21\\ +\textbf{Total lines:} & 38\\ +\textbf{Line coverage:} & 57.1\% (12 of 21)\\ +\textbf{Covered branches:} & 1\\ +\textbf{Total branches:} & 2\\ +\textbf{Branch coverage:} & 50\% (1 of 2)\\ +\textbf{Covered methods:} & 1\\ +\textbf{Total methods:} & 2\\ +\textbf{Method coverage:} & 50\% (1 of 2)\\ +\end{longtable} +\subsection{Metrics} +\begin{longtable}[l]{|l|r|r|r|r|r|} +\hline +\textbf{Method} & \textbf{Branch coverage} & \textbf{Crap Score} & \textbf{Cyclomatic complexity} & \textbf{NPath complexity} & \textbf{Sequence coverage}\\ +\hline +\textbf{SampleFunction()} & 66.67\% & 3.14 & 3 & 2 & 75\%\\ +\hline +\textbf{SampleFunction()} & 0\% & 2 & 1 & 0 & 0\%\\ +\hline +\end{longtable} +\subsection{File(s)} +\subsubsection{C:\textbackslash temp\textbackslash TestClass.cs} +\begin{longtable}[l]{lrrll} +\textbf{} & \textbf{\#} & \textbf{Line} & \textbf{} & \textbf{Line coverage}\\ +\cellcolor{gray} & & \verb~1~ & & \verb~using System;~\\ +\cellcolor{gray} & & \verb~2~ & & \verb~~\\ +\cellcolor{gray} & & \verb~3~ & & \verb~namespace Test~\\ +\cellcolor{gray} & & \verb~4~ & & \verb~{~\\ +\cellcolor{gray} & & \verb~5~ & & \verb~ class TestClass~\\ +\cellcolor{gray} & & \verb~6~ & & \verb~ {~\\ +\cellcolor{gray} & & \verb~7~ & & \verb~ public void SampleFunction()~\\ +\cellcolor{green} & 1 & \verb~8~ & & \verb~ {~\\ +\cellcolor{green} & 1 & \verb~9~ & & \verb~ string test = string.Format(~\\ +\cellcolor{green} & 1 & \verb~10~ & & \verb~ "{0} {1}",~\\ +\cellcolor{green} & 1 & \verb~11~ & & \verb~ "Hello",~\\ +\cellcolor{green} & 1 & \verb~12~ & & \verb~ "World");~\\ +\cellcolor{gray} & & \verb~13~ & & \verb~~\\ +\cellcolor{green} & 1 & \verb~14~ & & \verb~ Console.WriteLine(test);~\\ +\cellcolor{green} & 1 & \verb~15~ & & \verb~ int i = 10;~\\ +\cellcolor{gray} & & \verb~16~ & & \verb~~\\ +\cellcolor{orange} & 1 & \verb~17~ & & \verb~ if (i > 0 || i > 1)~\\ +\cellcolor{green} & 1 & \verb~18~ & & \verb~ {~\\ +\cellcolor{green} & 1 & \verb~19~ & & \verb~ Console.WriteLine(i + " is greater that 0");~\\ +\cellcolor{green} & 1 & \verb~20~ & & \verb~ }~\\ +\cellcolor{gray} & & \verb~21~ & & \verb~ else~\\ +\cellcolor{red} & 0 & \verb~22~ & & \verb~ {~\\ +\cellcolor{red} & 0 & \verb~23~ & & \verb~ Console.WriteLine(i + " is not greater that 0");~\\ +\cellcolor{red} & 0 & \verb~24~ & & \verb~ }~\\ +\cellcolor{green} & 1 & \verb~25~ & & \verb~ }~\\ +\cellcolor{gray} & & \verb~26~ & & \verb~~\\ +\cellcolor{gray} & & \verb~27~ & & \verb~ public class NestedClass~\\ +\cellcolor{gray} & & \verb~28~ & & \verb~ {~\\ +\cellcolor{gray} & & \verb~29~ & & \verb~ public void SampleFunction()~\\ +\cellcolor{red} & 0 & \verb~30~ & & \verb~ {~\\ +\cellcolor{red} & 0 & \verb~31~ & & \verb~ Console.WriteLine(~\\ +\cellcolor{red} & 0 & \verb~32~ & & \verb~ "{0} {1}",~\\ +\cellcolor{red} & 0 & \verb~33~ & & \verb~ "Hello",~\\ +\cellcolor{red} & 0 & \verb~34~ & & \verb~ "World");~\\ +\cellcolor{red} & 0 & \verb~35~ & & \verb~ }~\\ +\cellcolor{gray} & & \verb~36~ & & \verb~ }~\\ +\cellcolor{gray} & & \verb~37~ & & \verb~ }~\\ +\cellcolor{gray} & & \verb~38~ & & \verb~}~\\ +\end{longtable} +\newpage +\section{Test.Program} +\subsection{Summary} +\begin{longtable}[l]{ll} +\textbf{Class:} & Test.Program\\ +\textbf{Assembly:} & Sample\\ +\textbf{File(s):} & \begin{minipage}[t]{12cm}{C:\textbackslash temp\textbackslash Program.cs}\end{minipage} \\ +\textbf{Covered lines:} & 35\\ +\textbf{Uncovered lines:} & 9\\ +\textbf{Coverable lines:} & 44\\ +\textbf{Total lines:} & 84\\ +\textbf{Line coverage:} & 79.5\% (35 of 44)\\ +\textbf{Covered branches:} & 0\\ +\textbf{Total branches:} & 0\\ +\textbf{Covered methods:} & 4\\ +\textbf{Total methods:} & 6\\ +\textbf{Method coverage:} & 66.6\% (4 of 6)\\ +\end{longtable} +\subsection{Metrics} +\begin{longtable}[l]{|l|r|r|r|r|r|} +\hline +\textbf{Method} & \textbf{Branch coverage} & \textbf{Crap Score} & \textbf{Cyclomatic complexity} & \textbf{NPath complexity} & \textbf{Sequence coverage}\\ +\hline +\textbf{Main(...)} & 100\% & 1.00 & 1 & 0 & 88\%\\ +\hline +\textbf{CSharp\_ExecuteTest1(} & 0\% & 2 & 1 & 0 & 0\%\\ +\hline +\textbf{CSharp\_ExecuteTest2(} & 0\% & 2 & 1 & 0 & 0\%\\ +\hline +\textbf{CallAsyncMethod()} & 100\% & 3 & 3 & 0 & 100\%\\ +\hline +\textbf{.ctor(...)} & 100\% & 1 & 1 & 0 & 100\%\\ +\hline +\textbf{SendAsync(...)} & 100\% & 1 & 1 & 0 & 100\%\\ +\hline +\end{longtable} +\subsection{File(s)} +\subsubsection{C:\textbackslash temp\textbackslash Program.cs} +\begin{longtable}[l]{lrrll} +\textbf{} & \textbf{\#} & \textbf{Line} & \textbf{} & \textbf{Line coverage}\\ +\cellcolor{gray} & & \verb~1~ & & \verb~using System.Net.Http;~\\ +\cellcolor{gray} & & \verb~2~ & & \verb~using System.Threading;~\\ +\cellcolor{gray} & & \verb~3~ & & \verb~using System.Threading.Tasks;~\\ +\cellcolor{gray} & & \verb~4~ & & \verb~using Microsoft.VisualStudio.TestTools.UnitTesting;~\\ +\cellcolor{gray} & & \verb~5~ & & \verb~~\\ +\cellcolor{gray} & & \verb~6~ & & \verb~namespace Test~\\ +\cellcolor{gray} & & \verb~7~ & & \verb~{~\\ +\cellcolor{gray} & & \verb~8~ & & \verb~ [TestClass]~\\ +\cellcolor{gray} & & \verb~9~ & & \verb~ public class Program~\\ +\cellcolor{gray} & & \verb~10~ & & \verb~ {~\\ +\cellcolor{gray} & & \verb~11~ & & \verb~ static void Main(string[] args)~\\ +\cellcolor{green} & 1 & \verb~12~ & & \verb~ {~\\ +\cellcolor{green} & 1 & \verb~13~ & & \verb~ new TestClass().SampleFunction();~\\ +\cellcolor{gray} & & \verb~14~ & & \verb~~\\ +\cellcolor{green} & 1 & \verb~15~ & & \verb~ new TestClass2("Test").ExecutedMethod();~\\ +\cellcolor{green} & 1 & \verb~16~ & & \verb~ new TestClass2("Test").SampleFunction("Munich");~\\ +\cellcolor{gray} & & \verb~17~ & & \verb~~\\ +\cellcolor{green} & 1 & \verb~18~ & & \verb~ new PartialClass().ExecutedMethod_1();~\\ +\cellcolor{green} & 1 & \verb~19~ & & \verb~ new PartialClass().ExecutedMethod_2();~\\ +\cellcolor{green} & 1 & \verb~20~ & & \verb~ new PartialClass().SomeProperty = -10;~\\ +\cellcolor{gray} & & \verb~21~ & & \verb~~\\ +\cellcolor{green} & 1 & \verb~22~ & & \verb~ new PartialClassWithAutoProperties().Property1 = "Test";~\\ +\cellcolor{green} & 1 & \verb~23~ & & \verb~ new PartialClassWithAutoProperties().Property2 = "Test";~\\ +\cellcolor{gray} & & \verb~24~ & & \verb~~\\ +\cellcolor{green} & 1 & \verb~25~ & & \verb~ new SomeClass().Property1 = "Test";~\\ +\cellcolor{gray} & & \verb~26~ & & \verb~~\\ +\cellcolor{green} & 1 & \verb~27~ & & \verb~ new ClassWithExcludes().IncludedMethod();~\\ +\cellcolor{green} & 1 & \verb~28~ & & \verb~ new ClassWithExcludes().ExcludedMethod();~\\ +\cellcolor{gray} & & \verb~29~ & & \verb~~\\ +\cellcolor{green} & 1 & \verb~30~ & & \verb~ new GenericClass().Process(null);~\\ +\cellcolor{green} & 1 & \verb~31~ & & \verb~ new GenericClass().PostProcess(null);~\\ +\cellcolor{gray} & & \verb~32~ & & \verb~~\\ +\cellcolor{green} & 1 & \verb~33~ & & \verb~ new CodeContract_Target().Calculate(-1);~\\ +\cellcolor{gray} & & \verb~34~ & & \verb~~\\ +\cellcolor{green} & 1 & \verb~35~ & & \verb~ new AbstractClass_SampleImpl1();~\\ +\cellcolor{green} & 1 & \verb~36~ & & \verb~ new AbstractClass_SampleImpl2();~\\ +\cellcolor{gray} & & \verb~37~ & & \verb~~\\ +\cellcolor{green} & 1 & \verb~38~ & & \verb~ CallAsyncMethod();~\\ +\cellcolor{gray} & & \verb~39~ & & \verb~~\\ +\cellcolor{gray} & & \verb~40~ & & \verb~ try~\\ +\cellcolor{green} & 1 & \verb~41~ & & \verb~ {~\\ +\cellcolor{green} & 1 & \verb~42~ & & \verb~ new CodeContract_Target().Calculate(0);~\\ +\cellcolor{green} & 1 & \verb~43~ & & \verb~ }~\\ +\cellcolor{red} & 0 & \verb~44~ & & \verb~ catch (System.ArgumentException)~\\ +\cellcolor{red} & 0 & \verb~45~ & & \verb~ {~\\ +\cellcolor{red} & 0 & \verb~46~ & & \verb~ }~\\ +\cellcolor{green} & 1 & \verb~47~ & & \verb~ }~\\ +\cellcolor{gray} & & \verb~48~ & & \verb~~\\ +\cellcolor{gray} & & \verb~49~ & & \verb~ [TestMethod]~\\ +\cellcolor{gray} & & \verb~50~ & & \verb~ public void CSharp_ExecuteTest1()~\\ +\cellcolor{red} & 0 & \verb~51~ & & \verb~ {~\\ +\cellcolor{red} & 0 & \verb~52~ & & \verb~ Main(null);~\\ +\cellcolor{red} & 0 & \verb~53~ & & \verb~ }~\\ +\cellcolor{gray} & & \verb~54~ & & \verb~~\\ +\cellcolor{gray} & & \verb~55~ & & \verb~ [TestMethod]~\\ +\cellcolor{gray} & & \verb~56~ & & \verb~ public void CSharp_ExecuteTest2()~\\ +\cellcolor{red} & 0 & \verb~57~ & & \verb~ {~\\ +\cellcolor{red} & 0 & \verb~58~ & & \verb~ Main(null);~\\ +\cellcolor{red} & 0 & \verb~59~ & & \verb~ }~\\ +\cellcolor{gray} & & \verb~60~ & & \verb~~\\ +\cellcolor{gray} & & \verb~61~ & & \verb~ private static async void CallAsyncMethod()~\\ +\cellcolor{green} & 1 & \verb~62~ & & \verb~ {~\\ +\cellcolor{green} & 1 & \verb~63~ & & \verb~ var expected = new HttpResponseMessage();~\\ +\cellcolor{green} & 1 & \verb~64~ & & \verb~ var handler = new AsyncClass() { InnerHandler = new EchoHandler(expected) };~\\ +\cellcolor{green} & 1 & \verb~65~ & & \verb~ var invoker = new HttpMessageInvoker(handler, false);~\\ +\cellcolor{green} & 1 & \verb~66~ & & \verb~ var actual = await invoker.SendAsync(new HttpRequestMessage(), new CancellationToken());~\\ +\cellcolor{green} & 1 & \verb~67~ & & \verb~ }~\\ +\cellcolor{gray} & & \verb~68~ & & \verb~~\\ +\cellcolor{gray} & & \verb~69~ & & \verb~ private class EchoHandler : DelegatingHandler~\\ +\cellcolor{gray} & & \verb~70~ & & \verb~ {~\\ +\cellcolor{gray} & & \verb~71~ & & \verb~ private HttpResponseMessage _response;~\\ +\cellcolor{gray} & & \verb~72~ & & \verb~~\\ +\cellcolor{green} & 1 & \verb~73~ & & \verb~ public EchoHandler(HttpResponseMessage response)~\\ +\cellcolor{green} & 1 & \verb~74~ & & \verb~ {~\\ +\cellcolor{green} & 1 & \verb~75~ & & \verb~ this._response = response;~\\ +\cellcolor{green} & 1 & \verb~76~ & & \verb~ }~\\ +\cellcolor{gray} & & \verb~77~ & & \verb~~\\ +\cellcolor{gray} & & \verb~78~ & & \verb~ protected override Task SendAsync(HttpRequestMessage request, CancellationToken cancell~\\ +\cellcolor{green} & 1 & \verb~79~ & & \verb~ {~\\ +\cellcolor{green} & 1 & \verb~80~ & & \verb~ return Task.FromResult(this._response);~\\ +\cellcolor{green} & 1 & \verb~81~ & & \verb~ }~\\ +\cellcolor{gray} & & \verb~82~ & & \verb~ }~\\ +\cellcolor{gray} & & \verb~83~ & & \verb~ }~\\ +\cellcolor{gray} & & \verb~84~ & & \verb~}~\\ +\end{longtable} +\newpage +\section{Test.TestClass2} +\subsection{Summary} +\begin{longtable}[l]{ll} +\textbf{Class:} & Test.TestClass2\\ +\textbf{Assembly:} & Sample\\ +\textbf{File(s):} & \begin{minipage}[t]{12cm}{C:\textbackslash temp\textbackslash TestClass2.cs}\end{minipage} \\ +\textbf{Covered lines:} & 24\\ +\textbf{Uncovered lines:} & 14\\ +\textbf{Coverable lines:} & 38\\ +\textbf{Total lines:} & 85\\ +\textbf{Line coverage:} & 63.1\% (24 of 38)\\ +\textbf{Covered branches:} & 1\\ +\textbf{Total branches:} & 2\\ +\textbf{Branch coverage:} & 50\% (1 of 2)\\ +\textbf{Covered methods:} & 6\\ +\textbf{Total methods:} & 10\\ +\textbf{Method coverage:} & 60\% (6 of 10)\\ +\end{longtable} +\subsection{Metrics} +\begin{longtable}[l]{|l|r|r|r|r|r|} +\hline +\textbf{Method} & \textbf{Branch coverage} & \textbf{Crap Score} & \textbf{Cyclomatic complexity} & \textbf{NPath complexity} & \textbf{Sequence coverage}\\ +\hline +\textbf{.ctor()} & 0\% & 2 & 1 & 0 & 0\%\\ +\hline +\textbf{.ctor(...)} & 100\% & 1 & 1 & 0 & 100\%\\ +\hline +\textbf{ExecutedMethod()} & 100\% & 1 & 1 & 0 & 100\%\\ +\hline +\textbf{UnExecutedMethod()} & 0\% & 2 & 1 & 0 & 0\%\\ +\hline +\textbf{SampleFunction(...)} & 66.67\% & 5 & 5 & 2 & 100\%\\ +\hline +\textbf{DoSomething(...)} & 0\% & 2 & 1 & 0 & 0\%\\ +\hline +\end{longtable} +\subsection{File(s)} +\subsubsection{C:\textbackslash temp\textbackslash TestClass2.cs} +\begin{longtable}[l]{lrrll} +\textbf{} & \textbf{\#} & \textbf{Line} & \textbf{} & \textbf{Line coverage}\\ +\cellcolor{gray} & & \verb~1~ & & \verb~using System;~\\ +\cellcolor{gray} & & \verb~2~ & & \verb~using System.Collections.Generic;~\\ +\cellcolor{gray} & & \verb~3~ & & \verb~using System.Linq;~\\ +\cellcolor{gray} & & \verb~4~ & & \verb~~\\ +\cellcolor{gray} & & \verb~5~ & & \verb~namespace Test~\\ +\cellcolor{gray} & & \verb~6~ & & \verb~{~\\ +\cellcolor{gray} & & \verb~7~ & & \verb~ class TestClass2~\\ +\cellcolor{gray} & & \verb~8~ & & \verb~ {~\\ +\cellcolor{gray} & & \verb~9~ & & \verb~ private string name;~\\ +\cellcolor{gray} & & \verb~10~ & & \verb~~\\ +\cellcolor{green} & 2 & \verb~11~ & & \verb~ private Dictionary dict = new Dictionary();~\\ +\cellcolor{gray} & & \verb~12~ & & \verb~~\\ +\cellcolor{green} & 3 & \verb~13~ & & \verb~ public string ExecutedProperty { get; set; }~\\ +\cellcolor{gray} & & \verb~14~ & & \verb~~\\ +\cellcolor{red} & 0 & \verb~15~ & & \verb~ public string UnExecutedProperty { get; set; }~\\ +\cellcolor{gray} & & \verb~16~ & & \verb~~\\ +\cellcolor{red} & 0 & \verb~17~ & & \verb~ public TestClass2()~\\ +\cellcolor{red} & 0 & \verb~18~ & & \verb~ {~\\ +\cellcolor{red} & 0 & \verb~19~ & & \verb~ this.name = "Nobody";~\\ +\cellcolor{red} & 0 & \verb~20~ & & \verb~ this.ExecutedProperty = "Nobody";~\\ +\cellcolor{red} & 0 & \verb~21~ & & \verb~ }~\\ +\cellcolor{gray} & & \verb~22~ & & \verb~~\\ +\cellcolor{green} & 2 & \verb~23~ & & \verb~ public TestClass2(string name)~\\ +\cellcolor{green} & 2 & \verb~24~ & & \verb~ {~\\ +\cellcolor{green} & 2 & \verb~25~ & & \verb~ this.name = name;~\\ +\cellcolor{green} & 2 & \verb~26~ & & \verb~ this.ExecutedProperty = name + name;~\\ +\cellcolor{green} & 2 & \verb~27~ & & \verb~ }~\\ +\cellcolor{gray} & & \verb~28~ & & \verb~~\\ +\cellcolor{gray} & & \verb~29~ & & \verb~ public void ExecutedMethod()~\\ +\cellcolor{green} & 1 & \verb~30~ & & \verb~ {~\\ +\cellcolor{green} & 1 & \verb~31~ & & \verb~ Console.WriteLine(this.name);~\\ +\cellcolor{green} & 1 & \verb~32~ & & \verb~ Console.WriteLine(this.ExecutedProperty);~\\ +\cellcolor{green} & 1 & \verb~33~ & & \verb~ }~\\ +\cellcolor{gray} & & \verb~34~ & & \verb~~\\ +\cellcolor{gray} & & \verb~35~ & & \verb~ public void UnExecutedMethod()~\\ +\cellcolor{red} & 0 & \verb~36~ & & \verb~ {~\\ +\cellcolor{red} & 0 & \verb~37~ & & \verb~ Console.WriteLine(this.name);~\\ +\cellcolor{red} & 0 & \verb~38~ & & \verb~ Console.WriteLine(this.ExecutedProperty);~\\ +\cellcolor{red} & 0 & \verb~39~ & & \verb~ }~\\ +\cellcolor{gray} & & \verb~40~ & & \verb~~\\ +\cellcolor{gray} & & \verb~41~ & & \verb~ public void SampleFunction(string city)~\\ +\cellcolor{green} & 1 & \verb~42~ & & \verb~ {~\\ +\cellcolor{green} & 1 & \verb~43~ & & \verb~ int[] values = new int[] { 0, 1, 2, 3 };~\\ +\cellcolor{gray} & & \verb~44~ & & \verb~~\\ +\cellcolor{green} & 5 & \verb~45~ & & \verb~ var doubled = values.Select(i => i * 2);~\\ +\cellcolor{gray} & & \verb~46~ & & \verb~~\\ +\cellcolor{green} & 11 & \verb~47~ & & \verb~ foreach (var item in doubled)~\\ +\cellcolor{green} & 4 & \verb~48~ & & \verb~ {~\\ +\cellcolor{green} & 4 & \verb~49~ & & \verb~ Console.WriteLine(item);~\\ +\cellcolor{green} & 4 & \verb~50~ & & \verb~ }~\\ +\cellcolor{gray} & & \verb~51~ & & \verb~~\\ +\cellcolor{green} & 1 & \verb~52~ & & \verb~ string[] cities = new string[] { "Berlin", "Munich", "Paris" };~\\ +\cellcolor{gray} & & \verb~53~ & & \verb~~\\ +\cellcolor{orange} & 4 & \verb~54~ & & \verb~ if (cities.SingleOrDefault(c => c.Equals(city, StringComparison.OrdinalIgnoreCase)) != null)~\\ +\cellcolor{green} & 1 & \verb~55~ & & \verb~ {~\\ +\cellcolor{green} & 1 & \verb~56~ & & \verb~ Console.WriteLine("Found " + city);~\\ +\cellcolor{green} & 1 & \verb~57~ & & \verb~ }~\\ +\cellcolor{green} & 1 & \verb~58~ & & \verb~ }~\\ +\cellcolor{gray} & & \verb~59~ & & \verb~~\\ +\cellcolor{gray} & & \verb~60~ & & \verb~ public string DoSomething(string value,~\\ +\cellcolor{gray} & & \verb~61~ & & \verb~ string[] stringArray,~\\ +\cellcolor{gray} & & \verb~62~ & & \verb~ Guid id,~\\ +\cellcolor{gray} & & \verb~63~ & & \verb~ IEnumerable stringEnumerable,~\\ +\cellcolor{gray} & & \verb~64~ & & \verb~ IList stringList,~\\ +\cellcolor{gray} & & \verb~65~ & & \verb~ decimal dec,~\\ +\cellcolor{gray} & & \verb~66~ & & \verb~ int i,~\\ +\cellcolor{gray} & & \verb~67~ & & \verb~ Dictionary dict,~\\ +\cellcolor{gray} & & \verb~68~ & & \verb~ out int g,~\\ +\cellcolor{gray} & & \verb~69~ & & \verb~ float fff,~\\ +\cellcolor{gray} & & \verb~70~ & & \verb~ double dou,~\\ +\cellcolor{gray} & & \verb~71~ & & \verb~ bool bo,~\\ +\cellcolor{gray} & & \verb~72~ & & \verb~ byte by,~\\ +\cellcolor{gray} & & \verb~73~ & & \verb~ char ch,~\\ +\cellcolor{gray} & & \verb~74~ & & \verb~ object o,~\\ +\cellcolor{gray} & & \verb~75~ & & \verb~ sbyte sby,~\\ +\cellcolor{gray} & & \verb~76~ & & \verb~ short sh,~\\ +\cellcolor{gray} & & \verb~77~ & & \verb~ uint ui,~\\ +\cellcolor{gray} & & \verb~78~ & & \verb~ ulong ul,~\\ +\cellcolor{gray} & & \verb~79~ & & \verb~ ushort usho)~\\ +\cellcolor{red} & 0 & \verb~80~ & & \verb~ {~\\ +\cellcolor{red} & 0 & \verb~81~ & & \verb~ g = 0;~\\ +\cellcolor{red} & 0 & \verb~82~ & & \verb~ return null;~\\ +\cellcolor{red} & 0 & \verb~83~ & & \verb~ }~\\ +\cellcolor{gray} & & \verb~84~ & & \verb~ }~\\ +\cellcolor{gray} & & \verb~85~ & & \verb~}~\\ +\end{longtable} +\end{document} \ No newline at end of file diff --git a/docs/resources/reports/LatexSummary/Summary.tex b/docs/resources/reports/LatexSummary/Summary.tex new file mode 100644 index 00000000..05d51ff0 --- /dev/null +++ b/docs/resources/reports/LatexSummary/Summary.tex @@ -0,0 +1,74 @@ +\documentclass[a4paper,landscape,10pt]{article} +\usepackage[paper=a4paper,landscape,left=20mm,right=20mm,top=20mm,bottom=20mm]{geometry} +\usepackage{longtable} +\usepackage{fancyhdr} +\usepackage[pdftex]{color} +\usepackage{colortbl} +\definecolor{green}{rgb}{0.04,0.68,0.04} +\definecolor{orange}{rgb}{0.97,0.65,0.12} +\definecolor{red}{rgb}{0.75,0.04,0.04} +\definecolor{gray}{rgb}{0.86,0.86,0.86} + +\usepackage[pdftex, + colorlinks=true, linkcolor=red, urlcolor=green, citecolor=red,% + raiselinks=true,% + bookmarks=true,% + bookmarksopenlevel=1,% + bookmarksopen=true,% + bookmarksnumbered=true,% + hyperindex=true,% + plainpages=false,% correct hyperlinks + pdfpagelabels=true%,% view TeX pagenumber in PDF reader + %pdfborder={0 0 0.5} + ]{hyperref} + +\hypersetup{pdftitle={Coverage Report}, + pdfauthor={ReportGenerator - 5.1.14.0} + } + +\pagestyle{fancy} +\fancyhead[LE,LO]{\leftmark} +\fancyhead[R]{\thepage} +\fancyfoot[C]{ReportGenerator - 5.1.14.0} + +\begin{document} + +\setcounter{secnumdepth}{-1} +\section{Summary} +\begin{longtable}[l]{ll} +\textbf{Generated on:} & 18.01.2023 - 20:03:57\\ +\textbf{Parser:} & OpenCover\\ +\textbf{Assemblies:} & 1\\ +\textbf{Classes:} & 4\\ +\textbf{Files:} & 5\\ +\textbf{Covered lines:} & 83\\ +\textbf{Uncovered lines:} & 42\\ +\textbf{Coverable lines:} & 125\\ +\textbf{Total lines:} & 260\\ +\textbf{Line coverage:} & 66.4\% (83 of 125)\\ +\textbf{Covered branches:} & 3\\ +\textbf{Total branches:} & 6\\ +\textbf{Branch coverage:} & 50\% (3 of 6)\\ +\textbf{Covered methods:} & 14\\ +\textbf{Total methods:} & 24\\ +\textbf{Method coverage:} & 58.3\% (14 of 24)\\ +\end{longtable} +\section{Risk Hotspots} +No risk hotspots found. +\section{Coverage} +\begin{longtable}[l]{|l|r|r|r|r|r|r|r|} +\hline +\textbf{Name} & \textbf{Covered} & \textbf{Uncovered} & \textbf{Coverable} & \textbf{Total} & \textbf{Line coverage} & \textbf{Branch coverage} & \textbf{Method coverage}\\ +\hline +\textbf{Sample} & \textbf{83} & \textbf{42} & \textbf{125} & \textbf{260} & \textbf{66.4\%} & \textbf{50\%} & \textbf{58.3\%}\\ +\hline +Sample.PartialClass & 12 & 10 & 22 & 53 & 54.5\% & 50\% & 50\%\\ +\hline +Sample.TestClass & 12 & 9 & 21 & 38 & 57.1\% & 50\% & 50\%\\ +\hline +Test.Program & 35 & 9 & 44 & 84 & 79.5\% & & 66.6\%\\ +\hline +Test.TestClass2 & 24 & 14 & 38 & 85 & 63.1\% & 50\% & 60\%\\ +\hline +\end{longtable} +\end{document} \ No newline at end of file diff --git a/docs/resources/reports/MHtml/Summary.mht b/docs/resources/reports/MHtml/Summary.mht new file mode 100644 index 00000000..98711223 --- /dev/null +++ b/docs/resources/reports/MHtml/Summary.mht @@ -0,0 +1,2399 @@ +MIME-Version: 1.0 +Content-Type: multipart/related; + type="text/html"; + boundary="----=_NextPart_000_0000_01D23618.54EBCBE0" + +------=_NextPart_000_0000_01D23618.54EBCBE0 +Content-Type: text/html; + charset="utf-8" +Content-Transfer-Encoding: 8bit +Content-Location: file:///index.html + + + + + + + + +Summary - Coverage Report + +
+

SummaryStarSponsor

+
+
+
Information
+
+
+ + + + + + + + + + + + + + + + + +
Parser:OpenCover
Assemblies:1
Classes:4
Files:5
+
+
+
+
+
Line coverage
+
+
66%
+
+ + + + + + + + + + + + + + + + + + + + + +
Covered lines:83
Uncovered lines:42
Coverable lines:125
Total lines:260
Line coverage:66.4%
+
+
+
+
+
Branch coverage
+
+
50%
+
+ + + + + + + + + + + + + +
Covered branches:3
Total branches:6
Branch coverage:50%
+
+
+
+
+
Method coverage
+
+
58%
+
+ + + + + + + + + + + + + +
Covered methods:14
Total methods:24
Method coverage:58.3%
+
+
+
+
+

Coverage history

+
+ +

Risk Hotspots

+ + +

No risk hotspots found.

+

Coverage

+ +
+ +++++++++++++++++ + + + + + + + + + + +
Line coverageBranch coverageMethod coverage
NameCoveredUncoveredCoverableTotalPercentageCoveredTotalPercentageCoveredTotalPercentage
Sample834212526066.4%
  
3650%
  
142458.3%
  
Sample.PartialClass1210225354.5%
  
1250%
  
3650%
  
Sample.TestClass129213857.1%
  
1250%
  
1250%
  
Test.Program359448479.5%
  
00
 
4666.6%
  
Test.TestClass22414388563.1%
  
1250%
  
61060%
  
+
+
+
+ + + +------=_NextPart_000_0000_01D23618.54EBCBE0 +Content-Type: text/html; + charset="utf-8" +Content-Transfer-Encoding: 8bit +Content-Location: file:///Sample_PartialClass.html + + + + + + + + +Sample.PartialClass - Coverage Report + +
+

< Summary

+
+
+
Information
+
+
+ + + + + + + + + + + + + +
Class:Sample.PartialClass
Assembly:Sample
File(s):File 1: C:\temp\PartialClass.cs
File 2: C:\temp\PartialClass2.cs
+
+
+
+
+
+
+
Line coverage
+
+
54%
+
+ + + + + + + + + + + + + + + + + + + + + +
Covered lines:12
Uncovered lines:10
Coverable lines:22
Total lines:53
Line coverage:54.5%
+
+
+
+
+
Branch coverage
+
+
50%
+
+ + + + + + + + + + + + + +
Covered branches:1
Total branches:2
Branch coverage:50%
+
+
+
+
+
Method coverage
+
+
50%
+
+ + + + + + + + + + + + + +
Covered methods:3
Total methods:6
Method coverage:50%
+
+
+
+
+

Coverage history

+
+ +

Metrics

+
+ + + + + + + + +
MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
File 1: ExecutedMethod_1()100%110100%
File 1: UnExecutedMethod_1()0%2100%
File 2: ExecutedMethod_2()100%110100%
File 2: UnExecutedMethod_2()0%2100%
+
+

File(s)

+

C:\temp\PartialClass.cs

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
#LineLine coverage
 1using System;
 2
 3namespace Test
 4{
 5    partial class PartialClass
 6    {
 7        public void ExecutedMethod_1()
 18        {
 19            Console.WriteLine("Test");
 110        }
 11
 12        public void UnExecutedMethod_1()
 013        {
 014            Console.WriteLine("Test");
 015        }
 16
 17        private int someProperty;
 18
 19        public int SomeProperty
 20        {
 021            get { return this.someProperty; }
 22
 23            set
 124            {
 125                if (value < 0)
 126                {
 127                    this.someProperty = 0;
 128                }
 29                else
 030                {
 031                    this.someProperty = value;
 032                }
 133            }
 34        }
 35    }
 36}
+
+

C:\temp\PartialClass2.cs

+
+ + + + + + + + + + + + + + + + + + + + + +
#LineLine coverage
 1using System;
 2
 3namespace Test
 4{
 5    partial class PartialClass
 6    {
 7        public void ExecutedMethod_2()
 18        {
 19            Console.WriteLine("Test");
 110        }
 11
 12        public void UnExecutedMethod_2()
 013        {
 014            Console.WriteLine("Test");
 015        }
 16    }
 17}
+
+
+
+ + + +------=_NextPart_000_0000_01D23618.54EBCBE0 +Content-Type: text/html; + charset="utf-8" +Content-Transfer-Encoding: 8bit +Content-Location: file:///Sample_Program.html + + + + + + + + +Test.Program - Coverage Report + +
+

< Summary

+
+
+
Information
+
+
+ + + + + + + + + + + + + +
Class:Test.Program
Assembly:Sample
File(s):C:\temp\Program.cs
+
+
+
+
+
+
+
Line coverage
+
+
79%
+
+ + + + + + + + + + + + + + + + + + + + + +
Covered lines:35
Uncovered lines:9
Coverable lines:44
Total lines:84
Line coverage:79.5%
+
+
+
+
+
Branch coverage
+
+
N/A
+
+ + + + + + + + + + + + + +
Covered branches:0
Total branches:0
Branch coverage:N/A
+
+
+
+
+
Method coverage
+
+
66%
+
+ + + + + + + + + + + + + +
Covered methods:4
Total methods:6
Method coverage:66.6%
+
+
+
+
+

Coverage history

+
+ +

Metrics

+
+ + + + + + + + + + +
MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
Main(...)100%11088%
CSharp_ExecuteTest1()0%2100%
CSharp_ExecuteTest2()0%2100%
CallAsyncMethod()100%330100%
.ctor(...)100%110100%
SendAsync(...)100%110100%
+
+

File(s)

+

C:\temp\Program.cs

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
#LineLine coverage
 1using System.Net.Http;
 2using System.Threading;
 3using System.Threading.Tasks;
 4using Microsoft.VisualStudio.TestTools.UnitTesting;
 5
 6namespace Test
 7{
 8    [TestClass]
 9    public class Program
 10    {
 11        static void Main(string[] args)
 112        {
 113            new TestClass().SampleFunction();
 14
 115            new TestClass2("Test").ExecutedMethod();
 116            new TestClass2("Test").SampleFunction("Munich");
 17
 118            new PartialClass().ExecutedMethod_1();
 119            new PartialClass().ExecutedMethod_2();
 120            new PartialClass().SomeProperty = -10;
 21
 122            new PartialClassWithAutoProperties().Property1 = "Test";
 123            new PartialClassWithAutoProperties().Property2 = "Test";
 24
 125            new SomeClass().Property1 = "Test";
 26
 127            new ClassWithExcludes().IncludedMethod();
 128            new ClassWithExcludes().ExcludedMethod();
 29
 130            new GenericClass<SomeModel, IState>().Process(null);
 131            new GenericClass<SomeModel, IState>().PostProcess(null);
 32
 133            new CodeContract_Target().Calculate(-1);
 34
 135            new AbstractClass_SampleImpl1();
 136            new AbstractClass_SampleImpl2();
 37
 138            CallAsyncMethod();
 39
 40            try
 141            {
 142                new CodeContract_Target().Calculate(0);
 143            }
 044            catch (System.ArgumentException)
 045            {
 046            }
 147        }
 48
 49        [TestMethod]
 50        public void CSharp_ExecuteTest1()
 051        {
 052            Main(null);
 053        }
 54
 55        [TestMethod]
 56        public void CSharp_ExecuteTest2()
 057        {
 058            Main(null);
 059        }
 60
 61        private static async void CallAsyncMethod()
 162        {
 163            var expected = new HttpResponseMessage();
 164            var handler = new AsyncClass() { InnerHandler = new EchoHandler(expected) };
 165            var invoker = new HttpMessageInvoker(handler, false);
 166            var actual = await invoker.SendAsync(new HttpRequestMessage(), new CancellationToken());
 167        }
 68
 69        private class EchoHandler : DelegatingHandler
 70        {
 71            private HttpResponseMessage _response;
 72
 173            public EchoHandler(HttpResponseMessage response)
 174            {
 175                this._response = response;
 176            }
 77
 78            protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancell
 179            {
 180                return Task.FromResult(this._response);
 181            }
 82        }
 83    }
 84}
+
+
+
+ + + +------=_NextPart_000_0000_01D23618.54EBCBE0 +Content-Type: text/html; + charset="utf-8" +Content-Transfer-Encoding: 8bit +Content-Location: file:///Sample_TestClass.html + + + + + + + + +Sample.TestClass - Coverage Report + +
+

< Summary

+
+
+
Information
+
+
+ + + + + + + + + + + + + +
Class:Sample.TestClass
Assembly:Sample
File(s):C:\temp\TestClass.cs
+
+
+
+
+
+
+
Line coverage
+
+
57%
+
+ + + + + + + + + + + + + + + + + + + + + +
Covered lines:12
Uncovered lines:9
Coverable lines:21
Total lines:38
Line coverage:57.1%
+
+
+
+
+
Branch coverage
+
+
50%
+
+ + + + + + + + + + + + + +
Covered branches:1
Total branches:2
Branch coverage:50%
+
+
+
+
+
Method coverage
+
+
50%
+
+ + + + + + + + + + + + + +
Covered methods:1
Total methods:2
Method coverage:50%
+
+
+
+
+

Coverage history

+
+ +

Metrics

+
+ + + + + + +
MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
SampleFunction()66.67%3.143275%
SampleFunction()0%2100%
+
+

File(s)

+

C:\temp\TestClass.cs

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
#LineLine coverage
 1using System;
 2
 3namespace Test
 4{
 5    class TestClass
 6    {
 7        public void SampleFunction()
 18        {
 19            string test = string.Format(
 110                "{0} {1}",
 111                 "Hello",
 112                 "World");
 13
 114            Console.WriteLine(test);
 115            int i = 10;
 16
 117            if (i > 0 || i > 1)
 118            {
 119                Console.WriteLine(i + " is greater that 0");
 120            }
 21            else
 022            {
 023                Console.WriteLine(i + " is not greater that 0");
 024            }
 125        }
 26
 27        public class NestedClass
 28        {
 29            public void SampleFunction()
 030            {
 031                Console.WriteLine(
 032                    "{0} {1}",
 033                     "Hello",
 034                     "World");
 035            }
 36        }
 37    }
 38}
+
+
+
+
+

Methods/Properties

+SampleFunction()
+SampleFunction()
+
+
+ + + +------=_NextPart_000_0000_01D23618.54EBCBE0 +Content-Type: text/html; + charset="utf-8" +Content-Transfer-Encoding: 8bit +Content-Location: file:///Sample_TestClass2.html + + + + + + + + +Test.TestClass2 - Coverage Report + +
+

< Summary

+
+
+
Information
+
+
+ + + + + + + + + + + + + +
Class:Test.TestClass2
Assembly:Sample
File(s):C:\temp\TestClass2.cs
+
+
+
+
+
+
+
Line coverage
+
+
63%
+
+ + + + + + + + + + + + + + + + + + + + + +
Covered lines:24
Uncovered lines:14
Coverable lines:38
Total lines:85
Line coverage:63.1%
+
+
+
+
+
Branch coverage
+
+
50%
+
+ + + + + + + + + + + + + +
Covered branches:1
Total branches:2
Branch coverage:50%
+
+
+
+
+
Method coverage
+
+
60%
+
+ + + + + + + + + + + + + +
Covered methods:6
Total methods:10
Method coverage:60%
+
+
+
+
+

Coverage history

+
+ +

Metrics

+
+ + + + + + + + + + +
MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
.ctor()0%2100%
.ctor(...)100%110100%
ExecutedMethod()100%110100%
UnExecutedMethod()0%2100%
SampleFunction(...)66.67%552100%
DoSomething(...)0%2100%
+
+

File(s)

+

C:\temp\TestClass2.cs

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
#LineLine coverage
 1using System;
 2using System.Collections.Generic;
 3using System.Linq;
 4
 5namespace Test
 6{
 7    class TestClass2
 8    {
 9        private string name;
 10
 211        private Dictionary<string, int> dict = new Dictionary<string, int>();
 12
 313        public string ExecutedProperty { get; set; }
 14
 015        public string UnExecutedProperty { get; set; }
 16
 017        public TestClass2()
 018        {
 019            this.name = "Nobody";
 020            this.ExecutedProperty = "Nobody";
 021        }
 22
 223        public TestClass2(string name)
 224        {
 225            this.name = name;
 226            this.ExecutedProperty = name + name;
 227        }
 28
 29        public void ExecutedMethod()
 130        {
 131            Console.WriteLine(this.name);
 132            Console.WriteLine(this.ExecutedProperty);
 133        }
 34
 35        public void UnExecutedMethod()
 036        {
 037            Console.WriteLine(this.name);
 038            Console.WriteLine(this.ExecutedProperty);
 039        }
 40
 41        public void SampleFunction(string city)
 142        {
 143            int[] values = new int[] { 0, 1, 2, 3 };
 44
 545            var doubled = values.Select(i => i * 2);
 46
 1147            foreach (var item in doubled)
 448            {
 449                Console.WriteLine(item);
 450            }
 51
 152            string[] cities = new string[] { "Berlin", "Munich", "Paris" };
 53
 454            if (cities.SingleOrDefault(c => c.Equals(city, StringComparison.OrdinalIgnoreCase)) != null)
 155            {
 156                Console.WriteLine("Found " + city);
 157            }
 158        }
 59
 60        public string DoSomething(string value,
 61            string[] stringArray,
 62            Guid id,
 63            IEnumerable<string> stringEnumerable,
 64            IList<string> stringList,
 65            decimal dec,
 66            int i,
 67            Dictionary<string, int> dict,
 68            out int g,
 69            float fff,
 70            double dou,
 71            bool bo,
 72            byte by,
 73            char ch,
 74            object o,
 75            sbyte sby,
 76            short sh,
 77            uint ui,
 78            ulong ul,
 79            ushort usho)
 080        {
 081            g = 0;
 082            return null;
 083        }
 84    }
 85}
+
+
+
+ + + +------=_NextPart_000_0000_01D23618.54EBCBE0 +Content-Type: application/javascript; + charset="utf-8" +Content-Transfer-Encoding: 8bit +Content-Location: file:///main.js + +/* Chartist.js 0.11.4 + * Copyright © 2019 Gion Kunz + * Free to use under either the WTFPL license or the MIT license. + * https://raw.githubusercontent.com/gionkunz/chartist-js/master/LICENSE-WTFPL + * https://raw.githubusercontent.com/gionkunz/chartist-js/master/LICENSE-MIT + */ + +!function (a, b) { "function" == typeof define && define.amd ? define("Chartist", [], function () { return a.Chartist = b() }) : "object" == typeof module && module.exports ? module.exports = b() : a.Chartist = b() }(this, function () { + var a = { version: "0.11.4" }; return function (a, b) { "use strict"; var c = a.window, d = a.document; b.namespaces = { svg: "http://www.w3.org/2000/svg", xmlns: "http://www.w3.org/2000/xmlns/", xhtml: "http://www.w3.org/1999/xhtml", xlink: "http://www.w3.org/1999/xlink", ct: "http://gionkunz.github.com/chartist-js/ct" }, b.noop = function (a) { return a }, b.alphaNumerate = function (a) { return String.fromCharCode(97 + a % 26) }, b.extend = function (a) { var c, d, e; for (a = a || {}, c = 1; c < arguments.length; c++) { d = arguments[c]; for (var f in d) e = d[f], "object" != typeof e || null === e || e instanceof Array ? a[f] = e : a[f] = b.extend(a[f], e) } return a }, b.replaceAll = function (a, b, c) { return a.replace(new RegExp(b, "g"), c) }, b.ensureUnit = function (a, b) { return "number" == typeof a && (a += b), a }, b.quantity = function (a) { if ("string" == typeof a) { var b = /^(\d+)\s*(.*)$/g.exec(a); return { value: +b[1], unit: b[2] || void 0 } } return { value: a } }, b.querySelector = function (a) { return a instanceof Node ? a : d.querySelector(a) }, b.times = function (a) { return Array.apply(null, new Array(a)) }, b.sum = function (a, b) { return a + (b ? b : 0) }, b.mapMultiply = function (a) { return function (b) { return b * a } }, b.mapAdd = function (a) { return function (b) { return b + a } }, b.serialMap = function (a, c) { var d = [], e = Math.max.apply(null, a.map(function (a) { return a.length })); return b.times(e).forEach(function (b, e) { var f = a.map(function (a) { return a[e] }); d[e] = c.apply(null, f) }), d }, b.roundWithPrecision = function (a, c) { var d = Math.pow(10, c || b.precision); return Math.round(a * d) / d }, b.precision = 8, b.escapingMap = { "&": "&", "<": "<", ">": ">", '"': """, "'": "'" }, b.serialize = function (a) { return null === a || void 0 === a ? a : ("number" == typeof a ? a = "" + a : "object" == typeof a && (a = JSON.stringify({ data: a })), Object.keys(b.escapingMap).reduce(function (a, c) { return b.replaceAll(a, c, b.escapingMap[c]) }, a)) }, b.deserialize = function (a) { if ("string" != typeof a) return a; a = Object.keys(b.escapingMap).reduce(function (a, c) { return b.replaceAll(a, b.escapingMap[c], c) }, a); try { a = JSON.parse(a), a = void 0 !== a.data ? a.data : a } catch (c) { } return a }, b.createSvg = function (a, c, d, e) { var f; return c = c || "100%", d = d || "100%", Array.prototype.slice.call(a.querySelectorAll("svg")).filter(function (a) { return a.getAttributeNS(b.namespaces.xmlns, "ct") }).forEach(function (b) { a.removeChild(b) }), f = new b.Svg("svg").attr({ width: c, height: d }).addClass(e), f._node.style.width = c, f._node.style.height = d, a.appendChild(f._node), f }, b.normalizeData = function (a, c, d) { var e, f = { raw: a, normalized: {} }; return f.normalized.series = b.getDataArray({ series: a.series || [] }, c, d), e = f.normalized.series.every(function (a) { return a instanceof Array }) ? Math.max.apply(null, f.normalized.series.map(function (a) { return a.length })) : f.normalized.series.length, f.normalized.labels = (a.labels || []).slice(), Array.prototype.push.apply(f.normalized.labels, b.times(Math.max(0, e - f.normalized.labels.length)).map(function () { return "" })), c && b.reverseData(f.normalized), f }, b.safeHasProperty = function (a, b) { return null !== a && "object" == typeof a && a.hasOwnProperty(b) }, b.isDataHoleValue = function (a) { return null === a || void 0 === a || "number" == typeof a && isNaN(a) }, b.reverseData = function (a) { a.labels.reverse(), a.series.reverse(); for (var b = 0; b < a.series.length; b++)"object" == typeof a.series[b] && void 0 !== a.series[b].data ? a.series[b].data.reverse() : a.series[b] instanceof Array && a.series[b].reverse() }, b.getDataArray = function (a, c, d) { function e(a) { if (b.safeHasProperty(a, "value")) return e(a.value); if (b.safeHasProperty(a, "data")) return e(a.data); if (a instanceof Array) return a.map(e); if (!b.isDataHoleValue(a)) { if (d) { var c = {}; return "string" == typeof d ? c[d] = b.getNumberOrUndefined(a) : c.y = b.getNumberOrUndefined(a), c.x = a.hasOwnProperty("x") ? b.getNumberOrUndefined(a.x) : c.x, c.y = a.hasOwnProperty("y") ? b.getNumberOrUndefined(a.y) : c.y, c } return b.getNumberOrUndefined(a) } } return a.series.map(e) }, b.normalizePadding = function (a, b) { return b = b || 0, "number" == typeof a ? { top: a, right: a, bottom: a, left: a } : { top: "number" == typeof a.top ? a.top : b, right: "number" == typeof a.right ? a.right : b, bottom: "number" == typeof a.bottom ? a.bottom : b, left: "number" == typeof a.left ? a.left : b } }, b.getMetaData = function (a, b) { var c = a.data ? a.data[b] : a[b]; return c ? c.meta : void 0 }, b.orderOfMagnitude = function (a) { return Math.floor(Math.log(Math.abs(a)) / Math.LN10) }, b.projectLength = function (a, b, c) { return b / c.range * a }, b.getAvailableHeight = function (a, c) { return Math.max((b.quantity(c.height).value || a.height()) - (c.chartPadding.top + c.chartPadding.bottom) - c.axisX.offset, 0) }, b.getHighLow = function (a, c, d) { function e(a) { if (void 0 !== a) if (a instanceof Array) for (var b = 0; b < a.length; b++)e(a[b]); else { var c = d ? +a[d] : +a; g && c > f.high && (f.high = c), h && c < f.low && (f.low = c) } } c = b.extend({}, c, d ? c["axis" + d.toUpperCase()] : {}); var f = { high: void 0 === c.high ? -Number.MAX_VALUE : +c.high, low: void 0 === c.low ? Number.MAX_VALUE : +c.low }, g = void 0 === c.high, h = void 0 === c.low; return (g || h) && e(a), (c.referenceValue || 0 === c.referenceValue) && (f.high = Math.max(c.referenceValue, f.high), f.low = Math.min(c.referenceValue, f.low)), f.high <= f.low && (0 === f.low ? f.high = 1 : f.low < 0 ? f.high = 0 : f.high > 0 ? f.low = 0 : (f.high = 1, f.low = 0)), f }, b.isNumeric = function (a) { return null !== a && isFinite(a) }, b.isFalseyButZero = function (a) { return !a && 0 !== a }, b.getNumberOrUndefined = function (a) { return b.isNumeric(a) ? +a : void 0 }, b.isMultiValue = function (a) { return "object" == typeof a && ("x" in a || "y" in a) }, b.getMultiValue = function (a, c) { return b.isMultiValue(a) ? b.getNumberOrUndefined(a[c || "y"]) : b.getNumberOrUndefined(a) }, b.rho = function (a) { function b(a, c) { return a % c === 0 ? c : b(c, a % c) } function c(a) { return a * a + 1 } if (1 === a) return a; var d, e = 2, f = 2; if (a % 2 === 0) return 2; do e = c(e) % a, f = c(c(f)) % a, d = b(Math.abs(e - f), a); while (1 === d); return d }, b.getBounds = function (a, c, d, e) { function f(a, b) { return a === (a += b) && (a *= 1 + (b > 0 ? o : -o)), a } var g, h, i, j = 0, k = { high: c.high, low: c.low }; k.valueRange = k.high - k.low, k.oom = b.orderOfMagnitude(k.valueRange), k.step = Math.pow(10, k.oom), k.min = Math.floor(k.low / k.step) * k.step, k.max = Math.ceil(k.high / k.step) * k.step, k.range = k.max - k.min, k.numberOfSteps = Math.round(k.range / k.step); var l = b.projectLength(a, k.step, k), m = l < d, n = e ? b.rho(k.range) : 0; if (e && b.projectLength(a, 1, k) >= d) k.step = 1; else if (e && n < k.step && b.projectLength(a, n, k) >= d) k.step = n; else for (; ;) { if (m && b.projectLength(a, k.step, k) <= d) k.step *= 2; else { if (m || !(b.projectLength(a, k.step / 2, k) >= d)) break; if (k.step /= 2, e && k.step % 1 !== 0) { k.step *= 2; break } } if (j++ > 1e3) throw new Error("Exceeded maximum number of iterations while optimizing scale step!") } var o = 2.221e-16; for (k.step = Math.max(k.step, o), h = k.min, i = k.max; h + k.step <= k.low;)h = f(h, k.step); for (; i - k.step >= k.high;)i = f(i, -k.step); k.min = h, k.max = i, k.range = k.max - k.min; var p = []; for (g = k.min; g <= k.max; g = f(g, k.step)) { var q = b.roundWithPrecision(g); q !== p[p.length - 1] && p.push(q) } return k.values = p, k }, b.polarToCartesian = function (a, b, c, d) { var e = (d - 90) * Math.PI / 180; return { x: a + c * Math.cos(e), y: b + c * Math.sin(e) } }, b.createChartRect = function (a, c, d) { var e = !(!c.axisX && !c.axisY), f = e ? c.axisY.offset : 0, g = e ? c.axisX.offset : 0, h = a.width() || b.quantity(c.width).value || 0, i = a.height() || b.quantity(c.height).value || 0, j = b.normalizePadding(c.chartPadding, d); h = Math.max(h, f + j.left + j.right), i = Math.max(i, g + j.top + j.bottom); var k = { padding: j, width: function () { return this.x2 - this.x1 }, height: function () { return this.y1 - this.y2 } }; return e ? ("start" === c.axisX.position ? (k.y2 = j.top + g, k.y1 = Math.max(i - j.bottom, k.y2 + 1)) : (k.y2 = j.top, k.y1 = Math.max(i - j.bottom - g, k.y2 + 1)), "start" === c.axisY.position ? (k.x1 = j.left + f, k.x2 = Math.max(h - j.right, k.x1 + 1)) : (k.x1 = j.left, k.x2 = Math.max(h - j.right - f, k.x1 + 1))) : (k.x1 = j.left, k.x2 = Math.max(h - j.right, k.x1 + 1), k.y2 = j.top, k.y1 = Math.max(i - j.bottom, k.y2 + 1)), k }, b.createGrid = function (a, c, d, e, f, g, h, i) { var j = {}; j[d.units.pos + "1"] = a, j[d.units.pos + "2"] = a, j[d.counterUnits.pos + "1"] = e, j[d.counterUnits.pos + "2"] = e + f; var k = g.elem("line", j, h.join(" ")); i.emit("draw", b.extend({ type: "grid", axis: d, index: c, group: g, element: k }, j)) }, b.createGridBackground = function (a, b, c, d) { var e = a.elem("rect", { x: b.x1, y: b.y2, width: b.width(), height: b.height() }, c, !0); d.emit("draw", { type: "gridBackground", group: a, element: e }) }, b.createLabel = function (a, c, e, f, g, h, i, j, k, l, m) { var n, o = {}; if (o[g.units.pos] = a + i[g.units.pos], o[g.counterUnits.pos] = i[g.counterUnits.pos], o[g.units.len] = c, o[g.counterUnits.len] = Math.max(0, h - 10), l) { var p = d.createElement("span"); p.className = k.join(" "), p.setAttribute("xmlns", b.namespaces.xhtml), p.innerText = f[e], p.style[g.units.len] = Math.round(o[g.units.len]) + "px", p.style[g.counterUnits.len] = Math.round(o[g.counterUnits.len]) + "px", n = j.foreignObject(p, b.extend({ style: "overflow: visible;" }, o)) } else n = j.elem("text", o, k.join(" ")).text(f[e]); m.emit("draw", b.extend({ type: "label", axis: g, index: e, group: j, element: n, text: f[e] }, o)) }, b.getSeriesOption = function (a, b, c) { if (a.name && b.series && b.series[a.name]) { var d = b.series[a.name]; return d.hasOwnProperty(c) ? d[c] : b[c] } return b[c] }, b.optionsProvider = function (a, d, e) { function f(a) { var f = h; if (h = b.extend({}, j), d) for (i = 0; i < d.length; i++) { var g = c.matchMedia(d[i][0]); g.matches && (h = b.extend(h, d[i][1])) } e && a && e.emit("optionsChanged", { previousOptions: f, currentOptions: h }) } function g() { k.forEach(function (a) { a.removeListener(f) }) } var h, i, j = b.extend({}, a), k = []; if (!c.matchMedia) throw "window.matchMedia not found! Make sure you're using a polyfill."; if (d) for (i = 0; i < d.length; i++) { var l = c.matchMedia(d[i][0]); l.addListener(f), k.push(l) } return f(), { removeMediaQueryListeners: g, getCurrentOptions: function () { return b.extend({}, h) } } }, b.splitIntoSegments = function (a, c, d) { var e = { increasingX: !1, fillHoles: !1 }; d = b.extend({}, e, d); for (var f = [], g = !0, h = 0; h < a.length; h += 2)void 0 === b.getMultiValue(c[h / 2].value) ? d.fillHoles || (g = !0) : (d.increasingX && h >= 2 && a[h] <= a[h - 2] && (g = !0), g && (f.push({ pathCoordinates: [], valueData: [] }), g = !1), f[f.length - 1].pathCoordinates.push(a[h], a[h + 1]), f[f.length - 1].valueData.push(c[h / 2])); return f } }(this || global, a), function (a, b) { "use strict"; b.Interpolation = {}, b.Interpolation.none = function (a) { var c = { fillHoles: !1 }; return a = b.extend({}, c, a), function (c, d) { for (var e = new b.Svg.Path, f = !0, g = 0; g < c.length; g += 2) { var h = c[g], i = c[g + 1], j = d[g / 2]; void 0 !== b.getMultiValue(j.value) ? (f ? e.move(h, i, !1, j) : e.line(h, i, !1, j), f = !1) : a.fillHoles || (f = !0) } return e } }, b.Interpolation.simple = function (a) { var c = { divisor: 2, fillHoles: !1 }; a = b.extend({}, c, a); var d = 1 / Math.max(1, a.divisor); return function (c, e) { for (var f, g, h, i = new b.Svg.Path, j = 0; j < c.length; j += 2) { var k = c[j], l = c[j + 1], m = (k - f) * d, n = e[j / 2]; void 0 !== n.value ? (void 0 === h ? i.move(k, l, !1, n) : i.curve(f + m, g, k - m, l, k, l, !1, n), f = k, g = l, h = n) : a.fillHoles || (f = k = h = void 0) } return i } }, b.Interpolation.cardinal = function (a) { var c = { tension: 1, fillHoles: !1 }; a = b.extend({}, c, a); var d = Math.min(1, Math.max(0, a.tension)), e = 1 - d; return function f(c, g) { var h = b.splitIntoSegments(c, g, { fillHoles: a.fillHoles }); if (h.length) { if (h.length > 1) { var i = []; return h.forEach(function (a) { i.push(f(a.pathCoordinates, a.valueData)) }), b.Svg.Path.join(i) } if (c = h[0].pathCoordinates, g = h[0].valueData, c.length <= 4) return b.Interpolation.none()(c, g); for (var j, k = (new b.Svg.Path).move(c[0], c[1], !1, g[0]), l = 0, m = c.length; m - 2 * !j > l; l += 2) { var n = [{ x: +c[l - 2], y: +c[l - 1] }, { x: +c[l], y: +c[l + 1] }, { x: +c[l + 2], y: +c[l + 3] }, { x: +c[l + 4], y: +c[l + 5] }]; j ? l ? m - 4 === l ? n[3] = { x: +c[0], y: +c[1] } : m - 2 === l && (n[2] = { x: +c[0], y: +c[1] }, n[3] = { x: +c[2], y: +c[3] }) : n[0] = { x: +c[m - 2], y: +c[m - 1] } : m - 4 === l ? n[3] = n[2] : l || (n[0] = { x: +c[l], y: +c[l + 1] }), k.curve(d * (-n[0].x + 6 * n[1].x + n[2].x) / 6 + e * n[2].x, d * (-n[0].y + 6 * n[1].y + n[2].y) / 6 + e * n[2].y, d * (n[1].x + 6 * n[2].x - n[3].x) / 6 + e * n[2].x, d * (n[1].y + 6 * n[2].y - n[3].y) / 6 + e * n[2].y, n[2].x, n[2].y, !1, g[(l + 2) / 2]) } return k } return b.Interpolation.none()([]) } }, b.Interpolation.monotoneCubic = function (a) { var c = { fillHoles: !1 }; return a = b.extend({}, c, a), function d(c, e) { var f = b.splitIntoSegments(c, e, { fillHoles: a.fillHoles, increasingX: !0 }); if (f.length) { if (f.length > 1) { var g = []; return f.forEach(function (a) { g.push(d(a.pathCoordinates, a.valueData)) }), b.Svg.Path.join(g) } if (c = f[0].pathCoordinates, e = f[0].valueData, c.length <= 4) return b.Interpolation.none()(c, e); var h, i, j = [], k = [], l = c.length / 2, m = [], n = [], o = [], p = []; for (h = 0; h < l; h++)j[h] = c[2 * h], k[h] = c[2 * h + 1]; for (h = 0; h < l - 1; h++)o[h] = k[h + 1] - k[h], p[h] = j[h + 1] - j[h], n[h] = o[h] / p[h]; for (m[0] = n[0], m[l - 1] = n[l - 2], h = 1; h < l - 1; h++)0 === n[h] || 0 === n[h - 1] || n[h - 1] > 0 != n[h] > 0 ? m[h] = 0 : (m[h] = 3 * (p[h - 1] + p[h]) / ((2 * p[h] + p[h - 1]) / n[h - 1] + (p[h] + 2 * p[h - 1]) / n[h]), isFinite(m[h]) || (m[h] = 0)); for (i = (new b.Svg.Path).move(j[0], k[0], !1, e[0]), h = 0; h < l - 1; h++)i.curve(j[h] + p[h] / 3, k[h] + m[h] * p[h] / 3, j[h + 1] - p[h] / 3, k[h + 1] - m[h + 1] * p[h] / 3, j[h + 1], k[h + 1], !1, e[h + 1]); return i } return b.Interpolation.none()([]) } }, b.Interpolation.step = function (a) { var c = { postpone: !0, fillHoles: !1 }; return a = b.extend({}, c, a), function (c, d) { for (var e, f, g, h = new b.Svg.Path, i = 0; i < c.length; i += 2) { var j = c[i], k = c[i + 1], l = d[i / 2]; void 0 !== l.value ? (void 0 === g ? h.move(j, k, !1, l) : (a.postpone ? h.line(j, f, !1, g) : h.line(e, k, !1, l), h.line(j, k, !1, l)), e = j, f = k, g = l) : a.fillHoles || (e = f = g = void 0) } return h } } }(this || global, a), function (a, b) { "use strict"; b.EventEmitter = function () { function a(a, b) { d[a] = d[a] || [], d[a].push(b) } function b(a, b) { d[a] && (b ? (d[a].splice(d[a].indexOf(b), 1), 0 === d[a].length && delete d[a]) : delete d[a]) } function c(a, b) { d[a] && d[a].forEach(function (a) { a(b) }), d["*"] && d["*"].forEach(function (c) { c(a, b) }) } var d = []; return { addEventHandler: a, removeEventHandler: b, emit: c } } }(this || global, a), function (a, b) { "use strict"; function c(a) { var b = []; if (a.length) for (var c = 0; c < a.length; c++)b.push(a[c]); return b } function d(a, c) { var d = c || this.prototype || b.Class, e = Object.create(d); b.Class.cloneDefinitions(e, a); var f = function () { var a, c = e.constructor || function () { }; return a = this === b ? Object.create(e) : this, c.apply(a, Array.prototype.slice.call(arguments, 0)), a }; return f.prototype = e, f["super"] = d, f.extend = this.extend, f } function e() { var a = c(arguments), b = a[0]; return a.splice(1, a.length - 1).forEach(function (a) { Object.getOwnPropertyNames(a).forEach(function (c) { delete b[c], Object.defineProperty(b, c, Object.getOwnPropertyDescriptor(a, c)) }) }), b } b.Class = { extend: d, cloneDefinitions: e } }(this || global, a), function (a, b) { "use strict"; function c(a, c, d) { return a && (this.data = a || {}, this.data.labels = this.data.labels || [], this.data.series = this.data.series || [], this.eventEmitter.emit("data", { type: "update", data: this.data })), c && (this.options = b.extend({}, d ? this.options : this.defaultOptions, c), this.initializeTimeoutId || (this.optionsProvider.removeMediaQueryListeners(), this.optionsProvider = b.optionsProvider(this.options, this.responsiveOptions, this.eventEmitter))), this.initializeTimeoutId || this.createChart(this.optionsProvider.getCurrentOptions()), this } function d() { return this.initializeTimeoutId ? i.clearTimeout(this.initializeTimeoutId) : (i.removeEventListener("resize", this.resizeListener), this.optionsProvider.removeMediaQueryListeners()), this } function e(a, b) { return this.eventEmitter.addEventHandler(a, b), this } function f(a, b) { return this.eventEmitter.removeEventHandler(a, b), this } function g() { i.addEventListener("resize", this.resizeListener), this.optionsProvider = b.optionsProvider(this.options, this.responsiveOptions, this.eventEmitter), this.eventEmitter.addEventHandler("optionsChanged", function () { this.update() }.bind(this)), this.options.plugins && this.options.plugins.forEach(function (a) { a instanceof Array ? a[0](this, a[1]) : a(this) }.bind(this)), this.eventEmitter.emit("data", { type: "initial", data: this.data }), this.createChart(this.optionsProvider.getCurrentOptions()), this.initializeTimeoutId = void 0 } function h(a, c, d, e, f) { this.container = b.querySelector(a), this.data = c || {}, this.data.labels = this.data.labels || [], this.data.series = this.data.series || [], this.defaultOptions = d, this.options = e, this.responsiveOptions = f, this.eventEmitter = b.EventEmitter(), this.supportsForeignObject = b.Svg.isSupported("Extensibility"), this.supportsAnimations = b.Svg.isSupported("AnimationEventsAttribute"), this.resizeListener = function () { this.update() }.bind(this), this.container && (this.container.__chartist__ && this.container.__chartist__.detach(), this.container.__chartist__ = this), this.initializeTimeoutId = setTimeout(g.bind(this), 0) } var i = a.window; b.Base = b.Class.extend({ constructor: h, optionsProvider: void 0, container: void 0, svg: void 0, eventEmitter: void 0, createChart: function () { throw new Error("Base chart type can't be instantiated!") }, update: c, detach: d, on: e, off: f, version: b.version, supportsForeignObject: !1 }) }(this || global, a), function (a, b) { "use strict"; function c(a, c, d, e, f) { a instanceof Element ? this._node = a : (this._node = y.createElementNS(b.namespaces.svg, a), "svg" === a && this.attr({ "xmlns:ct": b.namespaces.ct })), c && this.attr(c), d && this.addClass(d), e && (f && e._node.firstChild ? e._node.insertBefore(this._node, e._node.firstChild) : e._node.appendChild(this._node)) } function d(a, c) { return "string" == typeof a ? c ? this._node.getAttributeNS(c, a) : this._node.getAttribute(a) : (Object.keys(a).forEach(function (c) { if (void 0 !== a[c]) if (c.indexOf(":") !== -1) { var d = c.split(":"); this._node.setAttributeNS(b.namespaces[d[0]], c, a[c]) } else this._node.setAttribute(c, a[c]) }.bind(this)), this) } function e(a, c, d, e) { return new b.Svg(a, c, d, this, e) } function f() { return this._node.parentNode instanceof SVGElement ? new b.Svg(this._node.parentNode) : null } function g() { for (var a = this._node; "svg" !== a.nodeName;)a = a.parentNode; return new b.Svg(a) } function h(a) { var c = this._node.querySelector(a); return c ? new b.Svg(c) : null } function i(a) { var c = this._node.querySelectorAll(a); return c.length ? new b.Svg.List(c) : null } function j() { return this._node } function k(a, c, d, e) { if ("string" == typeof a) { var f = y.createElement("div"); f.innerHTML = a, a = f.firstChild } a.setAttribute("xmlns", b.namespaces.xmlns); var g = this.elem("foreignObject", c, d, e); return g._node.appendChild(a), g } function l(a) { return this._node.appendChild(y.createTextNode(a)), this } function m() { for (; this._node.firstChild;)this._node.removeChild(this._node.firstChild); return this } function n() { return this._node.parentNode.removeChild(this._node), this.parent() } function o(a) { return this._node.parentNode.replaceChild(a._node, this._node), a } function p(a, b) { return b && this._node.firstChild ? this._node.insertBefore(a._node, this._node.firstChild) : this._node.appendChild(a._node), this } function q() { return this._node.getAttribute("class") ? this._node.getAttribute("class").trim().split(/\s+/) : [] } function r(a) { return this._node.setAttribute("class", this.classes(this._node).concat(a.trim().split(/\s+/)).filter(function (a, b, c) { return c.indexOf(a) === b }).join(" ")), this } function s(a) { var b = a.trim().split(/\s+/); return this._node.setAttribute("class", this.classes(this._node).filter(function (a) { return b.indexOf(a) === -1 }).join(" ")), this } function t() { return this._node.setAttribute("class", ""), this } function u() { return this._node.getBoundingClientRect().height } function v() { return this._node.getBoundingClientRect().width } function w(a, c, d) { return void 0 === c && (c = !0), Object.keys(a).forEach(function (e) { function f(a, c) { var f, g, h, i = {}; a.easing && (h = a.easing instanceof Array ? a.easing : b.Svg.Easing[a.easing], delete a.easing), a.begin = b.ensureUnit(a.begin, "ms"), a.dur = b.ensureUnit(a.dur, "ms"), h && (a.calcMode = "spline", a.keySplines = h.join(" "), a.keyTimes = "0;1"), c && (a.fill = "freeze", i[e] = a.from, this.attr(i), g = b.quantity(a.begin || 0).value, a.begin = "indefinite"), f = this.elem("animate", b.extend({ attributeName: e }, a)), c && setTimeout(function () { try { f._node.beginElement() } catch (b) { i[e] = a.to, this.attr(i), f.remove() } }.bind(this), g), d && f._node.addEventListener("beginEvent", function () { d.emit("animationBegin", { element: this, animate: f._node, params: a }) }.bind(this)), f._node.addEventListener("endEvent", function () { d && d.emit("animationEnd", { element: this, animate: f._node, params: a }), c && (i[e] = a.to, this.attr(i), f.remove()) }.bind(this)) } a[e] instanceof Array ? a[e].forEach(function (a) { f.bind(this)(a, !1) }.bind(this)) : f.bind(this)(a[e], c) }.bind(this)), this } function x(a) { var c = this; this.svgElements = []; for (var d = 0; d < a.length; d++)this.svgElements.push(new b.Svg(a[d])); Object.keys(b.Svg.prototype).filter(function (a) { return ["constructor", "parent", "querySelector", "querySelectorAll", "replace", "append", "classes", "height", "width"].indexOf(a) === -1 }).forEach(function (a) { c[a] = function () { var d = Array.prototype.slice.call(arguments, 0); return c.svgElements.forEach(function (c) { b.Svg.prototype[a].apply(c, d) }), c } }) } var y = a.document; b.Svg = b.Class.extend({ constructor: c, attr: d, elem: e, parent: f, root: g, querySelector: h, querySelectorAll: i, getNode: j, foreignObject: k, text: l, empty: m, remove: n, replace: o, append: p, classes: q, addClass: r, removeClass: s, removeAllClasses: t, height: u, width: v, animate: w }), b.Svg.isSupported = function (a) { return y.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#" + a, "1.1") }; var z = { easeInSine: [.47, 0, .745, .715], easeOutSine: [.39, .575, .565, 1], easeInOutSine: [.445, .05, .55, .95], easeInQuad: [.55, .085, .68, .53], easeOutQuad: [.25, .46, .45, .94], easeInOutQuad: [.455, .03, .515, .955], easeInCubic: [.55, .055, .675, .19], easeOutCubic: [.215, .61, .355, 1], easeInOutCubic: [.645, .045, .355, 1], easeInQuart: [.895, .03, .685, .22], easeOutQuart: [.165, .84, .44, 1], easeInOutQuart: [.77, 0, .175, 1], easeInQuint: [.755, .05, .855, .06], easeOutQuint: [.23, 1, .32, 1], easeInOutQuint: [.86, 0, .07, 1], easeInExpo: [.95, .05, .795, .035], easeOutExpo: [.19, 1, .22, 1], easeInOutExpo: [1, 0, 0, 1], easeInCirc: [.6, .04, .98, .335], easeOutCirc: [.075, .82, .165, 1], easeInOutCirc: [.785, .135, .15, .86], easeInBack: [.6, -.28, .735, .045], easeOutBack: [.175, .885, .32, 1.275], easeInOutBack: [.68, -.55, .265, 1.55] }; b.Svg.Easing = z, b.Svg.List = b.Class.extend({ constructor: x }) }(this || global, a), function (a, b) { "use strict"; function c(a, c, d, e, f, g) { var h = b.extend({ command: f ? a.toLowerCase() : a.toUpperCase() }, c, g ? { data: g } : {}); d.splice(e, 0, h) } function d(a, b) { a.forEach(function (c, d) { t[c.command.toLowerCase()].forEach(function (e, f) { b(c, e, d, f, a) }) }) } function e(a, c) { this.pathElements = [], this.pos = 0, this.close = a, this.options = b.extend({}, u, c) } function f(a) { return void 0 !== a ? (this.pos = Math.max(0, Math.min(this.pathElements.length, a)), this) : this.pos } function g(a) { return this.pathElements.splice(this.pos, a), this } function h(a, b, d, e) { return c("M", { x: +a, y: +b }, this.pathElements, this.pos++, d, e), this } function i(a, b, d, e) { return c("L", { x: +a, y: +b }, this.pathElements, this.pos++, d, e), this } function j(a, b, d, e, f, g, h, i) { return c("C", { x1: +a, y1: +b, x2: +d, y2: +e, x: +f, y: +g }, this.pathElements, this.pos++, h, i), this } function k(a, b, d, e, f, g, h, i, j) { return c("A", { rx: +a, ry: +b, xAr: +d, lAf: +e, sf: +f, x: +g, y: +h }, this.pathElements, this.pos++, i, j), this } function l(a) { var c = a.replace(/([A-Za-z])([0-9])/g, "$1 $2").replace(/([0-9])([A-Za-z])/g, "$1 $2").split(/[\s,]+/).reduce(function (a, b) { return b.match(/[A-Za-z]/) && a.push([]), a[a.length - 1].push(b), a }, []); "Z" === c[c.length - 1][0].toUpperCase() && c.pop(); var d = c.map(function (a) { var c = a.shift(), d = t[c.toLowerCase()]; return b.extend({ command: c }, d.reduce(function (b, c, d) { return b[c] = +a[d], b }, {})) }), e = [this.pos, 0]; return Array.prototype.push.apply(e, d), Array.prototype.splice.apply(this.pathElements, e), this.pos += d.length, this } function m() { var a = Math.pow(10, this.options.accuracy); return this.pathElements.reduce(function (b, c) { var d = t[c.command.toLowerCase()].map(function (b) { return this.options.accuracy ? Math.round(c[b] * a) / a : c[b] }.bind(this)); return b + c.command + d.join(",") }.bind(this), "") + (this.close ? "Z" : "") } function n(a, b) { return d(this.pathElements, function (c, d) { c[d] *= "x" === d[0] ? a : b }), this } function o(a, b) { return d(this.pathElements, function (c, d) { c[d] += "x" === d[0] ? a : b }), this } function p(a) { return d(this.pathElements, function (b, c, d, e, f) { var g = a(b, c, d, e, f); (g || 0 === g) && (b[c] = g) }), this } function q(a) { var c = new b.Svg.Path(a || this.close); return c.pos = this.pos, c.pathElements = this.pathElements.slice().map(function (a) { return b.extend({}, a) }), c.options = b.extend({}, this.options), c } function r(a) { var c = [new b.Svg.Path]; return this.pathElements.forEach(function (d) { d.command === a.toUpperCase() && 0 !== c[c.length - 1].pathElements.length && c.push(new b.Svg.Path), c[c.length - 1].pathElements.push(d) }), c } function s(a, c, d) { for (var e = new b.Svg.Path(c, d), f = 0; f < a.length; f++)for (var g = a[f], h = 0; h < g.pathElements.length; h++)e.pathElements.push(g.pathElements[h]); return e } var t = { m: ["x", "y"], l: ["x", "y"], c: ["x1", "y1", "x2", "y2", "x", "y"], a: ["rx", "ry", "xAr", "lAf", "sf", "x", "y"] }, u = { accuracy: 3 }; b.Svg.Path = b.Class.extend({ constructor: e, position: f, remove: g, move: h, line: i, curve: j, arc: k, scale: n, translate: o, transform: p, parse: l, stringify: m, clone: q, splitByCommand: r }), b.Svg.Path.elementDescriptions = t, b.Svg.Path.join = s }(this || global, a), function (a, b) { "use strict"; function c(a, b, c, d) { this.units = a, this.counterUnits = a === e.x ? e.y : e.x, this.chartRect = b, this.axisLength = b[a.rectEnd] - b[a.rectStart], this.gridOffset = b[a.rectOffset], this.ticks = c, this.options = d } function d(a, c, d, e, f) { var g = e["axis" + this.units.pos.toUpperCase()], h = this.ticks.map(this.projectValue.bind(this)), i = this.ticks.map(g.labelInterpolationFnc); h.forEach(function (j, k) { var l, m = { x: 0, y: 0 }; l = h[k + 1] ? h[k + 1] - j : Math.max(this.axisLength - j, 30), b.isFalseyButZero(i[k]) && "" !== i[k] || ("x" === this.units.pos ? (j = this.chartRect.x1 + j, m.x = e.axisX.labelOffset.x, "start" === e.axisX.position ? m.y = this.chartRect.padding.top + e.axisX.labelOffset.y + (d ? 5 : 20) : m.y = this.chartRect.y1 + e.axisX.labelOffset.y + (d ? 5 : 20)) : (j = this.chartRect.y1 - j, m.y = e.axisY.labelOffset.y - (d ? l : 0), "start" === e.axisY.position ? m.x = d ? this.chartRect.padding.left + e.axisY.labelOffset.x : this.chartRect.x1 - 10 : m.x = this.chartRect.x2 + e.axisY.labelOffset.x + 10), g.showGrid && b.createGrid(j, k, this, this.gridOffset, this.chartRect[this.counterUnits.len](), a, [e.classNames.grid, e.classNames[this.units.dir]], f), g.showLabel && b.createLabel(j, l, k, i, this, g.offset, m, c, [e.classNames.label, e.classNames[this.units.dir], "start" === g.position ? e.classNames[g.position] : e.classNames.end], d, f)) }.bind(this)) } var e = (a.window, a.document, { x: { pos: "x", len: "width", dir: "horizontal", rectStart: "x1", rectEnd: "x2", rectOffset: "y2" }, y: { pos: "y", len: "height", dir: "vertical", rectStart: "y2", rectEnd: "y1", rectOffset: "x1" } }); b.Axis = b.Class.extend({ constructor: c, createGridAndLabels: d, projectValue: function (a, b, c) { throw new Error("Base axis can't be instantiated!") } }), b.Axis.units = e }(this || global, a), function (a, b) { "use strict"; function c(a, c, d, e) { var f = e.highLow || b.getHighLow(c, e, a.pos); this.bounds = b.getBounds(d[a.rectEnd] - d[a.rectStart], f, e.scaleMinSpace || 20, e.onlyInteger), this.range = { min: this.bounds.min, max: this.bounds.max }, b.AutoScaleAxis["super"].constructor.call(this, a, d, this.bounds.values, e) } function d(a) { return this.axisLength * (+b.getMultiValue(a, this.units.pos) - this.bounds.min) / this.bounds.range } a.window, a.document; b.AutoScaleAxis = b.Axis.extend({ constructor: c, projectValue: d }) }(this || global, a), function (a, b) { "use strict"; function c(a, c, d, e) { var f = e.highLow || b.getHighLow(c, e, a.pos); this.divisor = e.divisor || 1, this.ticks = e.ticks || b.times(this.divisor).map(function (a, b) { return f.low + (f.high - f.low) / this.divisor * b }.bind(this)), this.ticks.sort(function (a, b) { return a - b }), this.range = { min: f.low, max: f.high }, b.FixedScaleAxis["super"].constructor.call(this, a, d, this.ticks, e), this.stepLength = this.axisLength / this.divisor } function d(a) { return this.axisLength * (+b.getMultiValue(a, this.units.pos) - this.range.min) / (this.range.max - this.range.min) } a.window, a.document; b.FixedScaleAxis = b.Axis.extend({ constructor: c, projectValue: d }) }(this || global, a), function (a, b) { "use strict"; function c(a, c, d, e) { b.StepAxis["super"].constructor.call(this, a, d, e.ticks, e); var f = Math.max(1, e.ticks.length - (e.stretch ? 1 : 0)); this.stepLength = this.axisLength / f } function d(a, b) { return this.stepLength * b } a.window, a.document; b.StepAxis = b.Axis.extend({ constructor: c, projectValue: d }) }(this || global, a), function (a, b) { "use strict"; function c(a) { var c = b.normalizeData(this.data, a.reverseData, !0); this.svg = b.createSvg(this.container, a.width, a.height, a.classNames.chart); var d, f, g = this.svg.elem("g").addClass(a.classNames.gridGroup), h = this.svg.elem("g"), i = this.svg.elem("g").addClass(a.classNames.labelGroup), j = b.createChartRect(this.svg, a, e.padding); d = void 0 === a.axisX.type ? new b.StepAxis(b.Axis.units.x, c.normalized.series, j, b.extend({}, a.axisX, { ticks: c.normalized.labels, stretch: a.fullWidth })) : a.axisX.type.call(b, b.Axis.units.x, c.normalized.series, j, a.axisX), f = void 0 === a.axisY.type ? new b.AutoScaleAxis(b.Axis.units.y, c.normalized.series, j, b.extend({}, a.axisY, { high: b.isNumeric(a.high) ? a.high : a.axisY.high, low: b.isNumeric(a.low) ? a.low : a.axisY.low })) : a.axisY.type.call(b, b.Axis.units.y, c.normalized.series, j, a.axisY), d.createGridAndLabels(g, i, this.supportsForeignObject, a, this.eventEmitter), f.createGridAndLabels(g, i, this.supportsForeignObject, a, this.eventEmitter), a.showGridBackground && b.createGridBackground(g, j, a.classNames.gridBackground, this.eventEmitter), c.raw.series.forEach(function (e, g) { var i = h.elem("g"); i.attr({ "ct:series-name": e.name, "ct:meta": b.serialize(e.meta) }), i.addClass([a.classNames.series, e.className || a.classNames.series + "-" + b.alphaNumerate(g)].join(" ")); var k = [], l = []; c.normalized.series[g].forEach(function (a, h) { var i = { x: j.x1 + d.projectValue(a, h, c.normalized.series[g]), y: j.y1 - f.projectValue(a, h, c.normalized.series[g]) }; k.push(i.x, i.y), l.push({ value: a, valueIndex: h, meta: b.getMetaData(e, h) }) }.bind(this)); var m = { lineSmooth: b.getSeriesOption(e, a, "lineSmooth"), showPoint: b.getSeriesOption(e, a, "showPoint"), showLine: b.getSeriesOption(e, a, "showLine"), showArea: b.getSeriesOption(e, a, "showArea"), areaBase: b.getSeriesOption(e, a, "areaBase") }, n = "function" == typeof m.lineSmooth ? m.lineSmooth : m.lineSmooth ? b.Interpolation.monotoneCubic() : b.Interpolation.none(), o = n(k, l); if (m.showPoint && o.pathElements.forEach(function (c) { var h = i.elem("line", { x1: c.x, y1: c.y, x2: c.x + .01, y2: c.y }, a.classNames.point).attr({ "ct:value": [c.data.value.x, c.data.value.y].filter(b.isNumeric).join(","), "ct:meta": b.serialize(c.data.meta) }); this.eventEmitter.emit("draw", { type: "point", value: c.data.value, index: c.data.valueIndex, meta: c.data.meta, series: e, seriesIndex: g, axisX: d, axisY: f, group: i, element: h, x: c.x, y: c.y }) }.bind(this)), m.showLine) { var p = i.elem("path", { d: o.stringify() }, a.classNames.line, !0); this.eventEmitter.emit("draw", { type: "line", values: c.normalized.series[g], path: o.clone(), chartRect: j, index: g, series: e, seriesIndex: g, seriesMeta: e.meta, axisX: d, axisY: f, group: i, element: p }) } if (m.showArea && f.range) { var q = Math.max(Math.min(m.areaBase, f.range.max), f.range.min), r = j.y1 - f.projectValue(q); o.splitByCommand("M").filter(function (a) { return a.pathElements.length > 1 }).map(function (a) { var b = a.pathElements[0], c = a.pathElements[a.pathElements.length - 1]; return a.clone(!0).position(0).remove(1).move(b.x, r).line(b.x, b.y).position(a.pathElements.length + 1).line(c.x, r) }).forEach(function (b) { var h = i.elem("path", { d: b.stringify() }, a.classNames.area, !0); this.eventEmitter.emit("draw", { type: "area", values: c.normalized.series[g], path: b.clone(), series: e, seriesIndex: g, axisX: d, axisY: f, chartRect: j, index: g, group: i, element: h }) }.bind(this)) } }.bind(this)), this.eventEmitter.emit("created", { bounds: f.bounds, chartRect: j, axisX: d, axisY: f, svg: this.svg, options: a }) } function d(a, c, d, f) { b.Line["super"].constructor.call(this, a, c, e, b.extend({}, e, d), f) } var e = (a.window, a.document, { axisX: { offset: 30, position: "end", labelOffset: { x: 0, y: 0 }, showLabel: !0, showGrid: !0, labelInterpolationFnc: b.noop, type: void 0 }, axisY: { offset: 40, position: "start", labelOffset: { x: 0, y: 0 }, showLabel: !0, showGrid: !0, labelInterpolationFnc: b.noop, type: void 0, scaleMinSpace: 20, onlyInteger: !1 }, width: void 0, height: void 0, showLine: !0, showPoint: !0, showArea: !1, areaBase: 0, lineSmooth: !0, showGridBackground: !1, low: void 0, high: void 0, chartPadding: { top: 15, right: 15, bottom: 5, left: 10 }, fullWidth: !1, reverseData: !1, classNames: { chart: "ct-chart-line", label: "ct-label", labelGroup: "ct-labels", series: "ct-series", line: "ct-line", point: "ct-point", area: "ct-area", grid: "ct-grid", gridGroup: "ct-grids", gridBackground: "ct-grid-background", vertical: "ct-vertical", horizontal: "ct-horizontal", start: "ct-start", end: "ct-end" } }); b.Line = b.Base.extend({ constructor: d, createChart: c }) }(this || global, a), function (a, b) { + "use strict"; function c(a) { + var c, d; a.distributeSeries ? (c = b.normalizeData(this.data, a.reverseData, a.horizontalBars ? "x" : "y"), c.normalized.series = c.normalized.series.map(function (a) { return [a] })) : c = b.normalizeData(this.data, a.reverseData, a.horizontalBars ? "x" : "y"), this.svg = b.createSvg(this.container, a.width, a.height, a.classNames.chart + (a.horizontalBars ? " " + a.classNames.horizontalBars : "")); var f = this.svg.elem("g").addClass(a.classNames.gridGroup), g = this.svg.elem("g"), h = this.svg.elem("g").addClass(a.classNames.labelGroup); + if (a.stackBars && 0 !== c.normalized.series.length) { var i = b.serialMap(c.normalized.series, function () { return Array.prototype.slice.call(arguments).map(function (a) { return a }).reduce(function (a, b) { return { x: a.x + (b && b.x) || 0, y: a.y + (b && b.y) || 0 } }, { x: 0, y: 0 }) }); d = b.getHighLow([i], a, a.horizontalBars ? "x" : "y") } else d = b.getHighLow(c.normalized.series, a, a.horizontalBars ? "x" : "y"); d.high = +a.high || (0 === a.high ? 0 : d.high), d.low = +a.low || (0 === a.low ? 0 : d.low); var j, k, l, m, n, o = b.createChartRect(this.svg, a, e.padding); k = a.distributeSeries && a.stackBars ? c.normalized.labels.slice(0, 1) : c.normalized.labels, a.horizontalBars ? (j = m = void 0 === a.axisX.type ? new b.AutoScaleAxis(b.Axis.units.x, c.normalized.series, o, b.extend({}, a.axisX, { highLow: d, referenceValue: 0 })) : a.axisX.type.call(b, b.Axis.units.x, c.normalized.series, o, b.extend({}, a.axisX, { highLow: d, referenceValue: 0 })), l = n = void 0 === a.axisY.type ? new b.StepAxis(b.Axis.units.y, c.normalized.series, o, { ticks: k }) : a.axisY.type.call(b, b.Axis.units.y, c.normalized.series, o, a.axisY)) : (l = m = void 0 === a.axisX.type ? new b.StepAxis(b.Axis.units.x, c.normalized.series, o, { ticks: k }) : a.axisX.type.call(b, b.Axis.units.x, c.normalized.series, o, a.axisX), j = n = void 0 === a.axisY.type ? new b.AutoScaleAxis(b.Axis.units.y, c.normalized.series, o, b.extend({}, a.axisY, { highLow: d, referenceValue: 0 })) : a.axisY.type.call(b, b.Axis.units.y, c.normalized.series, o, b.extend({}, a.axisY, { highLow: d, referenceValue: 0 }))); var p = a.horizontalBars ? o.x1 + j.projectValue(0) : o.y1 - j.projectValue(0), q = []; l.createGridAndLabels(f, h, this.supportsForeignObject, a, this.eventEmitter), j.createGridAndLabels(f, h, this.supportsForeignObject, a, this.eventEmitter), a.showGridBackground && b.createGridBackground(f, o, a.classNames.gridBackground, this.eventEmitter), c.raw.series.forEach(function (d, e) { var f, h, i = e - (c.raw.series.length - 1) / 2; f = a.distributeSeries && !a.stackBars ? l.axisLength / c.normalized.series.length / 2 : a.distributeSeries && a.stackBars ? l.axisLength / 2 : l.axisLength / c.normalized.series[e].length / 2, h = g.elem("g"), h.attr({ "ct:series-name": d.name, "ct:meta": b.serialize(d.meta) }), h.addClass([a.classNames.series, d.className || a.classNames.series + "-" + b.alphaNumerate(e)].join(" ")), c.normalized.series[e].forEach(function (g, k) { var r, s, t, u; if (u = a.distributeSeries && !a.stackBars ? e : a.distributeSeries && a.stackBars ? 0 : k, r = a.horizontalBars ? { x: o.x1 + j.projectValue(g && g.x ? g.x : 0, k, c.normalized.series[e]), y: o.y1 - l.projectValue(g && g.y ? g.y : 0, u, c.normalized.series[e]) } : { x: o.x1 + l.projectValue(g && g.x ? g.x : 0, u, c.normalized.series[e]), y: o.y1 - j.projectValue(g && g.y ? g.y : 0, k, c.normalized.series[e]) }, l instanceof b.StepAxis && (l.options.stretch || (r[l.units.pos] += f * (a.horizontalBars ? -1 : 1)), r[l.units.pos] += a.stackBars || a.distributeSeries ? 0 : i * a.seriesBarDistance * (a.horizontalBars ? -1 : 1)), t = q[k] || p, q[k] = t - (p - r[l.counterUnits.pos]), void 0 !== g) { var v = {}; v[l.units.pos + "1"] = r[l.units.pos], v[l.units.pos + "2"] = r[l.units.pos], !a.stackBars || "accumulate" !== a.stackMode && a.stackMode ? (v[l.counterUnits.pos + "1"] = p, v[l.counterUnits.pos + "2"] = r[l.counterUnits.pos]) : (v[l.counterUnits.pos + "1"] = t, v[l.counterUnits.pos + "2"] = q[k]), v.x1 = Math.min(Math.max(v.x1, o.x1), o.x2), v.x2 = Math.min(Math.max(v.x2, o.x1), o.x2), v.y1 = Math.min(Math.max(v.y1, o.y2), o.y1), v.y2 = Math.min(Math.max(v.y2, o.y2), o.y1); var w = b.getMetaData(d, k); s = h.elem("line", v, a.classNames.bar).attr({ "ct:value": [g.x, g.y].filter(b.isNumeric).join(","), "ct:meta": b.serialize(w) }), this.eventEmitter.emit("draw", b.extend({ type: "bar", value: g, index: k, meta: w, series: d, seriesIndex: e, axisX: m, axisY: n, chartRect: o, group: h, element: s }, v)) } }.bind(this)) }.bind(this)), this.eventEmitter.emit("created", { bounds: j.bounds, chartRect: o, axisX: m, axisY: n, svg: this.svg, options: a }) + } function d(a, c, d, f) { b.Bar["super"].constructor.call(this, a, c, e, b.extend({}, e, d), f) } var e = (a.window, a.document, { axisX: { offset: 30, position: "end", labelOffset: { x: 0, y: 0 }, showLabel: !0, showGrid: !0, labelInterpolationFnc: b.noop, scaleMinSpace: 30, onlyInteger: !1 }, axisY: { offset: 40, position: "start", labelOffset: { x: 0, y: 0 }, showLabel: !0, showGrid: !0, labelInterpolationFnc: b.noop, scaleMinSpace: 20, onlyInteger: !1 }, width: void 0, height: void 0, high: void 0, low: void 0, referenceValue: 0, chartPadding: { top: 15, right: 15, bottom: 5, left: 10 }, seriesBarDistance: 15, stackBars: !1, stackMode: "accumulate", horizontalBars: !1, distributeSeries: !1, reverseData: !1, showGridBackground: !1, classNames: { chart: "ct-chart-bar", horizontalBars: "ct-horizontal-bars", label: "ct-label", labelGroup: "ct-labels", series: "ct-series", bar: "ct-bar", grid: "ct-grid", gridGroup: "ct-grids", gridBackground: "ct-grid-background", vertical: "ct-vertical", horizontal: "ct-horizontal", start: "ct-start", end: "ct-end" } }); b.Bar = b.Base.extend({ constructor: d, createChart: c }) + }(this || global, a), function (a, b) { "use strict"; function c(a, b, c) { var d = b.x > a.x; return d && "explode" === c || !d && "implode" === c ? "start" : d && "implode" === c || !d && "explode" === c ? "end" : "middle" } function d(a) { var d, e, g, h, i, j = b.normalizeData(this.data), k = [], l = a.startAngle; this.svg = b.createSvg(this.container, a.width, a.height, a.donut ? a.classNames.chartDonut : a.classNames.chartPie), e = b.createChartRect(this.svg, a, f.padding), g = Math.min(e.width() / 2, e.height() / 2), i = a.total || j.normalized.series.reduce(function (a, b) { return a + b }, 0); var m = b.quantity(a.donutWidth); "%" === m.unit && (m.value *= g / 100), g -= a.donut && !a.donutSolid ? m.value / 2 : 0, h = "outside" === a.labelPosition || a.donut && !a.donutSolid ? g : "center" === a.labelPosition ? 0 : a.donutSolid ? g - m.value / 2 : g / 2, h += a.labelOffset; var n = { x: e.x1 + e.width() / 2, y: e.y2 + e.height() / 2 }, o = 1 === j.raw.series.filter(function (a) { return a.hasOwnProperty("value") ? 0 !== a.value : 0 !== a }).length; j.raw.series.forEach(function (a, b) { k[b] = this.svg.elem("g", null, null) }.bind(this)), a.showLabel && (d = this.svg.elem("g", null, null)), j.raw.series.forEach(function (e, f) { if (0 !== j.normalized.series[f] || !a.ignoreEmptyValues) { k[f].attr({ "ct:series-name": e.name }), k[f].addClass([a.classNames.series, e.className || a.classNames.series + "-" + b.alphaNumerate(f)].join(" ")); var p = i > 0 ? l + j.normalized.series[f] / i * 360 : 0, q = Math.max(0, l - (0 === f || o ? 0 : .2)); p - q >= 359.99 && (p = q + 359.99); var r, s, t, u = b.polarToCartesian(n.x, n.y, g, q), v = b.polarToCartesian(n.x, n.y, g, p), w = new b.Svg.Path(!a.donut || a.donutSolid).move(v.x, v.y).arc(g, g, 0, p - l > 180, 0, u.x, u.y); a.donut ? a.donutSolid && (t = g - m.value, r = b.polarToCartesian(n.x, n.y, t, l - (0 === f || o ? 0 : .2)), s = b.polarToCartesian(n.x, n.y, t, p), w.line(r.x, r.y), w.arc(t, t, 0, p - l > 180, 1, s.x, s.y)) : w.line(n.x, n.y); var x = a.classNames.slicePie; a.donut && (x = a.classNames.sliceDonut, a.donutSolid && (x = a.classNames.sliceDonutSolid)); var y = k[f].elem("path", { d: w.stringify() }, x); if (y.attr({ "ct:value": j.normalized.series[f], "ct:meta": b.serialize(e.meta) }), a.donut && !a.donutSolid && (y._node.style.strokeWidth = m.value + "px"), this.eventEmitter.emit("draw", { type: "slice", value: j.normalized.series[f], totalDataSum: i, index: f, meta: e.meta, series: e, group: k[f], element: y, path: w.clone(), center: n, radius: g, startAngle: l, endAngle: p }), a.showLabel) { var z; z = 1 === j.raw.series.length ? { x: n.x, y: n.y } : b.polarToCartesian(n.x, n.y, h, l + (p - l) / 2); var A; A = j.normalized.labels && !b.isFalseyButZero(j.normalized.labels[f]) ? j.normalized.labels[f] : j.normalized.series[f]; var B = a.labelInterpolationFnc(A, f); if (B || 0 === B) { var C = d.elem("text", { dx: z.x, dy: z.y, "text-anchor": c(n, z, a.labelDirection) }, a.classNames.label).text("" + B); this.eventEmitter.emit("draw", { type: "label", index: f, group: d, element: C, text: "" + B, x: z.x, y: z.y }) } } l = p } }.bind(this)), this.eventEmitter.emit("created", { chartRect: e, svg: this.svg, options: a }) } function e(a, c, d, e) { b.Pie["super"].constructor.call(this, a, c, f, b.extend({}, f, d), e) } var f = (a.window, a.document, { width: void 0, height: void 0, chartPadding: 5, classNames: { chartPie: "ct-chart-pie", chartDonut: "ct-chart-donut", series: "ct-series", slicePie: "ct-slice-pie", sliceDonut: "ct-slice-donut", sliceDonutSolid: "ct-slice-donut-solid", label: "ct-label" }, startAngle: 0, total: void 0, donut: !1, donutSolid: !1, donutWidth: 60, showLabel: !0, labelOffset: 0, labelPosition: "inside", labelInterpolationFnc: b.noop, labelDirection: "neutral", reverseData: !1, ignoreEmptyValues: !1 }); b.Pie = b.Base.extend({ constructor: e, createChart: d, determineAnchorPosition: c }) }(this || global, a), a +}); +//# sourceMappingURL=chartist.min.js.map + +var i, l, selectedLine = null; + +/* Navigate to hash without browser history entry */ +var navigateToHash = function () { + if (window.history !== undefined && window.history.replaceState !== undefined) { + window.history.replaceState(undefined, undefined, this.getAttribute("href")); + } +}; + +var hashLinks = document.getElementsByClassName('navigatetohash'); +for (i = 0, l = hashLinks.length; i < l; i++) { + hashLinks[i].addEventListener('click', navigateToHash); +} + +/* Switch test method */ +var switchTestMethod = function () { + var method = this.getAttribute("value"); + console.log("Selected test method: " + method); + + var lines, i, l, coverageData, lineAnalysis, cells; + + lines = document.querySelectorAll('.lineAnalysis tr'); + + for (i = 1, l = lines.length; i < l; i++) { + coverageData = JSON.parse(lines[i].getAttribute('data-coverage').replace(/'/g, '"')); + lineAnalysis = coverageData[method]; + cells = lines[i].querySelectorAll('td'); + if (lineAnalysis === undefined) { + lineAnalysis = coverageData.AllTestMethods; + if (lineAnalysis.LVS !== 'gray') { + cells[0].setAttribute('class', 'red'); + cells[1].innerText = cells[1].textContent = '0'; + cells[4].setAttribute('class', 'lightred'); + } + } else { + cells[0].setAttribute('class', lineAnalysis.LVS); + cells[1].innerText = cells[1].textContent = lineAnalysis.VC; + cells[4].setAttribute('class', 'light' + lineAnalysis.LVS); + } + } +}; + +var testMethods = document.getElementsByClassName('switchtestmethod'); +for (i = 0, l = testMethods.length; i < l; i++) { + testMethods[i].addEventListener('change', switchTestMethod); +} + +/* Highlight test method by line */ +var toggleLine = function () { + if (selectedLine === this) { + selectedLine = null; + } else { + selectedLine = null; + unhighlightTestMethods(); + highlightTestMethods.call(this); + selectedLine = this; + } + +}; +var highlightTestMethods = function () { + if (selectedLine !== null) { + return; + } + + var lineAnalysis; + var coverageData = JSON.parse(this.getAttribute('data-coverage').replace(/'/g, '"')); + var testMethods = document.getElementsByClassName('testmethod'); + + for (i = 0, l = testMethods.length; i < l; i++) { + lineAnalysis = coverageData[testMethods[i].id]; + if (lineAnalysis === undefined) { + testMethods[i].className = testMethods[i].className.replace(/\s*light.+/g, ""); + } else { + testMethods[i].className += ' light' + lineAnalysis.LVS; + } + } +}; +var unhighlightTestMethods = function () { + if (selectedLine !== null) { + return; + } + + var testMethods = document.getElementsByClassName('testmethod'); + for (i = 0, l = testMethods.length; i < l; i++) { + testMethods[i].className = testMethods[i].className.replace(/\s*light.+/g, ""); + } +}; +var coverableLines = document.getElementsByClassName('coverableline'); +for (i = 0, l = coverableLines.length; i < l; i++) { + coverableLines[i].addEventListener('click', toggleLine); + coverableLines[i].addEventListener('mouseenter', highlightTestMethods); + coverableLines[i].addEventListener('mouseleave', unhighlightTestMethods); +} + +/* History charts */ +var renderChart = function (chart) { + // Remove current children (e.g. PNG placeholder) + while (chart.firstChild) { + chart.firstChild.remove(); + } + + var chartData = window[chart.getAttribute('data-data')]; + var options = { + axisY: { + type: undefined, + onlyInteger: true + }, + lineSmooth: false, + low: 0, + high: 100, + scaleMinSpace: 20, + onlyInteger: true, + fullWidth: true + }; + var lineChart = new Chartist.Line(chart, { + labels: [], + series: chartData.series + }, options); + + /* Zoom */ + var zoomButtonDiv = document.createElement("div"); + zoomButtonDiv.className = "toggleZoom"; + var zoomButtonLink = document.createElement("a"); + zoomButtonLink.setAttribute("href", ""); + var zoomButtonText = document.createElement("i"); + zoomButtonText.className = "icon-search-plus"; + + zoomButtonLink.appendChild(zoomButtonText); + zoomButtonDiv.appendChild(zoomButtonLink); + + chart.appendChild(zoomButtonDiv); + + zoomButtonDiv.addEventListener('click', function (event) { + event.preventDefault(); + + if (options.axisY.type === undefined) { + options.axisY.type = Chartist.AutoScaleAxis; + zoomButtonText.className = "icon-search-minus"; + } else { + options.axisY.type = undefined; + zoomButtonText.className = "icon-search-plus"; + } + + lineChart.update(null, options); + }); + + var tooltip = document.createElement("div"); + tooltip.className = "tooltip"; + + chart.appendChild(tooltip); + + /* Tooltips */ + var showToolTip = function () { + var index = this.getAttribute('ct:meta'); + + tooltip.innerHTML = chartData.tooltips[index]; + tooltip.style.display = 'block'; + }; + + var moveToolTip = function (event) { + var box = chart.getBoundingClientRect(); + var left = event.pageX - box.left - window.pageXOffset; + var top = event.pageY - box.top - window.pageYOffset; + + left = left + 20; + top = top - tooltip.offsetHeight / 2; + + if (left + tooltip.offsetWidth > box.width) { + left -= tooltip.offsetWidth + 40; + } + + if (top < 0) { + top = 0; + } + + if (top + tooltip.offsetHeight > box.height) { + top = box.height - tooltip.offsetHeight; + } + + tooltip.style.left = left + 'px'; + tooltip.style.top = top + 'px'; + }; + + var hideToolTip = function () { + tooltip.style.display = 'none'; + }; + chart.addEventListener('mousemove', moveToolTip); + + lineChart.on('created', function () { + var chartPoints = chart.getElementsByClassName('ct-point'); + for (i = 0, l = chartPoints.length; i < l; i++) { + chartPoints[i].addEventListener('mousemove', showToolTip); + chartPoints[i].addEventListener('mouseout', hideToolTip); + } + }); +}; + +var charts = document.getElementsByClassName('historychart'); +for (i = 0, l = charts.length; i < l; i++) { + renderChart(charts[i]); +} + +var assemblies = [ + { + "name": "Sample", + "classes": [ + { "name": "Sample.PartialClass", "rp": "file:///Sample_PartialClass.html", "cl": 12, "ucl": 10, "cal": 22, "tl": 53, "ct": "LineCoverage", "cbm": "-", "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": "18.01.2023 - 20:03:47", "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, "ct": "LineCoverage", "cbm": "-", "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": "18.01.2023 - 20:03:47", "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, "ct": "LineCoverage", "cbm": "-", "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": "18.01.2023 - 20:03:47", "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, "ct": "LineCoverage", "cbm": "-", "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": "18.01.2023 - 20:03:47", "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 } }, + ]}, +]; + +var metrics = [{ "name": "Cyclomatic complexity", "abbreviation": "cc", "explanationUrl": "https://en.wikipedia.org/wiki/Cyclomatic_complexity" }, { "name": "NPath complexity", "abbreviation": "npth", "explanationUrl": "https://modess.io/npath-complexity-cyclomatic-complexity-explained" }, { "name": "Sequence coverage", "abbreviation": "seq", "explanationUrl": "https://en.wikipedia.org/wiki/Code_coverage" }, { "name": "Branch coverage", "abbreviation": "bcov", "explanationUrl": "https://en.wikipedia.org/wiki/Code_coverage" }, { "name": "Crap Score", "abbreviation": "crp", "explanationUrl": "https://googletesting.blogspot.de/2011/02/this-code-is-crap.html" }]; + +var historicCoverageExecutionTimes = ["09.02.2022 - 20:50:35", "08.02.2022 - 20:50:35", "07.02.2022 - 20:50:35", "06.02.2022 - 20:50:35", "05.02.2022 - 20:50:35", "04.02.2022 - 20:50:35", "03.02.2022 - 20:50:35", "02.02.2022 - 20:50:35", "01.02.2022 - 20:50:35"]; + +var riskHotspotMetrics = [ +]; + +var riskHotspots = [ +]; + +var branchCoverageAvailable = true; +var methodCoverageAvailable = true; + + +var translations = { +'top': 'Top:', +'all': 'All', +'assembly': 'Assembly', +'class': 'Class', +'method': 'Method', +'lineCoverage': 'LineCoverage', +'noGrouping': 'No grouping', +'byAssembly': 'By assembly', +'byNamespace': 'By namespace, Level:', +'all': 'All', +'collapseAll': 'Collapse all', +'expandAll': 'Expand all', +'grouping': 'Grouping:', +'filter': 'Filter:', +'name': 'Name', +'covered': 'Covered', +'uncovered': 'Uncovered', +'coverable': 'Coverable', +'total': 'Total', +'coverage': 'Line coverage', +'branchCoverage': 'Branch coverage', +'methodCoverage': 'Method coverage', +'percentage': 'Percentage', +'history': 'Coverage history', +'compareHistory': 'Compare with:', +'date': 'Date', +'allChanges': 'All changes', +'selectCoverageTypes': 'Select coverage types', +'selectCoverageTypesAndMetrics': 'Select coverage types & metrics', +'coverageTypes': 'Coverage types', +'metrics': 'Metrics', +'methodCoverageProVersion': 'Feature is only available for sponsors', +'lineCoverageIncreaseOnly': 'Line coverage: Increase only', +'lineCoverageDecreaseOnly': 'Line coverage: Decrease only', +'branchCoverageIncreaseOnly': 'Branch coverage: Increase only', +'branchCoverageDecreaseOnly': 'Branch coverage: Decrease only', +'methodCoverageIncreaseOnly': 'Method coverage: Increase only', +'methodCoverageDecreaseOnly': 'Method coverage: Decrease only' +}; + + +(()=>{"use strict";var e,_={},p={};function n(e){var a=p[e];if(void 0!==a)return a.exports;var r=p[e]={exports:{}};return _[e](r,r.exports,n),r.exports}n.m=_,e=[],n.O=(a,r,u,l)=>{if(!r){var o=1/0;for(f=0;f=l)&&Object.keys(n.O).every(h=>n.O[h](r[t]))?r.splice(t--,1):(v=!1,l0&&e[f-1][2]>l;f--)e[f]=e[f-1];e[f]=[r,u,l]},n.n=e=>{var a=e&&e.__esModule?()=>e.default:()=>e;return n.d(a,{a}),a},n.d=(e,a)=>{for(var r in a)n.o(a,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:a[r]})},n.o=(e,a)=>Object.prototype.hasOwnProperty.call(e,a),(()=>{var e={666:0};n.O.j=u=>0===e[u];var a=(u,l)=>{var t,c,[f,o,v]=l,s=0;if(f.some(d=>0!==e[d])){for(t in o)n.o(o,t)&&(n.m[t]=o[t]);if(v)var b=v(n)}for(u&&u(l);s{he(583)},583:()=>{!function(e){const n=e.performance;function i(I){n&&n.mark&&n.mark(I)}function r(I,p){n&&n.measure&&n.measure(I,p)}i("Zone");const c=e.__Zone_symbol_prefix||"__zone_symbol__";function u(I){return c+I}const f=!0===e[u("forceDuplicateZoneCheck")];if(e.Zone){if(f||"function"!=typeof e.Zone.__symbol__)throw new Error("Zone already loaded.");return e.Zone}let _=(()=>{class I{constructor(t,o){this._parent=t,this._name=o?o.name||"unnamed":"",this._properties=o&&o.properties||{},this._zoneDelegate=new T(this,this._parent&&this._parent._zoneDelegate,o)}static assertZonePatched(){if(e.Promise!==J.ZoneAwarePromise)throw new Error("Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)")}static get root(){let t=I.current;for(;t.parent;)t=t.parent;return t}static get current(){return G.zone}static get currentTask(){return te}static __load_patch(t,o,g=!1){if(J.hasOwnProperty(t)){if(!g&&f)throw Error("Already loaded patch: "+t)}else if(!e["__Zone_disable_"+t]){const P="Zone:"+t;i(P),J[t]=o(e,I,le),r(P,P)}}get parent(){return this._parent}get name(){return this._name}get(t){const o=this.getZoneWith(t);if(o)return o._properties[t]}getZoneWith(t){let o=this;for(;o;){if(o._properties.hasOwnProperty(t))return o;o=o._parent}return null}fork(t){if(!t)throw new Error("ZoneSpec required!");return this._zoneDelegate.fork(this,t)}wrap(t,o){if("function"!=typeof t)throw new Error("Expecting function got: "+t);const g=this._zoneDelegate.intercept(this,t,o),P=this;return function(){return P.runGuarded(g,this,arguments,o)}}run(t,o,g,P){G={parent:G,zone:this};try{return this._zoneDelegate.invoke(this,t,o,g,P)}finally{G=G.parent}}runGuarded(t,o=null,g,P){G={parent:G,zone:this};try{try{return this._zoneDelegate.invoke(this,t,o,g,P)}catch(K){if(this._zoneDelegate.handleError(this,K))throw K}}finally{G=G.parent}}runTask(t,o,g){if(t.zone!=this)throw new Error("A task can only be run in the zone of creation! (Creation: "+(t.zone||z).name+"; Execution: "+this.name+")");if(t.state===j&&(t.type===R||t.type===M))return;const P=t.state!=X;P&&t._transitionTo(X,O),t.runCount++;const K=te;te=t,G={parent:G,zone:this};try{t.type==M&&t.data&&!t.data.isPeriodic&&(t.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,t,o,g)}catch(l){if(this._zoneDelegate.handleError(this,l))throw l}}finally{t.state!==j&&t.state!==Y&&(t.type==R||t.data&&t.data.isPeriodic?P&&t._transitionTo(O,X):(t.runCount=0,this._updateTaskCount(t,-1),P&&t._transitionTo(j,X,j))),G=G.parent,te=K}}scheduleTask(t){if(t.zone&&t.zone!==this){let g=this;for(;g;){if(g===t.zone)throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${t.zone.name}`);g=g.parent}}t._transitionTo(q,j);const o=[];t._zoneDelegates=o,t._zone=this;try{t=this._zoneDelegate.scheduleTask(this,t)}catch(g){throw t._transitionTo(Y,q,j),this._zoneDelegate.handleError(this,g),g}return t._zoneDelegates===o&&this._updateTaskCount(t,1),t.state==q&&t._transitionTo(O,q),t}scheduleMicroTask(t,o,g,P){return this.scheduleTask(new m(v,t,o,g,P,void 0))}scheduleMacroTask(t,o,g,P,K){return this.scheduleTask(new m(M,t,o,g,P,K))}scheduleEventTask(t,o,g,P,K){return this.scheduleTask(new m(R,t,o,g,P,K))}cancelTask(t){if(t.zone!=this)throw new Error("A task can only be cancelled in the zone of creation! (Creation: "+(t.zone||z).name+"; Execution: "+this.name+")");t._transitionTo(A,O,X);try{this._zoneDelegate.cancelTask(this,t)}catch(o){throw t._transitionTo(Y,A),this._zoneDelegate.handleError(this,o),o}return this._updateTaskCount(t,-1),t._transitionTo(j,A),t.runCount=0,t}_updateTaskCount(t,o){const g=t._zoneDelegates;-1==o&&(t._zoneDelegates=null);for(let P=0;PI.hasTask(t,o),onScheduleTask:(I,p,t,o)=>I.scheduleTask(t,o),onInvokeTask:(I,p,t,o,g,P)=>I.invokeTask(t,o,g,P),onCancelTask:(I,p,t,o)=>I.cancelTask(t,o)};class T{constructor(p,t,o){this._taskCounts={microTask:0,macroTask:0,eventTask:0},this.zone=p,this._parentDelegate=t,this._forkZS=o&&(o&&o.onFork?o:t._forkZS),this._forkDlgt=o&&(o.onFork?t:t._forkDlgt),this._forkCurrZone=o&&(o.onFork?this.zone:t._forkCurrZone),this._interceptZS=o&&(o.onIntercept?o:t._interceptZS),this._interceptDlgt=o&&(o.onIntercept?t:t._interceptDlgt),this._interceptCurrZone=o&&(o.onIntercept?this.zone:t._interceptCurrZone),this._invokeZS=o&&(o.onInvoke?o:t._invokeZS),this._invokeDlgt=o&&(o.onInvoke?t:t._invokeDlgt),this._invokeCurrZone=o&&(o.onInvoke?this.zone:t._invokeCurrZone),this._handleErrorZS=o&&(o.onHandleError?o:t._handleErrorZS),this._handleErrorDlgt=o&&(o.onHandleError?t:t._handleErrorDlgt),this._handleErrorCurrZone=o&&(o.onHandleError?this.zone:t._handleErrorCurrZone),this._scheduleTaskZS=o&&(o.onScheduleTask?o:t._scheduleTaskZS),this._scheduleTaskDlgt=o&&(o.onScheduleTask?t:t._scheduleTaskDlgt),this._scheduleTaskCurrZone=o&&(o.onScheduleTask?this.zone:t._scheduleTaskCurrZone),this._invokeTaskZS=o&&(o.onInvokeTask?o:t._invokeTaskZS),this._invokeTaskDlgt=o&&(o.onInvokeTask?t:t._invokeTaskDlgt),this._invokeTaskCurrZone=o&&(o.onInvokeTask?this.zone:t._invokeTaskCurrZone),this._cancelTaskZS=o&&(o.onCancelTask?o:t._cancelTaskZS),this._cancelTaskDlgt=o&&(o.onCancelTask?t:t._cancelTaskDlgt),this._cancelTaskCurrZone=o&&(o.onCancelTask?this.zone:t._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;const g=o&&o.onHasTask;(g||t&&t._hasTaskZS)&&(this._hasTaskZS=g?o:y,this._hasTaskDlgt=t,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=p,o.onScheduleTask||(this._scheduleTaskZS=y,this._scheduleTaskDlgt=t,this._scheduleTaskCurrZone=this.zone),o.onInvokeTask||(this._invokeTaskZS=y,this._invokeTaskDlgt=t,this._invokeTaskCurrZone=this.zone),o.onCancelTask||(this._cancelTaskZS=y,this._cancelTaskDlgt=t,this._cancelTaskCurrZone=this.zone))}fork(p,t){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,p,t):new _(p,t)}intercept(p,t,o){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,p,t,o):t}invoke(p,t,o,g,P){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,p,t,o,g,P):t.apply(o,g)}handleError(p,t){return!this._handleErrorZS||this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,p,t)}scheduleTask(p,t){let o=t;if(this._scheduleTaskZS)this._hasTaskZS&&o._zoneDelegates.push(this._hasTaskDlgtOwner),o=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,p,t),o||(o=t);else if(t.scheduleFn)t.scheduleFn(t);else{if(t.type!=v)throw new Error("Task is missing scheduleFn.");d(t)}return o}invokeTask(p,t,o,g){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,p,t,o,g):t.callback.apply(o,g)}cancelTask(p,t){let o;if(this._cancelTaskZS)o=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,p,t);else{if(!t.cancelFn)throw Error("Task is not cancelable");o=t.cancelFn(t)}return o}hasTask(p,t){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,p,t)}catch(o){this.handleError(p,o)}}_updateTaskCount(p,t){const o=this._taskCounts,g=o[p],P=o[p]=g+t;if(P<0)throw new Error("More tasks executed then were scheduled.");0!=g&&0!=P||this.hasTask(this.zone,{microTask:o.microTask>0,macroTask:o.macroTask>0,eventTask:o.eventTask>0,change:p})}}class m{constructor(p,t,o,g,P,K){if(this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state="notScheduled",this.type=p,this.source=t,this.data=g,this.scheduleFn=P,this.cancelFn=K,!o)throw new Error("callback is not defined");this.callback=o;const l=this;this.invoke=p===R&&g&&g.useG?m.invokeTask:function(){return m.invokeTask.call(e,l,this,arguments)}}static invokeTask(p,t,o){p||(p=this),re++;try{return p.runCount++,p.zone.runTask(p,t,o)}finally{1==re&&L(),re--}}get zone(){return this._zone}get state(){return this._state}cancelScheduleRequest(){this._transitionTo(j,q)}_transitionTo(p,t,o){if(this._state!==t&&this._state!==o)throw new Error(`${this.type} '${this.source}': can not transition to '${p}', expecting state '${t}'${o?" or '"+o+"'":""}, was '${this._state}'.`);this._state=p,p==j&&(this._zoneDelegates=null)}toString(){return this.data&&typeof this.data.handleId<"u"?this.data.handleId.toString():Object.prototype.toString.call(this)}toJSON(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}}}const S=u("setTimeout"),D=u("Promise"),Z=u("then");let E,B=[],V=!1;function d(I){if(0===re&&0===B.length)if(E||e[D]&&(E=e[D].resolve(0)),E){let p=E[Z];p||(p=E.then),p.call(E,L)}else e[S](L,0);I&&B.push(I)}function L(){if(!V){for(V=!0;B.length;){const I=B;B=[];for(let p=0;pG,onUnhandledError:F,microtaskDrainDone:F,scheduleMicroTask:d,showUncaughtError:()=>!_[u("ignoreConsoleErrorUncaughtError")],patchEventTarget:()=>[],patchOnProperties:F,patchMethod:()=>F,bindArguments:()=>[],patchThen:()=>F,patchMacroTask:()=>F,patchEventPrototype:()=>F,isIEOrEdge:()=>!1,getGlobalObjects:()=>{},ObjectDefineProperty:()=>F,ObjectGetOwnPropertyDescriptor:()=>{},ObjectCreate:()=>{},ArraySlice:()=>[],patchClass:()=>F,wrapWithCurrentZone:()=>F,filterProperties:()=>[],attachOriginToPatched:()=>F,_redefineProperty:()=>F,patchCallbacks:()=>F};let G={parent:null,zone:new _(null,null)},te=null,re=0;function F(){}r("Zone","Zone"),e.Zone=_}(typeof window<"u"&&window||typeof self<"u"&&self||global);const ue=Object.getOwnPropertyDescriptor,he=Object.defineProperty,de=Object.getPrototypeOf,Be=Object.create,ut=Array.prototype.slice,Se="addEventListener",Oe="removeEventListener",Ze=Zone.__symbol__(Se),Ie=Zone.__symbol__(Oe),se="true",ie="false",ke=Zone.__symbol__("");function Le(e,n){return Zone.current.wrap(e,n)}function Me(e,n,i,r,c){return Zone.current.scheduleMacroTask(e,n,i,r,c)}const x=Zone.__symbol__,Pe=typeof window<"u",pe=Pe?window:void 0,$=Pe&&pe||"object"==typeof self&&self||global,ht=[null];function Ae(e,n){for(let i=e.length-1;i>=0;i--)"function"==typeof e[i]&&(e[i]=Le(e[i],n+"_"+i));return e}function Fe(e){return!e||!1!==e.writable&&!("function"==typeof e.get&&typeof e.set>"u")}const Ue=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope,Re=!("nw"in $)&&typeof $.process<"u"&&"[object process]"==={}.toString.call($.process),je=!Re&&!Ue&&!(!Pe||!pe.HTMLElement),We=typeof $.process<"u"&&"[object process]"==={}.toString.call($.process)&&!Ue&&!(!Pe||!pe.HTMLElement),Ce={},qe=function(e){if(!(e=e||$.event))return;let n=Ce[e.type];n||(n=Ce[e.type]=x("ON_PROPERTY"+e.type));const i=this||e.target||$,r=i[n];let c;return je&&i===pe&&"error"===e.type?(c=r&&r.call(this,e.message,e.filename,e.lineno,e.colno,e.error),!0===c&&e.preventDefault()):(c=r&&r.apply(this,arguments),null!=c&&!c&&e.preventDefault()),c};function Xe(e,n,i){let r=ue(e,n);if(!r&&i&&ue(i,n)&&(r={enumerable:!0,configurable:!0}),!r||!r.configurable)return;const c=x("on"+n+"patched");if(e.hasOwnProperty(c)&&e[c])return;delete r.writable,delete r.value;const u=r.get,f=r.set,_=n.substr(2);let y=Ce[_];y||(y=Ce[_]=x("ON_PROPERTY"+_)),r.set=function(T){let m=this;!m&&e===$&&(m=$),m&&(m[y]&&m.removeEventListener(_,qe),f&&f.apply(m,ht),"function"==typeof T?(m[y]=T,m.addEventListener(_,qe,!1)):m[y]=null)},r.get=function(){let T=this;if(!T&&e===$&&(T=$),!T)return null;const m=T[y];if(m)return m;if(u){let S=u&&u.call(this);if(S)return r.set.call(this,S),"function"==typeof T.removeAttribute&&T.removeAttribute(n),S}return null},he(e,n,r),e[c]=!0}function Ye(e,n,i){if(n)for(let r=0;rfunction(f,_){const y=i(f,_);return y.cbIdx>=0&&"function"==typeof _[y.cbIdx]?Me(y.name,_[y.cbIdx],y,c):u.apply(f,_)})}function ae(e,n){e[x("OriginalDelegate")]=n}let $e=!1,He=!1;function mt(){if($e)return He;$e=!0;try{const e=pe.navigator.userAgent;(-1!==e.indexOf("MSIE ")||-1!==e.indexOf("Trident/")||-1!==e.indexOf("Edge/"))&&(He=!0)}catch{}return He}Zone.__load_patch("ZoneAwarePromise",(e,n,i)=>{const r=Object.getOwnPropertyDescriptor,c=Object.defineProperty,f=i.symbol,_=[],y=!0===e[f("DISABLE_WRAPPING_UNCAUGHT_PROMISE_REJECTION")],T=f("Promise"),m=f("then");i.onUnhandledError=l=>{if(i.showUncaughtError()){const s=l&&l.rejection;s?console.error("Unhandled Promise rejection:",s instanceof Error?s.message:s,"; Zone:",l.zone.name,"; Task:",l.task&&l.task.source,"; Value:",s,s instanceof Error?s.stack:void 0):console.error(l)}},i.microtaskDrainDone=()=>{for(;_.length;){const l=_.shift();try{l.zone.runGuarded(()=>{throw l.throwOriginal?l.rejection:l})}catch(s){Z(s)}}};const D=f("unhandledPromiseRejectionHandler");function Z(l){i.onUnhandledError(l);try{const s=n[D];"function"==typeof s&&s.call(this,l)}catch{}}function B(l){return l&&l.then}function V(l){return l}function E(l){return t.reject(l)}const d=f("state"),L=f("value"),z=f("finally"),j=f("parentPromiseValue"),q=f("parentPromiseState"),X=null,A=!0,Y=!1;function M(l,s){return a=>{try{G(l,s,a)}catch(h){G(l,!1,h)}}}const le=f("currentTaskTrace");function G(l,s,a){const h=function(){let l=!1;return function(a){return function(){l||(l=!0,a.apply(null,arguments))}}}();if(l===a)throw new TypeError("Promise resolved with itself");if(l[d]===X){let w=null;try{("object"==typeof a||"function"==typeof a)&&(w=a&&a.then)}catch(C){return h(()=>{G(l,!1,C)})(),l}if(s!==Y&&a instanceof t&&a.hasOwnProperty(d)&&a.hasOwnProperty(L)&&a[d]!==X)re(a),G(l,a[d],a[L]);else if(s!==Y&&"function"==typeof w)try{w.call(a,h(M(l,s)),h(M(l,!1)))}catch(C){h(()=>{G(l,!1,C)})()}else{l[d]=s;const C=l[L];if(l[L]=a,l[z]===z&&s===A&&(l[d]=l[q],l[L]=l[j]),s===Y&&a instanceof Error){const k=n.currentTask&&n.currentTask.data&&n.currentTask.data.__creationTrace__;k&&c(a,le,{configurable:!0,enumerable:!1,writable:!0,value:k})}for(let k=0;k{try{const b=l[L],N=!!a&&z===a[z];N&&(a[j]=b,a[q]=C);const H=s.run(k,void 0,N&&k!==E&&k!==V?[]:[b]);G(a,!0,H)}catch(b){G(a,!1,b)}},a)}const p=function(){};class t{static toString(){return"function ZoneAwarePromise() { [native code] }"}static resolve(s){return G(new this(null),A,s)}static reject(s){return G(new this(null),Y,s)}static race(s){let a,h,w=new this((b,N)=>{a=b,h=N});function C(b){a(b)}function k(b){h(b)}for(let b of s)B(b)||(b=this.resolve(b)),b.then(C,k);return w}static all(s){return t.allWithCallback(s)}static allSettled(s){return(this&&this.prototype instanceof t?this:t).allWithCallback(s,{thenCallback:h=>({status:"fulfilled",value:h}),errorCallback:h=>({status:"rejected",reason:h})})}static allWithCallback(s,a){let h,w,C=new this((H,U)=>{h=H,w=U}),k=2,b=0;const N=[];for(let H of s){B(H)||(H=this.resolve(H));const U=b;try{H.then(Q=>{N[U]=a?a.thenCallback(Q):Q,k--,0===k&&h(N)},Q=>{a?(N[U]=a.errorCallback(Q),k--,0===k&&h(N)):w(Q)})}catch(Q){w(Q)}k++,b++}return k-=2,0===k&&h(N),C}constructor(s){const a=this;if(!(a instanceof t))throw new Error("Must be an instanceof Promise.");a[d]=X,a[L]=[];try{s&&s(M(a,A),M(a,Y))}catch(h){G(a,!1,h)}}get[Symbol.toStringTag](){return"Promise"}get[Symbol.species](){return t}then(s,a){let h=this.constructor[Symbol.species];(!h||"function"!=typeof h)&&(h=this.constructor||t);const w=new h(p),C=n.current;return this[d]==X?this[L].push(C,w,s,a):F(this,C,w,s,a),w}catch(s){return this.then(null,s)}finally(s){let a=this.constructor[Symbol.species];(!a||"function"!=typeof a)&&(a=t);const h=new a(p);h[z]=z;const w=n.current;return this[d]==X?this[L].push(w,h,s,s):F(this,w,h,s,s),h}}t.resolve=t.resolve,t.reject=t.reject,t.race=t.race,t.all=t.all;const o=e[T]=e.Promise;e.Promise=t;const g=f("thenPatched");function P(l){const s=l.prototype,a=r(s,"then");if(a&&(!1===a.writable||!a.configurable))return;const h=s.then;s[m]=h,l.prototype.then=function(w,C){return new t((b,N)=>{h.call(this,b,N)}).then(w,C)},l[g]=!0}return i.patchThen=P,o&&(P(o),ce(e,"fetch",l=>function K(l){return function(s,a){let h=l.apply(s,a);if(h instanceof t)return h;let w=h.constructor;return w[g]||P(w),h}}(l))),Promise[n.__symbol__("uncaughtPromiseErrors")]=_,t}),Zone.__load_patch("toString",e=>{const n=Function.prototype.toString,i=x("OriginalDelegate"),r=x("Promise"),c=x("Error"),u=function(){if("function"==typeof this){const T=this[i];if(T)return"function"==typeof T?n.call(T):Object.prototype.toString.call(T);if(this===Promise){const m=e[r];if(m)return n.call(m)}if(this===Error){const m=e[c];if(m)return n.call(m)}}return n.call(this)};u[i]=n,Function.prototype.toString=u;const f=Object.prototype.toString;Object.prototype.toString=function(){return"function"==typeof Promise&&this instanceof Promise?"[object Promise]":f.call(this)}});let me=!1;if(typeof window<"u")try{const e=Object.defineProperty({},"passive",{get:function(){me=!0}});window.addEventListener("test",e,e),window.removeEventListener("test",e,e)}catch{me=!1}const Et={useG:!0},ee={},Ke={},Je=new RegExp("^"+ke+"(\\w+)(true|false)$"),xe=x("propagationStopped");function Qe(e,n){const i=(n?n(e):e)+ie,r=(n?n(e):e)+se,c=ke+i,u=ke+r;ee[e]={},ee[e][ie]=c,ee[e][se]=u}function Tt(e,n,i){const r=i&&i.add||Se,c=i&&i.rm||Oe,u=i&&i.listeners||"eventListeners",f=i&&i.rmAll||"removeAllListeners",_=x(r),y="."+r+":",T="prependListener",m="."+T+":",S=function(E,d,L){if(E.isRemoved)return;const z=E.callback;"object"==typeof z&&z.handleEvent&&(E.callback=q=>z.handleEvent(q),E.originalDelegate=z),E.invoke(E,d,[L]);const j=E.options;j&&"object"==typeof j&&j.once&&d[c].call(d,L.type,E.originalDelegate?E.originalDelegate:E.callback,j)},D=function(E){if(!(E=E||e.event))return;const d=this||E.target||e,L=d[ee[E.type][ie]];if(L)if(1===L.length)S(L[0],d,E);else{const z=L.slice();for(let j=0;jfunction(c,u){c[xe]=!0,r&&r.apply(c,u)})}function yt(e,n,i,r,c){const u=Zone.__symbol__(r);if(n[u])return;const f=n[u]=n[r];n[r]=function(_,y,T){return y&&y.prototype&&c.forEach(function(m){const S=`${i}.${r}::`+m,D=y.prototype;if(D.hasOwnProperty(m)){const Z=e.ObjectGetOwnPropertyDescriptor(D,m);Z&&Z.value?(Z.value=e.wrapWithCurrentZone(Z.value,S),e._redefineProperty(y.prototype,m,Z)):D[m]&&(D[m]=e.wrapWithCurrentZone(D[m],S))}else D[m]&&(D[m]=e.wrapWithCurrentZone(D[m],S))}),f.call(n,_,y,T)},e.attachOriginToPatched(n[r],f)}const Ve=["absolutedeviceorientation","afterinput","afterprint","appinstalled","beforeinstallprompt","beforeprint","beforeunload","devicelight","devicemotion","deviceorientation","deviceorientationabsolute","deviceproximity","hashchange","languagechange","message","mozbeforepaint","offline","online","paint","pageshow","pagehide","popstate","rejectionhandled","storage","unhandledrejection","unload","userproximity","vrdisplayconnected","vrdisplaydisconnected","vrdisplaypresentchange"],wt=["encrypted","waitingforkey","msneedkey","mozinterruptbegin","mozinterruptend"],tt=["load"],nt=["blur","error","focus","load","resize","scroll","messageerror"],Dt=["bounce","finish","start"],rt=["loadstart","progress","abort","error","load","progress","timeout","loadend","readystatechange"],Ee=["upgradeneeded","complete","abort","success","error","blocked","versionchange","close"],St=["close","error","open","message"],Ot=["error","message"],Te=["abort","animationcancel","animationend","animationiteration","auxclick","beforeinput","blur","cancel","canplay","canplaythrough","change","compositionstart","compositionupdate","compositionend","cuechange","click","close","contextmenu","curechange","dblclick","drag","dragend","dragenter","dragexit","dragleave","dragover","drop","durationchange","emptied","ended","error","focus","focusin","focusout","gotpointercapture","input","invalid","keydown","keypress","keyup","load","loadstart","loadeddata","loadedmetadata","lostpointercapture","mousedown","mouseenter","mouseleave","mousemove","mouseout","mouseover","mouseup","mousewheel","orientationchange","pause","play","playing","pointercancel","pointerdown","pointerenter","pointerleave","pointerlockchange","mozpointerlockchange","webkitpointerlockerchange","pointerlockerror","mozpointerlockerror","webkitpointerlockerror","pointermove","pointout","pointerover","pointerup","progress","ratechange","reset","resize","scroll","seeked","seeking","select","selectionchange","selectstart","show","sort","stalled","submit","suspend","timeupdate","volumechange","touchcancel","touchmove","touchstart","touchend","transitioncancel","transitionend","waiting","wheel"].concat(["webglcontextrestored","webglcontextlost","webglcontextcreationerror"],["autocomplete","autocompleteerror"],["toggle"],["afterscriptexecute","beforescriptexecute","DOMContentLoaded","freeze","fullscreenchange","mozfullscreenchange","webkitfullscreenchange","msfullscreenchange","fullscreenerror","mozfullscreenerror","webkitfullscreenerror","msfullscreenerror","readystatechange","visibilitychange","resume"],Ve,["beforecopy","beforecut","beforepaste","copy","cut","paste","dragstart","loadend","animationstart","search","transitionrun","transitionstart","webkitanimationend","webkitanimationiteration","webkitanimationstart","webkittransitionend"],["activate","afterupdate","ariarequest","beforeactivate","beforedeactivate","beforeeditfocus","beforeupdate","cellchange","controlselect","dataavailable","datasetchanged","datasetcomplete","errorupdate","filterchange","layoutcomplete","losecapture","move","moveend","movestart","propertychange","resizeend","resizestart","rowenter","rowexit","rowsdelete","rowsinserted","command","compassneedscalibration","deactivate","help","mscontentzoom","msmanipulationstatechanged","msgesturechange","msgesturedoubletap","msgestureend","msgesturehold","msgesturestart","msgesturetap","msgotpointercapture","msinertiastart","mslostpointercapture","mspointercancel","mspointerdown","mspointerenter","mspointerhover","mspointerleave","mspointermove","mspointerout","mspointerover","mspointerup","pointerout","mssitemodejumplistitemremoved","msthumbnailclick","stop","storagecommit"]);function ot(e,n,i){if(!i||0===i.length)return n;const r=i.filter(u=>u.target===e);if(!r||0===r.length)return n;const c=r[0].ignoreProperties;return n.filter(u=>-1===c.indexOf(u))}function W(e,n,i,r){e&&Ye(e,ot(e,n,i),r)}Zone.__load_patch("util",(e,n,i)=>{i.patchOnProperties=Ye,i.patchMethod=ce,i.bindArguments=Ae,i.patchMacroTask=_t;const r=n.__symbol__("BLACK_LISTED_EVENTS"),c=n.__symbol__("UNPATCHED_EVENTS");e[c]&&(e[r]=e[c]),e[r]&&(n[r]=n[c]=e[r]),i.patchEventPrototype=gt,i.patchEventTarget=Tt,i.isIEOrEdge=mt,i.ObjectDefineProperty=he,i.ObjectGetOwnPropertyDescriptor=ue,i.ObjectCreate=Be,i.ArraySlice=ut,i.patchClass=ve,i.wrapWithCurrentZone=Le,i.filterProperties=ot,i.attachOriginToPatched=ae,i._redefineProperty=Object.defineProperty,i.patchCallbacks=yt,i.getGlobalObjects=()=>({globalSources:Ke,zoneSymbolEventNames:ee,eventNames:Te,isBrowser:je,isMix:We,isNode:Re,TRUE_STR:se,FALSE_STR:ie,ZONE_SYMBOL_PREFIX:ke,ADD_EVENT_LISTENER_STR:Se,REMOVE_EVENT_LISTENER_STR:Oe})});const Ne=x("zoneTask");function ge(e,n,i,r){let c=null,u=null;i+=r;const f={};function _(T){const m=T.data;return m.args[0]=function(){return T.invoke.apply(this,arguments)},m.handleId=c.apply(e,m.args),T}function y(T){return u.call(e,T.data.handleId)}c=ce(e,n+=r,T=>function(m,S){if("function"==typeof S[0]){const D={isPeriodic:"Interval"===r,delay:"Timeout"===r||"Interval"===r?S[1]||0:void 0,args:S},Z=S[0];S[0]=function(){try{return Z.apply(this,arguments)}finally{D.isPeriodic||("number"==typeof D.handleId?delete f[D.handleId]:D.handleId&&(D.handleId[Ne]=null))}};const B=Me(n,S[0],D,_,y);if(!B)return B;const V=B.data.handleId;return"number"==typeof V?f[V]=B:V&&(V[Ne]=B),V&&V.ref&&V.unref&&"function"==typeof V.ref&&"function"==typeof V.unref&&(B.ref=V.ref.bind(V),B.unref=V.unref.bind(V)),"number"==typeof V||V?V:B}return T.apply(e,S)}),u=ce(e,i,T=>function(m,S){const D=S[0];let Z;"number"==typeof D?Z=f[D]:(Z=D&&D[Ne],Z||(Z=D)),Z&&"string"==typeof Z.type?"notScheduled"!==Z.state&&(Z.cancelFn&&Z.data.isPeriodic||0===Z.runCount)&&("number"==typeof D?delete f[D]:D&&(D[Ne]=null),Z.zone.cancelTask(Z)):T.apply(e,S)})}Zone.__load_patch("legacy",e=>{const n=e[Zone.__symbol__("legacyPatch")];n&&n()}),Zone.__load_patch("queueMicrotask",(e,n,i)=>{i.patchMethod(e,"queueMicrotask",r=>function(c,u){n.current.scheduleMicroTask("queueMicrotask",u[0])})}),Zone.__load_patch("timers",e=>{const n="set",i="clear";ge(e,n,i,"Timeout"),ge(e,n,i,"Interval"),ge(e,n,i,"Immediate")}),Zone.__load_patch("requestAnimationFrame",e=>{ge(e,"request","cancel","AnimationFrame"),ge(e,"mozRequest","mozCancel","AnimationFrame"),ge(e,"webkitRequest","webkitCancel","AnimationFrame")}),Zone.__load_patch("blocking",(e,n)=>{const i=["alert","prompt","confirm"];for(let r=0;rfunction(y,T){return n.current.run(u,e,T,_)})}),Zone.__load_patch("EventTarget",(e,n,i)=>{(function Mt(e,n){n.patchEventPrototype(e,n)})(e,i),function Lt(e,n){if(Zone[n.symbol("patchEventTarget")])return;const{eventNames:i,zoneSymbolEventNames:r,TRUE_STR:c,FALSE_STR:u,ZONE_SYMBOL_PREFIX:f}=n.getGlobalObjects();for(let y=0;y{ve("MutationObserver"),ve("WebKitMutationObserver")}),Zone.__load_patch("IntersectionObserver",(e,n,i)=>{ve("IntersectionObserver")}),Zone.__load_patch("FileReader",(e,n,i)=>{ve("FileReader")}),Zone.__load_patch("on_property",(e,n,i)=>{!function Zt(e,n){if(Re&&!We||Zone[e.symbol("patchEvents")])return;const i=typeof WebSocket<"u",r=n.__Zone_ignore_on_properties;if(je){const f=window,_=function pt(){try{const e=pe.navigator.userAgent;if(-1!==e.indexOf("MSIE ")||-1!==e.indexOf("Trident/"))return!0}catch{}return!1}()?[{target:f,ignoreProperties:["error"]}]:[];W(f,Te.concat(["messageerror"]),r&&r.concat(_),de(f)),W(Document.prototype,Te,r),typeof f.SVGElement<"u"&&W(f.SVGElement.prototype,Te,r),W(Element.prototype,Te,r),W(HTMLElement.prototype,Te,r),W(HTMLMediaElement.prototype,wt,r),W(HTMLFrameSetElement.prototype,Ve.concat(nt),r),W(HTMLBodyElement.prototype,Ve.concat(nt),r),W(HTMLFrameElement.prototype,tt,r),W(HTMLIFrameElement.prototype,tt,r);const y=f.HTMLMarqueeElement;y&&W(y.prototype,Dt,r);const T=f.Worker;T&&W(T.prototype,Ot,r)}const c=n.XMLHttpRequest;c&&W(c.prototype,rt,r);const u=n.XMLHttpRequestEventTarget;u&&W(u&&u.prototype,rt,r),typeof IDBIndex<"u"&&(W(IDBIndex.prototype,Ee,r),W(IDBRequest.prototype,Ee,r),W(IDBOpenDBRequest.prototype,Ee,r),W(IDBDatabase.prototype,Ee,r),W(IDBTransaction.prototype,Ee,r),W(IDBCursor.prototype,Ee,r)),i&&W(WebSocket.prototype,St,r)}(i,e)}),Zone.__load_patch("customElements",(e,n,i)=>{!function It(e,n){const{isBrowser:i,isMix:r}=n.getGlobalObjects();(i||r)&&e.customElements&&"customElements"in e&&n.patchCallbacks(n,e.customElements,"customElements","define",["connectedCallback","disconnectedCallback","adoptedCallback","attributeChangedCallback"])}(e,i)}),Zone.__load_patch("XHR",(e,n)=>{!function y(T){const m=T.XMLHttpRequest;if(!m)return;const S=m.prototype;let Z=S[Ze],B=S[Ie];if(!Z){const v=T.XMLHttpRequestEventTarget;if(v){const M=v.prototype;Z=M[Ze],B=M[Ie]}}const V="readystatechange",E="scheduled";function d(v){const M=v.data,R=M.target;R[u]=!1,R[_]=!1;const J=R[c];Z||(Z=R[Ze],B=R[Ie]),J&&B.call(R,V,J);const le=R[c]=()=>{if(R.readyState===R.DONE)if(!M.aborted&&R[u]&&v.state===E){const te=R[n.__symbol__("loadfalse")];if(0!==R.status&&te&&te.length>0){const re=v.invoke;v.invoke=function(){const F=R[n.__symbol__("loadfalse")];for(let I=0;Ifunction(v,M){return v[r]=0==M[2],v[f]=M[1],j.apply(v,M)}),O=x("fetchTaskAborting"),X=x("fetchTaskScheduling"),A=ce(S,"send",()=>function(v,M){if(!0===n.current[X]||v[r])return A.apply(v,M);{const R={target:v,url:v[f],isPeriodic:!1,args:M,aborted:!1},J=Me("XMLHttpRequest.send",L,R,d,z);v&&!0===v[_]&&!R.aborted&&J.state===E&&J.invoke()}}),Y=ce(S,"abort",()=>function(v,M){const R=function D(v){return v[i]}(v);if(R&&"string"==typeof R.type){if(null==R.cancelFn||R.data&&R.data.aborted)return;R.zone.cancelTask(R)}else if(!0===n.current[O])return Y.apply(v,M)})}(e);const i=x("xhrTask"),r=x("xhrSync"),c=x("xhrListener"),u=x("xhrScheduled"),f=x("xhrURL"),_=x("xhrErrorBeforeScheduled")}),Zone.__load_patch("geolocation",e=>{e.navigator&&e.navigator.geolocation&&function dt(e,n){const i=e.constructor.name;for(let r=0;r{const y=function(){return _.apply(this,Ae(arguments,i+"."+c))};return ae(y,_),y})(u)}}}(e.navigator.geolocation,["getCurrentPosition","watchPosition"])}),Zone.__load_patch("PromiseRejectionEvent",(e,n)=>{function i(r){return function(c){et(e,r).forEach(f=>{const _=e.PromiseRejectionEvent;if(_){const y=new _(r,{promise:c.promise,reason:c.rejection});f.invoke(y)}})}}e.PromiseRejectionEvent&&(n[x("unhandledPromiseRejectionHandler")]=i("unhandledrejection"),n[x("rejectionHandledHandler")]=i("rejectionhandled"))})}},we=>{we(we.s=435)}]); + +"use strict";(self.webpackChunkcoverage_app=self.webpackChunkcoverage_app||[]).push([[179],{938:()=>{function me(e){return"function"==typeof e}function $o(e){const t=e(r=>{Error.call(r),r.stack=(new Error).stack});return t.prototype=Object.create(Error.prototype),t.prototype.constructor=t,t}const Uo=$o(e=>function(t){e(this),this.message=t?`${t.length} errors occurred during unsubscription:\n${t.map((r,o)=>`${o+1}) ${r.toString()}`).join("\n ")}`:"",this.name="UnsubscriptionError",this.errors=t});function Rr(e,n){if(e){const t=e.indexOf(n);0<=t&&e.splice(t,1)}}class Tt{constructor(n){this.initialTeardown=n,this.closed=!1,this._parentage=null,this._teardowns=null}unsubscribe(){let n;if(!this.closed){this.closed=!0;const{_parentage:t}=this;if(t)if(this._parentage=null,Array.isArray(t))for(const i of t)i.remove(this);else t.remove(this);const{initialTeardown:r}=this;if(me(r))try{r()}catch(i){n=i instanceof Uo?i.errors:[i]}const{_teardowns:o}=this;if(o){this._teardowns=null;for(const i of o)try{uu(i)}catch(s){n=n??[],s instanceof Uo?n=[...n,...s.errors]:n.push(s)}}if(n)throw new Uo(n)}}add(n){var t;if(n&&n!==this)if(this.closed)uu(n);else{if(n instanceof Tt){if(n.closed||n._hasParent(this))return;n._addParent(this)}(this._teardowns=null!==(t=this._teardowns)&&void 0!==t?t:[]).push(n)}}_hasParent(n){const{_parentage:t}=this;return t===n||Array.isArray(t)&&t.includes(n)}_addParent(n){const{_parentage:t}=this;this._parentage=Array.isArray(t)?(t.push(n),t):t?[t,n]:n}_removeParent(n){const{_parentage:t}=this;t===n?this._parentage=null:Array.isArray(t)&&Rr(t,n)}remove(n){const{_teardowns:t}=this;t&&Rr(t,n),n instanceof Tt&&n._removeParent(this)}}Tt.EMPTY=(()=>{const e=new Tt;return e.closed=!0,e})();const lu=Tt.EMPTY;function cu(e){return e instanceof Tt||e&&"closed"in e&&me(e.remove)&&me(e.add)&&me(e.unsubscribe)}function uu(e){me(e)?e():e.unsubscribe()}const wn={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},zo={setTimeout(...e){const{delegate:n}=zo;return(n?.setTimeout||setTimeout)(...e)},clearTimeout(e){const{delegate:n}=zo;return(n?.clearTimeout||clearTimeout)(e)},delegate:void 0};function du(e){zo.setTimeout(()=>{const{onUnhandledError:n}=wn;if(!n)throw e;n(e)})}function Go(){}const av=As("C",void 0,void 0);function As(e,n,t){return{kind:e,value:n,error:t}}let bn=null;function Wo(e){if(wn.useDeprecatedSynchronousErrorHandling){const n=!bn;if(n&&(bn={errorThrown:!1,error:null}),e(),n){const{errorThrown:t,error:r}=bn;if(bn=null,t)throw r}}else e()}class Ts extends Tt{constructor(n){super(),this.isStopped=!1,n?(this.destination=n,cu(n)&&n.add(this)):this.destination=dv}static create(n,t,r){return new xs(n,t,r)}next(n){this.isStopped?Fs(function cv(e){return As("N",e,void 0)}(n),this):this._next(n)}error(n){this.isStopped?Fs(function lv(e){return As("E",void 0,e)}(n),this):(this.isStopped=!0,this._error(n))}complete(){this.isStopped?Fs(av,this):(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe(),this.destination=null)}_next(n){this.destination.next(n)}_error(n){try{this.destination.error(n)}finally{this.unsubscribe()}}_complete(){try{this.destination.complete()}finally{this.unsubscribe()}}}class xs extends Ts{constructor(n,t,r){let o;if(super(),me(n))o=n;else if(n){let i;({next:o,error:t,complete:r}=n),this&&wn.useDeprecatedNextContext?(i=Object.create(n),i.unsubscribe=()=>this.unsubscribe()):i=n,o=o?.bind(i),t=t?.bind(i),r=r?.bind(i)}this.destination={next:o?Ns(o):Go,error:Ns(t??fu),complete:r?Ns(r):Go}}}function Ns(e,n){return(...t)=>{try{e(...t)}catch(r){wn.useDeprecatedSynchronousErrorHandling?function uv(e){wn.useDeprecatedSynchronousErrorHandling&&bn&&(bn.errorThrown=!0,bn.error=e)}(r):du(r)}}}function fu(e){throw e}function Fs(e,n){const{onStoppedNotification:t}=wn;t&&zo.setTimeout(()=>t(e,n))}const dv={closed:!0,next:Go,error:fu,complete:Go},Os="function"==typeof Symbol&&Symbol.observable||"@@observable";function hu(e){return e}let ze=(()=>{class e{constructor(t){t&&(this._subscribe=t)}lift(t){const r=new e;return r.source=this,r.operator=t,r}subscribe(t,r,o){const i=function hv(e){return e&&e instanceof Ts||function fv(e){return e&&me(e.next)&&me(e.error)&&me(e.complete)}(e)&&cu(e)}(t)?t:new xs(t,r,o);return Wo(()=>{const{operator:s,source:a}=this;i.add(s?s.call(i,a):a?this._subscribe(i):this._trySubscribe(i))}),i}_trySubscribe(t){try{return this._subscribe(t)}catch(r){t.error(r)}}forEach(t,r){return new(r=gu(r))((o,i)=>{let s;s=this.subscribe(a=>{try{t(a)}catch(l){i(l),s?.unsubscribe()}},i,o)})}_subscribe(t){var r;return null===(r=this.source)||void 0===r?void 0:r.subscribe(t)}[Os](){return this}pipe(...t){return function pu(e){return 0===e.length?hu:1===e.length?e[0]:function(t){return e.reduce((r,o)=>o(r),t)}}(t)(this)}toPromise(t){return new(t=gu(t))((r,o)=>{let i;this.subscribe(s=>i=s,s=>o(s),()=>r(i))})}}return e.create=n=>new e(n),e})();function gu(e){var n;return null!==(n=e??wn.Promise)&&void 0!==n?n:Promise}const pv=$o(e=>function(){e(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"});let Rs=(()=>{class e extends ze{constructor(){super(),this.closed=!1,this.observers=[],this.isStopped=!1,this.hasError=!1,this.thrownError=null}lift(t){const r=new mu(this,this);return r.operator=t,r}_throwIfClosed(){if(this.closed)throw new pv}next(t){Wo(()=>{if(this._throwIfClosed(),!this.isStopped){const r=this.observers.slice();for(const o of r)o.next(t)}})}error(t){Wo(()=>{if(this._throwIfClosed(),!this.isStopped){this.hasError=this.isStopped=!0,this.thrownError=t;const{observers:r}=this;for(;r.length;)r.shift().error(t)}})}complete(){Wo(()=>{if(this._throwIfClosed(),!this.isStopped){this.isStopped=!0;const{observers:t}=this;for(;t.length;)t.shift().complete()}})}unsubscribe(){this.isStopped=this.closed=!0,this.observers=null}get observed(){var t;return(null===(t=this.observers)||void 0===t?void 0:t.length)>0}_trySubscribe(t){return this._throwIfClosed(),super._trySubscribe(t)}_subscribe(t){return this._throwIfClosed(),this._checkFinalizedStatuses(t),this._innerSubscribe(t)}_innerSubscribe(t){const{hasError:r,isStopped:o,observers:i}=this;return r||o?lu:(i.push(t),new Tt(()=>Rr(i,t)))}_checkFinalizedStatuses(t){const{hasError:r,thrownError:o,isStopped:i}=this;r?t.error(o):i&&t.complete()}asObservable(){const t=new ze;return t.source=this,t}}return e.create=(n,t)=>new mu(n,t),e})();class mu extends Rs{constructor(n,t){super(),this.destination=n,this.source=t}next(n){var t,r;null===(r=null===(t=this.destination)||void 0===t?void 0:t.next)||void 0===r||r.call(t,n)}error(n){var t,r;null===(r=null===(t=this.destination)||void 0===t?void 0:t.error)||void 0===r||r.call(t,n)}complete(){var n,t;null===(t=null===(n=this.destination)||void 0===n?void 0:n.complete)||void 0===t||t.call(n)}_subscribe(n){var t,r;return null!==(r=null===(t=this.source)||void 0===t?void 0:t.subscribe(n))&&void 0!==r?r:lu}}function zn(e){return n=>{if(function gv(e){return me(e?.lift)}(n))return n.lift(function(t){try{return e(t,this)}catch(r){this.error(r)}});throw new TypeError("Unable to lift unknown Observable type")}}class Gn extends Ts{constructor(n,t,r,o,i){super(n),this.onFinalize=i,this._next=t?function(s){try{t(s)}catch(a){n.error(a)}}:super._next,this._error=o?function(s){try{o(s)}catch(a){n.error(a)}finally{this.unsubscribe()}}:super._error,this._complete=r?function(){try{r()}catch(s){n.error(s)}finally{this.unsubscribe()}}:super._complete}unsubscribe(){var n;const{closed:t}=this;super.unsubscribe(),!t&&(null===(n=this.onFinalize)||void 0===n||n.call(this))}}function Ps(e,n){return zn((t,r)=>{let o=0;t.subscribe(new Gn(r,i=>{r.next(e.call(n,i,o++))}))})}function En(e){return this instanceof En?(this.v=e,this):new En(e)}function vv(e,n,t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var o,r=t.apply(e,n||[]),i=[];return o={},s("next"),s("throw"),s("return"),o[Symbol.asyncIterator]=function(){return this},o;function s(h){r[h]&&(o[h]=function(p){return new Promise(function(m,D){i.push([h,p,m,D])>1||a(h,p)})})}function a(h,p){try{!function l(h){h.value instanceof En?Promise.resolve(h.value.v).then(c,u):d(i[0][2],h)}(r[h](p))}catch(m){d(i[0][3],m)}}function c(h){a("next",h)}function u(h){a("throw",h)}function d(h,p){h(p),i.shift(),i.length&&a(i[0][0],i[0][1])}}function yv(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,n=e[Symbol.asyncIterator];return n?n.call(e):(e=function yu(e){var n="function"==typeof Symbol&&Symbol.iterator,t=n&&e[n],r=0;if(t)return t.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(n?"Object is not iterable.":"Symbol.iterator is not defined.")}(e),t={},r("next"),r("throw"),r("return"),t[Symbol.asyncIterator]=function(){return this},t);function r(i){t[i]=e[i]&&function(s){return new Promise(function(a,l){!function o(i,s,a,l){Promise.resolve(l).then(function(c){i({value:c,done:a})},s)}(a,l,(s=e[i](s)).done,s.value)})}}}const Cu=e=>e&&"number"==typeof e.length&&"function"!=typeof e;function Du(e){return me(e?.then)}function wu(e){return me(e[Os])}function bu(e){return Symbol.asyncIterator&&me(e?.[Symbol.asyncIterator])}function Eu(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 Iu=function Dv(){return"function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator"}();function Mu(e){return me(e?.[Iu])}function Su(e){return vv(this,arguments,function*(){const t=e.getReader();try{for(;;){const{value:r,done:o}=yield En(t.read());if(o)return yield En(void 0);yield yield En(r)}}finally{t.releaseLock()}})}function Au(e){return me(e?.getReader)}function In(e){if(e instanceof ze)return e;if(null!=e){if(wu(e))return function wv(e){return new ze(n=>{const t=e[Os]();if(me(t.subscribe))return t.subscribe(n);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}(e);if(Cu(e))return function bv(e){return new ze(n=>{for(let t=0;t{e.then(t=>{n.closed||(n.next(t),n.complete())},t=>n.error(t)).then(null,du)})}(e);if(bu(e))return Tu(e);if(Mu(e))return function Iv(e){return new ze(n=>{for(const t of e)if(n.next(t),n.closed)return;n.complete()})}(e);if(Au(e))return function Mv(e){return Tu(Su(e))}(e)}throw Eu(e)}function Tu(e){return new ze(n=>{(function Sv(e,n){var t,r,o,i;return function mv(e,n,t,r){return new(t||(t=Promise))(function(i,s){function a(u){try{c(r.next(u))}catch(d){s(d)}}function l(u){try{c(r.throw(u))}catch(d){s(d)}}function c(u){u.done?i(u.value):function o(i){return i instanceof t?i:new t(function(s){s(i)})}(u.value).then(a,l)}c((r=r.apply(e,n||[])).next())})}(this,void 0,void 0,function*(){try{for(t=yv(e);!(r=yield t.next()).done;)if(n.next(r.value),n.closed)return}catch(s){o={error:s}}finally{try{r&&!r.done&&(i=t.return)&&(yield i.call(t))}finally{if(o)throw o.error}}n.complete()})})(e,n).catch(t=>n.error(t))})}function rn(e,n,t,r=0,o=!1){const i=n.schedule(function(){t(),o?e.add(this.schedule(null,r)):this.unsubscribe()},r);if(e.add(i),!o)return i}function xu(e,n,t=1/0){return me(n)?xu((r,o)=>Ps((i,s)=>n(r,i,o,s))(In(e(r,o))),t):("number"==typeof n&&(t=n),zn((r,o)=>function Av(e,n,t,r,o,i,s,a){const l=[];let c=0,u=0,d=!1;const h=()=>{d&&!l.length&&!c&&n.complete()},p=D=>c{i&&n.next(D),c++;let I=!1;In(t(D,u++)).subscribe(new Gn(n,S=>{o?.(S),i?p(S):n.next(S)},()=>{I=!0},void 0,()=>{if(I)try{for(c--;l.length&&cm(S)):m(S)}h()}catch(S){n.error(S)}}))};return e.subscribe(new Gn(n,p,()=>{d=!0,h()})),()=>{a?.()}}(r,o,e,t)))}const Ls=new ze(e=>e.complete());function Vs(e){return e[e.length-1]}function Nu(e,n=0){return zn((t,r)=>{t.subscribe(new Gn(r,o=>rn(r,e,()=>r.next(o),n),()=>rn(r,e,()=>r.complete(),n),o=>rn(r,e,()=>r.error(o),n)))})}function Fu(e,n=0){return zn((t,r)=>{r.add(e.schedule(()=>t.subscribe(r),n))})}function Ou(e,n){if(!e)throw new Error("Iterable cannot be null");return new ze(t=>{rn(t,n,()=>{const r=e[Symbol.asyncIterator]();rn(t,n,()=>{r.next().then(o=>{o.done?t.complete():t.next(o.value)})},0,!0)})})}function Bs(e,n){return n?function Hv(e,n){if(null!=e){if(wu(e))return function Pv(e,n){return In(e).pipe(Fu(n),Nu(n))}(e,n);if(Cu(e))return function Lv(e,n){return new ze(t=>{let r=0;return n.schedule(function(){r===e.length?t.complete():(t.next(e[r++]),t.closed||this.schedule())})})}(e,n);if(Du(e))return function kv(e,n){return In(e).pipe(Fu(n),Nu(n))}(e,n);if(bu(e))return Ou(e,n);if(Mu(e))return function Vv(e,n){return new ze(t=>{let r;return rn(t,n,()=>{r=e[Iu](),rn(t,n,()=>{let o,i;try{({value:o,done:i}=r.next())}catch(s){return void t.error(s)}i?t.complete():t.next(o)},0,!0)}),()=>me(r?.return)&&r.return()})}(e,n);if(Au(e))return function Bv(e,n){return Ou(Su(e),n)}(e,n)}throw Eu(e)}(e,n):In(e)}function jv(...e){const n=function Ov(e){return function Nv(e){return e&&me(e.schedule)}(Vs(e))?e.pop():void 0}(e),t=function Rv(e,n){return"number"==typeof Vs(e)?e.pop():n}(e,1/0),r=e;return r.length?1===r.length?In(r[0]):function Tv(e=1/0){return xu(hu,e)}(t)(Bs(r,n)):Ls}function Hs(e,n,...t){return!0===n?(e(),null):!1===n?null:n(...t).pipe(function $v(e){return e<=0?()=>Ls:zn((n,t)=>{let r=0;n.subscribe(new Gn(t,o=>{++r<=e&&(t.next(o),e<=r&&t.complete())}))})}(1)).subscribe(()=>e())}function ae(e){for(let n in e)if(e[n]===ae)return n;throw Error("Could not find renamed property on target object.")}function js(e,n){for(const t in n)n.hasOwnProperty(t)&&!e.hasOwnProperty(t)&&(e[t]=n[t])}function le(e){if("string"==typeof e)return e;if(Array.isArray(e))return"["+e.map(le).join(", ")+"]";if(null==e)return""+e;if(e.overriddenName)return`${e.overriddenName}`;if(e.name)return`${e.name}`;const n=e.toString();if(null==n)return""+n;const t=n.indexOf("\n");return-1===t?n:n.substring(0,t)}function $s(e,n){return null==e||""===e?null===n?"":n:null==n||""===n?e:e+" "+n}const zv=ae({__forward_ref__:ae});function ue(e){return e.__forward_ref__=ue,e.toString=function(){return le(this())},e}function P(e){return Us(e)?e():e}function Us(e){return"function"==typeof e&&e.hasOwnProperty(zv)&&e.__forward_ref__===ue}function zs(e){return e&&!!e.\u0275providers}const Ru="https://g.co/ng/security#xss";class A extends Error{constructor(n,t){super(function qo(e,n){return`NG0${Math.abs(e)}${n?": "+n.trim():""}`}(n,t)),this.code=n}}function j(e){return"string"==typeof e?e:null==e?"":String(e)}function Zo(e,n){throw new A(-201,!1)}function ut(e,n){null==e&&function re(e,n,t,r){throw new Error(`ASSERTION ERROR: ${e}`+(null==r?"":` [Expected=> ${t} ${r} ${n} <=Actual]`))}(n,e,null,"!=")}function de(e){return{token:e.token,providedIn:e.providedIn||null,factory:e.factory,value:void 0}}function $t(e){return{providers:e.providers||[],imports:e.imports||[]}}function Qo(e){return Pu(e,Yo)||Pu(e,Lu)}function Pu(e,n){return e.hasOwnProperty(n)?e[n]:null}function ku(e){return e&&(e.hasOwnProperty(Gs)||e.hasOwnProperty(Jv))?e[Gs]:null}const Yo=ae({\u0275prov:ae}),Gs=ae({\u0275inj:ae}),Lu=ae({ngInjectableDef:ae}),Jv=ae({ngInjectorDef:ae});var B=(()=>((B=B||{})[B.Default=0]="Default",B[B.Host=1]="Host",B[B.Self=2]="Self",B[B.SkipSelf=4]="SkipSelf",B[B.Optional=8]="Optional",B))();let Ws;function dt(e){const n=Ws;return Ws=e,n}function Vu(e,n,t){const r=Qo(e);return r&&"root"==r.providedIn?void 0===r.value?r.value=r.factory():r.value:t&B.Optional?null:void 0!==n?n:void Zo(le(e))}const fe=(()=>typeof globalThis<"u"&&globalThis||typeof global<"u"&&global||typeof window<"u"&&window||typeof self<"u"&&typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&self)(),Pr={},qs="__NG_DI_FLAG__",Ko="ngTempTokenPath",ty=/\n/gm,Bu="__source";let kr;function Wn(e){const n=kr;return kr=e,n}function ry(e,n=B.Default){if(void 0===kr)throw new A(-203,!1);return null===kr?Vu(e,void 0,n):kr.get(e,n&B.Optional?null:void 0,n)}function oe(e,n=B.Default){return(function Xv(){return Ws}()||ry)(P(e),n)}function Jo(e){return typeof e>"u"||"number"==typeof e?e:0|(e.optional&&8)|(e.host&&1)|(e.self&&2)|(e.skipSelf&&4)}function Zs(e){const n=[];for(let t=0;t((_t=_t||{})[_t.OnPush=0]="OnPush",_t[_t.Default=1]="Default",_t))(),xt=(()=>{return(e=xt||(xt={}))[e.Emulated=0]="Emulated",e[e.None=2]="None",e[e.ShadowDom=3]="ShadowDom",xt;var e})();const Ut={},te=[],Xo=ae({\u0275cmp:ae}),Qs=ae({\u0275dir:ae}),Ys=ae({\u0275pipe:ae}),ju=ae({\u0275mod:ae}),zt=ae({\u0275fac:ae}),Vr=ae({__NG_ELEMENT_ID__:ae});let ly=0;function Nt(e){return sn(()=>{const t=!0===e.standalone,r={},o={type:e.type,providersResolver:null,decls:e.decls,vars:e.vars,factory:null,template:e.template||null,consts:e.consts||null,ngContentSelectors:e.ngContentSelectors,hostBindings:e.hostBindings||null,hostVars:e.hostVars||0,hostAttrs:e.hostAttrs||null,contentQueries:e.contentQueries||null,declaredInputs:r,inputs:null,outputs:null,exportAs:e.exportAs||null,onPush:e.changeDetection===_t.OnPush,directiveDefs:null,pipeDefs:null,standalone:t,dependencies:t&&e.dependencies||null,getStandaloneInjector:null,selectors:e.selectors||te,viewQuery:e.viewQuery||null,features:e.features||null,data:e.data||{},encapsulation:e.encapsulation||xt.Emulated,id:"c"+ly++,styles:e.styles||te,_:null,setInput:null,schemas:e.schemas||null,tView:null,findHostDirectiveDefs:null,hostDirectives:null},i=e.dependencies,s=e.features;return o.inputs=zu(e.inputs,r),o.outputs=zu(e.outputs),s&&s.forEach(a=>a(o)),o.directiveDefs=i?()=>("function"==typeof i?i():i).map($u).filter(Uu):null,o.pipeDefs=i?()=>("function"==typeof i?i():i).map(Ge).filter(Uu):null,o})}function $u(e){return ie(e)||ke(e)}function Uu(e){return null!==e}function an(e){return sn(()=>({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 zu(e,n){if(null==e)return Ut;const t={};for(const r in e)if(e.hasOwnProperty(r)){let o=e[r],i=o;Array.isArray(o)&&(i=o[1],o=o[0]),t[o]=r,n&&(n[o]=i)}return t}const $=Nt;function Je(e){return{type:e.type,name:e.name,factory:null,pure:!1!==e.pure,standalone:!0===e.standalone,onDestroy:e.type.prototype.ngOnDestroy||null}}function ie(e){return e[Xo]||null}function ke(e){return e[Qs]||null}function Ge(e){return e[Ys]||null}const Z=11;function ot(e){return Array.isArray(e)&&"object"==typeof e[1]}function yt(e){return Array.isArray(e)&&!0===e[1]}function Xs(e){return 0!=(4&e.flags)}function Ur(e){return e.componentOffset>-1}function oi(e){return 1==(1&e.flags)}function Ct(e){return null!==e.template}function dy(e){return 0!=(256&e[2])}function Sn(e,n){return e.hasOwnProperty(zt)?e[zt]:null}class py{constructor(n,t,r){this.previousValue=n,this.currentValue=t,this.firstChange=r}isFirstChange(){return this.firstChange}}function Wt(){return Yu}function Yu(e){return e.type.prototype.ngOnChanges&&(e.setInput=my),gy}function gy(){const e=Ju(this),n=e?.current;if(n){const t=e.previous;if(t===Ut)e.previous=n;else for(let r in n)t[r]=n[r];e.current=null,this.ngOnChanges(n)}}function my(e,n,t,r){const o=this.declaredInputs[t],i=Ju(e)||function _y(e,n){return e[Ku]=n}(e,{previous:Ut,current:null}),s=i.current||(i.current={}),a=i.previous,l=a[o];s[o]=new py(l&&l.currentValue,n,a===Ut),e[r]=n}Wt.ngInherit=!0;const Ku="__ngSimpleChanges__";function Ju(e){return e[Ku]||null}function Re(e){for(;Array.isArray(e);)e=e[0];return e}function ii(e,n){return Re(n[e])}function it(e,n){return Re(n[e.index])}function td(e,n){return e.data[n]}function st(e,n){const t=n[e];return ot(t)?t:t[0]}function si(e){return 64==(64&e[2])}function ln(e,n){return null==n?null:e[n]}function nd(e){e[18]=0}function ta(e,n){e[5]+=n;let t=e,r=e[3];for(;null!==r&&(1===n&&1===t[5]||-1===n&&0===t[5]);)r[5]+=n,t=r,r=r[3]}const U={lFrame:fd(null),bindingsEnabled:!0};function od(){return U.bindingsEnabled}function E(){return U.lFrame.lView}function ee(){return U.lFrame.tView}function Q(e){return U.lFrame.contextLView=e,e[8]}function Y(e){return U.lFrame.contextLView=null,e}function Pe(){let e=id();for(;null!==e&&64===e.type;)e=e.parent;return e}function id(){return U.lFrame.currentTNode}function Ot(e,n){const t=U.lFrame;t.currentTNode=e,t.isParent=n}function na(){return U.lFrame.isParent}function ra(){U.lFrame.isParent=!1}function qe(){const e=U.lFrame;let n=e.bindingRootIndex;return-1===n&&(n=e.bindingRootIndex=e.tView.bindingStartIndex),n}function Jn(){return U.lFrame.bindingIndex++}function Zt(e){const n=U.lFrame,t=n.bindingIndex;return n.bindingIndex=n.bindingIndex+e,t}function xy(e,n){const t=U.lFrame;t.bindingIndex=t.bindingRootIndex=e,oa(n)}function oa(e){U.lFrame.currentDirectiveIndex=e}function sa(e){U.lFrame.currentQueryIndex=e}function Fy(e){const n=e[1];return 2===n.type?n.declTNode:1===n.type?e[6]:null}function ud(e,n,t){if(t&B.SkipSelf){let o=n,i=e;for(;!(o=o.parent,null!==o||t&B.Host||(o=Fy(i),null===o||(i=i[15],10&o.type))););if(null===o)return!1;n=o,e=i}const r=U.lFrame=dd();return r.currentTNode=n,r.lView=e,!0}function aa(e){const n=dd(),t=e[1];U.lFrame=n,n.currentTNode=t.firstChild,n.lView=e,n.tView=t,n.contextLView=e,n.bindingIndex=t.bindingStartIndex,n.inI18n=!1}function dd(){const e=U.lFrame,n=null===e?null:e.child;return null===n?fd(e):n}function fd(e){const n={currentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:-1,contextLView:null,elementDepthCount:0,currentNamespace:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:e,child:null,inI18n:!1};return null!==e&&(e.child=n),n}function hd(){const e=U.lFrame;return U.lFrame=e.parent,e.currentTNode=null,e.lView=null,e}const pd=hd;function la(){const e=hd();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 Ze(){return U.lFrame.selectedIndex}function An(e){U.lFrame.selectedIndex=e}function _e(){const e=U.lFrame;return td(e.tView,e.selectedIndex)}function ai(e,n){for(let t=n.directiveStart,r=n.directiveEnd;t=r)break}else n[l]<0&&(e[18]+=65536),(a>11>16&&(3&e[2])===n){e[2]+=2048;try{i.call(a)}finally{}}}else try{i.call(a)}finally{}}class Gr{constructor(n,t,r){this.factory=n,this.resolving=!1,this.canSeeViewProviders=t,this.injectImpl=r}}function da(e,n,t){let r=0;for(;rn){s=i-1;break}}}for(;i>16}(e),r=n;for(;t>0;)r=r[15],t--;return r}let fa=!0;function fi(e){const n=fa;return fa=e,n}let Gy=0;const Rt={};function hi(e,n){const t=bd(e,n);if(-1!==t)return t;const r=n[1];r.firstCreatePass&&(e.injectorIndex=n.length,ha(r.data,e),ha(n,null),ha(r.blueprint,null));const o=pa(e,n),i=e.injectorIndex;if(Cd(o)){const s=ui(o),a=di(o,n),l=a[1].data;for(let c=0;c<8;c++)n[i+c]=a[s+c]|l[s+c]}return n[i+8]=o,i}function ha(e,n){e.push(0,0,0,0,0,0,0,0,n)}function bd(e,n){return-1===e.injectorIndex||e.parent&&e.parent.injectorIndex===e.injectorIndex||null===n[e.injectorIndex+8]?-1:e.injectorIndex}function pa(e,n){if(e.parent&&-1!==e.parent.injectorIndex)return e.parent.injectorIndex;let t=0,r=null,o=n;for(;null!==o;){if(r=xd(o),null===r)return-1;if(t++,o=o[15],-1!==r.injectorIndex)return r.injectorIndex|t<<16}return-1}function ga(e,n,t){!function Wy(e,n,t){let r;"string"==typeof t?r=t.charCodeAt(0)||0:t.hasOwnProperty(Vr)&&(r=t[Vr]),null==r&&(r=t[Vr]=Gy++);const o=255&r;n.data[e+(o>>5)]|=1<=0?255&n:Yy:n}(t);if("function"==typeof i){if(!ud(n,e,r))return r&B.Host?Ed(o,0,r):Id(n,t,r,o);try{const s=i(r);if(null!=s||r&B.Optional)return s;Zo()}finally{pd()}}else if("number"==typeof i){let s=null,a=bd(e,n),l=-1,c=r&B.Host?n[16][6]:null;for((-1===a||r&B.SkipSelf)&&(l=-1===a?pa(e,n):n[a+8],-1!==l&&Td(r,!1)?(s=n[1],a=ui(l),n=di(l,n)):a=-1);-1!==a;){const u=n[1];if(Ad(i,a,u.data)){const d=Zy(a,n,t,s,r,c);if(d!==Rt)return d}l=n[a+8],-1!==l&&Td(r,n[1].data[a+8]===c)&&Ad(i,a,n)?(s=u,a=ui(l),n=di(l,n)):a=-1}}return o}function Zy(e,n,t,r,o,i){const s=n[1],a=s.data[e+8],u=function pi(e,n,t,r,o){const i=e.providerIndexes,s=n.data,a=1048575&i,l=e.directiveStart,u=i>>20,h=o?a+u:e.directiveEnd;for(let p=r?a:a+u;p=l&&m.type===t)return p}if(o){const p=s[l];if(p&&Ct(p)&&p.type===t)return l}return null}(a,s,t,null==r?Ur(a)&&fa:r!=s&&0!=(3&a.type),o&B.Host&&i===a);return null!==u?Tn(n,s,u,a):Rt}function Tn(e,n,t,r){let o=e[t];const i=n.data;if(function jy(e){return e instanceof Gr}(o)){const s=o;s.resolving&&function Gv(e,n){const t=n?`. Dependency path: ${n.join(" > ")} > ${e}`:"";throw new A(-200,`Circular dependency in DI detected for ${e}${t}`)}(function ne(e){return"function"==typeof e?e.name||e.toString():"object"==typeof e&&null!=e&&"function"==typeof e.type?e.type.name||e.type.toString():j(e)}(i[t]));const a=fi(s.canSeeViewProviders);s.resolving=!0;const l=s.injectImpl?dt(s.injectImpl):null;ud(e,r,B.Default);try{o=e[t]=s.factory(void 0,i,e,r),n.firstCreatePass&&t>=r.directiveStart&&function By(e,n,t){const{ngOnChanges:r,ngOnInit:o,ngDoCheck:i}=n.type.prototype;if(r){const s=Yu(n);(t.preOrderHooks||(t.preOrderHooks=[])).push(e,s),(t.preOrderCheckHooks||(t.preOrderCheckHooks=[])).push(e,s)}o&&(t.preOrderHooks||(t.preOrderHooks=[])).push(0-e,o),i&&((t.preOrderHooks||(t.preOrderHooks=[])).push(e,i),(t.preOrderCheckHooks||(t.preOrderCheckHooks=[])).push(e,i))}(t,i[t],n)}finally{null!==l&&dt(l),fi(a),s.resolving=!1,pd()}}return o}function Ad(e,n,t){return!!(t[n+(e>>5)]&1<{const n=e.prototype.constructor,t=n[zt]||ma(n),r=Object.prototype;let o=Object.getPrototypeOf(e.prototype).constructor;for(;o&&o!==r;){const i=o[zt]||ma(o);if(i&&i!==t)return i;o=Object.getPrototypeOf(o)}return i=>new i})}function ma(e){return Us(e)?()=>{const n=ma(P(e));return n&&n()}:Sn(e)}function xd(e){const n=e[1],t=n.type;return 2===t?n.declTNode:1===t?e[6]:null}const nr="__parameters__";function or(e,n,t){return sn(()=>{const r=function va(e){return function(...t){if(e){const r=e(...t);for(const o in r)this[o]=r[o]}}}(n);function o(...i){if(this instanceof o)return r.apply(this,i),this;const s=new o(...i);return a.annotation=s,a;function a(l,c,u){const d=l.hasOwnProperty(nr)?l[nr]:Object.defineProperty(l,nr,{value:[]})[nr];for(;d.length<=u;)d.push(null);return(d[u]=d[u]||[]).push(s),l}}return t&&(o.prototype=Object.create(t.prototype)),o.prototype.ngMetadataName=e,o.annotationCls=o,o})}class H{constructor(n,t){this._desc=n,this.ngMetadataName="InjectionToken",this.\u0275prov=void 0,"number"==typeof t?this.__NG_ELEMENT_ID__=t:void 0!==t&&(this.\u0275prov=de({token:this,providedIn:t.providedIn||"root",factory:t.factory}))}get multi(){return this}toString(){return`InjectionToken ${this._desc}`}}function xn(e,n){e.forEach(t=>Array.isArray(t)?xn(t,n):n(t))}function Fd(e,n,t){n>=e.length?e.push(t):e.splice(n,0,t)}function gi(e,n){return n>=e.length-1?e.pop():e.splice(n,1)[0]}function at(e,n,t){let r=ir(e,n);return r>=0?e[1|r]=t:(r=~r,function tC(e,n,t,r){let o=e.length;if(o==n)e.push(t,r);else if(1===o)e.push(r,e[0]),e[0]=t;else{for(o--,e.push(e[o-1],e[o]);o>n;)e[o]=e[o-2],o--;e[n]=t,e[n+1]=r}}(e,r,n,t)),r}function Ca(e,n){const t=ir(e,n);if(t>=0)return e[1|t]}function ir(e,n){return function Od(e,n,t){let r=0,o=e.length>>t;for(;o!==r;){const i=r+(o-r>>1),s=e[i<n?o=i:r=i+1}return~(o<((Xe=Xe||{})[Xe.Important=1]="Important",Xe[Xe.DashCase=2]="DashCase",Xe))();const Ma=new Map;let bC=0;const Aa="__ngContext__";function He(e,n){ot(n)?(e[Aa]=n[20],function IC(e){Ma.set(e[20],e)}(n)):e[Aa]=n}function xa(e,n){return undefined(e,n)}function Xr(e){const n=e[3];return yt(n)?n[3]:n}function Na(e){return Xd(e[13])}function Fa(e){return Xd(e[4])}function Xd(e){for(;null!==e&&!yt(e);)e=e[4];return e}function ar(e,n,t,r,o){if(null!=r){let i,s=!1;yt(r)?i=r:ot(r)&&(s=!0,r=r[0]);const a=Re(r);0===e&&null!==t?null==o?sf(n,t,a):Nn(n,t,a,o||null,!0):1===e&&null!==t?Nn(n,t,a,o||null,!0):2===e?function Ba(e,n,t){const r=Di(e,n);r&&function GC(e,n,t,r){e.removeChild(n,t,r)}(e,r,n,t)}(n,a,s):3===e&&n.destroyNode(a),null!=i&&function ZC(e,n,t,r,o){const i=t[7];i!==Re(t)&&ar(n,e,r,i,o);for(let a=10;a0&&(e[t-1][4]=r[4]);const i=gi(e,10+n);!function LC(e,n){eo(e,n,n[Z],2,null,null),n[0]=null,n[6]=null}(r[1],r);const s=i[19];null!==s&&s.detachView(i[1]),r[3]=null,r[4]=null,r[2]&=-65}return r}function nf(e,n){if(!(128&n[2])){const t=n[Z];t.destroyNode&&eo(e,n,t,3,null,null),function HC(e){let n=e[13];if(!n)return ka(e[1],e);for(;n;){let t=null;if(ot(n))t=n[13];else{const r=n[10];r&&(t=r)}if(!t){for(;n&&!n[4]&&n!==e;)ot(n)&&ka(n[1],n),n=n[3];null===n&&(n=e),ot(n)&&ka(n[1],n),t=n&&n[4]}n=t}}(n)}}function ka(e,n){if(!(128&n[2])){n[2]&=-65,n[2]|=128,function zC(e,n){let t;if(null!=e&&null!=(t=e.destroyHooks))for(let r=0;r=0?r[o=s]():r[o=-s].unsubscribe(),i+=2}else{const s=r[o=t[i+1]];t[i].call(s)}if(null!==r){for(let i=o+1;i-1){const{encapsulation:i}=e.data[r.directiveStart+o];if(i===xt.None||i===xt.Emulated)return null}return it(r,t)}}(e,n.parent,t)}function Nn(e,n,t,r,o){e.insertBefore(n,t,r,o)}function sf(e,n,t){e.appendChild(n,t)}function af(e,n,t,r,o){null!==r?Nn(e,n,t,r,o):sf(e,n,t)}function Di(e,n){return e.parentNode(n)}let $a,uf=function cf(e,n,t){return 40&e.type?it(e,t):null};function wi(e,n,t,r){const o=rf(e,r,n),i=n[Z],a=function lf(e,n,t){return uf(e,n,t)}(r.parent||n[6],r,n);if(null!=o)if(Array.isArray(t))for(let l=0;l((Me=Me||{})[Me.NONE=0]="NONE",Me[Me.HTML=1]="HTML",Me[Me.STYLE=2]="STYLE",Me[Me.SCRIPT=3]="SCRIPT",Me[Me.URL=4]="URL",Me[Me.RESOURCE_URL=5]="RESOURCE_URL",Me))();function un(e){const n=function ro(){const e=E();return e&&e[12]}();return n?n.sanitize(Me.URL,e)||"":function to(e,n){const t=function sD(e){return e instanceof Cf&&e.getTypeName()||null}(e);if(null!=t&&t!==n){if("ResourceURL"===t&&"URL"===n)return!0;throw new Error(`Required a safe ${n}, got a ${t} (see ${Ru})`)}return t===n}(e,"URL")?cn(e):function za(e){return(e=String(e)).match(uD)?e:"unsafe:"+e}(j(e))}const Af=new H("ENVIRONMENT_INITIALIZER"),Tf=new H("INJECTOR",-1),xf=new H("INJECTOR_DEF_TYPES");class Nf{get(n,t=Pr){if(t===Pr){const r=new Error(`NullInjectorError: No provider for ${le(n)}!`);throw r.name="NullInjectorError",r}return t}}function ED(...e){return{\u0275providers:Ff(0,e),\u0275fromNgModule:!0}}function Ff(e,...n){const t=[],r=new Set;let o;return xn(n,i=>{const s=i;Za(s,t,[],r)&&(o||(o=[]),o.push(s))}),void 0!==o&&Of(o,t),t}function Of(e,n){for(let t=0;t{n.push(i)})}}function Za(e,n,t,r){if(!(e=P(e)))return!1;let o=null,i=ku(e);const s=!i&&ie(e);if(i||s){if(s&&!s.standalone)return!1;o=e}else{const l=e.ngModule;if(i=ku(l),!i)return!1;o=l}const a=r.has(o);if(s){if(a)return!1;if(r.add(o),s.dependencies){const l="function"==typeof s.dependencies?s.dependencies():s.dependencies;for(const c of l)Za(c,n,t,r)}}else{if(!i)return!1;{if(null!=i.imports&&!a){let c;r.add(o);try{xn(i.imports,u=>{Za(u,n,t,r)&&(c||(c=[]),c.push(u))})}finally{}void 0!==c&&Of(c,n)}if(!a){const c=Sn(o)||(()=>new o);n.push({provide:o,useFactory:c,deps:te},{provide:xf,useValue:o,multi:!0},{provide:Af,useValue:()=>oe(o),multi:!0})}const l=i.providers;null==l||a||Qa(l,u=>{n.push(u)})}}return o!==e&&void 0!==e.providers}function Qa(e,n){for(let t of e)zs(t)&&(t=t.\u0275providers),Array.isArray(t)?Qa(t,n):n(t)}const ID=ae({provide:String,useValue:ae});function Ya(e){return null!==e&&"object"==typeof e&&ID in e}function On(e){return"function"==typeof e}const Ka=new H("Set Injector scope."),Si={},SD={};let Ja;function Ai(){return void 0===Ja&&(Ja=new Nf),Ja}class lr{}class kf extends lr{get destroyed(){return this._destroyed}constructor(n,t,r,o){super(),this.parent=t,this.source=r,this.scopes=o,this.records=new Map,this._ngOnDestroyHooks=new Set,this._onDestroyHooks=[],this._destroyed=!1,el(n,s=>this.processProvider(s)),this.records.set(Tf,cr(void 0,this)),o.has("environment")&&this.records.set(lr,cr(void 0,this));const i=this.records.get(Ka);null!=i&&"string"==typeof i.value&&this.scopes.add(i.value),this.injectorDefTypes=new Set(this.get(xf.multi,te,B.Self))}destroy(){this.assertNotDestroyed(),this._destroyed=!0;try{for(const n of this._ngOnDestroyHooks)n.ngOnDestroy();for(const n of this._onDestroyHooks)n()}finally{this.records.clear(),this._ngOnDestroyHooks.clear(),this.injectorDefTypes.clear(),this._onDestroyHooks.length=0}}onDestroy(n){this._onDestroyHooks.push(n)}runInContext(n){this.assertNotDestroyed();const t=Wn(this),r=dt(void 0);try{return n()}finally{Wn(t),dt(r)}}get(n,t=Pr,r=B.Default){this.assertNotDestroyed(),r=Jo(r);const o=Wn(this),i=dt(void 0);try{if(!(r&B.SkipSelf)){let a=this.records.get(n);if(void 0===a){const l=function FD(e){return"function"==typeof e||"object"==typeof e&&e instanceof H}(n)&&Qo(n);a=l&&this.injectableDefInScope(l)?cr(Xa(n),Si):null,this.records.set(n,a)}if(null!=a)return this.hydrate(n,a)}return(r&B.Self?Ai():this.parent).get(n,t=r&B.Optional&&t===Pr?null:t)}catch(s){if("NullInjectorError"===s.name){if((s[Ko]=s[Ko]||[]).unshift(le(n)),o)throw s;return function sy(e,n,t,r){const o=e[Ko];throw n[Bu]&&o.unshift(n[Bu]),e.message=function ay(e,n,t,r=null){e=e&&"\n"===e.charAt(0)&&"\u0275"==e.charAt(1)?e.slice(2):e;let o=le(n);if(Array.isArray(n))o=n.map(le).join(" -> ");else if("object"==typeof n){let i=[];for(let s in n)if(n.hasOwnProperty(s)){let a=n[s];i.push(s+":"+("string"==typeof a?JSON.stringify(a):le(a)))}o=`{${i.join(", ")}}`}return`${t}${r?"("+r+")":""}[${o}]: ${e.replace(ty,"\n ")}`}("\n"+e.message,o,t,r),e.ngTokenPath=o,e[Ko]=null,e}(s,n,"R3InjectorError",this.source)}throw s}finally{dt(i),Wn(o)}}resolveInjectorInitializers(){const n=Wn(this),t=dt(void 0);try{const r=this.get(Af.multi,te,B.Self);for(const o of r)o()}finally{Wn(n),dt(t)}}toString(){const n=[],t=this.records;for(const r of t.keys())n.push(le(r));return`R3Injector[${n.join(", ")}]`}assertNotDestroyed(){if(this._destroyed)throw new A(205,!1)}processProvider(n){let t=On(n=P(n))?n:P(n&&n.provide);const r=function TD(e){return Ya(e)?cr(void 0,e.useValue):cr(Lf(e),Si)}(n);if(On(n)||!0!==n.multi)this.records.get(t);else{let o=this.records.get(t);o||(o=cr(void 0,Si,!0),o.factory=()=>Zs(o.multi),this.records.set(t,o)),t=n,o.multi.push(n)}this.records.set(t,r)}hydrate(n,t){return t.value===Si&&(t.value=SD,t.value=t.factory()),"object"==typeof t.value&&t.value&&function ND(e){return null!==e&&"object"==typeof e&&"function"==typeof e.ngOnDestroy}(t.value)&&this._ngOnDestroyHooks.add(t.value),t.value}injectableDefInScope(n){if(!n.providedIn)return!1;const t=P(n.providedIn);return"string"==typeof t?"any"===t||this.scopes.has(t):this.injectorDefTypes.has(t)}}function Xa(e){const n=Qo(e),t=null!==n?n.factory:Sn(e);if(null!==t)return t;if(e instanceof H)throw new A(204,!1);if(e instanceof Function)return function AD(e){const n=e.length;if(n>0)throw function Qr(e,n){const t=[];for(let r=0;rt.factory(e):()=>new e}(e);throw new A(204,!1)}function Lf(e,n,t){let r;if(On(e)){const o=P(e);return Sn(o)||Xa(o)}if(Ya(e))r=()=>P(e.useValue);else if(function Pf(e){return!(!e||!e.useFactory)}(e))r=()=>e.useFactory(...Zs(e.deps||[]));else if(function Rf(e){return!(!e||!e.useExisting)}(e))r=()=>oe(P(e.useExisting));else{const o=P(e&&(e.useClass||e.provide));if(!function xD(e){return!!e.deps}(e))return Sn(o)||Xa(o);r=()=>new o(...Zs(e.deps))}return r}function cr(e,n,t=!1){return{factory:e,value:n,multi:t?[]:void 0}}function el(e,n){for(const t of e)Array.isArray(t)?el(t,n):t&&zs(t)?el(t.\u0275providers,n):n(t)}class OD{}class Vf{}class PD{resolveComponentFactory(n){throw function RD(e){const n=Error(`No component factory found for ${le(e)}. Did you add it to @NgModule.entryComponents?`);return n.ngComponent=e,n}(n)}}let Ti=(()=>{class e{}return e.NULL=new PD,e})();function kD(){return ur(Pe(),E())}function ur(e,n){return new Dt(it(e,n))}let Dt=(()=>{class e{constructor(t){this.nativeElement=t}}return e.__NG_ELEMENT_ID__=kD,e})();class Hf{}let Rn=(()=>{class e{}return e.__NG_ELEMENT_ID__=()=>function VD(){const e=E(),t=st(Pe().index,e);return(ot(t)?t:e)[Z]}(),e})(),BD=(()=>{class e{}return e.\u0275prov=de({token:e,providedIn:"root",factory:()=>null}),e})();class xi{constructor(n){this.full=n,this.major=n.split(".")[0],this.minor=n.split(".")[1],this.patch=n.split(".").slice(2).join(".")}}const HD=new xi("15.1.0"),tl={};function rl(e){return e.ngOriginalError}class dr{constructor(){this._console=console}handleError(n){const t=this._findOriginalError(n);this._console.error("ERROR",n),t&&this._console.error("ORIGINAL ERROR",t)}_findOriginalError(n){let t=n&&rl(n);for(;t&&rl(t);)t=rl(t);return t||null}}function ol(e){return e.ownerDocument.defaultView}function $f(e,n,t){let r=e.length;for(;;){const o=e.indexOf(n,t);if(-1===o)return o;if(0===o||e.charCodeAt(o-1)<=32){const i=n.length;if(o+i===r||e.charCodeAt(o+i)<=32)return o}t=o+1}}const Uf="ng-template";function YD(e,n,t){let r=0;for(;ri?"":o[d+1].toLowerCase();const p=8&r?h:null;if(p&&-1!==$f(p,c,0)||2&r&&c!==h){if(wt(r))return!1;s=!0}}}}else{if(!s&&!wt(r)&&!wt(l))return!1;if(s&&wt(l))continue;s=!1,r=l|1&r}}return wt(r)||s}function wt(e){return 0==(1&e)}function XD(e,n,t,r){if(null===n)return-1;let o=0;if(r||!t){let i=!1;for(;o-1)for(t++;t0?'="'+a+'"':"")+"]"}else 8&r?o+="."+s:4&r&&(o+=" "+s);else""!==o&&!wt(s)&&(n+=Wf(i,o),o=""),r=s,i=i||!wt(r);t++}return""!==o&&(n+=Wf(i,o)),n}const z={};function f(e){qf(ee(),E(),Ze()+e,!1)}function qf(e,n,t,r){if(!r)if(3==(3&n[2])){const i=e.preOrderCheckHooks;null!==i&&li(n,i,t)}else{const i=e.preOrderHooks;null!==i&&ci(n,i,0,t)}An(t)}function Kf(e,n=null,t=null,r){const o=Jf(e,n,t,r);return o.resolveInjectorInitializers(),o}function Jf(e,n=null,t=null,r,o=new Set){const i=[t||te,ED(e)];return r=r||("object"==typeof e?void 0:le(e)),new kf(i,n||Ai(),r||null,o)}let dn=(()=>{class e{static create(t,r){if(Array.isArray(t))return Kf({name:""},r,t,"");{const o=t.name??"";return Kf({name:o},t.parent,t.providers,o)}}}return e.THROW_IF_NOT_FOUND=Pr,e.NULL=new Nf,e.\u0275prov=de({token:e,providedIn:"any",factory:()=>oe(Tf)}),e.__NG_ELEMENT_ID__=-1,e})();function M(e,n=B.Default){const t=E();return null===t?oe(e,n):Md(Pe(),t,P(e),n)}function ih(e,n){const t=e.contentQueries;if(null!==t)for(let r=0;r22&&qf(e,n,22,!1),t(r,o)}finally{An(i)}}function dl(e,n,t){if(Xs(n)){const o=n.directiveEnd;for(let i=n.directiveStart;i0;){const t=e[--n];if("number"==typeof t&&t<0)return t}return 0})(s)!=a&&s.push(a),s.push(t,r,i)}}(e,n,r,oo(e,t,o.hostVars,z),o)}function Pt(e,n,t,r,o,i){const s=it(e,n);!function _l(e,n,t,r,o,i,s){if(null==i)e.removeAttribute(n,o,t);else{const a=null==s?j(i):s(i,r||"",o);e.setAttribute(n,o,a,t)}}(n[Z],s,i,e.value,t,r,o)}function Gw(e,n,t,r,o,i){const s=i[n];if(null!==s){const a=r.setInput;for(let l=0;l0&&vl(t)}}function vl(e){for(let r=Na(e);null!==r;r=Fa(r))for(let o=10;o0&&vl(i)}const t=e[1].components;if(null!==t)for(let r=0;r0&&vl(o)}}function Yw(e,n){const t=st(n,e),r=t[1];(function Kw(e,n){for(let t=n.length;t-1&&(Pa(n,r),gi(t,r))}this._attachedToViewContainer=!1}nf(this._lView[1],this._lView)}onDestroy(n){!function lh(e,n,t,r){const o=gh(n);null===t?o.push(r):(o.push(t),e.firstCreatePass&&mh(e).push(r,o.length-1))}(this._lView[1],this._lView,null,n)}markForCheck(){yl(this._cdRefInjectingView||this._lView)}detach(){this._lView[2]&=-65}reattach(){this._lView[2]|=64}detectChanges(){Pi(this._lView[1],this._lView,this.context)}checkNoChanges(){}attachToViewContainerRef(){if(this._appRef)throw new A(902,!1);this._attachedToViewContainer=!0}detachFromAppRef(){this._appRef=null,function BC(e,n){eo(e,n,n[Z],2,null,null)}(this._lView[1],this._lView)}attachToAppRef(n){if(this._attachedToViewContainer)throw new A(902,!1);this._appRef=n}}class Jw extends io{constructor(n){super(n),this._view=n}detectChanges(){const n=this._view;Pi(n[1],n,n[8],!1)}checkNoChanges(){}get context(){return null}}class yh extends Ti{constructor(n){super(),this.ngModule=n}resolveComponentFactory(n){const t=ie(n);return new so(t,this.ngModule)}}function Ch(e){const n=[];for(let t in e)e.hasOwnProperty(t)&&n.push({propName:e[t],templateName:t});return n}class eb{constructor(n,t){this.injector=n,this.parentInjector=t}get(n,t,r){r=Jo(r);const o=this.injector.get(n,tl,r);return o!==tl||t===tl?o:this.parentInjector.get(n,t,r)}}class so extends Vf{get inputs(){return Ch(this.componentDef.inputs)}get outputs(){return Ch(this.componentDef.outputs)}constructor(n,t){super(),this.componentDef=n,this.ngModule=t,this.componentType=n.type,this.selector=function iw(e){return e.map(ow).join(",")}(n.selectors),this.ngContentSelectors=n.ngContentSelectors?n.ngContentSelectors:[],this.isBoundToModule=!!t}create(n,t,r,o){let i=(o=o||this.ngModule)instanceof lr?o:o?.injector;i&&null!==this.componentDef.getStandaloneInjector&&(i=this.componentDef.getStandaloneInjector(i)||i);const s=i?new eb(n,i):n,a=s.get(Hf,null);if(null===a)throw new A(407,!1);const l=s.get(BD,null),c=a.createRenderer(null,this.componentDef),u=this.componentDef.selectors[0][0]||"div",d=r?function xw(e,n,t){return e.selectRootElement(n,t===xt.ShadowDom)}(c,r,this.componentDef.encapsulation):Ra(c,u,function Xw(e){const n=e.toLowerCase();return"svg"===n?"svg":"math"===n?"math":null}(u)),h=this.componentDef.onPush?288:272,p=pl(0,null,null,1,0,null,null,null,null,null),m=Fi(null,p,null,h,null,null,a,c,l,s,null);let D,I;aa(m);try{const S=this.componentDef;let O,b=null;S.findHostDirectiveDefs?(O=[],b=new Map,S.findHostDirectiveDefs(S,O,b),O.push(S)):O=[S];const V=function nb(e,n){const t=e[1];return e[22]=n,pr(t,22,2,"#host",null)}(m,d),ce=function rb(e,n,t,r,o,i,s,a){const l=o[1];!function ob(e,n,t,r){for(const o of e)n.mergedAttrs=Wr(n.mergedAttrs,o.hostAttrs);null!==n.mergedAttrs&&(ki(n,n.mergedAttrs,!0),null!==t&&gf(r,t,n))}(r,e,n,s);const c=i.createRenderer(n,t),u=Fi(o,ah(t),null,t.onPush?32:16,o[e.index],e,i,c,a||null,null,null);return l.firstCreatePass&&ml(l,e,r.length-1),Ri(o,u),o[e.index]=u}(V,d,S,O,m,a,c);I=td(p,22),d&&function sb(e,n,t,r){if(r)da(e,t,["ng-version",HD.full]);else{const{attrs:o,classes:i}=function sw(e){const n=[],t=[];let r=1,o=2;for(;r0&&pf(e,t,i.join(" "))}}(c,S,d,r),void 0!==t&&function ab(e,n,t){const r=e.projection=[];for(let o=0;o=0;r--){const o=e[r];o.hostVars=n+=o.hostVars,o.hostAttrs=Wr(o.hostAttrs,t=Wr(t,o.hostAttrs))}}(r)}function wl(e){return e===Ut?{}:e===te?[]:e}function ub(e,n){const t=e.viewQuery;e.viewQuery=t?(r,o)=>{n(r,o),t(r,o)}:n}function db(e,n){const t=e.contentQueries;e.contentQueries=t?(r,o,i)=>{n(r,o,i),t(r,o,i)}:n}function fb(e,n){const t=e.hostBindings;e.hostBindings=t?(r,o)=>{n(r,o),t(r,o)}:n}let Vi=null;function Pn(){if(!Vi){const e=fe.Symbol;if(e&&e.iterator)Vi=e.iterator;else{const n=Object.getOwnPropertyNames(Map.prototype);for(let t=0;ts(Re(V[r.index])):r.index;let b=null;if(!s&&a&&(b=function Sb(e,n,t,r){const o=e.cleanup;if(null!=o)for(let i=0;il?a[l]:null}"string"==typeof s&&(i+=2)}return null}(e,n,o,r.index)),null!==b)(b.__ngLastListenerFn__||b).__ngNextListenerFn__=i,b.__ngLastListenerFn__=i,h=!1;else{i=Hh(r,n,u,i,!1);const V=t.listen(I,o,i);d.push(i,V),c&&c.push(o,O,S,S+1)}}else i=Hh(r,n,u,i,!1);const p=r.outputs;let m;if(h&&null!==p&&(m=p[o])){const D=m.length;if(D)for(let I=0;I-1?st(e.index,n):n);let l=Bh(n,0,r,s),c=i.__ngNextListenerFn__;for(;c;)l=Bh(n,0,c,s)&&l,c=c.__ngNextListenerFn__;return o&&!1===l&&(s.preventDefault(),s.returnValue=!1),l}}function _(e=1){return function Oy(e){return(U.lFrame.contextLView=function Ry(e,n){for(;e>0;)n=n[15],e--;return n}(e,U.lFrame.contextLView))[8]}(e)}function fn(e,n,t){return Il(e,"",n,"",t),fn}function Il(e,n,t,r,o){const i=E(),s=mr(i,n,t,r);return s!==z&<(ee(),_e(),i,e,s,i[Z],o,!1),Il}function ji(e,n){return e<<17|n<<2}function hn(e){return e>>17&32767}function Ml(e){return 2|e}function Ln(e){return(131068&e)>>2}function Sl(e,n){return-131069&e|n<<2}function Al(e){return 1|e}function Qh(e,n,t,r,o){const i=e[t+1],s=null===n;let a=r?hn(i):Ln(i),l=!1;for(;0!==a&&(!1===l||s);){const u=e[a+1];kb(e[a],n)&&(l=!0,e[a+1]=r?Al(u):Ml(u)),a=r?hn(u):Ln(u)}l&&(e[t+1]=r?Ml(i):Al(i))}function kb(e,n){return null===e||null==n||(Array.isArray(e)?e[1]:e)===n||!(!Array.isArray(e)||"string"!=typeof n)&&ir(e,n)>=0}const xe={textEnd:0,key:0,keyEnd:0,value:0,valueEnd:0};function Yh(e){return e.substring(xe.key,xe.keyEnd)}function Kh(e,n){const t=xe.textEnd;return t===n?-1:(n=xe.keyEnd=function Hb(e,n,t){for(;n32;)n++;return n}(e,xe.key=n,t),Er(e,n,t))}function Er(e,n,t){for(;n=0;t=Kh(n,t))at(e,Yh(n),!0)}function rp(e,n){return n>=e.expandoStartIndex}function op(e,n,t,r){const o=e.data;if(null===o[t+1]){const i=o[Ze()],s=rp(e,t);lp(i,r)&&null===n&&!s&&(n=!1),n=function Gb(e,n,t,r){const o=function ia(e){const n=U.lFrame.currentDirectiveIndex;return-1===n?null:e[n]}(e);let i=r?n.residualClasses:n.residualStyles;if(null===o)0===(r?n.classBindings:n.styleBindings)&&(t=co(t=Tl(null,e,n,t,r),n.attrs,r),i=null);else{const s=n.directiveStylingLast;if(-1===s||e[s]!==o)if(t=Tl(o,e,n,t,r),null===i){let l=function Wb(e,n,t){const r=t?n.classBindings:n.styleBindings;if(0!==Ln(r))return e[hn(r)]}(e,n,r);void 0!==l&&Array.isArray(l)&&(l=Tl(null,e,n,l[1],r),l=co(l,n.attrs,r),function qb(e,n,t,r){e[hn(t?n.classBindings:n.styleBindings)]=r}(e,n,r,l))}else i=function Zb(e,n,t){let r;const o=n.directiveEnd;for(let i=1+n.directiveStylingLast;i0)&&(c=!0)):u=t,o)if(0!==l){const h=hn(e[a+1]);e[r+1]=ji(h,a),0!==h&&(e[h+1]=Sl(e[h+1],r)),e[a+1]=function Fb(e,n){return 131071&e|n<<17}(e[a+1],r)}else e[r+1]=ji(a,0),0!==a&&(e[a+1]=Sl(e[a+1],r)),a=r;else e[r+1]=ji(l,0),0===a?a=r:e[l+1]=Sl(e[l+1],r),l=r;c&&(e[r+1]=Ml(e[r+1])),Qh(e,u,r,!0),Qh(e,u,r,!1),function Pb(e,n,t,r,o){const i=o?e.residualClasses:e.residualStyles;null!=i&&"string"==typeof n&&ir(i,n)>=0&&(t[r+1]=Al(t[r+1]))}(n,u,e,r,i),s=ji(a,l),i?n.classBindings=s:n.styleBindings=s}(o,i,n,t,s,r)}}function Tl(e,n,t,r,o){let i=null;const s=t.directiveEnd;let a=t.directiveStylingLast;for(-1===a?a=t.directiveStart:a++;a0;){const l=e[o],c=Array.isArray(l),u=c?l[1]:l,d=null===u;let h=t[o+1];h===z&&(h=d?te:void 0);let p=d?Ca(h,r):u===r?h:void 0;if(c&&!Ui(p)&&(p=Ca(l,r)),Ui(p)&&(a=p,s))return a;const m=e[o+1];o=s?hn(m):Ln(m)}if(null!==n){let l=i?n.residualClasses:n.residualStyles;null!=l&&(a=Ca(l,r))}return a}function Ui(e){return void 0!==e}function lp(e,n){return 0!=(e.flags&(n?8:16))}function w(e,n=""){const t=E(),r=ee(),o=e+22,i=r.firstCreatePass?pr(r,o,1,n,null):r.data[o],s=t[o]=function Oa(e,n){return e.createText(n)}(t[Z],n);wi(r,t,s,i),Ot(i,!1)}function F(e){return G("",e,""),F}function G(e,n,t){const r=E(),o=mr(r,e,n,t);return o!==z&&function Kt(e,n,t){const r=ii(n,e);!function ef(e,n,t){e.setValue(n,t)}(e[Z],r,t)}(r,Ze(),o),G}function Bt(e,n,t){!function It(e,n,t,r){const o=ee(),i=Zt(2);o.firstUpdatePass&&op(o,null,i,r);const s=E();if(t!==z&&je(s,i,t)){const a=o.data[Ze()];if(lp(a,r)&&!rp(o,i)){let l=r?a.classesWithoutHost:a.stylesWithoutHost;null!==l&&(t=$s(l,t||"")),El(o,a,s,t,r)}else!function Yb(e,n,t,r,o,i,s,a){o===z&&(o=te);let l=0,c=0,u=0>20;if(On(e)||!e.multi){const p=new Gr(l,o,M),m=Rl(a,n,o?u:u+h,d);-1===m?(ga(hi(c,s),i,a),Ol(i,e,n.length),n.push(a),c.directiveStart++,c.directiveEnd++,o&&(c.providerIndexes+=1048576),t.push(p),s.push(p)):(t[m]=p,s[m]=p)}else{const p=Rl(a,n,u+h,d),m=Rl(a,n,u,u+h),I=m>=0&&t[m];if(o&&!I||!o&&!(p>=0&&t[p])){ga(hi(c,s),i,a);const S=function gE(e,n,t,r,o){const i=new Gr(e,t,M);return i.multi=[],i.index=n,i.componentProviders=0,tg(i,o,r&&!t),i}(o?pE:hE,t.length,o,r,l);!o&&I&&(t[m].providerFactory=S),Ol(i,e,n.length,0),n.push(a),c.directiveStart++,c.directiveEnd++,o&&(c.providerIndexes+=1048576),t.push(S),s.push(S)}else Ol(i,e,p>-1?p:m,tg(t[o?m:p],l,!o&&r));!o&&r&&I&&t[m].componentProviders++}}}function Ol(e,n,t,r){const o=On(n),i=function MD(e){return!!e.useClass}(n);if(o||i){const l=(i?P(n.useClass):n).prototype.ngOnDestroy;if(l){const c=e.destroyHooks||(e.destroyHooks=[]);if(!o&&n.multi){const u=c.indexOf(t);-1===u?c.push(t,[r,l]):c[u+1].push(r,l)}else c.push(t,l)}}}function tg(e,n,t){return t&&e.componentProviders++,e.multi.push(n)-1}function Rl(e,n,t,r){for(let o=t;o{t.providersResolver=(r,o)=>function fE(e,n,t){const r=ee();if(r.firstCreatePass){const o=Ct(e);Fl(t,r.data,r.blueprint,o,!0),Fl(n,r.data,r.blueprint,o,!1)}}(r,o?o(e):e,n)}}class Sr{}class mE{}class ng extends Sr{constructor(n,t){super(),this._parent=t,this._bootstrapComponents=[],this.destroyCbs=[],this.componentFactoryResolver=new yh(this);const r=function rt(e,n){const t=e[ju]||null;if(!t&&!0===n)throw new Error(`Type ${le(e)} does not have '\u0275mod' property.`);return t}(n);this._bootstrapComponents=function Yt(e){return e instanceof Function?e():e}(r.bootstrap),this._r3Injector=Jf(n,t,[{provide:Sr,useValue:this},{provide:Ti,useValue:this.componentFactoryResolver}],le(n),new Set(["environment"])),this._r3Injector.resolveInjectorInitializers(),this.instance=this._r3Injector.get(n)}get injector(){return this._r3Injector}destroy(){const n=this._r3Injector;!n.destroyed&&n.destroy(),this.destroyCbs.forEach(t=>t()),this.destroyCbs=null}onDestroy(n){this.destroyCbs.push(n)}}class kl extends mE{constructor(n){super(),this.moduleType=n}create(n){return new ng(this.moduleType,n)}}function Zi(e,n,t,r){return function ug(e,n,t,r,o,i){const s=n+t;return je(e,s,o)?kt(e,s+1,i?r.call(i,o):r(o)):mo(e,s+1)}(E(),qe(),e,n,t,r)}function Vl(e,n,t,r,o){return function dg(e,n,t,r,o,i,s){const a=n+t;return kn(e,a,o,i)?kt(e,a+2,s?r.call(s,o,i):r(o,i)):mo(e,a+2)}(E(),qe(),e,n,t,r,o)}function Oe(e,n,t,r,o,i){return fg(E(),qe(),e,n,t,r,o,i)}function mo(e,n){const t=e[n];return t===z?void 0:t}function fg(e,n,t,r,o,i,s,a){const l=n+t;return function Bi(e,n,t,r,o){const i=kn(e,n,t,r);return je(e,n+2,o)||i}(e,l,o,i,s)?kt(e,l+3,a?r.call(a,o,i,s):r(o,i,s)):mo(e,l+3)}function Bl(e){return n=>{setTimeout(e,void 0,n)}}const be=class jE extends Rs{constructor(n=!1){super(),this.__isAsync=n}emit(n){super.next(n)}subscribe(n,t,r){let o=n,i=t||(()=>null),s=r;if(n&&"object"==typeof n){const l=n;o=l.next?.bind(l),i=l.error?.bind(l),s=l.complete?.bind(l)}this.__isAsync&&(i=Bl(i),o&&(o=Bl(o)),s&&(s=Bl(s)));const a=super.subscribe({next:o,error:i,complete:s});return n instanceof Tt&&n.add(a),a}};let Jt=(()=>{class e{}return e.__NG_ELEMENT_ID__=GE,e})();const UE=Jt,zE=class extends UE{constructor(n,t,r){super(),this._declarationLView=n,this._declarationTContainer=t,this.elementRef=r}createEmbeddedView(n,t){const r=this._declarationTContainer.tViews,o=Fi(this._declarationLView,r,n,16,null,r.declTNode,null,null,null,null,t||null);o[17]=this._declarationLView[this._declarationTContainer.index];const s=this._declarationLView[19];return null!==s&&(o[19]=s.createEmbeddedView(r)),ul(r,o,n),new io(o)}};function GE(){return function Qi(e,n){return 4&e.type?new zE(n,e,ur(e,n)):null}(Pe(),E())}let Ht=(()=>{class e{}return e.__NG_ELEMENT_ID__=WE,e})();function WE(){return function yg(e,n){let t;const r=n[e.index];if(yt(r))t=r;else{let o;if(8&e.type)o=Re(r);else{const i=n[Z];o=i.createComment("");const s=it(e,n);Nn(i,Di(i,s),o,function WC(e,n){return e.nextSibling(n)}(i,s),!1)}n[e.index]=t=ph(r,n,o,e),Ri(n,t)}return new _g(t,e,n)}(Pe(),E())}const qE=Ht,_g=class extends qE{constructor(n,t,r){super(),this._lContainer=n,this._hostTNode=t,this._hostLView=r}get element(){return ur(this._hostTNode,this._hostLView)}get injector(){return new er(this._hostTNode,this._hostLView)}get parentInjector(){const n=pa(this._hostTNode,this._hostLView);if(Cd(n)){const t=di(n,this._hostLView),r=ui(n);return new er(t[1].data[r+8],t)}return new er(null,this._hostLView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(n){const t=vg(this._lContainer);return null!==t&&t[n]||null}get length(){return this._lContainer.length-10}createEmbeddedView(n,t,r){let o,i;"number"==typeof r?o=r:null!=r&&(o=r.index,i=r.injector);const s=n.createEmbeddedView(t||{},i);return this.insert(s,o),s}createComponent(n,t,r,o,i){const s=n&&!function Zr(e){return"function"==typeof e}(n);let a;if(s)a=t;else{const d=t||{};a=d.index,r=d.injector,o=d.projectableNodes,i=d.environmentInjector||d.ngModuleRef}const l=s?n:new so(ie(n)),c=r||this.parentInjector;if(!i&&null==l.ngModule){const h=(s?c:this.parentInjector).get(lr,null);h&&(i=h)}const u=l.create(c,o,void 0,i);return this.insert(u.hostView,a),u}insert(n,t){const r=n._lView,o=r[1];if(function wy(e){return yt(e[3])}(r)){const u=this.indexOf(n);if(-1!==u)this.detach(u);else{const d=r[3],h=new _g(d,d[6],d[3]);h.detach(h.indexOf(n))}}const i=this._adjustIndex(t),s=this._lContainer;!function jC(e,n,t,r){const o=10+r,i=t.length;r>0&&(t[o-1][4]=n),r{class e{constructor(t){this.appInits=t,this.resolve=Ki,this.reject=Ki,this.initialized=!1,this.done=!1,this.donePromise=new Promise((r,o)=>{this.resolve=r,this.reject=o})}runInitializers(){if(this.initialized)return;const t=[],r=()=>{this.done=!0,this.resolve()};if(this.appInits)for(let o=0;o{i.subscribe({complete:a,error:l})});t.push(s)}}Promise.all(t).then(()=>{r()}).catch(o=>{this.reject(o)}),0===t.length&&r(),this.initialized=!0}}return e.\u0275fac=function(t){return new(t||e)(oe(Ug,8))},e.\u0275prov=de({token:e,factory:e.\u0275fac,providedIn:"root"}),e})();const yo=new H("AppId",{providedIn:"root",factory:function zg(){return`${Kl()}${Kl()}${Kl()}`}});function Kl(){return String.fromCharCode(97+Math.floor(25*Math.random()))}const Gg=new H("Platform Initializer"),Wg=new H("Platform ID",{providedIn:"platform",factory:()=>"unknown"}),E1=new H("appBootstrapListener"),Xt=new H("LocaleId",{providedIn:"root",factory:()=>function oy(e,n=B.Default){return oe(e,Jo(n))}(Xt,B.Optional|B.SkipSelf)||function I1(){return typeof $localize<"u"&&$localize.locale||Mr}()}),x1=(()=>Promise.resolve(0))();function Jl(e){typeof Zone>"u"?x1.then(()=>{e&&e.apply(null,null)}):Zone.current.scheduleMicroTask("scheduleMicrotask",e)}class $e{constructor({enableLongStackTrace:n=!1,shouldCoalesceEventChangeDetection:t=!1,shouldCoalesceRunChangeDetection:r=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new be(!1),this.onMicrotaskEmpty=new be(!1),this.onStable=new be(!1),this.onError=new be(!1),typeof Zone>"u")throw new A(908,!1);Zone.assertZonePatched();const o=this;o._nesting=0,o._outer=o._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(o._inner=o._inner.fork(new Zone.TaskTrackingZoneSpec)),n&&Zone.longStackTraceZoneSpec&&(o._inner=o._inner.fork(Zone.longStackTraceZoneSpec)),o.shouldCoalesceEventChangeDetection=!r&&t,o.shouldCoalesceRunChangeDetection=r,o.lastRequestAnimationFrameId=-1,o.nativeRequestAnimationFrame=function N1(){let e=fe.requestAnimationFrame,n=fe.cancelAnimationFrame;if(typeof Zone<"u"&&e&&n){const t=e[Zone.__symbol__("OriginalDelegate")];t&&(e=t);const r=n[Zone.__symbol__("OriginalDelegate")];r&&(n=r)}return{nativeRequestAnimationFrame:e,nativeCancelAnimationFrame:n}}().nativeRequestAnimationFrame,function R1(e){const n=()=>{!function O1(e){e.isCheckStableRunning||-1!==e.lastRequestAnimationFrameId||(e.lastRequestAnimationFrameId=e.nativeRequestAnimationFrame.call(fe,()=>{e.fakeTopEventTask||(e.fakeTopEventTask=Zone.root.scheduleEventTask("fakeTopEventTask",()=>{e.lastRequestAnimationFrameId=-1,ec(e),e.isCheckStableRunning=!0,Xl(e),e.isCheckStableRunning=!1},void 0,()=>{},()=>{})),e.fakeTopEventTask.invoke()}),ec(e))}(e)};e._inner=e._inner.fork({name:"angular",properties:{isAngularZone:!0},onInvokeTask:(t,r,o,i,s,a)=>{try{return Qg(e),t.invokeTask(o,i,s,a)}finally{(e.shouldCoalesceEventChangeDetection&&"eventTask"===i.type||e.shouldCoalesceRunChangeDetection)&&n(),Yg(e)}},onInvoke:(t,r,o,i,s,a,l)=>{try{return Qg(e),t.invoke(o,i,s,a,l)}finally{e.shouldCoalesceRunChangeDetection&&n(),Yg(e)}},onHasTask:(t,r,o,i)=>{t.hasTask(o,i),r===o&&("microTask"==i.change?(e._hasPendingMicrotasks=i.microTask,ec(e),Xl(e)):"macroTask"==i.change&&(e.hasPendingMacrotasks=i.macroTask))},onHandleError:(t,r,o,i)=>(t.handleError(o,i),e.runOutsideAngular(()=>e.onError.emit(i)),!1)})}(o)}static isInAngularZone(){return typeof Zone<"u"&&!0===Zone.current.get("isAngularZone")}static assertInAngularZone(){if(!$e.isInAngularZone())throw new A(909,!1)}static assertNotInAngularZone(){if($e.isInAngularZone())throw new A(909,!1)}run(n,t,r){return this._inner.run(n,t,r)}runTask(n,t,r,o){const i=this._inner,s=i.scheduleEventTask("NgZoneEvent: "+o,n,F1,Ki,Ki);try{return i.runTask(s,t,r)}finally{i.cancelTask(s)}}runGuarded(n,t,r){return this._inner.runGuarded(n,t,r)}runOutsideAngular(n){return this._outer.run(n)}}const F1={};function Xl(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 ec(e){e.hasPendingMicrotasks=!!(e._hasPendingMicrotasks||(e.shouldCoalesceEventChangeDetection||e.shouldCoalesceRunChangeDetection)&&-1!==e.lastRequestAnimationFrameId)}function Qg(e){e._nesting++,e.isStable&&(e.isStable=!1,e.onUnstable.emit(null))}function Yg(e){e._nesting--,Xl(e)}class P1{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new be,this.onMicrotaskEmpty=new be,this.onStable=new be,this.onError=new be}run(n,t,r){return n.apply(t,r)}runGuarded(n,t,r){return n.apply(t,r)}runOutsideAngular(n){return n()}runTask(n,t,r,o){return n.apply(t,r)}}const Kg=new H(""),Xi=new H("");let rc,tc=(()=>{class e{constructor(t,r,o){this._ngZone=t,this.registry=r,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,rc||(function k1(e){rc=e}(o),o.addToWindow(r)),this._watchAngularEvents(),t.run(()=>{this.taskTrackingZone=typeof Zone>"u"?null:Zone.current.get("TaskTrackingZone")})}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._didWork=!0,this._isZoneStable=!1}}),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.subscribe({next:()=>{$e.assertNotInAngularZone(),Jl(()=>{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())Jl(()=>{for(;0!==this._callbacks.length;){let t=this._callbacks.pop();clearTimeout(t.timeoutId),t.doneCb(this._didWork)}this._didWork=!1});else{let t=this.getPendingTasks();this._callbacks=this._callbacks.filter(r=>!r.updateCb||!r.updateCb(t)||(clearTimeout(r.timeoutId),!1)),this._didWork=!0}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(t=>({source:t.source,creationLocation:t.creationLocation,data:t.data})):[]}addCallback(t,r,o){let i=-1;r&&r>0&&(i=setTimeout(()=>{this._callbacks=this._callbacks.filter(s=>s.timeoutId!==i),t(this._didWork,this.getPendingTasks())},r)),this._callbacks.push({doneCb:t,timeoutId:i,updateCb:o})}whenStable(t,r,o){if(o&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is "zone.js/plugins/task-tracking" loaded?');this.addCallback(t,r,o),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}registerApplication(t){this.registry.registerApplication(t,this)}unregisterApplication(t){this.registry.unregisterApplication(t)}findProviders(t,r,o){return[]}}return e.\u0275fac=function(t){return new(t||e)(oe($e),oe(nc),oe(Xi))},e.\u0275prov=de({token:e,factory:e.\u0275fac}),e})(),nc=(()=>{class e{constructor(){this._applications=new Map}registerApplication(t,r){this._applications.set(t,r)}unregisterApplication(t){this._applications.delete(t)}unregisterAllApplications(){this._applications.clear()}getTestability(t){return this._applications.get(t)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(t,r=!0){return rc?.findTestabilityInTree(this,t,r)??null}}return e.\u0275fac=function(t){return new(t||e)},e.\u0275prov=de({token:e,factory:e.\u0275fac,providedIn:"platform"}),e})(),pn=null;const Jg=new H("AllowMultipleToken"),oc=new H("PlatformDestroyListeners");function em(e,n,t=[]){const r=`Platform: ${n}`,o=new H(r);return(i=[])=>{let s=ic();if(!s||s.injector.get(Jg,!1)){const a=[...t,...i,{provide:o,useValue:!0}];e?e(a):function B1(e){if(pn&&!pn.get(Jg,!1))throw new A(400,!1);pn=e;const n=e.get(nm);(function Xg(e){const n=e.get(Gg,null);n&&n.forEach(t=>t())})(e)}(function tm(e=[],n){return dn.create({name:n,providers:[{provide:Ka,useValue:"platform"},{provide:oc,useValue:new Set([()=>pn=null])},...e]})}(a,r))}return function j1(e){const n=ic();if(!n)throw new A(401,!1);return n}()}}function ic(){return pn?.get(nm)??null}let nm=(()=>{class e{constructor(t){this._injector=t,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(t,r){const o=function om(e,n){let t;return t="noop"===e?new P1:("zone.js"===e?void 0:e)||new $e(n),t}(r?.ngZone,function rm(e){return{enableLongStackTrace:!1,shouldCoalesceEventChangeDetection:!(!e||!e.ngZoneEventCoalescing)||!1,shouldCoalesceRunChangeDetection:!(!e||!e.ngZoneRunCoalescing)||!1}}(r)),i=[{provide:$e,useValue:o}];return o.run(()=>{const s=dn.create({providers:i,parent:this.injector,name:t.moduleType.name}),a=t.create(s),l=a.injector.get(dr,null);if(!l)throw new A(402,!1);return o.runOutsideAngular(()=>{const c=o.onError.subscribe({next:u=>{l.handleError(u)}});a.onDestroy(()=>{es(this._modules,a),c.unsubscribe()})}),function im(e,n,t){try{const r=t();return Hi(r)?r.catch(o=>{throw n.runOutsideAngular(()=>e.handleError(o)),o}):r}catch(r){throw n.runOutsideAngular(()=>e.handleError(r)),r}}(l,o,()=>{const c=a.injector.get(Ji);return c.runInitializers(),c.donePromise.then(()=>(function Np(e){ut(e,"Expected localeId to be defined"),"string"==typeof e&&(xp=e.toLowerCase().replace(/_/g,"-"))}(a.injector.get(Xt,Mr)||Mr),this._moduleDoBootstrap(a),a))})})}bootstrapModule(t,r=[]){const o=sm({},r);return function L1(e,n,t){const r=new kl(t);return Promise.resolve(r)}(0,0,t).then(i=>this.bootstrapModuleFactory(i,o))}_moduleDoBootstrap(t){const r=t.injector.get(sc);if(t._bootstrapComponents.length>0)t._bootstrapComponents.forEach(o=>r.bootstrap(o));else{if(!t.instance.ngDoBootstrap)throw new A(-403,!1);t.instance.ngDoBootstrap(r)}this._modules.push(t)}onDestroy(t){this._destroyListeners.push(t)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new A(404,!1);this._modules.slice().forEach(r=>r.destroy()),this._destroyListeners.forEach(r=>r());const t=this._injector.get(oc,null);t&&(t.forEach(r=>r()),t.clear()),this._destroyed=!0}get destroyed(){return this._destroyed}}return e.\u0275fac=function(t){return new(t||e)(oe(dn))},e.\u0275prov=de({token:e,factory:e.\u0275fac,providedIn:"platform"}),e})();function sm(e,n){return Array.isArray(n)?n.reduce(sm,e):{...e,...n}}let sc=(()=>{class e{get destroyed(){return this._destroyed}get injector(){return this._injector}constructor(t,r,o){this._zone=t,this._injector=r,this._exceptionHandler=o,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._stable=!0,this._destroyed=!1,this._destroyListeners=[],this.componentTypes=[],this.components=[],this._onMicrotaskEmptySubscription=this._zone.onMicrotaskEmpty.subscribe({next:()=>{this._zone.run(()=>{this.tick()})}});const i=new ze(a=>{this._stable=this._zone.isStable&&!this._zone.hasPendingMacrotasks&&!this._zone.hasPendingMicrotasks,this._zone.runOutsideAngular(()=>{a.next(this._stable),a.complete()})}),s=new ze(a=>{let l;this._zone.runOutsideAngular(()=>{l=this._zone.onStable.subscribe(()=>{$e.assertNotInAngularZone(),Jl(()=>{!this._stable&&!this._zone.hasPendingMacrotasks&&!this._zone.hasPendingMicrotasks&&(this._stable=!0,a.next(!0))})})});const c=this._zone.onUnstable.subscribe(()=>{$e.assertInAngularZone(),this._stable&&(this._stable=!1,this._zone.runOutsideAngular(()=>{a.next(!1)}))});return()=>{l.unsubscribe(),c.unsubscribe()}});this.isStable=jv(i,s.pipe(function Uv(e={}){const{connector:n=(()=>new Rs),resetOnError:t=!0,resetOnComplete:r=!0,resetOnRefCountZero:o=!0}=e;return i=>{let s=null,a=null,l=null,c=0,u=!1,d=!1;const h=()=>{a?.unsubscribe(),a=null},p=()=>{h(),s=l=null,u=d=!1},m=()=>{const D=s;p(),D?.unsubscribe()};return zn((D,I)=>{c++,!d&&!u&&h();const S=l=l??n();I.add(()=>{c--,0===c&&!d&&!u&&(a=Hs(m,o))}),S.subscribe(I),s||(s=new xs({next:O=>S.next(O),error:O=>{d=!0,h(),a=Hs(p,t,O),S.error(O)},complete:()=>{u=!0,h(),a=Hs(p,r),S.complete()}}),Bs(D).subscribe(s))})(i)}}()))}bootstrap(t,r){const o=t instanceof Vf;if(!this._injector.get(Ji).done)throw!o&&function Br(e){const n=ie(e)||ke(e)||Ge(e);return null!==n&&n.standalone}(t),new A(405,false);let s;s=o?t:this._injector.get(Ti).resolveComponentFactory(t),this.componentTypes.push(s.componentType);const a=function V1(e){return e.isBoundToModule}(s)?void 0:this._injector.get(Sr),c=s.create(dn.NULL,[],r||s.selector,a),u=c.location.nativeElement,d=c.injector.get(Kg,null);return d?.registerApplication(u),c.onDestroy(()=>{this.detachView(c.hostView),es(this.components,c),d?.unregisterApplication(u)}),this._loadComponent(c),c}tick(){if(this._runningTick)throw new A(101,!1);try{this._runningTick=!0;for(let t of this._views)t.detectChanges()}catch(t){this._zone.runOutsideAngular(()=>this._exceptionHandler.handleError(t))}finally{this._runningTick=!1}}attachView(t){const r=t;this._views.push(r),r.attachToAppRef(this)}detachView(t){const r=t;es(this._views,r),r.detachFromAppRef()}_loadComponent(t){this.attachView(t.hostView),this.tick(),this.components.push(t);const r=this._injector.get(E1,[]);r.push(...this._bootstrapListeners),r.forEach(o=>o(t))}ngOnDestroy(){if(!this._destroyed)try{this._destroyListeners.forEach(t=>t()),this._views.slice().forEach(t=>t.destroy()),this._onMicrotaskEmptySubscription.unsubscribe()}finally{this._destroyed=!0,this._views=[],this._bootstrapListeners=[],this._destroyListeners=[]}}onDestroy(t){return this._destroyListeners.push(t),()=>es(this._destroyListeners,t)}destroy(){if(this._destroyed)throw new A(406,!1);const t=this._injector;t.destroy&&!t.destroyed&&t.destroy()}get viewCount(){return this._views.length}warnIfDestroyed(){}}return e.\u0275fac=function(t){return new(t||e)(oe($e),oe(lr),oe(dr))},e.\u0275prov=de({token:e,factory:e.\u0275fac,providedIn:"root"}),e})();function es(e,n){const t=e.indexOf(n);t>-1&&e.splice(t,1)}let cm=(()=>{class e{}return e.__NG_ELEMENT_ID__=U1,e})();function U1(e){return function z1(e,n,t){if(Ur(e)&&!t){const r=st(e.index,n);return new io(r,r)}return 47&e.type?new io(n[16],n):null}(Pe(),E(),16==(16&e))}class fm{constructor(){}supports(n){return ao(n)}create(n){return new Y1(n)}}const Q1=(e,n)=>n;class Y1{constructor(n){this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=n||Q1}forEachItem(n){let t;for(t=this._itHead;null!==t;t=t._next)n(t)}forEachOperation(n){let t=this._itHead,r=this._removalsHead,o=0,i=null;for(;t||r;){const s=!r||t&&t.currentIndex{s=this._trackByFn(o,a),null!==t&&Object.is(t.trackById,s)?(r&&(t=this._verifyReinsertion(t,a,s,o)),Object.is(t.item,a)||this._addIdentityChange(t,a)):(t=this._mismatch(t,a,s,o),r=!0),t=t._next,o++}),this.length=o;return this._truncate(t),this.collection=n,this.isDirty}get isDirty(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}_reset(){if(this.isDirty){let n;for(n=this._previousItHead=this._itHead;null!==n;n=n._next)n._nextPrevious=n._next;for(n=this._additionsHead;null!==n;n=n._nextAdded)n.previousIndex=n.currentIndex;for(this._additionsHead=this._additionsTail=null,n=this._movesHead;null!==n;n=n._nextMoved)n.previousIndex=n.currentIndex;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(n,t,r,o){let i;return null===n?i=this._itTail:(i=n._prev,this._remove(n)),null!==(n=null===this._unlinkedRecords?null:this._unlinkedRecords.get(r,null))?(Object.is(n.item,t)||this._addIdentityChange(n,t),this._reinsertAfter(n,i,o)):null!==(n=null===this._linkedRecords?null:this._linkedRecords.get(r,o))?(Object.is(n.item,t)||this._addIdentityChange(n,t),this._moveAfter(n,i,o)):n=this._addAfter(new K1(t,r),i,o),n}_verifyReinsertion(n,t,r,o){let i=null===this._unlinkedRecords?null:this._unlinkedRecords.get(r,null);return null!==i?n=this._reinsertAfter(i,n._prev,o):n.currentIndex!=o&&(n.currentIndex=o,this._addToMoves(n,o)),n}_truncate(n){for(;null!==n;){const t=n._next;this._addToRemovals(this._unlink(n)),n=t}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(n,t,r){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(n);const o=n._prevRemoved,i=n._nextRemoved;return null===o?this._removalsHead=i:o._nextRemoved=i,null===i?this._removalsTail=o:i._prevRemoved=o,this._insertAfter(n,t,r),this._addToMoves(n,r),n}_moveAfter(n,t,r){return this._unlink(n),this._insertAfter(n,t,r),this._addToMoves(n,r),n}_addAfter(n,t,r){return this._insertAfter(n,t,r),this._additionsTail=null===this._additionsTail?this._additionsHead=n:this._additionsTail._nextAdded=n,n}_insertAfter(n,t,r){const o=null===t?this._itHead:t._next;return n._next=o,n._prev=t,null===o?this._itTail=n:o._prev=n,null===t?this._itHead=n:t._next=n,null===this._linkedRecords&&(this._linkedRecords=new hm),this._linkedRecords.put(n),n.currentIndex=r,n}_remove(n){return this._addToRemovals(this._unlink(n))}_unlink(n){null!==this._linkedRecords&&this._linkedRecords.remove(n);const t=n._prev,r=n._next;return null===t?this._itHead=r:t._next=r,null===r?this._itTail=t:r._prev=t,n}_addToMoves(n,t){return n.previousIndex===t||(this._movesTail=null===this._movesTail?this._movesHead=n:this._movesTail._nextMoved=n),n}_addToRemovals(n){return null===this._unlinkedRecords&&(this._unlinkedRecords=new hm),this._unlinkedRecords.put(n),n.currentIndex=null,n._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=n,n._prevRemoved=null):(n._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=n),n}_addIdentityChange(n,t){return n.item=t,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=n:this._identityChangesTail._nextIdentityChange=n,n}}class K1{constructor(n,t){this.item=n,this.trackById=t,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null}}class J1{constructor(){this._head=null,this._tail=null}add(n){null===this._head?(this._head=this._tail=n,n._nextDup=null,n._prevDup=null):(this._tail._nextDup=n,n._prevDup=this._tail,n._nextDup=null,this._tail=n)}get(n,t){let r;for(r=this._head;null!==r;r=r._nextDup)if((null===t||t<=r.currentIndex)&&Object.is(r.trackById,n))return r;return null}remove(n){const t=n._prevDup,r=n._nextDup;return null===t?this._head=r:t._nextDup=r,null===r?this._tail=t:r._prevDup=t,null===this._head}}class hm{constructor(){this.map=new Map}put(n){const t=n.trackById;let r=this.map.get(t);r||(r=new J1,this.map.set(t,r)),r.add(n)}get(n,t){const o=this.map.get(n);return o?o.get(n,t):null}remove(n){const t=n.trackById;return this.map.get(t).remove(n)&&this.map.delete(t),n}get isEmpty(){return 0===this.map.size}clear(){this.map.clear()}}function pm(e,n,t){const r=e.previousIndex;if(null===r)return r;let o=0;return t&&r{if(t&&t.key===o)this._maybeAddToChanges(t,r),this._appendAfter=t,t=t._next;else{const i=this._getOrCreateRecordForKey(o,r);t=this._insertBeforeOrAppend(t,i)}}),t){t._prev&&(t._prev._next=null),this._removalsHead=t;for(let r=t;null!==r;r=r._nextRemoved)r===this._mapHead&&(this._mapHead=null),this._records.delete(r.key),r._nextRemoved=r._next,r.previousValue=r.currentValue,r.currentValue=null,r._prev=null,r._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(n,t){if(n){const r=n._prev;return t._next=n,t._prev=r,n._prev=t,r&&(r._next=t),n===this._mapHead&&(this._mapHead=t),this._appendAfter=n,n}return this._appendAfter?(this._appendAfter._next=t,t._prev=this._appendAfter):this._mapHead=t,this._appendAfter=t,null}_getOrCreateRecordForKey(n,t){if(this._records.has(n)){const o=this._records.get(n);this._maybeAddToChanges(o,t);const i=o._prev,s=o._next;return i&&(i._next=s),s&&(s._prev=i),o._next=null,o._prev=null,o}const r=new eI(n);return this._records.set(n,r),r.currentValue=t,this._addToAdditions(r),r}_reset(){if(this.isDirty){let n;for(this._previousMapHead=this._mapHead,n=this._previousMapHead;null!==n;n=n._next)n._nextPrevious=n._next;for(n=this._changesHead;null!==n;n=n._nextChanged)n.previousValue=n.currentValue;for(n=this._additionsHead;null!=n;n=n._nextAdded)n.previousValue=n.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(n,t){Object.is(t,n.currentValue)||(n.previousValue=n.currentValue,n.currentValue=t,this._addToChanges(n))}_addToAdditions(n){null===this._additionsHead?this._additionsHead=this._additionsTail=n:(this._additionsTail._nextAdded=n,this._additionsTail=n)}_addToChanges(n){null===this._changesHead?this._changesHead=this._changesTail=n:(this._changesTail._nextChanged=n,this._changesTail=n)}_forEach(n,t){n instanceof Map?n.forEach(t):Object.keys(n).forEach(r=>t(n[r],r))}}class eI{constructor(n){this.key=n,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 mm(){return new rs([new fm])}let rs=(()=>{class e{constructor(t){this.factories=t}static create(t,r){if(null!=r){const o=r.factories.slice();t=t.concat(o)}return new e(t)}static extend(t){return{provide:e,useFactory:r=>e.create(t,r||mm()),deps:[[e,new vi,new _i]]}}find(t){const r=this.factories.find(o=>o.supports(t));if(null!=r)return r;throw new A(901,!1)}}return e.\u0275prov=de({token:e,providedIn:"root",factory:mm}),e})();function _m(){return new Co([new gm])}let Co=(()=>{class e{constructor(t){this.factories=t}static create(t,r){if(r){const o=r.factories.slice();t=t.concat(o)}return new e(t)}static extend(t){return{provide:e,useFactory:r=>e.create(t,r||_m()),deps:[[e,new vi,new _i]]}}find(t){const r=this.factories.find(o=>o.supports(t));if(r)return r;throw new A(901,!1)}}return e.\u0275prov=de({token:e,providedIn:"root",factory:_m}),e})();const rI=em(null,"core",[]);let oI=(()=>{class e{constructor(t){}}return e.\u0275fac=function(t){return new(t||e)(oe(sc))},e.\u0275mod=an({type:e}),e.\u0275inj=$t({}),e})();let fc=null;function Hn(){return fc}class aI{}const tn=new H("DocumentToken");let bo=(()=>{class e{constructor(t,r,o,i){this._iterableDiffers=t,this._keyValueDiffers=r,this._ngEl=o,this._renderer=i,this._iterableDiffer=null,this._keyValueDiffer=null,this._initialClasses=[],this._rawClass=null}set klass(t){this._removeClasses(this._initialClasses),this._initialClasses="string"==typeof t?t.split(/\s+/):[],this._applyClasses(this._initialClasses),this._applyClasses(this._rawClass)}set ngClass(t){this._removeClasses(this._rawClass),this._applyClasses(this._initialClasses),this._iterableDiffer=null,this._keyValueDiffer=null,this._rawClass="string"==typeof t?t.split(/\s+/):t,this._rawClass&&(ao(this._rawClass)?this._iterableDiffer=this._iterableDiffers.find(this._rawClass).create():this._keyValueDiffer=this._keyValueDiffers.find(this._rawClass).create())}ngDoCheck(){if(this._iterableDiffer){const t=this._iterableDiffer.diff(this._rawClass);t&&this._applyIterableChanges(t)}else if(this._keyValueDiffer){const t=this._keyValueDiffer.diff(this._rawClass);t&&this._applyKeyValueChanges(t)}}_applyKeyValueChanges(t){t.forEachAddedItem(r=>this._toggleClass(r.key,r.currentValue)),t.forEachChangedItem(r=>this._toggleClass(r.key,r.currentValue)),t.forEachRemovedItem(r=>{r.previousValue&&this._toggleClass(r.key,!1)})}_applyIterableChanges(t){t.forEachAddedItem(r=>{if("string"!=typeof r.item)throw new Error(`NgClass can only toggle CSS classes expressed as strings, got ${le(r.item)}`);this._toggleClass(r.item,!0)}),t.forEachRemovedItem(r=>this._toggleClass(r.item,!1))}_applyClasses(t){t&&(Array.isArray(t)||t instanceof Set?t.forEach(r=>this._toggleClass(r,!0)):Object.keys(t).forEach(r=>this._toggleClass(r,!!t[r])))}_removeClasses(t){t&&(Array.isArray(t)||t instanceof Set?t.forEach(r=>this._toggleClass(r,!1)):Object.keys(t).forEach(r=>this._toggleClass(r,!1)))}_toggleClass(t,r){(t=t.trim())&&t.split(/\s+/g).forEach(o=>{r?this._renderer.addClass(this._ngEl.nativeElement,o):this._renderer.removeClass(this._ngEl.nativeElement,o)})}}return e.\u0275fac=function(t){return new(t||e)(M(rs),M(Co),M(Dt),M(Rn))},e.\u0275dir=$({type:e,selectors:[["","ngClass",""]],inputs:{klass:["class","klass"],ngClass:"ngClass"},standalone:!0}),e})();class ZI{constructor(n,t,r,o){this.$implicit=n,this.ngForOf=t,this.index=r,this.count=o}get first(){return 0===this.index}get last(){return this.index===this.count-1}get even(){return this.index%2==0}get odd(){return!this.even}}let xr=(()=>{class e{set ngForOf(t){this._ngForOf=t,this._ngForOfDirty=!0}set ngForTrackBy(t){this._trackByFn=t}get ngForTrackBy(){return this._trackByFn}constructor(t,r,o){this._viewContainer=t,this._template=r,this._differs=o,this._ngForOf=null,this._ngForOfDirty=!0,this._differ=null}set ngForTemplate(t){t&&(this._template=t)}ngDoCheck(){if(this._ngForOfDirty){this._ngForOfDirty=!1;const t=this._ngForOf;!this._differ&&t&&(this._differ=this._differs.find(t).create(this.ngForTrackBy))}if(this._differ){const t=this._differ.diff(this._ngForOf);t&&this._applyChanges(t)}}_applyChanges(t){const r=this._viewContainer;t.forEachOperation((o,i,s)=>{if(null==o.previousIndex)r.createEmbeddedView(this._template,new ZI(o.item,this._ngForOf,-1,-1),null===s?void 0:s);else if(null==s)r.remove(null===i?void 0:i);else if(null!==i){const a=r.get(i);r.move(a,s),Tm(a,o)}});for(let o=0,i=r.length;o{Tm(r.get(o.currentIndex),o)})}static ngTemplateContextGuard(t,r){return!0}}return e.\u0275fac=function(t){return new(t||e)(M(Ht),M(Jt),M(rs))},e.\u0275dir=$({type:e,selectors:[["","ngFor","","ngForOf",""]],inputs:{ngForOf:"ngForOf",ngForTrackBy:"ngForTrackBy",ngForTemplate:"ngForTemplate"},standalone:!0}),e})();function Tm(e,n){e.context.$implicit=n.item}let jn=(()=>{class e{constructor(t,r){this._viewContainer=t,this._context=new YI,this._thenTemplateRef=null,this._elseTemplateRef=null,this._thenViewRef=null,this._elseViewRef=null,this._thenTemplateRef=r}set ngIf(t){this._context.$implicit=this._context.ngIf=t,this._updateView()}set ngIfThen(t){xm("ngIfThen",t),this._thenTemplateRef=t,this._thenViewRef=null,this._updateView()}set ngIfElse(t){xm("ngIfElse",t),this._elseTemplateRef=t,this._elseViewRef=null,this._updateView()}_updateView(){this._context.$implicit?this._thenViewRef||(this._viewContainer.clear(),this._elseViewRef=null,this._thenTemplateRef&&(this._thenViewRef=this._viewContainer.createEmbeddedView(this._thenTemplateRef,this._context))):this._elseViewRef||(this._viewContainer.clear(),this._thenViewRef=null,this._elseTemplateRef&&(this._elseViewRef=this._viewContainer.createEmbeddedView(this._elseTemplateRef,this._context)))}static ngTemplateContextGuard(t,r){return!0}}return e.\u0275fac=function(t){return new(t||e)(M(Ht),M(Jt))},e.\u0275dir=$({type:e,selectors:[["","ngIf",""]],inputs:{ngIf:"ngIf",ngIfThen:"ngIfThen",ngIfElse:"ngIfElse"},standalone:!0}),e})();class YI{constructor(){this.$implicit=null,this.ngIf=null}}function xm(e,n){if(n&&!n.createEmbeddedView)throw new Error(`${e} must be a TemplateRef, but received '${le(n)}'.`)}let Om=(()=>{class e{transform(t,r,o){if(null==t)return null;if(!this.supports(t))throw function At(e,n){return new A(2100,!1)}();return t.slice(r,o)}supports(t){return"string"==typeof t||Array.isArray(t)}}return e.\u0275fac=function(t){return new(t||e)},e.\u0275pipe=Je({name:"slice",type:e,pure:!1,standalone:!0}),e})(),DM=(()=>{class e{}return e.\u0275fac=function(t){return new(t||e)},e.\u0275mod=an({type:e}),e.\u0275inj=$t({}),e})();class XM extends aI{constructor(){super(...arguments),this.supportsDOMEvents=!0}}class Ac extends XM{static makeCurrent(){!function sI(e){fc||(fc=e)}(new Ac)}onAndCancel(n,t,r){return n.addEventListener(t,r,!1),()=>{n.removeEventListener(t,r,!1)}}dispatchEvent(n,t){n.dispatchEvent(t)}remove(n){n.parentNode&&n.parentNode.removeChild(n)}createElement(n,t){return(t=t||this.getDefaultDocument()).createElement(n)}createHtmlDocument(){return document.implementation.createHTMLDocument("fakeTitle")}getDefaultDocument(){return document}isElementNode(n){return n.nodeType===Node.ELEMENT_NODE}isShadowRoot(n){return n instanceof DocumentFragment}getGlobalEventTarget(n,t){return"window"===t?window:"document"===t?n:"body"===t?n.body:null}getBaseHref(n){const t=function eS(){return Io=Io||document.querySelector("base"),Io?Io.getAttribute("href"):null}();return null==t?null:function tS(e){ps=ps||document.createElement("a"),ps.setAttribute("href",e);const n=ps.pathname;return"/"===n.charAt(0)?n:`/${n}`}(t)}resetBaseElement(){Io=null}getUserAgent(){return window.navigator.userAgent}getCookie(n){return function WI(e,n){n=encodeURIComponent(n);for(const t of e.split(";")){const r=t.indexOf("="),[o,i]=-1==r?[t,""]:[t.slice(0,r),t.slice(r+1)];if(o.trim()===n)return decodeURIComponent(i)}return null}(document.cookie,n)}}let ps,Io=null;const jm=new H("TRANSITION_ID"),rS=[{provide:Ug,useFactory:function nS(e,n,t){return()=>{t.get(Ji).donePromise.then(()=>{const r=Hn(),o=n.querySelectorAll(`style[ng-transition="${e}"]`);for(let i=0;i{class e{build(){return new XMLHttpRequest}}return e.\u0275fac=function(t){return new(t||e)},e.\u0275prov=de({token:e,factory:e.\u0275fac}),e})();const gs=new H("EventManagerPlugins");let ms=(()=>{class e{constructor(t,r){this._zone=r,this._eventNameToPlugin=new Map,t.forEach(o=>o.manager=this),this._plugins=t.slice().reverse()}addEventListener(t,r,o){return this._findPluginFor(r).addEventListener(t,r,o)}addGlobalEventListener(t,r,o){return this._findPluginFor(r).addGlobalEventListener(t,r,o)}getZone(){return this._zone}_findPluginFor(t){const r=this._eventNameToPlugin.get(t);if(r)return r;const o=this._plugins;for(let i=0;i{class e{constructor(){this._stylesSet=new Set}addStyles(t){const r=new Set;t.forEach(o=>{this._stylesSet.has(o)||(this._stylesSet.add(o),r.add(o))}),this.onStylesAdded(r)}onStylesAdded(t){}getAllStyles(){return Array.from(this._stylesSet)}}return e.\u0275fac=function(t){return new(t||e)},e.\u0275prov=de({token:e,factory:e.\u0275fac}),e})(),Mo=(()=>{class e extends Um{constructor(t){super(),this._doc=t,this._hostNodes=new Map,this._hostNodes.set(t.head,[])}_addStylesToHost(t,r,o){t.forEach(i=>{const s=this._doc.createElement("style");s.textContent=i,o.push(r.appendChild(s))})}addHost(t){const r=[];this._addStylesToHost(this._stylesSet,t,r),this._hostNodes.set(t,r)}removeHost(t){const r=this._hostNodes.get(t);r&&r.forEach(zm),this._hostNodes.delete(t)}onStylesAdded(t){this._hostNodes.forEach((r,o)=>{this._addStylesToHost(t,o,r)})}ngOnDestroy(){this._hostNodes.forEach(t=>t.forEach(zm))}}return e.\u0275fac=function(t){return new(t||e)(oe(tn))},e.\u0275prov=de({token:e,factory:e.\u0275fac}),e})();function zm(e){Hn().remove(e)}const Tc={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/"},xc=/%COMP%/g;function Nc(e,n){return n.flat(100).map(t=>t.replace(xc,e))}function qm(e){return n=>{if("__ngUnwrap__"===n)return e;!1===e(n)&&(n.preventDefault(),n.returnValue=!1)}}let Fc=(()=>{class e{constructor(t,r,o){this.eventManager=t,this.sharedStylesHost=r,this.appId=o,this.rendererByCompId=new Map,this.defaultRenderer=new Oc(t)}createRenderer(t,r){if(!t||!r)return this.defaultRenderer;switch(r.encapsulation){case xt.Emulated:{let o=this.rendererByCompId.get(r.id);return o||(o=new dS(this.eventManager,this.sharedStylesHost,r,this.appId),this.rendererByCompId.set(r.id,o)),o.applyToHost(t),o}case xt.ShadowDom:return new fS(this.eventManager,this.sharedStylesHost,t,r);default:if(!this.rendererByCompId.has(r.id)){const o=Nc(r.id,r.styles);this.sharedStylesHost.addStyles(o),this.rendererByCompId.set(r.id,this.defaultRenderer)}return this.defaultRenderer}}begin(){}end(){}}return e.\u0275fac=function(t){return new(t||e)(oe(ms),oe(Mo),oe(yo))},e.\u0275prov=de({token:e,factory:e.\u0275fac}),e})();class Oc{constructor(n){this.eventManager=n,this.data=Object.create(null),this.destroyNode=null}destroy(){}createElement(n,t){return t?document.createElementNS(Tc[t]||t,n):document.createElement(n)}createComment(n){return document.createComment(n)}createText(n){return document.createTextNode(n)}appendChild(n,t){(Qm(n)?n.content:n).appendChild(t)}insertBefore(n,t,r){n&&(Qm(n)?n.content:n).insertBefore(t,r)}removeChild(n,t){n&&n.removeChild(t)}selectRootElement(n,t){let r="string"==typeof n?document.querySelector(n):n;if(!r)throw new Error(`The selector "${n}" did not match any elements`);return t||(r.textContent=""),r}parentNode(n){return n.parentNode}nextSibling(n){return n.nextSibling}setAttribute(n,t,r,o){if(o){t=o+":"+t;const i=Tc[o];i?n.setAttributeNS(i,t,r):n.setAttribute(t,r)}else n.setAttribute(t,r)}removeAttribute(n,t,r){if(r){const o=Tc[r];o?n.removeAttributeNS(o,t):n.removeAttribute(`${r}:${t}`)}else n.removeAttribute(t)}addClass(n,t){n.classList.add(t)}removeClass(n,t){n.classList.remove(t)}setStyle(n,t,r,o){o&(Xe.DashCase|Xe.Important)?n.style.setProperty(t,r,o&Xe.Important?"important":""):n.style[t]=r}removeStyle(n,t,r){r&Xe.DashCase?n.style.removeProperty(t):n.style[t]=""}setProperty(n,t,r){n[t]=r}setValue(n,t){n.nodeValue=t}listen(n,t,r){return"string"==typeof n?this.eventManager.addGlobalEventListener(n,t,qm(r)):this.eventManager.addEventListener(n,t,qm(r))}}function Qm(e){return"TEMPLATE"===e.tagName&&void 0!==e.content}class dS extends Oc{constructor(n,t,r,o){super(n),this.component=r;const i=Nc(o+"-"+r.id,r.styles);t.addStyles(i),this.contentAttr=function lS(e){return"_ngcontent-%COMP%".replace(xc,e)}(o+"-"+r.id),this.hostAttr=function cS(e){return"_nghost-%COMP%".replace(xc,e)}(o+"-"+r.id)}applyToHost(n){super.setAttribute(n,this.hostAttr,"")}createElement(n,t){const r=super.createElement(n,t);return super.setAttribute(r,this.contentAttr,""),r}}class fS extends Oc{constructor(n,t,r,o){super(n),this.sharedStylesHost=t,this.hostEl=r,this.shadowRoot=r.attachShadow({mode:"open"}),this.sharedStylesHost.addHost(this.shadowRoot);const i=Nc(o.id,o.styles);for(let s=0;s{class e extends $m{constructor(t){super(t)}supports(t){return!0}addEventListener(t,r,o){return t.addEventListener(r,o,!1),()=>this.removeEventListener(t,r,o)}removeEventListener(t,r,o){return t.removeEventListener(r,o)}}return e.\u0275fac=function(t){return new(t||e)(oe(tn))},e.\u0275prov=de({token:e,factory:e.\u0275fac}),e})();const Ym=["alt","control","meta","shift"],pS={"\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"},gS={alt:e=>e.altKey,control:e=>e.ctrlKey,meta:e=>e.metaKey,shift:e=>e.shiftKey};let mS=(()=>{class e extends $m{constructor(t){super(t)}supports(t){return null!=e.parseEventName(t)}addEventListener(t,r,o){const i=e.parseEventName(r),s=e.eventCallback(i.fullKey,o,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>Hn().onAndCancel(t,i.domEventName,s))}static parseEventName(t){const r=t.toLowerCase().split("."),o=r.shift();if(0===r.length||"keydown"!==o&&"keyup"!==o)return null;const i=e._normalizeKey(r.pop());let s="",a=r.indexOf("code");if(a>-1&&(r.splice(a,1),s="code."),Ym.forEach(c=>{const u=r.indexOf(c);u>-1&&(r.splice(u,1),s+=c+".")}),s+=i,0!=r.length||0===i.length)return null;const l={};return l.domEventName=o,l.fullKey=s,l}static matchEventFullKeyCode(t,r){let o=pS[t.key]||t.key,i="";return r.indexOf("code.")>-1&&(o=t.code,i="code."),!(null==o||!o)&&(o=o.toLowerCase()," "===o?o="space":"."===o&&(o="dot"),Ym.forEach(s=>{s!==o&&(0,gS[s])(t)&&(i+=s+".")}),i+=o,i===r)}static eventCallback(t,r,o){return i=>{e.matchEventFullKeyCode(i,t)&&o.runGuarded(()=>r(i))}}static _normalizeKey(t){return"esc"===t?"escape":t}}return e.\u0275fac=function(t){return new(t||e)(oe(tn))},e.\u0275prov=de({token:e,factory:e.\u0275fac}),e})();const CS=em(rI,"browser",[{provide:Wg,useValue:"browser"},{provide:Gg,useValue:function _S(){Ac.makeCurrent()},multi:!0},{provide:tn,useFactory:function yS(){return function eD(e){$a=e}(document),document},deps:[]}]),Xm=new H(""),e_=[{provide:Xi,useClass:class oS{addToWindow(n){fe.getAngularTestability=(r,o=!0)=>{const i=n.findTestabilityInTree(r,o);if(null==i)throw new Error("Could not find testability for element.");return i},fe.getAllAngularTestabilities=()=>n.getAllTestabilities(),fe.getAllAngularRootElements=()=>n.getAllRootElements(),fe.frameworkStabilizers||(fe.frameworkStabilizers=[]),fe.frameworkStabilizers.push(r=>{const o=fe.getAllAngularTestabilities();let i=o.length,s=!1;const a=function(l){s=s||l,i--,0==i&&r(s)};o.forEach(function(l){l.whenStable(a)})})}findTestabilityInTree(n,t,r){return null==t?null:n.getTestability(t)??(r?Hn().isShadowRoot(t)?this.findTestabilityInTree(n,t.host,!0):this.findTestabilityInTree(n,t.parentElement,!0):null)}},deps:[]},{provide:Kg,useClass:tc,deps:[$e,nc,Xi]},{provide:tc,useClass:tc,deps:[$e,nc,Xi]}],t_=[{provide:Ka,useValue:"root"},{provide:dr,useFactory:function vS(){return new dr},deps:[]},{provide:gs,useClass:hS,multi:!0,deps:[tn,$e,Wg]},{provide:gs,useClass:mS,multi:!0,deps:[tn]},{provide:Fc,useClass:Fc,deps:[ms,Mo,yo]},{provide:Hf,useExisting:Fc},{provide:Um,useExisting:Mo},{provide:Mo,useClass:Mo,deps:[tn]},{provide:ms,useClass:ms,deps:[gs,$e]},{provide:class MM{},useClass:iS,deps:[]},[]];let DS=(()=>{class e{constructor(t){}static withServerTransition(t){return{ngModule:e,providers:[{provide:yo,useValue:t.appId},{provide:jm,useExisting:yo},rS]}}}return e.\u0275fac=function(t){return new(t||e)(oe(Xm,12))},e.\u0275mod=an({type:e}),e.\u0275inj=$t({providers:[...t_,...e_],imports:[DM,oI]}),e})();typeof window<"u"&&window;const{isArray:NS}=Array,{getPrototypeOf:FS,prototype:OS,keys:RS}=Object;const{isArray:LS}=Array;function HS(e,n){return e.reduce((t,r,o)=>(t[r]=n[o],t),{})}function jS(...e){const n=function Fv(e){return me(Vs(e))?e.pop():void 0}(e),{args:t,keys:r}=function PS(e){if(1===e.length){const n=e[0];if(NS(n))return{args:n,keys:null};if(function kS(e){return e&&"object"==typeof e&&FS(e)===OS}(n)){const t=RS(n);return{args:t.map(r=>n[r]),keys:t}}}return{args:e,keys:null}}(e),o=new ze(i=>{const{length:s}=t;if(!s)return void i.complete();const a=new Array(s);let l=s,c=s;for(let u=0;u{d||(d=!0,c--),a[u]=h},()=>l--,void 0,()=>{(!l||!d)&&(c||i.next(r?HS(r,a):a),i.complete())}))}});return n?o.pipe(function BS(e){return Ps(n=>function VS(e,n){return LS(n)?e(...n):e(n)}(e,n))}(n)):o}let o_=(()=>{class e{constructor(t,r){this._renderer=t,this._elementRef=r,this.onChange=o=>{},this.onTouched=()=>{}}setProperty(t,r){this._renderer.setProperty(this._elementRef.nativeElement,t,r)}registerOnTouched(t){this.onTouched=t}registerOnChange(t){this.onChange=t}setDisabledState(t){this.setProperty("disabled",t)}}return e.\u0275fac=function(t){return new(t||e)(M(Rn),M(Dt))},e.\u0275dir=$({type:e}),e})(),$n=(()=>{class e extends o_{}return e.\u0275fac=function(){let n;return function(r){return(n||(n=Be(e)))(r||e)}}(),e.\u0275dir=$({type:e,features:[se]}),e})();const jt=new H("NgValueAccessor"),$S={provide:jt,useExisting:ue(()=>kc),multi:!0};let kc=(()=>{class e extends $n{writeValue(t){this.setProperty("checked",t)}}return e.\u0275fac=function(){let n;return function(r){return(n||(n=Be(e)))(r||e)}}(),e.\u0275dir=$({type:e,selectors:[["input","type","checkbox","formControlName",""],["input","type","checkbox","formControl",""],["input","type","checkbox","ngModel",""]],hostBindings:function(t,r){1&t&&k("change",function(i){return r.onChange(i.target.checked)})("blur",function(){return r.onTouched()})},features:[ge([$S]),se]}),e})();const US={provide:jt,useExisting:ue(()=>So),multi:!0},GS=new H("CompositionEventMode");let So=(()=>{class e extends o_{constructor(t,r,o){super(t,r),this._compositionMode=o,this._composing=!1,null==this._compositionMode&&(this._compositionMode=!function zS(){const e=Hn()?Hn().getUserAgent():"";return/android (\d+)/.test(e.toLowerCase())}())}writeValue(t){this.setProperty("value",t??"")}_handleInput(t){(!this._compositionMode||this._compositionMode&&!this._composing)&&this.onChange(t)}_compositionStart(){this._composing=!0}_compositionEnd(t){this._composing=!1,this._compositionMode&&this.onChange(t)}}return e.\u0275fac=function(t){return new(t||e)(M(Rn),M(Dt),M(GS,8))},e.\u0275dir=$({type:e,selectors:[["input","formControlName","",3,"type","checkbox"],["textarea","formControlName",""],["input","formControl","",3,"type","checkbox"],["textarea","formControl",""],["input","ngModel","",3,"type","checkbox"],["textarea","ngModel",""],["","ngDefaultControl",""]],hostBindings:function(t,r){1&t&&k("input",function(i){return r._handleInput(i.target.value)})("blur",function(){return r.onTouched()})("compositionstart",function(){return r._compositionStart()})("compositionend",function(i){return r._compositionEnd(i.target.value)})},features:[ge([US]),se]}),e})();const Ue=new H("NgValidators"),_n=new H("NgAsyncValidators");function p_(e){return null!=e}function g_(e){return Hi(e)?Bs(e):e}function m_(e){let n={};return e.forEach(t=>{n=null!=t?{...n,...t}:n}),0===Object.keys(n).length?null:n}function __(e,n){return n.map(t=>t(e))}function v_(e){return e.map(n=>function ZS(e){return!e.validate}(n)?n:t=>n.validate(t))}function Lc(e){return null!=e?function y_(e){if(!e)return null;const n=e.filter(p_);return 0==n.length?null:function(t){return m_(__(t,n))}}(v_(e)):null}function Vc(e){return null!=e?function C_(e){if(!e)return null;const n=e.filter(p_);return 0==n.length?null:function(t){return jS(__(t,n).map(g_)).pipe(Ps(m_))}}(v_(e)):null}function D_(e,n){return null===e?[n]:Array.isArray(e)?[...e,n]:[e,n]}function Bc(e){return e?Array.isArray(e)?e:[e]:[]}function vs(e,n){return Array.isArray(e)?e.includes(n):e===n}function E_(e,n){const t=Bc(n);return Bc(e).forEach(o=>{vs(t,o)||t.push(o)}),t}function I_(e,n){return Bc(n).filter(t=>!vs(e,t))}class M_{constructor(){this._rawValidators=[],this._rawAsyncValidators=[],this._onDestroyCallbacks=[]}get value(){return this.control?this.control.value:null}get valid(){return this.control?this.control.valid:null}get invalid(){return this.control?this.control.invalid:null}get pending(){return this.control?this.control.pending:null}get disabled(){return this.control?this.control.disabled:null}get enabled(){return this.control?this.control.enabled:null}get errors(){return this.control?this.control.errors:null}get pristine(){return this.control?this.control.pristine:null}get dirty(){return this.control?this.control.dirty:null}get touched(){return this.control?this.control.touched:null}get status(){return this.control?this.control.status:null}get untouched(){return this.control?this.control.untouched:null}get statusChanges(){return this.control?this.control.statusChanges:null}get valueChanges(){return this.control?this.control.valueChanges:null}get path(){return null}_setValidators(n){this._rawValidators=n||[],this._composedValidatorFn=Lc(this._rawValidators)}_setAsyncValidators(n){this._rawAsyncValidators=n||[],this._composedAsyncValidatorFn=Vc(this._rawAsyncValidators)}get validator(){return this._composedValidatorFn||null}get asyncValidator(){return this._composedAsyncValidatorFn||null}_registerOnDestroy(n){this._onDestroyCallbacks.push(n)}_invokeOnDestroyCallbacks(){this._onDestroyCallbacks.forEach(n=>n()),this._onDestroyCallbacks=[]}reset(n){this.control&&this.control.reset(n)}hasError(n,t){return!!this.control&&this.control.hasError(n,t)}getError(n,t){return this.control?this.control.getError(n,t):null}}class Ke extends M_{get formDirective(){return null}get path(){return null}}class vn extends M_{constructor(){super(...arguments),this._parent=null,this.name=null,this.valueAccessor=null}}class S_{constructor(n){this._cd=n}get isTouched(){return!!this._cd?.control?.touched}get isUntouched(){return!!this._cd?.control?.untouched}get isPristine(){return!!this._cd?.control?.pristine}get isDirty(){return!!this._cd?.control?.dirty}get isValid(){return!!this._cd?.control?.valid}get isInvalid(){return!!this._cd?.control?.invalid}get isPending(){return!!this._cd?.control?.pending}get isSubmitted(){return!!this._cd?.submitted}}let ys=(()=>{class e extends S_{constructor(t){super(t)}}return e.\u0275fac=function(t){return new(t||e)(M(vn,2))},e.\u0275dir=$({type:e,selectors:[["","formControlName",""],["","ngModel",""],["","formControl",""]],hostVars:14,hostBindings:function(t,r){2&t&&$i("ng-untouched",r.isUntouched)("ng-touched",r.isTouched)("ng-pristine",r.isPristine)("ng-dirty",r.isDirty)("ng-valid",r.isValid)("ng-invalid",r.isInvalid)("ng-pending",r.isPending)},features:[se]}),e})();const Ao="VALID",Ds="INVALID",Nr="PENDING",To="DISABLED";function ws(e){return null!=e&&!Array.isArray(e)&&"object"==typeof e}class N_{constructor(n,t){this._pendingDirty=!1,this._hasOwnPendingAsyncValidator=!1,this._pendingTouched=!1,this._onCollectionChange=()=>{},this._parent=null,this.pristine=!0,this.touched=!1,this._onDisabledChange=[],this._assignValidators(n),this._assignAsyncValidators(t)}get validator(){return this._composedValidatorFn}set validator(n){this._rawValidators=this._composedValidatorFn=n}get asyncValidator(){return this._composedAsyncValidatorFn}set asyncValidator(n){this._rawAsyncValidators=this._composedAsyncValidatorFn=n}get parent(){return this._parent}get valid(){return this.status===Ao}get invalid(){return this.status===Ds}get pending(){return this.status==Nr}get disabled(){return this.status===To}get enabled(){return this.status!==To}get dirty(){return!this.pristine}get untouched(){return!this.touched}get updateOn(){return this._updateOn?this._updateOn:this.parent?this.parent.updateOn:"change"}setValidators(n){this._assignValidators(n)}setAsyncValidators(n){this._assignAsyncValidators(n)}addValidators(n){this.setValidators(E_(n,this._rawValidators))}addAsyncValidators(n){this.setAsyncValidators(E_(n,this._rawAsyncValidators))}removeValidators(n){this.setValidators(I_(n,this._rawValidators))}removeAsyncValidators(n){this.setAsyncValidators(I_(n,this._rawAsyncValidators))}hasValidator(n){return vs(this._rawValidators,n)}hasAsyncValidator(n){return vs(this._rawAsyncValidators,n)}clearValidators(){this.validator=null}clearAsyncValidators(){this.asyncValidator=null}markAsTouched(n={}){this.touched=!0,this._parent&&!n.onlySelf&&this._parent.markAsTouched(n)}markAllAsTouched(){this.markAsTouched({onlySelf:!0}),this._forEachChild(n=>n.markAllAsTouched())}markAsUntouched(n={}){this.touched=!1,this._pendingTouched=!1,this._forEachChild(t=>{t.markAsUntouched({onlySelf:!0})}),this._parent&&!n.onlySelf&&this._parent._updateTouched(n)}markAsDirty(n={}){this.pristine=!1,this._parent&&!n.onlySelf&&this._parent.markAsDirty(n)}markAsPristine(n={}){this.pristine=!0,this._pendingDirty=!1,this._forEachChild(t=>{t.markAsPristine({onlySelf:!0})}),this._parent&&!n.onlySelf&&this._parent._updatePristine(n)}markAsPending(n={}){this.status=Nr,!1!==n.emitEvent&&this.statusChanges.emit(this.status),this._parent&&!n.onlySelf&&this._parent.markAsPending(n)}disable(n={}){const t=this._parentMarkedDirty(n.onlySelf);this.status=To,this.errors=null,this._forEachChild(r=>{r.disable({...n,onlySelf:!0})}),this._updateValue(),!1!==n.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors({...n,skipPristineCheck:t}),this._onDisabledChange.forEach(r=>r(!0))}enable(n={}){const t=this._parentMarkedDirty(n.onlySelf);this.status=Ao,this._forEachChild(r=>{r.enable({...n,onlySelf:!0})}),this.updateValueAndValidity({onlySelf:!0,emitEvent:n.emitEvent}),this._updateAncestors({...n,skipPristineCheck:t}),this._onDisabledChange.forEach(r=>r(!1))}_updateAncestors(n){this._parent&&!n.onlySelf&&(this._parent.updateValueAndValidity(n),n.skipPristineCheck||this._parent._updatePristine(),this._parent._updateTouched())}setParent(n){this._parent=n}getRawValue(){return this.value}updateValueAndValidity(n={}){this._setInitialStatus(),this._updateValue(),this.enabled&&(this._cancelExistingSubscription(),this.errors=this._runValidator(),this.status=this._calculateStatus(),(this.status===Ao||this.status===Nr)&&this._runAsyncValidator(n.emitEvent)),!1!==n.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._parent&&!n.onlySelf&&this._parent.updateValueAndValidity(n)}_updateTreeValidity(n={emitEvent:!0}){this._forEachChild(t=>t._updateTreeValidity(n)),this.updateValueAndValidity({onlySelf:!0,emitEvent:n.emitEvent})}_setInitialStatus(){this.status=this._allControlsDisabled()?To:Ao}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(n){if(this.asyncValidator){this.status=Nr,this._hasOwnPendingAsyncValidator=!0;const t=g_(this.asyncValidator(this));this._asyncValidationSubscription=t.subscribe(r=>{this._hasOwnPendingAsyncValidator=!1,this.setErrors(r,{emitEvent:n})})}}_cancelExistingSubscription(){this._asyncValidationSubscription&&(this._asyncValidationSubscription.unsubscribe(),this._hasOwnPendingAsyncValidator=!1)}setErrors(n,t={}){this.errors=n,this._updateControlsErrors(!1!==t.emitEvent)}get(n){let t=n;return null==t||(Array.isArray(t)||(t=t.split(".")),0===t.length)?null:t.reduce((r,o)=>r&&r._find(o),this)}getError(n,t){const r=t?this.get(t):this;return r&&r.errors?r.errors[n]:null}hasError(n,t){return!!this.getError(n,t)}get root(){let n=this;for(;n._parent;)n=n._parent;return n}_updateControlsErrors(n){this.status=this._calculateStatus(),n&&this.statusChanges.emit(this.status),this._parent&&this._parent._updateControlsErrors(n)}_initObservables(){this.valueChanges=new be,this.statusChanges=new be}_calculateStatus(){return this._allControlsDisabled()?To:this.errors?Ds:this._hasOwnPendingAsyncValidator||this._anyControlsHaveStatus(Nr)?Nr:this._anyControlsHaveStatus(Ds)?Ds:Ao}_anyControlsHaveStatus(n){return this._anyControls(t=>t.status===n)}_anyControlsDirty(){return this._anyControls(n=>n.dirty)}_anyControlsTouched(){return this._anyControls(n=>n.touched)}_updatePristine(n={}){this.pristine=!this._anyControlsDirty(),this._parent&&!n.onlySelf&&this._parent._updatePristine(n)}_updateTouched(n={}){this.touched=this._anyControlsTouched(),this._parent&&!n.onlySelf&&this._parent._updateTouched(n)}_registerOnCollectionChange(n){this._onCollectionChange=n}_setUpdateStrategy(n){ws(n)&&null!=n.updateOn&&(this._updateOn=n.updateOn)}_parentMarkedDirty(n){return!n&&!(!this._parent||!this._parent.dirty)&&!this._parent._anyControlsDirty()}_find(n){return null}_assignValidators(n){this._rawValidators=Array.isArray(n)?n.slice():n,this._composedValidatorFn=function nA(e){return Array.isArray(e)?Lc(e):e||null}(this._rawValidators)}_assignAsyncValidators(n){this._rawAsyncValidators=Array.isArray(n)?n.slice():n,this._composedAsyncValidatorFn=function rA(e){return Array.isArray(e)?Vc(e):e||null}(this._rawAsyncValidators)}}const xo=new H("CallSetDisabledState",{providedIn:"root",factory:()=>Wc}),Wc="always";function No(e,n,t=Wc){(function qc(e,n){const t=function w_(e){return e._rawValidators}(e);null!==n.validator?e.setValidators(D_(t,n.validator)):"function"==typeof t&&e.setValidators([t]);const r=function b_(e){return e._rawAsyncValidators}(e);null!==n.asyncValidator?e.setAsyncValidators(D_(r,n.asyncValidator)):"function"==typeof r&&e.setAsyncValidators([r]);const o=()=>e.updateValueAndValidity();Is(n._rawValidators,o),Is(n._rawAsyncValidators,o)})(e,n),n.valueAccessor.writeValue(e.value),(e.disabled||"always"===t)&&n.valueAccessor.setDisabledState?.(e.disabled),function sA(e,n){n.valueAccessor.registerOnChange(t=>{e._pendingValue=t,e._pendingChange=!0,e._pendingDirty=!0,"change"===e.updateOn&&F_(e,n)})}(e,n),function lA(e,n){const t=(r,o)=>{n.valueAccessor.writeValue(r),o&&n.viewToModelUpdate(r)};e.registerOnChange(t),n._registerOnDestroy(()=>{e._unregisterOnChange(t)})}(e,n),function aA(e,n){n.valueAccessor.registerOnTouched(()=>{e._pendingTouched=!0,"blur"===e.updateOn&&e._pendingChange&&F_(e,n),"submit"!==e.updateOn&&e.markAsTouched()})}(e,n),function iA(e,n){if(n.valueAccessor.setDisabledState){const t=r=>{n.valueAccessor.setDisabledState(r)};e.registerOnDisabledChange(t),n._registerOnDestroy(()=>{e._unregisterOnDisabledChange(t)})}}(e,n)}function Is(e,n){e.forEach(t=>{t.registerOnValidatorChange&&t.registerOnValidatorChange(n)})}function F_(e,n){e._pendingDirty&&e.markAsDirty(),e.setValue(e._pendingValue,{emitModelToViewChange:!1}),n.viewToModelUpdate(e._pendingValue),e._pendingChange=!1}function P_(e,n){const t=e.indexOf(n);t>-1&&e.splice(t,1)}function k_(e){return"object"==typeof e&&null!==e&&2===Object.keys(e).length&&"value"in e&&"disabled"in e}const L_=class extends N_{constructor(n=null,t,r){super(function Uc(e){return(ws(e)?e.validators:e)||null}(t),function zc(e,n){return(ws(n)?n.asyncValidators:e)||null}(r,t)),this.defaultValue=null,this._onChange=[],this._pendingChange=!1,this._applyFormState(n),this._setUpdateStrategy(t),this._initObservables(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator}),ws(t)&&(t.nonNullable||t.initialValueIsDefault)&&(this.defaultValue=k_(n)?n.value:n)}setValue(n,t={}){this.value=this._pendingValue=n,this._onChange.length&&!1!==t.emitModelToViewChange&&this._onChange.forEach(r=>r(this.value,!1!==t.emitViewToModelChange)),this.updateValueAndValidity(t)}patchValue(n,t={}){this.setValue(n,t)}reset(n=this.defaultValue,t={}){this._applyFormState(n),this.markAsPristine(t),this.markAsUntouched(t),this.setValue(this.value,t),this._pendingChange=!1}_updateValue(){}_anyControls(n){return!1}_allControlsDisabled(){return this.disabled}registerOnChange(n){this._onChange.push(n)}_unregisterOnChange(n){P_(this._onChange,n)}registerOnDisabledChange(n){this._onDisabledChange.push(n)}_unregisterOnDisabledChange(n){P_(this._onDisabledChange,n)}_forEachChild(n){}_syncPendingControls(){return!("submit"!==this.updateOn||(this._pendingDirty&&this.markAsDirty(),this._pendingTouched&&this.markAsTouched(),!this._pendingChange)||(this.setValue(this._pendingValue,{onlySelf:!0,emitModelToViewChange:!1}),0))}_applyFormState(n){k_(n)?(this.value=this._pendingValue=n.value,n.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this.value=this._pendingValue=n}},mA={provide:vn,useExisting:ue(()=>Oo)},H_=(()=>Promise.resolve())();let Oo=(()=>{class e extends vn{constructor(t,r,o,i,s,a){super(),this._changeDetectorRef=s,this.callSetDisabledState=a,this.control=new L_,this._registered=!1,this.update=new be,this._parent=t,this._setValidators(r),this._setAsyncValidators(o),this.valueAccessor=function Yc(e,n){if(!n)return null;let t,r,o;return Array.isArray(n),n.forEach(i=>{i.constructor===So?t=i:function dA(e){return Object.getPrototypeOf(e.constructor)===$n}(i)?r=i:o=i}),o||r||t||null}(0,i)}ngOnChanges(t){if(this._checkForErrors(),!this._registered||"name"in t){if(this._registered&&(this._checkName(),this.formDirective)){const r=t.name.previousValue;this.formDirective.removeControl({name:r,path:this._getPath(r)})}this._setUpControl()}"isDisabled"in t&&this._updateDisabled(t),function Qc(e,n){if(!e.hasOwnProperty("model"))return!1;const t=e.model;return!!t.isFirstChange()||!Object.is(n,t.currentValue)}(t,this.viewModel)&&(this._updateValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}get path(){return this._getPath(this.name)}get formDirective(){return this._parent?this._parent.formDirective:null}viewToModelUpdate(t){this.viewModel=t,this.update.emit(t)}_setUpControl(){this._setUpdateStrategy(),this._isStandalone()?this._setUpStandalone():this.formDirective.addControl(this),this._registered=!0}_setUpdateStrategy(){this.options&&null!=this.options.updateOn&&(this.control._updateOn=this.options.updateOn)}_isStandalone(){return!this._parent||!(!this.options||!this.options.standalone)}_setUpStandalone(){No(this.control,this,this.callSetDisabledState),this.control.updateValueAndValidity({emitEvent:!1})}_checkForErrors(){this._isStandalone()||this._checkParentType(),this._checkName()}_checkParentType(){}_checkName(){this.options&&this.options.name&&(this.name=this.options.name),this._isStandalone()}_updateValue(t){H_.then(()=>{this.control.setValue(t,{emitViewToModelChange:!1}),this._changeDetectorRef?.markForCheck()})}_updateDisabled(t){const r=t.isDisabled.currentValue,o=0!==r&&function dc(e){return"boolean"==typeof e?e:null!=e&&"false"!==e}(r);H_.then(()=>{o&&!this.control.disabled?this.control.disable():!o&&this.control.disabled&&this.control.enable(),this._changeDetectorRef?.markForCheck()})}_getPath(t){return this._parent?function bs(e,n){return[...n.path,e]}(t,this._parent):[t]}}return e.\u0275fac=function(t){return new(t||e)(M(Ke,9),M(Ue,10),M(_n,10),M(jt,10),M(cm,8),M(xo,8))},e.\u0275dir=$({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:[ge([mA]),se,Wt]}),e})(),$_=(()=>{class e{}return e.\u0275fac=function(t){return new(t||e)},e.\u0275mod=an({type:e}),e.\u0275inj=$t({}),e})();const DA={provide:jt,useExisting:ue(()=>Jc),multi:!0};let Jc=(()=>{class e extends $n{writeValue(t){this.setProperty("value",parseFloat(t))}registerOnChange(t){this.onChange=r=>{t(""==r?null:parseFloat(r))}}}return e.\u0275fac=function(){let n;return function(r){return(n||(n=Be(e)))(r||e)}}(),e.\u0275dir=$({type:e,selectors:[["input","type","range","formControlName",""],["input","type","range","formControl",""],["input","type","range","ngModel",""]],hostBindings:function(t,r){1&t&&k("change",function(i){return r.onChange(i.target.value)})("input",function(i){return r.onChange(i.target.value)})("blur",function(){return r.onTouched()})},features:[ge([DA]),se]}),e})();const SA={provide:jt,useExisting:ue(()=>Ro),multi:!0};function Z_(e,n){return null==e?`${n}`:(n&&"object"==typeof n&&(n="Object"),`${e}: ${n}`.slice(0,50))}let Ro=(()=>{class e extends $n{constructor(){super(...arguments),this._optionMap=new Map,this._idCounter=0,this._compareWith=Object.is}set compareWith(t){this._compareWith=t}writeValue(t){this.value=t;const o=Z_(this._getOptionId(t),t);this.setProperty("value",o)}registerOnChange(t){this.onChange=r=>{this.value=this._getOptionValue(r),t(this.value)}}_registerOption(){return(this._idCounter++).toString()}_getOptionId(t){for(const r of Array.from(this._optionMap.keys()))if(this._compareWith(this._optionMap.get(r),t))return r;return null}_getOptionValue(t){const r=function AA(e){return e.split(":")[0]}(t);return this._optionMap.has(r)?this._optionMap.get(r):t}}return e.\u0275fac=function(){let n;return function(r){return(n||(n=Be(e)))(r||e)}}(),e.\u0275dir=$({type:e,selectors:[["select","formControlName","",3,"multiple",""],["select","formControl","",3,"multiple",""],["select","ngModel","",3,"multiple",""]],hostBindings:function(t,r){1&t&&k("change",function(i){return r.onChange(i.target.value)})("blur",function(){return r.onTouched()})},inputs:{compareWith:"compareWith"},features:[ge([SA]),se]}),e})(),nu=(()=>{class e{constructor(t,r,o){this._element=t,this._renderer=r,this._select=o,this._select&&(this.id=this._select._registerOption())}set ngValue(t){null!=this._select&&(this._select._optionMap.set(this.id,t),this._setElementValue(Z_(this.id,t)),this._select.writeValue(this._select.value))}set value(t){this._setElementValue(t),this._select&&this._select.writeValue(this._select.value)}_setElementValue(t){this._renderer.setProperty(this._element.nativeElement,"value",t)}ngOnDestroy(){this._select&&(this._select._optionMap.delete(this.id),this._select.writeValue(this._select.value))}}return e.\u0275fac=function(t){return new(t||e)(M(Dt),M(Rn),M(Ro,9))},e.\u0275dir=$({type:e,selectors:[["option"]],inputs:{ngValue:"ngValue",value:"value"}}),e})();const TA={provide:jt,useExisting:ue(()=>ru),multi:!0};function Q_(e,n){return null==e?`${n}`:("string"==typeof n&&(n=`'${n}'`),n&&"object"==typeof n&&(n="Object"),`${e}: ${n}`.slice(0,50))}let ru=(()=>{class e extends $n{constructor(){super(...arguments),this._optionMap=new Map,this._idCounter=0,this._compareWith=Object.is}set compareWith(t){this._compareWith=t}writeValue(t){let r;if(this.value=t,Array.isArray(t)){const o=t.map(i=>this._getOptionId(i));r=(i,s)=>{i._setSelected(o.indexOf(s.toString())>-1)}}else r=(o,i)=>{o._setSelected(!1)};this._optionMap.forEach(r)}registerOnChange(t){this.onChange=r=>{const o=[],i=r.selectedOptions;if(void 0!==i){const s=i;for(let a=0;a{class e{constructor(t,r,o){this._element=t,this._renderer=r,this._select=o,this._select&&(this.id=this._select._registerOption(this))}set ngValue(t){null!=this._select&&(this._value=t,this._setElementValue(Q_(this.id,t)),this._select.writeValue(this._select.value))}set value(t){this._select?(this._value=t,this._setElementValue(Q_(this.id,t)),this._select.writeValue(this._select.value)):this._setElementValue(t)}_setElementValue(t){this._renderer.setProperty(this._element.nativeElement,"value",t)}_setSelected(t){this._renderer.setProperty(this._element.nativeElement,"selected",t)}ngOnDestroy(){this._select&&(this._select._optionMap.delete(this.id),this._select.writeValue(this._select.value))}}return e.\u0275fac=function(t){return new(t||e)(M(Dt),M(Rn),M(ru,9))},e.\u0275dir=$({type:e,selectors:[["option"]],inputs:{ngValue:"ngValue",value:"value"}}),e})(),BA=(()=>{class e{}return e.\u0275fac=function(t){return new(t||e)},e.\u0275mod=an({type:e}),e.\u0275inj=$t({imports:[$_]}),e})(),jA=(()=>{class e{static withConfig(t){return{ngModule:e,providers:[{provide:xo,useValue:t.callSetDisabledState??Wc}]}}}return e.\u0275fac=function(t){return new(t||e)},e.\u0275mod=an({type:e}),e.\u0275inj=$t({imports:[BA]}),e})();class iv{constructor(){this.riskHotspotsSettings=null,this.coverageInfoSettings=null}}class $A{constructor(){this.showLineCoverage=!0,this.showBranchCoverage=!0,this.showMethodCoverage=!0,this.visibleMetrics=[],this.groupingMaximum=0,this.grouping=0,this.historyComparisionDate="",this.historyComparisionType="",this.filter="",this.sortBy="name",this.sortOrder="asc",this.collapseStates=[]}}class UA{constructor(n){this.et="",this.et=n.et,this.cl=n.cl,this.ucl=n.ucl,this.cal=n.cal,this.tl=n.tl,this.lcq=n.lcq,this.cb=n.cb,this.tb=n.tb,this.bcq=n.bcq,this.cm=n.cm,this.tm=n.tm,this.mcq=n.mcq}get coverageRatioText(){return 0===this.tl?"-":this.cl+"/"+this.cal}get branchCoverageRatioText(){return 0===this.tb?"-":this.cb+"/"+this.tb}get methodCoverageRatioText(){return 0===this.tm?"-":this.cm+"/"+this.tm}}class yn{static roundNumber(n,t){return Math.floor(n*Math.pow(10,t))/Math.pow(10,t)}static getNthOrLastIndexOf(n,t,r){let o=0,i=-1,s=-1;for(;o{this.historicCoverages.push(new UA(r))}),this.metrics=n.metrics}get coverage(){return 0===this.coverableLines?"-"!==this.coverageByMethod?parseFloat(this.coverageByMethod):NaN:yn.roundNumber(100*this.coveredLines/this.coverableLines,1)}get coverageType(){return 0===this.coverableLines?"-"!==this.coverageByMethod?this._coverageType:"":this._coverageType}visible(n,t){if(""!==n&&-1===this.name.toLowerCase().indexOf(n.toLowerCase()))return!1;if(""===t||null===this.currentHistoricCoverage)return!0;if("allChanges"===t){if(this.coveredLines===this.currentHistoricCoverage.cl&&this.uncoveredLines===this.currentHistoricCoverage.ucl&&this.coverableLines===this.currentHistoricCoverage.cal&&this.totalLines===this.currentHistoricCoverage.tl&&this.coveredBranches===this.currentHistoricCoverage.cb&&this.totalBranches===this.currentHistoricCoverage.tb&&this.coveredMethods===this.currentHistoricCoverage.cm&&this.totalMethods===this.currentHistoricCoverage.tm)return!1}else if("lineCoverageIncreaseOnly"===t){let r=this.coverage;if(isNaN(r)||r<=this.currentHistoricCoverage.lcq)return!1}else if("lineCoverageDecreaseOnly"===t){let r=this.coverage;if(isNaN(r)||r>=this.currentHistoricCoverage.lcq)return!1}else if("branchCoverageIncreaseOnly"===t){let r=this.branchCoverage;if(isNaN(r)||r<=this.currentHistoricCoverage.bcq)return!1}else if("branchCoverageDecreaseOnly"===t){let r=this.branchCoverage;if(isNaN(r)||r>=this.currentHistoricCoverage.bcq)return!1}else if("methodCoverageIncreaseOnly"===t){let r=this.methodCoverage;if(isNaN(r)||r<=this.currentHistoricCoverage.mcq)return!1}else if("methodCoverageDecreaseOnly"===t){let r=this.methodCoverage;if(isNaN(r)||r>=this.currentHistoricCoverage.mcq)return!1}return!0}updateCurrentHistoricCoverage(n){if(this.currentHistoricCoverage=null,""!==n)for(let t=0;t-1&&null===t}visible(n,t){if(""!==n&&this.name.toLowerCase().indexOf(n.toLowerCase())>-1)return!0;for(let r=0;rt.name===n.name)}toggleMetric(n){let t=this.visibleMetrics.find(r=>r.name===n.name);t?this.visibleMetrics.splice(this.visibleMetrics.indexOf(t),1):this.visibleMetrics.push(n),this.visibleMetrics=[...this.visibleMetrics],this.visibleMetricsChange.emit(this.visibleMetrics)}close(){this.visible=!1,this.visibleChange.emit(this.visible)}cancelEvent(n){n.stopPropagation()}}function KA(e,n){1&e&&N(0,"td",3)}function JA(e,n){1&e&&N(0,"td"),2&e&&Bt("green ",_().greenClass,"")}function XA(e,n){1&e&&N(0,"td"),2&e&&Bt("red ",_().redClass,"")}ko.\u0275fac=function(n){return new(n||ko)},ko.\u0275cmp=Nt({type:ko,selectors:[["popup"]],inputs:{visible:"visible",translations:"translations",branchCoverageAvailable:"branchCoverageAvailable",methodCoverageAvailable:"methodCoverageAvailable",metrics:"metrics",showLineCoverage:"showLineCoverage",showBranchCoverage:"showBranchCoverage",showMethodCoverage:"showMethodCoverage",visibleMetrics:"visibleMetrics"},outputs:{visibleChange:"visibleChange",showLineCoverageChange:"showLineCoverageChange",showBranchCoverageChange:"showBranchCoverageChange",showMethodCoverageChange:"showMethodCoverageChange",visibleMetricsChange:"visibleMetricsChange"},decls:17,vars:9,consts:[[1,"popup-container",3,"click"],[1,"popup",3,"click"],[1,"close",3,"click"],[1,"mt-1"],["type","checkbox",3,"ngModel","ngModelChange","change"],["class","mt-1",4,"ngIf"],["type","checkbox",3,"ngModel","disabled","ngModelChange","change"],[3,"translations",4,"ngIf"],[4,"ngIf"],[3,"translations"],["class","mt-1",4,"ngFor","ngForOf"],["type","checkbox",3,"checked","disabled","change"],["target","_blank",3,"href",4,"ngIf"],["target","_blank",3,"href"],[1,"icon-info-circled"]],template:function(n,t){1&n&&(y(0,"div",0),k("click",function(){return t.close()}),y(1,"div",1),k("click",function(o){return t.cancelEvent(o)}),y(2,"div",2),k("click",function(){return t.close()}),w(3,"X"),v(),y(4,"b"),w(5),v(),y(6,"div",3)(7,"label")(8,"input",4),k("ngModelChange",function(o){return t.showLineCoverage=o})("change",function(){return t.showLineCoverageChange.emit(t.showLineCoverage)}),v(),w(9),v()(),C(10,GA,4,2,"div",5),y(11,"div",3)(12,"label")(13,"input",6),k("ngModelChange",function(o){return t.showMethodCoverage=o})("change",function(){return t.showMethodCoverageChange.emit(t.showMethodCoverage)}),v(),w(14),v(),C(15,WA,1,1,"pro-button",7),v(),C(16,YA,7,3,"ng-container",8),v()()),2&n&&(f(5),F(t.translations.coverageTypes),f(3),g("ngModel",t.showLineCoverage),f(1),G(" ",t.translations.coverage,""),f(1),g("ngIf",t.branchCoverageAvailable),f(3),g("ngModel",t.showMethodCoverage)("disabled",!t.methodCoverageAvailable),f(1),G(" ",t.translations.methodCoverage,""),f(1),g("ngIf",!t.methodCoverageAvailable),f(1),g("ngIf",t.metrics.length>0))},dependencies:[xr,jn,kc,ys,Oo,Po],encapsulation:2});class Fr{constructor(){this.grayVisible=!0,this.greenVisible=!1,this.redVisible=!1,this.greenClass="",this.redClass="",this._percentage=NaN}get percentage(){return this._percentage}set percentage(n){this._percentage=n,this.grayVisible=isNaN(n),this.greenVisible=!isNaN(n)&&Math.round(n)>0,this.redVisible=!isNaN(n)&&100-Math.round(n)>0,this.greenClass="covered"+Math.round(n),this.redClass="covered"+(100-Math.round(n))}}function tT(e,n){if(1&e&&(y(0,"th",5),w(1),v()),2&e){const t=_();f(1),F(t.element.coveredLines)}}function nT(e,n){if(1&e&&(y(0,"th",5),w(1),v()),2&e){const t=_();f(1),F(t.element.uncoveredLines)}}function rT(e,n){if(1&e&&(y(0,"th",5),w(1),v()),2&e){const t=_();f(1),F(t.element.coverableLines)}}function oT(e,n){if(1&e&&(y(0,"th",5),w(1),v()),2&e){const t=_();f(1),F(t.element.totalLines)}}function iT(e,n){if(1&e&&(y(0,"th",6),w(1),v()),2&e){const t=_();g("title",t.element.coverageRatioText),f(1),F(t.element.coveragePercentage)}}function sT(e,n){if(1&e&&(y(0,"th",5),N(1,"coverage-bar",7),v()),2&e){const t=_();f(1),g("percentage",t.element.coverage)}}function aT(e,n){if(1&e&&(y(0,"th",5),w(1),v()),2&e){const t=_();f(1),F(t.element.coveredBranches)}}function lT(e,n){if(1&e&&(y(0,"th",5),w(1),v()),2&e){const t=_();f(1),F(t.element.totalBranches)}}function cT(e,n){if(1&e&&(y(0,"th",6),w(1),v()),2&e){const t=_();g("title",t.element.branchCoverageRatioText),f(1),F(t.element.branchCoveragePercentage)}}function uT(e,n){if(1&e&&(y(0,"th",5),N(1,"coverage-bar",7),v()),2&e){const t=_();f(1),g("percentage",t.element.branchCoverage)}}function dT(e,n){if(1&e&&(y(0,"th",5),w(1),v()),2&e){const t=_();f(1),F(t.element.coveredMethods)}}function fT(e,n){if(1&e&&(y(0,"th",5),w(1),v()),2&e){const t=_();f(1),F(t.element.totalMethods)}}function hT(e,n){if(1&e&&(y(0,"th",6),w(1),v()),2&e){const t=_();g("title",t.element.methodCoverageRatioText),f(1),F(t.element.methodCoveragePercentage)}}function pT(e,n){if(1&e&&(y(0,"th",5),N(1,"coverage-bar",7),v()),2&e){const t=_();f(1),g("percentage",t.element.methodCoverage)}}function gT(e,n){1&e&&N(0,"th",5)}Fr.\u0275fac=function(n){return new(n||Fr)},Fr.\u0275cmp=Nt({type:Fr,selectors:[["coverage-bar"]],inputs:{percentage:"percentage"},decls:4,vars:3,consts:[[1,"coverage"],["class","gray covered100",4,"ngIf"],[3,"class",4,"ngIf"],[1,"gray","covered100"]],template:function(n,t){1&n&&(y(0,"table",0),C(1,KA,1,0,"td",1),C(2,JA,1,3,"td",2),C(3,XA,1,3,"td",2),v()),2&n&&(f(1),g("ngIf",t.grayVisible),f(1),g("ngIf",t.greenVisible),f(1),g("ngIf",t.redVisible))},dependencies:[jn],encapsulation:2,changeDetection:0});const mT=function(e,n){return{"icon-plus":e,"icon-minus":n}};class Lo{constructor(){this.collapsed=!1,this.lineCoverageAvailable=!1,this.branchCoverageAvailable=!1,this.methodCoverageAvailable=!1,this.visibleMetrics=[]}}Lo.\u0275fac=function(n){return new(n||Lo)},Lo.\u0275cmp=Nt({type:Lo,selectors:[["","codeelement-row",""]],inputs:{element:"element",collapsed:"collapsed",lineCoverageAvailable:"lineCoverageAvailable",branchCoverageAvailable:"branchCoverageAvailable",methodCoverageAvailable:"methodCoverageAvailable",visibleMetrics:"visibleMetrics"},attrs:["codeelement-row",""],decls:19,vars:20,consts:[["href","#",3,"click"],[3,"ngClass"],["class","right",4,"ngIf"],["class","right",3,"title",4,"ngIf"],["class","right",4,"ngFor","ngForOf"],[1,"right"],[1,"right",3,"title"],[3,"percentage"]],template:function(n,t){1&n&&(y(0,"th")(1,"a",0),k("click",function(o){return t.element.toggleCollapse(o)}),N(2,"i",1),w(3),v()(),C(4,tT,2,1,"th",2),C(5,nT,2,1,"th",2),C(6,rT,2,1,"th",2),C(7,oT,2,1,"th",2),C(8,iT,2,2,"th",3),C(9,sT,2,1,"th",2),C(10,aT,2,1,"th",2),C(11,lT,2,1,"th",2),C(12,cT,2,2,"th",3),C(13,uT,2,1,"th",2),C(14,dT,2,1,"th",2),C(15,fT,2,1,"th",2),C(16,hT,2,2,"th",3),C(17,pT,2,1,"th",2),C(18,gT,1,0,"th",4)),2&n&&(f(2),g("ngClass",Vl(17,mT,t.element.collapsed,!t.element.collapsed)),f(1),G(" ",t.element.name,""),f(1),g("ngIf",t.lineCoverageAvailable),f(1),g("ngIf",t.lineCoverageAvailable),f(1),g("ngIf",t.lineCoverageAvailable),f(1),g("ngIf",t.lineCoverageAvailable),f(1),g("ngIf",t.lineCoverageAvailable),f(1),g("ngIf",t.lineCoverageAvailable),f(1),g("ngIf",t.branchCoverageAvailable),f(1),g("ngIf",t.branchCoverageAvailable),f(1),g("ngIf",t.branchCoverageAvailable),f(1),g("ngIf",t.branchCoverageAvailable),f(1),g("ngIf",t.methodCoverageAvailable),f(1),g("ngIf",t.methodCoverageAvailable),f(1),g("ngIf",t.methodCoverageAvailable),f(1),g("ngIf",t.methodCoverageAvailable),f(1),g("ngForOf",t.visibleMetrics))},dependencies:[bo,xr,jn,Fr],encapsulation:2,changeDetection:0});class Vo{constructor(){this.path=null,this._historicCoverages=[]}get historicCoverages(){return this._historicCoverages}set historicCoverages(n){if(this._historicCoverages=n,n.length>1){let t="";for(let r=0;r1),f(1),g("ngIf",null!==t.clazz.currentHistoricCoverage),f(1),g("ngIf",null===t.clazz.currentHistoricCoverage)}}function LT(e,n){if(1&e&&(y(0,"td",6),N(1,"coverage-bar",12),v()),2&e){const t=_();f(1),g("percentage",t.clazz.coverage)}}function VT(e,n){if(1&e&&(J(0),y(1,"div"),w(2),v(),y(3,"div",7),w(4),v(),X()),2&e){const t=_(2);f(1),Bt("currenthistory ",t.getClassName(t.clazz.coveredBranches,t.clazz.currentHistoricCoverage.cb),""),f(1),G(" ",t.clazz.coveredBranches," "),f(1),g("title",t.clazz.currentHistoricCoverage.et),f(1),G(" ",t.clazz.currentHistoricCoverage.cb," ")}}function BT(e,n){if(1&e&&(J(0),w(1),X()),2&e){const t=_(2);f(1),G(" ",t.clazz.coveredBranches," ")}}function HT(e,n){if(1&e&&(y(0,"td",6),C(1,VT,5,6,"ng-container",1),C(2,BT,2,1,"ng-container",1),v()),2&e){const t=_();f(1),g("ngIf",null!==t.clazz.currentHistoricCoverage),f(1),g("ngIf",null===t.clazz.currentHistoricCoverage)}}function jT(e,n){if(1&e&&(J(0),y(1,"div",8),w(2),v(),y(3,"div",7),w(4),v(),X()),2&e){const t=_(2);f(2),F(t.clazz.totalBranches),f(1),g("title",t.clazz.currentHistoricCoverage.et),f(1),F(t.clazz.currentHistoricCoverage.tb)}}function $T(e,n){if(1&e&&(J(0),w(1),X()),2&e){const t=_(2);f(1),G(" ",t.clazz.totalBranches," ")}}function UT(e,n){if(1&e&&(y(0,"td",6),C(1,jT,5,3,"ng-container",1),C(2,$T,2,1,"ng-container",1),v()),2&e){const t=_();f(1),g("ngIf",null!==t.clazz.currentHistoricCoverage),f(1),g("ngIf",null===t.clazz.currentHistoricCoverage)}}function zT(e,n){if(1&e&&N(0,"div",14),2&e){const t=_(2);fn("title",t.translations.history+": "+t.translations.branchCoverage),g("historicCoverages",t.clazz.branchCoverageHistory)("ngClass",Zi(3,au,null!==t.clazz.currentHistoricCoverage))}}function GT(e,n){if(1&e&&(J(0),y(1,"div"),w(2),v(),y(3,"div",7),w(4),v(),X()),2&e){const t=_(2);f(1),Bt("currenthistory ",t.getClassName(t.clazz.branchCoverage,t.clazz.currentHistoricCoverage.bcq),""),f(1),G(" ",t.clazz.branchCoveragePercentage," "),f(1),g("title",t.clazz.currentHistoricCoverage.et+": "+t.clazz.currentHistoricCoverage.branchCoverageRatioText),f(1),G("",t.clazz.currentHistoricCoverage.bcq,"%")}}function WT(e,n){if(1&e&&(J(0),w(1),X()),2&e){const t=_(2);f(1),G(" ",t.clazz.branchCoveragePercentage," ")}}function qT(e,n){if(1&e&&(y(0,"td",9),C(1,zT,1,5,"div",13),C(2,GT,5,6,"ng-container",1),C(3,WT,2,1,"ng-container",1),v()),2&e){const t=_();g("title",t.clazz.branchCoverageRatioText),f(1),g("ngIf",t.clazz.branchCoverageHistory.length>1),f(1),g("ngIf",null!==t.clazz.currentHistoricCoverage),f(1),g("ngIf",null===t.clazz.currentHistoricCoverage)}}function ZT(e,n){if(1&e&&(y(0,"td",6),N(1,"coverage-bar",12),v()),2&e){const t=_();f(1),g("percentage",t.clazz.branchCoverage)}}function QT(e,n){if(1&e&&(J(0),y(1,"div"),w(2),v(),y(3,"div",7),w(4),v(),X()),2&e){const t=_(2);f(1),Bt("currenthistory ",t.getClassName(t.clazz.coveredMethods,t.clazz.currentHistoricCoverage.cm),""),f(1),G(" ",t.clazz.coveredMethods," "),f(1),g("title",t.clazz.currentHistoricCoverage.et),f(1),G(" ",t.clazz.currentHistoricCoverage.cm," ")}}function YT(e,n){if(1&e&&(J(0),w(1),X()),2&e){const t=_(2);f(1),G(" ",t.clazz.coveredMethods," ")}}function KT(e,n){if(1&e&&(y(0,"td",6),C(1,QT,5,6,"ng-container",1),C(2,YT,2,1,"ng-container",1),v()),2&e){const t=_();f(1),g("ngIf",null!==t.clazz.currentHistoricCoverage),f(1),g("ngIf",null===t.clazz.currentHistoricCoverage)}}function JT(e,n){if(1&e&&(J(0),y(1,"div",8),w(2),v(),y(3,"div",7),w(4),v(),X()),2&e){const t=_(2);f(2),F(t.clazz.totalMethods),f(1),g("title",t.clazz.currentHistoricCoverage.et),f(1),F(t.clazz.currentHistoricCoverage.tm)}}function XT(e,n){if(1&e&&(J(0),w(1),X()),2&e){const t=_(2);f(1),G(" ",t.clazz.totalMethods," ")}}function ex(e,n){if(1&e&&(y(0,"td",6),C(1,JT,5,3,"ng-container",1),C(2,XT,2,1,"ng-container",1),v()),2&e){const t=_();f(1),g("ngIf",null!==t.clazz.currentHistoricCoverage),f(1),g("ngIf",null===t.clazz.currentHistoricCoverage)}}function tx(e,n){if(1&e&&N(0,"div",16),2&e){const t=_(2);fn("title",t.translations.history+": "+t.translations.methodCoverage),g("historicCoverages",t.clazz.methodCoverageHistory)("ngClass",Zi(3,au,null!==t.clazz.currentHistoricCoverage))}}function nx(e,n){if(1&e&&(J(0),y(1,"div"),w(2),v(),y(3,"div",7),w(4),v(),X()),2&e){const t=_(2);f(1),Bt("currenthistory ",t.getClassName(t.clazz.methodCoverage,t.clazz.currentHistoricCoverage.mcq),""),f(1),G(" ",t.clazz.methodCoveragePercentage," "),f(1),g("title",t.clazz.currentHistoricCoverage.et+": "+t.clazz.currentHistoricCoverage.methodCoverageRatioText),f(1),G("",t.clazz.currentHistoricCoverage.mcq,"%")}}function rx(e,n){if(1&e&&(J(0),w(1),X()),2&e){const t=_(2);f(1),G(" ",t.clazz.methodCoveragePercentage," ")}}function ox(e,n){if(1&e&&(y(0,"td",9),C(1,tx,1,5,"div",15),C(2,nx,5,6,"ng-container",1),C(3,rx,2,1,"ng-container",1),v()),2&e){const t=_();g("title",t.clazz.methodCoverageRatioText),f(1),g("ngIf",t.clazz.methodCoverageHistory.length>1),f(1),g("ngIf",null!==t.clazz.currentHistoricCoverage),f(1),g("ngIf",null===t.clazz.currentHistoricCoverage)}}function ix(e,n){if(1&e&&(y(0,"td",6),N(1,"coverage-bar",12),v()),2&e){const t=_();f(1),g("percentage",t.clazz.methodCoverage)}}function sx(e,n){if(1&e&&(y(0,"td",6),w(1),v()),2&e){const t=n.$implicit,r=_();f(1),F(r.clazz.metrics[t.abbreviation])}}class Bo{constructor(){this.translations={},this.lineCoverageAvailable=!1,this.branchCoverageAvailable=!1,this.methodCoverageAvailable=!1,this.visibleMetrics=[],this.historyComparisionDate=""}getClassName(n,t){return n>t?"lightgreen":n0),f(2),G(" ",t.translations.grouping," "),f(1),g("max",t.settings.groupingMaximum)("ngModel",t.settings.grouping),f(2),g("ngIf",t.historicCoverageExecutionTimes.length>0),f(5),F(t.metrics.length>0?t.translations.selectCoverageTypesAndMetrics:t.translations.selectCoverageTypes),f(4),G("",t.translations.filter," "),f(1),g("ngModel",t.settings.filter),f(5),g("ngIf",t.settings.showLineCoverage),f(1),g("ngIf",t.settings.showLineCoverage),f(1),g("ngIf",t.settings.showLineCoverage),f(1),g("ngIf",t.settings.showLineCoverage),f(1),g("ngIf",t.settings.showLineCoverage),f(1),g("ngIf",t.settings.showLineCoverage),f(1),g("ngIf",t.branchCoverageAvailable&&t.settings.showBranchCoverage),f(1),g("ngIf",t.branchCoverageAvailable&&t.settings.showBranchCoverage),f(1),g("ngIf",t.branchCoverageAvailable&&t.settings.showBranchCoverage),f(1),g("ngIf",t.branchCoverageAvailable&&t.settings.showBranchCoverage),f(1),g("ngIf",t.methodCoverageAvailable&&t.settings.showMethodCoverage),f(1),g("ngIf",t.methodCoverageAvailable&&t.settings.showMethodCoverage),f(1),g("ngIf",t.methodCoverageAvailable&&t.settings.showMethodCoverage),f(1),g("ngIf",t.methodCoverageAvailable&&t.settings.showMethodCoverage),f(1),g("ngForOf",t.settings.visibleMetrics),f(4),g("ngIf",t.settings.showLineCoverage),f(1),g("ngIf",t.branchCoverageAvailable&&t.settings.showBranchCoverage),f(1),g("ngIf",t.methodCoverageAvailable&&t.settings.showMethodCoverage),f(1),g("ngIf",t.settings.visibleMetrics.length>0),f(4),g("ngClass",Oe(47,ct,"name"===t.settings.sortBy&&"desc"===t.settings.sortOrder,"name"===t.settings.sortBy&&"asc"===t.settings.sortOrder,"name"!==t.settings.sortBy)),f(1),F(t.translations.name),f(1),g("ngIf",t.settings.showLineCoverage),f(1),g("ngIf",t.settings.showLineCoverage),f(1),g("ngIf",t.settings.showLineCoverage),f(1),g("ngIf",t.settings.showLineCoverage),f(1),g("ngIf",t.settings.showLineCoverage),f(1),g("ngIf",t.branchCoverageAvailable&&t.settings.showBranchCoverage),f(1),g("ngIf",t.branchCoverageAvailable&&t.settings.showBranchCoverage),f(1),g("ngIf",t.branchCoverageAvailable&&t.settings.showBranchCoverage),f(1),g("ngIf",t.methodCoverageAvailable&&t.settings.showMethodCoverage),f(1),g("ngIf",t.methodCoverageAvailable&&t.settings.showMethodCoverage),f(1),g("ngIf",t.methodCoverageAvailable&&t.settings.showMethodCoverage),f(1),g("ngForOf",t.settings.visibleMetrics),f(2),g("ngForOf",t.codeElements)}}class Ho{constructor(n){this.queryString="",this.historicCoverageExecutionTimes=[],this.branchCoverageAvailable=!1,this.methodCoverageAvailable=!1,this.metrics=[],this.codeElements=[],this.translations={},this.popupVisible=!1,this.settings=new $A,this.window=n.nativeWindow}ngOnInit(){this.historicCoverageExecutionTimes=this.window.historicCoverageExecutionTimes,this.branchCoverageAvailable=this.window.branchCoverageAvailable,this.methodCoverageAvailable=this.window.methodCoverageAvailable,this.metrics=this.window.metrics,this.translations=this.window.translations;let n=!1;if(void 0!==this.window.history&&void 0!==this.window.history.replaceState&&null!==this.window.history.state&&null!=this.window.history.state.coverageInfoSettings)console.log("Coverage info: Restoring from history",this.window.history.state.coverageInfoSettings),n=!0,this.settings=JSON.parse(JSON.stringify(this.window.history.state.coverageInfoSettings));else{let r=0,o=this.window.assemblies;for(let i=0;i-1&&(this.queryString=window.location.href.substring(t)),this.updateCoverageInfo(),n&&this.restoreCollapseState()}onBeforeUnload(){if(this.saveCollapseState(),void 0!==this.window.history&&void 0!==this.window.history.replaceState){console.log("Coverage info: Updating history",this.settings);let n=new iv;null!==window.history.state&&(n=JSON.parse(JSON.stringify(this.window.history.state))),n.coverageInfoSettings=JSON.parse(JSON.stringify(this.settings)),window.history.replaceState(n,"")}}updateCoverageInfo(){let n=(new Date).getTime(),t=this.window.assemblies,r=[],o=0;if(0===this.settings.grouping)for(let a=0;a{for(let r=0;r{for(let o=0;on&&(r[o].collapsed=this.settings.collapseStates[n]),n++,t(r[o].subElements)};t(this.codeElements)}}Ho.\u0275fac=function(n){return new(n||Ho)(M(Dn))},Ho.\u0275cmp=Nt({type:Ho,selectors:[["coverage-info"]],hostBindings:function(n,t){1&n&&k("beforeunload",function(){return t.onBeforeUnload()},0,ol)},decls:1,vars:1,consts:[[4,"ngIf"],[3,"visible","translations","branchCoverageAvailable","methodCoverageAvailable","metrics","showLineCoverage","showBranchCoverage","showMethodCoverage","visibleMetrics","visibleChange","showLineCoverageChange","showBranchCoverageChange","showMethodCoverageChange","visibleMetricsChange",4,"ngIf"],[1,"customizebox"],["href","#",3,"click"],[1,"center"],["type","range","step","1","min","-1",3,"max","ngModel","ngModelChange"],[1,"right"],["type","button",3,"click"],[1,"icon-cog"],["type","text",3,"ngModel","ngModelChange"],[1,"table-responsive"],[1,"overview","table-fixed","stripped"],[1,"column-min-200"],["class","column90",4,"ngIf"],["class","column105",4,"ngIf"],["class","column100",4,"ngIf"],["class","column70",4,"ngIf"],["class","column98",4,"ngIf"],["class","column112",4,"ngIf"],["class","column112",4,"ngFor","ngForOf"],[1,"header"],["class","center","colspan","6",4,"ngIf"],["class","center","colspan","4",4,"ngIf"],["class","center",4,"ngIf"],[1,"icon-down-dir",3,"ngClass"],["class","right",4,"ngIf"],["class","center","colspan","2",4,"ngIf"],[4,"ngFor","ngForOf"],[3,"visible","translations","branchCoverageAvailable","methodCoverageAvailable","metrics","showLineCoverage","showBranchCoverage","showMethodCoverage","visibleMetrics","visibleChange","showLineCoverageChange","showBranchCoverageChange","showMethodCoverageChange","visibleMetricsChange"],[3,"ngModel","ngModelChange"],["value",""],[3,"value",4,"ngFor","ngForOf"],[3,"value"],["value","allChanges"],["value","lineCoverageIncreaseOnly"],["value","lineCoverageDecreaseOnly"],["value","branchCoverageIncreaseOnly",4,"ngIf"],["value","branchCoverageDecreaseOnly",4,"ngIf"],["value","methodCoverageIncreaseOnly",4,"ngIf"],["value","methodCoverageDecreaseOnly",4,"ngIf"],["value","branchCoverageIncreaseOnly"],["value","branchCoverageDecreaseOnly"],["value","methodCoverageIncreaseOnly"],["value","methodCoverageDecreaseOnly"],[1,"column90"],[1,"column105"],[1,"column100"],[1,"column70"],[1,"column98"],[1,"column112"],["colspan","6",1,"center"],["colspan","4",1,"center"],["colspan","2",1,"center"],["target","_blank",3,"href"],[1,"icon-info-circled"],["codeelement-row","",3,"element","collapsed","lineCoverageAvailable","branchCoverageAvailable","methodCoverageAvailable","visibleMetrics",4,"ngIf"],["codeelement-row","",3,"element","collapsed","lineCoverageAvailable","branchCoverageAvailable","methodCoverageAvailable","visibleMetrics"],["class-row","",3,"clazz","translations","lineCoverageAvailable","branchCoverageAvailable","methodCoverageAvailable","visibleMetrics","historyComparisionDate",4,"ngIf"],["class-row","",3,"clazz","translations","lineCoverageAvailable","branchCoverageAvailable","methodCoverageAvailable","visibleMetrics","historyComparisionDate"],["codeelement-row","",1,"namespace",3,"element","collapsed","lineCoverageAvailable","branchCoverageAvailable","methodCoverageAvailable","visibleMetrics"],["class","namespace","class-row","",3,"clazz","translations","lineCoverageAvailable","branchCoverageAvailable","methodCoverageAvailable","visibleMetrics","historyComparisionDate",4,"ngIf"],["class-row","",1,"namespace",3,"clazz","translations","lineCoverageAvailable","branchCoverageAvailable","methodCoverageAvailable","visibleMetrics","historyComparisionDate"]],template:function(n,t){1&n&&C(0,oN,73,51,"div",0),2&n&&g("ngIf",t.codeElements.length>0)},dependencies:[bo,xr,jn,nu,ou,So,Jc,Ro,ys,Oo,ko,Lo,Bo],encapsulation:2});class iN{constructor(){this.assembly="",this.numberOfRiskHotspots=10,this.filter="",this.sortBy="",this.sortOrder="asc"}}function sN(e,n){if(1&e&&(y(0,"option",15),w(1),v()),2&e){const t=n.$implicit;g("value",t),f(1),F(t)}}function aN(e,n){if(1&e&&(y(0,"span"),w(1),v()),2&e){const t=_(2);f(1),F(t.translations.top)}}function lN(e,n){1&e&&(y(0,"option",22),w(1,"20"),v())}function cN(e,n){1&e&&(y(0,"option",23),w(1,"50"),v())}function uN(e,n){1&e&&(y(0,"option",24),w(1,"100"),v())}function dN(e,n){if(1&e&&(y(0,"option",15),w(1),v()),2&e){const t=_(3);g("value",t.totalNumberOfRiskHotspots),f(1),F(t.translations.all)}}function fN(e,n){if(1&e){const t=Ce();y(0,"select",16),k("ngModelChange",function(o){return Q(t),Y(_(2).settings.numberOfRiskHotspots=o)}),y(1,"option",17),w(2,"10"),v(),C(3,lN,2,0,"option",18),C(4,cN,2,0,"option",19),C(5,uN,2,0,"option",20),C(6,dN,2,2,"option",21),v()}if(2&e){const t=_(2);g("ngModel",t.settings.numberOfRiskHotspots),f(3),g("ngIf",t.totalNumberOfRiskHotspots>10),f(1),g("ngIf",t.totalNumberOfRiskHotspots>20),f(1),g("ngIf",t.totalNumberOfRiskHotspots>50),f(1),g("ngIf",t.totalNumberOfRiskHotspots>100)}}function hN(e,n){1&e&&N(0,"col",25)}const Ss=function(e,n,t){return{"icon-up-dir_active":e,"icon-down-dir_active":n,"icon-down-dir":t}};function pN(e,n){if(1&e){const t=Ce();y(0,"th")(1,"a",12),k("click",function(o){const s=Q(t).index;return Y(_(2).updateSorting(""+s,o))}),N(2,"i",13),w(3),v(),y(4,"a",26),N(5,"i",27),v()()}if(2&e){const t=n.$implicit,r=n.index,o=_(2);f(2),g("ngClass",Oe(3,Ss,o.settings.sortBy===""+r&&"desc"===o.settings.sortOrder,o.settings.sortBy===""+r&&"asc"===o.settings.sortOrder,o.settings.sortBy!==""+r)),f(1),F(t.name),f(1),fn("href",t.explanationUrl,un)}}const gN=function(e,n){return{lightred:e,lightgreen:n}};function mN(e,n){if(1&e&&(y(0,"td",31),w(1),v()),2&e){const t=n.$implicit;g("ngClass",Vl(2,gN,t.exceeded,!t.exceeded)),f(1),F(t.value)}}function _N(e,n){if(1&e&&(y(0,"tr")(1,"td"),w(2),v(),y(3,"td")(4,"a",28),w(5),v()(),y(6,"td",29)(7,"a",28),w(8),v()(),C(9,mN,2,5,"td",30),v()),2&e){const t=n.$implicit,r=_(2);f(2),F(t.assembly),f(2),g("href",t.reportPath+r.queryString,un),f(1),F(t.class),f(1),g("title",t.methodName),f(1),g("href",t.reportPath+r.queryString+"#file"+t.fileIndex+"_line"+t.line,un),f(1),G(" ",t.methodShortName," "),f(1),g("ngForOf",t.metrics)}}function vN(e,n){if(1&e){const t=Ce();y(0,"div")(1,"div",1)(2,"div")(3,"select",2),k("ngModelChange",function(o){return Q(t),Y(_().settings.assembly=o)})("ngModelChange",function(){return Q(t),Y(_().updateRiskHotpots())}),y(4,"option",3),w(5),v(),C(6,sN,2,2,"option",4),v()(),y(7,"div",5),C(8,aN,2,1,"span",0),C(9,fN,7,5,"select",6),v(),N(10,"div",5),y(11,"div",7)(12,"span"),w(13),v(),y(14,"input",8),k("ngModelChange",function(o){return Q(t),Y(_().settings.filter=o)})("ngModelChange",function(){return Q(t),Y(_().updateRiskHotpots())}),v()()(),y(15,"div",9)(16,"table",10)(17,"colgroup"),N(18,"col")(19,"col")(20,"col"),C(21,hN,1,0,"col",11),v(),y(22,"thead")(23,"tr")(24,"th")(25,"a",12),k("click",function(o){return Q(t),Y(_().updateSorting("assembly",o))}),N(26,"i",13),w(27),v()(),y(28,"th")(29,"a",12),k("click",function(o){return Q(t),Y(_().updateSorting("class",o))}),N(30,"i",13),w(31),v()(),y(32,"th")(33,"a",12),k("click",function(o){return Q(t),Y(_().updateSorting("method",o))}),N(34,"i",13),w(35),v()(),C(36,pN,6,7,"th",14),v()(),y(37,"tbody"),C(38,_N,10,7,"tr",14),function gg(e,n){const t=ee();let r;const o=e+22;t.firstCreatePass?(r=function kE(e,n){if(n)for(let t=n.length-1;t>=0;t--){const r=n[t];if(e===r.name)return r}}(n,t.pipeRegistry),t.data[o]=r,r.onDestroy&&(t.destroyHooks||(t.destroyHooks=[])).push(o,r.onDestroy)):r=t.data[o];const i=r.factory||(r.factory=Sn(r.type)),s=dt(M);try{const a=fi(!1),l=i();return fi(a),function bb(e,n,t,r){t>=e.data.length&&(e.data[t]=null,e.blueprint[t]=null),n[t]=r}(t,E(),o,l),l}finally{dt(s)}}(39,"slice"),v()()()()}if(2&e){const t=_();f(3),g("ngModel",t.settings.assembly),f(2),F(t.translations.assembly),f(1),g("ngForOf",t.assemblies),f(2),g("ngIf",t.totalNumberOfRiskHotspots>10),f(1),g("ngIf",t.totalNumberOfRiskHotspots>10),f(4),G("",t.translations.filter," "),f(1),g("ngModel",t.settings.filter),f(7),g("ngForOf",t.riskHotspotMetrics),f(5),g("ngClass",Oe(20,Ss,"assembly"===t.settings.sortBy&&"desc"===t.settings.sortOrder,"assembly"===t.settings.sortBy&&"asc"===t.settings.sortOrder,"assembly"!==t.settings.sortBy)),f(1),F(t.translations.assembly),f(3),g("ngClass",Oe(24,Ss,"class"===t.settings.sortBy&&"desc"===t.settings.sortOrder,"class"===t.settings.sortBy&&"asc"===t.settings.sortOrder,"class"!==t.settings.sortBy)),f(1),F(t.translations.class),f(3),g("ngClass",Oe(28,Ss,"method"===t.settings.sortBy&&"desc"===t.settings.sortOrder,"method"===t.settings.sortBy&&"asc"===t.settings.sortOrder,"method"!==t.settings.sortBy)),f(1),F(t.translations.method),f(1),g("ngForOf",t.riskHotspotMetrics),f(2),g("ngForOf",function mg(e,n,t,r,o){const i=e+22,s=E(),a=function Kn(e,n){return e[n]}(s,i);return function _o(e,n){return e[1].data[n].pure}(s,i)?fg(s,qe(),n,a.transform,t,r,o,a):a.transform(t,r,o)}(39,16,t.riskHotspots,0,t.settings.numberOfRiskHotspots))}}class jo{constructor(n){this.queryString="",this.riskHotspotMetrics=[],this.riskHotspots=[],this.totalNumberOfRiskHotspots=0,this.assemblies=[],this.translations={},this.settings=new iN,this.window=n.nativeWindow}ngOnInit(){this.riskHotspotMetrics=this.window.riskHotspotMetrics,this.translations=this.window.translations,void 0!==this.window.history&&void 0!==this.window.history.replaceState&&null!==this.window.history.state&&null!=this.window.history.state.riskHotspotsSettings&&(console.log("Risk hotspots: Restoring from history",this.window.history.state.riskHotspotsSettings),this.settings=JSON.parse(JSON.stringify(this.window.history.state.riskHotspotsSettings)));const n=window.location.href.indexOf("?");n>-1&&(this.queryString=window.location.href.substring(n)),this.updateRiskHotpots()}onDonBeforeUnlodad(){if(void 0!==this.window.history&&void 0!==this.window.history.replaceState){console.log("Risk hotspots: Updating history",this.settings);let n=new iv;null!==window.history.state&&(n=JSON.parse(JSON.stringify(this.window.history.state))),n.riskHotspotsSettings=JSON.parse(JSON.stringify(this.settings)),window.history.replaceState(n,"")}}updateRiskHotpots(){const n=this.window.riskHotspots;if(this.totalNumberOfRiskHotspots=n.length,0===this.assemblies.length){let i=[];for(let s=0;s0)},dependencies:[bo,xr,jn,nu,ou,So,Ro,ys,Oo,Om],encapsulation:2});class Or{}Or.\u0275fac=function(n){return new(n||Or)},Or.\u0275mod=an({type:Or,bootstrap:[jo,Ho]}),Or.\u0275inj=$t({providers:[Dn],imports:[DS,jA]}),CS().bootstrapModule(Or).catch(e=>console.error(e))}},me=>{me(me.s=938)}]); + +------=_NextPart_000_0000_01D23618.54EBCBE0 +Content-Type: application/javascript; + charset="utf-8" +Content-Transfer-Encoding: 8bit +Content-Location: file:///class.js + +/* Chartist.js 0.11.4 + * Copyright © 2019 Gion Kunz + * Free to use under either the WTFPL license or the MIT license. + * https://raw.githubusercontent.com/gionkunz/chartist-js/master/LICENSE-WTFPL + * https://raw.githubusercontent.com/gionkunz/chartist-js/master/LICENSE-MIT + */ + +!function (a, b) { "function" == typeof define && define.amd ? define("Chartist", [], function () { return a.Chartist = b() }) : "object" == typeof module && module.exports ? module.exports = b() : a.Chartist = b() }(this, function () { + var a = { version: "0.11.4" }; return function (a, b) { "use strict"; var c = a.window, d = a.document; b.namespaces = { svg: "http://www.w3.org/2000/svg", xmlns: "http://www.w3.org/2000/xmlns/", xhtml: "http://www.w3.org/1999/xhtml", xlink: "http://www.w3.org/1999/xlink", ct: "http://gionkunz.github.com/chartist-js/ct" }, b.noop = function (a) { return a }, b.alphaNumerate = function (a) { return String.fromCharCode(97 + a % 26) }, b.extend = function (a) { var c, d, e; for (a = a || {}, c = 1; c < arguments.length; c++) { d = arguments[c]; for (var f in d) e = d[f], "object" != typeof e || null === e || e instanceof Array ? a[f] = e : a[f] = b.extend(a[f], e) } return a }, b.replaceAll = function (a, b, c) { return a.replace(new RegExp(b, "g"), c) }, b.ensureUnit = function (a, b) { return "number" == typeof a && (a += b), a }, b.quantity = function (a) { if ("string" == typeof a) { var b = /^(\d+)\s*(.*)$/g.exec(a); return { value: +b[1], unit: b[2] || void 0 } } return { value: a } }, b.querySelector = function (a) { return a instanceof Node ? a : d.querySelector(a) }, b.times = function (a) { return Array.apply(null, new Array(a)) }, b.sum = function (a, b) { return a + (b ? b : 0) }, b.mapMultiply = function (a) { return function (b) { return b * a } }, b.mapAdd = function (a) { return function (b) { return b + a } }, b.serialMap = function (a, c) { var d = [], e = Math.max.apply(null, a.map(function (a) { return a.length })); return b.times(e).forEach(function (b, e) { var f = a.map(function (a) { return a[e] }); d[e] = c.apply(null, f) }), d }, b.roundWithPrecision = function (a, c) { var d = Math.pow(10, c || b.precision); return Math.round(a * d) / d }, b.precision = 8, b.escapingMap = { "&": "&", "<": "<", ">": ">", '"': """, "'": "'" }, b.serialize = function (a) { return null === a || void 0 === a ? a : ("number" == typeof a ? a = "" + a : "object" == typeof a && (a = JSON.stringify({ data: a })), Object.keys(b.escapingMap).reduce(function (a, c) { return b.replaceAll(a, c, b.escapingMap[c]) }, a)) }, b.deserialize = function (a) { if ("string" != typeof a) return a; a = Object.keys(b.escapingMap).reduce(function (a, c) { return b.replaceAll(a, b.escapingMap[c], c) }, a); try { a = JSON.parse(a), a = void 0 !== a.data ? a.data : a } catch (c) { } return a }, b.createSvg = function (a, c, d, e) { var f; return c = c || "100%", d = d || "100%", Array.prototype.slice.call(a.querySelectorAll("svg")).filter(function (a) { return a.getAttributeNS(b.namespaces.xmlns, "ct") }).forEach(function (b) { a.removeChild(b) }), f = new b.Svg("svg").attr({ width: c, height: d }).addClass(e), f._node.style.width = c, f._node.style.height = d, a.appendChild(f._node), f }, b.normalizeData = function (a, c, d) { var e, f = { raw: a, normalized: {} }; return f.normalized.series = b.getDataArray({ series: a.series || [] }, c, d), e = f.normalized.series.every(function (a) { return a instanceof Array }) ? Math.max.apply(null, f.normalized.series.map(function (a) { return a.length })) : f.normalized.series.length, f.normalized.labels = (a.labels || []).slice(), Array.prototype.push.apply(f.normalized.labels, b.times(Math.max(0, e - f.normalized.labels.length)).map(function () { return "" })), c && b.reverseData(f.normalized), f }, b.safeHasProperty = function (a, b) { return null !== a && "object" == typeof a && a.hasOwnProperty(b) }, b.isDataHoleValue = function (a) { return null === a || void 0 === a || "number" == typeof a && isNaN(a) }, b.reverseData = function (a) { a.labels.reverse(), a.series.reverse(); for (var b = 0; b < a.series.length; b++)"object" == typeof a.series[b] && void 0 !== a.series[b].data ? a.series[b].data.reverse() : a.series[b] instanceof Array && a.series[b].reverse() }, b.getDataArray = function (a, c, d) { function e(a) { if (b.safeHasProperty(a, "value")) return e(a.value); if (b.safeHasProperty(a, "data")) return e(a.data); if (a instanceof Array) return a.map(e); if (!b.isDataHoleValue(a)) { if (d) { var c = {}; return "string" == typeof d ? c[d] = b.getNumberOrUndefined(a) : c.y = b.getNumberOrUndefined(a), c.x = a.hasOwnProperty("x") ? b.getNumberOrUndefined(a.x) : c.x, c.y = a.hasOwnProperty("y") ? b.getNumberOrUndefined(a.y) : c.y, c } return b.getNumberOrUndefined(a) } } return a.series.map(e) }, b.normalizePadding = function (a, b) { return b = b || 0, "number" == typeof a ? { top: a, right: a, bottom: a, left: a } : { top: "number" == typeof a.top ? a.top : b, right: "number" == typeof a.right ? a.right : b, bottom: "number" == typeof a.bottom ? a.bottom : b, left: "number" == typeof a.left ? a.left : b } }, b.getMetaData = function (a, b) { var c = a.data ? a.data[b] : a[b]; return c ? c.meta : void 0 }, b.orderOfMagnitude = function (a) { return Math.floor(Math.log(Math.abs(a)) / Math.LN10) }, b.projectLength = function (a, b, c) { return b / c.range * a }, b.getAvailableHeight = function (a, c) { return Math.max((b.quantity(c.height).value || a.height()) - (c.chartPadding.top + c.chartPadding.bottom) - c.axisX.offset, 0) }, b.getHighLow = function (a, c, d) { function e(a) { if (void 0 !== a) if (a instanceof Array) for (var b = 0; b < a.length; b++)e(a[b]); else { var c = d ? +a[d] : +a; g && c > f.high && (f.high = c), h && c < f.low && (f.low = c) } } c = b.extend({}, c, d ? c["axis" + d.toUpperCase()] : {}); var f = { high: void 0 === c.high ? -Number.MAX_VALUE : +c.high, low: void 0 === c.low ? Number.MAX_VALUE : +c.low }, g = void 0 === c.high, h = void 0 === c.low; return (g || h) && e(a), (c.referenceValue || 0 === c.referenceValue) && (f.high = Math.max(c.referenceValue, f.high), f.low = Math.min(c.referenceValue, f.low)), f.high <= f.low && (0 === f.low ? f.high = 1 : f.low < 0 ? f.high = 0 : f.high > 0 ? f.low = 0 : (f.high = 1, f.low = 0)), f }, b.isNumeric = function (a) { return null !== a && isFinite(a) }, b.isFalseyButZero = function (a) { return !a && 0 !== a }, b.getNumberOrUndefined = function (a) { return b.isNumeric(a) ? +a : void 0 }, b.isMultiValue = function (a) { return "object" == typeof a && ("x" in a || "y" in a) }, b.getMultiValue = function (a, c) { return b.isMultiValue(a) ? b.getNumberOrUndefined(a[c || "y"]) : b.getNumberOrUndefined(a) }, b.rho = function (a) { function b(a, c) { return a % c === 0 ? c : b(c, a % c) } function c(a) { return a * a + 1 } if (1 === a) return a; var d, e = 2, f = 2; if (a % 2 === 0) return 2; do e = c(e) % a, f = c(c(f)) % a, d = b(Math.abs(e - f), a); while (1 === d); return d }, b.getBounds = function (a, c, d, e) { function f(a, b) { return a === (a += b) && (a *= 1 + (b > 0 ? o : -o)), a } var g, h, i, j = 0, k = { high: c.high, low: c.low }; k.valueRange = k.high - k.low, k.oom = b.orderOfMagnitude(k.valueRange), k.step = Math.pow(10, k.oom), k.min = Math.floor(k.low / k.step) * k.step, k.max = Math.ceil(k.high / k.step) * k.step, k.range = k.max - k.min, k.numberOfSteps = Math.round(k.range / k.step); var l = b.projectLength(a, k.step, k), m = l < d, n = e ? b.rho(k.range) : 0; if (e && b.projectLength(a, 1, k) >= d) k.step = 1; else if (e && n < k.step && b.projectLength(a, n, k) >= d) k.step = n; else for (; ;) { if (m && b.projectLength(a, k.step, k) <= d) k.step *= 2; else { if (m || !(b.projectLength(a, k.step / 2, k) >= d)) break; if (k.step /= 2, e && k.step % 1 !== 0) { k.step *= 2; break } } if (j++ > 1e3) throw new Error("Exceeded maximum number of iterations while optimizing scale step!") } var o = 2.221e-16; for (k.step = Math.max(k.step, o), h = k.min, i = k.max; h + k.step <= k.low;)h = f(h, k.step); for (; i - k.step >= k.high;)i = f(i, -k.step); k.min = h, k.max = i, k.range = k.max - k.min; var p = []; for (g = k.min; g <= k.max; g = f(g, k.step)) { var q = b.roundWithPrecision(g); q !== p[p.length - 1] && p.push(q) } return k.values = p, k }, b.polarToCartesian = function (a, b, c, d) { var e = (d - 90) * Math.PI / 180; return { x: a + c * Math.cos(e), y: b + c * Math.sin(e) } }, b.createChartRect = function (a, c, d) { var e = !(!c.axisX && !c.axisY), f = e ? c.axisY.offset : 0, g = e ? c.axisX.offset : 0, h = a.width() || b.quantity(c.width).value || 0, i = a.height() || b.quantity(c.height).value || 0, j = b.normalizePadding(c.chartPadding, d); h = Math.max(h, f + j.left + j.right), i = Math.max(i, g + j.top + j.bottom); var k = { padding: j, width: function () { return this.x2 - this.x1 }, height: function () { return this.y1 - this.y2 } }; return e ? ("start" === c.axisX.position ? (k.y2 = j.top + g, k.y1 = Math.max(i - j.bottom, k.y2 + 1)) : (k.y2 = j.top, k.y1 = Math.max(i - j.bottom - g, k.y2 + 1)), "start" === c.axisY.position ? (k.x1 = j.left + f, k.x2 = Math.max(h - j.right, k.x1 + 1)) : (k.x1 = j.left, k.x2 = Math.max(h - j.right - f, k.x1 + 1))) : (k.x1 = j.left, k.x2 = Math.max(h - j.right, k.x1 + 1), k.y2 = j.top, k.y1 = Math.max(i - j.bottom, k.y2 + 1)), k }, b.createGrid = function (a, c, d, e, f, g, h, i) { var j = {}; j[d.units.pos + "1"] = a, j[d.units.pos + "2"] = a, j[d.counterUnits.pos + "1"] = e, j[d.counterUnits.pos + "2"] = e + f; var k = g.elem("line", j, h.join(" ")); i.emit("draw", b.extend({ type: "grid", axis: d, index: c, group: g, element: k }, j)) }, b.createGridBackground = function (a, b, c, d) { var e = a.elem("rect", { x: b.x1, y: b.y2, width: b.width(), height: b.height() }, c, !0); d.emit("draw", { type: "gridBackground", group: a, element: e }) }, b.createLabel = function (a, c, e, f, g, h, i, j, k, l, m) { var n, o = {}; if (o[g.units.pos] = a + i[g.units.pos], o[g.counterUnits.pos] = i[g.counterUnits.pos], o[g.units.len] = c, o[g.counterUnits.len] = Math.max(0, h - 10), l) { var p = d.createElement("span"); p.className = k.join(" "), p.setAttribute("xmlns", b.namespaces.xhtml), p.innerText = f[e], p.style[g.units.len] = Math.round(o[g.units.len]) + "px", p.style[g.counterUnits.len] = Math.round(o[g.counterUnits.len]) + "px", n = j.foreignObject(p, b.extend({ style: "overflow: visible;" }, o)) } else n = j.elem("text", o, k.join(" ")).text(f[e]); m.emit("draw", b.extend({ type: "label", axis: g, index: e, group: j, element: n, text: f[e] }, o)) }, b.getSeriesOption = function (a, b, c) { if (a.name && b.series && b.series[a.name]) { var d = b.series[a.name]; return d.hasOwnProperty(c) ? d[c] : b[c] } return b[c] }, b.optionsProvider = function (a, d, e) { function f(a) { var f = h; if (h = b.extend({}, j), d) for (i = 0; i < d.length; i++) { var g = c.matchMedia(d[i][0]); g.matches && (h = b.extend(h, d[i][1])) } e && a && e.emit("optionsChanged", { previousOptions: f, currentOptions: h }) } function g() { k.forEach(function (a) { a.removeListener(f) }) } var h, i, j = b.extend({}, a), k = []; if (!c.matchMedia) throw "window.matchMedia not found! Make sure you're using a polyfill."; if (d) for (i = 0; i < d.length; i++) { var l = c.matchMedia(d[i][0]); l.addListener(f), k.push(l) } return f(), { removeMediaQueryListeners: g, getCurrentOptions: function () { return b.extend({}, h) } } }, b.splitIntoSegments = function (a, c, d) { var e = { increasingX: !1, fillHoles: !1 }; d = b.extend({}, e, d); for (var f = [], g = !0, h = 0; h < a.length; h += 2)void 0 === b.getMultiValue(c[h / 2].value) ? d.fillHoles || (g = !0) : (d.increasingX && h >= 2 && a[h] <= a[h - 2] && (g = !0), g && (f.push({ pathCoordinates: [], valueData: [] }), g = !1), f[f.length - 1].pathCoordinates.push(a[h], a[h + 1]), f[f.length - 1].valueData.push(c[h / 2])); return f } }(this || global, a), function (a, b) { "use strict"; b.Interpolation = {}, b.Interpolation.none = function (a) { var c = { fillHoles: !1 }; return a = b.extend({}, c, a), function (c, d) { for (var e = new b.Svg.Path, f = !0, g = 0; g < c.length; g += 2) { var h = c[g], i = c[g + 1], j = d[g / 2]; void 0 !== b.getMultiValue(j.value) ? (f ? e.move(h, i, !1, j) : e.line(h, i, !1, j), f = !1) : a.fillHoles || (f = !0) } return e } }, b.Interpolation.simple = function (a) { var c = { divisor: 2, fillHoles: !1 }; a = b.extend({}, c, a); var d = 1 / Math.max(1, a.divisor); return function (c, e) { for (var f, g, h, i = new b.Svg.Path, j = 0; j < c.length; j += 2) { var k = c[j], l = c[j + 1], m = (k - f) * d, n = e[j / 2]; void 0 !== n.value ? (void 0 === h ? i.move(k, l, !1, n) : i.curve(f + m, g, k - m, l, k, l, !1, n), f = k, g = l, h = n) : a.fillHoles || (f = k = h = void 0) } return i } }, b.Interpolation.cardinal = function (a) { var c = { tension: 1, fillHoles: !1 }; a = b.extend({}, c, a); var d = Math.min(1, Math.max(0, a.tension)), e = 1 - d; return function f(c, g) { var h = b.splitIntoSegments(c, g, { fillHoles: a.fillHoles }); if (h.length) { if (h.length > 1) { var i = []; return h.forEach(function (a) { i.push(f(a.pathCoordinates, a.valueData)) }), b.Svg.Path.join(i) } if (c = h[0].pathCoordinates, g = h[0].valueData, c.length <= 4) return b.Interpolation.none()(c, g); for (var j, k = (new b.Svg.Path).move(c[0], c[1], !1, g[0]), l = 0, m = c.length; m - 2 * !j > l; l += 2) { var n = [{ x: +c[l - 2], y: +c[l - 1] }, { x: +c[l], y: +c[l + 1] }, { x: +c[l + 2], y: +c[l + 3] }, { x: +c[l + 4], y: +c[l + 5] }]; j ? l ? m - 4 === l ? n[3] = { x: +c[0], y: +c[1] } : m - 2 === l && (n[2] = { x: +c[0], y: +c[1] }, n[3] = { x: +c[2], y: +c[3] }) : n[0] = { x: +c[m - 2], y: +c[m - 1] } : m - 4 === l ? n[3] = n[2] : l || (n[0] = { x: +c[l], y: +c[l + 1] }), k.curve(d * (-n[0].x + 6 * n[1].x + n[2].x) / 6 + e * n[2].x, d * (-n[0].y + 6 * n[1].y + n[2].y) / 6 + e * n[2].y, d * (n[1].x + 6 * n[2].x - n[3].x) / 6 + e * n[2].x, d * (n[1].y + 6 * n[2].y - n[3].y) / 6 + e * n[2].y, n[2].x, n[2].y, !1, g[(l + 2) / 2]) } return k } return b.Interpolation.none()([]) } }, b.Interpolation.monotoneCubic = function (a) { var c = { fillHoles: !1 }; return a = b.extend({}, c, a), function d(c, e) { var f = b.splitIntoSegments(c, e, { fillHoles: a.fillHoles, increasingX: !0 }); if (f.length) { if (f.length > 1) { var g = []; return f.forEach(function (a) { g.push(d(a.pathCoordinates, a.valueData)) }), b.Svg.Path.join(g) } if (c = f[0].pathCoordinates, e = f[0].valueData, c.length <= 4) return b.Interpolation.none()(c, e); var h, i, j = [], k = [], l = c.length / 2, m = [], n = [], o = [], p = []; for (h = 0; h < l; h++)j[h] = c[2 * h], k[h] = c[2 * h + 1]; for (h = 0; h < l - 1; h++)o[h] = k[h + 1] - k[h], p[h] = j[h + 1] - j[h], n[h] = o[h] / p[h]; for (m[0] = n[0], m[l - 1] = n[l - 2], h = 1; h < l - 1; h++)0 === n[h] || 0 === n[h - 1] || n[h - 1] > 0 != n[h] > 0 ? m[h] = 0 : (m[h] = 3 * (p[h - 1] + p[h]) / ((2 * p[h] + p[h - 1]) / n[h - 1] + (p[h] + 2 * p[h - 1]) / n[h]), isFinite(m[h]) || (m[h] = 0)); for (i = (new b.Svg.Path).move(j[0], k[0], !1, e[0]), h = 0; h < l - 1; h++)i.curve(j[h] + p[h] / 3, k[h] + m[h] * p[h] / 3, j[h + 1] - p[h] / 3, k[h + 1] - m[h + 1] * p[h] / 3, j[h + 1], k[h + 1], !1, e[h + 1]); return i } return b.Interpolation.none()([]) } }, b.Interpolation.step = function (a) { var c = { postpone: !0, fillHoles: !1 }; return a = b.extend({}, c, a), function (c, d) { for (var e, f, g, h = new b.Svg.Path, i = 0; i < c.length; i += 2) { var j = c[i], k = c[i + 1], l = d[i / 2]; void 0 !== l.value ? (void 0 === g ? h.move(j, k, !1, l) : (a.postpone ? h.line(j, f, !1, g) : h.line(e, k, !1, l), h.line(j, k, !1, l)), e = j, f = k, g = l) : a.fillHoles || (e = f = g = void 0) } return h } } }(this || global, a), function (a, b) { "use strict"; b.EventEmitter = function () { function a(a, b) { d[a] = d[a] || [], d[a].push(b) } function b(a, b) { d[a] && (b ? (d[a].splice(d[a].indexOf(b), 1), 0 === d[a].length && delete d[a]) : delete d[a]) } function c(a, b) { d[a] && d[a].forEach(function (a) { a(b) }), d["*"] && d["*"].forEach(function (c) { c(a, b) }) } var d = []; return { addEventHandler: a, removeEventHandler: b, emit: c } } }(this || global, a), function (a, b) { "use strict"; function c(a) { var b = []; if (a.length) for (var c = 0; c < a.length; c++)b.push(a[c]); return b } function d(a, c) { var d = c || this.prototype || b.Class, e = Object.create(d); b.Class.cloneDefinitions(e, a); var f = function () { var a, c = e.constructor || function () { }; return a = this === b ? Object.create(e) : this, c.apply(a, Array.prototype.slice.call(arguments, 0)), a }; return f.prototype = e, f["super"] = d, f.extend = this.extend, f } function e() { var a = c(arguments), b = a[0]; return a.splice(1, a.length - 1).forEach(function (a) { Object.getOwnPropertyNames(a).forEach(function (c) { delete b[c], Object.defineProperty(b, c, Object.getOwnPropertyDescriptor(a, c)) }) }), b } b.Class = { extend: d, cloneDefinitions: e } }(this || global, a), function (a, b) { "use strict"; function c(a, c, d) { return a && (this.data = a || {}, this.data.labels = this.data.labels || [], this.data.series = this.data.series || [], this.eventEmitter.emit("data", { type: "update", data: this.data })), c && (this.options = b.extend({}, d ? this.options : this.defaultOptions, c), this.initializeTimeoutId || (this.optionsProvider.removeMediaQueryListeners(), this.optionsProvider = b.optionsProvider(this.options, this.responsiveOptions, this.eventEmitter))), this.initializeTimeoutId || this.createChart(this.optionsProvider.getCurrentOptions()), this } function d() { return this.initializeTimeoutId ? i.clearTimeout(this.initializeTimeoutId) : (i.removeEventListener("resize", this.resizeListener), this.optionsProvider.removeMediaQueryListeners()), this } function e(a, b) { return this.eventEmitter.addEventHandler(a, b), this } function f(a, b) { return this.eventEmitter.removeEventHandler(a, b), this } function g() { i.addEventListener("resize", this.resizeListener), this.optionsProvider = b.optionsProvider(this.options, this.responsiveOptions, this.eventEmitter), this.eventEmitter.addEventHandler("optionsChanged", function () { this.update() }.bind(this)), this.options.plugins && this.options.plugins.forEach(function (a) { a instanceof Array ? a[0](this, a[1]) : a(this) }.bind(this)), this.eventEmitter.emit("data", { type: "initial", data: this.data }), this.createChart(this.optionsProvider.getCurrentOptions()), this.initializeTimeoutId = void 0 } function h(a, c, d, e, f) { this.container = b.querySelector(a), this.data = c || {}, this.data.labels = this.data.labels || [], this.data.series = this.data.series || [], this.defaultOptions = d, this.options = e, this.responsiveOptions = f, this.eventEmitter = b.EventEmitter(), this.supportsForeignObject = b.Svg.isSupported("Extensibility"), this.supportsAnimations = b.Svg.isSupported("AnimationEventsAttribute"), this.resizeListener = function () { this.update() }.bind(this), this.container && (this.container.__chartist__ && this.container.__chartist__.detach(), this.container.__chartist__ = this), this.initializeTimeoutId = setTimeout(g.bind(this), 0) } var i = a.window; b.Base = b.Class.extend({ constructor: h, optionsProvider: void 0, container: void 0, svg: void 0, eventEmitter: void 0, createChart: function () { throw new Error("Base chart type can't be instantiated!") }, update: c, detach: d, on: e, off: f, version: b.version, supportsForeignObject: !1 }) }(this || global, a), function (a, b) { "use strict"; function c(a, c, d, e, f) { a instanceof Element ? this._node = a : (this._node = y.createElementNS(b.namespaces.svg, a), "svg" === a && this.attr({ "xmlns:ct": b.namespaces.ct })), c && this.attr(c), d && this.addClass(d), e && (f && e._node.firstChild ? e._node.insertBefore(this._node, e._node.firstChild) : e._node.appendChild(this._node)) } function d(a, c) { return "string" == typeof a ? c ? this._node.getAttributeNS(c, a) : this._node.getAttribute(a) : (Object.keys(a).forEach(function (c) { if (void 0 !== a[c]) if (c.indexOf(":") !== -1) { var d = c.split(":"); this._node.setAttributeNS(b.namespaces[d[0]], c, a[c]) } else this._node.setAttribute(c, a[c]) }.bind(this)), this) } function e(a, c, d, e) { return new b.Svg(a, c, d, this, e) } function f() { return this._node.parentNode instanceof SVGElement ? new b.Svg(this._node.parentNode) : null } function g() { for (var a = this._node; "svg" !== a.nodeName;)a = a.parentNode; return new b.Svg(a) } function h(a) { var c = this._node.querySelector(a); return c ? new b.Svg(c) : null } function i(a) { var c = this._node.querySelectorAll(a); return c.length ? new b.Svg.List(c) : null } function j() { return this._node } function k(a, c, d, e) { if ("string" == typeof a) { var f = y.createElement("div"); f.innerHTML = a, a = f.firstChild } a.setAttribute("xmlns", b.namespaces.xmlns); var g = this.elem("foreignObject", c, d, e); return g._node.appendChild(a), g } function l(a) { return this._node.appendChild(y.createTextNode(a)), this } function m() { for (; this._node.firstChild;)this._node.removeChild(this._node.firstChild); return this } function n() { return this._node.parentNode.removeChild(this._node), this.parent() } function o(a) { return this._node.parentNode.replaceChild(a._node, this._node), a } function p(a, b) { return b && this._node.firstChild ? this._node.insertBefore(a._node, this._node.firstChild) : this._node.appendChild(a._node), this } function q() { return this._node.getAttribute("class") ? this._node.getAttribute("class").trim().split(/\s+/) : [] } function r(a) { return this._node.setAttribute("class", this.classes(this._node).concat(a.trim().split(/\s+/)).filter(function (a, b, c) { return c.indexOf(a) === b }).join(" ")), this } function s(a) { var b = a.trim().split(/\s+/); return this._node.setAttribute("class", this.classes(this._node).filter(function (a) { return b.indexOf(a) === -1 }).join(" ")), this } function t() { return this._node.setAttribute("class", ""), this } function u() { return this._node.getBoundingClientRect().height } function v() { return this._node.getBoundingClientRect().width } function w(a, c, d) { return void 0 === c && (c = !0), Object.keys(a).forEach(function (e) { function f(a, c) { var f, g, h, i = {}; a.easing && (h = a.easing instanceof Array ? a.easing : b.Svg.Easing[a.easing], delete a.easing), a.begin = b.ensureUnit(a.begin, "ms"), a.dur = b.ensureUnit(a.dur, "ms"), h && (a.calcMode = "spline", a.keySplines = h.join(" "), a.keyTimes = "0;1"), c && (a.fill = "freeze", i[e] = a.from, this.attr(i), g = b.quantity(a.begin || 0).value, a.begin = "indefinite"), f = this.elem("animate", b.extend({ attributeName: e }, a)), c && setTimeout(function () { try { f._node.beginElement() } catch (b) { i[e] = a.to, this.attr(i), f.remove() } }.bind(this), g), d && f._node.addEventListener("beginEvent", function () { d.emit("animationBegin", { element: this, animate: f._node, params: a }) }.bind(this)), f._node.addEventListener("endEvent", function () { d && d.emit("animationEnd", { element: this, animate: f._node, params: a }), c && (i[e] = a.to, this.attr(i), f.remove()) }.bind(this)) } a[e] instanceof Array ? a[e].forEach(function (a) { f.bind(this)(a, !1) }.bind(this)) : f.bind(this)(a[e], c) }.bind(this)), this } function x(a) { var c = this; this.svgElements = []; for (var d = 0; d < a.length; d++)this.svgElements.push(new b.Svg(a[d])); Object.keys(b.Svg.prototype).filter(function (a) { return ["constructor", "parent", "querySelector", "querySelectorAll", "replace", "append", "classes", "height", "width"].indexOf(a) === -1 }).forEach(function (a) { c[a] = function () { var d = Array.prototype.slice.call(arguments, 0); return c.svgElements.forEach(function (c) { b.Svg.prototype[a].apply(c, d) }), c } }) } var y = a.document; b.Svg = b.Class.extend({ constructor: c, attr: d, elem: e, parent: f, root: g, querySelector: h, querySelectorAll: i, getNode: j, foreignObject: k, text: l, empty: m, remove: n, replace: o, append: p, classes: q, addClass: r, removeClass: s, removeAllClasses: t, height: u, width: v, animate: w }), b.Svg.isSupported = function (a) { return y.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#" + a, "1.1") }; var z = { easeInSine: [.47, 0, .745, .715], easeOutSine: [.39, .575, .565, 1], easeInOutSine: [.445, .05, .55, .95], easeInQuad: [.55, .085, .68, .53], easeOutQuad: [.25, .46, .45, .94], easeInOutQuad: [.455, .03, .515, .955], easeInCubic: [.55, .055, .675, .19], easeOutCubic: [.215, .61, .355, 1], easeInOutCubic: [.645, .045, .355, 1], easeInQuart: [.895, .03, .685, .22], easeOutQuart: [.165, .84, .44, 1], easeInOutQuart: [.77, 0, .175, 1], easeInQuint: [.755, .05, .855, .06], easeOutQuint: [.23, 1, .32, 1], easeInOutQuint: [.86, 0, .07, 1], easeInExpo: [.95, .05, .795, .035], easeOutExpo: [.19, 1, .22, 1], easeInOutExpo: [1, 0, 0, 1], easeInCirc: [.6, .04, .98, .335], easeOutCirc: [.075, .82, .165, 1], easeInOutCirc: [.785, .135, .15, .86], easeInBack: [.6, -.28, .735, .045], easeOutBack: [.175, .885, .32, 1.275], easeInOutBack: [.68, -.55, .265, 1.55] }; b.Svg.Easing = z, b.Svg.List = b.Class.extend({ constructor: x }) }(this || global, a), function (a, b) { "use strict"; function c(a, c, d, e, f, g) { var h = b.extend({ command: f ? a.toLowerCase() : a.toUpperCase() }, c, g ? { data: g } : {}); d.splice(e, 0, h) } function d(a, b) { a.forEach(function (c, d) { t[c.command.toLowerCase()].forEach(function (e, f) { b(c, e, d, f, a) }) }) } function e(a, c) { this.pathElements = [], this.pos = 0, this.close = a, this.options = b.extend({}, u, c) } function f(a) { return void 0 !== a ? (this.pos = Math.max(0, Math.min(this.pathElements.length, a)), this) : this.pos } function g(a) { return this.pathElements.splice(this.pos, a), this } function h(a, b, d, e) { return c("M", { x: +a, y: +b }, this.pathElements, this.pos++, d, e), this } function i(a, b, d, e) { return c("L", { x: +a, y: +b }, this.pathElements, this.pos++, d, e), this } function j(a, b, d, e, f, g, h, i) { return c("C", { x1: +a, y1: +b, x2: +d, y2: +e, x: +f, y: +g }, this.pathElements, this.pos++, h, i), this } function k(a, b, d, e, f, g, h, i, j) { return c("A", { rx: +a, ry: +b, xAr: +d, lAf: +e, sf: +f, x: +g, y: +h }, this.pathElements, this.pos++, i, j), this } function l(a) { var c = a.replace(/([A-Za-z])([0-9])/g, "$1 $2").replace(/([0-9])([A-Za-z])/g, "$1 $2").split(/[\s,]+/).reduce(function (a, b) { return b.match(/[A-Za-z]/) && a.push([]), a[a.length - 1].push(b), a }, []); "Z" === c[c.length - 1][0].toUpperCase() && c.pop(); var d = c.map(function (a) { var c = a.shift(), d = t[c.toLowerCase()]; return b.extend({ command: c }, d.reduce(function (b, c, d) { return b[c] = +a[d], b }, {})) }), e = [this.pos, 0]; return Array.prototype.push.apply(e, d), Array.prototype.splice.apply(this.pathElements, e), this.pos += d.length, this } function m() { var a = Math.pow(10, this.options.accuracy); return this.pathElements.reduce(function (b, c) { var d = t[c.command.toLowerCase()].map(function (b) { return this.options.accuracy ? Math.round(c[b] * a) / a : c[b] }.bind(this)); return b + c.command + d.join(",") }.bind(this), "") + (this.close ? "Z" : "") } function n(a, b) { return d(this.pathElements, function (c, d) { c[d] *= "x" === d[0] ? a : b }), this } function o(a, b) { return d(this.pathElements, function (c, d) { c[d] += "x" === d[0] ? a : b }), this } function p(a) { return d(this.pathElements, function (b, c, d, e, f) { var g = a(b, c, d, e, f); (g || 0 === g) && (b[c] = g) }), this } function q(a) { var c = new b.Svg.Path(a || this.close); return c.pos = this.pos, c.pathElements = this.pathElements.slice().map(function (a) { return b.extend({}, a) }), c.options = b.extend({}, this.options), c } function r(a) { var c = [new b.Svg.Path]; return this.pathElements.forEach(function (d) { d.command === a.toUpperCase() && 0 !== c[c.length - 1].pathElements.length && c.push(new b.Svg.Path), c[c.length - 1].pathElements.push(d) }), c } function s(a, c, d) { for (var e = new b.Svg.Path(c, d), f = 0; f < a.length; f++)for (var g = a[f], h = 0; h < g.pathElements.length; h++)e.pathElements.push(g.pathElements[h]); return e } var t = { m: ["x", "y"], l: ["x", "y"], c: ["x1", "y1", "x2", "y2", "x", "y"], a: ["rx", "ry", "xAr", "lAf", "sf", "x", "y"] }, u = { accuracy: 3 }; b.Svg.Path = b.Class.extend({ constructor: e, position: f, remove: g, move: h, line: i, curve: j, arc: k, scale: n, translate: o, transform: p, parse: l, stringify: m, clone: q, splitByCommand: r }), b.Svg.Path.elementDescriptions = t, b.Svg.Path.join = s }(this || global, a), function (a, b) { "use strict"; function c(a, b, c, d) { this.units = a, this.counterUnits = a === e.x ? e.y : e.x, this.chartRect = b, this.axisLength = b[a.rectEnd] - b[a.rectStart], this.gridOffset = b[a.rectOffset], this.ticks = c, this.options = d } function d(a, c, d, e, f) { var g = e["axis" + this.units.pos.toUpperCase()], h = this.ticks.map(this.projectValue.bind(this)), i = this.ticks.map(g.labelInterpolationFnc); h.forEach(function (j, k) { var l, m = { x: 0, y: 0 }; l = h[k + 1] ? h[k + 1] - j : Math.max(this.axisLength - j, 30), b.isFalseyButZero(i[k]) && "" !== i[k] || ("x" === this.units.pos ? (j = this.chartRect.x1 + j, m.x = e.axisX.labelOffset.x, "start" === e.axisX.position ? m.y = this.chartRect.padding.top + e.axisX.labelOffset.y + (d ? 5 : 20) : m.y = this.chartRect.y1 + e.axisX.labelOffset.y + (d ? 5 : 20)) : (j = this.chartRect.y1 - j, m.y = e.axisY.labelOffset.y - (d ? l : 0), "start" === e.axisY.position ? m.x = d ? this.chartRect.padding.left + e.axisY.labelOffset.x : this.chartRect.x1 - 10 : m.x = this.chartRect.x2 + e.axisY.labelOffset.x + 10), g.showGrid && b.createGrid(j, k, this, this.gridOffset, this.chartRect[this.counterUnits.len](), a, [e.classNames.grid, e.classNames[this.units.dir]], f), g.showLabel && b.createLabel(j, l, k, i, this, g.offset, m, c, [e.classNames.label, e.classNames[this.units.dir], "start" === g.position ? e.classNames[g.position] : e.classNames.end], d, f)) }.bind(this)) } var e = (a.window, a.document, { x: { pos: "x", len: "width", dir: "horizontal", rectStart: "x1", rectEnd: "x2", rectOffset: "y2" }, y: { pos: "y", len: "height", dir: "vertical", rectStart: "y2", rectEnd: "y1", rectOffset: "x1" } }); b.Axis = b.Class.extend({ constructor: c, createGridAndLabels: d, projectValue: function (a, b, c) { throw new Error("Base axis can't be instantiated!") } }), b.Axis.units = e }(this || global, a), function (a, b) { "use strict"; function c(a, c, d, e) { var f = e.highLow || b.getHighLow(c, e, a.pos); this.bounds = b.getBounds(d[a.rectEnd] - d[a.rectStart], f, e.scaleMinSpace || 20, e.onlyInteger), this.range = { min: this.bounds.min, max: this.bounds.max }, b.AutoScaleAxis["super"].constructor.call(this, a, d, this.bounds.values, e) } function d(a) { return this.axisLength * (+b.getMultiValue(a, this.units.pos) - this.bounds.min) / this.bounds.range } a.window, a.document; b.AutoScaleAxis = b.Axis.extend({ constructor: c, projectValue: d }) }(this || global, a), function (a, b) { "use strict"; function c(a, c, d, e) { var f = e.highLow || b.getHighLow(c, e, a.pos); this.divisor = e.divisor || 1, this.ticks = e.ticks || b.times(this.divisor).map(function (a, b) { return f.low + (f.high - f.low) / this.divisor * b }.bind(this)), this.ticks.sort(function (a, b) { return a - b }), this.range = { min: f.low, max: f.high }, b.FixedScaleAxis["super"].constructor.call(this, a, d, this.ticks, e), this.stepLength = this.axisLength / this.divisor } function d(a) { return this.axisLength * (+b.getMultiValue(a, this.units.pos) - this.range.min) / (this.range.max - this.range.min) } a.window, a.document; b.FixedScaleAxis = b.Axis.extend({ constructor: c, projectValue: d }) }(this || global, a), function (a, b) { "use strict"; function c(a, c, d, e) { b.StepAxis["super"].constructor.call(this, a, d, e.ticks, e); var f = Math.max(1, e.ticks.length - (e.stretch ? 1 : 0)); this.stepLength = this.axisLength / f } function d(a, b) { return this.stepLength * b } a.window, a.document; b.StepAxis = b.Axis.extend({ constructor: c, projectValue: d }) }(this || global, a), function (a, b) { "use strict"; function c(a) { var c = b.normalizeData(this.data, a.reverseData, !0); this.svg = b.createSvg(this.container, a.width, a.height, a.classNames.chart); var d, f, g = this.svg.elem("g").addClass(a.classNames.gridGroup), h = this.svg.elem("g"), i = this.svg.elem("g").addClass(a.classNames.labelGroup), j = b.createChartRect(this.svg, a, e.padding); d = void 0 === a.axisX.type ? new b.StepAxis(b.Axis.units.x, c.normalized.series, j, b.extend({}, a.axisX, { ticks: c.normalized.labels, stretch: a.fullWidth })) : a.axisX.type.call(b, b.Axis.units.x, c.normalized.series, j, a.axisX), f = void 0 === a.axisY.type ? new b.AutoScaleAxis(b.Axis.units.y, c.normalized.series, j, b.extend({}, a.axisY, { high: b.isNumeric(a.high) ? a.high : a.axisY.high, low: b.isNumeric(a.low) ? a.low : a.axisY.low })) : a.axisY.type.call(b, b.Axis.units.y, c.normalized.series, j, a.axisY), d.createGridAndLabels(g, i, this.supportsForeignObject, a, this.eventEmitter), f.createGridAndLabels(g, i, this.supportsForeignObject, a, this.eventEmitter), a.showGridBackground && b.createGridBackground(g, j, a.classNames.gridBackground, this.eventEmitter), c.raw.series.forEach(function (e, g) { var i = h.elem("g"); i.attr({ "ct:series-name": e.name, "ct:meta": b.serialize(e.meta) }), i.addClass([a.classNames.series, e.className || a.classNames.series + "-" + b.alphaNumerate(g)].join(" ")); var k = [], l = []; c.normalized.series[g].forEach(function (a, h) { var i = { x: j.x1 + d.projectValue(a, h, c.normalized.series[g]), y: j.y1 - f.projectValue(a, h, c.normalized.series[g]) }; k.push(i.x, i.y), l.push({ value: a, valueIndex: h, meta: b.getMetaData(e, h) }) }.bind(this)); var m = { lineSmooth: b.getSeriesOption(e, a, "lineSmooth"), showPoint: b.getSeriesOption(e, a, "showPoint"), showLine: b.getSeriesOption(e, a, "showLine"), showArea: b.getSeriesOption(e, a, "showArea"), areaBase: b.getSeriesOption(e, a, "areaBase") }, n = "function" == typeof m.lineSmooth ? m.lineSmooth : m.lineSmooth ? b.Interpolation.monotoneCubic() : b.Interpolation.none(), o = n(k, l); if (m.showPoint && o.pathElements.forEach(function (c) { var h = i.elem("line", { x1: c.x, y1: c.y, x2: c.x + .01, y2: c.y }, a.classNames.point).attr({ "ct:value": [c.data.value.x, c.data.value.y].filter(b.isNumeric).join(","), "ct:meta": b.serialize(c.data.meta) }); this.eventEmitter.emit("draw", { type: "point", value: c.data.value, index: c.data.valueIndex, meta: c.data.meta, series: e, seriesIndex: g, axisX: d, axisY: f, group: i, element: h, x: c.x, y: c.y }) }.bind(this)), m.showLine) { var p = i.elem("path", { d: o.stringify() }, a.classNames.line, !0); this.eventEmitter.emit("draw", { type: "line", values: c.normalized.series[g], path: o.clone(), chartRect: j, index: g, series: e, seriesIndex: g, seriesMeta: e.meta, axisX: d, axisY: f, group: i, element: p }) } if (m.showArea && f.range) { var q = Math.max(Math.min(m.areaBase, f.range.max), f.range.min), r = j.y1 - f.projectValue(q); o.splitByCommand("M").filter(function (a) { return a.pathElements.length > 1 }).map(function (a) { var b = a.pathElements[0], c = a.pathElements[a.pathElements.length - 1]; return a.clone(!0).position(0).remove(1).move(b.x, r).line(b.x, b.y).position(a.pathElements.length + 1).line(c.x, r) }).forEach(function (b) { var h = i.elem("path", { d: b.stringify() }, a.classNames.area, !0); this.eventEmitter.emit("draw", { type: "area", values: c.normalized.series[g], path: b.clone(), series: e, seriesIndex: g, axisX: d, axisY: f, chartRect: j, index: g, group: i, element: h }) }.bind(this)) } }.bind(this)), this.eventEmitter.emit("created", { bounds: f.bounds, chartRect: j, axisX: d, axisY: f, svg: this.svg, options: a }) } function d(a, c, d, f) { b.Line["super"].constructor.call(this, a, c, e, b.extend({}, e, d), f) } var e = (a.window, a.document, { axisX: { offset: 30, position: "end", labelOffset: { x: 0, y: 0 }, showLabel: !0, showGrid: !0, labelInterpolationFnc: b.noop, type: void 0 }, axisY: { offset: 40, position: "start", labelOffset: { x: 0, y: 0 }, showLabel: !0, showGrid: !0, labelInterpolationFnc: b.noop, type: void 0, scaleMinSpace: 20, onlyInteger: !1 }, width: void 0, height: void 0, showLine: !0, showPoint: !0, showArea: !1, areaBase: 0, lineSmooth: !0, showGridBackground: !1, low: void 0, high: void 0, chartPadding: { top: 15, right: 15, bottom: 5, left: 10 }, fullWidth: !1, reverseData: !1, classNames: { chart: "ct-chart-line", label: "ct-label", labelGroup: "ct-labels", series: "ct-series", line: "ct-line", point: "ct-point", area: "ct-area", grid: "ct-grid", gridGroup: "ct-grids", gridBackground: "ct-grid-background", vertical: "ct-vertical", horizontal: "ct-horizontal", start: "ct-start", end: "ct-end" } }); b.Line = b.Base.extend({ constructor: d, createChart: c }) }(this || global, a), function (a, b) { + "use strict"; function c(a) { + var c, d; a.distributeSeries ? (c = b.normalizeData(this.data, a.reverseData, a.horizontalBars ? "x" : "y"), c.normalized.series = c.normalized.series.map(function (a) { return [a] })) : c = b.normalizeData(this.data, a.reverseData, a.horizontalBars ? "x" : "y"), this.svg = b.createSvg(this.container, a.width, a.height, a.classNames.chart + (a.horizontalBars ? " " + a.classNames.horizontalBars : "")); var f = this.svg.elem("g").addClass(a.classNames.gridGroup), g = this.svg.elem("g"), h = this.svg.elem("g").addClass(a.classNames.labelGroup); + if (a.stackBars && 0 !== c.normalized.series.length) { var i = b.serialMap(c.normalized.series, function () { return Array.prototype.slice.call(arguments).map(function (a) { return a }).reduce(function (a, b) { return { x: a.x + (b && b.x) || 0, y: a.y + (b && b.y) || 0 } }, { x: 0, y: 0 }) }); d = b.getHighLow([i], a, a.horizontalBars ? "x" : "y") } else d = b.getHighLow(c.normalized.series, a, a.horizontalBars ? "x" : "y"); d.high = +a.high || (0 === a.high ? 0 : d.high), d.low = +a.low || (0 === a.low ? 0 : d.low); var j, k, l, m, n, o = b.createChartRect(this.svg, a, e.padding); k = a.distributeSeries && a.stackBars ? c.normalized.labels.slice(0, 1) : c.normalized.labels, a.horizontalBars ? (j = m = void 0 === a.axisX.type ? new b.AutoScaleAxis(b.Axis.units.x, c.normalized.series, o, b.extend({}, a.axisX, { highLow: d, referenceValue: 0 })) : a.axisX.type.call(b, b.Axis.units.x, c.normalized.series, o, b.extend({}, a.axisX, { highLow: d, referenceValue: 0 })), l = n = void 0 === a.axisY.type ? new b.StepAxis(b.Axis.units.y, c.normalized.series, o, { ticks: k }) : a.axisY.type.call(b, b.Axis.units.y, c.normalized.series, o, a.axisY)) : (l = m = void 0 === a.axisX.type ? new b.StepAxis(b.Axis.units.x, c.normalized.series, o, { ticks: k }) : a.axisX.type.call(b, b.Axis.units.x, c.normalized.series, o, a.axisX), j = n = void 0 === a.axisY.type ? new b.AutoScaleAxis(b.Axis.units.y, c.normalized.series, o, b.extend({}, a.axisY, { highLow: d, referenceValue: 0 })) : a.axisY.type.call(b, b.Axis.units.y, c.normalized.series, o, b.extend({}, a.axisY, { highLow: d, referenceValue: 0 }))); var p = a.horizontalBars ? o.x1 + j.projectValue(0) : o.y1 - j.projectValue(0), q = []; l.createGridAndLabels(f, h, this.supportsForeignObject, a, this.eventEmitter), j.createGridAndLabels(f, h, this.supportsForeignObject, a, this.eventEmitter), a.showGridBackground && b.createGridBackground(f, o, a.classNames.gridBackground, this.eventEmitter), c.raw.series.forEach(function (d, e) { var f, h, i = e - (c.raw.series.length - 1) / 2; f = a.distributeSeries && !a.stackBars ? l.axisLength / c.normalized.series.length / 2 : a.distributeSeries && a.stackBars ? l.axisLength / 2 : l.axisLength / c.normalized.series[e].length / 2, h = g.elem("g"), h.attr({ "ct:series-name": d.name, "ct:meta": b.serialize(d.meta) }), h.addClass([a.classNames.series, d.className || a.classNames.series + "-" + b.alphaNumerate(e)].join(" ")), c.normalized.series[e].forEach(function (g, k) { var r, s, t, u; if (u = a.distributeSeries && !a.stackBars ? e : a.distributeSeries && a.stackBars ? 0 : k, r = a.horizontalBars ? { x: o.x1 + j.projectValue(g && g.x ? g.x : 0, k, c.normalized.series[e]), y: o.y1 - l.projectValue(g && g.y ? g.y : 0, u, c.normalized.series[e]) } : { x: o.x1 + l.projectValue(g && g.x ? g.x : 0, u, c.normalized.series[e]), y: o.y1 - j.projectValue(g && g.y ? g.y : 0, k, c.normalized.series[e]) }, l instanceof b.StepAxis && (l.options.stretch || (r[l.units.pos] += f * (a.horizontalBars ? -1 : 1)), r[l.units.pos] += a.stackBars || a.distributeSeries ? 0 : i * a.seriesBarDistance * (a.horizontalBars ? -1 : 1)), t = q[k] || p, q[k] = t - (p - r[l.counterUnits.pos]), void 0 !== g) { var v = {}; v[l.units.pos + "1"] = r[l.units.pos], v[l.units.pos + "2"] = r[l.units.pos], !a.stackBars || "accumulate" !== a.stackMode && a.stackMode ? (v[l.counterUnits.pos + "1"] = p, v[l.counterUnits.pos + "2"] = r[l.counterUnits.pos]) : (v[l.counterUnits.pos + "1"] = t, v[l.counterUnits.pos + "2"] = q[k]), v.x1 = Math.min(Math.max(v.x1, o.x1), o.x2), v.x2 = Math.min(Math.max(v.x2, o.x1), o.x2), v.y1 = Math.min(Math.max(v.y1, o.y2), o.y1), v.y2 = Math.min(Math.max(v.y2, o.y2), o.y1); var w = b.getMetaData(d, k); s = h.elem("line", v, a.classNames.bar).attr({ "ct:value": [g.x, g.y].filter(b.isNumeric).join(","), "ct:meta": b.serialize(w) }), this.eventEmitter.emit("draw", b.extend({ type: "bar", value: g, index: k, meta: w, series: d, seriesIndex: e, axisX: m, axisY: n, chartRect: o, group: h, element: s }, v)) } }.bind(this)) }.bind(this)), this.eventEmitter.emit("created", { bounds: j.bounds, chartRect: o, axisX: m, axisY: n, svg: this.svg, options: a }) + } function d(a, c, d, f) { b.Bar["super"].constructor.call(this, a, c, e, b.extend({}, e, d), f) } var e = (a.window, a.document, { axisX: { offset: 30, position: "end", labelOffset: { x: 0, y: 0 }, showLabel: !0, showGrid: !0, labelInterpolationFnc: b.noop, scaleMinSpace: 30, onlyInteger: !1 }, axisY: { offset: 40, position: "start", labelOffset: { x: 0, y: 0 }, showLabel: !0, showGrid: !0, labelInterpolationFnc: b.noop, scaleMinSpace: 20, onlyInteger: !1 }, width: void 0, height: void 0, high: void 0, low: void 0, referenceValue: 0, chartPadding: { top: 15, right: 15, bottom: 5, left: 10 }, seriesBarDistance: 15, stackBars: !1, stackMode: "accumulate", horizontalBars: !1, distributeSeries: !1, reverseData: !1, showGridBackground: !1, classNames: { chart: "ct-chart-bar", horizontalBars: "ct-horizontal-bars", label: "ct-label", labelGroup: "ct-labels", series: "ct-series", bar: "ct-bar", grid: "ct-grid", gridGroup: "ct-grids", gridBackground: "ct-grid-background", vertical: "ct-vertical", horizontal: "ct-horizontal", start: "ct-start", end: "ct-end" } }); b.Bar = b.Base.extend({ constructor: d, createChart: c }) + }(this || global, a), function (a, b) { "use strict"; function c(a, b, c) { var d = b.x > a.x; return d && "explode" === c || !d && "implode" === c ? "start" : d && "implode" === c || !d && "explode" === c ? "end" : "middle" } function d(a) { var d, e, g, h, i, j = b.normalizeData(this.data), k = [], l = a.startAngle; this.svg = b.createSvg(this.container, a.width, a.height, a.donut ? a.classNames.chartDonut : a.classNames.chartPie), e = b.createChartRect(this.svg, a, f.padding), g = Math.min(e.width() / 2, e.height() / 2), i = a.total || j.normalized.series.reduce(function (a, b) { return a + b }, 0); var m = b.quantity(a.donutWidth); "%" === m.unit && (m.value *= g / 100), g -= a.donut && !a.donutSolid ? m.value / 2 : 0, h = "outside" === a.labelPosition || a.donut && !a.donutSolid ? g : "center" === a.labelPosition ? 0 : a.donutSolid ? g - m.value / 2 : g / 2, h += a.labelOffset; var n = { x: e.x1 + e.width() / 2, y: e.y2 + e.height() / 2 }, o = 1 === j.raw.series.filter(function (a) { return a.hasOwnProperty("value") ? 0 !== a.value : 0 !== a }).length; j.raw.series.forEach(function (a, b) { k[b] = this.svg.elem("g", null, null) }.bind(this)), a.showLabel && (d = this.svg.elem("g", null, null)), j.raw.series.forEach(function (e, f) { if (0 !== j.normalized.series[f] || !a.ignoreEmptyValues) { k[f].attr({ "ct:series-name": e.name }), k[f].addClass([a.classNames.series, e.className || a.classNames.series + "-" + b.alphaNumerate(f)].join(" ")); var p = i > 0 ? l + j.normalized.series[f] / i * 360 : 0, q = Math.max(0, l - (0 === f || o ? 0 : .2)); p - q >= 359.99 && (p = q + 359.99); var r, s, t, u = b.polarToCartesian(n.x, n.y, g, q), v = b.polarToCartesian(n.x, n.y, g, p), w = new b.Svg.Path(!a.donut || a.donutSolid).move(v.x, v.y).arc(g, g, 0, p - l > 180, 0, u.x, u.y); a.donut ? a.donutSolid && (t = g - m.value, r = b.polarToCartesian(n.x, n.y, t, l - (0 === f || o ? 0 : .2)), s = b.polarToCartesian(n.x, n.y, t, p), w.line(r.x, r.y), w.arc(t, t, 0, p - l > 180, 1, s.x, s.y)) : w.line(n.x, n.y); var x = a.classNames.slicePie; a.donut && (x = a.classNames.sliceDonut, a.donutSolid && (x = a.classNames.sliceDonutSolid)); var y = k[f].elem("path", { d: w.stringify() }, x); if (y.attr({ "ct:value": j.normalized.series[f], "ct:meta": b.serialize(e.meta) }), a.donut && !a.donutSolid && (y._node.style.strokeWidth = m.value + "px"), this.eventEmitter.emit("draw", { type: "slice", value: j.normalized.series[f], totalDataSum: i, index: f, meta: e.meta, series: e, group: k[f], element: y, path: w.clone(), center: n, radius: g, startAngle: l, endAngle: p }), a.showLabel) { var z; z = 1 === j.raw.series.length ? { x: n.x, y: n.y } : b.polarToCartesian(n.x, n.y, h, l + (p - l) / 2); var A; A = j.normalized.labels && !b.isFalseyButZero(j.normalized.labels[f]) ? j.normalized.labels[f] : j.normalized.series[f]; var B = a.labelInterpolationFnc(A, f); if (B || 0 === B) { var C = d.elem("text", { dx: z.x, dy: z.y, "text-anchor": c(n, z, a.labelDirection) }, a.classNames.label).text("" + B); this.eventEmitter.emit("draw", { type: "label", index: f, group: d, element: C, text: "" + B, x: z.x, y: z.y }) } } l = p } }.bind(this)), this.eventEmitter.emit("created", { chartRect: e, svg: this.svg, options: a }) } function e(a, c, d, e) { b.Pie["super"].constructor.call(this, a, c, f, b.extend({}, f, d), e) } var f = (a.window, a.document, { width: void 0, height: void 0, chartPadding: 5, classNames: { chartPie: "ct-chart-pie", chartDonut: "ct-chart-donut", series: "ct-series", slicePie: "ct-slice-pie", sliceDonut: "ct-slice-donut", sliceDonutSolid: "ct-slice-donut-solid", label: "ct-label" }, startAngle: 0, total: void 0, donut: !1, donutSolid: !1, donutWidth: 60, showLabel: !0, labelOffset: 0, labelPosition: "inside", labelInterpolationFnc: b.noop, labelDirection: "neutral", reverseData: !1, ignoreEmptyValues: !1 }); b.Pie = b.Base.extend({ constructor: e, createChart: d, determineAnchorPosition: c }) }(this || global, a), a +}); +//# sourceMappingURL=chartist.min.js.map + +var i, l, selectedLine = null; + +/* Navigate to hash without browser history entry */ +var navigateToHash = function () { + if (window.history !== undefined && window.history.replaceState !== undefined) { + window.history.replaceState(undefined, undefined, this.getAttribute("href")); + } +}; + +var hashLinks = document.getElementsByClassName('navigatetohash'); +for (i = 0, l = hashLinks.length; i < l; i++) { + hashLinks[i].addEventListener('click', navigateToHash); +} + +/* Switch test method */ +var switchTestMethod = function () { + var method = this.getAttribute("value"); + console.log("Selected test method: " + method); + + var lines, i, l, coverageData, lineAnalysis, cells; + + lines = document.querySelectorAll('.lineAnalysis tr'); + + for (i = 1, l = lines.length; i < l; i++) { + coverageData = JSON.parse(lines[i].getAttribute('data-coverage').replace(/'/g, '"')); + lineAnalysis = coverageData[method]; + cells = lines[i].querySelectorAll('td'); + if (lineAnalysis === undefined) { + lineAnalysis = coverageData.AllTestMethods; + if (lineAnalysis.LVS !== 'gray') { + cells[0].setAttribute('class', 'red'); + cells[1].innerText = cells[1].textContent = '0'; + cells[4].setAttribute('class', 'lightred'); + } + } else { + cells[0].setAttribute('class', lineAnalysis.LVS); + cells[1].innerText = cells[1].textContent = lineAnalysis.VC; + cells[4].setAttribute('class', 'light' + lineAnalysis.LVS); + } + } +}; + +var testMethods = document.getElementsByClassName('switchtestmethod'); +for (i = 0, l = testMethods.length; i < l; i++) { + testMethods[i].addEventListener('change', switchTestMethod); +} + +/* Highlight test method by line */ +var toggleLine = function () { + if (selectedLine === this) { + selectedLine = null; + } else { + selectedLine = null; + unhighlightTestMethods(); + highlightTestMethods.call(this); + selectedLine = this; + } + +}; +var highlightTestMethods = function () { + if (selectedLine !== null) { + return; + } + + var lineAnalysis; + var coverageData = JSON.parse(this.getAttribute('data-coverage').replace(/'/g, '"')); + var testMethods = document.getElementsByClassName('testmethod'); + + for (i = 0, l = testMethods.length; i < l; i++) { + lineAnalysis = coverageData[testMethods[i].id]; + if (lineAnalysis === undefined) { + testMethods[i].className = testMethods[i].className.replace(/\s*light.+/g, ""); + } else { + testMethods[i].className += ' light' + lineAnalysis.LVS; + } + } +}; +var unhighlightTestMethods = function () { + if (selectedLine !== null) { + return; + } + + var testMethods = document.getElementsByClassName('testmethod'); + for (i = 0, l = testMethods.length; i < l; i++) { + testMethods[i].className = testMethods[i].className.replace(/\s*light.+/g, ""); + } +}; +var coverableLines = document.getElementsByClassName('coverableline'); +for (i = 0, l = coverableLines.length; i < l; i++) { + coverableLines[i].addEventListener('click', toggleLine); + coverableLines[i].addEventListener('mouseenter', highlightTestMethods); + coverableLines[i].addEventListener('mouseleave', unhighlightTestMethods); +} + +/* History charts */ +var renderChart = function (chart) { + // Remove current children (e.g. PNG placeholder) + while (chart.firstChild) { + chart.firstChild.remove(); + } + + var chartData = window[chart.getAttribute('data-data')]; + var options = { + axisY: { + type: undefined, + onlyInteger: true + }, + lineSmooth: false, + low: 0, + high: 100, + scaleMinSpace: 20, + onlyInteger: true, + fullWidth: true + }; + var lineChart = new Chartist.Line(chart, { + labels: [], + series: chartData.series + }, options); + + /* Zoom */ + var zoomButtonDiv = document.createElement("div"); + zoomButtonDiv.className = "toggleZoom"; + var zoomButtonLink = document.createElement("a"); + zoomButtonLink.setAttribute("href", ""); + var zoomButtonText = document.createElement("i"); + zoomButtonText.className = "icon-search-plus"; + + zoomButtonLink.appendChild(zoomButtonText); + zoomButtonDiv.appendChild(zoomButtonLink); + + chart.appendChild(zoomButtonDiv); + + zoomButtonDiv.addEventListener('click', function (event) { + event.preventDefault(); + + if (options.axisY.type === undefined) { + options.axisY.type = Chartist.AutoScaleAxis; + zoomButtonText.className = "icon-search-minus"; + } else { + options.axisY.type = undefined; + zoomButtonText.className = "icon-search-plus"; + } + + lineChart.update(null, options); + }); + + var tooltip = document.createElement("div"); + tooltip.className = "tooltip"; + + chart.appendChild(tooltip); + + /* Tooltips */ + var showToolTip = function () { + var index = this.getAttribute('ct:meta'); + + tooltip.innerHTML = chartData.tooltips[index]; + tooltip.style.display = 'block'; + }; + + var moveToolTip = function (event) { + var box = chart.getBoundingClientRect(); + var left = event.pageX - box.left - window.pageXOffset; + var top = event.pageY - box.top - window.pageYOffset; + + left = left + 20; + top = top - tooltip.offsetHeight / 2; + + if (left + tooltip.offsetWidth > box.width) { + left -= tooltip.offsetWidth + 40; + } + + if (top < 0) { + top = 0; + } + + if (top + tooltip.offsetHeight > box.height) { + top = box.height - tooltip.offsetHeight; + } + + tooltip.style.left = left + 'px'; + tooltip.style.top = top + 'px'; + }; + + var hideToolTip = function () { + tooltip.style.display = 'none'; + }; + chart.addEventListener('mousemove', moveToolTip); + + lineChart.on('created', function () { + var chartPoints = chart.getElementsByClassName('ct-point'); + for (i = 0, l = chartPoints.length; i < l; i++) { + chartPoints[i].addEventListener('mousemove', showToolTip); + chartPoints[i].addEventListener('mouseout', hideToolTip); + } + }); +}; + +var charts = document.getElementsByClassName('historychart'); +for (i = 0, l = charts.length; i < l; i++) { + renderChart(charts[i]); +} + +------=_NextPart_000_0000_01D23618.54EBCBE0 +Content-Type: text/css; + charset="utf-8" +Content-Transfer-Encoding: 8bit +Content-Location: file:///report.css + +html { font-family: sans-serif; margin: 0; padding: 0; font-size: 0.9em; background-color: #d6d6d6; height: 100%; } +body { margin: 0; padding: 0; height: 100%; color: #000; } +h1 { font-family: 'Century Gothic', sans-serif; font-size: 1.2em; font-weight: normal; color: #fff; background-color: #6f6f6f; padding: 10px; margin: 20px -20px 20px -20px; } +h1:first-of-type { margin-top: 0; } +h2 { font-size: 1.0em; font-weight: bold; margin: 10px 0 15px 0; padding: 0; } +h3 { font-size: 1.0em; font-weight: bold; margin: 0 0 10px 0; padding: 0; display: inline-block; } +input, select, button { border: 1px solid #767676; border-radius: 0; } +button { background-color: #ddd; cursor: pointer; } +a { color: #c00; text-decoration: none; } +a:hover { color: #000; text-decoration: none; } +h1 a.back { color: #fff; background-color: #949494; display: inline-block; margin: -12px 5px -10px -10px; padding: 10px; border-right: 1px solid #fff; } +h1 a.back:hover { background-color: #ccc; } +h1 a.button { color: #000; background-color: #bebebe; margin: -5px 0 0 10px; padding: 5px 8px 5px 8px; border: 1px solid #fff; font-size: 0.9em; border-radius: 3px; float:right; } +h1 a.button:hover { background-color: #ccc; } +h1 a.button i { position: relative; top: 1px; } + +.container { margin: auto; max-width: 1650px; width: 90%; background-color: #fff; display: flex; box-shadow: 0 0 60px #7d7d7d; min-height: 100%; } +.containerleft { padding: 0 20px 20px 20px; flex: 1; min-width: 1%; } +.containerright { width: 340px; min-width: 340px; background-color: #e5e5e5; height: 100%; } +.containerrightfixed { position: fixed; padding: 0 20px 20px 20px; border-left: 1px solid #6f6f6f; width: 300px; overflow-y: auto; height: 100%; top: 0; bottom: 0; } +.containerrightfixed h1 { background-color: #c00; } +.containerrightfixed label, .containerright a { white-space: nowrap; overflow: hidden; display: inline-block; width: 100%; max-width: 300px; text-overflow: ellipsis; } +.containerright a { margin-bottom: 3px; } + +@media screen and (max-width:1200px){ + .container { box-shadow: none; width: 100%; } + .containerright { display: none; } +} + +.popup-container { position: fixed; left: 0; right: 0; top: 0; bottom: 0; background-color: rgb(0, 0, 0, 0.6); z-index: 100; } +.popup { position: absolute; top: 50%; right: 50%; transform: translate(50%,-50%); background-color: #fff; padding: 25px; border-radius: 15px; min-width: 300px; } +.popup .close { text-align: right; color: #979797; font-size: 25px;position: relative; left: 10px; bottom: 10px; cursor: pointer; } + +.footer { font-size: 0.7em; text-align: center; margin-top: 35px; } + +.card-group { display: flex; flex-wrap: wrap; margin-top: -15px; margin-left: -15px; } +.card-group + .card-group { margin-top: 0; } +.card-group .card { margin-top: 15px; margin-left: 15px; display: flex; flex-direction: column; background-color: #e4e4e4; background: radial-gradient(circle, #fefefe 0%, #f6f6f6 100%); border: 1px solid #c1c1c1; padding: 15px; color: #6f6f6f; max-width: 100% } +.card-group .card .card-header { font-size: 1.5rem; font-family: 'Century Gothic', sans-serif; margin-bottom: 15px; flex-grow: 1; } +.card-group .card .card-body { display: flex; flex-direction: row; gap: 15px; flex-grow: 1; } +.card-group .card .card-body div.table { display: flex; flex-direction: column; } +.card-group .card .large { font-size: 5rem; line-height: 5rem; font-weight: bold; align-self: flex-end; border-left-width: 4px; padding-left: 10px; } +.card-group .card table { align-self: flex-end; border-collapse: collapse; } +.card-group .card table tr { border-bottom: 1px solid #c1c1c1; } +.card-group .card table tr:hover { background-color: #c1c1c1; } +.card-group .card table tr:last-child { border-bottom: none; } +.card-group .card table th, .card-group .card table td { padding: 2px; } +.card-group td.limit-width { max-width: 200px; text-overflow: ellipsis; overflow: hidden; } +.card-group td.overflow-wrap { overflow-wrap: anywhere; } + +.pro-button { color: #fff; background-color: #20A0D2; background-image: linear-gradient(50deg, #1c7ed6 0%, #23b8cf 100%); padding: 10px; border-radius: 3px; font-weight: bold; display: inline-block; } +.pro-button:hover { color: #fff; background-color: #1C8EB7; background-image: linear-gradient(50deg, #1A6FBA 0%, #1EA1B5 100%); } +.pro-button-tiny { border-radius: 10px; padding: 3px 8px; } + +th { text-align: left; } +.table-fixed { table-layout: fixed; } +.table-responsive { overflow-x: auto; } +.table-responsive::-webkit-scrollbar { height: 20px; } +.table-responsive::-webkit-scrollbar-thumb { background-color: #6f6f6f; border-radius: 20px; border: 5px solid #fff; } +.overview { border: 1px solid #c1c1c1; border-collapse: collapse; width: 100%; word-wrap: break-word; } +.overview th { border: 1px solid #c1c1c1; border-collapse: collapse; padding: 2px 4px 2px 4px; background-color: #ddd; } +.overview tr.namespace th { background-color: #dcdcdc; } +.overview thead th { background-color: #d1d1d1; } +.overview th a { color: #000; } +.overview tr.namespace a { margin-left: 15px; display: block; } +.overview td { border: 1px solid #c1c1c1; border-collapse: collapse; padding: 2px 5px 2px 5px; } +.overview tr.header th { background-color: #d1d1d1; } +.overview tr.header th:nth-child(2n+1) { background-color: #ddd; } +.overview tr.header th:first-child { border-left: 1px solid #fff; border-top: 1px solid #fff; background-color: #fff; } + +div.currenthistory { margin: -2px -5px 0 -5px; padding: 2px 5px 2px 5px; height: 16px; } +.coverage { border-collapse: collapse; font-size: 5px; height: 10px; } +.coverage td { padding: 0; border: none; } +.stripped tr:nth-child(2n+1) { background-color: #F3F3F3; } + +.customizebox { font-size: 0.75em; margin-bottom: 7px; } +.customizebox>div { width: 25%; display: inline-block; } +.customizebox div.right input { width: 150px; } +#namespaceslider { width: 200px; display: inline-block; margin-left: 8px; } + +.percentagebar { + padding-left: 3px; +} +a.percentagebar { + padding-left: 6px; +} +.percentagebarundefined { + border-left: 2px solid #fff; +} +.percentagebar0 { + border-left: 2px solid #c10909; +} +.percentagebar10 { + border-left: 2px solid; + border-image: linear-gradient(to bottom, #c10909 90%, #0aad0a 90%, #0aad0a 100%) 1; +} +.percentagebar20 { + border-left: 2px solid; + border-image: linear-gradient(to bottom, #c10909 80%, #0aad0a 80%, #0aad0a 100%) 1; +} +.percentagebar30 { + border-left: 2px solid; + border-image: linear-gradient(to bottom, #c10909 70%, #0aad0a 70%, #0aad0a 100%) 1; +} +.percentagebar40 { + border-left: 2px solid; + border-image: linear-gradient(to bottom, #c10909 60%, #0aad0a 60%, #0aad0a 100%) 1; +} +.percentagebar50 { + border-left: 2px solid; + border-image: linear-gradient(to bottom, #c10909 50%, #0aad0a 50%, #0aad0a 100%) 1; +} +.percentagebar60 { + border-left: 2px solid; + border-image: linear-gradient(to bottom, #c10909 40%, #0aad0a 40%, #0aad0a 100%) 1; +} +.percentagebar70 { + border-left: 2px solid; + border-image: linear-gradient(to bottom, #c10909 30%, #0aad0a 30%, #0aad0a 100%) 1; +} +.percentagebar80 { + border-left: 2px solid; + border-image: linear-gradient(to bottom, #c10909 20%, #0aad0a 20%, #0aad0a 100%) 1; +} +.percentagebar90 { + border-left: 2px solid; + border-image: linear-gradient(to bottom, #c10909 10%, #0aad0a 10%, #0aad0a 100%) 1; +} +.percentagebar100 { + border-left: 2px solid #0aad0a; +} + +.mt-1 { margin-top: 4px; } +.hidden, .ng-hide { display: none; } +.right { text-align: right; } +.center { text-align: center; } +.rightmargin { padding-right: 8px; } +.leftmargin { padding-left: 5px; } +.green { background-color: #0aad0a; } +.lightgreen { background-color: #dcf4dc; } +.red { background-color: #c10909; } +.lightred { background-color: #f7dede; } +.orange { background-color: #FFA500; } +.lightorange { background-color: #FFEFD5; } +.gray { background-color: #dcdcdc; } +.lightgray { color: #888888; } +.lightgraybg { background-color: #dadada; } + +code { font-family: Consolas, monospace; font-size: 0.9em; } + +.toggleZoom { text-align:right; } + +.ct-chart { position: relative; } +.ct-chart .ct-line { stroke-width: 2px !important; } +.ct-chart .ct-point { stroke-width: 6px !important; transition: stroke-width .2s; } +.ct-chart .ct-point:hover { stroke-width: 10px !important; } +.ct-chart .ct-series.ct-series-a .ct-line, .ct-chart .ct-series.ct-series-a .ct-point { stroke: #c00 !important;} +.ct-chart .ct-series.ct-series-b .ct-line, .ct-chart .ct-series.ct-series-b .ct-point { stroke: #1c2298 !important;} +.ct-chart .ct-series.ct-series-c .ct-line, .ct-chart .ct-series.ct-series-c .ct-point { stroke: #0aad0a !important;} + +.tinylinecoveragechart, .tinybranchcoveragechart, .tinymethodcoveragechart { background-color: #fff; margin-left: -3px; float: left; border: 1px solid #c1c1c1; width: 30px; height: 18px; } +.historiccoverageoffset { margin-top: 7px; } + +.tinylinecoveragechart .ct-line, .tinybranchcoveragechart .ct-line, .tinymethodcoveragechart .ct-line { stroke-width: 1px !important; } +.tinybranchcoveragechart .ct-series.ct-series-a .ct-line { stroke: #1c2298 !important; } +.tinymethodcoveragechart .ct-series.ct-series-a .ct-line { stroke: #0aad0a !important; } + +.linecoverage { background-color: #c00; width: 10px; height: 8px; border: 1px solid #000; display: inline-block; } +.branchcoverage { background-color: #1c2298; width: 10px; height: 8px; border: 1px solid #000; display: inline-block; } +.codeelementcoverage { background-color: #0aad0a; width: 10px; height: 8px; border: 1px solid #000; display: inline-block; } + +.tooltip { position: absolute; display: none; padding: 5px; background: #F4C63D; color: #453D3F; pointer-events: none; z-index: 1; min-width: 250px; } + +.column-min-200 { min-width: 200px; } +.column60 { width: 60px; } +.column70 { width: 70px; } +.column90 { width: 90px; } +.column98 { width: 98px; } +.column100 { width: 100px; } +.column105 { width: 105px; } +.column112 { width: 112px; } + +.cardpercentagebar { border-left-style: solid; } +.cardpercentagebar0 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 0%, #0aad0a 0%) 1; } +.cardpercentagebar1 { border-image: linear-gradient(to bottom, #c10909 1%, #c10909 1%, #0aad0a 1%) 1; } +.cardpercentagebar2 { border-image: linear-gradient(to bottom, #c10909 2%, #c10909 2%, #0aad0a 2%) 1; } +.cardpercentagebar3 { border-image: linear-gradient(to bottom, #c10909 3%, #c10909 3%, #0aad0a 3%) 1; } +.cardpercentagebar4 { border-image: linear-gradient(to bottom, #c10909 4%, #c10909 4%, #0aad0a 4%) 1; } +.cardpercentagebar5 { border-image: linear-gradient(to bottom, #c10909 5%, #c10909 5%, #0aad0a 5%) 1; } +.cardpercentagebar6 { border-image: linear-gradient(to bottom, #c10909 6%, #c10909 6%, #0aad0a 6%) 1; } +.cardpercentagebar7 { border-image: linear-gradient(to bottom, #c10909 7%, #c10909 7%, #0aad0a 7%) 1; } +.cardpercentagebar8 { border-image: linear-gradient(to bottom, #c10909 8%, #c10909 8%, #0aad0a 8%) 1; } +.cardpercentagebar9 { border-image: linear-gradient(to bottom, #c10909 9%, #c10909 9%, #0aad0a 9%) 1; } +.cardpercentagebar10 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 10%, #0aad0a 10%) 1; } +.cardpercentagebar11 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 11%, #0aad0a 11%) 1; } +.cardpercentagebar12 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 12%, #0aad0a 12%) 1; } +.cardpercentagebar13 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 13%, #0aad0a 13%) 1; } +.cardpercentagebar14 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 14%, #0aad0a 14%) 1; } +.cardpercentagebar15 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 15%, #0aad0a 15%) 1; } +.cardpercentagebar16 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 16%, #0aad0a 16%) 1; } +.cardpercentagebar17 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 17%, #0aad0a 17%) 1; } +.cardpercentagebar18 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 18%, #0aad0a 18%) 1; } +.cardpercentagebar19 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 19%, #0aad0a 19%) 1; } +.cardpercentagebar20 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 20%, #0aad0a 20%) 1; } +.cardpercentagebar21 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 21%, #0aad0a 21%) 1; } +.cardpercentagebar22 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 22%, #0aad0a 22%) 1; } +.cardpercentagebar23 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 23%, #0aad0a 23%) 1; } +.cardpercentagebar24 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 24%, #0aad0a 24%) 1; } +.cardpercentagebar25 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 25%, #0aad0a 25%) 1; } +.cardpercentagebar26 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 26%, #0aad0a 26%) 1; } +.cardpercentagebar27 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 27%, #0aad0a 27%) 1; } +.cardpercentagebar28 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 28%, #0aad0a 28%) 1; } +.cardpercentagebar29 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 29%, #0aad0a 29%) 1; } +.cardpercentagebar30 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 30%, #0aad0a 30%) 1; } +.cardpercentagebar31 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 31%, #0aad0a 31%) 1; } +.cardpercentagebar32 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 32%, #0aad0a 32%) 1; } +.cardpercentagebar33 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 33%, #0aad0a 33%) 1; } +.cardpercentagebar34 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 34%, #0aad0a 34%) 1; } +.cardpercentagebar35 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 35%, #0aad0a 35%) 1; } +.cardpercentagebar36 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 36%, #0aad0a 36%) 1; } +.cardpercentagebar37 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 37%, #0aad0a 37%) 1; } +.cardpercentagebar38 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 38%, #0aad0a 38%) 1; } +.cardpercentagebar39 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 39%, #0aad0a 39%) 1; } +.cardpercentagebar40 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 40%, #0aad0a 40%) 1; } +.cardpercentagebar41 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 41%, #0aad0a 41%) 1; } +.cardpercentagebar42 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 42%, #0aad0a 42%) 1; } +.cardpercentagebar43 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 43%, #0aad0a 43%) 1; } +.cardpercentagebar44 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 44%, #0aad0a 44%) 1; } +.cardpercentagebar45 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 45%, #0aad0a 45%) 1; } +.cardpercentagebar46 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 46%, #0aad0a 46%) 1; } +.cardpercentagebar47 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 47%, #0aad0a 47%) 1; } +.cardpercentagebar48 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 48%, #0aad0a 48%) 1; } +.cardpercentagebar49 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 49%, #0aad0a 49%) 1; } +.cardpercentagebar50 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 50%, #0aad0a 50%) 1; } +.cardpercentagebar51 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 51%, #0aad0a 51%) 1; } +.cardpercentagebar52 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 52%, #0aad0a 52%) 1; } +.cardpercentagebar53 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 53%, #0aad0a 53%) 1; } +.cardpercentagebar54 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 54%, #0aad0a 54%) 1; } +.cardpercentagebar55 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 55%, #0aad0a 55%) 1; } +.cardpercentagebar56 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 56%, #0aad0a 56%) 1; } +.cardpercentagebar57 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 57%, #0aad0a 57%) 1; } +.cardpercentagebar58 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 58%, #0aad0a 58%) 1; } +.cardpercentagebar59 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 59%, #0aad0a 59%) 1; } +.cardpercentagebar60 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 60%, #0aad0a 60%) 1; } +.cardpercentagebar61 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 61%, #0aad0a 61%) 1; } +.cardpercentagebar62 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 62%, #0aad0a 62%) 1; } +.cardpercentagebar63 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 63%, #0aad0a 63%) 1; } +.cardpercentagebar64 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 64%, #0aad0a 64%) 1; } +.cardpercentagebar65 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 65%, #0aad0a 65%) 1; } +.cardpercentagebar66 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 66%, #0aad0a 66%) 1; } +.cardpercentagebar67 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 67%, #0aad0a 67%) 1; } +.cardpercentagebar68 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 68%, #0aad0a 68%) 1; } +.cardpercentagebar69 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 69%, #0aad0a 69%) 1; } +.cardpercentagebar70 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 70%, #0aad0a 70%) 1; } +.cardpercentagebar71 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 71%, #0aad0a 71%) 1; } +.cardpercentagebar72 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 72%, #0aad0a 72%) 1; } +.cardpercentagebar73 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 73%, #0aad0a 73%) 1; } +.cardpercentagebar74 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 74%, #0aad0a 74%) 1; } +.cardpercentagebar75 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 75%, #0aad0a 75%) 1; } +.cardpercentagebar76 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 76%, #0aad0a 76%) 1; } +.cardpercentagebar77 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 77%, #0aad0a 77%) 1; } +.cardpercentagebar78 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 78%, #0aad0a 78%) 1; } +.cardpercentagebar79 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 79%, #0aad0a 79%) 1; } +.cardpercentagebar80 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 80%, #0aad0a 80%) 1; } +.cardpercentagebar81 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 81%, #0aad0a 81%) 1; } +.cardpercentagebar82 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 82%, #0aad0a 82%) 1; } +.cardpercentagebar83 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 83%, #0aad0a 83%) 1; } +.cardpercentagebar84 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 84%, #0aad0a 84%) 1; } +.cardpercentagebar85 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 85%, #0aad0a 85%) 1; } +.cardpercentagebar86 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 86%, #0aad0a 86%) 1; } +.cardpercentagebar87 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 87%, #0aad0a 87%) 1; } +.cardpercentagebar88 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 88%, #0aad0a 88%) 1; } +.cardpercentagebar89 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 89%, #0aad0a 89%) 1; } +.cardpercentagebar90 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 90%, #0aad0a 90%) 1; } +.cardpercentagebar91 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 91%, #0aad0a 91%) 1; } +.cardpercentagebar92 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 92%, #0aad0a 92%) 1; } +.cardpercentagebar93 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 93%, #0aad0a 93%) 1; } +.cardpercentagebar94 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 94%, #0aad0a 94%) 1; } +.cardpercentagebar95 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 95%, #0aad0a 95%) 1; } +.cardpercentagebar96 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 96%, #0aad0a 96%) 1; } +.cardpercentagebar97 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 97%, #0aad0a 97%) 1; } +.cardpercentagebar98 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 98%, #0aad0a 98%) 1; } +.cardpercentagebar99 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 99%, #0aad0a 99%) 1; } +.cardpercentagebar100 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 100%, #0aad0a 100%) 1; } + +.covered0 { width: 0px; } +.covered1 { width: 1px; } +.covered2 { width: 2px; } +.covered3 { width: 3px; } +.covered4 { width: 4px; } +.covered5 { width: 5px; } +.covered6 { width: 6px; } +.covered7 { width: 7px; } +.covered8 { width: 8px; } +.covered9 { width: 9px; } +.covered10 { width: 10px; } +.covered11 { width: 11px; } +.covered12 { width: 12px; } +.covered13 { width: 13px; } +.covered14 { width: 14px; } +.covered15 { width: 15px; } +.covered16 { width: 16px; } +.covered17 { width: 17px; } +.covered18 { width: 18px; } +.covered19 { width: 19px; } +.covered20 { width: 20px; } +.covered21 { width: 21px; } +.covered22 { width: 22px; } +.covered23 { width: 23px; } +.covered24 { width: 24px; } +.covered25 { width: 25px; } +.covered26 { width: 26px; } +.covered27 { width: 27px; } +.covered28 { width: 28px; } +.covered29 { width: 29px; } +.covered30 { width: 30px; } +.covered31 { width: 31px; } +.covered32 { width: 32px; } +.covered33 { width: 33px; } +.covered34 { width: 34px; } +.covered35 { width: 35px; } +.covered36 { width: 36px; } +.covered37 { width: 37px; } +.covered38 { width: 38px; } +.covered39 { width: 39px; } +.covered40 { width: 40px; } +.covered41 { width: 41px; } +.covered42 { width: 42px; } +.covered43 { width: 43px; } +.covered44 { width: 44px; } +.covered45 { width: 45px; } +.covered46 { width: 46px; } +.covered47 { width: 47px; } +.covered48 { width: 48px; } +.covered49 { width: 49px; } +.covered50 { width: 50px; } +.covered51 { width: 51px; } +.covered52 { width: 52px; } +.covered53 { width: 53px; } +.covered54 { width: 54px; } +.covered55 { width: 55px; } +.covered56 { width: 56px; } +.covered57 { width: 57px; } +.covered58 { width: 58px; } +.covered59 { width: 59px; } +.covered60 { width: 60px; } +.covered61 { width: 61px; } +.covered62 { width: 62px; } +.covered63 { width: 63px; } +.covered64 { width: 64px; } +.covered65 { width: 65px; } +.covered66 { width: 66px; } +.covered67 { width: 67px; } +.covered68 { width: 68px; } +.covered69 { width: 69px; } +.covered70 { width: 70px; } +.covered71 { width: 71px; } +.covered72 { width: 72px; } +.covered73 { width: 73px; } +.covered74 { width: 74px; } +.covered75 { width: 75px; } +.covered76 { width: 76px; } +.covered77 { width: 77px; } +.covered78 { width: 78px; } +.covered79 { width: 79px; } +.covered80 { width: 80px; } +.covered81 { width: 81px; } +.covered82 { width: 82px; } +.covered83 { width: 83px; } +.covered84 { width: 84px; } +.covered85 { width: 85px; } +.covered86 { width: 86px; } +.covered87 { width: 87px; } +.covered88 { width: 88px; } +.covered89 { width: 89px; } +.covered90 { width: 90px; } +.covered91 { width: 91px; } +.covered92 { width: 92px; } +.covered93 { width: 93px; } +.covered94 { width: 94px; } +.covered95 { width: 95px; } +.covered96 { width: 96px; } +.covered97 { width: 97px; } +.covered98 { width: 98px; } +.covered99 { width: 99px; } +.covered100 { width: 100px; } + + @media print { + html, body { background-color: #fff; } + .container { max-width: 100%; width: 100%; padding: 0; } + .overview colgroup col:first-child { width: 300px; } +} + +.icon-up-dir_active { + background-image: url(icon_up-dir.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMTc5MiIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMTc5MiAxNzkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGZpbGw9IiNjMDAiIGQ9Ik0xNDA4IDEyMTZxMCAyNi0xOSA0NXQtNDUgMTloLTg5NnEtMjYgMC00NS0xOXQtMTktNDUgMTktNDVsNDQ4LTQ0OHExOS0xOSA0NS0xOXQ0NSAxOWw0NDggNDQ4cTE5IDE5IDE5IDQ1eiIvPjwvc3ZnPg==); + background-repeat: no-repeat; + background-size: contain; + padding-left: 15px; + height: 0.9em; + display: inline-block; + position: relative; + top: 3px; +} +.icon-down-dir_active { + background-image: url(icon_up-dir_active.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMTc5MiIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMTc5MiAxNzkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGZpbGw9IiNjMDAiIGQ9Ik0xNDA4IDcwNHEwIDI2LTE5IDQ1bC00NDggNDQ4cS0xOSAxOS00NSAxOXQtNDUtMTlsLTQ0OC00NDhxLTE5LTE5LTE5LTQ1dDE5LTQ1IDQ1LTE5aDg5NnEyNiAwIDQ1IDE5dDE5IDQ1eiIvPjwvc3ZnPg==); + background-repeat: no-repeat; + background-size: contain; + padding-left: 15px; + height: 0.9em; + display: inline-block; + position: relative; + top: 3px; +} +.icon-down-dir { + background-image: url(icon_down-dir_active.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMTc5MiIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMTc5MiAxNzkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0xNDA4IDcwNHEwIDI2LTE5IDQ1bC00NDggNDQ4cS0xOSAxOS00NSAxOXQtNDUtMTlsLTQ0OC00NDhxLTE5LTE5LTE5LTQ1dDE5LTQ1IDQ1LTE5aDg5NnEyNiAwIDQ1IDE5dDE5IDQ1eiIvPjwvc3ZnPg==); + background-repeat: no-repeat; + background-size: contain; + padding-left: 15px; + height: 0.9em; + display: inline-block; + position: relative; + top: 3px; +} +.icon-info-circled { + background-image: url(icon_info-circled.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMTc5MiIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMTc5MiAxNzkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxjaXJjbGUgY3g9Ijg5NiIgY3k9Ijg5NiIgcj0iNzUwIiBmaWxsPSIjZmZmIiAvPjxwYXRoIGZpbGw9IiMyOEE1RkYiIGQ9Ik0xMTUyIDEzNzZ2LTE2MHEwLTE0LTktMjN0LTIzLTloLTk2di01MTJxMC0xNC05LTIzdC0yMy05aC0zMjBxLTE0IDAtMjMgOXQtOSAyM3YxNjBxMCAxNCA5IDIzdDIzIDloOTZ2MzIwaC05NnEtMTQgMC0yMyA5dC05IDIzdjE2MHEwIDE0IDkgMjN0MjMgOWg0NDhxMTQgMCAyMy05dDktMjN6bS0xMjgtODk2di0xNjBxMC0xNC05LTIzdC0yMy05aC0xOTJxLTE0IDAtMjMgOXQtOSAyM3YxNjBxMCAxNCA5IDIzdDIzIDloMTkycTE0IDAgMjMtOXQ5LTIzem02NDAgNDE2cTAgMjA5LTEwMyAzODUuNXQtMjc5LjUgMjc5LjUtMzg1LjUgMTAzLTM4NS41LTEwMy0yNzkuNS0yNzkuNS0xMDMtMzg1LjUgMTAzLTM4NS41IDI3OS41LTI3OS41IDM4NS41LTEwMyAzODUuNSAxMDMgMjc5LjUgMjc5LjUgMTAzIDM4NS41eiIvPjwvc3ZnPg==); + background-repeat: no-repeat; + background-size: contain; + padding-left: 15px; + height: 0.9em; + display: inline-block; +} +.icon-plus { + background-image: url(icon_plus.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMTc5MiIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMTc5MiAxNzkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0xNjAwIDczNnYxOTJxMCA0MC0yOCA2OHQtNjggMjhoLTQxNnY0MTZxMCA0MC0yOCA2OHQtNjggMjhoLTE5MnEtNDAgMC02OC0yOHQtMjgtNjh2LTQxNmgtNDE2cS00MCAwLTY4LTI4dC0yOC02OHYtMTkycTAtNDAgMjgtNjh0NjgtMjhoNDE2di00MTZxMC00MCAyOC02OHQ2OC0yOGgxOTJxNDAgMCA2OCAyOHQyOCA2OHY0MTZoNDE2cTQwIDAgNjggMjh0MjggNjh6Ii8+PC9zdmc+); + background-repeat: no-repeat; + background-size: contain; + padding-left: 15px; + height: 0.9em; + display: inline-block; + position: relative; + top: 3px; +} +.icon-minus { + background-image: url(icon_minus.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMTc5MiIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMTc5MiAxNzkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGZpbGw9IiNjMDAiIGQ9Ik0xNjAwIDczNnYxOTJxMCA0MC0yOCA2OHQtNjggMjhoLTEyMTZxLTQwIDAtNjgtMjh0LTI4LTY4di0xOTJxMC00MCAyOC02OHQ2OC0yOGgxMjE2cTQwIDAgNjggMjh0MjggNjh6Ii8+PC9zdmc+); + background-repeat: no-repeat; + background-size: contain; + padding-left: 15px; + height: 0.9em; + display: inline-block; + position: relative; + top: 3px; +} +.icon-wrench { + background-image: url(icon_wrench.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMTc5MiIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMTc5MiAxNzkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik00NDggMTQ3MnEwLTI2LTE5LTQ1dC00NS0xOS00NSAxOS0xOSA0NSAxOSA0NSA0NSAxOSA0NS0xOSAxOS00NXptNjQ0LTQyMGwtNjgyIDY4MnEtMzcgMzctOTAgMzctNTIgMC05MS0zN2wtMTA2LTEwOHEtMzgtMzYtMzgtOTAgMC01MyAzOC05MWw2ODEtNjgxcTM5IDk4IDExNC41IDE3My41dDE3My41IDExNC41em02MzQtNDM1cTAgMzktMjMgMTA2LTQ3IDEzNC0xNjQuNSAyMTcuNXQtMjU4LjUgODMuNXEtMTg1IDAtMzE2LjUtMTMxLjV0LTEzMS41LTMxNi41IDEzMS41LTMxNi41IDMxNi41LTEzMS41cTU4IDAgMTIxLjUgMTYuNXQxMDcuNSA0Ni41cTE2IDExIDE2IDI4dC0xNiAyOGwtMjkzIDE2OXYyMjRsMTkzIDEwN3E1LTMgNzktNDguNXQxMzUuNS04MSA3MC41LTM1LjVxMTUgMCAyMy41IDEwdDguNSAyNXoiLz48L3N2Zz4=); + background-repeat: no-repeat; + background-size: contain; + padding-left: 20px; + height: 0.9em; + display: inline-block; +} +.icon-cog { + background-image: url(icon_cog.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiB2aWV3Qm94PSIwIDAgNTEyIDUxMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNDQ0Ljc4OCAyOTEuMWw0Mi42MTYgMjQuNTk5YzQuODY3IDIuODA5IDcuMTI2IDguNjE4IDUuNDU5IDEzLjk4NS0xMS4wNyAzNS42NDItMjkuOTcgNjcuODQyLTU0LjY4OSA5NC41ODZhMTIuMDE2IDEyLjAxNiAwIDAgMS0xNC44MzIgMi4yNTRsLTQyLjU4NC0yNC41OTVhMTkxLjU3NyAxOTEuNTc3IDAgMCAxLTYwLjc1OSAzNS4xM3Y0OS4xODJhMTIuMDEgMTIuMDEgMCAwIDEtOS4zNzcgMTEuNzE4Yy0zNC45NTYgNy44NS03Mi40OTkgOC4yNTYtMTA5LjIxOS4wMDctNS40OS0xLjIzMy05LjQwMy02LjA5Ni05LjQwMy0xMS43MjN2LTQ5LjE4NGExOTEuNTU1IDE5MS41NTUgMCAwIDEtNjAuNzU5LTM1LjEzbC00Mi41ODQgMjQuNTk1YTEyLjAxNiAxMi4wMTYgMCAwIDEtMTQuODMyLTIuMjU0Yy0yNC43MTgtMjYuNzQ0LTQzLjYxOS01OC45NDQtNTQuNjg5LTk0LjU4Ni0xLjY2Ny01LjM2Ni41OTItMTEuMTc1IDUuNDU5LTEzLjk4NUw2Ny4yMTIgMjkxLjFhMTkzLjQ4IDE5My40OCAwIDAgMSAwLTcwLjE5OWwtNDIuNjE2LTI0LjU5OWMtNC44NjctMi44MDktNy4xMjYtOC42MTgtNS40NTktMTMuOTg1IDExLjA3LTM1LjY0MiAyOS45Ny02Ny44NDIgNTQuNjg5LTk0LjU4NmExMi4wMTYgMTIuMDE2IDAgMCAxIDE0LjgzMi0yLjI1NGw0Mi41ODQgMjQuNTk1YTE5MS41NzcgMTkxLjU3NyAwIDAgMSA2MC43NTktMzUuMTNWMjUuNzU5YTEyLjAxIDEyLjAxIDAgMCAxIDkuMzc3LTExLjcxOGMzNC45NTYtNy44NSA3Mi40OTktOC4yNTYgMTA5LjIxOS0uMDA3IDUuNDkgMS4yMzMgOS40MDMgNi4wOTYgOS40MDMgMTEuNzIzdjQ5LjE4NGExOTEuNTU1IDE5MS41NTUgMCAwIDEgNjAuNzU5IDM1LjEzbDQyLjU4NC0yNC41OTVhMTIuMDE2IDEyLjAxNiAwIDAgMSAxNC44MzIgMi4yNTRjMjQuNzE4IDI2Ljc0NCA0My42MTkgNTguOTQ0IDU0LjY4OSA5NC41ODYgMS42NjcgNS4zNjYtLjU5MiAxMS4xNzUtNS40NTkgMTMuOTg1TDQ0NC43ODggMjIwLjlhMTkzLjQ4NSAxOTMuNDg1IDAgMCAxIDAgNzAuMnpNMzM2IDI1NmMwLTQ0LjExMi0zNS44ODgtODAtODAtODBzLTgwIDM1Ljg4OC04MCA4MCAzNS44ODggODAgODAgODAgODAtMzUuODg4IDgwLTgweiIvPjwvc3ZnPg==); + background-repeat: no-repeat; + background-size: contain; + padding-left: 16px; + height: 0.8em; + display: inline-block; +} +.icon-fork { + background-image: url(icon_fork.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMTc5MiIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMTc5MiAxNzkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxyZWN0IHdpZHRoPSIxNzkyIiBoZWlnaHQ9IjE3OTIiIHN0eWxlPSJmaWxsOiNmZmYiIC8+PHBhdGggZD0iTTY3MiAxNDcycTAtNDAtMjgtNjh0LTY4LTI4LTY4IDI4LTI4IDY4IDI4IDY4IDY4IDI4IDY4LTI4IDI4LTY4em0wLTExNTJxMC00MC0yOC02OHQtNjgtMjgtNjggMjgtMjggNjggMjggNjggNjggMjggNjgtMjggMjgtNjh6bTY0MCAxMjhxMC00MC0yOC02OHQtNjgtMjgtNjggMjgtMjggNjggMjggNjggNjggMjggNjgtMjggMjgtNjh6bTk2IDBxMCA1Mi0yNiA5Ni41dC03MCA2OS41cS0yIDI4Ny0yMjYgNDE0LTY3IDM4LTIwMyA4MS0xMjggNDAtMTY5LjUgNzF0LTQxLjUgMTAwdjI2cTQ0IDI1IDcwIDY5LjV0MjYgOTYuNXEwIDgwLTU2IDEzNnQtMTM2IDU2LTEzNi01Ni01Ni0xMzZxMC01MiAyNi05Ni41dDcwLTY5LjV2LTgyMHEtNDQtMjUtNzAtNjkuNXQtMjYtOTYuNXEwLTgwIDU2LTEzNnQxMzYtNTYgMTM2IDU2IDU2IDEzNnEwIDUyLTI2IDk2LjV0LTcwIDY5LjV2NDk3cTU0LTI2IDE1NC01NyA1NS0xNyA4Ny41LTI5LjV0NzAuNS0zMSA1OS0zOS41IDQwLjUtNTEgMjgtNjkuNSA4LjUtOTEuNXEtNDQtMjUtNzAtNjkuNXQtMjYtOTYuNXEwLTgwIDU2LTEzNnQxMzYtNTYgMTM2IDU2IDU2IDEzNnoiLz48L3N2Zz4=); + background-repeat: no-repeat; + background-size: contain; + padding-left: 20px; + height: 0.9em; + display: inline-block; +} +.icon-cube { + background-image: url(icon_cube.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMTc5MiIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMTc5MiAxNzkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik04OTYgMTYyOWw2NDAtMzQ5di02MzZsLTY0MCAyMzN2NzUyem0tNjQtODY1bDY5OC0yNTQtNjk4LTI1NC02OTggMjU0em04MzItMjUydjc2OHEwIDM1LTE4IDY1dC00OSA0N2wtNzA0IDM4NHEtMjggMTYtNjEgMTZ0LTYxLTE2bC03MDQtMzg0cS0zMS0xNy00OS00N3QtMTgtNjV2LTc2OHEwLTQwIDIzLTczdDYxLTQ3bDcwNC0yNTZxMjItOCA0NC04dDQ0IDhsNzA0IDI1NnEzOCAxNCA2MSA0N3QyMyA3M3oiLz48L3N2Zz4=); + background-repeat: no-repeat; + background-size: contain; + padding-left: 20px; + height: 0.9em; + display: inline-block; +} +.icon-search-plus { + background-image: url(icon_search-plus.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMTc5MiIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMTc5MiAxNzkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGZpbGw9IiM2ZjZmNmYiIGQ9Ik0xMDg4IDgwMHY2NHEwIDEzLTkuNSAyMi41dC0yMi41IDkuNWgtMjI0djIyNHEwIDEzLTkuNSAyMi41dC0yMi41IDkuNWgtNjRxLTEzIDAtMjIuNS05LjV0LTkuNS0yMi41di0yMjRoLTIyNHEtMTMgMC0yMi41LTkuNXQtOS41LTIyLjV2LTY0cTAtMTMgOS41LTIyLjV0MjIuNS05LjVoMjI0di0yMjRxMC0xMyA5LjUtMjIuNXQyMi41LTkuNWg2NHExMyAwIDIyLjUgOS41dDkuNSAyMi41djIyNGgyMjRxMTMgMCAyMi41IDkuNXQ5LjUgMjIuNXptMTI4IDMycTAtMTg1LTEzMS41LTMxNi41dC0zMTYuNS0xMzEuNS0zMTYuNSAxMzEuNS0xMzEuNSAzMTYuNSAxMzEuNSAzMTYuNSAzMTYuNSAxMzEuNSAzMTYuNS0xMzEuNSAxMzEuNS0zMTYuNXptNTEyIDgzMnEwIDUzLTM3LjUgOTAuNXQtOTAuNSAzNy41cS01NCAwLTkwLTM4bC0zNDMtMzQycS0xNzkgMTI0LTM5OSAxMjQtMTQzIDAtMjczLjUtNTUuNXQtMjI1LTE1MC0xNTAtMjI1LTU1LjUtMjczLjUgNTUuNS0yNzMuNSAxNTAtMjI1IDIyNS0xNTAgMjczLjUtNTUuNSAyNzMuNSA1NS41IDIyNSAxNTAgMTUwIDIyNSA1NS41IDI3My41cTAgMjIwLTEyNCAzOTlsMzQzIDM0M3EzNyAzNyAzNyA5MHoiLz48L3N2Zz4=); + background-repeat: no-repeat; + background-size: contain; + padding-left: 20px; + height: 0.9em; + display: inline-block; +} +.icon-search-minus { + background-image: url(icon_search-minus.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMTc5MiIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMTc5MiAxNzkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGZpbGw9IiM2ZjZmNmYiIGQ9Ik0xMDg4IDgwMHY2NHEwIDEzLTkuNSAyMi41dC0yMi41IDkuNWgtNTc2cS0xMyAwLTIyLjUtOS41dC05LjUtMjIuNXYtNjRxMC0xMyA5LjUtMjIuNXQyMi41LTkuNWg1NzZxMTMgMCAyMi41IDkuNXQ5LjUgMjIuNXptMTI4IDMycTAtMTg1LTEzMS41LTMxNi41dC0zMTYuNS0xMzEuNS0zMTYuNSAxMzEuNS0xMzEuNSAzMTYuNSAxMzEuNSAzMTYuNSAzMTYuNSAxMzEuNSAzMTYuNS0xMzEuNSAxMzEuNS0zMTYuNXptNTEyIDgzMnEwIDUzLTM3LjUgOTAuNXQtOTAuNSAzNy41cS01NCAwLTkwLTM4bC0zNDMtMzQycS0xNzkgMTI0LTM5OSAxMjQtMTQzIDAtMjczLjUtNTUuNXQtMjI1LTE1MC0xNTAtMjI1LTU1LjUtMjczLjUgNTUuNS0yNzMuNSAxNTAtMjI1IDIyNS0xNTAgMjczLjUtNTUuNSAyNzMuNSA1NS41IDIyNSAxNTAgMTUwIDIyNSA1NS41IDI3My41cTAgMjIwLTEyNCAzOTlsMzQzIDM0M3EzNyAzNyAzNyA5MHoiLz48L3N2Zz4=); + background-repeat: no-repeat; + background-size: contain; + padding-left: 20px; + height: 0.9em; + display: inline-block; +} +.icon-star { + background-image: url(icon_star.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMTc5MiIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMTc5MiAxNzkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0xNzI4IDY0N3EwIDIyLTI2IDQ4bC0zNjMgMzU0IDg2IDUwMHExIDcgMSAyMCAwIDIxLTEwLjUgMzUuNXQtMzAuNSAxNC41cS0xOSAwLTQwLTEybC00NDktMjM2LTQ0OSAyMzZxLTIyIDEyLTQwIDEyLTIxIDAtMzEuNS0xNC41dC0xMC41LTM1LjVxMC02IDItMjBsODYtNTAwLTM2NC0zNTRxLTI1LTI3LTI1LTQ4IDAtMzcgNTYtNDZsNTAyLTczIDIyNS00NTVxMTktNDEgNDktNDF0NDkgNDFsMjI1IDQ1NSA1MDIgNzNxNTYgOSA1NiA0NnoiIGZpbGw9IiMwMDAiLz48L3N2Zz4=); + background-repeat: no-repeat; + background-size: contain; + padding-left: 20px; + height: 0.9em; + display: inline-block; +} +.icon-sponsor { + background-image: url(icon_sponsor.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMTc5MiIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMTc5MiAxNzkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik04OTYgMTY2NHEtMjYgMC00NC0xOGwtNjI0LTYwMnEtMTAtOC0yNy41LTI2dC01NS41LTY1LjUtNjgtOTcuNS01My41LTEyMS0yMy41LTEzOHEwLTIyMCAxMjctMzQ0dDM1MS0xMjRxNjIgMCAxMjYuNSAyMS41dDEyMCA1OCA5NS41IDY4LjUgNzYgNjhxMzYtMzYgNzYtNjh0OTUuNS02OC41IDEyMC01OCAxMjYuNS0yMS41cTIyNCAwIDM1MSAxMjR0MTI3IDM0NHEwIDIyMS0yMjkgNDUwbC02MjMgNjAwcS0xOCAxOC00NCAxOHoiIGZpbGw9IiNlYTRhYWEiLz48L3N2Zz4=); + background-repeat: no-repeat; + background-size: contain; + padding-left: 20px; + height: 0.9em; + display: inline-block; +} + + + +@media (prefers-color-scheme: dark) { + @media screen { + html { + background-color: #333; + color: #fff; + } + + body { + color: #fff; + } + + h1 { + background-color: #555453; + color: #fff; + } + + .container { + background-color: #333; + box-shadow: 0 0 60px #0c0c0c; + } + + .containerrightfixed { + background-color: #3D3C3C; + border-left: 1px solid #515050; + } + + .containerrightfixed h1 { + background-color: #484747; + } + + .popup-container { + background-color: rgb(80, 80, 80, 0.6); + } + + .popup { + background-color: #333; + } + + .card-group .card { + background-color: #333; + background: radial-gradient(circle, #444 0%, #333 100%); + border: 1px solid #545454; + color: #fff; + } + + .card-group .card table tr { + border-bottom: 1px solid #545454; + } + + .card-group .card table tr:hover { + background-color: #2E2D2C; + } + + .table-responsive::-webkit-scrollbar-thumb { + background-color: #555453; + border: 5px solid #333; + } + + .overview tr:hover { + background-color: #2E2D2C; + } + + .overview th { + background-color: #444; + border: 1px solid #3B3A39; + } + + .overview tr.namespace th { + background-color: #444; + } + + .overview thead th { + background-color: #444; + } + + .overview th a { + color: #fff; + color: rgba(255, 255, 255, 0.95); + } + + .overview th a:hover { + color: #0078d4; + } + + .overview td { + border: 1px solid #3B3A39; + } + + .overview .coverage td { + border: none; + } + + .overview tr.header th { + background-color: #444; + } + + .overview tr.header th:nth-child(2n+1) { + background-color: #3a3a3a; + } + + .overview tr.header th:first-child { + border-left: 1px solid #333; + border-top: 1px solid #333; + background-color: #333; + } + + .stripped tr:nth-child(2n+1) { + background-color: #3c3c3c; + } + + input, select, button { + background-color: #333; + color: #fff; + border: 1px solid #A19F9D; + } + + a { + color: #fff; + color: rgba(255, 255, 255, 0.95); + } + + a:hover { + color: #0078d4; + } + + h1 a.back { + background-color: #4a4846; + } + + h1 a.button { + color: #fff; + background-color: #565656; + border-color: #c1c1c1; + } + + h1 a.button:hover { + background-color: #8d8d8d; + } + + .gray { + background-color: #484747; + } + + .lightgray { + color: #ebebeb; + } + + .lightgraybg { + background-color: #474747; + } + + .lightgreen { + background-color: #406540; + } + + .lightorange { + background-color: #ab7f36; + } + + .lightred { + background-color: #954848; + } + + .ct-label { + color: #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; + } + + .ct-chart .ct-series.ct-series-c .ct-line, .ct-chart .ct-series.ct-series-c .ct-point { + stroke: #e58f1d !important; + } + + .linecoverage { + background-color: #0078D4; + } + + .branchcoverage { + background-color: #6dc428; + } + .codeelementcoverage { + background-color: #e58f1d; + } + + .tinylinecoveragechart, .tinybranchcoveragechart, .tinymethodcoveragechart { + background-color: #333; + } + + .tinybranchcoveragechart .ct-series.ct-series-a .ct-line { + stroke: #6dc428 !important; + } + + .tinymethodcoveragechart .ct-series.ct-series-a .ct-line { + stroke: #e58f1d !important; + } + + .icon-down-dir { + background-image: url(icon_down-dir_active_dark.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHdpZHRoPSIxNzkyIiBoZWlnaHQ9IjE3OTIiIHZpZXdCb3g9IjAgMCAxNzkyIDE3OTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbD0iI0JGQkZDMCIgZD0iTTE0MDggNzA0cTAgMjYtMTkgNDVsLTQ0OCA0NDhxLTE5IDE5LTQ1IDE5dC00NS0xOWwtNDQ4LTQ0OHEtMTktMTktMTktNDV0MTktNDUgNDUtMTloODk2cTI2IDAgNDUgMTl0MTkgNDV6Ii8+PC9zdmc+); + } + + .icon-info-circled { + background-image: url(icon_info-circled_dark.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMTc5MiIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMTc5MiAxNzkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxjaXJjbGUgY3g9Ijg5NiIgY3k9Ijg5NiIgcj0iNzUwIiBmaWxsPSIjZmZmIiAvPjxwYXRoIGZpbGw9IiMyOEE1RkYiIGQ9Ik0xMTUyIDEzNzZ2LTE2MHEwLTE0LTktMjN0LTIzLTloLTk2di01MTJxMC0xNC05LTIzdC0yMy05aC0zMjBxLTE0IDAtMjMgOXQtOSAyM3YxNjBxMCAxNCA5IDIzdDIzIDloOTZ2MzIwaC05NnEtMTQgMC0yMyA5dC05IDIzdjE2MHEwIDE0IDkgMjN0MjMgOWg0NDhxMTQgMCAyMy05dDktMjN6bS0xMjgtODk2di0xNjBxMC0xNC05LTIzdC0yMy05aC0xOTJxLTE0IDAtMjMgOXQtOSAyM3YxNjBxMCAxNCA5IDIzdDIzIDloMTkycTE0IDAgMjMtOXQ5LTIzem02NDAgNDE2cTAgMjA5LTEwMyAzODUuNXQtMjc5LjUgMjc5LjUtMzg1LjUgMTAzLTM4NS41LTEwMy0yNzkuNS0yNzkuNS0xMDMtMzg1LjUgMTAzLTM4NS41IDI3OS41LTI3OS41IDM4NS41LTEwMyAzODUuNSAxMDMgMjc5LjUgMjc5LjUgMTAzIDM4NS41eiIvPjwvc3ZnPg==); + } + + .icon-plus { + background-image: url(icon_plus_dark.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHdpZHRoPSIxNzkyIiBoZWlnaHQ9IjE3OTIiIHZpZXdCb3g9IjAgMCAxNzkyIDE3OTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbD0iI0JGQkZDMCIgZD0iTTE2MDAgNzM2djE5MnEwIDQwLTI4IDY4dC02OCAyOGgtNDE2djQxNnEwIDQwLTI4IDY4dC02OCAyOGgtMTkycS00MCAwLTY4LTI4dC0yOC02OHYtNDE2aC00MTZxLTQwIDAtNjgtMjh0LTI4LTY4di0xOTJxMC00MCAyOC02OHQ2OC0yOGg0MTZ2LTQxNnEwLTQwIDI4LTY4dDY4LTI4aDE5MnE0MCAwIDY4IDI4dDI4IDY4djQxNmg0MTZxNDAgMCA2OCAyOHQyOCA2OHoiLz48L3N2Zz4=); + } + + .icon-minus { + background-image: url(icon_minus_dark.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHdpZHRoPSIxNzkyIiBoZWlnaHQ9IjE3OTIiIHZpZXdCb3g9IjAgMCAxNzkyIDE3OTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbD0iI0JGQkZDMCIgZD0iTTE2MDAgNzM2djE5MnEwIDQwLTI4IDY4dC02OCAyOGgtMTIxNnEtNDAgMC02OC0yOHQtMjgtNjh2LTE5MnEwLTQwIDI4LTY4dDY4LTI4aDEyMTZxNDAgMCA2OCAyOHQyOCA2OHoiLz48L3N2Zz4=); + } + + .icon-wrench { + background-image: url(icon_wrench_dark.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHdpZHRoPSIxNzkyIiBoZWlnaHQ9IjE3OTIiIHZpZXdCb3g9IjAgMCAxNzkyIDE3OTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbD0iI0JEQkRCRiIgZD0iTTQ0OCAxNDcycTAtMjYtMTktNDV0LTQ1LTE5LTQ1IDE5LTE5IDQ1IDE5IDQ1IDQ1IDE5IDQ1LTE5IDE5LTQ1em02NDQtNDIwbC02ODIgNjgycS0zNyAzNy05MCAzNy01MiAwLTkxLTM3bC0xMDYtMTA4cS0zOC0zNi0zOC05MCAwLTUzIDM4LTkxbDY4MS02ODFxMzkgOTggMTE0LjUgMTczLjV0MTczLjUgMTE0LjV6bTYzNC00MzVxMCAzOS0yMyAxMDYtNDcgMTM0LTE2NC41IDIxNy41dC0yNTguNSA4My41cS0xODUgMC0zMTYuNS0xMzEuNXQtMTMxLjUtMzE2LjUgMTMxLjUtMzE2LjUgMzE2LjUtMTMxLjVxNTggMCAxMjEuNSAxNi41dDEwNy41IDQ2LjVxMTYgMTEgMTYgMjh0LTE2IDI4bC0yOTMgMTY5djIyNGwxOTMgMTA3cTUtMyA3OS00OC41dDEzNS41LTgxIDcwLjUtMzUuNXExNSAwIDIzLjUgMTB0OC41IDI1eiIvPjwvc3ZnPg==); + } + + .icon-cog { + background-image: url(icon_cog_dark.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiB2aWV3Qm94PSIwIDAgNTEyIDUxMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBmaWxsPSIjQkRCREJGIiBkPSJNNDQ0Ljc4OCAyOTEuMWw0Mi42MTYgMjQuNTk5YzQuODY3IDIuODA5IDcuMTI2IDguNjE4IDUuNDU5IDEzLjk4NS0xMS4wNyAzNS42NDItMjkuOTcgNjcuODQyLTU0LjY4OSA5NC41ODZhMTIuMDE2IDEyLjAxNiAwIDAgMS0xNC44MzIgMi4yNTRsLTQyLjU4NC0yNC41OTVhMTkxLjU3NyAxOTEuNTc3IDAgMCAxLTYwLjc1OSAzNS4xM3Y0OS4xODJhMTIuMDEgMTIuMDEgMCAwIDEtOS4zNzcgMTEuNzE4Yy0zNC45NTYgNy44NS03Mi40OTkgOC4yNTYtMTA5LjIxOS4wMDctNS40OS0xLjIzMy05LjQwMy02LjA5Ni05LjQwMy0xMS43MjN2LTQ5LjE4NGExOTEuNTU1IDE5MS41NTUgMCAwIDEtNjAuNzU5LTM1LjEzbC00Mi41ODQgMjQuNTk1YTEyLjAxNiAxMi4wMTYgMCAwIDEtMTQuODMyLTIuMjU0Yy0yNC43MTgtMjYuNzQ0LTQzLjYxOS01OC45NDQtNTQuNjg5LTk0LjU4Ni0xLjY2Ny01LjM2Ni41OTItMTEuMTc1IDUuNDU5LTEzLjk4NUw2Ny4yMTIgMjkxLjFhMTkzLjQ4IDE5My40OCAwIDAgMSAwLTcwLjE5OWwtNDIuNjE2LTI0LjU5OWMtNC44NjctMi44MDktNy4xMjYtOC42MTgtNS40NTktMTMuOTg1IDExLjA3LTM1LjY0MiAyOS45Ny02Ny44NDIgNTQuNjg5LTk0LjU4NmExMi4wMTYgMTIuMDE2IDAgMCAxIDE0LjgzMi0yLjI1NGw0Mi41ODQgMjQuNTk1YTE5MS41NzcgMTkxLjU3NyAwIDAgMSA2MC43NTktMzUuMTNWMjUuNzU5YTEyLjAxIDEyLjAxIDAgMCAxIDkuMzc3LTExLjcxOGMzNC45NTYtNy44NSA3Mi40OTktOC4yNTYgMTA5LjIxOS0uMDA3IDUuNDkgMS4yMzMgOS40MDMgNi4wOTYgOS40MDMgMTEuNzIzdjQ5LjE4NGExOTEuNTU1IDE5MS41NTUgMCAwIDEgNjAuNzU5IDM1LjEzbDQyLjU4NC0yNC41OTVhMTIuMDE2IDEyLjAxNiAwIDAgMSAxNC44MzIgMi4yNTRjMjQuNzE4IDI2Ljc0NCA0My42MTkgNTguOTQ0IDU0LjY4OSA5NC41ODYgMS42NjcgNS4zNjYtLjU5MiAxMS4xNzUtNS40NTkgMTMuOTg1TDQ0NC43ODggMjIwLjlhMTkzLjQ4NSAxOTMuNDg1IDAgMCAxIDAgNzAuMnpNMzM2IDI1NmMwLTQ0LjExMi0zNS44ODgtODAtODAtODBzLTgwIDM1Ljg4OC04MCA4MCAzNS44ODggODAgODAgODAgODAtMzUuODg4IDgwLTgweiIvPjwvc3ZnPg==); + } + + .icon-fork { + background-image: url(icon_fork_dark.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHdpZHRoPSIxNzkyIiBoZWlnaHQ9IjE3OTIiIHZpZXdCb3g9IjAgMCAxNzkyIDE3OTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbD0iI0JGQkZDMCIgZD0iTTY3MiAxNDcycTAtNDAtMjgtNjh0LTY4LTI4LTY4IDI4LTI4IDY4IDI4IDY4IDY4IDI4IDY4LTI4IDI4LTY4em0wLTExNTJxMC00MC0yOC02OHQtNjgtMjgtNjggMjgtMjggNjggMjggNjggNjggMjggNjgtMjggMjgtNjh6bTY0MCAxMjhxMC00MC0yOC02OHQtNjgtMjgtNjggMjgtMjggNjggMjggNjggNjggMjggNjgtMjggMjgtNjh6bTk2IDBxMCA1Mi0yNiA5Ni41dC03MCA2OS41cS0yIDI4Ny0yMjYgNDE0LTY3IDM4LTIwMyA4MS0xMjggNDAtMTY5LjUgNzF0LTQxLjUgMTAwdjI2cTQ0IDI1IDcwIDY5LjV0MjYgOTYuNXEwIDgwLTU2IDEzNnQtMTM2IDU2LTEzNi01Ni01Ni0xMzZxMC01MiAyNi05Ni41dDcwLTY5LjV2LTgyMHEtNDQtMjUtNzAtNjkuNXQtMjYtOTYuNXEwLTgwIDU2LTEzNnQxMzYtNTYgMTM2IDU2IDU2IDEzNnEwIDUyLTI2IDk2LjV0LTcwIDY5LjV2NDk3cTU0LTI2IDE1NC01NyA1NS0xNyA4Ny41LTI5LjV0NzAuNS0zMSA1OS0zOS41IDQwLjUtNTEgMjgtNjkuNSA4LjUtOTEuNXEtNDQtMjUtNzAtNjkuNXQtMjYtOTYuNXEwLTgwIDU2LTEzNnQxMzYtNTYgMTM2IDU2IDU2IDEzNnoiLz48L3N2Zz4=); + } + + .icon-cube { + background-image: url(icon_cube_dark.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHdpZHRoPSIxNzkyIiBoZWlnaHQ9IjE3OTIiIHZpZXdCb3g9IjAgMCAxNzkyIDE3OTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbD0iI0JGQkZDMCIgZD0iTTg5NiAxNjI5bDY0MC0zNDl2LTYzNmwtNjQwIDIzM3Y3NTJ6bS02NC04NjVsNjk4LTI1NC02OTgtMjU0LTY5OCAyNTR6bTgzMi0yNTJ2NzY4cTAgMzUtMTggNjV0LTQ5IDQ3bC03MDQgMzg0cS0yOCAxNi02MSAxNnQtNjEtMTZsLTcwNC0zODRxLTMxLTE3LTQ5LTQ3dC0xOC02NXYtNzY4cTAtNDAgMjMtNzN0NjEtNDdsNzA0LTI1NnEyMi04IDQ0LTh0NDQgOGw3MDQgMjU2cTM4IDE0IDYxIDQ3dDIzIDczeiIvPjwvc3ZnPg==); + } + + .icon-search-plus { + background-image: url(icon_search-plus_dark.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHdpZHRoPSIxNzkyIiBoZWlnaHQ9IjE3OTIiIHZpZXdCb3g9IjAgMCAxNzkyIDE3OTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbD0iI0JGQkZDMCIgZD0iTTEwODggODAwdjY0cTAgMTMtOS41IDIyLjV0LTIyLjUgOS41aC0yMjR2MjI0cTAgMTMtOS41IDIyLjV0LTIyLjUgOS41aC02NHEtMTMgMC0yMi41LTkuNXQtOS41LTIyLjV2LTIyNGgtMjI0cS0xMyAwLTIyLjUtOS41dC05LjUtMjIuNXYtNjRxMC0xMyA5LjUtMjIuNXQyMi41LTkuNWgyMjR2LTIyNHEwLTEzIDkuNS0yMi41dDIyLjUtOS41aDY0cTEzIDAgMjIuNSA5LjV0OS41IDIyLjV2MjI0aDIyNHExMyAwIDIyLjUgOS41dDkuNSAyMi41em0xMjggMzJxMC0xODUtMTMxLjUtMzE2LjV0LTMxNi41LTEzMS41LTMxNi41IDEzMS41LTEzMS41IDMxNi41IDEzMS41IDMxNi41IDMxNi41IDEzMS41IDMxNi41LTEzMS41IDEzMS41LTMxNi41em01MTIgODMycTAgNTMtMzcuNSA5MC41dC05MC41IDM3LjVxLTU0IDAtOTAtMzhsLTM0My0zNDJxLTE3OSAxMjQtMzk5IDEyNC0xNDMgMC0yNzMuNS01NS41dC0yMjUtMTUwLTE1MC0yMjUtNTUuNS0yNzMuNSA1NS41LTI3My41IDE1MC0yMjUgMjI1LTE1MCAyNzMuNS01NS41IDI3My41IDU1LjUgMjI1IDE1MCAxNTAgMjI1IDU1LjUgMjczLjVxMCAyMjAtMTI0IDM5OWwzNDMgMzQzcTM3IDM3IDM3IDkweiIvPjwvc3ZnPg==); + } + + .icon-search-minus { + background-image: url(icon_search-minus_dark.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHdpZHRoPSIxNzkyIiBoZWlnaHQ9IjE3OTIiIHZpZXdCb3g9IjAgMCAxNzkyIDE3OTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbD0iI0JGQkZDMCIgZD0iTTEwODggODAwdjY0cTAgMTMtOS41IDIyLjV0LTIyLjUgOS41aC01NzZxLTEzIDAtMjIuNS05LjV0LTkuNS0yMi41di02NHEwLTEzIDkuNS0yMi41dDIyLjUtOS41aDU3NnExMyAwIDIyLjUgOS41dDkuNSAyMi41em0xMjggMzJxMC0xODUtMTMxLjUtMzE2LjV0LTMxNi41LTEzMS41LTMxNi41IDEzMS41LTEzMS41IDMxNi41IDEzMS41IDMxNi41IDMxNi41IDEzMS41IDMxNi41LTEzMS41IDEzMS41LTMxNi41em01MTIgODMycTAgNTMtMzcuNSA5MC41dC05MC41IDM3LjVxLTU0IDAtOTAtMzhsLTM0My0zNDJxLTE3OSAxMjQtMzk5IDEyNC0xNDMgMC0yNzMuNS01NS41dC0yMjUtMTUwLTE1MC0yMjUtNTUuNS0yNzMuNSA1NS41LTI3My41IDE1MC0yMjUgMjI1LTE1MCAyNzMuNS01NS41IDI3My41IDU1LjUgMjI1IDE1MCAxNTAgMjI1IDU1LjUgMjczLjVxMCAyMjAtMTI0IDM5OWwzNDMgMzQzcTM3IDM3IDM3IDkweiIvPjwvc3ZnPg==); + } + + .icon-star { + background-image: url(icon_star_dark.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMTc5MiIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMTc5MiAxNzkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0xNzI4IDY0N3EwIDIyLTI2IDQ4bC0zNjMgMzU0IDg2IDUwMHExIDcgMSAyMCAwIDIxLTEwLjUgMzUuNXQtMzAuNSAxNC41cS0xOSAwLTQwLTEybC00NDktMjM2LTQ0OSAyMzZxLTIyIDEyLTQwIDEyLTIxIDAtMzEuNS0xNC41dC0xMC41LTM1LjVxMC02IDItMjBsODYtNTAwLTM2NC0zNTRxLTI1LTI3LTI1LTQ4IDAtMzcgNTYtNDZsNTAyLTczIDIyNS00NTVxMTktNDEgNDktNDF0NDkgNDFsMjI1IDQ1NSA1MDIgNzNxNTYgOSA1NiA0NnoiIGZpbGw9IiNmZmYiLz48L3N2Zz4=); + } + } +} + +.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} + +------=_NextPart_000_0000_01D23618.54EBCBE0-- \ No newline at end of file diff --git a/docs/resources/reports/MarkdownDeltaSummary/DeltaSummary.md b/docs/resources/reports/MarkdownDeltaSummary/DeltaSummary.md new file mode 100644 index 00000000..0dc9d520 --- /dev/null +++ b/docs/resources/reports/MarkdownDeltaSummary/DeltaSummary.md @@ -0,0 +1,16 @@ +# Delta Summary +||||| +|:---|---:|---:|---:| +| Generated on: | 18.01.2023 - 20:04 | | | +| Description | **Previous** | **Current** | **Delta** | +| Coverage date: | 09.02.2022 - 20:50 | 18.01.2023 - 20:04 | | +| **Line coverage:** | 58.4% | 66.4% | 8.0% | +| Covered lines: | 73 | 83 | 10 | +| Coverable lines: | 125 | 125 | 0 | +| Total lines: | 260 | 260 | 0 | +| **Branch coverage:** | 45% | 50% | 5% | +| Covered branches: | 27 | 3 | -24 | +| Total branches: | 60 | 6 | -54 | +| **Method coverage:** | 66.6% | 58.3% | -8.3% | +| Covered methods: | 16 | 14 | -2 | +| Total methods: | 24 | 24 | 0 | diff --git a/docs/resources/reports/MarkdownSummary/Summary.md b/docs/resources/reports/MarkdownSummary/Summary.md new file mode 100644 index 00000000..3bc2acf1 --- /dev/null +++ b/docs/resources/reports/MarkdownSummary/Summary.md @@ -0,0 +1,27 @@ +# Summary +||| +|:---|:---| +| Generated on: | 18.01.2023 - 20:04:00 | +| Parser: | OpenCover | +| Assemblies: | 1 | +| Classes: | 4 | +| Files: | 5 | +| **Line coverage:** | 66.4% (83 of 125) | +| Covered lines: | 83 | +| Uncovered lines: | 42 | +| Coverable lines: | 125 | +| Total lines: | 260 | +| **Branch coverage:** | 50% (3 of 6) | +| Covered branches: | 3 | +| Total branches: | 6 | +| **Method coverage:** | 58.3% (14 of 24) | +| Covered methods: | 14 | +| Total methods: | 24 | + +|**Name**|**Covered**|**Uncovered**|**Coverable**|**Total**|**Line coverage**|**Covered**|**Total**|**Branch coverage**|**Covered**|**Total**|**Method coverage**| +|:---|---:|---:|---:|---:|---:|---:|---:|---:|---:|---:|---:| +|**Sample**|**83**|**42**|**125**|**260**|**66.4%**|**3**|**6**|**50%**|**14**|**24**|**58.3%**| +|Sample.PartialClass|12|10|22|53|54.5%|1|2|50%|3|6|50%| +|Sample.TestClass|12|9|21|38|57.1%|1|2|50%|1|2|50%| +|Test.Program|35|9|44|84|79.5%|0|0||4|6|66.6%| +|Test.TestClass2|24|14|38|85|63.1%|1|2|50%|6|10|60%| diff --git a/docs/resources/reports/MarkdownSummaryGithub/SummaryGithub.md b/docs/resources/reports/MarkdownSummaryGithub/SummaryGithub.md new file mode 100644 index 00000000..001c6321 --- /dev/null +++ b/docs/resources/reports/MarkdownSummaryGithub/SummaryGithub.md @@ -0,0 +1,36 @@ +# Summary +
Summary + +||| +|:---|:---| +| Generated on: | 18.01.2023 - 20:04:09 | +| Parser: | OpenCover | +| Assemblies: | 1 | +| Classes: | 4 | +| Files: | 5 | +| **Line coverage:** | 66.4% (83 of 125) | +| Covered lines: | 83 | +| Uncovered lines: | 42 | +| Coverable lines: | 125 | +| Total lines: | 260 | +| **Branch coverage:** | 50% (3 of 6) | +| Covered branches: | 3 | +| Total branches: | 6 | +| **Method coverage:** | 58.3% (14 of 24) | +| Covered methods: | 14 | +| Total methods: | 24 | + +
+ +## Coverage +
Sample - 66.4% + +|**Name**|**Line**|**Branch**|**Method**| +|:---|---:|---:|---:| +|**Sample**|**66.4%**|**50%**|**58.3%**| +|Sample.PartialClass|54.5%|50%|50%| +|Sample.TestClass|57.1%|50%|50%| +|Test.Program|79.5%||66.6%| +|Test.TestClass2|63.1%|50%|60%| + +
diff --git a/docs/resources/reports/PngChart/CoverageHistory.png b/docs/resources/reports/PngChart/CoverageHistory.png new file mode 100644 index 00000000..414e64b8 Binary files /dev/null and b/docs/resources/reports/PngChart/CoverageHistory.png differ diff --git a/docs/resources/reports/SonarQube/SonarQube.xml b/docs/resources/reports/SonarQube/SonarQube.xml new file mode 100644 index 00000000..34795df9 --- /dev/null +++ b/docs/resources/reports/SonarQube/SonarQube.xml @@ -0,0 +1,138 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/resources/reports/TextDeltaSummary/DeltaSummary.txt b/docs/resources/reports/TextDeltaSummary/DeltaSummary.txt new file mode 100644 index 00000000..1a5f96d2 --- /dev/null +++ b/docs/resources/reports/TextDeltaSummary/DeltaSummary.txt @@ -0,0 +1,14 @@ +Delta Summary + Generated on: 18.01.2023 - 20:04 + Description Previous Current Delta + Coverage date: 09.02.2022 - 20:50 18.01.2023 - 20:04 + Line coverage: 58.4% 66.4% 8.0% + Covered lines: 73 83 10 + Coverable lines: 125 125 0 + Total lines: 260 260 0 + Branch coverage: 45% 50% 5% + Covered branches: 27 3 -24 + Total branches: 60 6 -54 + Method coverage: 66.6% 58.3% -8.3% + Covered methods: 16 14 -2 + Total methods: 24 24 0 diff --git a/docs/resources/reports/TextSummary/Summary.txt b/docs/resources/reports/TextSummary/Summary.txt new file mode 100644 index 00000000..6747b371 --- /dev/null +++ b/docs/resources/reports/TextSummary/Summary.txt @@ -0,0 +1,23 @@ +Summary + Generated on: 18.01.2023 - 20:03:58 + Parser: OpenCover + Assemblies: 1 + Classes: 4 + Files: 5 + Line coverage: 66.4% + Covered lines: 83 + Uncovered lines: 42 + Coverable lines: 125 + Total lines: 260 + Branch coverage: 50% (3 of 6) + Covered branches: 3 + Total branches: 6 + Method coverage: 58.3% (14 of 24) + Covered methods: 14 + Total methods: 24 + +Sample 66.4% + Sample.PartialClass 54.5% + Sample.TestClass 57.1% + Test.Program 79.5% + Test.TestClass2 63.1% diff --git a/docs/resources/reports/Xml/Sample_PartialClass.xml b/docs/resources/reports/Xml/Sample_PartialClass.xml new file mode 100644 index 00000000..e6616662 --- /dev/null +++ b/docs/resources/reports/Xml/Sample_PartialClass.xml @@ -0,0 +1,111 @@ + + + + Sample.PartialClass + Sample + + C:\temp\PartialClass.cs + C:\temp\PartialClass2.cs + + 12 + 10 + 22 + 53 + 54.5 + 1 + 2 + 50 + 3 + 6 + 50 + + + + 1 + 0 + 100 + 100 + 1 + + + 1 + 0 + 0 + 0 + 2 + + + 1 + 0 + 100 + 100 + 1 + + + 1 + 0 + 0 + 0 + 2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/resources/reports/Xml/Sample_Program.xml b/docs/resources/reports/Xml/Sample_Program.xml new file mode 100644 index 00000000..d9295b3b --- /dev/null +++ b/docs/resources/reports/Xml/Sample_Program.xml @@ -0,0 +1,152 @@ + + + + Test.Program + Sample + + C:\temp\Program.cs + + 35 + 9 + 44 + 84 + 79.5 + 0 + 0 + 4 + 6 + 66.6 + + + + 1 + 0 + 88 + 100 + 1.00 + + + 1 + 0 + 0 + 0 + 2 + + + 1 + 0 + 0 + 0 + 2 + + + 3 + 0 + 100 + 100 + 3 + + + 1 + 0 + 100 + 100 + 1 + + + 1 + 0 + 100 + 100 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/resources/reports/Xml/Sample_TestClass.xml b/docs/resources/reports/Xml/Sample_TestClass.xml new file mode 100644 index 00000000..efd7e954 --- /dev/null +++ b/docs/resources/reports/Xml/Sample_TestClass.xml @@ -0,0 +1,79 @@ + + + + Sample.TestClass + Sample + + C:\temp\TestClass.cs + + 12 + 9 + 21 + 38 + 57.1 + 1 + 2 + 50 + 1 + 2 + 50 + + + + 3 + 2 + 75 + 66.67 + 3.14 + + + 1 + 0 + 0 + 0 + 2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/resources/reports/Xml/Sample_TestClass2.xml b/docs/resources/reports/Xml/Sample_TestClass2.xml new file mode 100644 index 00000000..5882ed29 --- /dev/null +++ b/docs/resources/reports/Xml/Sample_TestClass2.xml @@ -0,0 +1,154 @@ + + + + Test.TestClass2 + Sample + + C:\temp\TestClass2.cs + + 24 + 14 + 38 + 85 + 63.1 + 1 + 2 + 50 + 6 + 10 + 60 + + + + 1 + 0 + 0 + 0 + 2 + + + 1 + 0 + 100 + 100 + 1 + + + 1 + 0 + 100 + 100 + 1 + + + 1 + 0 + 0 + 0 + 2 + + + 5 + 2 + 100 + 66.67 + 5 + + + 1 + 0 + 0 + 0 + 2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/resources/reports/Xml/Summary.xml b/docs/resources/reports/Xml/Summary.xml new file mode 100644 index 00000000..42505291 --- /dev/null +++ b/docs/resources/reports/Xml/Summary.xml @@ -0,0 +1,29 @@ + + + + 18.01.2023 - 20:03:53 + OpenCover + 1 + 4 + 5 + 83 + 42 + 125 + 260 + 66.4 + 3 + 6 + 50 + 14 + 24 + 58.3 + + + + + + + + + + \ No newline at end of file diff --git a/docs/resources/reports/XmlSummary/Summary.xml b/docs/resources/reports/XmlSummary/Summary.xml new file mode 100644 index 00000000..c782619a --- /dev/null +++ b/docs/resources/reports/XmlSummary/Summary.xml @@ -0,0 +1,29 @@ + + + + 18.01.2023 - 20:03:55 + OpenCover + 1 + 4 + 5 + 83 + 42 + 125 + 260 + 66.4 + 3 + 6 + 50 + 14 + 24 + 58.3 + + + + + + + + + + \ No newline at end of file diff --git a/docs/resources/reports/lcov/lcov.info b/docs/resources/reports/lcov/lcov.info new file mode 100644 index 00000000..3df46082 --- /dev/null +++ b/docs/resources/reports/lcov/lcov.info @@ -0,0 +1,220 @@ +TN: +SF:C:\temp\PartialClass.cs +FN:21,SomeProperty() +FN:24,SomeProperty(System.Int32) +FN:8,ExecutedMethod_1() +FN:13,UnExecutedMethod_1() +FNDA:0,SomeProperty() +FNDA:1,SomeProperty(System.Int32) +FNDA:1,ExecutedMethod_1() +FNDA:0,UnExecutedMethod_1() +FNF:4 +FNH:2 +BRDA:25,25,0,1 +BRDA:25,25,1,- +BRF:2 +BRH:1 +DA:8,1 +DA:9,1 +DA:10,1 +DA:13,0 +DA:14,0 +DA:15,0 +DA:21,0 +DA:24,1 +DA:25,1 +DA:26,1 +DA:27,1 +DA:28,1 +DA:30,0 +DA:31,0 +DA:32,0 +DA:33,1 +LH:9 +LF:16 +end_of_record +SF:C:\temp\PartialClass2.cs +FN:8,ExecutedMethod_2() +FN:13,UnExecutedMethod_2() +FNDA:1,ExecutedMethod_2() +FNDA:0,UnExecutedMethod_2() +FNF:2 +FNH:1 +BRF:0 +BRH:0 +DA:8,1 +DA:9,1 +DA:10,1 +DA:13,0 +DA:14,0 +DA:15,0 +LH:3 +LF:6 +end_of_record +SF:C:\temp\TestClass.cs +FN:8,SampleFunction() +FN:30,SampleFunction() +FNDA:1,SampleFunction() +FNDA:0,SampleFunction() +FNF:2 +FNH:1 +BRDA:17,17,2,1 +BRDA:17,17,3,- +BRF:2 +BRH:1 +DA:8,1 +DA:9,1 +DA:10,1 +DA:11,1 +DA:12,1 +DA:14,1 +DA:15,1 +DA:17,1 +DA:18,1 +DA:19,1 +DA:20,1 +DA:22,0 +DA:23,0 +DA:24,0 +DA:25,1 +DA:30,0 +DA:31,0 +DA:32,0 +DA:33,0 +DA:34,0 +DA:35,0 +LH:12 +LF:21 +end_of_record +SF:C:\temp\Program.cs +FN:12,Main(System.String[]) +FN:51,CSharp_ExecuteTest1() +FN:57,CSharp_ExecuteTest2() +FN:73,.ctor(System.Net.Http.HttpResponseMessage) +FN:79,SendAsync(System.Net.Http.HttpRequestMessage,System.Threading.CancellationToken) +FN:62,CallAsyncMethod() +FNDA:1,Main(System.String[]) +FNDA:0,CSharp_ExecuteTest1() +FNDA:0,CSharp_ExecuteTest2() +FNDA:1,.ctor(System.Net.Http.HttpResponseMessage) +FNDA:1,SendAsync(System.Net.Http.HttpRequestMessage,System.Threading.CancellationToken) +FNDA:1,CallAsyncMethod() +FNF:6 +FNH:4 +BRF:0 +BRH:0 +DA:12,1 +DA:13,1 +DA:15,1 +DA:16,1 +DA:18,1 +DA:19,1 +DA:20,1 +DA:22,1 +DA:23,1 +DA:25,1 +DA:27,1 +DA:28,1 +DA:30,1 +DA:31,1 +DA:33,1 +DA:35,1 +DA:36,1 +DA:38,1 +DA:41,1 +DA:42,1 +DA:43,1 +DA:44,0 +DA:45,0 +DA:46,0 +DA:47,1 +DA:51,0 +DA:52,0 +DA:53,0 +DA:57,0 +DA:58,0 +DA:59,0 +DA:62,1 +DA:63,1 +DA:64,1 +DA:65,1 +DA:66,1 +DA:67,1 +DA:73,1 +DA:74,1 +DA:75,1 +DA:76,1 +DA:79,1 +DA:80,1 +DA:81,1 +LH:35 +LF:44 +end_of_record +SF:C:\temp\TestClass2.cs +FN:13,ExecutedProperty() +FN:13,ExecutedProperty(System.String) +FN:15,UnExecutedProperty() +FN:15,UnExecutedProperty(System.String) +FN:11,.ctor() +FN:11,.ctor(System.String) +FN:30,ExecutedMethod() +FN:36,UnExecutedMethod() +FN:42,SampleFunction(System.String) +FN:80,DoSomething(System.String,System.String[],System.Guid,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IList`1,System.Decimal,System.Int32,System.Collections.Generic.Dictionary`2,System.Int32&,System.Single,System.Double,System.Boolean,System.Byte,System.Char,System.Object,System.SByte,System.Int16,System.UInt32,System.UInt64,System.UInt16) +FNDA:3,ExecutedProperty() +FNDA:3,ExecutedProperty(System.String) +FNDA:0,UnExecutedProperty() +FNDA:0,UnExecutedProperty(System.String) +FNDA:2,.ctor() +FNDA:2,.ctor(System.String) +FNDA:1,ExecutedMethod() +FNDA:0,UnExecutedMethod() +FNDA:1,SampleFunction(System.String) +FNDA:0,DoSomething(System.String,System.String[],System.Guid,System.Collections.Generic.IEnumerable`1,System.Collections.Generic.IList`1,System.Decimal,System.Int32,System.Collections.Generic.Dictionary`2,System.Int32&,System.Single,System.Double,System.Boolean,System.Byte,System.Char,System.Object,System.SByte,System.Int16,System.UInt32,System.UInt64,System.UInt16) +FNF:10 +FNH:6 +BRDA:54,54,4,1 +BRDA:54,54,5,- +BRF:2 +BRH:1 +DA:11,2 +DA:13,3 +DA:15,0 +DA:17,0 +DA:18,0 +DA:19,0 +DA:20,0 +DA:21,0 +DA:23,2 +DA:24,2 +DA:25,2 +DA:26,2 +DA:27,2 +DA:30,1 +DA:31,1 +DA:32,1 +DA:33,1 +DA:36,0 +DA:37,0 +DA:38,0 +DA:39,0 +DA:42,1 +DA:43,1 +DA:45,5 +DA:47,11 +DA:48,4 +DA:49,4 +DA:50,4 +DA:52,1 +DA:54,4 +DA:55,1 +DA:56,1 +DA:57,1 +DA:58,1 +DA:80,0 +DA:81,0 +DA:82,0 +DA:83,0 +LH:24 +LF:38 +end_of_record diff --git a/docs/scripts.16f9259526a5167e.js b/docs/scripts.16f9259526a5167e.js deleted file mode 100644 index 6d29e50f..00000000 --- a/docs/scripts.16f9259526a5167e.js +++ /dev/null @@ -1 +0,0 @@ -!function(H,q){"object"==typeof exports&&typeof module<"u"?module.exports=q(require("@popperjs/core")):"function"==typeof define&&define.amd?define(["@popperjs/core"],q):(H=typeof globalThis<"u"?globalThis:H||self).bootstrap=q(H.Popper)}(this,function(H){"use strict";function q(s){if(s&&s.__esModule)return s;const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(s)for(const e in s)if("default"!==e){const n=Object.getOwnPropertyDescriptor(s,e);Object.defineProperty(t,e,n.get?n:{enumerable:!0,get:()=>s[e]})}return t.default=s,Object.freeze(t)}const rt=q(H),Tt="transitionend",Wt=s=>{let t=s.getAttribute("data-bs-target");if(!t||"#"===t){let e=s.getAttribute("href");if(!e||!e.includes("#")&&!e.startsWith("."))return null;e.includes("#")&&!e.startsWith("#")&&(e=`#${e.split("#")[1]}`),t=e&&"#"!==e?e.trim():null}return t},Yt=s=>{const t=Wt(s);return t&&document.querySelector(t)?t:null},T=s=>{const t=Wt(s);return t?document.querySelector(t):null},Ft=s=>{s.dispatchEvent(new Event(Tt))},b=s=>!(!s||"object"!=typeof s)&&(typeof s.jquery<"u"&&(s=s[0]),typeof s.nodeType<"u"),S=s=>b(s)?s.jquery?s[0]:s:"string"==typeof s&&s.length>0?document.querySelector(s):null,x=s=>{if(!b(s)||0===s.getClientRects().length)return!1;const t="visible"===getComputedStyle(s).getPropertyValue("visibility"),e=s.closest("details:not([open])");if(!e)return t;if(e!==s){const n=s.closest("summary");if(n&&n.parentNode!==e||null===n)return!1}return t},O=s=>!(s&&s.nodeType===Node.ELEMENT_NODE&&!s.classList.contains("disabled"))||(typeof s.disabled<"u"?s.disabled:s.hasAttribute("disabled")&&"false"!==s.getAttribute("disabled")),jt=s=>{if(!document.documentElement.attachShadow)return null;if("function"==typeof s.getRootNode){const t=s.getRootNode();return t instanceof ShadowRoot?t:null}return s instanceof ShadowRoot?s:s.parentNode?jt(s.parentNode):null},at=()=>{},Bt=()=>window.jQuery&&!document.body.hasAttribute("data-bs-no-jquery")?window.jQuery:null,bt=[],d=()=>"rtl"===document.documentElement.dir,f=s=>{(s=>{"loading"===document.readyState?(bt.length||document.addEventListener("DOMContentLoaded",()=>{for(const t of bt)t()}),bt.push(s)):s()})(()=>{const t=Bt();if(t){const e=s.NAME,n=t.fn[e];t.fn[e]=s.jQueryInterface,t.fn[e].Constructor=s,t.fn[e].noConflict=()=>(t.fn[e]=n,s.jQueryInterface)}})},C=s=>{"function"==typeof s&&s()},Ut=(s,t,e=!0)=>{if(!e)return void C(s);const i=(s=>{if(!s)return 0;let{transitionDuration:t,transitionDelay:e}=window.getComputedStyle(s);const n=Number.parseFloat(t),i=Number.parseFloat(e);return n||i?(t=t.split(",")[0],e=e.split(",")[0],1e3*(Number.parseFloat(t)+Number.parseFloat(e))):0})(t)+5;let a=!1;const r=({target:l})=>{l===t&&(a=!0,t.removeEventListener(Tt,r),C(s))};t.addEventListener(Tt,r),setTimeout(()=>{a||Ft(t)},i)},Ct=(s,t,e,n)=>{const i=s.length;let a=s.indexOf(t);return-1===a?!e&&n?s[i-1]:s[0]:(a+=e?1:-1,n&&(a=(a+i)%i),s[Math.max(0,Math.min(a,i-1))])},qe=/[^.]*(?=\..*)\.|.*/,Qe=/\..*/,Xe=/::\d+$/,Nt={};let Gt=1;const zt={mouseenter:"mouseover",mouseleave:"mouseout"},Ze=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]);function qt(s,t){return t&&`${t}::${Gt++}`||s.uidEvent||Gt++}function Qt(s){const t=qt(s);return s.uidEvent=t,Nt[t]=Nt[t]||{},Nt[t]}function Xt(s,t,e=null){return Object.values(s).find(n=>n.callable===t&&n.delegationSelector===e)}function Zt(s,t,e){const n="string"==typeof t,i=n?e:t||e;let a=te(s);return Ze.has(a)||(a=s),[n,i,a]}function Jt(s,t,e,n,i){if("string"!=typeof t||!s)return;let[a,r,l]=Zt(t,e,n);var zo;t in zt&&(zo=r,r=function(z){if(!z.relatedTarget||z.relatedTarget!==z.delegateTarget&&!z.delegateTarget.contains(z.relatedTarget))return zo.call(this,z)});const u=Qt(s),_=u[l]||(u[l]={}),h=Xt(_,r,a?e:null);if(h)return void(h.oneOff=h.oneOff&&i);const g=qt(r,t.replace(qe,"")),A=a?function ts(s,t,e){return function n(i){const a=s.querySelectorAll(t);for(let{target:r}=i;r&&r!==this;r=r.parentNode)for(const l of a)if(l===r)return yt(i,{delegateTarget:r}),n.oneOff&&o.off(s,i.type,t,e),e.apply(r,[i])}}(s,e,r):function Je(s,t){return function e(n){return yt(n,{delegateTarget:s}),e.oneOff&&o.off(s,n.type,t),t.apply(s,[n])}}(s,r);A.delegationSelector=a?e:null,A.callable=r,A.oneOff=i,A.uidEvent=g,_[g]=A,s.addEventListener(l,A,a)}function vt(s,t,e,n,i){const a=Xt(t[e],n,i);!a||(s.removeEventListener(e,a,Boolean(i)),delete t[e][a.uidEvent])}function es(s,t,e,n){const i=t[e]||{};for(const a of Object.keys(i))if(a.includes(n)){const r=i[a];vt(s,t,e,r.callable,r.delegationSelector)}}function te(s){return s=s.replace(Qe,""),zt[s]||s}const o={on(s,t,e,n){Jt(s,t,e,n,!1)},one(s,t,e,n){Jt(s,t,e,n,!0)},off(s,t,e,n){if("string"!=typeof t||!s)return;const[i,a,r]=Zt(t,e,n),l=r!==t,u=Qt(s),_=u[r]||{},h=t.startsWith(".");if(typeof a<"u"){if(!Object.keys(_).length)return;vt(s,u,r,a,i?e:null)}else{if(h)for(const g of Object.keys(u))es(s,u,g,t.slice(1));for(const g of Object.keys(_)){const A=g.replace(Xe,"");if(!l||t.includes(A)){const ot=_[g];vt(s,u,r,ot.callable,ot.delegationSelector)}}}},trigger(s,t,e){if("string"!=typeof t||!s)return null;const n=Bt();let r=null,l=!0,u=!0,_=!1;t!==te(t)&&n&&(r=n.Event(t,e),n(s).trigger(r),l=!r.isPropagationStopped(),u=!r.isImmediatePropagationStopped(),_=r.isDefaultPrevented());let h=new Event(t,{bubbles:l,cancelable:!0});return h=yt(h,e),_&&h.preventDefault(),u&&s.dispatchEvent(h),h.defaultPrevented&&r&&r.preventDefault(),h}};function yt(s,t){for(const[e,n]of Object.entries(t||{}))try{s[e]=n}catch{Object.defineProperty(s,e,{configurable:!0,get:()=>n})}return s}const D=new Map,St={set(s,t,e){D.has(s)||D.set(s,new Map);const n=D.get(s);n.has(t)||0===n.size?n.set(t,e):console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(n.keys())[0]}.`)},get:(s,t)=>D.has(s)&&D.get(s).get(t)||null,remove(s,t){if(!D.has(s))return;const e=D.get(s);e.delete(t),0===e.size&&D.delete(s)}};function ee(s){if("true"===s)return!0;if("false"===s)return!1;if(s===Number(s).toString())return Number(s);if(""===s||"null"===s)return null;if("string"!=typeof s)return s;try{return JSON.parse(decodeURIComponent(s))}catch{return s}}function Ot(s){return s.replace(/[A-Z]/g,t=>`-${t.toLowerCase()}`)}const N={setDataAttribute(s,t,e){s.setAttribute(`data-bs-${Ot(t)}`,e)},removeDataAttribute(s,t){s.removeAttribute(`data-bs-${Ot(t)}`)},getDataAttributes(s){if(!s)return{};const t={},e=Object.keys(s.dataset).filter(n=>n.startsWith("bs")&&!n.startsWith("bsConfig"));for(const n of e){let i=n.replace(/^bs/,"");i=i.charAt(0).toLowerCase()+i.slice(1,i.length),t[i]=ee(s.dataset[n])}return t},getDataAttribute:(s,t)=>ee(s.getAttribute(`data-bs-${Ot(t)}`))};class X{static get Default(){return{}}static get DefaultType(){return{}}static get NAME(){throw new Error('You have to implement the static method "NAME", for each component!')}_getConfig(t){return t=this._mergeConfigObj(t),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}_configAfterMerge(t){return t}_mergeConfigObj(t,e){const n=b(e)?N.getDataAttribute(e,"config"):{};return{...this.constructor.Default,..."object"==typeof n?n:{},...b(e)?N.getDataAttributes(e):{},..."object"==typeof t?t:{}}}_typeCheckConfig(t,e=this.constructor.DefaultType){for(const n of Object.keys(e)){const i=e[n],a=t[n],r=b(a)?"element":null==(s=a)?`${s}`:Object.prototype.toString.call(s).match(/\s([a-z]+)/i)[1].toLowerCase();if(!new RegExp(i).test(r))throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${n}" provided type "${r}" but expected type "${i}".`)}var s}}class p extends X{constructor(t,e){super(),(t=S(t))&&(this._element=t,this._config=this._getConfig(e),St.set(this._element,this.constructor.DATA_KEY,this))}dispose(){St.remove(this._element,this.constructor.DATA_KEY),o.off(this._element,this.constructor.EVENT_KEY);for(const t of Object.getOwnPropertyNames(this))this[t]=null}_queueCallback(t,e,n=!0){Ut(t,e,n)}_getConfig(t){return t=this._mergeConfigObj(t,this._element),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}static getInstance(t){return St.get(S(t),this.DATA_KEY)}static getOrCreateInstance(t,e={}){return this.getInstance(t)||new this(t,"object"==typeof e?e:null)}static get VERSION(){return"5.2.3"}static get DATA_KEY(){return`bs.${this.NAME}`}static get EVENT_KEY(){return`.${this.DATA_KEY}`}static eventName(t){return`${t}${this.EVENT_KEY}`}}const ct=(s,t="hide")=>{const n=s.NAME;o.on(document,`click.dismiss${s.EVENT_KEY}`,`[data-bs-dismiss="${n}"]`,function(i){if(["A","AREA"].includes(this.tagName)&&i.preventDefault(),O(this))return;const a=T(this)||this.closest(`.${n}`);s.getOrCreateInstance(a)[t]()})},se=".bs.alert",is=`close${se}`,os=`closed${se}`;class Z extends p{static get NAME(){return"alert"}close(){if(o.trigger(this._element,is).defaultPrevented)return;this._element.classList.remove("show");const e=this._element.classList.contains("fade");this._queueCallback(()=>this._destroyElement(),this._element,e)}_destroyElement(){this._element.remove(),o.trigger(this._element,os),this.dispose()}static jQueryInterface(t){return this.each(function(){const e=Z.getOrCreateInstance(this);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t](this)}})}}ct(Z,"close"),f(Z);const ne='[data-bs-toggle="button"]';class J extends p{static get NAME(){return"button"}toggle(){this._element.setAttribute("aria-pressed",this._element.classList.toggle("active"))}static jQueryInterface(t){return this.each(function(){const e=J.getOrCreateInstance(this);"toggle"===t&&e[t]()})}}o.on(document,"click.bs.button.data-api",ne,s=>{s.preventDefault();const t=s.target.closest(ne);J.getOrCreateInstance(t).toggle()}),f(J);const c={find:(s,t=document.documentElement)=>[].concat(...Element.prototype.querySelectorAll.call(t,s)),findOne:(s,t=document.documentElement)=>Element.prototype.querySelector.call(t,s),children:(s,t)=>[].concat(...s.children).filter(e=>e.matches(t)),parents(s,t){const e=[];let n=s.parentNode.closest(t);for(;n;)e.push(n),n=n.parentNode.closest(t);return e},prev(s,t){let e=s.previousElementSibling;for(;e;){if(e.matches(t))return[e];e=e.previousElementSibling}return[]},next(s,t){let e=s.nextElementSibling;for(;e;){if(e.matches(t))return[e];e=e.nextElementSibling}return[]},focusableChildren(s){const t=["a","button","input","textarea","select","details","[tabindex]",'[contenteditable="true"]'].map(e=>`${e}:not([tabindex^="-"])`).join(",");return this.find(t,s).filter(e=>!O(e)&&x(e))}},K=".bs.swipe",fs=`touchstart${K}`,ps=`touchmove${K}`,Es=`touchend${K}`,ms=`pointerdown${K}`,gs=`pointerup${K}`,Ns={endCallback:null,leftCallback:null,rightCallback:null},vs={endCallback:"(function|null)",leftCallback:"(function|null)",rightCallback:"(function|null)"};class lt extends X{constructor(t,e){super(),this._element=t,t&<.isSupported()&&(this._config=this._getConfig(e),this._deltaX=0,this._supportPointerEvents=Boolean(window.PointerEvent),this._initEvents())}static get Default(){return Ns}static get DefaultType(){return vs}static get NAME(){return"swipe"}dispose(){o.off(this._element,K)}_start(t){this._supportPointerEvents?this._eventIsPointerPenTouch(t)&&(this._deltaX=t.clientX):this._deltaX=t.touches[0].clientX}_end(t){this._eventIsPointerPenTouch(t)&&(this._deltaX=t.clientX-this._deltaX),this._handleSwipe(),C(this._config.endCallback)}_move(t){this._deltaX=t.touches&&t.touches.length>1?0:t.touches[0].clientX-this._deltaX}_handleSwipe(){const t=Math.abs(this._deltaX);if(t<=40)return;const e=t/this._deltaX;this._deltaX=0,e&&C(e>0?this._config.rightCallback:this._config.leftCallback)}_initEvents(){this._supportPointerEvents?(o.on(this._element,ms,t=>this._start(t)),o.on(this._element,gs,t=>this._end(t)),this._element.classList.add("pointer-event")):(o.on(this._element,fs,t=>this._start(t)),o.on(this._element,ps,t=>this._move(t)),o.on(this._element,Es,t=>this._end(t)))}_eventIsPointerPenTouch(t){return this._supportPointerEvents&&("pen"===t.pointerType||"touch"===t.pointerType)}static isSupported(){return"ontouchstart"in document.documentElement||navigator.maxTouchPoints>0}}const w=".bs.carousel",ie=".data-api",tt="next",W="prev",Y="left",ht="right",ws=`slide${w}`,Dt=`slid${w}`,Ls=`keydown${w}`,$s=`mouseenter${w}`,Is=`mouseleave${w}`,Ms=`dragstart${w}`,Rs=`load${w}${ie}`,Ps=`click${w}${ie}`,oe="carousel",ut="active",Us={ArrowLeft:ht,ArrowRight:Y},Gs={interval:5e3,keyboard:!0,pause:"hover",ride:!1,touch:!0,wrap:!0},zs={interval:"(number|boolean)",keyboard:"boolean",pause:"(string|boolean)",ride:"(boolean|string)",touch:"boolean",wrap:"boolean"};class F extends p{constructor(t,e){super(t,e),this._interval=null,this._activeElement=null,this._isSliding=!1,this.touchTimeout=null,this._swipeHelper=null,this._indicatorsElement=c.findOne(".carousel-indicators",this._element),this._addEventListeners(),this._config.ride===oe&&this.cycle()}static get Default(){return Gs}static get DefaultType(){return zs}static get NAME(){return"carousel"}next(){this._slide(tt)}nextWhenVisible(){!document.hidden&&x(this._element)&&this.next()}prev(){this._slide(W)}pause(){this._isSliding&&Ft(this._element),this._clearInterval()}cycle(){this._clearInterval(),this._updateInterval(),this._interval=setInterval(()=>this.nextWhenVisible(),this._config.interval)}_maybeEnableCycle(){if(this._config.ride){if(this._isSliding)return void o.one(this._element,Dt,()=>this.cycle());this.cycle()}}to(t){const e=this._getItems();if(t>e.length-1||t<0)return;if(this._isSliding)return void o.one(this._element,Dt,()=>this.to(t));const n=this._getItemIndex(this._getActive());n!==t&&this._slide(t>n?tt:W,e[t])}dispose(){this._swipeHelper&&this._swipeHelper.dispose(),super.dispose()}_configAfterMerge(t){return t.defaultInterval=t.interval,t}_addEventListeners(){this._config.keyboard&&o.on(this._element,Ls,t=>this._keydown(t)),"hover"===this._config.pause&&(o.on(this._element,$s,()=>this.pause()),o.on(this._element,Is,()=>this._maybeEnableCycle())),this._config.touch&<.isSupported()&&this._addTouchEventListeners()}_addTouchEventListeners(){for(const n of c.find(".carousel-item img",this._element))o.on(n,Ms,i=>i.preventDefault());this._swipeHelper=new lt(this._element,{leftCallback:()=>this._slide(this._directionToOrder(Y)),rightCallback:()=>this._slide(this._directionToOrder(ht)),endCallback:()=>{"hover"===this._config.pause&&(this.pause(),this.touchTimeout&&clearTimeout(this.touchTimeout),this.touchTimeout=setTimeout(()=>this._maybeEnableCycle(),500+this._config.interval))}})}_keydown(t){if(/input|textarea/i.test(t.target.tagName))return;const e=Us[t.key];e&&(t.preventDefault(),this._slide(this._directionToOrder(e)))}_getItemIndex(t){return this._getItems().indexOf(t)}_setActiveIndicatorElement(t){if(!this._indicatorsElement)return;const e=c.findOne(".active",this._indicatorsElement);e.classList.remove(ut),e.removeAttribute("aria-current");const n=c.findOne(`[data-bs-slide-to="${t}"]`,this._indicatorsElement);n&&(n.classList.add(ut),n.setAttribute("aria-current","true"))}_updateInterval(){const t=this._activeElement||this._getActive();if(!t)return;const e=Number.parseInt(t.getAttribute("data-bs-interval"),10);this._config.interval=e||this._config.defaultInterval}_slide(t,e=null){if(this._isSliding)return;const n=this._getActive(),i=t===tt,a=e||Ct(this._getItems(),n,i,this._config.wrap);if(a===n)return;const r=this._getItemIndex(a),l=ot=>o.trigger(this._element,ot,{relatedTarget:a,direction:this._orderToDirection(t),from:this._getItemIndex(n),to:r});if(l(ws).defaultPrevented||!n||!a)return;const _=Boolean(this._interval);this.pause(),this._isSliding=!0,this._setActiveIndicatorElement(r),this._activeElement=a;const h=i?"carousel-item-start":"carousel-item-end",g=i?"carousel-item-next":"carousel-item-prev";a.classList.add(g),n.classList.add(h),a.classList.add(h),this._queueCallback(()=>{a.classList.remove(h,g),a.classList.add(ut),n.classList.remove(ut,g,h),this._isSliding=!1,l(Dt)},n,this._isAnimated()),_&&this.cycle()}_isAnimated(){return this._element.classList.contains("slide")}_getActive(){return c.findOne(".active.carousel-item",this._element)}_getItems(){return c.find(".carousel-item",this._element)}_clearInterval(){this._interval&&(clearInterval(this._interval),this._interval=null)}_directionToOrder(t){return d()?t===Y?W:tt:t===Y?tt:W}_orderToDirection(t){return d()?t===W?Y:ht:t===W?ht:Y}static jQueryInterface(t){return this.each(function(){const e=F.getOrCreateInstance(this,t);if("number"!=typeof t){if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t]()}}else e.to(t)})}}o.on(document,Ps,"[data-bs-slide], [data-bs-slide-to]",function(s){const t=T(this);if(!t||!t.classList.contains(oe))return;s.preventDefault();const e=F.getOrCreateInstance(t),n=this.getAttribute("data-bs-slide-to");return n?(e.to(n),void e._maybeEnableCycle()):"next"===N.getDataAttribute(this,"slide")?(e.next(),void e._maybeEnableCycle()):(e.prev(),void e._maybeEnableCycle())}),o.on(window,Rs,()=>{const s=c.find('[data-bs-ride="carousel"]');for(const t of s)F.getOrCreateInstance(t)}),f(F);const et=".bs.collapse",Xs=`show${et}`,Zs=`shown${et}`,Js=`hide${et}`,tn=`hidden${et}`,en=`click${et}.data-api`,wt="show",j="collapse",_t="collapsing",nn=`:scope .${j} .${j}`,Lt='[data-bs-toggle="collapse"]',ln={parent:null,toggle:!0},hn={parent:"(null|element)",toggle:"boolean"};class B extends p{constructor(t,e){super(t,e),this._isTransitioning=!1,this._triggerArray=[];const n=c.find(Lt);for(const i of n){const a=Yt(i),r=c.find(a).filter(l=>l===this._element);null!==a&&r.length&&this._triggerArray.push(i)}this._initializeChildren(),this._config.parent||this._addAriaAndCollapsedClass(this._triggerArray,this._isShown()),this._config.toggle&&this.toggle()}static get Default(){return ln}static get DefaultType(){return hn}static get NAME(){return"collapse"}toggle(){this._isShown()?this.hide():this.show()}show(){if(this._isTransitioning||this._isShown())return;let t=[];if(this._config.parent&&(t=this._getFirstLevelChildren(".collapse.show, .collapse.collapsing").filter(l=>l!==this._element).map(l=>B.getOrCreateInstance(l,{toggle:!1}))),t.length&&t[0]._isTransitioning||o.trigger(this._element,Xs).defaultPrevented)return;for(const l of t)l.hide();const n=this._getDimension();this._element.classList.remove(j),this._element.classList.add(_t),this._element.style[n]=0,this._addAriaAndCollapsedClass(this._triggerArray,!0),this._isTransitioning=!0;const r=`scroll${n[0].toUpperCase()+n.slice(1)}`;this._queueCallback(()=>{this._isTransitioning=!1,this._element.classList.remove(_t),this._element.classList.add(j,wt),this._element.style[n]="",o.trigger(this._element,Zs)},this._element,!0),this._element.style[n]=`${this._element[r]}px`}hide(){if(this._isTransitioning||!this._isShown()||o.trigger(this._element,Js).defaultPrevented)return;const e=this._getDimension();this._element.style[e]=`${this._element.getBoundingClientRect()[e]}px`,this._element.classList.add(_t),this._element.classList.remove(j,wt);for(const i of this._triggerArray){const a=T(i);a&&!this._isShown(a)&&this._addAriaAndCollapsedClass([i],!1)}this._isTransitioning=!0,this._element.style[e]="",this._queueCallback(()=>{this._isTransitioning=!1,this._element.classList.remove(_t),this._element.classList.add(j),o.trigger(this._element,tn)},this._element,!0)}_isShown(t=this._element){return t.classList.contains(wt)}_configAfterMerge(t){return t.toggle=Boolean(t.toggle),t.parent=S(t.parent),t}_getDimension(){return this._element.classList.contains("collapse-horizontal")?"width":"height"}_initializeChildren(){if(!this._config.parent)return;const t=this._getFirstLevelChildren(Lt);for(const e of t){const n=T(e);n&&this._addAriaAndCollapsedClass([e],this._isShown(n))}}_getFirstLevelChildren(t){const e=c.find(nn,this._config.parent);return c.find(t,this._config.parent).filter(n=>!e.includes(n))}_addAriaAndCollapsedClass(t,e){if(t.length)for(const n of t)n.classList.toggle("collapsed",!e),n.setAttribute("aria-expanded",e)}static jQueryInterface(t){const e={};return"string"==typeof t&&/show|hide/.test(t)&&(e.toggle=!1),this.each(function(){const n=B.getOrCreateInstance(this,e);if("string"==typeof t){if(typeof n[t]>"u")throw new TypeError(`No method named "${t}"`);n[t]()}})}}o.on(document,en,Lt,function(s){("A"===s.target.tagName||s.delegateTarget&&"A"===s.delegateTarget.tagName)&&s.preventDefault();const t=Yt(this),e=c.find(t);for(const n of e)B.getOrCreateInstance(n,{toggle:!1}).toggle()}),f(B);const ce="dropdown",$=".bs.dropdown",$t=".data-api",_n="ArrowUp",he="ArrowDown",fn=`hide${$}`,pn=`hidden${$}`,En=`show${$}`,mn=`shown${$}`,ue=`click${$}${$t}`,_e=`keydown${$}${$t}`,gn=`keyup${$}${$t}`,U="show",I='[data-bs-toggle="dropdown"]:not(.disabled):not(:disabled)',vn=`${I}.show`,dt=".dropdown-menu",Dn=d()?"top-end":"top-start",wn=d()?"top-start":"top-end",Ln=d()?"bottom-end":"bottom-start",$n=d()?"bottom-start":"bottom-end",In=d()?"left-start":"right-start",Mn=d()?"right-start":"left-start",kn={autoClose:!0,boundary:"clippingParents",display:"dynamic",offset:[0,2],popperConfig:null,reference:"toggle"},Vn={autoClose:"(boolean|string)",boundary:"(string|element)",display:"string",offset:"(array|string|function)",popperConfig:"(null|object|function)",reference:"(string|element|object)"};class E extends p{constructor(t,e){super(t,e),this._popper=null,this._parent=this._element.parentNode,this._menu=c.next(this._element,dt)[0]||c.prev(this._element,dt)[0]||c.findOne(dt,this._parent),this._inNavbar=this._detectNavbar()}static get Default(){return kn}static get DefaultType(){return Vn}static get NAME(){return ce}toggle(){return this._isShown()?this.hide():this.show()}show(){if(O(this._element)||this._isShown())return;const t={relatedTarget:this._element};if(!o.trigger(this._element,En,t).defaultPrevented){if(this._createPopper(),"ontouchstart"in document.documentElement&&!this._parent.closest(".navbar-nav"))for(const n of[].concat(...document.body.children))o.on(n,"mouseover",at);this._element.focus(),this._element.setAttribute("aria-expanded",!0),this._menu.classList.add(U),this._element.classList.add(U),o.trigger(this._element,mn,t)}}hide(){!O(this._element)&&this._isShown()&&this._completeHide({relatedTarget:this._element})}dispose(){this._popper&&this._popper.destroy(),super.dispose()}update(){this._inNavbar=this._detectNavbar(),this._popper&&this._popper.update()}_completeHide(t){if(!o.trigger(this._element,fn,t).defaultPrevented){if("ontouchstart"in document.documentElement)for(const n of[].concat(...document.body.children))o.off(n,"mouseover",at);this._popper&&this._popper.destroy(),this._menu.classList.remove(U),this._element.classList.remove(U),this._element.setAttribute("aria-expanded","false"),N.removeDataAttribute(this._menu,"popper"),o.trigger(this._element,pn,t)}}_getConfig(t){if("object"==typeof(t=super._getConfig(t)).reference&&!b(t.reference)&&"function"!=typeof t.reference.getBoundingClientRect)throw new TypeError(`${ce.toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`);return t}_createPopper(){if(typeof rt>"u")throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org)");let t=this._element;"parent"===this._config.reference?t=this._parent:b(this._config.reference)?t=S(this._config.reference):"object"==typeof this._config.reference&&(t=this._config.reference);const e=this._getPopperConfig();this._popper=rt.createPopper(t,this._menu,e)}_isShown(){return this._menu.classList.contains(U)}_getPlacement(){const t=this._parent;if(t.classList.contains("dropend"))return In;if(t.classList.contains("dropstart"))return Mn;if(t.classList.contains("dropup-center"))return"top";if(t.classList.contains("dropdown-center"))return"bottom";const e="end"===getComputedStyle(this._menu).getPropertyValue("--bs-position").trim();return t.classList.contains("dropup")?e?wn:Dn:e?$n:Ln}_detectNavbar(){return null!==this._element.closest(".navbar")}_getOffset(){const{offset:t}=this._config;return"string"==typeof t?t.split(",").map(e=>Number.parseInt(e,10)):"function"==typeof t?e=>t(e,this._element):t}_getPopperConfig(){const t={placement:this._getPlacement(),modifiers:[{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"offset",options:{offset:this._getOffset()}}]};return(this._inNavbar||"static"===this._config.display)&&(N.setDataAttribute(this._menu,"popper","static"),t.modifiers=[{name:"applyStyles",enabled:!1}]),{...t,..."function"==typeof this._config.popperConfig?this._config.popperConfig(t):this._config.popperConfig}}_selectMenuItem({key:t,target:e}){const n=c.find(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",this._menu).filter(i=>x(i));!n.length||Ct(n,e,t===he,!n.includes(e)).focus()}static jQueryInterface(t){return this.each(function(){const e=E.getOrCreateInstance(this,t);if("string"==typeof t){if(typeof e[t]>"u")throw new TypeError(`No method named "${t}"`);e[t]()}})}static clearMenus(t){if(2===t.button||"keyup"===t.type&&"Tab"!==t.key)return;const e=c.find(vn);for(const n of e){const i=E.getInstance(n);if(!i||!1===i._config.autoClose)continue;const a=t.composedPath(),r=a.includes(i._menu);if(a.includes(i._element)||"inside"===i._config.autoClose&&!r||"outside"===i._config.autoClose&&r||i._menu.contains(t.target)&&("keyup"===t.type&&"Tab"===t.key||/input|select|option|textarea|form/i.test(t.target.tagName)))continue;const l={relatedTarget:i._element};"click"===t.type&&(l.clickEvent=t),i._completeHide(l)}}static dataApiKeydownHandler(t){const e=/input|textarea/i.test(t.target.tagName),n="Escape"===t.key,i=[_n,he].includes(t.key);if(!i&&!n||e&&!n)return;t.preventDefault();const a=this.matches(I)?this:c.prev(this,I)[0]||c.next(this,I)[0]||c.findOne(I,t.delegateTarget.parentNode),r=E.getOrCreateInstance(a);if(i)return t.stopPropagation(),r.show(),void r._selectMenuItem(t);r._isShown()&&(t.stopPropagation(),r.hide(),a.focus())}}o.on(document,_e,I,E.dataApiKeydownHandler),o.on(document,_e,dt,E.dataApiKeydownHandler),o.on(document,ue,E.clearMenus),o.on(document,gn,E.clearMenus),o.on(document,ue,I,function(s){s.preventDefault(),E.getOrCreateInstance(this).toggle()}),f(E);const de=".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",fe=".sticky-top",ft="padding-right",pe="margin-right";class It{constructor(){this._element=document.body}getWidth(){const t=document.documentElement.clientWidth;return Math.abs(window.innerWidth-t)}hide(){const t=this.getWidth();this._disableOverFlow(),this._setElementAttributes(this._element,ft,e=>e+t),this._setElementAttributes(de,ft,e=>e+t),this._setElementAttributes(fe,pe,e=>e-t)}reset(){this._resetElementAttributes(this._element,"overflow"),this._resetElementAttributes(this._element,ft),this._resetElementAttributes(de,ft),this._resetElementAttributes(fe,pe)}isOverflowing(){return this.getWidth()>0}_disableOverFlow(){this._saveInitialAttribute(this._element,"overflow"),this._element.style.overflow="hidden"}_setElementAttributes(t,e,n){const i=this.getWidth();this._applyManipulationCallback(t,r=>{if(r!==this._element&&window.innerWidth>r.clientWidth+i)return;this._saveInitialAttribute(r,e);const l=window.getComputedStyle(r).getPropertyValue(e);r.style.setProperty(e,`${n(Number.parseFloat(l))}px`)})}_saveInitialAttribute(t,e){const n=t.style.getPropertyValue(e);n&&N.setDataAttribute(t,e,n)}_resetElementAttributes(t,e){this._applyManipulationCallback(t,i=>{const a=N.getDataAttribute(i,e);null!==a?(N.removeDataAttribute(i,e),i.style.setProperty(e,a)):i.style.removeProperty(e)})}_applyManipulationCallback(t,e){if(b(t))e(t);else for(const n of c.find(t,this._element))e(n)}}const Ee="backdrop",ge=`mousedown.bs.${Ee}`,xn={className:"modal-backdrop",clickCallback:null,isAnimated:!1,isVisible:!0,rootElement:"body"},Kn={className:"string",clickCallback:"(function|null)",isAnimated:"boolean",isVisible:"boolean",rootElement:"(element|string)"};class Ae extends X{constructor(t){super(),this._config=this._getConfig(t),this._isAppended=!1,this._element=null}static get Default(){return xn}static get DefaultType(){return Kn}static get NAME(){return Ee}show(t){if(!this._config.isVisible)return void C(t);this._append();this._getElement().classList.add("show"),this._emulateAnimation(()=>{C(t)})}hide(t){this._config.isVisible?(this._getElement().classList.remove("show"),this._emulateAnimation(()=>{this.dispose(),C(t)})):C(t)}dispose(){!this._isAppended||(o.off(this._element,ge),this._element.remove(),this._isAppended=!1)}_getElement(){if(!this._element){const t=document.createElement("div");t.className=this._config.className,this._config.isAnimated&&t.classList.add("fade"),this._element=t}return this._element}_configAfterMerge(t){return t.rootElement=S(t.rootElement),t}_append(){if(this._isAppended)return;const t=this._getElement();this._config.rootElement.append(t),o.on(t,ge,()=>{C(this._config.clickCallback)}),this._isAppended=!0}_emulateAnimation(t){Ut(t,this._getElement(),this._config.isAnimated)}}const pt=".bs.focustrap",Yn=`focusin${pt}`,Fn=`keydown.tab${pt}`,Te="backward",Un={autofocus:!0,trapElement:null},Gn={autofocus:"boolean",trapElement:"element"};class be extends X{constructor(t){super(),this._config=this._getConfig(t),this._isActive=!1,this._lastTabNavDirection=null}static get Default(){return Un}static get DefaultType(){return Gn}static get NAME(){return"focustrap"}activate(){this._isActive||(this._config.autofocus&&this._config.trapElement.focus(),o.off(document,pt),o.on(document,Yn,t=>this._handleFocusin(t)),o.on(document,Fn,t=>this._handleKeydown(t)),this._isActive=!0)}deactivate(){!this._isActive||(this._isActive=!1,o.off(document,pt))}_handleFocusin(t){const{trapElement:e}=this._config;if(t.target===document||t.target===e||e.contains(t.target))return;const n=c.focusableChildren(e);0===n.length?e.focus():this._lastTabNavDirection===Te?n[n.length-1].focus():n[0].focus()}_handleKeydown(t){"Tab"===t.key&&(this._lastTabNavDirection=t.shiftKey?Te:"forward")}}const m=".bs.modal",Xn=`hide${m}`,Zn=`hidePrevented${m}`,Ce=`hidden${m}`,Ne=`show${m}`,Jn=`shown${m}`,ti=`resize${m}`,ei=`click.dismiss${m}`,si=`mousedown.dismiss${m}`,ni=`keydown.dismiss${m}`,ii=`click${m}.data-api`,ve="modal-open",Mt="modal-static",hi={backdrop:!0,focus:!0,keyboard:!0},ui={backdrop:"(boolean|string)",focus:"boolean",keyboard:"boolean"};class M extends p{constructor(t,e){super(t,e),this._dialog=c.findOne(".modal-dialog",this._element),this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._isShown=!1,this._isTransitioning=!1,this._scrollBar=new It,this._addEventListeners()}static get Default(){return hi}static get DefaultType(){return ui}static get NAME(){return"modal"}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||this._isTransitioning||o.trigger(this._element,Ne,{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._isTransitioning=!0,this._scrollBar.hide(),document.body.classList.add(ve),this._adjustDialog(),this._backdrop.show(()=>this._showElement(t)))}hide(){!this._isShown||this._isTransitioning||o.trigger(this._element,Xn).defaultPrevented||(this._isShown=!1,this._isTransitioning=!0,this._focustrap.deactivate(),this._element.classList.remove("show"),this._queueCallback(()=>this._hideModal(),this._element,this._isAnimated()))}dispose(){for(const t of[window,this._dialog])o.off(t,m);this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}handleUpdate(){this._adjustDialog()}_initializeBackDrop(){return new Ae({isVisible:Boolean(this._config.backdrop),isAnimated:this._isAnimated()})}_initializeFocusTrap(){return new be({trapElement:this._element})}_showElement(t){document.body.contains(this._element)||document.body.append(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.scrollTop=0;const e=c.findOne(".modal-body",this._dialog);e&&(e.scrollTop=0),this._element.classList.add("show"),this._queueCallback(()=>{this._config.focus&&this._focustrap.activate(),this._isTransitioning=!1,o.trigger(this._element,Jn,{relatedTarget:t})},this._dialog,this._isAnimated())}_addEventListeners(){o.on(this._element,ni,t=>{if("Escape"===t.key){if(this._config.keyboard)return t.preventDefault(),void this.hide();this._triggerBackdropTransition()}}),o.on(window,ti,()=>{this._isShown&&!this._isTransitioning&&this._adjustDialog()}),o.on(this._element,si,t=>{o.one(this._element,ei,e=>{if(this._element===t.target&&this._element===e.target){if("static"===this._config.backdrop)return void this._triggerBackdropTransition();this._config.backdrop&&this.hide()}})})}_hideModal(){this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._backdrop.hide(()=>{document.body.classList.remove(ve),this._resetAdjustments(),this._scrollBar.reset(),o.trigger(this._element,Ce)})}_isAnimated(){return this._element.classList.contains("fade")}_triggerBackdropTransition(){if(o.trigger(this._element,Zn).defaultPrevented)return;const e=this._element.scrollHeight>document.documentElement.clientHeight,n=this._element.style.overflowY;"hidden"===n||this._element.classList.contains(Mt)||(e||(this._element.style.overflowY="hidden"),this._element.classList.add(Mt),this._queueCallback(()=>{this._element.classList.remove(Mt),this._queueCallback(()=>{this._element.style.overflowY=n},this._dialog)},this._dialog),this._element.focus())}_adjustDialog(){const t=this._element.scrollHeight>document.documentElement.clientHeight,e=this._scrollBar.getWidth(),n=e>0;if(n&&!t){const i=d()?"paddingLeft":"paddingRight";this._element.style[i]=`${e}px`}if(!n&&t){const i=d()?"paddingRight":"paddingLeft";this._element.style[i]=`${e}px`}}_resetAdjustments(){this._element.style.paddingLeft="",this._element.style.paddingRight=""}static jQueryInterface(t,e){return this.each(function(){const n=M.getOrCreateInstance(this,t);if("string"==typeof t){if(typeof n[t]>"u")throw new TypeError(`No method named "${t}"`);n[t](e)}})}}o.on(document,ii,'[data-bs-toggle="modal"]',function(s){const t=T(this);["A","AREA"].includes(this.tagName)&&s.preventDefault(),o.one(t,Ne,i=>{i.defaultPrevented||o.one(t,Ce,()=>{x(this)&&this.focus()})});const e=c.findOne(".modal.show");e&&M.getInstance(e).hide(),M.getOrCreateInstance(t).toggle(this)}),ct(M),f(M);const v=".bs.offcanvas",Se=".data-api",di=`load${v}${Se}`,De="showing",Le=".offcanvas.show",Ei=`show${v}`,mi=`shown${v}`,gi=`hide${v}`,$e=`hidePrevented${v}`,Ie=`hidden${v}`,Ai=`resize${v}`,Ti=`click${v}${Se}`,bi=`keydown.dismiss${v}`,Ni={backdrop:!0,keyboard:!0,scroll:!1},vi={backdrop:"(boolean|string)",keyboard:"boolean",scroll:"boolean"};class y extends p{constructor(t,e){super(t,e),this._isShown=!1,this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._addEventListeners()}static get Default(){return Ni}static get DefaultType(){return vi}static get NAME(){return"offcanvas"}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||o.trigger(this._element,Ei,{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._backdrop.show(),this._config.scroll||(new It).hide(),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.classList.add(De),this._queueCallback(()=>{(!this._config.scroll||this._config.backdrop)&&this._focustrap.activate(),this._element.classList.add("show"),this._element.classList.remove(De),o.trigger(this._element,mi,{relatedTarget:t})},this._element,!0))}hide(){this._isShown&&!o.trigger(this._element,gi).defaultPrevented&&(this._focustrap.deactivate(),this._element.blur(),this._isShown=!1,this._element.classList.add("hiding"),this._backdrop.hide(),this._queueCallback(()=>{this._element.classList.remove("show","hiding"),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._config.scroll||(new It).reset(),o.trigger(this._element,Ie)},this._element,!0))}dispose(){this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}_initializeBackDrop(){const e=Boolean(this._config.backdrop);return new Ae({className:"offcanvas-backdrop",isVisible:e,isAnimated:!0,rootElement:this._element.parentNode,clickCallback:e?()=>{"static"!==this._config.backdrop?this.hide():o.trigger(this._element,$e)}:null})}_initializeFocusTrap(){return new be({trapElement:this._element})}_addEventListeners(){o.on(this._element,bi,t=>{if("Escape"===t.key){if(!this._config.keyboard)return void o.trigger(this._element,$e);this.hide()}})}static jQueryInterface(t){return this.each(function(){const e=y.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t](this)}})}}o.on(document,Ti,'[data-bs-toggle="offcanvas"]',function(s){const t=T(this);if(["A","AREA"].includes(this.tagName)&&s.preventDefault(),O(this))return;o.one(t,Ie,()=>{x(this)&&this.focus()});const e=c.findOne(Le);e&&e!==t&&y.getInstance(e).hide(),y.getOrCreateInstance(t).toggle(this)}),o.on(window,di,()=>{for(const s of c.find(Le))y.getOrCreateInstance(s).show()}),o.on(window,Ai,()=>{for(const s of c.find("[aria-modal][class*=show][class*=offcanvas-]"))"fixed"!==getComputedStyle(s).position&&y.getOrCreateInstance(s).hide()}),ct(y),f(y);const yi=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),Oi=/^(?:(?:https?|mailto|ftp|tel|file|sms):|[^#&/:?]*(?:[#/?]|$))/i,Di=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i,wi=(s,t)=>{const e=s.nodeName.toLowerCase();return t.includes(e)?!yi.has(e)||Boolean(Oi.test(s.nodeValue)||Di.test(s.nodeValue)):t.filter(n=>n instanceof RegExp).some(n=>n.test(e))},Me={"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},Ii={allowList:Me,content:{},extraClass:"",html:!1,sanitize:!0,sanitizeFn:null,template:"
"},Mi={allowList:"object",content:"object",extraClass:"(string|function)",html:"boolean",sanitize:"boolean",sanitizeFn:"(null|function)",template:"string"},Ri={entry:"(string|element|function|null)",selector:"(string|element)"};class Pi extends X{constructor(t){super(),this._config=this._getConfig(t)}static get Default(){return Ii}static get DefaultType(){return Mi}static get NAME(){return"TemplateFactory"}getContent(){return Object.values(this._config.content).map(t=>this._resolvePossibleFunction(t)).filter(Boolean)}hasContent(){return this.getContent().length>0}changeContent(t){return this._checkContent(t),this._config.content={...this._config.content,...t},this}toHtml(){const t=document.createElement("div");t.innerHTML=this._maybeSanitize(this._config.template);for(const[i,a]of Object.entries(this._config.content))this._setContent(t,a,i);const e=t.children[0],n=this._resolvePossibleFunction(this._config.extraClass);return n&&e.classList.add(...n.split(" ")),e}_typeCheckConfig(t){super._typeCheckConfig(t),this._checkContent(t.content)}_checkContent(t){for(const[e,n]of Object.entries(t))super._typeCheckConfig({selector:e,entry:n},Ri)}_setContent(t,e,n){const i=c.findOne(n,t);if(i){if(!(e=this._resolvePossibleFunction(e)))return void i.remove();if(b(e))return void this._putElementInTemplate(S(e),i);if(this._config.html)return void(i.innerHTML=this._maybeSanitize(e));i.textContent=e}}_maybeSanitize(t){return this._config.sanitize?function Li(s,t,e){if(!s.length)return s;if(e&&"function"==typeof e)return e(s);const i=(new window.DOMParser).parseFromString(s,"text/html"),a=[].concat(...i.body.querySelectorAll("*"));for(const r of a){const l=r.nodeName.toLowerCase();if(!Object.keys(t).includes(l)){r.remove();continue}const u=[].concat(...r.attributes),_=[].concat(t["*"]||[],t[l]||[]);for(const h of u)wi(h,_)||r.removeAttribute(h.nodeName)}return i.body.innerHTML}(t,this._config.allowList,this._config.sanitizeFn):t}_resolvePossibleFunction(t){return"function"==typeof t?t(this):t}_putElementInTemplate(t,e){if(this._config.html)return e.innerHTML="",void e.append(t);e.textContent=t.textContent}}const Vi=new Set(["sanitize","allowList","sanitizeFn"]),Rt="fade",Et="show",Pe="hide.bs.modal",st="hover",Pt="focus",Zi={AUTO:"auto",TOP:"top",RIGHT:d()?"left":"right",BOTTOM:"bottom",LEFT:d()?"right":"left"},Ji={allowList:Me,animation:!0,boundary:"clippingParents",container:!1,customClass:"",delay:0,fallbackPlacements:["top","right","bottom","left"],html:!1,offset:[0,0],placement:"top",popperConfig:null,sanitize:!0,sanitizeFn:null,selector:!1,template:'',title:"",trigger:"hover focus"},to={allowList:"object",animation:"boolean",boundary:"(string|element)",container:"(string|element|boolean)",customClass:"(string|function)",delay:"(number|object)",fallbackPlacements:"array",html:"boolean",offset:"(array|string|function)",placement:"(string|function)",popperConfig:"(null|object|function)",sanitize:"boolean",sanitizeFn:"(null|function)",selector:"(string|boolean)",template:"string",title:"(string|element|function)",trigger:"string"};class R extends p{constructor(t,e){if(typeof rt>"u")throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");super(t,e),this._isEnabled=!0,this._timeout=0,this._isHovered=null,this._activeTrigger={},this._popper=null,this._templateFactory=null,this._newContent=null,this.tip=null,this._setListeners(),this._config.selector||this._fixTitle()}static get Default(){return Ji}static get DefaultType(){return to}static get NAME(){return"tooltip"}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(){if(this._isEnabled){if(this._activeTrigger.click=!this._activeTrigger.click,this._isShown())return void this._leave();this._enter()}}dispose(){clearTimeout(this._timeout),o.off(this._element.closest(".modal"),Pe,this._hideModalHandler),this._element.getAttribute("data-bs-original-title")&&this._element.setAttribute("title",this._element.getAttribute("data-bs-original-title")),this._disposePopper(),super.dispose()}show(){if("none"===this._element.style.display)throw new Error("Please use show on visible elements");if(!this._isWithContent()||!this._isEnabled)return;const t=o.trigger(this._element,this.constructor.eventName("show")),n=(jt(this._element)||this._element.ownerDocument.documentElement).contains(this._element);if(t.defaultPrevented||!n)return;this._disposePopper();const i=this._getTipElement();this._element.setAttribute("aria-describedby",i.getAttribute("id"));const{container:a}=this._config;if(this._element.ownerDocument.documentElement.contains(this.tip)||(a.append(i),o.trigger(this._element,this.constructor.eventName("inserted"))),this._popper=this._createPopper(i),i.classList.add(Et),"ontouchstart"in document.documentElement)for(const l of[].concat(...document.body.children))o.on(l,"mouseover",at);this._queueCallback(()=>{o.trigger(this._element,this.constructor.eventName("shown")),!1===this._isHovered&&this._leave(),this._isHovered=!1},this.tip,this._isAnimated())}hide(){if(this._isShown()&&!o.trigger(this._element,this.constructor.eventName("hide")).defaultPrevented){if(this._getTipElement().classList.remove(Et),"ontouchstart"in document.documentElement)for(const i of[].concat(...document.body.children))o.off(i,"mouseover",at);this._activeTrigger.click=!1,this._activeTrigger[Pt]=!1,this._activeTrigger[st]=!1,this._isHovered=null,this._queueCallback(()=>{this._isWithActiveTrigger()||(this._isHovered||this._disposePopper(),this._element.removeAttribute("aria-describedby"),o.trigger(this._element,this.constructor.eventName("hidden")))},this.tip,this._isAnimated())}}update(){this._popper&&this._popper.update()}_isWithContent(){return Boolean(this._getTitle())}_getTipElement(){return this.tip||(this.tip=this._createTipElement(this._newContent||this._getContentForTemplate())),this.tip}_createTipElement(t){const e=this._getTemplateFactory(t).toHtml();if(!e)return null;e.classList.remove(Rt,Et),e.classList.add(`bs-${this.constructor.NAME}-auto`);const n=(s=>{do{s+=Math.floor(1e6*Math.random())}while(document.getElementById(s));return s})(this.constructor.NAME).toString();return e.setAttribute("id",n),this._isAnimated()&&e.classList.add(Rt),e}setContent(t){this._newContent=t,this._isShown()&&(this._disposePopper(),this.show())}_getTemplateFactory(t){return this._templateFactory?this._templateFactory.changeContent(t):this._templateFactory=new Pi({...this._config,content:t,extraClass:this._resolvePossibleFunction(this._config.customClass)}),this._templateFactory}_getContentForTemplate(){return{".tooltip-inner":this._getTitle()}}_getTitle(){return this._resolvePossibleFunction(this._config.title)||this._element.getAttribute("data-bs-original-title")}_initializeOnDelegatedTarget(t){return this.constructor.getOrCreateInstance(t.delegateTarget,this._getDelegateConfig())}_isAnimated(){return this._config.animation||this.tip&&this.tip.classList.contains(Rt)}_isShown(){return this.tip&&this.tip.classList.contains(Et)}_createPopper(t){const e="function"==typeof this._config.placement?this._config.placement.call(this,t,this._element):this._config.placement,n=Zi[e.toUpperCase()];return rt.createPopper(this._element,t,this._getPopperConfig(n))}_getOffset(){const{offset:t}=this._config;return"string"==typeof t?t.split(",").map(e=>Number.parseInt(e,10)):"function"==typeof t?e=>t(e,this._element):t}_resolvePossibleFunction(t){return"function"==typeof t?t.call(this._element):t}_getPopperConfig(t){const e={placement:t,modifiers:[{name:"flip",options:{fallbackPlacements:this._config.fallbackPlacements}},{name:"offset",options:{offset:this._getOffset()}},{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"arrow",options:{element:`.${this.constructor.NAME}-arrow`}},{name:"preSetPlacement",enabled:!0,phase:"beforeMain",fn:n=>{this._getTipElement().setAttribute("data-popper-placement",n.state.placement)}}]};return{...e,..."function"==typeof this._config.popperConfig?this._config.popperConfig(e):this._config.popperConfig}}_setListeners(){const t=this._config.trigger.split(" ");for(const e of t)if("click"===e)o.on(this._element,this.constructor.eventName("click"),this._config.selector,n=>{this._initializeOnDelegatedTarget(n).toggle()});else if("manual"!==e){const n=this.constructor.eventName(e===st?"mouseenter":"focusin"),i=this.constructor.eventName(e===st?"mouseleave":"focusout");o.on(this._element,n,this._config.selector,a=>{const r=this._initializeOnDelegatedTarget(a);r._activeTrigger["focusin"===a.type?Pt:st]=!0,r._enter()}),o.on(this._element,i,this._config.selector,a=>{const r=this._initializeOnDelegatedTarget(a);r._activeTrigger["focusout"===a.type?Pt:st]=r._element.contains(a.relatedTarget),r._leave()})}this._hideModalHandler=()=>{this._element&&this.hide()},o.on(this._element.closest(".modal"),Pe,this._hideModalHandler)}_fixTitle(){const t=this._element.getAttribute("title");!t||(!this._element.getAttribute("aria-label")&&!this._element.textContent.trim()&&this._element.setAttribute("aria-label",t),this._element.setAttribute("data-bs-original-title",t),this._element.removeAttribute("title"))}_enter(){this._isShown()||this._isHovered?this._isHovered=!0:(this._isHovered=!0,this._setTimeout(()=>{this._isHovered&&this.show()},this._config.delay.show))}_leave(){this._isWithActiveTrigger()||(this._isHovered=!1,this._setTimeout(()=>{this._isHovered||this.hide()},this._config.delay.hide))}_setTimeout(t,e){clearTimeout(this._timeout),this._timeout=setTimeout(t,e)}_isWithActiveTrigger(){return Object.values(this._activeTrigger).includes(!0)}_getConfig(t){const e=N.getDataAttributes(this._element);for(const n of Object.keys(e))Vi.has(n)&&delete e[n];return t={...e,..."object"==typeof t&&t?t:{}},t=this._mergeConfigObj(t),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}_configAfterMerge(t){return t.container=!1===t.container?document.body:S(t.container),"number"==typeof t.delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),t}_getDelegateConfig(){const t={};for(const e in this._config)this.constructor.Default[e]!==this._config[e]&&(t[e]=this._config[e]);return t.selector=!1,t.trigger="manual",t}_disposePopper(){this._popper&&(this._popper.destroy(),this._popper=null),this.tip&&(this.tip.remove(),this.tip=null)}static jQueryInterface(t){return this.each(function(){const e=R.getOrCreateInstance(this,t);if("string"==typeof t){if(typeof e[t]>"u")throw new TypeError(`No method named "${t}"`);e[t]()}})}}f(R);const io={...R.Default,content:"",offset:[0,8],placement:"right",template:'',trigger:"click"},oo={...R.DefaultType,content:"(null|string|element|function)"};class mt extends R{static get Default(){return io}static get DefaultType(){return oo}static get NAME(){return"popover"}_isWithContent(){return this._getTitle()||this._getContent()}_getContentForTemplate(){return{".popover-header":this._getTitle(),".popover-body":this._getContent()}}_getContent(){return this._resolvePossibleFunction(this._config.content)}static jQueryInterface(t){return this.each(function(){const e=mt.getOrCreateInstance(this,t);if("string"==typeof t){if(typeof e[t]>"u")throw new TypeError(`No method named "${t}"`);e[t]()}})}}f(mt);const kt=".bs.scrollspy",co=`activate${kt}`,ke=`click${kt}`,lo=`load${kt}.data-api`,G="active",Vt="[href]",Ve=".nav-link",fo=`${Ve}, .nav-item > ${Ve}, .list-group-item`,mo={offset:null,rootMargin:"0px 0px -25%",smoothScroll:!1,target:null,threshold:[.1,.5,1]},go={offset:"(number|null)",rootMargin:"string",smoothScroll:"boolean",target:"element",threshold:"array"};class nt extends p{constructor(t,e){super(t,e),this._targetLinks=new Map,this._observableSections=new Map,this._rootElement="visible"===getComputedStyle(this._element).overflowY?null:this._element,this._activeTarget=null,this._observer=null,this._previousScrollData={visibleEntryTop:0,parentScrollTop:0},this.refresh()}static get Default(){return mo}static get DefaultType(){return go}static get NAME(){return"scrollspy"}refresh(){this._initializeTargetsAndObservables(),this._maybeEnableSmoothScroll(),this._observer?this._observer.disconnect():this._observer=this._getNewObserver();for(const t of this._observableSections.values())this._observer.observe(t)}dispose(){this._observer.disconnect(),super.dispose()}_configAfterMerge(t){return t.target=S(t.target)||document.body,t.rootMargin=t.offset?`${t.offset}px 0px -30%`:t.rootMargin,"string"==typeof t.threshold&&(t.threshold=t.threshold.split(",").map(e=>Number.parseFloat(e))),t}_maybeEnableSmoothScroll(){!this._config.smoothScroll||(o.off(this._config.target,ke),o.on(this._config.target,ke,Vt,t=>{const e=this._observableSections.get(t.target.hash);if(e){t.preventDefault();const n=this._rootElement||window,i=e.offsetTop-this._element.offsetTop;if(n.scrollTo)return void n.scrollTo({top:i,behavior:"smooth"});n.scrollTop=i}}))}_getNewObserver(){return new IntersectionObserver(e=>this._observerCallback(e),{root:this._rootElement,threshold:this._config.threshold,rootMargin:this._config.rootMargin})}_observerCallback(t){const e=r=>this._targetLinks.get(`#${r.target.id}`),n=r=>{this._previousScrollData.visibleEntryTop=r.target.offsetTop,this._process(e(r))},i=(this._rootElement||document.documentElement).scrollTop,a=i>=this._previousScrollData.parentScrollTop;this._previousScrollData.parentScrollTop=i;for(const r of t){if(!r.isIntersecting){this._activeTarget=null,this._clearActiveClass(e(r));continue}const l=r.target.offsetTop>=this._previousScrollData.visibleEntryTop;if(a&&l){if(n(r),!i)return}else!a&&!l&&n(r)}}_initializeTargetsAndObservables(){this._targetLinks=new Map,this._observableSections=new Map;const t=c.find(Vt,this._config.target);for(const e of t){if(!e.hash||O(e))continue;const n=c.findOne(e.hash,this._element);x(n)&&(this._targetLinks.set(e.hash,e),this._observableSections.set(e.hash,n))}}_process(t){this._activeTarget!==t&&(this._clearActiveClass(this._config.target),this._activeTarget=t,t.classList.add(G),this._activateParents(t),o.trigger(this._element,co,{relatedTarget:t}))}_activateParents(t){if(t.classList.contains("dropdown-item"))c.findOne(".dropdown-toggle",t.closest(".dropdown")).classList.add(G);else for(const e of c.parents(t,".nav, .list-group"))for(const n of c.prev(e,fo))n.classList.add(G)}_clearActiveClass(t){t.classList.remove(G);const e=c.find(`${Vt}.${G}`,t);for(const n of e)n.classList.remove(G)}static jQueryInterface(t){return this.each(function(){const e=nt.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t]()}})}}o.on(window,lo,()=>{for(const s of c.find('[data-bs-spy="scroll"]'))nt.getOrCreateInstance(s)}),f(nt);const P=".bs.tab",To=`hide${P}`,bo=`hidden${P}`,Co=`show${P}`,No=`shown${P}`,vo=`click${P}`,yo=`keydown${P}`,So=`load${P}`,Oo="ArrowLeft",He="ArrowRight",Do="ArrowUp",xe="ArrowDown",k="active",Ht="show",xt=":not(.dropdown-toggle)",We='[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]',Kt=`.nav-link${xt}, .list-group-item${xt}, [role="tab"]${xt}, ${We}`,Po=`.${k}[data-bs-toggle="tab"], .${k}[data-bs-toggle="pill"], .${k}[data-bs-toggle="list"]`;class V extends p{constructor(t){super(t),this._parent=this._element.closest('.list-group, .nav, [role="tablist"]'),this._parent&&(this._setInitialAttributes(this._parent,this._getChildren()),o.on(this._element,yo,e=>this._keydown(e)))}static get NAME(){return"tab"}show(){const t=this._element;if(this._elemIsActive(t))return;const e=this._getActiveElem(),n=e?o.trigger(e,To,{relatedTarget:t}):null;o.trigger(t,Co,{relatedTarget:e}).defaultPrevented||n&&n.defaultPrevented||(this._deactivate(e,t),this._activate(t,e))}_activate(t,e){t&&(t.classList.add(k),this._activate(T(t)),this._queueCallback(()=>{"tab"===t.getAttribute("role")?(t.removeAttribute("tabindex"),t.setAttribute("aria-selected",!0),this._toggleDropDown(t,!0),o.trigger(t,No,{relatedTarget:e})):t.classList.add(Ht)},t,t.classList.contains("fade")))}_deactivate(t,e){t&&(t.classList.remove(k),t.blur(),this._deactivate(T(t)),this._queueCallback(()=>{"tab"===t.getAttribute("role")?(t.setAttribute("aria-selected",!1),t.setAttribute("tabindex","-1"),this._toggleDropDown(t,!1),o.trigger(t,bo,{relatedTarget:e})):t.classList.remove(Ht)},t,t.classList.contains("fade")))}_keydown(t){if(![Oo,He,Do,xe].includes(t.key))return;t.stopPropagation(),t.preventDefault();const e=[He,xe].includes(t.key),n=Ct(this._getChildren().filter(i=>!O(i)),t.target,e,!0);n&&(n.focus({preventScroll:!0}),V.getOrCreateInstance(n).show())}_getChildren(){return c.find(Kt,this._parent)}_getActiveElem(){return this._getChildren().find(t=>this._elemIsActive(t))||null}_setInitialAttributes(t,e){this._setAttributeIfNotExists(t,"role","tablist");for(const n of e)this._setInitialAttributesOnChild(n)}_setInitialAttributesOnChild(t){t=this._getInnerElement(t);const e=this._elemIsActive(t),n=this._getOuterElement(t);t.setAttribute("aria-selected",e),n!==t&&this._setAttributeIfNotExists(n,"role","presentation"),e||t.setAttribute("tabindex","-1"),this._setAttributeIfNotExists(t,"role","tab"),this._setInitialAttributesOnTargetPanel(t)}_setInitialAttributesOnTargetPanel(t){const e=T(t);!e||(this._setAttributeIfNotExists(e,"role","tabpanel"),t.id&&this._setAttributeIfNotExists(e,"aria-labelledby",`#${t.id}`))}_toggleDropDown(t,e){const n=this._getOuterElement(t);if(!n.classList.contains("dropdown"))return;const i=(a,r)=>{const l=c.findOne(a,n);l&&l.classList.toggle(r,e)};i(".dropdown-toggle",k),i(".dropdown-menu",Ht),n.setAttribute("aria-expanded",e)}_setAttributeIfNotExists(t,e,n){t.hasAttribute(e)||t.setAttribute(e,n)}_elemIsActive(t){return t.classList.contains(k)}_getInnerElement(t){return t.matches(Kt)?t:c.findOne(Kt,t)}_getOuterElement(t){return t.closest(".nav-item, .list-group-item")||t}static jQueryInterface(t){return this.each(function(){const e=V.getOrCreateInstance(this);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t]()}})}}o.on(document,vo,We,function(s){["A","AREA"].includes(this.tagName)&&s.preventDefault(),!O(this)&&V.getOrCreateInstance(this).show()}),o.on(window,So,()=>{for(const s of c.find(Po))V.getOrCreateInstance(s)}),f(V);const L=".bs.toast",Vo=`mouseover${L}`,Ho=`mouseout${L}`,xo=`focusin${L}`,Ko=`focusout${L}`,Wo=`hide${L}`,Yo=`hidden${L}`,Fo=`show${L}`,jo=`shown${L}`,gt="show",At="showing",Uo={animation:"boolean",autohide:"boolean",delay:"number"},Go={animation:!0,autohide:!0,delay:5e3};class it extends p{constructor(t,e){super(t,e),this._timeout=null,this._hasMouseInteraction=!1,this._hasKeyboardInteraction=!1,this._setListeners()}static get Default(){return Go}static get DefaultType(){return Uo}static get NAME(){return"toast"}show(){o.trigger(this._element,Fo).defaultPrevented||(this._clearTimeout(),this._config.animation&&this._element.classList.add("fade"),this._element.classList.remove("hide"),this._element.classList.add(gt,At),this._queueCallback(()=>{this._element.classList.remove(At),o.trigger(this._element,jo),this._maybeScheduleHide()},this._element,this._config.animation))}hide(){this.isShown()&&!o.trigger(this._element,Wo).defaultPrevented&&(this._element.classList.add(At),this._queueCallback(()=>{this._element.classList.add("hide"),this._element.classList.remove(At,gt),o.trigger(this._element,Yo)},this._element,this._config.animation))}dispose(){this._clearTimeout(),this.isShown()&&this._element.classList.remove(gt),super.dispose()}isShown(){return this._element.classList.contains(gt)}_maybeScheduleHide(){!this._config.autohide||this._hasMouseInteraction||this._hasKeyboardInteraction||(this._timeout=setTimeout(()=>{this.hide()},this._config.delay))}_onInteraction(t,e){switch(t.type){case"mouseover":case"mouseout":this._hasMouseInteraction=e;break;case"focusin":case"focusout":this._hasKeyboardInteraction=e}if(e)return void this._clearTimeout();const n=t.relatedTarget;this._element===n||this._element.contains(n)||this._maybeScheduleHide()}_setListeners(){o.on(this._element,Vo,t=>this._onInteraction(t,!0)),o.on(this._element,Ho,t=>this._onInteraction(t,!1)),o.on(this._element,xo,t=>this._onInteraction(t,!0)),o.on(this._element,Ko,t=>this._onInteraction(t,!1))}_clearTimeout(){clearTimeout(this._timeout),this._timeout=null}static jQueryInterface(t){return this.each(function(){const e=it.getOrCreateInstance(this,t);if("string"==typeof t){if(typeof e[t]>"u")throw new TypeError(`No method named "${t}"`);e[t](this)}})}}return ct(it),f(it),{Alert:Z,Button:J,Carousel:F,Collapse:B,Dropdown:E,Modal:M,Offcanvas:y,Popover:mt,ScrollSpy:nt,Tab:V,Toast:it,Tooltip:R}}); \ No newline at end of file diff --git a/docs/scripts.2dd2975b13cf5b4a.js b/docs/scripts.2dd2975b13cf5b4a.js new file mode 100644 index 00000000..627d16bc --- /dev/null +++ b/docs/scripts.2dd2975b13cf5b4a.js @@ -0,0 +1 @@ +!function(H,q){"object"==typeof exports&&typeof module<"u"?module.exports=q(require("@popperjs/core")):"function"==typeof define&&define.amd?define(["@popperjs/core"],q):(H=typeof globalThis<"u"?globalThis:H||self).bootstrap=q(H.Popper)}(this,function(H){"use strict";function q(s){if(s&&s.__esModule)return s;const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(s)for(const e in s)if("default"!==e){const n=Object.getOwnPropertyDescriptor(s,e);Object.defineProperty(t,e,n.get?n:{enumerable:!0,get:()=>s[e]})}return t.default=s,Object.freeze(t)}const rt=q(H),Tt="transitionend",Wt=s=>{let t=s.getAttribute("data-bs-target");if(!t||"#"===t){let e=s.getAttribute("href");if(!e||!e.includes("#")&&!e.startsWith("."))return null;e.includes("#")&&!e.startsWith("#")&&(e=`#${e.split("#")[1]}`),t=e&&"#"!==e?e.trim():null}return t},Yt=s=>{const t=Wt(s);return t&&document.querySelector(t)?t:null},T=s=>{const t=Wt(s);return t?document.querySelector(t):null},Ft=s=>{s.dispatchEvent(new Event(Tt))},b=s=>!(!s||"object"!=typeof s)&&(typeof s.jquery<"u"&&(s=s[0]),typeof s.nodeType<"u"),S=s=>b(s)?s.jquery?s[0]:s:"string"==typeof s&&s.length>0?document.querySelector(s):null,x=s=>{if(!b(s)||0===s.getClientRects().length)return!1;const t="visible"===getComputedStyle(s).getPropertyValue("visibility"),e=s.closest("details:not([open])");if(!e)return t;if(e!==s){const n=s.closest("summary");if(n&&n.parentNode!==e||null===n)return!1}return t},O=s=>!(s&&s.nodeType===Node.ELEMENT_NODE&&!s.classList.contains("disabled"))||(typeof s.disabled<"u"?s.disabled:s.hasAttribute("disabled")&&"false"!==s.getAttribute("disabled")),jt=s=>{if(!document.documentElement.attachShadow)return null;if("function"==typeof s.getRootNode){const t=s.getRootNode();return t instanceof ShadowRoot?t:null}return s instanceof ShadowRoot?s:s.parentNode?jt(s.parentNode):null},at=()=>{},Bt=()=>window.jQuery&&!document.body.hasAttribute("data-bs-no-jquery")?window.jQuery:null,bt=[],d=()=>"rtl"===document.documentElement.dir,f=s=>{(s=>{"loading"===document.readyState?(bt.length||document.addEventListener("DOMContentLoaded",()=>{for(const t of bt)t()}),bt.push(s)):s()})(()=>{const t=Bt();if(t){const e=s.NAME,n=t.fn[e];t.fn[e]=s.jQueryInterface,t.fn[e].Constructor=s,t.fn[e].noConflict=()=>(t.fn[e]=n,s.jQueryInterface)}})},C=s=>{"function"==typeof s&&s()},Ut=(s,t,e=!0)=>{if(!e)return void C(s);const i=(s=>{if(!s)return 0;let{transitionDuration:t,transitionDelay:e}=window.getComputedStyle(s);const n=Number.parseFloat(t),i=Number.parseFloat(e);return n||i?(t=t.split(",")[0],e=e.split(",")[0],1e3*(Number.parseFloat(t)+Number.parseFloat(e))):0})(t)+5;let a=!1;const r=({target:l})=>{l===t&&(a=!0,t.removeEventListener(Tt,r),C(s))};t.addEventListener(Tt,r),setTimeout(()=>{a||Ft(t)},i)},Ct=(s,t,e,n)=>{const i=s.length;let a=s.indexOf(t);return-1===a?!e&&n?s[i-1]:s[0]:(a+=e?1:-1,n&&(a=(a+i)%i),s[Math.max(0,Math.min(a,i-1))])},qe=/[^.]*(?=\..*)\.|.*/,Qe=/\..*/,Xe=/::\d+$/,Nt={};let Gt=1;const zt={mouseenter:"mouseover",mouseleave:"mouseout"},Ze=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]);function qt(s,t){return t&&`${t}::${Gt++}`||s.uidEvent||Gt++}function Qt(s){const t=qt(s);return s.uidEvent=t,Nt[t]=Nt[t]||{},Nt[t]}function Xt(s,t,e=null){return Object.values(s).find(n=>n.callable===t&&n.delegationSelector===e)}function Zt(s,t,e){const n="string"==typeof t,i=n?e:t||e;let a=te(s);return Ze.has(a)||(a=s),[n,i,a]}function Jt(s,t,e,n,i){if("string"!=typeof t||!s)return;let[a,r,l]=Zt(t,e,n);var zo;t in zt&&(zo=r,r=function(z){if(!z.relatedTarget||z.relatedTarget!==z.delegateTarget&&!z.delegateTarget.contains(z.relatedTarget))return zo.call(this,z)});const u=Qt(s),_=u[l]||(u[l]={}),h=Xt(_,r,a?e:null);if(h)return void(h.oneOff=h.oneOff&&i);const g=qt(r,t.replace(qe,"")),A=a?function ts(s,t,e){return function n(i){const a=s.querySelectorAll(t);for(let{target:r}=i;r&&r!==this;r=r.parentNode)for(const l of a)if(l===r)return yt(i,{delegateTarget:r}),n.oneOff&&o.off(s,i.type,t,e),e.apply(r,[i])}}(s,e,r):function Je(s,t){return function e(n){return yt(n,{delegateTarget:s}),e.oneOff&&o.off(s,n.type,t),t.apply(s,[n])}}(s,r);A.delegationSelector=a?e:null,A.callable=r,A.oneOff=i,A.uidEvent=g,_[g]=A,s.addEventListener(l,A,a)}function vt(s,t,e,n,i){const a=Xt(t[e],n,i);a&&(s.removeEventListener(e,a,Boolean(i)),delete t[e][a.uidEvent])}function es(s,t,e,n){const i=t[e]||{};for(const a of Object.keys(i))if(a.includes(n)){const r=i[a];vt(s,t,e,r.callable,r.delegationSelector)}}function te(s){return s=s.replace(Qe,""),zt[s]||s}const o={on(s,t,e,n){Jt(s,t,e,n,!1)},one(s,t,e,n){Jt(s,t,e,n,!0)},off(s,t,e,n){if("string"!=typeof t||!s)return;const[i,a,r]=Zt(t,e,n),l=r!==t,u=Qt(s),_=u[r]||{},h=t.startsWith(".");if(typeof a<"u"){if(!Object.keys(_).length)return;vt(s,u,r,a,i?e:null)}else{if(h)for(const g of Object.keys(u))es(s,u,g,t.slice(1));for(const g of Object.keys(_)){const A=g.replace(Xe,"");if(!l||t.includes(A)){const ot=_[g];vt(s,u,r,ot.callable,ot.delegationSelector)}}}},trigger(s,t,e){if("string"!=typeof t||!s)return null;const n=Bt();let r=null,l=!0,u=!0,_=!1;t!==te(t)&&n&&(r=n.Event(t,e),n(s).trigger(r),l=!r.isPropagationStopped(),u=!r.isImmediatePropagationStopped(),_=r.isDefaultPrevented());let h=new Event(t,{bubbles:l,cancelable:!0});return h=yt(h,e),_&&h.preventDefault(),u&&s.dispatchEvent(h),h.defaultPrevented&&r&&r.preventDefault(),h}};function yt(s,t){for(const[e,n]of Object.entries(t||{}))try{s[e]=n}catch{Object.defineProperty(s,e,{configurable:!0,get:()=>n})}return s}const D=new Map,St={set(s,t,e){D.has(s)||D.set(s,new Map);const n=D.get(s);n.has(t)||0===n.size?n.set(t,e):console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(n.keys())[0]}.`)},get:(s,t)=>D.has(s)&&D.get(s).get(t)||null,remove(s,t){if(!D.has(s))return;const e=D.get(s);e.delete(t),0===e.size&&D.delete(s)}};function ee(s){if("true"===s)return!0;if("false"===s)return!1;if(s===Number(s).toString())return Number(s);if(""===s||"null"===s)return null;if("string"!=typeof s)return s;try{return JSON.parse(decodeURIComponent(s))}catch{return s}}function Ot(s){return s.replace(/[A-Z]/g,t=>`-${t.toLowerCase()}`)}const N={setDataAttribute(s,t,e){s.setAttribute(`data-bs-${Ot(t)}`,e)},removeDataAttribute(s,t){s.removeAttribute(`data-bs-${Ot(t)}`)},getDataAttributes(s){if(!s)return{};const t={},e=Object.keys(s.dataset).filter(n=>n.startsWith("bs")&&!n.startsWith("bsConfig"));for(const n of e){let i=n.replace(/^bs/,"");i=i.charAt(0).toLowerCase()+i.slice(1,i.length),t[i]=ee(s.dataset[n])}return t},getDataAttribute:(s,t)=>ee(s.getAttribute(`data-bs-${Ot(t)}`))};class X{static get Default(){return{}}static get DefaultType(){return{}}static get NAME(){throw new Error('You have to implement the static method "NAME", for each component!')}_getConfig(t){return t=this._mergeConfigObj(t),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}_configAfterMerge(t){return t}_mergeConfigObj(t,e){const n=b(e)?N.getDataAttribute(e,"config"):{};return{...this.constructor.Default,..."object"==typeof n?n:{},...b(e)?N.getDataAttributes(e):{},..."object"==typeof t?t:{}}}_typeCheckConfig(t,e=this.constructor.DefaultType){for(const n of Object.keys(e)){const i=e[n],a=t[n],r=b(a)?"element":null==(s=a)?`${s}`:Object.prototype.toString.call(s).match(/\s([a-z]+)/i)[1].toLowerCase();if(!new RegExp(i).test(r))throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${n}" provided type "${r}" but expected type "${i}".`)}var s}}class p extends X{constructor(t,e){super(),(t=S(t))&&(this._element=t,this._config=this._getConfig(e),St.set(this._element,this.constructor.DATA_KEY,this))}dispose(){St.remove(this._element,this.constructor.DATA_KEY),o.off(this._element,this.constructor.EVENT_KEY);for(const t of Object.getOwnPropertyNames(this))this[t]=null}_queueCallback(t,e,n=!0){Ut(t,e,n)}_getConfig(t){return t=this._mergeConfigObj(t,this._element),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}static getInstance(t){return St.get(S(t),this.DATA_KEY)}static getOrCreateInstance(t,e={}){return this.getInstance(t)||new this(t,"object"==typeof e?e:null)}static get VERSION(){return"5.2.3"}static get DATA_KEY(){return`bs.${this.NAME}`}static get EVENT_KEY(){return`.${this.DATA_KEY}`}static eventName(t){return`${t}${this.EVENT_KEY}`}}const ct=(s,t="hide")=>{const n=s.NAME;o.on(document,`click.dismiss${s.EVENT_KEY}`,`[data-bs-dismiss="${n}"]`,function(i){if(["A","AREA"].includes(this.tagName)&&i.preventDefault(),O(this))return;const a=T(this)||this.closest(`.${n}`);s.getOrCreateInstance(a)[t]()})},se=".bs.alert",is=`close${se}`,os=`closed${se}`;class Z extends p{static get NAME(){return"alert"}close(){if(o.trigger(this._element,is).defaultPrevented)return;this._element.classList.remove("show");const e=this._element.classList.contains("fade");this._queueCallback(()=>this._destroyElement(),this._element,e)}_destroyElement(){this._element.remove(),o.trigger(this._element,os),this.dispose()}static jQueryInterface(t){return this.each(function(){const e=Z.getOrCreateInstance(this);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t](this)}})}}ct(Z,"close"),f(Z);const ne='[data-bs-toggle="button"]';class J extends p{static get NAME(){return"button"}toggle(){this._element.setAttribute("aria-pressed",this._element.classList.toggle("active"))}static jQueryInterface(t){return this.each(function(){const e=J.getOrCreateInstance(this);"toggle"===t&&e[t]()})}}o.on(document,"click.bs.button.data-api",ne,s=>{s.preventDefault();const t=s.target.closest(ne);J.getOrCreateInstance(t).toggle()}),f(J);const c={find:(s,t=document.documentElement)=>[].concat(...Element.prototype.querySelectorAll.call(t,s)),findOne:(s,t=document.documentElement)=>Element.prototype.querySelector.call(t,s),children:(s,t)=>[].concat(...s.children).filter(e=>e.matches(t)),parents(s,t){const e=[];let n=s.parentNode.closest(t);for(;n;)e.push(n),n=n.parentNode.closest(t);return e},prev(s,t){let e=s.previousElementSibling;for(;e;){if(e.matches(t))return[e];e=e.previousElementSibling}return[]},next(s,t){let e=s.nextElementSibling;for(;e;){if(e.matches(t))return[e];e=e.nextElementSibling}return[]},focusableChildren(s){const t=["a","button","input","textarea","select","details","[tabindex]",'[contenteditable="true"]'].map(e=>`${e}:not([tabindex^="-"])`).join(",");return this.find(t,s).filter(e=>!O(e)&&x(e))}},K=".bs.swipe",fs=`touchstart${K}`,ps=`touchmove${K}`,Es=`touchend${K}`,ms=`pointerdown${K}`,gs=`pointerup${K}`,Ns={endCallback:null,leftCallback:null,rightCallback:null},vs={endCallback:"(function|null)",leftCallback:"(function|null)",rightCallback:"(function|null)"};class lt extends X{constructor(t,e){super(),this._element=t,t&<.isSupported()&&(this._config=this._getConfig(e),this._deltaX=0,this._supportPointerEvents=Boolean(window.PointerEvent),this._initEvents())}static get Default(){return Ns}static get DefaultType(){return vs}static get NAME(){return"swipe"}dispose(){o.off(this._element,K)}_start(t){this._supportPointerEvents?this._eventIsPointerPenTouch(t)&&(this._deltaX=t.clientX):this._deltaX=t.touches[0].clientX}_end(t){this._eventIsPointerPenTouch(t)&&(this._deltaX=t.clientX-this._deltaX),this._handleSwipe(),C(this._config.endCallback)}_move(t){this._deltaX=t.touches&&t.touches.length>1?0:t.touches[0].clientX-this._deltaX}_handleSwipe(){const t=Math.abs(this._deltaX);if(t<=40)return;const e=t/this._deltaX;this._deltaX=0,e&&C(e>0?this._config.rightCallback:this._config.leftCallback)}_initEvents(){this._supportPointerEvents?(o.on(this._element,ms,t=>this._start(t)),o.on(this._element,gs,t=>this._end(t)),this._element.classList.add("pointer-event")):(o.on(this._element,fs,t=>this._start(t)),o.on(this._element,ps,t=>this._move(t)),o.on(this._element,Es,t=>this._end(t)))}_eventIsPointerPenTouch(t){return this._supportPointerEvents&&("pen"===t.pointerType||"touch"===t.pointerType)}static isSupported(){return"ontouchstart"in document.documentElement||navigator.maxTouchPoints>0}}const w=".bs.carousel",ie=".data-api",tt="next",W="prev",Y="left",ht="right",ws=`slide${w}`,Dt=`slid${w}`,Ls=`keydown${w}`,$s=`mouseenter${w}`,Is=`mouseleave${w}`,Ms=`dragstart${w}`,Rs=`load${w}${ie}`,Ps=`click${w}${ie}`,oe="carousel",ut="active",re=".active",ae=".carousel-item",Ws=re+ae,Us={ArrowLeft:ht,ArrowRight:Y},Gs={interval:5e3,keyboard:!0,pause:"hover",ride:!1,touch:!0,wrap:!0},zs={interval:"(number|boolean)",keyboard:"boolean",pause:"(string|boolean)",ride:"(boolean|string)",touch:"boolean",wrap:"boolean"};class F extends p{constructor(t,e){super(t,e),this._interval=null,this._activeElement=null,this._isSliding=!1,this.touchTimeout=null,this._swipeHelper=null,this._indicatorsElement=c.findOne(".carousel-indicators",this._element),this._addEventListeners(),this._config.ride===oe&&this.cycle()}static get Default(){return Gs}static get DefaultType(){return zs}static get NAME(){return"carousel"}next(){this._slide(tt)}nextWhenVisible(){!document.hidden&&x(this._element)&&this.next()}prev(){this._slide(W)}pause(){this._isSliding&&Ft(this._element),this._clearInterval()}cycle(){this._clearInterval(),this._updateInterval(),this._interval=setInterval(()=>this.nextWhenVisible(),this._config.interval)}_maybeEnableCycle(){if(this._config.ride){if(this._isSliding)return void o.one(this._element,Dt,()=>this.cycle());this.cycle()}}to(t){const e=this._getItems();if(t>e.length-1||t<0)return;if(this._isSliding)return void o.one(this._element,Dt,()=>this.to(t));const n=this._getItemIndex(this._getActive());n!==t&&this._slide(t>n?tt:W,e[t])}dispose(){this._swipeHelper&&this._swipeHelper.dispose(),super.dispose()}_configAfterMerge(t){return t.defaultInterval=t.interval,t}_addEventListeners(){this._config.keyboard&&o.on(this._element,Ls,t=>this._keydown(t)),"hover"===this._config.pause&&(o.on(this._element,$s,()=>this.pause()),o.on(this._element,Is,()=>this._maybeEnableCycle())),this._config.touch&<.isSupported()&&this._addTouchEventListeners()}_addTouchEventListeners(){for(const n of c.find(".carousel-item img",this._element))o.on(n,Ms,i=>i.preventDefault());this._swipeHelper=new lt(this._element,{leftCallback:()=>this._slide(this._directionToOrder(Y)),rightCallback:()=>this._slide(this._directionToOrder(ht)),endCallback:()=>{"hover"===this._config.pause&&(this.pause(),this.touchTimeout&&clearTimeout(this.touchTimeout),this.touchTimeout=setTimeout(()=>this._maybeEnableCycle(),500+this._config.interval))}})}_keydown(t){if(/input|textarea/i.test(t.target.tagName))return;const e=Us[t.key];e&&(t.preventDefault(),this._slide(this._directionToOrder(e)))}_getItemIndex(t){return this._getItems().indexOf(t)}_setActiveIndicatorElement(t){if(!this._indicatorsElement)return;const e=c.findOne(re,this._indicatorsElement);e.classList.remove(ut),e.removeAttribute("aria-current");const n=c.findOne(`[data-bs-slide-to="${t}"]`,this._indicatorsElement);n&&(n.classList.add(ut),n.setAttribute("aria-current","true"))}_updateInterval(){const t=this._activeElement||this._getActive();if(!t)return;const e=Number.parseInt(t.getAttribute("data-bs-interval"),10);this._config.interval=e||this._config.defaultInterval}_slide(t,e=null){if(this._isSliding)return;const n=this._getActive(),i=t===tt,a=e||Ct(this._getItems(),n,i,this._config.wrap);if(a===n)return;const r=this._getItemIndex(a),l=ot=>o.trigger(this._element,ot,{relatedTarget:a,direction:this._orderToDirection(t),from:this._getItemIndex(n),to:r});if(l(ws).defaultPrevented||!n||!a)return;const _=Boolean(this._interval);this.pause(),this._isSliding=!0,this._setActiveIndicatorElement(r),this._activeElement=a;const h=i?"carousel-item-start":"carousel-item-end",g=i?"carousel-item-next":"carousel-item-prev";a.classList.add(g),n.classList.add(h),a.classList.add(h),this._queueCallback(()=>{a.classList.remove(h,g),a.classList.add(ut),n.classList.remove(ut,g,h),this._isSliding=!1,l(Dt)},n,this._isAnimated()),_&&this.cycle()}_isAnimated(){return this._element.classList.contains("slide")}_getActive(){return c.findOne(Ws,this._element)}_getItems(){return c.find(ae,this._element)}_clearInterval(){this._interval&&(clearInterval(this._interval),this._interval=null)}_directionToOrder(t){return d()?t===Y?W:tt:t===Y?tt:W}_orderToDirection(t){return d()?t===W?Y:ht:t===W?ht:Y}static jQueryInterface(t){return this.each(function(){const e=F.getOrCreateInstance(this,t);if("number"!=typeof t){if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t]()}}else e.to(t)})}}o.on(document,Ps,"[data-bs-slide], [data-bs-slide-to]",function(s){const t=T(this);if(!t||!t.classList.contains(oe))return;s.preventDefault();const e=F.getOrCreateInstance(t),n=this.getAttribute("data-bs-slide-to");return n?(e.to(n),void e._maybeEnableCycle()):"next"===N.getDataAttribute(this,"slide")?(e.next(),void e._maybeEnableCycle()):(e.prev(),void e._maybeEnableCycle())}),o.on(window,Rs,()=>{const s=c.find('[data-bs-ride="carousel"]');for(const t of s)F.getOrCreateInstance(t)}),f(F);const et=".bs.collapse",Xs=`show${et}`,Zs=`shown${et}`,Js=`hide${et}`,tn=`hidden${et}`,en=`click${et}.data-api`,wt="show",j="collapse",_t="collapsing",nn=`:scope .${j} .${j}`,Lt='[data-bs-toggle="collapse"]',ln={parent:null,toggle:!0},hn={parent:"(null|element)",toggle:"boolean"};class B extends p{constructor(t,e){super(t,e),this._isTransitioning=!1,this._triggerArray=[];const n=c.find(Lt);for(const i of n){const a=Yt(i),r=c.find(a).filter(l=>l===this._element);null!==a&&r.length&&this._triggerArray.push(i)}this._initializeChildren(),this._config.parent||this._addAriaAndCollapsedClass(this._triggerArray,this._isShown()),this._config.toggle&&this.toggle()}static get Default(){return ln}static get DefaultType(){return hn}static get NAME(){return"collapse"}toggle(){this._isShown()?this.hide():this.show()}show(){if(this._isTransitioning||this._isShown())return;let t=[];if(this._config.parent&&(t=this._getFirstLevelChildren(".collapse.show, .collapse.collapsing").filter(l=>l!==this._element).map(l=>B.getOrCreateInstance(l,{toggle:!1}))),t.length&&t[0]._isTransitioning||o.trigger(this._element,Xs).defaultPrevented)return;for(const l of t)l.hide();const n=this._getDimension();this._element.classList.remove(j),this._element.classList.add(_t),this._element.style[n]=0,this._addAriaAndCollapsedClass(this._triggerArray,!0),this._isTransitioning=!0;const r=`scroll${n[0].toUpperCase()+n.slice(1)}`;this._queueCallback(()=>{this._isTransitioning=!1,this._element.classList.remove(_t),this._element.classList.add(j,wt),this._element.style[n]="",o.trigger(this._element,Zs)},this._element,!0),this._element.style[n]=`${this._element[r]}px`}hide(){if(this._isTransitioning||!this._isShown()||o.trigger(this._element,Js).defaultPrevented)return;const e=this._getDimension();this._element.style[e]=`${this._element.getBoundingClientRect()[e]}px`,this._element.classList.add(_t),this._element.classList.remove(j,wt);for(const i of this._triggerArray){const a=T(i);a&&!this._isShown(a)&&this._addAriaAndCollapsedClass([i],!1)}this._isTransitioning=!0,this._element.style[e]="",this._queueCallback(()=>{this._isTransitioning=!1,this._element.classList.remove(_t),this._element.classList.add(j),o.trigger(this._element,tn)},this._element,!0)}_isShown(t=this._element){return t.classList.contains(wt)}_configAfterMerge(t){return t.toggle=Boolean(t.toggle),t.parent=S(t.parent),t}_getDimension(){return this._element.classList.contains("collapse-horizontal")?"width":"height"}_initializeChildren(){if(!this._config.parent)return;const t=this._getFirstLevelChildren(Lt);for(const e of t){const n=T(e);n&&this._addAriaAndCollapsedClass([e],this._isShown(n))}}_getFirstLevelChildren(t){const e=c.find(nn,this._config.parent);return c.find(t,this._config.parent).filter(n=>!e.includes(n))}_addAriaAndCollapsedClass(t,e){if(t.length)for(const n of t)n.classList.toggle("collapsed",!e),n.setAttribute("aria-expanded",e)}static jQueryInterface(t){const e={};return"string"==typeof t&&/show|hide/.test(t)&&(e.toggle=!1),this.each(function(){const n=B.getOrCreateInstance(this,e);if("string"==typeof t){if(typeof n[t]>"u")throw new TypeError(`No method named "${t}"`);n[t]()}})}}o.on(document,en,Lt,function(s){("A"===s.target.tagName||s.delegateTarget&&"A"===s.delegateTarget.tagName)&&s.preventDefault();const t=Yt(this),e=c.find(t);for(const n of e)B.getOrCreateInstance(n,{toggle:!1}).toggle()}),f(B);const ce="dropdown",$=".bs.dropdown",$t=".data-api",_n="ArrowUp",he="ArrowDown",fn=`hide${$}`,pn=`hidden${$}`,En=`show${$}`,mn=`shown${$}`,ue=`click${$}${$t}`,_e=`keydown${$}${$t}`,gn=`keyup${$}${$t}`,U="show",I='[data-bs-toggle="dropdown"]:not(.disabled):not(:disabled)',vn=`${I}.${U}`,dt=".dropdown-menu",Dn=d()?"top-end":"top-start",wn=d()?"top-start":"top-end",Ln=d()?"bottom-end":"bottom-start",$n=d()?"bottom-start":"bottom-end",In=d()?"left-start":"right-start",Mn=d()?"right-start":"left-start",kn={autoClose:!0,boundary:"clippingParents",display:"dynamic",offset:[0,2],popperConfig:null,reference:"toggle"},Vn={autoClose:"(boolean|string)",boundary:"(string|element)",display:"string",offset:"(array|string|function)",popperConfig:"(null|object|function)",reference:"(string|element|object)"};class E extends p{constructor(t,e){super(t,e),this._popper=null,this._parent=this._element.parentNode,this._menu=c.next(this._element,dt)[0]||c.prev(this._element,dt)[0]||c.findOne(dt,this._parent),this._inNavbar=this._detectNavbar()}static get Default(){return kn}static get DefaultType(){return Vn}static get NAME(){return ce}toggle(){return this._isShown()?this.hide():this.show()}show(){if(O(this._element)||this._isShown())return;const t={relatedTarget:this._element};if(!o.trigger(this._element,En,t).defaultPrevented){if(this._createPopper(),"ontouchstart"in document.documentElement&&!this._parent.closest(".navbar-nav"))for(const n of[].concat(...document.body.children))o.on(n,"mouseover",at);this._element.focus(),this._element.setAttribute("aria-expanded",!0),this._menu.classList.add(U),this._element.classList.add(U),o.trigger(this._element,mn,t)}}hide(){!O(this._element)&&this._isShown()&&this._completeHide({relatedTarget:this._element})}dispose(){this._popper&&this._popper.destroy(),super.dispose()}update(){this._inNavbar=this._detectNavbar(),this._popper&&this._popper.update()}_completeHide(t){if(!o.trigger(this._element,fn,t).defaultPrevented){if("ontouchstart"in document.documentElement)for(const n of[].concat(...document.body.children))o.off(n,"mouseover",at);this._popper&&this._popper.destroy(),this._menu.classList.remove(U),this._element.classList.remove(U),this._element.setAttribute("aria-expanded","false"),N.removeDataAttribute(this._menu,"popper"),o.trigger(this._element,pn,t)}}_getConfig(t){if("object"==typeof(t=super._getConfig(t)).reference&&!b(t.reference)&&"function"!=typeof t.reference.getBoundingClientRect)throw new TypeError(`${ce.toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`);return t}_createPopper(){if(typeof rt>"u")throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org)");let t=this._element;"parent"===this._config.reference?t=this._parent:b(this._config.reference)?t=S(this._config.reference):"object"==typeof this._config.reference&&(t=this._config.reference);const e=this._getPopperConfig();this._popper=rt.createPopper(t,this._menu,e)}_isShown(){return this._menu.classList.contains(U)}_getPlacement(){const t=this._parent;if(t.classList.contains("dropend"))return In;if(t.classList.contains("dropstart"))return Mn;if(t.classList.contains("dropup-center"))return"top";if(t.classList.contains("dropdown-center"))return"bottom";const e="end"===getComputedStyle(this._menu).getPropertyValue("--bs-position").trim();return t.classList.contains("dropup")?e?wn:Dn:e?$n:Ln}_detectNavbar(){return null!==this._element.closest(".navbar")}_getOffset(){const{offset:t}=this._config;return"string"==typeof t?t.split(",").map(e=>Number.parseInt(e,10)):"function"==typeof t?e=>t(e,this._element):t}_getPopperConfig(){const t={placement:this._getPlacement(),modifiers:[{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"offset",options:{offset:this._getOffset()}}]};return(this._inNavbar||"static"===this._config.display)&&(N.setDataAttribute(this._menu,"popper","static"),t.modifiers=[{name:"applyStyles",enabled:!1}]),{...t,..."function"==typeof this._config.popperConfig?this._config.popperConfig(t):this._config.popperConfig}}_selectMenuItem({key:t,target:e}){const n=c.find(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",this._menu).filter(i=>x(i));n.length&&Ct(n,e,t===he,!n.includes(e)).focus()}static jQueryInterface(t){return this.each(function(){const e=E.getOrCreateInstance(this,t);if("string"==typeof t){if(typeof e[t]>"u")throw new TypeError(`No method named "${t}"`);e[t]()}})}static clearMenus(t){if(2===t.button||"keyup"===t.type&&"Tab"!==t.key)return;const e=c.find(vn);for(const n of e){const i=E.getInstance(n);if(!i||!1===i._config.autoClose)continue;const a=t.composedPath(),r=a.includes(i._menu);if(a.includes(i._element)||"inside"===i._config.autoClose&&!r||"outside"===i._config.autoClose&&r||i._menu.contains(t.target)&&("keyup"===t.type&&"Tab"===t.key||/input|select|option|textarea|form/i.test(t.target.tagName)))continue;const l={relatedTarget:i._element};"click"===t.type&&(l.clickEvent=t),i._completeHide(l)}}static dataApiKeydownHandler(t){const e=/input|textarea/i.test(t.target.tagName),n="Escape"===t.key,i=[_n,he].includes(t.key);if(!i&&!n||e&&!n)return;t.preventDefault();const a=this.matches(I)?this:c.prev(this,I)[0]||c.next(this,I)[0]||c.findOne(I,t.delegateTarget.parentNode),r=E.getOrCreateInstance(a);if(i)return t.stopPropagation(),r.show(),void r._selectMenuItem(t);r._isShown()&&(t.stopPropagation(),r.hide(),a.focus())}}o.on(document,_e,I,E.dataApiKeydownHandler),o.on(document,_e,dt,E.dataApiKeydownHandler),o.on(document,ue,E.clearMenus),o.on(document,gn,E.clearMenus),o.on(document,ue,I,function(s){s.preventDefault(),E.getOrCreateInstance(this).toggle()}),f(E);const de=".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",fe=".sticky-top",ft="padding-right",pe="margin-right";class It{constructor(){this._element=document.body}getWidth(){const t=document.documentElement.clientWidth;return Math.abs(window.innerWidth-t)}hide(){const t=this.getWidth();this._disableOverFlow(),this._setElementAttributes(this._element,ft,e=>e+t),this._setElementAttributes(de,ft,e=>e+t),this._setElementAttributes(fe,pe,e=>e-t)}reset(){this._resetElementAttributes(this._element,"overflow"),this._resetElementAttributes(this._element,ft),this._resetElementAttributes(de,ft),this._resetElementAttributes(fe,pe)}isOverflowing(){return this.getWidth()>0}_disableOverFlow(){this._saveInitialAttribute(this._element,"overflow"),this._element.style.overflow="hidden"}_setElementAttributes(t,e,n){const i=this.getWidth();this._applyManipulationCallback(t,r=>{if(r!==this._element&&window.innerWidth>r.clientWidth+i)return;this._saveInitialAttribute(r,e);const l=window.getComputedStyle(r).getPropertyValue(e);r.style.setProperty(e,`${n(Number.parseFloat(l))}px`)})}_saveInitialAttribute(t,e){const n=t.style.getPropertyValue(e);n&&N.setDataAttribute(t,e,n)}_resetElementAttributes(t,e){this._applyManipulationCallback(t,i=>{const a=N.getDataAttribute(i,e);null!==a?(N.removeDataAttribute(i,e),i.style.setProperty(e,a)):i.style.removeProperty(e)})}_applyManipulationCallback(t,e){if(b(t))e(t);else for(const n of c.find(t,this._element))e(n)}}const Ee="backdrop",ge=`mousedown.bs.${Ee}`,xn={className:"modal-backdrop",clickCallback:null,isAnimated:!1,isVisible:!0,rootElement:"body"},Kn={className:"string",clickCallback:"(function|null)",isAnimated:"boolean",isVisible:"boolean",rootElement:"(element|string)"};class Ae extends X{constructor(t){super(),this._config=this._getConfig(t),this._isAppended=!1,this._element=null}static get Default(){return xn}static get DefaultType(){return Kn}static get NAME(){return Ee}show(t){if(!this._config.isVisible)return void C(t);this._append();this._getElement().classList.add("show"),this._emulateAnimation(()=>{C(t)})}hide(t){this._config.isVisible?(this._getElement().classList.remove("show"),this._emulateAnimation(()=>{this.dispose(),C(t)})):C(t)}dispose(){this._isAppended&&(o.off(this._element,ge),this._element.remove(),this._isAppended=!1)}_getElement(){if(!this._element){const t=document.createElement("div");t.className=this._config.className,this._config.isAnimated&&t.classList.add("fade"),this._element=t}return this._element}_configAfterMerge(t){return t.rootElement=S(t.rootElement),t}_append(){if(this._isAppended)return;const t=this._getElement();this._config.rootElement.append(t),o.on(t,ge,()=>{C(this._config.clickCallback)}),this._isAppended=!0}_emulateAnimation(t){Ut(t,this._getElement(),this._config.isAnimated)}}const pt=".bs.focustrap",Yn=`focusin${pt}`,Fn=`keydown.tab${pt}`,Te="backward",Un={autofocus:!0,trapElement:null},Gn={autofocus:"boolean",trapElement:"element"};class be extends X{constructor(t){super(),this._config=this._getConfig(t),this._isActive=!1,this._lastTabNavDirection=null}static get Default(){return Un}static get DefaultType(){return Gn}static get NAME(){return"focustrap"}activate(){this._isActive||(this._config.autofocus&&this._config.trapElement.focus(),o.off(document,pt),o.on(document,Yn,t=>this._handleFocusin(t)),o.on(document,Fn,t=>this._handleKeydown(t)),this._isActive=!0)}deactivate(){this._isActive&&(this._isActive=!1,o.off(document,pt))}_handleFocusin(t){const{trapElement:e}=this._config;if(t.target===document||t.target===e||e.contains(t.target))return;const n=c.focusableChildren(e);0===n.length?e.focus():this._lastTabNavDirection===Te?n[n.length-1].focus():n[0].focus()}_handleKeydown(t){"Tab"===t.key&&(this._lastTabNavDirection=t.shiftKey?Te:"forward")}}const m=".bs.modal",Xn=`hide${m}`,Zn=`hidePrevented${m}`,Ce=`hidden${m}`,Ne=`show${m}`,Jn=`shown${m}`,ti=`resize${m}`,ei=`click.dismiss${m}`,si=`mousedown.dismiss${m}`,ni=`keydown.dismiss${m}`,ii=`click${m}.data-api`,ve="modal-open",Mt="modal-static",hi={backdrop:!0,focus:!0,keyboard:!0},ui={backdrop:"(boolean|string)",focus:"boolean",keyboard:"boolean"};class M extends p{constructor(t,e){super(t,e),this._dialog=c.findOne(".modal-dialog",this._element),this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._isShown=!1,this._isTransitioning=!1,this._scrollBar=new It,this._addEventListeners()}static get Default(){return hi}static get DefaultType(){return ui}static get NAME(){return"modal"}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||this._isTransitioning||o.trigger(this._element,Ne,{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._isTransitioning=!0,this._scrollBar.hide(),document.body.classList.add(ve),this._adjustDialog(),this._backdrop.show(()=>this._showElement(t)))}hide(){!this._isShown||this._isTransitioning||o.trigger(this._element,Xn).defaultPrevented||(this._isShown=!1,this._isTransitioning=!0,this._focustrap.deactivate(),this._element.classList.remove("show"),this._queueCallback(()=>this._hideModal(),this._element,this._isAnimated()))}dispose(){for(const t of[window,this._dialog])o.off(t,m);this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}handleUpdate(){this._adjustDialog()}_initializeBackDrop(){return new Ae({isVisible:Boolean(this._config.backdrop),isAnimated:this._isAnimated()})}_initializeFocusTrap(){return new be({trapElement:this._element})}_showElement(t){document.body.contains(this._element)||document.body.append(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.scrollTop=0;const e=c.findOne(".modal-body",this._dialog);e&&(e.scrollTop=0),this._element.classList.add("show"),this._queueCallback(()=>{this._config.focus&&this._focustrap.activate(),this._isTransitioning=!1,o.trigger(this._element,Jn,{relatedTarget:t})},this._dialog,this._isAnimated())}_addEventListeners(){o.on(this._element,ni,t=>{if("Escape"===t.key){if(this._config.keyboard)return t.preventDefault(),void this.hide();this._triggerBackdropTransition()}}),o.on(window,ti,()=>{this._isShown&&!this._isTransitioning&&this._adjustDialog()}),o.on(this._element,si,t=>{o.one(this._element,ei,e=>{if(this._element===t.target&&this._element===e.target){if("static"===this._config.backdrop)return void this._triggerBackdropTransition();this._config.backdrop&&this.hide()}})})}_hideModal(){this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._backdrop.hide(()=>{document.body.classList.remove(ve),this._resetAdjustments(),this._scrollBar.reset(),o.trigger(this._element,Ce)})}_isAnimated(){return this._element.classList.contains("fade")}_triggerBackdropTransition(){if(o.trigger(this._element,Zn).defaultPrevented)return;const e=this._element.scrollHeight>document.documentElement.clientHeight,n=this._element.style.overflowY;"hidden"===n||this._element.classList.contains(Mt)||(e||(this._element.style.overflowY="hidden"),this._element.classList.add(Mt),this._queueCallback(()=>{this._element.classList.remove(Mt),this._queueCallback(()=>{this._element.style.overflowY=n},this._dialog)},this._dialog),this._element.focus())}_adjustDialog(){const t=this._element.scrollHeight>document.documentElement.clientHeight,e=this._scrollBar.getWidth(),n=e>0;if(n&&!t){const i=d()?"paddingLeft":"paddingRight";this._element.style[i]=`${e}px`}if(!n&&t){const i=d()?"paddingRight":"paddingLeft";this._element.style[i]=`${e}px`}}_resetAdjustments(){this._element.style.paddingLeft="",this._element.style.paddingRight=""}static jQueryInterface(t,e){return this.each(function(){const n=M.getOrCreateInstance(this,t);if("string"==typeof t){if(typeof n[t]>"u")throw new TypeError(`No method named "${t}"`);n[t](e)}})}}o.on(document,ii,'[data-bs-toggle="modal"]',function(s){const t=T(this);["A","AREA"].includes(this.tagName)&&s.preventDefault(),o.one(t,Ne,i=>{i.defaultPrevented||o.one(t,Ce,()=>{x(this)&&this.focus()})});const e=c.findOne(".modal.show");e&&M.getInstance(e).hide(),M.getOrCreateInstance(t).toggle(this)}),ct(M),f(M);const v=".bs.offcanvas",Se=".data-api",di=`load${v}${Se}`,De="showing",Le=".offcanvas.show",Ei=`show${v}`,mi=`shown${v}`,gi=`hide${v}`,$e=`hidePrevented${v}`,Ie=`hidden${v}`,Ai=`resize${v}`,Ti=`click${v}${Se}`,bi=`keydown.dismiss${v}`,Ni={backdrop:!0,keyboard:!0,scroll:!1},vi={backdrop:"(boolean|string)",keyboard:"boolean",scroll:"boolean"};class y extends p{constructor(t,e){super(t,e),this._isShown=!1,this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._addEventListeners()}static get Default(){return Ni}static get DefaultType(){return vi}static get NAME(){return"offcanvas"}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||o.trigger(this._element,Ei,{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._backdrop.show(),this._config.scroll||(new It).hide(),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.classList.add(De),this._queueCallback(()=>{(!this._config.scroll||this._config.backdrop)&&this._focustrap.activate(),this._element.classList.add("show"),this._element.classList.remove(De),o.trigger(this._element,mi,{relatedTarget:t})},this._element,!0))}hide(){this._isShown&&!o.trigger(this._element,gi).defaultPrevented&&(this._focustrap.deactivate(),this._element.blur(),this._isShown=!1,this._element.classList.add("hiding"),this._backdrop.hide(),this._queueCallback(()=>{this._element.classList.remove("show","hiding"),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._config.scroll||(new It).reset(),o.trigger(this._element,Ie)},this._element,!0))}dispose(){this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}_initializeBackDrop(){const e=Boolean(this._config.backdrop);return new Ae({className:"offcanvas-backdrop",isVisible:e,isAnimated:!0,rootElement:this._element.parentNode,clickCallback:e?()=>{"static"!==this._config.backdrop?this.hide():o.trigger(this._element,$e)}:null})}_initializeFocusTrap(){return new be({trapElement:this._element})}_addEventListeners(){o.on(this._element,bi,t=>{if("Escape"===t.key){if(!this._config.keyboard)return void o.trigger(this._element,$e);this.hide()}})}static jQueryInterface(t){return this.each(function(){const e=y.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t](this)}})}}o.on(document,Ti,'[data-bs-toggle="offcanvas"]',function(s){const t=T(this);if(["A","AREA"].includes(this.tagName)&&s.preventDefault(),O(this))return;o.one(t,Ie,()=>{x(this)&&this.focus()});const e=c.findOne(Le);e&&e!==t&&y.getInstance(e).hide(),y.getOrCreateInstance(t).toggle(this)}),o.on(window,di,()=>{for(const s of c.find(Le))y.getOrCreateInstance(s).show()}),o.on(window,Ai,()=>{for(const s of c.find("[aria-modal][class*=show][class*=offcanvas-]"))"fixed"!==getComputedStyle(s).position&&y.getOrCreateInstance(s).hide()}),ct(y),f(y);const yi=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),Oi=/^(?:(?:https?|mailto|ftp|tel|file|sms):|[^#&/:?]*(?:[#/?]|$))/i,Di=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i,wi=(s,t)=>{const e=s.nodeName.toLowerCase();return t.includes(e)?!yi.has(e)||Boolean(Oi.test(s.nodeValue)||Di.test(s.nodeValue)):t.filter(n=>n instanceof RegExp).some(n=>n.test(e))},Me={"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},Ii={allowList:Me,content:{},extraClass:"",html:!1,sanitize:!0,sanitizeFn:null,template:"
"},Mi={allowList:"object",content:"object",extraClass:"(string|function)",html:"boolean",sanitize:"boolean",sanitizeFn:"(null|function)",template:"string"},Ri={entry:"(string|element|function|null)",selector:"(string|element)"};class Pi extends X{constructor(t){super(),this._config=this._getConfig(t)}static get Default(){return Ii}static get DefaultType(){return Mi}static get NAME(){return"TemplateFactory"}getContent(){return Object.values(this._config.content).map(t=>this._resolvePossibleFunction(t)).filter(Boolean)}hasContent(){return this.getContent().length>0}changeContent(t){return this._checkContent(t),this._config.content={...this._config.content,...t},this}toHtml(){const t=document.createElement("div");t.innerHTML=this._maybeSanitize(this._config.template);for(const[i,a]of Object.entries(this._config.content))this._setContent(t,a,i);const e=t.children[0],n=this._resolvePossibleFunction(this._config.extraClass);return n&&e.classList.add(...n.split(" ")),e}_typeCheckConfig(t){super._typeCheckConfig(t),this._checkContent(t.content)}_checkContent(t){for(const[e,n]of Object.entries(t))super._typeCheckConfig({selector:e,entry:n},Ri)}_setContent(t,e,n){const i=c.findOne(n,t);if(i){if(!(e=this._resolvePossibleFunction(e)))return void i.remove();if(b(e))return void this._putElementInTemplate(S(e),i);if(this._config.html)return void(i.innerHTML=this._maybeSanitize(e));i.textContent=e}}_maybeSanitize(t){return this._config.sanitize?function Li(s,t,e){if(!s.length)return s;if(e&&"function"==typeof e)return e(s);const i=(new window.DOMParser).parseFromString(s,"text/html"),a=[].concat(...i.body.querySelectorAll("*"));for(const r of a){const l=r.nodeName.toLowerCase();if(!Object.keys(t).includes(l)){r.remove();continue}const u=[].concat(...r.attributes),_=[].concat(t["*"]||[],t[l]||[]);for(const h of u)wi(h,_)||r.removeAttribute(h.nodeName)}return i.body.innerHTML}(t,this._config.allowList,this._config.sanitizeFn):t}_resolvePossibleFunction(t){return"function"==typeof t?t(this):t}_putElementInTemplate(t,e){if(this._config.html)return e.innerHTML="",void e.append(t);e.textContent=t.textContent}}const Vi=new Set(["sanitize","allowList","sanitizeFn"]),Rt="fade",Et="show",Pe="hide.bs.modal",st="hover",Pt="focus",Zi={AUTO:"auto",TOP:"top",RIGHT:d()?"left":"right",BOTTOM:"bottom",LEFT:d()?"right":"left"},Ji={allowList:Me,animation:!0,boundary:"clippingParents",container:!1,customClass:"",delay:0,fallbackPlacements:["top","right","bottom","left"],html:!1,offset:[0,0],placement:"top",popperConfig:null,sanitize:!0,sanitizeFn:null,selector:!1,template:'',title:"",trigger:"hover focus"},to={allowList:"object",animation:"boolean",boundary:"(string|element)",container:"(string|element|boolean)",customClass:"(string|function)",delay:"(number|object)",fallbackPlacements:"array",html:"boolean",offset:"(array|string|function)",placement:"(string|function)",popperConfig:"(null|object|function)",sanitize:"boolean",sanitizeFn:"(null|function)",selector:"(string|boolean)",template:"string",title:"(string|element|function)",trigger:"string"};class R extends p{constructor(t,e){if(typeof rt>"u")throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");super(t,e),this._isEnabled=!0,this._timeout=0,this._isHovered=null,this._activeTrigger={},this._popper=null,this._templateFactory=null,this._newContent=null,this.tip=null,this._setListeners(),this._config.selector||this._fixTitle()}static get Default(){return Ji}static get DefaultType(){return to}static get NAME(){return"tooltip"}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(){if(this._isEnabled){if(this._activeTrigger.click=!this._activeTrigger.click,this._isShown())return void this._leave();this._enter()}}dispose(){clearTimeout(this._timeout),o.off(this._element.closest(".modal"),Pe,this._hideModalHandler),this._element.getAttribute("data-bs-original-title")&&this._element.setAttribute("title",this._element.getAttribute("data-bs-original-title")),this._disposePopper(),super.dispose()}show(){if("none"===this._element.style.display)throw new Error("Please use show on visible elements");if(!this._isWithContent()||!this._isEnabled)return;const t=o.trigger(this._element,this.constructor.eventName("show")),n=(jt(this._element)||this._element.ownerDocument.documentElement).contains(this._element);if(t.defaultPrevented||!n)return;this._disposePopper();const i=this._getTipElement();this._element.setAttribute("aria-describedby",i.getAttribute("id"));const{container:a}=this._config;if(this._element.ownerDocument.documentElement.contains(this.tip)||(a.append(i),o.trigger(this._element,this.constructor.eventName("inserted"))),this._popper=this._createPopper(i),i.classList.add(Et),"ontouchstart"in document.documentElement)for(const l of[].concat(...document.body.children))o.on(l,"mouseover",at);this._queueCallback(()=>{o.trigger(this._element,this.constructor.eventName("shown")),!1===this._isHovered&&this._leave(),this._isHovered=!1},this.tip,this._isAnimated())}hide(){if(this._isShown()&&!o.trigger(this._element,this.constructor.eventName("hide")).defaultPrevented){if(this._getTipElement().classList.remove(Et),"ontouchstart"in document.documentElement)for(const i of[].concat(...document.body.children))o.off(i,"mouseover",at);this._activeTrigger.click=!1,this._activeTrigger[Pt]=!1,this._activeTrigger[st]=!1,this._isHovered=null,this._queueCallback(()=>{this._isWithActiveTrigger()||(this._isHovered||this._disposePopper(),this._element.removeAttribute("aria-describedby"),o.trigger(this._element,this.constructor.eventName("hidden")))},this.tip,this._isAnimated())}}update(){this._popper&&this._popper.update()}_isWithContent(){return Boolean(this._getTitle())}_getTipElement(){return this.tip||(this.tip=this._createTipElement(this._newContent||this._getContentForTemplate())),this.tip}_createTipElement(t){const e=this._getTemplateFactory(t).toHtml();if(!e)return null;e.classList.remove(Rt,Et),e.classList.add(`bs-${this.constructor.NAME}-auto`);const n=(s=>{do{s+=Math.floor(1e6*Math.random())}while(document.getElementById(s));return s})(this.constructor.NAME).toString();return e.setAttribute("id",n),this._isAnimated()&&e.classList.add(Rt),e}setContent(t){this._newContent=t,this._isShown()&&(this._disposePopper(),this.show())}_getTemplateFactory(t){return this._templateFactory?this._templateFactory.changeContent(t):this._templateFactory=new Pi({...this._config,content:t,extraClass:this._resolvePossibleFunction(this._config.customClass)}),this._templateFactory}_getContentForTemplate(){return{".tooltip-inner":this._getTitle()}}_getTitle(){return this._resolvePossibleFunction(this._config.title)||this._element.getAttribute("data-bs-original-title")}_initializeOnDelegatedTarget(t){return this.constructor.getOrCreateInstance(t.delegateTarget,this._getDelegateConfig())}_isAnimated(){return this._config.animation||this.tip&&this.tip.classList.contains(Rt)}_isShown(){return this.tip&&this.tip.classList.contains(Et)}_createPopper(t){const e="function"==typeof this._config.placement?this._config.placement.call(this,t,this._element):this._config.placement,n=Zi[e.toUpperCase()];return rt.createPopper(this._element,t,this._getPopperConfig(n))}_getOffset(){const{offset:t}=this._config;return"string"==typeof t?t.split(",").map(e=>Number.parseInt(e,10)):"function"==typeof t?e=>t(e,this._element):t}_resolvePossibleFunction(t){return"function"==typeof t?t.call(this._element):t}_getPopperConfig(t){const e={placement:t,modifiers:[{name:"flip",options:{fallbackPlacements:this._config.fallbackPlacements}},{name:"offset",options:{offset:this._getOffset()}},{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"arrow",options:{element:`.${this.constructor.NAME}-arrow`}},{name:"preSetPlacement",enabled:!0,phase:"beforeMain",fn:n=>{this._getTipElement().setAttribute("data-popper-placement",n.state.placement)}}]};return{...e,..."function"==typeof this._config.popperConfig?this._config.popperConfig(e):this._config.popperConfig}}_setListeners(){const t=this._config.trigger.split(" ");for(const e of t)if("click"===e)o.on(this._element,this.constructor.eventName("click"),this._config.selector,n=>{this._initializeOnDelegatedTarget(n).toggle()});else if("manual"!==e){const n=this.constructor.eventName(e===st?"mouseenter":"focusin"),i=this.constructor.eventName(e===st?"mouseleave":"focusout");o.on(this._element,n,this._config.selector,a=>{const r=this._initializeOnDelegatedTarget(a);r._activeTrigger["focusin"===a.type?Pt:st]=!0,r._enter()}),o.on(this._element,i,this._config.selector,a=>{const r=this._initializeOnDelegatedTarget(a);r._activeTrigger["focusout"===a.type?Pt:st]=r._element.contains(a.relatedTarget),r._leave()})}this._hideModalHandler=()=>{this._element&&this.hide()},o.on(this._element.closest(".modal"),Pe,this._hideModalHandler)}_fixTitle(){const t=this._element.getAttribute("title");t&&(!this._element.getAttribute("aria-label")&&!this._element.textContent.trim()&&this._element.setAttribute("aria-label",t),this._element.setAttribute("data-bs-original-title",t),this._element.removeAttribute("title"))}_enter(){this._isShown()||this._isHovered?this._isHovered=!0:(this._isHovered=!0,this._setTimeout(()=>{this._isHovered&&this.show()},this._config.delay.show))}_leave(){this._isWithActiveTrigger()||(this._isHovered=!1,this._setTimeout(()=>{this._isHovered||this.hide()},this._config.delay.hide))}_setTimeout(t,e){clearTimeout(this._timeout),this._timeout=setTimeout(t,e)}_isWithActiveTrigger(){return Object.values(this._activeTrigger).includes(!0)}_getConfig(t){const e=N.getDataAttributes(this._element);for(const n of Object.keys(e))Vi.has(n)&&delete e[n];return t={...e,..."object"==typeof t&&t?t:{}},t=this._mergeConfigObj(t),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}_configAfterMerge(t){return t.container=!1===t.container?document.body:S(t.container),"number"==typeof t.delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),t}_getDelegateConfig(){const t={};for(const e in this._config)this.constructor.Default[e]!==this._config[e]&&(t[e]=this._config[e]);return t.selector=!1,t.trigger="manual",t}_disposePopper(){this._popper&&(this._popper.destroy(),this._popper=null),this.tip&&(this.tip.remove(),this.tip=null)}static jQueryInterface(t){return this.each(function(){const e=R.getOrCreateInstance(this,t);if("string"==typeof t){if(typeof e[t]>"u")throw new TypeError(`No method named "${t}"`);e[t]()}})}}f(R);const io={...R.Default,content:"",offset:[0,8],placement:"right",template:'',trigger:"click"},oo={...R.DefaultType,content:"(null|string|element|function)"};class mt extends R{static get Default(){return io}static get DefaultType(){return oo}static get NAME(){return"popover"}_isWithContent(){return this._getTitle()||this._getContent()}_getContentForTemplate(){return{".popover-header":this._getTitle(),".popover-body":this._getContent()}}_getContent(){return this._resolvePossibleFunction(this._config.content)}static jQueryInterface(t){return this.each(function(){const e=mt.getOrCreateInstance(this,t);if("string"==typeof t){if(typeof e[t]>"u")throw new TypeError(`No method named "${t}"`);e[t]()}})}}f(mt);const kt=".bs.scrollspy",co=`activate${kt}`,ke=`click${kt}`,lo=`load${kt}.data-api`,G="active",Vt="[href]",Ve=".nav-link",fo=`${Ve}, .nav-item > ${Ve}, .list-group-item`,mo={offset:null,rootMargin:"0px 0px -25%",smoothScroll:!1,target:null,threshold:[.1,.5,1]},go={offset:"(number|null)",rootMargin:"string",smoothScroll:"boolean",target:"element",threshold:"array"};class nt extends p{constructor(t,e){super(t,e),this._targetLinks=new Map,this._observableSections=new Map,this._rootElement="visible"===getComputedStyle(this._element).overflowY?null:this._element,this._activeTarget=null,this._observer=null,this._previousScrollData={visibleEntryTop:0,parentScrollTop:0},this.refresh()}static get Default(){return mo}static get DefaultType(){return go}static get NAME(){return"scrollspy"}refresh(){this._initializeTargetsAndObservables(),this._maybeEnableSmoothScroll(),this._observer?this._observer.disconnect():this._observer=this._getNewObserver();for(const t of this._observableSections.values())this._observer.observe(t)}dispose(){this._observer.disconnect(),super.dispose()}_configAfterMerge(t){return t.target=S(t.target)||document.body,t.rootMargin=t.offset?`${t.offset}px 0px -30%`:t.rootMargin,"string"==typeof t.threshold&&(t.threshold=t.threshold.split(",").map(e=>Number.parseFloat(e))),t}_maybeEnableSmoothScroll(){this._config.smoothScroll&&(o.off(this._config.target,ke),o.on(this._config.target,ke,Vt,t=>{const e=this._observableSections.get(t.target.hash);if(e){t.preventDefault();const n=this._rootElement||window,i=e.offsetTop-this._element.offsetTop;if(n.scrollTo)return void n.scrollTo({top:i,behavior:"smooth"});n.scrollTop=i}}))}_getNewObserver(){return new IntersectionObserver(e=>this._observerCallback(e),{root:this._rootElement,threshold:this._config.threshold,rootMargin:this._config.rootMargin})}_observerCallback(t){const e=r=>this._targetLinks.get(`#${r.target.id}`),n=r=>{this._previousScrollData.visibleEntryTop=r.target.offsetTop,this._process(e(r))},i=(this._rootElement||document.documentElement).scrollTop,a=i>=this._previousScrollData.parentScrollTop;this._previousScrollData.parentScrollTop=i;for(const r of t){if(!r.isIntersecting){this._activeTarget=null,this._clearActiveClass(e(r));continue}const l=r.target.offsetTop>=this._previousScrollData.visibleEntryTop;if(a&&l){if(n(r),!i)return}else!a&&!l&&n(r)}}_initializeTargetsAndObservables(){this._targetLinks=new Map,this._observableSections=new Map;const t=c.find(Vt,this._config.target);for(const e of t){if(!e.hash||O(e))continue;const n=c.findOne(e.hash,this._element);x(n)&&(this._targetLinks.set(e.hash,e),this._observableSections.set(e.hash,n))}}_process(t){this._activeTarget!==t&&(this._clearActiveClass(this._config.target),this._activeTarget=t,t.classList.add(G),this._activateParents(t),o.trigger(this._element,co,{relatedTarget:t}))}_activateParents(t){if(t.classList.contains("dropdown-item"))c.findOne(".dropdown-toggle",t.closest(".dropdown")).classList.add(G);else for(const e of c.parents(t,".nav, .list-group"))for(const n of c.prev(e,fo))n.classList.add(G)}_clearActiveClass(t){t.classList.remove(G);const e=c.find(`${Vt}.${G}`,t);for(const n of e)n.classList.remove(G)}static jQueryInterface(t){return this.each(function(){const e=nt.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t]()}})}}o.on(window,lo,()=>{for(const s of c.find('[data-bs-spy="scroll"]'))nt.getOrCreateInstance(s)}),f(nt);const P=".bs.tab",To=`hide${P}`,bo=`hidden${P}`,Co=`show${P}`,No=`shown${P}`,vo=`click${P}`,yo=`keydown${P}`,So=`load${P}`,Oo="ArrowLeft",He="ArrowRight",Do="ArrowUp",xe="ArrowDown",k="active",Ht="show",xt=":not(.dropdown-toggle)",We='[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]',Kt=`.nav-link${xt}, .list-group-item${xt}, [role="tab"]${xt}, ${We}`,Po=`.${k}[data-bs-toggle="tab"], .${k}[data-bs-toggle="pill"], .${k}[data-bs-toggle="list"]`;class V extends p{constructor(t){super(t),this._parent=this._element.closest('.list-group, .nav, [role="tablist"]'),this._parent&&(this._setInitialAttributes(this._parent,this._getChildren()),o.on(this._element,yo,e=>this._keydown(e)))}static get NAME(){return"tab"}show(){const t=this._element;if(this._elemIsActive(t))return;const e=this._getActiveElem(),n=e?o.trigger(e,To,{relatedTarget:t}):null;o.trigger(t,Co,{relatedTarget:e}).defaultPrevented||n&&n.defaultPrevented||(this._deactivate(e,t),this._activate(t,e))}_activate(t,e){t&&(t.classList.add(k),this._activate(T(t)),this._queueCallback(()=>{"tab"===t.getAttribute("role")?(t.removeAttribute("tabindex"),t.setAttribute("aria-selected",!0),this._toggleDropDown(t,!0),o.trigger(t,No,{relatedTarget:e})):t.classList.add(Ht)},t,t.classList.contains("fade")))}_deactivate(t,e){t&&(t.classList.remove(k),t.blur(),this._deactivate(T(t)),this._queueCallback(()=>{"tab"===t.getAttribute("role")?(t.setAttribute("aria-selected",!1),t.setAttribute("tabindex","-1"),this._toggleDropDown(t,!1),o.trigger(t,bo,{relatedTarget:e})):t.classList.remove(Ht)},t,t.classList.contains("fade")))}_keydown(t){if(![Oo,He,Do,xe].includes(t.key))return;t.stopPropagation(),t.preventDefault();const e=[He,xe].includes(t.key),n=Ct(this._getChildren().filter(i=>!O(i)),t.target,e,!0);n&&(n.focus({preventScroll:!0}),V.getOrCreateInstance(n).show())}_getChildren(){return c.find(Kt,this._parent)}_getActiveElem(){return this._getChildren().find(t=>this._elemIsActive(t))||null}_setInitialAttributes(t,e){this._setAttributeIfNotExists(t,"role","tablist");for(const n of e)this._setInitialAttributesOnChild(n)}_setInitialAttributesOnChild(t){t=this._getInnerElement(t);const e=this._elemIsActive(t),n=this._getOuterElement(t);t.setAttribute("aria-selected",e),n!==t&&this._setAttributeIfNotExists(n,"role","presentation"),e||t.setAttribute("tabindex","-1"),this._setAttributeIfNotExists(t,"role","tab"),this._setInitialAttributesOnTargetPanel(t)}_setInitialAttributesOnTargetPanel(t){const e=T(t);e&&(this._setAttributeIfNotExists(e,"role","tabpanel"),t.id&&this._setAttributeIfNotExists(e,"aria-labelledby",`#${t.id}`))}_toggleDropDown(t,e){const n=this._getOuterElement(t);if(!n.classList.contains("dropdown"))return;const i=(a,r)=>{const l=c.findOne(a,n);l&&l.classList.toggle(r,e)};i(".dropdown-toggle",k),i(".dropdown-menu",Ht),n.setAttribute("aria-expanded",e)}_setAttributeIfNotExists(t,e,n){t.hasAttribute(e)||t.setAttribute(e,n)}_elemIsActive(t){return t.classList.contains(k)}_getInnerElement(t){return t.matches(Kt)?t:c.findOne(Kt,t)}_getOuterElement(t){return t.closest(".nav-item, .list-group-item")||t}static jQueryInterface(t){return this.each(function(){const e=V.getOrCreateInstance(this);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t]()}})}}o.on(document,vo,We,function(s){["A","AREA"].includes(this.tagName)&&s.preventDefault(),!O(this)&&V.getOrCreateInstance(this).show()}),o.on(window,So,()=>{for(const s of c.find(Po))V.getOrCreateInstance(s)}),f(V);const L=".bs.toast",Vo=`mouseover${L}`,Ho=`mouseout${L}`,xo=`focusin${L}`,Ko=`focusout${L}`,Wo=`hide${L}`,Yo=`hidden${L}`,Fo=`show${L}`,jo=`shown${L}`,gt="show",At="showing",Uo={animation:"boolean",autohide:"boolean",delay:"number"},Go={animation:!0,autohide:!0,delay:5e3};class it extends p{constructor(t,e){super(t,e),this._timeout=null,this._hasMouseInteraction=!1,this._hasKeyboardInteraction=!1,this._setListeners()}static get Default(){return Go}static get DefaultType(){return Uo}static get NAME(){return"toast"}show(){o.trigger(this._element,Fo).defaultPrevented||(this._clearTimeout(),this._config.animation&&this._element.classList.add("fade"),this._element.classList.remove("hide"),this._element.classList.add(gt,At),this._queueCallback(()=>{this._element.classList.remove(At),o.trigger(this._element,jo),this._maybeScheduleHide()},this._element,this._config.animation))}hide(){this.isShown()&&!o.trigger(this._element,Wo).defaultPrevented&&(this._element.classList.add(At),this._queueCallback(()=>{this._element.classList.add("hide"),this._element.classList.remove(At,gt),o.trigger(this._element,Yo)},this._element,this._config.animation))}dispose(){this._clearTimeout(),this.isShown()&&this._element.classList.remove(gt),super.dispose()}isShown(){return this._element.classList.contains(gt)}_maybeScheduleHide(){this._config.autohide&&(this._hasMouseInteraction||this._hasKeyboardInteraction||(this._timeout=setTimeout(()=>{this.hide()},this._config.delay)))}_onInteraction(t,e){switch(t.type){case"mouseover":case"mouseout":this._hasMouseInteraction=e;break;case"focusin":case"focusout":this._hasKeyboardInteraction=e}if(e)return void this._clearTimeout();const n=t.relatedTarget;this._element===n||this._element.contains(n)||this._maybeScheduleHide()}_setListeners(){o.on(this._element,Vo,t=>this._onInteraction(t,!0)),o.on(this._element,Ho,t=>this._onInteraction(t,!1)),o.on(this._element,xo,t=>this._onInteraction(t,!0)),o.on(this._element,Ko,t=>this._onInteraction(t,!1))}_clearTimeout(){clearTimeout(this._timeout),this._timeout=null}static jQueryInterface(t){return this.each(function(){const e=it.getOrCreateInstance(this,t);if("string"==typeof t){if(typeof e[t]>"u")throw new TypeError(`No method named "${t}"`);e[t](this)}})}}return ct(it),f(it),{Alert:Z,Button:J,Carousel:F,Collapse:B,Dropdown:E,Modal:M,Offcanvas:y,Popover:mt,ScrollSpy:nt,Tab:V,Toast:it,Tooltip:R}}); \ No newline at end of file diff --git a/docs/sitemap.xml b/docs/sitemap.xml index ebcccbf5..91989978 100644 --- a/docs/sitemap.xml +++ b/docs/sitemap.xml @@ -6,6 +6,12 @@ monthly 1.0 + + https://reportgenerator.io/features.html + 2023-01-03 + monthly + 0.6 + https://reportgenerator.io/getstarted.html 2023-01-03 diff --git a/docs/usage.html b/docs/usage.html index d5a95ede..c6341b21 100644 --- a/docs/usage.html +++ b/docs/usage.html @@ -22,5 +22,5 @@ h.appendChild(s); } - + \ No newline at end of file diff --git a/global.json b/global.json index 5a6e2c39..928f5cab 100644 --- a/global.json +++ b/global.json @@ -1,6 +1,6 @@ { "sdk": { - "version": "7.0.101", + "version": "7.0.102", "rollForward": "latestMajor" } } \ No newline at end of file diff --git a/src/AngularComponents/package-lock.json b/src/AngularComponents/package-lock.json index 9b3be775..023e704d 100644 --- a/src/AngularComponents/package-lock.json +++ b/src/AngularComponents/package-lock.json @@ -8,22 +8,22 @@ "name": "coverage-app", "version": "0.0.0", "dependencies": { - "@angular/animations": "^15.0.1", - "@angular/common": "^15.0.1", - "@angular/compiler": "^15.0.1", - "@angular/core": "^15.0.1", - "@angular/forms": "^15.0.1", - "@angular/platform-browser": "^15.0.1", - "@angular/platform-browser-dynamic": "^15.0.1", - "@angular/router": "^15.0.1", + "@angular/animations": "^15.1.0", + "@angular/common": "^15.1.0", + "@angular/compiler": "^15.1.0", + "@angular/core": "^15.1.0", + "@angular/forms": "^15.1.0", + "@angular/platform-browser": "^15.1.0", + "@angular/platform-browser-dynamic": "^15.1.0", + "@angular/router": "^15.1.0", "rxjs": "~7.4.0", "tslib": "^2.3.0", "zone.js": "~0.11.4" }, "devDependencies": { - "@angular-devkit/build-angular": "^15.0.1", - "@angular/cli": "^15.0.1", - "@angular/compiler-cli": "^15.0.1", + "@angular-devkit/build-angular": "^15.1.1", + "@angular/cli": "^15.1.1", + "@angular/compiler-cli": "^15.1.0", "@types/node": "^12.11.1", "typescript": "~4.8.4" } @@ -42,12 +42,12 @@ } }, "node_modules/@angular-devkit/architect": { - "version": "0.1500.1", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1500.1.tgz", - "integrity": "sha512-HoGMdUB9z1brPq3f0m3la6N0ODBarH5LjZN+5KyIMdXgJJN5y+gs2H6yCPQfJT56fqtp/cckxOYcLAFTf45Tcg==", + "version": "0.1501.1", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1501.1.tgz", + "integrity": "sha512-2uDa/+nVGwQ5X6UJtB14V37SbD/64WSg0hKyX5z1yp6wYrSuk7PWV8hddIsiYM3aIT5wTGqfLil6NkV4G/BzQw==", "dev": true, "dependencies": { - "@angular-devkit/core": "15.0.1", + "@angular-devkit/core": "15.1.1", "rxjs": "6.6.7" }, "engines": { @@ -75,37 +75,37 @@ "dev": true }, "node_modules/@angular-devkit/build-angular": { - "version": "15.0.1", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-15.0.1.tgz", - "integrity": "sha512-oOeS4++bgjxQZlV69p0gOAarHYgn3kO6Ub3HO0IxDiiYSiWdMILGmam7uXSKhDK+NJp3ZETivrm2pxgUihMpfg==", + "version": "15.1.1", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-15.1.1.tgz", + "integrity": "sha512-9eziOA4uZwIg8OYjebkKz/yqQ1WIqajGrXr/goaAKcKhr8BprWXs5NhkIzMrELekA/dZOkR6Gpwz8d/XwplCww==", "dev": true, "dependencies": { "@ampproject/remapping": "2.2.0", - "@angular-devkit/architect": "0.1500.1", - "@angular-devkit/build-webpack": "0.1500.1", - "@angular-devkit/core": "15.0.1", - "@babel/core": "7.20.2", - "@babel/generator": "7.20.4", + "@angular-devkit/architect": "0.1501.1", + "@angular-devkit/build-webpack": "0.1501.1", + "@angular-devkit/core": "15.1.1", + "@babel/core": "7.20.12", + "@babel/generator": "7.20.7", "@babel/helper-annotate-as-pure": "7.18.6", - "@babel/plugin-proposal-async-generator-functions": "7.20.1", - "@babel/plugin-transform-async-to-generator": "7.18.6", + "@babel/plugin-proposal-async-generator-functions": "7.20.7", + "@babel/plugin-transform-async-to-generator": "7.20.7", "@babel/plugin-transform-runtime": "7.19.6", "@babel/preset-env": "7.20.2", - "@babel/runtime": "7.20.1", - "@babel/template": "7.18.10", + "@babel/runtime": "7.20.7", + "@babel/template": "7.20.7", "@discoveryjs/json-ext": "0.5.7", - "@ngtools/webpack": "15.0.1", + "@ngtools/webpack": "15.1.1", "ansi-colors": "4.1.3", "autoprefixer": "10.4.13", - "babel-loader": "9.1.0", + "babel-loader": "9.1.2", "babel-plugin-istanbul": "6.1.1", "browserslist": "4.21.4", - "cacache": "17.0.2", + "cacache": "17.0.4", "chokidar": "3.5.3", "copy-webpack-plugin": "11.0.0", "critters": "0.0.16", - "css-loader": "6.7.1", - "esbuild-wasm": "0.15.13", + "css-loader": "6.7.3", + "esbuild-wasm": "0.16.17", "glob": "8.0.3", "https-proxy-agent": "5.0.1", "inquirer": "8.2.4", @@ -115,27 +115,27 @@ "less-loader": "11.1.0", "license-webpack-plugin": "4.0.2", "loader-utils": "3.2.1", - "magic-string": "0.26.7", - "mini-css-extract-plugin": "2.6.1", + "magic-string": "0.27.0", + "mini-css-extract-plugin": "2.7.2", "open": "8.4.0", "ora": "5.4.1", "parse5-html-rewriting-stream": "6.0.1", "piscina": "3.2.0", - "postcss": "8.4.19", - "postcss-loader": "7.0.1", + "postcss": "8.4.21", + "postcss-loader": "7.0.2", "resolve-url-loader": "5.0.0", "rxjs": "6.6.7", - "sass": "1.56.1", + "sass": "1.57.1", "sass-loader": "13.2.0", "semver": "7.3.8", "source-map-loader": "4.0.1", "source-map-support": "0.5.21", - "terser": "5.15.1", + "terser": "5.16.1", "text-table": "0.2.0", "tree-kill": "1.2.2", "tslib": "2.4.1", "webpack": "5.75.0", - "webpack-dev-middleware": "5.3.3", + "webpack-dev-middleware": "6.0.1", "webpack-dev-server": "4.11.1", "webpack-merge": "5.8.0", "webpack-subresource-integrity": "5.1.0" @@ -146,7 +146,7 @@ "yarn": ">= 1.13.0" }, "optionalDependencies": { - "esbuild": "0.15.13" + "esbuild": "0.16.17" }, "peerDependencies": { "@angular/compiler-cli": "^15.0.0", @@ -157,7 +157,7 @@ "ng-packagr": "^15.0.0", "protractor": "^7.0.0", "tailwindcss": "^2.0.0 || ^3.0.0", - "typescript": "~4.8.2" + "typescript": ">=4.8.2 <5.0" }, "peerDependenciesMeta": { "@angular/localize": { @@ -183,6 +183,45 @@ } } }, + "node_modules/@angular-devkit/build-angular/node_modules/@babel/core": { + "version": "7.20.12", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.12.tgz", + "integrity": "sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.20.7", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-module-transforms": "^7.20.11", + "@babel/helpers": "^7.20.7", + "@babel/parser": "^7.20.7", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.12", + "@babel/types": "^7.20.7", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.2", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@angular-devkit/build-angular/node_modules/@babel/core/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/@angular-devkit/build-angular/node_modules/brace-expansion": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", @@ -241,28 +280,13 @@ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true }, - "node_modules/@angular-devkit/build-angular/node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@angular-devkit/build-webpack": { - "version": "0.1500.1", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1500.1.tgz", - "integrity": "sha512-uBikn5O48qZSGzejWShpTHLtV2Wg6U5N0CS7CYPfkwD3CIc7Rg3wioPzK/NL9OEe36vTGsEvOhu/kOOp+PptUA==", + "version": "0.1501.1", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1501.1.tgz", + "integrity": "sha512-b2Vyhx3JRHi179kSB/zc7G+/uuWq7S/7pZAau0Ry17N6Ihg2BwpLxBe0mvKcDecLmw+1ozBv2WLRCnxKXLZ4mw==", "dev": true, "dependencies": { - "@angular-devkit/architect": "0.1500.1", + "@angular-devkit/architect": "0.1501.1", "rxjs": "6.6.7" }, "engines": { @@ -294,12 +318,12 @@ "dev": true }, "node_modules/@angular-devkit/core": { - "version": "15.0.1", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-15.0.1.tgz", - "integrity": "sha512-Q8sF561Wf53ufdrKWvsqebbD5EjJpdHaPjg5nAHYwPtwD1ciG7oL55cQFs0LYqy9Ux6k34NimodhH3QgXYYPFQ==", + "version": "15.1.1", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-15.1.1.tgz", + "integrity": "sha512-wss76zfw4oPHs+Dd0OIbLv8os/BXDkDErj9hCjBbycQN768EqF8z7EBNGy6SKHYhmfXJy9REUkEgt9qPMJb4CQ==", "dev": true, "dependencies": { - "ajv": "8.11.0", + "ajv": "8.12.0", "ajv-formats": "2.1.1", "jsonc-parser": "3.2.0", "rxjs": "6.6.7", @@ -338,14 +362,14 @@ "dev": true }, "node_modules/@angular-devkit/schematics": { - "version": "15.0.1", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-15.0.1.tgz", - "integrity": "sha512-DS9t+xl1lOphYkdz17FwRO0LUs5IYBpyqr3O8SqrXESOhVUXlbcEhVtVeQiYxfeQZVRPWVR64Tf6E6ELXcGLYw==", + "version": "15.1.1", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-15.1.1.tgz", + "integrity": "sha512-ullwoxFT9aMhQR2aNwb/66A6l4HTgp4I6thbBywt86nn+ZGbJCzLKRdv2vmYh9JaxZYh1pydxWjKLEUdlycKXg==", "dev": true, "dependencies": { - "@angular-devkit/core": "15.0.1", + "@angular-devkit/core": "15.1.1", "jsonc-parser": "3.2.0", - "magic-string": "0.26.7", + "magic-string": "0.27.0", "ora": "5.4.1", "rxjs": "6.6.7" }, @@ -374,9 +398,9 @@ "dev": true }, "node_modules/@angular/animations": { - "version": "15.0.1", - "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-15.0.1.tgz", - "integrity": "sha512-GfxqpRcoRfQNS1pVA+PadcgCGJSFag07jFJIQUHX3HZkI/4PyXGn/7ptgebN3tBjy+ASk4PBOQP/ntGbrr55zw==", + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-15.1.0.tgz", + "integrity": "sha512-uBw1iQVJ3QS5e/gypsD7M50O//9GvpphgGqt9ZClknyD8dxO/YryEB+Kt4GNvNQxRKhRTksD8r4KaodukdQ15w==", "dependencies": { "tslib": "^2.3.0" }, @@ -384,29 +408,29 @@ "node": "^14.20.0 || ^16.13.0 || >=18.10.0" }, "peerDependencies": { - "@angular/core": "15.0.1" + "@angular/core": "15.1.0" } }, "node_modules/@angular/cli": { - "version": "15.0.1", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-15.0.1.tgz", - "integrity": "sha512-ntwJxtzGuHl07eb56x8WM6tQ3YhBKCP61o8WoHBrOBEFNm9rEV9C2webMIWYVFAa0iG1pmDq6U5Qc7WFPM9rtg==", + "version": "15.1.1", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-15.1.1.tgz", + "integrity": "sha512-539I3B5yTasaX/EQrXZyXOc9eZUyVBxMWiGj3/bmlCsft7/Y8J+A92uftjxIO4P8lYWzSdSxFT3Bu1zI1b6yzw==", "dev": true, "dependencies": { - "@angular-devkit/architect": "0.1500.1", - "@angular-devkit/core": "15.0.1", - "@angular-devkit/schematics": "15.0.1", - "@schematics/angular": "15.0.1", + "@angular-devkit/architect": "0.1501.1", + "@angular-devkit/core": "15.1.1", + "@angular-devkit/schematics": "15.1.1", + "@schematics/angular": "15.1.1", "@yarnpkg/lockfile": "1.1.0", "ansi-colors": "4.1.3", "ini": "3.0.1", "inquirer": "8.2.4", "jsonc-parser": "3.2.0", - "npm-package-arg": "9.1.2", + "npm-package-arg": "10.1.0", "npm-pick-manifest": "8.0.1", "open": "8.4.0", "ora": "5.4.1", - "pacote": "15.0.6", + "pacote": "15.0.8", "resolve": "1.22.1", "semver": "7.3.8", "symbol-observable": "4.0.0", @@ -421,25 +445,10 @@ "yarn": ">= 1.13.0" } }, - "node_modules/@angular/cli/node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@angular/common": { - "version": "15.0.1", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-15.0.1.tgz", - "integrity": "sha512-XRD1Dj2aINyp5yYueCuwLU1y84z+ZFXeO84oNfwIu0unHszuo02iIzrV+yCm/ATwt6qUkIbe6xhZNjUorZecyA==", + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-15.1.0.tgz", + "integrity": "sha512-O0JKOeJ7dFcd/mnnfm4xQOYTAc+yL+OrRpGte7z84lKPU2fupLpGW/30tHUy1TXixsANyTLC3cTVXTY5szPdqg==", "dependencies": { "tslib": "^2.3.0" }, @@ -447,14 +456,14 @@ "node": "^14.20.0 || ^16.13.0 || >=18.10.0" }, "peerDependencies": { - "@angular/core": "15.0.1", + "@angular/core": "15.1.0", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/compiler": { - "version": "15.0.1", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-15.0.1.tgz", - "integrity": "sha512-4talkxip79XPfoj69qgY8VXV1KIBKOyZCRWHhNVqMdECyw/fceVWN4r8kDL0qOTBh1CKmhoQFXQilr9g7nFatA==", + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-15.1.0.tgz", + "integrity": "sha512-+ky5Cvgps725Q/KdgsYzi/fe9LbT5ujhZoT9N5k+tYTJsepMUrpExFwMFkWrdMUYTK7DaxC9ufjZ4WZmHVhFoA==", "dependencies": { "tslib": "^2.3.0" }, @@ -462,7 +471,7 @@ "node": "^14.20.0 || ^16.13.0 || >=18.10.0" }, "peerDependencies": { - "@angular/core": "15.0.1" + "@angular/core": "15.1.0" }, "peerDependenciesMeta": { "@angular/core": { @@ -471,19 +480,19 @@ } }, "node_modules/@angular/compiler-cli": { - "version": "15.0.1", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-15.0.1.tgz", - "integrity": "sha512-M2VsKBw8dQMC5p3PmpM+EBZAZ9Qk/rGX+aIHYBGzsgGFqYMEcz6Nxrj4v6I3Hta7tW7QEVXf883rXiWxHlwtbw==", + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-15.1.0.tgz", + "integrity": "sha512-mKeXolM/plP9ebkHy3YGxHx0Yg63d09S0QCpdIcmvrbJpaPeM2D1SAkbDpO46T4BsfgfWHtSYByb5JcesrYrpQ==", "dev": true, "dependencies": { - "@babel/core": "^7.17.2", + "@babel/core": "7.19.3", + "@jridgewell/sourcemap-codec": "^1.4.14", "chokidar": "^3.0.0", "convert-source-map": "^1.5.1", "dependency-graph": "^0.11.0", - "magic-string": "^0.26.0", + "magic-string": "^0.27.0", "reflect-metadata": "^0.1.2", "semver": "^7.0.0", - "sourcemap-codec": "^1.4.8", "tslib": "^2.3.0", "yargs": "^17.2.1" }, @@ -496,14 +505,53 @@ "node": "^14.20.0 || ^16.13.0 || >=18.10.0" }, "peerDependencies": { - "@angular/compiler": "15.0.1", - "typescript": ">=4.8.2 <4.9" + "@angular/compiler": "15.1.0", + "typescript": ">=4.8.2 <5.0" + } + }, + "node_modules/@angular/compiler-cli/node_modules/@babel/core": { + "version": "7.19.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.19.3.tgz", + "integrity": "sha512-WneDJxdsjEvyKtXKsaBGbDeiyOjR5vYq4HcShxnIbG0qixpoHjI3MqeZM9NDvsojNCEBItQE4juOo/bU6e72gQ==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.19.3", + "@babel/helper-compilation-targets": "^7.19.3", + "@babel/helper-module-transforms": "^7.19.0", + "@babel/helpers": "^7.19.0", + "@babel/parser": "^7.19.3", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.19.3", + "@babel/types": "^7.19.3", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@angular/compiler-cli/node_modules/@babel/core/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" } }, "node_modules/@angular/core": { - "version": "15.0.1", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-15.0.1.tgz", - "integrity": "sha512-idaKf9hhguyGn/yj5KMHIUEvW4PpeYcwlRUSoEskQC1799BsXwJyV0AwZ67GH1ltnAj34gbhMhDedcCLdhOffA==", + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-15.1.0.tgz", + "integrity": "sha512-HiwctuR73MuLoLeP35j9xF8/SIg7ELx+iHZtp/TBfoH+LOmjWbdrAdVAPTbqnxvK0aJG+527dhgC6tBOXgBTcg==", "dependencies": { "tslib": "^2.3.0" }, @@ -516,9 +564,9 @@ } }, "node_modules/@angular/forms": { - "version": "15.0.1", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-15.0.1.tgz", - "integrity": "sha512-gNj/fY7B7swczWI3jpJK4904W0WHCrYviZB8m97P4MkcxdMfQezp4VoRsj+vIkKGtUPUWje3uIjzqodhJlxIJA==", + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-15.1.0.tgz", + "integrity": "sha512-MUAbruJng0iG/cHhCkDNrh31Y54upgBUjjkE4DnoHv138Wa7vba+GMYv2tTrs4rPWnB9vPziZgI0xIi/oSGxzg==", "dependencies": { "tslib": "^2.3.0" }, @@ -526,16 +574,16 @@ "node": "^14.20.0 || ^16.13.0 || >=18.10.0" }, "peerDependencies": { - "@angular/common": "15.0.1", - "@angular/core": "15.0.1", - "@angular/platform-browser": "15.0.1", + "@angular/common": "15.1.0", + "@angular/core": "15.1.0", + "@angular/platform-browser": "15.1.0", "rxjs": "^6.5.3 || ^7.4.0" } }, "node_modules/@angular/platform-browser": { - "version": "15.0.1", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-15.0.1.tgz", - "integrity": "sha512-fH0EfRgbQC0ql8V1ZWVfF75H9lSjT2T6uGfR8cBdRAO/RWwWgx/TfFsjdWAZtjuKRZnKY3wRQ/yVYeQarC3n0Q==", + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-15.1.0.tgz", + "integrity": "sha512-yuJweAR+rJhWWHM4Im3Iy6S4+W3OtcVHijcqrxfVxiA9ZHbDw/jpYDi06ZZIgfnNyGWi5/BzJbHvxH3b0lAo5Q==", "dependencies": { "tslib": "^2.3.0" }, @@ -543,9 +591,9 @@ "node": "^14.20.0 || ^16.13.0 || >=18.10.0" }, "peerDependencies": { - "@angular/animations": "15.0.1", - "@angular/common": "15.0.1", - "@angular/core": "15.0.1" + "@angular/animations": "15.1.0", + "@angular/common": "15.1.0", + "@angular/core": "15.1.0" }, "peerDependenciesMeta": { "@angular/animations": { @@ -554,9 +602,9 @@ } }, "node_modules/@angular/platform-browser-dynamic": { - "version": "15.0.1", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-15.0.1.tgz", - "integrity": "sha512-GyD7BIWGiKGA9KgXmSQLEWiIZjGMacBdvJ8KsRKFpKfxA9bfaC5J6dwTqNy+l/Z9IcT2VQJ8Ba0gEHHtkfemPA==", + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-15.1.0.tgz", + "integrity": "sha512-ukyycXkuu4Ah/35cbN4pEB91D2PK5eZVbJ+liCD6uRb4UI3X+QVg6Qz6MoIctVAlTV6tWK20T81zoux9SzWKsg==", "dependencies": { "tslib": "^2.3.0" }, @@ -564,16 +612,16 @@ "node": "^14.20.0 || ^16.13.0 || >=18.10.0" }, "peerDependencies": { - "@angular/common": "15.0.1", - "@angular/compiler": "15.0.1", - "@angular/core": "15.0.1", - "@angular/platform-browser": "15.0.1" + "@angular/common": "15.1.0", + "@angular/compiler": "15.1.0", + "@angular/core": "15.1.0", + "@angular/platform-browser": "15.1.0" } }, "node_modules/@angular/router": { - "version": "15.0.1", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-15.0.1.tgz", - "integrity": "sha512-L+GgFNAgITyyD7CTTtOjz1OgFu00+xzjANLfOMs8wGW8OsqSS68lsXF9QexbPGm+e0n+rmQjYOZcsi0Bti4sCQ==", + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-15.1.0.tgz", + "integrity": "sha512-78ItVVXOYdu/RRxruHwSmtNxEP2clx+afHKrkwc4e7/6uxVr4rl0VQhO6qHYme/bBtbLIcBZGJoSyoUg/xUSvQ==", "dependencies": { "tslib": "^2.3.0" }, @@ -581,9 +629,9 @@ "node": "^14.20.0 || ^16.13.0 || >=18.10.0" }, "peerDependencies": { - "@angular/common": "15.0.1", - "@angular/core": "15.0.1", - "@angular/platform-browser": "15.0.1", + "@angular/common": "15.1.0", + "@angular/core": "15.1.0", + "@angular/platform-browser": "15.1.0", "rxjs": "^6.5.3 || ^7.4.0" } }, @@ -606,9 +654,9 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.20.1", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.1.tgz", - "integrity": "sha512-EWZ4mE2diW3QALKvDMiXnbZpRvlj+nayZ112nK93SnhqOtpdsbVD4W+2tEoT3YNBAG9RBR0ISY758ZkOgsn6pQ==", + "version": "7.20.10", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.10.tgz", + "integrity": "sha512-sEnuDPpOJR/fcafHMjpcpGN5M2jbUGUHwmuWKM/YdPzeEDJg8bgmbcWQFUfE32MQjti1koACvoPVsDe8Uq+idg==", "dev": true, "engines": { "node": ">=6.9.0" @@ -654,12 +702,12 @@ } }, "node_modules/@babel/generator": { - "version": "7.20.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.4.tgz", - "integrity": "sha512-luCf7yk/cm7yab6CAW1aiFnmEfBJplb/JojV56MYEK7ziWfGmFlTfmL9Ehwfy4gFhbjBfWO1wj7/TuSbVNEEtA==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.7.tgz", + "integrity": "sha512-7wqMOJq8doJMZmP4ApXTzLxSr7+oO2jroJURrVEp6XShrQUObV8Tq/D0NCcoYg2uHqUrjzO0zwBjoYzelxK+sw==", "dev": true, "dependencies": { - "@babel/types": "^7.20.2", + "@babel/types": "^7.20.7", "@jridgewell/gen-mapping": "^0.3.2", "jsesc": "^2.5.1" }, @@ -707,14 +755,15 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz", - "integrity": "sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz", + "integrity": "sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.20.0", + "@babel/compat-data": "^7.20.5", "@babel/helper-validator-option": "^7.18.6", "browserslist": "^4.21.3", + "lru-cache": "^5.1.1", "semver": "^6.3.0" }, "engines": { @@ -724,6 +773,15 @@ "@babel/core": "^7.0.0" } }, + "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, "node_modules/@babel/helper-compilation-targets/node_modules/semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", @@ -733,6 +791,12 @@ "semver": "bin/semver.js" } }, + "node_modules/@babel/helper-compilation-targets/node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, "node_modules/@babel/helper-create-class-features-plugin": { "version": "7.20.2", "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.20.2.tgz", @@ -867,9 +931,9 @@ } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.2.tgz", - "integrity": "sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA==", + "version": "7.20.11", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz", + "integrity": "sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg==", "dev": true, "dependencies": { "@babel/helper-environment-visitor": "^7.18.9", @@ -877,9 +941,9 @@ "@babel/helper-simple-access": "^7.20.2", "@babel/helper-split-export-declaration": "^7.18.6", "@babel/helper-validator-identifier": "^7.19.1", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.20.1", - "@babel/types": "^7.20.2" + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.10", + "@babel/types": "^7.20.7" }, "engines": { "node": ">=6.9.0" @@ -1019,14 +1083,14 @@ } }, "node_modules/@babel/helpers": { - "version": "7.20.1", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.1.tgz", - "integrity": "sha512-J77mUVaDTUJFZ5BpP6mMn6OIl3rEWymk2ZxDBQJUG3P+PbmyMcF3bYWvz0ma69Af1oobDqT/iAsvzhB58xhQUg==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.7.tgz", + "integrity": "sha512-PBPjs5BppzsGaxHQCDKnZ6Gd9s6xl8bBCluz3vEInLGRJmnZan4F6BYCeqtyXqkk4W5IlPmjK4JlOuZkpJ3xZA==", "dev": true, "dependencies": { - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.20.1", - "@babel/types": "^7.20.0" + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.7", + "@babel/types": "^7.20.7" }, "engines": { "node": ">=6.9.0" @@ -1047,9 +1111,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.20.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.3.tgz", - "integrity": "sha512-OP/s5a94frIPXwjzEcv5S/tpQfc6XhxYUnmWpgdqMWGgYCuErA3SzozaRAMQgSZWKeTJxht9aWAkUY+0UzvOFg==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.7.tgz", + "integrity": "sha512-T3Z9oHybU+0vZlY9CiDSJQTD5ZapcW18ZctFMi0MOAl/4BjFF4ul7NVSARLdbGO5vDqy9eQiGTV0LtKfvCYvcg==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -1091,13 +1155,13 @@ } }, "node_modules/@babel/plugin-proposal-async-generator-functions": { - "version": "7.20.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.1.tgz", - "integrity": "sha512-Gh5rchzSwE4kC+o/6T8waD0WHEQIsDmjltY8WnWRXHUdH8axZhuH86Ov9M72YhJfDrZseQwuuWaaIT/TmePp3g==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz", + "integrity": "sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==", "dev": true, "dependencies": { "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-plugin-utils": "^7.19.0", + "@babel/helper-plugin-utils": "^7.20.2", "@babel/helper-remap-async-to-generator": "^7.18.9", "@babel/plugin-syntax-async-generators": "^7.8.4" }, @@ -1547,14 +1611,14 @@ } }, "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.18.6.tgz", - "integrity": "sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.20.7.tgz", + "integrity": "sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q==", "dev": true, "dependencies": { "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-remap-async-to-generator": "^7.18.6" + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-remap-async-to-generator": "^7.18.9" }, "engines": { "node": ">=6.9.0" @@ -2181,45 +2245,45 @@ } }, "node_modules/@babel/runtime": { - "version": "7.20.1", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.1.tgz", - "integrity": "sha512-mrzLkl6U9YLF8qpqI7TB82PESyEGjm/0Ly91jG575eVxMMlb8fYfOXFZIJ8XfLrJZQbm7dlKry2bJmXBUEkdFg==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.7.tgz", + "integrity": "sha512-UF0tvkUtxwAgZ5W/KrkHf0Rn0fdnLDU9ScxBrEVNUprE/MzirjK4MJUX1/BVDv00Sv8cljtukVK1aky++X1SjQ==", "dev": true, "dependencies": { - "regenerator-runtime": "^0.13.10" + "regenerator-runtime": "^0.13.11" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/template": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", - "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", + "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", "dev": true, "dependencies": { "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.18.10", - "@babel/types": "^7.18.10" + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.20.1", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.1.tgz", - "integrity": "sha512-d3tN8fkVJwFLkHkBN479SOsw4DMZnz8cdbL/gvuDuzy3TS6Nfw80HuQqhw1pITbIruHyh7d1fMA47kWzmcUEGA==", + "version": "7.20.12", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.12.tgz", + "integrity": "sha512-MsIbFN0u+raeja38qboyF8TIT7K0BFzz/Yd/77ta4MsUsmP2RAnidIlwq7d5HFQrH/OZJecGV6B71C4zAgpoSQ==", "dev": true, "dependencies": { "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.20.1", + "@babel/generator": "^7.20.7", "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-function-name": "^7.19.0", "@babel/helper-hoist-variables": "^7.18.6", "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.20.1", - "@babel/types": "^7.20.0", + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -2228,9 +2292,9 @@ } }, "node_modules/@babel/types": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.2.tgz", - "integrity": "sha512-FnnvsNWgZCr232sqtXggapvlkk/tuwR/qhGzcmxI0GXLCjmPYQPzio2FbdlWuY6y1sHFfQKk+rRbUZ9VStQMog==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz", + "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==", "dev": true, "dependencies": { "@babel/helper-string-parser": "^7.19.4", @@ -2251,9 +2315,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.15.13", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.15.13.tgz", - "integrity": "sha512-RY2fVI8O0iFUNvZirXaQ1vMvK0xhCcl0gqRj74Z6yEiO1zAUa7hbsdwZM1kzqbxHK7LFyMizipfXT3JME+12Hw==", + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.16.17.tgz", + "integrity": "sha512-N9x1CMXVhtWEAMS7pNNONyA14f71VPQN9Cnavj1XQh6T7bskqiLLrSca4O0Vr8Wdcga943eThxnVp3JLnBMYtw==", "cpu": [ "arm" ], @@ -2266,134 +2330,454 @@ "node": ">=12" } }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.15.13", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.13.tgz", - "integrity": "sha512-+BoyIm4I8uJmH/QDIH0fu7MG0AEx9OXEDXnqptXCwKOlOqZiS4iraH1Nr7/ObLMokW3sOCeBNyD68ATcV9b9Ag==", + "node_modules/@esbuild/android-arm64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.16.17.tgz", + "integrity": "sha512-MIGl6p5sc3RDTLLkYL1MyL8BMRN4tLMRCn+yRJJmEDvYZ2M7tmAf80hx1kbNEUX2KJ50RRtxZ4JHLvCfuB6kBg==", "cpu": [ - "loong64" + "arm64" ], "dev": true, "optional": true, "os": [ - "linux" + "android" ], "engines": { "node": ">=12" } }, - "node_modules/@gar/promisify": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", - "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", - "dev": true - }, - "node_modules/@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "node_modules/@esbuild/android-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.16.17.tgz", + "integrity": "sha512-a3kTv3m0Ghh4z1DaFEuEDfz3OLONKuFvI4Xqczqx4BqLyuFaFkuaG4j2MtA6fuWEFeC5x9IvqnX7drmRq/fyAQ==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, + "optional": true, + "os": [ + "android" + ], "engines": { - "node": ">=8" + "node": ">=12" } }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "node_modules/@esbuild/darwin-arm64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.16.17.tgz", + "integrity": "sha512-/2agbUEfmxWHi9ARTX6OQ/KgXnOWfsNlTeLcoV7HSuSTv63E4DqtAc+2XqGw1KHxKMHGZgbVCZge7HXWX9Vn+w==", + "cpu": [ + "arm64" + ], "dev": true, + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=8" + "node": ">=12" } }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", - "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "node_modules/@esbuild/darwin-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.16.17.tgz", + "integrity": "sha512-2By45OBHulkd9Svy5IOCZt376Aa2oOkiE9QWUK9fe6Tb+WDr8hXL3dpqi+DeLiMed8tVXspzsTAvd0jUl96wmg==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10" - }, + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=6.0.0" + "node": ">=12" } }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.7.tgz", - "integrity": "sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA==", + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.17.tgz", + "integrity": "sha512-mt+cxZe1tVx489VTb4mBAOo2aKSnJ33L9fr25JXpqQqzbUIw/yzIzi+NHwAXK2qYV1lEFp4OoVeThGjUbmWmdw==", + "cpu": [ + "arm64" + ], "dev": true, + "optional": true, + "os": [ + "freebsd" + ], "engines": { - "node": ">=6.0.0" + "node": ">=12" } }, - "node_modules/@jridgewell/set-array": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.1.tgz", - "integrity": "sha512-Ct5MqZkLGEXTVmQYbGtx9SVqD2fqwvdubdps5D3djjAkgkKwT918VNOz65pEHFaYTeWcukmJmH5SwsA9Tn2ObQ==", + "node_modules/@esbuild/freebsd-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.16.17.tgz", + "integrity": "sha512-8ScTdNJl5idAKjH8zGAsN7RuWcyHG3BAvMNpKOBaqqR7EbUhhVHOqXRdL7oZvz8WNHL2pr5+eIT5c65kA6NHug==", + "cpu": [ + "x64" + ], "dev": true, + "optional": true, + "os": [ + "freebsd" + ], "engines": { - "node": ">=6.0.0" + "node": ">=12" } }, - "node_modules/@jridgewell/source-map": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", - "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "node_modules/@esbuild/linux-arm": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.16.17.tgz", + "integrity": "sha512-iihzrWbD4gIT7j3caMzKb/RsFFHCwqqbrbH9SqUSRrdXkXaygSZCZg1FybsZz57Ju7N/SHEgPyaR0LZ8Zbe9gQ==", + "cpu": [ + "arm" + ], "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" } }, - "node_modules/@jridgewell/source-map/node_modules/@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "node_modules/@esbuild/linux-arm64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.16.17.tgz", + "integrity": "sha512-7S8gJnSlqKGVJunnMCrXHU9Q8Q/tQIxk/xL8BqAP64wchPCTzuM6W3Ra8cIa1HIflAvDnNOt2jaL17vaW+1V0g==", + "cpu": [ + "arm64" + ], "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6.0.0" + "node": ">=12" } }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.13", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz", - "integrity": "sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w==", - "dev": true - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.13", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.13.tgz", - "integrity": "sha512-o1xbKhp9qnIAoHJSWd6KlCZfqslL4valSF81H8ImioOAxluWYWOpWkpyktY2vnt4tbrX9XYaxovq6cgowaJp2w==", + "node_modules/@esbuild/linux-ia32": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.16.17.tgz", + "integrity": "sha512-kiX69+wcPAdgl3Lonh1VI7MBr16nktEvOfViszBSxygRQqSpzv7BffMKRPMFwzeJGPxcio0pdD3kYQGpqQ2SSg==", + "cpu": [ + "ia32" + ], "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" } }, - "node_modules/@leichtgewicht/ip-codec": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", - "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==", - "dev": true - }, - "node_modules/@ngtools/webpack": { - "version": "15.0.1", - "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-15.0.1.tgz", - "integrity": "sha512-HIAWWJvmhktcyoBQwP1MnKyuC4bcs85z2pLGyPtud69N0kCQU4lq0FuGeatiSXMs4dzpz9wRx4NuAxvL0exGrQ==", + "node_modules/@esbuild/linux-loong64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.16.17.tgz", + "integrity": "sha512-dTzNnQwembNDhd654cA4QhbS9uDdXC3TKqMJjgOWsC0yNCbpzfWoXdZvp0mY7HU6nzk5E0zpRGGx3qoQg8T2DQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.16.17.tgz", + "integrity": "sha512-ezbDkp2nDl0PfIUn0CsQ30kxfcLTlcx4Foz2kYv8qdC6ia2oX5Q3E/8m6lq84Dj/6b0FrkgD582fJMIfHhJfSw==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.16.17.tgz", + "integrity": "sha512-dzS678gYD1lJsW73zrFhDApLVdM3cUF2MvAa1D8K8KtcSKdLBPP4zZSLy6LFZ0jYqQdQ29bjAHJDgz0rVbLB3g==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.16.17.tgz", + "integrity": "sha512-ylNlVsxuFjZK8DQtNUwiMskh6nT0vI7kYl/4fZgV1llP5d6+HIeL/vmmm3jpuoo8+NuXjQVZxmKuhDApK0/cKw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.16.17.tgz", + "integrity": "sha512-gzy7nUTO4UA4oZ2wAMXPNBGTzZFP7mss3aKR2hH+/4UUkCOyqmjXiKpzGrY2TlEUhbbejzXVKKGazYcQTZWA/w==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.16.17.tgz", + "integrity": "sha512-mdPjPxfnmoqhgpiEArqi4egmBAMYvaObgn4poorpUaqmvzzbvqbowRllQ+ZgzGVMGKaPkqUmPDOOFQRUFDmeUw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.16.17.tgz", + "integrity": "sha512-/PzmzD/zyAeTUsduZa32bn0ORug+Jd1EGGAUJvqfeixoEISYpGnAezN6lnJoskauoai0Jrs+XSyvDhppCPoKOA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.16.17.tgz", + "integrity": "sha512-2yaWJhvxGEz2RiftSk0UObqJa/b+rIAjnODJgv2GbGGpRwAfpgzyrg1WLK8rqA24mfZa9GvpjLcBBg8JHkoodg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.16.17.tgz", + "integrity": "sha512-xtVUiev38tN0R3g8VhRfN7Zl42YCJvyBhRKw1RJjwE1d2emWTVToPLNEQj/5Qxc6lVFATDiy6LjVHYhIPrLxzw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.16.17.tgz", + "integrity": "sha512-ga8+JqBDHY4b6fQAmOgtJJue36scANy4l/rL97W+0wYmijhxKetzZdKOJI7olaBaMhWt8Pac2McJdZLxXWUEQw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.16.17.tgz", + "integrity": "sha512-WnsKaf46uSSF/sZhwnqE4L/F89AYNMiD4YtEcYekBt9Q7nj0DiId2XH2Ng2PHM54qi5oPrQ8luuzGszqi/veig==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.16.17.tgz", + "integrity": "sha512-y+EHuSchhL7FjHgvQL/0fnnFmO4T1bhvWANX6gcnqTjtnKWbTvUMCpGnv2+t+31d7RzyEAYAd4u2fnIhHL6N/Q==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@gar/promisify": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", + "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", + "dev": true + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.7.tgz", + "integrity": "sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.1.tgz", + "integrity": "sha512-Ct5MqZkLGEXTVmQYbGtx9SVqD2fqwvdubdps5D3djjAkgkKwT918VNOz65pEHFaYTeWcukmJmH5SwsA9Tn2ObQ==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", + "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "node_modules/@jridgewell/source-map/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.13.tgz", + "integrity": "sha512-o1xbKhp9qnIAoHJSWd6KlCZfqslL4valSF81H8ImioOAxluWYWOpWkpyktY2vnt4tbrX9XYaxovq6cgowaJp2w==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@leichtgewicht/ip-codec": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", + "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==", + "dev": true + }, + "node_modules/@ngtools/webpack": { + "version": "15.1.1", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-15.1.1.tgz", + "integrity": "sha512-pHkVE4IfIGcrIqxxrBQJV62GBqXF+LU4sPY5MLNWIfKSctW6AdTVoO9ilx8pclaFJkMLkPMbrmfGosYw47L+lg==", "dev": true, "engines": { "node": "^14.20.0 || ^16.13.0 || >=18.10.0", @@ -2402,7 +2786,7 @@ }, "peerDependencies": { "@angular/compiler-cli": "^15.0.0", - "typescript": "~4.8.2", + "typescript": ">=4.8.2 <5.0", "webpack": "^5.54.0" } }, @@ -2482,15 +2866,6 @@ "node": ">=12" } }, - "node_modules/@npmcli/git/node_modules/proc-log": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-3.0.0.tgz", - "integrity": "sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==", - "dev": true, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, "node_modules/@npmcli/installed-package-contents": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-2.0.1.tgz", @@ -2531,9 +2906,9 @@ } }, "node_modules/@npmcli/promise-spawn": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-6.0.1.tgz", - "integrity": "sha512-+hcUpxgx0vEpDJI9Cn+lkTdKLoqKBXFCVps5H7FujEU2vLOp6KwqjLlxbnz8Wzgm8oEqW/u5FeNAXSFjLdCD0A==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-6.0.2.tgz", + "integrity": "sha512-gGq0NJkIGSwdbUt4yhdF8ZrmkGKVz9vAdVzpOfnom+V8PLSmSOVhZwbNvZZS1EYcJN5hzzKBxmmVVAInM6HQLg==", "dev": true, "dependencies": { "which": "^3.0.0" @@ -2559,13 +2934,13 @@ } }, "node_modules/@schematics/angular": { - "version": "15.0.1", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-15.0.1.tgz", - "integrity": "sha512-UGiQ4IwdLWdQwlWVgbAM5B6G4VdzVOn0yS1PkOtTt0hvAkszriu7uyaH2Qh8aFSTvNAIg/l7/6grI/UGj8iDaw==", + "version": "15.1.1", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-15.1.1.tgz", + "integrity": "sha512-Ujo4vt/r3WzIhGn2I2Lt3eOTWSsVxoXfcXxFRuxl3cil/9mH1X66hDTQ2DVYiXPFGcQMjcNaDwlQxyor4yGbqA==", "dev": true, "dependencies": { - "@angular-devkit/core": "15.0.1", - "@angular-devkit/schematics": "15.0.1", + "@angular-devkit/core": "15.1.1", + "@angular-devkit/schematics": "15.1.1", "jsonc-parser": "3.2.0" }, "engines": { @@ -2648,21 +3023,21 @@ "dev": true }, "node_modules/@types/express": { - "version": "4.17.14", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.14.tgz", - "integrity": "sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg==", + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.15.tgz", + "integrity": "sha512-Yv0k4bXGOH+8a+7bELd2PqHQsuiANB+A8a4gnQrkRWzrkKlb6KHaVvyXhqs04sVW/OWlbPyYxRgYlIXLfrufMQ==", "dev": true, "dependencies": { "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.18", + "@types/express-serve-static-core": "^4.17.31", "@types/qs": "*", "@types/serve-static": "*" } }, "node_modules/@types/express-serve-static-core": { - "version": "4.17.31", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.31.tgz", - "integrity": "sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q==", + "version": "4.17.32", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.32.tgz", + "integrity": "sha512-aI5h/VOkxOF2Z1saPy0Zsxs5avets/iaiAJYznQFm5By/pamU31xWKL//epiF4OfUA2qTOc9PV6tCUjhO8wlZA==", "dev": true, "dependencies": { "@types/node": "*", @@ -2750,9 +3125,9 @@ } }, "node_modules/@types/ws": { - "version": "8.5.3", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz", - "integrity": "sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==", + "version": "8.5.4", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.4.tgz", + "integrity": "sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg==", "dev": true, "dependencies": { "@types/node": "*" @@ -3035,9 +3410,9 @@ } }, "node_modules/ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", "dev": true, "dependencies": { "fast-deep-equal": "^3.1.1", @@ -3217,9 +3592,9 @@ } }, "node_modules/babel-loader": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.1.0.tgz", - "integrity": "sha512-Antt61KJPinUMwHwIIz9T5zfMgevnfZkEVWYDWlG888fgdvRRGD0JTuf/fFozQnfT+uq64sk1bmdHDy/mOEWnA==", + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.1.2.tgz", + "integrity": "sha512-mN14niXW43tddohGl8HPu5yfQq70iUThvFL/4QzESA7GcZoC0eVOhvWdQ8+3UlSjaDE9MVtsW9mxDY07W7VpVA==", "dev": true, "dependencies": { "find-cache-dir": "^3.3.2", @@ -3416,9 +3791,9 @@ "dev": true }, "node_modules/bonjour-service": { - "version": "1.0.14", - "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.0.14.tgz", - "integrity": "sha512-HIMbgLnk1Vqvs6B4Wq5ep7mxvj9sGz5d1JJyDNSGNIdA/w2MCz6GTjWTdjqOJV1bEPj+6IkxDvWNFKEBxNt4kQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.1.0.tgz", + "integrity": "sha512-LVRinRB3k1/K0XzZ2p58COnWvkQknIY6sf0zF2rpErvcJXpMBttEPQSxK+HEXSS9VmpZlDoDnQWv8ftJT20B0Q==", "dev": true, "dependencies": { "array-flatten": "^2.1.2", @@ -3532,16 +3907,16 @@ } }, "node_modules/cacache": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-17.0.2.tgz", - "integrity": "sha512-rYUs2x4OjSgCQND7nTrh21AHIBFgd7s/ctAYvU3a8u+nK+R5YaX/SFPDYz4Azz7SGL6+6L9ZZWI4Kawpb7grzQ==", + "version": "17.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-17.0.4.tgz", + "integrity": "sha512-Z/nL3gU+zTUjz5pCA5vVjYM8pmaw2kxM7JEiE0fv3w77Wj+sFbi70CrBruUWH0uNcEdvLDixFpgA2JM4F4DBjA==", "dev": true, "dependencies": { "@npmcli/fs": "^3.1.0", - "fs-minipass": "^2.1.0", + "fs-minipass": "^3.0.0", "glob": "^8.0.1", "lru-cache": "^7.7.1", - "minipass": "^3.1.6", + "minipass": "^4.0.0", "minipass-collect": "^1.0.2", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", @@ -3593,9 +3968,9 @@ } }, "node_modules/cacache/node_modules/minimatch": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", - "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.2.tgz", + "integrity": "sha512-bNH9mmM9qsJ2X4r2Nat1B//1dJVcn3+iBLa3IgqJ7EbGaDNepL9QSHOxN4ng33s52VMMhhIfgCYDk3C4ZmlDAg==", "dev": true, "dependencies": { "brace-expansion": "^2.0.1" @@ -4036,9 +4411,9 @@ "dev": true }, "node_modules/cosmiconfig": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", - "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", "dev": true, "dependencies": { "@types/parse-json": "^4.0.0", @@ -4165,19 +4540,19 @@ } }, "node_modules/css-loader": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.7.1.tgz", - "integrity": "sha512-yB5CNFa14MbPJcomwNh3wLThtkZgcNyI2bNMRt8iE5Z8Vwl7f8vQXFAzn2HDOJvtDq2NTZBUGMSUNNyrv3/+cw==", + "version": "6.7.3", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.7.3.tgz", + "integrity": "sha512-qhOH1KlBMnZP8FzRO6YCH9UHXQhVMcEGLyNdb7Hv2cpcmJbW0YrddO+tG1ab5nT41KpHIYGsbeHqxB9xPu1pKQ==", "dev": true, "dependencies": { "icss-utils": "^5.1.0", - "postcss": "^8.4.7", + "postcss": "^8.4.19", "postcss-modules-extract-imports": "^3.0.0", "postcss-modules-local-by-default": "^4.0.0", "postcss-modules-scope": "^3.0.0", "postcss-modules-values": "^4.0.0", "postcss-value-parser": "^4.2.0", - "semver": "^7.3.5" + "semver": "^7.3.8" }, "engines": { "node": ">= 12.13.0" @@ -4423,475 +4798,155 @@ "node_modules/emojis-list": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "dev": true, - "optional": true, - "dependencies": { - "iconv-lite": "^0.6.2" - } - }, - "node_modules/encoding/node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dev": true, - "optional": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/enhanced-resolve": { - "version": "5.10.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz", - "integrity": "sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "dev": true, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/err-code": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", - "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", - "dev": true - }, - "node_modules/errno": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", - "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", - "dev": true, - "optional": true, - "dependencies": { - "prr": "~1.0.1" - }, - "bin": { - "errno": "cli.js" - } - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/es-module-lexer": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", - "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", - "dev": true - }, - "node_modules/esbuild": { - "version": "0.15.13", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.13.tgz", - "integrity": "sha512-Cu3SC84oyzzhrK/YyN4iEVy2jZu5t2fz66HEOShHURcjSkOSAVL8C/gfUT+lDJxkVHpg8GZ10DD0rMHRPqMFaQ==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/android-arm": "0.15.13", - "@esbuild/linux-loong64": "0.15.13", - "esbuild-android-64": "0.15.13", - "esbuild-android-arm64": "0.15.13", - "esbuild-darwin-64": "0.15.13", - "esbuild-darwin-arm64": "0.15.13", - "esbuild-freebsd-64": "0.15.13", - "esbuild-freebsd-arm64": "0.15.13", - "esbuild-linux-32": "0.15.13", - "esbuild-linux-64": "0.15.13", - "esbuild-linux-arm": "0.15.13", - "esbuild-linux-arm64": "0.15.13", - "esbuild-linux-mips64le": "0.15.13", - "esbuild-linux-ppc64le": "0.15.13", - "esbuild-linux-riscv64": "0.15.13", - "esbuild-linux-s390x": "0.15.13", - "esbuild-netbsd-64": "0.15.13", - "esbuild-openbsd-64": "0.15.13", - "esbuild-sunos-64": "0.15.13", - "esbuild-windows-32": "0.15.13", - "esbuild-windows-64": "0.15.13", - "esbuild-windows-arm64": "0.15.13" - } - }, - "node_modules/esbuild-android-64": { - "version": "0.15.13", - "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.15.13.tgz", - "integrity": "sha512-yRorukXBlokwTip+Sy4MYskLhJsO0Kn0/Fj43s1krVblfwP+hMD37a4Wmg139GEsMLl+vh8WXp2mq/cTA9J97g==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-android-arm64": { - "version": "0.15.13", - "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.15.13.tgz", - "integrity": "sha512-TKzyymLD6PiVeyYa4c5wdPw87BeAiTXNtK6amWUcXZxkV51gOk5u5qzmDaYSwiWeecSNHamFsaFjLoi32QR5/w==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-darwin-64": { - "version": "0.15.13", - "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.13.tgz", - "integrity": "sha512-WAx7c2DaOS6CrRcoYCgXgkXDliLnFv3pQLV6GeW1YcGEZq2Gnl8s9Pg7ahValZkpOa0iE/ojRVQ87sbUhF1Cbg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-darwin-arm64": { - "version": "0.15.13", - "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.13.tgz", - "integrity": "sha512-U6jFsPfSSxC3V1CLiQqwvDuj3GGrtQNB3P3nNC3+q99EKf94UGpsG9l4CQ83zBs1NHrk1rtCSYT0+KfK5LsD8A==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-freebsd-64": { - "version": "0.15.13", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.13.tgz", - "integrity": "sha512-whItJgDiOXaDG/idy75qqevIpZjnReZkMGCgQaBWZuKHoElDJC1rh7MpoUgupMcdfOd+PgdEwNQW9DAE6i8wyA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-freebsd-arm64": { - "version": "0.15.13", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.13.tgz", - "integrity": "sha512-6pCSWt8mLUbPtygv7cufV0sZLeylaMwS5Fznj6Rsx9G2AJJsAjQ9ifA+0rQEIg7DwJmi9it+WjzNTEAzzdoM3Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-32": { - "version": "0.15.13", - "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.15.13.tgz", - "integrity": "sha512-VbZdWOEdrJiYApm2kkxoTOgsoCO1krBZ3quHdYk3g3ivWaMwNIVPIfEE0f0XQQ0u5pJtBsnk2/7OPiCFIPOe/w==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-64": { - "version": "0.15.13", - "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.15.13.tgz", - "integrity": "sha512-rXmnArVNio6yANSqDQlIO4WiP+Cv7+9EuAHNnag7rByAqFVuRusLbGi2697A5dFPNXoO//IiogVwi3AdcfPC6A==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-arm": { - "version": "0.15.13", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.15.13.tgz", - "integrity": "sha512-Ac6LpfmJO8WhCMQmO253xX2IU2B3wPDbl4IvR0hnqcPrdfCaUa2j/lLMGTjmQ4W5JsJIdHEdW12dG8lFS0MbxQ==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-arm64": { - "version": "0.15.13", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.13.tgz", - "integrity": "sha512-alEMGU4Z+d17U7KQQw2IV8tQycO6T+rOrgW8OS22Ua25x6kHxoG6Ngry6Aq6uranC+pNWNMB6aHFPh7aTQdORQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/esbuild-linux-mips64le": { - "version": "0.15.13", - "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.13.tgz", - "integrity": "sha512-47PgmyYEu+yN5rD/MbwS6DxP2FSGPo4Uxg5LwIdxTiyGC2XKwHhHyW7YYEDlSuXLQXEdTO7mYe8zQ74czP7W8A==", - "cpu": [ - "mips64el" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true, "engines": { - "node": ">=12" + "node": ">= 4" } }, - "node_modules/esbuild-linux-ppc64le": { - "version": "0.15.13", - "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.13.tgz", - "integrity": "sha512-z6n28h2+PC1Ayle9DjKoBRcx/4cxHoOa2e689e2aDJSaKug3jXcQw7mM+GLg+9ydYoNzj8QxNL8ihOv/OnezhA==", - "cpu": [ - "ppc64" - ], + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", "dev": true, - "optional": true, - "os": [ - "linux" - ], "engines": { - "node": ">=12" + "node": ">= 0.8" } }, - "node_modules/esbuild-linux-riscv64": { - "version": "0.15.13", - "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.13.tgz", - "integrity": "sha512-+Lu4zuuXuQhgLUGyZloWCqTslcCAjMZH1k3Xc9MSEJEpEFdpsSU0sRDXAnk18FKOfEjhu4YMGaykx9xjtpA6ow==", - "cpu": [ - "riscv64" - ], + "node_modules/encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", "dev": true, "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" + "dependencies": { + "iconv-lite": "^0.6.2" } }, - "node_modules/esbuild-linux-s390x": { - "version": "0.15.13", - "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.13.tgz", - "integrity": "sha512-BMeXRljruf7J0TMxD5CIXS65y7puiZkAh+s4XFV9qy16SxOuMhxhVIXYLnbdfLrsYGFzx7U9mcdpFWkkvy/Uag==", - "cpu": [ - "s390x" - ], + "node_modules/encoding/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dev": true, "optional": true, - "os": [ - "linux" - ], + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, "engines": { - "node": ">=12" + "node": ">=0.10.0" } }, - "node_modules/esbuild-netbsd-64": { - "version": "0.15.13", - "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.13.tgz", - "integrity": "sha512-EHj9QZOTel581JPj7UO3xYbltFTYnHy+SIqJVq6yd3KkCrsHRbapiPb0Lx3EOOtybBEE9EyqbmfW1NlSDsSzvQ==", - "cpu": [ - "x64" - ], + "node_modules/enhanced-resolve": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz", + "integrity": "sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ==", "dev": true, - "optional": true, - "os": [ - "netbsd" - ], + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, "engines": { - "node": ">=12" + "node": ">=10.13.0" } }, - "node_modules/esbuild-openbsd-64": { - "version": "0.15.13", - "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.13.tgz", - "integrity": "sha512-nkuDlIjF/sfUhfx8SKq0+U+Fgx5K9JcPq1mUodnxI0x4kBdCv46rOGWbuJ6eof2n3wdoCLccOoJAbg9ba/bT2w==", - "cpu": [ - "x64" - ], + "node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", "dev": true, - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/esbuild-sunos-64": { - "version": "0.15.13", - "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.15.13.tgz", - "integrity": "sha512-jVeu2GfxZQ++6lRdY43CS0Tm/r4WuQQ0Pdsrxbw+aOrHQPHV0+LNOLnvbN28M7BSUGnJnHkHm2HozGgNGyeIRw==", - "cpu": [ - "x64" - ], + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", "dev": true, - "optional": true, - "os": [ - "sunos" - ], "engines": { - "node": ">=12" + "node": ">=6" } }, - "node_modules/esbuild-wasm": { - "version": "0.15.13", - "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.15.13.tgz", - "integrity": "sha512-0am8fvHKACwofWQxtZLTMv4mDiDwUrdt0DyRaQ2r7YWIpkmpg4GWYy0EyW+gPjiPHzkZKqN9d3UYsZGgvaAASw==", + "node_modules/err-code": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", + "dev": true + }, + "node_modules/errno": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", "dev": true, - "bin": { - "esbuild": "bin/esbuild" + "optional": true, + "dependencies": { + "prr": "~1.0.1" }, - "engines": { - "node": ">=12" + "bin": { + "errno": "cli.js" } }, - "node_modules/esbuild-windows-32": { - "version": "0.15.13", - "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.15.13.tgz", - "integrity": "sha512-XoF2iBf0wnqo16SDq+aDGi/+QbaLFpkiRarPVssMh9KYbFNCqPLlGAWwDvxEVz+ywX6Si37J2AKm+AXq1kC0JA==", - "cpu": [ - "ia32" - ], + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" + "dependencies": { + "is-arrayish": "^0.2.1" } }, - "node_modules/esbuild-windows-64": { - "version": "0.15.13", - "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.13.tgz", - "integrity": "sha512-Et6htEfGycjDrtqb2ng6nT+baesZPYQIW+HUEHK4D1ncggNrDNk3yoboYQ5KtiVrw/JaDMNttz8rrPubV/fvPQ==", - "cpu": [ - "x64" - ], + "node_modules/es-module-lexer": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", + "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", + "dev": true + }, + "node_modules/esbuild": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.16.17.tgz", + "integrity": "sha512-G8LEkV0XzDMNwXKgM0Jwu3nY3lSTwSGY6XbxM9cr9+s0T/qSV1q1JVPBGzm3dcjhCic9+emZDmMffkwgPeOeLg==", "dev": true, + "hasInstallScript": true, "optional": true, - "os": [ - "win32" - ], + "bin": { + "esbuild": "bin/esbuild" + }, "engines": { "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.16.17", + "@esbuild/android-arm64": "0.16.17", + "@esbuild/android-x64": "0.16.17", + "@esbuild/darwin-arm64": "0.16.17", + "@esbuild/darwin-x64": "0.16.17", + "@esbuild/freebsd-arm64": "0.16.17", + "@esbuild/freebsd-x64": "0.16.17", + "@esbuild/linux-arm": "0.16.17", + "@esbuild/linux-arm64": "0.16.17", + "@esbuild/linux-ia32": "0.16.17", + "@esbuild/linux-loong64": "0.16.17", + "@esbuild/linux-mips64el": "0.16.17", + "@esbuild/linux-ppc64": "0.16.17", + "@esbuild/linux-riscv64": "0.16.17", + "@esbuild/linux-s390x": "0.16.17", + "@esbuild/linux-x64": "0.16.17", + "@esbuild/netbsd-x64": "0.16.17", + "@esbuild/openbsd-x64": "0.16.17", + "@esbuild/sunos-x64": "0.16.17", + "@esbuild/win32-arm64": "0.16.17", + "@esbuild/win32-ia32": "0.16.17", + "@esbuild/win32-x64": "0.16.17" } }, - "node_modules/esbuild-windows-arm64": { - "version": "0.15.13", - "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.13.tgz", - "integrity": "sha512-3bv7tqntThQC9SWLRouMDmZnlOukBhOCTlkzNqzGCmrkCJI7io5LLjwJBOVY6kOUlIvdxbooNZwjtBvj+7uuVg==", - "cpu": [ - "arm64" - ], + "node_modules/esbuild-wasm": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.16.17.tgz", + "integrity": "sha512-Tn7NuMqRcM+T/qCOxbQRq0qrwWl1sUWp6ARfJRakE8Bepew6zata4qrKgH2YqovNC5e/2fcTa7o+VL/FAOZC1Q==", "dev": true, - "optional": true, - "os": [ - "win32" - ], + "bin": { + "esbuild": "bin/esbuild" + }, "engines": { "node": ">=12" } @@ -5335,15 +5390,15 @@ } }, "node_modules/fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.0.tgz", + "integrity": "sha512-EUojgQaSPy6sxcqcZgQv6TVF6jiKvurji3AxhAivs/Ep4O1UpS8TusaxpybfFHZ2skRhLqzk6WR8nqNYIMMDeA==", "dev": true, "dependencies": { - "minipass": "^3.0.0" + "minipass": "^4.0.0" }, "engines": { - "node": ">= 8" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/fs-monkey": { @@ -5585,15 +5640,15 @@ "dev": true }, "node_modules/hosted-git-info": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.2.1.tgz", - "integrity": "sha512-xIcQYMnhcx2Nr4JTjsFmwwnr9vldugPy9uVm0o87bjqqWMv9GaqsTeT+i99wTl0mk1uLxJtHxLb8kymqTENQsw==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-6.1.1.tgz", + "integrity": "sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w==", "dev": true, "dependencies": { "lru-cache": "^7.5.1" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/hosted-git-info/node_modules/lru-cache": { @@ -5848,9 +5903,9 @@ } }, "node_modules/ignore-walk/node_modules/minimatch": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", - "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.2.tgz", + "integrity": "sha512-bNH9mmM9qsJ2X4r2Nat1B//1dJVcn3+iBLa3IgqJ7EbGaDNepL9QSHOxN4ng33s52VMMhhIfgCYDk3C4ZmlDAg==", "dev": true, "dependencies": { "brace-expansion": "^2.0.1" @@ -6374,9 +6429,9 @@ "dev": true }, "node_modules/json5": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", - "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true, "bin": { "json5": "lib/cli.js" @@ -6671,12 +6726,12 @@ } }, "node_modules/magic-string": { - "version": "0.26.7", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.26.7.tgz", - "integrity": "sha512-hX9XH3ziStPoPhJxLq1syWuZMxbDvGNbVchfrdCtanC7D13888bMFow61x8axrx+GfHLtVeAx2kxL7tTGRl+Ow==", + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.27.0.tgz", + "integrity": "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==", "dev": true, "dependencies": { - "sourcemap-codec": "^1.4.8" + "@jridgewell/sourcemap-codec": "^1.4.13" }, "engines": { "node": ">=12" @@ -6784,6 +6839,18 @@ "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, + "node_modules/make-fetch-happen/node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, "node_modules/make-fetch-happen/node_modules/glob": { "version": "8.0.3", "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", @@ -6813,9 +6880,9 @@ } }, "node_modules/make-fetch-happen/node_modules/minimatch": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", - "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.2.tgz", + "integrity": "sha512-bNH9mmM9qsJ2X4r2Nat1B//1dJVcn3+iBLa3IgqJ7EbGaDNepL9QSHOxN4ng33s52VMMhhIfgCYDk3C4ZmlDAg==", "dev": true, "dependencies": { "brace-expansion": "^2.0.1" @@ -6824,6 +6891,18 @@ "node": ">=10" } }, + "node_modules/make-fetch-happen/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/make-fetch-happen/node_modules/ssri": { "version": "9.0.1", "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", @@ -6870,9 +6949,9 @@ } }, "node_modules/memfs": { - "version": "3.4.12", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.12.tgz", - "integrity": "sha512-BcjuQn6vfqP+k100e0E9m61Hyqa//Brp+I3f0OBmN0ATHlFA8vx3Lt8z57R3u2bPqe3WGDBC+nF72fTH7isyEw==", + "version": "3.4.13", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.13.tgz", + "integrity": "sha512-omTM41g3Skpvx5dSYeZIbXKcXoAVc/AoMNwn9TKx++L/gaen/+4TTttmu8ZSch5vfVJ8uJvGbroTsIlslRg6lg==", "dev": true, "dependencies": { "fs-monkey": "^1.0.3" @@ -6967,9 +7046,9 @@ } }, "node_modules/mini-css-extract-plugin": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.6.1.tgz", - "integrity": "sha512-wd+SD57/K6DiV7jIR34P+s3uckTRuQvx0tKPcvjFlrEylk6P4mQ2KSWk1hblj1Kxaqok7LogKOieygXqBczNlg==", + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.2.tgz", + "integrity": "sha512-EdlUizq13o0Pd+uCp+WO/JpkLvHRVGt97RqfeGhXqAcorYo1ypJSpkV+WDT0vY/kmh/p7wRdJNJtuyK540PXDw==", "dev": true, "dependencies": { "schema-utils": "^4.0.0" @@ -7004,9 +7083,9 @@ } }, "node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.0.0.tgz", + "integrity": "sha512-g2Uuh2jEKoht+zvO6vJqXmYpflPqzRBT+Th2h01DKh5z7wbY/AZ2gCQ78cP70YoHPyFdY30YBV5WxgLOEwOykw==", "dev": true, "dependencies": { "yallist": "^4.0.0" @@ -7027,6 +7106,18 @@ "node": ">= 8" } }, + "node_modules/minipass-collect/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/minipass-fetch": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.2.tgz", @@ -7044,6 +7135,18 @@ "encoding": "^0.1.13" } }, + "node_modules/minipass-fetch/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/minipass-flush": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", @@ -7056,6 +7159,18 @@ "node": ">= 8" } }, + "node_modules/minipass-flush/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/minipass-json-stream": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", @@ -7066,13 +7181,37 @@ "minipass": "^3.0.0" } }, + "node_modules/minipass-json-stream/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/minipass-pipeline": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", "dev": true, "dependencies": { - "minipass": "^3.0.0" + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-pipeline/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" }, "engines": { "node": ">=8" @@ -7090,6 +7229,18 @@ "node": ">=8" } }, + "node_modules/minipass-sized/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/minizlib": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", @@ -7103,6 +7254,18 @@ "node": ">= 8" } }, + "node_modules/minizlib/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", @@ -7240,9 +7403,9 @@ } }, "node_modules/node-gyp": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-9.3.0.tgz", - "integrity": "sha512-A6rJWfXFz7TQNjpldJ915WFb1LnhO4lIve3ANPbWreuEoLoKlFT3sxIepPBkLhM27crW8YmN+pjlgbasH6cH/Q==", + "version": "9.3.1", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-9.3.1.tgz", + "integrity": "sha512-4Q16ZCqq3g8awk6UplT7AuxQ35XN4R/yf/+wSAwcBUAjg7l58RTactWaP8fIDTi0FzI7YcVLujwExakZlfWkXg==", "dev": true, "dependencies": { "env-paths": "^2.2.0", @@ -7260,7 +7423,7 @@ "node-gyp": "bin/node-gyp.js" }, "engines": { - "node": "^12.22 || ^14.13 || >=16" + "node": "^12.13 || ^14.13 || >=16" } }, "node_modules/node-gyp-build": { @@ -7326,27 +7489,6 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/normalize-package-data/node_modules/hosted-git-info": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-6.1.1.tgz", - "integrity": "sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w==", - "dev": true, - "dependencies": { - "lru-cache": "^7.5.1" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/normalize-package-data/node_modules/lru-cache": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", - "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", - "dev": true, - "engines": { - "node": ">=12" - } - }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -7399,24 +7541,24 @@ } }, "node_modules/npm-package-arg": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-9.1.2.tgz", - "integrity": "sha512-pzd9rLEx4TfNJkovvlBSLGhq31gGu2QDexFPWT19yCDh0JgnRhlBLNo5759N0AJmBk+kQ9Y/hXoLnlgFD+ukmg==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-10.1.0.tgz", + "integrity": "sha512-uFyyCEmgBfZTtrKk/5xDfHp6+MdrqGotX/VoOyEEl3mBwiEE5FlBaePanazJSVMPT7vKepcjYBY2ztg9A3yPIA==", "dev": true, "dependencies": { - "hosted-git-info": "^5.0.0", - "proc-log": "^2.0.1", + "hosted-git-info": "^6.0.0", + "proc-log": "^3.0.0", "semver": "^7.3.5", - "validate-npm-package-name": "^4.0.0" + "validate-npm-package-name": "^5.0.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/npm-packlist": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-7.0.2.tgz", - "integrity": "sha512-d2+7RMySjVXssww23rV5NuIq1NzGvM04OlI5kwnvtYKfFTAPVs6Zxmxns2HRtJEA1oNj7D/BbFXeVAOLmW3N3Q==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-7.0.4.tgz", + "integrity": "sha512-d6RGEuRrNS5/N84iglPivjaJPxhDbZmlbTwTDX2IbcRHG5bZCdtysYMhwiPvcF4GisXHGn7xsxv+GQ7T/02M5Q==", "dev": true, "dependencies": { "ignore-walk": "^6.0.0" @@ -7440,71 +7582,14 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/npm-pick-manifest/node_modules/hosted-git-info": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-6.1.1.tgz", - "integrity": "sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w==", - "dev": true, - "dependencies": { - "lru-cache": "^7.5.1" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm-pick-manifest/node_modules/lru-cache": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", - "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/npm-pick-manifest/node_modules/npm-package-arg": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-10.0.0.tgz", - "integrity": "sha512-7dkh8mRp7s0KwVHKIVJnFCJQ2B34gOGnzgBjDGyprycmARq/82SX/lhilQ95ZuacP/G/1gsS345iAkKmxWBQ2Q==", - "dev": true, - "dependencies": { - "hosted-git-info": "^6.0.0", - "proc-log": "^3.0.0", - "semver": "^7.3.5", - "validate-npm-package-name": "^5.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm-pick-manifest/node_modules/proc-log": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-3.0.0.tgz", - "integrity": "sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==", - "dev": true, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm-pick-manifest/node_modules/validate-npm-package-name": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.0.tgz", - "integrity": "sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==", - "dev": true, - "dependencies": { - "builtins": "^5.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, "node_modules/npm-registry-fetch": { - "version": "14.0.2", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-14.0.2.tgz", - "integrity": "sha512-TMenrMagFA9KF81E2bkS5XRyzERK4KXu70vgXt5+i8FcrFeLNgNsc6e5hekTqjDwPDkL3HGn/holWcXDMfnFgw==", + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-14.0.3.tgz", + "integrity": "sha512-YaeRbVNpnWvsGOjX2wk5s85XJ7l1qQBGAp724h8e2CZFFhMSuw9enom7K1mWVUtvXO1uUSFIAPofQK0pPN0ZcA==", "dev": true, "dependencies": { "make-fetch-happen": "^11.0.0", - "minipass": "^3.1.6", + "minipass": "^4.0.0", "minipass-fetch": "^3.0.0", "minipass-json-stream": "^1.0.1", "minizlib": "^2.1.2", @@ -7515,18 +7600,6 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/npm-registry-fetch/node_modules/hosted-git-info": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-6.1.1.tgz", - "integrity": "sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w==", - "dev": true, - "dependencies": { - "lru-cache": "^7.5.1" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, "node_modules/npm-registry-fetch/node_modules/lru-cache": { "version": "7.14.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", @@ -7537,9 +7610,9 @@ } }, "node_modules/npm-registry-fetch/node_modules/make-fetch-happen": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.0.1.tgz", - "integrity": "sha512-clv3IblugXn2CDUmqFhNzii3rjKa46u5wNeivc+QlLXkGI5FjLX3rGboo+y2kwf1pd8W0iDiC384cemeDtw9kw==", + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.0.2.tgz", + "integrity": "sha512-5n/Pq41w/uZghpdlXAY5kIM85RgJThtTH/NYBRAZ9VUOBWV90USaQjwGrw76fZP3Lj5hl/VZjpVvOaRBMoL/2w==", "dev": true, "dependencies": { "agentkeepalive": "^4.2.1", @@ -7549,7 +7622,7 @@ "https-proxy-agent": "^5.0.0", "is-lambda": "^1.0.1", "lru-cache": "^7.7.1", - "minipass": "^3.1.6", + "minipass": "^4.0.0", "minipass-collect": "^1.0.2", "minipass-fetch": "^3.0.0", "minipass-flush": "^1.0.5", @@ -7564,12 +7637,12 @@ } }, "node_modules/npm-registry-fetch/node_modules/minipass-fetch": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.0.tgz", - "integrity": "sha512-NSx3k5gR4Q5Ts2poCM/19d45VwhVLBtJZ6ypYcthj2BwmDx/e7lW8Aadnyt3edd2W0ecb+b0o7FYLRYE2AGcQg==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.1.tgz", + "integrity": "sha512-t9/wowtf7DYkwz8cfMSt0rMwiyNIBXf5CKZ3S5ZMqRqMYT0oLTp0x1WorMI9WTwvaPg21r1JbFxJMum8JrLGfw==", "dev": true, "dependencies": { - "minipass": "^3.1.6", + "minipass": "^4.0.0", "minipass-sized": "^1.0.3", "minizlib": "^2.1.2" }, @@ -7580,42 +7653,6 @@ "encoding": "^0.1.13" } }, - "node_modules/npm-registry-fetch/node_modules/npm-package-arg": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-10.0.0.tgz", - "integrity": "sha512-7dkh8mRp7s0KwVHKIVJnFCJQ2B34gOGnzgBjDGyprycmARq/82SX/lhilQ95ZuacP/G/1gsS345iAkKmxWBQ2Q==", - "dev": true, - "dependencies": { - "hosted-git-info": "^6.0.0", - "proc-log": "^3.0.0", - "semver": "^7.3.5", - "validate-npm-package-name": "^5.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm-registry-fetch/node_modules/proc-log": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-3.0.0.tgz", - "integrity": "sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==", - "dev": true, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/npm-registry-fetch/node_modules/validate-npm-package-name": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.0.tgz", - "integrity": "sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==", - "dev": true, - "dependencies": { - "builtins": "^5.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, "node_modules/npm-run-path": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", @@ -7656,9 +7693,9 @@ } }, "node_modules/object-inspect": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", - "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -7908,9 +7945,9 @@ } }, "node_modules/pacote": { - "version": "15.0.6", - "resolved": "https://registry.npmjs.org/pacote/-/pacote-15.0.6.tgz", - "integrity": "sha512-dQwcz/sME7QIL+cdrw/jftQfMMXxSo17i2kJ/gnhBhUvvBAsxoBu1lw9B5IzCH/Ce8CvEkG/QYZ6txzKfn0bTw==", + "version": "15.0.8", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-15.0.8.tgz", + "integrity": "sha512-UlcumB/XS6xyyIMwg/WwMAyUmga+RivB5KgkRwA1hZNtrx+0Bt41KxHCvg1kr0pZ/ZeD8qjhW4fph6VaYRCbLw==", "dev": true, "dependencies": { "@npmcli/git": "^4.0.0", @@ -7918,8 +7955,8 @@ "@npmcli/promise-spawn": "^6.0.1", "@npmcli/run-script": "^6.0.0", "cacache": "^17.0.0", - "fs-minipass": "^2.1.0", - "minipass": "^3.1.6", + "fs-minipass": "^3.0.0", + "minipass": "^4.0.0", "npm-package-arg": "^10.0.0", "npm-packlist": "^7.0.0", "npm-pick-manifest": "^8.0.0", @@ -7938,63 +7975,6 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/pacote/node_modules/hosted-git-info": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-6.1.1.tgz", - "integrity": "sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w==", - "dev": true, - "dependencies": { - "lru-cache": "^7.5.1" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/pacote/node_modules/lru-cache": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", - "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/pacote/node_modules/npm-package-arg": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-10.0.0.tgz", - "integrity": "sha512-7dkh8mRp7s0KwVHKIVJnFCJQ2B34gOGnzgBjDGyprycmARq/82SX/lhilQ95ZuacP/G/1gsS345iAkKmxWBQ2Q==", - "dev": true, - "dependencies": { - "hosted-git-info": "^6.0.0", - "proc-log": "^3.0.0", - "semver": "^7.3.5", - "validate-npm-package-name": "^5.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/pacote/node_modules/proc-log": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-3.0.0.tgz", - "integrity": "sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==", - "dev": true, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/pacote/node_modules/validate-npm-package-name": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.0.tgz", - "integrity": "sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==", - "dev": true, - "dependencies": { - "builtins": "^5.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, "node_modules/pako": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", @@ -8186,9 +8166,9 @@ } }, "node_modules/postcss": { - "version": "8.4.19", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.19.tgz", - "integrity": "sha512-h+pbPsyhlYj6N2ozBmHhHrs9DzGmbaarbLvWipMRO7RLS+v4onj26MPFXA5OBYFxyqYhUJK456SwDcY9H2/zsA==", + "version": "8.4.21", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", + "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==", "dev": true, "funding": [ { @@ -8210,14 +8190,14 @@ } }, "node_modules/postcss-loader": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-7.0.1.tgz", - "integrity": "sha512-VRviFEyYlLjctSM93gAZtcJJ/iSkPZ79zWbN/1fSH+NisBByEiVLqpdVDrPLVSi8DX0oJo12kL/GppTBdKVXiQ==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-7.0.2.tgz", + "integrity": "sha512-fUJzV/QH7NXUAqV8dWJ9Lg4aTkDCezpTS5HgJ2DvqznexTbSTxgi/dTECvTZ15BwKTtk8G/bqI/QTu2HPd3ZCg==", "dev": true, "dependencies": { "cosmiconfig": "^7.0.0", "klona": "^2.0.5", - "semver": "^7.3.7" + "semver": "^7.3.8" }, "engines": { "node": ">= 14.15.0" @@ -8231,21 +8211,6 @@ "webpack": "^5.0.0" } }, - "node_modules/postcss-loader/node_modules/semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/postcss-modules-extract-imports": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", @@ -8306,9 +8271,9 @@ } }, "node_modules/postcss-selector-parser": { - "version": "6.0.10", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", - "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", + "version": "6.0.11", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz", + "integrity": "sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==", "dev": true, "dependencies": { "cssesc": "^3.0.0", @@ -8337,12 +8302,12 @@ } }, "node_modules/proc-log": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-2.0.1.tgz", - "integrity": "sha512-Kcmo2FhfDTXdcbfDH76N7uBYHINxc/8GW7UAVuVP9I+Va3uHSerrnKV6dLooga/gh7GlgzuCCr/eoldnL1muGw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-3.0.0.tgz", + "integrity": "sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==", "dev": true, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/process-nextick-args": { @@ -8501,9 +8466,9 @@ } }, "node_modules/read-package-json-fast": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-3.0.1.tgz", - "integrity": "sha512-8+HW7Yo+cjfF+md8DqsZHgats2mxf7gGYow/+2JjxrftoHFZz9v4dzd0EubzYbkNaLxrTVcnllHwklXN2+7aTQ==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-3.0.2.tgz", + "integrity": "sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==", "dev": true, "dependencies": { "json-parse-even-better-errors": "^3.0.0", @@ -8560,9 +8525,9 @@ } }, "node_modules/read-package-json/node_modules/minimatch": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", - "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.2.tgz", + "integrity": "sha512-bNH9mmM9qsJ2X4r2Nat1B//1dJVcn3+iBLa3IgqJ7EbGaDNepL9QSHOxN4ng33s52VMMhhIfgCYDk3C4ZmlDAg==", "dev": true, "dependencies": { "brace-expansion": "^2.0.1" @@ -8880,9 +8845,9 @@ "dev": true }, "node_modules/sass": { - "version": "1.56.1", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.56.1.tgz", - "integrity": "sha512-VpEyKpyBPCxE7qGDtOcdJ6fFbcpOM+Emu7uZLxVrkX8KVU/Dp5UF7WLvzqRuUhB6mqqQt1xffLoG+AndxTZrCQ==", + "version": "1.57.1", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.57.1.tgz", + "integrity": "sha512-O2+LwLS79op7GI0xZ8fqzF7X2m/m8WFfI02dHOdsK5R2ECeS5F62zrwg/relM1rjSLy7Vd/DiMNIvPrQGsA0jw==", "dev": true, "dependencies": { "chokidar": ">=3.0.0 <4.0.0", @@ -8979,9 +8944,9 @@ } }, "node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -9336,12 +9301,6 @@ "node": ">=0.10.0" } }, - "node_modules/sourcemap-codec": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", - "dev": true - }, "node_modules/spdx-correct": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", @@ -9411,12 +9370,12 @@ "dev": true }, "node_modules/ssri": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.0.tgz", - "integrity": "sha512-64ghGOpqW0k+jh7m5jndBGdVEoPikWwGQmBNN5ks6jyUSMymzHDTlnNHOvzp+6MmHOljr2MokUzvRksnTwG0Iw==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.1.tgz", + "integrity": "sha512-WVy6di9DlPOeBWEjMScpNipeSX2jIZBGEn5Uuo8Q7aIuFEuDX0pw8RxcOjlD1TWP4obi24ki7m/13+nFpcbXrw==", "dev": true, "dependencies": { - "minipass": "^3.1.1" + "minipass": "^4.0.0" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" @@ -9538,26 +9497,50 @@ } }, "node_modules/tar": { - "version": "6.1.12", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.12.tgz", - "integrity": "sha512-jU4TdemS31uABHd+Lt5WEYJuzn+TJTCBLljvIAHZOz6M9Os5pJ4dD+vRFLxPa/n3T0iEFzpi+0x1UfuDZYbRMw==", + "version": "6.1.13", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.13.tgz", + "integrity": "sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw==", + "dev": true, + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^4.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tar/node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/tar/node_modules/fs-minipass/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dev": true, "dependencies": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", "yallist": "^4.0.0" }, "engines": { - "node": ">=10" + "node": ">=8" } }, "node_modules/terser": { - "version": "5.15.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.15.1.tgz", - "integrity": "sha512-K1faMUvpm/FBxjBXud0LWVAGxmvoPbZbfTCYbSgaaYQaIXI3/TdI7a7ZGA73Zrou6Q8Zmz3oeUTsp/dj+ag2Xw==", + "version": "5.16.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.1.tgz", + "integrity": "sha512-xvQfyfA1ayT0qdK47zskQgRZeWLoOQ8JQ6mIgRGVNwZKdQMU+5FkCBjmv4QjcrTzyZquRw2FVtlJSRUmMKQslw==", "dev": true, "dependencies": { "@jridgewell/source-map": "^0.3.2", @@ -9939,15 +9922,15 @@ } }, "node_modules/validate-npm-package-name": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-4.0.0.tgz", - "integrity": "sha512-mzR0L8ZDktZjpX4OB46KT+56MAhl4EIazWP/+G/HPGuvfdaqg4YsCdtOm6U9+LOFyYDoh4dpnpxZRB9MQQns5Q==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.0.tgz", + "integrity": "sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==", "dev": true, "dependencies": { "builtins": "^5.0.0" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/vary": { @@ -10038,26 +10021,26 @@ } }, "node_modules/webpack-dev-middleware": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz", - "integrity": "sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-6.0.1.tgz", + "integrity": "sha512-PZPZ6jFinmqVPJZbisfggDiC+2EeGZ1ZByyMP5sOFJcPPWSexalISz+cvm+j+oYPT7FIJyxT76esjnw9DhE5sw==", "dev": true, "dependencies": { "colorette": "^2.0.10", - "memfs": "^3.4.3", + "memfs": "^3.4.12", "mime-types": "^2.1.31", "range-parser": "^1.2.1", "schema-utils": "^4.0.0" }, "engines": { - "node": ">= 12.13.0" + "node": ">= 14.15.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" }, "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" + "webpack": "^5.0.0" } }, "node_modules/webpack-dev-server": { @@ -10115,6 +10098,29 @@ } } }, + "node_modules/webpack-dev-server/node_modules/webpack-dev-middleware": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz", + "integrity": "sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==", + "dev": true, + "dependencies": { + "colorette": "^2.0.10", + "memfs": "^3.4.3", + "mime-types": "^2.1.31", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, "node_modules/webpack-merge": { "version": "5.8.0", "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", @@ -10317,16 +10323,16 @@ "dev": true }, "node_modules/ws": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", - "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.12.0.tgz", + "integrity": "sha512-kU62emKIdKVeEIOIKVegvqpXMSTAMLJozpHZaJNDYqBjzlSYXQGviYwN1osDLJ9av68qHd4a2oSjd7yD4pacig==", "dev": true, "engines": { "node": ">=10.0.0" }, "peerDependencies": { "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" + "utf-8-validate": ">=5.0.2" }, "peerDependenciesMeta": { "bufferutil": { @@ -10409,12 +10415,12 @@ } }, "@angular-devkit/architect": { - "version": "0.1500.1", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1500.1.tgz", - "integrity": "sha512-HoGMdUB9z1brPq3f0m3la6N0ODBarH5LjZN+5KyIMdXgJJN5y+gs2H6yCPQfJT56fqtp/cckxOYcLAFTf45Tcg==", + "version": "0.1501.1", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1501.1.tgz", + "integrity": "sha512-2uDa/+nVGwQ5X6UJtB14V37SbD/64WSg0hKyX5z1yp6wYrSuk7PWV8hddIsiYM3aIT5wTGqfLil6NkV4G/BzQw==", "dev": true, "requires": { - "@angular-devkit/core": "15.0.1", + "@angular-devkit/core": "15.1.1", "rxjs": "6.6.7" }, "dependencies": { @@ -10436,38 +10442,38 @@ } }, "@angular-devkit/build-angular": { - "version": "15.0.1", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-15.0.1.tgz", - "integrity": "sha512-oOeS4++bgjxQZlV69p0gOAarHYgn3kO6Ub3HO0IxDiiYSiWdMILGmam7uXSKhDK+NJp3ZETivrm2pxgUihMpfg==", + "version": "15.1.1", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-15.1.1.tgz", + "integrity": "sha512-9eziOA4uZwIg8OYjebkKz/yqQ1WIqajGrXr/goaAKcKhr8BprWXs5NhkIzMrELekA/dZOkR6Gpwz8d/XwplCww==", "dev": true, "requires": { "@ampproject/remapping": "2.2.0", - "@angular-devkit/architect": "0.1500.1", - "@angular-devkit/build-webpack": "0.1500.1", - "@angular-devkit/core": "15.0.1", - "@babel/core": "7.20.2", - "@babel/generator": "7.20.4", + "@angular-devkit/architect": "0.1501.1", + "@angular-devkit/build-webpack": "0.1501.1", + "@angular-devkit/core": "15.1.1", + "@babel/core": "7.20.12", + "@babel/generator": "7.20.7", "@babel/helper-annotate-as-pure": "7.18.6", - "@babel/plugin-proposal-async-generator-functions": "7.20.1", - "@babel/plugin-transform-async-to-generator": "7.18.6", + "@babel/plugin-proposal-async-generator-functions": "7.20.7", + "@babel/plugin-transform-async-to-generator": "7.20.7", "@babel/plugin-transform-runtime": "7.19.6", "@babel/preset-env": "7.20.2", - "@babel/runtime": "7.20.1", - "@babel/template": "7.18.10", + "@babel/runtime": "7.20.7", + "@babel/template": "7.20.7", "@discoveryjs/json-ext": "0.5.7", - "@ngtools/webpack": "15.0.1", + "@ngtools/webpack": "15.1.1", "ansi-colors": "4.1.3", "autoprefixer": "10.4.13", - "babel-loader": "9.1.0", + "babel-loader": "9.1.2", "babel-plugin-istanbul": "6.1.1", "browserslist": "4.21.4", - "cacache": "17.0.2", + "cacache": "17.0.4", "chokidar": "3.5.3", "copy-webpack-plugin": "11.0.0", "critters": "0.0.16", - "css-loader": "6.7.1", - "esbuild": "0.15.13", - "esbuild-wasm": "0.15.13", + "css-loader": "6.7.3", + "esbuild": "0.16.17", + "esbuild-wasm": "0.16.17", "glob": "8.0.3", "https-proxy-agent": "5.0.1", "inquirer": "8.2.4", @@ -10477,32 +10483,63 @@ "less-loader": "11.1.0", "license-webpack-plugin": "4.0.2", "loader-utils": "3.2.1", - "magic-string": "0.26.7", - "mini-css-extract-plugin": "2.6.1", + "magic-string": "0.27.0", + "mini-css-extract-plugin": "2.7.2", "open": "8.4.0", "ora": "5.4.1", "parse5-html-rewriting-stream": "6.0.1", "piscina": "3.2.0", - "postcss": "8.4.19", - "postcss-loader": "7.0.1", + "postcss": "8.4.21", + "postcss-loader": "7.0.2", "resolve-url-loader": "5.0.0", "rxjs": "6.6.7", - "sass": "1.56.1", + "sass": "1.57.1", "sass-loader": "13.2.0", "semver": "7.3.8", "source-map-loader": "4.0.1", "source-map-support": "0.5.21", - "terser": "5.15.1", + "terser": "5.16.1", "text-table": "0.2.0", "tree-kill": "1.2.2", "tslib": "2.4.1", "webpack": "5.75.0", - "webpack-dev-middleware": "5.3.3", + "webpack-dev-middleware": "6.0.1", "webpack-dev-server": "4.11.1", "webpack-merge": "5.8.0", "webpack-subresource-integrity": "5.1.0" }, "dependencies": { + "@babel/core": { + "version": "7.20.12", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.12.tgz", + "integrity": "sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg==", + "dev": true, + "requires": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.20.7", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-module-transforms": "^7.20.11", + "@babel/helpers": "^7.20.7", + "@babel/parser": "^7.20.7", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.12", + "@babel/types": "^7.20.7", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.2", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, "brace-expansion": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", @@ -10550,25 +10587,16 @@ "dev": true } } - }, - "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } } } }, "@angular-devkit/build-webpack": { - "version": "0.1500.1", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1500.1.tgz", - "integrity": "sha512-uBikn5O48qZSGzejWShpTHLtV2Wg6U5N0CS7CYPfkwD3CIc7Rg3wioPzK/NL9OEe36vTGsEvOhu/kOOp+PptUA==", + "version": "0.1501.1", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1501.1.tgz", + "integrity": "sha512-b2Vyhx3JRHi179kSB/zc7G+/uuWq7S/7pZAau0Ry17N6Ihg2BwpLxBe0mvKcDecLmw+1ozBv2WLRCnxKXLZ4mw==", "dev": true, "requires": { - "@angular-devkit/architect": "0.1500.1", + "@angular-devkit/architect": "0.1501.1", "rxjs": "6.6.7" }, "dependencies": { @@ -10590,12 +10618,12 @@ } }, "@angular-devkit/core": { - "version": "15.0.1", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-15.0.1.tgz", - "integrity": "sha512-Q8sF561Wf53ufdrKWvsqebbD5EjJpdHaPjg5nAHYwPtwD1ciG7oL55cQFs0LYqy9Ux6k34NimodhH3QgXYYPFQ==", + "version": "15.1.1", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-15.1.1.tgz", + "integrity": "sha512-wss76zfw4oPHs+Dd0OIbLv8os/BXDkDErj9hCjBbycQN768EqF8z7EBNGy6SKHYhmfXJy9REUkEgt9qPMJb4CQ==", "dev": true, "requires": { - "ajv": "8.11.0", + "ajv": "8.12.0", "ajv-formats": "2.1.1", "jsonc-parser": "3.2.0", "rxjs": "6.6.7", @@ -10620,14 +10648,14 @@ } }, "@angular-devkit/schematics": { - "version": "15.0.1", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-15.0.1.tgz", - "integrity": "sha512-DS9t+xl1lOphYkdz17FwRO0LUs5IYBpyqr3O8SqrXESOhVUXlbcEhVtVeQiYxfeQZVRPWVR64Tf6E6ELXcGLYw==", + "version": "15.1.1", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-15.1.1.tgz", + "integrity": "sha512-ullwoxFT9aMhQR2aNwb/66A6l4HTgp4I6thbBywt86nn+ZGbJCzLKRdv2vmYh9JaxZYh1pydxWjKLEUdlycKXg==", "dev": true, "requires": { - "@angular-devkit/core": "15.0.1", + "@angular-devkit/core": "15.1.1", "jsonc-parser": "3.2.0", - "magic-string": "0.26.7", + "magic-string": "0.27.0", "ora": "5.4.1", "rxjs": "6.6.7" }, @@ -10650,120 +10678,142 @@ } }, "@angular/animations": { - "version": "15.0.1", - "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-15.0.1.tgz", - "integrity": "sha512-GfxqpRcoRfQNS1pVA+PadcgCGJSFag07jFJIQUHX3HZkI/4PyXGn/7ptgebN3tBjy+ASk4PBOQP/ntGbrr55zw==", + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-15.1.0.tgz", + "integrity": "sha512-uBw1iQVJ3QS5e/gypsD7M50O//9GvpphgGqt9ZClknyD8dxO/YryEB+Kt4GNvNQxRKhRTksD8r4KaodukdQ15w==", "requires": { "tslib": "^2.3.0" } }, "@angular/cli": { - "version": "15.0.1", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-15.0.1.tgz", - "integrity": "sha512-ntwJxtzGuHl07eb56x8WM6tQ3YhBKCP61o8WoHBrOBEFNm9rEV9C2webMIWYVFAa0iG1pmDq6U5Qc7WFPM9rtg==", + "version": "15.1.1", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-15.1.1.tgz", + "integrity": "sha512-539I3B5yTasaX/EQrXZyXOc9eZUyVBxMWiGj3/bmlCsft7/Y8J+A92uftjxIO4P8lYWzSdSxFT3Bu1zI1b6yzw==", "dev": true, "requires": { - "@angular-devkit/architect": "0.1500.1", - "@angular-devkit/core": "15.0.1", - "@angular-devkit/schematics": "15.0.1", - "@schematics/angular": "15.0.1", + "@angular-devkit/architect": "0.1501.1", + "@angular-devkit/core": "15.1.1", + "@angular-devkit/schematics": "15.1.1", + "@schematics/angular": "15.1.1", "@yarnpkg/lockfile": "1.1.0", "ansi-colors": "4.1.3", "ini": "3.0.1", "inquirer": "8.2.4", "jsonc-parser": "3.2.0", - "npm-package-arg": "9.1.2", + "npm-package-arg": "10.1.0", "npm-pick-manifest": "8.0.1", "open": "8.4.0", "ora": "5.4.1", - "pacote": "15.0.6", + "pacote": "15.0.8", "resolve": "1.22.1", "semver": "7.3.8", "symbol-observable": "4.0.0", "yargs": "17.6.2" - }, - "dependencies": { - "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } } }, "@angular/common": { - "version": "15.0.1", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-15.0.1.tgz", - "integrity": "sha512-XRD1Dj2aINyp5yYueCuwLU1y84z+ZFXeO84oNfwIu0unHszuo02iIzrV+yCm/ATwt6qUkIbe6xhZNjUorZecyA==", + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-15.1.0.tgz", + "integrity": "sha512-O0JKOeJ7dFcd/mnnfm4xQOYTAc+yL+OrRpGte7z84lKPU2fupLpGW/30tHUy1TXixsANyTLC3cTVXTY5szPdqg==", "requires": { "tslib": "^2.3.0" } }, "@angular/compiler": { - "version": "15.0.1", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-15.0.1.tgz", - "integrity": "sha512-4talkxip79XPfoj69qgY8VXV1KIBKOyZCRWHhNVqMdECyw/fceVWN4r8kDL0qOTBh1CKmhoQFXQilr9g7nFatA==", + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-15.1.0.tgz", + "integrity": "sha512-+ky5Cvgps725Q/KdgsYzi/fe9LbT5ujhZoT9N5k+tYTJsepMUrpExFwMFkWrdMUYTK7DaxC9ufjZ4WZmHVhFoA==", "requires": { "tslib": "^2.3.0" } }, "@angular/compiler-cli": { - "version": "15.0.1", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-15.0.1.tgz", - "integrity": "sha512-M2VsKBw8dQMC5p3PmpM+EBZAZ9Qk/rGX+aIHYBGzsgGFqYMEcz6Nxrj4v6I3Hta7tW7QEVXf883rXiWxHlwtbw==", + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-15.1.0.tgz", + "integrity": "sha512-mKeXolM/plP9ebkHy3YGxHx0Yg63d09S0QCpdIcmvrbJpaPeM2D1SAkbDpO46T4BsfgfWHtSYByb5JcesrYrpQ==", "dev": true, "requires": { - "@babel/core": "^7.17.2", + "@babel/core": "7.19.3", + "@jridgewell/sourcemap-codec": "^1.4.14", "chokidar": "^3.0.0", "convert-source-map": "^1.5.1", "dependency-graph": "^0.11.0", - "magic-string": "^0.26.0", + "magic-string": "^0.27.0", "reflect-metadata": "^0.1.2", "semver": "^7.0.0", - "sourcemap-codec": "^1.4.8", "tslib": "^2.3.0", "yargs": "^17.2.1" + }, + "dependencies": { + "@babel/core": { + "version": "7.19.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.19.3.tgz", + "integrity": "sha512-WneDJxdsjEvyKtXKsaBGbDeiyOjR5vYq4HcShxnIbG0qixpoHjI3MqeZM9NDvsojNCEBItQE4juOo/bU6e72gQ==", + "dev": true, + "requires": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.19.3", + "@babel/helper-compilation-targets": "^7.19.3", + "@babel/helper-module-transforms": "^7.19.0", + "@babel/helpers": "^7.19.0", + "@babel/parser": "^7.19.3", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.19.3", + "@babel/types": "^7.19.3", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.1", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + } } }, "@angular/core": { - "version": "15.0.1", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-15.0.1.tgz", - "integrity": "sha512-idaKf9hhguyGn/yj5KMHIUEvW4PpeYcwlRUSoEskQC1799BsXwJyV0AwZ67GH1ltnAj34gbhMhDedcCLdhOffA==", + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-15.1.0.tgz", + "integrity": "sha512-HiwctuR73MuLoLeP35j9xF8/SIg7ELx+iHZtp/TBfoH+LOmjWbdrAdVAPTbqnxvK0aJG+527dhgC6tBOXgBTcg==", "requires": { "tslib": "^2.3.0" } }, "@angular/forms": { - "version": "15.0.1", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-15.0.1.tgz", - "integrity": "sha512-gNj/fY7B7swczWI3jpJK4904W0WHCrYviZB8m97P4MkcxdMfQezp4VoRsj+vIkKGtUPUWje3uIjzqodhJlxIJA==", + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-15.1.0.tgz", + "integrity": "sha512-MUAbruJng0iG/cHhCkDNrh31Y54upgBUjjkE4DnoHv138Wa7vba+GMYv2tTrs4rPWnB9vPziZgI0xIi/oSGxzg==", "requires": { "tslib": "^2.3.0" } }, "@angular/platform-browser": { - "version": "15.0.1", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-15.0.1.tgz", - "integrity": "sha512-fH0EfRgbQC0ql8V1ZWVfF75H9lSjT2T6uGfR8cBdRAO/RWwWgx/TfFsjdWAZtjuKRZnKY3wRQ/yVYeQarC3n0Q==", + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-15.1.0.tgz", + "integrity": "sha512-yuJweAR+rJhWWHM4Im3Iy6S4+W3OtcVHijcqrxfVxiA9ZHbDw/jpYDi06ZZIgfnNyGWi5/BzJbHvxH3b0lAo5Q==", "requires": { "tslib": "^2.3.0" } }, "@angular/platform-browser-dynamic": { - "version": "15.0.1", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-15.0.1.tgz", - "integrity": "sha512-GyD7BIWGiKGA9KgXmSQLEWiIZjGMacBdvJ8KsRKFpKfxA9bfaC5J6dwTqNy+l/Z9IcT2VQJ8Ba0gEHHtkfemPA==", + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-15.1.0.tgz", + "integrity": "sha512-ukyycXkuu4Ah/35cbN4pEB91D2PK5eZVbJ+liCD6uRb4UI3X+QVg6Qz6MoIctVAlTV6tWK20T81zoux9SzWKsg==", "requires": { "tslib": "^2.3.0" } }, "@angular/router": { - "version": "15.0.1", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-15.0.1.tgz", - "integrity": "sha512-L+GgFNAgITyyD7CTTtOjz1OgFu00+xzjANLfOMs8wGW8OsqSS68lsXF9QexbPGm+e0n+rmQjYOZcsi0Bti4sCQ==", + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-15.1.0.tgz", + "integrity": "sha512-78ItVVXOYdu/RRxruHwSmtNxEP2clx+afHKrkwc4e7/6uxVr4rl0VQhO6qHYme/bBtbLIcBZGJoSyoUg/xUSvQ==", "requires": { "tslib": "^2.3.0" } @@ -10784,9 +10834,9 @@ } }, "@babel/compat-data": { - "version": "7.20.1", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.1.tgz", - "integrity": "sha512-EWZ4mE2diW3QALKvDMiXnbZpRvlj+nayZ112nK93SnhqOtpdsbVD4W+2tEoT3YNBAG9RBR0ISY758ZkOgsn6pQ==", + "version": "7.20.10", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.10.tgz", + "integrity": "sha512-sEnuDPpOJR/fcafHMjpcpGN5M2jbUGUHwmuWKM/YdPzeEDJg8bgmbcWQFUfE32MQjti1koACvoPVsDe8Uq+idg==", "dev": true }, "@babel/core": { @@ -10821,12 +10871,12 @@ } }, "@babel/generator": { - "version": "7.20.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.4.tgz", - "integrity": "sha512-luCf7yk/cm7yab6CAW1aiFnmEfBJplb/JojV56MYEK7ziWfGmFlTfmL9Ehwfy4gFhbjBfWO1wj7/TuSbVNEEtA==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.7.tgz", + "integrity": "sha512-7wqMOJq8doJMZmP4ApXTzLxSr7+oO2jroJURrVEp6XShrQUObV8Tq/D0NCcoYg2uHqUrjzO0zwBjoYzelxK+sw==", "dev": true, "requires": { - "@babel/types": "^7.20.2", + "@babel/types": "^7.20.7", "@jridgewell/gen-mapping": "^0.3.2", "jsesc": "^2.5.1" }, @@ -10864,22 +10914,38 @@ } }, "@babel/helper-compilation-targets": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz", - "integrity": "sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz", + "integrity": "sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==", "dev": true, "requires": { - "@babel/compat-data": "^7.20.0", + "@babel/compat-data": "^7.20.5", "@babel/helper-validator-option": "^7.18.6", "browserslist": "^4.21.3", + "lru-cache": "^5.1.1", "semver": "^6.3.0" }, "dependencies": { + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true } } }, @@ -10983,9 +11049,9 @@ } }, "@babel/helper-module-transforms": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.2.tgz", - "integrity": "sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA==", + "version": "7.20.11", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz", + "integrity": "sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg==", "dev": true, "requires": { "@babel/helper-environment-visitor": "^7.18.9", @@ -10993,9 +11059,9 @@ "@babel/helper-simple-access": "^7.20.2", "@babel/helper-split-export-declaration": "^7.18.6", "@babel/helper-validator-identifier": "^7.19.1", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.20.1", - "@babel/types": "^7.20.2" + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.10", + "@babel/types": "^7.20.7" } }, "@babel/helper-optimise-call-expression": { @@ -11096,14 +11162,14 @@ } }, "@babel/helpers": { - "version": "7.20.1", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.1.tgz", - "integrity": "sha512-J77mUVaDTUJFZ5BpP6mMn6OIl3rEWymk2ZxDBQJUG3P+PbmyMcF3bYWvz0ma69Af1oobDqT/iAsvzhB58xhQUg==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.7.tgz", + "integrity": "sha512-PBPjs5BppzsGaxHQCDKnZ6Gd9s6xl8bBCluz3vEInLGRJmnZan4F6BYCeqtyXqkk4W5IlPmjK4JlOuZkpJ3xZA==", "dev": true, "requires": { - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.20.1", - "@babel/types": "^7.20.0" + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.7", + "@babel/types": "^7.20.7" } }, "@babel/highlight": { @@ -11118,9 +11184,9 @@ } }, "@babel/parser": { - "version": "7.20.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.3.tgz", - "integrity": "sha512-OP/s5a94frIPXwjzEcv5S/tpQfc6XhxYUnmWpgdqMWGgYCuErA3SzozaRAMQgSZWKeTJxht9aWAkUY+0UzvOFg==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.7.tgz", + "integrity": "sha512-T3Z9oHybU+0vZlY9CiDSJQTD5ZapcW18ZctFMi0MOAl/4BjFF4ul7NVSARLdbGO5vDqy9eQiGTV0LtKfvCYvcg==", "dev": true }, "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { @@ -11144,13 +11210,13 @@ } }, "@babel/plugin-proposal-async-generator-functions": { - "version": "7.20.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.1.tgz", - "integrity": "sha512-Gh5rchzSwE4kC+o/6T8waD0WHEQIsDmjltY8WnWRXHUdH8axZhuH86Ov9M72YhJfDrZseQwuuWaaIT/TmePp3g==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz", + "integrity": "sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==", "dev": true, "requires": { "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-plugin-utils": "^7.19.0", + "@babel/helper-plugin-utils": "^7.20.2", "@babel/helper-remap-async-to-generator": "^7.18.9", "@babel/plugin-syntax-async-generators": "^7.8.4" } @@ -11447,14 +11513,14 @@ } }, "@babel/plugin-transform-async-to-generator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.18.6.tgz", - "integrity": "sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.20.7.tgz", + "integrity": "sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q==", "dev": true, "requires": { "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-remap-async-to-generator": "^7.18.6" + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-remap-async-to-generator": "^7.18.9" } }, "@babel/plugin-transform-block-scoped-functions": { @@ -11878,47 +11944,47 @@ } }, "@babel/runtime": { - "version": "7.20.1", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.1.tgz", - "integrity": "sha512-mrzLkl6U9YLF8qpqI7TB82PESyEGjm/0Ly91jG575eVxMMlb8fYfOXFZIJ8XfLrJZQbm7dlKry2bJmXBUEkdFg==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.7.tgz", + "integrity": "sha512-UF0tvkUtxwAgZ5W/KrkHf0Rn0fdnLDU9ScxBrEVNUprE/MzirjK4MJUX1/BVDv00Sv8cljtukVK1aky++X1SjQ==", "dev": true, "requires": { - "regenerator-runtime": "^0.13.10" + "regenerator-runtime": "^0.13.11" } }, "@babel/template": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", - "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", + "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", "dev": true, "requires": { "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.18.10", - "@babel/types": "^7.18.10" + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7" } }, "@babel/traverse": { - "version": "7.20.1", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.1.tgz", - "integrity": "sha512-d3tN8fkVJwFLkHkBN479SOsw4DMZnz8cdbL/gvuDuzy3TS6Nfw80HuQqhw1pITbIruHyh7d1fMA47kWzmcUEGA==", + "version": "7.20.12", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.12.tgz", + "integrity": "sha512-MsIbFN0u+raeja38qboyF8TIT7K0BFzz/Yd/77ta4MsUsmP2RAnidIlwq7d5HFQrH/OZJecGV6B71C4zAgpoSQ==", "dev": true, "requires": { "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.20.1", + "@babel/generator": "^7.20.7", "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-function-name": "^7.19.0", "@babel/helper-hoist-variables": "^7.18.6", "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.20.1", - "@babel/types": "^7.20.0", + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", "debug": "^4.1.0", "globals": "^11.1.0" } }, "@babel/types": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.2.tgz", - "integrity": "sha512-FnnvsNWgZCr232sqtXggapvlkk/tuwR/qhGzcmxI0GXLCjmPYQPzio2FbdlWuY6y1sHFfQKk+rRbUZ9VStQMog==", + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz", + "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==", "dev": true, "requires": { "@babel/helper-string-parser": "^7.19.4", @@ -11933,16 +11999,156 @@ "dev": true }, "@esbuild/android-arm": { - "version": "0.15.13", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.15.13.tgz", - "integrity": "sha512-RY2fVI8O0iFUNvZirXaQ1vMvK0xhCcl0gqRj74Z6yEiO1zAUa7hbsdwZM1kzqbxHK7LFyMizipfXT3JME+12Hw==", + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.16.17.tgz", + "integrity": "sha512-N9x1CMXVhtWEAMS7pNNONyA14f71VPQN9Cnavj1XQh6T7bskqiLLrSca4O0Vr8Wdcga943eThxnVp3JLnBMYtw==", + "dev": true, + "optional": true + }, + "@esbuild/android-arm64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.16.17.tgz", + "integrity": "sha512-MIGl6p5sc3RDTLLkYL1MyL8BMRN4tLMRCn+yRJJmEDvYZ2M7tmAf80hx1kbNEUX2KJ50RRtxZ4JHLvCfuB6kBg==", + "dev": true, + "optional": true + }, + "@esbuild/android-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.16.17.tgz", + "integrity": "sha512-a3kTv3m0Ghh4z1DaFEuEDfz3OLONKuFvI4Xqczqx4BqLyuFaFkuaG4j2MtA6fuWEFeC5x9IvqnX7drmRq/fyAQ==", + "dev": true, + "optional": true + }, + "@esbuild/darwin-arm64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.16.17.tgz", + "integrity": "sha512-/2agbUEfmxWHi9ARTX6OQ/KgXnOWfsNlTeLcoV7HSuSTv63E4DqtAc+2XqGw1KHxKMHGZgbVCZge7HXWX9Vn+w==", + "dev": true, + "optional": true + }, + "@esbuild/darwin-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.16.17.tgz", + "integrity": "sha512-2By45OBHulkd9Svy5IOCZt376Aa2oOkiE9QWUK9fe6Tb+WDr8hXL3dpqi+DeLiMed8tVXspzsTAvd0jUl96wmg==", + "dev": true, + "optional": true + }, + "@esbuild/freebsd-arm64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.17.tgz", + "integrity": "sha512-mt+cxZe1tVx489VTb4mBAOo2aKSnJ33L9fr25JXpqQqzbUIw/yzIzi+NHwAXK2qYV1lEFp4OoVeThGjUbmWmdw==", + "dev": true, + "optional": true + }, + "@esbuild/freebsd-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.16.17.tgz", + "integrity": "sha512-8ScTdNJl5idAKjH8zGAsN7RuWcyHG3BAvMNpKOBaqqR7EbUhhVHOqXRdL7oZvz8WNHL2pr5+eIT5c65kA6NHug==", + "dev": true, + "optional": true + }, + "@esbuild/linux-arm": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.16.17.tgz", + "integrity": "sha512-iihzrWbD4gIT7j3caMzKb/RsFFHCwqqbrbH9SqUSRrdXkXaygSZCZg1FybsZz57Ju7N/SHEgPyaR0LZ8Zbe9gQ==", + "dev": true, + "optional": true + }, + "@esbuild/linux-arm64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.16.17.tgz", + "integrity": "sha512-7S8gJnSlqKGVJunnMCrXHU9Q8Q/tQIxk/xL8BqAP64wchPCTzuM6W3Ra8cIa1HIflAvDnNOt2jaL17vaW+1V0g==", + "dev": true, + "optional": true + }, + "@esbuild/linux-ia32": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.16.17.tgz", + "integrity": "sha512-kiX69+wcPAdgl3Lonh1VI7MBr16nktEvOfViszBSxygRQqSpzv7BffMKRPMFwzeJGPxcio0pdD3kYQGpqQ2SSg==", "dev": true, "optional": true }, "@esbuild/linux-loong64": { - "version": "0.15.13", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.13.tgz", - "integrity": "sha512-+BoyIm4I8uJmH/QDIH0fu7MG0AEx9OXEDXnqptXCwKOlOqZiS4iraH1Nr7/ObLMokW3sOCeBNyD68ATcV9b9Ag==", + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.16.17.tgz", + "integrity": "sha512-dTzNnQwembNDhd654cA4QhbS9uDdXC3TKqMJjgOWsC0yNCbpzfWoXdZvp0mY7HU6nzk5E0zpRGGx3qoQg8T2DQ==", + "dev": true, + "optional": true + }, + "@esbuild/linux-mips64el": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.16.17.tgz", + "integrity": "sha512-ezbDkp2nDl0PfIUn0CsQ30kxfcLTlcx4Foz2kYv8qdC6ia2oX5Q3E/8m6lq84Dj/6b0FrkgD582fJMIfHhJfSw==", + "dev": true, + "optional": true + }, + "@esbuild/linux-ppc64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.16.17.tgz", + "integrity": "sha512-dzS678gYD1lJsW73zrFhDApLVdM3cUF2MvAa1D8K8KtcSKdLBPP4zZSLy6LFZ0jYqQdQ29bjAHJDgz0rVbLB3g==", + "dev": true, + "optional": true + }, + "@esbuild/linux-riscv64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.16.17.tgz", + "integrity": "sha512-ylNlVsxuFjZK8DQtNUwiMskh6nT0vI7kYl/4fZgV1llP5d6+HIeL/vmmm3jpuoo8+NuXjQVZxmKuhDApK0/cKw==", + "dev": true, + "optional": true + }, + "@esbuild/linux-s390x": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.16.17.tgz", + "integrity": "sha512-gzy7nUTO4UA4oZ2wAMXPNBGTzZFP7mss3aKR2hH+/4UUkCOyqmjXiKpzGrY2TlEUhbbejzXVKKGazYcQTZWA/w==", + "dev": true, + "optional": true + }, + "@esbuild/linux-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.16.17.tgz", + "integrity": "sha512-mdPjPxfnmoqhgpiEArqi4egmBAMYvaObgn4poorpUaqmvzzbvqbowRllQ+ZgzGVMGKaPkqUmPDOOFQRUFDmeUw==", + "dev": true, + "optional": true + }, + "@esbuild/netbsd-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.16.17.tgz", + "integrity": "sha512-/PzmzD/zyAeTUsduZa32bn0ORug+Jd1EGGAUJvqfeixoEISYpGnAezN6lnJoskauoai0Jrs+XSyvDhppCPoKOA==", + "dev": true, + "optional": true + }, + "@esbuild/openbsd-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.16.17.tgz", + "integrity": "sha512-2yaWJhvxGEz2RiftSk0UObqJa/b+rIAjnODJgv2GbGGpRwAfpgzyrg1WLK8rqA24mfZa9GvpjLcBBg8JHkoodg==", + "dev": true, + "optional": true + }, + "@esbuild/sunos-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.16.17.tgz", + "integrity": "sha512-xtVUiev38tN0R3g8VhRfN7Zl42YCJvyBhRKw1RJjwE1d2emWTVToPLNEQj/5Qxc6lVFATDiy6LjVHYhIPrLxzw==", + "dev": true, + "optional": true + }, + "@esbuild/win32-arm64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.16.17.tgz", + "integrity": "sha512-ga8+JqBDHY4b6fQAmOgtJJue36scANy4l/rL97W+0wYmijhxKetzZdKOJI7olaBaMhWt8Pac2McJdZLxXWUEQw==", + "dev": true, + "optional": true + }, + "@esbuild/win32-ia32": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.16.17.tgz", + "integrity": "sha512-WnsKaf46uSSF/sZhwnqE4L/F89AYNMiD4YtEcYekBt9Q7nj0DiId2XH2Ng2PHM54qi5oPrQ8luuzGszqi/veig==", + "dev": true, + "optional": true + }, + "@esbuild/win32-x64": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.16.17.tgz", + "integrity": "sha512-y+EHuSchhL7FjHgvQL/0fnnFmO4T1bhvWANX6gcnqTjtnKWbTvUMCpGnv2+t+31d7RzyEAYAd4u2fnIhHL6N/Q==", "dev": true, "optional": true }, @@ -12017,9 +12223,9 @@ } }, "@jridgewell/sourcemap-codec": { - "version": "1.4.13", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz", - "integrity": "sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w==", + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", "dev": true }, "@jridgewell/trace-mapping": { @@ -12039,9 +12245,9 @@ "dev": true }, "@ngtools/webpack": { - "version": "15.0.1", - "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-15.0.1.tgz", - "integrity": "sha512-HIAWWJvmhktcyoBQwP1MnKyuC4bcs85z2pLGyPtud69N0kCQU4lq0FuGeatiSXMs4dzpz9wRx4NuAxvL0exGrQ==", + "version": "15.1.1", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-15.1.1.tgz", + "integrity": "sha512-pHkVE4IfIGcrIqxxrBQJV62GBqXF+LU4sPY5MLNWIfKSctW6AdTVoO9ilx8pclaFJkMLkPMbrmfGosYw47L+lg==", "dev": true, "requires": {} }, @@ -12102,12 +12308,6 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", "dev": true - }, - "proc-log": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-3.0.0.tgz", - "integrity": "sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==", - "dev": true } } }, @@ -12138,9 +12338,9 @@ "dev": true }, "@npmcli/promise-spawn": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-6.0.1.tgz", - "integrity": "sha512-+hcUpxgx0vEpDJI9Cn+lkTdKLoqKBXFCVps5H7FujEU2vLOp6KwqjLlxbnz8Wzgm8oEqW/u5FeNAXSFjLdCD0A==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-6.0.2.tgz", + "integrity": "sha512-gGq0NJkIGSwdbUt4yhdF8ZrmkGKVz9vAdVzpOfnom+V8PLSmSOVhZwbNvZZS1EYcJN5hzzKBxmmVVAInM6HQLg==", "dev": true, "requires": { "which": "^3.0.0" @@ -12160,13 +12360,13 @@ } }, "@schematics/angular": { - "version": "15.0.1", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-15.0.1.tgz", - "integrity": "sha512-UGiQ4IwdLWdQwlWVgbAM5B6G4VdzVOn0yS1PkOtTt0hvAkszriu7uyaH2Qh8aFSTvNAIg/l7/6grI/UGj8iDaw==", + "version": "15.1.1", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-15.1.1.tgz", + "integrity": "sha512-Ujo4vt/r3WzIhGn2I2Lt3eOTWSsVxoXfcXxFRuxl3cil/9mH1X66hDTQ2DVYiXPFGcQMjcNaDwlQxyor4yGbqA==", "dev": true, "requires": { - "@angular-devkit/core": "15.0.1", - "@angular-devkit/schematics": "15.0.1", + "@angular-devkit/core": "15.1.1", + "@angular-devkit/schematics": "15.1.1", "jsonc-parser": "3.2.0" } }, @@ -12241,21 +12441,21 @@ "dev": true }, "@types/express": { - "version": "4.17.14", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.14.tgz", - "integrity": "sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg==", + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.15.tgz", + "integrity": "sha512-Yv0k4bXGOH+8a+7bELd2PqHQsuiANB+A8a4gnQrkRWzrkKlb6KHaVvyXhqs04sVW/OWlbPyYxRgYlIXLfrufMQ==", "dev": true, "requires": { "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.18", + "@types/express-serve-static-core": "^4.17.31", "@types/qs": "*", "@types/serve-static": "*" } }, "@types/express-serve-static-core": { - "version": "4.17.31", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.31.tgz", - "integrity": "sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q==", + "version": "4.17.32", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.32.tgz", + "integrity": "sha512-aI5h/VOkxOF2Z1saPy0Zsxs5avets/iaiAJYznQFm5By/pamU31xWKL//epiF4OfUA2qTOc9PV6tCUjhO8wlZA==", "dev": true, "requires": { "@types/node": "*", @@ -12343,9 +12543,9 @@ } }, "@types/ws": { - "version": "8.5.3", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz", - "integrity": "sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==", + "version": "8.5.4", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.4.tgz", + "integrity": "sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg==", "dev": true, "requires": { "@types/node": "*" @@ -12604,9 +12804,9 @@ } }, "ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", @@ -12725,9 +12925,9 @@ } }, "babel-loader": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.1.0.tgz", - "integrity": "sha512-Antt61KJPinUMwHwIIz9T5zfMgevnfZkEVWYDWlG888fgdvRRGD0JTuf/fFozQnfT+uq64sk1bmdHDy/mOEWnA==", + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.1.2.tgz", + "integrity": "sha512-mN14niXW43tddohGl8HPu5yfQq70iUThvFL/4QzESA7GcZoC0eVOhvWdQ8+3UlSjaDE9MVtsW9mxDY07W7VpVA==", "dev": true, "requires": { "find-cache-dir": "^3.3.2", @@ -12876,9 +13076,9 @@ } }, "bonjour-service": { - "version": "1.0.14", - "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.0.14.tgz", - "integrity": "sha512-HIMbgLnk1Vqvs6B4Wq5ep7mxvj9sGz5d1JJyDNSGNIdA/w2MCz6GTjWTdjqOJV1bEPj+6IkxDvWNFKEBxNt4kQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.1.0.tgz", + "integrity": "sha512-LVRinRB3k1/K0XzZ2p58COnWvkQknIY6sf0zF2rpErvcJXpMBttEPQSxK+HEXSS9VmpZlDoDnQWv8ftJT20B0Q==", "dev": true, "requires": { "array-flatten": "^2.1.2", @@ -12956,16 +13156,16 @@ "dev": true }, "cacache": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-17.0.2.tgz", - "integrity": "sha512-rYUs2x4OjSgCQND7nTrh21AHIBFgd7s/ctAYvU3a8u+nK+R5YaX/SFPDYz4Azz7SGL6+6L9ZZWI4Kawpb7grzQ==", + "version": "17.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-17.0.4.tgz", + "integrity": "sha512-Z/nL3gU+zTUjz5pCA5vVjYM8pmaw2kxM7JEiE0fv3w77Wj+sFbi70CrBruUWH0uNcEdvLDixFpgA2JM4F4DBjA==", "dev": true, "requires": { "@npmcli/fs": "^3.1.0", - "fs-minipass": "^2.1.0", + "fs-minipass": "^3.0.0", "glob": "^8.0.1", "lru-cache": "^7.7.1", - "minipass": "^3.1.6", + "minipass": "^4.0.0", "minipass-collect": "^1.0.2", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", @@ -13005,9 +13205,9 @@ "dev": true }, "minimatch": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", - "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.2.tgz", + "integrity": "sha512-bNH9mmM9qsJ2X4r2Nat1B//1dJVcn3+iBLa3IgqJ7EbGaDNepL9QSHOxN4ng33s52VMMhhIfgCYDk3C4ZmlDAg==", "dev": true, "requires": { "brace-expansion": "^2.0.1" @@ -13335,9 +13535,9 @@ "dev": true }, "cosmiconfig": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", - "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", "dev": true, "requires": { "@types/parse-json": "^4.0.0", @@ -13435,19 +13635,19 @@ } }, "css-loader": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.7.1.tgz", - "integrity": "sha512-yB5CNFa14MbPJcomwNh3wLThtkZgcNyI2bNMRt8iE5Z8Vwl7f8vQXFAzn2HDOJvtDq2NTZBUGMSUNNyrv3/+cw==", + "version": "6.7.3", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.7.3.tgz", + "integrity": "sha512-qhOH1KlBMnZP8FzRO6YCH9UHXQhVMcEGLyNdb7Hv2cpcmJbW0YrddO+tG1ab5nT41KpHIYGsbeHqxB9xPu1pKQ==", "dev": true, "requires": { "icss-utils": "^5.1.0", - "postcss": "^8.4.7", + "postcss": "^8.4.19", "postcss-modules-extract-imports": "^3.0.0", "postcss-modules-local-by-default": "^4.0.0", "postcss-modules-scope": "^3.0.0", "postcss-modules-values": "^4.0.0", "postcss-value-parser": "^4.2.0", - "semver": "^7.3.5" + "semver": "^7.3.8" } }, "css-select": { @@ -13665,221 +13865,81 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "dev": true - }, - "env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "dev": true - }, - "err-code": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", - "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", - "dev": true - }, - "errno": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", - "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", - "dev": true, - "optional": true, - "requires": { - "prr": "~1.0.1" - } - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "es-module-lexer": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", - "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", - "dev": true - }, - "esbuild": { - "version": "0.15.13", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.13.tgz", - "integrity": "sha512-Cu3SC84oyzzhrK/YyN4iEVy2jZu5t2fz66HEOShHURcjSkOSAVL8C/gfUT+lDJxkVHpg8GZ10DD0rMHRPqMFaQ==", - "dev": true, - "optional": true, - "requires": { - "@esbuild/android-arm": "0.15.13", - "@esbuild/linux-loong64": "0.15.13", - "esbuild-android-64": "0.15.13", - "esbuild-android-arm64": "0.15.13", - "esbuild-darwin-64": "0.15.13", - "esbuild-darwin-arm64": "0.15.13", - "esbuild-freebsd-64": "0.15.13", - "esbuild-freebsd-arm64": "0.15.13", - "esbuild-linux-32": "0.15.13", - "esbuild-linux-64": "0.15.13", - "esbuild-linux-arm": "0.15.13", - "esbuild-linux-arm64": "0.15.13", - "esbuild-linux-mips64le": "0.15.13", - "esbuild-linux-ppc64le": "0.15.13", - "esbuild-linux-riscv64": "0.15.13", - "esbuild-linux-s390x": "0.15.13", - "esbuild-netbsd-64": "0.15.13", - "esbuild-openbsd-64": "0.15.13", - "esbuild-sunos-64": "0.15.13", - "esbuild-windows-32": "0.15.13", - "esbuild-windows-64": "0.15.13", - "esbuild-windows-arm64": "0.15.13" - } - }, - "esbuild-android-64": { - "version": "0.15.13", - "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.15.13.tgz", - "integrity": "sha512-yRorukXBlokwTip+Sy4MYskLhJsO0Kn0/Fj43s1krVblfwP+hMD37a4Wmg139GEsMLl+vh8WXp2mq/cTA9J97g==", - "dev": true, - "optional": true - }, - "esbuild-android-arm64": { - "version": "0.15.13", - "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.15.13.tgz", - "integrity": "sha512-TKzyymLD6PiVeyYa4c5wdPw87BeAiTXNtK6amWUcXZxkV51gOk5u5qzmDaYSwiWeecSNHamFsaFjLoi32QR5/w==", - "dev": true, - "optional": true - }, - "esbuild-darwin-64": { - "version": "0.15.13", - "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.13.tgz", - "integrity": "sha512-WAx7c2DaOS6CrRcoYCgXgkXDliLnFv3pQLV6GeW1YcGEZq2Gnl8s9Pg7ahValZkpOa0iE/ojRVQ87sbUhF1Cbg==", - "dev": true, - "optional": true - }, - "esbuild-darwin-arm64": { - "version": "0.15.13", - "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.13.tgz", - "integrity": "sha512-U6jFsPfSSxC3V1CLiQqwvDuj3GGrtQNB3P3nNC3+q99EKf94UGpsG9l4CQ83zBs1NHrk1rtCSYT0+KfK5LsD8A==", - "dev": true, - "optional": true - }, - "esbuild-freebsd-64": { - "version": "0.15.13", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.13.tgz", - "integrity": "sha512-whItJgDiOXaDG/idy75qqevIpZjnReZkMGCgQaBWZuKHoElDJC1rh7MpoUgupMcdfOd+PgdEwNQW9DAE6i8wyA==", - "dev": true, - "optional": true - }, - "esbuild-freebsd-arm64": { - "version": "0.15.13", - "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.13.tgz", - "integrity": "sha512-6pCSWt8mLUbPtygv7cufV0sZLeylaMwS5Fznj6Rsx9G2AJJsAjQ9ifA+0rQEIg7DwJmi9it+WjzNTEAzzdoM3Q==", - "dev": true, - "optional": true - }, - "esbuild-linux-32": { - "version": "0.15.13", - "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.15.13.tgz", - "integrity": "sha512-VbZdWOEdrJiYApm2kkxoTOgsoCO1krBZ3quHdYk3g3ivWaMwNIVPIfEE0f0XQQ0u5pJtBsnk2/7OPiCFIPOe/w==", - "dev": true, - "optional": true - }, - "esbuild-linux-64": { - "version": "0.15.13", - "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.15.13.tgz", - "integrity": "sha512-rXmnArVNio6yANSqDQlIO4WiP+Cv7+9EuAHNnag7rByAqFVuRusLbGi2697A5dFPNXoO//IiogVwi3AdcfPC6A==", - "dev": true, - "optional": true - }, - "esbuild-linux-arm": { - "version": "0.15.13", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.15.13.tgz", - "integrity": "sha512-Ac6LpfmJO8WhCMQmO253xX2IU2B3wPDbl4IvR0hnqcPrdfCaUa2j/lLMGTjmQ4W5JsJIdHEdW12dG8lFS0MbxQ==", - "dev": true, - "optional": true - }, - "esbuild-linux-arm64": { - "version": "0.15.13", - "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.13.tgz", - "integrity": "sha512-alEMGU4Z+d17U7KQQw2IV8tQycO6T+rOrgW8OS22Ua25x6kHxoG6Ngry6Aq6uranC+pNWNMB6aHFPh7aTQdORQ==", - "dev": true, - "optional": true - }, - "esbuild-linux-mips64le": { - "version": "0.15.13", - "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.13.tgz", - "integrity": "sha512-47PgmyYEu+yN5rD/MbwS6DxP2FSGPo4Uxg5LwIdxTiyGC2XKwHhHyW7YYEDlSuXLQXEdTO7mYe8zQ74czP7W8A==", - "dev": true, - "optional": true - }, - "esbuild-linux-ppc64le": { - "version": "0.15.13", - "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.13.tgz", - "integrity": "sha512-z6n28h2+PC1Ayle9DjKoBRcx/4cxHoOa2e689e2aDJSaKug3jXcQw7mM+GLg+9ydYoNzj8QxNL8ihOv/OnezhA==", - "dev": true, - "optional": true - }, - "esbuild-linux-riscv64": { - "version": "0.15.13", - "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.13.tgz", - "integrity": "sha512-+Lu4zuuXuQhgLUGyZloWCqTslcCAjMZH1k3Xc9MSEJEpEFdpsSU0sRDXAnk18FKOfEjhu4YMGaykx9xjtpA6ow==", - "dev": true, - "optional": true + "dev": true }, - "esbuild-linux-s390x": { - "version": "0.15.13", - "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.13.tgz", - "integrity": "sha512-BMeXRljruf7J0TMxD5CIXS65y7puiZkAh+s4XFV9qy16SxOuMhxhVIXYLnbdfLrsYGFzx7U9mcdpFWkkvy/Uag==", - "dev": true, - "optional": true + "env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true }, - "esbuild-netbsd-64": { - "version": "0.15.13", - "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.13.tgz", - "integrity": "sha512-EHj9QZOTel581JPj7UO3xYbltFTYnHy+SIqJVq6yd3KkCrsHRbapiPb0Lx3EOOtybBEE9EyqbmfW1NlSDsSzvQ==", - "dev": true, - "optional": true + "err-code": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", + "dev": true }, - "esbuild-openbsd-64": { - "version": "0.15.13", - "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.13.tgz", - "integrity": "sha512-nkuDlIjF/sfUhfx8SKq0+U+Fgx5K9JcPq1mUodnxI0x4kBdCv46rOGWbuJ6eof2n3wdoCLccOoJAbg9ba/bT2w==", + "errno": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", "dev": true, - "optional": true + "optional": true, + "requires": { + "prr": "~1.0.1" + } }, - "esbuild-sunos-64": { - "version": "0.15.13", - "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.15.13.tgz", - "integrity": "sha512-jVeu2GfxZQ++6lRdY43CS0Tm/r4WuQQ0Pdsrxbw+aOrHQPHV0+LNOLnvbN28M7BSUGnJnHkHm2HozGgNGyeIRw==", + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, - "optional": true + "requires": { + "is-arrayish": "^0.2.1" + } }, - "esbuild-wasm": { - "version": "0.15.13", - "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.15.13.tgz", - "integrity": "sha512-0am8fvHKACwofWQxtZLTMv4mDiDwUrdt0DyRaQ2r7YWIpkmpg4GWYy0EyW+gPjiPHzkZKqN9d3UYsZGgvaAASw==", + "es-module-lexer": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", + "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", "dev": true }, - "esbuild-windows-32": { - "version": "0.15.13", - "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.15.13.tgz", - "integrity": "sha512-XoF2iBf0wnqo16SDq+aDGi/+QbaLFpkiRarPVssMh9KYbFNCqPLlGAWwDvxEVz+ywX6Si37J2AKm+AXq1kC0JA==", - "dev": true, - "optional": true - }, - "esbuild-windows-64": { - "version": "0.15.13", - "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.13.tgz", - "integrity": "sha512-Et6htEfGycjDrtqb2ng6nT+baesZPYQIW+HUEHK4D1ncggNrDNk3yoboYQ5KtiVrw/JaDMNttz8rrPubV/fvPQ==", + "esbuild": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.16.17.tgz", + "integrity": "sha512-G8LEkV0XzDMNwXKgM0Jwu3nY3lSTwSGY6XbxM9cr9+s0T/qSV1q1JVPBGzm3dcjhCic9+emZDmMffkwgPeOeLg==", "dev": true, - "optional": true + "optional": true, + "requires": { + "@esbuild/android-arm": "0.16.17", + "@esbuild/android-arm64": "0.16.17", + "@esbuild/android-x64": "0.16.17", + "@esbuild/darwin-arm64": "0.16.17", + "@esbuild/darwin-x64": "0.16.17", + "@esbuild/freebsd-arm64": "0.16.17", + "@esbuild/freebsd-x64": "0.16.17", + "@esbuild/linux-arm": "0.16.17", + "@esbuild/linux-arm64": "0.16.17", + "@esbuild/linux-ia32": "0.16.17", + "@esbuild/linux-loong64": "0.16.17", + "@esbuild/linux-mips64el": "0.16.17", + "@esbuild/linux-ppc64": "0.16.17", + "@esbuild/linux-riscv64": "0.16.17", + "@esbuild/linux-s390x": "0.16.17", + "@esbuild/linux-x64": "0.16.17", + "@esbuild/netbsd-x64": "0.16.17", + "@esbuild/openbsd-x64": "0.16.17", + "@esbuild/sunos-x64": "0.16.17", + "@esbuild/win32-arm64": "0.16.17", + "@esbuild/win32-ia32": "0.16.17", + "@esbuild/win32-x64": "0.16.17" + } }, - "esbuild-windows-arm64": { - "version": "0.15.13", - "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.13.tgz", - "integrity": "sha512-3bv7tqntThQC9SWLRouMDmZnlOukBhOCTlkzNqzGCmrkCJI7io5LLjwJBOVY6kOUlIvdxbooNZwjtBvj+7uuVg==", - "dev": true, - "optional": true + "esbuild-wasm": { + "version": "0.16.17", + "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.16.17.tgz", + "integrity": "sha512-Tn7NuMqRcM+T/qCOxbQRq0qrwWl1sUWp6ARfJRakE8Bepew6zata4qrKgH2YqovNC5e/2fcTa7o+VL/FAOZC1Q==", + "dev": true }, "escalade": { "version": "3.1.1", @@ -14209,12 +14269,12 @@ "dev": true }, "fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.0.tgz", + "integrity": "sha512-EUojgQaSPy6sxcqcZgQv6TVF6jiKvurji3AxhAivs/Ep4O1UpS8TusaxpybfFHZ2skRhLqzk6WR8nqNYIMMDeA==", "dev": true, "requires": { - "minipass": "^3.0.0" + "minipass": "^4.0.0" } }, "fs-monkey": { @@ -14398,9 +14458,9 @@ "dev": true }, "hosted-git-info": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.2.1.tgz", - "integrity": "sha512-xIcQYMnhcx2Nr4JTjsFmwwnr9vldugPy9uVm0o87bjqqWMv9GaqsTeT+i99wTl0mk1uLxJtHxLb8kymqTENQsw==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-6.1.1.tgz", + "integrity": "sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w==", "dev": true, "requires": { "lru-cache": "^7.5.1" @@ -14604,9 +14664,9 @@ } }, "minimatch": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", - "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.2.tgz", + "integrity": "sha512-bNH9mmM9qsJ2X4r2Nat1B//1dJVcn3+iBLa3IgqJ7EbGaDNepL9QSHOxN4ng33s52VMMhhIfgCYDk3C4ZmlDAg==", "dev": true, "requires": { "brace-expansion": "^2.0.1" @@ -14999,9 +15059,9 @@ "dev": true }, "json5": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", - "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true }, "jsonc-parser": { @@ -15210,12 +15270,12 @@ } }, "magic-string": { - "version": "0.26.7", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.26.7.tgz", - "integrity": "sha512-hX9XH3ziStPoPhJxLq1syWuZMxbDvGNbVchfrdCtanC7D13888bMFow61x8axrx+GfHLtVeAx2kxL7tTGRl+Ow==", + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.27.0.tgz", + "integrity": "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==", "dev": true, "requires": { - "sourcemap-codec": "^1.4.8" + "@jridgewell/sourcemap-codec": "^1.4.13" } }, "make-dir": { @@ -15304,6 +15364,15 @@ "unique-filename": "^2.0.0" } }, + "fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, "glob": { "version": "8.0.3", "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", @@ -15324,14 +15393,23 @@ "dev": true }, "minimatch": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", - "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.2.tgz", + "integrity": "sha512-bNH9mmM9qsJ2X4r2Nat1B//1dJVcn3+iBLa3IgqJ7EbGaDNepL9QSHOxN4ng33s52VMMhhIfgCYDk3C4ZmlDAg==", "dev": true, "requires": { "brace-expansion": "^2.0.1" } }, + "minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, "ssri": { "version": "9.0.1", "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", @@ -15368,9 +15446,9 @@ "dev": true }, "memfs": { - "version": "3.4.12", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.12.tgz", - "integrity": "sha512-BcjuQn6vfqP+k100e0E9m61Hyqa//Brp+I3f0OBmN0ATHlFA8vx3Lt8z57R3u2bPqe3WGDBC+nF72fTH7isyEw==", + "version": "3.4.13", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.13.tgz", + "integrity": "sha512-omTM41g3Skpvx5dSYeZIbXKcXoAVc/AoMNwn9TKx++L/gaen/+4TTttmu8ZSch5vfVJ8uJvGbroTsIlslRg6lg==", "dev": true, "requires": { "fs-monkey": "^1.0.3" @@ -15438,9 +15516,9 @@ "dev": true }, "mini-css-extract-plugin": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.6.1.tgz", - "integrity": "sha512-wd+SD57/K6DiV7jIR34P+s3uckTRuQvx0tKPcvjFlrEylk6P4mQ2KSWk1hblj1Kxaqok7LogKOieygXqBczNlg==", + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.2.tgz", + "integrity": "sha512-EdlUizq13o0Pd+uCp+WO/JpkLvHRVGt97RqfeGhXqAcorYo1ypJSpkV+WDT0vY/kmh/p7wRdJNJtuyK540PXDw==", "dev": true, "requires": { "schema-utils": "^4.0.0" @@ -15462,9 +15540,9 @@ } }, "minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.0.0.tgz", + "integrity": "sha512-g2Uuh2jEKoht+zvO6vJqXmYpflPqzRBT+Th2h01DKh5z7wbY/AZ2gCQ78cP70YoHPyFdY30YBV5WxgLOEwOykw==", "dev": true, "requires": { "yallist": "^4.0.0" @@ -15477,6 +15555,17 @@ "dev": true, "requires": { "minipass": "^3.0.0" + }, + "dependencies": { + "minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + } } }, "minipass-fetch": { @@ -15489,6 +15578,17 @@ "minipass": "^3.1.6", "minipass-sized": "^1.0.3", "minizlib": "^2.1.2" + }, + "dependencies": { + "minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + } } }, "minipass-flush": { @@ -15498,6 +15598,17 @@ "dev": true, "requires": { "minipass": "^3.0.0" + }, + "dependencies": { + "minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + } } }, "minipass-json-stream": { @@ -15508,6 +15619,17 @@ "requires": { "jsonparse": "^1.3.1", "minipass": "^3.0.0" + }, + "dependencies": { + "minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + } } }, "minipass-pipeline": { @@ -15517,6 +15639,17 @@ "dev": true, "requires": { "minipass": "^3.0.0" + }, + "dependencies": { + "minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + } } }, "minipass-sized": { @@ -15526,6 +15659,17 @@ "dev": true, "requires": { "minipass": "^3.0.0" + }, + "dependencies": { + "minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + } } }, "minizlib": { @@ -15536,6 +15680,17 @@ "requires": { "minipass": "^3.0.0", "yallist": "^4.0.0" + }, + "dependencies": { + "minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + } } }, "mkdirp": { @@ -15643,9 +15798,9 @@ "dev": true }, "node-gyp": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-9.3.0.tgz", - "integrity": "sha512-A6rJWfXFz7TQNjpldJ915WFb1LnhO4lIve3ANPbWreuEoLoKlFT3sxIepPBkLhM27crW8YmN+pjlgbasH6cH/Q==", + "version": "9.3.1", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-9.3.1.tgz", + "integrity": "sha512-4Q16ZCqq3g8awk6UplT7AuxQ35XN4R/yf/+wSAwcBUAjg7l58RTactWaP8fIDTi0FzI7YcVLujwExakZlfWkXg==", "dev": true, "requires": { "env-paths": "^2.2.0", @@ -15703,23 +15858,6 @@ "is-core-module": "^2.8.1", "semver": "^7.3.5", "validate-npm-package-license": "^3.0.4" - }, - "dependencies": { - "hosted-git-info": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-6.1.1.tgz", - "integrity": "sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w==", - "dev": true, - "requires": { - "lru-cache": "^7.5.1" - } - }, - "lru-cache": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", - "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", - "dev": true - } } }, "normalize-path": { @@ -15759,21 +15897,21 @@ "dev": true }, "npm-package-arg": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-9.1.2.tgz", - "integrity": "sha512-pzd9rLEx4TfNJkovvlBSLGhq31gGu2QDexFPWT19yCDh0JgnRhlBLNo5759N0AJmBk+kQ9Y/hXoLnlgFD+ukmg==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-10.1.0.tgz", + "integrity": "sha512-uFyyCEmgBfZTtrKk/5xDfHp6+MdrqGotX/VoOyEEl3mBwiEE5FlBaePanazJSVMPT7vKepcjYBY2ztg9A3yPIA==", "dev": true, "requires": { - "hosted-git-info": "^5.0.0", - "proc-log": "^2.0.1", + "hosted-git-info": "^6.0.0", + "proc-log": "^3.0.0", "semver": "^7.3.5", - "validate-npm-package-name": "^4.0.0" + "validate-npm-package-name": "^5.0.0" } }, "npm-packlist": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-7.0.2.tgz", - "integrity": "sha512-d2+7RMySjVXssww23rV5NuIq1NzGvM04OlI5kwnvtYKfFTAPVs6Zxmxns2HRtJEA1oNj7D/BbFXeVAOLmW3N3Q==", + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-7.0.4.tgz", + "integrity": "sha512-d6RGEuRrNS5/N84iglPivjaJPxhDbZmlbTwTDX2IbcRHG5bZCdtysYMhwiPvcF4GisXHGn7xsxv+GQ7T/02M5Q==", "dev": true, "requires": { "ignore-walk": "^6.0.0" @@ -15789,60 +15927,16 @@ "npm-normalize-package-bin": "^3.0.0", "npm-package-arg": "^10.0.0", "semver": "^7.3.5" - }, - "dependencies": { - "hosted-git-info": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-6.1.1.tgz", - "integrity": "sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w==", - "dev": true, - "requires": { - "lru-cache": "^7.5.1" - } - }, - "lru-cache": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", - "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", - "dev": true - }, - "npm-package-arg": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-10.0.0.tgz", - "integrity": "sha512-7dkh8mRp7s0KwVHKIVJnFCJQ2B34gOGnzgBjDGyprycmARq/82SX/lhilQ95ZuacP/G/1gsS345iAkKmxWBQ2Q==", - "dev": true, - "requires": { - "hosted-git-info": "^6.0.0", - "proc-log": "^3.0.0", - "semver": "^7.3.5", - "validate-npm-package-name": "^5.0.0" - } - }, - "proc-log": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-3.0.0.tgz", - "integrity": "sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==", - "dev": true - }, - "validate-npm-package-name": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.0.tgz", - "integrity": "sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==", - "dev": true, - "requires": { - "builtins": "^5.0.0" - } - } } }, "npm-registry-fetch": { - "version": "14.0.2", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-14.0.2.tgz", - "integrity": "sha512-TMenrMagFA9KF81E2bkS5XRyzERK4KXu70vgXt5+i8FcrFeLNgNsc6e5hekTqjDwPDkL3HGn/holWcXDMfnFgw==", + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-14.0.3.tgz", + "integrity": "sha512-YaeRbVNpnWvsGOjX2wk5s85XJ7l1qQBGAp724h8e2CZFFhMSuw9enom7K1mWVUtvXO1uUSFIAPofQK0pPN0ZcA==", "dev": true, "requires": { "make-fetch-happen": "^11.0.0", - "minipass": "^3.1.6", + "minipass": "^4.0.0", "minipass-fetch": "^3.0.0", "minipass-json-stream": "^1.0.1", "minizlib": "^2.1.2", @@ -15850,15 +15944,6 @@ "proc-log": "^3.0.0" }, "dependencies": { - "hosted-git-info": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-6.1.1.tgz", - "integrity": "sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w==", - "dev": true, - "requires": { - "lru-cache": "^7.5.1" - } - }, "lru-cache": { "version": "7.14.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", @@ -15866,9 +15951,9 @@ "dev": true }, "make-fetch-happen": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.0.1.tgz", - "integrity": "sha512-clv3IblugXn2CDUmqFhNzii3rjKa46u5wNeivc+QlLXkGI5FjLX3rGboo+y2kwf1pd8W0iDiC384cemeDtw9kw==", + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.0.2.tgz", + "integrity": "sha512-5n/Pq41w/uZghpdlXAY5kIM85RgJThtTH/NYBRAZ9VUOBWV90USaQjwGrw76fZP3Lj5hl/VZjpVvOaRBMoL/2w==", "dev": true, "requires": { "agentkeepalive": "^4.2.1", @@ -15878,7 +15963,7 @@ "https-proxy-agent": "^5.0.0", "is-lambda": "^1.0.1", "lru-cache": "^7.7.1", - "minipass": "^3.1.6", + "minipass": "^4.0.0", "minipass-collect": "^1.0.2", "minipass-fetch": "^3.0.0", "minipass-flush": "^1.0.5", @@ -15890,43 +15975,16 @@ } }, "minipass-fetch": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.0.tgz", - "integrity": "sha512-NSx3k5gR4Q5Ts2poCM/19d45VwhVLBtJZ6ypYcthj2BwmDx/e7lW8Aadnyt3edd2W0ecb+b0o7FYLRYE2AGcQg==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.1.tgz", + "integrity": "sha512-t9/wowtf7DYkwz8cfMSt0rMwiyNIBXf5CKZ3S5ZMqRqMYT0oLTp0x1WorMI9WTwvaPg21r1JbFxJMum8JrLGfw==", "dev": true, "requires": { "encoding": "^0.1.13", - "minipass": "^3.1.6", + "minipass": "^4.0.0", "minipass-sized": "^1.0.3", "minizlib": "^2.1.2" } - }, - "npm-package-arg": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-10.0.0.tgz", - "integrity": "sha512-7dkh8mRp7s0KwVHKIVJnFCJQ2B34gOGnzgBjDGyprycmARq/82SX/lhilQ95ZuacP/G/1gsS345iAkKmxWBQ2Q==", - "dev": true, - "requires": { - "hosted-git-info": "^6.0.0", - "proc-log": "^3.0.0", - "semver": "^7.3.5", - "validate-npm-package-name": "^5.0.0" - } - }, - "proc-log": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-3.0.0.tgz", - "integrity": "sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==", - "dev": true - }, - "validate-npm-package-name": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.0.tgz", - "integrity": "sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==", - "dev": true, - "requires": { - "builtins": "^5.0.0" - } } } }, @@ -15961,9 +16019,9 @@ } }, "object-inspect": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", - "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", "dev": true }, "obuf": { @@ -16142,9 +16200,9 @@ "dev": true }, "pacote": { - "version": "15.0.6", - "resolved": "https://registry.npmjs.org/pacote/-/pacote-15.0.6.tgz", - "integrity": "sha512-dQwcz/sME7QIL+cdrw/jftQfMMXxSo17i2kJ/gnhBhUvvBAsxoBu1lw9B5IzCH/Ce8CvEkG/QYZ6txzKfn0bTw==", + "version": "15.0.8", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-15.0.8.tgz", + "integrity": "sha512-UlcumB/XS6xyyIMwg/WwMAyUmga+RivB5KgkRwA1hZNtrx+0Bt41KxHCvg1kr0pZ/ZeD8qjhW4fph6VaYRCbLw==", "dev": true, "requires": { "@npmcli/git": "^4.0.0", @@ -16152,8 +16210,8 @@ "@npmcli/promise-spawn": "^6.0.1", "@npmcli/run-script": "^6.0.0", "cacache": "^17.0.0", - "fs-minipass": "^2.1.0", - "minipass": "^3.1.6", + "fs-minipass": "^3.0.0", + "minipass": "^4.0.0", "npm-package-arg": "^10.0.0", "npm-packlist": "^7.0.0", "npm-pick-manifest": "^8.0.0", @@ -16164,50 +16222,6 @@ "read-package-json-fast": "^3.0.0", "ssri": "^10.0.0", "tar": "^6.1.11" - }, - "dependencies": { - "hosted-git-info": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-6.1.1.tgz", - "integrity": "sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w==", - "dev": true, - "requires": { - "lru-cache": "^7.5.1" - } - }, - "lru-cache": { - "version": "7.14.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", - "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==", - "dev": true - }, - "npm-package-arg": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-10.0.0.tgz", - "integrity": "sha512-7dkh8mRp7s0KwVHKIVJnFCJQ2B34gOGnzgBjDGyprycmARq/82SX/lhilQ95ZuacP/G/1gsS345iAkKmxWBQ2Q==", - "dev": true, - "requires": { - "hosted-git-info": "^6.0.0", - "proc-log": "^3.0.0", - "semver": "^7.3.5", - "validate-npm-package-name": "^5.0.0" - } - }, - "proc-log": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-3.0.0.tgz", - "integrity": "sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==", - "dev": true - }, - "validate-npm-package-name": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.0.tgz", - "integrity": "sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==", - "dev": true, - "requires": { - "builtins": "^5.0.0" - } - } } }, "pako": { @@ -16360,9 +16374,9 @@ } }, "postcss": { - "version": "8.4.19", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.19.tgz", - "integrity": "sha512-h+pbPsyhlYj6N2ozBmHhHrs9DzGmbaarbLvWipMRO7RLS+v4onj26MPFXA5OBYFxyqYhUJK456SwDcY9H2/zsA==", + "version": "8.4.21", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", + "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==", "dev": true, "requires": { "nanoid": "^3.3.4", @@ -16371,25 +16385,14 @@ } }, "postcss-loader": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-7.0.1.tgz", - "integrity": "sha512-VRviFEyYlLjctSM93gAZtcJJ/iSkPZ79zWbN/1fSH+NisBByEiVLqpdVDrPLVSi8DX0oJo12kL/GppTBdKVXiQ==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-7.0.2.tgz", + "integrity": "sha512-fUJzV/QH7NXUAqV8dWJ9Lg4aTkDCezpTS5HgJ2DvqznexTbSTxgi/dTECvTZ15BwKTtk8G/bqI/QTu2HPd3ZCg==", "dev": true, "requires": { "cosmiconfig": "^7.0.0", "klona": "^2.0.5", - "semver": "^7.3.7" - }, - "dependencies": { - "semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } + "semver": "^7.3.8" } }, "postcss-modules-extract-imports": { @@ -16429,9 +16432,9 @@ } }, "postcss-selector-parser": { - "version": "6.0.10", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", - "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", + "version": "6.0.11", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz", + "integrity": "sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==", "dev": true, "requires": { "cssesc": "^3.0.0", @@ -16451,9 +16454,9 @@ "dev": true }, "proc-log": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-2.0.1.tgz", - "integrity": "sha512-Kcmo2FhfDTXdcbfDH76N7uBYHINxc/8GW7UAVuVP9I+Va3uHSerrnKV6dLooga/gh7GlgzuCCr/eoldnL1muGw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-3.0.0.tgz", + "integrity": "sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==", "dev": true }, "process-nextick-args": { @@ -16600,9 +16603,9 @@ "dev": true }, "minimatch": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", - "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.2.tgz", + "integrity": "sha512-bNH9mmM9qsJ2X4r2Nat1B//1dJVcn3+iBLa3IgqJ7EbGaDNepL9QSHOxN4ng33s52VMMhhIfgCYDk3C4ZmlDAg==", "dev": true, "requires": { "brace-expansion": "^2.0.1" @@ -16611,9 +16614,9 @@ } }, "read-package-json-fast": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-3.0.1.tgz", - "integrity": "sha512-8+HW7Yo+cjfF+md8DqsZHgats2mxf7gGYow/+2JjxrftoHFZz9v4dzd0EubzYbkNaLxrTVcnllHwklXN2+7aTQ==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-3.0.2.tgz", + "integrity": "sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==", "dev": true, "requires": { "json-parse-even-better-errors": "^3.0.0", @@ -16868,9 +16871,9 @@ "dev": true }, "sass": { - "version": "1.56.1", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.56.1.tgz", - "integrity": "sha512-VpEyKpyBPCxE7qGDtOcdJ6fFbcpOM+Emu7uZLxVrkX8KVU/Dp5UF7WLvzqRuUhB6mqqQt1xffLoG+AndxTZrCQ==", + "version": "1.57.1", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.57.1.tgz", + "integrity": "sha512-O2+LwLS79op7GI0xZ8fqzF7X2m/m8WFfI02dHOdsK5R2ECeS5F62zrwg/relM1rjSLy7Vd/DiMNIvPrQGsA0jw==", "dev": true, "requires": { "chokidar": ">=3.0.0 <4.0.0", @@ -16923,9 +16926,9 @@ } }, "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -17215,12 +17218,6 @@ } } }, - "sourcemap-codec": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", - "dev": true - }, "spdx-correct": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", @@ -17287,12 +17284,12 @@ "dev": true }, "ssri": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.0.tgz", - "integrity": "sha512-64ghGOpqW0k+jh7m5jndBGdVEoPikWwGQmBNN5ks6jyUSMymzHDTlnNHOvzp+6MmHOljr2MokUzvRksnTwG0Iw==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.1.tgz", + "integrity": "sha512-WVy6di9DlPOeBWEjMScpNipeSX2jIZBGEn5Uuo8Q7aIuFEuDX0pw8RxcOjlD1TWP4obi24ki7m/13+nFpcbXrw==", "dev": true, "requires": { - "minipass": "^3.1.1" + "minipass": "^4.0.0" } }, "statuses": { @@ -17372,23 +17369,45 @@ "dev": true }, "tar": { - "version": "6.1.12", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.12.tgz", - "integrity": "sha512-jU4TdemS31uABHd+Lt5WEYJuzn+TJTCBLljvIAHZOz6M9Os5pJ4dD+vRFLxPa/n3T0iEFzpi+0x1UfuDZYbRMw==", + "version": "6.1.13", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.13.tgz", + "integrity": "sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw==", "dev": true, "requires": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", + "minipass": "^4.0.0", "minizlib": "^2.1.1", "mkdirp": "^1.0.3", "yallist": "^4.0.0" + }, + "dependencies": { + "fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + }, + "dependencies": { + "minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + } + } + } } }, "terser": { - "version": "5.15.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.15.1.tgz", - "integrity": "sha512-K1faMUvpm/FBxjBXud0LWVAGxmvoPbZbfTCYbSgaaYQaIXI3/TdI7a7ZGA73Zrou6Q8Zmz3oeUTsp/dj+ag2Xw==", + "version": "5.16.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.1.tgz", + "integrity": "sha512-xvQfyfA1ayT0qdK47zskQgRZeWLoOQ8JQ6mIgRGVNwZKdQMU+5FkCBjmv4QjcrTzyZquRw2FVtlJSRUmMKQslw==", "dev": true, "requires": { "@jridgewell/source-map": "^0.3.2", @@ -17652,9 +17671,9 @@ } }, "validate-npm-package-name": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-4.0.0.tgz", - "integrity": "sha512-mzR0L8ZDktZjpX4OB46KT+56MAhl4EIazWP/+G/HPGuvfdaqg4YsCdtOm6U9+LOFyYDoh4dpnpxZRB9MQQns5Q==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.0.tgz", + "integrity": "sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==", "dev": true, "requires": { "builtins": "^5.0.0" @@ -17765,13 +17784,13 @@ } }, "webpack-dev-middleware": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz", - "integrity": "sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-6.0.1.tgz", + "integrity": "sha512-PZPZ6jFinmqVPJZbisfggDiC+2EeGZ1ZByyMP5sOFJcPPWSexalISz+cvm+j+oYPT7FIJyxT76esjnw9DhE5sw==", "dev": true, "requires": { "colorette": "^2.0.10", - "memfs": "^3.4.3", + "memfs": "^3.4.12", "mime-types": "^2.1.31", "range-parser": "^1.2.1", "schema-utils": "^4.0.0" @@ -17812,6 +17831,21 @@ "spdy": "^4.0.2", "webpack-dev-middleware": "^5.3.1", "ws": "^8.4.2" + }, + "dependencies": { + "webpack-dev-middleware": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz", + "integrity": "sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==", + "dev": true, + "requires": { + "colorette": "^2.0.10", + "memfs": "^3.4.3", + "mime-types": "^2.1.31", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + } + } } }, "webpack-merge": { @@ -17924,9 +17958,9 @@ "dev": true }, "ws": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", - "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.12.0.tgz", + "integrity": "sha512-kU62emKIdKVeEIOIKVegvqpXMSTAMLJozpHZaJNDYqBjzlSYXQGviYwN1osDLJ9av68qHd4a2oSjd7yD4pacig==", "dev": true, "requires": {} }, diff --git a/src/AngularComponents/package.json b/src/AngularComponents/package.json index 461d9cdc..13729a88 100644 --- a/src/AngularComponents/package.json +++ b/src/AngularComponents/package.json @@ -9,22 +9,22 @@ }, "private": true, "dependencies": { - "@angular/animations": "^15.0.1", - "@angular/common": "^15.0.1", - "@angular/compiler": "^15.0.1", - "@angular/core": "^15.0.1", - "@angular/forms": "^15.0.1", - "@angular/platform-browser": "^15.0.1", - "@angular/platform-browser-dynamic": "^15.0.1", - "@angular/router": "^15.0.1", + "@angular/animations": "^15.1.0", + "@angular/common": "^15.1.0", + "@angular/compiler": "^15.1.0", + "@angular/core": "^15.1.0", + "@angular/forms": "^15.1.0", + "@angular/platform-browser": "^15.1.0", + "@angular/platform-browser-dynamic": "^15.1.0", + "@angular/router": "^15.1.0", "rxjs": "~7.4.0", "tslib": "^2.3.0", "zone.js": "~0.11.4" }, "devDependencies": { - "@angular-devkit/build-angular": "^15.0.1", - "@angular/cli": "^15.0.1", - "@angular/compiler-cli": "^15.0.1", + "@angular-devkit/build-angular": "^15.1.1", + "@angular/cli": "^15.1.1", + "@angular/compiler-cli": "^15.1.0", "@types/node": "^12.11.1", "typescript": "~4.8.4" } diff --git a/src/AngularComponents/src/app/app.module.ts b/src/AngularComponents/src/app/app.module.ts index 5ccc9d47..079baebe 100644 --- a/src/AngularComponents/src/app/app.module.ts +++ b/src/AngularComponents/src/app/app.module.ts @@ -6,6 +6,8 @@ import { CodeElementRow } from "./components/coverageinfo/codeelement-row.compon import { CoverageBarComponent } from "./components/coverageinfo/coverage-bar.component"; import { CoverageHistoryChartComponent } from "./components/coverageinfo/coverage-history-chart.component"; import { CoverageInfoComponent } from "./components/coverageinfo/coverage-info.component"; +import { PopupComponent } from "./components/coverageinfo/popup.component"; +import { ProButton } from "./components/coverageinfo/pro-button.component"; import { RiskHotspotsComponent } from "./components/riskhotspots/riskhotspots.component"; import { WindowRefService } from "./infrastructure/windowref.service"; @@ -13,10 +15,12 @@ import { WindowRefService } from "./infrastructure/windowref.service"; declarations: [ RiskHotspotsComponent, CoverageInfoComponent, + PopupComponent, CodeElementRow, ClassRow, CoverageHistoryChartComponent, - CoverageBarComponent + CoverageBarComponent, + ProButton ], imports: [ BrowserModule, diff --git a/src/AngularComponents/src/app/components/coverageinfo/class-row.component.ts b/src/AngularComponents/src/app/components/coverageinfo/class-row.component.ts index 634833c0..ffa61cd4 100644 --- a/src/AngularComponents/src/app/components/coverageinfo/class-row.component.ts +++ b/src/AngularComponents/src/app/components/coverageinfo/class-row.component.ts @@ -1,4 +1,5 @@ import { ChangeDetectionStrategy, Component, Input } from "@angular/core"; +import { Metric } from "./data/metric.class"; import { ClassViewModel } from "./viewmodels/class-viewmodel.class"; @Component({ @@ -8,7 +9,7 @@ import { ClassViewModel } from "./viewmodels/class-viewmodel.class"; {{clazz.name}} {{clazz.name}} - +
{{clazz.coveredLines}} @@ -21,7 +22,7 @@ import { ClassViewModel } from "./viewmodels/class-viewmodel.class"; {{clazz.coveredLines}} - +
{{clazz.uncoveredLines}} @@ -34,7 +35,7 @@ import { ClassViewModel } from "./viewmodels/class-viewmodel.class"; {{clazz.uncoveredLines}} - +
{{clazz.coverableLines}}
{{clazz.currentHistoricCoverage.cal}}
@@ -43,7 +44,7 @@ import { ClassViewModel } from "./viewmodels/class-viewmodel.class"; {{clazz.coverableLines}}
- +
{{clazz.totalLines}}
{{clazz.currentHistoricCoverage.tl}}
@@ -52,7 +53,7 @@ import { ClassViewModel } from "./viewmodels/class-viewmodel.class"; {{clazz.totalLines}}
- +
- +
@@ -148,7 +149,8 @@ import { ClassViewModel } from "./viewmodels/class-viewmodel.class"; {{clazz.methodCoveragePercentage}} -`, + +{{ clazz.metrics[metric.abbreviation] }}`, changeDetection: ChangeDetectionStrategy.OnPush }) export class ClassRow { @@ -156,10 +158,14 @@ export class ClassRow { @Input() translations: any = { }; + @Input() lineCoverageAvailable: boolean = false; + @Input() branchCoverageAvailable: boolean = false; @Input() methodCoverageAvailable: boolean = false; + @Input() visibleMetrics: Metric[] = []; + @Input() historyComparisionDate: string = ""; getClassName(current: number, history: number): string { diff --git a/src/AngularComponents/src/app/components/coverageinfo/codeelement-row.component.ts b/src/AngularComponents/src/app/components/coverageinfo/codeelement-row.component.ts index cd9cf06a..38fc9e3d 100644 --- a/src/AngularComponents/src/app/components/coverageinfo/codeelement-row.component.ts +++ b/src/AngularComponents/src/app/components/coverageinfo/codeelement-row.component.ts @@ -1,4 +1,5 @@ import { ChangeDetectionStrategy, Component, Input } from "@angular/core"; +import { Metric } from "./data/metric.class"; import { CodeElementViewModel } from "./viewmodels/codelement-viewmodel.class"; @Component({ @@ -8,12 +9,12 @@ import { CodeElementViewModel } from "./viewmodels/codelement-viewmodel.class"; {{element.name}} -{{element.coveredLines}} -{{element.uncoveredLines}} -{{element.coverableLines}} -{{element.totalLines}} -{{element.coveragePercentage}} - +{{element.coveredLines}} +{{element.uncoveredLines}} +{{element.coverableLines}} +{{element.totalLines}} +{{element.coveragePercentage}} + {{element.coveredBranches}} {{element.totalBranches}} {{element.branchCoveragePercentage}} @@ -25,7 +26,8 @@ import { CodeElementViewModel } from "./viewmodels/codelement-viewmodel.class"; {{element.methodCoveragePercentage}} -`, + +`, changeDetection: ChangeDetectionStrategy.OnPush }) export class CodeElementRow { @@ -33,7 +35,11 @@ export class CodeElementRow { @Input() collapsed: boolean = false; + @Input() lineCoverageAvailable: boolean = false; + @Input() branchCoverageAvailable: boolean = false; @Input() methodCoverageAvailable: boolean = false; + + @Input() visibleMetrics: Metric[] = []; } \ No newline at end of file diff --git a/src/AngularComponents/src/app/components/coverageinfo/coverage-info.component.ts b/src/AngularComponents/src/app/components/coverageinfo/coverage-info.component.ts index 4aaff892..e9b815b7 100644 --- a/src/AngularComponents/src/app/components/coverageinfo/coverage-info.component.ts +++ b/src/AngularComponents/src/app/components/coverageinfo/coverage-info.component.ts @@ -3,6 +3,7 @@ import { WindowRefService } from "../../infrastructure/windowref.service"; import { GlobalHistoryState } from "../globalhistorystate"; import { Assembly } from "./data/assembly.class"; import { CoverageInfoSettings } from "./data/coverageinfo-settings.class"; +import { Metric } from "./data/metric.class"; import { ClassViewModel } from "./viewmodels/class-viewmodel.class"; import { CodeElementViewModel } from "./viewmodels/codelement-viewmodel.class"; @@ -10,6 +11,17 @@ import { CodeElementViewModel } from "./viewmodels/codelement-viewmodel.class"; selector: "coverage-info", template: `
+ +
{{translations.collapseAll}} @@ -58,8 +70,14 @@ import { CodeElementViewModel } from "./viewmodels/codelement-viewmodel.class";
- {{translations.filter}} - +
+ +
+
+
+ {{translations.filter}} + +
@@ -67,80 +85,88 @@ import { CodeElementViewModel } from "./viewmodels/codelement-viewmodel.class"; - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - - - + + + + - - - - - - - - - - - + @@ -149,16 +175,20 @@ import { CodeElementViewModel } from "./viewmodels/codelement-viewmodel.class"; codeelement-row [element]="element" [collapsed]="element.collapsed" - [branchCoverageAvailable]="branchCoverageAvailable" - [methodCoverageAvailable]="methodCoverageAvailable"> + [lineCoverageAvailable]="settings.showLineCoverage" + [branchCoverageAvailable]="branchCoverageAvailable && settings.showBranchCoverage" + [methodCoverageAvailable]="methodCoverageAvailable && settings.showMethodCoverage" + [visibleMetrics]="settings.visibleMetrics"> @@ -169,16 +199,20 @@ import { CodeElementViewModel } from "./viewmodels/codelement-viewmodel.class"; codeelement-row [element]="subElement" [collapsed]="subElement.collapsed" - [branchCoverageAvailable]="branchCoverageAvailable" - [methodCoverageAvailable]="methodCoverageAvailable"> + [lineCoverageAvailable]="settings.showLineCoverage" + [branchCoverageAvailable]="branchCoverageAvailable && settings.showBranchCoverage" + [methodCoverageAvailable]="methodCoverageAvailable && settings.showMethodCoverage" + [visibleMetrics]="settings.visibleMetrics"> @@ -197,10 +231,12 @@ export class CoverageInfoComponent { historicCoverageExecutionTimes: string[] = []; branchCoverageAvailable: boolean = false; methodCoverageAvailable: boolean = false; + metrics: Metric[] = []; codeElements: CodeElementViewModel[] = []; - translations: any = { }; + popupVisible: boolean = false; + settings: CoverageInfoSettings = new CoverageInfoSettings(); constructor( @@ -212,6 +248,7 @@ export class CoverageInfoComponent { this.historicCoverageExecutionTimes = (this.window).historicCoverageExecutionTimes; this.branchCoverageAvailable = (this.window).branchCoverageAvailable; this.methodCoverageAvailable = (this.window).methodCoverageAvailable; + this.metrics = (this.window).metrics; this.translations = (this.window).translations; @@ -239,6 +276,9 @@ export class CoverageInfoComponent { this.settings.groupingMaximum = groupingMaximum; console.log("Grouping maximum: " + groupingMaximum); + + this.settings.showBranchCoverage = this.branchCoverageAvailable; + this.settings.showMethodCoverage = this.methodCoverageAvailable; } const startOfQueryString: number = window.location.href.indexOf("?"); @@ -255,7 +295,7 @@ export class CoverageInfoComponent { } @HostListener("window:beforeunload") - onDonBeforeUnlodad(): void { + onBeforeUnload(): void { this.saveCollapseState(); if (this.window.history !== undefined && this.window.history.replaceState !== undefined) { diff --git a/src/AngularComponents/src/app/components/coverageinfo/data/class.class.ts b/src/AngularComponents/src/app/components/coverageinfo/data/class.class.ts index 553e6c08..a583ef68 100644 --- a/src/AngularComponents/src/app/components/coverageinfo/data/class.class.ts +++ b/src/AngularComponents/src/app/components/coverageinfo/data/class.class.ts @@ -80,4 +80,9 @@ export class Class { * The historicCoverages. */ hc: HistoricCoverage[] = []; + + /* + * The metrics. + */ + metrics: any; } \ No newline at end of file diff --git a/src/AngularComponents/src/app/components/coverageinfo/data/coverageinfo-settings.class.ts b/src/AngularComponents/src/app/components/coverageinfo/data/coverageinfo-settings.class.ts index a6321d23..4d743ec1 100644 --- a/src/AngularComponents/src/app/components/coverageinfo/data/coverageinfo-settings.class.ts +++ b/src/AngularComponents/src/app/components/coverageinfo/data/coverageinfo-settings.class.ts @@ -1,4 +1,11 @@ +import { Metric } from "./metric.class"; + export class CoverageInfoSettings { + showLineCoverage: boolean = true; + showBranchCoverage: boolean = true; + showMethodCoverage: boolean = true; + visibleMetrics: Metric[] = []; + groupingMaximum: number = 0; grouping: number = 0; historyComparisionDate: string = ""; diff --git a/src/AngularComponents/src/app/components/coverageinfo/data/metric.class.ts b/src/AngularComponents/src/app/components/coverageinfo/data/metric.class.ts new file mode 100644 index 00000000..f105d1b1 --- /dev/null +++ b/src/AngularComponents/src/app/components/coverageinfo/data/metric.class.ts @@ -0,0 +1,5 @@ +export class Metric { + name: string = ""; + abbreviation: string = ""; + explanationUrl: string = ""; +} diff --git a/src/AngularComponents/src/app/components/coverageinfo/popup.component.ts b/src/AngularComponents/src/app/components/coverageinfo/popup.component.ts new file mode 100644 index 00000000..5e27f560 --- /dev/null +++ b/src/AngularComponents/src/app/components/coverageinfo/popup.component.ts @@ -0,0 +1,81 @@ +import { Component, EventEmitter, Input, Output } from "@angular/core"; +import { Metric } from "./data/metric.class"; + +@Component({ + selector: "popup", + template: ` +` +}) +export class PopupComponent { + @Input() visible: boolean = false; + @Output() visibleChange = new EventEmitter(); + + @Input() translations: any = { }; + + @Input() branchCoverageAvailable: boolean = false; + + @Input() methodCoverageAvailable: boolean = false; + + @Input() metrics: Metric[] = []; + + @Input() showLineCoverage: boolean = false; + @Output() showLineCoverageChange = new EventEmitter(); + + @Input() showBranchCoverage: boolean = false; + @Output() showBranchCoverageChange = new EventEmitter(); + + @Input() showMethodCoverage: boolean = false; + @Output() showMethodCoverageChange = new EventEmitter(); + + @Input() visibleMetrics: Metric[] = []; + @Output() visibleMetricsChange = new EventEmitter(); + + isMetricSelected(metric: Metric): boolean { + return this.visibleMetrics.find(m => m.name === metric.name) !== undefined; + } + + toggleMetric(metric: Metric) { + let match = this.visibleMetrics.find(m => m.name === metric.name); + + if (match) { + this.visibleMetrics.splice(this.visibleMetrics.indexOf(match), 1); + } else { + this.visibleMetrics.push(metric); + } + + this.visibleMetrics = [...this.visibleMetrics]; + + this.visibleMetricsChange.emit(this.visibleMetrics); + } + + close() { + this.visible = false; + this.visibleChange.emit(this.visible); + } + + cancelEvent($event: Event) { + $event.stopPropagation(); + } +} \ No newline at end of file diff --git a/src/AngularComponents/src/app/components/coverageinfo/pro-button.component.ts b/src/AngularComponents/src/app/components/coverageinfo/pro-button.component.ts new file mode 100644 index 00000000..88a82fc0 --- /dev/null +++ b/src/AngularComponents/src/app/components/coverageinfo/pro-button.component.ts @@ -0,0 +1,9 @@ +import { Component, Input } from "@angular/core"; + +@Component({ + selector: "pro-button", + template: ` PRO` +}) +export class ProButton { + @Input() translations: any = { }; +} \ No newline at end of file diff --git a/src/AngularComponents/src/app/components/coverageinfo/viewmodels/class-viewmodel.class.ts b/src/AngularComponents/src/app/components/coverageinfo/viewmodels/class-viewmodel.class.ts index a7ccdb40..dd23c820 100644 --- a/src/AngularComponents/src/app/components/coverageinfo/viewmodels/class-viewmodel.class.ts +++ b/src/AngularComponents/src/app/components/coverageinfo/viewmodels/class-viewmodel.class.ts @@ -11,6 +11,7 @@ export class ClassViewModel extends ElementBase { branchCoverageHistory: number[] = []; methodCoverageHistory: number[] = []; historicCoverages: HistoricCoverage[] = []; + metrics: any; currentHistoricCoverage: HistoricCoverage|null = null; @@ -42,6 +43,8 @@ export class ClassViewModel extends ElementBase { clazz.hc.forEach(element => { this.historicCoverages.push(new HistoricCoverage(element)) }); + + this.metrics = clazz.metrics; } override get coverage(): number { diff --git a/src/AngularComponents/src/app/components/coverageinfo/viewmodels/codelement-viewmodel.class.ts b/src/AngularComponents/src/app/components/coverageinfo/viewmodels/codelement-viewmodel.class.ts index 3e6bbcae..a258bfec 100644 --- a/src/AngularComponents/src/app/components/coverageinfo/viewmodels/codelement-viewmodel.class.ts +++ b/src/AngularComponents/src/app/components/coverageinfo/viewmodels/codelement-viewmodel.class.ts @@ -271,6 +271,20 @@ export class CodeElementViewModel extends ElementBase { return left.methodCoverage < right.methodCoverage ? smaller : bigger; } }); + } else { + this.classes.sort(function (left: ClassViewModel, right: ClassViewModel): number { + const leftMetric = left.metrics[sortBy]; + const rightMetric = right.metrics[sortBy]; + if (leftMetric === rightMetric) { + return 0; + } else if (isNaN(leftMetric)) { + return smaller; + } else if (isNaN(rightMetric)) { + return bigger; + } else { + return leftMetric < rightMetric ? smaller : bigger; + } + }); } for (let i: number = 0; i < this.subElements.length; i++) { diff --git a/src/AngularComponents/src/app/components/riskhotspots/riskhotspots.component.ts b/src/AngularComponents/src/app/components/riskhotspots/riskhotspots.component.ts index ac57788d..e5485d4a 100644 --- a/src/AngularComponents/src/app/components/riskhotspots/riskhotspots.component.ts +++ b/src/AngularComponents/src/app/components/riskhotspots/riskhotspots.component.ts @@ -60,7 +60,7 @@ import { RiskHotspotsSettings } from "./data/riskhotspots-settings.class"; [ngClass]="{'icon-up-dir_active': settings.sortBy === '' + i && settings.sortOrder === 'desc', 'icon-down-dir_active': settings.sortBy === '' + i && settings.sortOrder === 'asc', 'icon-down-dir': settings.sortBy !== '' + i}">{{riskHotspotMetric.name}} - + diff --git a/src/AngularComponents/src/assets/icon_cog.svg b/src/AngularComponents/src/assets/icon_cog.svg new file mode 100644 index 00000000..d730bf12 --- /dev/null +++ b/src/AngularComponents/src/assets/icon_cog.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/AngularComponents/src/assets/icon_cog_dark.svg b/src/AngularComponents/src/assets/icon_cog_dark.svg new file mode 100644 index 00000000..ccbcd9b0 --- /dev/null +++ b/src/AngularComponents/src/assets/icon_cog_dark.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/AngularComponents/src/assets/report.css b/src/AngularComponents/src/assets/report.css index 6b2d28d1..5920664f 100644 --- a/src/AngularComponents/src/assets/report.css +++ b/src/AngularComponents/src/assets/report.css @@ -4,6 +4,8 @@ h1 { font-family: 'Century Gothic', sans-serif; font-size: 1.2em; font-weight: n h1:first-of-type { margin-top: 0; } h2 { font-size: 1.0em; font-weight: bold; margin: 10px 0 15px 0; padding: 0; } h3 { font-size: 1.0em; font-weight: bold; margin: 0 0 10px 0; padding: 0; display: inline-block; } +input, select, button { border: 1px solid #767676; border-radius: 0; } +button { background-color: #ddd; cursor: pointer; } a { color: #c00; text-decoration: none; } a:hover { color: #000; text-decoration: none; } h1 a.back { color: #fff; background-color: #949494; display: inline-block; margin: -12px 5px -10px -10px; padding: 10px; border-right: 1px solid #fff; } @@ -13,7 +15,7 @@ h1 a.button:hover { background-color: #ccc; } h1 a.button i { position: relative; top: 1px; } .container { margin: auto; max-width: 1650px; width: 90%; background-color: #fff; display: flex; box-shadow: 0 0 60px #7d7d7d; min-height: 100%; } -.containerleft { padding: 0 20px 20px 20px; flex: 1; } +.containerleft { padding: 0 20px 20px 20px; flex: 1; min-width: 1%; } .containerright { width: 340px; min-width: 340px; background-color: #e5e5e5; height: 100%; } .containerrightfixed { position: fixed; padding: 0 20px 20px 20px; border-left: 1px solid #6f6f6f; width: 300px; overflow-y: auto; height: 100%; top: 0; bottom: 0; } .containerrightfixed h1 { background-color: #c00; } @@ -25,23 +27,36 @@ h1 a.button i { position: relative; top: 1px; } .containerright { display: none; } } +.popup-container { position: fixed; left: 0; right: 0; top: 0; bottom: 0; background-color: rgb(0, 0, 0, 0.6); z-index: 100; } +.popup { position: absolute; top: 50%; right: 50%; transform: translate(50%,-50%); background-color: #fff; padding: 25px; border-radius: 15px; min-width: 300px; } +.popup .close { text-align: right; color: #979797; font-size: 25px;position: relative; left: 10px; bottom: 10px; cursor: pointer; } + .footer { font-size: 0.7em; text-align: center; margin-top: 35px; } -.card-group { display: flex; flex-wrap: wrap; gap: 15px; } -.card-group + .card-group { margin-top: 15px; } -.card-group .card { display: flex; flex-direction: column; background-color: #e4e4e4; background: radial-gradient(circle, #fefefe 0%, #f6f6f6 100%); border: 1px solid #808080; padding: 15px; color: #6f6f6f;} -.card-group .card .card-header { font-size: 1.5rem; font-family: 'Century Gothic', sans-serif; margin-bottom: 15px; flex-grow: 1;} -.card-group .card .card-body { display: flex; flex-direction: row; gap: 15px; flex-grow: 1;} -.card-group .card .card-body div { display: flex; flex-direction: column;} -.card-group .card .large { font-size: 5rem; line-height: 5rem; font-weight: bold; align-self: flex-end; border-left-width: 4px; padding-left: 10px;} -.card-group .card table { align-self: flex-end; border-collapse: collapse;} -.card-group .card table tr { border-bottom: 1px solid #d1d1d1;} -.card-group .card table tr:hover { background-color: #d1d1d1;} -.card-group .card table tr:last-child { border-bottom: none;} -.card-group .card table th, .card-group .card table td { padding: 2px;} +.card-group { display: flex; flex-wrap: wrap; margin-top: -15px; margin-left: -15px; } +.card-group + .card-group { margin-top: 0; } +.card-group .card { margin-top: 15px; margin-left: 15px; display: flex; flex-direction: column; background-color: #e4e4e4; background: radial-gradient(circle, #fefefe 0%, #f6f6f6 100%); border: 1px solid #c1c1c1; padding: 15px; color: #6f6f6f; max-width: 100% } +.card-group .card .card-header { font-size: 1.5rem; font-family: 'Century Gothic', sans-serif; margin-bottom: 15px; flex-grow: 1; } +.card-group .card .card-body { display: flex; flex-direction: row; gap: 15px; flex-grow: 1; } +.card-group .card .card-body div.table { display: flex; flex-direction: column; } +.card-group .card .large { font-size: 5rem; line-height: 5rem; font-weight: bold; align-self: flex-end; border-left-width: 4px; padding-left: 10px; } +.card-group .card table { align-self: flex-end; border-collapse: collapse; } +.card-group .card table tr { border-bottom: 1px solid #c1c1c1; } +.card-group .card table tr:hover { background-color: #c1c1c1; } +.card-group .card table tr:last-child { border-bottom: none; } +.card-group .card table th, .card-group .card table td { padding: 2px; } +.card-group td.limit-width { max-width: 200px; text-overflow: ellipsis; overflow: hidden; } +.card-group td.overflow-wrap { overflow-wrap: anywhere; } + +.pro-button { color: #fff; background-color: #20A0D2; background-image: linear-gradient(50deg, #1c7ed6 0%, #23b8cf 100%); padding: 10px; border-radius: 3px; font-weight: bold; display: inline-block; } +.pro-button:hover { color: #fff; background-color: #1C8EB7; background-image: linear-gradient(50deg, #1A6FBA 0%, #1EA1B5 100%); } +.pro-button-tiny { border-radius: 15px; padding: 3px 8px; } th { text-align: left; } .table-fixed { table-layout: fixed; } +.table-responsive { overflow-x: auto; } +.table-responsive::-webkit-scrollbar { height: 20px; } +.table-responsive::-webkit-scrollbar-thumb { background-color: #6f6f6f; border-radius: 20px; border: 5px solid #fff; } .overview { border: 1px solid #c1c1c1; border-collapse: collapse; width: 100%; word-wrap: break-word; } .overview th { border: 1px solid #c1c1c1; border-collapse: collapse; padding: 2px 4px 2px 4px; background-color: #ddd; } .overview tr.namespace th { background-color: #dcdcdc; } @@ -115,6 +130,7 @@ a.percentagebar { border-left: 2px solid #0aad0a; } +.mt-1 { margin-top: 4px; } .hidden, .ng-hide { display: none; } .right { text-align: right; } .center { text-align: center; } @@ -155,8 +171,7 @@ code { font-family: Consolas, monospace; font-size: 0.9em; } .tooltip { position: absolute; display: none; padding: 5px; background: #F4C63D; color: #453D3F; pointer-events: none; z-index: 1; min-width: 250px; } -.column1324 { max-width: 1324px; } -.column674 { max-width: 674px; } +.column-min-200 { min-width: 200px; } .column60 { width: 60px; } .column70 { width: 70px; } .column90 { width: 90px; } @@ -164,7 +179,109 @@ code { font-family: Consolas, monospace; font-size: 0.9em; } .column100 { width: 100px; } .column105 { width: 105px; } .column112 { width: 112px; } -.column135 { width: 135px; } + +.cardpercentagebar { border-left-style: solid; } +.cardpercentagebar0 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 0%, #0aad0a 0%) 1; } +.cardpercentagebar1 { border-image: linear-gradient(to bottom, #c10909 1%, #c10909 1%, #0aad0a 1%) 1; } +.cardpercentagebar2 { border-image: linear-gradient(to bottom, #c10909 2%, #c10909 2%, #0aad0a 2%) 1; } +.cardpercentagebar3 { border-image: linear-gradient(to bottom, #c10909 3%, #c10909 3%, #0aad0a 3%) 1; } +.cardpercentagebar4 { border-image: linear-gradient(to bottom, #c10909 4%, #c10909 4%, #0aad0a 4%) 1; } +.cardpercentagebar5 { border-image: linear-gradient(to bottom, #c10909 5%, #c10909 5%, #0aad0a 5%) 1; } +.cardpercentagebar6 { border-image: linear-gradient(to bottom, #c10909 6%, #c10909 6%, #0aad0a 6%) 1; } +.cardpercentagebar7 { border-image: linear-gradient(to bottom, #c10909 7%, #c10909 7%, #0aad0a 7%) 1; } +.cardpercentagebar8 { border-image: linear-gradient(to bottom, #c10909 8%, #c10909 8%, #0aad0a 8%) 1; } +.cardpercentagebar9 { border-image: linear-gradient(to bottom, #c10909 9%, #c10909 9%, #0aad0a 9%) 1; } +.cardpercentagebar10 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 10%, #0aad0a 10%) 1; } +.cardpercentagebar11 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 11%, #0aad0a 11%) 1; } +.cardpercentagebar12 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 12%, #0aad0a 12%) 1; } +.cardpercentagebar13 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 13%, #0aad0a 13%) 1; } +.cardpercentagebar14 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 14%, #0aad0a 14%) 1; } +.cardpercentagebar15 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 15%, #0aad0a 15%) 1; } +.cardpercentagebar16 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 16%, #0aad0a 16%) 1; } +.cardpercentagebar17 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 17%, #0aad0a 17%) 1; } +.cardpercentagebar18 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 18%, #0aad0a 18%) 1; } +.cardpercentagebar19 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 19%, #0aad0a 19%) 1; } +.cardpercentagebar20 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 20%, #0aad0a 20%) 1; } +.cardpercentagebar21 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 21%, #0aad0a 21%) 1; } +.cardpercentagebar22 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 22%, #0aad0a 22%) 1; } +.cardpercentagebar23 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 23%, #0aad0a 23%) 1; } +.cardpercentagebar24 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 24%, #0aad0a 24%) 1; } +.cardpercentagebar25 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 25%, #0aad0a 25%) 1; } +.cardpercentagebar26 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 26%, #0aad0a 26%) 1; } +.cardpercentagebar27 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 27%, #0aad0a 27%) 1; } +.cardpercentagebar28 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 28%, #0aad0a 28%) 1; } +.cardpercentagebar29 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 29%, #0aad0a 29%) 1; } +.cardpercentagebar30 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 30%, #0aad0a 30%) 1; } +.cardpercentagebar31 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 31%, #0aad0a 31%) 1; } +.cardpercentagebar32 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 32%, #0aad0a 32%) 1; } +.cardpercentagebar33 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 33%, #0aad0a 33%) 1; } +.cardpercentagebar34 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 34%, #0aad0a 34%) 1; } +.cardpercentagebar35 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 35%, #0aad0a 35%) 1; } +.cardpercentagebar36 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 36%, #0aad0a 36%) 1; } +.cardpercentagebar37 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 37%, #0aad0a 37%) 1; } +.cardpercentagebar38 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 38%, #0aad0a 38%) 1; } +.cardpercentagebar39 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 39%, #0aad0a 39%) 1; } +.cardpercentagebar40 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 40%, #0aad0a 40%) 1; } +.cardpercentagebar41 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 41%, #0aad0a 41%) 1; } +.cardpercentagebar42 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 42%, #0aad0a 42%) 1; } +.cardpercentagebar43 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 43%, #0aad0a 43%) 1; } +.cardpercentagebar44 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 44%, #0aad0a 44%) 1; } +.cardpercentagebar45 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 45%, #0aad0a 45%) 1; } +.cardpercentagebar46 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 46%, #0aad0a 46%) 1; } +.cardpercentagebar47 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 47%, #0aad0a 47%) 1; } +.cardpercentagebar48 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 48%, #0aad0a 48%) 1; } +.cardpercentagebar49 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 49%, #0aad0a 49%) 1; } +.cardpercentagebar50 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 50%, #0aad0a 50%) 1; } +.cardpercentagebar51 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 51%, #0aad0a 51%) 1; } +.cardpercentagebar52 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 52%, #0aad0a 52%) 1; } +.cardpercentagebar53 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 53%, #0aad0a 53%) 1; } +.cardpercentagebar54 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 54%, #0aad0a 54%) 1; } +.cardpercentagebar55 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 55%, #0aad0a 55%) 1; } +.cardpercentagebar56 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 56%, #0aad0a 56%) 1; } +.cardpercentagebar57 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 57%, #0aad0a 57%) 1; } +.cardpercentagebar58 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 58%, #0aad0a 58%) 1; } +.cardpercentagebar59 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 59%, #0aad0a 59%) 1; } +.cardpercentagebar60 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 60%, #0aad0a 60%) 1; } +.cardpercentagebar61 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 61%, #0aad0a 61%) 1; } +.cardpercentagebar62 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 62%, #0aad0a 62%) 1; } +.cardpercentagebar63 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 63%, #0aad0a 63%) 1; } +.cardpercentagebar64 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 64%, #0aad0a 64%) 1; } +.cardpercentagebar65 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 65%, #0aad0a 65%) 1; } +.cardpercentagebar66 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 66%, #0aad0a 66%) 1; } +.cardpercentagebar67 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 67%, #0aad0a 67%) 1; } +.cardpercentagebar68 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 68%, #0aad0a 68%) 1; } +.cardpercentagebar69 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 69%, #0aad0a 69%) 1; } +.cardpercentagebar70 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 70%, #0aad0a 70%) 1; } +.cardpercentagebar71 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 71%, #0aad0a 71%) 1; } +.cardpercentagebar72 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 72%, #0aad0a 72%) 1; } +.cardpercentagebar73 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 73%, #0aad0a 73%) 1; } +.cardpercentagebar74 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 74%, #0aad0a 74%) 1; } +.cardpercentagebar75 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 75%, #0aad0a 75%) 1; } +.cardpercentagebar76 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 76%, #0aad0a 76%) 1; } +.cardpercentagebar77 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 77%, #0aad0a 77%) 1; } +.cardpercentagebar78 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 78%, #0aad0a 78%) 1; } +.cardpercentagebar79 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 79%, #0aad0a 79%) 1; } +.cardpercentagebar80 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 80%, #0aad0a 80%) 1; } +.cardpercentagebar81 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 81%, #0aad0a 81%) 1; } +.cardpercentagebar82 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 82%, #0aad0a 82%) 1; } +.cardpercentagebar83 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 83%, #0aad0a 83%) 1; } +.cardpercentagebar84 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 84%, #0aad0a 84%) 1; } +.cardpercentagebar85 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 85%, #0aad0a 85%) 1; } +.cardpercentagebar86 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 86%, #0aad0a 86%) 1; } +.cardpercentagebar87 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 87%, #0aad0a 87%) 1; } +.cardpercentagebar88 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 88%, #0aad0a 88%) 1; } +.cardpercentagebar89 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 89%, #0aad0a 89%) 1; } +.cardpercentagebar90 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 90%, #0aad0a 90%) 1; } +.cardpercentagebar91 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 91%, #0aad0a 91%) 1; } +.cardpercentagebar92 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 92%, #0aad0a 92%) 1; } +.cardpercentagebar93 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 93%, #0aad0a 93%) 1; } +.cardpercentagebar94 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 94%, #0aad0a 94%) 1; } +.cardpercentagebar95 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 95%, #0aad0a 95%) 1; } +.cardpercentagebar96 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 96%, #0aad0a 96%) 1; } +.cardpercentagebar97 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 97%, #0aad0a 97%) 1; } +.cardpercentagebar98 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 98%, #0aad0a 98%) 1; } +.cardpercentagebar99 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 99%, #0aad0a 99%) 1; } +.cardpercentagebar100 { border-image: linear-gradient(to bottom, #c10909 0%, #c10909 100%, #0aad0a 100%) 1; } .covered0 { width: 0px; } .covered1 { width: 1px; } @@ -340,6 +457,14 @@ code { font-family: Consolas, monospace; font-size: 0.9em; } height: 0.9em; display: inline-block; } +.icon-cog { + background-image: url(icon_cog.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiB2aWV3Qm94PSIwIDAgNTEyIDUxMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNDQ0Ljc4OCAyOTEuMWw0Mi42MTYgMjQuNTk5YzQuODY3IDIuODA5IDcuMTI2IDguNjE4IDUuNDU5IDEzLjk4NS0xMS4wNyAzNS42NDItMjkuOTcgNjcuODQyLTU0LjY4OSA5NC41ODZhMTIuMDE2IDEyLjAxNiAwIDAgMS0xNC44MzIgMi4yNTRsLTQyLjU4NC0yNC41OTVhMTkxLjU3NyAxOTEuNTc3IDAgMCAxLTYwLjc1OSAzNS4xM3Y0OS4xODJhMTIuMDEgMTIuMDEgMCAwIDEtOS4zNzcgMTEuNzE4Yy0zNC45NTYgNy44NS03Mi40OTkgOC4yNTYtMTA5LjIxOS4wMDctNS40OS0xLjIzMy05LjQwMy02LjA5Ni05LjQwMy0xMS43MjN2LTQ5LjE4NGExOTEuNTU1IDE5MS41NTUgMCAwIDEtNjAuNzU5LTM1LjEzbC00Mi41ODQgMjQuNTk1YTEyLjAxNiAxMi4wMTYgMCAwIDEtMTQuODMyLTIuMjU0Yy0yNC43MTgtMjYuNzQ0LTQzLjYxOS01OC45NDQtNTQuNjg5LTk0LjU4Ni0xLjY2Ny01LjM2Ni41OTItMTEuMTc1IDUuNDU5LTEzLjk4NUw2Ny4yMTIgMjkxLjFhMTkzLjQ4IDE5My40OCAwIDAgMSAwLTcwLjE5OWwtNDIuNjE2LTI0LjU5OWMtNC44NjctMi44MDktNy4xMjYtOC42MTgtNS40NTktMTMuOTg1IDExLjA3LTM1LjY0MiAyOS45Ny02Ny44NDIgNTQuNjg5LTk0LjU4NmExMi4wMTYgMTIuMDE2IDAgMCAxIDE0LjgzMi0yLjI1NGw0Mi41ODQgMjQuNTk1YTE5MS41NzcgMTkxLjU3NyAwIDAgMSA2MC43NTktMzUuMTNWMjUuNzU5YTEyLjAxIDEyLjAxIDAgMCAxIDkuMzc3LTExLjcxOGMzNC45NTYtNy44NSA3Mi40OTktOC4yNTYgMTA5LjIxOS0uMDA3IDUuNDkgMS4yMzMgOS40MDMgNi4wOTYgOS40MDMgMTEuNzIzdjQ5LjE4NGExOTEuNTU1IDE5MS41NTUgMCAwIDEgNjAuNzU5IDM1LjEzbDQyLjU4NC0yNC41OTVhMTIuMDE2IDEyLjAxNiAwIDAgMSAxNC44MzIgMi4yNTRjMjQuNzE4IDI2Ljc0NCA0My42MTkgNTguOTQ0IDU0LjY4OSA5NC41ODYgMS42NjcgNS4zNjYtLjU5MiAxMS4xNzUtNS40NTkgMTMuOTg1TDQ0NC43ODggMjIwLjlhMTkzLjQ4NSAxOTMuNDg1IDAgMCAxIDAgNzAuMnpNMzM2IDI1NmMwLTQ0LjExMi0zNS44ODgtODAtODAtODBzLTgwIDM1Ljg4OC04MCA4MCAzNS44ODggODAgODAgODAgODAtMzUuODg4IDgwLTgweiIvPjwvc3ZnPg==); + background-repeat: no-repeat; + background-size: contain; + padding-left: 16px; + height: 0.8em; + display: inline-block; +} .icon-fork { background-image: url(icon_fork.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMTc5MiIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMTc5MiAxNzkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxyZWN0IHdpZHRoPSIxNzkyIiBoZWlnaHQ9IjE3OTIiIHN0eWxlPSJmaWxsOiNmZmYiIC8+PHBhdGggZD0iTTY3MiAxNDcycTAtNDAtMjgtNjh0LTY4LTI4LTY4IDI4LTI4IDY4IDI4IDY4IDY4IDI4IDY4LTI4IDI4LTY4em0wLTExNTJxMC00MC0yOC02OHQtNjgtMjgtNjggMjgtMjggNjggMjggNjggNjggMjggNjgtMjggMjgtNjh6bTY0MCAxMjhxMC00MC0yOC02OHQtNjgtMjgtNjggMjgtMjggNjggMjggNjggNjggMjggNjgtMjggMjgtNjh6bTk2IDBxMCA1Mi0yNiA5Ni41dC03MCA2OS41cS0yIDI4Ny0yMjYgNDE0LTY3IDM4LTIwMyA4MS0xMjggNDAtMTY5LjUgNzF0LTQxLjUgMTAwdjI2cTQ0IDI1IDcwIDY5LjV0MjYgOTYuNXEwIDgwLTU2IDEzNnQtMTM2IDU2LTEzNi01Ni01Ni0xMzZxMC01MiAyNi05Ni41dDcwLTY5LjV2LTgyMHEtNDQtMjUtNzAtNjkuNXQtMjYtOTYuNXEwLTgwIDU2LTEzNnQxMzYtNTYgMTM2IDU2IDU2IDEzNnEwIDUyLTI2IDk2LjV0LTcwIDY5LjV2NDk3cTU0LTI2IDE1NC01NyA1NS0xNyA4Ny41LTI5LjV0NzAuNS0zMSA1OS0zOS41IDQwLjUtNTEgMjgtNjkuNSA4LjUtOTEuNXEtNDQtMjUtNzAtNjkuNXQtMjYtOTYuNXEwLTgwIDU2LTEzNnQxMzYtNTYgMTM2IDU2IDU2IDEzNnoiLz48L3N2Zz4=); background-repeat: no-repeat; @@ -389,6 +514,8 @@ code { font-family: Consolas, monospace; font-size: 0.9em; } display: inline-block; } + + @media (prefers-color-scheme: dark) { @media screen { html { @@ -419,22 +546,31 @@ code { font-family: Consolas, monospace; font-size: 0.9em; } background-color: #484747; } + .popup-container { + background-color: rgb(80, 80, 80, 0.6); + } + + .popup { + background-color: #333; + } .card-group .card { - background-color: #474646; - background: radial-gradient(circle, #505050 0%, #3c3c3c 100%); - border: 1px solid #808080; + background-color: #333; + background: radial-gradient(circle, #444 0%, #333 100%); + border: 1px solid #545454; color: #fff; } .card-group .card table tr { - border-bottom: 1px solid #808080; + border-bottom: 1px solid #545454; } .card-group .card table tr:hover { - background-color: #808080; + background-color: #2E2D2C; } + .table-responsive::-webkit-scrollbar-thumb { background-color: #555453; border: 5px solid #333; } + .overview tr:hover { background-color: #2E2D2C; } @@ -474,7 +610,7 @@ code { font-family: Consolas, monospace; font-size: 0.9em; } } .overview tr.header th:nth-child(2n+1) { - background-color: #333; + background-color: #3a3a3a; } .overview tr.header th:first-child { @@ -487,7 +623,7 @@ code { font-family: Consolas, monospace; font-size: 0.9em; } background-color: #3c3c3c; } - input, select { + input, select, button { background-color: #333; color: #fff; border: 1px solid #A19F9D; @@ -603,6 +739,10 @@ code { font-family: Consolas, monospace; font-size: 0.9em; } background-image: url(icon_wrench_dark.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHdpZHRoPSIxNzkyIiBoZWlnaHQ9IjE3OTIiIHZpZXdCb3g9IjAgMCAxNzkyIDE3OTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbD0iI0JEQkRCRiIgZD0iTTQ0OCAxNDcycTAtMjYtMTktNDV0LTQ1LTE5LTQ1IDE5LTE5IDQ1IDE5IDQ1IDQ1IDE5IDQ1LTE5IDE5LTQ1em02NDQtNDIwbC02ODIgNjgycS0zNyAzNy05MCAzNy01MiAwLTkxLTM3bC0xMDYtMTA4cS0zOC0zNi0zOC05MCAwLTUzIDM4LTkxbDY4MS02ODFxMzkgOTggMTE0LjUgMTczLjV0MTczLjUgMTE0LjV6bTYzNC00MzVxMCAzOS0yMyAxMDYtNDcgMTM0LTE2NC41IDIxNy41dC0yNTguNSA4My41cS0xODUgMC0zMTYuNS0xMzEuNXQtMTMxLjUtMzE2LjUgMTMxLjUtMzE2LjUgMzE2LjUtMTMxLjVxNTggMCAxMjEuNSAxNi41dDEwNy41IDQ2LjVxMTYgMTEgMTYgMjh0LTE2IDI4bC0yOTMgMTY5djIyNGwxOTMgMTA3cTUtMyA3OS00OC41dDEzNS41LTgxIDcwLjUtMzUuNXExNSAwIDIzLjUgMTB0OC41IDI1eiIvPjwvc3ZnPg==); } + .icon-cog { + background-image: url(icon_cog_dark.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiB2aWV3Qm94PSIwIDAgNTEyIDUxMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBmaWxsPSIjQkRCREJGIiBkPSJNNDQ0Ljc4OCAyOTEuMWw0Mi42MTYgMjQuNTk5YzQuODY3IDIuODA5IDcuMTI2IDguNjE4IDUuNDU5IDEzLjk4NS0xMS4wNyAzNS42NDItMjkuOTcgNjcuODQyLTU0LjY4OSA5NC41ODZhMTIuMDE2IDEyLjAxNiAwIDAgMS0xNC44MzIgMi4yNTRsLTQyLjU4NC0yNC41OTVhMTkxLjU3NyAxOTEuNTc3IDAgMCAxLTYwLjc1OSAzNS4xM3Y0OS4xODJhMTIuMDEgMTIuMDEgMCAwIDEtOS4zNzcgMTEuNzE4Yy0zNC45NTYgNy44NS03Mi40OTkgOC4yNTYtMTA5LjIxOS4wMDctNS40OS0xLjIzMy05LjQwMy02LjA5Ni05LjQwMy0xMS43MjN2LTQ5LjE4NGExOTEuNTU1IDE5MS41NTUgMCAwIDEtNjAuNzU5LTM1LjEzbC00Mi41ODQgMjQuNTk1YTEyLjAxNiAxMi4wMTYgMCAwIDEtMTQuODMyLTIuMjU0Yy0yNC43MTgtMjYuNzQ0LTQzLjYxOS01OC45NDQtNTQuNjg5LTk0LjU4Ni0xLjY2Ny01LjM2Ni41OTItMTEuMTc1IDUuNDU5LTEzLjk4NUw2Ny4yMTIgMjkxLjFhMTkzLjQ4IDE5My40OCAwIDAgMSAwLTcwLjE5OWwtNDIuNjE2LTI0LjU5OWMtNC44NjctMi44MDktNy4xMjYtOC42MTgtNS40NTktMTMuOTg1IDExLjA3LTM1LjY0MiAyOS45Ny02Ny44NDIgNTQuNjg5LTk0LjU4NmExMi4wMTYgMTIuMDE2IDAgMCAxIDE0LjgzMi0yLjI1NGw0Mi41ODQgMjQuNTk1YTE5MS41NzcgMTkxLjU3NyAwIDAgMSA2MC43NTktMzUuMTNWMjUuNzU5YTEyLjAxIDEyLjAxIDAgMCAxIDkuMzc3LTExLjcxOGMzNC45NTYtNy44NSA3Mi40OTktOC4yNTYgMTA5LjIxOS0uMDA3IDUuNDkgMS4yMzMgOS40MDMgNi4wOTYgOS40MDMgMTEuNzIzdjQ5LjE4NGExOTEuNTU1IDE5MS41NTUgMCAwIDEgNjAuNzU5IDM1LjEzbDQyLjU4NC0yNC41OTVhMTIuMDE2IDEyLjAxNiAwIDAgMSAxNC44MzIgMi4yNTRjMjQuNzE4IDI2Ljc0NCA0My42MTkgNTguOTQ0IDU0LjY4OSA5NC41ODYgMS42NjcgNS4zNjYtLjU5MiAxMS4xNzUtNS40NTkgMTMuOTg1TDQ0NC43ODggMjIwLjlhMTkzLjQ4NSAxOTMuNDg1IDAgMCAxIDAgNzAuMnpNMzM2IDI1NmMwLTQ0LjExMi0zNS44ODgtODAtODAtODBzLTgwIDM1Ljg4OC04MCA4MCAzNS44ODggODAgODAgODAgODAtMzUuODg4IDgwLTgweiIvPjwvc3ZnPg==); + } + .icon-fork { background-image: url(icon_fork_dark.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHdpZHRoPSIxNzkyIiBoZWlnaHQ9IjE3OTIiIHZpZXdCb3g9IjAgMCAxNzkyIDE3OTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbD0iI0JGQkZDMCIgZD0iTTY3MiAxNDcycTAtNDAtMjgtNjh0LTY4LTI4LTY4IDI4LTI4IDY4IDI4IDY4IDY4IDI4IDY4LTI4IDI4LTY4em0wLTExNTJxMC00MC0yOC02OHQtNjgtMjgtNjggMjgtMjggNjggMjggNjggNjggMjggNjgtMjggMjgtNjh6bTY0MCAxMjhxMC00MC0yOC02OHQtNjgtMjgtNjggMjgtMjggNjggMjggNjggNjggMjggNjgtMjggMjgtNjh6bTk2IDBxMCA1Mi0yNiA5Ni41dC03MCA2OS41cS0yIDI4Ny0yMjYgNDE0LTY3IDM4LTIwMyA4MS0xMjggNDAtMTY5LjUgNzF0LTQxLjUgMTAwdjI2cTQ0IDI1IDcwIDY5LjV0MjYgOTYuNXEwIDgwLTU2IDEzNnQtMTM2IDU2LTEzNi01Ni01Ni0xMzZxMC01MiAyNi05Ni41dDcwLTY5LjV2LTgyMHEtNDQtMjUtNzAtNjkuNXQtMjYtOTYuNXEwLTgwIDU2LTEzNnQxMzYtNTYgMTM2IDU2IDU2IDEzNnEwIDUyLTI2IDk2LjV0LTcwIDY5LjV2NDk3cTU0LTI2IDE1NC01NyA1NS0xNyA4Ny41LTI5LjV0NzAuNS0zMSA1OS0zOS41IDQwLjUtNTEgMjgtNjkuNSA4LjUtOTEuNXEtNDQtMjUtNzAtNjkuNXQtMjYtOTYuNXEwLTgwIDU2LTEzNnQxMzYtNTYgMTM2IDU2IDU2IDEzNnoiLz48L3N2Zz4=); } diff --git a/src/AzureDevopsTask/ReportGenerator/icon.png b/src/AzureDevopsTask/ReportGenerator/icon.png index 798f700f..0da71edd 100644 Binary files a/src/AzureDevopsTask/ReportGenerator/icon.png and b/src/AzureDevopsTask/ReportGenerator/icon.png differ diff --git a/src/AzureDevopsTask/icon.png b/src/AzureDevopsTask/icon.png index deb0ba25..41aee3d8 100644 Binary files a/src/AzureDevopsTask/icon.png and b/src/AzureDevopsTask/icon.png differ diff --git a/src/AzureDevopsTask/img/screenshot1.png b/src/AzureDevopsTask/img/screenshot1.png index 3aa5c510..fb2e9b0c 100644 Binary files a/src/AzureDevopsTask/img/screenshot1.png and b/src/AzureDevopsTask/img/screenshot1.png differ diff --git a/src/AzureDevopsTask/img/screenshot2.png b/src/AzureDevopsTask/img/screenshot2.png index ffda5460..cdfe3837 100644 Binary files a/src/AzureDevopsTask/img/screenshot2.png and b/src/AzureDevopsTask/img/screenshot2.png differ diff --git a/src/Deployment/chocolatey/reportgenerator.portable.nuspec b/src/Deployment/chocolatey/reportgenerator.portable.nuspec index b86e7c30..31960d77 100644 --- a/src/Deployment/chocolatey/reportgenerator.portable.nuspec +++ b/src/Deployment/chocolatey/reportgenerator.portable.nuspec @@ -14,8 +14,8 @@ https://github.com/danielpalme/ReportGenerator/issues https://danielpalme.github.io/ReportGenerator/resources/logo_512.png false - ReportGenerator converts coverage reports generated by coverlet, OpenCover, dotCover, Visual Studio, NCover, Cobertura, JaCoCo, Clover, gcov or lcov into human readable reports in various formats. The reports do not only show the coverage quota, but also include the source code and visualize which line has been covered. - ReportGenerator converts coverage reports generated by coverlet, OpenCover, dotCover, Visual Studio, NCover, Cobertura, JaCoCo, Clover, gcov or lcov into human readable reports in various formats. The reports do not only show the coverage quota, but also include the source code and visualize which line has been covered. + ReportGenerator converts coverage reports generated by coverlet, OpenCover, dotCover, Visual Studio, NCover, Cobertura, JaCoCo, Clover, gcov or lcov into human readable reports in various formats. The reports show the coverage quotas and also visualize which lines of your source code have been covered. + ReportGenerator converts coverage reports generated by coverlet, OpenCover, dotCover, Visual Studio, NCover, Cobertura, JaCoCo, Clover, gcov or lcov into human readable reports in various formats. The reports show the coverage quotas and also visualize which lines of your source code have been covered. en-US Code Coverage Reporting Testing TDD Utility diff --git a/src/Deployment/nuget/ReportGenerator.Core.nuspec b/src/Deployment/nuget/ReportGenerator.Core.nuspec index 765f2e36..18eca04b 100644 --- a/src/Deployment/nuget/ReportGenerator.Core.nuspec +++ b/src/Deployment/nuget/ReportGenerator.Core.nuspec @@ -11,8 +11,8 @@ https://danielpalme.github.io/ReportGenerator/resources/logo_plugin_512.png icon.png false - ReportGenerator converts coverage reports generated by coverlet, OpenCover, dotCover, Visual Studio, NCover, Cobertura, JaCoCo, Clover, gcov or lcov into human readable reports in various formats. The reports do not only show the coverage quota, but also include the source code and visualize which line has been covered. - ReportGenerator converts coverage reports generated by coverlet, OpenCover, dotCover, Visual Studio, NCover, Cobertura, JaCoCo, Clover, gcov or lcov into human readable reports in various formats. The reports do not only show the coverage quota, but also include the source code and visualize which line has been covered. + ReportGenerator converts coverage reports generated by coverlet, OpenCover, dotCover, Visual Studio, NCover, Cobertura, JaCoCo, Clover, gcov or lcov into human readable reports in various formats. The reports show the coverage quotas and also visualize which lines of your source code have been covered. + ReportGenerator converts coverage reports generated by coverlet, OpenCover, dotCover, Visual Studio, NCover, Cobertura, JaCoCo, Clover, gcov or lcov into human readable reports in various formats. The reports show the coverage quotas and also visualize which lines of your source code have been covered. Use this package if you want to write a custom plugin for ReportGenerator or if you want to call/execute ReportGenerator within your code base. @@ -24,19 +24,19 @@ https://github.com/danielpalme/ReportGenerator/wiki/Custom-history-storage - - - - + + + + - - - - + + + + diff --git a/src/Deployment/nuget/ReportGenerator.nuspec b/src/Deployment/nuget/ReportGenerator.nuspec index 3da92dc6..7da9f353 100644 --- a/src/Deployment/nuget/ReportGenerator.nuspec +++ b/src/Deployment/nuget/ReportGenerator.nuspec @@ -11,8 +11,8 @@ https://danielpalme.github.io/ReportGenerator/resources/logo_512.png icon.png false - ReportGenerator converts coverage reports generated by coverlet, OpenCover, dotCover, Visual Studio, NCover, Cobertura, JaCoCo, Clover, gcov or lcov into human readable reports in various formats. The reports do not only show the coverage quota, but also include the source code and visualize which line has been covered. - ReportGenerator converts coverage reports generated by coverlet, OpenCover, dotCover, Visual Studio, NCover, Cobertura, JaCoCo, Clover, gcov or lcov into human readable reports in various formats. The reports do not only show the coverage quota, but also include the source code and visualize which line has been covered. + ReportGenerator converts coverage reports generated by coverlet, OpenCover, dotCover, Visual Studio, NCover, Cobertura, JaCoCo, Clover, gcov or lcov into human readable reports in various formats. The reports show the coverage quotas and also visualize which lines of your source code have been covered. + ReportGenerator converts coverage reports generated by coverlet, OpenCover, dotCover, Visual Studio, NCover, Cobertura, JaCoCo, Clover, gcov or lcov into human readable reports in various formats. The reports show the coverage quotas and also visualize which lines of your source code have been covered. 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. diff --git a/src/Deployment/nuget/dotnet-reportgenerator-globaltool.nuspec b/src/Deployment/nuget/dotnet-reportgenerator-globaltool.nuspec index 8a5a8035..264991c2 100644 --- a/src/Deployment/nuget/dotnet-reportgenerator-globaltool.nuspec +++ b/src/Deployment/nuget/dotnet-reportgenerator-globaltool.nuspec @@ -11,8 +11,8 @@ https://danielpalme.github.io/ReportGenerator/resources/logo_global_512.png icon.png false - ReportGenerator converts coverage reports generated by coverlet, OpenCover, dotCover, Visual Studio, NCover, Cobertura, JaCoCo, Clover, gcov or lcov into human readable reports in various formats. The reports do not only show the coverage quota, but also include the source code and visualize which line has been covered. - ReportGenerator converts coverage reports generated by coverlet, OpenCover, dotCover, Visual Studio, NCover, Cobertura, JaCoCo, Clover, gcov or lcov into human readable reports in various formats. The reports do not only show the coverage quota, but also include the source code and visualize which line has been covered. + ReportGenerator converts coverage reports generated by coverlet, OpenCover, dotCover, Visual Studio, NCover, Cobertura, JaCoCo, Clover, gcov or lcov into human readable reports in various formats. The reports show the coverage quotas and also visualize which lines of your source code have been covered. + ReportGenerator converts coverage reports generated by coverlet, OpenCover, dotCover, Visual Studio, NCover, Cobertura, JaCoCo, Clover, gcov or lcov into human readable reports in various formats. The reports show the coverage quotas and also visualize which lines of your source code have been covered. Use this package if your project is based on .NET Core and you want to use ReportGenerator as a (global) 'DotnetTool'. diff --git a/src/Readme.txt b/src/Readme.txt index f43da219..0f8eb616 100644 --- a/src/Readme.txt +++ b/src/Readme.txt @@ -2,9 +2,9 @@ = = = = = ReportGenerator = -= Generation of coverage reports = += Powerful code coverage visualization = = = -= https://www.palmmedia.de = += https://reportgenerator.io = = = = = ======================================================================= @@ -14,10 +14,9 @@ DESCRIPTION ReportGenerator converts coverage reports generated by coverlet, OpenCover, dotCover, Visual Studio, NCover, Cobertura, JaCoCo, Clover, gcov or lcov into human readable reports in various formats. -The reports do not only show the coverage quota, but also include the source code and visualize which lines have been -covered. +The reports show the coverage quotas and also visualize which lines of your source code have been covered. -ReportGenerator supports merging several reports into one. +ReportGenerator supports merging several coverage files into a single report. The following output formats are supported by ReportGenerator: @@ -69,6 +68,7 @@ CHANGELOG 5.1.14.0 + * New: #533: Metrics on summary page * New: #578: Improved support for Clover files generated by PhpUnit 5.1.13.0 diff --git a/src/ReportGenerator.Console.NetCore/ProgramIcon.ico b/src/ReportGenerator.Console.NetCore/ProgramIcon.ico index 1d455f70..69bfd79d 100644 Binary files a/src/ReportGenerator.Console.NetCore/ProgramIcon.ico and b/src/ReportGenerator.Console.NetCore/ProgramIcon.ico differ diff --git a/src/ReportGenerator.Console.NetCore/Properties/launchSettings.json b/src/ReportGenerator.Console.NetCore/Properties/launchSettings.json index dcca4c77..ad99dc14 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\\coverage.xml -targetdir:C:\\Users\\danie\\Desktop\\out123 -verbosity:Verbose" + "commandLineArgs": "-reports:C:\\Users\\danie\\Documents\\Projects\\ReportGenerator\\src\\Testprojects\\CSharp\\Reports\\OpenCover.xml -targetdir:C:\\Users\\danie\\Desktop\\coverage -historydir:C:\\Users\\danie\\Desktop\\coverage\\history -reporttypes:Html;Html_Light;Html_Dark;HtmlSummary;HtmlInline;HtmlInline_AzurePipelines;HtmlInline_AzurePipelines_Light;HtmlInline_AzurePipelines_Dark settings:createSubdirectoryForAllReportTypes=true" } } } \ No newline at end of file diff --git a/src/ReportGenerator.Console/ProgramIcon.ico b/src/ReportGenerator.Console/ProgramIcon.ico index 6c69457b..69bfd79d 100644 Binary files a/src/ReportGenerator.Console/ProgramIcon.ico and b/src/ReportGenerator.Console/ProgramIcon.ico differ diff --git a/src/ReportGenerator.Core.Test/ReportGenerator.Core.Test.csproj b/src/ReportGenerator.Core.Test/ReportGenerator.Core.Test.csproj index 4fe3f0dd..7821436c 100644 --- a/src/ReportGenerator.Core.Test/ReportGenerator.Core.Test.csproj +++ b/src/ReportGenerator.Core.Test/ReportGenerator.Core.Test.csproj @@ -14,8 +14,8 @@ all runtime; build; native; contentfiles; analyzers; buildtransitive - - + + all diff --git a/src/ReportGenerator.Core/Parser/Analysis/Metric.cs b/src/ReportGenerator.Core/Parser/Analysis/Metric.cs index 5d6017ba..77157000 100644 --- a/src/ReportGenerator.Core/Parser/Analysis/Metric.cs +++ b/src/ReportGenerator.Core/Parser/Analysis/Metric.cs @@ -1,4 +1,5 @@ using System; +using Palmmedia.ReportGenerator.Core.Properties; namespace Palmmedia.ReportGenerator.Core.Parser.Analysis { @@ -7,6 +8,26 @@ namespace Palmmedia.ReportGenerator.Core.Parser.Analysis /// public class Metric { + /// + /// The cyclomatic complexity URI. + /// + private static readonly Uri CyclomaticComplexityUri = new Uri("https://en.wikipedia.org/wiki/Cyclomatic_complexity"); + + /// + /// The code coverage URI. + /// + private static readonly Uri CodeCoverageUri = new Uri("https://en.wikipedia.org/wiki/Code_coverage"); + + /// + /// The n path complexity URI. + /// + private static readonly Uri NPathComplexityUri = new Uri("https://modess.io/npath-complexity-cyclomatic-complexity-explained"); + + /// + /// The crap score URI. + /// + private static readonly Uri CrapScoreUri = new Uri("https://googletesting.blogspot.de/2011/02/this-code-is-crap.html"); + /// /// Initializes a new instance of the class. /// @@ -15,8 +36,22 @@ public class Metric /// The type of the metric. /// The value. public Metric(string name, Uri explanationUrl, MetricType metricType, decimal? value) + : this(name, name, explanationUrl, metricType, value) + { + } + + /// + /// Initializes a new instance of the class. + /// + /// The name. + /// The abbreviation. + /// The explanation url. + /// The type of the metric. + /// The value. + public Metric(string name, string abbreviation, Uri explanationUrl, MetricType metricType, decimal? value) { this.Name = name ?? throw new ArgumentNullException(nameof(name)); + this.Abbreviation = abbreviation.ToLowerInvariant().Replace(" ", string.Empty); this.ExplanationUrl = explanationUrl; this.MetricType = metricType; this.Value = value; @@ -31,7 +66,22 @@ public Metric(string name, Uri explanationUrl, MetricType metricType, decimal? v /// The value. /// The merge order. public Metric(string name, Uri explanationUrl, MetricType metricType, decimal? value, MetricMergeOrder mergeOrder) - : this(name, explanationUrl, metricType, value) + : this(name, name, explanationUrl, metricType, value) + { + this.MergeOrder = mergeOrder; + } + + /// + /// Initializes a new instance of the class. + /// + /// The name. + /// The abbreviation. + /// The explanation url. + /// The type of the metric. + /// The value. + /// The merge order. + public Metric(string name, string abbreviation, Uri explanationUrl, MetricType metricType, decimal? value, MetricMergeOrder mergeOrder) + : this(name, abbreviation, explanationUrl, metricType, value) { this.MergeOrder = mergeOrder; } @@ -46,6 +96,11 @@ public Metric(string name, Uri explanationUrl, MetricType metricType, decimal? v /// public string Name { get; } + /// + /// Gets the abbreviation. + /// + public string Abbreviation { get; } + /// /// Gets the explanation url. /// @@ -61,6 +116,130 @@ public Metric(string name, Uri explanationUrl, MetricType metricType, decimal? v /// public decimal? Value { get; internal set; } + /// + /// Initializes a new instance of the class which represents line coverage. + /// + /// The value. + /// The metric. + public static Metric Coverage(decimal? value) + { + return new Metric( + ReportResources.Coverage, + "cov", + CodeCoverageUri, + MetricType.CoveragePercentual, + value); + } + + /// + /// Initializes a new instance of the class which represents branch coverage. + /// + /// The value. + /// The metric. + public static Metric BranchCoverage(decimal? value) + { + return new Metric( + ReportResources.BranchCoverage, + "bcov", + CodeCoverageUri, + MetricType.CoveragePercentual, + value); + } + + /// + /// Initializes a new instance of the class which represents sequence coverage. + /// + /// The value. + /// The metric. + public static Metric SequenceCoverage(decimal? value) + { + return new Metric( + ReportResources.SequenceCoverage, + "seq", + CodeCoverageUri, + MetricType.CoveragePercentual, + value); + } + + /// + /// Initializes a new instance of the class which represents blocks covered. + /// + /// The value. + /// The metric. + public static Metric BlocksCovered(decimal? value) + { + return new Metric( + ReportResources.BlocksCovered, + "cb", + CodeCoverageUri, + MetricType.CoverageAbsolute, + value); + } + + /// + /// Initializes a new instance of the class which represents blocks not covered. + /// + /// The value. + /// The metric. + public static Metric BlocksNotCovered(decimal? value) + { + return new Metric( + ReportResources.BlocksNotCovered, + "ub", + CodeCoverageUri, + MetricType.CoverageAbsolute, + value, + MetricMergeOrder.LowerIsBetter); + } + + /// + /// Initializes a new instance of the class which represents cyclomatic complexity. + /// + /// The value. + /// The metric. + public static Metric CyclomaticComplexity(decimal? value) + { + return new Metric( + ReportResources.CyclomaticComplexity, + "cc", + CyclomaticComplexityUri, + MetricType.CodeQuality, + value, + MetricMergeOrder.LowerIsBetter); + } + + /// + /// Initializes a new instance of the class which represents NPath complexity. + /// + /// The value. + /// The metric. + public static Metric NPathComplexity(decimal? value) + { + return new Metric( + ReportResources.NPathComplexity, + "npth", + NPathComplexityUri, + MetricType.CodeQuality, + value, + MetricMergeOrder.LowerIsBetter); + } + + /// + /// Initializes a new instance of the class which represents crap score. + /// + /// The value. + /// The metric. + public static Metric CrapScore(decimal? value) + { + return new Metric( + ReportResources.CrapScore, + "crp", + CrapScoreUri, + MetricType.CodeQuality, + value, + MetricMergeOrder.LowerIsBetter); + } + /// /// Returns a that represents this instance. /// diff --git a/src/ReportGenerator.Core/Parser/Analysis/SummaryResult.cs b/src/ReportGenerator.Core/Parser/Analysis/SummaryResult.cs index 9a9e045c..89596f1a 100644 --- a/src/ReportGenerator.Core/Parser/Analysis/SummaryResult.cs +++ b/src/ReportGenerator.Core/Parser/Analysis/SummaryResult.cs @@ -182,7 +182,7 @@ public int? TotalLines .SelectMany(m => m.Metrics) .Where(m => m.MetricType == MetricType.CoverageAbsolute) .GroupBy(m => m.Name) - .Select(g => new Metric(g.Key, g.First().ExplanationUrl, MetricType.CoverageAbsolute, g.SafeSum(m => m.Value))) + .Select(g => new Metric(g.Key, g.First().Abbreviation, g.First().ExplanationUrl, MetricType.CoverageAbsolute, g.SafeSum(m => m.Value))) .ToList(); /// diff --git a/src/ReportGenerator.Core/Parser/CloverParser.cs b/src/ReportGenerator.Core/Parser/CloverParser.cs index 7e8ef428..6888fa4d 100644 --- a/src/ReportGenerator.Core/Parser/CloverParser.cs +++ b/src/ReportGenerator.Core/Parser/CloverParser.cs @@ -287,12 +287,7 @@ private static void SetCodeElements(CodeFile codeFile, IEnumerable met { var metrics = new List() { - new Metric( - ReportResources.CyclomaticComplexity, - ParserBase.CyclomaticComplexityUri, - MetricType.CodeQuality, - decimal.Parse(complexity.Value, CultureInfo.InvariantCulture), - MetricMergeOrder.LowerIsBetter) + Metric.CyclomaticComplexity(decimal.Parse(complexity.Value, CultureInfo.InvariantCulture)) }; var methodMetric = new MethodMetric(methodName, methodName, metrics) diff --git a/src/ReportGenerator.Core/Parser/CoberturaParser.cs b/src/ReportGenerator.Core/Parser/CoberturaParser.cs index db631c58..a263a6e2 100644 --- a/src/ReportGenerator.Core/Parser/CoberturaParser.cs +++ b/src/ReportGenerator.Core/Parser/CoberturaParser.cs @@ -289,11 +289,7 @@ private static void SetMethodMetrics(CodeFile codeFile, IEnumerable me value = Math.Round(100 * decimal.Parse(lineRate.Value.Replace(',', '.'), NumberStyles.Number | NumberStyles.AllowExponent, CultureInfo.InvariantCulture), 2, MidpointRounding.AwayFromZero); } - metrics.Add(new Metric( - ReportResources.Coverage, - ParserBase.CodeCoverageUri, - MetricType.CoveragePercentual, - value)); + metrics.Add(Metric.Coverage(value)); } var branchRate = method.Attribute("branch-rate"); @@ -307,11 +303,7 @@ private static void SetMethodMetrics(CodeFile codeFile, IEnumerable me value = Math.Round(100 * decimal.Parse(branchRate.Value.Replace(',', '.'), NumberStyles.Number | NumberStyles.AllowExponent, CultureInfo.InvariantCulture), 2, MidpointRounding.AwayFromZero); } - metrics.Add(new Metric( - ReportResources.BranchCoverage, - ParserBase.CodeCoverageUri, - MetricType.CoveragePercentual, - value)); + metrics.Add(Metric.BranchCoverage(value)); } var cyclomaticComplexityAttribute = method.Attribute("complexity"); @@ -327,12 +319,7 @@ private static void SetMethodMetrics(CodeFile codeFile, IEnumerable me metrics.Insert( 0, - new Metric( - ReportResources.CyclomaticComplexity, - ParserBase.CyclomaticComplexityUri, - MetricType.CodeQuality, - value, - MetricMergeOrder.LowerIsBetter)); + Metric.CyclomaticComplexity(value)); } var methodMetric = new MethodMetric(fullName, shortName, metrics); diff --git a/src/ReportGenerator.Core/Parser/DynamicCodeCoverageParser.cs b/src/ReportGenerator.Core/Parser/DynamicCodeCoverageParser.cs index 84e87b8c..57bd4fd9 100644 --- a/src/ReportGenerator.Core/Parser/DynamicCodeCoverageParser.cs +++ b/src/ReportGenerator.Core/Parser/DynamicCodeCoverageParser.cs @@ -258,17 +258,8 @@ private static void SetMethodMetrics(CodeFile codeFile, IEnumerable me var metrics = new[] { - new Metric( - ReportResources.BlocksCovered, - ParserBase.CodeCoverageUri, - MetricType.CoverageAbsolute, - int.Parse(method.Attribute("blocks_covered").Value, CultureInfo.InvariantCulture)), - new Metric( - ReportResources.BlocksNotCovered, - ParserBase.CodeCoverageUri, - MetricType.CoverageAbsolute, - int.Parse(method.Attribute("blocks_not_covered").Value, CultureInfo.InvariantCulture), - MetricMergeOrder.LowerIsBetter) + Metric.BlocksCovered(int.Parse(method.Attribute("blocks_covered").Value, CultureInfo.InvariantCulture)), + Metric.BlocksNotCovered(int.Parse(method.Attribute("blocks_not_covered").Value, CultureInfo.InvariantCulture)) }; var methodMetric = new MethodMetric(fullName, shortName, metrics); diff --git a/src/ReportGenerator.Core/Parser/JaCoCoParser.cs b/src/ReportGenerator.Core/Parser/JaCoCoParser.cs index 297f2a79..10fadc65 100644 --- a/src/ReportGenerator.Core/Parser/JaCoCoParser.cs +++ b/src/ReportGenerator.Core/Parser/JaCoCoParser.cs @@ -251,11 +251,7 @@ private static void SetMethodMetrics(CodeFile codeFile, IEnumerable me decimal covered = decimal.Parse(lineRate.Attribute("covered").Value, CultureInfo.InvariantCulture); decimal total = missed + covered; - metrics.Add(new Metric( - ReportResources.Coverage, - ParserBase.CodeCoverageUri, - MetricType.CoveragePercentual, - total == 0 ? (decimal?)null : Math.Round((100 * covered) / total, 2, MidpointRounding.AwayFromZero))); + metrics.Add(Metric.Coverage(total == 0 ? (decimal?)null : Math.Round((100 * covered) / total, 2, MidpointRounding.AwayFromZero))); } else { @@ -273,20 +269,12 @@ private static void SetMethodMetrics(CodeFile codeFile, IEnumerable me decimal covered = decimal.Parse(branchRate.Attribute("covered").Value, CultureInfo.InvariantCulture); decimal total = missed + covered; - metrics.Add(new Metric( - ReportResources.BranchCoverage, - ParserBase.CodeCoverageUri, - MetricType.CoveragePercentual, - total == 0 ? (decimal?)null : Math.Round((100 * covered) / total, 2, MidpointRounding.AwayFromZero))); + metrics.Add(Metric.BranchCoverage(total == 0 ? (decimal?)null : Math.Round((100 * covered) / total, 2, MidpointRounding.AwayFromZero))); } else { // If no branch coverage is available, add default to avoid empty columns - metrics.Add(new Metric( - ReportResources.BranchCoverage, - ParserBase.CodeCoverageUri, - MetricType.CoveragePercentual, - null)); + metrics.Add(Metric.BranchCoverage(null)); } var methodMetric = new MethodMetric(fullName, shortName, metrics); diff --git a/src/ReportGenerator.Core/Parser/OpenCoverParser.cs b/src/ReportGenerator.Core/Parser/OpenCoverParser.cs index bf749ac3..2e46d077 100644 --- a/src/ReportGenerator.Core/Parser/OpenCoverParser.cs +++ b/src/ReportGenerator.Core/Parser/OpenCoverParser.cs @@ -384,21 +384,11 @@ private static void SetMethodMetrics(CodeFile codeFile, IEnumerable me var metrics = new List() { - new Metric( - ReportResources.CyclomaticComplexity, - ParserBase.CyclomaticComplexityUri, - MetricType.CodeQuality, - methodGroup.Max(m => int.Parse(m.Attribute("cyclomaticComplexity").Value, CultureInfo.InvariantCulture)), - MetricMergeOrder.LowerIsBetter), - new Metric( - ReportResources.SequenceCoverage, - ParserBase.CodeCoverageUri, - MetricType.CoveragePercentual, + Metric.CyclomaticComplexity( + methodGroup.Max(m => int.Parse(m.Attribute("cyclomaticComplexity").Value, CultureInfo.InvariantCulture))), + Metric.SequenceCoverage( methodGroup.Max(m => decimal.Parse(m.Attribute("sequenceCoverage").Value, CultureInfo.InvariantCulture))), - new Metric( - ReportResources.BranchCoverage, - ParserBase.CodeCoverageUri, - MetricType.CoveragePercentual, + Metric.BranchCoverage( methodGroup.Max(m => decimal.Parse(m.Attribute("branchCoverage").Value, CultureInfo.InvariantCulture))) }; @@ -408,25 +398,17 @@ private static void SetMethodMetrics(CodeFile codeFile, IEnumerable me { metrics.Insert( 1, - new Metric( - ReportResources.NPathComplexity, - ParserBase.NPathComplexityUri, - MetricType.CodeQuality, - npathComplexityAttributes - .Select(a => int.Parse(a.Value, CultureInfo.InvariantCulture)) - .Max(a => a < 0 ? int.MaxValue : a), - MetricMergeOrder.LowerIsBetter)); + Metric.NPathComplexity( + npathComplexityAttributes + .Select(a => int.Parse(a.Value, CultureInfo.InvariantCulture)) + .Max(a => a < 0 ? int.MaxValue : a))); } var crapScoreAttributes = methodGroup.Select(m => m.Attribute("crapScore")).Where(a => a != null).ToArray(); if (crapScoreAttributes.Length > 0) { - metrics.Add(new Metric( - ReportResources.CrapScore, - ParserBase.CrapScoreUri, - MetricType.CodeQuality, - crapScoreAttributes.Max(a => decimal.Parse(a.Value, CultureInfo.InvariantCulture)), - MetricMergeOrder.LowerIsBetter)); + metrics.Add(Metric.CrapScore( + crapScoreAttributes.Max(a => decimal.Parse(a.Value, CultureInfo.InvariantCulture)))); } string fullName = ExtractMethodName(methodGroup.Key); diff --git a/src/ReportGenerator.Core/Parser/ParserBase.cs b/src/ReportGenerator.Core/Parser/ParserBase.cs index c51ab663..844904de 100644 --- a/src/ReportGenerator.Core/Parser/ParserBase.cs +++ b/src/ReportGenerator.Core/Parser/ParserBase.cs @@ -8,26 +8,6 @@ namespace Palmmedia.ReportGenerator.Core.Parser /// internal abstract class ParserBase { - /// - /// The cyclomatic complexity URI. - /// - protected static readonly Uri CyclomaticComplexityUri = new Uri("https://en.wikipedia.org/wiki/Cyclomatic_complexity"); - - /// - /// The code coverage URI. - /// - protected static readonly Uri CodeCoverageUri = new Uri("https://en.wikipedia.org/wiki/Code_coverage"); - - /// - /// The n path complexity URI. - /// - protected static readonly Uri NPathComplexityUri = new Uri("https://modess.io/npath-complexity-cyclomatic-complexity-explained"); - - /// - /// The crap score URI. - /// - protected static readonly Uri CrapScoreUri = new Uri("https://googletesting.blogspot.de/2011/02/this-code-is-crap.html"); - /// /// Initializes a new instance of the class. /// diff --git a/src/ReportGenerator.Core/Parser/VisualStudioParser.cs b/src/ReportGenerator.Core/Parser/VisualStudioParser.cs index 73af15f1..fc96cee8 100644 --- a/src/ReportGenerator.Core/Parser/VisualStudioParser.cs +++ b/src/ReportGenerator.Core/Parser/VisualStudioParser.cs @@ -251,17 +251,8 @@ private static void SetMethodMetrics(CodeFile codeFile, IEnumerable me var metrics = new[] { - new Metric( - ReportResources.BlocksCovered, - ParserBase.CodeCoverageUri, - MetricType.CoverageAbsolute, - int.Parse(method.Element("BlocksCovered").Value, CultureInfo.InvariantCulture)), - new Metric( - ReportResources.BlocksNotCovered, - ParserBase.CodeCoverageUri, - MetricType.CoverageAbsolute, - int.Parse(method.Element("BlocksNotCovered").Value, CultureInfo.InvariantCulture), - MetricMergeOrder.LowerIsBetter) + Metric.BlocksCovered(int.Parse(method.Element("BlocksCovered").Value, CultureInfo.InvariantCulture)), + Metric.BlocksNotCovered(int.Parse(method.Element("BlocksNotCovered").Value, CultureInfo.InvariantCulture)) }; var methodMetric = new MethodMetric(fullName, shortName, metrics); diff --git a/src/ReportGenerator.Core/Program.cs b/src/ReportGenerator.Core/Program.cs index f2779942..09c89f4f 100644 --- a/src/ReportGenerator.Core/Program.cs +++ b/src/ReportGenerator.Core/Program.cs @@ -37,7 +37,14 @@ public static int Main(string[] args) foreach (var arg in args) { - Logger.Debug(" " + arg); + if (arg.StartsWith("-license:", System.StringComparison.OrdinalIgnoreCase) && arg.Length > 15) + { + Logger.Debug(" " + arg.Substring(0, 15) + "..."); + } + else + { + Logger.Debug(" " + arg); + } } } diff --git a/src/ReportGenerator.Core/ProgramIcon.ico b/src/ReportGenerator.Core/ProgramIcon.ico index 1d455f70..69bfd79d 100644 Binary files a/src/ReportGenerator.Core/ProgramIcon.ico and b/src/ReportGenerator.Core/ProgramIcon.ico differ diff --git a/src/ReportGenerator.Core/Properties/ReportResources.Designer.cs b/src/ReportGenerator.Core/Properties/ReportResources.Designer.cs index 1d1d3c65..caccc7f7 100644 --- a/src/ReportGenerator.Core/Properties/ReportResources.Designer.cs +++ b/src/ReportGenerator.Core/Properties/ReportResources.Designer.cs @@ -393,6 +393,15 @@ public static string CoverageTooltip_PartiallyCovered { } } + /// + /// Looks up a localized string similar to Coverage types. + /// + public static string CoverageTypes { + get { + return ResourceManager.GetString("CoverageTypes", resourceCulture); + } + } + /// /// Looks up a localized string similar to Covered. /// @@ -583,7 +592,7 @@ public static string Grouping { } /// - /// Looks up a localized string similar to Coverage History. + /// Looks up a localized string similar to Coverage history. /// public static string History { get { @@ -646,7 +655,7 @@ public static string MethodCoverageProButton { } /// - /// Looks up a localized string similar to Method coverage is only available for sponsors.. + /// Looks up a localized string similar to Feature is only available for sponsors. /// public static string MethodCoverageProVersion { get { @@ -780,6 +789,24 @@ public static string RiskHotspots { } } + /// + /// Looks up a localized string similar to Select coverage types. + /// + public static string SelectCoverageTypes { + get { + return ResourceManager.GetString("SelectCoverageTypes", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Select coverage types & metrics. + /// + public static string SelectCoverageTypesAndMetrics { + get { + return ResourceManager.GetString("SelectCoverageTypesAndMetrics", resourceCulture); + } + } + /// /// Looks up a localized string similar to Sequence coverage. /// diff --git a/src/ReportGenerator.Core/Properties/ReportResources.resx b/src/ReportGenerator.Core/Properties/ReportResources.resx index 634ab995..aa03fcb8 100644 --- a/src/ReportGenerator.Core/Properties/ReportResources.resx +++ b/src/ReportGenerator.Core/Properties/ReportResources.resx @@ -217,7 +217,7 @@ Grouping: - Coverage History + Coverage history Line @@ -379,7 +379,7 @@ Upgrade to PRO version - Method coverage is only available for sponsors. + Feature is only available for sponsors Coverage date: @@ -402,4 +402,13 @@ Branch + + Coverage types + + + Select coverage types & metrics + + + Select coverage types + \ No newline at end of file diff --git a/src/ReportGenerator.Core/ReportGenerator.Core.csproj b/src/ReportGenerator.Core/ReportGenerator.Core.csproj index cce52077..6032e09c 100644 --- a/src/ReportGenerator.Core/ReportGenerator.Core.csproj +++ b/src/ReportGenerator.Core/ReportGenerator.Core.csproj @@ -81,13 +81,11 @@ - - - - + + + + - - 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 3250c7aa..1dd85e41 100644 --- a/src/ReportGenerator.Core/Reporting/Builders/BadgeReportBuilder.cs +++ b/src/ReportGenerator.Core/Reporting/Builders/BadgeReportBuilder.cs @@ -77,26 +77,30 @@ @keyframes fade3 {{ - - - + + + - - - + + + - - - + + + - + + + + - - - - + + + + + @@ -116,7 +120,7 @@ @keyframes fade3 {{ {4} - + {5} @@ -166,17 +170,17 @@ @keyframes fade3 {{ /// /// The template for line coverage badge in PNG format. /// - private const string LineCoveragePngTemplate = "iVBORw0KGgoAAAANSUhEUgAAAJsAAAAUCAYAAACah0+BAAAHMElEQVR4Ae2ac5AcWxvGO7ax19baTDJrx5aubcS2bUuTDZexbdu2jefr51R1r4a3On/0/WaqfpXeV90159n3PaezUnx8fKEaNWr0lbkog1eDgy1ly2pK2VTdcLFcark+klEqKFWvXr2vDBy8WjaXKaMpZVJ0R2+pWrVql2RgikaNGqFdu3YYNmwYJkyYgE/7e6P8oPfwSXsPhDeJYowDG9lUurSmlE7WF6WSS12SqlatipxUk/nrq69gNBqRlJSk8vE4LxRKcoJgrhM+6OGGuFrxzLGCg42lSmlKqcX6Q0pMTERWqiUkYNLbb2NluXKYNWMG0tPTVZwn+6H44rey8caETxBXM465FnCwoWRJTSm5SH/kEtuAzz7DvgIFBHODg7Fy5UqsXbtW4DEjBGXTP8jFR6M8/9UCNG/eHLVq1fp/EZtDbAlyJ1NoFh6O/UWL4lDhwirTWrXCjh07BL5GA5xWfGqSyj+GsYZVatasieTkZNy4cQMnTpzAvXv3sH//fvzwww/0/2dZX6JENuz95MwvsVB/8NUHFIY7O+NYsWLZOFCqFFKMRhw+fBiBCyPx1jo3kzhP8WcNq2RkZGDLli2IjIxEYGAg/P390aFDB7Rq1UqNqV27Ng8nvLYVvl5gp+TCWozj/qlp06Zo3LixydgmTZqgbt26JnOZo/jsZV3x4ppSfIH+kOLi4qCw9vXXcUpu0TnZ4OIiuk+l5Fi8v9nbJB+u90FsVdYxT/369fH8+XMhjNjYWNUeFhaGiIgIsSgpKSk4f/48xS3u2aBBAyGA+/fvc+SqORs2bEC/fv3E9Qx5b3nq1Cls3boVZ86cwZdffinsK1aswMKFC3HgwAE8e/YMLVq0EJ30yJEj7KqEohaxDRs2FHEnT54U9jt37qBPnz7C98UXX4icbdu24fTp0zws0W4Xa4sV05Ri8/WHxEVXOFKhAs6VKWOSZLlrGDIS8MnOALNENohmHbP88ccfuHr1KqKiokz6u3Xrht27dyMoKAgBAQGYNGkSFi9ejOjoaLF3HDRoEOMoQDGGY2Ji0LZtW2zevJldUuR16tQJy5cvF3Hsohs3bqTI6Re2ypUri9pk/vz5GDt2rLCnpaVh8uTJotPSt2zZMvE89O3atQs//vgj64s6x48fx7fffkufzawpWlRTis7THxIXTOFUxYq4VL68SdKcP4D7jspw22+eiCZRrGOW3377DdeuXTPrZ8cYMmSI+jM7FLuMksvOw+sxY8awmwkRzpo1C0ePHsWaNWsIuxu7IuOE2Lp06cKRzVix6KNGjaJ42AmF8KdNmyZiz549y/Gq3nvp0qUUmxi1T58+xerVq9V7XLp0CV27dmWczawuUiQb9n5y5hdJ0h8SF0Fh1zvv4JqTUy6Ov/kmoo0GeB8JN8+hcEQnsI55eDh48eIFF9Wkn+/1RowYof783XffiS7C6/DwcFy4cAHffPMNhcLxRztFR7jPE3DUUiD08XVNjx491HqDBw/G3r17xRt9Pz8/DB8+HFOnTqWPYqO4lViKjYLiaKfY2E2VezCfwmWczawqXFhTCs/VHxJHmsIcV1fcev31bNx84w381CoEAadiLBK8OoY1LMJ9WWpqKk+2FIVqZwf5+++/ORIpBu5xaKeIKEA1juLYt28ftm/fTvHRxtHMfRYFQBu7GEcefYrY1HyO5dmzZ4vn4D3Y+Sg2+ri34ym5Tp06+PXXX7k3U7oi78d7sz6h8DiamWczKwsV0pRCRv0h8ctU+LZSJdx7661sTI7yQuXziah0wTJhnWJYwyqhoaFiH3b79m0hkrt37woBtWzZElWqVOEoVQ4I3L+xg6i5/G8fbvTbtGmj2pjDbnj9+nUcPHgQN2/eFKOVPu7DunfvrsbyJHnlyhUxms+dOyfG6ZQpU+gT9+Fej92TB4udO3eK/6qjjx15z549ovuxq168eJHPS5/NrChYUFMKztEfEn/Ls7LIzQ2P3n1XsNflU0Qdro6wazUts7UaImIimW8VdgZuwH18fMSIqiQL3NfXlyKknz7a2A1oV0+qhNeenp70KzbCjbtSjxt8buJp53W2WN6DNoqW/7I+c5XatHl7e4v8Y8eOcdwreYxVnosxyvPazPICBbJh7ydnfoHZ+kPi4mclUf4S9zk74/ZHH6HZ3ATE3K5vmTP1ENEgirl2wwXjIue000afVvVy1jYYDLnsrVu3psB4AGDH5fhmnCbPRZblz68p+WfpD4lfYE7i5S/098YGJN5tjMSHTcwSv7s+IupFMkf3cBxz889XGkqH1LL+0nz5NCXfTP0hyb+pF2VgivCmUYifL5++zjdFzectBTVuNUfi5gaIbp+AsHDxm/6fge/gQkJCKDzNay/Jm1dT8s7QGTPznpfkL7YPx4VVwgwISwzn9b/AQUaePJqSZ7q+yDs9by/xZ+EUnMwFGbwaHKRLkqZI03TDBZne/LPw/wFZW12Z+rcUvgAAAABJRU5ErkJggg=="; + 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 = "iVBORw0KGgoAAAANSUhEUgAAAJsAAAAUCAYAAACah0+BAAAIRElEQVR4Ae2aA3Ad6xvGt7ZtI6nt2KrNa9s2ylvbZmpbsW2jjK/Tef77fDO709w9Jzn3TrX9Z2d+0+2r3dnvyft+u4nk7OxcbfTo0fNksmRQzsPBt2HDB0rD47ohq9HxRnOlvVJVycPDY54MHi7l+DRo8EBpcEx3/Cy5u7tny8AQU6dOxWeffYZly5Zhw4YN6LagHxr/0h5dP+8N6+l2jDGRcrzr13+g1D+qL+odrZctubm54Z+4y7z//PPYu3cv9u/fr9JlXV9U298Mgn3N0PGHnnAa68ycMijHq149DYlvvok/s7NR4OMDvw4daDOZekf0h+Tq6or7cXdxwaY2bXChUSPs2rEDJ0+eVDHbPBC1j7QuQcsNXeE0xom5pVDO9bp1NfyZlQVf+Vmnz5+PpI8/Vu0Jb7yBAj8/pM+dazCP1D2sO7RiW9i9O8KrVBHsGzYMFy5cwJUrVwS9dwxHw5MdNXRe1ec/LcCsWbMwduzY/1ux5cnPNH3BAhQGByPCzU3Y/Dp2xO9JSQjq3x95V68i3NHx6RGbi4sLFGZaWyOiZk1EV6+usu2jjxAYGCgYsNcCzc53M8jI16xYo0zGjBmDo0eP4u7du0hMTERhYSEiIiLw6quv0v/Ucq1OHQ2BAwaAx+0DB1SbV9Om+CMtDVFTpqAoLAxBgwYZzK1zSH/w0wcUlpuZIb5WrRJE1quHY3v3IiYmBkMO2aL11Z4GMdsyiDXK5NSpU/D19YWtrS2GDBmCQfLD/OKLL/CRLGolZty4cXw54bnJ8PMCOyUXtrQ47p9mzJiBadOmGYydPn06JkyYYCiXORqfqVytXVuDn7k5eNzcvr2EPV4eozzSFy40mEdqH9QfkpOTExSutGiB5Lp1NVw3NxfdZ8RRR3Tw6WeQTtf6w9GNdYwzadIkFBcXC2E4OjqqdisrK9jY2IhFOXbsGDIyMihucc3JkycLARQVFXHkqjnXr1/H/PnzxfmOHTuQnJwMPz8/pKam4rnnnhP28+fP49ChQ4iMjMTff/+N2bNni04aGxvLrkooahE7ZcoUEZeUlCTs+fn5mDt3rvA9++yzIsff3x8pKSl8WaL9X3GlVi0NvmZm4HFj+/YS9uSvvhL2SPneDOWRWp76Q+KiK8Q2aYL0Bg0MclTuGhanXNA1aLBRbCfbs45R3n33Xdy6dQt2dnYG/d999x1CQkIwdOhQDB48GJs2bcKRI0dgb28v9o6//PKLiKMAOYYdHBzw6aefwsfHR3RJ5n0lL9S5c+dEHLuol5cXRS78tI0cOVLUJp6enli7dq2wnzhxAps3b2anFb6zZ8/yfoQvODgYr732GuuLOgkJCXjppZfoM5nLNWtq8O3eXRWbsMkiosCKCwrwd24ursnrQbshah7QHxIXTCG5aVNkN25skBNmHdErcCR6RhjHZrod6xjl7bffxu3bt4362TGWLFnCc8IOxS6j5rLz8HzNmjWim1GEu3btQlxcHC5fvixgd2NXZBzF9s0333Bki1gu+qpVqyge0Qkp/G3btonYtLQ0jlf12mfOnBFi46j966+/cOnSJfUa2dnZ+PbbbxlnMpdq1NDg060beOScO4fU+fPFXo1HsdzFw8aMYYxRauzXHxIXQSG4bVvcbtZMQ0KrVrDfa4F+sdbGibaGvQvrGIcvB/fu3eOiGvTzu96KFSvU/7/88suii/Dc2toamZmZePHFFykUjj9hp+gI93mEo5YCoY+fa3744Qe13uLFixEWFia+6A8cOBDLly/H1q1b6aPYKG4llmKjoDjaKTZ2U+UazKdwGWcyF6tX1+DdtSvuP/7KyUH6smXwMTenv1Sq79MfEkeawp4ePZDbokUJclq2xOsfDcfgZIdSGXbJgTVKhfuy48eP882WolDt7CAffPABRyLFwD0O7RQRBajGURzh4eEICAig+GjjaOY+iwKgjV2MI48+VWxKPsfy7t27xX3wGux8FBt93NvxLXn8+PF46623uDdTuiKvx2uzPqHwOJqZZzIXqlXT4NWlC3hwZEa/8AIu1a9Pu0lU26s/JD5MhZdGjEBh69Yl2GzXFyMzXDEis3SsvnJgjTKxtLQU+7C8vDwhkoKCAiGgOXPmYNSoURyl6gsC92/sIEouf+3Djf4nn3yi2pjDbnjnzh1ERUUhJyeHo5U+sQ/7/vvv1Vi+Sd68eVOM5vT0dDFOt2zZQp+4Dvd67J58sQgKCuKv6ugTHTk0NFR0P3bVrKws3i99JnO+alUN3r16gcetw4cVm8lU3aM/JP6U38/hnj3xe7t2gjDzbrCL8YDV7TGl4+cOGwdb5pcJOwM34P379xcjaoQs8AEDBlCE9NNHG7sB7eqbKuF5nz596FdshBt3pR43+NzE087zErG8Bm0ULf9lfeYqtWnr16+fyI+Pj+e4V/IYq9wXY5T7NZlzVapoyLl4Eck//YQCfsd0cKDNZKrs1h8SF/9+XOWHGG5mhrzOnTFznwsc8iaVTupE2Ey2Y+6/hQvGRdbYaaPvwdTT1rawsNDYP/74YwqMLwDsuBzfjHsg90XOVq6s4Y/MTFxs3BhJP/6I2Hffpc1kKu/SHxIf4D9xlh/oO9Ms4FowDa6/TTeKc8gk2Ey0ZY7e4Tjm5p+fNJQO+UDrn6lUSUOkfC0KLtfLCxebNqXNZCrt1B+S/JOaJQNDWM+wg7PnOHhkzMCY4jmC0bmz4OozGfafu8DK2opxTw38Bjd8+HAK74HXPl2x4gOl4g6dsbNihiQ/2LkcF2ViZQErV2ue/wfKOVWhwgOlwnZ9UXF7xZ/En4VTcDKZMng4lHNSkh4o0jbdkCnzM/8s/H9dEHOJIDgGnQAAAABJRU5ErkJggg=="; + 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 = "iVBORw0KGgoAAAANSUhEUgAAAJsAAAAUCAYAAACah0+BAAAILklEQVR42u2aA5DcYBiGU9u2bXvPrm3btm3bOu1dbdu2eaptvd33n/l3eut2qrSXmWcu+ZTM5r3v+5NdxcPDI0alSpXG6gjVgQh+DUcSJ/6pJN6gGkKTbEgyRtEq0ZWKFSuO1YEIfi2HEyX6qSRarzpGKxUqVAjTAVPUqVMH/fr1w7Rp07BgwQLkGF8ISSdlRPb++eFQz5kxEdjIoYQJfyoJ16mLBOsShCnly5eHIRV0dG/eHFqtFoGBgXqyzSuIGIEpIAhIgcwj8sK9igdzIrDCwQQJLKLVaLBh+nQc27ULKwcNwqqcOS3GJ1irPhQvLy98SwVPTyxKlw47kySBr7c3Nm3apCfX4qKIuzZtOFIvyA73yu7MjcACB+LHNyKwaFGsHjUK1y5dwuvXr7Fp3jz4Oznxrzg+sW8fArt3x5oMGYxy469RHcZim5AzJ85FiyYIKFUKO3fuxN69ewX5vUsj8abMRmSdVYC5303Dhg1RpUqV/05sfrVq4cj27eC2KyAA/jVqSJ9R3J6VK/H+3Tvs9PODtlw5dYvN09MTkgYODjgfOzYuxYypZ1mvXjhx4oSgiFaDFDtymKRsO3vWsErlypWxbt06PH78GDdu3MDLly9x/vx5tG3blv5/lv3x4knEqNS2b899m2E88+RxvNXqg68+IJmeKxeuxYkTjgsJEmC9VovLly+jxGonpN2X1yS5lhRjDats3rwZR44cgZOTE0qUKIFixYphwIAB6KUTtYypWrUqH064byt8vcBOyRtrMY7rp/r166Nu3bomY+vVq4fq1aubymWO9H03++LG1SO3bzsb7YbQTj+38ydO4PiePXpf3FXqQ3F3d4dkb6pUuBU/vhEHcucW3afMOjdkOlzIJFn2F4ZbedYxT82aNfHp0ychDDc3N73d3t4ejo6O4qasX78ewcHBFLc4Z61atYQAXr16JUauzDlw4ADGjRsn9r29vXHr1i0cPXoUd+7cQbNmzYR9x44dWL16NS5cuICPHz+iUaNGopNeuXKFXZVQ1CK2du3aIu7mzZvC/vz5c4wZM0b4mjZtKnKOHTuG27dv82GJ9u9ib5w4ekxsJtds90JDsX7aNGgdHYX92O7d+hpxVqoPhTddciVZMgQlSmSSdQ0bQrPZE9lPFjeLUy0X1jFL165d8eDBAzg7O5v0Dxs2DKdPn0bJkiVRvHhxLFq0CGvXroWLi4tYO06aNIlxFKAYw66urujbty8OHz7MLinyBg0ahO3btzNOdNGDBw9S5PQLW9myZVlbsHLlSsydO1fYN27ciMWLF7PTCt+2bdt4PcJ36tQptGvXjvVFnevXr6NVq1b02cye2LH1WNu2LFiAgHLlwuVQbByj8jj2CvWh8IZJbiVPjrCkSU2yMVdm5DtRFnnPm8exnjPrmKVz5854+PChWT87xpQpU+QxOxS7jMxl5xH7c+bMYTcTIvT19cXVq1exZ88ewu7Grsg4IbYhQ4ZwZDNW3PRZs2ZRPOyEQvjLli0TsXfv3hXjVZ5769atFJsYtR8+fMDu3bv15wgLC8PQoUMZZzO7Y8XSY21jjCFSbPI4VqD6UHgTJKfSp8fDFCmMuJ4mDVy0GhS64mCeSw5w8WQd8/Dh4PPnz7ypJv18rzdjxgz9cevWrdlFxL6DgwNCQkLQsmVLCoXjj3aKjnCdRzhqKRD6xOuaESNG6OtNnjwZZ8+eFW/0ixYtiunTp2Pp0qX0UWwUt4yl2CgojnaKjd1UnoP5FC7jbGZXzJh6rG2MMUSKTR7HDFAfCkeaxD9PHjxNlSocT1KnRvtepVH8lqtFSu12ZQ2LcF22YcMGPtlSFNIuOkiPHj04EikGrnFop4goQBknxHHu3DkcP36c4qONo5nrLAqANnYxjjz6pNhkvhjLfn5+vA6eg52PYqOPazvxlFytWjV06tSJazPZFXk+npv1CYXH0cw8m9kZI4YeaxtjDJFik8cxtOpD4YcpaVWmDF6mTRuOxc4FUTbYC2VCLGM/yJU1rGJnZyfWYc+ePRMiefHihRBQ48aNUa5cOY5S+YDA9Rs7iMzl1z5iod+nTx9pY47oho8ePcLFixfx5MkTjlb6xDps+PDhMlY8Sd6/f1+M5qCgIDFOlyxZQh/Pw7Ueu6d4sDh58iS/qqNPdOQzZ86w+4muGhoayuulz2Z2RI+ux9rGGEP8mzQRYpPH0f3Vh8L/8m9Zkzcv3mbIIDibOwecL1eE/cPKljlaAY6uTsy3CjsDF+CFCxcWI6qMTuBFihShCOmnjzZ2A9rlkyoR+wUKFKBf2ggX7rIeF/hcxNPO/XCxPAdtFC3/sj5zZW3aChUqJPKvXbvGcS/zGCuvizHyem1me7RoelYOHgwLW7hY/+rVce3iRVw4dUq85JX2aH7qQ5GjQeKl+xDP5cqFZ1mzokGAJ1yf1bTMnRpwrOXM3O+FN4w32dBOG30/rZ5hbY1GY2Tv3bs3BcYHAHZcjm/G/ZTrItuiRjUioHt3s2Lz9/DguzXxVZZWN9a3xool7DI3qq/6UPgBGuKh+0C71NXA60VdeL2pZxaP0zXhWMOJOWqH45iLf77SkB3yp9bfGiWKWQINRMfvRO/euoXAXr2wKVEikzlRfNSHovtPDdUBUzjUd4bHyqqoGFwflT81FlR62hBeh2vBpb8n7B3Ef/o/A9/BlS5dmsL76bW3RI5slRUDBoAbf/WxPlUqi7GRvVWGT+RgRffBjuG4sIq9BvZeDtyP4AfYHCnSTyXScnUReXnkUeJn4RScjhAdiODXsElRfirKMtUQomM0fxb+Fcne6mMQNviqAAAAAElFTkSuQmCC"; + 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. diff --git a/src/ReportGenerator.Core/Reporting/Builders/Rendering/HtmlRenderer.cs b/src/ReportGenerator.Core/Reporting/Builders/Rendering/HtmlRenderer.cs index 90686872..42fe9584 100644 --- a/src/ReportGenerator.Core/Reporting/Builders/Rendering/HtmlRenderer.cs +++ b/src/ReportGenerator.Core/Reporting/Builders/Rendering/HtmlRenderer.cs @@ -28,7 +28,7 @@ internal class HtmlRenderer : IHtmlRenderer, IDisposable - + {0} - {1} {2}
"; @@ -491,6 +491,7 @@ public void CustomSummary(IEnumerable assemblies, IEnumerable(); var tagsByBistoricCoverageExecutionTime = new Dictionary(); + var metricsByName = new Dictionary(); foreach (var assembly in assemblies) { @@ -550,6 +551,55 @@ public void CustomSummary(IEnumerable assemblies, IEnumerable f.MethodMetrics).SelectMany(m => m.Metrics).GroupBy(m => m.Name)) + { + var firstMetric = metricGroup.First(); + metricsByName[firstMetric.Name] = firstMetric; + + if (!methodCoverageAvailable) + { + continue; + } + + decimal? value = null; + + if (firstMetric.MetricType == MetricType.CoverageAbsolute) + { + value = metricGroup.SafeSum(m => m.Value); + } + else + { + // Show worst result on summary page + if (firstMetric.MergeOrder == MetricMergeOrder.HigherIsBetter) + { + value = metricGroup.Min(m => m.Value); + } + else + { + value = metricGroup.Max(m => m.Value); + } + } + + if (value.HasValue) + { + if (metricsCounter++ > 0) + { + metricsSb.Append(", "); + } + + metricsSb.AppendFormat( + " \"{0}\": {1}", + firstMetric.Abbreviation, + value.Value.ToString(CultureInfo.InvariantCulture)); + } + } + + metricsSb.Append(" }"); + this.javaScriptContent.Append(" { "); this.javaScriptContent.AppendFormat("\"name\": \"{0}\",", @class.DisplayName.Replace(@"\", @"\\")); this.javaScriptContent.AppendFormat( @@ -570,7 +620,8 @@ public void CustomSummary(IEnumerable assemblies, IEnumerable assemblies, IEnumerable 0) + { + this.javaScriptContent.Append(", "); + } + + this.javaScriptContent.AppendFormat( + "{{ \"name\": \"{0}\", \"abbreviation\": \"{1}\", \"explanationUrl\": \"{2}\" }}", + item.Key, + item.Value.Abbreviation, + item.Value.ExplanationUrl); + } + + this.javaScriptContent.AppendLine("];"); + + this.javaScriptContent.AppendLine(); + this.javaScriptContent.Append("var historicCoverageExecutionTimes = ["); int historicCoverageExecutionTimesCounter = 0; @@ -706,7 +778,7 @@ public void MetricsTable(Class @class) } else { - this.reportTextWriter.Write("
", WebUtility.HtmlEncode(met.Name), WebUtility.HtmlEncode(met.ExplanationUrl.OriginalString)); + this.reportTextWriter.Write("", WebUtility.HtmlEncode(met.Name), WebUtility.HtmlEncode(met.ExplanationUrl.OriginalString)); } } @@ -792,7 +864,7 @@ public void MetricsTable(IEnumerable methodMetrics) } else { - this.reportTextWriter.Write("", WebUtility.HtmlEncode(met.Name), WebUtility.HtmlEncode(met.ExplanationUrl.OriginalString)); + this.reportTextWriter.Write("", WebUtility.HtmlEncode(met.Name), WebUtility.HtmlEncode(met.ExplanationUrl.OriginalString)); } } @@ -1092,7 +1164,7 @@ public void RiskHotspots(IEnumerable riskHotspots) } else { - this.reportTextWriter.WriteLine("", WebUtility.HtmlEncode(metric.Name), WebUtility.HtmlEncode(metric.ExplanationUrl.OriginalString)); + this.reportTextWriter.WriteLine("", WebUtility.HtmlEncode(metric.Name), WebUtility.HtmlEncode(metric.ExplanationUrl.OriginalString)); } } @@ -1254,7 +1326,7 @@ public void AddFooter() { this.reportTextWriter.Write(string.Format( CultureInfo.InvariantCulture, - "
{0} ReportGenerator {1}
{2} - {3}
GitHub | www.palmmedia.de
", + "
{0} ReportGenerator {1}
{2} - {3}
GitHub | reportgenerator.io
", WebUtility.HtmlEncode(ReportResources.GeneratedBy), typeof(IReportBuilder).Assembly.GetName().Version, DateTime.Now.ToShortDateString(), @@ -1302,10 +1374,7 @@ protected virtual void Dispose(bool disposing) { if (disposing) { - if (this.reportTextWriter != null) - { - this.reportTextWriter.Dispose(); - } + this.reportTextWriter?.Dispose(); } } @@ -1659,6 +1728,16 @@ private Stream GetCombinedJavascript() sb.AppendLine(","); sb.AppendFormat("'allChanges': '{0}'", WebUtility.HtmlEncode(ReportResources.AllChanges)); sb.AppendLine(","); + sb.AppendFormat("'selectCoverageTypes': '{0}'", WebUtility.HtmlEncode(ReportResources.SelectCoverageTypes)); + sb.AppendLine(","); + sb.AppendFormat("'selectCoverageTypesAndMetrics': '{0}'", ReportResources.SelectCoverageTypesAndMetrics); + sb.AppendLine(","); + sb.AppendFormat("'coverageTypes': '{0}'", WebUtility.HtmlEncode(ReportResources.CoverageTypes)); + sb.AppendLine(","); + sb.AppendFormat("'metrics': '{0}'", WebUtility.HtmlEncode(ReportResources.Metrics)); + sb.AppendLine(","); + sb.AppendFormat("'methodCoverageProVersion': '{0}'", WebUtility.HtmlEncode(ReportResources.MethodCoverageProVersion)); + sb.AppendLine(","); sb.AppendFormat("'lineCoverageIncreaseOnly': '{0}'", WebUtility.HtmlEncode(ReportResources.LineCoverageIncreaseOnly)); sb.AppendLine(","); sb.AppendFormat("'lineCoverageDecreaseOnly': '{0}'", WebUtility.HtmlEncode(ReportResources.LineCoverageDecreaseOnly)); 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 ed96b4c3..abf27509 100644 --- a/src/ReportGenerator.Core/Reporting/Builders/Rendering/resources/custom-azurepipelines.css +++ b/src/ReportGenerator.Core/Reporting/Builders/Rendering/resources/custom-azurepipelines.css @@ -4,6 +4,8 @@ h1 { font-size: 1.2em; font-weight: normal; color: #000; background-color: rgba( h1:first-of-type { margin-top: 0; } h2 { font-size: 1.0em; font-weight: bold; margin: 10px 0 15px 0; padding: 0; } h3 { font-size: 1.0em; font-weight: bold; margin: 0 0 10px 0; padding: 0; display: inline-block; } +input, select, button { border: 1px solid #c1c1c1; border-radius: 0; } +button { background-color: #ddd; cursor: pointer; } a { color: #0078D4; text-decoration: none; } a:hover { color: #000; text-decoration: underline; } h1 a.back { background-color: #e8e8e8; display: inline-block; margin: -12px 5px -10px -10px; padding: 10px; border-right: 1px solid #fff; } @@ -25,6 +27,10 @@ h1 a.button i { position: relative; top: 1px; } .containerright { display: none; } } +.popup-container { position: fixed; left: 0; right: 0; top: 0; bottom: 0; background-color: rgb(0, 0, 0, 0.6); z-index: 100; } +.popup { position: absolute; top: 50%; right: 50%; transform: translate(50%,-50%); background-color: #fff; padding: 25px; border-radius: 15px; min-width: 300px; } +.popup .close { text-align: right; color: #979797; font-size: 25px;position: relative; left: 10px; bottom: 10px; cursor: pointer; } + .footer { font-size: 0.7em; text-align: center; margin-top: 35px; } .card-group { display: flex; flex-wrap: wrap; margin-top: -15px; margin-left: -15px; } @@ -44,10 +50,13 @@ h1 a.button i { position: relative; top: 1px; } .pro-button { color: #fff; background-color: #20A0D2; background-image: linear-gradient(50deg, #1c7ed6 0%, #23b8cf 100%); padding: 10px; border-radius: 3px; font-weight: bold; display: inline-block; } .pro-button:hover { color: #fff; background-color: #1C8EB7; background-image: linear-gradient(50deg, #1A6FBA 0%, #1EA1B5 100%); } +.pro-button-tiny { border-radius: 10px; padding: 3px 8px; } th { text-align: left; } .table-fixed { table-layout: fixed; } .table-responsive { overflow-x: auto; } +.table-responsive::-webkit-scrollbar { height: 20px; } +.table-responsive::-webkit-scrollbar-thumb { background-color: #6f6f6f; border-radius: 20px; border: 5px solid #fff; } .overview { border: 1px solid #c1c1c1; border-collapse: collapse; width: 100%; word-wrap: break-word; } .overview th { border: 1px solid #c1c1c1; border-collapse: collapse; padding: 5px 4px 5px 4px; background-color: #fff} .overview thead th { background-color: #fff; } @@ -120,6 +129,7 @@ a.percentagebar { border-left: 2px solid #107C10; } +.mt-1 { margin-top: 4px; } .hidden, .ng-hide { display: none; } .right { text-align: right; } .center { text-align: center; } @@ -444,6 +454,14 @@ a.percentagebar { height: 0.9em; display: inline-block; } +.icon-cog { + background-image: url(icon_cog.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiB2aWV3Qm94PSIwIDAgNTEyIDUxMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNDQ0Ljc4OCAyOTEuMWw0Mi42MTYgMjQuNTk5YzQuODY3IDIuODA5IDcuMTI2IDguNjE4IDUuNDU5IDEzLjk4NS0xMS4wNyAzNS42NDItMjkuOTcgNjcuODQyLTU0LjY4OSA5NC41ODZhMTIuMDE2IDEyLjAxNiAwIDAgMS0xNC44MzIgMi4yNTRsLTQyLjU4NC0yNC41OTVhMTkxLjU3NyAxOTEuNTc3IDAgMCAxLTYwLjc1OSAzNS4xM3Y0OS4xODJhMTIuMDEgMTIuMDEgMCAwIDEtOS4zNzcgMTEuNzE4Yy0zNC45NTYgNy44NS03Mi40OTkgOC4yNTYtMTA5LjIxOS4wMDctNS40OS0xLjIzMy05LjQwMy02LjA5Ni05LjQwMy0xMS43MjN2LTQ5LjE4NGExOTEuNTU1IDE5MS41NTUgMCAwIDEtNjAuNzU5LTM1LjEzbC00Mi41ODQgMjQuNTk1YTEyLjAxNiAxMi4wMTYgMCAwIDEtMTQuODMyLTIuMjU0Yy0yNC43MTgtMjYuNzQ0LTQzLjYxOS01OC45NDQtNTQuNjg5LTk0LjU4Ni0xLjY2Ny01LjM2Ni41OTItMTEuMTc1IDUuNDU5LTEzLjk4NUw2Ny4yMTIgMjkxLjFhMTkzLjQ4IDE5My40OCAwIDAgMSAwLTcwLjE5OWwtNDIuNjE2LTI0LjU5OWMtNC44NjctMi44MDktNy4xMjYtOC42MTgtNS40NTktMTMuOTg1IDExLjA3LTM1LjY0MiAyOS45Ny02Ny44NDIgNTQuNjg5LTk0LjU4NmExMi4wMTYgMTIuMDE2IDAgMCAxIDE0LjgzMi0yLjI1NGw0Mi41ODQgMjQuNTk1YTE5MS41NzcgMTkxLjU3NyAwIDAgMSA2MC43NTktMzUuMTNWMjUuNzU5YTEyLjAxIDEyLjAxIDAgMCAxIDkuMzc3LTExLjcxOGMzNC45NTYtNy44NSA3Mi40OTktOC4yNTYgMTA5LjIxOS0uMDA3IDUuNDkgMS4yMzMgOS40MDMgNi4wOTYgOS40MDMgMTEuNzIzdjQ5LjE4NGExOTEuNTU1IDE5MS41NTUgMCAwIDEgNjAuNzU5IDM1LjEzbDQyLjU4NC0yNC41OTVhMTIuMDE2IDEyLjAxNiAwIDAgMSAxNC44MzIgMi4yNTRjMjQuNzE4IDI2Ljc0NCA0My42MTkgNTguOTQ0IDU0LjY4OSA5NC41ODYgMS42NjcgNS4zNjYtLjU5MiAxMS4xNzUtNS40NTkgMTMuOTg1TDQ0NC43ODggMjIwLjlhMTkzLjQ4NSAxOTMuNDg1IDAgMCAxIDAgNzAuMnpNMzM2IDI1NmMwLTQ0LjExMi0zNS44ODgtODAtODAtODBzLTgwIDM1Ljg4OC04MCA4MCAzNS44ODggODAgODAgODAgODAtMzUuODg4IDgwLTgweiIvPjwvc3ZnPg==); + background-repeat: no-repeat; + background-size: contain; + padding-left: 16px; + height: 0.8em; + display: inline-block; +} .icon-fork { background-image: url(icon_fork.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMTc5MiIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMTc5MiAxNzkyIj4NCiAgICA8cGF0aCBkPSJNNjcyIDE0NzJxMC00MC0yOC02OHQtNjgtMjgtNjggMjgtMjggNjggMjggNjggNjggMjggNjgtMjggMjgtNjh6bTAtMTE1MnEwLTQwLTI4LTY4dC02OC0yOC02OCAyOC0yOCA2OCAyOCA2OCA2OCAyOCA2OC0yOCAyOC02OHptNjQwIDEyOHEwLTQwLTI4LTY4dC02OC0yOC02OCAyOC0yOCA2OCAyOCA2OCA2OCAyOCA2OC0yOCAyOC02OHptOTYgMHEwIDUyLTI2IDk2LjV0LTcwIDY5LjVxLTIgMjg3LTIyNiA0MTQtNjcgMzgtMjAzIDgxLTEyOCA0MC0xNjkuNSA3MXQtNDEuNSAxMDB2MjZxNDQgMjUgNzAgNjkuNXQyNiA5Ni41cTAgODAtNTYgMTM2dC0xMzYgNTYtMTM2LTU2LTU2LTEzNnEwLTUyIDI2LTk2LjV0NzAtNjkuNXYtODIwcS00NC0yNS03MC02OS41dC0yNi05Ni41cTAtODAgNTYtMTM2dDEzNi01NiAxMzYgNTYgNTYgMTM2cTAgNTItMjYgOTYuNXQtNzAgNjkuNXY0OTdxNTQtMjYgMTU0LTU3IDU1LTE3IDg3LjUtMjkuNXQ3MC41LTMxIDU5LTM5LjUgNDAuNS01MSAyOC02OS41IDguNS05MS41cS00NC0yNS03MC02OS41dC0yNi05Ni41cTAtODAgNTYtMTM2dDEzNi01NiAxMzYgNTYgNTYgMTM2eiIvPg0KPC9zdmc+DQo=); background-repeat: no-repeat; 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 4fc8dc72..5fb86e9d 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 @@ -6,16 +6,19 @@ .container { background-color: #292827; } .containerrightfixed { background-color: #3D3C3C; border-left: 1px solid #515050; } .containerrightfixed h1 { background-color: #484747; } + .popup-container { background-color: rgb(80, 80, 80, 0.6); } + .popup { background-color: #292827; } .card-group .card { background-color: #333; background: radial-gradient(circle, #444 0%, #333 100%); border: 1px solid #545454; color: #fff; } .card-group .card table tr { border-bottom: 1px solid #545454; } .card-group .card table tr:hover { background-color: #2E2D2C; } + .table-responsive::-webkit-scrollbar-thumb { background-color: #555453; border: 5px solid #292827; } .overview tr:hover { background-color: #2E2D2C } .overview thead th, .overview th { background-color: #333; border: 1px solid #3B3A39; } .overview th a { color: #fff; color: rgba(255, 255, 255, 0.95); } .overview th a:hover { color: #0078d4; } .overview td { border: 1px solid #3B3A39; } .overview .coverage td { border: none; } - input, select { background-color: #292827; color: #fff; border: 1px solid #A19F9D; } + input, select, button { background-color: #292827; color: #fff; border: 1px solid #A19F9D; } a { color: #fff; color: rgba(255, 255, 255, 0.95); } a:hover { color: #0078d4; } h1 a.back { background-color: #4a4846; } @@ -55,6 +58,9 @@ .icon-wrench { background-image: url(icon_wrench.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHdpZHRoPSIxNzkyIiBoZWlnaHQ9IjE3OTIiIHZpZXdCb3g9IjAgMCAxNzkyIDE3OTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbD0iI0JEQkRCRiIgZD0iTTQ0OCAxNDcycTAtMjYtMTktNDV0LTQ1LTE5LTQ1IDE5LTE5IDQ1IDE5IDQ1IDQ1IDE5IDQ1LTE5IDE5LTQ1em02NDQtNDIwbC02ODIgNjgycS0zNyAzNy05MCAzNy01MiAwLTkxLTM3bC0xMDYtMTA4cS0zOC0zNi0zOC05MCAwLTUzIDM4LTkxbDY4MS02ODFxMzkgOTggMTE0LjUgMTczLjV0MTczLjUgMTE0LjV6bTYzNC00MzVxMCAzOS0yMyAxMDYtNDcgMTM0LTE2NC41IDIxNy41dC0yNTguNSA4My41cS0xODUgMC0zMTYuNS0xMzEuNXQtMTMxLjUtMzE2LjUgMTMxLjUtMzE2LjUgMzE2LjUtMTMxLjVxNTggMCAxMjEuNSAxNi41dDEwNy41IDQ2LjVxMTYgMTEgMTYgMjh0LTE2IDI4bC0yOTMgMTY5djIyNGwxOTMgMTA3cTUtMyA3OS00OC41dDEzNS41LTgxIDcwLjUtMzUuNXExNSAwIDIzLjUgMTB0OC41IDI1eiIvPjwvc3ZnPg==); } + .icon-cog { + background-image: url(icon_cog.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiB2aWV3Qm94PSIwIDAgNTEyIDUxMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBmaWxsPSIjQkRCREJGIiBkPSJNNDQ0Ljc4OCAyOTEuMWw0Mi42MTYgMjQuNTk5YzQuODY3IDIuODA5IDcuMTI2IDguNjE4IDUuNDU5IDEzLjk4NS0xMS4wNyAzNS42NDItMjkuOTcgNjcuODQyLTU0LjY4OSA5NC41ODZhMTIuMDE2IDEyLjAxNiAwIDAgMS0xNC44MzIgMi4yNTRsLTQyLjU4NC0yNC41OTVhMTkxLjU3NyAxOTEuNTc3IDAgMCAxLTYwLjc1OSAzNS4xM3Y0OS4xODJhMTIuMDEgMTIuMDEgMCAwIDEtOS4zNzcgMTEuNzE4Yy0zNC45NTYgNy44NS03Mi40OTkgOC4yNTYtMTA5LjIxOS4wMDctNS40OS0xLjIzMy05LjQwMy02LjA5Ni05LjQwMy0xMS43MjN2LTQ5LjE4NGExOTEuNTU1IDE5MS41NTUgMCAwIDEtNjAuNzU5LTM1LjEzbC00Mi41ODQgMjQuNTk1YTEyLjAxNiAxMi4wMTYgMCAwIDEtMTQuODMyLTIuMjU0Yy0yNC43MTgtMjYuNzQ0LTQzLjYxOS01OC45NDQtNTQuNjg5LTk0LjU4Ni0xLjY2Ny01LjM2Ni41OTItMTEuMTc1IDUuNDU5LTEzLjk4NUw2Ny4yMTIgMjkxLjFhMTkzLjQ4IDE5My40OCAwIDAgMSAwLTcwLjE5OWwtNDIuNjE2LTI0LjU5OWMtNC44NjctMi44MDktNy4xMjYtOC42MTgtNS40NTktMTMuOTg1IDExLjA3LTM1LjY0MiAyOS45Ny02Ny44NDIgNTQuNjg5LTk0LjU4NmExMi4wMTYgMTIuMDE2IDAgMCAxIDE0LjgzMi0yLjI1NGw0Mi41ODQgMjQuNTk1YTE5MS41NzcgMTkxLjU3NyAwIDAgMSA2MC43NTktMzUuMTNWMjUuNzU5YTEyLjAxIDEyLjAxIDAgMCAxIDkuMzc3LTExLjcxOGMzNC45NTYtNy44NSA3Mi40OTktOC4yNTYgMTA5LjIxOS0uMDA3IDUuNDkgMS4yMzMgOS40MDMgNi4wOTYgOS40MDMgMTEuNzIzdjQ5LjE4NGExOTEuNTU1IDE5MS41NTUgMCAwIDEgNjAuNzU5IDM1LjEzbDQyLjU4NC0yNC41OTVhMTIuMDE2IDEyLjAxNiAwIDAgMSAxNC44MzIgMi4yNTRjMjQuNzE4IDI2Ljc0NCA0My42MTkgNTguOTQ0IDU0LjY4OSA5NC41ODYgMS42NjcgNS4zNjYtLjU5MiAxMS4xNzUtNS40NTkgMTMuOTg1TDQ0NC43ODggMjIwLjlhMTkzLjQ4NSAxOTMuNDg1IDAgMCAxIDAgNzAuMnpNMzM2IDI1NmMwLTQ0LjExMi0zNS44ODgtODAtODAtODBzLTgwIDM1Ljg4OC04MCA4MCAzNS44ODggODAgODAgODAgODAtMzUuODg4IDgwLTgweiIvPjwvc3ZnPg==); + } .icon-fork { background-image: url(icon_fork.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHdpZHRoPSIxNzkyIiBoZWlnaHQ9IjE3OTIiIHZpZXdCb3g9IjAgMCAxNzkyIDE3OTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbD0iI0JGQkZDMCIgZD0iTTY3MiAxNDcycTAtNDAtMjgtNjh0LTY4LTI4LTY4IDI4LTI4IDY4IDI4IDY4IDY4IDI4IDY4LTI4IDI4LTY4em0wLTExNTJxMC00MC0yOC02OHQtNjgtMjgtNjggMjgtMjggNjggMjggNjggNjggMjggNjgtMjggMjgtNjh6bTY0MCAxMjhxMC00MC0yOC02OHQtNjgtMjgtNjggMjgtMjggNjggMjggNjggNjggMjggNjgtMjggMjgtNjh6bTk2IDBxMCA1Mi0yNiA5Ni41dC03MCA2OS41cS0yIDI4Ny0yMjYgNDE0LTY3IDM4LTIwMyA4MS0xMjggNDAtMTY5LjUgNzF0LTQxLjUgMTAwdjI2cTQ0IDI1IDcwIDY5LjV0MjYgOTYuNXEwIDgwLTU2IDEzNnQtMTM2IDU2LTEzNi01Ni01Ni0xMzZxMC01MiAyNi05Ni41dDcwLTY5LjV2LTgyMHEtNDQtMjUtNzAtNjkuNXQtMjYtOTYuNXEwLTgwIDU2LTEzNnQxMzYtNTYgMTM2IDU2IDU2IDEzNnEwIDUyLTI2IDk2LjV0LTcwIDY5LjV2NDk3cTU0LTI2IDE1NC01NyA1NS0xNyA4Ny41LTI5LjV0NzAuNS0zMSA1OS0zOS41IDQwLjUtNTEgMjgtNjkuNSA4LjUtOTEuNXEtNDQtMjUtNzAtNjkuNXQtMjYtOTYuNXEwLTgwIDU2LTEzNnQxMzYtNTYgMTM2IDU2IDU2IDEzNnoiLz48L3N2Zz4=); } 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 6de1308e..be349f03 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 @@ -5,16 +5,19 @@ .container { background-color: #292827; } .containerrightfixed { background-color: #3D3C3C; border-left: 1px solid #515050; } .containerrightfixed h1 { background-color: #484747; } + .popup-container { background-color: rgb(80, 80, 80, 0.6); } + .popup { background-color: #292827; } .card-group .card { background-color: #333; background: radial-gradient(circle, #444 0%, #333 100%); border: 1px solid #545454; color: #fff; } .card-group .card table tr { border-bottom: 1px solid #545454; } .card-group .card table tr:hover { background-color: #2E2D2C; } + .table-responsive::-webkit-scrollbar-thumb { background-color: #555453; border: 5px solid #292827; } .overview tr:hover { background-color: #2E2D2C } .overview thead th, .overview th { background-color: #333; border: 1px solid #3B3A39; } .overview th a { color: #fff; color: rgba(255, 255, 255, 0.95); } .overview th a:hover { color: #0078d4; } .overview td { border: 1px solid #3B3A39; } .overview .coverage td { border: none; } - input, select { background-color: #292827; color: #fff; border: 1px solid #A19F9D; } + input, select, button { background-color: #292827; color: #fff; border: 1px solid #A19F9D; } a { color: #fff; color: rgba(255, 255, 255, 0.95); } a:hover { color: #0078d4; } h1 a.back { background-color: #4a4846; } @@ -54,6 +57,9 @@ .icon-wrench { background-image: url(icon_wrench.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHdpZHRoPSIxNzkyIiBoZWlnaHQ9IjE3OTIiIHZpZXdCb3g9IjAgMCAxNzkyIDE3OTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbD0iI0JEQkRCRiIgZD0iTTQ0OCAxNDcycTAtMjYtMTktNDV0LTQ1LTE5LTQ1IDE5LTE5IDQ1IDE5IDQ1IDQ1IDE5IDQ1LTE5IDE5LTQ1em02NDQtNDIwbC02ODIgNjgycS0zNyAzNy05MCAzNy01MiAwLTkxLTM3bC0xMDYtMTA4cS0zOC0zNi0zOC05MCAwLTUzIDM4LTkxbDY4MS02ODFxMzkgOTggMTE0LjUgMTczLjV0MTczLjUgMTE0LjV6bTYzNC00MzVxMCAzOS0yMyAxMDYtNDcgMTM0LTE2NC41IDIxNy41dC0yNTguNSA4My41cS0xODUgMC0zMTYuNS0xMzEuNXQtMTMxLjUtMzE2LjUgMTMxLjUtMzE2LjUgMzE2LjUtMTMxLjVxNTggMCAxMjEuNSAxNi41dDEwNy41IDQ2LjVxMTYgMTEgMTYgMjh0LTE2IDI4bC0yOTMgMTY5djIyNGwxOTMgMTA3cTUtMyA3OS00OC41dDEzNS41LTgxIDcwLjUtMzUuNXExNSAwIDIzLjUgMTB0OC41IDI1eiIvPjwvc3ZnPg==); } + .icon-cog { + background-image: url(icon_cog.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiB2aWV3Qm94PSIwIDAgNTEyIDUxMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBmaWxsPSIjQkRCREJGIiBkPSJNNDQ0Ljc4OCAyOTEuMWw0Mi42MTYgMjQuNTk5YzQuODY3IDIuODA5IDcuMTI2IDguNjE4IDUuNDU5IDEzLjk4NS0xMS4wNyAzNS42NDItMjkuOTcgNjcuODQyLTU0LjY4OSA5NC41ODZhMTIuMDE2IDEyLjAxNiAwIDAgMS0xNC44MzIgMi4yNTRsLTQyLjU4NC0yNC41OTVhMTkxLjU3NyAxOTEuNTc3IDAgMCAxLTYwLjc1OSAzNS4xM3Y0OS4xODJhMTIuMDEgMTIuMDEgMCAwIDEtOS4zNzcgMTEuNzE4Yy0zNC45NTYgNy44NS03Mi40OTkgOC4yNTYtMTA5LjIxOS4wMDctNS40OS0xLjIzMy05LjQwMy02LjA5Ni05LjQwMy0xMS43MjN2LTQ5LjE4NGExOTEuNTU1IDE5MS41NTUgMCAwIDEtNjAuNzU5LTM1LjEzbC00Mi41ODQgMjQuNTk1YTEyLjAxNiAxMi4wMTYgMCAwIDEtMTQuODMyLTIuMjU0Yy0yNC43MTgtMjYuNzQ0LTQzLjYxOS01OC45NDQtNTQuNjg5LTk0LjU4Ni0xLjY2Ny01LjM2Ni41OTItMTEuMTc1IDUuNDU5LTEzLjk4NUw2Ny4yMTIgMjkxLjFhMTkzLjQ4IDE5My40OCAwIDAgMSAwLTcwLjE5OWwtNDIuNjE2LTI0LjU5OWMtNC44NjctMi44MDktNy4xMjYtOC42MTgtNS40NTktMTMuOTg1IDExLjA3LTM1LjY0MiAyOS45Ny02Ny44NDIgNTQuNjg5LTk0LjU4NmExMi4wMTYgMTIuMDE2IDAgMCAxIDE0LjgzMi0yLjI1NGw0Mi41ODQgMjQuNTk1YTE5MS41NzcgMTkxLjU3NyAwIDAgMSA2MC43NTktMzUuMTNWMjUuNzU5YTEyLjAxIDEyLjAxIDAgMCAxIDkuMzc3LTExLjcxOGMzNC45NTYtNy44NSA3Mi40OTktOC4yNTYgMTA5LjIxOS0uMDA3IDUuNDkgMS4yMzMgOS40MDMgNi4wOTYgOS40MDMgMTEuNzIzdjQ5LjE4NGExOTEuNTU1IDE5MS41NTUgMCAwIDEgNjAuNzU5IDM1LjEzbDQyLjU4NC0yNC41OTVhMTIuMDE2IDEyLjAxNiAwIDAgMSAxNC44MzIgMi4yNTRjMjQuNzE4IDI2Ljc0NCA0My42MTkgNTguOTQ0IDU0LjY4OSA5NC41ODYgMS42NjcgNS4zNjYtLjU5MiAxMS4xNzUtNS40NTkgMTMuOTg1TDQ0NC43ODggMjIwLjlhMTkzLjQ4NSAxOTMuNDg1IDAgMCAxIDAgNzAuMnpNMzM2IDI1NmMwLTQ0LjExMi0zNS44ODgtODAtODAtODBzLTgwIDM1Ljg4OC04MCA4MCAzNS44ODggODAgODAgODAgODAtMzUuODg4IDgwLTgweiIvPjwvc3ZnPg==); + } .icon-fork { background-image: url(icon_fork.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHdpZHRoPSIxNzkyIiBoZWlnaHQ9IjE3OTIiIHZpZXdCb3g9IjAgMCAxNzkyIDE3OTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbD0iI0JGQkZDMCIgZD0iTTY3MiAxNDcycTAtNDAtMjgtNjh0LTY4LTI4LTY4IDI4LTI4IDY4IDI4IDY4IDY4IDI4IDY4LTI4IDI4LTY4em0wLTExNTJxMC00MC0yOC02OHQtNjgtMjgtNjggMjgtMjggNjggMjggNjggNjggMjggNjgtMjggMjgtNjh6bTY0MCAxMjhxMC00MC0yOC02OHQtNjgtMjgtNjggMjgtMjggNjggMjggNjggNjggMjggNjgtMjggMjgtNjh6bTk2IDBxMCA1Mi0yNiA5Ni41dC03MCA2OS41cS0yIDI4Ny0yMjYgNDE0LTY3IDM4LTIwMyA4MS0xMjggNDAtMTY5LjUgNzF0LTQxLjUgMTAwdjI2cTQ0IDI1IDcwIDY5LjV0MjYgOTYuNXEwIDgwLTU2IDEzNnQtMTM2IDU2LTEzNi01Ni01Ni0xMzZxMC01MiAyNi05Ni41dDcwLTY5LjV2LTgyMHEtNDQtMjUtNzAtNjkuNXQtMjYtOTYuNXEwLTgwIDU2LTEzNnQxMzYtNTYgMTM2IDU2IDU2IDEzNnEwIDUyLTI2IDk2LjV0LTcwIDY5LjV2NDk3cTU0LTI2IDE1NC01NyA1NS0xNyA4Ny41LTI5LjV0NzAuNS0zMSA1OS0zOS41IDQwLjUtNTEgMjgtNjkuNSA4LjUtOTEuNXEtNDQtMjUtNzAtNjkuNXQtMjYtOTYuNXEwLTgwIDU2LTEzNnQxMzYtNTYgMTM2IDU2IDU2IDEzNnoiLz48L3N2Zz4=); } diff --git a/src/ReportGenerator.Core/Reporting/Builders/Rendering/resources/custom.css b/src/ReportGenerator.Core/Reporting/Builders/Rendering/resources/custom.css index 165e5d8d..9fc773d3 100644 --- a/src/ReportGenerator.Core/Reporting/Builders/Rendering/resources/custom.css +++ b/src/ReportGenerator.Core/Reporting/Builders/Rendering/resources/custom.css @@ -4,6 +4,8 @@ h1 { font-family: 'Century Gothic', sans-serif; font-size: 1.2em; font-weight: n h1:first-of-type { margin-top: 0; } h2 { font-size: 1.0em; font-weight: bold; margin: 10px 0 15px 0; padding: 0; } h3 { font-size: 1.0em; font-weight: bold; margin: 0 0 10px 0; padding: 0; display: inline-block; } +input, select, button { border: 1px solid #767676; border-radius: 0; } +button { background-color: #ddd; cursor: pointer; } a { color: #c00; text-decoration: none; } a:hover { color: #000; text-decoration: none; } h1 a.back { color: #fff; background-color: #949494; display: inline-block; margin: -12px 5px -10px -10px; padding: 10px; border-right: 1px solid #fff; } @@ -25,6 +27,10 @@ h1 a.button i { position: relative; top: 1px; } .containerright { display: none; } } +.popup-container { position: fixed; left: 0; right: 0; top: 0; bottom: 0; background-color: rgb(0, 0, 0, 0.6); z-index: 100; } +.popup { position: absolute; top: 50%; right: 50%; transform: translate(50%,-50%); background-color: #fff; padding: 25px; border-radius: 15px; min-width: 300px; } +.popup .close { text-align: right; color: #979797; font-size: 25px;position: relative; left: 10px; bottom: 10px; cursor: pointer; } + .footer { font-size: 0.7em; text-align: center; margin-top: 35px; } .card-group { display: flex; flex-wrap: wrap; margin-top: -15px; margin-left: -15px; } @@ -44,10 +50,13 @@ h1 a.button i { position: relative; top: 1px; } .pro-button { color: #fff; background-color: #20A0D2; background-image: linear-gradient(50deg, #1c7ed6 0%, #23b8cf 100%); padding: 10px; border-radius: 3px; font-weight: bold; display: inline-block; } .pro-button:hover { color: #fff; background-color: #1C8EB7; background-image: linear-gradient(50deg, #1A6FBA 0%, #1EA1B5 100%); } +.pro-button-tiny { border-radius: 10px; padding: 3px 8px; } th { text-align: left; } .table-fixed { table-layout: fixed; } .table-responsive { overflow-x: auto; } +.table-responsive::-webkit-scrollbar { height: 20px; } +.table-responsive::-webkit-scrollbar-thumb { background-color: #6f6f6f; border-radius: 20px; border: 5px solid #fff; } .overview { border: 1px solid #c1c1c1; border-collapse: collapse; width: 100%; word-wrap: break-word; } .overview th { border: 1px solid #c1c1c1; border-collapse: collapse; padding: 2px 4px 2px 4px; background-color: #ddd; } .overview tr.namespace th { background-color: #dcdcdc; } @@ -121,6 +130,7 @@ a.percentagebar { border-left: 2px solid #0aad0a; } +.mt-1 { margin-top: 4px; } .hidden, .ng-hide { display: none; } .right { text-align: right; } .center { text-align: center; } @@ -447,6 +457,14 @@ code { font-family: Consolas, monospace; font-size: 0.9em; } height: 0.9em; display: inline-block; } +.icon-cog { + background-image: url(icon_cog.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiB2aWV3Qm94PSIwIDAgNTEyIDUxMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNDQ0Ljc4OCAyOTEuMWw0Mi42MTYgMjQuNTk5YzQuODY3IDIuODA5IDcuMTI2IDguNjE4IDUuNDU5IDEzLjk4NS0xMS4wNyAzNS42NDItMjkuOTcgNjcuODQyLTU0LjY4OSA5NC41ODZhMTIuMDE2IDEyLjAxNiAwIDAgMS0xNC44MzIgMi4yNTRsLTQyLjU4NC0yNC41OTVhMTkxLjU3NyAxOTEuNTc3IDAgMCAxLTYwLjc1OSAzNS4xM3Y0OS4xODJhMTIuMDEgMTIuMDEgMCAwIDEtOS4zNzcgMTEuNzE4Yy0zNC45NTYgNy44NS03Mi40OTkgOC4yNTYtMTA5LjIxOS4wMDctNS40OS0xLjIzMy05LjQwMy02LjA5Ni05LjQwMy0xMS43MjN2LTQ5LjE4NGExOTEuNTU1IDE5MS41NTUgMCAwIDEtNjAuNzU5LTM1LjEzbC00Mi41ODQgMjQuNTk1YTEyLjAxNiAxMi4wMTYgMCAwIDEtMTQuODMyLTIuMjU0Yy0yNC43MTgtMjYuNzQ0LTQzLjYxOS01OC45NDQtNTQuNjg5LTk0LjU4Ni0xLjY2Ny01LjM2Ni41OTItMTEuMTc1IDUuNDU5LTEzLjk4NUw2Ny4yMTIgMjkxLjFhMTkzLjQ4IDE5My40OCAwIDAgMSAwLTcwLjE5OWwtNDIuNjE2LTI0LjU5OWMtNC44NjctMi44MDktNy4xMjYtOC42MTgtNS40NTktMTMuOTg1IDExLjA3LTM1LjY0MiAyOS45Ny02Ny44NDIgNTQuNjg5LTk0LjU4NmExMi4wMTYgMTIuMDE2IDAgMCAxIDE0LjgzMi0yLjI1NGw0Mi41ODQgMjQuNTk1YTE5MS41NzcgMTkxLjU3NyAwIDAgMSA2MC43NTktMzUuMTNWMjUuNzU5YTEyLjAxIDEyLjAxIDAgMCAxIDkuMzc3LTExLjcxOGMzNC45NTYtNy44NSA3Mi40OTktOC4yNTYgMTA5LjIxOS0uMDA3IDUuNDkgMS4yMzMgOS40MDMgNi4wOTYgOS40MDMgMTEuNzIzdjQ5LjE4NGExOTEuNTU1IDE5MS41NTUgMCAwIDEgNjAuNzU5IDM1LjEzbDQyLjU4NC0yNC41OTVhMTIuMDE2IDEyLjAxNiAwIDAgMSAxNC44MzIgMi4yNTRjMjQuNzE4IDI2Ljc0NCA0My42MTkgNTguOTQ0IDU0LjY4OSA5NC41ODYgMS42NjcgNS4zNjYtLjU5MiAxMS4xNzUtNS40NTkgMTMuOTg1TDQ0NC43ODggMjIwLjlhMTkzLjQ4NSAxOTMuNDg1IDAgMCAxIDAgNzAuMnpNMzM2IDI1NmMwLTQ0LjExMi0zNS44ODgtODAtODAtODBzLTgwIDM1Ljg4OC04MCA4MCAzNS44ODggODAgODAgODAgODAtMzUuODg4IDgwLTgweiIvPjwvc3ZnPg==); + background-repeat: no-repeat; + background-size: contain; + padding-left: 16px; + height: 0.8em; + display: inline-block; +} .icon-fork { background-image: url(icon_fork.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB3aWR0aD0iMTc5MiIgaGVpZ2h0PSIxNzkyIiB2aWV3Qm94PSIwIDAgMTc5MiAxNzkyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxyZWN0IHdpZHRoPSIxNzkyIiBoZWlnaHQ9IjE3OTIiIHN0eWxlPSJmaWxsOiNmZmYiIC8+PHBhdGggZD0iTTY3MiAxNDcycTAtNDAtMjgtNjh0LTY4LTI4LTY4IDI4LTI4IDY4IDI4IDY4IDY4IDI4IDY4LTI4IDI4LTY4em0wLTExNTJxMC00MC0yOC02OHQtNjgtMjgtNjggMjgtMjggNjggMjggNjggNjggMjggNjgtMjggMjgtNjh6bTY0MCAxMjhxMC00MC0yOC02OHQtNjgtMjgtNjggMjgtMjggNjggMjggNjggNjggMjggNjgtMjggMjgtNjh6bTk2IDBxMCA1Mi0yNiA5Ni41dC03MCA2OS41cS0yIDI4Ny0yMjYgNDE0LTY3IDM4LTIwMyA4MS0xMjggNDAtMTY5LjUgNzF0LTQxLjUgMTAwdjI2cTQ0IDI1IDcwIDY5LjV0MjYgOTYuNXEwIDgwLTU2IDEzNnQtMTM2IDU2LTEzNi01Ni01Ni0xMzZxMC01MiAyNi05Ni41dDcwLTY5LjV2LTgyMHEtNDQtMjUtNzAtNjkuNXQtMjYtOTYuNXEwLTgwIDU2LTEzNnQxMzYtNTYgMTM2IDU2IDU2IDEzNnEwIDUyLTI2IDk2LjV0LTcwIDY5LjV2NDk3cTU0LTI2IDE1NC01NyA1NS0xNyA4Ny41LTI5LjV0NzAuNS0zMSA1OS0zOS41IDQwLjUtNTEgMjgtNjkuNSA4LjUtOTEuNXEtNDQtMjUtNzAtNjkuNXQtMjYtOTYuNXEwLTgwIDU2LTEzNnQxMzYtNTYgMTM2IDU2IDU2IDEzNnoiLz48L3N2Zz4=); background-repeat: no-repeat; 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 0d75a2d0..d78124a8 100644 --- a/src/ReportGenerator.Core/Reporting/Builders/Rendering/resources/custom_adaptive.css +++ b/src/ReportGenerator.Core/Reporting/Builders/Rendering/resources/custom_adaptive.css @@ -28,6 +28,14 @@ background-color: #484747; } + .popup-container { + background-color: rgb(80, 80, 80, 0.6); + } + + .popup { + background-color: #333; + } + .card-group .card { background-color: #333; background: radial-gradient(circle, #444 0%, #333 100%); @@ -43,6 +51,11 @@ background-color: #2E2D2C; } + .table-responsive::-webkit-scrollbar-thumb { + background-color: #555453; + border: 5px solid #333; + } + .overview tr:hover { background-color: #2E2D2C; } @@ -95,7 +108,7 @@ background-color: #3c3c3c; } - input, select { + input, select, button { background-color: #333; color: #fff; border: 1px solid #A19F9D; @@ -211,6 +224,10 @@ background-image: url(icon_wrench_dark.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHdpZHRoPSIxNzkyIiBoZWlnaHQ9IjE3OTIiIHZpZXdCb3g9IjAgMCAxNzkyIDE3OTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbD0iI0JEQkRCRiIgZD0iTTQ0OCAxNDcycTAtMjYtMTktNDV0LTQ1LTE5LTQ1IDE5LTE5IDQ1IDE5IDQ1IDQ1IDE5IDQ1LTE5IDE5LTQ1em02NDQtNDIwbC02ODIgNjgycS0zNyAzNy05MCAzNy01MiAwLTkxLTM3bC0xMDYtMTA4cS0zOC0zNi0zOC05MCAwLTUzIDM4LTkxbDY4MS02ODFxMzkgOTggMTE0LjUgMTczLjV0MTczLjUgMTE0LjV6bTYzNC00MzVxMCAzOS0yMyAxMDYtNDcgMTM0LTE2NC41IDIxNy41dC0yNTguNSA4My41cS0xODUgMC0zMTYuNS0xMzEuNXQtMTMxLjUtMzE2LjUgMTMxLjUtMzE2LjUgMzE2LjUtMTMxLjVxNTggMCAxMjEuNSAxNi41dDEwNy41IDQ2LjVxMTYgMTEgMTYgMjh0LTE2IDI4bC0yOTMgMTY5djIyNGwxOTMgMTA3cTUtMyA3OS00OC41dDEzNS41LTgxIDcwLjUtMzUuNXExNSAwIDIzLjUgMTB0OC41IDI1eiIvPjwvc3ZnPg==); } + .icon-cog { + background-image: url(icon_cog_dark.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiB2aWV3Qm94PSIwIDAgNTEyIDUxMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBmaWxsPSIjQkRCREJGIiBkPSJNNDQ0Ljc4OCAyOTEuMWw0Mi42MTYgMjQuNTk5YzQuODY3IDIuODA5IDcuMTI2IDguNjE4IDUuNDU5IDEzLjk4NS0xMS4wNyAzNS42NDItMjkuOTcgNjcuODQyLTU0LjY4OSA5NC41ODZhMTIuMDE2IDEyLjAxNiAwIDAgMS0xNC44MzIgMi4yNTRsLTQyLjU4NC0yNC41OTVhMTkxLjU3NyAxOTEuNTc3IDAgMCAxLTYwLjc1OSAzNS4xM3Y0OS4xODJhMTIuMDEgMTIuMDEgMCAwIDEtOS4zNzcgMTEuNzE4Yy0zNC45NTYgNy44NS03Mi40OTkgOC4yNTYtMTA5LjIxOS4wMDctNS40OS0xLjIzMy05LjQwMy02LjA5Ni05LjQwMy0xMS43MjN2LTQ5LjE4NGExOTEuNTU1IDE5MS41NTUgMCAwIDEtNjAuNzU5LTM1LjEzbC00Mi41ODQgMjQuNTk1YTEyLjAxNiAxMi4wMTYgMCAwIDEtMTQuODMyLTIuMjU0Yy0yNC43MTgtMjYuNzQ0LTQzLjYxOS01OC45NDQtNTQuNjg5LTk0LjU4Ni0xLjY2Ny01LjM2Ni41OTItMTEuMTc1IDUuNDU5LTEzLjk4NUw2Ny4yMTIgMjkxLjFhMTkzLjQ4IDE5My40OCAwIDAgMSAwLTcwLjE5OWwtNDIuNjE2LTI0LjU5OWMtNC44NjctMi44MDktNy4xMjYtOC42MTgtNS40NTktMTMuOTg1IDExLjA3LTM1LjY0MiAyOS45Ny02Ny44NDIgNTQuNjg5LTk0LjU4NmExMi4wMTYgMTIuMDE2IDAgMCAxIDE0LjgzMi0yLjI1NGw0Mi41ODQgMjQuNTk1YTE5MS41NzcgMTkxLjU3NyAwIDAgMSA2MC43NTktMzUuMTNWMjUuNzU5YTEyLjAxIDEyLjAxIDAgMCAxIDkuMzc3LTExLjcxOGMzNC45NTYtNy44NSA3Mi40OTktOC4yNTYgMTA5LjIxOS0uMDA3IDUuNDkgMS4yMzMgOS40MDMgNi4wOTYgOS40MDMgMTEuNzIzdjQ5LjE4NGExOTEuNTU1IDE5MS41NTUgMCAwIDEgNjAuNzU5IDM1LjEzbDQyLjU4NC0yNC41OTVhMTIuMDE2IDEyLjAxNiAwIDAgMSAxNC44MzIgMi4yNTRjMjQuNzE4IDI2Ljc0NCA0My42MTkgNTguOTQ0IDU0LjY4OSA5NC41ODYgMS42NjcgNS4zNjYtLjU5MiAxMS4xNzUtNS40NTkgMTMuOTg1TDQ0NC43ODggMjIwLjlhMTkzLjQ4NSAxOTMuNDg1IDAgMCAxIDAgNzAuMnpNMzM2IDI1NmMwLTQ0LjExMi0zNS44ODgtODAtODAtODBzLTgwIDM1Ljg4OC04MCA4MCAzNS44ODggODAgODAgODAgODAtMzUuODg4IDgwLTgweiIvPjwvc3ZnPg==); + } + .icon-fork { background-image: url(icon_fork_dark.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHdpZHRoPSIxNzkyIiBoZWlnaHQ9IjE3OTIiIHZpZXdCb3g9IjAgMCAxNzkyIDE3OTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbD0iI0JGQkZDMCIgZD0iTTY3MiAxNDcycTAtNDAtMjgtNjh0LTY4LTI4LTY4IDI4LTI4IDY4IDI4IDY4IDY4IDI4IDY4LTI4IDI4LTY4em0wLTExNTJxMC00MC0yOC02OHQtNjgtMjgtNjggMjgtMjggNjggMjggNjggNjggMjggNjgtMjggMjgtNjh6bTY0MCAxMjhxMC00MC0yOC02OHQtNjgtMjgtNjggMjgtMjggNjggMjggNjggNjggMjggNjgtMjggMjgtNjh6bTk2IDBxMCA1Mi0yNiA5Ni41dC03MCA2OS41cS0yIDI4Ny0yMjYgNDE0LTY3IDM4LTIwMyA4MS0xMjggNDAtMTY5LjUgNzF0LTQxLjUgMTAwdjI2cTQ0IDI1IDcwIDY5LjV0MjYgOTYuNXEwIDgwLTU2IDEzNnQtMTM2IDU2LTEzNi01Ni01Ni0xMzZxMC01MiAyNi05Ni41dDcwLTY5LjV2LTgyMHEtNDQtMjUtNzAtNjkuNXQtMjYtOTYuNXEwLTgwIDU2LTEzNnQxMzYtNTYgMTM2IDU2IDU2IDEzNnEwIDUyLTI2IDk2LjV0LTcwIDY5LjV2NDk3cTU0LTI2IDE1NC01NyA1NS0xNyA4Ny41LTI5LjV0NzAuNS0zMSA1OS0zOS41IDQwLjUtNTEgMjgtNjkuNSA4LjUtOTEuNXEtNDQtMjUtNzAtNjkuNXQtMjYtOTYuNXEwLTgwIDU2LTEzNnQxMzYtNTYgMTM2IDU2IDU2IDEzNnoiLz48L3N2Zz4=); } 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 68b56501..e1318a7f 100644 --- a/src/ReportGenerator.Core/Reporting/Builders/Rendering/resources/custom_dark.css +++ b/src/ReportGenerator.Core/Reporting/Builders/Rendering/resources/custom_dark.css @@ -27,6 +27,14 @@ background-color: #484747; } + .popup-container { + background-color: rgb(80, 80, 80, 0.6); + } + + .popup { + background-color: #333; + } + .card-group .card { background-color: #333; background: radial-gradient(circle, #444 0%, #333 100%); @@ -42,6 +50,11 @@ background-color: #2E2D2C; } + .table-responsive::-webkit-scrollbar-thumb { + background-color: #555453; + border: 5px solid #333; + } + .overview tr:hover { background-color: #2E2D2C; } @@ -94,7 +107,7 @@ background-color: #3c3c3c; } - input, select { + input, select, button { background-color: #333; color: #fff; border: 1px solid #A19F9D; @@ -211,6 +224,10 @@ background-image: url(icon_wrench_dark.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHdpZHRoPSIxNzkyIiBoZWlnaHQ9IjE3OTIiIHZpZXdCb3g9IjAgMCAxNzkyIDE3OTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbD0iI0JEQkRCRiIgZD0iTTQ0OCAxNDcycTAtMjYtMTktNDV0LTQ1LTE5LTQ1IDE5LTE5IDQ1IDE5IDQ1IDQ1IDE5IDQ1LTE5IDE5LTQ1em02NDQtNDIwbC02ODIgNjgycS0zNyAzNy05MCAzNy01MiAwLTkxLTM3bC0xMDYtMTA4cS0zOC0zNi0zOC05MCAwLTUzIDM4LTkxbDY4MS02ODFxMzkgOTggMTE0LjUgMTczLjV0MTczLjUgMTE0LjV6bTYzNC00MzVxMCAzOS0yMyAxMDYtNDcgMTM0LTE2NC41IDIxNy41dC0yNTguNSA4My41cS0xODUgMC0zMTYuNS0xMzEuNXQtMTMxLjUtMzE2LjUgMTMxLjUtMzE2LjUgMzE2LjUtMTMxLjVxNTggMCAxMjEuNSAxNi41dDEwNy41IDQ2LjVxMTYgMTEgMTYgMjh0LTE2IDI4bC0yOTMgMTY5djIyNGwxOTMgMTA3cTUtMyA3OS00OC41dDEzNS41LTgxIDcwLjUtMzUuNXExNSAwIDIzLjUgMTB0OC41IDI1eiIvPjwvc3ZnPg==); } + .icon-cog { + background-image: url(icon_cog_dark.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiB2aWV3Qm94PSIwIDAgNTEyIDUxMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBmaWxsPSIjQkRCREJGIiBkPSJNNDQ0Ljc4OCAyOTEuMWw0Mi42MTYgMjQuNTk5YzQuODY3IDIuODA5IDcuMTI2IDguNjE4IDUuNDU5IDEzLjk4NS0xMS4wNyAzNS42NDItMjkuOTcgNjcuODQyLTU0LjY4OSA5NC41ODZhMTIuMDE2IDEyLjAxNiAwIDAgMS0xNC44MzIgMi4yNTRsLTQyLjU4NC0yNC41OTVhMTkxLjU3NyAxOTEuNTc3IDAgMCAxLTYwLjc1OSAzNS4xM3Y0OS4xODJhMTIuMDEgMTIuMDEgMCAwIDEtOS4zNzcgMTEuNzE4Yy0zNC45NTYgNy44NS03Mi40OTkgOC4yNTYtMTA5LjIxOS4wMDctNS40OS0xLjIzMy05LjQwMy02LjA5Ni05LjQwMy0xMS43MjN2LTQ5LjE4NGExOTEuNTU1IDE5MS41NTUgMCAwIDEtNjAuNzU5LTM1LjEzbC00Mi41ODQgMjQuNTk1YTEyLjAxNiAxMi4wMTYgMCAwIDEtMTQuODMyLTIuMjU0Yy0yNC43MTgtMjYuNzQ0LTQzLjYxOS01OC45NDQtNTQuNjg5LTk0LjU4Ni0xLjY2Ny01LjM2Ni41OTItMTEuMTc1IDUuNDU5LTEzLjk4NUw2Ny4yMTIgMjkxLjFhMTkzLjQ4IDE5My40OCAwIDAgMSAwLTcwLjE5OWwtNDIuNjE2LTI0LjU5OWMtNC44NjctMi44MDktNy4xMjYtOC42MTgtNS40NTktMTMuOTg1IDExLjA3LTM1LjY0MiAyOS45Ny02Ny44NDIgNTQuNjg5LTk0LjU4NmExMi4wMTYgMTIuMDE2IDAgMCAxIDE0LjgzMi0yLjI1NGw0Mi41ODQgMjQuNTk1YTE5MS41NzcgMTkxLjU3NyAwIDAgMSA2MC43NTktMzUuMTNWMjUuNzU5YTEyLjAxIDEyLjAxIDAgMCAxIDkuMzc3LTExLjcxOGMzNC45NTYtNy44NSA3Mi40OTktOC4yNTYgMTA5LjIxOS0uMDA3IDUuNDkgMS4yMzMgOS40MDMgNi4wOTYgOS40MDMgMTEuNzIzdjQ5LjE4NGExOTEuNTU1IDE5MS41NTUgMCAwIDEgNjAuNzU5IDM1LjEzbDQyLjU4NC0yNC41OTVhMTIuMDE2IDEyLjAxNiAwIDAgMSAxNC44MzIgMi4yNTRjMjQuNzE4IDI2Ljc0NCA0My42MTkgNTguOTQ0IDU0LjY4OSA5NC41ODYgMS42NjcgNS4zNjYtLjU5MiAxMS4xNzUtNS40NTkgMTMuOTg1TDQ0NC43ODggMjIwLjlhMTkzLjQ4NSAxOTMuNDg1IDAgMCAxIDAgNzAuMnpNMzM2IDI1NmMwLTQ0LjExMi0zNS44ODgtODAtODAtODBzLTgwIDM1Ljg4OC04MCA4MCAzNS44ODggODAgODAgODAgODAtMzUuODg4IDgwLTgweiIvPjwvc3ZnPg==); + } + .icon-fork { background-image: url(icon_fork_dark.svg), url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHdpZHRoPSIxNzkyIiBoZWlnaHQ9IjE3OTIiIHZpZXdCb3g9IjAgMCAxNzkyIDE3OTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbD0iI0JGQkZDMCIgZD0iTTY3MiAxNDcycTAtNDAtMjgtNjh0LTY4LTI4LTY4IDI4LTI4IDY4IDI4IDY4IDY4IDI4IDY4LTI4IDI4LTY4em0wLTExNTJxMC00MC0yOC02OHQtNjgtMjgtNjggMjgtMjggNjggMjggNjggNjggMjggNjgtMjggMjgtNjh6bTY0MCAxMjhxMC00MC0yOC02OHQtNjgtMjgtNjggMjgtMjggNjggMjggNjggNjggMjggNjgtMjggMjgtNjh6bTk2IDBxMCA1Mi0yNiA5Ni41dC03MCA2OS41cS0yIDI4Ny0yMjYgNDE0LTY3IDM4LTIwMyA4MS0xMjggNDAtMTY5LjUgNzF0LTQxLjUgMTAwdjI2cTQ0IDI1IDcwIDY5LjV0MjYgOTYuNXEwIDgwLTU2IDEzNnQtMTM2IDU2LTEzNi01Ni01Ni0xMzZxMC01MiAyNi05Ni41dDcwLTY5LjV2LTgyMHEtNDQtMjUtNzAtNjkuNXQtMjYtOTYuNXEwLTgwIDU2LTEzNnQxMzYtNTYgMTM2IDU2IDU2IDEzNnEwIDUyLTI2IDk2LjV0LTcwIDY5LjV2NDk3cTU0LTI2IDE1NC01NyA1NS0xNyA4Ny41LTI5LjV0NzAuNS0zMSA1OS0zOS41IDQwLjUtNTEgMjgtNjkuNSA4LjUtOTEuNXEtNDQtMjUtNzAtNjkuNXQtMjYtOTYuNXEwLTgwIDU2LTEzNnQxMzYtNTYgMTM2IDU2IDU2IDEzNnoiLz48L3N2Zz4=); } diff --git a/src/ReportGenerator.Core/Reporting/Builders/Rendering/resources/main.js b/src/ReportGenerator.Core/Reporting/Builders/Rendering/resources/main.js index 2e566dbe..2174171a 100644 --- a/src/ReportGenerator.Core/Reporting/Builders/Rendering/resources/main.js +++ b/src/ReportGenerator.Core/Reporting/Builders/Rendering/resources/main.js @@ -1 +1 @@ -"use strict";(self.webpackChunkcoverage_app=self.webpackChunkcoverage_app||[]).push([[179],{103:()=>{function ve(e){return"function"==typeof e}function Bo(e){const n=e(r=>{Error.call(r),r.stack=(new Error).stack});return n.prototype=Object.create(Error.prototype),n.prototype.constructor=n,n}const Ho=Bo(e=>function(n){e(this),this.message=n?`${n.length} errors occurred during unsubscription:\n${n.map((r,o)=>`${o+1}) ${r.toString()}`).join("\n ")}`:"",this.name="UnsubscriptionError",this.errors=n});function Lr(e,t){if(e){const n=e.indexOf(t);0<=n&&e.splice(n,1)}}class Nt{constructor(t){this.initialTeardown=t,this.closed=!1,this._parentage=null,this._teardowns=null}unsubscribe(){let t;if(!this.closed){this.closed=!0;const{_parentage:n}=this;if(n)if(this._parentage=null,Array.isArray(n))for(const i of n)i.remove(this);else n.remove(this);const{initialTeardown:r}=this;if(ve(r))try{r()}catch(i){t=i instanceof Ho?i.errors:[i]}const{_teardowns:o}=this;if(o){this._teardowns=null;for(const i of o)try{Lu(i)}catch(s){t=t??[],s instanceof Ho?t=[...t,...s.errors]:t.push(s)}}if(t)throw new Ho(t)}}add(t){var n;if(t&&t!==this)if(this.closed)Lu(t);else{if(t instanceof Nt){if(t.closed||t._hasParent(this))return;t._addParent(this)}(this._teardowns=null!==(n=this._teardowns)&&void 0!==n?n:[]).push(t)}}_hasParent(t){const{_parentage:n}=this;return n===t||Array.isArray(n)&&n.includes(t)}_addParent(t){const{_parentage:n}=this;this._parentage=Array.isArray(n)?(n.push(t),n):n?[n,t]:t}_removeParent(t){const{_parentage:n}=this;n===t?this._parentage=null:Array.isArray(n)&&Lr(n,t)}remove(t){const{_teardowns:n}=this;n&&Lr(n,t),t instanceof Nt&&t._removeParent(this)}}Nt.EMPTY=(()=>{const e=new Nt;return e.closed=!0,e})();const Pu=Nt.EMPTY;function ku(e){return e instanceof Nt||e&&"closed"in e&&ve(e.remove)&&ve(e.add)&&ve(e.unsubscribe)}function Lu(e){ve(e)?e():e.unsubscribe()}const bn={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},jo={setTimeout(...e){const{delegate:t}=jo;return(t?.setTimeout||setTimeout)(...e)},clearTimeout(e){const{delegate:t}=jo;return(t?.clearTimeout||clearTimeout)(e)},delegate:void 0};function Vu(e){jo.setTimeout(()=>{const{onUnhandledError:t}=bn;if(!t)throw e;t(e)})}function $o(){}const Hv=Ps("C",void 0,void 0);function Ps(e,t,n){return{kind:e,value:t,error:n}}let En=null;function Uo(e){if(bn.useDeprecatedSynchronousErrorHandling){const t=!En;if(t&&(En={errorThrown:!1,error:null}),e(),t){const{errorThrown:n,error:r}=En;if(En=null,n)throw r}}else e()}class ks extends Nt{constructor(t){super(),this.isStopped=!1,t?(this.destination=t,ku(t)&&t.add(this)):this.destination=zv}static create(t,n,r){return new Ls(t,n,r)}next(t){this.isStopped?Bs(function $v(e){return Ps("N",e,void 0)}(t),this):this._next(t)}error(t){this.isStopped?Bs(function jv(e){return Ps("E",void 0,e)}(t),this):(this.isStopped=!0,this._error(t))}complete(){this.isStopped?Bs(Hv,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()}}}class Ls extends ks{constructor(t,n,r){let o;if(super(),ve(t))o=t;else if(t){let i;({next:o,error:n,complete:r}=t),this&&bn.useDeprecatedNextContext?(i=Object.create(t),i.unsubscribe=()=>this.unsubscribe()):i=t,o=o?.bind(i),n=n?.bind(i),r=r?.bind(i)}this.destination={next:o?Vs(o):$o,error:Vs(n??Bu),complete:r?Vs(r):$o}}}function Vs(e,t){return(...n)=>{try{e(...n)}catch(r){bn.useDeprecatedSynchronousErrorHandling?function Uv(e){bn.useDeprecatedSynchronousErrorHandling&&En&&(En.errorThrown=!0,En.error=e)}(r):Vu(r)}}}function Bu(e){throw e}function Bs(e,t){const{onStoppedNotification:n}=bn;n&&jo.setTimeout(()=>n(e,t))}const zv={closed:!0,next:$o,error:Bu,complete:$o},Hs="function"==typeof Symbol&&Symbol.observable||"@@observable";function Hu(e){return e}let ze=(()=>{class e{constructor(n){n&&(this._subscribe=n)}lift(n){const r=new e;return r.source=this,r.operator=n,r}subscribe(n,r,o){const i=function Wv(e){return e&&e instanceof ks||function Gv(e){return e&&ve(e.next)&&ve(e.error)&&ve(e.complete)}(e)&&ku(e)}(n)?n:new Ls(n,r,o);return Uo(()=>{const{operator:s,source:a}=this;i.add(s?s.call(i,a):a?this._subscribe(i):this._trySubscribe(i))}),i}_trySubscribe(n){try{return this._subscribe(n)}catch(r){n.error(r)}}forEach(n,r){return new(r=$u(r))((o,i)=>{let s;s=this.subscribe(a=>{try{n(a)}catch(l){i(l),s?.unsubscribe()}},i,o)})}_subscribe(n){var r;return null===(r=this.source)||void 0===r?void 0:r.subscribe(n)}[Hs](){return this}pipe(...n){return function ju(e){return 0===e.length?Hu:1===e.length?e[0]:function(n){return e.reduce((r,o)=>o(r),n)}}(n)(this)}toPromise(n){return new(n=$u(n))((r,o)=>{let i;this.subscribe(s=>i=s,s=>o(s),()=>r(i))})}}return e.create=t=>new e(t),e})();function $u(e){var t;return null!==(t=e??bn.Promise)&&void 0!==t?t:Promise}const qv=Bo(e=>function(){e(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"});let js=(()=>{class e extends ze{constructor(){super(),this.closed=!1,this.observers=[],this.isStopped=!1,this.hasError=!1,this.thrownError=null}lift(n){const r=new Uu(this,this);return r.operator=n,r}_throwIfClosed(){if(this.closed)throw new qv}next(n){Uo(()=>{if(this._throwIfClosed(),!this.isStopped){const r=this.observers.slice();for(const o of r)o.next(n)}})}error(n){Uo(()=>{if(this._throwIfClosed(),!this.isStopped){this.hasError=this.isStopped=!0,this.thrownError=n;const{observers:r}=this;for(;r.length;)r.shift().error(n)}})}complete(){Uo(()=>{if(this._throwIfClosed(),!this.isStopped){this.isStopped=!0;const{observers:n}=this;for(;n.length;)n.shift().complete()}})}unsubscribe(){this.isStopped=this.closed=!0,this.observers=null}get observed(){var n;return(null===(n=this.observers)||void 0===n?void 0:n.length)>0}_trySubscribe(n){return this._throwIfClosed(),super._trySubscribe(n)}_subscribe(n){return this._throwIfClosed(),this._checkFinalizedStatuses(n),this._innerSubscribe(n)}_innerSubscribe(n){const{hasError:r,isStopped:o,observers:i}=this;return r||o?Pu:(i.push(n),new Nt(()=>Lr(i,n)))}_checkFinalizedStatuses(n){const{hasError:r,thrownError:o,isStopped:i}=this;r?n.error(o):i&&n.complete()}asObservable(){const n=new ze;return n.source=this,n}}return e.create=(t,n)=>new Uu(t,n),e})();class Uu extends js{constructor(t,n){super(),this.destination=t,this.source=n}next(t){var n,r;null===(r=null===(n=this.destination)||void 0===n?void 0:n.next)||void 0===r||r.call(n,t)}error(t){var n,r;null===(r=null===(n=this.destination)||void 0===n?void 0:n.error)||void 0===r||r.call(n,t)}complete(){var t,n;null===(n=null===(t=this.destination)||void 0===t?void 0:t.complete)||void 0===n||n.call(t)}_subscribe(t){var n,r;return null!==(r=null===(n=this.source)||void 0===n?void 0:n.subscribe(t))&&void 0!==r?r:Pu}}function Wn(e){return t=>{if(function Zv(e){return ve(e?.lift)}(t))return t.lift(function(n){try{return e(n,this)}catch(r){this.error(r)}});throw new TypeError("Unable to lift unknown Observable type")}}class qn extends ks{constructor(t,n,r,o,i){super(t),this.onFinalize=i,this._next=n?function(s){try{n(s)}catch(a){t.error(a)}}:super._next,this._error=o?function(s){try{o(s)}catch(a){t.error(a)}finally{this.unsubscribe()}}:super._error,this._complete=r?function(){try{r()}catch(s){t.error(s)}finally{this.unsubscribe()}}:super._complete}unsubscribe(){var t;const{closed:n}=this;super.unsubscribe(),!n&&(null===(t=this.onFinalize)||void 0===t||t.call(this))}}function $s(e,t){return Wn((n,r)=>{let o=0;n.subscribe(new qn(r,i=>{r.next(e.call(t,i,o++))}))})}function In(e){return this instanceof In?(this.v=e,this):new In(e)}function Kv(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var o,r=n.apply(e,t||[]),i=[];return o={},s("next"),s("throw"),s("return"),o[Symbol.asyncIterator]=function(){return this},o;function s(f){r[f]&&(o[f]=function(p){return new Promise(function(m,y){i.push([f,p,m,y])>1||a(f,p)})})}function a(f,p){try{!function l(f){f.value instanceof In?Promise.resolve(f.value.v).then(c,u):d(i[0][2],f)}(r[f](p))}catch(m){d(i[0][3],m)}}function c(f){a("next",f)}function u(f){a("throw",f)}function d(f,p){f(p),i.shift(),i.length&&a(i[0][0],i[0][1])}}function Jv(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var n,t=e[Symbol.asyncIterator];return t?t.call(e):(e=function Wu(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}(e),n={},r("next"),r("throw"),r("return"),n[Symbol.asyncIterator]=function(){return this},n);function r(i){n[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)})}}}const qu=e=>e&&"number"==typeof e.length&&"function"!=typeof e;function Zu(e){return ve(e?.then)}function Qu(e){return ve(e[Hs])}function Yu(e){return Symbol.asyncIterator&&ve(e?.[Symbol.asyncIterator])}function Ku(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 Ju=function ey(){return"function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator"}();function Xu(e){return ve(e?.[Ju])}function ed(e){return Kv(this,arguments,function*(){const n=e.getReader();try{for(;;){const{value:r,done:o}=yield In(n.read());if(o)return yield In(void 0);yield yield In(r)}}finally{n.releaseLock()}})}function td(e){return ve(e?.getReader)}function Mn(e){if(e instanceof ze)return e;if(null!=e){if(Qu(e))return function ty(e){return new ze(t=>{const n=e[Hs]();if(ve(n.subscribe))return n.subscribe(t);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}(e);if(qu(e))return function ny(e){return new ze(t=>{for(let n=0;n{e.then(n=>{t.closed||(t.next(n),t.complete())},n=>t.error(n)).then(null,Vu)})}(e);if(Yu(e))return nd(e);if(Xu(e))return function oy(e){return new ze(t=>{for(const n of e)if(t.next(n),t.closed)return;t.complete()})}(e);if(td(e))return function iy(e){return nd(ed(e))}(e)}throw Ku(e)}function nd(e){return new ze(t=>{(function sy(e,t){var n,r,o,i;return function Qv(e,t,n,r){return new(n||(n=Promise))(function(i,s){function a(u){try{c(r.next(u))}catch(d){s(d)}}function l(u){try{c(r.throw(u))}catch(d){s(d)}}function c(u){u.done?i(u.value):function o(i){return i instanceof n?i:new n(function(s){s(i)})}(u.value).then(a,l)}c((r=r.apply(e,t||[])).next())})}(this,void 0,void 0,function*(){try{for(n=Jv(e);!(r=yield n.next()).done;)if(t.next(r.value),t.closed)return}catch(s){o={error:s}}finally{try{r&&!r.done&&(i=n.return)&&(yield i.call(n))}finally{if(o)throw o.error}}t.complete()})})(e,t).catch(n=>t.error(n))})}function sn(e,t,n,r=0,o=!1){const i=t.schedule(function(){n(),o?e.add(this.schedule(null,r)):this.unsubscribe()},r);if(e.add(i),!o)return i}function rd(e,t,n=1/0){return ve(t)?rd((r,o)=>$s((i,s)=>t(r,i,o,s))(Mn(e(r,o))),n):("number"==typeof t&&(n=t),Wn((r,o)=>function ay(e,t,n,r,o,i,s,a){const l=[];let c=0,u=0,d=!1;const f=()=>{d&&!l.length&&!c&&t.complete()},p=y=>c{i&&t.next(y),c++;let E=!1;Mn(n(y,u++)).subscribe(new qn(t,M=>{o?.(M),i?p(M):t.next(M)},()=>{E=!0},void 0,()=>{if(E)try{for(c--;l.length&&cm(M)):m(M)}f()}catch(M){t.error(M)}}))};return e.subscribe(new qn(t,p,()=>{d=!0,f()})),()=>{a?.()}}(r,o,e,n)))}const zs=new ze(e=>e.complete());function Gs(e){return e[e.length-1]}function od(e,t=0){return Wn((n,r)=>{n.subscribe(new qn(r,o=>sn(r,e,()=>r.next(o),t),()=>sn(r,e,()=>r.complete(),t),o=>sn(r,e,()=>r.error(o),t)))})}function id(e,t=0){return Wn((n,r)=>{r.add(e.schedule(()=>n.subscribe(r),t))})}function sd(e,t){if(!e)throw new Error("Iterable cannot be null");return new ze(n=>{sn(n,t,()=>{const r=e[Symbol.asyncIterator]();sn(n,t,()=>{r.next().then(o=>{o.done?n.complete():n.next(o.value)})},0,!0)})})}function Ws(e,t){return t?function yy(e,t){if(null!=e){if(Qu(e))return function py(e,t){return Mn(e).pipe(id(t),od(t))}(e,t);if(qu(e))return function my(e,t){return new ze(n=>{let r=0;return t.schedule(function(){r===e.length?n.complete():(n.next(e[r++]),n.closed||this.schedule())})})}(e,t);if(Zu(e))return function gy(e,t){return Mn(e).pipe(id(t),od(t))}(e,t);if(Yu(e))return sd(e,t);if(Xu(e))return function _y(e,t){return new ze(n=>{let r;return sn(n,t,()=>{r=e[Ju](),sn(n,t,()=>{let o,i;try{({value:o,done:i}=r.next())}catch(s){return void n.error(s)}i?n.complete():n.next(o)},0,!0)}),()=>ve(r?.return)&&r.return()})}(e,t);if(td(e))return function vy(e,t){return sd(ed(e),t)}(e,t)}throw Ku(e)}(e,t):Mn(e)}function Dy(...e){const t=function fy(e){return function uy(e){return e&&ve(e.schedule)}(Gs(e))?e.pop():void 0}(e),n=function hy(e,t){return"number"==typeof Gs(e)?e.pop():t}(e,1/0),r=e;return r.length?1===r.length?Mn(r[0]):function ly(e=1/0){return rd(Hu,e)}(n)(Ws(r,t)):zs}function qs(e,t,...n){return!0===t?(e(),null):!1===t?null:t(...n).pipe(function Cy(e){return e<=0?()=>zs:Wn((t,n)=>{let r=0;t.subscribe(new qn(n,o=>{++r<=e&&(n.next(o),e<=r&&n.complete())}))})}(1)).subscribe(()=>e())}function le(e){for(let t in e)if(e[t]===le)return t;throw Error("Could not find renamed property on target object.")}function Zs(e,t){for(const n in t)t.hasOwnProperty(n)&&!e.hasOwnProperty(n)&&(e[n]=t[n])}function ce(e){if("string"==typeof e)return e;if(Array.isArray(e))return"["+e.map(ce).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 n=t.indexOf("\n");return-1===n?t:t.substring(0,n)}function Qs(e,t){return null==e||""===e?null===t?"":t:null==t||""===t?e:e+" "+t}const by=le({__forward_ref__:le});function ue(e){return e.__forward_ref__=ue,e.toString=function(){return ce(this())},e}function k(e){return Ys(e)?e():e}function Ys(e){return"function"==typeof e&&e.hasOwnProperty(by)&&e.__forward_ref__===ue}function Ks(e){return e&&!!e.\u0275providers}const ad="https://g.co/ng/security#xss";class A extends Error{constructor(t,n){super(function zo(e,t){return`NG0${Math.abs(e)}${t?": "+t.trim():""}`}(t,n)),this.code=t}}function j(e){return"string"==typeof e?e:null==e?"":String(e)}function Go(e,t){throw new A(-201,!1)}function rt(e,t){null==e&&function ne(e,t,n,r){throw new Error(`ASSERTION ERROR: ${e}`+(null==r?"":` [Expected=> ${n} ${r} ${t} <=Actual]`))}(t,e,null,"!=")}function de(e){return{token:e.token,providedIn:e.providedIn||null,factory:e.factory,value:void 0}}function zt(e){return{providers:e.providers||[],imports:e.imports||[]}}function Wo(e){return ld(e,qo)||ld(e,ud)}function ld(e,t){return e.hasOwnProperty(t)?e[t]:null}function cd(e){return e&&(e.hasOwnProperty(Js)||e.hasOwnProperty(Ny))?e[Js]:null}const qo=le({\u0275prov:le}),Js=le({\u0275inj:le}),ud=le({ngInjectableDef:le}),Ny=le({ngInjectorDef:le});var V=(()=>((V=V||{})[V.Default=0]="Default",V[V.Host=1]="Host",V[V.Self=2]="Self",V[V.SkipSelf=4]="SkipSelf",V[V.Optional=8]="Optional",V))();let Xs;function ft(e){const t=Xs;return Xs=e,t}function dd(e,t,n){const r=Wo(e);return r&&"root"==r.providedIn?void 0===r.value?r.value=r.factory():r.value:n&V.Optional?null:void 0!==t?t:void Go(ce(e))}const fe=(()=>typeof globalThis<"u"&&globalThis||typeof global<"u"&&global||typeof window<"u"&&window||typeof self<"u"&&typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&self)(),Vr={},ea="__NG_DI_FLAG__",Zo="ngTempTokenPath",Ry=/\n/gm,fd="__source";let Br;function Zn(e){const t=Br;return Br=e,t}function ky(e,t=V.Default){if(void 0===Br)throw new A(-203,!1);return null===Br?dd(e,void 0,t):Br.get(e,t&V.Optional?null:void 0,t)}function re(e,t=V.Default){return(function Fy(){return Xs}()||ky)(k(e),t)}function Qo(e){return typeof e>"u"||"number"==typeof e?e:0|(e.optional&&8)|(e.host&&1)|(e.self&&2)|(e.skipSelf&&4)}function ta(e){const t=[];for(let n=0;n((yt=yt||{})[yt.OnPush=0]="OnPush",yt[yt.Default=1]="Default",yt))(),Ft=(()=>{return(e=Ft||(Ft={}))[e.Emulated=0]="Emulated",e[e.None=2]="None",e[e.ShadowDom=3]="ShadowDom",Ft;var e})();const Gt={},X=[],Yo=le({\u0275cmp:le}),na=le({\u0275dir:le}),ra=le({\u0275pipe:le}),pd=le({\u0275mod:le}),Wt=le({\u0275fac:le}),jr=le({__NG_ELEMENT_ID__:le});let jy=0;function ln(e){return an(()=>{const n=!0===e.standalone,r={},o={type:e.type,providersResolver:null,decls:e.decls,vars:e.vars,factory:null,template:e.template||null,consts:e.consts||null,ngContentSelectors:e.ngContentSelectors,hostBindings:e.hostBindings||null,hostVars:e.hostVars||0,hostAttrs:e.hostAttrs||null,contentQueries:e.contentQueries||null,declaredInputs:r,inputs:null,outputs:null,exportAs:e.exportAs||null,onPush:e.changeDetection===yt.OnPush,directiveDefs:null,pipeDefs:null,standalone:n,dependencies:n&&e.dependencies||null,getStandaloneInjector:null,selectors:e.selectors||X,viewQuery:e.viewQuery||null,features:e.features||null,data:e.data||{},encapsulation:e.encapsulation||Ft.Emulated,id:"c"+jy++,styles:e.styles||X,_:null,setInput:null,schemas:e.schemas||null,tView:null,findHostDirectiveDefs:null,hostDirectives:null},i=e.dependencies,s=e.features;return o.inputs=_d(e.inputs,r),o.outputs=_d(e.outputs),s&&s.forEach(a=>a(o)),o.directiveDefs=i?()=>("function"==typeof i?i():i).map(gd).filter(md):null,o.pipeDefs=i?()=>("function"==typeof i?i():i).map(Ge).filter(md):null,o})}function gd(e){return oe(e)||Pe(e)}function md(e){return null!==e}function cn(e){return an(()=>({type:e.type,bootstrap:e.bootstrap||X,declarations:e.declarations||X,imports:e.imports||X,exports:e.exports||X,transitiveCompileScopes:null,schemas:e.schemas||null,id:e.id||null}))}function _d(e,t){if(null==e)return Gt;const n={};for(const r in e)if(e.hasOwnProperty(r)){let o=e[r],i=o;Array.isArray(o)&&(i=o[1],o=o[0]),n[o]=r,t&&(t[o]=i)}return n}const $=ln;function Je(e){return{type:e.type,name:e.name,factory:null,pure:!1!==e.pure,standalone:!0===e.standalone,onDestroy:e.type.prototype.ngOnDestroy||null}}function oe(e){return e[Yo]||null}function Pe(e){return e[na]||null}function Ge(e){return e[ra]||null}const G=11;function Xe(e){return Array.isArray(e)&&"object"==typeof e[1]}function Ct(e){return Array.isArray(e)&&!0===e[1]}function sa(e){return 0!=(4&e.flags)}function ei(e){return e.componentOffset>-1}function ti(e){return 1==(1&e.flags)}function wt(e){return null!==e.template}function qy(e){return 0!=(256&e[2])}function Nn(e,t){return e.hasOwnProperty(Wt)?e[Wt]:null}class Yy{constructor(t,n,r){this.previousValue=t,this.currentValue=n,this.firstChange=r}isFirstChange(){return this.firstChange}}function qt(){return Dd}function Dd(e){return e.type.prototype.ngOnChanges&&(e.setInput=Jy),Ky}function Ky(){const e=wd(this),t=e?.current;if(t){const n=e.previous;if(n===Gt)e.previous=t;else for(let r in t)n[r]=t[r];e.current=null,this.ngOnChanges(t)}}function Jy(e,t,n,r){const o=this.declaredInputs[n],i=wd(e)||function Xy(e,t){return e[Cd]=t}(e,{previous:Gt,current:null}),s=i.current||(i.current={}),a=i.previous,l=a[o];s[o]=new Yy(l&&l.currentValue,t,a===Gt),e[r]=t}qt.ngInherit=!0;const Cd="__ngSimpleChanges__";function wd(e){return e[Cd]||null}function Se(e){for(;Array.isArray(e);)e=e[0];return e}function ni(e,t){return Se(t[e])}function st(e,t){return Se(t[e.index])}function da(e,t){return e.data[t]}function at(e,t){const n=t[e];return Xe(n)?n:n[0]}function ri(e){return 64==(64&e[2])}function un(e,t){return null==t?null:e[t]}function bd(e){e[18]=0}function fa(e,t){e[5]+=t;let n=e,r=e[3];for(;null!==r&&(1===t&&1===n[5]||-1===t&&0===n[5]);)r[5]+=t,n=r,r=r[3]}const H={lFrame:Od(null),bindingsEnabled:!0};function Id(){return H.bindingsEnabled}function w(){return H.lFrame.lView}function J(){return H.lFrame.tView}function ie(e){return H.lFrame.contextLView=e,e[8]}function se(e){return H.lFrame.contextLView=null,e}function Oe(){let e=Md();for(;null!==e&&64===e.type;)e=e.parent;return e}function Md(){return H.lFrame.currentTNode}function Ot(e,t){const n=H.lFrame;n.currentTNode=e,n.isParent=t}function ha(){return H.lFrame.isParent}function pa(){H.lFrame.isParent=!1}function We(){const e=H.lFrame;let t=e.bindingRootIndex;return-1===t&&(t=e.bindingRootIndex=e.tView.bindingStartIndex),t}function Xn(){return H.lFrame.bindingIndex++}function Qt(e){const t=H.lFrame,n=t.bindingIndex;return t.bindingIndex=t.bindingIndex+e,n}function pD(e,t){const n=H.lFrame;n.bindingIndex=n.bindingRootIndex=e,ga(t)}function ga(e){H.lFrame.currentDirectiveIndex=e}function _a(e){H.lFrame.currentQueryIndex=e}function mD(e){const t=e[1];return 2===t.type?t.declTNode:1===t.type?e[6]:null}function Nd(e,t,n){if(n&V.SkipSelf){let o=t,i=e;for(;!(o=o.parent,null!==o||n&V.Host||(o=mD(i),null===o||(i=i[15],10&o.type))););if(null===o)return!1;t=o,e=i}const r=H.lFrame=Fd();return r.currentTNode=t,r.lView=e,!0}function va(e){const t=Fd(),n=e[1];H.lFrame=t,t.currentTNode=n.firstChild,t.lView=e,t.tView=n,t.contextLView=e,t.bindingIndex=n.bindingStartIndex,t.inI18n=!1}function Fd(){const e=H.lFrame,t=null===e?null:e.child;return null===t?Od(e):t}function Od(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 Rd(){const e=H.lFrame;return H.lFrame=e.parent,e.currentTNode=null,e.lView=null,e}const Pd=Rd;function ya(){const e=Rd();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 qe(){return H.lFrame.selectedIndex}function Fn(e){H.lFrame.selectedIndex=e}function ye(){const e=H.lFrame;return da(e.tView,e.selectedIndex)}function oi(e,t){for(let n=t.directiveStart,r=t.directiveEnd;n=r)break}else t[l]<0&&(e[18]+=65536),(a>11>16&&(3&e[2])===t){e[2]+=2048;try{i.call(a)}finally{}}}else try{i.call(a)}finally{}}class Zr{constructor(t,n,r){this.factory=t,this.resolving=!1,this.canSeeViewProviders=n,this.injectImpl=r}}function wa(e,t,n){let r=0;for(;rt){s=i-1;break}}}for(;i>16}(e),r=t;for(;n>0;)r=r[15],n--;return r}let ba=!0;function ai(e){const t=ba;return ba=e,t}let xD=0;const Rt={};function li(e,t){const n=Ia(e,t);if(-1!==n)return n;const r=t[1];r.firstCreatePass&&(e.injectorIndex=t.length,Ea(r.data,e),Ea(t,null),Ea(r.blueprint,null));const o=ci(e,t),i=e.injectorIndex;if(jd(o)){const s=er(o),a=tr(o,t),l=a[1].data;for(let c=0;c<8;c++)t[i+c]=a[s+c]|l[s+c]}return t[i+8]=o,i}function Ea(e,t){e.push(0,0,0,0,0,0,0,0,t)}function Ia(e,t){return-1===e.injectorIndex||e.parent&&e.parent.injectorIndex===e.injectorIndex||null===t[e.injectorIndex+8]?-1:e.injectorIndex}function ci(e,t){if(e.parent&&-1!==e.parent.injectorIndex)return e.parent.injectorIndex;let n=0,r=null,o=t;for(;null!==o;){if(r=Yd(o),null===r)return-1;if(n++,o=o[15],-1!==r.injectorIndex)return r.injectorIndex|n<<16}return-1}function Ma(e,t,n){!function ND(e,t,n){let r;"string"==typeof n?r=n.charCodeAt(0)||0:n.hasOwnProperty(jr)&&(r=n[jr]),null==r&&(r=n[jr]=xD++);const o=255&r;t.data[e+(o>>5)]|=1<=0?255&t:PD:t}(n);if("function"==typeof i){if(!Nd(t,e,r))return r&V.Host?zd(o,0,r):Gd(t,n,r,o);try{const s=i(r);if(null!=s||r&V.Optional)return s;Go()}finally{Pd()}}else if("number"==typeof i){let s=null,a=Ia(e,t),l=-1,c=r&V.Host?t[16][6]:null;for((-1===a||r&V.SkipSelf)&&(l=-1===a?ci(e,t):t[a+8],-1!==l&&Qd(r,!1)?(s=t[1],a=er(l),t=tr(l,t)):a=-1);-1!==a;){const u=t[1];if(Zd(i,a,u.data)){const d=OD(a,t,n,s,r,c);if(d!==Rt)return d}l=t[a+8],-1!==l&&Qd(r,t[1].data[a+8]===c)&&Zd(i,a,t)?(s=u,a=er(l),t=tr(l,t)):a=-1}}return o}function OD(e,t,n,r,o,i){const s=t[1],a=s.data[e+8],u=function ui(e,t,n,r,o){const i=e.providerIndexes,s=t.data,a=1048575&i,l=e.directiveStart,u=i>>20,f=o?a+u:e.directiveEnd;for(let p=r?a:a+u;p=l&&m.type===n)return p}if(o){const p=s[l];if(p&&wt(p)&&p.type===n)return l}return null}(a,s,n,null==r?ei(a)&&ba:r!=s&&0!=(3&a.type),o&V.Host&&i===a);return null!==u?nr(t,s,u,a):Rt}function nr(e,t,n,r){let o=e[n];const i=t.data;if(function ID(e){return e instanceof Zr}(o)){const s=o;s.resolving&&function Ey(e,t){const n=t?`. Dependency path: ${t.join(" > ")} > ${e}`:"";throw new A(-200,`Circular dependency in DI detected for ${e}${n}`)}(function te(e){return"function"==typeof e?e.name||e.toString():"object"==typeof e&&null!=e&&"function"==typeof e.type?e.type.name||e.type.toString():j(e)}(i[n]));const a=ai(s.canSeeViewProviders);s.resolving=!0;const l=s.injectImpl?ft(s.injectImpl):null;Nd(e,r,V.Default);try{o=e[n]=s.factory(void 0,i,e,r),t.firstCreatePass&&n>=r.directiveStart&&function bD(e,t,n){const{ngOnChanges:r,ngOnInit:o,ngDoCheck:i}=t.type.prototype;if(r){const s=Dd(t);(n.preOrderHooks||(n.preOrderHooks=[])).push(e,s),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,s)}o&&(n.preOrderHooks||(n.preOrderHooks=[])).push(0-e,o),i&&((n.preOrderHooks||(n.preOrderHooks=[])).push(e,i),(n.preOrderCheckHooks||(n.preOrderCheckHooks=[])).push(e,i))}(n,i[n],t)}finally{null!==l&&ft(l),ai(a),s.resolving=!1,Pd()}}return o}function Zd(e,t,n){return!!(n[t+(e>>5)]&1<{const t=e.prototype.constructor,n=t[Wt]||Sa(t),r=Object.prototype;let o=Object.getPrototypeOf(e.prototype).constructor;for(;o&&o!==r;){const i=o[Wt]||Sa(o);if(i&&i!==n)return i;o=Object.getPrototypeOf(o)}return i=>new i})}function Sa(e){return Ys(e)?()=>{const t=Sa(k(e));return t&&t()}:Nn(e)}function Yd(e){const t=e[1],n=t.type;return 2===n?t.declTNode:1===n?e[6]:null}const ir="__parameters__";function ar(e,t,n){return an(()=>{const r=function Ta(e){return function(...n){if(e){const r=e(...n);for(const o in r)this[o]=r[o]}}}(t);function o(...i){if(this instanceof o)return r.apply(this,i),this;const s=new o(...i);return a.annotation=s,a;function a(l,c,u){const d=l.hasOwnProperty(ir)?l[ir]:Object.defineProperty(l,ir,{value:[]})[ir];for(;d.length<=u;)d.push(null);return(d[u]=d[u]||[]).push(s),l}}return n&&(o.prototype=Object.create(n.prototype)),o.prototype.ngMetadataName=e,o.annotationCls=o,o})}class B{constructor(t,n){this._desc=t,this.ngMetadataName="InjectionToken",this.\u0275prov=void 0,"number"==typeof n?this.__NG_ELEMENT_ID__=n:void 0!==n&&(this.\u0275prov=de({token:this,providedIn:n.providedIn||"root",factory:n.factory}))}get multi(){return this}toString(){return`InjectionToken ${this._desc}`}}function On(e,t){e.forEach(n=>Array.isArray(n)?On(n,t):t(n))}function Jd(e,t,n){t>=e.length?e.push(n):e.splice(t,0,n)}function di(e,t){return t>=e.length-1?e.pop():e.splice(t,1)[0]}function ct(e,t,n){let r=lr(e,t);return r>=0?e[1|r]=n:(r=~r,function HD(e,t,n,r){let o=e.length;if(o==t)e.push(n,r);else if(1===o)e.push(r,e[0]),e[0]=n;else{for(o--,e.push(e[o-1],e[o]);o>t;)e[o]=e[o-2],o--;e[t]=n,e[t+1]=r}}(e,r,t,n)),r}function Na(e,t){const n=lr(e,t);if(n>=0)return e[1|n]}function lr(e,t){return function tf(e,t,n){let r=0,o=e.length>>n;for(;o!==r;){const i=r+(o-r>>1),s=e[i<t?o=i:r=i+1}return~(o<((et=et||{})[et.Important=1]="Important",et[et.DashCase=2]="DashCase",et))();const La=new Map;let lC=0;const Ba="__ngContext__";function Be(e,t){Xe(t)?(e[Ba]=t[20],function uC(e){La.set(e[20],e)}(t)):e[Ba]=t}function ja(e,t){return undefined(e,t)}function ro(e){const t=e[3];return Ct(t)?t[3]:t}function $a(e){return bf(e[13])}function Ua(e){return bf(e[4])}function bf(e){for(;null!==e&&!Ct(e);)e=e[4];return e}function ur(e,t,n,r,o){if(null!=r){let i,s=!1;Ct(r)?i=r:Xe(r)&&(s=!0,r=r[0]);const a=Se(r);0===e&&null!==n?null==o?Tf(t,n,a):Rn(t,n,a,o||null,!0):1===e&&null!==n?Rn(t,n,a,o||null,!0):2===e?function Ya(e,t,n){const r=_i(e,t);r&&function NC(e,t,n,r){e.removeChild(t,n,r)}(e,r,t,n)}(t,a,s):3===e&&t.destroyNode(a),null!=i&&function RC(e,t,n,r,o){const i=n[7];i!==Se(n)&&ur(t,e,r,i,o);for(let a=10;a0&&(e[n-1][4]=r[4]);const i=di(e,10+t);!function bC(e,t){oo(e,t,t[G],2,null,null),t[0]=null,t[6]=null}(r[1],r);const s=i[19];null!==s&&s.detachView(i[1]),r[3]=null,r[4]=null,r[2]&=-65}return r}function Mf(e,t){if(!(128&t[2])){const n=t[G];n.destroyNode&&oo(e,t,n,3,null,null),function MC(e){let t=e[13];if(!t)return qa(e[1],e);for(;t;){let n=null;if(Xe(t))n=t[13];else{const r=t[10];r&&(n=r)}if(!n){for(;t&&!t[4]&&t!==e;)Xe(t)&&qa(t[1],t),t=t[3];null===t&&(t=e),Xe(t)&&qa(t[1],t),n=t&&t[4]}t=n}}(t)}}function qa(e,t){if(!(128&t[2])){t[2]&=-65,t[2]|=128,function xC(e,t){let n;if(null!=e&&null!=(n=e.destroyHooks))for(let r=0;r=0?r[o=s]():r[o=-s].unsubscribe(),i+=2}else{const s=r[o=n[i+1]];n[i].call(s)}if(null!==r){for(let i=o+1;i-1){const{encapsulation:i}=e.data[r.directiveStart+o];if(i===Ft.None||i===Ft.Emulated)return null}return st(r,n)}}(e,t.parent,n)}function Rn(e,t,n,r,o){e.insertBefore(t,n,r,o)}function Tf(e,t,n){e.appendChild(t,n)}function xf(e,t,n,r,o){null!==r?Rn(e,t,n,r,o):Tf(e,t,n)}function _i(e,t){return e.parentNode(t)}let Xa,Of=function Ff(e,t,n){return 40&e.type?st(e,n):null};function vi(e,t,n,r){const o=Sf(e,r,t),i=t[G],a=function Nf(e,t,n){return Of(e,t,n)}(r.parent||t[6],r,t);if(null!=o)if(Array.isArray(n))for(let l=0;l((Ee=Ee||{})[Ee.NONE=0]="NONE",Ee[Ee.HTML=1]="HTML",Ee[Ee.STYLE=2]="STYLE",Ee[Ee.SCRIPT=3]="SCRIPT",Ee[Ee.URL=4]="URL",Ee[Ee.RESOURCE_URL=5]="RESOURCE_URL",Ee))();function dr(e){const t=function ao(){const e=w();return e&&e[12]}();return t?t.sanitize(Ee.URL,e)||"":function io(e,t){const n=function WC(e){return e instanceof Uf&&e.getTypeName()||null}(e);if(null!=n&&n!==t){if("ResourceURL"===n&&"URL"===t)return!0;throw new Error(`Required a safe ${t}, got a ${n} (see ${ad})`)}return n===t}(e,"URL")?fn(e):function tl(e){return(e=String(e)).match(YC)?e:"unsafe:"+e}(j(e))}const Kf=new B("ENVIRONMENT_INITIALIZER"),Jf=new B("INJECTOR",-1),Xf=new B("INJECTOR_DEF_TYPES");class eh{get(t,n=Vr){if(n===Vr){const r=new Error(`NullInjectorError: No provider for ${ce(t)}!`);throw r.name="NullInjectorError",r}return n}}function uw(...e){return{\u0275providers:th(0,e),\u0275fromNgModule:!0}}function th(e,...t){const n=[],r=new Set;let o;return On(t,i=>{const s=i;il(s,n,[],r)&&(o||(o=[]),o.push(s))}),void 0!==o&&nh(o,n),n}function nh(e,t){for(let n=0;n{t.push(i)})}}function il(e,t,n,r){if(!(e=k(e)))return!1;let o=null,i=cd(e);const s=!i&&oe(e);if(i||s){if(s&&!s.standalone)return!1;o=e}else{const l=e.ngModule;if(i=cd(l),!i)return!1;o=l}const a=r.has(o);if(s){if(a)return!1;if(r.add(o),s.dependencies){const l="function"==typeof s.dependencies?s.dependencies():s.dependencies;for(const c of l)il(c,t,n,r)}}else{if(!i)return!1;{if(null!=i.imports&&!a){let c;r.add(o);try{On(i.imports,u=>{il(u,t,n,r)&&(c||(c=[]),c.push(u))})}finally{}void 0!==c&&nh(c,t)}if(!a){const c=Nn(o)||(()=>new o);t.push({provide:o,useFactory:c,deps:X},{provide:Xf,useValue:o,multi:!0},{provide:Kf,useValue:()=>re(o),multi:!0})}const l=i.providers;null==l||a||sl(l,u=>{t.push(u)})}}return o!==e&&void 0!==e.providers}function sl(e,t){for(let n of e)Ks(n)&&(n=n.\u0275providers),Array.isArray(n)?sl(n,t):t(n)}const dw=le({provide:String,useValue:le});function al(e){return null!==e&&"object"==typeof e&&dw in e}function kn(e){return"function"==typeof e}const ll=new B("Set Injector scope."),bi={},hw={};let cl;function Ei(){return void 0===cl&&(cl=new eh),cl}class fr{}class ih extends fr{constructor(t,n,r,o){super(),this.parent=n,this.source=r,this.scopes=o,this.records=new Map,this._ngOnDestroyHooks=new Set,this._onDestroyHooks=[],this._destroyed=!1,dl(t,s=>this.processProvider(s)),this.records.set(Jf,hr(void 0,this)),o.has("environment")&&this.records.set(fr,hr(void 0,this));const i=this.records.get(ll);null!=i&&"string"==typeof i.value&&this.scopes.add(i.value),this.injectorDefTypes=new Set(this.get(Xf.multi,X,V.Self))}get destroyed(){return this._destroyed}destroy(){this.assertNotDestroyed(),this._destroyed=!0;try{for(const t of this._ngOnDestroyHooks)t.ngOnDestroy();for(const t of this._onDestroyHooks)t()}finally{this.records.clear(),this._ngOnDestroyHooks.clear(),this.injectorDefTypes.clear(),this._onDestroyHooks.length=0}}onDestroy(t){this._onDestroyHooks.push(t)}runInContext(t){this.assertNotDestroyed();const n=Zn(this),r=ft(void 0);try{return t()}finally{Zn(n),ft(r)}}get(t,n=Vr,r=V.Default){this.assertNotDestroyed(),r=Qo(r);const o=Zn(this),i=ft(void 0);try{if(!(r&V.SkipSelf)){let a=this.records.get(t);if(void 0===a){const l=function vw(e){return"function"==typeof e||"object"==typeof e&&e instanceof B}(t)&&Wo(t);a=l&&this.injectableDefInScope(l)?hr(ul(t),bi):null,this.records.set(t,a)}if(null!=a)return this.hydrate(t,a)}return(r&V.Self?Ei():this.parent).get(t,n=r&V.Optional&&n===Vr?null:n)}catch(s){if("NullInjectorError"===s.name){if((s[Zo]=s[Zo]||[]).unshift(ce(t)),o)throw s;return function By(e,t,n,r){const o=e[Zo];throw t[fd]&&o.unshift(t[fd]),e.message=function Hy(e,t,n,r=null){e=e&&"\n"===e.charAt(0)&&"\u0275"==e.charAt(1)?e.slice(2):e;let o=ce(t);if(Array.isArray(t))o=t.map(ce).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):ce(a)))}o=`{${i.join(", ")}}`}return`${n}${r?"("+r+")":""}[${o}]: ${e.replace(Ry,"\n ")}`}("\n"+e.message,o,n,r),e.ngTokenPath=o,e[Zo]=null,e}(s,t,"R3InjectorError",this.source)}throw s}finally{ft(i),Zn(o)}}resolveInjectorInitializers(){const t=Zn(this),n=ft(void 0);try{const r=this.get(Kf.multi,X,V.Self);for(const o of r)o()}finally{Zn(t),ft(n)}}toString(){const t=[],n=this.records;for(const r of n.keys())t.push(ce(r));return`R3Injector[${t.join(", ")}]`}assertNotDestroyed(){if(this._destroyed)throw new A(205,!1)}processProvider(t){let n=kn(t=k(t))?t:k(t&&t.provide);const r=function gw(e){return al(e)?hr(void 0,e.useValue):hr(sh(e),bi)}(t);if(kn(t)||!0!==t.multi)this.records.get(n);else{let o=this.records.get(n);o||(o=hr(void 0,bi,!0),o.factory=()=>ta(o.multi),this.records.set(n,o)),n=t,o.multi.push(t)}this.records.set(n,r)}hydrate(t,n){return n.value===bi&&(n.value=hw,n.value=n.factory()),"object"==typeof n.value&&n.value&&function _w(e){return null!==e&&"object"==typeof e&&"function"==typeof e.ngOnDestroy}(n.value)&&this._ngOnDestroyHooks.add(n.value),n.value}injectableDefInScope(t){if(!t.providedIn)return!1;const n=k(t.providedIn);return"string"==typeof n?"any"===n||this.scopes.has(n):this.injectorDefTypes.has(n)}}function ul(e){const t=Wo(e),n=null!==t?t.factory:Nn(e);if(null!==n)return n;if(e instanceof B)throw new A(204,!1);if(e instanceof Function)return function pw(e){const t=e.length;if(t>0)throw function Xr(e,t){const n=[];for(let r=0;rn.factory(e):()=>new e}(e);throw new A(204,!1)}function sh(e,t,n){let r;if(kn(e)){const o=k(e);return Nn(o)||ul(o)}if(al(e))r=()=>k(e.useValue);else if(function oh(e){return!(!e||!e.useFactory)}(e))r=()=>e.useFactory(...ta(e.deps||[]));else if(function rh(e){return!(!e||!e.useExisting)}(e))r=()=>re(k(e.useExisting));else{const o=k(e&&(e.useClass||e.provide));if(!function mw(e){return!!e.deps}(e))return Nn(o)||ul(o);r=()=>new o(...ta(e.deps))}return r}function hr(e,t,n=!1){return{factory:e,value:t,multi:n?[]:void 0}}function dl(e,t){for(const n of e)Array.isArray(n)?dl(n,t):n&&Ks(n)?dl(n.\u0275providers,t):t(n)}class yw{}class ah{}class Cw{resolveComponentFactory(t){throw function Dw(e){const t=Error(`No component factory found for ${ce(e)}. Did you add it to @NgModule.entryComponents?`);return t.ngComponent=e,t}(t)}}let Ii=(()=>{class e{}return e.NULL=new Cw,e})();function ww(){return pr(Oe(),w())}function pr(e,t){return new bt(st(e,t))}let bt=(()=>{class e{constructor(n){this.nativeElement=n}}return e.__NG_ELEMENT_ID__=ww,e})();class ch{}let Ln=(()=>{class e{}return e.__NG_ELEMENT_ID__=()=>function Ew(){const e=w(),n=at(Oe().index,e);return(Xe(n)?n:e)[G]}(),e})(),Iw=(()=>{class e{}return e.\u0275prov=de({token:e,providedIn:"root",factory:()=>null}),e})();class Mi{constructor(t){this.full=t,this.major=t.split(".")[0],this.minor=t.split(".")[1],this.patch=t.split(".").slice(2).join(".")}}const Mw=new Mi("15.0.1"),fl={};function pl(e){return e.ngOriginalError}class gr{constructor(){this._console=console}handleError(t){const n=this._findOriginalError(t);this._console.error("ERROR",t),n&&this._console.error("ORIGINAL ERROR",n)}_findOriginalError(t){let n=t&&pl(t);for(;n&&pl(n);)n=pl(n);return n||null}}function gl(e){return e.ownerDocument.defaultView}function dh(e,t,n){let r=e.length;for(;;){const o=e.indexOf(t,n);if(-1===o)return o;if(0===o||e.charCodeAt(o-1)<=32){const i=t.length;if(o+i===r||e.charCodeAt(o+i)<=32)return o}n=o+1}}const fh="ng-template";function kw(e,t,n){let r=0;for(;ri?"":o[d+1].toLowerCase();const p=8&r?f:null;if(p&&-1!==dh(p,c,0)||2&r&&c!==f){if(Et(r))return!1;s=!0}}}}else{if(!s&&!Et(r)&&!Et(l))return!1;if(s&&Et(l))continue;s=!1,r=l|1&r}}return Et(r)||s}function Et(e){return 0==(1&e)}function Bw(e,t,n,r){if(null===t)return-1;let o=0;if(r||!n){let i=!1;for(;o-1)for(n++;n0?'="'+a+'"':"")+"]"}else 8&r?o+="."+s:4&r&&(o+=" "+s);else""!==o&&!Et(s)&&(t+=gh(i,o),o=""),r=s,i=i||!Et(r);n++}return""!==o&&(t+=gh(i,o)),t}const U={};function h(e){mh(J(),w(),qe()+e,!1)}function mh(e,t,n,r){if(!r)if(3==(3&t[2])){const i=e.preOrderCheckHooks;null!==i&&ii(t,i,n)}else{const i=e.preOrderHooks;null!==i&&si(t,i,0,n)}Fn(n)}function Dh(e,t=null,n=null,r){const o=Ch(e,t,n,r);return o.resolveInjectorInitializers(),o}function Ch(e,t=null,n=null,r,o=new Set){const i=[n||X,uw(e)];return r=r||("object"==typeof e?void 0:ce(e)),new ih(i,t||Ei(),r||null,o)}let hn=(()=>{class e{static create(n,r){if(Array.isArray(n))return Dh({name:""},r,n,"");{const o=n.name??"";return Dh({name:o},n.parent,n.providers,o)}}}return e.THROW_IF_NOT_FOUND=Vr,e.NULL=new eh,e.\u0275prov=de({token:e,providedIn:"any",factory:()=>re(Jf)}),e.__NG_ELEMENT_ID__=-1,e})();function S(e,t=V.Default){const n=w();return null===n?re(e,t):Wd(Oe(),n,k(e),t)}function Ai(e,t){return e<<17|t<<2}function It(e){return e>>17&32767}function Dl(e){return 2|e}function Jt(e){return(131068&e)>>2}function Cl(e,t){return-131069&e|t<<2}function wl(e){return 1|e}function Vh(e,t){const n=e.contentQueries;if(null!==n)for(let r=0;r22&&mh(e,t,22,!1),n(r,o)}finally{Fn(i)}}function Fl(e,t,n){if(sa(t)){const o=t.directiveEnd;for(let i=t.directiveStart;i0;){const n=e[--t];if("number"==typeof n&&n<0)return n}return 0})(s)!=a&&s.push(a),s.push(n,r,i)}}(e,t,r,lo(e,n,o.hostVars,U),o)}function Hb(e,t,n){const r=st(t,e),o=Hh(n),i=e[10],s=Oi(e,Ni(e,o,null,n.onPush?32:16,r,t,i,i.createRenderer(r,n),null,null,null));e[t.index]=s}function Pt(e,t,n,r,o,i){const s=st(e,t);!function Vl(e,t,n,r,o,i,s){if(null==i)e.removeAttribute(t,o,n);else{const a=null==s?j(i):s(i,r||"",o);e.setAttribute(t,o,a,n)}}(t[G],s,i,e.value,n,r,o)}function jb(e,t,n,r,o,i){const s=i[t];if(null!==s){const a=r.setInput;for(let l=0;l0&&Bl(n)}}function Bl(e){for(let r=$a(e);null!==r;r=Ua(r))for(let o=10;o0&&Bl(i)}const n=e[1].components;if(null!==n)for(let r=0;r0&&Bl(o)}}function Wb(e,t){const n=at(t,e),r=n[1];(function qb(e,t){for(let n=t.length;n-1&&(Wa(t,r),di(n,r))}this._attachedToViewContainer=!1}Mf(this._lView[1],this._lView)}onDestroy(t){!function jh(e,t,n,r){const o=Zh(t);null===n?o.push(r):(o.push(n),e.firstCreatePass&&Qh(e).push(r,o.length-1))}(this._lView[1],this._lView,null,t)}markForCheck(){Hl(this._cdRefInjectingView||this._lView)}detach(){this._lView[2]&=-65}reattach(){this._lView[2]|=64}detectChanges(){Ri(this._lView[1],this._lView,this.context)}checkNoChanges(){}attachToViewContainerRef(){if(this._appRef)throw new A(902,!1);this._attachedToViewContainer=!0}detachFromAppRef(){this._appRef=null,function IC(e,t){oo(e,t,t[G],2,null,null)}(this._lView[1],this._lView)}attachToAppRef(t){if(this._attachedToViewContainer)throw new A(902,!1);this._appRef=t}}class Zb extends co{constructor(t){super(t),this._view=t}detectChanges(){const t=this._view;Ri(t[1],t,t[8],!1)}checkNoChanges(){}get context(){return null}}class Ul extends Ii{constructor(t){super(),this.ngModule=t}resolveComponentFactory(t){const n=oe(t);return new uo(n,this.ngModule)}}function Jh(e){const t=[];for(let n in e)e.hasOwnProperty(n)&&t.push({propName:e[n],templateName:n});return t}class Yb{constructor(t,n){this.injector=t,this.parentInjector=n}get(t,n,r){r=Qo(r);const o=this.injector.get(t,fl,r);return o!==fl||n===fl?o:this.parentInjector.get(t,n,r)}}class uo extends ah{constructor(t,n){super(),this.componentDef=t,this.ngModule=n,this.componentType=t.type,this.selector=function Gw(e){return e.map(zw).join(",")}(t.selectors),this.ngContentSelectors=t.ngContentSelectors?t.ngContentSelectors:[],this.isBoundToModule=!!n}get inputs(){return Jh(this.componentDef.inputs)}get outputs(){return Jh(this.componentDef.outputs)}create(t,n,r,o){let i=(o=o||this.ngModule)instanceof fr?o:o?.injector;i&&null!==this.componentDef.getStandaloneInjector&&(i=this.componentDef.getStandaloneInjector(i)||i);const s=i?new Yb(t,i):t,a=s.get(ch,null);if(null===a)throw new A(407,!1);const l=s.get(Iw,null),c=a.createRenderer(null,this.componentDef),u=this.componentDef.selectors[0][0]||"div",d=r?function Mb(e,t,n){return e.selectRootElement(t,n===Ft.ShadowDom)}(c,r,this.componentDef.encapsulation):Ga(c,u,function Qb(e){const t=e.toLowerCase();return"svg"===t?"svg":"math"===t?"math":null}(u)),f=this.componentDef.onPush?288:272,p=Pl(0,null,null,1,0,null,null,null,null,null),m=Ni(null,p,null,f,null,null,a,c,l,s,null);let y,E;va(m);try{const M=this.componentDef;let N,C=null;M.findHostDirectiveDefs?(N=[],C=new Map,M.findHostDirectiveDefs(M,N,C),N.push(M)):N=[M];const O=function Xb(e,t){const n=e[1];return e[22]=t,vr(n,22,2,"#host",null)}(m,d),ee=function eE(e,t,n,r,o,i,s,a){const l=o[1];!function tE(e,t,n,r){for(const o of e)t.mergedAttrs=Yr(t.mergedAttrs,o.hostAttrs);null!==t.mergedAttrs&&(Pi(t,t.mergedAttrs,!0),null!==n&&Vf(r,n,t))}(r,e,t,s);const c=i.createRenderer(t,n),u=Ni(o,Hh(n),null,n.onPush?32:16,o[e.index],e,i,c,a||null,null,null);return l.firstCreatePass&&Ll(l,e,r.length-1),Oi(o,u),o[e.index]=u}(O,d,M,N,m,a,c);E=da(p,22),d&&function rE(e,t,n,r){if(r)wa(e,n,["ng-version",Mw.full]);else{const{attrs:o,classes:i}=function Ww(e){const t=[],n=[];let r=1,o=2;for(;r0&&Lf(e,n,i.join(" "))}}(c,M,d,r),void 0!==n&&function oE(e,t,n){const r=e.projection=[];for(let o=0;o=0;r--){const o=e[r];o.hostVars=t+=o.hostVars,o.hostAttrs=Yr(o.hostAttrs,n=Yr(n,o.hostAttrs))}}(r)}function zl(e){return e===Gt?{}:e===X?[]:e}function aE(e,t){const n=e.viewQuery;e.viewQuery=n?(r,o)=>{t(r,o),n(r,o)}:t}function lE(e,t){const n=e.contentQueries;e.contentQueries=n?(r,o,i)=>{t(r,o,i),n(r,o,i)}:t}function cE(e,t){const n=e.hostBindings;e.hostBindings=n?(r,o)=>{t(r,o),n(r,o)}:t}let Li=null;function Vn(){if(!Li){const e=fe.Symbol;if(e&&e.iterator)Li=e.iterator;else{const t=Object.getOwnPropertyNames(Map.prototype);for(let n=0;ns(Se(O[r.index])):r.index;let C=null;if(!s&&a&&(C=function EE(e,t,n,r){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,r.index)),null!==C)(C.__ngLastListenerFn__||C).__ngNextListenerFn__=i,C.__ngLastListenerFn__=i,f=!1;else{i=vp(r,t,u,i,!1);const O=n.listen(E,o,i);d.push(i,O),c&&c.push(o,N,M,M+1)}}else i=vp(r,t,u,i,!1);const p=r.outputs;let m;if(f&&null!==p&&(m=p[o])){const y=m.length;if(y)for(let E=0;E-1?at(e.index,t):t);let l=_p(t,0,r,s),c=i.__ngNextListenerFn__;for(;c;)l=_p(t,0,c,s)&&l,c=c.__ngNextListenerFn__;return o&&!1===l&&(s.preventDefault(),s.returnValue=!1),l}}function D(e=1){return function _D(e){return(H.lFrame.contextLView=function vD(e,t){for(;e>0;)t=t[15],e--;return t}(e,H.lFrame.contextLView))[8]}(e)}function Ar(e,t,n){return ql(e,"",t,"",n),Ar}function ql(e,t,n,r,o){const i=w(),s=Dr(i,t,n,r);return s!==U&&ut(J(),ye(),i,e,s,i[G],o,!1),ql}function Sp(e,t,n,r,o){const i=e[n+1],s=null===t;let a=r?It(i):Jt(i),l=!1;for(;0!==a&&(!1===l||s);){const u=e[a+1];xE(e[a],t)&&(l=!0,e[a+1]=r?wl(u):Dl(u)),a=r?It(u):Jt(u)}l&&(e[n+1]=r?Dl(i):wl(i))}function xE(e,t){return null===e||null==t||(Array.isArray(e)?e[1]:e)===t||!(!Array.isArray(e)||"string"!=typeof t)&&lr(e,t)>=0}const Te={textEnd:0,key:0,keyEnd:0,value:0,valueEnd:0};function Ap(e){return e.substring(Te.key,Te.keyEnd)}function Tp(e,t){const n=Te.textEnd;return n===t?-1:(t=Te.keyEnd=function RE(e,t,n){for(;t32;)t++;return t}(e,Te.key=t,n),Tr(e,t,n))}function Tr(e,t,n){for(;t=0;n=Tp(t,n))ct(e,Ap(t),!0)}function Pp(e,t){return t>=e.expandoStartIndex}function kp(e,t,n,r){const o=e.data;if(null===o[n+1]){const i=o[qe()],s=Pp(e,n);Hp(i,r)&&null===t&&!s&&(t=!1),t=function BE(e,t,n,r){const o=function ma(e){const t=H.lFrame.currentDirectiveIndex;return-1===t?null:e[t]}(e);let i=r?t.residualClasses:t.residualStyles;if(null===o)0===(r?t.classBindings:t.styleBindings)&&(n=po(n=Zl(null,e,t,n,r),t.attrs,r),i=null);else{const s=t.directiveStylingLast;if(-1===s||e[s]!==o)if(n=Zl(o,e,t,n,r),null===i){let l=function HE(e,t,n){const r=n?t.classBindings:t.styleBindings;if(0!==Jt(r))return e[It(r)]}(e,t,r);void 0!==l&&Array.isArray(l)&&(l=Zl(null,e,t,l[1],r),l=po(l,t.attrs,r),function jE(e,t,n,r){e[It(n?t.classBindings:t.styleBindings)]=r}(e,t,r,l))}else i=function $E(e,t,n){let r;const o=t.directiveEnd;for(let i=1+t.directiveStylingLast;i0)&&(c=!0)}else u=n;if(o)if(0!==l){const f=It(e[a+1]);e[r+1]=Ai(f,a),0!==f&&(e[f+1]=Cl(e[f+1],r)),e[a+1]=function fb(e,t){return 131071&e|t<<17}(e[a+1],r)}else e[r+1]=Ai(a,0),0!==a&&(e[a+1]=Cl(e[a+1],r)),a=r;else e[r+1]=Ai(l,0),0===a?a=r:e[l+1]=Cl(e[l+1],r),l=r;c&&(e[r+1]=Dl(e[r+1])),Sp(e,u,r,!0),Sp(e,u,r,!1),function TE(e,t,n,r,o){const i=o?e.residualClasses:e.residualStyles;null!=i&&"string"==typeof t&&lr(i,t)>=0&&(n[r+1]=wl(n[r+1]))}(t,u,e,r,i),s=Ai(a,l),i?t.classBindings=s:t.styleBindings=s}(o,i,t,n,s,r)}}function Zl(e,t,n,r,o){let i=null;const s=n.directiveEnd;let a=n.directiveStylingLast;for(-1===a?a=n.directiveStart:a++;a0;){const l=e[o],c=Array.isArray(l),u=c?l[1]:l,d=null===u;let f=n[o+1];f===U&&(f=d?X:void 0);let p=d?Na(f,r):u===r?f:void 0;if(c&&!ji(p)&&(p=Na(l,r)),ji(p)&&(a=p,s))return a;const m=e[o+1];o=s?It(m):Jt(m)}if(null!==t){let l=i?t.residualClasses:t.residualStyles;null!=l&&(a=Na(l,r))}return a}function ji(e){return void 0!==e}function Hp(e,t){return 0!=(e.flags&(t?8:16))}function b(e,t=""){const n=w(),r=J(),o=e+22,i=r.firstCreatePass?vr(r,o,1,t,null):r.data[o],s=n[o]=function za(e,t){return e.createText(t)}(n[G],t);vi(r,n,s,i),Ot(i,!1)}function F(e){return Z("",e,""),F}function Z(e,t,n){const r=w(),o=Dr(r,e,t,n);return o!==U&&function Xt(e,t,n){const r=ni(t,e);!function Ef(e,t,n){e.setValue(t,n)}(e[G],r,n)}(r,qe(),o),Z}function Ht(e,t,n){!function St(e,t,n,r){const o=J(),i=Qt(2);o.firstUpdatePass&&kp(o,null,i,r);const s=w();if(n!==U&&He(s,i,n)){const a=o.data[qe()];if(Hp(a,r)&&!Pp(o,i)){let l=r?a.classesWithoutHost:a.stylesWithoutHost;null!==l&&(n=Qs(l,n||"")),Wl(o,a,s,n,r)}else!function zE(e,t,n,r,o,i,s,a){o===U&&(o=X);let l=0,c=0,u=0>20;if(kn(e)||!e.multi){const p=new Zr(l,o,S),m=Xl(a,t,o?u:u+f,d);-1===m?(Ma(li(c,s),i,a),Jl(i,e,t.length),t.push(a),c.directiveStart++,c.directiveEnd++,o&&(c.providerIndexes+=1048576),n.push(p),s.push(p)):(n[m]=p,s[m]=p)}else{const p=Xl(a,t,u+f,d),m=Xl(a,t,u,u+f),y=p>=0&&n[p],E=m>=0&&n[m];if(o&&!E||!o&&!y){Ma(li(c,s),i,a);const M=function cI(e,t,n,r,o){const i=new Zr(e,n,S);return i.multi=[],i.index=t,i.componentProviders=0,Og(i,o,r&&!n),i}(o?lI:aI,n.length,o,r,l);!o&&E&&(n[m].providerFactory=M),Jl(i,e,t.length,0),t.push(a),c.directiveStart++,c.directiveEnd++,o&&(c.providerIndexes+=1048576),n.push(M),s.push(M)}else Jl(i,e,p>-1?p:m,Og(n[o?m:p],l,!o&&r));!o&&r&&E&&n[m].componentProviders++}}}function Jl(e,t,n,r){const o=kn(t),i=function fw(e){return!!e.useClass}(t);if(o||i){const l=(i?k(t.useClass):t).prototype.ngOnDestroy;if(l){const c=e.destroyHooks||(e.destroyHooks=[]);if(!o&&t.multi){const u=c.indexOf(n);-1===u?c.push(n,[r,l]):c[u+1].push(r,l)}else c.push(n,l)}}}function Og(e,t,n){return n&&e.componentProviders++,e.multi.push(t)-1}function Xl(e,t,n,r){for(let o=n;o{n.providersResolver=(r,o)=>function sI(e,t,n){const r=J();if(r.firstCreatePass){const o=wt(e);Kl(n,r.data,r.blueprint,o,!0),Kl(t,r.data,r.blueprint,o,!1)}}(r,o?o(e):e,t)}}class Fr{}class uI{}class Rg extends Fr{constructor(t,n){super(),this._parent=n,this._bootstrapComponents=[],this.destroyCbs=[],this.componentFactoryResolver=new Ul(this);const r=function ot(e,t){const n=e[pd]||null;if(!n&&!0===t)throw new Error(`Type ${ce(e)} does not have '\u0275mod' property.`);return n}(t);this._bootstrapComponents=function Kt(e){return e instanceof Function?e():e}(r.bootstrap),this._r3Injector=Ch(t,n,[{provide:Fr,useValue:this},{provide:Ii,useValue:this.componentFactoryResolver}],ce(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(n=>n()),this.destroyCbs=null}onDestroy(t){this.destroyCbs.push(t)}}class tc extends uI{constructor(t){super(),this.moduleType=t}create(t){return new Rg(this.moduleType,t)}}function Wi(e,t,n,r){return function $g(e,t,n,r,o,i){const s=t+n;return He(e,s,o)?kt(e,s+1,i?r.call(i,o):r(o)):Do(e,s+1)}(w(),We(),e,t,n,r)}function rc(e,t,n,r,o){return function Ug(e,t,n,r,o,i,s){const a=t+n;return Bn(e,a,o,i)?kt(e,a+2,s?r.call(s,o,i):r(o,i)):Do(e,a+2)}(w(),We(),e,t,n,r,o)}function Re(e,t,n,r,o,i){return zg(w(),We(),e,t,n,r,o,i)}function Do(e,t){const n=e[t];return n===U?void 0:n}function zg(e,t,n,r,o,i,s,a){const l=t+n;return function Vi(e,t,n,r,o){const i=Bn(e,t,n,r);return He(e,t+2,o)||i}(e,l,o,i,s)?kt(e,l+3,a?r.call(a,o,i,s):r(o,i,s)):Do(e,l+3)}function oc(e){return t=>{setTimeout(e,void 0,t)}}const je=class PI extends js{constructor(t=!1){super(),this.__isAsync=t}emit(t){super.next(t)}subscribe(t,n,r){let o=t,i=n||(()=>null),s=r;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=oc(i),o&&(o=oc(o)),s&&(s=oc(s)));const a=super.subscribe({next:o,error:i,complete:s});return t instanceof Nt&&t.add(a),a}};let en=(()=>{class e{}return e.__NG_ELEMENT_ID__=BI,e})();const LI=en,VI=class extends LI{constructor(t,n,r){super(),this._declarationLView=t,this._declarationTContainer=n,this.elementRef=r}createEmbeddedView(t,n){const r=this._declarationTContainer.tViews,o=Ni(this._declarationLView,r,t,16,null,r.declTNode,null,null,null,null,n||null);o[17]=this._declarationLView[this._declarationTContainer.index];const s=this._declarationLView[19];return null!==s&&(o[19]=s.createEmbeddedView(r)),Nl(r,o,t),new co(o)}};function BI(){return function qi(e,t){return 4&e.type?new VI(t,e,pr(e,t)):null}(Oe(),w())}let jt=(()=>{class e{}return e.__NG_ELEMENT_ID__=HI,e})();function HI(){return function Kg(e,t){let n;const r=t[e.index];if(Ct(r))n=r;else{let o;if(8&e.type)o=Se(r);else{const i=t[G];o=i.createComment("");const s=st(e,t);Rn(i,_i(i,s),o,function FC(e,t){return e.nextSibling(t)}(i,s),!1)}t[e.index]=n=qh(r,t,o,e),Oi(t,n)}return new Qg(n,e,t)}(Oe(),w())}const jI=jt,Qg=class extends jI{constructor(t,n,r){super(),this._lContainer=t,this._hostTNode=n,this._hostLView=r}get element(){return pr(this._hostTNode,this._hostLView)}get injector(){return new rr(this._hostTNode,this._hostLView)}get parentInjector(){const t=ci(this._hostTNode,this._hostLView);if(jd(t)){const n=tr(t,this._hostLView),r=er(t);return new rr(n[1].data[r+8],n)}return new rr(null,this._hostLView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(t){const n=Yg(this._lContainer);return null!==n&&n[t]||null}get length(){return this._lContainer.length-10}createEmbeddedView(t,n,r){let o,i;"number"==typeof r?o=r:null!=r&&(o=r.index,i=r.injector);const s=t.createEmbeddedView(n||{},i);return this.insert(s,o),s}createComponent(t,n,r,o,i){const s=t&&!function Jr(e){return"function"==typeof e}(t);let a;if(s)a=n;else{const d=n||{};a=d.index,r=d.injector,o=d.projectableNodes,i=d.environmentInjector||d.ngModuleRef}const l=s?t:new uo(oe(t)),c=r||this.parentInjector;if(!i&&null==l.ngModule){const f=(s?c:this.parentInjector).get(fr,null);f&&(i=f)}const u=l.create(c,o,void 0,i);return this.insert(u.hostView,a),u}insert(t,n){const r=t._lView,o=r[1];if(function sD(e){return Ct(e[3])}(r)){const u=this.indexOf(t);if(-1!==u)this.detach(u);else{const d=r[3],f=new Qg(d,d[6],d[3]);f.detach(f.indexOf(t))}}const i=this._adjustIndex(n),s=this._lContainer;!function SC(e,t,n,r){const o=10+r,i=n.length;r>0&&(n[o-1][4]=t),r{class e{constructor(n){this.appInits=n,this.resolve=Qi,this.reject=Qi,this.initialized=!1,this.done=!1,this.donePromise=new Promise((r,o)=>{this.resolve=r,this.reject=o})}runInitializers(){if(this.initialized)return;const n=[],r=()=>{this.done=!0,this.resolve()};if(this.appInits)for(let o=0;o{i.subscribe({complete:a,error:l})});n.push(s)}}Promise.all(n).then(()=>{r()}).catch(o=>{this.reject(o)}),0===n.length&&r(),this.initialized=!0}}return e.\u0275fac=function(n){return new(n||e)(re(Cm,8))},e.\u0275prov=de({token:e,factory:e.\u0275fac,providedIn:"root"}),e})();const bo=new B("AppId",{providedIn:"root",factory:function wm(){return`${mc()}${mc()}${mc()}`}});function mc(){return String.fromCharCode(97+Math.floor(25*Math.random()))}const bm=new B("Platform Initializer"),Em=new B("Platform ID",{providedIn:"platform",factory:()=>"unknown"}),DM=new B("appBootstrapListener"),tn=new B("LocaleId",{providedIn:"root",factory:()=>function Ly(e,t=V.Default){return re(e,Qo(t))}(tn,V.Optional|V.SkipSelf)||function CM(){return typeof $localize<"u"&&$localize.locale||Nr}()}),MM=(()=>Promise.resolve(0))();function _c(e){typeof Zone>"u"?MM.then(()=>{e&&e.apply(null,null)}):Zone.current.scheduleMicroTask("scheduleMicrotask",e)}class $e{constructor({enableLongStackTrace:t=!1,shouldCoalesceEventChangeDetection:n=!1,shouldCoalesceRunChangeDetection:r=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new je(!1),this.onMicrotaskEmpty=new je(!1),this.onStable=new je(!1),this.onError=new je(!1),typeof Zone>"u")throw new A(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=!r&&n,o.shouldCoalesceRunChangeDetection=r,o.lastRequestAnimationFrameId=-1,o.nativeRequestAnimationFrame=function SM(){let e=fe.requestAnimationFrame,t=fe.cancelAnimationFrame;if(typeof Zone<"u"&&e&&t){const n=e[Zone.__symbol__("OriginalDelegate")];n&&(e=n);const r=t[Zone.__symbol__("OriginalDelegate")];r&&(t=r)}return{nativeRequestAnimationFrame:e,nativeCancelAnimationFrame:t}}().nativeRequestAnimationFrame,function xM(e){const t=()=>{!function TM(e){e.isCheckStableRunning||-1!==e.lastRequestAnimationFrameId||(e.lastRequestAnimationFrameId=e.nativeRequestAnimationFrame.call(fe,()=>{e.fakeTopEventTask||(e.fakeTopEventTask=Zone.root.scheduleEventTask("fakeTopEventTask",()=>{e.lastRequestAnimationFrameId=-1,yc(e),e.isCheckStableRunning=!0,vc(e),e.isCheckStableRunning=!1},void 0,()=>{},()=>{})),e.fakeTopEventTask.invoke()}),yc(e))}(e)};e._inner=e._inner.fork({name:"angular",properties:{isAngularZone:!0},onInvokeTask:(n,r,o,i,s,a)=>{try{return Sm(e),n.invokeTask(o,i,s,a)}finally{(e.shouldCoalesceEventChangeDetection&&"eventTask"===i.type||e.shouldCoalesceRunChangeDetection)&&t(),Am(e)}},onInvoke:(n,r,o,i,s,a,l)=>{try{return Sm(e),n.invoke(o,i,s,a,l)}finally{e.shouldCoalesceRunChangeDetection&&t(),Am(e)}},onHasTask:(n,r,o,i)=>{n.hasTask(o,i),r===o&&("microTask"==i.change?(e._hasPendingMicrotasks=i.microTask,yc(e),vc(e)):"macroTask"==i.change&&(e.hasPendingMacrotasks=i.macroTask))},onHandleError:(n,r,o,i)=>(n.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(!$e.isInAngularZone())throw new A(909,!1)}static assertNotInAngularZone(){if($e.isInAngularZone())throw new A(909,!1)}run(t,n,r){return this._inner.run(t,n,r)}runTask(t,n,r,o){const i=this._inner,s=i.scheduleEventTask("NgZoneEvent: "+o,t,AM,Qi,Qi);try{return i.runTask(s,n,r)}finally{i.cancelTask(s)}}runGuarded(t,n,r){return this._inner.runGuarded(t,n,r)}runOutsideAngular(t){return this._outer.run(t)}}const AM={};function vc(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 yc(e){e.hasPendingMicrotasks=!!(e._hasPendingMicrotasks||(e.shouldCoalesceEventChangeDetection||e.shouldCoalesceRunChangeDetection)&&-1!==e.lastRequestAnimationFrameId)}function Sm(e){e._nesting++,e.isStable&&(e.isStable=!1,e.onUnstable.emit(null))}function Am(e){e._nesting--,vc(e)}class NM{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new je,this.onMicrotaskEmpty=new je,this.onStable=new je,this.onError=new je}run(t,n,r){return t.apply(n,r)}runGuarded(t,n,r){return t.apply(n,r)}runOutsideAngular(t){return t()}runTask(t,n,r,o){return t.apply(n,r)}}const Tm=new B(""),Ki=new B("");let wc,Dc=(()=>{class e{constructor(n,r,o){this._ngZone=n,this.registry=r,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,wc||(function FM(e){wc=e}(o),o.addToWindow(r)),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:()=>{$e.assertNotInAngularZone(),_c(()=>{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())_c(()=>{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(r=>!r.updateCb||!r.updateCb(n)||(clearTimeout(r.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,r,o){let i=-1;r&&r>0&&(i=setTimeout(()=>{this._callbacks=this._callbacks.filter(s=>s.timeoutId!==i),n(this._didWork,this.getPendingTasks())},r)),this._callbacks.push({doneCb:n,timeoutId:i,updateCb:o})}whenStable(n,r,o){if(o&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is "zone.js/plugins/task-tracking" loaded?');this.addCallback(n,r,o),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}registerApplication(n){this.registry.registerApplication(n,this)}unregisterApplication(n){this.registry.unregisterApplication(n)}findProviders(n,r,o){return[]}}return e.\u0275fac=function(n){return new(n||e)(re($e),re(Cc),re(Ki))},e.\u0275prov=de({token:e,factory:e.\u0275fac}),e})(),Cc=(()=>{class e{constructor(){this._applications=new Map}registerApplication(n,r){this._applications.set(n,r)}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,r=!0){return wc?.findTestabilityInTree(this,n,r)??null}}return e.\u0275fac=function(n){return new(n||e)},e.\u0275prov=de({token:e,factory:e.\u0275fac,providedIn:"platform"}),e})(),mn=null;const xm=new B("AllowMultipleToken"),bc=new B("PlatformDestroyListeners");function Fm(e,t,n=[]){const r=`Platform: ${t}`,o=new B(r);return(i=[])=>{let s=Ec();if(!s||s.injector.get(xm,!1)){const a=[...n,...i,{provide:o,useValue:!0}];e?e(a):function PM(e){if(mn&&!mn.get(xm,!1))throw new A(400,!1);mn=e;const t=e.get(Rm);(function Nm(e){const t=e.get(bm,null);t&&t.forEach(n=>n())})(e)}(function Om(e=[],t){return hn.create({name:t,providers:[{provide:ll,useValue:"platform"},{provide:bc,useValue:new Set([()=>mn=null])},...e]})}(a,r))}return function LM(e){const t=Ec();if(!t)throw new A(401,!1);return t}()}}function Ec(){return mn?.get(Rm)??null}let Rm=(()=>{class e{constructor(n){this._injector=n,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(n,r){const o=function km(e,t){let n;return n="noop"===e?new NM:("zone.js"===e?void 0:e)||new $e(t),n}(r?.ngZone,function Pm(e){return{enableLongStackTrace:!1,shouldCoalesceEventChangeDetection:!(!e||!e.ngZoneEventCoalescing)||!1,shouldCoalesceRunChangeDetection:!(!e||!e.ngZoneRunCoalescing)||!1}}(r)),i=[{provide:$e,useValue:o}];return o.run(()=>{const s=hn.create({providers:i,parent:this.injector,name:n.moduleType.name}),a=n.create(s),l=a.injector.get(gr,null);if(!l)throw new A(402,!1);return o.runOutsideAngular(()=>{const c=o.onError.subscribe({next:u=>{l.handleError(u)}});a.onDestroy(()=>{Ji(this._modules,a),c.unsubscribe()})}),function Lm(e,t,n){try{const r=n();return Bi(r)?r.catch(o=>{throw t.runOutsideAngular(()=>e.handleError(o)),o}):r}catch(r){throw t.runOutsideAngular(()=>e.handleError(r)),r}}(l,o,()=>{const c=a.injector.get(Yi);return c.runInitializers(),c.donePromise.then(()=>(function cg(e){rt(e,"Expected localeId to be defined"),"string"==typeof e&&(lg=e.toLowerCase().replace(/_/g,"-"))}(a.injector.get(tn,Nr)||Nr),this._moduleDoBootstrap(a),a))})})}bootstrapModule(n,r=[]){const o=Vm({},r);return function OM(e,t,n){const r=new tc(n);return Promise.resolve(r)}(0,0,n).then(i=>this.bootstrapModuleFactory(i,o))}_moduleDoBootstrap(n){const r=n.injector.get(Ic);if(n._bootstrapComponents.length>0)n._bootstrapComponents.forEach(o=>r.bootstrap(o));else{if(!n.instance.ngDoBootstrap)throw new A(403,!1);n.instance.ngDoBootstrap(r)}this._modules.push(n)}onDestroy(n){this._destroyListeners.push(n)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new A(404,!1);this._modules.slice().forEach(r=>r.destroy()),this._destroyListeners.forEach(r=>r());const n=this._injector.get(bc,null);n&&(n.forEach(r=>r()),n.clear()),this._destroyed=!0}get destroyed(){return this._destroyed}}return e.\u0275fac=function(n){return new(n||e)(re(hn))},e.\u0275prov=de({token:e,factory:e.\u0275fac,providedIn:"platform"}),e})();function Vm(e,t){return Array.isArray(t)?t.reduce(Vm,e):{...e,...t}}let Ic=(()=>{class e{constructor(n,r,o){this._zone=n,this._injector=r,this._exceptionHandler=o,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._stable=!0,this._destroyed=!1,this._destroyListeners=[],this.componentTypes=[],this.components=[],this._onMicrotaskEmptySubscription=this._zone.onMicrotaskEmpty.subscribe({next:()=>{this._zone.run(()=>{this.tick()})}});const i=new ze(a=>{this._stable=this._zone.isStable&&!this._zone.hasPendingMacrotasks&&!this._zone.hasPendingMicrotasks,this._zone.runOutsideAngular(()=>{a.next(this._stable),a.complete()})}),s=new ze(a=>{let l;this._zone.runOutsideAngular(()=>{l=this._zone.onStable.subscribe(()=>{$e.assertNotInAngularZone(),_c(()=>{!this._stable&&!this._zone.hasPendingMacrotasks&&!this._zone.hasPendingMicrotasks&&(this._stable=!0,a.next(!0))})})});const c=this._zone.onUnstable.subscribe(()=>{$e.assertInAngularZone(),this._stable&&(this._stable=!1,this._zone.runOutsideAngular(()=>{a.next(!1)}))});return()=>{l.unsubscribe(),c.unsubscribe()}});this.isStable=Dy(i,s.pipe(function wy(e={}){const{connector:t=(()=>new js),resetOnError:n=!0,resetOnComplete:r=!0,resetOnRefCountZero:o=!0}=e;return i=>{let s=null,a=null,l=null,c=0,u=!1,d=!1;const f=()=>{a?.unsubscribe(),a=null},p=()=>{f(),s=l=null,u=d=!1},m=()=>{const y=s;p(),y?.unsubscribe()};return Wn((y,E)=>{c++,!d&&!u&&f();const M=l=l??t();E.add(()=>{c--,0===c&&!d&&!u&&(a=qs(m,o))}),M.subscribe(E),s||(s=new Ls({next:N=>M.next(N),error:N=>{d=!0,f(),a=qs(p,n,N),M.error(N)},complete:()=>{u=!0,f(),a=qs(p,r),M.complete()}}),Ws(y).subscribe(s))})(i)}}()))}get destroyed(){return this._destroyed}get injector(){return this._injector}bootstrap(n,r){const o=n instanceof ah;if(!this._injector.get(Yi).done)throw!o&&function $r(e){const t=oe(e)||Pe(e)||Ge(e);return null!==t&&t.standalone}(n),new A(405,false);let s;s=o?n:this._injector.get(Ii).resolveComponentFactory(n),this.componentTypes.push(s.componentType);const a=function RM(e){return e.isBoundToModule}(s)?void 0:this._injector.get(Fr),c=s.create(hn.NULL,[],r||s.selector,a),u=c.location.nativeElement,d=c.injector.get(Tm,null);return d?.registerApplication(u),c.onDestroy(()=>{this.detachView(c.hostView),Ji(this.components,c),d?.unregisterApplication(u)}),this._loadComponent(c),c}tick(){if(this._runningTick)throw new A(101,!1);try{this._runningTick=!0;for(let n of this._views)n.detectChanges()}catch(n){this._zone.runOutsideAngular(()=>this._exceptionHandler.handleError(n))}finally{this._runningTick=!1}}attachView(n){const r=n;this._views.push(r),r.attachToAppRef(this)}detachView(n){const r=n;Ji(this._views,r),r.detachFromAppRef()}_loadComponent(n){this.attachView(n.hostView),this.tick(),this.components.push(n),this._injector.get(DM,[]).concat(this._bootstrapListeners).forEach(o=>o(n))}ngOnDestroy(){if(!this._destroyed)try{this._destroyListeners.forEach(n=>n()),this._views.slice().forEach(n=>n.destroy()),this._onMicrotaskEmptySubscription.unsubscribe()}finally{this._destroyed=!0,this._views=[],this._bootstrapListeners=[],this._destroyListeners=[]}}onDestroy(n){return this._destroyListeners.push(n),()=>Ji(this._destroyListeners,n)}destroy(){if(this._destroyed)throw new A(406,!1);const n=this._injector;n.destroy&&!n.destroyed&&n.destroy()}get viewCount(){return this._views.length}warnIfDestroyed(){}}return e.\u0275fac=function(n){return new(n||e)(re($e),re(fr),re(gr))},e.\u0275prov=de({token:e,factory:e.\u0275fac,providedIn:"root"}),e})();function Ji(e,t){const n=e.indexOf(t);n>-1&&e.splice(n,1)}let jm=(()=>{class e{}return e.__NG_ELEMENT_ID__=BM,e})();function BM(e){return function HM(e,t,n){if(ei(e)&&!n){const r=at(e.index,t);return new co(r,r)}return 47&e.type?new co(t[16],t):null}(Oe(),w(),16==(16&e))}class zm{constructor(){}supports(t){return fo(t)}create(t){return new WM(t)}}const GM=(e,t)=>t;class WM{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||GM}forEachItem(t){let n;for(n=this._itHead;null!==n;n=n._next)t(n)}forEachOperation(t){let n=this._itHead,r=this._removalsHead,o=0,i=null;for(;n||r;){const s=!r||n&&n.currentIndex{s=this._trackByFn(o,a),null!==n&&Object.is(n.trackById,s)?(r&&(n=this._verifyReinsertion(n,a,s,o)),Object.is(n.item,a)||this._addIdentityChange(n,a)):(n=this._mismatch(n,a,s,o),r=!0),n=n._next,o++}),this.length=o;return this._truncate(n),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,n,r,o){let i;return null===t?i=this._itTail:(i=t._prev,this._remove(t)),null!==(t=null===this._unlinkedRecords?null:this._unlinkedRecords.get(r,null))?(Object.is(t.item,n)||this._addIdentityChange(t,n),this._reinsertAfter(t,i,o)):null!==(t=null===this._linkedRecords?null:this._linkedRecords.get(r,o))?(Object.is(t.item,n)||this._addIdentityChange(t,n),this._moveAfter(t,i,o)):t=this._addAfter(new qM(n,r),i,o),t}_verifyReinsertion(t,n,r,o){let i=null===this._unlinkedRecords?null:this._unlinkedRecords.get(r,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 n=t._next;this._addToRemovals(this._unlink(t)),t=n}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,n,r){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,n,r),this._addToMoves(t,r),t}_moveAfter(t,n,r){return this._unlink(t),this._insertAfter(t,n,r),this._addToMoves(t,r),t}_addAfter(t,n,r){return this._insertAfter(t,n,r),this._additionsTail=null===this._additionsTail?this._additionsHead=t:this._additionsTail._nextAdded=t,t}_insertAfter(t,n,r){const o=null===n?this._itHead:n._next;return t._next=o,t._prev=n,null===o?this._itTail=t:o._prev=t,null===n?this._itHead=t:n._next=t,null===this._linkedRecords&&(this._linkedRecords=new Gm),this._linkedRecords.put(t),t.currentIndex=r,t}_remove(t){return this._addToRemovals(this._unlink(t))}_unlink(t){null!==this._linkedRecords&&this._linkedRecords.remove(t);const n=t._prev,r=t._next;return null===n?this._itHead=r:n._next=r,null===r?this._itTail=n:r._prev=n,t}_addToMoves(t,n){return t.previousIndex===n||(this._movesTail=null===this._movesTail?this._movesHead=t:this._movesTail._nextMoved=t),t}_addToRemovals(t){return null===this._unlinkedRecords&&(this._unlinkedRecords=new Gm),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,n){return t.item=n,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=t:this._identityChangesTail._nextIdentityChange=t,t}}class qM{constructor(t,n){this.item=t,this.trackById=n,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 ZM{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,n){let r;for(r=this._head;null!==r;r=r._nextDup)if((null===n||n<=r.currentIndex)&&Object.is(r.trackById,t))return r;return null}remove(t){const n=t._prevDup,r=t._nextDup;return null===n?this._head=r:n._nextDup=r,null===r?this._tail=n:r._prevDup=n,null===this._head}}class Gm{constructor(){this.map=new Map}put(t){const n=t.trackById;let r=this.map.get(n);r||(r=new ZM,this.map.set(n,r)),r.add(t)}get(t,n){const o=this.map.get(t);return o?o.get(t,n):null}remove(t){const n=t.trackById;return this.map.get(n).remove(t)&&this.map.delete(n),t}get isEmpty(){return 0===this.map.size}clear(){this.map.clear()}}function Wm(e,t,n){const r=e.previousIndex;if(null===r)return r;let o=0;return n&&r{if(n&&n.key===o)this._maybeAddToChanges(n,r),this._appendAfter=n,n=n._next;else{const i=this._getOrCreateRecordForKey(o,r);n=this._insertBeforeOrAppend(n,i)}}),n){n._prev&&(n._prev._next=null),this._removalsHead=n;for(let r=n;null!==r;r=r._nextRemoved)r===this._mapHead&&(this._mapHead=null),this._records.delete(r.key),r._nextRemoved=r._next,r.previousValue=r.currentValue,r.currentValue=null,r._prev=null,r._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(t,n){if(t){const r=t._prev;return n._next=t,n._prev=r,t._prev=n,r&&(r._next=n),t===this._mapHead&&(this._mapHead=n),this._appendAfter=t,t}return this._appendAfter?(this._appendAfter._next=n,n._prev=this._appendAfter):this._mapHead=n,this._appendAfter=n,null}_getOrCreateRecordForKey(t,n){if(this._records.has(t)){const o=this._records.get(t);this._maybeAddToChanges(o,n);const i=o._prev,s=o._next;return i&&(i._next=s),s&&(s._prev=i),o._next=null,o._prev=null,o}const r=new YM(t);return this._records.set(t,r),r.currentValue=n,this._addToAdditions(r),r}_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,n){Object.is(n,t.currentValue)||(t.previousValue=t.currentValue,t.currentValue=n,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,n){t instanceof Map?t.forEach(n):Object.keys(t).forEach(r=>n(t[r],r))}}class YM{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 Zm(){return new ts([new zm])}let ts=(()=>{class e{constructor(n){this.factories=n}static create(n,r){if(null!=r){const o=r.factories.slice();n=n.concat(o)}return new e(n)}static extend(n){return{provide:e,useFactory:r=>e.create(n,r||Zm()),deps:[[e,new pi,new hi]]}}find(n){const r=this.factories.find(o=>o.supports(n));if(null!=r)return r;throw new A(901,!1)}}return e.\u0275prov=de({token:e,providedIn:"root",factory:Zm}),e})();function Qm(){return new Eo([new qm])}let Eo=(()=>{class e{constructor(n){this.factories=n}static create(n,r){if(r){const o=r.factories.slice();n=n.concat(o)}return new e(n)}static extend(n){return{provide:e,useFactory:r=>e.create(n,r||Qm()),deps:[[e,new pi,new hi]]}}find(n){const r=this.factories.find(o=>o.supports(n));if(r)return r;throw new A(901,!1)}}return e.\u0275prov=de({token:e,providedIn:"root",factory:Qm}),e})();const XM=Fm(null,"core",[]);let e1=(()=>{class e{constructor(n){}}return e.\u0275fac=function(n){return new(n||e)(re(Ic))},e.\u0275mod=cn({type:e}),e.\u0275inj=zt({}),e})();let ns=null;function $n(){return ns}class r1{}const rn=new B("DocumentToken");let So=(()=>{class e{constructor(n,r,o,i){this._iterableDiffers=n,this._keyValueDiffers=r,this._ngEl=o,this._renderer=i,this._iterableDiffer=null,this._keyValueDiffer=null,this._initialClasses=[],this._rawClass=null}set klass(n){this._removeClasses(this._initialClasses),this._initialClasses="string"==typeof n?n.split(/\s+/):[],this._applyClasses(this._initialClasses),this._applyClasses(this._rawClass)}set ngClass(n){this._removeClasses(this._rawClass),this._applyClasses(this._initialClasses),this._iterableDiffer=null,this._keyValueDiffer=null,this._rawClass="string"==typeof n?n.split(/\s+/):n,this._rawClass&&(fo(this._rawClass)?this._iterableDiffer=this._iterableDiffers.find(this._rawClass).create():this._keyValueDiffer=this._keyValueDiffers.find(this._rawClass).create())}ngDoCheck(){if(this._iterableDiffer){const n=this._iterableDiffer.diff(this._rawClass);n&&this._applyIterableChanges(n)}else if(this._keyValueDiffer){const n=this._keyValueDiffer.diff(this._rawClass);n&&this._applyKeyValueChanges(n)}}_applyKeyValueChanges(n){n.forEachAddedItem(r=>this._toggleClass(r.key,r.currentValue)),n.forEachChangedItem(r=>this._toggleClass(r.key,r.currentValue)),n.forEachRemovedItem(r=>{r.previousValue&&this._toggleClass(r.key,!1)})}_applyIterableChanges(n){n.forEachAddedItem(r=>{if("string"!=typeof r.item)throw new Error(`NgClass can only toggle CSS classes expressed as strings, got ${ce(r.item)}`);this._toggleClass(r.item,!0)}),n.forEachRemovedItem(r=>this._toggleClass(r.item,!1))}_applyClasses(n){n&&(Array.isArray(n)||n instanceof Set?n.forEach(r=>this._toggleClass(r,!0)):Object.keys(n).forEach(r=>this._toggleClass(r,!!n[r])))}_removeClasses(n){n&&(Array.isArray(n)||n instanceof Set?n.forEach(r=>this._toggleClass(r,!1)):Object.keys(n).forEach(r=>this._toggleClass(r,!1)))}_toggleClass(n,r){(n=n.trim())&&n.split(/\s+/g).forEach(o=>{r?this._renderer.addClass(this._ngEl.nativeElement,o):this._renderer.removeClass(this._ngEl.nativeElement,o)})}}return e.\u0275fac=function(n){return new(n||e)(S(ts),S(Eo),S(bt),S(Ln))},e.\u0275dir=$({type:e,selectors:[["","ngClass",""]],inputs:{klass:["class","klass"],ngClass:"ngClass"},standalone:!0}),e})();class z1{constructor(t,n,r,o){this.$implicit=t,this.ngForOf=n,this.index=r,this.count=o}get first(){return 0===this.index}get last(){return this.index===this.count-1}get even(){return this.index%2==0}get odd(){return!this.even}}let Hc=(()=>{class e{constructor(n,r,o){this._viewContainer=n,this._template=r,this._differs=o,this._ngForOf=null,this._ngForOfDirty=!0,this._differ=null}set ngForOf(n){this._ngForOf=n,this._ngForOfDirty=!0}set ngForTrackBy(n){this._trackByFn=n}get ngForTrackBy(){return this._trackByFn}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 r=this._viewContainer;n.forEachOperation((o,i,s)=>{if(null==o.previousIndex)r.createEmbeddedView(this._template,new z1(o.item,this._ngForOf,-1,-1),null===s?void 0:s);else if(null==s)r.remove(null===i?void 0:i);else if(null!==i){const a=r.get(i);r.move(a,s),a_(a,o)}});for(let o=0,i=r.length;o{a_(r.get(o.currentIndex),o)})}static ngTemplateContextGuard(n,r){return!0}}return e.\u0275fac=function(n){return new(n||e)(S(jt),S(en),S(ts))},e.\u0275dir=$({type:e,selectors:[["","ngFor","","ngForOf",""]],inputs:{ngForOf:"ngForOf",ngForTrackBy:"ngForTrackBy",ngForTemplate:"ngForTemplate"},standalone:!0}),e})();function a_(e,t){e.context.$implicit=t.item}let Pr=(()=>{class e{constructor(n,r){this._viewContainer=n,this._context=new W1,this._thenTemplateRef=null,this._elseTemplateRef=null,this._thenViewRef=null,this._elseViewRef=null,this._thenTemplateRef=r}set ngIf(n){this._context.$implicit=this._context.ngIf=n,this._updateView()}set ngIfThen(n){l_("ngIfThen",n),this._thenTemplateRef=n,this._thenViewRef=null,this._updateView()}set ngIfElse(n){l_("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,r){return!0}}return e.\u0275fac=function(n){return new(n||e)(S(jt),S(en))},e.\u0275dir=$({type:e,selectors:[["","ngIf",""]],inputs:{ngIf:"ngIf",ngIfThen:"ngIfThen",ngIfElse:"ngIfElse"},standalone:!0}),e})();class W1{constructor(){this.$implicit=null,this.ngIf=null}}function l_(e,t){if(t&&!t.createEmbeddedView)throw new Error(`${e} must be a TemplateRef, but received '${ce(t)}'.`)}let d_=(()=>{class e{transform(n,r,o){if(null==n)return null;if(!this.supports(n))throw function xt(e,t){return new A(2100,!1)}();return n.slice(r,o)}supports(n){return"string"==typeof n||Array.isArray(n)}}return e.\u0275fac=function(n){return new(n||e)},e.\u0275pipe=Je({name:"slice",type:e,pure:!1,standalone:!0}),e})(),DS=(()=>{class e{}return e.\u0275fac=function(n){return new(n||e)},e.\u0275mod=cn({type:e}),e.\u0275inj=zt({}),e})();class JS extends r1{constructor(){super(...arguments),this.supportsDOMEvents=!0}}class qc extends JS{static makeCurrent(){!function n1(e){ns||(ns=e)}(new qc)}onAndCancel(t,n,r){return t.addEventListener(n,r,!1),()=>{t.removeEventListener(n,r,!1)}}dispatchEvent(t,n){t.dispatchEvent(n)}remove(t){t.parentNode&&t.parentNode.removeChild(t)}createElement(t,n){return(n=n||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,n){return"window"===n?window:"document"===n?t:"body"===n?t.body:null}getBaseHref(t){const n=function XS(){return To=To||document.querySelector("base"),To?To.getAttribute("href"):null}();return null==n?null:function eA(e){hs=hs||document.createElement("a"),hs.setAttribute("href",e);const t=hs.pathname;return"/"===t.charAt(0)?t:`/${t}`}(n)}resetBaseElement(){To=null}getUserAgent(){return window.navigator.userAgent}getCookie(t){return function $1(e,t){t=encodeURIComponent(t);for(const n of e.split(";")){const r=n.indexOf("="),[o,i]=-1==r?[n,""]:[n.slice(0,r),n.slice(r+1)];if(o.trim()===t)return decodeURIComponent(i)}return null}(document.cookie,t)}}let hs,To=null;const y_=new B("TRANSITION_ID"),nA=[{provide:Cm,useFactory:function tA(e,t,n){return()=>{n.get(Yi).donePromise.then(()=>{const r=$n(),o=t.querySelectorAll(`style[ng-transition="${e}"]`);for(let i=0;i{class e{build(){return new XMLHttpRequest}}return e.\u0275fac=function(n){return new(n||e)},e.\u0275prov=de({token:e,factory:e.\u0275fac}),e})();const ps=new B("EventManagerPlugins");let gs=(()=>{class e{constructor(n,r){this._zone=r,this._eventNameToPlugin=new Map,n.forEach(o=>o.manager=this),this._plugins=n.slice().reverse()}addEventListener(n,r,o){return this._findPluginFor(r).addEventListener(n,r,o)}addGlobalEventListener(n,r,o){return this._findPluginFor(r).addGlobalEventListener(n,r,o)}getZone(){return this._zone}_findPluginFor(n){const r=this._eventNameToPlugin.get(n);if(r)return r;const o=this._plugins;for(let i=0;i{class e{constructor(){this._stylesSet=new Set}addStyles(n){const r=new Set;n.forEach(o=>{this._stylesSet.has(o)||(this._stylesSet.add(o),r.add(o))}),this.onStylesAdded(r)}onStylesAdded(n){}getAllStyles(){return Array.from(this._stylesSet)}}return e.\u0275fac=function(n){return new(n||e)},e.\u0275prov=de({token:e,factory:e.\u0275fac}),e})(),xo=(()=>{class e extends C_{constructor(n){super(),this._doc=n,this._hostNodes=new Map,this._hostNodes.set(n.head,[])}_addStylesToHost(n,r,o){n.forEach(i=>{const s=this._doc.createElement("style");s.textContent=i,o.push(r.appendChild(s))})}addHost(n){const r=[];this._addStylesToHost(this._stylesSet,n,r),this._hostNodes.set(n,r)}removeHost(n){const r=this._hostNodes.get(n);r&&r.forEach(w_),this._hostNodes.delete(n)}onStylesAdded(n){this._hostNodes.forEach((r,o)=>{this._addStylesToHost(n,o,r)})}ngOnDestroy(){this._hostNodes.forEach(n=>n.forEach(w_))}}return e.\u0275fac=function(n){return new(n||e)(re(rn))},e.\u0275prov=de({token:e,factory:e.\u0275fac}),e})();function w_(e){$n().remove(e)}const Zc={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/"},Qc=/%COMP%/g;function ms(e,t,n){for(let r=0;r{if("__ngUnwrap__"===t)return e;!1===e(t)&&(t.preventDefault(),t.returnValue=!1)}}let Yc=(()=>{class e{constructor(n,r,o){this.eventManager=n,this.sharedStylesHost=r,this.appId=o,this.rendererByCompId=new Map,this.defaultRenderer=new Kc(n)}createRenderer(n,r){if(!n||!r)return this.defaultRenderer;switch(r.encapsulation){case Ft.Emulated:{let o=this.rendererByCompId.get(r.id);return o||(o=new uA(this.eventManager,this.sharedStylesHost,r,this.appId),this.rendererByCompId.set(r.id,o)),o.applyToHost(n),o}case 1:case Ft.ShadowDom:return new dA(this.eventManager,this.sharedStylesHost,n,r);default:if(!this.rendererByCompId.has(r.id)){const o=ms(r.id,r.styles,[]);this.sharedStylesHost.addStyles(o),this.rendererByCompId.set(r.id,this.defaultRenderer)}return this.defaultRenderer}}begin(){}end(){}}return e.\u0275fac=function(n){return new(n||e)(re(gs),re(xo),re(bo))},e.\u0275prov=de({token:e,factory:e.\u0275fac}),e})();class Kc{constructor(t){this.eventManager=t,this.data=Object.create(null),this.destroyNode=null}destroy(){}createElement(t,n){return n?document.createElementNS(Zc[n]||n,t):document.createElement(t)}createComment(t){return document.createComment(t)}createText(t){return document.createTextNode(t)}appendChild(t,n){(S_(t)?t.content:t).appendChild(n)}insertBefore(t,n,r){t&&(S_(t)?t.content:t).insertBefore(n,r)}removeChild(t,n){t&&t.removeChild(n)}selectRootElement(t,n){let r="string"==typeof t?document.querySelector(t):t;if(!r)throw new Error(`The selector "${t}" did not match any elements`);return n||(r.textContent=""),r}parentNode(t){return t.parentNode}nextSibling(t){return t.nextSibling}setAttribute(t,n,r,o){if(o){n=o+":"+n;const i=Zc[o];i?t.setAttributeNS(i,n,r):t.setAttribute(n,r)}else t.setAttribute(n,r)}removeAttribute(t,n,r){if(r){const o=Zc[r];o?t.removeAttributeNS(o,n):t.removeAttribute(`${r}:${n}`)}else t.removeAttribute(n)}addClass(t,n){t.classList.add(n)}removeClass(t,n){t.classList.remove(n)}setStyle(t,n,r,o){o&(et.DashCase|et.Important)?t.style.setProperty(n,r,o&et.Important?"important":""):t.style[n]=r}removeStyle(t,n,r){r&et.DashCase?t.style.removeProperty(n):t.style[n]=""}setProperty(t,n,r){t[n]=r}setValue(t,n){t.nodeValue=n}listen(t,n,r){return"string"==typeof t?this.eventManager.addGlobalEventListener(t,n,I_(r)):this.eventManager.addEventListener(t,n,I_(r))}}function S_(e){return"TEMPLATE"===e.tagName&&void 0!==e.content}class uA extends Kc{constructor(t,n,r,o){super(t),this.component=r;const i=ms(o+"-"+r.id,r.styles,[]);n.addStyles(i),this.contentAttr=function aA(e){return"_ngcontent-%COMP%".replace(Qc,e)}(o+"-"+r.id),this.hostAttr=function lA(e){return"_nghost-%COMP%".replace(Qc,e)}(o+"-"+r.id)}applyToHost(t){super.setAttribute(t,this.hostAttr,"")}createElement(t,n){const r=super.createElement(t,n);return super.setAttribute(r,this.contentAttr,""),r}}class dA extends Kc{constructor(t,n,r,o){super(t),this.sharedStylesHost=n,this.hostEl=r,this.shadowRoot=r.attachShadow({mode:"open"}),this.sharedStylesHost.addHost(this.shadowRoot);const i=ms(o.id,o.styles,[]);for(let s=0;s{class e extends D_{constructor(n){super(n)}supports(n){return!0}addEventListener(n,r,o){return n.addEventListener(r,o,!1),()=>this.removeEventListener(n,r,o)}removeEventListener(n,r,o){return n.removeEventListener(r,o)}}return e.\u0275fac=function(n){return new(n||e)(re(rn))},e.\u0275prov=de({token:e,factory:e.\u0275fac}),e})();const A_=["alt","control","meta","shift"],hA={"\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"},pA={alt:e=>e.altKey,control:e=>e.ctrlKey,meta:e=>e.metaKey,shift:e=>e.shiftKey};let gA=(()=>{class e extends D_{constructor(n){super(n)}supports(n){return null!=e.parseEventName(n)}addEventListener(n,r,o){const i=e.parseEventName(r),s=e.eventCallback(i.fullKey,o,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>$n().onAndCancel(n,i.domEventName,s))}static parseEventName(n){const r=n.toLowerCase().split("."),o=r.shift();if(0===r.length||"keydown"!==o&&"keyup"!==o)return null;const i=e._normalizeKey(r.pop());let s="",a=r.indexOf("code");if(a>-1&&(r.splice(a,1),s="code."),A_.forEach(c=>{const u=r.indexOf(c);u>-1&&(r.splice(u,1),s+=c+".")}),s+=i,0!=r.length||0===i.length)return null;const l={};return l.domEventName=o,l.fullKey=s,l}static matchEventFullKeyCode(n,r){let o=hA[n.key]||n.key,i="";return r.indexOf("code.")>-1&&(o=n.code,i="code."),!(null==o||!o)&&(o=o.toLowerCase()," "===o?o="space":"."===o&&(o="dot"),A_.forEach(s=>{s!==o&&(0,pA[s])(n)&&(i+=s+".")}),i+=o,i===r)}static eventCallback(n,r,o){return i=>{e.matchEventFullKeyCode(i,n)&&o.runGuarded(()=>r(i))}}static _normalizeKey(n){return"esc"===n?"escape":n}}return e.\u0275fac=function(n){return new(n||e)(re(rn))},e.\u0275prov=de({token:e,factory:e.\u0275fac}),e})();const yA=Fm(XM,"browser",[{provide:Em,useValue:"browser"},{provide:bm,useValue:function mA(){qc.makeCurrent()},multi:!0},{provide:rn,useFactory:function vA(){return function HC(e){Xa=e}(document),document},deps:[]}]),N_=new B(""),F_=[{provide:Ki,useClass:class rA{addToWindow(t){fe.getAngularTestability=(r,o=!0)=>{const i=t.findTestabilityInTree(r,o);if(null==i)throw new Error("Could not find testability for element.");return i},fe.getAllAngularTestabilities=()=>t.getAllTestabilities(),fe.getAllAngularRootElements=()=>t.getAllRootElements(),fe.frameworkStabilizers||(fe.frameworkStabilizers=[]),fe.frameworkStabilizers.push(r=>{const o=fe.getAllAngularTestabilities();let i=o.length,s=!1;const a=function(l){s=s||l,i--,0==i&&r(s)};o.forEach(function(l){l.whenStable(a)})})}findTestabilityInTree(t,n,r){return null==n?null:t.getTestability(n)??(r?$n().isShadowRoot(n)?this.findTestabilityInTree(t,n.host,!0):this.findTestabilityInTree(t,n.parentElement,!0):null)}},deps:[]},{provide:Tm,useClass:Dc,deps:[$e,Cc,Ki]},{provide:Dc,useClass:Dc,deps:[$e,Cc,Ki]}],O_=[{provide:ll,useValue:"root"},{provide:gr,useFactory:function _A(){return new gr},deps:[]},{provide:ps,useClass:fA,multi:!0,deps:[rn,$e,Em]},{provide:ps,useClass:gA,multi:!0,deps:[rn]},{provide:Yc,useClass:Yc,deps:[gs,xo,bo]},{provide:ch,useExisting:Yc},{provide:C_,useExisting:xo},{provide:xo,useClass:xo,deps:[rn]},{provide:gs,useClass:gs,deps:[ps,$e]},{provide:class IS{},useClass:oA,deps:[]},[]];let DA=(()=>{class e{constructor(n){}static withServerTransition(n){return{ngModule:e,providers:[{provide:bo,useValue:n.appId},{provide:y_,useExisting:bo},nA]}}}return e.\u0275fac=function(n){return new(n||e)(re(N_,12))},e.\u0275mod=cn({type:e}),e.\u0275inj=zt({providers:[...O_,...F_],imports:[DS,e1]}),e})();typeof window<"u"&&window;const{isArray:xA}=Array,{getPrototypeOf:NA,prototype:FA,keys:OA}=Object;const{isArray:kA}=Array;function BA(e,t){return e.reduce((n,r,o)=>(n[r]=t[o],n),{})}function HA(...e){const t=function dy(e){return ve(Gs(e))?e.pop():void 0}(e),{args:n,keys:r}=function RA(e){if(1===e.length){const t=e[0];if(xA(t))return{args:t,keys:null};if(function PA(e){return e&&"object"==typeof e&&NA(e)===FA}(t)){const n=OA(t);return{args:n.map(r=>t[r]),keys:n}}}return{args:e,keys:null}}(e),o=new ze(i=>{const{length:s}=n;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]=f},()=>l--,void 0,()=>{(!l||!d)&&(c||i.next(r?BA(r,a):a),i.complete())}))}});return t?o.pipe(function VA(e){return $s(t=>function LA(e,t){return kA(t)?e(...t):e(t)}(e,t))}(t)):o}let k_=(()=>{class e{constructor(n,r){this._renderer=n,this._elementRef=r,this.onChange=o=>{},this.onTouched=()=>{}}setProperty(n,r){this._renderer.setProperty(this._elementRef.nativeElement,n,r)}registerOnTouched(n){this.onTouched=n}registerOnChange(n){this.onChange=n}setDisabledState(n){this.setProperty("disabled",n)}}return e.\u0275fac=function(n){return new(n||e)(S(Ln),S(bt))},e.\u0275dir=$({type:e}),e})(),Un=(()=>{class e extends k_{}return e.\u0275fac=function(){let t;return function(r){return(t||(t=Ve(e)))(r||e)}}(),e.\u0275dir=$({type:e,features:[ae]}),e})();const $t=new B("NgValueAccessor"),$A={provide:$t,useExisting:ue(()=>No),multi:!0},zA=new B("CompositionEventMode");let No=(()=>{class e extends k_{constructor(n,r,o){super(n,r),this._compositionMode=o,this._composing=!1,null==this._compositionMode&&(this._compositionMode=!function UA(){const e=$n()?$n().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.\u0275fac=function(n){return new(n||e)(S(Ln),S(bt),S(zA,8))},e.\u0275dir=$({type:e,selectors:[["input","formControlName","",3,"type","checkbox"],["textarea","formControlName",""],["input","formControl","",3,"type","checkbox"],["textarea","formControl",""],["input","ngModel","",3,"type","checkbox"],["textarea","ngModel",""],["","ngDefaultControl",""]],hostBindings:function(n,r){1&n&&q("input",function(i){return r._handleInput(i.target.value)})("blur",function(){return r.onTouched()})("compositionstart",function(){return r._compositionStart()})("compositionend",function(i){return r._compositionEnd(i.target.value)})},features:[_e([$A]),ae]}),e})();const Ue=new B("NgValidators"),yn=new B("NgAsyncValidators");function q_(e){return null!=e}function Z_(e){return Bi(e)?Ws(e):e}function Q_(e){let t={};return e.forEach(n=>{t=null!=n?{...t,...n}:t}),0===Object.keys(t).length?null:t}function Y_(e,t){return t.map(n=>n(e))}function K_(e){return e.map(t=>function qA(e){return!e.validate}(t)?t:n=>t.validate(n))}function eu(e){return null!=e?function J_(e){if(!e)return null;const t=e.filter(q_);return 0==t.length?null:function(n){return Q_(Y_(n,t))}}(K_(e)):null}function tu(e){return null!=e?function X_(e){if(!e)return null;const t=e.filter(q_);return 0==t.length?null:function(n){return HA(Y_(n,t).map(Z_)).pipe($s(Q_))}}(K_(e)):null}function ev(e,t){return null===e?[t]:Array.isArray(e)?[...e,t]:[e,t]}function nu(e){return e?Array.isArray(e)?e:[e]:[]}function vs(e,t){return Array.isArray(e)?e.includes(t):e===t}function rv(e,t){const n=nu(t);return nu(e).forEach(o=>{vs(n,o)||n.push(o)}),n}function ov(e,t){return nu(t).filter(n=>!vs(e,n))}class iv{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=eu(this._rawValidators)}_setAsyncValidators(t){this._rawAsyncValidators=t||[],this._composedAsyncValidatorFn=tu(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){this.control&&this.control.reset(t)}hasError(t,n){return!!this.control&&this.control.hasError(t,n)}getError(t,n){return this.control?this.control.getError(t,n):null}}class Ke extends iv{get formDirective(){return null}get path(){return null}}class Dn extends iv{constructor(){super(...arguments),this._parent=null,this.name=null,this.valueAccessor=null}}class sv{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 ru=(()=>{class e extends sv{constructor(n){super(n)}}return e.\u0275fac=function(n){return new(n||e)(S(Dn,2))},e.\u0275dir=$({type:e,selectors:[["","formControlName",""],["","ngModel",""],["","formControl",""]],hostVars:14,hostBindings:function(n,r){2&n&&Hi("ng-untouched",r.isUntouched)("ng-touched",r.isTouched)("ng-pristine",r.isPristine)("ng-dirty",r.isDirty)("ng-valid",r.isValid)("ng-invalid",r.isInvalid)("ng-pending",r.isPending)},features:[ae]}),e})();const Fo="VALID",Ds="INVALID",kr="PENDING",Oo="DISABLED";function Cs(e){return null!=e&&!Array.isArray(e)&&"object"==typeof e}class uv{constructor(t,n){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(n)}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===Fo}get invalid(){return this.status===Ds}get pending(){return this.status==kr}get disabled(){return this.status===Oo}get enabled(){return this.status!==Oo}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(rv(t,this._rawValidators))}addAsyncValidators(t){this.setAsyncValidators(rv(t,this._rawAsyncValidators))}removeValidators(t){this.setValidators(ov(t,this._rawValidators))}removeAsyncValidators(t){this.setAsyncValidators(ov(t,this._rawAsyncValidators))}hasValidator(t){return vs(this._rawValidators,t)}hasAsyncValidator(t){return vs(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(n=>{n.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(n=>{n.markAsPristine({onlySelf:!0})}),this._parent&&!t.onlySelf&&this._parent._updatePristine(t)}markAsPending(t={}){this.status=kr,!1!==t.emitEvent&&this.statusChanges.emit(this.status),this._parent&&!t.onlySelf&&this._parent.markAsPending(t)}disable(t={}){const n=this._parentMarkedDirty(t.onlySelf);this.status=Oo,this.errors=null,this._forEachChild(r=>{r.disable({...t,onlySelf:!0})}),this._updateValue(),!1!==t.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors({...t,skipPristineCheck:n}),this._onDisabledChange.forEach(r=>r(!0))}enable(t={}){const n=this._parentMarkedDirty(t.onlySelf);this.status=Fo,this._forEachChild(r=>{r.enable({...t,onlySelf:!0})}),this.updateValueAndValidity({onlySelf:!0,emitEvent:t.emitEvent}),this._updateAncestors({...t,skipPristineCheck:n}),this._onDisabledChange.forEach(r=>r(!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===Fo||this.status===kr)&&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(n=>n._updateTreeValidity(t)),this.updateValueAndValidity({onlySelf:!0,emitEvent:t.emitEvent})}_setInitialStatus(){this.status=this._allControlsDisabled()?Oo:Fo}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(t){if(this.asyncValidator){this.status=kr,this._hasOwnPendingAsyncValidator=!0;const n=Z_(this.asyncValidator(this));this._asyncValidationSubscription=n.subscribe(r=>{this._hasOwnPendingAsyncValidator=!1,this.setErrors(r,{emitEvent:t})})}}_cancelExistingSubscription(){this._asyncValidationSubscription&&(this._asyncValidationSubscription.unsubscribe(),this._hasOwnPendingAsyncValidator=!1)}setErrors(t,n={}){this.errors=t,this._updateControlsErrors(!1!==n.emitEvent)}get(t){let n=t;return null==n||(Array.isArray(n)||(n=n.split(".")),0===n.length)?null:n.reduce((r,o)=>r&&r._find(o),this)}getError(t,n){const r=n?this.get(n):this;return r&&r.errors?r.errors[t]:null}hasError(t,n){return!!this.getError(t,n)}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 je,this.statusChanges=new je}_calculateStatus(){return this._allControlsDisabled()?Oo:this.errors?Ds:this._hasOwnPendingAsyncValidator||this._anyControlsHaveStatus(kr)?kr:this._anyControlsHaveStatus(Ds)?Ds:Fo}_anyControlsHaveStatus(t){return this._anyControls(n=>n.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){Cs(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 tT(e){return Array.isArray(e)?eu(e):e||null}(this._rawValidators)}_assignAsyncValidators(t){this._rawAsyncValidators=Array.isArray(t)?t.slice():t,this._composedAsyncValidatorFn=function nT(e){return Array.isArray(e)?tu(e):e||null}(this._rawAsyncValidators)}}const Ro=new B("CallSetDisabledState",{providedIn:"root",factory:()=>uu}),uu="always";function Po(e,t,n=uu){(function du(e,t){const n=function tv(e){return e._rawValidators}(e);null!==t.validator?e.setValidators(ev(n,t.validator)):"function"==typeof n&&e.setValidators([n]);const r=function nv(e){return e._rawAsyncValidators}(e);null!==t.asyncValidator?e.setAsyncValidators(ev(r,t.asyncValidator)):"function"==typeof r&&e.setAsyncValidators([r]);const o=()=>e.updateValueAndValidity();Es(t._rawValidators,o),Es(t._rawAsyncValidators,o)})(e,t),t.valueAccessor.writeValue(e.value),(e.disabled||"always"===n)&&t.valueAccessor.setDisabledState?.(e.disabled),function iT(e,t){t.valueAccessor.registerOnChange(n=>{e._pendingValue=n,e._pendingChange=!0,e._pendingDirty=!0,"change"===e.updateOn&&dv(e,t)})}(e,t),function aT(e,t){const n=(r,o)=>{t.valueAccessor.writeValue(r),o&&t.viewToModelUpdate(r)};e.registerOnChange(n),t._registerOnDestroy(()=>{e._unregisterOnChange(n)})}(e,t),function sT(e,t){t.valueAccessor.registerOnTouched(()=>{e._pendingTouched=!0,"blur"===e.updateOn&&e._pendingChange&&dv(e,t),"submit"!==e.updateOn&&e.markAsTouched()})}(e,t),function oT(e,t){if(t.valueAccessor.setDisabledState){const n=r=>{t.valueAccessor.setDisabledState(r)};e.registerOnDisabledChange(n),t._registerOnDestroy(()=>{e._unregisterOnDisabledChange(n)})}}(e,t)}function Es(e,t){e.forEach(n=>{n.registerOnValidatorChange&&n.registerOnValidatorChange(t)})}function dv(e,t){e._pendingDirty&&e.markAsDirty(),e.setValue(e._pendingValue,{emitModelToViewChange:!1}),t.viewToModelUpdate(e._pendingValue),e._pendingChange=!1}function pv(e,t){const n=e.indexOf(t);n>-1&&e.splice(n,1)}function gv(e){return"object"==typeof e&&null!==e&&2===Object.keys(e).length&&"value"in e&&"disabled"in e}const mv=class extends uv{constructor(t=null,n,r){super(function au(e){return(Cs(e)?e.validators:e)||null}(n),function lu(e,t){return(Cs(t)?t.asyncValidators:e)||null}(r,n)),this.defaultValue=null,this._onChange=[],this._pendingChange=!1,this._applyFormState(t),this._setUpdateStrategy(n),this._initObservables(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator}),Cs(n)&&(n.nonNullable||n.initialValueIsDefault)&&(this.defaultValue=gv(t)?t.value:t)}setValue(t,n={}){this.value=this._pendingValue=t,this._onChange.length&&!1!==n.emitModelToViewChange&&this._onChange.forEach(r=>r(this.value,!1!==n.emitViewToModelChange)),this.updateValueAndValidity(n)}patchValue(t,n={}){this.setValue(t,n)}reset(t=this.defaultValue,n={}){this._applyFormState(t),this.markAsPristine(n),this.markAsUntouched(n),this.setValue(this.value,n),this._pendingChange=!1}_updateValue(){}_anyControls(t){return!1}_allControlsDisabled(){return this.disabled}registerOnChange(t){this._onChange.push(t)}_unregisterOnChange(t){pv(this._onChange,t)}registerOnDisabledChange(t){this._onDisabledChange.push(t)}_unregisterOnDisabledChange(t){pv(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){gv(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}},gT={provide:Dn,useExisting:ue(()=>Ms)},yv=(()=>Promise.resolve())();let Ms=(()=>{class e extends Dn{constructor(n,r,o,i,s,a){super(),this._changeDetectorRef=s,this.callSetDisabledState=a,this.control=new mv,this._registered=!1,this.update=new je,this._parent=n,this._setValidators(r),this._setAsyncValidators(o),this.valueAccessor=function pu(e,t){if(!t)return null;let n,r,o;return Array.isArray(t),t.forEach(i=>{i.constructor===No?n=i:function uT(e){return Object.getPrototypeOf(e.constructor)===Un}(i)?r=i:o=i}),o||r||n||null}(0,i)}ngOnChanges(n){if(this._checkForErrors(),!this._registered||"name"in n){if(this._registered&&(this._checkName(),this.formDirective)){const r=n.name.previousValue;this.formDirective.removeControl({name:r,path:this._getPath(r)})}this._setUpControl()}"isDisabled"in n&&this._updateDisabled(n),function hu(e,t){if(!e.hasOwnProperty("model"))return!1;const n=e.model;return!!n.isFirstChange()||!Object.is(t,n.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(){Po(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){yv.then(()=>{this.control.setValue(n,{emitViewToModelChange:!1}),this._changeDetectorRef?.markForCheck()})}_updateDisabled(n){const r=n.isDisabled.currentValue,o=0!==r&&function xc(e){return"boolean"==typeof e?e:null!=e&&"false"!==e}(r);yv.then(()=>{o&&!this.control.disabled?this.control.disable():!o&&this.control.disabled&&this.control.enable(),this._changeDetectorRef?.markForCheck()})}_getPath(n){return this._parent?function ws(e,t){return[...t.path,e]}(n,this._parent):[n]}}return e.\u0275fac=function(n){return new(n||e)(S(Ke,9),S(Ue,10),S(yn,10),S($t,10),S(jm,8),S(Ro,8))},e.\u0275dir=$({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:[_e([gT]),ae,qt]}),e})(),Cv=(()=>{class e{}return e.\u0275fac=function(n){return new(n||e)},e.\u0275mod=cn({type:e}),e.\u0275inj=zt({}),e})();const DT={provide:$t,useExisting:ue(()=>mu),multi:!0};let mu=(()=>{class e extends Un{writeValue(n){this.setProperty("value",parseFloat(n))}registerOnChange(n){this.onChange=r=>{n(""==r?null:parseFloat(r))}}}return e.\u0275fac=function(){let t;return function(r){return(t||(t=Ve(e)))(r||e)}}(),e.\u0275dir=$({type:e,selectors:[["input","type","range","formControlName",""],["input","type","range","formControl",""],["input","type","range","ngModel",""]],hostBindings:function(n,r){1&n&&q("change",function(i){return r.onChange(i.target.value)})("input",function(i){return r.onChange(i.target.value)})("blur",function(){return r.onTouched()})},features:[_e([DT]),ae]}),e})();const MT={provide:$t,useExisting:ue(()=>Lo),multi:!0};function Sv(e,t){return null==e?`${t}`:(t&&"object"==typeof t&&(t="Object"),`${e}: ${t}`.slice(0,50))}let Lo=(()=>{class e extends Un{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 o=Sv(this._getOptionId(n),n);this.setProperty("value",o)}registerOnChange(n){this.onChange=r=>{this.value=this._getOptionValue(r),n(this.value)}}_registerOption(){return(this._idCounter++).toString()}_getOptionId(n){for(const r of Array.from(this._optionMap.keys()))if(this._compareWith(this._optionMap.get(r),n))return r;return null}_getOptionValue(n){const r=function ST(e){return e.split(":")[0]}(n);return this._optionMap.has(r)?this._optionMap.get(r):n}}return e.\u0275fac=function(){let t;return function(r){return(t||(t=Ve(e)))(r||e)}}(),e.\u0275dir=$({type:e,selectors:[["select","formControlName","",3,"multiple",""],["select","formControl","",3,"multiple",""],["select","ngModel","",3,"multiple",""]],hostBindings:function(n,r){1&n&&q("change",function(i){return r.onChange(i.target.value)})("blur",function(){return r.onTouched()})},inputs:{compareWith:"compareWith"},features:[_e([MT]),ae]}),e})(),Du=(()=>{class e{constructor(n,r,o){this._element=n,this._renderer=r,this._select=o,this._select&&(this.id=this._select._registerOption())}set ngValue(n){null!=this._select&&(this._select._optionMap.set(this.id,n),this._setElementValue(Sv(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.\u0275fac=function(n){return new(n||e)(S(bt),S(Ln),S(Lo,9))},e.\u0275dir=$({type:e,selectors:[["option"]],inputs:{ngValue:"ngValue",value:"value"}}),e})();const AT={provide:$t,useExisting:ue(()=>Cu),multi:!0};function Av(e,t){return null==e?`${t}`:("string"==typeof t&&(t=`'${t}'`),t&&"object"==typeof t&&(t="Object"),`${e}: ${t}`.slice(0,50))}let Cu=(()=>{class e extends Un{constructor(){super(...arguments),this._optionMap=new Map,this._idCounter=0,this._compareWith=Object.is}set compareWith(n){this._compareWith=n}writeValue(n){let r;if(this.value=n,Array.isArray(n)){const o=n.map(i=>this._getOptionId(i));r=(i,s)=>{i._setSelected(o.indexOf(s.toString())>-1)}}else r=(o,i)=>{o._setSelected(!1)};this._optionMap.forEach(r)}registerOnChange(n){this.onChange=r=>{const o=[],i=r.selectedOptions;if(void 0!==i){const s=i;for(let a=0;a{class e{constructor(n,r,o){this._element=n,this._renderer=r,this._select=o,this._select&&(this.id=this._select._registerOption(this))}set ngValue(n){null!=this._select&&(this._value=n,this._setElementValue(Av(this.id,n)),this._select.writeValue(this._select.value))}set value(n){this._select?(this._value=n,this._setElementValue(Av(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.\u0275fac=function(n){return new(n||e)(S(bt),S(Ln),S(Cu,9))},e.\u0275dir=$({type:e,selectors:[["option"]],inputs:{ngValue:"ngValue",value:"value"}}),e})(),VT=(()=>{class e{}return e.\u0275fac=function(n){return new(n||e)},e.\u0275mod=cn({type:e}),e.\u0275inj=zt({imports:[Cv]}),e})(),BT=(()=>{class e{static withConfig(n){return{ngModule:e,providers:[{provide:Ro,useValue:n.callSetDisabledState??uu}]}}}return e.\u0275fac=function(n){return new(n||e)},e.\u0275mod=cn({type:e}),e.\u0275inj=zt({imports:[VT]}),e})();class Vv{constructor(){this.riskHotspotsSettings=null,this.coverageInfoSettings=null}}class jT{constructor(){this.groupingMaximum=0,this.grouping=0,this.historyComparisionDate="",this.historyComparisionType="",this.filter="",this.sortBy="name",this.sortOrder="asc",this.collapseStates=[]}}class $T{constructor(t){this.et="",this.et=t.et,this.cl=t.cl,this.ucl=t.ucl,this.cal=t.cal,this.tl=t.tl,this.lcq=t.lcq,this.cb=t.cb,this.tb=t.tb,this.bcq=t.bcq,this.cm=t.cm,this.tm=t.tm,this.mcq=t.mcq}get coverageRatioText(){return 0===this.tl?"-":this.cl+"/"+this.cal}get branchCoverageRatioText(){return 0===this.tb?"-":this.cb+"/"+this.tb}get methodCoverageRatioText(){return 0===this.tm?"-":this.cm+"/"+this.tm}}class Cn{static roundNumber(t,n){return Math.floor(t*Math.pow(10,n))/Math.pow(10,n)}static getNthOrLastIndexOf(t,n,r){let o=0,i=-1,s=-1;for(;o{this.historicCoverages.push(new $T(r))})}get coverage(){return 0===this.coverableLines?"-"!==this.coverageByMethod?parseFloat(this.coverageByMethod):NaN:Cn.roundNumber(100*this.coveredLines/this.coverableLines,1)}get coverageType(){return 0===this.coverableLines?"-"!==this.coverageByMethod?this._coverageType:"":this._coverageType}visible(t,n){if(""!==t&&-1===this.name.toLowerCase().indexOf(t.toLowerCase()))return!1;if(""===n||null===this.currentHistoricCoverage)return!0;if("allChanges"===n){if(this.coveredLines===this.currentHistoricCoverage.cl&&this.uncoveredLines===this.currentHistoricCoverage.ucl&&this.coverableLines===this.currentHistoricCoverage.cal&&this.totalLines===this.currentHistoricCoverage.tl&&this.coveredBranches===this.currentHistoricCoverage.cb&&this.totalBranches===this.currentHistoricCoverage.tb&&this.coveredMethods===this.currentHistoricCoverage.cm&&this.totalMethods===this.currentHistoricCoverage.tm)return!1}else if("lineCoverageIncreaseOnly"===n){let r=this.coverage;if(isNaN(r)||r<=this.currentHistoricCoverage.lcq)return!1}else if("lineCoverageDecreaseOnly"===n){let r=this.coverage;if(isNaN(r)||r>=this.currentHistoricCoverage.lcq)return!1}else if("branchCoverageIncreaseOnly"===n){let r=this.branchCoverage;if(isNaN(r)||r<=this.currentHistoricCoverage.bcq)return!1}else if("branchCoverageDecreaseOnly"===n){let r=this.branchCoverage;if(isNaN(r)||r>=this.currentHistoricCoverage.bcq)return!1}else if("methodCoverageIncreaseOnly"===n){let r=this.methodCoverage;if(isNaN(r)||r<=this.currentHistoricCoverage.mcq)return!1}else if("methodCoverageDecreaseOnly"===n){let r=this.methodCoverage;if(isNaN(r)||r>=this.currentHistoricCoverage.mcq)return!1}return!0}updateCurrentHistoricCoverage(t){if(this.currentHistoricCoverage=null,""!==t)for(let n=0;n-1&&null===n}visible(t,n){if(""!==t&&this.name.toLowerCase().indexOf(t.toLowerCase())>-1)return!0;for(let r=0;r0,this.redVisible=!isNaN(t)&&100-Math.round(t)>0,this.greenClass="covered"+Math.round(t),this.redClass="covered"+(100-Math.round(t))}static#e=this.\u0275fac=function(n){return new(n||Vo)};static#t=this.\u0275cmp=ln({type:Vo,selectors:[["coverage-bar"]],inputs:{percentage:"percentage"},decls:4,vars:3,consts:[[1,"coverage"],["class","gray covered100",4,"ngIf"],[3,"class",4,"ngIf"],[1,"gray","covered100"]],template:function(n,r){1&n&&(v(0,"table",0),I(1,zT,1,0,"td",1),I(2,GT,1,3,"td",2),I(3,WT,1,3,"td",2),_()),2&n&&(h(1),g("ngIf",r.grayVisible),h(1),g("ngIf",r.greenVisible),h(1),g("ngIf",r.redVisible))},dependencies:[Pr],encapsulation:2,changeDetection:0})}const qT=["codeelement-row",""];function ZT(e,t){if(1&e&&(v(0,"th",2),b(1),_()),2&e){const n=D();h(1),F(n.element.coveredBranches)}}function QT(e,t){if(1&e&&(v(0,"th",2),b(1),_()),2&e){const n=D();h(1),F(n.element.totalBranches)}}function YT(e,t){if(1&e&&(v(0,"th",3),b(1),_()),2&e){const n=D();g("title",n.element.branchCoverageRatioText),h(1),F(n.element.branchCoveragePercentage)}}function KT(e,t){if(1&e&&(v(0,"th",2),R(1,"coverage-bar",4),_()),2&e){const n=D();h(1),g("percentage",n.element.branchCoverage)}}function JT(e,t){if(1&e&&(v(0,"th",2),b(1),_()),2&e){const n=D();h(1),F(n.element.coveredMethods)}}function XT(e,t){if(1&e&&(v(0,"th",2),b(1),_()),2&e){const n=D();h(1),F(n.element.totalMethods)}}function ex(e,t){if(1&e&&(v(0,"th",3),b(1),_()),2&e){const n=D();g("title",n.element.methodCoverageRatioText),h(1),F(n.element.methodCoveragePercentage)}}function tx(e,t){if(1&e&&(v(0,"th",2),R(1,"coverage-bar",4),_()),2&e){const n=D();h(1),g("percentage",n.element.methodCoverage)}}const nx=function(e,t){return{"icon-plus":e,"icon-minus":t}};class Ss{constructor(){this.collapsed=!1,this.branchCoverageAvailable=!1,this.methodCoverageAvailable=!1}static#e=this.\u0275fac=function(n){return new(n||Ss)};static#t=this.\u0275cmp=ln({type:Ss,selectors:[["","codeelement-row",""]],inputs:{element:"element",collapsed:"collapsed",branchCoverageAvailable:"branchCoverageAvailable",methodCoverageAvailable:"methodCoverageAvailable"},attrs:qT,decls:24,vars:20,consts:[["href","#",3,"click"],[3,"ngClass"],[1,"right"],[1,"right",3,"title"],[3,"percentage"],["class","right",4,"ngIf"],["class","right",3,"title",4,"ngIf"]],template:function(n,r){1&n&&(v(0,"th")(1,"a",0),q("click",function(i){return r.element.toggleCollapse(i)}),R(2,"i",1),b(3),_()(),v(4,"th",2),b(5),_(),v(6,"th",2),b(7),_(),v(8,"th",2),b(9),_(),v(10,"th",2),b(11),_(),v(12,"th",3),b(13),_(),v(14,"th",2),R(15,"coverage-bar",4),_(),I(16,ZT,2,1,"th",5),I(17,QT,2,1,"th",5),I(18,YT,2,2,"th",6),I(19,KT,2,1,"th",5),I(20,JT,2,1,"th",5),I(21,XT,2,1,"th",5),I(22,ex,2,2,"th",6),I(23,tx,2,1,"th",5)),2&n&&(h(2),g("ngClass",rc(17,nx,r.element.collapsed,!r.element.collapsed)),h(1),Z(" ",r.element.name,""),h(2),F(r.element.coveredLines),h(2),F(r.element.uncoveredLines),h(2),F(r.element.coverableLines),h(2),F(r.element.totalLines),h(1),g("title",r.element.coverageRatioText),h(1),F(r.element.coveragePercentage),h(2),g("percentage",r.element.coverage),h(1),g("ngIf",r.branchCoverageAvailable),h(1),g("ngIf",r.branchCoverageAvailable),h(1),g("ngIf",r.branchCoverageAvailable),h(1),g("ngIf",r.branchCoverageAvailable),h(1),g("ngIf",r.methodCoverageAvailable),h(1),g("ngIf",r.methodCoverageAvailable),h(1),g("ngIf",r.methodCoverageAvailable),h(1),g("ngIf",r.methodCoverageAvailable))},dependencies:[So,Pr,Vo],encapsulation:2,changeDetection:0})}const rx=["coverage-history-chart",""];class As{constructor(){this.path=null,this._historicCoverages=[]}get historicCoverages(){return this._historicCoverages}set historicCoverages(t){if(this._historicCoverages=t,t.length>1){let n="";for(let r=0;r1),h(1),g("ngIf",null!==n.clazz.currentHistoricCoverage),h(1),g("ngIf",null===n.clazz.currentHistoricCoverage)}}function Ax(e,t){if(1&e&&(v(0,"td",2),R(1,"coverage-bar",5),_()),2&e){const n=D();h(1),g("percentage",n.clazz.branchCoverage)}}function Tx(e,t){if(1&e&&(Y(0),v(1,"div"),b(2),_(),v(3,"div",9),b(4),_(),K()),2&e){const n=D(2);h(1),Ht("currenthistory ",n.getClassName(n.clazz.coveredMethods,n.clazz.currentHistoricCoverage.cm),""),h(1),Z(" ",n.clazz.coveredMethods," "),h(1),g("title",n.clazz.currentHistoricCoverage.et),h(1),Z(" ",n.clazz.currentHistoricCoverage.cm," ")}}function xx(e,t){if(1&e&&(Y(0),b(1),K()),2&e){const n=D(2);h(1),Z(" ",n.clazz.coveredMethods," ")}}function Nx(e,t){if(1&e&&(v(0,"td",2),I(1,Tx,5,6,"ng-container",1),I(2,xx,2,1,"ng-container",1),_()),2&e){const n=D();h(1),g("ngIf",null!==n.clazz.currentHistoricCoverage),h(1),g("ngIf",null===n.clazz.currentHistoricCoverage)}}function Fx(e,t){if(1&e&&(Y(0),v(1,"div",10),b(2),_(),v(3,"div",9),b(4),_(),K()),2&e){const n=D(2);h(2),F(n.clazz.totalMethods),h(1),g("title",n.clazz.currentHistoricCoverage.et),h(1),F(n.clazz.currentHistoricCoverage.tm)}}function Ox(e,t){if(1&e&&(Y(0),b(1),K()),2&e){const n=D(2);h(1),Z(" ",n.clazz.totalMethods," ")}}function Rx(e,t){if(1&e&&(v(0,"td",2),I(1,Fx,5,3,"ng-container",1),I(2,Ox,2,1,"ng-container",1),_()),2&e){const n=D();h(1),g("ngIf",null!==n.clazz.currentHistoricCoverage),h(1),g("ngIf",null===n.clazz.currentHistoricCoverage)}}function Px(e,t){if(1&e&&R(0,"div",15),2&e){const n=D(2);Ar("title",n.translations.history+": "+n.translations.methodCoverage),g("historicCoverages",n.clazz.methodCoverageHistory)("ngClass",Wi(3,Iu,null!==n.clazz.currentHistoricCoverage))}}function kx(e,t){if(1&e&&(Y(0),v(1,"div"),b(2),_(),v(3,"div",9),b(4),_(),K()),2&e){const n=D(2);h(1),Ht("currenthistory ",n.getClassName(n.clazz.methodCoverage,n.clazz.currentHistoricCoverage.mcq),""),h(1),Z(" ",n.clazz.methodCoveragePercentage," "),h(1),g("title",n.clazz.currentHistoricCoverage.et+": "+n.clazz.currentHistoricCoverage.methodCoverageRatioText),h(1),Z("",n.clazz.currentHistoricCoverage.mcq,"%")}}function Lx(e,t){if(1&e&&(Y(0),b(1),K()),2&e){const n=D(2);h(1),Z(" ",n.clazz.methodCoveragePercentage," ")}}function Vx(e,t){if(1&e&&(v(0,"td",3),I(1,Px,1,5,"div",14),I(2,kx,5,6,"ng-container",1),I(3,Lx,2,1,"ng-container",1),_()),2&e){const n=D();g("title",n.clazz.methodCoverageRatioText),h(1),g("ngIf",n.clazz.methodCoverageHistory.length>1),h(1),g("ngIf",null!==n.clazz.currentHistoricCoverage),h(1),g("ngIf",null===n.clazz.currentHistoricCoverage)}}function Bx(e,t){if(1&e&&(v(0,"td",2),R(1,"coverage-bar",5),_()),2&e){const n=D();h(1),g("percentage",n.clazz.methodCoverage)}}class Ts{constructor(){this.translations={},this.branchCoverageAvailable=!1,this.methodCoverageAvailable=!1,this.historyComparisionDate=""}getClassName(t,n){return t>n?"lightgreen":t1),h(1),g("ngIf",null!==r.clazz.currentHistoricCoverage),h(1),g("ngIf",null===r.clazz.currentHistoricCoverage),h(2),g("percentage",r.clazz.coverage),h(1),g("ngIf",r.branchCoverageAvailable),h(1),g("ngIf",r.branchCoverageAvailable),h(1),g("ngIf",r.branchCoverageAvailable),h(1),g("ngIf",r.branchCoverageAvailable),h(1),g("ngIf",r.methodCoverageAvailable),h(1),g("ngIf",r.methodCoverageAvailable),h(1),g("ngIf",r.methodCoverageAvailable),h(1),g("ngIf",r.methodCoverageAvailable))},dependencies:[So,Pr,As,Vo],encapsulation:2,changeDetection:0})}function Hx(e,t){if(1&e&&(Y(0),b(1),K()),2&e){const n=D(2);h(1),F(n.translations.noGrouping)}}function jx(e,t){if(1&e&&(Y(0),b(1),K()),2&e){const n=D(2);h(1),F(n.translations.byAssembly)}}function $x(e,t){if(1&e&&(Y(0),b(1),K()),2&e){const n=D(2);h(1),F(n.translations.byNamespace+" "+n.settings.grouping)}}function Ux(e,t){if(1&e&&(v(0,"option",31),b(1),_()),2&e){const n=t.$implicit;g("value",n),h(1),F(n)}}function zx(e,t){1&e&&R(0,"br")}function Gx(e,t){if(1&e&&(v(0,"option",39),b(1),_()),2&e){const n=D(4);h(1),Z(" ",n.translations.branchCoverageIncreaseOnly," ")}}function Wx(e,t){if(1&e&&(v(0,"option",40),b(1),_()),2&e){const n=D(4);h(1),Z(" ",n.translations.branchCoverageDecreaseOnly," ")}}function qx(e,t){if(1&e&&(v(0,"option",41),b(1),_()),2&e){const n=D(4);h(1),Z(" ",n.translations.methodCoverageIncreaseOnly," ")}}function Zx(e,t){if(1&e&&(v(0,"option",42),b(1),_()),2&e){const n=D(4);h(1),Z(" ",n.translations.methodCoverageDecreaseOnly," ")}}function Qx(e,t){if(1&e){const n=dt();v(0,"div")(1,"select",28),q("ngModelChange",function(o){return ie(n),se(D(3).settings.historyComparisionType=o)}),v(2,"option",29),b(3),_(),v(4,"option",32),b(5),_(),v(6,"option",33),b(7),_(),v(8,"option",34),b(9),_(),I(10,Gx,2,1,"option",35),I(11,Wx,2,1,"option",36),I(12,qx,2,1,"option",37),I(13,Zx,2,1,"option",38),_()()}if(2&e){const n=D(3);h(1),g("ngModel",n.settings.historyComparisionType),h(2),F(n.translations.filter),h(2),F(n.translations.allChanges),h(2),F(n.translations.lineCoverageIncreaseOnly),h(2),F(n.translations.lineCoverageDecreaseOnly),h(1),g("ngIf",n.branchCoverageAvailable),h(1),g("ngIf",n.branchCoverageAvailable),h(1),g("ngIf",n.methodCoverageAvailable),h(1),g("ngIf",n.methodCoverageAvailable)}}function Yx(e,t){if(1&e){const n=dt();Y(0),v(1,"div"),b(2),v(3,"select",28),q("ngModelChange",function(o){return ie(n),se(D(2).settings.historyComparisionDate=o)})("ngModelChange",function(){return ie(n),se(D(2).updateCurrentHistoricCoverage())}),v(4,"option",29),b(5),_(),I(6,Ux,2,2,"option",30),_()(),I(7,zx,1,0,"br",0),I(8,Qx,14,9,"div",0),K()}if(2&e){const n=D(2);h(2),Z(" ",n.translations.compareHistory," "),h(1),g("ngModel",n.settings.historyComparisionDate),h(2),F(n.translations.date),h(1),g("ngForOf",n.historicCoverageExecutionTimes),h(1),g("ngIf",""!==n.settings.historyComparisionDate),h(1),g("ngIf",""!==n.settings.historyComparisionDate)}}function Kx(e,t){1&e&&R(0,"col",10)}function Jx(e,t){1&e&&R(0,"col",13)}function Xx(e,t){1&e&&R(0,"col",14)}function eN(e,t){1&e&&R(0,"col",15)}function tN(e,t){1&e&&R(0,"col",10)}function nN(e,t){1&e&&R(0,"col",13)}function rN(e,t){1&e&&R(0,"col",14)}function oN(e,t){1&e&&R(0,"col",15)}function iN(e,t){if(1&e&&(v(0,"th",43),b(1),_()),2&e){const n=D(2);h(1),F(n.translations.branchCoverage)}}function sN(e,t){if(1&e&&(v(0,"th",43),b(1),_()),2&e){const n=D(2);h(1),F(n.translations.methodCoverage)}}const vt=function(e,t,n){return{"icon-up-dir_active":e,"icon-down-dir_active":t,"icon-down-dir":n}};function aN(e,t){if(1&e){const n=dt();v(0,"th",5)(1,"a",2),q("click",function(o){return ie(n),se(D(2).updateSorting("covered_branches",o))}),R(2,"i",23),b(3),_()()}if(2&e){const n=D(2);h(2),g("ngClass",Re(2,vt,"covered_branches"===n.settings.sortBy&&"desc"===n.settings.sortOrder,"covered_branches"===n.settings.sortBy&&"asc"===n.settings.sortOrder,"covered_branches"!==n.settings.sortBy)),h(1),F(n.translations.covered)}}function lN(e,t){if(1&e){const n=dt();v(0,"th",5)(1,"a",2),q("click",function(o){return ie(n),se(D(2).updateSorting("total_branches",o))}),R(2,"i",23),b(3),_()()}if(2&e){const n=D(2);h(2),g("ngClass",Re(2,vt,"total_branches"===n.settings.sortBy&&"desc"===n.settings.sortOrder,"total_branches"===n.settings.sortBy&&"asc"===n.settings.sortOrder,"total_branches"!==n.settings.sortBy)),h(1),F(n.translations.total)}}function cN(e,t){if(1&e){const n=dt();v(0,"th",24)(1,"a",2),q("click",function(o){return ie(n),se(D(2).updateSorting("branchcoverage",o))}),R(2,"i",23),b(3),_()()}if(2&e){const n=D(2);h(2),g("ngClass",Re(2,vt,"branchcoverage"===n.settings.sortBy&&"desc"===n.settings.sortOrder,"branchcoverage"===n.settings.sortBy&&"asc"===n.settings.sortOrder,"branchcoverage"!==n.settings.sortBy)),h(1),F(n.translations.percentage)}}function uN(e,t){if(1&e){const n=dt();v(0,"th",5)(1,"a",2),q("click",function(o){return ie(n),se(D(2).updateSorting("covered_methods",o))}),R(2,"i",23),b(3),_()()}if(2&e){const n=D(2);h(2),g("ngClass",Re(2,vt,"covered_methods"===n.settings.sortBy&&"desc"===n.settings.sortOrder,"covered_methods"===n.settings.sortBy&&"asc"===n.settings.sortOrder,"covered_methods"!==n.settings.sortBy)),h(1),F(n.translations.covered)}}function dN(e,t){if(1&e){const n=dt();v(0,"th",5)(1,"a",2),q("click",function(o){return ie(n),se(D(2).updateSorting("total_methods",o))}),R(2,"i",23),b(3),_()()}if(2&e){const n=D(2);h(2),g("ngClass",Re(2,vt,"total_methods"===n.settings.sortBy&&"desc"===n.settings.sortOrder,"total_methods"===n.settings.sortBy&&"asc"===n.settings.sortOrder,"total_methods"!==n.settings.sortBy)),h(1),F(n.translations.total)}}function fN(e,t){if(1&e){const n=dt();v(0,"th",24)(1,"a",2),q("click",function(o){return ie(n),se(D(2).updateSorting("methodcoverage",o))}),R(2,"i",23),b(3),_()()}if(2&e){const n=D(2);h(2),g("ngClass",Re(2,vt,"methodcoverage"===n.settings.sortBy&&"desc"===n.settings.sortOrder,"methodcoverage"===n.settings.sortBy&&"asc"===n.settings.sortOrder,"methodcoverage"!==n.settings.sortBy)),h(1),F(n.translations.percentage)}}function hN(e,t){if(1&e&&R(0,"tr",45),2&e){const n=D().$implicit,r=D(2);g("element",n)("collapsed",n.collapsed)("branchCoverageAvailable",r.branchCoverageAvailable)("methodCoverageAvailable",r.methodCoverageAvailable)}}function pN(e,t){if(1&e&&R(0,"tr",47),2&e){const n=D().$implicit,r=D(3);g("clazz",n)("translations",r.translations)("branchCoverageAvailable",r.branchCoverageAvailable)("methodCoverageAvailable",r.methodCoverageAvailable)("historyComparisionDate",r.settings.historyComparisionDate)}}function gN(e,t){if(1&e&&(Y(0),I(1,pN,1,5,"tr",46),K()),2&e){const n=t.$implicit,r=D().$implicit,o=D(2);h(1),g("ngIf",!r.collapsed&&n.visible(o.settings.filter,o.settings.historyComparisionType))}}function mN(e,t){if(1&e&&R(0,"tr",50),2&e){const n=D().$implicit,r=D(5);g("clazz",n)("translations",r.translations)("branchCoverageAvailable",r.branchCoverageAvailable)("methodCoverageAvailable",r.methodCoverageAvailable)("historyComparisionDate",r.settings.historyComparisionDate)}}function _N(e,t){if(1&e&&(Y(0),I(1,mN,1,5,"tr",49),K()),2&e){const n=t.$implicit,r=D(2).$implicit,o=D(3);h(1),g("ngIf",!r.collapsed&&n.visible(o.settings.filter,o.settings.historyComparisionType))}}function vN(e,t){if(1&e&&(Y(0),R(1,"tr",48),I(2,_N,2,1,"ng-container",27),K()),2&e){const n=D().$implicit,r=D(3);h(1),g("element",n)("collapsed",n.collapsed)("branchCoverageAvailable",r.branchCoverageAvailable)("methodCoverageAvailable",r.methodCoverageAvailable),h(1),g("ngForOf",n.classes)}}function yN(e,t){if(1&e&&(Y(0),I(1,vN,3,5,"ng-container",0),K()),2&e){const n=t.$implicit,r=D().$implicit,o=D(2);h(1),g("ngIf",!r.collapsed&&n.visible(o.settings.filter,o.settings.historyComparisionType))}}function DN(e,t){if(1&e&&(Y(0),I(1,hN,1,4,"tr",44),I(2,gN,2,1,"ng-container",27),I(3,yN,2,1,"ng-container",27),K()),2&e){const n=t.$implicit,r=D(2);h(1),g("ngIf",n.visible(r.settings.filter,r.settings.historyComparisionType)),h(1),g("ngForOf",n.classes),h(1),g("ngForOf",n.subElements)}}function CN(e,t){if(1&e){const n=dt();v(0,"div")(1,"div",1)(2,"div")(3,"a",2),q("click",function(o){return ie(n),se(D().collapseAll(o))}),b(4),_(),b(5," | "),v(6,"a",2),q("click",function(o){return ie(n),se(D().expandAll(o))}),b(7),_()(),v(8,"div",3),I(9,Hx,2,1,"ng-container",0),I(10,jx,2,1,"ng-container",0),I(11,$x,2,1,"ng-container",0),R(12,"br"),b(13),v(14,"input",4),q("ngModelChange",function(o){return ie(n),se(D().settings.grouping=o)})("ngModelChange",function(){return ie(n),se(D().updateCoverageInfo())}),_()(),v(15,"div",3),I(16,Yx,9,6,"ng-container",0),_(),v(17,"div",5)(18,"span"),b(19),_(),v(20,"input",6),q("ngModelChange",function(o){return ie(n),se(D().settings.filter=o)}),_()()(),v(21,"div",7)(22,"table",8)(23,"colgroup"),R(24,"col",9)(25,"col",10)(26,"col",11)(27,"col",12)(28,"col",13)(29,"col",14)(30,"col",15),I(31,Kx,1,0,"col",16),I(32,Jx,1,0,"col",17),I(33,Xx,1,0,"col",18),I(34,eN,1,0,"col",19),I(35,tN,1,0,"col",16),I(36,nN,1,0,"col",17),I(37,rN,1,0,"col",18),I(38,oN,1,0,"col",19),_(),v(39,"thead")(40,"tr",20),R(41,"th"),v(42,"th",21),b(43),_(),I(44,iN,2,1,"th",22),I(45,sN,2,1,"th",22),_(),v(46,"tr")(47,"th")(48,"a",2),q("click",function(o){return ie(n),se(D().updateSorting("name",o))}),R(49,"i",23),b(50),_()(),v(51,"th",5)(52,"a",2),q("click",function(o){return ie(n),se(D().updateSorting("covered",o))}),R(53,"i",23),b(54),_()(),v(55,"th",5)(56,"a",2),q("click",function(o){return ie(n),se(D().updateSorting("uncovered",o))}),R(57,"i",23),b(58),_()(),v(59,"th",5)(60,"a",2),q("click",function(o){return ie(n),se(D().updateSorting("coverable",o))}),R(61,"i",23),b(62),_()(),v(63,"th",5)(64,"a",2),q("click",function(o){return ie(n),se(D().updateSorting("total",o))}),R(65,"i",23),b(66),_()(),v(67,"th",24)(68,"a",2),q("click",function(o){return ie(n),se(D().updateSorting("coverage",o))}),R(69,"i",23),b(70),_()(),I(71,aN,4,6,"th",25),I(72,lN,4,6,"th",25),I(73,cN,4,6,"th",26),I(74,uN,4,6,"th",25),I(75,dN,4,6,"th",25),I(76,fN,4,6,"th",26),_()(),v(77,"tbody"),I(78,DN,4,3,"ng-container",27),_()()()()}if(2&e){const n=D();h(4),F(n.translations.collapseAll),h(3),F(n.translations.expandAll),h(2),g("ngIf",-1===n.settings.grouping),h(1),g("ngIf",0===n.settings.grouping),h(1),g("ngIf",n.settings.grouping>0),h(2),Z(" ",n.translations.grouping," "),h(1),g("max",n.settings.groupingMaximum)("ngModel",n.settings.grouping),h(2),g("ngIf",n.historicCoverageExecutionTimes.length>0),h(3),Z("",n.translations.filter," "),h(1),g("ngModel",n.settings.filter),h(11),g("ngIf",n.branchCoverageAvailable),h(1),g("ngIf",n.branchCoverageAvailable),h(1),g("ngIf",n.branchCoverageAvailable),h(1),g("ngIf",n.branchCoverageAvailable),h(1),g("ngIf",n.methodCoverageAvailable),h(1),g("ngIf",n.methodCoverageAvailable),h(1),g("ngIf",n.methodCoverageAvailable),h(1),g("ngIf",n.methodCoverageAvailable),h(5),F(n.translations.coverage),h(1),g("ngIf",n.branchCoverageAvailable),h(1),g("ngIf",n.methodCoverageAvailable),h(4),g("ngClass",Re(41,vt,"name"===n.settings.sortBy&&"desc"===n.settings.sortOrder,"name"===n.settings.sortBy&&"asc"===n.settings.sortOrder,"name"!==n.settings.sortBy)),h(1),F(n.translations.name),h(3),g("ngClass",Re(45,vt,"covered"===n.settings.sortBy&&"desc"===n.settings.sortOrder,"covered"===n.settings.sortBy&&"asc"===n.settings.sortOrder,"covered"!==n.settings.sortBy)),h(1),F(n.translations.covered),h(3),g("ngClass",Re(49,vt,"uncovered"===n.settings.sortBy&&"desc"===n.settings.sortOrder,"uncovered"===n.settings.sortBy&&"asc"===n.settings.sortOrder,"uncovered"!==n.settings.sortBy)),h(1),F(n.translations.uncovered),h(3),g("ngClass",Re(53,vt,"coverable"===n.settings.sortBy&&"desc"===n.settings.sortOrder,"coverable"===n.settings.sortBy&&"asc"===n.settings.sortOrder,"coverable"!==n.settings.sortBy)),h(1),F(n.translations.coverable),h(3),g("ngClass",Re(57,vt,"total"===n.settings.sortBy&&"desc"===n.settings.sortOrder,"total"===n.settings.sortBy&&"asc"===n.settings.sortOrder,"total"!==n.settings.sortBy)),h(1),F(n.translations.total),h(3),g("ngClass",Re(61,vt,"coverage"===n.settings.sortBy&&"desc"===n.settings.sortOrder,"coverage"===n.settings.sortBy&&"asc"===n.settings.sortOrder,"coverage"!==n.settings.sortBy)),h(1),F(n.translations.percentage),h(1),g("ngIf",n.branchCoverageAvailable),h(1),g("ngIf",n.branchCoverageAvailable),h(1),g("ngIf",n.branchCoverageAvailable),h(1),g("ngIf",n.methodCoverageAvailable),h(1),g("ngIf",n.methodCoverageAvailable),h(1),g("ngIf",n.methodCoverageAvailable),h(2),g("ngForOf",n.codeElements)}}class xs{constructor(t){this.queryString="",this.historicCoverageExecutionTimes=[],this.branchCoverageAvailable=!1,this.methodCoverageAvailable=!1,this.codeElements=[],this.translations={},this.settings=new jT,this.window=t.nativeWindow}ngOnInit(){this.historicCoverageExecutionTimes=this.window.historicCoverageExecutionTimes,this.branchCoverageAvailable=this.window.branchCoverageAvailable,this.methodCoverageAvailable=this.window.methodCoverageAvailable,this.translations=this.window.translations;let t=!1;if(void 0!==this.window.history&&void 0!==this.window.history.replaceState&&null!==this.window.history.state&&null!=this.window.history.state.coverageInfoSettings)console.log("Coverage info: Restoring from history",this.window.history.state.coverageInfoSettings),t=!0,this.settings=JSON.parse(JSON.stringify(this.window.history.state.coverageInfoSettings));else{let r=0,o=this.window.assemblies;for(let i=0;i-1&&(this.queryString=window.location.href.substring(n)),this.updateCoverageInfo(),t&&this.restoreCollapseState()}onDonBeforeUnlodad(){if(this.saveCollapseState(),void 0!==this.window.history&&void 0!==this.window.history.replaceState){console.log("Coverage info: Updating history",this.settings);let t=new Vv;null!==window.history.state&&(t=JSON.parse(JSON.stringify(this.window.history.state))),t.coverageInfoSettings=JSON.parse(JSON.stringify(this.settings)),window.history.replaceState(t,"")}}updateCoverageInfo(){let t=(new Date).getTime(),n=this.window.assemblies,r=[],o=0;if(0===this.settings.grouping)for(let a=0;a{for(let r=0;r{for(let o=0;ot&&(r[o].collapsed=this.settings.collapseStates[t]),t++,n(r[o].subElements)};n(this.codeElements)}static#e=this.\u0275fac=function(n){return new(n||xs)(S(Gn))};static#t=this.\u0275cmp=ln({type:xs,selectors:[["coverage-info"]],hostBindings:function(n,r){1&n&&q("beforeunload",function(){return r.onDonBeforeUnlodad()},0,gl)},decls:1,vars:1,consts:[[4,"ngIf"],[1,"customizebox"],["href","#",3,"click"],[1,"center"],["type","range","step","1","min","-1",3,"max","ngModel","ngModelChange"],[1,"right"],["type","text",3,"ngModel","ngModelChange"],[1,"table-responsive"],[1,"overview","table-fixed","stripped"],[1,"column-min-200"],[1,"column90"],[1,"column105"],[1,"column100"],[1,"column70"],[1,"column98"],[1,"column112"],["class","column90",4,"ngIf"],["class","column70",4,"ngIf"],["class","column98",4,"ngIf"],["class","column112",4,"ngIf"],[1,"header"],["colspan","6",1,"center"],["class","center","colspan","4",4,"ngIf"],[1,"icon-down-dir",3,"ngClass"],["colspan","2",1,"center"],["class","right",4,"ngIf"],["class","center","colspan","2",4,"ngIf"],[4,"ngFor","ngForOf"],[3,"ngModel","ngModelChange"],["value",""],[3,"value",4,"ngFor","ngForOf"],[3,"value"],["value","allChanges"],["value","lineCoverageIncreaseOnly"],["value","lineCoverageDecreaseOnly"],["value","branchCoverageIncreaseOnly",4,"ngIf"],["value","branchCoverageDecreaseOnly",4,"ngIf"],["value","methodCoverageIncreaseOnly",4,"ngIf"],["value","methodCoverageDecreaseOnly",4,"ngIf"],["value","branchCoverageIncreaseOnly"],["value","branchCoverageDecreaseOnly"],["value","methodCoverageIncreaseOnly"],["value","methodCoverageDecreaseOnly"],["colspan","4",1,"center"],["codeelement-row","",3,"element","collapsed","branchCoverageAvailable","methodCoverageAvailable",4,"ngIf"],["codeelement-row","",3,"element","collapsed","branchCoverageAvailable","methodCoverageAvailable"],["class-row","",3,"clazz","translations","branchCoverageAvailable","methodCoverageAvailable","historyComparisionDate",4,"ngIf"],["class-row","",3,"clazz","translations","branchCoverageAvailable","methodCoverageAvailable","historyComparisionDate"],["codeelement-row","",1,"namespace",3,"element","collapsed","branchCoverageAvailable","methodCoverageAvailable"],["class","namespace","class-row","",3,"clazz","translations","branchCoverageAvailable","methodCoverageAvailable","historyComparisionDate",4,"ngIf"],["class-row","",1,"namespace",3,"clazz","translations","branchCoverageAvailable","methodCoverageAvailable","historyComparisionDate"]],template:function(n,r){1&n&&I(0,CN,79,65,"div",0),2&n&&g("ngIf",r.codeElements.length>0)},dependencies:[So,Hc,Pr,Du,wu,No,mu,Lo,ru,Ms,Ss,Ts],encapsulation:2})}class wN{constructor(){this.assembly="",this.numberOfRiskHotspots=10,this.filter="",this.sortBy="",this.sortOrder="asc"}}function bN(e,t){if(1&e&&(v(0,"option",15),b(1),_()),2&e){const n=t.$implicit;g("value",n),h(1),F(n)}}function EN(e,t){if(1&e&&(v(0,"span"),b(1),_()),2&e){const n=D(2);h(1),F(n.translations.top)}}function IN(e,t){1&e&&(v(0,"option",22),b(1,"20"),_())}function MN(e,t){1&e&&(v(0,"option",23),b(1,"50"),_())}function SN(e,t){1&e&&(v(0,"option",24),b(1,"100"),_())}function AN(e,t){if(1&e&&(v(0,"option",15),b(1),_()),2&e){const n=D(3);g("value",n.totalNumberOfRiskHotspots),h(1),F(n.translations.all)}}function TN(e,t){if(1&e){const n=dt();v(0,"select",16),q("ngModelChange",function(o){return ie(n),se(D(2).settings.numberOfRiskHotspots=o)}),v(1,"option",17),b(2,"10"),_(),I(3,IN,2,0,"option",18),I(4,MN,2,0,"option",19),I(5,SN,2,0,"option",20),I(6,AN,2,2,"option",21),_()}if(2&e){const n=D(2);g("ngModel",n.settings.numberOfRiskHotspots),h(3),g("ngIf",n.totalNumberOfRiskHotspots>10),h(1),g("ngIf",n.totalNumberOfRiskHotspots>20),h(1),g("ngIf",n.totalNumberOfRiskHotspots>50),h(1),g("ngIf",n.totalNumberOfRiskHotspots>100)}}function xN(e,t){1&e&&R(0,"col",25)}const Ns=function(e,t,n){return{"icon-up-dir_active":e,"icon-down-dir_active":t,"icon-down-dir":n}};function NN(e,t){if(1&e){const n=dt();v(0,"th")(1,"a",12),q("click",function(o){const s=ie(n).index;return se(D(2).updateSorting(""+s,o))}),R(2,"i",13),b(3),_(),v(4,"a",26),R(5,"i",27),_()()}if(2&e){const n=t.$implicit,r=t.index,o=D(2);h(2),g("ngClass",Re(3,Ns,o.settings.sortBy===""+r&&"desc"===o.settings.sortOrder,o.settings.sortBy===""+r&&"asc"===o.settings.sortOrder,o.settings.sortBy!==""+r)),h(1),F(n.name),h(1),Ar("href",n.explanationUrl,dr)}}const FN=function(e,t){return{lightred:e,lightgreen:t}};function ON(e,t){if(1&e&&(v(0,"td",30),b(1),_()),2&e){const n=t.$implicit;g("ngClass",rc(2,FN,n.exceeded,!n.exceeded)),h(1),F(n.value)}}function RN(e,t){if(1&e&&(v(0,"tr")(1,"td"),b(2),_(),v(3,"td")(4,"a",26),b(5),_()(),v(6,"td",28)(7,"a",26),b(8),_()(),I(9,ON,2,5,"td",29),_()),2&e){const n=t.$implicit,r=D(2);h(2),F(n.assembly),h(2),g("href",n.reportPath+r.queryString,dr),h(1),F(n.class),h(1),g("title",n.methodName),h(1),g("href",n.reportPath+r.queryString+"#file"+n.fileIndex+"_line"+n.line,dr),h(1),Z(" ",n.methodShortName," "),h(1),g("ngForOf",n.metrics)}}function PN(e,t){if(1&e){const n=dt();v(0,"div")(1,"div",1)(2,"div")(3,"select",2),q("ngModelChange",function(o){return ie(n),se(D().settings.assembly=o)})("ngModelChange",function(){return ie(n),se(D().updateRiskHotpots())}),v(4,"option",3),b(5),_(),I(6,bN,2,2,"option",4),_()(),v(7,"div",5),I(8,EN,2,1,"span",0),I(9,TN,7,5,"select",6),_(),R(10,"div",5),v(11,"div",7)(12,"span"),b(13),_(),v(14,"input",8),q("ngModelChange",function(o){return ie(n),se(D().settings.filter=o)})("ngModelChange",function(){return ie(n),se(D().updateRiskHotpots())}),_()()(),v(15,"div",9)(16,"table",10)(17,"colgroup"),R(18,"col")(19,"col")(20,"col"),I(21,xN,1,0,"col",11),_(),v(22,"thead")(23,"tr")(24,"th")(25,"a",12),q("click",function(o){return ie(n),se(D().updateSorting("assembly",o))}),R(26,"i",13),b(27),_()(),v(28,"th")(29,"a",12),q("click",function(o){return ie(n),se(D().updateSorting("class",o))}),R(30,"i",13),b(31),_()(),v(32,"th")(33,"a",12),q("click",function(o){return ie(n),se(D().updateSorting("method",o))}),R(34,"i",13),b(35),_()(),I(36,NN,6,7,"th",14),_()(),v(37,"tbody"),I(38,RN,10,7,"tr",14),function qg(e,t){const n=J();let r;const o=e+22;n.firstCreatePass?(r=function xI(e,t){if(t)for(let n=t.length-1;n>=0;n--){const r=t[n];if(e===r.name)return r}}(t,n.pipeRegistry),n.data[o]=r,r.onDestroy&&(n.destroyHooks||(n.destroyHooks=[])).push(o,r.onDestroy)):r=n.data[o];const i=r.factory||(r.factory=Nn(r.type)),s=ft(S);try{const a=ai(!1),l=i();return ai(a),function DE(e,t,n,r){n>=e.data.length&&(e.data[n]=null,e.blueprint[n]=null),t[n]=r}(n,w(),o,l),l}finally{ft(s)}}(39,"slice"),_()()()()}if(2&e){const n=D();h(3),g("ngModel",n.settings.assembly),h(2),F(n.translations.assembly),h(1),g("ngForOf",n.assemblies),h(2),g("ngIf",n.totalNumberOfRiskHotspots>10),h(1),g("ngIf",n.totalNumberOfRiskHotspots>10),h(4),Z("",n.translations.filter," "),h(1),g("ngModel",n.settings.filter),h(7),g("ngForOf",n.riskHotspotMetrics),h(5),g("ngClass",Re(20,Ns,"assembly"===n.settings.sortBy&&"desc"===n.settings.sortOrder,"assembly"===n.settings.sortBy&&"asc"===n.settings.sortOrder,"assembly"!==n.settings.sortBy)),h(1),F(n.translations.assembly),h(3),g("ngClass",Re(24,Ns,"class"===n.settings.sortBy&&"desc"===n.settings.sortOrder,"class"===n.settings.sortBy&&"asc"===n.settings.sortOrder,"class"!==n.settings.sortBy)),h(1),F(n.translations.class),h(3),g("ngClass",Re(28,Ns,"method"===n.settings.sortBy&&"desc"===n.settings.sortOrder,"method"===n.settings.sortBy&&"asc"===n.settings.sortOrder,"method"!==n.settings.sortBy)),h(1),F(n.translations.method),h(1),g("ngForOf",n.riskHotspotMetrics),h(2),g("ngForOf",function Zg(e,t,n,r,o){const i=e+22,s=w(),a=function Jn(e,t){return e[t]}(s,i);return function Co(e,t){return e[1].data[t].pure}(s,i)?zg(s,We(),t,a.transform,n,r,o,a):a.transform(n,r,o)}(39,16,n.riskHotspots,0,n.settings.numberOfRiskHotspots))}}class Fs{constructor(t){this.queryString="",this.riskHotspotMetrics=[],this.riskHotspots=[],this.totalNumberOfRiskHotspots=0,this.assemblies=[],this.translations={},this.settings=new wN,this.window=t.nativeWindow}ngOnInit(){this.riskHotspotMetrics=this.window.riskHotspotMetrics,this.translations=this.window.translations,void 0!==this.window.history&&void 0!==this.window.history.replaceState&&null!==this.window.history.state&&null!=this.window.history.state.riskHotspotsSettings&&(console.log("Risk hotspots: Restoring from history",this.window.history.state.riskHotspotsSettings),this.settings=JSON.parse(JSON.stringify(this.window.history.state.riskHotspotsSettings)));const t=window.location.href.indexOf("?");t>-1&&(this.queryString=window.location.href.substring(t)),this.updateRiskHotpots()}onDonBeforeUnlodad(){if(void 0!==this.window.history&&void 0!==this.window.history.replaceState){console.log("Risk hotspots: Updating history",this.settings);let t=new Vv;null!==window.history.state&&(t=JSON.parse(JSON.stringify(this.window.history.state))),t.riskHotspotsSettings=JSON.parse(JSON.stringify(this.settings)),window.history.replaceState(t,"")}}updateRiskHotpots(){const t=this.window.riskHotspots;if(this.totalNumberOfRiskHotspots=t.length,0===this.assemblies.length){let i=[];for(let s=0;s0)},dependencies:[So,Hc,Pr,Du,wu,No,Lo,ru,Ms,d_],encapsulation:2})}class Os{static#e=this.\u0275fac=function(n){return new(n||Os)};static#t=this.\u0275mod=cn({type:Os,bootstrap:[Fs,xs]});static#n=this.\u0275inj=zt({providers:[Gn],imports:[DA,BT]})}yA().bootstrapModule(Os).catch(e=>console.error(e))}},ve=>{ve(ve.s=103)}]); \ No newline at end of file +"use strict";(self.webpackChunkcoverage_app=self.webpackChunkcoverage_app||[]).push([[179],{938:()=>{function me(e){return"function"==typeof e}function $o(e){const t=e(r=>{Error.call(r),r.stack=(new Error).stack});return t.prototype=Object.create(Error.prototype),t.prototype.constructor=t,t}const Uo=$o(e=>function(t){e(this),this.message=t?`${t.length} errors occurred during unsubscription:\n${t.map((r,o)=>`${o+1}) ${r.toString()}`).join("\n ")}`:"",this.name="UnsubscriptionError",this.errors=t});function Rr(e,n){if(e){const t=e.indexOf(n);0<=t&&e.splice(t,1)}}class Tt{constructor(n){this.initialTeardown=n,this.closed=!1,this._parentage=null,this._teardowns=null}unsubscribe(){let n;if(!this.closed){this.closed=!0;const{_parentage:t}=this;if(t)if(this._parentage=null,Array.isArray(t))for(const i of t)i.remove(this);else t.remove(this);const{initialTeardown:r}=this;if(me(r))try{r()}catch(i){n=i instanceof Uo?i.errors:[i]}const{_teardowns:o}=this;if(o){this._teardowns=null;for(const i of o)try{uu(i)}catch(s){n=n??[],s instanceof Uo?n=[...n,...s.errors]:n.push(s)}}if(n)throw new Uo(n)}}add(n){var t;if(n&&n!==this)if(this.closed)uu(n);else{if(n instanceof Tt){if(n.closed||n._hasParent(this))return;n._addParent(this)}(this._teardowns=null!==(t=this._teardowns)&&void 0!==t?t:[]).push(n)}}_hasParent(n){const{_parentage:t}=this;return t===n||Array.isArray(t)&&t.includes(n)}_addParent(n){const{_parentage:t}=this;this._parentage=Array.isArray(t)?(t.push(n),t):t?[t,n]:n}_removeParent(n){const{_parentage:t}=this;t===n?this._parentage=null:Array.isArray(t)&&Rr(t,n)}remove(n){const{_teardowns:t}=this;t&&Rr(t,n),n instanceof Tt&&n._removeParent(this)}}Tt.EMPTY=(()=>{const e=new Tt;return e.closed=!0,e})();const lu=Tt.EMPTY;function cu(e){return e instanceof Tt||e&&"closed"in e&&me(e.remove)&&me(e.add)&&me(e.unsubscribe)}function uu(e){me(e)?e():e.unsubscribe()}const wn={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},zo={setTimeout(...e){const{delegate:n}=zo;return(n?.setTimeout||setTimeout)(...e)},clearTimeout(e){const{delegate:n}=zo;return(n?.clearTimeout||clearTimeout)(e)},delegate:void 0};function du(e){zo.setTimeout(()=>{const{onUnhandledError:n}=wn;if(!n)throw e;n(e)})}function Go(){}const av=As("C",void 0,void 0);function As(e,n,t){return{kind:e,value:n,error:t}}let bn=null;function Wo(e){if(wn.useDeprecatedSynchronousErrorHandling){const n=!bn;if(n&&(bn={errorThrown:!1,error:null}),e(),n){const{errorThrown:t,error:r}=bn;if(bn=null,t)throw r}}else e()}class Ts extends Tt{constructor(n){super(),this.isStopped=!1,n?(this.destination=n,cu(n)&&n.add(this)):this.destination=dv}static create(n,t,r){return new xs(n,t,r)}next(n){this.isStopped?Fs(function cv(e){return As("N",e,void 0)}(n),this):this._next(n)}error(n){this.isStopped?Fs(function lv(e){return As("E",void 0,e)}(n),this):(this.isStopped=!0,this._error(n))}complete(){this.isStopped?Fs(av,this):(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe(),this.destination=null)}_next(n){this.destination.next(n)}_error(n){try{this.destination.error(n)}finally{this.unsubscribe()}}_complete(){try{this.destination.complete()}finally{this.unsubscribe()}}}class xs extends Ts{constructor(n,t,r){let o;if(super(),me(n))o=n;else if(n){let i;({next:o,error:t,complete:r}=n),this&&wn.useDeprecatedNextContext?(i=Object.create(n),i.unsubscribe=()=>this.unsubscribe()):i=n,o=o?.bind(i),t=t?.bind(i),r=r?.bind(i)}this.destination={next:o?Ns(o):Go,error:Ns(t??fu),complete:r?Ns(r):Go}}}function Ns(e,n){return(...t)=>{try{e(...t)}catch(r){wn.useDeprecatedSynchronousErrorHandling?function uv(e){wn.useDeprecatedSynchronousErrorHandling&&bn&&(bn.errorThrown=!0,bn.error=e)}(r):du(r)}}}function fu(e){throw e}function Fs(e,n){const{onStoppedNotification:t}=wn;t&&zo.setTimeout(()=>t(e,n))}const dv={closed:!0,next:Go,error:fu,complete:Go},Os="function"==typeof Symbol&&Symbol.observable||"@@observable";function hu(e){return e}let ze=(()=>{class e{constructor(t){t&&(this._subscribe=t)}lift(t){const r=new e;return r.source=this,r.operator=t,r}subscribe(t,r,o){const i=function hv(e){return e&&e instanceof Ts||function fv(e){return e&&me(e.next)&&me(e.error)&&me(e.complete)}(e)&&cu(e)}(t)?t:new xs(t,r,o);return Wo(()=>{const{operator:s,source:a}=this;i.add(s?s.call(i,a):a?this._subscribe(i):this._trySubscribe(i))}),i}_trySubscribe(t){try{return this._subscribe(t)}catch(r){t.error(r)}}forEach(t,r){return new(r=gu(r))((o,i)=>{let s;s=this.subscribe(a=>{try{t(a)}catch(l){i(l),s?.unsubscribe()}},i,o)})}_subscribe(t){var r;return null===(r=this.source)||void 0===r?void 0:r.subscribe(t)}[Os](){return this}pipe(...t){return function pu(e){return 0===e.length?hu:1===e.length?e[0]:function(t){return e.reduce((r,o)=>o(r),t)}}(t)(this)}toPromise(t){return new(t=gu(t))((r,o)=>{let i;this.subscribe(s=>i=s,s=>o(s),()=>r(i))})}}return e.create=n=>new e(n),e})();function gu(e){var n;return null!==(n=e??wn.Promise)&&void 0!==n?n:Promise}const pv=$o(e=>function(){e(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"});let Rs=(()=>{class e extends ze{constructor(){super(),this.closed=!1,this.observers=[],this.isStopped=!1,this.hasError=!1,this.thrownError=null}lift(t){const r=new mu(this,this);return r.operator=t,r}_throwIfClosed(){if(this.closed)throw new pv}next(t){Wo(()=>{if(this._throwIfClosed(),!this.isStopped){const r=this.observers.slice();for(const o of r)o.next(t)}})}error(t){Wo(()=>{if(this._throwIfClosed(),!this.isStopped){this.hasError=this.isStopped=!0,this.thrownError=t;const{observers:r}=this;for(;r.length;)r.shift().error(t)}})}complete(){Wo(()=>{if(this._throwIfClosed(),!this.isStopped){this.isStopped=!0;const{observers:t}=this;for(;t.length;)t.shift().complete()}})}unsubscribe(){this.isStopped=this.closed=!0,this.observers=null}get observed(){var t;return(null===(t=this.observers)||void 0===t?void 0:t.length)>0}_trySubscribe(t){return this._throwIfClosed(),super._trySubscribe(t)}_subscribe(t){return this._throwIfClosed(),this._checkFinalizedStatuses(t),this._innerSubscribe(t)}_innerSubscribe(t){const{hasError:r,isStopped:o,observers:i}=this;return r||o?lu:(i.push(t),new Tt(()=>Rr(i,t)))}_checkFinalizedStatuses(t){const{hasError:r,thrownError:o,isStopped:i}=this;r?t.error(o):i&&t.complete()}asObservable(){const t=new ze;return t.source=this,t}}return e.create=(n,t)=>new mu(n,t),e})();class mu extends Rs{constructor(n,t){super(),this.destination=n,this.source=t}next(n){var t,r;null===(r=null===(t=this.destination)||void 0===t?void 0:t.next)||void 0===r||r.call(t,n)}error(n){var t,r;null===(r=null===(t=this.destination)||void 0===t?void 0:t.error)||void 0===r||r.call(t,n)}complete(){var n,t;null===(t=null===(n=this.destination)||void 0===n?void 0:n.complete)||void 0===t||t.call(n)}_subscribe(n){var t,r;return null!==(r=null===(t=this.source)||void 0===t?void 0:t.subscribe(n))&&void 0!==r?r:lu}}function zn(e){return n=>{if(function gv(e){return me(e?.lift)}(n))return n.lift(function(t){try{return e(t,this)}catch(r){this.error(r)}});throw new TypeError("Unable to lift unknown Observable type")}}class Gn extends Ts{constructor(n,t,r,o,i){super(n),this.onFinalize=i,this._next=t?function(s){try{t(s)}catch(a){n.error(a)}}:super._next,this._error=o?function(s){try{o(s)}catch(a){n.error(a)}finally{this.unsubscribe()}}:super._error,this._complete=r?function(){try{r()}catch(s){n.error(s)}finally{this.unsubscribe()}}:super._complete}unsubscribe(){var n;const{closed:t}=this;super.unsubscribe(),!t&&(null===(n=this.onFinalize)||void 0===n||n.call(this))}}function Ps(e,n){return zn((t,r)=>{let o=0;t.subscribe(new Gn(r,i=>{r.next(e.call(n,i,o++))}))})}function En(e){return this instanceof En?(this.v=e,this):new En(e)}function vv(e,n,t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var o,r=t.apply(e,n||[]),i=[];return o={},s("next"),s("throw"),s("return"),o[Symbol.asyncIterator]=function(){return this},o;function s(h){r[h]&&(o[h]=function(p){return new Promise(function(m,D){i.push([h,p,m,D])>1||a(h,p)})})}function a(h,p){try{!function l(h){h.value instanceof En?Promise.resolve(h.value.v).then(c,u):d(i[0][2],h)}(r[h](p))}catch(m){d(i[0][3],m)}}function c(h){a("next",h)}function u(h){a("throw",h)}function d(h,p){h(p),i.shift(),i.length&&a(i[0][0],i[0][1])}}function yv(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,n=e[Symbol.asyncIterator];return n?n.call(e):(e=function yu(e){var n="function"==typeof Symbol&&Symbol.iterator,t=n&&e[n],r=0;if(t)return t.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(n?"Object is not iterable.":"Symbol.iterator is not defined.")}(e),t={},r("next"),r("throw"),r("return"),t[Symbol.asyncIterator]=function(){return this},t);function r(i){t[i]=e[i]&&function(s){return new Promise(function(a,l){!function o(i,s,a,l){Promise.resolve(l).then(function(c){i({value:c,done:a})},s)}(a,l,(s=e[i](s)).done,s.value)})}}}const Cu=e=>e&&"number"==typeof e.length&&"function"!=typeof e;function Du(e){return me(e?.then)}function wu(e){return me(e[Os])}function bu(e){return Symbol.asyncIterator&&me(e?.[Symbol.asyncIterator])}function Eu(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 Iu=function Dv(){return"function"==typeof Symbol&&Symbol.iterator?Symbol.iterator:"@@iterator"}();function Mu(e){return me(e?.[Iu])}function Su(e){return vv(this,arguments,function*(){const t=e.getReader();try{for(;;){const{value:r,done:o}=yield En(t.read());if(o)return yield En(void 0);yield yield En(r)}}finally{t.releaseLock()}})}function Au(e){return me(e?.getReader)}function In(e){if(e instanceof ze)return e;if(null!=e){if(wu(e))return function wv(e){return new ze(n=>{const t=e[Os]();if(me(t.subscribe))return t.subscribe(n);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}(e);if(Cu(e))return function bv(e){return new ze(n=>{for(let t=0;t{e.then(t=>{n.closed||(n.next(t),n.complete())},t=>n.error(t)).then(null,du)})}(e);if(bu(e))return Tu(e);if(Mu(e))return function Iv(e){return new ze(n=>{for(const t of e)if(n.next(t),n.closed)return;n.complete()})}(e);if(Au(e))return function Mv(e){return Tu(Su(e))}(e)}throw Eu(e)}function Tu(e){return new ze(n=>{(function Sv(e,n){var t,r,o,i;return function mv(e,n,t,r){return new(t||(t=Promise))(function(i,s){function a(u){try{c(r.next(u))}catch(d){s(d)}}function l(u){try{c(r.throw(u))}catch(d){s(d)}}function c(u){u.done?i(u.value):function o(i){return i instanceof t?i:new t(function(s){s(i)})}(u.value).then(a,l)}c((r=r.apply(e,n||[])).next())})}(this,void 0,void 0,function*(){try{for(t=yv(e);!(r=yield t.next()).done;)if(n.next(r.value),n.closed)return}catch(s){o={error:s}}finally{try{r&&!r.done&&(i=t.return)&&(yield i.call(t))}finally{if(o)throw o.error}}n.complete()})})(e,n).catch(t=>n.error(t))})}function rn(e,n,t,r=0,o=!1){const i=n.schedule(function(){t(),o?e.add(this.schedule(null,r)):this.unsubscribe()},r);if(e.add(i),!o)return i}function xu(e,n,t=1/0){return me(n)?xu((r,o)=>Ps((i,s)=>n(r,i,o,s))(In(e(r,o))),t):("number"==typeof n&&(t=n),zn((r,o)=>function Av(e,n,t,r,o,i,s,a){const l=[];let c=0,u=0,d=!1;const h=()=>{d&&!l.length&&!c&&n.complete()},p=D=>c{i&&n.next(D),c++;let I=!1;In(t(D,u++)).subscribe(new Gn(n,S=>{o?.(S),i?p(S):n.next(S)},()=>{I=!0},void 0,()=>{if(I)try{for(c--;l.length&&cm(S)):m(S)}h()}catch(S){n.error(S)}}))};return e.subscribe(new Gn(n,p,()=>{d=!0,h()})),()=>{a?.()}}(r,o,e,t)))}const Ls=new ze(e=>e.complete());function Vs(e){return e[e.length-1]}function Nu(e,n=0){return zn((t,r)=>{t.subscribe(new Gn(r,o=>rn(r,e,()=>r.next(o),n),()=>rn(r,e,()=>r.complete(),n),o=>rn(r,e,()=>r.error(o),n)))})}function Fu(e,n=0){return zn((t,r)=>{r.add(e.schedule(()=>t.subscribe(r),n))})}function Ou(e,n){if(!e)throw new Error("Iterable cannot be null");return new ze(t=>{rn(t,n,()=>{const r=e[Symbol.asyncIterator]();rn(t,n,()=>{r.next().then(o=>{o.done?t.complete():t.next(o.value)})},0,!0)})})}function Bs(e,n){return n?function Hv(e,n){if(null!=e){if(wu(e))return function Pv(e,n){return In(e).pipe(Fu(n),Nu(n))}(e,n);if(Cu(e))return function Lv(e,n){return new ze(t=>{let r=0;return n.schedule(function(){r===e.length?t.complete():(t.next(e[r++]),t.closed||this.schedule())})})}(e,n);if(Du(e))return function kv(e,n){return In(e).pipe(Fu(n),Nu(n))}(e,n);if(bu(e))return Ou(e,n);if(Mu(e))return function Vv(e,n){return new ze(t=>{let r;return rn(t,n,()=>{r=e[Iu](),rn(t,n,()=>{let o,i;try{({value:o,done:i}=r.next())}catch(s){return void t.error(s)}i?t.complete():t.next(o)},0,!0)}),()=>me(r?.return)&&r.return()})}(e,n);if(Au(e))return function Bv(e,n){return Ou(Su(e),n)}(e,n)}throw Eu(e)}(e,n):In(e)}function jv(...e){const n=function Ov(e){return function Nv(e){return e&&me(e.schedule)}(Vs(e))?e.pop():void 0}(e),t=function Rv(e,n){return"number"==typeof Vs(e)?e.pop():n}(e,1/0),r=e;return r.length?1===r.length?In(r[0]):function Tv(e=1/0){return xu(hu,e)}(t)(Bs(r,n)):Ls}function Hs(e,n,...t){return!0===n?(e(),null):!1===n?null:n(...t).pipe(function $v(e){return e<=0?()=>Ls:zn((n,t)=>{let r=0;n.subscribe(new Gn(t,o=>{++r<=e&&(t.next(o),e<=r&&t.complete())}))})}(1)).subscribe(()=>e())}function ae(e){for(let n in e)if(e[n]===ae)return n;throw Error("Could not find renamed property on target object.")}function js(e,n){for(const t in n)n.hasOwnProperty(t)&&!e.hasOwnProperty(t)&&(e[t]=n[t])}function le(e){if("string"==typeof e)return e;if(Array.isArray(e))return"["+e.map(le).join(", ")+"]";if(null==e)return""+e;if(e.overriddenName)return`${e.overriddenName}`;if(e.name)return`${e.name}`;const n=e.toString();if(null==n)return""+n;const t=n.indexOf("\n");return-1===t?n:n.substring(0,t)}function $s(e,n){return null==e||""===e?null===n?"":n:null==n||""===n?e:e+" "+n}const zv=ae({__forward_ref__:ae});function ue(e){return e.__forward_ref__=ue,e.toString=function(){return le(this())},e}function P(e){return Us(e)?e():e}function Us(e){return"function"==typeof e&&e.hasOwnProperty(zv)&&e.__forward_ref__===ue}function zs(e){return e&&!!e.\u0275providers}const Ru="https://g.co/ng/security#xss";class A extends Error{constructor(n,t){super(function qo(e,n){return`NG0${Math.abs(e)}${n?": "+n.trim():""}`}(n,t)),this.code=n}}function j(e){return"string"==typeof e?e:null==e?"":String(e)}function Zo(e,n){throw new A(-201,!1)}function ut(e,n){null==e&&function re(e,n,t,r){throw new Error(`ASSERTION ERROR: ${e}`+(null==r?"":` [Expected=> ${t} ${r} ${n} <=Actual]`))}(n,e,null,"!=")}function de(e){return{token:e.token,providedIn:e.providedIn||null,factory:e.factory,value:void 0}}function $t(e){return{providers:e.providers||[],imports:e.imports||[]}}function Qo(e){return Pu(e,Yo)||Pu(e,Lu)}function Pu(e,n){return e.hasOwnProperty(n)?e[n]:null}function ku(e){return e&&(e.hasOwnProperty(Gs)||e.hasOwnProperty(Jv))?e[Gs]:null}const Yo=ae({\u0275prov:ae}),Gs=ae({\u0275inj:ae}),Lu=ae({ngInjectableDef:ae}),Jv=ae({ngInjectorDef:ae});var B=(()=>((B=B||{})[B.Default=0]="Default",B[B.Host=1]="Host",B[B.Self=2]="Self",B[B.SkipSelf=4]="SkipSelf",B[B.Optional=8]="Optional",B))();let Ws;function dt(e){const n=Ws;return Ws=e,n}function Vu(e,n,t){const r=Qo(e);return r&&"root"==r.providedIn?void 0===r.value?r.value=r.factory():r.value:t&B.Optional?null:void 0!==n?n:void Zo(le(e))}const fe=(()=>typeof globalThis<"u"&&globalThis||typeof global<"u"&&global||typeof window<"u"&&window||typeof self<"u"&&typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&self)(),Pr={},qs="__NG_DI_FLAG__",Ko="ngTempTokenPath",ty=/\n/gm,Bu="__source";let kr;function Wn(e){const n=kr;return kr=e,n}function ry(e,n=B.Default){if(void 0===kr)throw new A(-203,!1);return null===kr?Vu(e,void 0,n):kr.get(e,n&B.Optional?null:void 0,n)}function oe(e,n=B.Default){return(function Xv(){return Ws}()||ry)(P(e),n)}function Jo(e){return typeof e>"u"||"number"==typeof e?e:0|(e.optional&&8)|(e.host&&1)|(e.self&&2)|(e.skipSelf&&4)}function Zs(e){const n=[];for(let t=0;t((_t=_t||{})[_t.OnPush=0]="OnPush",_t[_t.Default=1]="Default",_t))(),xt=(()=>{return(e=xt||(xt={}))[e.Emulated=0]="Emulated",e[e.None=2]="None",e[e.ShadowDom=3]="ShadowDom",xt;var e})();const Ut={},te=[],Xo=ae({\u0275cmp:ae}),Qs=ae({\u0275dir:ae}),Ys=ae({\u0275pipe:ae}),ju=ae({\u0275mod:ae}),zt=ae({\u0275fac:ae}),Vr=ae({__NG_ELEMENT_ID__:ae});let ly=0;function Nt(e){return sn(()=>{const t=!0===e.standalone,r={},o={type:e.type,providersResolver:null,decls:e.decls,vars:e.vars,factory:null,template:e.template||null,consts:e.consts||null,ngContentSelectors:e.ngContentSelectors,hostBindings:e.hostBindings||null,hostVars:e.hostVars||0,hostAttrs:e.hostAttrs||null,contentQueries:e.contentQueries||null,declaredInputs:r,inputs:null,outputs:null,exportAs:e.exportAs||null,onPush:e.changeDetection===_t.OnPush,directiveDefs:null,pipeDefs:null,standalone:t,dependencies:t&&e.dependencies||null,getStandaloneInjector:null,selectors:e.selectors||te,viewQuery:e.viewQuery||null,features:e.features||null,data:e.data||{},encapsulation:e.encapsulation||xt.Emulated,id:"c"+ly++,styles:e.styles||te,_:null,setInput:null,schemas:e.schemas||null,tView:null,findHostDirectiveDefs:null,hostDirectives:null},i=e.dependencies,s=e.features;return o.inputs=zu(e.inputs,r),o.outputs=zu(e.outputs),s&&s.forEach(a=>a(o)),o.directiveDefs=i?()=>("function"==typeof i?i():i).map($u).filter(Uu):null,o.pipeDefs=i?()=>("function"==typeof i?i():i).map(Ge).filter(Uu):null,o})}function $u(e){return ie(e)||ke(e)}function Uu(e){return null!==e}function an(e){return sn(()=>({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 zu(e,n){if(null==e)return Ut;const t={};for(const r in e)if(e.hasOwnProperty(r)){let o=e[r],i=o;Array.isArray(o)&&(i=o[1],o=o[0]),t[o]=r,n&&(n[o]=i)}return t}const $=Nt;function Je(e){return{type:e.type,name:e.name,factory:null,pure:!1!==e.pure,standalone:!0===e.standalone,onDestroy:e.type.prototype.ngOnDestroy||null}}function ie(e){return e[Xo]||null}function ke(e){return e[Qs]||null}function Ge(e){return e[Ys]||null}const Z=11;function ot(e){return Array.isArray(e)&&"object"==typeof e[1]}function yt(e){return Array.isArray(e)&&!0===e[1]}function Xs(e){return 0!=(4&e.flags)}function Ur(e){return e.componentOffset>-1}function oi(e){return 1==(1&e.flags)}function Ct(e){return null!==e.template}function dy(e){return 0!=(256&e[2])}function Sn(e,n){return e.hasOwnProperty(zt)?e[zt]:null}class py{constructor(n,t,r){this.previousValue=n,this.currentValue=t,this.firstChange=r}isFirstChange(){return this.firstChange}}function Wt(){return Yu}function Yu(e){return e.type.prototype.ngOnChanges&&(e.setInput=my),gy}function gy(){const e=Ju(this),n=e?.current;if(n){const t=e.previous;if(t===Ut)e.previous=n;else for(let r in n)t[r]=n[r];e.current=null,this.ngOnChanges(n)}}function my(e,n,t,r){const o=this.declaredInputs[t],i=Ju(e)||function _y(e,n){return e[Ku]=n}(e,{previous:Ut,current:null}),s=i.current||(i.current={}),a=i.previous,l=a[o];s[o]=new py(l&&l.currentValue,n,a===Ut),e[r]=n}Wt.ngInherit=!0;const Ku="__ngSimpleChanges__";function Ju(e){return e[Ku]||null}function Re(e){for(;Array.isArray(e);)e=e[0];return e}function ii(e,n){return Re(n[e])}function it(e,n){return Re(n[e.index])}function td(e,n){return e.data[n]}function st(e,n){const t=n[e];return ot(t)?t:t[0]}function si(e){return 64==(64&e[2])}function ln(e,n){return null==n?null:e[n]}function nd(e){e[18]=0}function ta(e,n){e[5]+=n;let t=e,r=e[3];for(;null!==r&&(1===n&&1===t[5]||-1===n&&0===t[5]);)r[5]+=n,t=r,r=r[3]}const U={lFrame:fd(null),bindingsEnabled:!0};function od(){return U.bindingsEnabled}function E(){return U.lFrame.lView}function ee(){return U.lFrame.tView}function Q(e){return U.lFrame.contextLView=e,e[8]}function Y(e){return U.lFrame.contextLView=null,e}function Pe(){let e=id();for(;null!==e&&64===e.type;)e=e.parent;return e}function id(){return U.lFrame.currentTNode}function Ot(e,n){const t=U.lFrame;t.currentTNode=e,t.isParent=n}function na(){return U.lFrame.isParent}function ra(){U.lFrame.isParent=!1}function qe(){const e=U.lFrame;let n=e.bindingRootIndex;return-1===n&&(n=e.bindingRootIndex=e.tView.bindingStartIndex),n}function Jn(){return U.lFrame.bindingIndex++}function Zt(e){const n=U.lFrame,t=n.bindingIndex;return n.bindingIndex=n.bindingIndex+e,t}function xy(e,n){const t=U.lFrame;t.bindingIndex=t.bindingRootIndex=e,oa(n)}function oa(e){U.lFrame.currentDirectiveIndex=e}function sa(e){U.lFrame.currentQueryIndex=e}function Fy(e){const n=e[1];return 2===n.type?n.declTNode:1===n.type?e[6]:null}function ud(e,n,t){if(t&B.SkipSelf){let o=n,i=e;for(;!(o=o.parent,null!==o||t&B.Host||(o=Fy(i),null===o||(i=i[15],10&o.type))););if(null===o)return!1;n=o,e=i}const r=U.lFrame=dd();return r.currentTNode=n,r.lView=e,!0}function aa(e){const n=dd(),t=e[1];U.lFrame=n,n.currentTNode=t.firstChild,n.lView=e,n.tView=t,n.contextLView=e,n.bindingIndex=t.bindingStartIndex,n.inI18n=!1}function dd(){const e=U.lFrame,n=null===e?null:e.child;return null===n?fd(e):n}function fd(e){const n={currentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:-1,contextLView:null,elementDepthCount:0,currentNamespace:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:e,child:null,inI18n:!1};return null!==e&&(e.child=n),n}function hd(){const e=U.lFrame;return U.lFrame=e.parent,e.currentTNode=null,e.lView=null,e}const pd=hd;function la(){const e=hd();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 Ze(){return U.lFrame.selectedIndex}function An(e){U.lFrame.selectedIndex=e}function _e(){const e=U.lFrame;return td(e.tView,e.selectedIndex)}function ai(e,n){for(let t=n.directiveStart,r=n.directiveEnd;t=r)break}else n[l]<0&&(e[18]+=65536),(a>11>16&&(3&e[2])===n){e[2]+=2048;try{i.call(a)}finally{}}}else try{i.call(a)}finally{}}class Gr{constructor(n,t,r){this.factory=n,this.resolving=!1,this.canSeeViewProviders=t,this.injectImpl=r}}function da(e,n,t){let r=0;for(;rn){s=i-1;break}}}for(;i>16}(e),r=n;for(;t>0;)r=r[15],t--;return r}let fa=!0;function fi(e){const n=fa;return fa=e,n}let Gy=0;const Rt={};function hi(e,n){const t=bd(e,n);if(-1!==t)return t;const r=n[1];r.firstCreatePass&&(e.injectorIndex=n.length,ha(r.data,e),ha(n,null),ha(r.blueprint,null));const o=pa(e,n),i=e.injectorIndex;if(Cd(o)){const s=ui(o),a=di(o,n),l=a[1].data;for(let c=0;c<8;c++)n[i+c]=a[s+c]|l[s+c]}return n[i+8]=o,i}function ha(e,n){e.push(0,0,0,0,0,0,0,0,n)}function bd(e,n){return-1===e.injectorIndex||e.parent&&e.parent.injectorIndex===e.injectorIndex||null===n[e.injectorIndex+8]?-1:e.injectorIndex}function pa(e,n){if(e.parent&&-1!==e.parent.injectorIndex)return e.parent.injectorIndex;let t=0,r=null,o=n;for(;null!==o;){if(r=xd(o),null===r)return-1;if(t++,o=o[15],-1!==r.injectorIndex)return r.injectorIndex|t<<16}return-1}function ga(e,n,t){!function Wy(e,n,t){let r;"string"==typeof t?r=t.charCodeAt(0)||0:t.hasOwnProperty(Vr)&&(r=t[Vr]),null==r&&(r=t[Vr]=Gy++);const o=255&r;n.data[e+(o>>5)]|=1<=0?255&n:Yy:n}(t);if("function"==typeof i){if(!ud(n,e,r))return r&B.Host?Ed(o,0,r):Id(n,t,r,o);try{const s=i(r);if(null!=s||r&B.Optional)return s;Zo()}finally{pd()}}else if("number"==typeof i){let s=null,a=bd(e,n),l=-1,c=r&B.Host?n[16][6]:null;for((-1===a||r&B.SkipSelf)&&(l=-1===a?pa(e,n):n[a+8],-1!==l&&Td(r,!1)?(s=n[1],a=ui(l),n=di(l,n)):a=-1);-1!==a;){const u=n[1];if(Ad(i,a,u.data)){const d=Zy(a,n,t,s,r,c);if(d!==Rt)return d}l=n[a+8],-1!==l&&Td(r,n[1].data[a+8]===c)&&Ad(i,a,n)?(s=u,a=ui(l),n=di(l,n)):a=-1}}return o}function Zy(e,n,t,r,o,i){const s=n[1],a=s.data[e+8],u=function pi(e,n,t,r,o){const i=e.providerIndexes,s=n.data,a=1048575&i,l=e.directiveStart,u=i>>20,h=o?a+u:e.directiveEnd;for(let p=r?a:a+u;p=l&&m.type===t)return p}if(o){const p=s[l];if(p&&Ct(p)&&p.type===t)return l}return null}(a,s,t,null==r?Ur(a)&&fa:r!=s&&0!=(3&a.type),o&B.Host&&i===a);return null!==u?Tn(n,s,u,a):Rt}function Tn(e,n,t,r){let o=e[t];const i=n.data;if(function jy(e){return e instanceof Gr}(o)){const s=o;s.resolving&&function Gv(e,n){const t=n?`. Dependency path: ${n.join(" > ")} > ${e}`:"";throw new A(-200,`Circular dependency in DI detected for ${e}${t}`)}(function ne(e){return"function"==typeof e?e.name||e.toString():"object"==typeof e&&null!=e&&"function"==typeof e.type?e.type.name||e.type.toString():j(e)}(i[t]));const a=fi(s.canSeeViewProviders);s.resolving=!0;const l=s.injectImpl?dt(s.injectImpl):null;ud(e,r,B.Default);try{o=e[t]=s.factory(void 0,i,e,r),n.firstCreatePass&&t>=r.directiveStart&&function By(e,n,t){const{ngOnChanges:r,ngOnInit:o,ngDoCheck:i}=n.type.prototype;if(r){const s=Yu(n);(t.preOrderHooks||(t.preOrderHooks=[])).push(e,s),(t.preOrderCheckHooks||(t.preOrderCheckHooks=[])).push(e,s)}o&&(t.preOrderHooks||(t.preOrderHooks=[])).push(0-e,o),i&&((t.preOrderHooks||(t.preOrderHooks=[])).push(e,i),(t.preOrderCheckHooks||(t.preOrderCheckHooks=[])).push(e,i))}(t,i[t],n)}finally{null!==l&&dt(l),fi(a),s.resolving=!1,pd()}}return o}function Ad(e,n,t){return!!(t[n+(e>>5)]&1<{const n=e.prototype.constructor,t=n[zt]||ma(n),r=Object.prototype;let o=Object.getPrototypeOf(e.prototype).constructor;for(;o&&o!==r;){const i=o[zt]||ma(o);if(i&&i!==t)return i;o=Object.getPrototypeOf(o)}return i=>new i})}function ma(e){return Us(e)?()=>{const n=ma(P(e));return n&&n()}:Sn(e)}function xd(e){const n=e[1],t=n.type;return 2===t?n.declTNode:1===t?e[6]:null}const nr="__parameters__";function or(e,n,t){return sn(()=>{const r=function va(e){return function(...t){if(e){const r=e(...t);for(const o in r)this[o]=r[o]}}}(n);function o(...i){if(this instanceof o)return r.apply(this,i),this;const s=new o(...i);return a.annotation=s,a;function a(l,c,u){const d=l.hasOwnProperty(nr)?l[nr]:Object.defineProperty(l,nr,{value:[]})[nr];for(;d.length<=u;)d.push(null);return(d[u]=d[u]||[]).push(s),l}}return t&&(o.prototype=Object.create(t.prototype)),o.prototype.ngMetadataName=e,o.annotationCls=o,o})}class H{constructor(n,t){this._desc=n,this.ngMetadataName="InjectionToken",this.\u0275prov=void 0,"number"==typeof t?this.__NG_ELEMENT_ID__=t:void 0!==t&&(this.\u0275prov=de({token:this,providedIn:t.providedIn||"root",factory:t.factory}))}get multi(){return this}toString(){return`InjectionToken ${this._desc}`}}function xn(e,n){e.forEach(t=>Array.isArray(t)?xn(t,n):n(t))}function Fd(e,n,t){n>=e.length?e.push(t):e.splice(n,0,t)}function gi(e,n){return n>=e.length-1?e.pop():e.splice(n,1)[0]}function at(e,n,t){let r=ir(e,n);return r>=0?e[1|r]=t:(r=~r,function tC(e,n,t,r){let o=e.length;if(o==n)e.push(t,r);else if(1===o)e.push(r,e[0]),e[0]=t;else{for(o--,e.push(e[o-1],e[o]);o>n;)e[o]=e[o-2],o--;e[n]=t,e[n+1]=r}}(e,r,n,t)),r}function Ca(e,n){const t=ir(e,n);if(t>=0)return e[1|t]}function ir(e,n){return function Od(e,n,t){let r=0,o=e.length>>t;for(;o!==r;){const i=r+(o-r>>1),s=e[i<n?o=i:r=i+1}return~(o<((Xe=Xe||{})[Xe.Important=1]="Important",Xe[Xe.DashCase=2]="DashCase",Xe))();const Ma=new Map;let bC=0;const Aa="__ngContext__";function He(e,n){ot(n)?(e[Aa]=n[20],function IC(e){Ma.set(e[20],e)}(n)):e[Aa]=n}function xa(e,n){return undefined(e,n)}function Xr(e){const n=e[3];return yt(n)?n[3]:n}function Na(e){return Xd(e[13])}function Fa(e){return Xd(e[4])}function Xd(e){for(;null!==e&&!yt(e);)e=e[4];return e}function ar(e,n,t,r,o){if(null!=r){let i,s=!1;yt(r)?i=r:ot(r)&&(s=!0,r=r[0]);const a=Re(r);0===e&&null!==t?null==o?sf(n,t,a):Nn(n,t,a,o||null,!0):1===e&&null!==t?Nn(n,t,a,o||null,!0):2===e?function Ba(e,n,t){const r=Di(e,n);r&&function GC(e,n,t,r){e.removeChild(n,t,r)}(e,r,n,t)}(n,a,s):3===e&&n.destroyNode(a),null!=i&&function ZC(e,n,t,r,o){const i=t[7];i!==Re(t)&&ar(n,e,r,i,o);for(let a=10;a0&&(e[t-1][4]=r[4]);const i=gi(e,10+n);!function LC(e,n){eo(e,n,n[Z],2,null,null),n[0]=null,n[6]=null}(r[1],r);const s=i[19];null!==s&&s.detachView(i[1]),r[3]=null,r[4]=null,r[2]&=-65}return r}function nf(e,n){if(!(128&n[2])){const t=n[Z];t.destroyNode&&eo(e,n,t,3,null,null),function HC(e){let n=e[13];if(!n)return ka(e[1],e);for(;n;){let t=null;if(ot(n))t=n[13];else{const r=n[10];r&&(t=r)}if(!t){for(;n&&!n[4]&&n!==e;)ot(n)&&ka(n[1],n),n=n[3];null===n&&(n=e),ot(n)&&ka(n[1],n),t=n&&n[4]}n=t}}(n)}}function ka(e,n){if(!(128&n[2])){n[2]&=-65,n[2]|=128,function zC(e,n){let t;if(null!=e&&null!=(t=e.destroyHooks))for(let r=0;r=0?r[o=s]():r[o=-s].unsubscribe(),i+=2}else{const s=r[o=t[i+1]];t[i].call(s)}if(null!==r){for(let i=o+1;i-1){const{encapsulation:i}=e.data[r.directiveStart+o];if(i===xt.None||i===xt.Emulated)return null}return it(r,t)}}(e,n.parent,t)}function Nn(e,n,t,r,o){e.insertBefore(n,t,r,o)}function sf(e,n,t){e.appendChild(n,t)}function af(e,n,t,r,o){null!==r?Nn(e,n,t,r,o):sf(e,n,t)}function Di(e,n){return e.parentNode(n)}let $a,uf=function cf(e,n,t){return 40&e.type?it(e,t):null};function wi(e,n,t,r){const o=rf(e,r,n),i=n[Z],a=function lf(e,n,t){return uf(e,n,t)}(r.parent||n[6],r,n);if(null!=o)if(Array.isArray(t))for(let l=0;l((Me=Me||{})[Me.NONE=0]="NONE",Me[Me.HTML=1]="HTML",Me[Me.STYLE=2]="STYLE",Me[Me.SCRIPT=3]="SCRIPT",Me[Me.URL=4]="URL",Me[Me.RESOURCE_URL=5]="RESOURCE_URL",Me))();function un(e){const n=function ro(){const e=E();return e&&e[12]}();return n?n.sanitize(Me.URL,e)||"":function to(e,n){const t=function sD(e){return e instanceof Cf&&e.getTypeName()||null}(e);if(null!=t&&t!==n){if("ResourceURL"===t&&"URL"===n)return!0;throw new Error(`Required a safe ${n}, got a ${t} (see ${Ru})`)}return t===n}(e,"URL")?cn(e):function za(e){return(e=String(e)).match(uD)?e:"unsafe:"+e}(j(e))}const Af=new H("ENVIRONMENT_INITIALIZER"),Tf=new H("INJECTOR",-1),xf=new H("INJECTOR_DEF_TYPES");class Nf{get(n,t=Pr){if(t===Pr){const r=new Error(`NullInjectorError: No provider for ${le(n)}!`);throw r.name="NullInjectorError",r}return t}}function ED(...e){return{\u0275providers:Ff(0,e),\u0275fromNgModule:!0}}function Ff(e,...n){const t=[],r=new Set;let o;return xn(n,i=>{const s=i;Za(s,t,[],r)&&(o||(o=[]),o.push(s))}),void 0!==o&&Of(o,t),t}function Of(e,n){for(let t=0;t{n.push(i)})}}function Za(e,n,t,r){if(!(e=P(e)))return!1;let o=null,i=ku(e);const s=!i&&ie(e);if(i||s){if(s&&!s.standalone)return!1;o=e}else{const l=e.ngModule;if(i=ku(l),!i)return!1;o=l}const a=r.has(o);if(s){if(a)return!1;if(r.add(o),s.dependencies){const l="function"==typeof s.dependencies?s.dependencies():s.dependencies;for(const c of l)Za(c,n,t,r)}}else{if(!i)return!1;{if(null!=i.imports&&!a){let c;r.add(o);try{xn(i.imports,u=>{Za(u,n,t,r)&&(c||(c=[]),c.push(u))})}finally{}void 0!==c&&Of(c,n)}if(!a){const c=Sn(o)||(()=>new o);n.push({provide:o,useFactory:c,deps:te},{provide:xf,useValue:o,multi:!0},{provide:Af,useValue:()=>oe(o),multi:!0})}const l=i.providers;null==l||a||Qa(l,u=>{n.push(u)})}}return o!==e&&void 0!==e.providers}function Qa(e,n){for(let t of e)zs(t)&&(t=t.\u0275providers),Array.isArray(t)?Qa(t,n):n(t)}const ID=ae({provide:String,useValue:ae});function Ya(e){return null!==e&&"object"==typeof e&&ID in e}function On(e){return"function"==typeof e}const Ka=new H("Set Injector scope."),Si={},SD={};let Ja;function Ai(){return void 0===Ja&&(Ja=new Nf),Ja}class lr{}class kf extends lr{get destroyed(){return this._destroyed}constructor(n,t,r,o){super(),this.parent=t,this.source=r,this.scopes=o,this.records=new Map,this._ngOnDestroyHooks=new Set,this._onDestroyHooks=[],this._destroyed=!1,el(n,s=>this.processProvider(s)),this.records.set(Tf,cr(void 0,this)),o.has("environment")&&this.records.set(lr,cr(void 0,this));const i=this.records.get(Ka);null!=i&&"string"==typeof i.value&&this.scopes.add(i.value),this.injectorDefTypes=new Set(this.get(xf.multi,te,B.Self))}destroy(){this.assertNotDestroyed(),this._destroyed=!0;try{for(const n of this._ngOnDestroyHooks)n.ngOnDestroy();for(const n of this._onDestroyHooks)n()}finally{this.records.clear(),this._ngOnDestroyHooks.clear(),this.injectorDefTypes.clear(),this._onDestroyHooks.length=0}}onDestroy(n){this._onDestroyHooks.push(n)}runInContext(n){this.assertNotDestroyed();const t=Wn(this),r=dt(void 0);try{return n()}finally{Wn(t),dt(r)}}get(n,t=Pr,r=B.Default){this.assertNotDestroyed(),r=Jo(r);const o=Wn(this),i=dt(void 0);try{if(!(r&B.SkipSelf)){let a=this.records.get(n);if(void 0===a){const l=function FD(e){return"function"==typeof e||"object"==typeof e&&e instanceof H}(n)&&Qo(n);a=l&&this.injectableDefInScope(l)?cr(Xa(n),Si):null,this.records.set(n,a)}if(null!=a)return this.hydrate(n,a)}return(r&B.Self?Ai():this.parent).get(n,t=r&B.Optional&&t===Pr?null:t)}catch(s){if("NullInjectorError"===s.name){if((s[Ko]=s[Ko]||[]).unshift(le(n)),o)throw s;return function sy(e,n,t,r){const o=e[Ko];throw n[Bu]&&o.unshift(n[Bu]),e.message=function ay(e,n,t,r=null){e=e&&"\n"===e.charAt(0)&&"\u0275"==e.charAt(1)?e.slice(2):e;let o=le(n);if(Array.isArray(n))o=n.map(le).join(" -> ");else if("object"==typeof n){let i=[];for(let s in n)if(n.hasOwnProperty(s)){let a=n[s];i.push(s+":"+("string"==typeof a?JSON.stringify(a):le(a)))}o=`{${i.join(", ")}}`}return`${t}${r?"("+r+")":""}[${o}]: ${e.replace(ty,"\n ")}`}("\n"+e.message,o,t,r),e.ngTokenPath=o,e[Ko]=null,e}(s,n,"R3InjectorError",this.source)}throw s}finally{dt(i),Wn(o)}}resolveInjectorInitializers(){const n=Wn(this),t=dt(void 0);try{const r=this.get(Af.multi,te,B.Self);for(const o of r)o()}finally{Wn(n),dt(t)}}toString(){const n=[],t=this.records;for(const r of t.keys())n.push(le(r));return`R3Injector[${n.join(", ")}]`}assertNotDestroyed(){if(this._destroyed)throw new A(205,!1)}processProvider(n){let t=On(n=P(n))?n:P(n&&n.provide);const r=function TD(e){return Ya(e)?cr(void 0,e.useValue):cr(Lf(e),Si)}(n);if(On(n)||!0!==n.multi)this.records.get(t);else{let o=this.records.get(t);o||(o=cr(void 0,Si,!0),o.factory=()=>Zs(o.multi),this.records.set(t,o)),t=n,o.multi.push(n)}this.records.set(t,r)}hydrate(n,t){return t.value===Si&&(t.value=SD,t.value=t.factory()),"object"==typeof t.value&&t.value&&function ND(e){return null!==e&&"object"==typeof e&&"function"==typeof e.ngOnDestroy}(t.value)&&this._ngOnDestroyHooks.add(t.value),t.value}injectableDefInScope(n){if(!n.providedIn)return!1;const t=P(n.providedIn);return"string"==typeof t?"any"===t||this.scopes.has(t):this.injectorDefTypes.has(t)}}function Xa(e){const n=Qo(e),t=null!==n?n.factory:Sn(e);if(null!==t)return t;if(e instanceof H)throw new A(204,!1);if(e instanceof Function)return function AD(e){const n=e.length;if(n>0)throw function Qr(e,n){const t=[];for(let r=0;rt.factory(e):()=>new e}(e);throw new A(204,!1)}function Lf(e,n,t){let r;if(On(e)){const o=P(e);return Sn(o)||Xa(o)}if(Ya(e))r=()=>P(e.useValue);else if(function Pf(e){return!(!e||!e.useFactory)}(e))r=()=>e.useFactory(...Zs(e.deps||[]));else if(function Rf(e){return!(!e||!e.useExisting)}(e))r=()=>oe(P(e.useExisting));else{const o=P(e&&(e.useClass||e.provide));if(!function xD(e){return!!e.deps}(e))return Sn(o)||Xa(o);r=()=>new o(...Zs(e.deps))}return r}function cr(e,n,t=!1){return{factory:e,value:n,multi:t?[]:void 0}}function el(e,n){for(const t of e)Array.isArray(t)?el(t,n):t&&zs(t)?el(t.\u0275providers,n):n(t)}class OD{}class Vf{}class PD{resolveComponentFactory(n){throw function RD(e){const n=Error(`No component factory found for ${le(e)}. Did you add it to @NgModule.entryComponents?`);return n.ngComponent=e,n}(n)}}let Ti=(()=>{class e{}return e.NULL=new PD,e})();function kD(){return ur(Pe(),E())}function ur(e,n){return new Dt(it(e,n))}let Dt=(()=>{class e{constructor(t){this.nativeElement=t}}return e.__NG_ELEMENT_ID__=kD,e})();class Hf{}let Rn=(()=>{class e{}return e.__NG_ELEMENT_ID__=()=>function VD(){const e=E(),t=st(Pe().index,e);return(ot(t)?t:e)[Z]}(),e})(),BD=(()=>{class e{}return e.\u0275prov=de({token:e,providedIn:"root",factory:()=>null}),e})();class xi{constructor(n){this.full=n,this.major=n.split(".")[0],this.minor=n.split(".")[1],this.patch=n.split(".").slice(2).join(".")}}const HD=new xi("15.1.0"),tl={};function rl(e){return e.ngOriginalError}class dr{constructor(){this._console=console}handleError(n){const t=this._findOriginalError(n);this._console.error("ERROR",n),t&&this._console.error("ORIGINAL ERROR",t)}_findOriginalError(n){let t=n&&rl(n);for(;t&&rl(t);)t=rl(t);return t||null}}function ol(e){return e.ownerDocument.defaultView}function $f(e,n,t){let r=e.length;for(;;){const o=e.indexOf(n,t);if(-1===o)return o;if(0===o||e.charCodeAt(o-1)<=32){const i=n.length;if(o+i===r||e.charCodeAt(o+i)<=32)return o}t=o+1}}const Uf="ng-template";function YD(e,n,t){let r=0;for(;ri?"":o[d+1].toLowerCase();const p=8&r?h:null;if(p&&-1!==$f(p,c,0)||2&r&&c!==h){if(wt(r))return!1;s=!0}}}}else{if(!s&&!wt(r)&&!wt(l))return!1;if(s&&wt(l))continue;s=!1,r=l|1&r}}return wt(r)||s}function wt(e){return 0==(1&e)}function XD(e,n,t,r){if(null===n)return-1;let o=0;if(r||!t){let i=!1;for(;o-1)for(t++;t0?'="'+a+'"':"")+"]"}else 8&r?o+="."+s:4&r&&(o+=" "+s);else""!==o&&!wt(s)&&(n+=Wf(i,o),o=""),r=s,i=i||!wt(r);t++}return""!==o&&(n+=Wf(i,o)),n}const z={};function f(e){qf(ee(),E(),Ze()+e,!1)}function qf(e,n,t,r){if(!r)if(3==(3&n[2])){const i=e.preOrderCheckHooks;null!==i&&li(n,i,t)}else{const i=e.preOrderHooks;null!==i&&ci(n,i,0,t)}An(t)}function Kf(e,n=null,t=null,r){const o=Jf(e,n,t,r);return o.resolveInjectorInitializers(),o}function Jf(e,n=null,t=null,r,o=new Set){const i=[t||te,ED(e)];return r=r||("object"==typeof e?void 0:le(e)),new kf(i,n||Ai(),r||null,o)}let dn=(()=>{class e{static create(t,r){if(Array.isArray(t))return Kf({name:""},r,t,"");{const o=t.name??"";return Kf({name:o},t.parent,t.providers,o)}}}return e.THROW_IF_NOT_FOUND=Pr,e.NULL=new Nf,e.\u0275prov=de({token:e,providedIn:"any",factory:()=>oe(Tf)}),e.__NG_ELEMENT_ID__=-1,e})();function M(e,n=B.Default){const t=E();return null===t?oe(e,n):Md(Pe(),t,P(e),n)}function ih(e,n){const t=e.contentQueries;if(null!==t)for(let r=0;r22&&qf(e,n,22,!1),t(r,o)}finally{An(i)}}function dl(e,n,t){if(Xs(n)){const o=n.directiveEnd;for(let i=n.directiveStart;i0;){const t=e[--n];if("number"==typeof t&&t<0)return t}return 0})(s)!=a&&s.push(a),s.push(t,r,i)}}(e,n,r,oo(e,t,o.hostVars,z),o)}function Pt(e,n,t,r,o,i){const s=it(e,n);!function _l(e,n,t,r,o,i,s){if(null==i)e.removeAttribute(n,o,t);else{const a=null==s?j(i):s(i,r||"",o);e.setAttribute(n,o,a,t)}}(n[Z],s,i,e.value,t,r,o)}function Gw(e,n,t,r,o,i){const s=i[n];if(null!==s){const a=r.setInput;for(let l=0;l0&&vl(t)}}function vl(e){for(let r=Na(e);null!==r;r=Fa(r))for(let o=10;o0&&vl(i)}const t=e[1].components;if(null!==t)for(let r=0;r0&&vl(o)}}function Yw(e,n){const t=st(n,e),r=t[1];(function Kw(e,n){for(let t=n.length;t-1&&(Pa(n,r),gi(t,r))}this._attachedToViewContainer=!1}nf(this._lView[1],this._lView)}onDestroy(n){!function lh(e,n,t,r){const o=gh(n);null===t?o.push(r):(o.push(t),e.firstCreatePass&&mh(e).push(r,o.length-1))}(this._lView[1],this._lView,null,n)}markForCheck(){yl(this._cdRefInjectingView||this._lView)}detach(){this._lView[2]&=-65}reattach(){this._lView[2]|=64}detectChanges(){Pi(this._lView[1],this._lView,this.context)}checkNoChanges(){}attachToViewContainerRef(){if(this._appRef)throw new A(902,!1);this._attachedToViewContainer=!0}detachFromAppRef(){this._appRef=null,function BC(e,n){eo(e,n,n[Z],2,null,null)}(this._lView[1],this._lView)}attachToAppRef(n){if(this._attachedToViewContainer)throw new A(902,!1);this._appRef=n}}class Jw extends io{constructor(n){super(n),this._view=n}detectChanges(){const n=this._view;Pi(n[1],n,n[8],!1)}checkNoChanges(){}get context(){return null}}class yh extends Ti{constructor(n){super(),this.ngModule=n}resolveComponentFactory(n){const t=ie(n);return new so(t,this.ngModule)}}function Ch(e){const n=[];for(let t in e)e.hasOwnProperty(t)&&n.push({propName:e[t],templateName:t});return n}class eb{constructor(n,t){this.injector=n,this.parentInjector=t}get(n,t,r){r=Jo(r);const o=this.injector.get(n,tl,r);return o!==tl||t===tl?o:this.parentInjector.get(n,t,r)}}class so extends Vf{get inputs(){return Ch(this.componentDef.inputs)}get outputs(){return Ch(this.componentDef.outputs)}constructor(n,t){super(),this.componentDef=n,this.ngModule=t,this.componentType=n.type,this.selector=function iw(e){return e.map(ow).join(",")}(n.selectors),this.ngContentSelectors=n.ngContentSelectors?n.ngContentSelectors:[],this.isBoundToModule=!!t}create(n,t,r,o){let i=(o=o||this.ngModule)instanceof lr?o:o?.injector;i&&null!==this.componentDef.getStandaloneInjector&&(i=this.componentDef.getStandaloneInjector(i)||i);const s=i?new eb(n,i):n,a=s.get(Hf,null);if(null===a)throw new A(407,!1);const l=s.get(BD,null),c=a.createRenderer(null,this.componentDef),u=this.componentDef.selectors[0][0]||"div",d=r?function xw(e,n,t){return e.selectRootElement(n,t===xt.ShadowDom)}(c,r,this.componentDef.encapsulation):Ra(c,u,function Xw(e){const n=e.toLowerCase();return"svg"===n?"svg":"math"===n?"math":null}(u)),h=this.componentDef.onPush?288:272,p=pl(0,null,null,1,0,null,null,null,null,null),m=Fi(null,p,null,h,null,null,a,c,l,s,null);let D,I;aa(m);try{const S=this.componentDef;let O,b=null;S.findHostDirectiveDefs?(O=[],b=new Map,S.findHostDirectiveDefs(S,O,b),O.push(S)):O=[S];const V=function nb(e,n){const t=e[1];return e[22]=n,pr(t,22,2,"#host",null)}(m,d),ce=function rb(e,n,t,r,o,i,s,a){const l=o[1];!function ob(e,n,t,r){for(const o of e)n.mergedAttrs=Wr(n.mergedAttrs,o.hostAttrs);null!==n.mergedAttrs&&(ki(n,n.mergedAttrs,!0),null!==t&&gf(r,t,n))}(r,e,n,s);const c=i.createRenderer(n,t),u=Fi(o,ah(t),null,t.onPush?32:16,o[e.index],e,i,c,a||null,null,null);return l.firstCreatePass&&ml(l,e,r.length-1),Ri(o,u),o[e.index]=u}(V,d,S,O,m,a,c);I=td(p,22),d&&function sb(e,n,t,r){if(r)da(e,t,["ng-version",HD.full]);else{const{attrs:o,classes:i}=function sw(e){const n=[],t=[];let r=1,o=2;for(;r0&&pf(e,t,i.join(" "))}}(c,S,d,r),void 0!==t&&function ab(e,n,t){const r=e.projection=[];for(let o=0;o=0;r--){const o=e[r];o.hostVars=n+=o.hostVars,o.hostAttrs=Wr(o.hostAttrs,t=Wr(t,o.hostAttrs))}}(r)}function wl(e){return e===Ut?{}:e===te?[]:e}function ub(e,n){const t=e.viewQuery;e.viewQuery=t?(r,o)=>{n(r,o),t(r,o)}:n}function db(e,n){const t=e.contentQueries;e.contentQueries=t?(r,o,i)=>{n(r,o,i),t(r,o,i)}:n}function fb(e,n){const t=e.hostBindings;e.hostBindings=t?(r,o)=>{n(r,o),t(r,o)}:n}let Vi=null;function Pn(){if(!Vi){const e=fe.Symbol;if(e&&e.iterator)Vi=e.iterator;else{const n=Object.getOwnPropertyNames(Map.prototype);for(let t=0;ts(Re(V[r.index])):r.index;let b=null;if(!s&&a&&(b=function Sb(e,n,t,r){const o=e.cleanup;if(null!=o)for(let i=0;il?a[l]:null}"string"==typeof s&&(i+=2)}return null}(e,n,o,r.index)),null!==b)(b.__ngLastListenerFn__||b).__ngNextListenerFn__=i,b.__ngLastListenerFn__=i,h=!1;else{i=Hh(r,n,u,i,!1);const V=t.listen(I,o,i);d.push(i,V),c&&c.push(o,O,S,S+1)}}else i=Hh(r,n,u,i,!1);const p=r.outputs;let m;if(h&&null!==p&&(m=p[o])){const D=m.length;if(D)for(let I=0;I-1?st(e.index,n):n);let l=Bh(n,0,r,s),c=i.__ngNextListenerFn__;for(;c;)l=Bh(n,0,c,s)&&l,c=c.__ngNextListenerFn__;return o&&!1===l&&(s.preventDefault(),s.returnValue=!1),l}}function _(e=1){return function Oy(e){return(U.lFrame.contextLView=function Ry(e,n){for(;e>0;)n=n[15],e--;return n}(e,U.lFrame.contextLView))[8]}(e)}function fn(e,n,t){return Il(e,"",n,"",t),fn}function Il(e,n,t,r,o){const i=E(),s=mr(i,n,t,r);return s!==z&<(ee(),_e(),i,e,s,i[Z],o,!1),Il}function ji(e,n){return e<<17|n<<2}function hn(e){return e>>17&32767}function Ml(e){return 2|e}function Ln(e){return(131068&e)>>2}function Sl(e,n){return-131069&e|n<<2}function Al(e){return 1|e}function Qh(e,n,t,r,o){const i=e[t+1],s=null===n;let a=r?hn(i):Ln(i),l=!1;for(;0!==a&&(!1===l||s);){const u=e[a+1];kb(e[a],n)&&(l=!0,e[a+1]=r?Al(u):Ml(u)),a=r?hn(u):Ln(u)}l&&(e[t+1]=r?Ml(i):Al(i))}function kb(e,n){return null===e||null==n||(Array.isArray(e)?e[1]:e)===n||!(!Array.isArray(e)||"string"!=typeof n)&&ir(e,n)>=0}const xe={textEnd:0,key:0,keyEnd:0,value:0,valueEnd:0};function Yh(e){return e.substring(xe.key,xe.keyEnd)}function Kh(e,n){const t=xe.textEnd;return t===n?-1:(n=xe.keyEnd=function Hb(e,n,t){for(;n32;)n++;return n}(e,xe.key=n,t),Er(e,n,t))}function Er(e,n,t){for(;n=0;t=Kh(n,t))at(e,Yh(n),!0)}function rp(e,n){return n>=e.expandoStartIndex}function op(e,n,t,r){const o=e.data;if(null===o[t+1]){const i=o[Ze()],s=rp(e,t);lp(i,r)&&null===n&&!s&&(n=!1),n=function Gb(e,n,t,r){const o=function ia(e){const n=U.lFrame.currentDirectiveIndex;return-1===n?null:e[n]}(e);let i=r?n.residualClasses:n.residualStyles;if(null===o)0===(r?n.classBindings:n.styleBindings)&&(t=co(t=Tl(null,e,n,t,r),n.attrs,r),i=null);else{const s=n.directiveStylingLast;if(-1===s||e[s]!==o)if(t=Tl(o,e,n,t,r),null===i){let l=function Wb(e,n,t){const r=t?n.classBindings:n.styleBindings;if(0!==Ln(r))return e[hn(r)]}(e,n,r);void 0!==l&&Array.isArray(l)&&(l=Tl(null,e,n,l[1],r),l=co(l,n.attrs,r),function qb(e,n,t,r){e[hn(t?n.classBindings:n.styleBindings)]=r}(e,n,r,l))}else i=function Zb(e,n,t){let r;const o=n.directiveEnd;for(let i=1+n.directiveStylingLast;i0)&&(c=!0)):u=t,o)if(0!==l){const h=hn(e[a+1]);e[r+1]=ji(h,a),0!==h&&(e[h+1]=Sl(e[h+1],r)),e[a+1]=function Fb(e,n){return 131071&e|n<<17}(e[a+1],r)}else e[r+1]=ji(a,0),0!==a&&(e[a+1]=Sl(e[a+1],r)),a=r;else e[r+1]=ji(l,0),0===a?a=r:e[l+1]=Sl(e[l+1],r),l=r;c&&(e[r+1]=Ml(e[r+1])),Qh(e,u,r,!0),Qh(e,u,r,!1),function Pb(e,n,t,r,o){const i=o?e.residualClasses:e.residualStyles;null!=i&&"string"==typeof n&&ir(i,n)>=0&&(t[r+1]=Al(t[r+1]))}(n,u,e,r,i),s=ji(a,l),i?n.classBindings=s:n.styleBindings=s}(o,i,n,t,s,r)}}function Tl(e,n,t,r,o){let i=null;const s=t.directiveEnd;let a=t.directiveStylingLast;for(-1===a?a=t.directiveStart:a++;a0;){const l=e[o],c=Array.isArray(l),u=c?l[1]:l,d=null===u;let h=t[o+1];h===z&&(h=d?te:void 0);let p=d?Ca(h,r):u===r?h:void 0;if(c&&!Ui(p)&&(p=Ca(l,r)),Ui(p)&&(a=p,s))return a;const m=e[o+1];o=s?hn(m):Ln(m)}if(null!==n){let l=i?n.residualClasses:n.residualStyles;null!=l&&(a=Ca(l,r))}return a}function Ui(e){return void 0!==e}function lp(e,n){return 0!=(e.flags&(n?8:16))}function w(e,n=""){const t=E(),r=ee(),o=e+22,i=r.firstCreatePass?pr(r,o,1,n,null):r.data[o],s=t[o]=function Oa(e,n){return e.createText(n)}(t[Z],n);wi(r,t,s,i),Ot(i,!1)}function F(e){return G("",e,""),F}function G(e,n,t){const r=E(),o=mr(r,e,n,t);return o!==z&&function Kt(e,n,t){const r=ii(n,e);!function ef(e,n,t){e.setValue(n,t)}(e[Z],r,t)}(r,Ze(),o),G}function Bt(e,n,t){!function It(e,n,t,r){const o=ee(),i=Zt(2);o.firstUpdatePass&&op(o,null,i,r);const s=E();if(t!==z&&je(s,i,t)){const a=o.data[Ze()];if(lp(a,r)&&!rp(o,i)){let l=r?a.classesWithoutHost:a.stylesWithoutHost;null!==l&&(t=$s(l,t||"")),El(o,a,s,t,r)}else!function Yb(e,n,t,r,o,i,s,a){o===z&&(o=te);let l=0,c=0,u=0>20;if(On(e)||!e.multi){const p=new Gr(l,o,M),m=Rl(a,n,o?u:u+h,d);-1===m?(ga(hi(c,s),i,a),Ol(i,e,n.length),n.push(a),c.directiveStart++,c.directiveEnd++,o&&(c.providerIndexes+=1048576),t.push(p),s.push(p)):(t[m]=p,s[m]=p)}else{const p=Rl(a,n,u+h,d),m=Rl(a,n,u,u+h),I=m>=0&&t[m];if(o&&!I||!o&&!(p>=0&&t[p])){ga(hi(c,s),i,a);const S=function gE(e,n,t,r,o){const i=new Gr(e,t,M);return i.multi=[],i.index=n,i.componentProviders=0,tg(i,o,r&&!t),i}(o?pE:hE,t.length,o,r,l);!o&&I&&(t[m].providerFactory=S),Ol(i,e,n.length,0),n.push(a),c.directiveStart++,c.directiveEnd++,o&&(c.providerIndexes+=1048576),t.push(S),s.push(S)}else Ol(i,e,p>-1?p:m,tg(t[o?m:p],l,!o&&r));!o&&r&&I&&t[m].componentProviders++}}}function Ol(e,n,t,r){const o=On(n),i=function MD(e){return!!e.useClass}(n);if(o||i){const l=(i?P(n.useClass):n).prototype.ngOnDestroy;if(l){const c=e.destroyHooks||(e.destroyHooks=[]);if(!o&&n.multi){const u=c.indexOf(t);-1===u?c.push(t,[r,l]):c[u+1].push(r,l)}else c.push(t,l)}}}function tg(e,n,t){return t&&e.componentProviders++,e.multi.push(n)-1}function Rl(e,n,t,r){for(let o=t;o{t.providersResolver=(r,o)=>function fE(e,n,t){const r=ee();if(r.firstCreatePass){const o=Ct(e);Fl(t,r.data,r.blueprint,o,!0),Fl(n,r.data,r.blueprint,o,!1)}}(r,o?o(e):e,n)}}class Sr{}class mE{}class ng extends Sr{constructor(n,t){super(),this._parent=t,this._bootstrapComponents=[],this.destroyCbs=[],this.componentFactoryResolver=new yh(this);const r=function rt(e,n){const t=e[ju]||null;if(!t&&!0===n)throw new Error(`Type ${le(e)} does not have '\u0275mod' property.`);return t}(n);this._bootstrapComponents=function Yt(e){return e instanceof Function?e():e}(r.bootstrap),this._r3Injector=Jf(n,t,[{provide:Sr,useValue:this},{provide:Ti,useValue:this.componentFactoryResolver}],le(n),new Set(["environment"])),this._r3Injector.resolveInjectorInitializers(),this.instance=this._r3Injector.get(n)}get injector(){return this._r3Injector}destroy(){const n=this._r3Injector;!n.destroyed&&n.destroy(),this.destroyCbs.forEach(t=>t()),this.destroyCbs=null}onDestroy(n){this.destroyCbs.push(n)}}class kl extends mE{constructor(n){super(),this.moduleType=n}create(n){return new ng(this.moduleType,n)}}function Zi(e,n,t,r){return function ug(e,n,t,r,o,i){const s=n+t;return je(e,s,o)?kt(e,s+1,i?r.call(i,o):r(o)):mo(e,s+1)}(E(),qe(),e,n,t,r)}function Vl(e,n,t,r,o){return function dg(e,n,t,r,o,i,s){const a=n+t;return kn(e,a,o,i)?kt(e,a+2,s?r.call(s,o,i):r(o,i)):mo(e,a+2)}(E(),qe(),e,n,t,r,o)}function Oe(e,n,t,r,o,i){return fg(E(),qe(),e,n,t,r,o,i)}function mo(e,n){const t=e[n];return t===z?void 0:t}function fg(e,n,t,r,o,i,s,a){const l=n+t;return function Bi(e,n,t,r,o){const i=kn(e,n,t,r);return je(e,n+2,o)||i}(e,l,o,i,s)?kt(e,l+3,a?r.call(a,o,i,s):r(o,i,s)):mo(e,l+3)}function Bl(e){return n=>{setTimeout(e,void 0,n)}}const be=class jE extends Rs{constructor(n=!1){super(),this.__isAsync=n}emit(n){super.next(n)}subscribe(n,t,r){let o=n,i=t||(()=>null),s=r;if(n&&"object"==typeof n){const l=n;o=l.next?.bind(l),i=l.error?.bind(l),s=l.complete?.bind(l)}this.__isAsync&&(i=Bl(i),o&&(o=Bl(o)),s&&(s=Bl(s)));const a=super.subscribe({next:o,error:i,complete:s});return n instanceof Tt&&n.add(a),a}};let Jt=(()=>{class e{}return e.__NG_ELEMENT_ID__=GE,e})();const UE=Jt,zE=class extends UE{constructor(n,t,r){super(),this._declarationLView=n,this._declarationTContainer=t,this.elementRef=r}createEmbeddedView(n,t){const r=this._declarationTContainer.tViews,o=Fi(this._declarationLView,r,n,16,null,r.declTNode,null,null,null,null,t||null);o[17]=this._declarationLView[this._declarationTContainer.index];const s=this._declarationLView[19];return null!==s&&(o[19]=s.createEmbeddedView(r)),ul(r,o,n),new io(o)}};function GE(){return function Qi(e,n){return 4&e.type?new zE(n,e,ur(e,n)):null}(Pe(),E())}let Ht=(()=>{class e{}return e.__NG_ELEMENT_ID__=WE,e})();function WE(){return function yg(e,n){let t;const r=n[e.index];if(yt(r))t=r;else{let o;if(8&e.type)o=Re(r);else{const i=n[Z];o=i.createComment("");const s=it(e,n);Nn(i,Di(i,s),o,function WC(e,n){return e.nextSibling(n)}(i,s),!1)}n[e.index]=t=ph(r,n,o,e),Ri(n,t)}return new _g(t,e,n)}(Pe(),E())}const qE=Ht,_g=class extends qE{constructor(n,t,r){super(),this._lContainer=n,this._hostTNode=t,this._hostLView=r}get element(){return ur(this._hostTNode,this._hostLView)}get injector(){return new er(this._hostTNode,this._hostLView)}get parentInjector(){const n=pa(this._hostTNode,this._hostLView);if(Cd(n)){const t=di(n,this._hostLView),r=ui(n);return new er(t[1].data[r+8],t)}return new er(null,this._hostLView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(n){const t=vg(this._lContainer);return null!==t&&t[n]||null}get length(){return this._lContainer.length-10}createEmbeddedView(n,t,r){let o,i;"number"==typeof r?o=r:null!=r&&(o=r.index,i=r.injector);const s=n.createEmbeddedView(t||{},i);return this.insert(s,o),s}createComponent(n,t,r,o,i){const s=n&&!function Zr(e){return"function"==typeof e}(n);let a;if(s)a=t;else{const d=t||{};a=d.index,r=d.injector,o=d.projectableNodes,i=d.environmentInjector||d.ngModuleRef}const l=s?n:new so(ie(n)),c=r||this.parentInjector;if(!i&&null==l.ngModule){const h=(s?c:this.parentInjector).get(lr,null);h&&(i=h)}const u=l.create(c,o,void 0,i);return this.insert(u.hostView,a),u}insert(n,t){const r=n._lView,o=r[1];if(function wy(e){return yt(e[3])}(r)){const u=this.indexOf(n);if(-1!==u)this.detach(u);else{const d=r[3],h=new _g(d,d[6],d[3]);h.detach(h.indexOf(n))}}const i=this._adjustIndex(t),s=this._lContainer;!function jC(e,n,t,r){const o=10+r,i=t.length;r>0&&(t[o-1][4]=n),r{class e{constructor(t){this.appInits=t,this.resolve=Ki,this.reject=Ki,this.initialized=!1,this.done=!1,this.donePromise=new Promise((r,o)=>{this.resolve=r,this.reject=o})}runInitializers(){if(this.initialized)return;const t=[],r=()=>{this.done=!0,this.resolve()};if(this.appInits)for(let o=0;o{i.subscribe({complete:a,error:l})});t.push(s)}}Promise.all(t).then(()=>{r()}).catch(o=>{this.reject(o)}),0===t.length&&r(),this.initialized=!0}}return e.\u0275fac=function(t){return new(t||e)(oe(Ug,8))},e.\u0275prov=de({token:e,factory:e.\u0275fac,providedIn:"root"}),e})();const yo=new H("AppId",{providedIn:"root",factory:function zg(){return`${Kl()}${Kl()}${Kl()}`}});function Kl(){return String.fromCharCode(97+Math.floor(25*Math.random()))}const Gg=new H("Platform Initializer"),Wg=new H("Platform ID",{providedIn:"platform",factory:()=>"unknown"}),E1=new H("appBootstrapListener"),Xt=new H("LocaleId",{providedIn:"root",factory:()=>function oy(e,n=B.Default){return oe(e,Jo(n))}(Xt,B.Optional|B.SkipSelf)||function I1(){return typeof $localize<"u"&&$localize.locale||Mr}()}),x1=(()=>Promise.resolve(0))();function Jl(e){typeof Zone>"u"?x1.then(()=>{e&&e.apply(null,null)}):Zone.current.scheduleMicroTask("scheduleMicrotask",e)}class $e{constructor({enableLongStackTrace:n=!1,shouldCoalesceEventChangeDetection:t=!1,shouldCoalesceRunChangeDetection:r=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new be(!1),this.onMicrotaskEmpty=new be(!1),this.onStable=new be(!1),this.onError=new be(!1),typeof Zone>"u")throw new A(908,!1);Zone.assertZonePatched();const o=this;o._nesting=0,o._outer=o._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(o._inner=o._inner.fork(new Zone.TaskTrackingZoneSpec)),n&&Zone.longStackTraceZoneSpec&&(o._inner=o._inner.fork(Zone.longStackTraceZoneSpec)),o.shouldCoalesceEventChangeDetection=!r&&t,o.shouldCoalesceRunChangeDetection=r,o.lastRequestAnimationFrameId=-1,o.nativeRequestAnimationFrame=function N1(){let e=fe.requestAnimationFrame,n=fe.cancelAnimationFrame;if(typeof Zone<"u"&&e&&n){const t=e[Zone.__symbol__("OriginalDelegate")];t&&(e=t);const r=n[Zone.__symbol__("OriginalDelegate")];r&&(n=r)}return{nativeRequestAnimationFrame:e,nativeCancelAnimationFrame:n}}().nativeRequestAnimationFrame,function R1(e){const n=()=>{!function O1(e){e.isCheckStableRunning||-1!==e.lastRequestAnimationFrameId||(e.lastRequestAnimationFrameId=e.nativeRequestAnimationFrame.call(fe,()=>{e.fakeTopEventTask||(e.fakeTopEventTask=Zone.root.scheduleEventTask("fakeTopEventTask",()=>{e.lastRequestAnimationFrameId=-1,ec(e),e.isCheckStableRunning=!0,Xl(e),e.isCheckStableRunning=!1},void 0,()=>{},()=>{})),e.fakeTopEventTask.invoke()}),ec(e))}(e)};e._inner=e._inner.fork({name:"angular",properties:{isAngularZone:!0},onInvokeTask:(t,r,o,i,s,a)=>{try{return Qg(e),t.invokeTask(o,i,s,a)}finally{(e.shouldCoalesceEventChangeDetection&&"eventTask"===i.type||e.shouldCoalesceRunChangeDetection)&&n(),Yg(e)}},onInvoke:(t,r,o,i,s,a,l)=>{try{return Qg(e),t.invoke(o,i,s,a,l)}finally{e.shouldCoalesceRunChangeDetection&&n(),Yg(e)}},onHasTask:(t,r,o,i)=>{t.hasTask(o,i),r===o&&("microTask"==i.change?(e._hasPendingMicrotasks=i.microTask,ec(e),Xl(e)):"macroTask"==i.change&&(e.hasPendingMacrotasks=i.macroTask))},onHandleError:(t,r,o,i)=>(t.handleError(o,i),e.runOutsideAngular(()=>e.onError.emit(i)),!1)})}(o)}static isInAngularZone(){return typeof Zone<"u"&&!0===Zone.current.get("isAngularZone")}static assertInAngularZone(){if(!$e.isInAngularZone())throw new A(909,!1)}static assertNotInAngularZone(){if($e.isInAngularZone())throw new A(909,!1)}run(n,t,r){return this._inner.run(n,t,r)}runTask(n,t,r,o){const i=this._inner,s=i.scheduleEventTask("NgZoneEvent: "+o,n,F1,Ki,Ki);try{return i.runTask(s,t,r)}finally{i.cancelTask(s)}}runGuarded(n,t,r){return this._inner.runGuarded(n,t,r)}runOutsideAngular(n){return this._outer.run(n)}}const F1={};function Xl(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 ec(e){e.hasPendingMicrotasks=!!(e._hasPendingMicrotasks||(e.shouldCoalesceEventChangeDetection||e.shouldCoalesceRunChangeDetection)&&-1!==e.lastRequestAnimationFrameId)}function Qg(e){e._nesting++,e.isStable&&(e.isStable=!1,e.onUnstable.emit(null))}function Yg(e){e._nesting--,Xl(e)}class P1{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new be,this.onMicrotaskEmpty=new be,this.onStable=new be,this.onError=new be}run(n,t,r){return n.apply(t,r)}runGuarded(n,t,r){return n.apply(t,r)}runOutsideAngular(n){return n()}runTask(n,t,r,o){return n.apply(t,r)}}const Kg=new H(""),Xi=new H("");let rc,tc=(()=>{class e{constructor(t,r,o){this._ngZone=t,this.registry=r,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,rc||(function k1(e){rc=e}(o),o.addToWindow(r)),this._watchAngularEvents(),t.run(()=>{this.taskTrackingZone=typeof Zone>"u"?null:Zone.current.get("TaskTrackingZone")})}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._didWork=!0,this._isZoneStable=!1}}),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.subscribe({next:()=>{$e.assertNotInAngularZone(),Jl(()=>{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())Jl(()=>{for(;0!==this._callbacks.length;){let t=this._callbacks.pop();clearTimeout(t.timeoutId),t.doneCb(this._didWork)}this._didWork=!1});else{let t=this.getPendingTasks();this._callbacks=this._callbacks.filter(r=>!r.updateCb||!r.updateCb(t)||(clearTimeout(r.timeoutId),!1)),this._didWork=!0}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(t=>({source:t.source,creationLocation:t.creationLocation,data:t.data})):[]}addCallback(t,r,o){let i=-1;r&&r>0&&(i=setTimeout(()=>{this._callbacks=this._callbacks.filter(s=>s.timeoutId!==i),t(this._didWork,this.getPendingTasks())},r)),this._callbacks.push({doneCb:t,timeoutId:i,updateCb:o})}whenStable(t,r,o){if(o&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is "zone.js/plugins/task-tracking" loaded?');this.addCallback(t,r,o),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}registerApplication(t){this.registry.registerApplication(t,this)}unregisterApplication(t){this.registry.unregisterApplication(t)}findProviders(t,r,o){return[]}}return e.\u0275fac=function(t){return new(t||e)(oe($e),oe(nc),oe(Xi))},e.\u0275prov=de({token:e,factory:e.\u0275fac}),e})(),nc=(()=>{class e{constructor(){this._applications=new Map}registerApplication(t,r){this._applications.set(t,r)}unregisterApplication(t){this._applications.delete(t)}unregisterAllApplications(){this._applications.clear()}getTestability(t){return this._applications.get(t)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(t,r=!0){return rc?.findTestabilityInTree(this,t,r)??null}}return e.\u0275fac=function(t){return new(t||e)},e.\u0275prov=de({token:e,factory:e.\u0275fac,providedIn:"platform"}),e})(),pn=null;const Jg=new H("AllowMultipleToken"),oc=new H("PlatformDestroyListeners");function em(e,n,t=[]){const r=`Platform: ${n}`,o=new H(r);return(i=[])=>{let s=ic();if(!s||s.injector.get(Jg,!1)){const a=[...t,...i,{provide:o,useValue:!0}];e?e(a):function B1(e){if(pn&&!pn.get(Jg,!1))throw new A(400,!1);pn=e;const n=e.get(nm);(function Xg(e){const n=e.get(Gg,null);n&&n.forEach(t=>t())})(e)}(function tm(e=[],n){return dn.create({name:n,providers:[{provide:Ka,useValue:"platform"},{provide:oc,useValue:new Set([()=>pn=null])},...e]})}(a,r))}return function j1(e){const n=ic();if(!n)throw new A(401,!1);return n}()}}function ic(){return pn?.get(nm)??null}let nm=(()=>{class e{constructor(t){this._injector=t,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(t,r){const o=function om(e,n){let t;return t="noop"===e?new P1:("zone.js"===e?void 0:e)||new $e(n),t}(r?.ngZone,function rm(e){return{enableLongStackTrace:!1,shouldCoalesceEventChangeDetection:!(!e||!e.ngZoneEventCoalescing)||!1,shouldCoalesceRunChangeDetection:!(!e||!e.ngZoneRunCoalescing)||!1}}(r)),i=[{provide:$e,useValue:o}];return o.run(()=>{const s=dn.create({providers:i,parent:this.injector,name:t.moduleType.name}),a=t.create(s),l=a.injector.get(dr,null);if(!l)throw new A(402,!1);return o.runOutsideAngular(()=>{const c=o.onError.subscribe({next:u=>{l.handleError(u)}});a.onDestroy(()=>{es(this._modules,a),c.unsubscribe()})}),function im(e,n,t){try{const r=t();return Hi(r)?r.catch(o=>{throw n.runOutsideAngular(()=>e.handleError(o)),o}):r}catch(r){throw n.runOutsideAngular(()=>e.handleError(r)),r}}(l,o,()=>{const c=a.injector.get(Ji);return c.runInitializers(),c.donePromise.then(()=>(function Np(e){ut(e,"Expected localeId to be defined"),"string"==typeof e&&(xp=e.toLowerCase().replace(/_/g,"-"))}(a.injector.get(Xt,Mr)||Mr),this._moduleDoBootstrap(a),a))})})}bootstrapModule(t,r=[]){const o=sm({},r);return function L1(e,n,t){const r=new kl(t);return Promise.resolve(r)}(0,0,t).then(i=>this.bootstrapModuleFactory(i,o))}_moduleDoBootstrap(t){const r=t.injector.get(sc);if(t._bootstrapComponents.length>0)t._bootstrapComponents.forEach(o=>r.bootstrap(o));else{if(!t.instance.ngDoBootstrap)throw new A(-403,!1);t.instance.ngDoBootstrap(r)}this._modules.push(t)}onDestroy(t){this._destroyListeners.push(t)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new A(404,!1);this._modules.slice().forEach(r=>r.destroy()),this._destroyListeners.forEach(r=>r());const t=this._injector.get(oc,null);t&&(t.forEach(r=>r()),t.clear()),this._destroyed=!0}get destroyed(){return this._destroyed}}return e.\u0275fac=function(t){return new(t||e)(oe(dn))},e.\u0275prov=de({token:e,factory:e.\u0275fac,providedIn:"platform"}),e})();function sm(e,n){return Array.isArray(n)?n.reduce(sm,e):{...e,...n}}let sc=(()=>{class e{get destroyed(){return this._destroyed}get injector(){return this._injector}constructor(t,r,o){this._zone=t,this._injector=r,this._exceptionHandler=o,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._stable=!0,this._destroyed=!1,this._destroyListeners=[],this.componentTypes=[],this.components=[],this._onMicrotaskEmptySubscription=this._zone.onMicrotaskEmpty.subscribe({next:()=>{this._zone.run(()=>{this.tick()})}});const i=new ze(a=>{this._stable=this._zone.isStable&&!this._zone.hasPendingMacrotasks&&!this._zone.hasPendingMicrotasks,this._zone.runOutsideAngular(()=>{a.next(this._stable),a.complete()})}),s=new ze(a=>{let l;this._zone.runOutsideAngular(()=>{l=this._zone.onStable.subscribe(()=>{$e.assertNotInAngularZone(),Jl(()=>{!this._stable&&!this._zone.hasPendingMacrotasks&&!this._zone.hasPendingMicrotasks&&(this._stable=!0,a.next(!0))})})});const c=this._zone.onUnstable.subscribe(()=>{$e.assertInAngularZone(),this._stable&&(this._stable=!1,this._zone.runOutsideAngular(()=>{a.next(!1)}))});return()=>{l.unsubscribe(),c.unsubscribe()}});this.isStable=jv(i,s.pipe(function Uv(e={}){const{connector:n=(()=>new Rs),resetOnError:t=!0,resetOnComplete:r=!0,resetOnRefCountZero:o=!0}=e;return i=>{let s=null,a=null,l=null,c=0,u=!1,d=!1;const h=()=>{a?.unsubscribe(),a=null},p=()=>{h(),s=l=null,u=d=!1},m=()=>{const D=s;p(),D?.unsubscribe()};return zn((D,I)=>{c++,!d&&!u&&h();const S=l=l??n();I.add(()=>{c--,0===c&&!d&&!u&&(a=Hs(m,o))}),S.subscribe(I),s||(s=new xs({next:O=>S.next(O),error:O=>{d=!0,h(),a=Hs(p,t,O),S.error(O)},complete:()=>{u=!0,h(),a=Hs(p,r),S.complete()}}),Bs(D).subscribe(s))})(i)}}()))}bootstrap(t,r){const o=t instanceof Vf;if(!this._injector.get(Ji).done)throw!o&&function Br(e){const n=ie(e)||ke(e)||Ge(e);return null!==n&&n.standalone}(t),new A(405,false);let s;s=o?t:this._injector.get(Ti).resolveComponentFactory(t),this.componentTypes.push(s.componentType);const a=function V1(e){return e.isBoundToModule}(s)?void 0:this._injector.get(Sr),c=s.create(dn.NULL,[],r||s.selector,a),u=c.location.nativeElement,d=c.injector.get(Kg,null);return d?.registerApplication(u),c.onDestroy(()=>{this.detachView(c.hostView),es(this.components,c),d?.unregisterApplication(u)}),this._loadComponent(c),c}tick(){if(this._runningTick)throw new A(101,!1);try{this._runningTick=!0;for(let t of this._views)t.detectChanges()}catch(t){this._zone.runOutsideAngular(()=>this._exceptionHandler.handleError(t))}finally{this._runningTick=!1}}attachView(t){const r=t;this._views.push(r),r.attachToAppRef(this)}detachView(t){const r=t;es(this._views,r),r.detachFromAppRef()}_loadComponent(t){this.attachView(t.hostView),this.tick(),this.components.push(t);const r=this._injector.get(E1,[]);r.push(...this._bootstrapListeners),r.forEach(o=>o(t))}ngOnDestroy(){if(!this._destroyed)try{this._destroyListeners.forEach(t=>t()),this._views.slice().forEach(t=>t.destroy()),this._onMicrotaskEmptySubscription.unsubscribe()}finally{this._destroyed=!0,this._views=[],this._bootstrapListeners=[],this._destroyListeners=[]}}onDestroy(t){return this._destroyListeners.push(t),()=>es(this._destroyListeners,t)}destroy(){if(this._destroyed)throw new A(406,!1);const t=this._injector;t.destroy&&!t.destroyed&&t.destroy()}get viewCount(){return this._views.length}warnIfDestroyed(){}}return e.\u0275fac=function(t){return new(t||e)(oe($e),oe(lr),oe(dr))},e.\u0275prov=de({token:e,factory:e.\u0275fac,providedIn:"root"}),e})();function es(e,n){const t=e.indexOf(n);t>-1&&e.splice(t,1)}let cm=(()=>{class e{}return e.__NG_ELEMENT_ID__=U1,e})();function U1(e){return function z1(e,n,t){if(Ur(e)&&!t){const r=st(e.index,n);return new io(r,r)}return 47&e.type?new io(n[16],n):null}(Pe(),E(),16==(16&e))}class fm{constructor(){}supports(n){return ao(n)}create(n){return new Y1(n)}}const Q1=(e,n)=>n;class Y1{constructor(n){this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=n||Q1}forEachItem(n){let t;for(t=this._itHead;null!==t;t=t._next)n(t)}forEachOperation(n){let t=this._itHead,r=this._removalsHead,o=0,i=null;for(;t||r;){const s=!r||t&&t.currentIndex{s=this._trackByFn(o,a),null!==t&&Object.is(t.trackById,s)?(r&&(t=this._verifyReinsertion(t,a,s,o)),Object.is(t.item,a)||this._addIdentityChange(t,a)):(t=this._mismatch(t,a,s,o),r=!0),t=t._next,o++}),this.length=o;return this._truncate(t),this.collection=n,this.isDirty}get isDirty(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}_reset(){if(this.isDirty){let n;for(n=this._previousItHead=this._itHead;null!==n;n=n._next)n._nextPrevious=n._next;for(n=this._additionsHead;null!==n;n=n._nextAdded)n.previousIndex=n.currentIndex;for(this._additionsHead=this._additionsTail=null,n=this._movesHead;null!==n;n=n._nextMoved)n.previousIndex=n.currentIndex;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(n,t,r,o){let i;return null===n?i=this._itTail:(i=n._prev,this._remove(n)),null!==(n=null===this._unlinkedRecords?null:this._unlinkedRecords.get(r,null))?(Object.is(n.item,t)||this._addIdentityChange(n,t),this._reinsertAfter(n,i,o)):null!==(n=null===this._linkedRecords?null:this._linkedRecords.get(r,o))?(Object.is(n.item,t)||this._addIdentityChange(n,t),this._moveAfter(n,i,o)):n=this._addAfter(new K1(t,r),i,o),n}_verifyReinsertion(n,t,r,o){let i=null===this._unlinkedRecords?null:this._unlinkedRecords.get(r,null);return null!==i?n=this._reinsertAfter(i,n._prev,o):n.currentIndex!=o&&(n.currentIndex=o,this._addToMoves(n,o)),n}_truncate(n){for(;null!==n;){const t=n._next;this._addToRemovals(this._unlink(n)),n=t}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(n,t,r){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(n);const o=n._prevRemoved,i=n._nextRemoved;return null===o?this._removalsHead=i:o._nextRemoved=i,null===i?this._removalsTail=o:i._prevRemoved=o,this._insertAfter(n,t,r),this._addToMoves(n,r),n}_moveAfter(n,t,r){return this._unlink(n),this._insertAfter(n,t,r),this._addToMoves(n,r),n}_addAfter(n,t,r){return this._insertAfter(n,t,r),this._additionsTail=null===this._additionsTail?this._additionsHead=n:this._additionsTail._nextAdded=n,n}_insertAfter(n,t,r){const o=null===t?this._itHead:t._next;return n._next=o,n._prev=t,null===o?this._itTail=n:o._prev=n,null===t?this._itHead=n:t._next=n,null===this._linkedRecords&&(this._linkedRecords=new hm),this._linkedRecords.put(n),n.currentIndex=r,n}_remove(n){return this._addToRemovals(this._unlink(n))}_unlink(n){null!==this._linkedRecords&&this._linkedRecords.remove(n);const t=n._prev,r=n._next;return null===t?this._itHead=r:t._next=r,null===r?this._itTail=t:r._prev=t,n}_addToMoves(n,t){return n.previousIndex===t||(this._movesTail=null===this._movesTail?this._movesHead=n:this._movesTail._nextMoved=n),n}_addToRemovals(n){return null===this._unlinkedRecords&&(this._unlinkedRecords=new hm),this._unlinkedRecords.put(n),n.currentIndex=null,n._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=n,n._prevRemoved=null):(n._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=n),n}_addIdentityChange(n,t){return n.item=t,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=n:this._identityChangesTail._nextIdentityChange=n,n}}class K1{constructor(n,t){this.item=n,this.trackById=t,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null}}class J1{constructor(){this._head=null,this._tail=null}add(n){null===this._head?(this._head=this._tail=n,n._nextDup=null,n._prevDup=null):(this._tail._nextDup=n,n._prevDup=this._tail,n._nextDup=null,this._tail=n)}get(n,t){let r;for(r=this._head;null!==r;r=r._nextDup)if((null===t||t<=r.currentIndex)&&Object.is(r.trackById,n))return r;return null}remove(n){const t=n._prevDup,r=n._nextDup;return null===t?this._head=r:t._nextDup=r,null===r?this._tail=t:r._prevDup=t,null===this._head}}class hm{constructor(){this.map=new Map}put(n){const t=n.trackById;let r=this.map.get(t);r||(r=new J1,this.map.set(t,r)),r.add(n)}get(n,t){const o=this.map.get(n);return o?o.get(n,t):null}remove(n){const t=n.trackById;return this.map.get(t).remove(n)&&this.map.delete(t),n}get isEmpty(){return 0===this.map.size}clear(){this.map.clear()}}function pm(e,n,t){const r=e.previousIndex;if(null===r)return r;let o=0;return t&&r{if(t&&t.key===o)this._maybeAddToChanges(t,r),this._appendAfter=t,t=t._next;else{const i=this._getOrCreateRecordForKey(o,r);t=this._insertBeforeOrAppend(t,i)}}),t){t._prev&&(t._prev._next=null),this._removalsHead=t;for(let r=t;null!==r;r=r._nextRemoved)r===this._mapHead&&(this._mapHead=null),this._records.delete(r.key),r._nextRemoved=r._next,r.previousValue=r.currentValue,r.currentValue=null,r._prev=null,r._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(n,t){if(n){const r=n._prev;return t._next=n,t._prev=r,n._prev=t,r&&(r._next=t),n===this._mapHead&&(this._mapHead=t),this._appendAfter=n,n}return this._appendAfter?(this._appendAfter._next=t,t._prev=this._appendAfter):this._mapHead=t,this._appendAfter=t,null}_getOrCreateRecordForKey(n,t){if(this._records.has(n)){const o=this._records.get(n);this._maybeAddToChanges(o,t);const i=o._prev,s=o._next;return i&&(i._next=s),s&&(s._prev=i),o._next=null,o._prev=null,o}const r=new eI(n);return this._records.set(n,r),r.currentValue=t,this._addToAdditions(r),r}_reset(){if(this.isDirty){let n;for(this._previousMapHead=this._mapHead,n=this._previousMapHead;null!==n;n=n._next)n._nextPrevious=n._next;for(n=this._changesHead;null!==n;n=n._nextChanged)n.previousValue=n.currentValue;for(n=this._additionsHead;null!=n;n=n._nextAdded)n.previousValue=n.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(n,t){Object.is(t,n.currentValue)||(n.previousValue=n.currentValue,n.currentValue=t,this._addToChanges(n))}_addToAdditions(n){null===this._additionsHead?this._additionsHead=this._additionsTail=n:(this._additionsTail._nextAdded=n,this._additionsTail=n)}_addToChanges(n){null===this._changesHead?this._changesHead=this._changesTail=n:(this._changesTail._nextChanged=n,this._changesTail=n)}_forEach(n,t){n instanceof Map?n.forEach(t):Object.keys(n).forEach(r=>t(n[r],r))}}class eI{constructor(n){this.key=n,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 mm(){return new rs([new fm])}let rs=(()=>{class e{constructor(t){this.factories=t}static create(t,r){if(null!=r){const o=r.factories.slice();t=t.concat(o)}return new e(t)}static extend(t){return{provide:e,useFactory:r=>e.create(t,r||mm()),deps:[[e,new vi,new _i]]}}find(t){const r=this.factories.find(o=>o.supports(t));if(null!=r)return r;throw new A(901,!1)}}return e.\u0275prov=de({token:e,providedIn:"root",factory:mm}),e})();function _m(){return new Co([new gm])}let Co=(()=>{class e{constructor(t){this.factories=t}static create(t,r){if(r){const o=r.factories.slice();t=t.concat(o)}return new e(t)}static extend(t){return{provide:e,useFactory:r=>e.create(t,r||_m()),deps:[[e,new vi,new _i]]}}find(t){const r=this.factories.find(o=>o.supports(t));if(r)return r;throw new A(901,!1)}}return e.\u0275prov=de({token:e,providedIn:"root",factory:_m}),e})();const rI=em(null,"core",[]);let oI=(()=>{class e{constructor(t){}}return e.\u0275fac=function(t){return new(t||e)(oe(sc))},e.\u0275mod=an({type:e}),e.\u0275inj=$t({}),e})();let fc=null;function Hn(){return fc}class aI{}const tn=new H("DocumentToken");let bo=(()=>{class e{constructor(t,r,o,i){this._iterableDiffers=t,this._keyValueDiffers=r,this._ngEl=o,this._renderer=i,this._iterableDiffer=null,this._keyValueDiffer=null,this._initialClasses=[],this._rawClass=null}set klass(t){this._removeClasses(this._initialClasses),this._initialClasses="string"==typeof t?t.split(/\s+/):[],this._applyClasses(this._initialClasses),this._applyClasses(this._rawClass)}set ngClass(t){this._removeClasses(this._rawClass),this._applyClasses(this._initialClasses),this._iterableDiffer=null,this._keyValueDiffer=null,this._rawClass="string"==typeof t?t.split(/\s+/):t,this._rawClass&&(ao(this._rawClass)?this._iterableDiffer=this._iterableDiffers.find(this._rawClass).create():this._keyValueDiffer=this._keyValueDiffers.find(this._rawClass).create())}ngDoCheck(){if(this._iterableDiffer){const t=this._iterableDiffer.diff(this._rawClass);t&&this._applyIterableChanges(t)}else if(this._keyValueDiffer){const t=this._keyValueDiffer.diff(this._rawClass);t&&this._applyKeyValueChanges(t)}}_applyKeyValueChanges(t){t.forEachAddedItem(r=>this._toggleClass(r.key,r.currentValue)),t.forEachChangedItem(r=>this._toggleClass(r.key,r.currentValue)),t.forEachRemovedItem(r=>{r.previousValue&&this._toggleClass(r.key,!1)})}_applyIterableChanges(t){t.forEachAddedItem(r=>{if("string"!=typeof r.item)throw new Error(`NgClass can only toggle CSS classes expressed as strings, got ${le(r.item)}`);this._toggleClass(r.item,!0)}),t.forEachRemovedItem(r=>this._toggleClass(r.item,!1))}_applyClasses(t){t&&(Array.isArray(t)||t instanceof Set?t.forEach(r=>this._toggleClass(r,!0)):Object.keys(t).forEach(r=>this._toggleClass(r,!!t[r])))}_removeClasses(t){t&&(Array.isArray(t)||t instanceof Set?t.forEach(r=>this._toggleClass(r,!1)):Object.keys(t).forEach(r=>this._toggleClass(r,!1)))}_toggleClass(t,r){(t=t.trim())&&t.split(/\s+/g).forEach(o=>{r?this._renderer.addClass(this._ngEl.nativeElement,o):this._renderer.removeClass(this._ngEl.nativeElement,o)})}}return e.\u0275fac=function(t){return new(t||e)(M(rs),M(Co),M(Dt),M(Rn))},e.\u0275dir=$({type:e,selectors:[["","ngClass",""]],inputs:{klass:["class","klass"],ngClass:"ngClass"},standalone:!0}),e})();class ZI{constructor(n,t,r,o){this.$implicit=n,this.ngForOf=t,this.index=r,this.count=o}get first(){return 0===this.index}get last(){return this.index===this.count-1}get even(){return this.index%2==0}get odd(){return!this.even}}let xr=(()=>{class e{set ngForOf(t){this._ngForOf=t,this._ngForOfDirty=!0}set ngForTrackBy(t){this._trackByFn=t}get ngForTrackBy(){return this._trackByFn}constructor(t,r,o){this._viewContainer=t,this._template=r,this._differs=o,this._ngForOf=null,this._ngForOfDirty=!0,this._differ=null}set ngForTemplate(t){t&&(this._template=t)}ngDoCheck(){if(this._ngForOfDirty){this._ngForOfDirty=!1;const t=this._ngForOf;!this._differ&&t&&(this._differ=this._differs.find(t).create(this.ngForTrackBy))}if(this._differ){const t=this._differ.diff(this._ngForOf);t&&this._applyChanges(t)}}_applyChanges(t){const r=this._viewContainer;t.forEachOperation((o,i,s)=>{if(null==o.previousIndex)r.createEmbeddedView(this._template,new ZI(o.item,this._ngForOf,-1,-1),null===s?void 0:s);else if(null==s)r.remove(null===i?void 0:i);else if(null!==i){const a=r.get(i);r.move(a,s),Tm(a,o)}});for(let o=0,i=r.length;o{Tm(r.get(o.currentIndex),o)})}static ngTemplateContextGuard(t,r){return!0}}return e.\u0275fac=function(t){return new(t||e)(M(Ht),M(Jt),M(rs))},e.\u0275dir=$({type:e,selectors:[["","ngFor","","ngForOf",""]],inputs:{ngForOf:"ngForOf",ngForTrackBy:"ngForTrackBy",ngForTemplate:"ngForTemplate"},standalone:!0}),e})();function Tm(e,n){e.context.$implicit=n.item}let jn=(()=>{class e{constructor(t,r){this._viewContainer=t,this._context=new YI,this._thenTemplateRef=null,this._elseTemplateRef=null,this._thenViewRef=null,this._elseViewRef=null,this._thenTemplateRef=r}set ngIf(t){this._context.$implicit=this._context.ngIf=t,this._updateView()}set ngIfThen(t){xm("ngIfThen",t),this._thenTemplateRef=t,this._thenViewRef=null,this._updateView()}set ngIfElse(t){xm("ngIfElse",t),this._elseTemplateRef=t,this._elseViewRef=null,this._updateView()}_updateView(){this._context.$implicit?this._thenViewRef||(this._viewContainer.clear(),this._elseViewRef=null,this._thenTemplateRef&&(this._thenViewRef=this._viewContainer.createEmbeddedView(this._thenTemplateRef,this._context))):this._elseViewRef||(this._viewContainer.clear(),this._thenViewRef=null,this._elseTemplateRef&&(this._elseViewRef=this._viewContainer.createEmbeddedView(this._elseTemplateRef,this._context)))}static ngTemplateContextGuard(t,r){return!0}}return e.\u0275fac=function(t){return new(t||e)(M(Ht),M(Jt))},e.\u0275dir=$({type:e,selectors:[["","ngIf",""]],inputs:{ngIf:"ngIf",ngIfThen:"ngIfThen",ngIfElse:"ngIfElse"},standalone:!0}),e})();class YI{constructor(){this.$implicit=null,this.ngIf=null}}function xm(e,n){if(n&&!n.createEmbeddedView)throw new Error(`${e} must be a TemplateRef, but received '${le(n)}'.`)}let Om=(()=>{class e{transform(t,r,o){if(null==t)return null;if(!this.supports(t))throw function At(e,n){return new A(2100,!1)}();return t.slice(r,o)}supports(t){return"string"==typeof t||Array.isArray(t)}}return e.\u0275fac=function(t){return new(t||e)},e.\u0275pipe=Je({name:"slice",type:e,pure:!1,standalone:!0}),e})(),DM=(()=>{class e{}return e.\u0275fac=function(t){return new(t||e)},e.\u0275mod=an({type:e}),e.\u0275inj=$t({}),e})();class XM extends aI{constructor(){super(...arguments),this.supportsDOMEvents=!0}}class Ac extends XM{static makeCurrent(){!function sI(e){fc||(fc=e)}(new Ac)}onAndCancel(n,t,r){return n.addEventListener(t,r,!1),()=>{n.removeEventListener(t,r,!1)}}dispatchEvent(n,t){n.dispatchEvent(t)}remove(n){n.parentNode&&n.parentNode.removeChild(n)}createElement(n,t){return(t=t||this.getDefaultDocument()).createElement(n)}createHtmlDocument(){return document.implementation.createHTMLDocument("fakeTitle")}getDefaultDocument(){return document}isElementNode(n){return n.nodeType===Node.ELEMENT_NODE}isShadowRoot(n){return n instanceof DocumentFragment}getGlobalEventTarget(n,t){return"window"===t?window:"document"===t?n:"body"===t?n.body:null}getBaseHref(n){const t=function eS(){return Io=Io||document.querySelector("base"),Io?Io.getAttribute("href"):null}();return null==t?null:function tS(e){ps=ps||document.createElement("a"),ps.setAttribute("href",e);const n=ps.pathname;return"/"===n.charAt(0)?n:`/${n}`}(t)}resetBaseElement(){Io=null}getUserAgent(){return window.navigator.userAgent}getCookie(n){return function WI(e,n){n=encodeURIComponent(n);for(const t of e.split(";")){const r=t.indexOf("="),[o,i]=-1==r?[t,""]:[t.slice(0,r),t.slice(r+1)];if(o.trim()===n)return decodeURIComponent(i)}return null}(document.cookie,n)}}let ps,Io=null;const jm=new H("TRANSITION_ID"),rS=[{provide:Ug,useFactory:function nS(e,n,t){return()=>{t.get(Ji).donePromise.then(()=>{const r=Hn(),o=n.querySelectorAll(`style[ng-transition="${e}"]`);for(let i=0;i{class e{build(){return new XMLHttpRequest}}return e.\u0275fac=function(t){return new(t||e)},e.\u0275prov=de({token:e,factory:e.\u0275fac}),e})();const gs=new H("EventManagerPlugins");let ms=(()=>{class e{constructor(t,r){this._zone=r,this._eventNameToPlugin=new Map,t.forEach(o=>o.manager=this),this._plugins=t.slice().reverse()}addEventListener(t,r,o){return this._findPluginFor(r).addEventListener(t,r,o)}addGlobalEventListener(t,r,o){return this._findPluginFor(r).addGlobalEventListener(t,r,o)}getZone(){return this._zone}_findPluginFor(t){const r=this._eventNameToPlugin.get(t);if(r)return r;const o=this._plugins;for(let i=0;i{class e{constructor(){this._stylesSet=new Set}addStyles(t){const r=new Set;t.forEach(o=>{this._stylesSet.has(o)||(this._stylesSet.add(o),r.add(o))}),this.onStylesAdded(r)}onStylesAdded(t){}getAllStyles(){return Array.from(this._stylesSet)}}return e.\u0275fac=function(t){return new(t||e)},e.\u0275prov=de({token:e,factory:e.\u0275fac}),e})(),Mo=(()=>{class e extends Um{constructor(t){super(),this._doc=t,this._hostNodes=new Map,this._hostNodes.set(t.head,[])}_addStylesToHost(t,r,o){t.forEach(i=>{const s=this._doc.createElement("style");s.textContent=i,o.push(r.appendChild(s))})}addHost(t){const r=[];this._addStylesToHost(this._stylesSet,t,r),this._hostNodes.set(t,r)}removeHost(t){const r=this._hostNodes.get(t);r&&r.forEach(zm),this._hostNodes.delete(t)}onStylesAdded(t){this._hostNodes.forEach((r,o)=>{this._addStylesToHost(t,o,r)})}ngOnDestroy(){this._hostNodes.forEach(t=>t.forEach(zm))}}return e.\u0275fac=function(t){return new(t||e)(oe(tn))},e.\u0275prov=de({token:e,factory:e.\u0275fac}),e})();function zm(e){Hn().remove(e)}const Tc={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/"},xc=/%COMP%/g;function Nc(e,n){return n.flat(100).map(t=>t.replace(xc,e))}function qm(e){return n=>{if("__ngUnwrap__"===n)return e;!1===e(n)&&(n.preventDefault(),n.returnValue=!1)}}let Fc=(()=>{class e{constructor(t,r,o){this.eventManager=t,this.sharedStylesHost=r,this.appId=o,this.rendererByCompId=new Map,this.defaultRenderer=new Oc(t)}createRenderer(t,r){if(!t||!r)return this.defaultRenderer;switch(r.encapsulation){case xt.Emulated:{let o=this.rendererByCompId.get(r.id);return o||(o=new dS(this.eventManager,this.sharedStylesHost,r,this.appId),this.rendererByCompId.set(r.id,o)),o.applyToHost(t),o}case xt.ShadowDom:return new fS(this.eventManager,this.sharedStylesHost,t,r);default:if(!this.rendererByCompId.has(r.id)){const o=Nc(r.id,r.styles);this.sharedStylesHost.addStyles(o),this.rendererByCompId.set(r.id,this.defaultRenderer)}return this.defaultRenderer}}begin(){}end(){}}return e.\u0275fac=function(t){return new(t||e)(oe(ms),oe(Mo),oe(yo))},e.\u0275prov=de({token:e,factory:e.\u0275fac}),e})();class Oc{constructor(n){this.eventManager=n,this.data=Object.create(null),this.destroyNode=null}destroy(){}createElement(n,t){return t?document.createElementNS(Tc[t]||t,n):document.createElement(n)}createComment(n){return document.createComment(n)}createText(n){return document.createTextNode(n)}appendChild(n,t){(Qm(n)?n.content:n).appendChild(t)}insertBefore(n,t,r){n&&(Qm(n)?n.content:n).insertBefore(t,r)}removeChild(n,t){n&&n.removeChild(t)}selectRootElement(n,t){let r="string"==typeof n?document.querySelector(n):n;if(!r)throw new Error(`The selector "${n}" did not match any elements`);return t||(r.textContent=""),r}parentNode(n){return n.parentNode}nextSibling(n){return n.nextSibling}setAttribute(n,t,r,o){if(o){t=o+":"+t;const i=Tc[o];i?n.setAttributeNS(i,t,r):n.setAttribute(t,r)}else n.setAttribute(t,r)}removeAttribute(n,t,r){if(r){const o=Tc[r];o?n.removeAttributeNS(o,t):n.removeAttribute(`${r}:${t}`)}else n.removeAttribute(t)}addClass(n,t){n.classList.add(t)}removeClass(n,t){n.classList.remove(t)}setStyle(n,t,r,o){o&(Xe.DashCase|Xe.Important)?n.style.setProperty(t,r,o&Xe.Important?"important":""):n.style[t]=r}removeStyle(n,t,r){r&Xe.DashCase?n.style.removeProperty(t):n.style[t]=""}setProperty(n,t,r){n[t]=r}setValue(n,t){n.nodeValue=t}listen(n,t,r){return"string"==typeof n?this.eventManager.addGlobalEventListener(n,t,qm(r)):this.eventManager.addEventListener(n,t,qm(r))}}function Qm(e){return"TEMPLATE"===e.tagName&&void 0!==e.content}class dS extends Oc{constructor(n,t,r,o){super(n),this.component=r;const i=Nc(o+"-"+r.id,r.styles);t.addStyles(i),this.contentAttr=function lS(e){return"_ngcontent-%COMP%".replace(xc,e)}(o+"-"+r.id),this.hostAttr=function cS(e){return"_nghost-%COMP%".replace(xc,e)}(o+"-"+r.id)}applyToHost(n){super.setAttribute(n,this.hostAttr,"")}createElement(n,t){const r=super.createElement(n,t);return super.setAttribute(r,this.contentAttr,""),r}}class fS extends Oc{constructor(n,t,r,o){super(n),this.sharedStylesHost=t,this.hostEl=r,this.shadowRoot=r.attachShadow({mode:"open"}),this.sharedStylesHost.addHost(this.shadowRoot);const i=Nc(o.id,o.styles);for(let s=0;s{class e extends $m{constructor(t){super(t)}supports(t){return!0}addEventListener(t,r,o){return t.addEventListener(r,o,!1),()=>this.removeEventListener(t,r,o)}removeEventListener(t,r,o){return t.removeEventListener(r,o)}}return e.\u0275fac=function(t){return new(t||e)(oe(tn))},e.\u0275prov=de({token:e,factory:e.\u0275fac}),e})();const Ym=["alt","control","meta","shift"],pS={"\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"},gS={alt:e=>e.altKey,control:e=>e.ctrlKey,meta:e=>e.metaKey,shift:e=>e.shiftKey};let mS=(()=>{class e extends $m{constructor(t){super(t)}supports(t){return null!=e.parseEventName(t)}addEventListener(t,r,o){const i=e.parseEventName(r),s=e.eventCallback(i.fullKey,o,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>Hn().onAndCancel(t,i.domEventName,s))}static parseEventName(t){const r=t.toLowerCase().split("."),o=r.shift();if(0===r.length||"keydown"!==o&&"keyup"!==o)return null;const i=e._normalizeKey(r.pop());let s="",a=r.indexOf("code");if(a>-1&&(r.splice(a,1),s="code."),Ym.forEach(c=>{const u=r.indexOf(c);u>-1&&(r.splice(u,1),s+=c+".")}),s+=i,0!=r.length||0===i.length)return null;const l={};return l.domEventName=o,l.fullKey=s,l}static matchEventFullKeyCode(t,r){let o=pS[t.key]||t.key,i="";return r.indexOf("code.")>-1&&(o=t.code,i="code."),!(null==o||!o)&&(o=o.toLowerCase()," "===o?o="space":"."===o&&(o="dot"),Ym.forEach(s=>{s!==o&&(0,gS[s])(t)&&(i+=s+".")}),i+=o,i===r)}static eventCallback(t,r,o){return i=>{e.matchEventFullKeyCode(i,t)&&o.runGuarded(()=>r(i))}}static _normalizeKey(t){return"esc"===t?"escape":t}}return e.\u0275fac=function(t){return new(t||e)(oe(tn))},e.\u0275prov=de({token:e,factory:e.\u0275fac}),e})();const CS=em(rI,"browser",[{provide:Wg,useValue:"browser"},{provide:Gg,useValue:function _S(){Ac.makeCurrent()},multi:!0},{provide:tn,useFactory:function yS(){return function eD(e){$a=e}(document),document},deps:[]}]),Xm=new H(""),e_=[{provide:Xi,useClass:class oS{addToWindow(n){fe.getAngularTestability=(r,o=!0)=>{const i=n.findTestabilityInTree(r,o);if(null==i)throw new Error("Could not find testability for element.");return i},fe.getAllAngularTestabilities=()=>n.getAllTestabilities(),fe.getAllAngularRootElements=()=>n.getAllRootElements(),fe.frameworkStabilizers||(fe.frameworkStabilizers=[]),fe.frameworkStabilizers.push(r=>{const o=fe.getAllAngularTestabilities();let i=o.length,s=!1;const a=function(l){s=s||l,i--,0==i&&r(s)};o.forEach(function(l){l.whenStable(a)})})}findTestabilityInTree(n,t,r){return null==t?null:n.getTestability(t)??(r?Hn().isShadowRoot(t)?this.findTestabilityInTree(n,t.host,!0):this.findTestabilityInTree(n,t.parentElement,!0):null)}},deps:[]},{provide:Kg,useClass:tc,deps:[$e,nc,Xi]},{provide:tc,useClass:tc,deps:[$e,nc,Xi]}],t_=[{provide:Ka,useValue:"root"},{provide:dr,useFactory:function vS(){return new dr},deps:[]},{provide:gs,useClass:hS,multi:!0,deps:[tn,$e,Wg]},{provide:gs,useClass:mS,multi:!0,deps:[tn]},{provide:Fc,useClass:Fc,deps:[ms,Mo,yo]},{provide:Hf,useExisting:Fc},{provide:Um,useExisting:Mo},{provide:Mo,useClass:Mo,deps:[tn]},{provide:ms,useClass:ms,deps:[gs,$e]},{provide:class MM{},useClass:iS,deps:[]},[]];let DS=(()=>{class e{constructor(t){}static withServerTransition(t){return{ngModule:e,providers:[{provide:yo,useValue:t.appId},{provide:jm,useExisting:yo},rS]}}}return e.\u0275fac=function(t){return new(t||e)(oe(Xm,12))},e.\u0275mod=an({type:e}),e.\u0275inj=$t({providers:[...t_,...e_],imports:[DM,oI]}),e})();typeof window<"u"&&window;const{isArray:NS}=Array,{getPrototypeOf:FS,prototype:OS,keys:RS}=Object;const{isArray:LS}=Array;function HS(e,n){return e.reduce((t,r,o)=>(t[r]=n[o],t),{})}function jS(...e){const n=function Fv(e){return me(Vs(e))?e.pop():void 0}(e),{args:t,keys:r}=function PS(e){if(1===e.length){const n=e[0];if(NS(n))return{args:n,keys:null};if(function kS(e){return e&&"object"==typeof e&&FS(e)===OS}(n)){const t=RS(n);return{args:t.map(r=>n[r]),keys:t}}}return{args:e,keys:null}}(e),o=new ze(i=>{const{length:s}=t;if(!s)return void i.complete();const a=new Array(s);let l=s,c=s;for(let u=0;u{d||(d=!0,c--),a[u]=h},()=>l--,void 0,()=>{(!l||!d)&&(c||i.next(r?HS(r,a):a),i.complete())}))}});return n?o.pipe(function BS(e){return Ps(n=>function VS(e,n){return LS(n)?e(...n):e(n)}(e,n))}(n)):o}let o_=(()=>{class e{constructor(t,r){this._renderer=t,this._elementRef=r,this.onChange=o=>{},this.onTouched=()=>{}}setProperty(t,r){this._renderer.setProperty(this._elementRef.nativeElement,t,r)}registerOnTouched(t){this.onTouched=t}registerOnChange(t){this.onChange=t}setDisabledState(t){this.setProperty("disabled",t)}}return e.\u0275fac=function(t){return new(t||e)(M(Rn),M(Dt))},e.\u0275dir=$({type:e}),e})(),$n=(()=>{class e extends o_{}return e.\u0275fac=function(){let n;return function(r){return(n||(n=Be(e)))(r||e)}}(),e.\u0275dir=$({type:e,features:[se]}),e})();const jt=new H("NgValueAccessor"),$S={provide:jt,useExisting:ue(()=>kc),multi:!0};let kc=(()=>{class e extends $n{writeValue(t){this.setProperty("checked",t)}}return e.\u0275fac=function(){let n;return function(r){return(n||(n=Be(e)))(r||e)}}(),e.\u0275dir=$({type:e,selectors:[["input","type","checkbox","formControlName",""],["input","type","checkbox","formControl",""],["input","type","checkbox","ngModel",""]],hostBindings:function(t,r){1&t&&k("change",function(i){return r.onChange(i.target.checked)})("blur",function(){return r.onTouched()})},features:[ge([$S]),se]}),e})();const US={provide:jt,useExisting:ue(()=>So),multi:!0},GS=new H("CompositionEventMode");let So=(()=>{class e extends o_{constructor(t,r,o){super(t,r),this._compositionMode=o,this._composing=!1,null==this._compositionMode&&(this._compositionMode=!function zS(){const e=Hn()?Hn().getUserAgent():"";return/android (\d+)/.test(e.toLowerCase())}())}writeValue(t){this.setProperty("value",t??"")}_handleInput(t){(!this._compositionMode||this._compositionMode&&!this._composing)&&this.onChange(t)}_compositionStart(){this._composing=!0}_compositionEnd(t){this._composing=!1,this._compositionMode&&this.onChange(t)}}return e.\u0275fac=function(t){return new(t||e)(M(Rn),M(Dt),M(GS,8))},e.\u0275dir=$({type:e,selectors:[["input","formControlName","",3,"type","checkbox"],["textarea","formControlName",""],["input","formControl","",3,"type","checkbox"],["textarea","formControl",""],["input","ngModel","",3,"type","checkbox"],["textarea","ngModel",""],["","ngDefaultControl",""]],hostBindings:function(t,r){1&t&&k("input",function(i){return r._handleInput(i.target.value)})("blur",function(){return r.onTouched()})("compositionstart",function(){return r._compositionStart()})("compositionend",function(i){return r._compositionEnd(i.target.value)})},features:[ge([US]),se]}),e})();const Ue=new H("NgValidators"),_n=new H("NgAsyncValidators");function p_(e){return null!=e}function g_(e){return Hi(e)?Bs(e):e}function m_(e){let n={};return e.forEach(t=>{n=null!=t?{...n,...t}:n}),0===Object.keys(n).length?null:n}function __(e,n){return n.map(t=>t(e))}function v_(e){return e.map(n=>function ZS(e){return!e.validate}(n)?n:t=>n.validate(t))}function Lc(e){return null!=e?function y_(e){if(!e)return null;const n=e.filter(p_);return 0==n.length?null:function(t){return m_(__(t,n))}}(v_(e)):null}function Vc(e){return null!=e?function C_(e){if(!e)return null;const n=e.filter(p_);return 0==n.length?null:function(t){return jS(__(t,n).map(g_)).pipe(Ps(m_))}}(v_(e)):null}function D_(e,n){return null===e?[n]:Array.isArray(e)?[...e,n]:[e,n]}function Bc(e){return e?Array.isArray(e)?e:[e]:[]}function vs(e,n){return Array.isArray(e)?e.includes(n):e===n}function E_(e,n){const t=Bc(n);return Bc(e).forEach(o=>{vs(t,o)||t.push(o)}),t}function I_(e,n){return Bc(n).filter(t=>!vs(e,t))}class M_{constructor(){this._rawValidators=[],this._rawAsyncValidators=[],this._onDestroyCallbacks=[]}get value(){return this.control?this.control.value:null}get valid(){return this.control?this.control.valid:null}get invalid(){return this.control?this.control.invalid:null}get pending(){return this.control?this.control.pending:null}get disabled(){return this.control?this.control.disabled:null}get enabled(){return this.control?this.control.enabled:null}get errors(){return this.control?this.control.errors:null}get pristine(){return this.control?this.control.pristine:null}get dirty(){return this.control?this.control.dirty:null}get touched(){return this.control?this.control.touched:null}get status(){return this.control?this.control.status:null}get untouched(){return this.control?this.control.untouched:null}get statusChanges(){return this.control?this.control.statusChanges:null}get valueChanges(){return this.control?this.control.valueChanges:null}get path(){return null}_setValidators(n){this._rawValidators=n||[],this._composedValidatorFn=Lc(this._rawValidators)}_setAsyncValidators(n){this._rawAsyncValidators=n||[],this._composedAsyncValidatorFn=Vc(this._rawAsyncValidators)}get validator(){return this._composedValidatorFn||null}get asyncValidator(){return this._composedAsyncValidatorFn||null}_registerOnDestroy(n){this._onDestroyCallbacks.push(n)}_invokeOnDestroyCallbacks(){this._onDestroyCallbacks.forEach(n=>n()),this._onDestroyCallbacks=[]}reset(n){this.control&&this.control.reset(n)}hasError(n,t){return!!this.control&&this.control.hasError(n,t)}getError(n,t){return this.control?this.control.getError(n,t):null}}class Ke extends M_{get formDirective(){return null}get path(){return null}}class vn extends M_{constructor(){super(...arguments),this._parent=null,this.name=null,this.valueAccessor=null}}class S_{constructor(n){this._cd=n}get isTouched(){return!!this._cd?.control?.touched}get isUntouched(){return!!this._cd?.control?.untouched}get isPristine(){return!!this._cd?.control?.pristine}get isDirty(){return!!this._cd?.control?.dirty}get isValid(){return!!this._cd?.control?.valid}get isInvalid(){return!!this._cd?.control?.invalid}get isPending(){return!!this._cd?.control?.pending}get isSubmitted(){return!!this._cd?.submitted}}let ys=(()=>{class e extends S_{constructor(t){super(t)}}return e.\u0275fac=function(t){return new(t||e)(M(vn,2))},e.\u0275dir=$({type:e,selectors:[["","formControlName",""],["","ngModel",""],["","formControl",""]],hostVars:14,hostBindings:function(t,r){2&t&&$i("ng-untouched",r.isUntouched)("ng-touched",r.isTouched)("ng-pristine",r.isPristine)("ng-dirty",r.isDirty)("ng-valid",r.isValid)("ng-invalid",r.isInvalid)("ng-pending",r.isPending)},features:[se]}),e})();const Ao="VALID",Ds="INVALID",Nr="PENDING",To="DISABLED";function ws(e){return null!=e&&!Array.isArray(e)&&"object"==typeof e}class N_{constructor(n,t){this._pendingDirty=!1,this._hasOwnPendingAsyncValidator=!1,this._pendingTouched=!1,this._onCollectionChange=()=>{},this._parent=null,this.pristine=!0,this.touched=!1,this._onDisabledChange=[],this._assignValidators(n),this._assignAsyncValidators(t)}get validator(){return this._composedValidatorFn}set validator(n){this._rawValidators=this._composedValidatorFn=n}get asyncValidator(){return this._composedAsyncValidatorFn}set asyncValidator(n){this._rawAsyncValidators=this._composedAsyncValidatorFn=n}get parent(){return this._parent}get valid(){return this.status===Ao}get invalid(){return this.status===Ds}get pending(){return this.status==Nr}get disabled(){return this.status===To}get enabled(){return this.status!==To}get dirty(){return!this.pristine}get untouched(){return!this.touched}get updateOn(){return this._updateOn?this._updateOn:this.parent?this.parent.updateOn:"change"}setValidators(n){this._assignValidators(n)}setAsyncValidators(n){this._assignAsyncValidators(n)}addValidators(n){this.setValidators(E_(n,this._rawValidators))}addAsyncValidators(n){this.setAsyncValidators(E_(n,this._rawAsyncValidators))}removeValidators(n){this.setValidators(I_(n,this._rawValidators))}removeAsyncValidators(n){this.setAsyncValidators(I_(n,this._rawAsyncValidators))}hasValidator(n){return vs(this._rawValidators,n)}hasAsyncValidator(n){return vs(this._rawAsyncValidators,n)}clearValidators(){this.validator=null}clearAsyncValidators(){this.asyncValidator=null}markAsTouched(n={}){this.touched=!0,this._parent&&!n.onlySelf&&this._parent.markAsTouched(n)}markAllAsTouched(){this.markAsTouched({onlySelf:!0}),this._forEachChild(n=>n.markAllAsTouched())}markAsUntouched(n={}){this.touched=!1,this._pendingTouched=!1,this._forEachChild(t=>{t.markAsUntouched({onlySelf:!0})}),this._parent&&!n.onlySelf&&this._parent._updateTouched(n)}markAsDirty(n={}){this.pristine=!1,this._parent&&!n.onlySelf&&this._parent.markAsDirty(n)}markAsPristine(n={}){this.pristine=!0,this._pendingDirty=!1,this._forEachChild(t=>{t.markAsPristine({onlySelf:!0})}),this._parent&&!n.onlySelf&&this._parent._updatePristine(n)}markAsPending(n={}){this.status=Nr,!1!==n.emitEvent&&this.statusChanges.emit(this.status),this._parent&&!n.onlySelf&&this._parent.markAsPending(n)}disable(n={}){const t=this._parentMarkedDirty(n.onlySelf);this.status=To,this.errors=null,this._forEachChild(r=>{r.disable({...n,onlySelf:!0})}),this._updateValue(),!1!==n.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors({...n,skipPristineCheck:t}),this._onDisabledChange.forEach(r=>r(!0))}enable(n={}){const t=this._parentMarkedDirty(n.onlySelf);this.status=Ao,this._forEachChild(r=>{r.enable({...n,onlySelf:!0})}),this.updateValueAndValidity({onlySelf:!0,emitEvent:n.emitEvent}),this._updateAncestors({...n,skipPristineCheck:t}),this._onDisabledChange.forEach(r=>r(!1))}_updateAncestors(n){this._parent&&!n.onlySelf&&(this._parent.updateValueAndValidity(n),n.skipPristineCheck||this._parent._updatePristine(),this._parent._updateTouched())}setParent(n){this._parent=n}getRawValue(){return this.value}updateValueAndValidity(n={}){this._setInitialStatus(),this._updateValue(),this.enabled&&(this._cancelExistingSubscription(),this.errors=this._runValidator(),this.status=this._calculateStatus(),(this.status===Ao||this.status===Nr)&&this._runAsyncValidator(n.emitEvent)),!1!==n.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._parent&&!n.onlySelf&&this._parent.updateValueAndValidity(n)}_updateTreeValidity(n={emitEvent:!0}){this._forEachChild(t=>t._updateTreeValidity(n)),this.updateValueAndValidity({onlySelf:!0,emitEvent:n.emitEvent})}_setInitialStatus(){this.status=this._allControlsDisabled()?To:Ao}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(n){if(this.asyncValidator){this.status=Nr,this._hasOwnPendingAsyncValidator=!0;const t=g_(this.asyncValidator(this));this._asyncValidationSubscription=t.subscribe(r=>{this._hasOwnPendingAsyncValidator=!1,this.setErrors(r,{emitEvent:n})})}}_cancelExistingSubscription(){this._asyncValidationSubscription&&(this._asyncValidationSubscription.unsubscribe(),this._hasOwnPendingAsyncValidator=!1)}setErrors(n,t={}){this.errors=n,this._updateControlsErrors(!1!==t.emitEvent)}get(n){let t=n;return null==t||(Array.isArray(t)||(t=t.split(".")),0===t.length)?null:t.reduce((r,o)=>r&&r._find(o),this)}getError(n,t){const r=t?this.get(t):this;return r&&r.errors?r.errors[n]:null}hasError(n,t){return!!this.getError(n,t)}get root(){let n=this;for(;n._parent;)n=n._parent;return n}_updateControlsErrors(n){this.status=this._calculateStatus(),n&&this.statusChanges.emit(this.status),this._parent&&this._parent._updateControlsErrors(n)}_initObservables(){this.valueChanges=new be,this.statusChanges=new be}_calculateStatus(){return this._allControlsDisabled()?To:this.errors?Ds:this._hasOwnPendingAsyncValidator||this._anyControlsHaveStatus(Nr)?Nr:this._anyControlsHaveStatus(Ds)?Ds:Ao}_anyControlsHaveStatus(n){return this._anyControls(t=>t.status===n)}_anyControlsDirty(){return this._anyControls(n=>n.dirty)}_anyControlsTouched(){return this._anyControls(n=>n.touched)}_updatePristine(n={}){this.pristine=!this._anyControlsDirty(),this._parent&&!n.onlySelf&&this._parent._updatePristine(n)}_updateTouched(n={}){this.touched=this._anyControlsTouched(),this._parent&&!n.onlySelf&&this._parent._updateTouched(n)}_registerOnCollectionChange(n){this._onCollectionChange=n}_setUpdateStrategy(n){ws(n)&&null!=n.updateOn&&(this._updateOn=n.updateOn)}_parentMarkedDirty(n){return!n&&!(!this._parent||!this._parent.dirty)&&!this._parent._anyControlsDirty()}_find(n){return null}_assignValidators(n){this._rawValidators=Array.isArray(n)?n.slice():n,this._composedValidatorFn=function nA(e){return Array.isArray(e)?Lc(e):e||null}(this._rawValidators)}_assignAsyncValidators(n){this._rawAsyncValidators=Array.isArray(n)?n.slice():n,this._composedAsyncValidatorFn=function rA(e){return Array.isArray(e)?Vc(e):e||null}(this._rawAsyncValidators)}}const xo=new H("CallSetDisabledState",{providedIn:"root",factory:()=>Wc}),Wc="always";function No(e,n,t=Wc){(function qc(e,n){const t=function w_(e){return e._rawValidators}(e);null!==n.validator?e.setValidators(D_(t,n.validator)):"function"==typeof t&&e.setValidators([t]);const r=function b_(e){return e._rawAsyncValidators}(e);null!==n.asyncValidator?e.setAsyncValidators(D_(r,n.asyncValidator)):"function"==typeof r&&e.setAsyncValidators([r]);const o=()=>e.updateValueAndValidity();Is(n._rawValidators,o),Is(n._rawAsyncValidators,o)})(e,n),n.valueAccessor.writeValue(e.value),(e.disabled||"always"===t)&&n.valueAccessor.setDisabledState?.(e.disabled),function sA(e,n){n.valueAccessor.registerOnChange(t=>{e._pendingValue=t,e._pendingChange=!0,e._pendingDirty=!0,"change"===e.updateOn&&F_(e,n)})}(e,n),function lA(e,n){const t=(r,o)=>{n.valueAccessor.writeValue(r),o&&n.viewToModelUpdate(r)};e.registerOnChange(t),n._registerOnDestroy(()=>{e._unregisterOnChange(t)})}(e,n),function aA(e,n){n.valueAccessor.registerOnTouched(()=>{e._pendingTouched=!0,"blur"===e.updateOn&&e._pendingChange&&F_(e,n),"submit"!==e.updateOn&&e.markAsTouched()})}(e,n),function iA(e,n){if(n.valueAccessor.setDisabledState){const t=r=>{n.valueAccessor.setDisabledState(r)};e.registerOnDisabledChange(t),n._registerOnDestroy(()=>{e._unregisterOnDisabledChange(t)})}}(e,n)}function Is(e,n){e.forEach(t=>{t.registerOnValidatorChange&&t.registerOnValidatorChange(n)})}function F_(e,n){e._pendingDirty&&e.markAsDirty(),e.setValue(e._pendingValue,{emitModelToViewChange:!1}),n.viewToModelUpdate(e._pendingValue),e._pendingChange=!1}function P_(e,n){const t=e.indexOf(n);t>-1&&e.splice(t,1)}function k_(e){return"object"==typeof e&&null!==e&&2===Object.keys(e).length&&"value"in e&&"disabled"in e}const L_=class extends N_{constructor(n=null,t,r){super(function Uc(e){return(ws(e)?e.validators:e)||null}(t),function zc(e,n){return(ws(n)?n.asyncValidators:e)||null}(r,t)),this.defaultValue=null,this._onChange=[],this._pendingChange=!1,this._applyFormState(n),this._setUpdateStrategy(t),this._initObservables(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator}),ws(t)&&(t.nonNullable||t.initialValueIsDefault)&&(this.defaultValue=k_(n)?n.value:n)}setValue(n,t={}){this.value=this._pendingValue=n,this._onChange.length&&!1!==t.emitModelToViewChange&&this._onChange.forEach(r=>r(this.value,!1!==t.emitViewToModelChange)),this.updateValueAndValidity(t)}patchValue(n,t={}){this.setValue(n,t)}reset(n=this.defaultValue,t={}){this._applyFormState(n),this.markAsPristine(t),this.markAsUntouched(t),this.setValue(this.value,t),this._pendingChange=!1}_updateValue(){}_anyControls(n){return!1}_allControlsDisabled(){return this.disabled}registerOnChange(n){this._onChange.push(n)}_unregisterOnChange(n){P_(this._onChange,n)}registerOnDisabledChange(n){this._onDisabledChange.push(n)}_unregisterOnDisabledChange(n){P_(this._onDisabledChange,n)}_forEachChild(n){}_syncPendingControls(){return!("submit"!==this.updateOn||(this._pendingDirty&&this.markAsDirty(),this._pendingTouched&&this.markAsTouched(),!this._pendingChange)||(this.setValue(this._pendingValue,{onlySelf:!0,emitModelToViewChange:!1}),0))}_applyFormState(n){k_(n)?(this.value=this._pendingValue=n.value,n.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this.value=this._pendingValue=n}},mA={provide:vn,useExisting:ue(()=>Oo)},H_=(()=>Promise.resolve())();let Oo=(()=>{class e extends vn{constructor(t,r,o,i,s,a){super(),this._changeDetectorRef=s,this.callSetDisabledState=a,this.control=new L_,this._registered=!1,this.update=new be,this._parent=t,this._setValidators(r),this._setAsyncValidators(o),this.valueAccessor=function Yc(e,n){if(!n)return null;let t,r,o;return Array.isArray(n),n.forEach(i=>{i.constructor===So?t=i:function dA(e){return Object.getPrototypeOf(e.constructor)===$n}(i)?r=i:o=i}),o||r||t||null}(0,i)}ngOnChanges(t){if(this._checkForErrors(),!this._registered||"name"in t){if(this._registered&&(this._checkName(),this.formDirective)){const r=t.name.previousValue;this.formDirective.removeControl({name:r,path:this._getPath(r)})}this._setUpControl()}"isDisabled"in t&&this._updateDisabled(t),function Qc(e,n){if(!e.hasOwnProperty("model"))return!1;const t=e.model;return!!t.isFirstChange()||!Object.is(n,t.currentValue)}(t,this.viewModel)&&(this._updateValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}get path(){return this._getPath(this.name)}get formDirective(){return this._parent?this._parent.formDirective:null}viewToModelUpdate(t){this.viewModel=t,this.update.emit(t)}_setUpControl(){this._setUpdateStrategy(),this._isStandalone()?this._setUpStandalone():this.formDirective.addControl(this),this._registered=!0}_setUpdateStrategy(){this.options&&null!=this.options.updateOn&&(this.control._updateOn=this.options.updateOn)}_isStandalone(){return!this._parent||!(!this.options||!this.options.standalone)}_setUpStandalone(){No(this.control,this,this.callSetDisabledState),this.control.updateValueAndValidity({emitEvent:!1})}_checkForErrors(){this._isStandalone()||this._checkParentType(),this._checkName()}_checkParentType(){}_checkName(){this.options&&this.options.name&&(this.name=this.options.name),this._isStandalone()}_updateValue(t){H_.then(()=>{this.control.setValue(t,{emitViewToModelChange:!1}),this._changeDetectorRef?.markForCheck()})}_updateDisabled(t){const r=t.isDisabled.currentValue,o=0!==r&&function dc(e){return"boolean"==typeof e?e:null!=e&&"false"!==e}(r);H_.then(()=>{o&&!this.control.disabled?this.control.disable():!o&&this.control.disabled&&this.control.enable(),this._changeDetectorRef?.markForCheck()})}_getPath(t){return this._parent?function bs(e,n){return[...n.path,e]}(t,this._parent):[t]}}return e.\u0275fac=function(t){return new(t||e)(M(Ke,9),M(Ue,10),M(_n,10),M(jt,10),M(cm,8),M(xo,8))},e.\u0275dir=$({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:[ge([mA]),se,Wt]}),e})(),$_=(()=>{class e{}return e.\u0275fac=function(t){return new(t||e)},e.\u0275mod=an({type:e}),e.\u0275inj=$t({}),e})();const DA={provide:jt,useExisting:ue(()=>Jc),multi:!0};let Jc=(()=>{class e extends $n{writeValue(t){this.setProperty("value",parseFloat(t))}registerOnChange(t){this.onChange=r=>{t(""==r?null:parseFloat(r))}}}return e.\u0275fac=function(){let n;return function(r){return(n||(n=Be(e)))(r||e)}}(),e.\u0275dir=$({type:e,selectors:[["input","type","range","formControlName",""],["input","type","range","formControl",""],["input","type","range","ngModel",""]],hostBindings:function(t,r){1&t&&k("change",function(i){return r.onChange(i.target.value)})("input",function(i){return r.onChange(i.target.value)})("blur",function(){return r.onTouched()})},features:[ge([DA]),se]}),e})();const SA={provide:jt,useExisting:ue(()=>Ro),multi:!0};function Z_(e,n){return null==e?`${n}`:(n&&"object"==typeof n&&(n="Object"),`${e}: ${n}`.slice(0,50))}let Ro=(()=>{class e extends $n{constructor(){super(...arguments),this._optionMap=new Map,this._idCounter=0,this._compareWith=Object.is}set compareWith(t){this._compareWith=t}writeValue(t){this.value=t;const o=Z_(this._getOptionId(t),t);this.setProperty("value",o)}registerOnChange(t){this.onChange=r=>{this.value=this._getOptionValue(r),t(this.value)}}_registerOption(){return(this._idCounter++).toString()}_getOptionId(t){for(const r of Array.from(this._optionMap.keys()))if(this._compareWith(this._optionMap.get(r),t))return r;return null}_getOptionValue(t){const r=function AA(e){return e.split(":")[0]}(t);return this._optionMap.has(r)?this._optionMap.get(r):t}}return e.\u0275fac=function(){let n;return function(r){return(n||(n=Be(e)))(r||e)}}(),e.\u0275dir=$({type:e,selectors:[["select","formControlName","",3,"multiple",""],["select","formControl","",3,"multiple",""],["select","ngModel","",3,"multiple",""]],hostBindings:function(t,r){1&t&&k("change",function(i){return r.onChange(i.target.value)})("blur",function(){return r.onTouched()})},inputs:{compareWith:"compareWith"},features:[ge([SA]),se]}),e})(),nu=(()=>{class e{constructor(t,r,o){this._element=t,this._renderer=r,this._select=o,this._select&&(this.id=this._select._registerOption())}set ngValue(t){null!=this._select&&(this._select._optionMap.set(this.id,t),this._setElementValue(Z_(this.id,t)),this._select.writeValue(this._select.value))}set value(t){this._setElementValue(t),this._select&&this._select.writeValue(this._select.value)}_setElementValue(t){this._renderer.setProperty(this._element.nativeElement,"value",t)}ngOnDestroy(){this._select&&(this._select._optionMap.delete(this.id),this._select.writeValue(this._select.value))}}return e.\u0275fac=function(t){return new(t||e)(M(Dt),M(Rn),M(Ro,9))},e.\u0275dir=$({type:e,selectors:[["option"]],inputs:{ngValue:"ngValue",value:"value"}}),e})();const TA={provide:jt,useExisting:ue(()=>ru),multi:!0};function Q_(e,n){return null==e?`${n}`:("string"==typeof n&&(n=`'${n}'`),n&&"object"==typeof n&&(n="Object"),`${e}: ${n}`.slice(0,50))}let ru=(()=>{class e extends $n{constructor(){super(...arguments),this._optionMap=new Map,this._idCounter=0,this._compareWith=Object.is}set compareWith(t){this._compareWith=t}writeValue(t){let r;if(this.value=t,Array.isArray(t)){const o=t.map(i=>this._getOptionId(i));r=(i,s)=>{i._setSelected(o.indexOf(s.toString())>-1)}}else r=(o,i)=>{o._setSelected(!1)};this._optionMap.forEach(r)}registerOnChange(t){this.onChange=r=>{const o=[],i=r.selectedOptions;if(void 0!==i){const s=i;for(let a=0;a{class e{constructor(t,r,o){this._element=t,this._renderer=r,this._select=o,this._select&&(this.id=this._select._registerOption(this))}set ngValue(t){null!=this._select&&(this._value=t,this._setElementValue(Q_(this.id,t)),this._select.writeValue(this._select.value))}set value(t){this._select?(this._value=t,this._setElementValue(Q_(this.id,t)),this._select.writeValue(this._select.value)):this._setElementValue(t)}_setElementValue(t){this._renderer.setProperty(this._element.nativeElement,"value",t)}_setSelected(t){this._renderer.setProperty(this._element.nativeElement,"selected",t)}ngOnDestroy(){this._select&&(this._select._optionMap.delete(this.id),this._select.writeValue(this._select.value))}}return e.\u0275fac=function(t){return new(t||e)(M(Dt),M(Rn),M(ru,9))},e.\u0275dir=$({type:e,selectors:[["option"]],inputs:{ngValue:"ngValue",value:"value"}}),e})(),BA=(()=>{class e{}return e.\u0275fac=function(t){return new(t||e)},e.\u0275mod=an({type:e}),e.\u0275inj=$t({imports:[$_]}),e})(),jA=(()=>{class e{static withConfig(t){return{ngModule:e,providers:[{provide:xo,useValue:t.callSetDisabledState??Wc}]}}}return e.\u0275fac=function(t){return new(t||e)},e.\u0275mod=an({type:e}),e.\u0275inj=$t({imports:[BA]}),e})();class iv{constructor(){this.riskHotspotsSettings=null,this.coverageInfoSettings=null}}class $A{constructor(){this.showLineCoverage=!0,this.showBranchCoverage=!0,this.showMethodCoverage=!0,this.visibleMetrics=[],this.groupingMaximum=0,this.grouping=0,this.historyComparisionDate="",this.historyComparisionType="",this.filter="",this.sortBy="name",this.sortOrder="asc",this.collapseStates=[]}}class UA{constructor(n){this.et="",this.et=n.et,this.cl=n.cl,this.ucl=n.ucl,this.cal=n.cal,this.tl=n.tl,this.lcq=n.lcq,this.cb=n.cb,this.tb=n.tb,this.bcq=n.bcq,this.cm=n.cm,this.tm=n.tm,this.mcq=n.mcq}get coverageRatioText(){return 0===this.tl?"-":this.cl+"/"+this.cal}get branchCoverageRatioText(){return 0===this.tb?"-":this.cb+"/"+this.tb}get methodCoverageRatioText(){return 0===this.tm?"-":this.cm+"/"+this.tm}}class yn{static roundNumber(n,t){return Math.floor(n*Math.pow(10,t))/Math.pow(10,t)}static getNthOrLastIndexOf(n,t,r){let o=0,i=-1,s=-1;for(;o{this.historicCoverages.push(new UA(r))}),this.metrics=n.metrics}get coverage(){return 0===this.coverableLines?"-"!==this.coverageByMethod?parseFloat(this.coverageByMethod):NaN:yn.roundNumber(100*this.coveredLines/this.coverableLines,1)}get coverageType(){return 0===this.coverableLines?"-"!==this.coverageByMethod?this._coverageType:"":this._coverageType}visible(n,t){if(""!==n&&-1===this.name.toLowerCase().indexOf(n.toLowerCase()))return!1;if(""===t||null===this.currentHistoricCoverage)return!0;if("allChanges"===t){if(this.coveredLines===this.currentHistoricCoverage.cl&&this.uncoveredLines===this.currentHistoricCoverage.ucl&&this.coverableLines===this.currentHistoricCoverage.cal&&this.totalLines===this.currentHistoricCoverage.tl&&this.coveredBranches===this.currentHistoricCoverage.cb&&this.totalBranches===this.currentHistoricCoverage.tb&&this.coveredMethods===this.currentHistoricCoverage.cm&&this.totalMethods===this.currentHistoricCoverage.tm)return!1}else if("lineCoverageIncreaseOnly"===t){let r=this.coverage;if(isNaN(r)||r<=this.currentHistoricCoverage.lcq)return!1}else if("lineCoverageDecreaseOnly"===t){let r=this.coverage;if(isNaN(r)||r>=this.currentHistoricCoverage.lcq)return!1}else if("branchCoverageIncreaseOnly"===t){let r=this.branchCoverage;if(isNaN(r)||r<=this.currentHistoricCoverage.bcq)return!1}else if("branchCoverageDecreaseOnly"===t){let r=this.branchCoverage;if(isNaN(r)||r>=this.currentHistoricCoverage.bcq)return!1}else if("methodCoverageIncreaseOnly"===t){let r=this.methodCoverage;if(isNaN(r)||r<=this.currentHistoricCoverage.mcq)return!1}else if("methodCoverageDecreaseOnly"===t){let r=this.methodCoverage;if(isNaN(r)||r>=this.currentHistoricCoverage.mcq)return!1}return!0}updateCurrentHistoricCoverage(n){if(this.currentHistoricCoverage=null,""!==n)for(let t=0;t-1&&null===t}visible(n,t){if(""!==n&&this.name.toLowerCase().indexOf(n.toLowerCase())>-1)return!0;for(let r=0;rt.name===n.name)}toggleMetric(n){let t=this.visibleMetrics.find(r=>r.name===n.name);t?this.visibleMetrics.splice(this.visibleMetrics.indexOf(t),1):this.visibleMetrics.push(n),this.visibleMetrics=[...this.visibleMetrics],this.visibleMetricsChange.emit(this.visibleMetrics)}close(){this.visible=!1,this.visibleChange.emit(this.visible)}cancelEvent(n){n.stopPropagation()}}function KA(e,n){1&e&&N(0,"td",3)}function JA(e,n){1&e&&N(0,"td"),2&e&&Bt("green ",_().greenClass,"")}function XA(e,n){1&e&&N(0,"td"),2&e&&Bt("red ",_().redClass,"")}ko.\u0275fac=function(n){return new(n||ko)},ko.\u0275cmp=Nt({type:ko,selectors:[["popup"]],inputs:{visible:"visible",translations:"translations",branchCoverageAvailable:"branchCoverageAvailable",methodCoverageAvailable:"methodCoverageAvailable",metrics:"metrics",showLineCoverage:"showLineCoverage",showBranchCoverage:"showBranchCoverage",showMethodCoverage:"showMethodCoverage",visibleMetrics:"visibleMetrics"},outputs:{visibleChange:"visibleChange",showLineCoverageChange:"showLineCoverageChange",showBranchCoverageChange:"showBranchCoverageChange",showMethodCoverageChange:"showMethodCoverageChange",visibleMetricsChange:"visibleMetricsChange"},decls:17,vars:9,consts:[[1,"popup-container",3,"click"],[1,"popup",3,"click"],[1,"close",3,"click"],[1,"mt-1"],["type","checkbox",3,"ngModel","ngModelChange","change"],["class","mt-1",4,"ngIf"],["type","checkbox",3,"ngModel","disabled","ngModelChange","change"],[3,"translations",4,"ngIf"],[4,"ngIf"],[3,"translations"],["class","mt-1",4,"ngFor","ngForOf"],["type","checkbox",3,"checked","disabled","change"],["target","_blank",3,"href",4,"ngIf"],["target","_blank",3,"href"],[1,"icon-info-circled"]],template:function(n,t){1&n&&(y(0,"div",0),k("click",function(){return t.close()}),y(1,"div",1),k("click",function(o){return t.cancelEvent(o)}),y(2,"div",2),k("click",function(){return t.close()}),w(3,"X"),v(),y(4,"b"),w(5),v(),y(6,"div",3)(7,"label")(8,"input",4),k("ngModelChange",function(o){return t.showLineCoverage=o})("change",function(){return t.showLineCoverageChange.emit(t.showLineCoverage)}),v(),w(9),v()(),C(10,GA,4,2,"div",5),y(11,"div",3)(12,"label")(13,"input",6),k("ngModelChange",function(o){return t.showMethodCoverage=o})("change",function(){return t.showMethodCoverageChange.emit(t.showMethodCoverage)}),v(),w(14),v(),C(15,WA,1,1,"pro-button",7),v(),C(16,YA,7,3,"ng-container",8),v()()),2&n&&(f(5),F(t.translations.coverageTypes),f(3),g("ngModel",t.showLineCoverage),f(1),G(" ",t.translations.coverage,""),f(1),g("ngIf",t.branchCoverageAvailable),f(3),g("ngModel",t.showMethodCoverage)("disabled",!t.methodCoverageAvailable),f(1),G(" ",t.translations.methodCoverage,""),f(1),g("ngIf",!t.methodCoverageAvailable),f(1),g("ngIf",t.metrics.length>0))},dependencies:[xr,jn,kc,ys,Oo,Po],encapsulation:2});class Fr{constructor(){this.grayVisible=!0,this.greenVisible=!1,this.redVisible=!1,this.greenClass="",this.redClass="",this._percentage=NaN}get percentage(){return this._percentage}set percentage(n){this._percentage=n,this.grayVisible=isNaN(n),this.greenVisible=!isNaN(n)&&Math.round(n)>0,this.redVisible=!isNaN(n)&&100-Math.round(n)>0,this.greenClass="covered"+Math.round(n),this.redClass="covered"+(100-Math.round(n))}}function tT(e,n){if(1&e&&(y(0,"th",5),w(1),v()),2&e){const t=_();f(1),F(t.element.coveredLines)}}function nT(e,n){if(1&e&&(y(0,"th",5),w(1),v()),2&e){const t=_();f(1),F(t.element.uncoveredLines)}}function rT(e,n){if(1&e&&(y(0,"th",5),w(1),v()),2&e){const t=_();f(1),F(t.element.coverableLines)}}function oT(e,n){if(1&e&&(y(0,"th",5),w(1),v()),2&e){const t=_();f(1),F(t.element.totalLines)}}function iT(e,n){if(1&e&&(y(0,"th",6),w(1),v()),2&e){const t=_();g("title",t.element.coverageRatioText),f(1),F(t.element.coveragePercentage)}}function sT(e,n){if(1&e&&(y(0,"th",5),N(1,"coverage-bar",7),v()),2&e){const t=_();f(1),g("percentage",t.element.coverage)}}function aT(e,n){if(1&e&&(y(0,"th",5),w(1),v()),2&e){const t=_();f(1),F(t.element.coveredBranches)}}function lT(e,n){if(1&e&&(y(0,"th",5),w(1),v()),2&e){const t=_();f(1),F(t.element.totalBranches)}}function cT(e,n){if(1&e&&(y(0,"th",6),w(1),v()),2&e){const t=_();g("title",t.element.branchCoverageRatioText),f(1),F(t.element.branchCoveragePercentage)}}function uT(e,n){if(1&e&&(y(0,"th",5),N(1,"coverage-bar",7),v()),2&e){const t=_();f(1),g("percentage",t.element.branchCoverage)}}function dT(e,n){if(1&e&&(y(0,"th",5),w(1),v()),2&e){const t=_();f(1),F(t.element.coveredMethods)}}function fT(e,n){if(1&e&&(y(0,"th",5),w(1),v()),2&e){const t=_();f(1),F(t.element.totalMethods)}}function hT(e,n){if(1&e&&(y(0,"th",6),w(1),v()),2&e){const t=_();g("title",t.element.methodCoverageRatioText),f(1),F(t.element.methodCoveragePercentage)}}function pT(e,n){if(1&e&&(y(0,"th",5),N(1,"coverage-bar",7),v()),2&e){const t=_();f(1),g("percentage",t.element.methodCoverage)}}function gT(e,n){1&e&&N(0,"th",5)}Fr.\u0275fac=function(n){return new(n||Fr)},Fr.\u0275cmp=Nt({type:Fr,selectors:[["coverage-bar"]],inputs:{percentage:"percentage"},decls:4,vars:3,consts:[[1,"coverage"],["class","gray covered100",4,"ngIf"],[3,"class",4,"ngIf"],[1,"gray","covered100"]],template:function(n,t){1&n&&(y(0,"table",0),C(1,KA,1,0,"td",1),C(2,JA,1,3,"td",2),C(3,XA,1,3,"td",2),v()),2&n&&(f(1),g("ngIf",t.grayVisible),f(1),g("ngIf",t.greenVisible),f(1),g("ngIf",t.redVisible))},dependencies:[jn],encapsulation:2,changeDetection:0});const mT=function(e,n){return{"icon-plus":e,"icon-minus":n}};class Lo{constructor(){this.collapsed=!1,this.lineCoverageAvailable=!1,this.branchCoverageAvailable=!1,this.methodCoverageAvailable=!1,this.visibleMetrics=[]}}Lo.\u0275fac=function(n){return new(n||Lo)},Lo.\u0275cmp=Nt({type:Lo,selectors:[["","codeelement-row",""]],inputs:{element:"element",collapsed:"collapsed",lineCoverageAvailable:"lineCoverageAvailable",branchCoverageAvailable:"branchCoverageAvailable",methodCoverageAvailable:"methodCoverageAvailable",visibleMetrics:"visibleMetrics"},attrs:["codeelement-row",""],decls:19,vars:20,consts:[["href","#",3,"click"],[3,"ngClass"],["class","right",4,"ngIf"],["class","right",3,"title",4,"ngIf"],["class","right",4,"ngFor","ngForOf"],[1,"right"],[1,"right",3,"title"],[3,"percentage"]],template:function(n,t){1&n&&(y(0,"th")(1,"a",0),k("click",function(o){return t.element.toggleCollapse(o)}),N(2,"i",1),w(3),v()(),C(4,tT,2,1,"th",2),C(5,nT,2,1,"th",2),C(6,rT,2,1,"th",2),C(7,oT,2,1,"th",2),C(8,iT,2,2,"th",3),C(9,sT,2,1,"th",2),C(10,aT,2,1,"th",2),C(11,lT,2,1,"th",2),C(12,cT,2,2,"th",3),C(13,uT,2,1,"th",2),C(14,dT,2,1,"th",2),C(15,fT,2,1,"th",2),C(16,hT,2,2,"th",3),C(17,pT,2,1,"th",2),C(18,gT,1,0,"th",4)),2&n&&(f(2),g("ngClass",Vl(17,mT,t.element.collapsed,!t.element.collapsed)),f(1),G(" ",t.element.name,""),f(1),g("ngIf",t.lineCoverageAvailable),f(1),g("ngIf",t.lineCoverageAvailable),f(1),g("ngIf",t.lineCoverageAvailable),f(1),g("ngIf",t.lineCoverageAvailable),f(1),g("ngIf",t.lineCoverageAvailable),f(1),g("ngIf",t.lineCoverageAvailable),f(1),g("ngIf",t.branchCoverageAvailable),f(1),g("ngIf",t.branchCoverageAvailable),f(1),g("ngIf",t.branchCoverageAvailable),f(1),g("ngIf",t.branchCoverageAvailable),f(1),g("ngIf",t.methodCoverageAvailable),f(1),g("ngIf",t.methodCoverageAvailable),f(1),g("ngIf",t.methodCoverageAvailable),f(1),g("ngIf",t.methodCoverageAvailable),f(1),g("ngForOf",t.visibleMetrics))},dependencies:[bo,xr,jn,Fr],encapsulation:2,changeDetection:0});class Vo{constructor(){this.path=null,this._historicCoverages=[]}get historicCoverages(){return this._historicCoverages}set historicCoverages(n){if(this._historicCoverages=n,n.length>1){let t="";for(let r=0;r1),f(1),g("ngIf",null!==t.clazz.currentHistoricCoverage),f(1),g("ngIf",null===t.clazz.currentHistoricCoverage)}}function LT(e,n){if(1&e&&(y(0,"td",6),N(1,"coverage-bar",12),v()),2&e){const t=_();f(1),g("percentage",t.clazz.coverage)}}function VT(e,n){if(1&e&&(J(0),y(1,"div"),w(2),v(),y(3,"div",7),w(4),v(),X()),2&e){const t=_(2);f(1),Bt("currenthistory ",t.getClassName(t.clazz.coveredBranches,t.clazz.currentHistoricCoverage.cb),""),f(1),G(" ",t.clazz.coveredBranches," "),f(1),g("title",t.clazz.currentHistoricCoverage.et),f(1),G(" ",t.clazz.currentHistoricCoverage.cb," ")}}function BT(e,n){if(1&e&&(J(0),w(1),X()),2&e){const t=_(2);f(1),G(" ",t.clazz.coveredBranches," ")}}function HT(e,n){if(1&e&&(y(0,"td",6),C(1,VT,5,6,"ng-container",1),C(2,BT,2,1,"ng-container",1),v()),2&e){const t=_();f(1),g("ngIf",null!==t.clazz.currentHistoricCoverage),f(1),g("ngIf",null===t.clazz.currentHistoricCoverage)}}function jT(e,n){if(1&e&&(J(0),y(1,"div",8),w(2),v(),y(3,"div",7),w(4),v(),X()),2&e){const t=_(2);f(2),F(t.clazz.totalBranches),f(1),g("title",t.clazz.currentHistoricCoverage.et),f(1),F(t.clazz.currentHistoricCoverage.tb)}}function $T(e,n){if(1&e&&(J(0),w(1),X()),2&e){const t=_(2);f(1),G(" ",t.clazz.totalBranches," ")}}function UT(e,n){if(1&e&&(y(0,"td",6),C(1,jT,5,3,"ng-container",1),C(2,$T,2,1,"ng-container",1),v()),2&e){const t=_();f(1),g("ngIf",null!==t.clazz.currentHistoricCoverage),f(1),g("ngIf",null===t.clazz.currentHistoricCoverage)}}function zT(e,n){if(1&e&&N(0,"div",14),2&e){const t=_(2);fn("title",t.translations.history+": "+t.translations.branchCoverage),g("historicCoverages",t.clazz.branchCoverageHistory)("ngClass",Zi(3,au,null!==t.clazz.currentHistoricCoverage))}}function GT(e,n){if(1&e&&(J(0),y(1,"div"),w(2),v(),y(3,"div",7),w(4),v(),X()),2&e){const t=_(2);f(1),Bt("currenthistory ",t.getClassName(t.clazz.branchCoverage,t.clazz.currentHistoricCoverage.bcq),""),f(1),G(" ",t.clazz.branchCoveragePercentage," "),f(1),g("title",t.clazz.currentHistoricCoverage.et+": "+t.clazz.currentHistoricCoverage.branchCoverageRatioText),f(1),G("",t.clazz.currentHistoricCoverage.bcq,"%")}}function WT(e,n){if(1&e&&(J(0),w(1),X()),2&e){const t=_(2);f(1),G(" ",t.clazz.branchCoveragePercentage," ")}}function qT(e,n){if(1&e&&(y(0,"td",9),C(1,zT,1,5,"div",13),C(2,GT,5,6,"ng-container",1),C(3,WT,2,1,"ng-container",1),v()),2&e){const t=_();g("title",t.clazz.branchCoverageRatioText),f(1),g("ngIf",t.clazz.branchCoverageHistory.length>1),f(1),g("ngIf",null!==t.clazz.currentHistoricCoverage),f(1),g("ngIf",null===t.clazz.currentHistoricCoverage)}}function ZT(e,n){if(1&e&&(y(0,"td",6),N(1,"coverage-bar",12),v()),2&e){const t=_();f(1),g("percentage",t.clazz.branchCoverage)}}function QT(e,n){if(1&e&&(J(0),y(1,"div"),w(2),v(),y(3,"div",7),w(4),v(),X()),2&e){const t=_(2);f(1),Bt("currenthistory ",t.getClassName(t.clazz.coveredMethods,t.clazz.currentHistoricCoverage.cm),""),f(1),G(" ",t.clazz.coveredMethods," "),f(1),g("title",t.clazz.currentHistoricCoverage.et),f(1),G(" ",t.clazz.currentHistoricCoverage.cm," ")}}function YT(e,n){if(1&e&&(J(0),w(1),X()),2&e){const t=_(2);f(1),G(" ",t.clazz.coveredMethods," ")}}function KT(e,n){if(1&e&&(y(0,"td",6),C(1,QT,5,6,"ng-container",1),C(2,YT,2,1,"ng-container",1),v()),2&e){const t=_();f(1),g("ngIf",null!==t.clazz.currentHistoricCoverage),f(1),g("ngIf",null===t.clazz.currentHistoricCoverage)}}function JT(e,n){if(1&e&&(J(0),y(1,"div",8),w(2),v(),y(3,"div",7),w(4),v(),X()),2&e){const t=_(2);f(2),F(t.clazz.totalMethods),f(1),g("title",t.clazz.currentHistoricCoverage.et),f(1),F(t.clazz.currentHistoricCoverage.tm)}}function XT(e,n){if(1&e&&(J(0),w(1),X()),2&e){const t=_(2);f(1),G(" ",t.clazz.totalMethods," ")}}function ex(e,n){if(1&e&&(y(0,"td",6),C(1,JT,5,3,"ng-container",1),C(2,XT,2,1,"ng-container",1),v()),2&e){const t=_();f(1),g("ngIf",null!==t.clazz.currentHistoricCoverage),f(1),g("ngIf",null===t.clazz.currentHistoricCoverage)}}function tx(e,n){if(1&e&&N(0,"div",16),2&e){const t=_(2);fn("title",t.translations.history+": "+t.translations.methodCoverage),g("historicCoverages",t.clazz.methodCoverageHistory)("ngClass",Zi(3,au,null!==t.clazz.currentHistoricCoverage))}}function nx(e,n){if(1&e&&(J(0),y(1,"div"),w(2),v(),y(3,"div",7),w(4),v(),X()),2&e){const t=_(2);f(1),Bt("currenthistory ",t.getClassName(t.clazz.methodCoverage,t.clazz.currentHistoricCoverage.mcq),""),f(1),G(" ",t.clazz.methodCoveragePercentage," "),f(1),g("title",t.clazz.currentHistoricCoverage.et+": "+t.clazz.currentHistoricCoverage.methodCoverageRatioText),f(1),G("",t.clazz.currentHistoricCoverage.mcq,"%")}}function rx(e,n){if(1&e&&(J(0),w(1),X()),2&e){const t=_(2);f(1),G(" ",t.clazz.methodCoveragePercentage," ")}}function ox(e,n){if(1&e&&(y(0,"td",9),C(1,tx,1,5,"div",15),C(2,nx,5,6,"ng-container",1),C(3,rx,2,1,"ng-container",1),v()),2&e){const t=_();g("title",t.clazz.methodCoverageRatioText),f(1),g("ngIf",t.clazz.methodCoverageHistory.length>1),f(1),g("ngIf",null!==t.clazz.currentHistoricCoverage),f(1),g("ngIf",null===t.clazz.currentHistoricCoverage)}}function ix(e,n){if(1&e&&(y(0,"td",6),N(1,"coverage-bar",12),v()),2&e){const t=_();f(1),g("percentage",t.clazz.methodCoverage)}}function sx(e,n){if(1&e&&(y(0,"td",6),w(1),v()),2&e){const t=n.$implicit,r=_();f(1),F(r.clazz.metrics[t.abbreviation])}}class Bo{constructor(){this.translations={},this.lineCoverageAvailable=!1,this.branchCoverageAvailable=!1,this.methodCoverageAvailable=!1,this.visibleMetrics=[],this.historyComparisionDate=""}getClassName(n,t){return n>t?"lightgreen":n0),f(2),G(" ",t.translations.grouping," "),f(1),g("max",t.settings.groupingMaximum)("ngModel",t.settings.grouping),f(2),g("ngIf",t.historicCoverageExecutionTimes.length>0),f(5),F(t.metrics.length>0?t.translations.selectCoverageTypesAndMetrics:t.translations.selectCoverageTypes),f(4),G("",t.translations.filter," "),f(1),g("ngModel",t.settings.filter),f(5),g("ngIf",t.settings.showLineCoverage),f(1),g("ngIf",t.settings.showLineCoverage),f(1),g("ngIf",t.settings.showLineCoverage),f(1),g("ngIf",t.settings.showLineCoverage),f(1),g("ngIf",t.settings.showLineCoverage),f(1),g("ngIf",t.settings.showLineCoverage),f(1),g("ngIf",t.branchCoverageAvailable&&t.settings.showBranchCoverage),f(1),g("ngIf",t.branchCoverageAvailable&&t.settings.showBranchCoverage),f(1),g("ngIf",t.branchCoverageAvailable&&t.settings.showBranchCoverage),f(1),g("ngIf",t.branchCoverageAvailable&&t.settings.showBranchCoverage),f(1),g("ngIf",t.methodCoverageAvailable&&t.settings.showMethodCoverage),f(1),g("ngIf",t.methodCoverageAvailable&&t.settings.showMethodCoverage),f(1),g("ngIf",t.methodCoverageAvailable&&t.settings.showMethodCoverage),f(1),g("ngIf",t.methodCoverageAvailable&&t.settings.showMethodCoverage),f(1),g("ngForOf",t.settings.visibleMetrics),f(4),g("ngIf",t.settings.showLineCoverage),f(1),g("ngIf",t.branchCoverageAvailable&&t.settings.showBranchCoverage),f(1),g("ngIf",t.methodCoverageAvailable&&t.settings.showMethodCoverage),f(1),g("ngIf",t.settings.visibleMetrics.length>0),f(4),g("ngClass",Oe(47,ct,"name"===t.settings.sortBy&&"desc"===t.settings.sortOrder,"name"===t.settings.sortBy&&"asc"===t.settings.sortOrder,"name"!==t.settings.sortBy)),f(1),F(t.translations.name),f(1),g("ngIf",t.settings.showLineCoverage),f(1),g("ngIf",t.settings.showLineCoverage),f(1),g("ngIf",t.settings.showLineCoverage),f(1),g("ngIf",t.settings.showLineCoverage),f(1),g("ngIf",t.settings.showLineCoverage),f(1),g("ngIf",t.branchCoverageAvailable&&t.settings.showBranchCoverage),f(1),g("ngIf",t.branchCoverageAvailable&&t.settings.showBranchCoverage),f(1),g("ngIf",t.branchCoverageAvailable&&t.settings.showBranchCoverage),f(1),g("ngIf",t.methodCoverageAvailable&&t.settings.showMethodCoverage),f(1),g("ngIf",t.methodCoverageAvailable&&t.settings.showMethodCoverage),f(1),g("ngIf",t.methodCoverageAvailable&&t.settings.showMethodCoverage),f(1),g("ngForOf",t.settings.visibleMetrics),f(2),g("ngForOf",t.codeElements)}}class Ho{constructor(n){this.queryString="",this.historicCoverageExecutionTimes=[],this.branchCoverageAvailable=!1,this.methodCoverageAvailable=!1,this.metrics=[],this.codeElements=[],this.translations={},this.popupVisible=!1,this.settings=new $A,this.window=n.nativeWindow}ngOnInit(){this.historicCoverageExecutionTimes=this.window.historicCoverageExecutionTimes,this.branchCoverageAvailable=this.window.branchCoverageAvailable,this.methodCoverageAvailable=this.window.methodCoverageAvailable,this.metrics=this.window.metrics,this.translations=this.window.translations;let n=!1;if(void 0!==this.window.history&&void 0!==this.window.history.replaceState&&null!==this.window.history.state&&null!=this.window.history.state.coverageInfoSettings)console.log("Coverage info: Restoring from history",this.window.history.state.coverageInfoSettings),n=!0,this.settings=JSON.parse(JSON.stringify(this.window.history.state.coverageInfoSettings));else{let r=0,o=this.window.assemblies;for(let i=0;i-1&&(this.queryString=window.location.href.substring(t)),this.updateCoverageInfo(),n&&this.restoreCollapseState()}onBeforeUnload(){if(this.saveCollapseState(),void 0!==this.window.history&&void 0!==this.window.history.replaceState){console.log("Coverage info: Updating history",this.settings);let n=new iv;null!==window.history.state&&(n=JSON.parse(JSON.stringify(this.window.history.state))),n.coverageInfoSettings=JSON.parse(JSON.stringify(this.settings)),window.history.replaceState(n,"")}}updateCoverageInfo(){let n=(new Date).getTime(),t=this.window.assemblies,r=[],o=0;if(0===this.settings.grouping)for(let a=0;a{for(let r=0;r{for(let o=0;on&&(r[o].collapsed=this.settings.collapseStates[n]),n++,t(r[o].subElements)};t(this.codeElements)}}Ho.\u0275fac=function(n){return new(n||Ho)(M(Dn))},Ho.\u0275cmp=Nt({type:Ho,selectors:[["coverage-info"]],hostBindings:function(n,t){1&n&&k("beforeunload",function(){return t.onBeforeUnload()},0,ol)},decls:1,vars:1,consts:[[4,"ngIf"],[3,"visible","translations","branchCoverageAvailable","methodCoverageAvailable","metrics","showLineCoverage","showBranchCoverage","showMethodCoverage","visibleMetrics","visibleChange","showLineCoverageChange","showBranchCoverageChange","showMethodCoverageChange","visibleMetricsChange",4,"ngIf"],[1,"customizebox"],["href","#",3,"click"],[1,"center"],["type","range","step","1","min","-1",3,"max","ngModel","ngModelChange"],[1,"right"],["type","button",3,"click"],[1,"icon-cog"],["type","text",3,"ngModel","ngModelChange"],[1,"table-responsive"],[1,"overview","table-fixed","stripped"],[1,"column-min-200"],["class","column90",4,"ngIf"],["class","column105",4,"ngIf"],["class","column100",4,"ngIf"],["class","column70",4,"ngIf"],["class","column98",4,"ngIf"],["class","column112",4,"ngIf"],["class","column112",4,"ngFor","ngForOf"],[1,"header"],["class","center","colspan","6",4,"ngIf"],["class","center","colspan","4",4,"ngIf"],["class","center",4,"ngIf"],[1,"icon-down-dir",3,"ngClass"],["class","right",4,"ngIf"],["class","center","colspan","2",4,"ngIf"],[4,"ngFor","ngForOf"],[3,"visible","translations","branchCoverageAvailable","methodCoverageAvailable","metrics","showLineCoverage","showBranchCoverage","showMethodCoverage","visibleMetrics","visibleChange","showLineCoverageChange","showBranchCoverageChange","showMethodCoverageChange","visibleMetricsChange"],[3,"ngModel","ngModelChange"],["value",""],[3,"value",4,"ngFor","ngForOf"],[3,"value"],["value","allChanges"],["value","lineCoverageIncreaseOnly"],["value","lineCoverageDecreaseOnly"],["value","branchCoverageIncreaseOnly",4,"ngIf"],["value","branchCoverageDecreaseOnly",4,"ngIf"],["value","methodCoverageIncreaseOnly",4,"ngIf"],["value","methodCoverageDecreaseOnly",4,"ngIf"],["value","branchCoverageIncreaseOnly"],["value","branchCoverageDecreaseOnly"],["value","methodCoverageIncreaseOnly"],["value","methodCoverageDecreaseOnly"],[1,"column90"],[1,"column105"],[1,"column100"],[1,"column70"],[1,"column98"],[1,"column112"],["colspan","6",1,"center"],["colspan","4",1,"center"],["colspan","2",1,"center"],["target","_blank",3,"href"],[1,"icon-info-circled"],["codeelement-row","",3,"element","collapsed","lineCoverageAvailable","branchCoverageAvailable","methodCoverageAvailable","visibleMetrics",4,"ngIf"],["codeelement-row","",3,"element","collapsed","lineCoverageAvailable","branchCoverageAvailable","methodCoverageAvailable","visibleMetrics"],["class-row","",3,"clazz","translations","lineCoverageAvailable","branchCoverageAvailable","methodCoverageAvailable","visibleMetrics","historyComparisionDate",4,"ngIf"],["class-row","",3,"clazz","translations","lineCoverageAvailable","branchCoverageAvailable","methodCoverageAvailable","visibleMetrics","historyComparisionDate"],["codeelement-row","",1,"namespace",3,"element","collapsed","lineCoverageAvailable","branchCoverageAvailable","methodCoverageAvailable","visibleMetrics"],["class","namespace","class-row","",3,"clazz","translations","lineCoverageAvailable","branchCoverageAvailable","methodCoverageAvailable","visibleMetrics","historyComparisionDate",4,"ngIf"],["class-row","",1,"namespace",3,"clazz","translations","lineCoverageAvailable","branchCoverageAvailable","methodCoverageAvailable","visibleMetrics","historyComparisionDate"]],template:function(n,t){1&n&&C(0,oN,73,51,"div",0),2&n&&g("ngIf",t.codeElements.length>0)},dependencies:[bo,xr,jn,nu,ou,So,Jc,Ro,ys,Oo,ko,Lo,Bo],encapsulation:2});class iN{constructor(){this.assembly="",this.numberOfRiskHotspots=10,this.filter="",this.sortBy="",this.sortOrder="asc"}}function sN(e,n){if(1&e&&(y(0,"option",15),w(1),v()),2&e){const t=n.$implicit;g("value",t),f(1),F(t)}}function aN(e,n){if(1&e&&(y(0,"span"),w(1),v()),2&e){const t=_(2);f(1),F(t.translations.top)}}function lN(e,n){1&e&&(y(0,"option",22),w(1,"20"),v())}function cN(e,n){1&e&&(y(0,"option",23),w(1,"50"),v())}function uN(e,n){1&e&&(y(0,"option",24),w(1,"100"),v())}function dN(e,n){if(1&e&&(y(0,"option",15),w(1),v()),2&e){const t=_(3);g("value",t.totalNumberOfRiskHotspots),f(1),F(t.translations.all)}}function fN(e,n){if(1&e){const t=Ce();y(0,"select",16),k("ngModelChange",function(o){return Q(t),Y(_(2).settings.numberOfRiskHotspots=o)}),y(1,"option",17),w(2,"10"),v(),C(3,lN,2,0,"option",18),C(4,cN,2,0,"option",19),C(5,uN,2,0,"option",20),C(6,dN,2,2,"option",21),v()}if(2&e){const t=_(2);g("ngModel",t.settings.numberOfRiskHotspots),f(3),g("ngIf",t.totalNumberOfRiskHotspots>10),f(1),g("ngIf",t.totalNumberOfRiskHotspots>20),f(1),g("ngIf",t.totalNumberOfRiskHotspots>50),f(1),g("ngIf",t.totalNumberOfRiskHotspots>100)}}function hN(e,n){1&e&&N(0,"col",25)}const Ss=function(e,n,t){return{"icon-up-dir_active":e,"icon-down-dir_active":n,"icon-down-dir":t}};function pN(e,n){if(1&e){const t=Ce();y(0,"th")(1,"a",12),k("click",function(o){const s=Q(t).index;return Y(_(2).updateSorting(""+s,o))}),N(2,"i",13),w(3),v(),y(4,"a",26),N(5,"i",27),v()()}if(2&e){const t=n.$implicit,r=n.index,o=_(2);f(2),g("ngClass",Oe(3,Ss,o.settings.sortBy===""+r&&"desc"===o.settings.sortOrder,o.settings.sortBy===""+r&&"asc"===o.settings.sortOrder,o.settings.sortBy!==""+r)),f(1),F(t.name),f(1),fn("href",t.explanationUrl,un)}}const gN=function(e,n){return{lightred:e,lightgreen:n}};function mN(e,n){if(1&e&&(y(0,"td",31),w(1),v()),2&e){const t=n.$implicit;g("ngClass",Vl(2,gN,t.exceeded,!t.exceeded)),f(1),F(t.value)}}function _N(e,n){if(1&e&&(y(0,"tr")(1,"td"),w(2),v(),y(3,"td")(4,"a",28),w(5),v()(),y(6,"td",29)(7,"a",28),w(8),v()(),C(9,mN,2,5,"td",30),v()),2&e){const t=n.$implicit,r=_(2);f(2),F(t.assembly),f(2),g("href",t.reportPath+r.queryString,un),f(1),F(t.class),f(1),g("title",t.methodName),f(1),g("href",t.reportPath+r.queryString+"#file"+t.fileIndex+"_line"+t.line,un),f(1),G(" ",t.methodShortName," "),f(1),g("ngForOf",t.metrics)}}function vN(e,n){if(1&e){const t=Ce();y(0,"div")(1,"div",1)(2,"div")(3,"select",2),k("ngModelChange",function(o){return Q(t),Y(_().settings.assembly=o)})("ngModelChange",function(){return Q(t),Y(_().updateRiskHotpots())}),y(4,"option",3),w(5),v(),C(6,sN,2,2,"option",4),v()(),y(7,"div",5),C(8,aN,2,1,"span",0),C(9,fN,7,5,"select",6),v(),N(10,"div",5),y(11,"div",7)(12,"span"),w(13),v(),y(14,"input",8),k("ngModelChange",function(o){return Q(t),Y(_().settings.filter=o)})("ngModelChange",function(){return Q(t),Y(_().updateRiskHotpots())}),v()()(),y(15,"div",9)(16,"table",10)(17,"colgroup"),N(18,"col")(19,"col")(20,"col"),C(21,hN,1,0,"col",11),v(),y(22,"thead")(23,"tr")(24,"th")(25,"a",12),k("click",function(o){return Q(t),Y(_().updateSorting("assembly",o))}),N(26,"i",13),w(27),v()(),y(28,"th")(29,"a",12),k("click",function(o){return Q(t),Y(_().updateSorting("class",o))}),N(30,"i",13),w(31),v()(),y(32,"th")(33,"a",12),k("click",function(o){return Q(t),Y(_().updateSorting("method",o))}),N(34,"i",13),w(35),v()(),C(36,pN,6,7,"th",14),v()(),y(37,"tbody"),C(38,_N,10,7,"tr",14),function gg(e,n){const t=ee();let r;const o=e+22;t.firstCreatePass?(r=function kE(e,n){if(n)for(let t=n.length-1;t>=0;t--){const r=n[t];if(e===r.name)return r}}(n,t.pipeRegistry),t.data[o]=r,r.onDestroy&&(t.destroyHooks||(t.destroyHooks=[])).push(o,r.onDestroy)):r=t.data[o];const i=r.factory||(r.factory=Sn(r.type)),s=dt(M);try{const a=fi(!1),l=i();return fi(a),function bb(e,n,t,r){t>=e.data.length&&(e.data[t]=null,e.blueprint[t]=null),n[t]=r}(t,E(),o,l),l}finally{dt(s)}}(39,"slice"),v()()()()}if(2&e){const t=_();f(3),g("ngModel",t.settings.assembly),f(2),F(t.translations.assembly),f(1),g("ngForOf",t.assemblies),f(2),g("ngIf",t.totalNumberOfRiskHotspots>10),f(1),g("ngIf",t.totalNumberOfRiskHotspots>10),f(4),G("",t.translations.filter," "),f(1),g("ngModel",t.settings.filter),f(7),g("ngForOf",t.riskHotspotMetrics),f(5),g("ngClass",Oe(20,Ss,"assembly"===t.settings.sortBy&&"desc"===t.settings.sortOrder,"assembly"===t.settings.sortBy&&"asc"===t.settings.sortOrder,"assembly"!==t.settings.sortBy)),f(1),F(t.translations.assembly),f(3),g("ngClass",Oe(24,Ss,"class"===t.settings.sortBy&&"desc"===t.settings.sortOrder,"class"===t.settings.sortBy&&"asc"===t.settings.sortOrder,"class"!==t.settings.sortBy)),f(1),F(t.translations.class),f(3),g("ngClass",Oe(28,Ss,"method"===t.settings.sortBy&&"desc"===t.settings.sortOrder,"method"===t.settings.sortBy&&"asc"===t.settings.sortOrder,"method"!==t.settings.sortBy)),f(1),F(t.translations.method),f(1),g("ngForOf",t.riskHotspotMetrics),f(2),g("ngForOf",function mg(e,n,t,r,o){const i=e+22,s=E(),a=function Kn(e,n){return e[n]}(s,i);return function _o(e,n){return e[1].data[n].pure}(s,i)?fg(s,qe(),n,a.transform,t,r,o,a):a.transform(t,r,o)}(39,16,t.riskHotspots,0,t.settings.numberOfRiskHotspots))}}class jo{constructor(n){this.queryString="",this.riskHotspotMetrics=[],this.riskHotspots=[],this.totalNumberOfRiskHotspots=0,this.assemblies=[],this.translations={},this.settings=new iN,this.window=n.nativeWindow}ngOnInit(){this.riskHotspotMetrics=this.window.riskHotspotMetrics,this.translations=this.window.translations,void 0!==this.window.history&&void 0!==this.window.history.replaceState&&null!==this.window.history.state&&null!=this.window.history.state.riskHotspotsSettings&&(console.log("Risk hotspots: Restoring from history",this.window.history.state.riskHotspotsSettings),this.settings=JSON.parse(JSON.stringify(this.window.history.state.riskHotspotsSettings)));const n=window.location.href.indexOf("?");n>-1&&(this.queryString=window.location.href.substring(n)),this.updateRiskHotpots()}onDonBeforeUnlodad(){if(void 0!==this.window.history&&void 0!==this.window.history.replaceState){console.log("Risk hotspots: Updating history",this.settings);let n=new iv;null!==window.history.state&&(n=JSON.parse(JSON.stringify(this.window.history.state))),n.riskHotspotsSettings=JSON.parse(JSON.stringify(this.settings)),window.history.replaceState(n,"")}}updateRiskHotpots(){const n=this.window.riskHotspots;if(this.totalNumberOfRiskHotspots=n.length,0===this.assemblies.length){let i=[];for(let s=0;s0)},dependencies:[bo,xr,jn,nu,ou,So,Ro,ys,Oo,Om],encapsulation:2});class Or{}Or.\u0275fac=function(n){return new(n||Or)},Or.\u0275mod=an({type:Or,bootstrap:[jo,Ho]}),Or.\u0275inj=$t({providers:[Dn],imports:[DS,jA]}),CS().bootstrapModule(Or).catch(e=>console.error(e))}},me=>{me(me.s=938)}]); \ No newline at end of file diff --git a/src/ReportGenerator.Core/Reporting/Builders/Rendering/resources/polyfills.js b/src/ReportGenerator.Core/Reporting/Builders/Rendering/resources/polyfills.js index 16fc1523..7d973342 100644 --- a/src/ReportGenerator.Core/Reporting/Builders/Rendering/resources/polyfills.js +++ b/src/ReportGenerator.Core/Reporting/Builders/Rendering/resources/polyfills.js @@ -1 +1 @@ -"use strict";(self.webpackChunkcoverage_app=self.webpackChunkcoverage_app||[]).push([[429],{435:(we,ue,he)=>{he(583)},583:()=>{!function(e){const n=e.performance;function i(I){n&&n.mark&&n.mark(I)}function r(I,p){n&&n.measure&&n.measure(I,p)}i("Zone");const c=e.__Zone_symbol_prefix||"__zone_symbol__";function u(I){return c+I}const f=!0===e[u("forceDuplicateZoneCheck")];if(e.Zone){if(f||"function"!=typeof e.Zone.__symbol__)throw new Error("Zone already loaded.");return e.Zone}let _=(()=>{class I{constructor(t,o){this._parent=t,this._name=o?o.name||"unnamed":"",this._properties=o&&o.properties||{},this._zoneDelegate=new T(this,this._parent&&this._parent._zoneDelegate,o)}static assertZonePatched(){if(e.Promise!==J.ZoneAwarePromise)throw new Error("Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)")}static get root(){let t=I.current;for(;t.parent;)t=t.parent;return t}static get current(){return G.zone}static get currentTask(){return te}static __load_patch(t,o,g=!1){if(J.hasOwnProperty(t)){if(!g&&f)throw Error("Already loaded patch: "+t)}else if(!e["__Zone_disable_"+t]){const P="Zone:"+t;i(P),J[t]=o(e,I,le),r(P,P)}}get parent(){return this._parent}get name(){return this._name}get(t){const o=this.getZoneWith(t);if(o)return o._properties[t]}getZoneWith(t){let o=this;for(;o;){if(o._properties.hasOwnProperty(t))return o;o=o._parent}return null}fork(t){if(!t)throw new Error("ZoneSpec required!");return this._zoneDelegate.fork(this,t)}wrap(t,o){if("function"!=typeof t)throw new Error("Expecting function got: "+t);const g=this._zoneDelegate.intercept(this,t,o),P=this;return function(){return P.runGuarded(g,this,arguments,o)}}run(t,o,g,P){G={parent:G,zone:this};try{return this._zoneDelegate.invoke(this,t,o,g,P)}finally{G=G.parent}}runGuarded(t,o=null,g,P){G={parent:G,zone:this};try{try{return this._zoneDelegate.invoke(this,t,o,g,P)}catch(K){if(this._zoneDelegate.handleError(this,K))throw K}}finally{G=G.parent}}runTask(t,o,g){if(t.zone!=this)throw new Error("A task can only be run in the zone of creation! (Creation: "+(t.zone||z).name+"; Execution: "+this.name+")");if(t.state===j&&(t.type===R||t.type===M))return;const P=t.state!=X;P&&t._transitionTo(X,O),t.runCount++;const K=te;te=t,G={parent:G,zone:this};try{t.type==M&&t.data&&!t.data.isPeriodic&&(t.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,t,o,g)}catch(l){if(this._zoneDelegate.handleError(this,l))throw l}}finally{t.state!==j&&t.state!==Y&&(t.type==R||t.data&&t.data.isPeriodic?P&&t._transitionTo(O,X):(t.runCount=0,this._updateTaskCount(t,-1),P&&t._transitionTo(j,X,j))),G=G.parent,te=K}}scheduleTask(t){if(t.zone&&t.zone!==this){let g=this;for(;g;){if(g===t.zone)throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${t.zone.name}`);g=g.parent}}t._transitionTo(q,j);const o=[];t._zoneDelegates=o,t._zone=this;try{t=this._zoneDelegate.scheduleTask(this,t)}catch(g){throw t._transitionTo(Y,q,j),this._zoneDelegate.handleError(this,g),g}return t._zoneDelegates===o&&this._updateTaskCount(t,1),t.state==q&&t._transitionTo(O,q),t}scheduleMicroTask(t,o,g,P){return this.scheduleTask(new m(v,t,o,g,P,void 0))}scheduleMacroTask(t,o,g,P,K){return this.scheduleTask(new m(M,t,o,g,P,K))}scheduleEventTask(t,o,g,P,K){return this.scheduleTask(new m(R,t,o,g,P,K))}cancelTask(t){if(t.zone!=this)throw new Error("A task can only be cancelled in the zone of creation! (Creation: "+(t.zone||z).name+"; Execution: "+this.name+")");t._transitionTo(A,O,X);try{this._zoneDelegate.cancelTask(this,t)}catch(o){throw t._transitionTo(Y,A),this._zoneDelegate.handleError(this,o),o}return this._updateTaskCount(t,-1),t._transitionTo(j,A),t.runCount=0,t}_updateTaskCount(t,o){const g=t._zoneDelegates;-1==o&&(t._zoneDelegates=null);for(let P=0;PI.hasTask(t,o),onScheduleTask:(I,p,t,o)=>I.scheduleTask(t,o),onInvokeTask:(I,p,t,o,g,P)=>I.invokeTask(t,o,g,P),onCancelTask:(I,p,t,o)=>I.cancelTask(t,o)};class T{constructor(p,t,o){this._taskCounts={microTask:0,macroTask:0,eventTask:0},this.zone=p,this._parentDelegate=t,this._forkZS=o&&(o&&o.onFork?o:t._forkZS),this._forkDlgt=o&&(o.onFork?t:t._forkDlgt),this._forkCurrZone=o&&(o.onFork?this.zone:t._forkCurrZone),this._interceptZS=o&&(o.onIntercept?o:t._interceptZS),this._interceptDlgt=o&&(o.onIntercept?t:t._interceptDlgt),this._interceptCurrZone=o&&(o.onIntercept?this.zone:t._interceptCurrZone),this._invokeZS=o&&(o.onInvoke?o:t._invokeZS),this._invokeDlgt=o&&(o.onInvoke?t:t._invokeDlgt),this._invokeCurrZone=o&&(o.onInvoke?this.zone:t._invokeCurrZone),this._handleErrorZS=o&&(o.onHandleError?o:t._handleErrorZS),this._handleErrorDlgt=o&&(o.onHandleError?t:t._handleErrorDlgt),this._handleErrorCurrZone=o&&(o.onHandleError?this.zone:t._handleErrorCurrZone),this._scheduleTaskZS=o&&(o.onScheduleTask?o:t._scheduleTaskZS),this._scheduleTaskDlgt=o&&(o.onScheduleTask?t:t._scheduleTaskDlgt),this._scheduleTaskCurrZone=o&&(o.onScheduleTask?this.zone:t._scheduleTaskCurrZone),this._invokeTaskZS=o&&(o.onInvokeTask?o:t._invokeTaskZS),this._invokeTaskDlgt=o&&(o.onInvokeTask?t:t._invokeTaskDlgt),this._invokeTaskCurrZone=o&&(o.onInvokeTask?this.zone:t._invokeTaskCurrZone),this._cancelTaskZS=o&&(o.onCancelTask?o:t._cancelTaskZS),this._cancelTaskDlgt=o&&(o.onCancelTask?t:t._cancelTaskDlgt),this._cancelTaskCurrZone=o&&(o.onCancelTask?this.zone:t._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;const g=o&&o.onHasTask;(g||t&&t._hasTaskZS)&&(this._hasTaskZS=g?o:y,this._hasTaskDlgt=t,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=p,o.onScheduleTask||(this._scheduleTaskZS=y,this._scheduleTaskDlgt=t,this._scheduleTaskCurrZone=this.zone),o.onInvokeTask||(this._invokeTaskZS=y,this._invokeTaskDlgt=t,this._invokeTaskCurrZone=this.zone),o.onCancelTask||(this._cancelTaskZS=y,this._cancelTaskDlgt=t,this._cancelTaskCurrZone=this.zone))}fork(p,t){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,p,t):new _(p,t)}intercept(p,t,o){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,p,t,o):t}invoke(p,t,o,g,P){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,p,t,o,g,P):t.apply(o,g)}handleError(p,t){return!this._handleErrorZS||this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,p,t)}scheduleTask(p,t){let o=t;if(this._scheduleTaskZS)this._hasTaskZS&&o._zoneDelegates.push(this._hasTaskDlgtOwner),o=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,p,t),o||(o=t);else if(t.scheduleFn)t.scheduleFn(t);else{if(t.type!=v)throw new Error("Task is missing scheduleFn.");d(t)}return o}invokeTask(p,t,o,g){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,p,t,o,g):t.callback.apply(o,g)}cancelTask(p,t){let o;if(this._cancelTaskZS)o=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,p,t);else{if(!t.cancelFn)throw Error("Task is not cancelable");o=t.cancelFn(t)}return o}hasTask(p,t){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,p,t)}catch(o){this.handleError(p,o)}}_updateTaskCount(p,t){const o=this._taskCounts,g=o[p],P=o[p]=g+t;if(P<0)throw new Error("More tasks executed then were scheduled.");0!=g&&0!=P||this.hasTask(this.zone,{microTask:o.microTask>0,macroTask:o.macroTask>0,eventTask:o.eventTask>0,change:p})}}class m{constructor(p,t,o,g,P,K){if(this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state="notScheduled",this.type=p,this.source=t,this.data=g,this.scheduleFn=P,this.cancelFn=K,!o)throw new Error("callback is not defined");this.callback=o;const l=this;this.invoke=p===R&&g&&g.useG?m.invokeTask:function(){return m.invokeTask.call(e,l,this,arguments)}}static invokeTask(p,t,o){p||(p=this),re++;try{return p.runCount++,p.zone.runTask(p,t,o)}finally{1==re&&L(),re--}}get zone(){return this._zone}get state(){return this._state}cancelScheduleRequest(){this._transitionTo(j,q)}_transitionTo(p,t,o){if(this._state!==t&&this._state!==o)throw new Error(`${this.type} '${this.source}': can not transition to '${p}', expecting state '${t}'${o?" or '"+o+"'":""}, was '${this._state}'.`);this._state=p,p==j&&(this._zoneDelegates=null)}toString(){return this.data&&typeof this.data.handleId<"u"?this.data.handleId.toString():Object.prototype.toString.call(this)}toJSON(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}}}const S=u("setTimeout"),D=u("Promise"),Z=u("then");let E,B=[],V=!1;function d(I){if(0===re&&0===B.length)if(E||e[D]&&(E=e[D].resolve(0)),E){let p=E[Z];p||(p=E.then),p.call(E,L)}else e[S](L,0);I&&B.push(I)}function L(){if(!V){for(V=!0;B.length;){const I=B;B=[];for(let p=0;pG,onUnhandledError:F,microtaskDrainDone:F,scheduleMicroTask:d,showUncaughtError:()=>!_[u("ignoreConsoleErrorUncaughtError")],patchEventTarget:()=>[],patchOnProperties:F,patchMethod:()=>F,bindArguments:()=>[],patchThen:()=>F,patchMacroTask:()=>F,patchEventPrototype:()=>F,isIEOrEdge:()=>!1,getGlobalObjects:()=>{},ObjectDefineProperty:()=>F,ObjectGetOwnPropertyDescriptor:()=>{},ObjectCreate:()=>{},ArraySlice:()=>[],patchClass:()=>F,wrapWithCurrentZone:()=>F,filterProperties:()=>[],attachOriginToPatched:()=>F,_redefineProperty:()=>F,patchCallbacks:()=>F};let G={parent:null,zone:new _(null,null)},te=null,re=0;function F(){}r("Zone","Zone"),e.Zone=_}(typeof window<"u"&&window||typeof self<"u"&&self||global);const ue=Object.getOwnPropertyDescriptor,he=Object.defineProperty,de=Object.getPrototypeOf,Be=Object.create,ut=Array.prototype.slice,Se="addEventListener",Oe="removeEventListener",Ze=Zone.__symbol__(Se),Ie=Zone.__symbol__(Oe),se="true",ie="false",ke=Zone.__symbol__("");function Le(e,n){return Zone.current.wrap(e,n)}function Me(e,n,i,r,c){return Zone.current.scheduleMacroTask(e,n,i,r,c)}const x=Zone.__symbol__,Pe=typeof window<"u",pe=Pe?window:void 0,$=Pe&&pe||"object"==typeof self&&self||global,ht=[null];function Ae(e,n){for(let i=e.length-1;i>=0;i--)"function"==typeof e[i]&&(e[i]=Le(e[i],n+"_"+i));return e}function Fe(e){return!e||!1!==e.writable&&!("function"==typeof e.get&&typeof e.set>"u")}const Ue=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope,Re=!("nw"in $)&&typeof $.process<"u"&&"[object process]"==={}.toString.call($.process),je=!Re&&!Ue&&!(!Pe||!pe.HTMLElement),We=typeof $.process<"u"&&"[object process]"==={}.toString.call($.process)&&!Ue&&!(!Pe||!pe.HTMLElement),Ce={},qe=function(e){if(!(e=e||$.event))return;let n=Ce[e.type];n||(n=Ce[e.type]=x("ON_PROPERTY"+e.type));const i=this||e.target||$,r=i[n];let c;if(je&&i===pe&&"error"===e.type){const u=e;c=r&&r.call(this,u.message,u.filename,u.lineno,u.colno,u.error),!0===c&&e.preventDefault()}else c=r&&r.apply(this,arguments),null!=c&&!c&&e.preventDefault();return c};function Xe(e,n,i){let r=ue(e,n);if(!r&&i&&ue(i,n)&&(r={enumerable:!0,configurable:!0}),!r||!r.configurable)return;const c=x("on"+n+"patched");if(e.hasOwnProperty(c)&&e[c])return;delete r.writable,delete r.value;const u=r.get,f=r.set,_=n.substr(2);let y=Ce[_];y||(y=Ce[_]=x("ON_PROPERTY"+_)),r.set=function(T){let m=this;!m&&e===$&&(m=$),m&&(m[y]&&m.removeEventListener(_,qe),f&&f.apply(m,ht),"function"==typeof T?(m[y]=T,m.addEventListener(_,qe,!1)):m[y]=null)},r.get=function(){let T=this;if(!T&&e===$&&(T=$),!T)return null;const m=T[y];if(m)return m;if(u){let S=u&&u.call(this);if(S)return r.set.call(this,S),"function"==typeof T.removeAttribute&&T.removeAttribute(n),S}return null},he(e,n,r),e[c]=!0}function Ye(e,n,i){if(n)for(let r=0;rfunction(f,_){const y=i(f,_);return y.cbIdx>=0&&"function"==typeof _[y.cbIdx]?Me(y.name,_[y.cbIdx],y,c):u.apply(f,_)})}function ae(e,n){e[x("OriginalDelegate")]=n}let $e=!1,He=!1;function mt(){if($e)return He;$e=!0;try{const e=pe.navigator.userAgent;(-1!==e.indexOf("MSIE ")||-1!==e.indexOf("Trident/")||-1!==e.indexOf("Edge/"))&&(He=!0)}catch{}return He}Zone.__load_patch("ZoneAwarePromise",(e,n,i)=>{const r=Object.getOwnPropertyDescriptor,c=Object.defineProperty,f=i.symbol,_=[],y=!0===e[f("DISABLE_WRAPPING_UNCAUGHT_PROMISE_REJECTION")],T=f("Promise"),m=f("then");i.onUnhandledError=l=>{if(i.showUncaughtError()){const s=l&&l.rejection;s?console.error("Unhandled Promise rejection:",s instanceof Error?s.message:s,"; Zone:",l.zone.name,"; Task:",l.task&&l.task.source,"; Value:",s,s instanceof Error?s.stack:void 0):console.error(l)}},i.microtaskDrainDone=()=>{for(;_.length;){const l=_.shift();try{l.zone.runGuarded(()=>{throw l.throwOriginal?l.rejection:l})}catch(s){Z(s)}}};const D=f("unhandledPromiseRejectionHandler");function Z(l){i.onUnhandledError(l);try{const s=n[D];"function"==typeof s&&s.call(this,l)}catch{}}function B(l){return l&&l.then}function V(l){return l}function E(l){return t.reject(l)}const d=f("state"),L=f("value"),z=f("finally"),j=f("parentPromiseValue"),q=f("parentPromiseState"),X=null,A=!0,Y=!1;function M(l,s){return a=>{try{G(l,s,a)}catch(h){G(l,!1,h)}}}const le=f("currentTaskTrace");function G(l,s,a){const h=function(){let l=!1;return function(a){return function(){l||(l=!0,a.apply(null,arguments))}}}();if(l===a)throw new TypeError("Promise resolved with itself");if(l[d]===X){let w=null;try{("object"==typeof a||"function"==typeof a)&&(w=a&&a.then)}catch(C){return h(()=>{G(l,!1,C)})(),l}if(s!==Y&&a instanceof t&&a.hasOwnProperty(d)&&a.hasOwnProperty(L)&&a[d]!==X)re(a),G(l,a[d],a[L]);else if(s!==Y&&"function"==typeof w)try{w.call(a,h(M(l,s)),h(M(l,!1)))}catch(C){h(()=>{G(l,!1,C)})()}else{l[d]=s;const C=l[L];if(l[L]=a,l[z]===z&&s===A&&(l[d]=l[q],l[L]=l[j]),s===Y&&a instanceof Error){const k=n.currentTask&&n.currentTask.data&&n.currentTask.data.__creationTrace__;k&&c(a,le,{configurable:!0,enumerable:!1,writable:!0,value:k})}for(let k=0;k{try{const b=l[L],N=!!a&&z===a[z];N&&(a[j]=b,a[q]=C);const H=s.run(k,void 0,N&&k!==E&&k!==V?[]:[b]);G(a,!0,H)}catch(b){G(a,!1,b)}},a)}const p=function(){};class t{static toString(){return"function ZoneAwarePromise() { [native code] }"}static resolve(s){return G(new this(null),A,s)}static reject(s){return G(new this(null),Y,s)}static race(s){let a,h,w=new this((b,N)=>{a=b,h=N});function C(b){a(b)}function k(b){h(b)}for(let b of s)B(b)||(b=this.resolve(b)),b.then(C,k);return w}static all(s){return t.allWithCallback(s)}static allSettled(s){return(this&&this.prototype instanceof t?this:t).allWithCallback(s,{thenCallback:h=>({status:"fulfilled",value:h}),errorCallback:h=>({status:"rejected",reason:h})})}static allWithCallback(s,a){let h,w,C=new this((H,U)=>{h=H,w=U}),k=2,b=0;const N=[];for(let H of s){B(H)||(H=this.resolve(H));const U=b;try{H.then(Q=>{N[U]=a?a.thenCallback(Q):Q,k--,0===k&&h(N)},Q=>{a?(N[U]=a.errorCallback(Q),k--,0===k&&h(N)):w(Q)})}catch(Q){w(Q)}k++,b++}return k-=2,0===k&&h(N),C}constructor(s){const a=this;if(!(a instanceof t))throw new Error("Must be an instanceof Promise.");a[d]=X,a[L]=[];try{s&&s(M(a,A),M(a,Y))}catch(h){G(a,!1,h)}}get[Symbol.toStringTag](){return"Promise"}get[Symbol.species](){return t}then(s,a){let h=this.constructor[Symbol.species];(!h||"function"!=typeof h)&&(h=this.constructor||t);const w=new h(p),C=n.current;return this[d]==X?this[L].push(C,w,s,a):F(this,C,w,s,a),w}catch(s){return this.then(null,s)}finally(s){let a=this.constructor[Symbol.species];(!a||"function"!=typeof a)&&(a=t);const h=new a(p);h[z]=z;const w=n.current;return this[d]==X?this[L].push(w,h,s,s):F(this,w,h,s,s),h}}t.resolve=t.resolve,t.reject=t.reject,t.race=t.race,t.all=t.all;const o=e[T]=e.Promise;e.Promise=t;const g=f("thenPatched");function P(l){const s=l.prototype,a=r(s,"then");if(a&&(!1===a.writable||!a.configurable))return;const h=s.then;s[m]=h,l.prototype.then=function(w,C){return new t((b,N)=>{h.call(this,b,N)}).then(w,C)},l[g]=!0}return i.patchThen=P,o&&(P(o),ce(e,"fetch",l=>function K(l){return function(s,a){let h=l.apply(s,a);if(h instanceof t)return h;let w=h.constructor;return w[g]||P(w),h}}(l))),Promise[n.__symbol__("uncaughtPromiseErrors")]=_,t}),Zone.__load_patch("toString",e=>{const n=Function.prototype.toString,i=x("OriginalDelegate"),r=x("Promise"),c=x("Error"),u=function(){if("function"==typeof this){const T=this[i];if(T)return"function"==typeof T?n.call(T):Object.prototype.toString.call(T);if(this===Promise){const m=e[r];if(m)return n.call(m)}if(this===Error){const m=e[c];if(m)return n.call(m)}}return n.call(this)};u[i]=n,Function.prototype.toString=u;const f=Object.prototype.toString;Object.prototype.toString=function(){return"function"==typeof Promise&&this instanceof Promise?"[object Promise]":f.call(this)}});let me=!1;if(typeof window<"u")try{const e=Object.defineProperty({},"passive",{get:function(){me=!0}});window.addEventListener("test",e,e),window.removeEventListener("test",e,e)}catch{me=!1}const Et={useG:!0},ee={},Ke={},Je=new RegExp("^"+ke+"(\\w+)(true|false)$"),xe=x("propagationStopped");function Qe(e,n){const i=(n?n(e):e)+ie,r=(n?n(e):e)+se,c=ke+i,u=ke+r;ee[e]={},ee[e][ie]=c,ee[e][se]=u}function Tt(e,n,i){const r=i&&i.add||Se,c=i&&i.rm||Oe,u=i&&i.listeners||"eventListeners",f=i&&i.rmAll||"removeAllListeners",_=x(r),y="."+r+":",S=function(E,d,L){if(E.isRemoved)return;const z=E.callback;"object"==typeof z&&z.handleEvent&&(E.callback=q=>z.handleEvent(q),E.originalDelegate=z),E.invoke(E,d,[L]);const j=E.options;j&&"object"==typeof j&&j.once&&d[c].call(d,L.type,E.originalDelegate?E.originalDelegate:E.callback,j)},D=function(E){if(!(E=E||e.event))return;const d=this||E.target||e,L=d[ee[E.type][ie]];if(L)if(1===L.length)S(L[0],d,E);else{const z=L.slice();for(let j=0;jfunction(c,u){c[xe]=!0,r&&r.apply(c,u)})}function yt(e,n,i,r,c){const u=Zone.__symbol__(r);if(n[u])return;const f=n[u]=n[r];n[r]=function(_,y,T){return y&&y.prototype&&c.forEach(function(m){const S=`${i}.${r}::`+m,D=y.prototype;if(D.hasOwnProperty(m)){const Z=e.ObjectGetOwnPropertyDescriptor(D,m);Z&&Z.value?(Z.value=e.wrapWithCurrentZone(Z.value,S),e._redefineProperty(y.prototype,m,Z)):D[m]&&(D[m]=e.wrapWithCurrentZone(D[m],S))}else D[m]&&(D[m]=e.wrapWithCurrentZone(D[m],S))}),f.call(n,_,y,T)},e.attachOriginToPatched(n[r],f)}const Ve=["absolutedeviceorientation","afterinput","afterprint","appinstalled","beforeinstallprompt","beforeprint","beforeunload","devicelight","devicemotion","deviceorientation","deviceorientationabsolute","deviceproximity","hashchange","languagechange","message","mozbeforepaint","offline","online","paint","pageshow","pagehide","popstate","rejectionhandled","storage","unhandledrejection","unload","userproximity","vrdisplayconnected","vrdisplaydisconnected","vrdisplaypresentchange"],wt=["encrypted","waitingforkey","msneedkey","mozinterruptbegin","mozinterruptend"],tt=["load"],nt=["blur","error","focus","load","resize","scroll","messageerror"],Dt=["bounce","finish","start"],rt=["loadstart","progress","abort","error","load","progress","timeout","loadend","readystatechange"],Ee=["upgradeneeded","complete","abort","success","error","blocked","versionchange","close"],St=["close","error","open","message"],Ot=["error","message"],Te=["abort","animationcancel","animationend","animationiteration","auxclick","beforeinput","blur","cancel","canplay","canplaythrough","change","compositionstart","compositionupdate","compositionend","cuechange","click","close","contextmenu","curechange","dblclick","drag","dragend","dragenter","dragexit","dragleave","dragover","drop","durationchange","emptied","ended","error","focus","focusin","focusout","gotpointercapture","input","invalid","keydown","keypress","keyup","load","loadstart","loadeddata","loadedmetadata","lostpointercapture","mousedown","mouseenter","mouseleave","mousemove","mouseout","mouseover","mouseup","mousewheel","orientationchange","pause","play","playing","pointercancel","pointerdown","pointerenter","pointerleave","pointerlockchange","mozpointerlockchange","webkitpointerlockerchange","pointerlockerror","mozpointerlockerror","webkitpointerlockerror","pointermove","pointout","pointerover","pointerup","progress","ratechange","reset","resize","scroll","seeked","seeking","select","selectionchange","selectstart","show","sort","stalled","submit","suspend","timeupdate","volumechange","touchcancel","touchmove","touchstart","touchend","transitioncancel","transitionend","waiting","wheel"].concat(["webglcontextrestored","webglcontextlost","webglcontextcreationerror"],["autocomplete","autocompleteerror"],["toggle"],["afterscriptexecute","beforescriptexecute","DOMContentLoaded","freeze","fullscreenchange","mozfullscreenchange","webkitfullscreenchange","msfullscreenchange","fullscreenerror","mozfullscreenerror","webkitfullscreenerror","msfullscreenerror","readystatechange","visibilitychange","resume"],Ve,["beforecopy","beforecut","beforepaste","copy","cut","paste","dragstart","loadend","animationstart","search","transitionrun","transitionstart","webkitanimationend","webkitanimationiteration","webkitanimationstart","webkittransitionend"],["activate","afterupdate","ariarequest","beforeactivate","beforedeactivate","beforeeditfocus","beforeupdate","cellchange","controlselect","dataavailable","datasetchanged","datasetcomplete","errorupdate","filterchange","layoutcomplete","losecapture","move","moveend","movestart","propertychange","resizeend","resizestart","rowenter","rowexit","rowsdelete","rowsinserted","command","compassneedscalibration","deactivate","help","mscontentzoom","msmanipulationstatechanged","msgesturechange","msgesturedoubletap","msgestureend","msgesturehold","msgesturestart","msgesturetap","msgotpointercapture","msinertiastart","mslostpointercapture","mspointercancel","mspointerdown","mspointerenter","mspointerhover","mspointerleave","mspointermove","mspointerout","mspointerover","mspointerup","pointerout","mssitemodejumplistitemremoved","msthumbnailclick","stop","storagecommit"]);function ot(e,n,i){if(!i||0===i.length)return n;const r=i.filter(u=>u.target===e);if(!r||0===r.length)return n;const c=r[0].ignoreProperties;return n.filter(u=>-1===c.indexOf(u))}function W(e,n,i,r){e&&Ye(e,ot(e,n,i),r)}Zone.__load_patch("util",(e,n,i)=>{i.patchOnProperties=Ye,i.patchMethod=ce,i.bindArguments=Ae,i.patchMacroTask=_t;const r=n.__symbol__("BLACK_LISTED_EVENTS"),c=n.__symbol__("UNPATCHED_EVENTS");e[c]&&(e[r]=e[c]),e[r]&&(n[r]=n[c]=e[r]),i.patchEventPrototype=gt,i.patchEventTarget=Tt,i.isIEOrEdge=mt,i.ObjectDefineProperty=he,i.ObjectGetOwnPropertyDescriptor=ue,i.ObjectCreate=Be,i.ArraySlice=ut,i.patchClass=ve,i.wrapWithCurrentZone=Le,i.filterProperties=ot,i.attachOriginToPatched=ae,i._redefineProperty=Object.defineProperty,i.patchCallbacks=yt,i.getGlobalObjects=()=>({globalSources:Ke,zoneSymbolEventNames:ee,eventNames:Te,isBrowser:je,isMix:We,isNode:Re,TRUE_STR:se,FALSE_STR:ie,ZONE_SYMBOL_PREFIX:ke,ADD_EVENT_LISTENER_STR:Se,REMOVE_EVENT_LISTENER_STR:Oe})});const Ne=x("zoneTask");function ge(e,n,i,r){let c=null,u=null;i+=r;const f={};function _(T){const m=T.data;return m.args[0]=function(){return T.invoke.apply(this,arguments)},m.handleId=c.apply(e,m.args),T}function y(T){return u.call(e,T.data.handleId)}c=ce(e,n+=r,T=>function(m,S){if("function"==typeof S[0]){const D={isPeriodic:"Interval"===r,delay:"Timeout"===r||"Interval"===r?S[1]||0:void 0,args:S},Z=S[0];S[0]=function(){try{return Z.apply(this,arguments)}finally{D.isPeriodic||("number"==typeof D.handleId?delete f[D.handleId]:D.handleId&&(D.handleId[Ne]=null))}};const B=Me(n,S[0],D,_,y);if(!B)return B;const V=B.data.handleId;return"number"==typeof V?f[V]=B:V&&(V[Ne]=B),V&&V.ref&&V.unref&&"function"==typeof V.ref&&"function"==typeof V.unref&&(B.ref=V.ref.bind(V),B.unref=V.unref.bind(V)),"number"==typeof V||V?V:B}return T.apply(e,S)}),u=ce(e,i,T=>function(m,S){const D=S[0];let Z;"number"==typeof D?Z=f[D]:(Z=D&&D[Ne],Z||(Z=D)),Z&&"string"==typeof Z.type?"notScheduled"!==Z.state&&(Z.cancelFn&&Z.data.isPeriodic||0===Z.runCount)&&("number"==typeof D?delete f[D]:D&&(D[Ne]=null),Z.zone.cancelTask(Z)):T.apply(e,S)})}Zone.__load_patch("legacy",e=>{const n=e[Zone.__symbol__("legacyPatch")];n&&n()}),Zone.__load_patch("queueMicrotask",(e,n,i)=>{i.patchMethod(e,"queueMicrotask",r=>function(c,u){n.current.scheduleMicroTask("queueMicrotask",u[0])})}),Zone.__load_patch("timers",e=>{const n="set",i="clear";ge(e,n,i,"Timeout"),ge(e,n,i,"Interval"),ge(e,n,i,"Immediate")}),Zone.__load_patch("requestAnimationFrame",e=>{ge(e,"request","cancel","AnimationFrame"),ge(e,"mozRequest","mozCancel","AnimationFrame"),ge(e,"webkitRequest","webkitCancel","AnimationFrame")}),Zone.__load_patch("blocking",(e,n)=>{const i=["alert","prompt","confirm"];for(let r=0;rfunction(y,T){return n.current.run(u,e,T,_)})}),Zone.__load_patch("EventTarget",(e,n,i)=>{(function Mt(e,n){n.patchEventPrototype(e,n)})(e,i),function Lt(e,n){if(Zone[n.symbol("patchEventTarget")])return;const{eventNames:i,zoneSymbolEventNames:r,TRUE_STR:c,FALSE_STR:u,ZONE_SYMBOL_PREFIX:f}=n.getGlobalObjects();for(let y=0;y{ve("MutationObserver"),ve("WebKitMutationObserver")}),Zone.__load_patch("IntersectionObserver",(e,n,i)=>{ve("IntersectionObserver")}),Zone.__load_patch("FileReader",(e,n,i)=>{ve("FileReader")}),Zone.__load_patch("on_property",(e,n,i)=>{!function Zt(e,n){if(Re&&!We||Zone[e.symbol("patchEvents")])return;const i=typeof WebSocket<"u",r=n.__Zone_ignore_on_properties;if(je){const f=window,_=function pt(){try{const e=pe.navigator.userAgent;if(-1!==e.indexOf("MSIE ")||-1!==e.indexOf("Trident/"))return!0}catch{}return!1}()?[{target:f,ignoreProperties:["error"]}]:[];W(f,Te.concat(["messageerror"]),r&&r.concat(_),de(f)),W(Document.prototype,Te,r),typeof f.SVGElement<"u"&&W(f.SVGElement.prototype,Te,r),W(Element.prototype,Te,r),W(HTMLElement.prototype,Te,r),W(HTMLMediaElement.prototype,wt,r),W(HTMLFrameSetElement.prototype,Ve.concat(nt),r),W(HTMLBodyElement.prototype,Ve.concat(nt),r),W(HTMLFrameElement.prototype,tt,r),W(HTMLIFrameElement.prototype,tt,r);const y=f.HTMLMarqueeElement;y&&W(y.prototype,Dt,r);const T=f.Worker;T&&W(T.prototype,Ot,r)}const c=n.XMLHttpRequest;c&&W(c.prototype,rt,r);const u=n.XMLHttpRequestEventTarget;u&&W(u&&u.prototype,rt,r),typeof IDBIndex<"u"&&(W(IDBIndex.prototype,Ee,r),W(IDBRequest.prototype,Ee,r),W(IDBOpenDBRequest.prototype,Ee,r),W(IDBDatabase.prototype,Ee,r),W(IDBTransaction.prototype,Ee,r),W(IDBCursor.prototype,Ee,r)),i&&W(WebSocket.prototype,St,r)}(i,e)}),Zone.__load_patch("customElements",(e,n,i)=>{!function It(e,n){const{isBrowser:i,isMix:r}=n.getGlobalObjects();(i||r)&&e.customElements&&"customElements"in e&&n.patchCallbacks(n,e.customElements,"customElements","define",["connectedCallback","disconnectedCallback","adoptedCallback","attributeChangedCallback"])}(e,i)}),Zone.__load_patch("XHR",(e,n)=>{!function y(T){const m=T.XMLHttpRequest;if(!m)return;const S=m.prototype;let Z=S[Ze],B=S[Ie];if(!Z){const v=T.XMLHttpRequestEventTarget;if(v){const M=v.prototype;Z=M[Ze],B=M[Ie]}}const V="readystatechange",E="scheduled";function d(v){const M=v.data,R=M.target;R[u]=!1,R[_]=!1;const J=R[c];Z||(Z=R[Ze],B=R[Ie]),J&&B.call(R,V,J);const le=R[c]=()=>{if(R.readyState===R.DONE)if(!M.aborted&&R[u]&&v.state===E){const te=R[n.__symbol__("loadfalse")];if(0!==R.status&&te&&te.length>0){const re=v.invoke;v.invoke=function(){const F=R[n.__symbol__("loadfalse")];for(let I=0;Ifunction(v,M){return v[r]=0==M[2],v[f]=M[1],j.apply(v,M)}),O=x("fetchTaskAborting"),X=x("fetchTaskScheduling"),A=ce(S,"send",()=>function(v,M){if(!0===n.current[X]||v[r])return A.apply(v,M);{const R={target:v,url:v[f],isPeriodic:!1,args:M,aborted:!1},J=Me("XMLHttpRequest.send",L,R,d,z);v&&!0===v[_]&&!R.aborted&&J.state===E&&J.invoke()}}),Y=ce(S,"abort",()=>function(v,M){const R=function D(v){return v[i]}(v);if(R&&"string"==typeof R.type){if(null==R.cancelFn||R.data&&R.data.aborted)return;R.zone.cancelTask(R)}else if(!0===n.current[O])return Y.apply(v,M)})}(e);const i=x("xhrTask"),r=x("xhrSync"),c=x("xhrListener"),u=x("xhrScheduled"),f=x("xhrURL"),_=x("xhrErrorBeforeScheduled")}),Zone.__load_patch("geolocation",e=>{e.navigator&&e.navigator.geolocation&&function dt(e,n){const i=e.constructor.name;for(let r=0;r{const y=function(){return _.apply(this,Ae(arguments,i+"."+c))};return ae(y,_),y})(u)}}}(e.navigator.geolocation,["getCurrentPosition","watchPosition"])}),Zone.__load_patch("PromiseRejectionEvent",(e,n)=>{function i(r){return function(c){et(e,r).forEach(f=>{const _=e.PromiseRejectionEvent;if(_){const y=new _(r,{promise:c.promise,reason:c.rejection});f.invoke(y)}})}}e.PromiseRejectionEvent&&(n[x("unhandledPromiseRejectionHandler")]=i("unhandledrejection"),n[x("rejectionHandledHandler")]=i("rejectionhandled"))})}},we=>{we(we.s=435)}]); \ No newline at end of file +"use strict";(self.webpackChunkcoverage_app=self.webpackChunkcoverage_app||[]).push([[429],{435:(we,ue,he)=>{he(583)},583:()=>{!function(e){const n=e.performance;function i(I){n&&n.mark&&n.mark(I)}function r(I,p){n&&n.measure&&n.measure(I,p)}i("Zone");const c=e.__Zone_symbol_prefix||"__zone_symbol__";function u(I){return c+I}const f=!0===e[u("forceDuplicateZoneCheck")];if(e.Zone){if(f||"function"!=typeof e.Zone.__symbol__)throw new Error("Zone already loaded.");return e.Zone}let _=(()=>{class I{constructor(t,o){this._parent=t,this._name=o?o.name||"unnamed":"",this._properties=o&&o.properties||{},this._zoneDelegate=new T(this,this._parent&&this._parent._zoneDelegate,o)}static assertZonePatched(){if(e.Promise!==J.ZoneAwarePromise)throw new Error("Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)")}static get root(){let t=I.current;for(;t.parent;)t=t.parent;return t}static get current(){return G.zone}static get currentTask(){return te}static __load_patch(t,o,g=!1){if(J.hasOwnProperty(t)){if(!g&&f)throw Error("Already loaded patch: "+t)}else if(!e["__Zone_disable_"+t]){const P="Zone:"+t;i(P),J[t]=o(e,I,le),r(P,P)}}get parent(){return this._parent}get name(){return this._name}get(t){const o=this.getZoneWith(t);if(o)return o._properties[t]}getZoneWith(t){let o=this;for(;o;){if(o._properties.hasOwnProperty(t))return o;o=o._parent}return null}fork(t){if(!t)throw new Error("ZoneSpec required!");return this._zoneDelegate.fork(this,t)}wrap(t,o){if("function"!=typeof t)throw new Error("Expecting function got: "+t);const g=this._zoneDelegate.intercept(this,t,o),P=this;return function(){return P.runGuarded(g,this,arguments,o)}}run(t,o,g,P){G={parent:G,zone:this};try{return this._zoneDelegate.invoke(this,t,o,g,P)}finally{G=G.parent}}runGuarded(t,o=null,g,P){G={parent:G,zone:this};try{try{return this._zoneDelegate.invoke(this,t,o,g,P)}catch(K){if(this._zoneDelegate.handleError(this,K))throw K}}finally{G=G.parent}}runTask(t,o,g){if(t.zone!=this)throw new Error("A task can only be run in the zone of creation! (Creation: "+(t.zone||z).name+"; Execution: "+this.name+")");if(t.state===j&&(t.type===R||t.type===M))return;const P=t.state!=X;P&&t._transitionTo(X,O),t.runCount++;const K=te;te=t,G={parent:G,zone:this};try{t.type==M&&t.data&&!t.data.isPeriodic&&(t.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,t,o,g)}catch(l){if(this._zoneDelegate.handleError(this,l))throw l}}finally{t.state!==j&&t.state!==Y&&(t.type==R||t.data&&t.data.isPeriodic?P&&t._transitionTo(O,X):(t.runCount=0,this._updateTaskCount(t,-1),P&&t._transitionTo(j,X,j))),G=G.parent,te=K}}scheduleTask(t){if(t.zone&&t.zone!==this){let g=this;for(;g;){if(g===t.zone)throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${t.zone.name}`);g=g.parent}}t._transitionTo(q,j);const o=[];t._zoneDelegates=o,t._zone=this;try{t=this._zoneDelegate.scheduleTask(this,t)}catch(g){throw t._transitionTo(Y,q,j),this._zoneDelegate.handleError(this,g),g}return t._zoneDelegates===o&&this._updateTaskCount(t,1),t.state==q&&t._transitionTo(O,q),t}scheduleMicroTask(t,o,g,P){return this.scheduleTask(new m(v,t,o,g,P,void 0))}scheduleMacroTask(t,o,g,P,K){return this.scheduleTask(new m(M,t,o,g,P,K))}scheduleEventTask(t,o,g,P,K){return this.scheduleTask(new m(R,t,o,g,P,K))}cancelTask(t){if(t.zone!=this)throw new Error("A task can only be cancelled in the zone of creation! (Creation: "+(t.zone||z).name+"; Execution: "+this.name+")");t._transitionTo(A,O,X);try{this._zoneDelegate.cancelTask(this,t)}catch(o){throw t._transitionTo(Y,A),this._zoneDelegate.handleError(this,o),o}return this._updateTaskCount(t,-1),t._transitionTo(j,A),t.runCount=0,t}_updateTaskCount(t,o){const g=t._zoneDelegates;-1==o&&(t._zoneDelegates=null);for(let P=0;PI.hasTask(t,o),onScheduleTask:(I,p,t,o)=>I.scheduleTask(t,o),onInvokeTask:(I,p,t,o,g,P)=>I.invokeTask(t,o,g,P),onCancelTask:(I,p,t,o)=>I.cancelTask(t,o)};class T{constructor(p,t,o){this._taskCounts={microTask:0,macroTask:0,eventTask:0},this.zone=p,this._parentDelegate=t,this._forkZS=o&&(o&&o.onFork?o:t._forkZS),this._forkDlgt=o&&(o.onFork?t:t._forkDlgt),this._forkCurrZone=o&&(o.onFork?this.zone:t._forkCurrZone),this._interceptZS=o&&(o.onIntercept?o:t._interceptZS),this._interceptDlgt=o&&(o.onIntercept?t:t._interceptDlgt),this._interceptCurrZone=o&&(o.onIntercept?this.zone:t._interceptCurrZone),this._invokeZS=o&&(o.onInvoke?o:t._invokeZS),this._invokeDlgt=o&&(o.onInvoke?t:t._invokeDlgt),this._invokeCurrZone=o&&(o.onInvoke?this.zone:t._invokeCurrZone),this._handleErrorZS=o&&(o.onHandleError?o:t._handleErrorZS),this._handleErrorDlgt=o&&(o.onHandleError?t:t._handleErrorDlgt),this._handleErrorCurrZone=o&&(o.onHandleError?this.zone:t._handleErrorCurrZone),this._scheduleTaskZS=o&&(o.onScheduleTask?o:t._scheduleTaskZS),this._scheduleTaskDlgt=o&&(o.onScheduleTask?t:t._scheduleTaskDlgt),this._scheduleTaskCurrZone=o&&(o.onScheduleTask?this.zone:t._scheduleTaskCurrZone),this._invokeTaskZS=o&&(o.onInvokeTask?o:t._invokeTaskZS),this._invokeTaskDlgt=o&&(o.onInvokeTask?t:t._invokeTaskDlgt),this._invokeTaskCurrZone=o&&(o.onInvokeTask?this.zone:t._invokeTaskCurrZone),this._cancelTaskZS=o&&(o.onCancelTask?o:t._cancelTaskZS),this._cancelTaskDlgt=o&&(o.onCancelTask?t:t._cancelTaskDlgt),this._cancelTaskCurrZone=o&&(o.onCancelTask?this.zone:t._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;const g=o&&o.onHasTask;(g||t&&t._hasTaskZS)&&(this._hasTaskZS=g?o:y,this._hasTaskDlgt=t,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=p,o.onScheduleTask||(this._scheduleTaskZS=y,this._scheduleTaskDlgt=t,this._scheduleTaskCurrZone=this.zone),o.onInvokeTask||(this._invokeTaskZS=y,this._invokeTaskDlgt=t,this._invokeTaskCurrZone=this.zone),o.onCancelTask||(this._cancelTaskZS=y,this._cancelTaskDlgt=t,this._cancelTaskCurrZone=this.zone))}fork(p,t){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,p,t):new _(p,t)}intercept(p,t,o){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,p,t,o):t}invoke(p,t,o,g,P){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,p,t,o,g,P):t.apply(o,g)}handleError(p,t){return!this._handleErrorZS||this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,p,t)}scheduleTask(p,t){let o=t;if(this._scheduleTaskZS)this._hasTaskZS&&o._zoneDelegates.push(this._hasTaskDlgtOwner),o=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,p,t),o||(o=t);else if(t.scheduleFn)t.scheduleFn(t);else{if(t.type!=v)throw new Error("Task is missing scheduleFn.");d(t)}return o}invokeTask(p,t,o,g){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,p,t,o,g):t.callback.apply(o,g)}cancelTask(p,t){let o;if(this._cancelTaskZS)o=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,p,t);else{if(!t.cancelFn)throw Error("Task is not cancelable");o=t.cancelFn(t)}return o}hasTask(p,t){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,p,t)}catch(o){this.handleError(p,o)}}_updateTaskCount(p,t){const o=this._taskCounts,g=o[p],P=o[p]=g+t;if(P<0)throw new Error("More tasks executed then were scheduled.");0!=g&&0!=P||this.hasTask(this.zone,{microTask:o.microTask>0,macroTask:o.macroTask>0,eventTask:o.eventTask>0,change:p})}}class m{constructor(p,t,o,g,P,K){if(this._zone=null,this.runCount=0,this._zoneDelegates=null,this._state="notScheduled",this.type=p,this.source=t,this.data=g,this.scheduleFn=P,this.cancelFn=K,!o)throw new Error("callback is not defined");this.callback=o;const l=this;this.invoke=p===R&&g&&g.useG?m.invokeTask:function(){return m.invokeTask.call(e,l,this,arguments)}}static invokeTask(p,t,o){p||(p=this),re++;try{return p.runCount++,p.zone.runTask(p,t,o)}finally{1==re&&L(),re--}}get zone(){return this._zone}get state(){return this._state}cancelScheduleRequest(){this._transitionTo(j,q)}_transitionTo(p,t,o){if(this._state!==t&&this._state!==o)throw new Error(`${this.type} '${this.source}': can not transition to '${p}', expecting state '${t}'${o?" or '"+o+"'":""}, was '${this._state}'.`);this._state=p,p==j&&(this._zoneDelegates=null)}toString(){return this.data&&typeof this.data.handleId<"u"?this.data.handleId.toString():Object.prototype.toString.call(this)}toJSON(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}}}const S=u("setTimeout"),D=u("Promise"),Z=u("then");let E,B=[],V=!1;function d(I){if(0===re&&0===B.length)if(E||e[D]&&(E=e[D].resolve(0)),E){let p=E[Z];p||(p=E.then),p.call(E,L)}else e[S](L,0);I&&B.push(I)}function L(){if(!V){for(V=!0;B.length;){const I=B;B=[];for(let p=0;pG,onUnhandledError:F,microtaskDrainDone:F,scheduleMicroTask:d,showUncaughtError:()=>!_[u("ignoreConsoleErrorUncaughtError")],patchEventTarget:()=>[],patchOnProperties:F,patchMethod:()=>F,bindArguments:()=>[],patchThen:()=>F,patchMacroTask:()=>F,patchEventPrototype:()=>F,isIEOrEdge:()=>!1,getGlobalObjects:()=>{},ObjectDefineProperty:()=>F,ObjectGetOwnPropertyDescriptor:()=>{},ObjectCreate:()=>{},ArraySlice:()=>[],patchClass:()=>F,wrapWithCurrentZone:()=>F,filterProperties:()=>[],attachOriginToPatched:()=>F,_redefineProperty:()=>F,patchCallbacks:()=>F};let G={parent:null,zone:new _(null,null)},te=null,re=0;function F(){}r("Zone","Zone"),e.Zone=_}(typeof window<"u"&&window||typeof self<"u"&&self||global);const ue=Object.getOwnPropertyDescriptor,he=Object.defineProperty,de=Object.getPrototypeOf,Be=Object.create,ut=Array.prototype.slice,Se="addEventListener",Oe="removeEventListener",Ze=Zone.__symbol__(Se),Ie=Zone.__symbol__(Oe),se="true",ie="false",ke=Zone.__symbol__("");function Le(e,n){return Zone.current.wrap(e,n)}function Me(e,n,i,r,c){return Zone.current.scheduleMacroTask(e,n,i,r,c)}const x=Zone.__symbol__,Pe=typeof window<"u",pe=Pe?window:void 0,$=Pe&&pe||"object"==typeof self&&self||global,ht=[null];function Ae(e,n){for(let i=e.length-1;i>=0;i--)"function"==typeof e[i]&&(e[i]=Le(e[i],n+"_"+i));return e}function Fe(e){return!e||!1!==e.writable&&!("function"==typeof e.get&&typeof e.set>"u")}const Ue=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope,Re=!("nw"in $)&&typeof $.process<"u"&&"[object process]"==={}.toString.call($.process),je=!Re&&!Ue&&!(!Pe||!pe.HTMLElement),We=typeof $.process<"u"&&"[object process]"==={}.toString.call($.process)&&!Ue&&!(!Pe||!pe.HTMLElement),Ce={},qe=function(e){if(!(e=e||$.event))return;let n=Ce[e.type];n||(n=Ce[e.type]=x("ON_PROPERTY"+e.type));const i=this||e.target||$,r=i[n];let c;return je&&i===pe&&"error"===e.type?(c=r&&r.call(this,e.message,e.filename,e.lineno,e.colno,e.error),!0===c&&e.preventDefault()):(c=r&&r.apply(this,arguments),null!=c&&!c&&e.preventDefault()),c};function Xe(e,n,i){let r=ue(e,n);if(!r&&i&&ue(i,n)&&(r={enumerable:!0,configurable:!0}),!r||!r.configurable)return;const c=x("on"+n+"patched");if(e.hasOwnProperty(c)&&e[c])return;delete r.writable,delete r.value;const u=r.get,f=r.set,_=n.substr(2);let y=Ce[_];y||(y=Ce[_]=x("ON_PROPERTY"+_)),r.set=function(T){let m=this;!m&&e===$&&(m=$),m&&(m[y]&&m.removeEventListener(_,qe),f&&f.apply(m,ht),"function"==typeof T?(m[y]=T,m.addEventListener(_,qe,!1)):m[y]=null)},r.get=function(){let T=this;if(!T&&e===$&&(T=$),!T)return null;const m=T[y];if(m)return m;if(u){let S=u&&u.call(this);if(S)return r.set.call(this,S),"function"==typeof T.removeAttribute&&T.removeAttribute(n),S}return null},he(e,n,r),e[c]=!0}function Ye(e,n,i){if(n)for(let r=0;rfunction(f,_){const y=i(f,_);return y.cbIdx>=0&&"function"==typeof _[y.cbIdx]?Me(y.name,_[y.cbIdx],y,c):u.apply(f,_)})}function ae(e,n){e[x("OriginalDelegate")]=n}let $e=!1,He=!1;function mt(){if($e)return He;$e=!0;try{const e=pe.navigator.userAgent;(-1!==e.indexOf("MSIE ")||-1!==e.indexOf("Trident/")||-1!==e.indexOf("Edge/"))&&(He=!0)}catch{}return He}Zone.__load_patch("ZoneAwarePromise",(e,n,i)=>{const r=Object.getOwnPropertyDescriptor,c=Object.defineProperty,f=i.symbol,_=[],y=!0===e[f("DISABLE_WRAPPING_UNCAUGHT_PROMISE_REJECTION")],T=f("Promise"),m=f("then");i.onUnhandledError=l=>{if(i.showUncaughtError()){const s=l&&l.rejection;s?console.error("Unhandled Promise rejection:",s instanceof Error?s.message:s,"; Zone:",l.zone.name,"; Task:",l.task&&l.task.source,"; Value:",s,s instanceof Error?s.stack:void 0):console.error(l)}},i.microtaskDrainDone=()=>{for(;_.length;){const l=_.shift();try{l.zone.runGuarded(()=>{throw l.throwOriginal?l.rejection:l})}catch(s){Z(s)}}};const D=f("unhandledPromiseRejectionHandler");function Z(l){i.onUnhandledError(l);try{const s=n[D];"function"==typeof s&&s.call(this,l)}catch{}}function B(l){return l&&l.then}function V(l){return l}function E(l){return t.reject(l)}const d=f("state"),L=f("value"),z=f("finally"),j=f("parentPromiseValue"),q=f("parentPromiseState"),X=null,A=!0,Y=!1;function M(l,s){return a=>{try{G(l,s,a)}catch(h){G(l,!1,h)}}}const le=f("currentTaskTrace");function G(l,s,a){const h=function(){let l=!1;return function(a){return function(){l||(l=!0,a.apply(null,arguments))}}}();if(l===a)throw new TypeError("Promise resolved with itself");if(l[d]===X){let w=null;try{("object"==typeof a||"function"==typeof a)&&(w=a&&a.then)}catch(C){return h(()=>{G(l,!1,C)})(),l}if(s!==Y&&a instanceof t&&a.hasOwnProperty(d)&&a.hasOwnProperty(L)&&a[d]!==X)re(a),G(l,a[d],a[L]);else if(s!==Y&&"function"==typeof w)try{w.call(a,h(M(l,s)),h(M(l,!1)))}catch(C){h(()=>{G(l,!1,C)})()}else{l[d]=s;const C=l[L];if(l[L]=a,l[z]===z&&s===A&&(l[d]=l[q],l[L]=l[j]),s===Y&&a instanceof Error){const k=n.currentTask&&n.currentTask.data&&n.currentTask.data.__creationTrace__;k&&c(a,le,{configurable:!0,enumerable:!1,writable:!0,value:k})}for(let k=0;k{try{const b=l[L],N=!!a&&z===a[z];N&&(a[j]=b,a[q]=C);const H=s.run(k,void 0,N&&k!==E&&k!==V?[]:[b]);G(a,!0,H)}catch(b){G(a,!1,b)}},a)}const p=function(){};class t{static toString(){return"function ZoneAwarePromise() { [native code] }"}static resolve(s){return G(new this(null),A,s)}static reject(s){return G(new this(null),Y,s)}static race(s){let a,h,w=new this((b,N)=>{a=b,h=N});function C(b){a(b)}function k(b){h(b)}for(let b of s)B(b)||(b=this.resolve(b)),b.then(C,k);return w}static all(s){return t.allWithCallback(s)}static allSettled(s){return(this&&this.prototype instanceof t?this:t).allWithCallback(s,{thenCallback:h=>({status:"fulfilled",value:h}),errorCallback:h=>({status:"rejected",reason:h})})}static allWithCallback(s,a){let h,w,C=new this((H,U)=>{h=H,w=U}),k=2,b=0;const N=[];for(let H of s){B(H)||(H=this.resolve(H));const U=b;try{H.then(Q=>{N[U]=a?a.thenCallback(Q):Q,k--,0===k&&h(N)},Q=>{a?(N[U]=a.errorCallback(Q),k--,0===k&&h(N)):w(Q)})}catch(Q){w(Q)}k++,b++}return k-=2,0===k&&h(N),C}constructor(s){const a=this;if(!(a instanceof t))throw new Error("Must be an instanceof Promise.");a[d]=X,a[L]=[];try{s&&s(M(a,A),M(a,Y))}catch(h){G(a,!1,h)}}get[Symbol.toStringTag](){return"Promise"}get[Symbol.species](){return t}then(s,a){let h=this.constructor[Symbol.species];(!h||"function"!=typeof h)&&(h=this.constructor||t);const w=new h(p),C=n.current;return this[d]==X?this[L].push(C,w,s,a):F(this,C,w,s,a),w}catch(s){return this.then(null,s)}finally(s){let a=this.constructor[Symbol.species];(!a||"function"!=typeof a)&&(a=t);const h=new a(p);h[z]=z;const w=n.current;return this[d]==X?this[L].push(w,h,s,s):F(this,w,h,s,s),h}}t.resolve=t.resolve,t.reject=t.reject,t.race=t.race,t.all=t.all;const o=e[T]=e.Promise;e.Promise=t;const g=f("thenPatched");function P(l){const s=l.prototype,a=r(s,"then");if(a&&(!1===a.writable||!a.configurable))return;const h=s.then;s[m]=h,l.prototype.then=function(w,C){return new t((b,N)=>{h.call(this,b,N)}).then(w,C)},l[g]=!0}return i.patchThen=P,o&&(P(o),ce(e,"fetch",l=>function K(l){return function(s,a){let h=l.apply(s,a);if(h instanceof t)return h;let w=h.constructor;return w[g]||P(w),h}}(l))),Promise[n.__symbol__("uncaughtPromiseErrors")]=_,t}),Zone.__load_patch("toString",e=>{const n=Function.prototype.toString,i=x("OriginalDelegate"),r=x("Promise"),c=x("Error"),u=function(){if("function"==typeof this){const T=this[i];if(T)return"function"==typeof T?n.call(T):Object.prototype.toString.call(T);if(this===Promise){const m=e[r];if(m)return n.call(m)}if(this===Error){const m=e[c];if(m)return n.call(m)}}return n.call(this)};u[i]=n,Function.prototype.toString=u;const f=Object.prototype.toString;Object.prototype.toString=function(){return"function"==typeof Promise&&this instanceof Promise?"[object Promise]":f.call(this)}});let me=!1;if(typeof window<"u")try{const e=Object.defineProperty({},"passive",{get:function(){me=!0}});window.addEventListener("test",e,e),window.removeEventListener("test",e,e)}catch{me=!1}const Et={useG:!0},ee={},Ke={},Je=new RegExp("^"+ke+"(\\w+)(true|false)$"),xe=x("propagationStopped");function Qe(e,n){const i=(n?n(e):e)+ie,r=(n?n(e):e)+se,c=ke+i,u=ke+r;ee[e]={},ee[e][ie]=c,ee[e][se]=u}function Tt(e,n,i){const r=i&&i.add||Se,c=i&&i.rm||Oe,u=i&&i.listeners||"eventListeners",f=i&&i.rmAll||"removeAllListeners",_=x(r),y="."+r+":",T="prependListener",m="."+T+":",S=function(E,d,L){if(E.isRemoved)return;const z=E.callback;"object"==typeof z&&z.handleEvent&&(E.callback=q=>z.handleEvent(q),E.originalDelegate=z),E.invoke(E,d,[L]);const j=E.options;j&&"object"==typeof j&&j.once&&d[c].call(d,L.type,E.originalDelegate?E.originalDelegate:E.callback,j)},D=function(E){if(!(E=E||e.event))return;const d=this||E.target||e,L=d[ee[E.type][ie]];if(L)if(1===L.length)S(L[0],d,E);else{const z=L.slice();for(let j=0;jfunction(c,u){c[xe]=!0,r&&r.apply(c,u)})}function yt(e,n,i,r,c){const u=Zone.__symbol__(r);if(n[u])return;const f=n[u]=n[r];n[r]=function(_,y,T){return y&&y.prototype&&c.forEach(function(m){const S=`${i}.${r}::`+m,D=y.prototype;if(D.hasOwnProperty(m)){const Z=e.ObjectGetOwnPropertyDescriptor(D,m);Z&&Z.value?(Z.value=e.wrapWithCurrentZone(Z.value,S),e._redefineProperty(y.prototype,m,Z)):D[m]&&(D[m]=e.wrapWithCurrentZone(D[m],S))}else D[m]&&(D[m]=e.wrapWithCurrentZone(D[m],S))}),f.call(n,_,y,T)},e.attachOriginToPatched(n[r],f)}const Ve=["absolutedeviceorientation","afterinput","afterprint","appinstalled","beforeinstallprompt","beforeprint","beforeunload","devicelight","devicemotion","deviceorientation","deviceorientationabsolute","deviceproximity","hashchange","languagechange","message","mozbeforepaint","offline","online","paint","pageshow","pagehide","popstate","rejectionhandled","storage","unhandledrejection","unload","userproximity","vrdisplayconnected","vrdisplaydisconnected","vrdisplaypresentchange"],wt=["encrypted","waitingforkey","msneedkey","mozinterruptbegin","mozinterruptend"],tt=["load"],nt=["blur","error","focus","load","resize","scroll","messageerror"],Dt=["bounce","finish","start"],rt=["loadstart","progress","abort","error","load","progress","timeout","loadend","readystatechange"],Ee=["upgradeneeded","complete","abort","success","error","blocked","versionchange","close"],St=["close","error","open","message"],Ot=["error","message"],Te=["abort","animationcancel","animationend","animationiteration","auxclick","beforeinput","blur","cancel","canplay","canplaythrough","change","compositionstart","compositionupdate","compositionend","cuechange","click","close","contextmenu","curechange","dblclick","drag","dragend","dragenter","dragexit","dragleave","dragover","drop","durationchange","emptied","ended","error","focus","focusin","focusout","gotpointercapture","input","invalid","keydown","keypress","keyup","load","loadstart","loadeddata","loadedmetadata","lostpointercapture","mousedown","mouseenter","mouseleave","mousemove","mouseout","mouseover","mouseup","mousewheel","orientationchange","pause","play","playing","pointercancel","pointerdown","pointerenter","pointerleave","pointerlockchange","mozpointerlockchange","webkitpointerlockerchange","pointerlockerror","mozpointerlockerror","webkitpointerlockerror","pointermove","pointout","pointerover","pointerup","progress","ratechange","reset","resize","scroll","seeked","seeking","select","selectionchange","selectstart","show","sort","stalled","submit","suspend","timeupdate","volumechange","touchcancel","touchmove","touchstart","touchend","transitioncancel","transitionend","waiting","wheel"].concat(["webglcontextrestored","webglcontextlost","webglcontextcreationerror"],["autocomplete","autocompleteerror"],["toggle"],["afterscriptexecute","beforescriptexecute","DOMContentLoaded","freeze","fullscreenchange","mozfullscreenchange","webkitfullscreenchange","msfullscreenchange","fullscreenerror","mozfullscreenerror","webkitfullscreenerror","msfullscreenerror","readystatechange","visibilitychange","resume"],Ve,["beforecopy","beforecut","beforepaste","copy","cut","paste","dragstart","loadend","animationstart","search","transitionrun","transitionstart","webkitanimationend","webkitanimationiteration","webkitanimationstart","webkittransitionend"],["activate","afterupdate","ariarequest","beforeactivate","beforedeactivate","beforeeditfocus","beforeupdate","cellchange","controlselect","dataavailable","datasetchanged","datasetcomplete","errorupdate","filterchange","layoutcomplete","losecapture","move","moveend","movestart","propertychange","resizeend","resizestart","rowenter","rowexit","rowsdelete","rowsinserted","command","compassneedscalibration","deactivate","help","mscontentzoom","msmanipulationstatechanged","msgesturechange","msgesturedoubletap","msgestureend","msgesturehold","msgesturestart","msgesturetap","msgotpointercapture","msinertiastart","mslostpointercapture","mspointercancel","mspointerdown","mspointerenter","mspointerhover","mspointerleave","mspointermove","mspointerout","mspointerover","mspointerup","pointerout","mssitemodejumplistitemremoved","msthumbnailclick","stop","storagecommit"]);function ot(e,n,i){if(!i||0===i.length)return n;const r=i.filter(u=>u.target===e);if(!r||0===r.length)return n;const c=r[0].ignoreProperties;return n.filter(u=>-1===c.indexOf(u))}function W(e,n,i,r){e&&Ye(e,ot(e,n,i),r)}Zone.__load_patch("util",(e,n,i)=>{i.patchOnProperties=Ye,i.patchMethod=ce,i.bindArguments=Ae,i.patchMacroTask=_t;const r=n.__symbol__("BLACK_LISTED_EVENTS"),c=n.__symbol__("UNPATCHED_EVENTS");e[c]&&(e[r]=e[c]),e[r]&&(n[r]=n[c]=e[r]),i.patchEventPrototype=gt,i.patchEventTarget=Tt,i.isIEOrEdge=mt,i.ObjectDefineProperty=he,i.ObjectGetOwnPropertyDescriptor=ue,i.ObjectCreate=Be,i.ArraySlice=ut,i.patchClass=ve,i.wrapWithCurrentZone=Le,i.filterProperties=ot,i.attachOriginToPatched=ae,i._redefineProperty=Object.defineProperty,i.patchCallbacks=yt,i.getGlobalObjects=()=>({globalSources:Ke,zoneSymbolEventNames:ee,eventNames:Te,isBrowser:je,isMix:We,isNode:Re,TRUE_STR:se,FALSE_STR:ie,ZONE_SYMBOL_PREFIX:ke,ADD_EVENT_LISTENER_STR:Se,REMOVE_EVENT_LISTENER_STR:Oe})});const Ne=x("zoneTask");function ge(e,n,i,r){let c=null,u=null;i+=r;const f={};function _(T){const m=T.data;return m.args[0]=function(){return T.invoke.apply(this,arguments)},m.handleId=c.apply(e,m.args),T}function y(T){return u.call(e,T.data.handleId)}c=ce(e,n+=r,T=>function(m,S){if("function"==typeof S[0]){const D={isPeriodic:"Interval"===r,delay:"Timeout"===r||"Interval"===r?S[1]||0:void 0,args:S},Z=S[0];S[0]=function(){try{return Z.apply(this,arguments)}finally{D.isPeriodic||("number"==typeof D.handleId?delete f[D.handleId]:D.handleId&&(D.handleId[Ne]=null))}};const B=Me(n,S[0],D,_,y);if(!B)return B;const V=B.data.handleId;return"number"==typeof V?f[V]=B:V&&(V[Ne]=B),V&&V.ref&&V.unref&&"function"==typeof V.ref&&"function"==typeof V.unref&&(B.ref=V.ref.bind(V),B.unref=V.unref.bind(V)),"number"==typeof V||V?V:B}return T.apply(e,S)}),u=ce(e,i,T=>function(m,S){const D=S[0];let Z;"number"==typeof D?Z=f[D]:(Z=D&&D[Ne],Z||(Z=D)),Z&&"string"==typeof Z.type?"notScheduled"!==Z.state&&(Z.cancelFn&&Z.data.isPeriodic||0===Z.runCount)&&("number"==typeof D?delete f[D]:D&&(D[Ne]=null),Z.zone.cancelTask(Z)):T.apply(e,S)})}Zone.__load_patch("legacy",e=>{const n=e[Zone.__symbol__("legacyPatch")];n&&n()}),Zone.__load_patch("queueMicrotask",(e,n,i)=>{i.patchMethod(e,"queueMicrotask",r=>function(c,u){n.current.scheduleMicroTask("queueMicrotask",u[0])})}),Zone.__load_patch("timers",e=>{const n="set",i="clear";ge(e,n,i,"Timeout"),ge(e,n,i,"Interval"),ge(e,n,i,"Immediate")}),Zone.__load_patch("requestAnimationFrame",e=>{ge(e,"request","cancel","AnimationFrame"),ge(e,"mozRequest","mozCancel","AnimationFrame"),ge(e,"webkitRequest","webkitCancel","AnimationFrame")}),Zone.__load_patch("blocking",(e,n)=>{const i=["alert","prompt","confirm"];for(let r=0;rfunction(y,T){return n.current.run(u,e,T,_)})}),Zone.__load_patch("EventTarget",(e,n,i)=>{(function Mt(e,n){n.patchEventPrototype(e,n)})(e,i),function Lt(e,n){if(Zone[n.symbol("patchEventTarget")])return;const{eventNames:i,zoneSymbolEventNames:r,TRUE_STR:c,FALSE_STR:u,ZONE_SYMBOL_PREFIX:f}=n.getGlobalObjects();for(let y=0;y{ve("MutationObserver"),ve("WebKitMutationObserver")}),Zone.__load_patch("IntersectionObserver",(e,n,i)=>{ve("IntersectionObserver")}),Zone.__load_patch("FileReader",(e,n,i)=>{ve("FileReader")}),Zone.__load_patch("on_property",(e,n,i)=>{!function Zt(e,n){if(Re&&!We||Zone[e.symbol("patchEvents")])return;const i=typeof WebSocket<"u",r=n.__Zone_ignore_on_properties;if(je){const f=window,_=function pt(){try{const e=pe.navigator.userAgent;if(-1!==e.indexOf("MSIE ")||-1!==e.indexOf("Trident/"))return!0}catch{}return!1}()?[{target:f,ignoreProperties:["error"]}]:[];W(f,Te.concat(["messageerror"]),r&&r.concat(_),de(f)),W(Document.prototype,Te,r),typeof f.SVGElement<"u"&&W(f.SVGElement.prototype,Te,r),W(Element.prototype,Te,r),W(HTMLElement.prototype,Te,r),W(HTMLMediaElement.prototype,wt,r),W(HTMLFrameSetElement.prototype,Ve.concat(nt),r),W(HTMLBodyElement.prototype,Ve.concat(nt),r),W(HTMLFrameElement.prototype,tt,r),W(HTMLIFrameElement.prototype,tt,r);const y=f.HTMLMarqueeElement;y&&W(y.prototype,Dt,r);const T=f.Worker;T&&W(T.prototype,Ot,r)}const c=n.XMLHttpRequest;c&&W(c.prototype,rt,r);const u=n.XMLHttpRequestEventTarget;u&&W(u&&u.prototype,rt,r),typeof IDBIndex<"u"&&(W(IDBIndex.prototype,Ee,r),W(IDBRequest.prototype,Ee,r),W(IDBOpenDBRequest.prototype,Ee,r),W(IDBDatabase.prototype,Ee,r),W(IDBTransaction.prototype,Ee,r),W(IDBCursor.prototype,Ee,r)),i&&W(WebSocket.prototype,St,r)}(i,e)}),Zone.__load_patch("customElements",(e,n,i)=>{!function It(e,n){const{isBrowser:i,isMix:r}=n.getGlobalObjects();(i||r)&&e.customElements&&"customElements"in e&&n.patchCallbacks(n,e.customElements,"customElements","define",["connectedCallback","disconnectedCallback","adoptedCallback","attributeChangedCallback"])}(e,i)}),Zone.__load_patch("XHR",(e,n)=>{!function y(T){const m=T.XMLHttpRequest;if(!m)return;const S=m.prototype;let Z=S[Ze],B=S[Ie];if(!Z){const v=T.XMLHttpRequestEventTarget;if(v){const M=v.prototype;Z=M[Ze],B=M[Ie]}}const V="readystatechange",E="scheduled";function d(v){const M=v.data,R=M.target;R[u]=!1,R[_]=!1;const J=R[c];Z||(Z=R[Ze],B=R[Ie]),J&&B.call(R,V,J);const le=R[c]=()=>{if(R.readyState===R.DONE)if(!M.aborted&&R[u]&&v.state===E){const te=R[n.__symbol__("loadfalse")];if(0!==R.status&&te&&te.length>0){const re=v.invoke;v.invoke=function(){const F=R[n.__symbol__("loadfalse")];for(let I=0;Ifunction(v,M){return v[r]=0==M[2],v[f]=M[1],j.apply(v,M)}),O=x("fetchTaskAborting"),X=x("fetchTaskScheduling"),A=ce(S,"send",()=>function(v,M){if(!0===n.current[X]||v[r])return A.apply(v,M);{const R={target:v,url:v[f],isPeriodic:!1,args:M,aborted:!1},J=Me("XMLHttpRequest.send",L,R,d,z);v&&!0===v[_]&&!R.aborted&&J.state===E&&J.invoke()}}),Y=ce(S,"abort",()=>function(v,M){const R=function D(v){return v[i]}(v);if(R&&"string"==typeof R.type){if(null==R.cancelFn||R.data&&R.data.aborted)return;R.zone.cancelTask(R)}else if(!0===n.current[O])return Y.apply(v,M)})}(e);const i=x("xhrTask"),r=x("xhrSync"),c=x("xhrListener"),u=x("xhrScheduled"),f=x("xhrURL"),_=x("xhrErrorBeforeScheduled")}),Zone.__load_patch("geolocation",e=>{e.navigator&&e.navigator.geolocation&&function dt(e,n){const i=e.constructor.name;for(let r=0;r{const y=function(){return _.apply(this,Ae(arguments,i+"."+c))};return ae(y,_),y})(u)}}}(e.navigator.geolocation,["getCurrentPosition","watchPosition"])}),Zone.__load_patch("PromiseRejectionEvent",(e,n)=>{function i(r){return function(c){et(e,r).forEach(f=>{const _=e.PromiseRejectionEvent;if(_){const y=new _(r,{promise:c.promise,reason:c.rejection});f.invoke(y)}})}}e.PromiseRejectionEvent&&(n[x("unhandledPromiseRejectionHandler")]=i("unhandledrejection"),n[x("rejectionHandledHandler")]=i("rejectionhandled"))})}},we=>{we(we.s=435)}]); \ No newline at end of file diff --git a/src/ReportGenerator.DotnetGlobalTool/ProgramIcon.ico b/src/ReportGenerator.DotnetGlobalTool/ProgramIcon.ico index 1d455f70..69bfd79d 100644 Binary files a/src/ReportGenerator.DotnetGlobalTool/ProgramIcon.ico and b/src/ReportGenerator.DotnetGlobalTool/ProgramIcon.ico differ diff --git a/src/ReportGenerator.MSBuild/AssemblyResolver.cs b/src/ReportGenerator.MSBuild/AssemblyResolver.cs new file mode 100644 index 00000000..8e5aa149 --- /dev/null +++ b/src/ReportGenerator.MSBuild/AssemblyResolver.cs @@ -0,0 +1,108 @@ +using System; +using System.Diagnostics; +using System.IO; +using System.Reflection; + +namespace Palmmedia.ReportGenerator.MSBuild +{ + /// + /// Required for full .NET framework 4.x + /// See https://github.com/dotnet/msbuild/issues/1309 + /// + internal static class AssemblyResolver + { + /// + /// Initializes static members of the class. + /// + static AssemblyResolver() + { + AppDomain.CurrentDomain.AssemblyResolve += CurrentDomain_AssemblyResolve; + } + + /// + /// Call to enable the assembly resolver for the current AppDomain. + /// + public static void Enable() + { + // Intentionally empty. This is just meant to ensure the static constructor has run. + } + + private static Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args) + { + // apply any existing policy + AssemblyName referenceName = new AssemblyName(AppDomain.CurrentDomain.ApplyPolicy(args.Name)); + + string fileName = referenceName.Name + ".dll"; + + // look next to requesting assembly + string assemblyPath = args.RequestingAssembly?.Location; + string probingPath; + Assembly assm; + + if (!string.IsNullOrEmpty(assemblyPath)) + { + probingPath = Path.Combine(Path.GetDirectoryName(assemblyPath), fileName); + Debug.WriteLine($"Considering {probingPath} based on RequestingAssembly"); + if (Probe(probingPath, referenceName.Version, out assm)) + { + return assm; + } + } + + // look next to the executing assembly + assemblyPath = Assembly.GetExecutingAssembly().Location; + if (!string.IsNullOrEmpty(assemblyPath)) + { + probingPath = Path.Combine(Path.GetDirectoryName(assemblyPath), fileName); + + Debug.WriteLine($"Considering {probingPath} based on ExecutingAssembly"); + if (Probe(probingPath, referenceName.Version, out assm)) + { + return assm; + } + } + + // look in AppDomain base directory + probingPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, fileName); + Debug.WriteLine($"Considering {probingPath} based on BaseDirectory"); + if (Probe(probingPath, referenceName.Version, out assm)) + { + return assm; + } + + // look in current directory + Debug.WriteLine($"Considering {fileName}"); + if (Probe(fileName, referenceName.Version, out assm)) + { + return assm; + } + + return null; + } + + /// + /// Considers a path to load for satisfying an assembly ref and loads it + /// if the file exists and version is sufficient. + /// + /// Path to consider for load + /// Minimum version to consider + /// loaded assembly + /// true if assembly was loaded + private static bool Probe(string filePath, Version minimumVersion, out Assembly assembly) + { + if (File.Exists(filePath)) + { + AssemblyName name = AssemblyName.GetAssemblyName(filePath); + + if (name.Version >= minimumVersion) + { + assembly = Assembly.Load(name); + return true; + } + } + + assembly = null; + return false; + } + } +} diff --git a/src/ReportGenerator.MSBuild/ReportGenerator.MSBuild.csproj b/src/ReportGenerator.MSBuild/ReportGenerator.MSBuild.csproj index 8c46be5b..1f546821 100644 --- a/src/ReportGenerator.MSBuild/ReportGenerator.MSBuild.csproj +++ b/src/ReportGenerator.MSBuild/ReportGenerator.MSBuild.csproj @@ -10,7 +10,7 @@ - + diff --git a/src/ReportGenerator.MSBuild/ReportGenerator.cs b/src/ReportGenerator.MSBuild/ReportGenerator.cs index 1ec357d9..611e9e42 100644 --- a/src/ReportGenerator.MSBuild/ReportGenerator.cs +++ b/src/ReportGenerator.MSBuild/ReportGenerator.cs @@ -142,6 +142,8 @@ public class ReportGenerator : Task, ITask /// public override bool Execute() { + AssemblyResolver.Enable(); + var reportFilePatterns = Array.Empty(); var targetDirectory = TargetDirectory; var sourceDirectories = Array.Empty();
{{translations.coverage}}{{translations.branchCoverage}}{{translations.methodCoverage}}{{translations.coverage}}{{translations.branchCoverage}}{{translations.methodCoverage}}{{translations.metrics}}
{{translations.name}}{{translations.covered}}{{translations.uncovered}}{{translations.coverable}}{{translations.total}} + {{translations.percentage}}{{translations.covered}}{{translations.total}} + {{translations.percentage}}{{translations.covered}}{{translations.total}} + {{translations.percentage}} + {{metric.name}} +
{0} {0} {0} {0} {0} {0}