1var f=Object.defineProperty;var g$1=Object.defineProperties;var h=Object.getOwnPropertyDescriptors;var d=Object.getOwnPropertySymbols;var i=Object.prototype.hasOwnProperty;var j=Object.prototype.propertyIsEnumerable;var e=(c,a,b)=>a in c?f(c,a,{enumerable:!0,configurable:!0,writable:!0,value:b}):c[a]=b;var k$1=(c,a)=>{for(var b in a||={})i.call(a,b)&&e(c,b,a[b]);if(d)for(var b of d(a))j.call(a,b)&&e(c,b,a[b]);return c};var l=(c,a)=>g$1(c,h(a));var Ue=null;var ns=!1;var qn=1;var ME=null;var Me=Symbol(`SIGNAL`);function T(e){let t=Ue;return Ue=e,t}function rs(){return Ue}var yn={version:0,lastCleanEpoch:0,dirty:!1,producers:void 0,producersTail:void 0,consumers:void 0,consumersTail:void 0,recomputing:!1,consumerAllowSignalWrites:!1,consumerIsAlwaysLive:!1,kind:`unknown`,producerMustRecompute:()=>!1,producerRecomputeValue:()=>{},consumerMarkedDirty:()=>{},consumerOnSignalRead:()=>{}};function Yn(e){if(ns)throw new Error(``);if(Ue===null)return;Ue.consumerOnSignalRead(e);let t=Ue.producersTail;if(t!==void 0&&t.producer===e)return;let n,r=Ue.recomputing;if(r&&(n=t!==void 0?t.nextProducer:Ue.producers,n!==void 0&&n.producer===e)){Ue.producersTail=n,n.lastReadVersion=e.version,n.knownValidAtEpoch=qn;return}let o=e.consumersTail;if(o!==void 0&&o.consumer===Ue&&(!r||o.knownValidAtEpoch===qn))return;let i=Fr(Ue),s={producer:e,consumer:Ue,nextProducer:n,prevConsumer:void 0,knownValidAtEpoch:qn,lastReadVersion:e.version,nextConsumer:void 0};Ue.producersTail=s,t!==void 0?t.nextProducer=s:Ue.producers=s,i&&Zp(e,s)}function zp(){qn++}function Kn(e){if(!(Fr(e)&&!e.dirty)&&!(!e.dirty&&e.lastCleanEpoch===qn)){if(!e.producerMustRecompute(e)&&!ko(e)){jr(e);return}e.producerRecomputeValue(e),jr(e)}}function hl(e){if(e.consumers===void 0)return;let t=ns;ns=!0;try{for(let n=e.consumers;n!==void 0;n=n.nextConsumer){let r=n.consumer;r.dirty||NE(r)}}finally{ns=t}}function gl(){return Ue?.consumerAllowSignalWrites!==!1}function NE(e){e.dirty=!0,hl(e),e.consumerMarkedDirty?.(e)}function jr(e){e.dirty=!1,e.lastCleanEpoch=qn}function bn(e){return e&&Wp(e),T(e)}function Wp(e){if(e.producersTail?.knownValidAtEpoch===qn){let t=e.producers;for(;t!==void 0;)t.knownValidAtEpoch=null,t=t.nextProducer}e.producersTail=void 0,e.recomputing=!0}function Qn(e,t){T(t),e&&qp(e)}function qp(e){e.recomputing=!1;let t=e.producersTail,n=t!==void 0?t.nextProducer:e.producers;if(n!==void 0){if(Fr(e))do n=ml(n);while(n!==void 0);t!==void 0?t.nextProducer=void 0:e.producers=void 0}}function ko(e){for(let t=e.producers;t!==void 0;t=t.nextProducer){let n=t.producer,r=t.lastReadVersion;if(r!==n.version||(Kn(n),r!==n.version))return!0}return!1}function Jn(e){if(Fr(e)){let t=e.producers;for(;t!==void 0;)t=ml(t)}e.producers=void 0,e.producersTail=void 0,e.consumers=void 0,e.consumersTail=void 0}function Zp(e,t){let n=e.consumersTail,r=Fr(e);if(n!==void 0?(t.nextConsumer=n.nextConsumer,n.nextConsumer=t):(t.nextConsumer=void 0,e.consumers=t),t.prevConsumer=n,e.consumersTail=t,!r)for(let o=e.producers;o!==void 0;o=o.nextProducer)Zp(o.producer,o)}function ml(e){let t=e.producer,n=e.nextProducer,r=e.nextConsumer,o=e.prevConsumer;if(e.nextConsumer=void 0,e.prevConsumer=void 0,r!==void 0?r.prevConsumer=o:t.consumersTail=o,o!==void 0)
vendor: 4,438 bytes, lines 1-3
1o.nextConsumer=r;else if(t.consumers=r,!Fr(t)){let i=t.producers;for(;i!==void 0;)i=ml(i)}return n}function Fr(e){return e.consumerIsAlwaysLive||e.consumers!==void 0}function Po(e){ME?.(e)}function Lo(e,t){return Object.is(e,t)}function os(e,t){let n=Object.create(AE);n.computation=e,t!==void 0&&(n.equal=t);let r=()=>{if(Kn(n),Yn(n),n.value===jt)throw n.error;return n.value};return r[Me]=n,Po(n),r}var Zn=Symbol(`UNSET`);var Gn=Symbol(`COMPUTING`);var jt=Symbol(`ERRORED`);var AE=l(k$1({},yn),{value:Zn,dirty:!0,error:null,equal:Lo,kind:`computed`,producerMustRecompute(e){return e.value===Zn||e.value===Gn},producerRecomputeValue(e){if(e.value===Gn)throw new Error(``);let t=e.value;e.value=Gn;let n=bn(e),r,o=!1;try{r=e.computation(),T(null),o=t!==Zn&&t!==jt&&r!==jt&&e.equal(t,r)}catch(i){r=jt,e.error=i}finally{Qn(e,n)}if(o){e.value=t;return}e.value=r,e.version++}});function RE(){throw new Error}var Gp=RE;function Yp(e){Gp(e)}function vl(e){Gp=e}var xE=null;function yl(e,t){let n=Object.create(ss);n.value=e,t!==void 0&&(n.equal=t);let r=()=>Kp(n);return r[Me]=n,Po(n),[r,s=>Xn(n,s),s=>is(n,s)]}function Kp(e){return Yn(e),e.value}function Xn(e,t){gl()||Yp(e),e.equal(e.value,t)||(e.value=t,OE(e))}function is(e,t){gl()||Yp(e),Xn(e,t(e.value))}var ss=l(k$1({},yn),{equal:Lo,value:void 0,kind:`signal`});function OE(e){e.version++,zp(),hl(e),xE?.(e)}var bl=l(k$1({},yn),{consumerIsAlwaysLive:!0,consumerAllowSignalWrites:!0,dirty:!0,kind:`effect`});function El(e){if(e.dirty=!1,e.version>0&&!ko(e))return;e.version++;let t=bn(e);try{e.cleanup(),e.fn()}finally{Qn(e,t)}}var wl;function as(){return wl}function Ft(e){let t=wl;return wl=e,t}var Qp=Symbol(`NotFound`);function Ur(e){return e===Qp||e?.name===`ɵNotFound`}function Il(e,t,n){let r=Object.create(kE);r.source=e,r.computation=t,n!=null&&(r.equal=n);let i=()=>{if(Kn(r),Yn(r),r.value===jt)throw r.error;return r.value};return i[Me]=r,Po(r),i}function Sl(e,t){Kn(e),Xn(e,t),jr(e)}function Jp(e,t){if(Kn(e),e.value===jt)throw e.error;is(e,t),jr(e)}var kE=l(k$1({},yn),{value:Zn,dirty:!0,error:null,equal:Lo,kind:`linkedSignal`,producerMustRecompute(e){return e.value===Zn||e.value===Gn},producerRecomputeValue(e){if(e.value===Gn)throw new Error(``);let t=e.value;e.value=Gn;let n=bn(e),r,o=!1;try{let i=e.source(),s=t!==Zn&&t!==jt,a=s?{source:e.sourceValue,value:t}:void 0;r=e.computation(i,a),e.sourceValue=i,T(null),o=s&&r!==jt&&e.equal(t,r)}catch(i){r=jt,e.error=i}finally{Qn(e,n)}if(o){e.value=t;return}e.value=r,e.version++}});function Xp(e){let t=T(null);try{return e()}finally{T(t)}}function A(e){return typeof e==`function`}function Hr(e){let n=e(r=>{Error.call(r),r.stack=new Error().stack});return n.prototype=Object.create(Error.prototype),n.prototype.constructor=n,n}var cs=Hr(e=>function(n){e(this),this.message=n?`${n.length} errors occurred during unsubscription: 2${n.map((r,o)=>`${o+1}) ${r.toString()}`).join(` 3 `)}`:``,this.name=`UnsubscriptionError`,this.errors=n});function jo(e,t){if(e){let n=e.indexOf(t);0<=n&&e.splice(n,1)}}var Ne=class e{constructor(t){this.initialTeardown=t,this.closed=!1,this._parentage=null,this._finalizers=null}unsubscribe(){let t;if(!this.closed){this.closed=!0;let{_parentage:n}=this;if(n)if(this._parentage=null,Array.isArray(n))for(let i of n)i.remove(this);else n.remove(this);let{initialTeardown:r}=this;if(A(r))try{r()}catch(i){t=i instanceof cs?i.errors:[i]}let{_finalizers:o}=this;if(o){this._finalizers=null;for(let i of o)try{eh(i)}catch(s){t=t??[],s instanceof cs?t=[...t,...s.errors]:t.push(s)}}if(t)throw new cs(t)}}add(t){var n;if(t&&t!==this)if(this.closed)eh(t);else{if(t instanceof e){if(t.closed||t._hasParent(this))return;t._addParent(this)}(this._finalizers=(n=this._finalizers)!==null&&n!==void 0?n:[]).push(t)}}_hasParent(t){let{_parentage:n}=this;return n===t||Array.isArray(n)&&n.includes(t)}_addParent(t){let{_parentage:n}=this;this._parentage=Array.isArray(n)?(n.push(t),n):n?[n,t]:t}_removeParent(t){let{_parentage:n}=this;n===t?this._parentage=null:Array.isArray(n)&&jo(n,t)}remove(t){let{_finalizers:n}=this;n&&jo(n,t),t instanceof e&&t._removeParent(this)}};Ne.EMPTY=(()=>{let e=new Ne;return e.closed=!0,e})();var Dl=Ne.EMPTY;function ls(e){return e instanceof Ne||e&&`closed`in e&&A(e.remove)&&A(e.add)&&A(e.unsubscribe)}function eh(e){A(e)?e():e.unsubscribe()}var It={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNext
vendor: 5,804 bytes, line 3
3Context:!1};var Vr={setTimeout(e,t,...n){let{delegate:r}=Vr;return r?.setTimeout?r.setTimeout(e,t,...n):setTimeout(e,t,...n)},clearTimeout(e){let{delegate:t}=Vr;return(t?.clearTimeout||clearTimeout)(e)},delegate:void 0};function ds(e){Vr.setTimeout(()=>{let{onUnhandledError:t}=It;if(t)t(e);else throw e})}function Fo(){}var th=Tl(`C`,void 0,void 0);function nh(e){return Tl(`E`,void 0,e)}function rh(e){return Tl(`N`,e,void 0)}function Tl(e,t,n){return{kind:e,value:t,error:n}}var er=null;function $r(e){if(It.useDeprecatedSynchronousErrorHandling){let t=!er;if(t&&(er={errorThrown:!1,error:null}),e(),t){let{errorThrown:n,error:r}=er;if(er=null,n)throw r}}else e()}function oh(e){It.useDeprecatedSynchronousErrorHandling&&er&&(er.errorThrown=!0,er.error=e)}var tr=class extends Ne{constructor(t){super(),this.isStopped=!1,t?(this.destination=t,ls(t)&&t.add(this)):this.destination=jE}static create(t,n,r){return new Br(t,n,r)}next(t){this.isStopped?_l(rh(t),this):this._next(t)}error(t){this.isStopped?_l(nh(t),this):(this.isStopped=!0,this._error(t))}complete(){this.isStopped?_l(th,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()}}};var PE=Function.prototype.bind;function Cl(e,t){return PE.call(e,t)}var Ml=class{constructor(t){this.partialObserver=t}next(t){let{partialObserver:n}=this;if(n.next)try{n.next(t)}catch(r){us(r)}}error(t){let{partialObserver:n}=this;if(n.error)try{n.error(t)}catch(r){us(r)}else us(t)}complete(){let{partialObserver:t}=this;if(t.complete)try{t.complete()}catch(n){us(n)}}};var Br=class extends tr{constructor(t,n,r){super();let o;if(A(t)||!t)o={next:t??void 0,error:n??void 0,complete:r??void 0};else{let i;this&&It.useDeprecatedNextContext?(i=Object.create(t),i.unsubscribe=()=>this.unsubscribe(),o={next:t.next&&Cl(t.next,i),error:t.error&&Cl(t.error,i),complete:t.complete&&Cl(t.complete,i)}):o=t}this.destination=new Ml(o)}};function us(e){It.useDeprecatedSynchronousErrorHandling?oh(e):ds(e)}function LE(e){throw e}function _l(e,t){let{onStoppedNotification:n}=It;n&&Vr.setTimeout(()=>n(e,t))}var jE={closed:!0,next:Fo,error:LE,complete:Fo};var zr=typeof Symbol==`function`&&Symbol.observable||`@@observable`;function St(e){return e}function fs(...e){return Nl(e)}function Nl(e){return e.length===0?St:e.length===1?e[0]:function(n){return e.reduce((r,o)=>o(r),n)}}var P=class e{constructor(t){t&&(this._subscribe=t)}lift(t){let n=new e;return n.source=this,n.operator=t,n}subscribe(t,n,r){let o=UE(t)?t:new Br(t,n,r);return $r(()=>{let{operator:i,source:s}=this;o.add(i?i.call(o,s):s?this._subscribe(o):this._trySubscribe(o))}),o}_trySubscribe(t){try{return this._subscribe(t)}catch(n){t.error(n)}}forEach(t,n){return n=ih(n),new n((r,o)=>{let i=new Br({next:s=>{try{t(s)}catch(a){o(a),i.unsubscribe()}},error:o,complete:r});this.subscribe(i)})}_subscribe(t){var n;return(n=this.source)===null||n===void 0?void 0:n.subscribe(t)}[zr](){return this}pipe(...t){return Nl(t)(this)}toPromise(t){return t=ih(t),new t((n,r)=>{let o;this.subscribe(i=>o=i,i=>r(i),()=>n(o))})}};P.create=e=>new P(e);function ih(e){var t;return(t=e??It.Promise)!==null&&t!==void 0?t:Promise}function FE(e){return e&&A(e.next)&&A(e.error)&&A(e.complete)}function UE(e){return e&&e instanceof tr||FE(e)&&ls(e)}function HE(e){return A(e?.lift)}function z(e){return t=>{if(HE(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 Z(e,t,n,r,o){return new Al(e,t,n,r,o)}var Al=class extends tr{constructor(t,n,r,o,i,s){super(t),this.onFinalize=i,this.shouldUnsubscribe=s,this._next=n?function(a){try{n(a)}catch(c){t.error(c)}}:super._next,this._error=o?function(a){try{o(a)}catch(c){t.error(c)}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()){let{closed:n}=this;super.unsubscribe(),!n&&((t=this.onFinalize)===null||t===void 0||t.call(this))}}};var sh=Hr(e=>function(){e(this),this.name=`ObjectUnsubscribedError`,this.message=`object unsubscribed`});var le=class extends P{constructor(){super(),this.closed=!1,this.currentObservers=null,this.observers=[],this.isStopped=!1,this.hasError=!1,this.thrownError=null}lift(t){let n=new ps(this,this);return n.operator=t,n}_throwIfClosed(){if(this.closed)throw new sh}next(t){$r(()=>{if(this._throwIfClosed(),!this.isStopped){this.currentObservers||(this.currentObservers=Array.from(this.observers));for(let n of this.currentObservers)n.next(t)}})}error(t){$r(()=>{if(this._throwIfClosed(),!this.isStopped){this.hasError=this.isStopped=!0,this.thrownError=t;let{observers:n}=this;for(;n.length;)n.shift().error(t)}})}complete(){$r(()=>{if(this._throwIfClosed(),!this.isStopped){this.isStopped=!0;let{observers:t}=this;for(;t.length;)t.shift().complete()}})}unsubscribe(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null}get observed(){var t;return((t=this.observers)===null||t===void 0?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){let{hasError:n,isStopped:r,observers:o}=this;return n||r?Dl:(this.currentObservers=null,o.push(t),new Ne(()=>{this.currentObservers=null,jo(o,t)}))}_checkFinalizedStatuses(t){let{hasError:n,thrownError:r,isStopped:o}=this;n?t.error(r):o&&t.complete()}asObservable(){let t=new P;return t.source=this,t}};le.create=(e,t)=>
vendor: 4,193 bytes, line 3
3new ps(e,t);var ps=class extends le{constructor(t,n){super(),this.destination=t,this.source=n}next(t){var n,r;(r=(n=this.destination)===null||n===void 0?void 0:n.next)===null||r===void 0||r.call(n,t)}error(t){var n,r;(r=(n=this.destination)===null||n===void 0?void 0:n.error)===null||r===void 0||r.call(n,t)}complete(){var t,n;(n=(t=this.destination)===null||t===void 0?void 0:t.complete)===null||n===void 0||n.call(t)}_subscribe(t){var n,r;return(r=(n=this.source)===null||n===void 0?void 0:n.subscribe(t))!==null&&r!==void 0?r:Dl}};var Ae=class extends le{constructor(t){super(),this._value=t}get value(){return this.getValue()}_subscribe(t){let n=super._subscribe(t);return!n.closed&&t.next(this._value),n}getValue(){let{hasError:t,thrownError:n,_value:r}=this;if(t)throw n;return this._throwIfClosed(),r}next(t){super.next(this._value=t)}};var Re=new P(e=>e.complete());function ah(e){return e&&A(e.schedule)}function ch(e){return e[e.length-1]}function lh(e){return A(ch(e))?e.pop():void 0}function En(e){return ah(ch(e))?e.pop():void 0}function uh(e,t,n,r){function o(i){return i instanceof n?i:new n(function(s){s(i)})}return new(n||(n=Promise))(function(i,s){function a(d){try{l(r.next(d))}catch(u){s(u)}}function c(d){try{l(r.throw(d))}catch(u){s(u)}}function l(d){d.done?i(d.value):o(d.value).then(a,c)}l((r=r.apply(e,t||[])).next())})}function dh(e){var t=typeof Symbol==`function`&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&typeof e.length==`number`)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.`)}function nr(e){return this instanceof nr?(this.v=e,this):new nr(e)}function fh(e,t,n){if(!Symbol.asyncIterator)throw new TypeError(`Symbol.asyncIterator is not defined.`);var r=n.apply(e,t||[]),o,i=[];return o=Object.create((typeof AsyncIterator==`function`?AsyncIterator:Object).prototype),a(`next`),a(`throw`),a(`return`,s),o[Symbol.asyncIterator]=function(){return this},o;function s(h){return function(y){return Promise.resolve(y).then(h,u)}}function a(h,y){r[h]&&(o[h]=function(S){return new Promise(function(C,j){i.push([h,S,C,j])>1||c(h,S)})},y&&(o[h]=y(o[h])))}function c(h,y){try{l(r[h](y))}catch(S){f(i[0][3],S)}}function l(h){h.value instanceof nr?Promise.resolve(h.value.v).then(d,u):f(i[0][2],h)}function d(h){c(`next`,h)}function u(h){c(`throw`,h)}function f(h,y){h(y),i.shift(),i.length&&c(i[0][0],i[0][1])}}function ph(e){if(!Symbol.asyncIterator)throw new TypeError(`Symbol.asyncIterator is not defined.`);var t=e[Symbol.asyncIterator],n;return t?t.call(e):(e=typeof dh==`function`?dh(e):e[Symbol.iterator](),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,c){s=e[i](s),o(a,c,s.done,s.value)})}}function o(i,s,a,c){Promise.resolve(c).then(function(l){i({value:l,done:a})},s)}}var hs=(e=>e&&typeof e.length==`number`&&typeof e!=`function`);function gs(e){return A(e?.then)}function ms(e){return A(e[zr])}function vs(e){return Symbol.asyncIterator&&A(e?.[Symbol.asyncIterator])}function ys(e){return new TypeError(`You provided ${e!==null&&typeof e==`object`?`an invalid object`:`'${e}'`} where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.`)}function VE(){return typeof Symbol!=`function`||!Symbol.iterator?`@@iterator`:Symbol.iterator}var bs=VE();function Es(e){return A(e?.[bs])}function ws(e){return fh(this,arguments,function*(){let n=e.getReader();try{for(;;){let{value:r,done:o}=yield nr(n.read());if(o)return yield nr(void 0);yield yield nr(r)}}finally{n.releaseLock()}})}function Is(e){return A(e?.getReader)}function Ee(e){if(e instanceof P)return e;if(e!=null){if(ms(e))return $E(e);if(hs(e))return BE(e);if(gs(e))return zE(e);if(vs(e))return hh(e);if(Es(e))return WE(e);if(Is(e))return qE(e)}throw ys(e)}function $E(e){return new P(t=>{let n=e[zr]();if(A(n.subscribe))return n.subscribe(t);throw new TypeError(`Provided object does not correctly implement Symbol.observable`)})}function BE(e){return new P(t=>{for(let n=0;n<e.length&&!t.closed;
vendor: 4,269 bytes, line 3
3n++)t.next(e[n]);t.complete()})}function zE(e){return new P(t=>{e.then(n=>{t.closed||(t.next(n),t.complete())},n=>t.error(n)).then(null,ds)})}function WE(e){return new P(t=>{for(let n of e)if(t.next(n),t.closed)return;t.complete()})}function hh(e){return new P(t=>{ZE(e,t).catch(n=>t.error(n))})}function qE(e){return hh(ws(e))}function ZE(e,t){var n,r,o,i;return uh(this,void 0,void 0,function*(){try{for(n=ph(e);r=yield n.next(),!r.done;){let s=r.value;if(t.next(s),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()})}function Ge(e,t,n,r=0,o=!1){let i=t.schedule(function(){n(),o?e.add(this.schedule(null,r)):this.unsubscribe()},r);if(e.add(i),!o)return i}function Ss(e,t=0){return z((n,r)=>{n.subscribe(Z(r,o=>Ge(r,e,()=>r.next(o),t),()=>Ge(r,e,()=>r.complete(),t),o=>Ge(r,e,()=>r.error(o),t)))})}function Ds(e,t=0){return z((n,r)=>{r.add(e.schedule(()=>n.subscribe(r),t))})}function gh(e,t){return Ee(e).pipe(Ds(t),Ss(t))}function mh(e,t){return Ee(e).pipe(Ds(t),Ss(t))}function vh(e,t){return new P(n=>{let r=0;return t.schedule(function(){r===e.length?n.complete():(n.next(e[r++]),n.closed||this.schedule())})})}function yh(e,t){return new P(n=>{let r;return Ge(n,t,()=>{r=e[bs](),Ge(n,t,()=>{let o,i;try{({value:o,done:i}=r.next())}catch(s){n.error(s);return}i?n.complete():n.next(o)},0,!0)}),()=>A(r?.return)&&r.return()})}function Ts(e,t){if(!e)throw new Error(`Iterable cannot be null`);return new P(n=>{Ge(n,t,()=>{let r=e[Symbol.asyncIterator]();Ge(n,t,()=>{r.next().then(o=>{o.done?n.complete():n.next(o.value)})},0,!0)})})}function bh(e,t){return Ts(ws(e),t)}function Eh(e,t){if(e!=null){if(ms(e))return gh(e,t);if(hs(e))return vh(e,t);if(gs(e))return mh(e,t);if(vs(e))return Ts(e,t);if(Es(e))return yh(e,t);if(Is(e))return bh(e,t)}throw ys(e)}function de(e,t){return t?Eh(e,t):Ee(e)}function x(...e){return de(e,En(e))}function Rl(e,t){let n=A(e)?e:()=>e,r=o=>o.error(n());return new P(t?o=>t.schedule(r,0,o):r)}function Cs(e){return!!e&&(e instanceof P||A(e.lift)&&A(e.subscribe))}var rr=Hr(e=>function(){e(this),this.name=`EmptyError`,this.message=`no elements in sequence`});function J(e,t){return z((n,r)=>{let o=0;n.subscribe(Z(r,i=>{r.next(e.call(t,i,o++))}))})}var{isArray:GE}=Array;function YE(e,t){return GE(t)?e(...t):e(t)}function wh(e){return J(t=>YE(e,t))}var{isArray:KE}=Array,{getPrototypeOf:QE,prototype:JE,keys:XE}=Object;function Ih(e){if(e.length===1){let t=e[0];if(KE(t))return{args:t,keys:null};if(ew(t)){let n=XE(t);return{args:n.map(r=>t[r]),keys:n}}}return{args:e,keys:null}}function ew(e){return e&&typeof e==`object`&&QE(e)===JE}function Sh(e,t){return e.reduce((n,r,o)=>(n[r]=t[o],n),{})}function xl(...e){let t=En(e),n=lh(e),{args:r,keys:o}=Ih(e);if(r.length===0)return de([],t);let i=new P(tw(r,t,o?s=>Sh(o,s):St));return n?i.pipe(wh(n)):i}function tw(e,t,n=St){return r=>{Dh(t,()=>{let{length:o}=e,i=new Array(o),s=o,a=o;for(let c=0;c<o;c++)Dh(t,()=>{let l=de(e[c],t),d=!1;l.subscribe(Z(r,u=>{i[c]=u,d||(d=!0,a--),a||r.next(n(i.slice()))},()=>{--s||r.complete()}))},r)},r)}}function Dh(e,t,n){e?Ge(n,e,t):t()}function Th(e,t,n,r,o,i,s,a){let c=[],l=0,d=0,u=!1,f=()=>{u&&!c.length&&!l&&t.complete()},h=S=>l<r?y(S):c.push(S),y=S=>{i&&t.next(S),l++;let C=!1;Ee(n(S,d++)).subscribe(Z(t,j=>{o?.(j),i?h(j):t.next(j)},()=>{C=!0},void 0,()=>{if(C)try{for(l--;c.length&&l<r;){let j=c.shift();s?Ge(t,s,()=>y(j)):y(j)}f()}catch(j){t.error(j)}}))};return e.subscribe(Z(t,h,()=>{u=!0,f()})),()=>{a?.()}}function Pe(e,t,n=Infinity){return A(t)?Pe((r,o)=>J((i,s)=>t(r,i,o,s))(Ee(e(r,o))),n):(typeof t==`number`&&(n=t),z((r,o)=>Th(r,o,e,n)))}function Wr(e=Infinity){return Pe(St,e)}function Ch(){return Wr(1)}function qr(...e){return Ch()(de(e,En(e)))}function Uo(e){return new P(t=>{Ee(e()).subscribe(t)})}function et(e,t){return z((n,r)=>{let o=0;n.subscribe(Z(r,i=>e.call(t,i,o++)&&r.next(i)))})}function Zr(e){return z((t,n)=>{let r=null,o=!1,i;r=t.subscribe(Z(n,void 0,void 0,s=>{i=Ee(e(s,Zr(e)(t))),r?(r.unsubscribe(),r=null,i.subscribe(n)):o=!0})),o&&(r.unsubscribe(),r=null,i.subscribe(n))})}function Ho(e,t){return A(t)?Pe(e,t,1):Pe(e,1)}function _h(e){return z((t,n)=>{let r=!1;t.subscribe(Z(n,o=>{r=!0,n.next(o)},()=>{r||n.next(e),n.complete()}
vendor: 10,384 bytes, lines 3-4
3))})}function tn(e){return e<=0?()=>Re:z((t,n)=>{let r=0;t.subscribe(Z(n,o=>{++r<=e&&(n.next(o),e<=r&&n.complete())}))})}function Mh(e=nw){return z((t,n)=>{let r=!1;t.subscribe(Z(n,o=>{r=!0,n.next(o)},()=>r?n.complete():n.error(e())))})}function nw(){return new rr}function Ol(e){return z((t,n)=>{try{t.subscribe(n)}finally{n.add(e)}})}function nn(e,t){let n=arguments.length>=2;return r=>r.pipe(e?et((o,i)=>e(o,i,r)):St,tn(1),n?_h(t):Mh(()=>new rr))}function _s(e){return e<=0?()=>Re:z((t,n)=>{let r=[];t.subscribe(Z(n,o=>{r.push(o),e<r.length&&r.shift()},()=>{for(let o of r)n.next(o);n.complete()},void 0,()=>{r=null}))})}function kl(...e){let t=En(e);return z((n,r)=>{(t?qr(e,n,t):qr(e,n)).subscribe(r)})}function pt(e,t){return z((n,r)=>{let o=null,i=0,s=!1,a=()=>s&&!o&&r.complete();n.subscribe(Z(r,c=>{o?.unsubscribe();let l=0,d=i++;Ee(e(c,d)).subscribe(o=Z(r,u=>r.next(t?t(c,u,d,l++):u),()=>{o=null,a()}))},()=>{s=!0,a()}))})}function or(e){return z((t,n)=>{Ee(e).subscribe(Z(n,()=>n.complete(),Fo)),!n.closed&&t.subscribe(n)})}function ht(e,t,n){let r=A(e)||t||n?{next:e,error:t,complete:n}:e;return r?z((o,i)=>{var s;(s=r.subscribe)===null||s===void 0||s.call(r);let a=!0;o.subscribe(Z(i,c=>{var l;(l=r.next)===null||l===void 0||l.call(r,c),i.next(c)},()=>{var c;a=!1,(c=r.complete)===null||c===void 0||c.call(r),i.complete()},c=>{var l;a=!1,(l=r.error)===null||l===void 0||l.call(r,c),i.error(c)},()=>{var c,l;a&&((c=r.unsubscribe)===null||c===void 0||c.call(r)),(l=r.finalize)===null||l===void 0||l.call(r)}))}):St}var Ps=`https://angular.dev/best-practices/security#preventing-cross-site-scripting-xss`;var w=class extends Error{code;constructor(t,n){super(Tt(t,n)),this.code=t}};function rw(e){return`NG0${Math.abs(e)}`}function Tt(e,t){return`${rw(e)}${t?`: `+t:``}`}function W(e){for(let t in e)if(e[t]===W)return t;throw Error(``)}function qo(e){if(typeof e==`string`)return e;if(Array.isArray(e))return`[${e.map(qo).join(`, `)}]`;if(e==null)return``+e;let t=e.overriddenName||e.name;if(t)return`${t}`;let n=e.toString();if(n==null)return``+n;let r=n.indexOf(` 4`);return r>=0?n.slice(0,r):n}function Yl(e,t){return e?t?`${e} ${t}`:e:t||``}var ow=W({__forward_ref__:W});function Ls(e){return e.__forward_ref__=Ls,e}function tt(e){return kh(e)?e():e}function kh(e){return typeof e==`function`&&Object.hasOwn(e,ow)&&e.__forward_ref__===Ls}function O(e){return{token:e.token,providedIn:e.providedIn||null,factory:e.factory,value:void 0}}function Zo(e){return iw(e,js)}function Kl(e){return Zo(e)!==null}function iw(e,t){return Object.hasOwn(e,t)&&e[t]||null}function sw(e){return(e?.[js]??null)||null}function Ll(e){return e&&Object.hasOwn(e,Ns)?e[Ns]:null}var js=W({ɵprov:W});var Ns=W({ɵinj:W});var I=class{_desc;ngMetadataName=`InjectionToken`;ɵprov;constructor(t,n){this._desc=t,this.ɵprov=void 0,typeof n==`number`?this.__NG_ELEMENT_ID__=n:n!==void 0&&(this.ɵprov=O({token:this,providedIn:n.providedIn||`root`,factory:n.factory}))}get multi(){return this}toString(){return`InjectionToken ${this._desc}`}};function Ql(e){return e&&!!e.ɵproviders}var Jl=W({ɵcmp:W});var Xl=W({ɵdir:W});var ed=W({ɵpipe:W});var td=W({ɵmod:W});var jl=W({ɵfac:W});var lr=W({__NG_ELEMENT_ID__:W});var Nh=W({__NG_ENV_ID__:W});function Ph(e){return Us(e,`@NgModule`),e[td]||null}function Sn(e){return Us(e,`@Component`),e[Jl]||null}function Fs(e){return Us(e,`@Directive`),e[Xl]||null}function nd(e){return Us(e,`@Pipe`),e[ed]||null}function Us(e,t){if(e==null)throw new w(-919,!1)}function Go(e){return typeof e==`string`?e:e==null?``:String(e)}var Lh=W({ngErrorCode:W});var aw=W({ngErrorMessage:W});var cw=W({ngTokenPath:W});function rd(e,t){return jh(``,-200,t)}function Hs(e,t){throw new w(-201,!1)}function jh(e,t,n){let r=new w(t,e);return r[Lh]=t,r[aw]=e,n&&(r[cw]=n),r}function lw(e){return e[Lh]}var Fl;function Fh(){return Fl}function He(e){let t=Fl;return Fl=e,t}function od(e,t,n){let r=Zo(e);if(r&&r.providedIn==`root`)return r.value===void 0?r.value=r.factory():r.value;if(n&8)return null;if(t!==void 0)return t;Hs(e,``)}var Dn=globalThis;var ir={};var uw=`__NG_DI_FLAG__`;var Ul=class{injector;constructor(t){this.injector=t}retrieve(t,n){let r=sr(n)||0;try{return this.injector.get(t,r&8?null:ir,r)}catch(o){if(Ur(o))return o;throw o}}};function fw(e,t=0){let n=as();if(n===void 0)throw new w(-203,!1);if(n===null)return od(e,void 0,t);{let r=pw(t),o=n.retrieve(e,r);if(Ur(o)){if(r.optional)return null;throw o}return o}}function R(e,t=0){return(Fh()||fw)(tt(e),t)}function p(e,t){return R(e,sr(t))}function sr(e){return typeof e>`u`||typeof e==`number`?e:0|(e.optional&&8)|(e.host&&1)|(e.self&&2)|(e.skipSelf&&4)}function pw(e){return{optional:!!(e&8),host:!!(e&1),self:!!(e&2),skipSelf:!!(e&4)}}function Hl(e){let t=[];for(let n=0;n<e.length;n++){let r=tt(e[n]);if(Array.isArray(r)){if(r.length===0)throw new w(900,!1);let o,i=0;for(let s=0;s<r.length;s++){let a=r[s],c=hw(a);typeof c==`number`?c===-1?o=a.token:i|=c:o=a}t.push(R(o,i))}else t.push(R(r))}return t}function hw(e){return e[uw]}function ar(e,t){return Object.hasOwn(e,jl)?e[jl]:null}function Uh(e,t,n){if(e.length!==t.length)return!1;for(let r=0;r<e.length;r++){let o=e[r],i=t[r];if(n&&(o=n(o),i=n(i)),i!==o)return!1}return!0}function Hh(e){return e.flat(Number.POSITIVE_INFINITY)}function Vs(e,t){e.forEach(n=>Array.isArray(n)?Vs(n,t):t(n))}function id(e,t,n){t>=e.length?e.push(n):e.splice(t,0,n)}function Yo(e,t){return t>=e.length-1?e.pop():e.splice(t,1)[0]}function Vh(e,t,n,r){let o=e.length;if(o==t)e.push(n,r);else if(o===1)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}}function $h(e,t,n){let r=Qr(e,t);return r>=0?e[r|1]=n:(r=~r,Vh(e,r,t,n)),r}function $s(e,t){let n=Qr(e,t);if(n>=0)return e[n|1]}function Qr(e,t){return gw(e,t,1)}function gw(e,t,n){let r=0,o=e.length>>n;for(;o!==r;){let i=r+(o-r>>1),s=e[i<<n];if(t===s)return i<<n;s>t?o=i:r=i+1}return~(o<<n)}var dr={};var In=[];var an=new I(``);var Ko=new I(``,-1);var sd=new I(``);var Yr=class{get(t,n=ir){if(n===ir){let o=jh(``,-201);throw o.name=`ɵNotFound`,o}return n}};function Ct(e){return{ɵproviders:e}}function Bh(e){return Ct([{provide:an,multi:!0,useValue:e}])}function zh(...e){return{ɵproviders:Bs(!0,e),ɵfromNgModule:!0}}function Bs(e,...t){let n=[],r=new Set,o,i=s=>{n.push(s)};return Vs(t,s=>{let a=s;As(a,i,[],r)&&(o||=[],o.push(a))}),o!==void 0&&Wh(o,i),n}function Wh(e,t){for(let n=0;n<e.length;n++){let{ngModule:r,providers:o}=e[n];ad(o,i=>{t(i,r)})}}function As(e,t,n,r){if(e=tt(e),!e)return!1;let o=null,i=Ll(e),s=!i&&Sn(e);if(!i&&!s){let c=e.ngModule;if(i=Ll(c),i)o=c;else return!1}else{if(s&&!s.standalone)return!1;o=e}let a=r.has(o);if(s){if(a)return!1;if(r.add(o),s.dependencies){let c=typeof s.dependencies==`function`?s.dependencies():s.dependencies;for(let l of c)As(l,t,n,r)}}else if(i){if(i.imports!=null&&!a){r.add(o);let l;Vs(i.imports,d=>{As(d,t,n,r)&&(l||=[],l.push(d))}),l!==void 0&&Wh(l,t)}if(!a){let l=ar(o)||(()=>new o);t({provide:o,useFactory:l,deps:In},o),t({provide:sd,useValue:o,multi:!0},o),t({provide:an,useValue:()=>R(o),multi:!0},o)}let c=i.providers;if(c!=null&&!a){let l=e;ad(c,d=>{t(d,l)})}}else return!1;return o!==e&&e.providers!==void 0}function ad(e,t){for(let n of e)Ql(n)&&(n=n.ɵproviders),Array.isArray(n)?ad(n,t):t(n)}var mw=W({provide:String,useValue:W});function qh(e){return e!==null&&typeof e==`object`&&mw in e}function vw(e){return!!(e&&e.useExisting)}function yw(e){return!!(e&&e.useFactory)}function Rs(e){return typeof e==`function`}var Qo=new I(``);var Ms={};var Ah={};var Pl;function Jo(){return Pl===void 0&&(Pl=new Yr),Pl}var ae=class{};var cr=class extends ae{parent;source;scopes;records=new Map;_ngOnDestroyHooks=new Set;_onDestroyHooks=[];get destroyed(){return this._destroyed}_destroyed=!1;injectorDefTypes;constructor(t,n,r,o){super(),this.parent=n,this.source=r,this.scopes=o,$l(t,s=>this.processProvider(s)),this.records.set(Ko,Gr(void 0,this)),o.has(`environment`)&&this.records.set(ae,Gr(void 0,this));let i=this.records.get(Qo);i!=null&&typeof i.value==`string`&&this.scopes.add(i.value),this.injectorDefTypes=new Set(this.get(sd,In,{self:!0}))}retrieve(t,n){let r=sr(n)||0;try{return this.get(t,ir,r)}catch(o){if(Ur(o))return o;throw o}}destroy(){Vo(this),this._destroyed=!0;let t=T(null);try{for(let r of this._ngOnDestroyHooks)r.ngOnDestroy();let n=this._onDestroyHooks;this._onDestroyHooks=[];for(let r of n)r()}finally{this.records.clear(),this._ngOnDestroyHooks.clear(),this.injectorDefTypes.clear(),T(t)}}onDestroy(t){return Vo(this),this._onDestroyHooks.push(t),()=>this.removeOnDestroy(t)}runInContext(t){Vo(this);let n=Ft(this),r=He(void 0);try{return t()}finally{Ft(n),He(r)}}get(t,n=ir,r){if(Vo(this),Object.hasOwn(t,Nh))return t[Nh](this);let o=sr(r),s=Ft(this),a=He(void 0);try{if(!(o&4)){let l=this.records.get(t);if(l===void 0){let d=Sw(t)&&Zo(t);d&&this.injectableDefInScope(d)?l=Gr(Vl(t),Ms):l=null,this.records.set(t,l)}if(l!=null)return this.hydrate(t,l,o)}let c=o&2?Jo():this.parent;return n=o&8&&n===ir?null:n,c.get(t,n)}catch(c){let l=lw(c);throw l===-200||l===-201?new w(l,null):c}finally{He(a),Ft(s)}}resolveInjectorInitializers(){let t=T(null),n=Ft(this),r=He(void 0);try{let i=this.get(an,In,{self:!0});for(let s of i)s()}finally{Ft(n),He(r),T(t)}}toString(){return`R3Injector[...]`}processProvider(t){t=tt(t);let n=Rs(t)?t:tt(t&&t.provide),r=Ew(t);if(!Rs(t)&&t.multi===!0){let o=this.records.get(n);o||(o=Gr(void 0,Ms,!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,r){let o=T(null);try{if(n.value===Ah)throw rd(``);return n.value===Ms&&(n.value=Ah,n.value=n.factory(void 0,r)),typeof n.value==`object`&&n.value&&Iw(n.value)&&this._ngOnDestroyHooks.add(n.value),n.value}finally{T(o)}}injectableDefInScope(t){if(!t.providedIn)return!1;let n=tt(t.providedIn);return typeof n==`string`?n===`any`||this.scopes.has(n):this.injectorDefTypes.has(n)}removeOnDestroy(t){let n=this._onDestroyHooks.indexOf(t);n!==-1&&this._onDestroyHooks.splice(n,1)}};function Vl(e){let t=Zo(e),n=t!==null?t.factory:ar(e);if(n!==null)return n;if(e instanceof I)throw new w(-204,!1);if(e instanceof Function)return bw(e);throw new w(-204,!1)}function bw(e){if(e.length>0)throw new w(-204,!1);let n=sw(e);return n!==null?()=>n.factory(e):()=>new e}function Ew(e){if(qh(e))return Gr(void 0,e.useValue);return Gr(Zh(e),Ms)}function Zh(e,t,n){let r;
4if(Rs(e)){let o=tt(e);return ar(o)||Vl(o)}else if(qh(e))r=()=>tt(e.useValue);else if(yw(e))r=()=>e.useFactory(...Hl(e.deps||[]));else if(vw(e))r=(o,i)=>R(tt(e.useExisting),i!==void 0&&i&8?8:void 0);else{let o=tt(e&&(e.useClass||e.provide));if(ww(e))r=()=>new o(...Hl(e.deps));else return ar(o)||Vl(o)}return r}function Vo(e){if(e.destroyed)throw new w(-205,!1)}function Gr(e,t,n=!1){return{factory:e,value:t,multi:n?[]:void 0}}function ww(e){return!!e.deps}function Iw(e){return e!==null&&typeof e==`object`&&typeof e.ngOnDestroy==`function`}function Sw(e){return typeof e==`function`||typeof e==`object`&&e.ngMetadataName===`InjectionToken`}function $l(e,t){for(let n of e)Array.isArray(n)?$l(n,t):n&&Ql(n)?$l(n.ɵproviders,t):t(n)}function we(e,t){let n;e instanceof cr?(Vo(e),n=e):n=new Ul(e);let o=Ft(n),i=He(void 0);try{return t()}finally{Ft(o),He(i)}}function Gh(){return Fh()!==void 0||as()!=null}var Ve=0;var D=1;var M=2;var ue=3;var gt=4;var nt=5;var Ye=6;var Jr=7;var pe=8;var Ke=9;var _t=10;var G=11;var Xr=12;var cd=13;var Tn=14;var $e=15;var Cn=16;var ur=17;var Ht=18;var Vt=19;var ld=20;var rn=21;var zs=22;var on=23;var rt=24;var fr=25;var $t=26;var Y=27;var Yh=1;var Mt=6;var cn=7;var Xo=8;var pr=9;var oe=10;function mt(e){return Array.isArray(e)&&typeof e[Yh]==`object`}function Qe(e){return Array.isArray(e)&&e[Yh]===!0}function dd(e){return(e.flags&4)!==0}function Bt(e){return e.componentOffset>-1}function Ws(e){return(e.flags&1)===1}function hr(e){return!!e.template}function gr(e){return(e[M]&512)!==0}function _n(e){return(e[M]&256)===256}var X=(function(e){return e[e.NONE=0]=`NONE`,e[e.HTML=1]=`HTML`,e[e.STYLE=2]=`STYLE`,e[e.SCRIPT=3]=`SCRIPT`,e[e.URL=4]=`URL`,e[e.RESOURCE_URL=5]=`RESOURCE_URL`,e[e.ATTRIBUTE_NO_BINDING=6]=`ATTRIBUTE_NO_BINDING`,e})(X||{});var $o;var Kr=`svg`;var qs=`math`;var Kh=``;var Rh=`*`;var Bl=()=>Object.create(null);function Dw(){return $o||($o=Bl(),wn(X.HTML,void 0,[[`iframe`,[`srcdoc`]],[`*`,[`innerHTML`,`outerHTML`]]]),wn(X.STYLE,void 0,[[`*`,[`style`]]]),wn(X.URL,void 0,[[`*`,[`formAction`]],[`area`,[`href`]],[`a`,[`href`,`xlink:href`]],[`form`,[`action`]],[`img`,[`src`]],[`video`,[`src`]]]),wn(X.URL,qs,[[`*`,[`href`,`xlink:href`]]]),wn(X.RESOURCE_URL,void 0,[[`base`,[`href`]],[`embed`,[`src`]],[`frame`,[`src`]],[`iframe`,[`src`]],[`link`,[`href`]],[`object`,[`codebase`,`data`]]]),wn(X.URL,Kr,[[`a`,[`href`,`xlink:href`]]]),wn(X.ATTRIBUTE_NO_BINDING,Kr,[[`animate`,[`attributeName`,`values`,`to`,`from`]],[`set`,[`to`,`attributeName`]],[`animateMotion`,[`attributeName`]],[`animateTransform`,[`attributeName`]]]),wn(X.ATTRIBUTE_NO_BINDING,void 0,[[`unknown`,[`attributeName`,`values`,`to`,`from`,`sandbox`,`allow`,`allowFullscreen`,`referrerPolicy`,`csp`,`fetchPriority`,`credentialless`]],[`iframe`,[`sandbox`,`allow`,`allowFullscreen`,`referrerPolicy`,`csp`,`fetchPriority`,`credentialless`]]]),$o)}function wn(e,t,n){let r=t??Kh;for(let[o,i]of n){let s=o.toLowerCase();for(let a of i){let c=a.toLowerCase(),l=$o[c]??=Bl(),d=l[r]??=Bl();d[s]=e}}}function Qh(e,t,n){let o=Dw()[t.toLowerCase()];if(!o)return X.NONE;let i=e.toLowerCase(),s;if(n){let a=o[n];a&&(s=a[i]??a[Rh])}if(s===void 0){let a=o[Kh];a&&(s=a[i]??a[Rh])}return s??X.NONE}function Ie(e){for(;Array.isArray(e);)e=e[Ve];return e}function ud(e,t){return Ie(t[e])}function ot(e,t){return Ie(t[e.index])}function eo(e,t){return e.data[t]}function Jh(e,t){return e[t]}function fd(e,t,n,r){n>=e.data.length&&(e.data[n]=null,e.blueprint[n]=null),t[n]=r}function vt(e,t){let n=t[e];return mt(n)?n:n[Ve]}function Xh(e){return(e[M]&4)===4}function Zs(e){return(e[M]&128)===128}function eg(e){return Qe(e[ue])}function zt(e,t){return t==null?null:e[t]}function pd(e){e[ur]=0}function Gs(e){e[M]&1024||(e[M]|=1024,Zs(e)&&mr(e))}function tg(e,t){for(;e>0;)t=t[Tn],e--;return t}function ei(e){return!!(e[M]&9216||e[rt]?.dirty)}function Ys(e){e[_t].changeDetectionScheduler?.notify(8),e[M]&64&&(e[M]|=1024),ei(e)&&mr(e)}function mr(e){e[_t].changeDetectionScheduler?.notify(0);let t=sn(e);for(;t!==null&&!(t[M]&8192||(t[M]|=8192,!Zs(t)));)t=sn(t)}function Ks(e,t){if(_n(e))throw new w(911,!1);e[rn]===null&&(e[rn]=[]),e[rn].push(t)}function ng(e,t){if(e[rn]===null)return;let n=e[rn].indexOf(t);n!==-1&&e[rn].splice(n,1)}function sn(e){let t=e[ue];return Qe(t)?t[ue]:t}function hd(e){return e[Jr]??=[]}function gd(e){return e.cleanup??=[]}
vendor: 6,239 bytes, line 4
4function rg(e,t,n,r){let o=hd(t);o.push(n),e.firstCreatePass&&gd(e).push(r,o.length-1)}var k={lFrame:vg(null),bindingsEnabled:!0,skipHydrationRootTNode:null};var zl=!1;function og(){return k.lFrame.elementDepthCount}function ig(){k.lFrame.elementDepthCount++}function md(){k.lFrame.elementDepthCount--}function sg(){return k.bindingsEnabled}function vd(){return k.skipHydrationRootTNode!==null}function yd(e){return k.skipHydrationRootTNode===e}function ag(e){k.skipHydrationRootTNode=e}function bd(){k.skipHydrationRootTNode=null}function L(){return k.lFrame.lView}function Be(){return k.lFrame.tView}function ze(){let e=Ed();for(;e!==null&&e.type===64;)e=e.parent;return e}function Ed(){return k.lFrame.currentTNode}function cg(){let e=k.lFrame,t=e.currentTNode;return e.isParent?t:t.parent}function to(e,t){let n=k.lFrame;n.currentTNode=e,n.isParent=t}function wd(){return k.lFrame.isParent}function lg(){k.lFrame.isParent=!1}function Id(){return zl}function Bo(e){let t=zl;return zl=e,t}function Sd(){let e=k.lFrame,t=e.bindingRootIndex;return t===-1&&(t=e.bindingRootIndex=e.tView.bindingStartIndex),t}function dg(e){return k.lFrame.bindingIndex=e}function vr(){return k.lFrame.bindingIndex++}function ug(e){let t=k.lFrame,n=t.bindingIndex;return t.bindingIndex=t.bindingIndex+e,n}function fg(){return k.lFrame.inI18n}function pg(e,t){let n=k.lFrame;n.bindingIndex=n.bindingRootIndex=e,Qs(t)}function hg(){return k.lFrame.currentDirectiveIndex}function Qs(e){k.lFrame.currentDirectiveIndex=e}function gg(e){let t=k.lFrame.currentDirectiveIndex;return t===-1?null:e[t]}function Dd(){return k.lFrame.currentQueryIndex}function Js(e){k.lFrame.currentQueryIndex=e}function Tw(e){let t=e[D];return t.type===2?t.declTNode:t.type===1?e[nt]:null}function Td(e,t,n){if(n&4){let o=t,i=e;for(;o=o.parent,o===null&&!(n&1);)if(o=Tw(i),o===null||(i=i[Tn],o.type&10))break;if(o===null)return!1;t=o,e=i}let r=k.lFrame=mg();return r.currentTNode=t,r.lView=e,!0}function Xs(e){let t=mg(),n=e[D];k.lFrame=t,t.currentTNode=n.firstChild,t.lView=e,t.tView=n,t.contextLView=e,t.bindingIndex=n.bindingStartIndex,t.inI18n=!1}function mg(){let e=k.lFrame,t=e===null?null:e.child;return t===null?vg(e):t}function vg(e){let 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 e!==null&&(e.child=t),t}function yg(){let e=k.lFrame;return k.lFrame=e.parent,e.currentTNode=null,e.lView=null,e}var Cd=yg;function ea(){let e=yg();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 bg(e){return(k.lFrame.contextLView=tg(e,k.lFrame.contextLView))[pe]}function ln(){return k.lFrame.selectedIndex}function Mn(e){k.lFrame.selectedIndex=e}function ti(){let e=k.lFrame;return eo(e.tView,e.selectedIndex)}function Wt(){k.lFrame.currentNamespace=Kr}function yr(){Cw()}function Cw(){k.lFrame.currentNamespace=null}function ta(){return k.lFrame.currentNamespace}var Eg=!0;function na(){return Eg}function dn(e){Eg=e}function ni(){let e,t;return{promise:new Promise((r,o)=>{e=r,t=o}),resolve:e,reject:t}}function Wl(e,t=null,n=null,r){let o=_d(e,t,n,r);return o.resolveInjectorInitializers(),o}function _d(e,t=null,n=null,r,o=new Set){return new cr([n||In,zh(e)],t||Jo(),null,o)}var xe=class e{static THROW_IF_NOT_FOUND=ir;static NULL=new Yr;static create(t,n){if(Array.isArray(t))return Wl({name:``},n,t,``);{let r=t.name??``;return Wl({name:r},t.parent,t.providers,r)}}static ɵprov=O({token:e,providedIn:`any`,factory:()=>R(Ko)});static __NG_ELEMENT_ID__=-1};var V=new I(``);var fe=class{static __NG_ELEMENT_ID__=_w;static __NG_ENV_ID__=t=>t};var xs=class extends fe{_lView;constructor(t){super(),this._lView=t}get destroyed(){return _n(this._lView)}onDestroy(t){let n=this._lView;return Ks(n,t),()=>ng(n,t)}};function _w(){return new xs(L())}var wg=!1;var Ig=new I(``);var qt=(()=>{class e{taskId=0;pendingTasks=new Set;destroyed=!1;pendingTask=new Ae(!1);debugTaskTracker=p(Ig,{optional:!0});get hasPendingTasks(){return this.destroyed?!1:this.pendingTask.value}get hasPendingTasksObservable(){return this.destroyed?new P(n=>{n.next(!1),n.complete()}):this.pendingTask}add(){!this.hasPendingTasks&&!this.destroyed&&this.pendingTask.next(!0);let n=this.taskId++;return this.pendingTasks.add(n),this.debugTaskTracker?.add(n),n}has(n){return this.pendingTasks.has(n)}remove(n){this.pendingTasks.delete(n),this.debugTaskTracker?.remove(n),this.pendingTasks.size===0&&this.hasPendingTasks&&this.pendingTask.next(!1)}ngOnDestroy(){this.pendingTasks.clear(),this.hasPendingTasks&&this.pendingTask.next(!1),this.destroyed=!0,this.pendingTask.unsubscribe()}static ɵprov=O({token:e,providedIn:`root`,factory:()=>new e})}return e})();var ql=class extends le{__isAsync;destroyRef=void 0;pendingTasks=void 0;constructor(t=!1){super(),this.__isAsync=t,Gh()&&(this.destroyRef=p(fe,{optional:!0})??void 0,this.pendingTasks=p(qt,{optional:!0})??void 0)}emit(t){let n=T(null);try{super.next(t)}finally{T(n)}}subscribe(t,n,r){let o=t,i=n||(()=>null),s=r;if(t&&typeof t==`object`){let c=t;o=c.next?.bind(c),i=c.error?.bind(c),s=c.complete?.bind(c)}this.__isAsync&&(i=this.wrapInTimeout(i),o&&(o=this.wrapInTimeout(o)),s&&(s=this.wrapInTimeout(s)));let a=super.subscribe({next:o,error:i,complete:s});return t instanceof Ne&&t.add(a),a}wrapInTimeout(t){return n=>{let r=this.pendingTasks?.add();setTimeout(()=>{try{t(n)}finally{r!==void 0&&this.pendingTasks?.remove(r)}})}}};var Le=ql;function Os(...e){}function Md(e){let t,n;function r(){e=Os;try{n!==void 0&&typeof cancelAnimationFrame==`function`&&cancelAnimationFrame(n),t!==void 0&&clearTimeout(t)}catch{}}return t=setTimeout(()=>{e(),r()}),typeof requestAnimationFrame==`function`&&(n=requestAnimationFrame(()=>{e(),r()})),()=>r()}function Sg(e){return queueMicrotask(()=>e()),()=>{e=Os}}var Nd=`isAngularZone`;var zo=Nd+`_ID`;var Mw=0;var Oe=class e{hasPendingMacrotasks=!1;hasPendingMicrotasks=!1;isStable=!0;onUnstable=new Le(!1);onMicrotaskEmpty=new Le(!1);onStable=new Le(!1);
4onError=new Le(!1);constructor(t){let{enableLongStackTrace:n=!1,shouldCoalesceEventChangeDetection:r=!1,shouldCoalesceRunChangeDetection:o=!1,scheduleInRootZone:i=wg}=t;if(typeof Zone>`u`)throw new w(908,!1);Zone.assertZonePatched();let s=this;s._nesting=0,s._outer=s._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(s._inner=s._inner.fork(new Zone.TaskTrackingZoneSpec)),n&&Zone.longStackTraceZoneSpec&&(s._inner=s._inner.fork(Zone.longStackTraceZoneSpec)),s.shouldCoalesceEventChangeDetection=!o&&r,s.shouldCoalesceRunChangeDetection=o,s.callbackScheduled=!1,s.scheduleInRootZone=i,Rw(s)}static isInAngularZone(){return typeof Zone<`u`&&Zone.current.get(Nd)===!0}static assertInAngularZone(){if(!e.isInAngularZone())throw new w(909,!1)}static assertNotInAngularZone(){if(e.isInAngularZone())throw new w(909,!1)}run(t,n,r){return this._inner.run(t,n,r)}runTask(t,n,r,o){let i=this._inner,s=i.scheduleEventTask(`NgZoneEvent: `+o,t,Nw,Os,Os);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)}};var Nw={};function Ad(e){if(e._nesting==0&&!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 Aw(e){if(e.isCheckStableRunning||e.callbackScheduled)return;e.callbackScheduled=!0;function t(){Md(()=>{e.callbackScheduled=!1,Zl(e),e.isCheckStableRunning=!0,Ad(e),e.isCheckStableRunning=!1})}e.scheduleInRootZone?Zone.root.run(()=>{t()}):e._outer.run(()=>{t()}),Zl(e)}function Rw(e){let t=()=>{Aw(e)},n=Mw++;e._inner=e._inner.fork({name:`angular`,properties:{[Nd]:!0,[zo]:n,[zo+n]:!0},onInvokeTask:(r,o,i,s,a,c)=>{if(xw(c))return r.invokeTask(i,s,a,c);try{return xh(e),r.invokeTask(i,s,a,c)}finally{(e.shouldCoalesceEventChangeDetection&&s.type===`eventTask`||e.shouldCoalesceRunChangeDetection)&&t(),Oh(e)}},onInvoke:(r,o,i,s,a,c,l)=>{try{return xh(e),r.invoke(i,s,a,c,l)}finally{e.shouldCoalesceRunChangeDetection&&!e.callbackScheduled&&!Ow(c)&&t(),Oh(e)}},onHasTask:(r,o,i,s)=>{r.hasTask(i,s),o===i&&(s.change==`microTask`?(e._hasPendingMicrotasks=s.microTask,Zl(e),Ad(e)):s.change==`macroTask`&&(e.hasPendingMacrotasks=s.macroTask))},onHandleError:(r,o,i,s)=>(r.handleError(i,s),e.runOutsideAngular(()=>e.onError.emit(s)),!1)})}function Zl(e){e._hasPendingMicrotasks||(e.shouldCoalesceEventChangeDetection||e.shouldCoalesceRunChangeDetection)&&e.callbackScheduled===!0?e.hasPendingMicrotasks=!0:e.hasPendingMicrotasks=!1}function xh(e){e._nesting++,e.isStable&&(e.isStable=!1,e.onUnstable.emit(null))}function Oh(e){e._nesting--,Ad(e)}var Wo=class{hasPendingMicrotasks=!1;hasPendingMacrotasks=!1;isStable=!0;onUnstable=new Le;onMicrotaskEmpty=new Le;onStable=new Le;onError=new Le;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)}};function xw(e){return Dg(e,`__ignore_ng_zone__`)}function Ow(e){return Dg(e,`__scheduler_tick__`)}function Dg(e,t){return!Array.isArray(e)||e.length!==1?!1:e[0]?.data?.[t]===!0}var Dt=class{_console=console;handleError(t){this._console.error(`ERROR`,t)}};var yt=new I(``,{factory:()=>{let e=p(Oe),t=p(ae),n;return r=>{e.runOutsideAngular(()=>{t.destroyed&&!n?setTimeout(()=>{throw r}):(n??=t.get(Dt),n.handleError(r))})}}});var Tg={provide:an,useValue:()=>{p(Dt,{optional:!0})},multi:!0};var kw=new I(``,{factory:()=>{let e=p(V).defaultView;if(!e)return;let t=p(yt),n=i=>{t(i.reason),i.preventDefault()},r=i=>{i.error?t(i.error):t(new Error(i.message,{cause:i})),i.preventDefault()},o=()=>{e.addEventListener(`unhandledrejection`,n),e.addEventListener(`error`,r)};typeof Zone<`u`?Zone.root.run(o):o(),p(fe).onDestroy(()=>{e.removeEventListener(`error`,r),e.removeEventListener(`unhandledrejection`,n)})}});function Rd(){return Ct([Bh(()=>{p(kw)})])}function ne(e,t){let[n,r,o]=yl(e,t?.equal),i=n;i[Me];return i.set=r,i.update=o,i.asReadonly=ra.bind(i),i}function ra(){let e=this[Me];if(e.readonlyFn===void 0){let t=()=>this();t[Me]=e,e.readonlyFn=t}return e.readonlyFn}var Nt=new I(``,{factory:()=>Pw});var Pw=`ng`;var oa=new I(``);var br=new I(``,{providedIn:`platform`,factory:()=>`unknown`});var ri=new I(``,{factory:()=>p(V).body?.querySelector(`[ngCspNonce]`)?.getAttribute(`ngCspNonce`)||null});var Nn=(()=>{class e{static ɵprov=O({token:e,providedIn:`root`,factory:()=>{let n=new e;return n.store=Cg(p(V),p(Nt)),n}});store={};onSerializeCallbacks={};get(n,r){return this.store[n]!==void 0?this.store[n]:r}set(n,r){this.store[n]=r}remove(n){delete this.store[n]}hasKey(n){return Object.hasOwn(this.store,n)}get isEmpty(){return Object.keys(this.store).length===0}onSerialize(n,r){this.onSerializeCallbacks[n]=r}toJson(){for(let n in this.onSerializeCallbacks)if(Object.hasOwn(this.onSerializeCallbacks,n))try{this.store[n]=this.onSerializeCallbacks[n]()}catch(r){console.warn(`Exception in onSerialize callback: `,r)}return JSON.stringify(this.store).replace(/</g,`\\u003C`).replace(/\//g,`\\u002F`)}}return e})();
4function Cg(e,t){let n=e.getElementById(t+`-state`);if(n?.tagName===`SCRIPT`&&n.textContent)try{return JSON.parse(n.textContent)}catch(r){console.warn(`Exception while restoring TransferState for app `+t,r)}return{}}var oi=(()=>{class e{view;node;constructor(n,r){this.view=n,this.node=r}static __NG_ELEMENT_ID__=Lw}return e})();function Lw(){return new oi(L(),ze())}var Ut=class{};var ii=new I(``,{factory:()=>!0});var xd=new I(``);var ia=(()=>{class e{static ɵprov=O({token:e,providedIn:`root`,factory:()=>new Gl})}return e})();var Gl=class{dirtyEffectCount=0;queues=new Map;add(t){this.enqueue(t),this.schedule(t)}schedule(t){t.dirty&&this.dirtyEffectCount++}remove(t){let n=t.zone,r=this.queues.get(n);r.has(t)&&(r.delete(t),t.dirty&&this.dirtyEffectCount--)}enqueue(t){let n=t.zone;this.queues.has(n)||this.queues.set(n,new Set);let r=this.queues.get(n);r.has(t)||r.add(t)}flush(){for(;this.dirtyEffectCount>0;){let t=!1;for(let[n,r]of this.queues)n===null?t||=this.flushQueue(r):t||=n.run(()=>this.flushQueue(r));t||(this.dirtyEffectCount=0)}}flushQueue(t){let n=!1;for(let r of t)r.dirty&&(this.dirtyEffectCount--,n=!0,r.run());return n}};var ks=class{[Me];constructor(t){this[Me]=t}destroy(){this[Me].destroy()}};function no(e,t){let n=t?.injector??p(xe),r=t?.manualCleanup!==!0?n.get(fe):null,o,i=n.get(oi,null,{optional:!0}),s=n.get(Ut);return i!==null?(o=Uw(i.view,s,e),r instanceof xs&&r._lView===i.view&&(r=null)):o=Hw(e,n.get(ia),s),o.injector=n,r!==null&&(o.onDestroyFns=[r.onDestroy(()=>o.destroy())]),new ks(o)}var _g=l(k$1({},bl),{cleanupFns:void 0,zone:null,onDestroyFns:null,run(){let e=Bo(!1);try{El(this)}finally{Bo(e)}},cleanup(){if(!this.cleanupFns?.length)return;let e=T(null);try{for(;this.cleanupFns.length;)this.cleanupFns.pop()()}finally{this.cleanupFns=[],T(e)}}});var jw=l(k$1({},_g),{consumerMarkedDirty(){this.scheduler.schedule(this),this.notifier.notify(12)},destroy(){if(Jn(this),this.onDestroyFns!==null)for(let e of this.onDestroyFns)e();this.cleanup(),this.scheduler.remove(this)}});var Fw=l(k$1({},_g),{consumerMarkedDirty(){this.view[M]|=8192,mr(this.view),this.notifier.notify(13)},destroy(){if(Jn(this),this.onDestroyFns!==null)for(let e of this.onDestroyFns)e();this.cleanup(),this.view[on]?.delete(this)}});function Uw(e,t,n){let r=Object.create(Fw);return r.view=e,r.zone=typeof Zone<`u`?Zone.current:null,r.notifier=t,r.fn=Mg(r,n),e[on]??=new Set,e[on].add(r),r.consumerMarkedDirty(r),r}function Hw(e,t,n){let r=Object.create(jw);return r.fn=Mg(r,e),r.scheduler=t,r.notifier=n,r.zone=typeof Zone<`u`?Zone.current:null,r.scheduler.add(r),r.notifier.notify(12),r}function Mg(e,t){return()=>{t(n=>(e.cleanupFns??=[]).push(n))}}var ro=(()=>{class e{internalPendingTasks=p(qt);scheduler=p(Ut);errorHandler=p(yt);add(){let n=this.internalPendingTasks.add();return()=>{this.internalPendingTasks.has(n)&&(this.scheduler.notify(11),this.internalPendingTasks.remove(n))}}run(n){let r=this.add();try{n().catch(this.errorHandler).finally(r)}catch(o){this.errorHandler(o),r()}}static ɵprov=O({token:e,providedIn:`root`,factory:()=>new e})}return e})();var sa={JSACTION:`jsaction`};function _u(e){return{toString:e}.toString()}var U=(function(e){return e[e.TemplateCreateStart=0]=`TemplateCreateStart`,e[e.TemplateCreateEnd=1]=`TemplateCreateEnd`,e[e.TemplateUpdateStart=2]=`TemplateUpdateStart`,e[e.TemplateUpdateEnd=3]=`TemplateUpdateEnd`,e[e.LifecycleHookStart=4]=`LifecycleHookStart`,e[e.LifecycleHookEnd=5]=`LifecycleHookEnd`,e[e.OutputStart=6]=`OutputStart`,e[e.OutputEnd=7]=`OutputEnd`,e[e.BootstrapApplicationStart=8]=`BootstrapApplicationStart`,e[e.BootstrapApplicationEnd=9]=`BootstrapApplicationEnd`,e[e.BootstrapComponentStart=10]=`BootstrapComponentStart`,e[e.BootstrapComponentEnd=11]=`BootstrapComponentEnd`,e[e.ChangeDetectionStart=12]=`ChangeDetectionStart`,e[e.ChangeDetectionEnd=13]=`ChangeDetectionEnd`,e[e.ChangeDetectionSyncStart=14]=`ChangeDetectionSyncStart`,e[e.ChangeDetectionSyncEnd=15]=`ChangeDetectionSyncEnd`,e[e.AfterRenderHooksStart=16]=`AfterRenderHooksStart`,e[e.AfterRenderHooksEnd=17]=`AfterRenderHooksEnd`,e[e.ComponentStart=18]=`ComponentStart`,e[e.ComponentEnd=19]=`ComponentEnd`,e[e.DeferBlockStateStart=20]=`DeferBlockStateStart`,e[e.DeferBlockStateEnd=21]=`DeferBlockStateEnd`,e[e.DynamicComponentStart=22]=`DynamicComponentStart`,e[e.DynamicComponentEnd=23]=`DynamicComponentEnd`,e[e.HostBindingsUpdateStart=24]=`HostBindingsUpdateStart`,e[e.HostBindingsUpdateEnd=25]=`HostBindingsUpdateEnd`,e})(U||{});var va=class{previousValue;currentValue;firstChange;constructor(t,n,r){this.previousValue=t,this.currentValue=n,this.firstChange=r}isFirstChange(){return this.firstChange}};function wm(e,t,n,r){t!==null?t.applyValueToInputSignal(t,r):e[n]=r}var Im=null;var fo=(()=>{Im=Ng;let e=()=>Ng;return e.ngInherit=!0,e})();function Qw(){return Im}function Ng(e){return e.type.prototype.ngOnChanges&&(e.setInput=Xw),Jw}function Jw(){let e=Sm(this),t=e?.current;if(t){let n=e.previous;if(n===dr)e.previous=t;else for(let r in t)n[r]=t[r];e.current=null,this.ngOnChanges(t)}}function Xw(e,t,n,r,o){let i=this.declaredInputs[r],s=Sm(e)||eI(e,{previous:dr,current:null}),a=s.current||(s.current={}),c=s.previous,l=c[i];a[i]=new va(l&&l.currentValue,n,c===dr),wm(e,t,o,n)}var zd=`__ngSimpleChanges__`;function Sm(e){return Object.hasOwn(e,zd)&&e[zd]||null}function eI(e,t){return e[zd]=t}var Ag=[];var $=function(e,t=null,n){for(let r=0;r<Ag.length;r++){let o=Ag[r];o(e,t,n)}};function tI(e,t,n){let{ngOnChanges:r,ngOnInit:o,ngDoCheck:i}=t.type.prototype;if(r){let s=Qw()(t);(n.preOrderHooks??=[]).push(e,s),(n.preOrderCheckHooks??=[]).push(e,s)}o&&(n.preOrderHooks??=[]).push(0-e,o),i&&((n.preOrderHooks??=[]).push(e,i),(n.preOrderCheckHooks??=[]).push(e,i))}function nI(e,t){for(let n=t.directiveStart,r=t.directiveEnd;n<r;n++){let{ngAfterContentInit:s,ngAfterContentChecked:a,ngAfterViewInit:c,ngAfterViewChecked:l,ngOnDestroy:d}=e.data[n].type.prototype;s&&(e.contentHooks??=[]).push(-n,s),a&&((e.contentHooks??=[]).push(n,a),(e.contentCheckHooks??=[]).push(n,a)),c&&(e.viewHooks??=[]).push(-n,c),l&&((e.viewHooks??=[]).push(n,l),(e.viewCheckHooks??=[]).push(n,l)),d!=null&&(e.destroyHooks??=[]).push(n,d)}}function ua(e,t,n){Dm(e,t,3,n)}function fa(e,t,n,r){(e[M]&3)===n&&Dm(e,t,n,r)}function Od(e,t){let n=e[M];(n&3)===t&&(n&=16383,n+=1,e[M]=n)}function Dm(e,t,n,r){let o=r!==void 0?e[ur]&65535:0,i=r??-1,s=t.length-1,a=0;for(let c=o;c<s;c++)if(typeof t[c+1]==`number`){if(a=t[c],r!=null&&a>=r)break}else t[c]<0&&(e[ur]+=65536),(a<i||i==-1)&&(rI(e,n,t,c),e[ur]=(e[ur]&4294901760)+c+2),c++}function Rg(e,t){$(U.LifecycleHookStart,e,t);let n=T(null);try{t.call(e)}finally{T(n),$(U.LifecycleHookEnd,e,t)}}function rI(e,t,n,r){let o=n[r]<0,i=n[r+1],a=e[o?-n[r]:n[r]];o?e[M]>>14<e[ur]>>16&&(e[M]&3)===t&&(e[M]+=16384,Rg(a,i)):Rg(a,i)}var io=-1;var li=class{factory;name;injectImpl;resolving=!1;canSeeViewProviders;multi;componentProviders;index;providerFactory;constructor(t,n,r,o){this.factory=t,this.name=o,this.canSeeViewProviders=n,this.injectImpl=r}};function oI(e){return(e.flags&8)!==0}function iI(e){return(e.flags&16)!==0}function sI(e,t,n){let r=0;for(;r<n.length;){let o=n[r];if(typeof o==`number`){if(o!==0)break;r++;let i=n[r++],s=n[r++],a=n[r++];e.setAttribute(t,s,a,i)}else{let i=o,s=n[++r];aI(i)?e.setProperty(t,i,s):e.setAttribute(t,i,s),r++}}return r}function Tm(e){return e===3||e===4||e===6}function aI(e){return e.charCodeAt(0)===64}function Pa(e,t){if(!(t===null||t.length===0))if(e===null||e.length===0)e=t.slice();else{let n=-1;for(let r=0;r<t.length;r++){let o=t[r];typeof o==`number`?n=o:n===0||(n===-1||n===2?xg(e,n,o,null,t[++r]):xg(e,n,o,null,
vendor: 5,042 bytes, line 4
4null))}}return e}function xg(e,t,n,r,o){let i=0,s=e.length;if(t===-1)s=-1;else for(;i<e.length;){let a=e[i++];if(typeof a==`number`){if(a===t){s=-1;break}else if(a>t){s=i-1;break}}}for(;i<e.length;){let a=e[i];if(typeof a==`number`)break;if(a===n){o!==null&&(e[i+1]=o);return}i++,o!==null&&i++}s!==-1&&(e.splice(s,0,t),i=s+1),e.splice(i++,0,n),o!==null&&e.splice(i++,0,o)}function Cm(e){return e!==io}function ya(e){return e&32767}function cI(e){return e>>16}function ba(e,t){let n=cI(e),r=t;for(;n>0;)r=r[Tn],n--;return r}var Wd=!0;function Ea(e){let t=Wd;return Wd=e,t}var _m=255;var Mm=5;var dI=0;var Zt={};function uI(e,t,n){let r;typeof n==`string`?r=n.charCodeAt(0)||0:Object.hasOwn(n,lr)&&(r=n[lr]),r??=n[lr]=dI++;let o=r&_m,i=1<<o;t.data[e+(o>>Mm)]|=i}function Nm(e,t){let n=Am(e,t);if(n!==-1)return n;let r=t[D];r.firstCreatePass&&(e.injectorIndex=t.length,kd(r.data,e),kd(t,null),kd(r.blueprint,null));let o=Mu(e,t),i=e.injectorIndex;if(Cm(o)){let s=ya(o),a=ba(o,t),c=a[D].data;for(let l=0;l<8;l++)t[i+l]=a[s+l]|c[s+l]}return t[i+8]=o,i}function kd(e,t){e.push(0,0,0,0,0,0,0,0,t)}function Am(e,t){return e.injectorIndex===-1||e.parent&&e.parent.injectorIndex===e.injectorIndex||t[e.injectorIndex+8]===null?-1:e.injectorIndex}function Mu(e,t){if(e.parent&&e.parent.injectorIndex!==-1)return e.parent.injectorIndex;let n=0,r=null,o=t;for(;o!==null;){if(r=Pm(o),r===null)return io;if(n++,o=o[Tn],r.injectorIndex!==-1)return r.injectorIndex|n<<16}return io}function fI(e,t,n){uI(e,t,n)}function pI(e,t){if(t===`class`)return e.classes;if(t===`style`)return e.styles;let n=e.attrs;if(n){let r=n.length,o=0;for(;o<r;){let i=n[o];if(Tm(i))break;if(i===0)o=o+2;else if(typeof i==`number`)for(o++;o<r&&typeof n[o]==`string`;)o++;else{if(i===t)return n[o+1];o=o+2}}}return null}function Rm(e,t,n){if(n&8||e!==void 0)return e;Hs(t,`NodeInjector`)}function xm(e,t,n,r){if(n&8&&r===void 0&&(r=null),(n&3)===0){let o=e[Ke],i=He(void 0);try{return o?o.get(t,r,n&8):od(t,r,n&8)}finally{He(i)}}return Rm(r,t,n)}function Om(e,t,n,r=0,o){if(e!==null){if(t[M]&2048&&!(r&2)){let s=vI(e,t,n,r,Zt);if(s!==Zt)return s}let i=km(e,t,n,r,Zt);if(i!==Zt)return i}return xm(t,n,r,o)}function km(e,t,n,r,o){let i=gI(n);if(typeof i==`function`){if(!Td(t,e,r))return r&1?Rm(o,n,r):xm(t,n,r,o);try{let s;if(s=i(r),s==null&&!(r&8))Hs(n);else return s}finally{Cd()}}else if(typeof i==`number`){let s=null,a=Am(e,t),c=io,l=r&1?t[$e][nt]:null;for((a===-1||r&4)&&(c=a===-1?Mu(e,t):t[a+8],c===io||!kg(r,!1)?a=-1:(s=t[D],a=ya(c),t=ba(c,t)));a!==-1;){let d=t[D];if(Og(i,a,d.data)){let u=hI(a,t,n,s,r,l);if(u!==Zt)return u}c=t[a+8],c!==io&&kg(r,t[D].data[a+8]===l)&&Og(i,a,t)?(s=d,a=ya(c),t=ba(c,t)):a=-1}}return o}function hI(e,t,n,r,o,i){let s=t[D],a=s.data[e+8],d=pa(a,s,n,r==null?Bt(a)&&Wd:r!=s&&(a.type&3)!==0,o&1&&i===a);return d!==null?wa(t,s,d,a,o):Zt}function pa(e,t,n,r,o){let i=e.providerIndexes,s=t.data,a=i&1048575,c=e.directiveStart,l=e.directiveEnd,d=i>>20,u=r?a:a+d,f=o?a+d:l;for(let h=u;h<f;h++){let y=s[h];if(h<c&&n===y||h>=c&&y.type===n)return h}if(o){let h=s[c];if(h&&hr(h)&&h.type===n)return c}return null}function wa(e,t,n,r,o){let i=e[n],s=t.data;if(i instanceof li){let a=i;if(a.resolving)throw rd(``);let c=Ea(a.canSeeViewProviders);a.resolving=!0;s[n].type||s[n];let u=a.injectImpl?He(a.injectImpl):null;Td(e,r,0);try{i=e[n]=a.factory(void 0,o,s,e,r),t.firstCreatePass&&n>=r.directiveStart&&tI(n,s[n],t)}finally{u!==null&&He(u),Ea(c),a.resolving=!1,Cd()}}return i}function gI(e){if(typeof e==`string`)return e.charCodeAt(0)||0;let t=Object.hasOwn(e,lr)?e[lr]:void 0;return typeof t==`number`?t>=0?t&_m:mI:t}function Og(e,t,n){let r=1<<e;return!!(n[t+(e>>Mm)]&r)}function kg(e,t){return!(e&2)&&!(e&1&&t)}var An=class{_tNode;_lView;constructor(t,n){this._tNode=t,this._lView=n}get(t,n,r){return Om(this._tNode,this._lView,t,sr(r),n)}};function mI(){return new An(ze(),L())}function vI(e,t,n,r,o){let i=e,s=t;for(;i!==null&&s!==null&&s[M]&2048&&!gr(s);){let a=km(i,s,n,r|2,Zt);if(a!==Zt)return a;let c=i.parent;if(!c){let l=s[ld];if(l){let d=l.get(n,Zt,r&-5);if(d!==Zt)return d}c=Pm(s),s=s[Tn]}i=c}return o}function Pm(e){let t=e[D],n=t.type;return n===2?t.declTNode:n===1?e[nt]:null}function La(e){return pI(ze(),e)}function ce(e){return{token:e.token,providedIn:e.autoProvided===!1?null:`root`,factory:e.factory,value:void 0}}function yI(){return po(ze(),L())}function po(e,t){return new xt(ot(e,t))}var xt=(()=>{class e{nativeElement;constructor(n){this.nativeElement=n}static __NG_ELEMENT_ID__=yI}return e})();function bI(e){return e instanceof xt?e.nativeElement:e}function EI(){return this._results[Symbol.iterator]()}var Ia=class{_emitDistinctChangesOnly;dirty=!0;_onDirty=void 0;_results=[];_changesDetected=!1;_changes=void 0;length=0;first=void 0;last=void 0;get changes(){return this._changes??=new le}constructor(t=!1){this._emitDistinctChangesOnly=t}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)}
4forEach(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){this.dirty=!1;let r=Hh(t);(this._changesDetected=!Uh(this._results,r,n))&&(this._results=r,this.length=r.length,this.last=r[this.length-1],this.first=r[0])}notifyOnChanges(){this._changes!==void 0&&(this._changesDetected||!this._emitDistinctChangesOnly)&&this._changes.next(this)}onDirty(t){this._onDirty=t}setDirty(){this.dirty=!0,this._onDirty?.()}destroy(){this._changes!==void 0&&(this._changes.complete(),this._changes.unsubscribe())}[Symbol.iterator]=EI};var Lm=`ngSkipHydration`;var wI=`ngskiphydration`;function jm(e){let t=e.mergedAttrs;if(t===null)return!1;for(let n=0;n<t.length;n+=2){let r=t[n];if(typeof r==`number`)return!1;if(typeof r==`string`&&r.toLowerCase()===wI)return!0}return!1}function Fm(e){return e.hasAttribute(Lm)}function Sa(e){return(e.flags&128)===128}function Um(e){if(Sa(e))return!0;let t=e.parent;for(;t;){if(Sa(e)||jm(t))return!0;t=t.parent}return!1}var Nu=(function(e){return e[e.OnPush=0]=`OnPush`,e[e.Eager=1]=`Eager`,e[e.Default=1]=`Default`,e})(Nu||{});var Hm=new Map;var II=0;function SI(){return II++}function DI(e){Hm.set(e[Vt],e)}function qd(e){Hm.delete(e[Vt])}var Pg=`__ngContext__`;function ao(e,t){mt(t)?(e[Pg]=t[Vt],DI(t)):e[Pg]=t}function Vm(e){return Bm(e[Xr])}function $m(e){return Bm(e[gt])}function Bm(e){for(;e!==null&&!Qe(e);)e=e[gt];return e}var Zd;function Au(e){Zd=e}function ja(){if(Zd!==void 0)return Zd;if(typeof document<`u`)return document;throw new w(210,!1)}var zm=`h`;var Wm=`b`;var TI=`f`;var CI=`n`;var Zm=`t`;var Fa=`c`;var Ru=`x`;var di=`r`;var Gm=`i`;var Ym=`n`;var xu=`d`;var Km=`di`;var Qm=`s`;var Jm=`p`;var Cr=new I(``);var Xm=!1;var Ou=new I(``,{factory:()=>Xm});var ku=new I(``);var ev=!1;var tv=new I(``,{factory:()=>[]});var Pu=new I(``);var Lu=new I(``,{factory:()=>new Map});var vi=`ngb`;var nv=(e,t,n)=>{let r=e,o=r.__jsaction_fns??new Map,i=o.get(t)??[];i.push(n),o.set(t,i),r.__jsaction_fns=o};var rv=(e,t)=>{let n=e,r=n.getAttribute(vi)??``,o=t.get(r)??new Set;o.has(n)||o.add(n),t.set(r,o)};var ov=e=>{e.removeAttribute(sa.JSACTION),e.removeAttribute(vi),e.__jsaction_fns=void 0};var iv=new I(``,{factory:()=>({})});var Gd=new WeakMap;function _I(e,t){if(e==null||typeof e!=`object`)return;let n=Gd.get(e);n||(n=new WeakSet,Gd.set(e,n)),n.add(t)}function ju(e,t){let n=t?.__jsaction_fns?.get(e.type);if(!(!n||!t?.isConnected)&&!(t&&Gd.get(e)?.has(t)))for(let r of n)r(e)}var Yd=new Map;function sv(e,t){return Yd.set(e,t),()=>Yd.delete(e)}var Lg=!1;var av=(e,t,n,r)=>{};function MI(e,t,n,r){av(e,t,n,r)}function cv(){Lg||(av=(e,t,n,r)=>{let o=e[Ke].get(Nt);Yd.get(o)?.(t,n,r)},Lg=!0)}var yi=new I(``);function Ua(e){return(e.flags&32)===32}var Fu=`__nghData__`;var lv=`__nghDeferData__`;var ha=`ngh`;var dv=`nghm`;var uv=()=>null;function RI(e,t,n=!1){let r=e.getAttribute(ha);if(r==null)return null;let[o,i]=r.split(`|`);if(r=n?i:o,!r)return null;let s=i?`|${i}`:``,a=n?o:s,c={};if(r!==``){let d=t.get(Nn,null,{optional:!0});d!==null&&(c=d.get(Fu,[])[Number(r)])}let l={data:c,firstChild:e.firstChild??null};return n&&(l.firstChild=e,Ha(l,0,e.nextSibling)),a?e.setAttribute(ha,a):e.removeAttribute(ha),l}function fv(){uv=RI}function pv(e,t,n=!1){return uv(e,t,n)}function hv(e){let t=e._lView;return t[D].type===2?null:(gr(t)&&(t=t[Y]),t)}function xI(e){return e.textContent?.replace(/\s/gm,``)}function OI(e){let t=ja(),n=t.createNodeIterator(e,NodeFilter.SHOW_COMMENT,{acceptNode(i){let s=xI(i);return s===`ngetn`||s===`ngtns`?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_REJECT}}),r,o=[];for(;r=n.nextNode();)o.push(r);for(let i of o)i.textContent===`ngetn`?i.replaceWith(t.createTextNode(``)):i.remove()}function Ha(e,t,n){e.segmentHeads??={},e.segmentHeads[t]=n}function Kd(e,t){return e.segmentHeads?.[t]??null}function gv(e){return e.get(Pu,!1,{optional:!0})}function mv(e,t){return e.data[Fa]?.[t]??null}function Uu(e,t){let n=mv(e,t)??[],r=0;for(let o of n)r+=o[di]*(o[Ru]??1);return r}function PI(e){if(typeof e.disconnectedNodes>`u`){let t=e.data[xu];e.disconnectedNodes=t?new Set(t):null}return e.disconnectedNodes}function vv(e,t){if(typeof e.disconnectedNodes>`u`){let n=e.data[xu];e.disconnectedNodes=n?new Set(n):null}return!!PI(e)?.has(t)}function Va(e,t){let n=e[Ye];return n!==null&&!vd()&&!Ua(t)&&!vv(n,t.index-Y)}function LI(e,t){let n=t.get(yi),o=t.get(Nn).get(lv,{}),i=!1,s=e,a=null,c=[];for(;!i&&s;){i=n.has(s);let l=n.hydrating.get(s);if(a===null&&l!=null){a=l.promise;break}c.unshift(s),s=o[s][Jm]}return{parentBlockPromise:a,hydrationQueue:c}}function Pd(e){return!!e&&e.nodeType===Node.COMMENT_NODE&&e.textContent?.trim()===dv}function jg(e){for(;e&&e.nodeType===Node.TEXT_NODE;)e=e.previousSibling;return e}function yv(e){for(let r of e.body.childNodes)if(Pd(r))return;if(Pd(jg(e.body.previousSibling)))return;if(!Pd(jg(e.head.lastChild)))throw new w(-507,!1)}function bv(e,t){let n=e.contentQueries;if(n!==null){let r=T(null);try{for(let o=0;o<n.length;o+=2){let i=n[o],s=n[o+1];if(s!==-1){let a=e.data[s];Js(i),a.contentQueries(2,t[s],s)}}}finally{T(r)}}}
4function Qd(e,t,n){Js(0);let r=T(null);try{t(e,n)}finally{T(r)}}function Ev(e,t,n){if(dd(t)){let r=T(null);try{let o=t.directiveStart,i=t.directiveEnd;for(let s=o;s<i;s++){let a=e.data[s];if(a.contentQueries){let c=n[s];a.contentQueries(1,c,s)}}}finally{T(r)}}}var Rt=(function(e){return e[e.Emulated=0]=`Emulated`,e[e.None=2]=`None`,e[e.ShadowDom=3]=`ShadowDom`,e[e.ExperimentalIsolatedShadowDom=4]=`ExperimentalIsolatedShadowDom`,e})(Rt||{});var jI={"http://www.w3.org/2000/svg":Kr,"http://www.w3.org/1998/Math/MathML":qs};var aa;function FI(){if(aa===void 0&&(aa=null,Dn.trustedTypes))try{aa=Dn.trustedTypes.createPolicy(`angular`,{createHTML:e=>e,createScript:e=>e,createScriptURL:e=>e})}catch{}return aa}function $a(e){return FI()?.createHTML(e)||e}var ca;function wv(){if(ca===void 0&&(ca=null,Dn.trustedTypes))try{ca=Dn.trustedTypes.createPolicy(`angular#unsafe-bypass`,{createHTML:e=>e,createScript:e=>e,createScriptURL:e=>e})}catch{}return ca}function Fg(e){return wv()?.createHTML(e)||e}function Ug(e){return wv()?.createScriptURL(e)||e}var un=class{changingThisBreaksApplicationSecurity;constructor(t){this.changingThisBreaksApplicationSecurity=t}toString(){return`SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity} (see ${Ps})`}};var Jd=class extends un{getTypeName(){return`HTML`}};var Xd=class extends un{getTypeName(){return`Style`}};var eu=class extends un{getTypeName(){return`Script`}};var tu=class extends un{getTypeName(){return`URL`}};var nu=class extends un{getTypeName(){return`ResourceURL`}};function st(e){return e instanceof un?e.changingThisBreaksApplicationSecurity:e}function Gt(e,t){let n=Iv(e);if(n!=null&&n!==t){if(n===`ResourceURL`&&t===`URL`)return!0;throw new Error(`Required a safe ${t}, got a ${n} (see ${Ps})`)}return n===t}function Iv(e){return e instanceof un&&e.getTypeName()||null}function Hu(e){return new Jd(e)}function Vu(e){return new Xd(e)}function $u(e){return new eu(e)}function Bu(e){return new tu(e)}function zu(e){return new nu(e)}function UI(e){let t=new ou(e);return HI()?new ru(t):t}var ru=class{inertDocumentHelper;constructor(t){this.inertDocumentHelper=t}getInertBodyElement(t){t=`<body><remove></remove>`+t;try{let n=new window.DOMParser().parseFromString($a(t),`text/html`).body;return n===null?this.inertDocumentHelper.getInertBodyElement(t):(n.firstChild?.remove(),n)}catch{return null}}};var ou=class{defaultDoc;inertDocument;constructor(t){this.defaultDoc=t,this.inertDocument=this.defaultDoc.implementation.createHTMLDocument(`sanitization-inert`)}getInertBodyElement(t){let n=this.inertDocument.createElement(`template`);return n.innerHTML=$a(t),n}};function HI(){try{return!!new window.DOMParser().parseFromString($a(``),`text/html`)}catch{return!1}}var VI=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:\/?#]*(?:[\/?#]|$))/i;function bi(e){return e=String(e),e.match(VI)?e:`unsafe:`+e}function pn(e){let t={};for(let n of e.split(`,`))t[n]=!0;return t}function Ei(...e){let t={};for(let n of e)for(let r in n)Object.hasOwn(n,r)&&(t[r]=!0);return t}var Sv=pn(`area,br,col,hr,img,wbr`);var Dv=pn(`colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr`);var Tv=pn(`rp,rt`);var $I=Ei(Tv,Dv);var Hg=Ei(Sv,Ei(Dv,pn(`address,article,aside,blockquote,caption,center,del,details,dialog,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,h6,header,hgroup,hr,ins,main,map,menu,nav,ol,pre,section,summary,table,ul`)),Ei(Tv,pn(`a,abbr,acronym,audio,b,bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,picture,q,ruby,rp,rt,s,samp,small,source,span,strike,strong,sub,sup,time,track,tt,u,var,video`)),$I);var Cv=pn(`background,cite,href,itemtype,longdesc,poster,src,xlink:href`);var ZI=Ei(Cv,pn(`abbr,accesskey,align,alt,autoplay,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,controls,coords,datetime,default,dir,download,face,headers,height,hidden,hreflang,hspace,ismap,itemscope,itemprop,kind,label,lang,language,loop,media,muted,nohref,nowrap,open,preload,rel,rev,role,rows,rowspan,rules,scope,scrolling,shape,size,sizes,span,srclang,srcset,start,summary,tabindex,target,title,translate,type,usemap,valign,value,vspace,width`),pn(`aria-activedescendant,aria-atomic,aria-autocomplete,aria-busy,aria-checked,aria-colcount,aria-colindex,aria-colspan,aria-controls,aria-current,aria-describedby,aria-details,aria-disabled,aria-dropeffect,aria-errormessage,aria-expanded,aria-flowto,aria-grabbed,aria-haspopup,aria-hidden,aria-invalid,aria-keyshortcuts,aria-label,aria-labelledby,aria-level,aria-live,aria-modal,aria-multiline,aria-multiselectable,aria-orientation,aria-owns,aria-placeholder,aria-posinset,aria-pressed,aria-readonly,aria-relevant,aria-required,aria-roledescription,aria-rowcount,aria-rowindex,aria-rowspan,aria-selected,aria-setsize,aria-sort,aria-valuemax,aria-valuemin,aria-valuenow,aria-valuetext`));var GI=pn(`script,style,template`);var iu=class{sanitizedSomething=!1;buf=[];sanitizeChildren(t){let n=t.firstChild,r=!0,o=[];for(;n;){if(n.nodeType===Node.ELEMENT_NODE?r=this.startElement(n):n.nodeType===Node.TEXT_NODE?this.chars(n.nodeValue):this.sanitizedSomething=!0,r&&n.firstChild){o.push(n),n=QI(n);continue}for(;n;){n.nodeType===Node.ELEMENT_NODE&&this.endElement(n);let i=KI(n);if(i){n=i;break}n=o.pop()}}return this.buf.join(``)}startElement(t){let n=Vg(t).toLowerCase();if(!Object.hasOwn(Hg,n))return this.sanitizedSomething=!0,!Object.hasOwn(GI,n);this.buf.push(`<`),this.buf.push(n);let r=t.attributes;for(let o=0;o<r.length;o++){let i=r.item(o),s=i.name,a=s.toLowerCase();if(!Object.hasOwn(ZI,a)){this.sanitizedSomething=!0;continue}let c=i.value;Cv[a]&&(c=bi(c)),this.buf.push(` `,s,`="`,$g(c),`"`)}return this.buf.push(`>`),!0}endElement(t){let n=Vg(t).toLowerCase();Object.hasOwn(Hg,n)&&!Object.hasOwn(Sv,n)&&(this.buf.push(`</`),this.buf.push(n),this.buf.push(`>`))}chars(t){this.buf.push($g(t))}};function YI(e,t){return(e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_CONTAINED_BY)!==Node.DOCUMENT_POSITION_CONTAINED_BY}function KI(e){let t=e.nextSibling;if(t&&e!==t.previousSibling)throw _v(t);return t}function QI(e){let t=e.firstChild;if(t&&YI(e,t))throw _v(t);return t}function Vg(e){let t=e.nodeName;return typeof t==`string`?t:`FORM`}function _v(e){return new Error(`Failed to sanitize html because the element is clobbered: ${e.outerHTML}`)}var JI=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g;var XI=/([^\#-~ |!])/g;function $g(e){return e.replace(/&/g,`&`).replace(JI,function(t){let n=t.charCodeAt(0),r=t.charCodeAt(1);return`&#`+((n-55296)*1024+(r-56320)+65536)+`;`}).replace(XI,function(t){return`&#`+t.charCodeAt(0)+`;`}).replace(/</g,`<`).replace(/>/g,`>`)}var la;function Ba(e,t){let n=null;try{la=la||UI(e);let r=t?String(t):``;n=la.getInertBodyElement(r);let o=5,i=r;do{if(o===0)throw new Error(`Failed to sanitize html because the input is unstable`);o--,r=i,i=n.innerHTML,n=la.getInertBodyElement(r)}while(r!==i);return $a(new iu().sanitizeChildren(Bg(n)||n))}finally{if(n){let r=Bg(n)||n;for(;r.firstChild;)r.firstChild.remove()}}}function Bg(e){return`content`in e&&eS(e)?e.content:null}
vendor: 4,152 bytes, line 4
4function eS(e){return e.nodeType===Node.ELEMENT_NODE&&e.nodeName===`TEMPLATE`}function Mv(e,t){return e.createText(t)}function iS(e,t,n){e.setValue(t,n)}function Wu(e,t,n){return e.createElement(t,n)}function wr(e,t,n,r,o){e.insertBefore(t,n,r,o)}function Av(e,t,n){e.appendChild(t,n)}function zg(e,t,n,r,o){r!==null?wr(e,t,n,r,o):Av(e,t,n)}function qu(e,t,n,r){e.removeChild(null,t,n,r)}function Rv(e){e.textContent=``}function sS(e,t,n){e.setAttribute(t,`style`,n)}function aS(e,t,n){n===``?e.removeAttribute(t,`class`):e.setAttribute(t,`class`,n)}function xv(e,t,n){let{mergedAttrs:r,classes:o,styles:i}=n;r!==null&&sI(e,t,r),o!==null&&aS(e,t,o),i!==null&&sS(e,t,i)}function cS(e,t=!0){if(e[0]!=`:`)return[null,e];let n=e.indexOf(`:`,1);if(n===-1){if(t)throw new Error(`Unsupported format "${e}" expecting ":namespace:name"`);return[null,e]}return[e.slice(1,n),e.slice(n+1)]}function Zu(e,t,n){if(t!==void 0&&n!==void 0&&kv(t,n)!==X.HTML)return e;let r=Yu();return r?Fg(r.sanitize(X.HTML,e)||``):Gt(e,`HTML`)?Fg(st(e)):Ba(ja(),Go(e))}function ee(e){let t=Yu();return t?t.sanitize(X.URL,e)||``:Gt(e,`URL`)?st(e):bi(Go(e))}function Ov(e){let t=Yu();if(t)return Ug(t.sanitize(X.RESOURCE_URL,e)||``);if(Gt(e,`ResourceURL`))return Ug(st(e));throw new w(904,!1)}function lS(e,t){switch(kv(e,t)){case X.RESOURCE_URL:return Ov;case X.URL:return ee;default:return null}}function Gu(e,t,n){return lS(t,n)?.(e)??e}function Yu(){let e=L();return e&&e[_t].sanitizer}function kv(e,t){let[n,r]=dS(e);return Qh(r,t,n)}function dS(e){e=e.toLowerCase();let t=cS(e,!1);if(t[0])return t;let r=ln()===-1?null:ti(),o=r?.namespace;if(e===`#host`&&r?.type===2){let i=ot(r,L());if(i.tagName&&(e=i.tagName.toLowerCase()),o==null){let s=i.namespaceURI;o=s&&jI[s]}}return[o,e]}function Ku(e){return e.ownerDocument}function Pv(e){return e.ownerDocument.body}function uS(e){return e instanceof Function?e():e}function fS(e,t,n){let r=e.length;for(;;){let o=e.indexOf(t,n);if(o===-1)return o;if(o===0||e.charCodeAt(o-1)<=32){let i=t.length;if(o+i===r||e.charCodeAt(o+i)<=32)return o}n=o+1}}var Lv=`ng-template`;function pS(e,t,n,r){let o=0;if(r){for(;o<t.length&&typeof t[o]==`string`;o+=2)if(t[o]===`class`&&fS(t[o+1].toLowerCase(),n,0)!==-1)return!0}else if(Qu(e))return!1;if(o=t.indexOf(1,o),o>-1){let i;for(;++o<t.length&&typeof(i=t[o])==`string`;)if(i.toLowerCase()===n)return!0}return!1}function Qu(e){return e.type===4&&e.value!==Lv}function hS(e,t,n){return t===(e.type===4&&!n?Lv:e.value)}function gS(e,t,n){let r=4,o=e.attrs,i=o!==null?yS(o):0,s=!1;for(let a=0;a<t.length;a++){let c=t[a];if(typeof c==`number`){if(!s&&!At(r)&&!At(c))return!1;if(s&&At(c))continue;s=!1,r=c|r&1;continue}if(!s)if(r&4){if(r=2|r&1,c!==``&&!hS(e,c,n)||c===``&&t.length===1){if(At(r))return!1;s=!0}}else if(r&8){if(o===null||!pS(e,o,c,n)){if(At(r))return!1;s=!0}}else{let l=t[++a],d=mS(c,o,Qu(e),n);if(d===-1){if(At(r))return!1;s=!0;continue}if(l!==``){let u;if(d>i?u=``:u=o[d+1].toLowerCase(),r&2&&l!==u){if(At(r))return!1;s=!0}}}}return At(r)||s}function At(e){return(e&1)===0}function mS(e,t,n,r){if(t===null)return-1;let o=0;if(r||!n){let i=!1;for(;o<t.length;){let s=t[o];if(s===e)return o;if(s===3||s===6)i=!0;else if(s===1||s===2){let a=t[++o];for(;typeof a==`string`;)a=t[++o];continue}else{if(s===4)break;if(s===0){o+=4;continue}}o+=i?1:2}return-1}else return bS(t,e)}function vS(e,t,n=!1){for(let r=0;r<t.length;r++)if(gS(e,t[r],n))return!0;return!1}function yS(e){for(let t=0;t<e.length;t++){let n=e[t];if(Tm(n))return t}return e.length}function bS(e,t){let n=e.indexOf(4);if(n>-1)for(n++;n<e.length;){let r=e[n];if(typeof r==`number`)return-1;if(r===t)return n;n++}return-1}function Wg(e,t){return e?`:not(`+t.trim()+`)`:t}function ES(e){let t=e[0],n=1,r=2,o=``,i=!1;for(;n<e.length;){let s=e[n];if(typeof s==`string`)if(r&2){let a=e[++n];o+=`[`+s+(a.length>0?`="`+a+`"`:``)+`]`}else r&8?o+=`.`+s:r&4&&(o+=` `+s);else o!==``&&!At(s)&&(t+=Wg(i,o),o=``),r=s,i=i||!At(r);n++}return o!==``&&(t+=Wg(i,o)),t}function wS(e){return e.map(ES).join(`,`)}function IS(e){let t=[],n=[],r=1,o=2;for(;r<e.length;){let i=e[r];if(typeof i==`string`)o===2?i!==``&&t.push(i,e[++r]):o===8&&n.push(i);
4else{if(!At(o))break;o=i}r++}return n.length&&t.push(1,...n),t}var Yt={};var fn=(function(e){return e[e.Important=1]=`Important`,e[e.DashCase=2]=`DashCase`,e})(fn||{});var SS;function Ju(e,t){return SS(e,t)}var Rn=new Set;typeof document<`u`&&document?.documentElement?.getAnimations;var su=new WeakMap;function jv(e){return e?e[Tn]??e:null}var si=new WeakSet;function DS(e,t,n){let r=su.get(e);if(!r||r.length===0)return;let o=t.parentNode,i=t.previousSibling,s=jv(n);for(let a=r.length-1;a>=0;a--){let{el:c,declarationView:l}=r[a],d=c.parentNode;c===t?(r.splice(a,1),si.add(c),c.dispatchEvent(new CustomEvent(`animationend`,{detail:{cancel:!0}}))):i&&c===i?(r.splice(a,1),c.dispatchEvent(new CustomEvent(`animationend`,{detail:{cancel:!0}})),c.parentNode?.removeChild(c)):d&&o&&d!==o&&(s===null||l===null||s===l)&&(r.splice(a,1),c.dispatchEvent(new CustomEvent(`animationend`,{detail:{cancel:!0}})),c.parentNode?.removeChild(c))}}function TS(e,t,n){let r=jv(n),o=su.get(e);o?o.some(i=>i.el===t)||o.push({el:t,declarationView:r}):su.set(e,[{el:t,declarationView:r}])}var za=(function(e){return e[e.CHANGE_DETECTION=0]=`CHANGE_DETECTION`,e[e.AFTER_NEXT_RENDER=1]=`AFTER_NEXT_RENDER`,e})(za||{});var hn=new I(``);var qg=new Set;function Je(e){qg.has(e)||(qg.add(e),performance?.mark?.(`mark_feature_usage`,{detail:{feature:e}}))}var Xu=(()=>{class e{impl=null;execute(){this.impl?.execute()}static ɵprov=O({token:e,providedIn:`root`,factory:()=>new e})}return e})();var Fv=[0,1,2,3];var Uv=(()=>{class e{ngZone=p(Oe);scheduler=p(Ut);errorHandler=p(Dt,{optional:!0});sequences=new Set;deferredRegistrations=new Set;executing=!1;constructor(){p(hn,{optional:!0})}execute(){let n=this.sequences.size>0;n&&$(U.AfterRenderHooksStart),this.executing=!0;for(let r of Fv)for(let o of this.sequences)if(!(o.erroredOrDestroyed||!o.hooks[r]))try{o.pipelinedValue=this.ngZone.runOutsideAngular(()=>this.maybeTrace(()=>{let i=o.hooks[r];return i(o.pipelinedValue)},o.snapshot))}catch(i){o.erroredOrDestroyed=!0,this.errorHandler?.handleError(i)}this.executing=!1;for(let r of this.sequences)r.afterRun(),r.once&&(this.sequences.delete(r),r.destroy());for(let r of this.deferredRegistrations)this.sequences.add(r);this.deferredRegistrations.size>0&&this.scheduler.notify(7),this.deferredRegistrations.clear(),n&&$(U.AfterRenderHooksEnd)}register(n){let{view:r}=n;r!==void 0?((r[fr]??=[]).push(n),mr(r),r[M]|=8192):this.executing?this.deferredRegistrations.add(n):this.addSequence(n)}addSequence(n){this.sequences.add(n),this.scheduler.notify(7)}unregister(n){this.executing&&this.sequences.has(n)?(n.erroredOrDestroyed=!0,n.pipelinedValue=void 0,n.once=!0):(this.sequences.delete(n),this.deferredRegistrations.delete(n))}maybeTrace(n,r){return r?r.run(za.AFTER_NEXT_RENDER,n):n()}static ɵprov=O({token:e,providedIn:`root`,factory:()=>new e})}return e})();var Da=class{impl;hooks;view;once;snapshot;erroredOrDestroyed=!1;pipelinedValue=void 0;unregisterOnDestroy;constructor(t,n,r,o,i,s=null){this.impl=t,this.hooks=n,this.view=r,this.once=o,this.snapshot=s,this.unregisterOnDestroy=i?.onDestroy(()=>this.destroy())}afterRun(){this.erroredOrDestroyed=!1,this.pipelinedValue=void 0,this.snapshot?.dispose(),this.snapshot=null}destroy(){this.impl.unregister(this),this.unregisterOnDestroy?.();let t=this.view?.[fr];t&&(this.view[fr]=t.filter(n=>n!==this))}};function ef(e,t){let n=t?.injector??p(xe);return Je(`NgAfterRender`),Hv(e,n,t,!1)}function Wa(e,t){let n=t?.injector??p(xe);return Je(`NgAfterNextRender`),Hv(e,n,t,!0)}function CS(e){return e instanceof Function?[void 0,void 0,e,void 0]:[e.earlyRead,e.write,e.mixedReadWrite,e.read]}function Hv(e,t,n,r){let o=t.get(Xu);o.impl??=t.get(Uv);let i=t.get(hn,null,{optional:!0}),s=n?.manualCleanup!==!0?t.get(fe):null,a=t.get(oi,null,{optional:!0}),c=new Da(o.impl,CS(e),a?.view,r,s,i?.snapshot(null));return o.impl.register(c),c}var tf=new I(``,{factory:()=>{let e=p(ae),t=new Set;return e.onDestroy(()=>t.clear()),{queue:t,isScheduled:!1,scheduler:null,injector:e}}});function Vv(e,t,n){let r=e.get(tf);if(Array.isArray(t))for(let o of t)r.queue.add(o),n?.detachedLeaveAnimationFns?.push(o);else r.queue.add(t),n?.detachedLeaveAnimationFns?.push(t);r.scheduler&&r.scheduler(e)}function _S(e,t){let n=e.get(tf);
4if(Array.isArray(t))for(let r of t)n.queue.delete(r);else n.queue.delete(t)}function MS(e,t){let n=e.get(tf);if(t.detachedLeaveAnimationFns){for(let r of t.detachedLeaveAnimationFns)n.queue.delete(r);t.detachedLeaveAnimationFns=void 0}}function NS(e,t){for(let[n,r]of t)Vv(e,r.animateFns)}function Zg(e,t,n,r){let o=e?.[$t]?.enter;t!==null&&o&&o.has(n.index)&&NS(r,o)}function Gg(e,t,n,r){try{n.get(Ko)}catch{return r(!1)}let o=e?.[$t];o?.enter?.has(t.index)&&_S(n,o.enter.get(t.index).animateFns);let i=AS(e,t,o);if(i.size===0){let s=!1;if(e){let a=[];qa(e,t,a),s=a.length>0}if(!s)return r(!1)}e&&Rn.add(e[Vt]),Vv(n,()=>RS(e,t,o||void 0,i,r),o||void 0)}function AS(e,t,n){let r=new Map,o=n?.leave;if(o&&o.has(t.index)&&r.set(t.index,o.get(t.index)),e&&o)for(let[i,s]of o){if(r.has(i))continue;let c=e[D].data[i].parent;for(;c;){if(c===t){r.set(i,s);break}c=c.parent}}return r}function RS(e,t,n,r,o){let i=[];if(n&&n.leave)for(let[s]of r){if(!n.leave.has(s))continue;let a=n.leave.get(s);for(let c of a.animateFns){let{promise:l}=c();i.push(l)}n.detachedLeaveAnimationFns=void 0}if(e&&qa(e,t,i),i.length>0){let s=n||e?.[$t];if(s){let a=s.running;a&&i.push(a),s.running=Promise.allSettled(i),OS(e,s.running,o)}else Promise.allSettled(i).then(()=>{e&&Rn.delete(e[Vt]),o(!0)})}else e&&Rn.delete(e[Vt]),o(!1)}function qa(e,t,n){if(t.type&12){let o=e[t.index];if(Qe(o))for(let i=oe;i<o.length;i++){let s=o[i];s[D].type===2&&xS(s,n)}}let r=t.child;for(;r;)qa(e,r,n),r=r.next}function xS(e,t){let n=e[$t];if(n&&n.leave)for(let o of n.leave.values())for(let i of o.animateFns){let{promise:s}=i();t.push(s)}let r=e[D].firstChild;for(;r;)qa(e,r,t),r=r.next}function OS(e,t,n){t.then(()=>{e[$t]?.running===t&&(e[$t].running=void 0,Rn.delete(e[Vt])),n(!0)})}function oo(e,t,n,r,o,i,s,a){if(o!=null){let c,l=!1;Qe(o)?c=o:mt(o)&&(l=!0,o=o[Ve]);let d=Ie(o);e===0&&r!==null?(Zg(a,r,i,n),s==null?Av(t,r,d):wr(t,r,d,s||null,!0)):e===1&&r!==null?(Zg(a,r,i,n),wr(t,r,d,s||null,!0),DS(i,d,a)):e===2?(a?.[$t]?.leave?.has(i.index)&&TS(i,d,a),si.delete(d),Gg(a,i,n,u=>{if(si.has(d)){si.delete(d);return}qu(t,d,l,u)})):e===3&&(si.delete(d),Gg(a,i,n,()=>{t.destroyNode(d)})),c!=null&&qS(t,e,n,c,i,r,s)}}function kS(e,t){$v(e,t),t[Ve]=null,t[nt]=null}function PS(e,t,n,r,o,i){r[Ve]=o,r[nt]=t,Ga(e,r,n,1,o,i)}function $v(e,t){t[_t].changeDetectionScheduler?.notify(9),Ga(e,t,t[G],2,null,null)}function LS(e){let t=e[Xr];if(!t)return Ld(e[D],e);for(;t;){let n=null;if(mt(t))n=t[Xr];else{let r=t[oe];r&&(n=r)}if(!n){for(;t&&!t[gt]&&t!==e;)mt(t)&&Ld(t[D],t),t=t[ue];t===null&&(t=e),mt(t)&&Ld(t[D],t),n=t&&t[gt]}t=n}}function nf(e,t){let n=e[pr],r=n.indexOf(t);n.splice(r,1)}function Za(e,t){if(_n(t))return;let n=t[G];n.destroyNode&&Ga(e,t,n,3,null,null),LS(t)}function Ld(e,t){if(_n(t))return;let n=T(null);try{t[M]&=-129,t[M]|=256,t[rt]&&Jn(t[rt]),FS(e,t),jS(e,t),t[D].type===1&&t[G].destroy();let r=t[Cn];if(r!==null&&Qe(t[ue])){r!==t[ue]&&nf(r,t);let o=t[Ht];o!==null&&o.detachView(e)}qd(t)}finally{T(n)}}function jS(e,t){let n=e.cleanup,r=t[Jr];if(n!==null)for(let s=0;s<n.length-1;s+=2)if(typeof n[s]==`string`){let a=n[s+3];a>=0?r[a]():r[-a].unsubscribe(),s+=2}else{let a=r[n[s+1]];n[s].call(a)}r!==null&&(t[Jr]=null);let o=t[rn];if(o!==null){t[rn]=null;for(let s=0;s<o.length;s++){let a=o[s];a()}}let i=t[on];if(i!==null){t[on]=null;for(let s of i)s.destroy()}}function FS(e,t){let n;if(e!=null&&(n=e.destroyHooks)!=null)for(let r=0;r<n.length;r+=2){let o=t[n[r]];if(!(o instanceof li)){let i=n[r+1];if(Array.isArray(i))for(let s=0;s<i.length;s+=2){let a=o[i[s]],c=i[s+1];$(U.LifecycleHookStart,a,c);try{c.call(a)}finally{$(U.LifecycleHookEnd,a,c)}}else{$(U.LifecycleHookStart,o,i);try{i.call(o)}finally{$(U.LifecycleHookEnd,o,i)}}}}}function US(e,t,n){return HS(e,t.parent,n)}function HS(e,t,n){let r=t;for(;r!==null&&r.type&168;)t=r,r=t.parent;if(r===null)return n[Ve];if(Bt(r)){let{encapsulation:o}=e.data[r.directiveStart+r.componentOffset];if(o===Rt.None||o===Rt.Emulated)return null}return ot(r,n)}function VS(e,t,n){return BS(e,t,n)}function $S(e,t,n){return e.type&40?ot(e,n):null}var BS=$S;var Yg;function rf(e,t,n,r){let o=US(e,r,t),i=t[G],a=VS(r.parent||t[nt],r,t);if(o!=null)if(Array.isArray(n))for(let c=0;c<n.length;c++)zg(i,o,n[c],a,!1);else zg(i,o,n,a,!1);Yg!==void 0&&Yg(i,r,t,n,o)}function ai(e,t){if(t!==null){let n=t.type;if(n&3)return ot(t,e);if(n&4)return au(-1,e[t.index]);if(n&8){let r=t.child;if(r!==null)return ai(e,r);{let o=e[t.index];return Qe(o)?au(-1,o):Ie(o)}}else{if(n&128)return ai(e,t.next);if(n&32)return Ju(t,e)()||Ie(e[t.index]);{let r=Bv(e,t);if(r!==null){if(Array.isArray(r))return r[0];return ai(sn(e[$e]),r)}else return ai(e,t.next)}}}return null}function Bv(e,t){if(t!==null){let r=e[$e][nt],o=t.projection;return r.projection[o]}return null}function au(e,t){let n=oe+e+1;if(n<t.length){let r=t[n],o=r[D].firstChild;if(o!==null)return ai(r,o)}return t[cn]}function of(e,t,n,r,o,i,s){for(;n!=null;){let a=r[Ke];if(n.type===128){n=n.next;continue}let c=r[n.index],l=n.type;if(s&&t===0&&(c&&ao(Ie(c),r),n.flags|=2),!Ua(n))if(l&8)of(e,t,n.child,r,o,i,!1),oo(t,e,a,o,c,n,i,r);else if(l&32){let d=Ju(n,r),u;
4for(;u=d();)oo(t,e,a,o,u,n,i,r);oo(t,e,a,o,c,n,i,r)}else l&16?WS(e,t,r,n,o,i):oo(t,e,a,o,c,n,i,r);n=s?n.projectionNext:n.next}}function Ga(e,t,n,r,o,i){e.type===3?zS(n,r,t,o,i):of(n,r,e.firstChild,t,o,i,!1)}function zS(e,t,n,r,o){let s=n[D].firstChild,a=s.next,c=Ie(n[s.index]),l=Ie(n[a.index]),d=a.index+1,u=n[d];if(t===1||t===0)r!==null&&(u&&u.hasChildNodes()?wr(e,r,u,o,!0):(wr(e,r,c,o,!0),wr(e,r,l,o,!0)));else if(t===2){if(u||(u=document.createDocumentFragment(),n[d]=u),c&&c.parentNode===u)return;let f=c;for(;f!==null;){let h=f.nextSibling;if(u.appendChild(f),f===l)break;f=h}}}function WS(e,t,n,r,o,i){let s=n[$e],c=s[nt].projection[r.projection];if(Array.isArray(c))for(let l=0;l<c.length;l++){let d=c[l];oo(t,e,n[Ke],o,d,r,i,n)}else{let l=c,d=s[ue];Sa(r)&&(l.flags|=128),of(e,t,l,d,o,i,!0)}}function qS(e,t,n,r,o,i,s){let a=r[cn];if(a!==Ie(r)&&oo(t,e,n,i,a,o,s),(r[M]&4)===0)for(let l=oe;l<r.length;l++){let d=r[l];Ga(d[D],d,e,t,i,a)}}function ZS(e,t,n,r,o){if(t)o?e.addClass(n,r):e.removeClass(n,r);else{let i=r.indexOf(`-`)===-1?void 0:fn.DashCase;o==null?e.removeStyle(n,r,i):(typeof o==`string`&&o.endsWith(`!important`)&&(o=o.slice(0,-10),i|=fn.Important),e.setStyle(n,r,o,i))}}function sf(e,t,n,r,o,i,s,a,c,l,d){let u=Y+r,f=u+o,h=GS(u,f),y=typeof l==`function`?l():l;return h[D]={type:e,blueprint:h,template:n,queries:null,viewQuery:a,declTNode:t,data:h.slice().fill(null,u),bindingStartIndex:u,expandoStartIndex:f,hostBindingOpCodes:null,firstCreatePass:!0,firstUpdatePass:!0,staticViewQueries:!1,staticContentQueries:!1,preOrderHooks:null,preOrderCheckHooks:null,contentHooks:null,contentCheckHooks:null,viewHooks:null,viewCheckHooks:null,destroyHooks:null,cleanup:null,contentQueries:null,components:null,directiveRegistry:typeof i==`function`?i():i,pipeRegistry:typeof s==`function`?s():s,firstChild:null,schemas:c,consts:y,incompleteFirstPass:!1,ssrId:d}}function GS(e,t){let n=[];for(let r=0;r<t;r++)n.push(r<e?null:Yt);return n}function YS(e){let t=e.tView;return t===null||t.incompleteFirstPass?e.tView=sf(1,null,e.template,e.decls,e.vars,e.directiveDefs,e.pipeDefs,e.viewQuery,e.schemas,e.consts,e.id):t}function af(e,t,n,r,o,i,s,a,c,l,d){let u=t.blueprint.slice();return u[Ve]=o,u[M]=r|1228,(l!==null||e&&e[M]&2048)&&(u[M]|=2048),pd(u),u[ue]=u[Tn]=e,u[pe]=n,u[_t]=s||e&&e[_t],u[G]=a||e&&e[G],u[Ke]=c||e&&e[Ke]||null,u[nt]=i,u[Vt]=SI(),u[Ye]=d,u[ld]=l,u[$e]=t.type==2?e[$e]:u,u}function KS(e,t,n){let r=ot(t,e),o=YS(n),i=e[_t].rendererFactory,s=cf(e,af(e,o,null,zv(n),r,t,null,i.createRenderer(r,n),null,null,null));return e[t.index]=s}function zv(e){let t=16;return e.signals?t=4096:e.onPush&&(t=64),t}function Wv(e,t,n,r){if(n===0)return-1;let o=t.length;for(let i=0;i<n;i++)t.push(r),e.blueprint.push(r),e.data.push(null);return o}function cf(e,t){return e[Xr]?e[cd][gt]=t:e[Xr]=t,e[cd]=t,t}function b(e=1){qv(Be(),L(),ln()+e,!1)}function qv(e,t,n,r){if(!r)if((t[M]&3)===3){let i=e.preOrderCheckHooks;i!==null&&ua(t,i,n)}else{let i=e.preOrderHooks;i!==null&&fa(t,i,0,n)}Mn(n)}var Ya=(function(e){return e[e.None=0]=`None`,e[e.SignalBased=1]=`SignalBased`,e[e.HasDecoratorInputTransform=2]=`HasDecoratorInputTransform`,e})(Ya||{});function cu(e,t,n,r){let o=T(null);try{let[i,s,a]=e.inputs[n],c=null;(s&Ya.SignalBased)!==0&&(c=t[i][Me]),c!==null&&c.transformFn!==void 0?r=c.transformFn(r):a!==null&&(r=a.call(t,r)),e.setInput!==null?e.setInput(t,c,r,n,i):wm(t,c,i,r)}finally{T(o)}}function Zv(e,t,n,r,o){let i=ln(),s=r&2;try{Mn(-1),s&&t.length>Y&&qv(e,t,Y,!1);$(s?U.TemplateUpdateStart:U.TemplateCreateStart,o,n),n(r,o)}finally{Mn(i);$(s?U.TemplateUpdateEnd:U.TemplateCreateEnd,o,n)}}function Gv(e,t,n){rD(e,t,n),(n.flags&64)===64&&oD(e,t,n)}function lf(e,t,n=ot){let r=t.localNames;if(r!==null){let o=t.index+1;for(let i=0;i<r.length;i+=2){let s=r[i+1],a=s===-1?n(t,e):e[s];e[o++]=a}}}function QS(e,t,n,r){let i=r.get(Ou,Xm)||n===Rt.ShadowDom||n===Rt.ExperimentalIsolatedShadowDom,s=e.selectRootElement(t,i);return JS(s),s}function JS(e){Yv(e)}var Yv=()=>null;function XS(e){Fm(e)?Rv(e):OI(e)}function Kv(){Yv=XS}function eD(e){return e===`class`?`className`:e===`for`?`htmlFor`:e===`formaction`?`formAction`:e===`innerHtml`?`innerHTML`:e===`readonly`?`readOnly`:e===`tabindex`?`tabIndex`:e}function tD(e,t,n,r,o,i){let s=t[D];if(uf(e,s,t,n,r)){Bt(e)&&nD(t,e.index);return}e.type&3&&(n=eD(n)),Qv(e,t,n,r,o,i)}
vendor: 1,856 bytes, line 4
4function Qv(e,t,n,r,o,i){if(e.type&3){let s=ot(e,t);r=i!=null?i(r,e.value||``,n):r,o.setProperty(s,n,r)}else e.type&12}function nD(e,t){let n=vt(t,e);n[M]&16||(n[M]|=64)}function rD(e,t,n){let r=n.directiveStart,o=n.directiveEnd;Bt(n)&&KS(t,n,e.data[r+n.componentOffset]),e.firstCreatePass||Nm(n,t);let i=n.initialInputs;for(let s=r;s<o;s++){let a=e.data[s],c=wa(t,e,s,n);if(ao(c,t),i!==null&&lD(t,s-r,c,a,n,i),hr(a)){let l=vt(n.index,t);l[pe]=wa(t,e,s,n)}}}function oD(e,t,n){let r=n.directiveStart,o=n.directiveEnd,i=n.index,s=hg();try{Mn(i);for(let a=r;a<o;a++){let c=e.data[a],l=t[a];Qs(a),(c.hostBindings!==null||c.hostVars!==0||c.hostAttrs!==null)&&iD(c,l)}}finally{Mn(-1),Qs(s)}}function iD(e,t){e.hostBindings!==null&&e.hostBindings(1,t)}function sD(e,t){let n=e.directiveRegistry,r=null;if(n)for(let o=0;o<n.length;o++){let i=n[o];vS(t,i.selectors,!1)&&(r??=[],hr(i)?r.unshift(i):r.push(i))}return r}function aD(e,t,n,r,o,i){let s=ot(e,t);cD(t[G],s,i,e.value,n,r,o)}function cD(e,t,n,r,o,i,s){if(i==null)s?.(i,r||``,o),e.removeAttribute(t,o,n);else{let a=s==null?Go(i):s(i,r||``,o);e.setAttribute(t,o,a,n)}}function lD(e,t,n,r,o,i){let s=i[t];if(s!==null)for(let a=0;a<s.length;a+=2){let c=s[a],l=s[a+1];cu(r,n,c,l)}}function Jv(e,t,n,r,o){let i=Y+n,s=t[D],a=o(s,t,e,r,n);t[i]=a,to(e,!0);let c=e.type===2;return c?(xv(t[G],a,e),(og()===0||Ws(e))&&ao(a,t),ig()):ao(a,t),na()&&(!c||!Ua(e))&&rf(s,t,a,e),e}function Xv(e){let t=e;return wd()?lg():(t=t.parent,to(t,!1)),t}function df(e,t){let n=e[Ke];if(!n)return;let r;try{r=n.get(yt,null)}catch{r=null}r?.(t)}function uf(e,t,n,r,o){let i=e.inputs?.[r],s=e.hostDirectiveInputs?.[r],a=!1;if(s)for(let c=0;c<s.length;c+=2){let l=s[c],d=s[c+1],u=t.data[l];cu(u,n[l],d,o),a=!0}if(i)for(let c of i){let l=n[c],d=t.data[c];cu(d,l,r,o),a=!0}return a}function dD(e,t){let n=vt(t,e),r=n[D];uD(r,n);let o=n[Ve];
4o!==null&&n[Ye]===null&&(n[Ye]=pv(o,n[Ke])),$(U.ComponentStart);try{ff(r,n,n[pe])}finally{$(U.ComponentEnd,n[pe])}}function uD(e,t){for(let n=t.length;n<e.blueprint.length;n++)t.push(e.blueprint[n])}function ff(e,t,n){Xs(t);try{let r=e.viewQuery;r!==null&&Qd(1,r,n);let o=e.template;o!==null&&Zv(e,t,o,1,n),e.firstCreatePass&&(e.firstCreatePass=!1),t[Ht]?.finishViewCreation(e),e.staticContentQueries&&bv(e,t),e.staticViewQueries&&Qd(2,e.viewQuery,n);let i=e.components;i!==null&&fD(t,i)}catch(r){throw e.firstCreatePass&&(e.incompleteFirstPass=!0,e.firstCreatePass=!1),r}finally{t[M]&=-5,ea()}}function fD(e,t){for(let n=0;n<t.length;n++)dD(e,t[n])}function wi(e,t,n,r){let o=T(null);try{let i=t.tView,c=af(e,i,n,e[M]&4096?4096:16,null,t,null,null,r?.injector??null,r?.embeddedViewInjector??null,r?.dehydratedView??null);c[Cn]=e[t.index];let d=e[Ht];return d!==null&&(c[Ht]=d.createEmbeddedView(i)),ff(i,c,n),c}finally{T(o)}}function co(e,t){return!t||t.firstChild===null||Sa(e)}function ui(e,t,n,r,o=!1){if(e.type===3){let i=e.firstChild,s=i.next,a=Ie(t[i.index]),c=Ie(t[s.index]),l=a;for(;l!==null&&(r.push(l),l!==c);)l=l.nextSibling;return r}for(;n!==null;){if(n.type===128){n=o?n.projectionNext:n.next;continue}let i=t[n.index];if(i!==null)if(Qe(i)){let a=i[cn];a!==i[Ve]&&r.push(Ie(i)),i[M]&4||ey(i,r),r.push(a)}else r.push(Ie(i));let s=n.type;if(s&8)ui(e,t,n.child,r);else if(s&32){let a=Ju(n,t),c;for(;c=a();)r.push(c)}else if(s&16){let a=Bv(t,n);if(Array.isArray(a))r.push(...a);else{let c=sn(t[$e]);ui(c[D],c,a,r,!0)}}n=o?n.projectionNext:n.next}return r}function ey(e,t){for(let n=oe;n<e.length;n++){let r=e[n],o=r[D].firstChild;o!==null&&ui(r[D],r,o,t)}}function ty(e){if(e[fr]!==null){for(let t of e[fr])t.impl.addSequence(t);e[fr].length=0}}var ny=[];function pD(e){return e[rt]??hD(e)}function hD(e){let t=ny.pop()??Object.create(mD);return t.lView=e,t}function gD(e){e.lView[rt]!==e&&(e.lView=null,ny.push(e))}var mD=l(k$1({},yn),{consumerIsAlwaysLive:!0,kind:`template`,consumerMarkedDirty:e=>{mr(e.lView)},consumerOnSignalRead(){this.lView[rt]=this}});function vD(e){let t=e[rt]??Object.create(yD);return t.lView=e,t}var yD=l(k$1({},yn),{consumerIsAlwaysLive:!0,kind:`template`,consumerMarkedDirty:e=>{let t=sn(e.lView);for(;t&&!ry(t[D]);)t=sn(t);t&&Gs(t)},consumerOnSignalRead(){this.lView[rt]=this}});function ry(e){return e.type!==2}function oy(e){if(e[on]===null)return;let t=!0;for(;t;){let n=!1;for(let r of e[on])if(r.dirty&&(n=!0,r.zone===null||Zone.current===r.zone?r.run():r.zone.run(()=>r.run()),e[on]===null))return;t=n&&!!(e[M]&8192)}}var bD=100;function iy(e,t=0){let r=e[_t].rendererFactory;r.begin?.();try{ED(e,t)}finally{r.end?.()}}function ED(e,t){let n=Id();try{Bo(!0),lu(e,t);let r=0;for(;ei(e);){if(r===bD)throw new w(103,!1);r++,lu(e,1)}}finally{Bo(n)}}function wD(e,t,n,r){if(_n(t))return;let o=t[M];Xs(t);let a=!0,c=null,l=null;ry(e)?(l=pD(t),c=bn(l)):rs()===null?(a=!1,l=vD(t),c=bn(l)):t[rt]&&(Jn(t[rt]),t[rt]=null);try{pd(t),dg(e.bindingStartIndex),n!==null&&Zv(e,t,n,2,r);let d=(o&3)===3;if(d){let h=e.preOrderCheckHooks;h!==null&&ua(t,h,null)}else{let h=e.preOrderHooks;h!==null&&fa(t,h,0,null),Od(t,0)}if(ID(t),oy(t),sy(t,0),e.contentQueries!==null&&bv(e,t),true)if(d){let h=e.contentCheckHooks;h!==null&&ua(t,h)}else{let h=e.contentHooks;h!==null&&fa(t,h,1),Od(t,1)}DD(e,t);let u=e.components;u!==null&&cy(t,u,0);let f=e.viewQuery;if(f!==null&&Qd(2,f,r),true)if(d){let h=e.viewCheckHooks;h!==null&&ua(t,h)}else{let h=e.viewHooks;h!==null&&fa(t,h,2),Od(t,2)}if(e.firstUpdatePass===!0&&(e.firstUpdatePass=!1),t[zs]){for(let h of t[zs])h();t[zs]=null}ty(t),t[M]&=-73}catch(d){throw mr(t),d}finally{l!==null&&(Qn(l,c),a&&gD(l)),ea()}}function sy(e,t){for(let n=Vm(e);n!==null;n=$m(n))for(let r=oe;r<n.length;r++){let o=n[r];ay(o,t)}}function ID(e){for(let t=Vm(e);t!==null;t=$m(t)){if(!(t[M]&2))continue;let n=t[pr];for(let r=0;r<n.length;r++){let o=n[r];Gs(o)}}}function SD(e,t,n){$(U.ComponentStart);let r=vt(t,e);try{ay(r,n)}finally{$(U.ComponentEnd,r[pe])}}function ay(e,t){Zs(e)&&lu(e,t)}function lu(e,t){let r=e[D],o=e[M],i=e[rt],s=!!(t===0&&o&16);if(s||=!!(o&64&&t===0),s||=!!(o&1024),s||=!!(i?.dirty&&ko(i)),s||=!1,i&&(i.dirty=!1),e[M]&=-9217,s)wD(r,e,r.template,e[pe]);else if(o&8192){let a=T(null);try{oy(e),sy(e,1);let c=r.components;c!==null&&cy(e,c,1),ty(e)}finally{T(a)}}}function cy(e,t,n){for(let r=0;r<t.length;r++)SD(e,t[r],n)}function DD(e,t){let n=e.hostBindingOpCodes;if(n!==null)try{for(let r=0;r<n.length;r++){let o=n[r];if(o<0)Mn(~o);else{let i=o,s=n[++r],a=n[++r];pg(s,i);let c=t[i];$(U.HostBindingsUpdateStart,c);try{a(2,c)}finally{$(U.HostBindingsUpdateEnd,c)}}}}finally{Mn(-1)}}function pf(e,t){let n=Id()?64:1088;for(e[_t].changeDetectionScheduler?.notify(t);e;){e[M]|=n;let r=sn(e);if(gr(e)&&!r)return e;e=r}return null}function ly(e,t,n,r){return[e,!0,0,t,null,r,null,n,null,null]}function dy(e,t){let n=oe+t;if(n<e.length)return e[n]}function Ii(e,t,n,r=!0){let o=t[D];if(TD(o,t,e,n),r){let s=au(n,e),a=t[G],c=a.parentNode(e[cn]);c!==null&&PS(o,e[nt],a,t,c,s)}let i=t[Ye];i!==null&&i.firstChild!==null&&(i.firstChild=null)}function hf(e,t){let n=fi(e,t);return n!==void 0&&Za(n[D],n),n}function fi(e,t){if(e.length<=oe)return;
4let n=oe+t,r=e[n];if(r){let o=r[Cn];o!==null&&o!==e&&nf(o,r),t>0&&(e[n-1][gt]=r[gt]);let i=Yo(e,oe+t);kS(r[D],r);let s=i[Ht];s!==null&&s.detachView(i[D]),r[ue]=null,r[gt]=null,r[M]&=-129}return r}function TD(e,t,n,r){let o=oe+r,i=n.length;r>0&&(n[o-1][gt]=t),r<i-oe?(t[gt]=n[o],id(n,oe+r,t)):(n.push(t),t[gt]=null),t[ue]=n;let s=t[Cn];s!==null&&n!==s&&uy(s,t);let a=t[Ht];a!==null&&a.insertView(e),Ys(t),t[M]|=128}function uy(e,t){let n=e[pr],r=t[ue];if(mt(r))e[M]|=2;else{let o=r[ue][$e];t[$e]!==o&&(e[M]|=2)}n===null?e[pr]=[t]:n.push(t)}var xn=class{_lView;_cdRefInjectingView;_appRef=null;_attachedToViewContainer=!1;exhaustive;get rootNodes(){let t=this._lView,n=t[D];return ui(n,t,n.firstChild,[])}constructor(t,n){this._lView=t,this._cdRefInjectingView=n}get context(){return this._lView[pe]}set context(t){this._lView[pe]=t}get destroyed(){return _n(this._lView)}destroy(){if(this._appRef)this._appRef.detachView(this);else if(this._attachedToViewContainer){let t=this._lView[ue];if(Qe(t)){let n=t[Xo],r=n?n.indexOf(this):-1;r>-1&&(fi(t,r),Yo(n,r))}this._attachedToViewContainer=!1}Za(this._lView[D],this._lView)}onDestroy(t){Ks(this._lView,t)}markForCheck(){pf(this._cdRefInjectingView||this._lView,4)}detach(){this._lView[M]&=-129}reattach(){Ys(this._lView),this._lView[M]|=128}detectChanges(){this._lView[M]|=1024,iy(this._lView)}checkNoChanges(){}attachToViewContainerRef(){if(this._appRef)throw new w(902,!1);this._attachedToViewContainer=!0}detachFromAppRef(){this._appRef=null;let t=gr(this._lView),n=this._lView[Cn];n!==null&&!t&&nf(n,this._lView),$v(this._lView[D],this._lView)}attachToAppRef(t){if(this._attachedToViewContainer)throw new w(902,!1);this._appRef=t;let n=gr(this._lView),r=this._lView[Cn];r!==null&&!n&&uy(r,this._lView),Ys(this._lView)}};var pi=(()=>{class e{_declarationLView;_declarationTContainer;elementRef;static __NG_ELEMENT_ID__=CD;constructor(n,r,o){this._declarationLView=n,this._declarationTContainer=r,this.elementRef=o}get ssrId(){return this._declarationTContainer.tView?.ssrId||null}createEmbeddedView(n,r){return this.createEmbeddedViewImpl(n,r)}createEmbeddedViewImpl(n,r,o){return new xn(wi(this._declarationLView,this._declarationTContainer,n,{embeddedViewInjector:r,dehydratedView:o}))}}return e})();function CD(){return gf(ze(),L())}function gf(e,t){return e.type&4?new pi(t,e,po(e,t)):null}function Ka(e,t,n,r,o){let i=e.data[t];if(i===null)i=_D(e,t,n,r,o),fg()&&(i.flags|=32);else if(i.type&64){i.type=n,i.value=r,i.attrs=o;let s=cg();i.injectorIndex=s===null?-1:s.injectorIndex}return to(i,!0),i}function _D(e,t,n,r,o){let i=Ed(),s=wd(),a=s?i:i&&i.parent,c=e.data[t]=ND(e,a,n,t,r,o);return MD(e,c,i,s),c}function MD(e,t,n,r){e.firstChild===null&&(e.firstChild=t),n!==null&&(r?n.child==null&&t.parent!==null&&(n.child=t):n.next===null&&(n.next=t,t.prev=n))}function ND(e,t,n,r,o,i){let s=t?t.injectorIndex:-1,a=0;return vd()&&(a|=128),{type:n,index:r,insertBeforeIndex:null,injectorIndex:s,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,componentOffset:-1,controlDirectiveIndex:-1,customControlIndex:-1,propertyBindings:null,flags:a,providerIndexes:0,value:o,namespace:ta(),attrs:i,mergedAttrs:null,localNames:null,initialInputs:null,inputs:null,hostDirectiveInputs:null,outputs:null,hostDirectiveOutputs:null,directiveToIndex:null,tView:null,next:null,prev:null,projectionNext:null,child:null,parent:t,projection:null,styles:null,stylesWithoutHost:null,residualStyles:void 0,classes:null,classesWithoutHost:null,residualClasses:void 0,classBindings:0,styleBindings:0}}var AD=new RegExp(`^(\\d+)*(${Wm}|${zm})*(.*)`);function RD(e){let[n,r,o,i]=e.match(AD),s=r?parseInt(r,10):o,a=[];for(let[c,l,d]of i.matchAll(/(f|n)(\d*)/g)){let u=parseInt(d,10)||1;a.push(l,u)}return[s,...a]}function xD(e){return!e.prev&&e.parent?.type===8}function jd(e){return e.index-Y}function OD(e,t){let n=e.i18nNodes;if(n)return n.get(t)}function Qa(e,t,n,r){let o=jd(r),i=OD(e,o);if(i===void 0){let s=e.data[Ym];if(s?.[o])i=PD(s[o],n);else if(t.firstChild===r)i=e.firstChild;else{let a=r.prev===null,c=r.prev??r.parent;if(xD(r))i=Kd(e,jd(r.parent));else{let l=ot(c,n);if(a)i=l.firstChild;else{let d=jd(c),u=Kd(e,d);if(c.type===2&&u)i=Ja(Uu(e,d)+1,u);else i=l.nextSibling}}}}return i}function Ja(e,t){let n=t;for(let r=0;r<e;r++)n=n.nextSibling;return n}function kD(e,t){let n=e;for(let r=0;r<t.length;r+=2){let o=t[r],i=t[r+1];for(let s=0;s<i;s++)switch(o){case TI:n=n.firstChild;break;case CI:n=n.nextSibling;break}}return n}function PD(e,t){let[n,...r]=RD(e),o;if(n===zm)o=t[$e][Ve];else if(n===Wm)o=Pv(t[$e][Ve]);else o=Ie(t[Number(n)+Y]);return kD(o,r)}function jD(e){let t=e[Ye];if(t){let{i18nNodes:n,dehydratedIcuData:r}=t;if(n&&r){let o=e[G];for(let i of r.values())FD(o,n,i)}t.i18nNodes=void 0,t.dehydratedIcuData=void 0}}
4function FD(e,t,n){for(let r of n.node.cases[n.case]){let o=t.get(r.index-Y);o&&qu(e,o,!1)}}function Xa(e){let t=e[Mt]??[],r=e[ue][G],o=[];for(let i of t)i.data[Km]!==void 0?o.push(i):py(i,r);e[Mt]=o}function UD(e){let{lContainer:t}=e,n=t[Mt];if(n===null)return;let o=t[ue][G];for(let i of n)py(i,o)}function py(e,t){let n=0,r=e.firstChild;if(r){let o=e.data[di];for(;n<o;){let i=r.nextSibling;qu(t,r,!1),r=i,n++}}}function ec(e){Xa(e);let t=e[Ve];mt(t)&&Ta(t);for(let n=oe;n<e.length;n++)Ta(e[n])}function Ta(e){jD(e);let t=e[D];for(let n=Y;n<t.bindingStartIndex;n++)if(Qe(e[n])){let r=e[n];ec(r)}else mt(e[n])&&Ta(e[n])}function mf(e){let t=e._views;for(let n of t){let r=hv(n);r!==null&&r[Ve]!==null&&(mt(r)?Ta(r):ec(r))}}function HD(e,t,n,r){e!==null&&(n.cleanup(t),ec(e.lContainer),mf(r))}function VD(e,t){let n=[];for(let r of t)for(let o=0;o<(r[Ru]??1);o++){let i={data:r,firstChild:null};r[di]>0&&(i.firstChild=e,e=Ja(r[di],e)),n.push(i)}return[e,n]}var hy=()=>null;var gy=()=>null;function my(){hy=$D,gy=BD}function $D(e,t){return yy(e,t)?e[Mt].shift():(Xa(e),null)}function Ca(e,t){return hy(e,t)}function BD(e,t,n){if(t.tView.ssrId===null)return null;let r=Ca(e,t.tView.ssrId);return n[D].firstUpdatePass&&r===null&&zD(n,t),r}function vy(e,t,n){return gy(e,t,n)}function zD(e,t){let n=t;for(;n;){if(Kg(e,n))return;if((n.flags&256)===256)break;n=n.prev}for(n=t.next;n&&(n.flags&512)===512;){if(Kg(e,n))return;n=n.next}}function yy(e,t){let n=e[Mt];return!t||n===null||n.length===0?!1:n[0].data[Gm]===t}function Kg(e,t){let n=t.tView?.ssrId;if(n==null)return!1;let r=e[t.index];return Qe(r)&&yy(r,n)?(Xa(r),!0):!1}var by=class{};var Sr=class{};var Dr=class{destroyNode=null;static __NG_ELEMENT_ID__=()=>WD()};function WD(){let e=L(),n=vt(ze().index,e);return(mt(n)?n:e)[G]}var Ey=(()=>{class e{static ɵprov=O({token:e,providedIn:`root`,factory:()=>null})}return e})();function wy(e){return e.debugInfo?.className||e.type.name||null}var ga={};var Ir=class{injector;parentInjector;constructor(t,n){this.injector=t,this.parentInjector=n}get(t,n,r){let o=this.injector.get(t,ga,r);return o!==ga||n===ga?o:this.parentInjector.get(t,n,r)}};function qD(e,t,n){return e[t]=n}function On(e,t,n){if(n===Yt)return!1;let r=e[t];return Object.is(r,n)?!1:(e[t]=n,!0)}function Fd(e,t,n){return function r(o){let i=r.__ngNativeEl__;i!==void 0&&_I(o,i);pf(Bt(e)?vt(e.index,t):t,5);let a=t[pe],c=Qg(t,a,n,o),l=r.__ngNextListenerFn__;for(;l;)c=Qg(t,a,l,o)&&c,l=l.__ngNextListenerFn__;return c}}function Qg(e,t,n,r){let o=T(null);try{return $(U.OutputStart,t,n),n(r)!==!1}catch(i){return df(e,i),!1}finally{$(U.OutputEnd,t,n),T(o)}}function ZD(e,t,n,r,o,i,s,a){let c=Ws(e),l=!1,d=null;if(!r&&c&&(d=YD(t,n,i,e.index)),d!==null){let u=d.__ngLastListenerFn__||d;u.__ngNextListenerFn__=s,d.__ngLastListenerFn__=s,l=!0}else{let u=ot(e,n),f=r?r(u):u;MI(n,f,i,a),r||(a.__ngNativeEl__=u);let h=o.listen(f,i,a);if(!GD(i))Iy(r?S=>r(Ie(S[e.index])):e.index,t,n,i,a,h,!1)}return l}function GD(e){return e.startsWith(`animation`)||e.startsWith(`transition`)}function YD(e,t,n,r){let o=e.cleanup;if(o!=null)for(let i=0;i<o.length-1;i+=2){let s=o[i];if(s===n&&o[i+1]===r){let a=t[Jr],c=o[i+2];return a&&a.length>c?a[c]:null}typeof s==`string`&&(i+=2)}return null}function Iy(e,t,n,r,o,i,s){let a=t.firstCreatePass?gd(t):null,c=hd(n),l=c.length;c.push(o,i),a&&a.push(r,e,l,(l+1)*(s?-1:1))}function Jg(e,t,n,r,o,i){let s=t[n],a=t[D],u=s[a.data[n].outputs[r]].subscribe(i);Iy(e.index,a,t,o,i,u,!0)}var du=Symbol(`BINDING`);var _r=new I(``);function _a(e,t,n){let r=n?e.styles:null,o=n?e.classes:null,i=0;if(t!==null)for(let s=0;s<t.length;s++){let a=t[s];if(typeof a==`number`)i=a;else if(i==1)o=Yl(o,a);else if(i==2){let c=a,l=t[++s];r=Yl(r,c+`: `+l+`;`)}}n?e.styles=r:e.stylesWithoutHost=r,n?e.classes=o:e.classesWithoutHost=o}function at(e,t=0){let n=L();if(n===null)return R(e,t);return Om(ze(),n,tt(e),t)}function tc(){throw new Error(`invalid`)}function KD(e,t,n,r,o){let i=r===null?null:{"":-1},s=o(e,n);if(s!==null){let a=s,c=null,l=null;for(let d of s)if(d.resolveHostDirectives!==null){[a,c,l]=d.resolveHostDirectives(s);break}XD(e,t,n,a,i,c,l)}i!==null&&r!==null&&QD(n,r,i)}
vendor: 4,131 bytes, line 4
4function QD(e,t,n){let r=e.localNames=[];for(let o=0;o<t.length;o+=2){let i=n[t[o+1]];if(i==null)throw new w(-301,!1);r.push(t[o],i)}}function JD(e,t,n){t.componentOffset=n,(e.components??=[]).push(t.index)}function XD(e,t,n,r,o,i,s){let a=r.length,c=null;for(let f=0;f<a;f++){let h=r[f];c===null&&hr(h)&&(c=h,JD(e,n,f)),fI(Nm(n,t),e,h.type)}iT(n,e.data.length,a),c?.viewProvidersResolver&&c.viewProvidersResolver(c);for(let f=0;f<a;f++){let h=r[f];h.providersResolver&&h.providersResolver(h)}let l=!1,d=!1,u=Wv(e,t,a,null);a>0&&(n.directiveToIndex=new Map);for(let f=0;f<a;f++){let h=r[f];if(n.mergedAttrs=Pa(n.mergedAttrs,h.hostAttrs),tT(e,n,t,u,h),oT(u,h,o),s!==null&&s.has(h)){let[S,C]=s.get(h);n.directiveToIndex.set(h.type,[u,S+n.directiveStart,C+n.directiveStart])}else(i===null||!i.has(h))&&n.directiveToIndex.set(h.type,u);h.contentQueries!==null&&(n.flags|=4),(h.hostBindings!==null||h.hostAttrs!==null||h.hostVars!==0)&&(n.flags|=64);let y=h.type.prototype;!l&&(y.ngOnChanges||y.ngOnInit||y.ngDoCheck)&&((e.preOrderHooks??=[]).push(n.index),l=!0),!d&&(y.ngOnChanges||y.ngDoCheck)&&((e.preOrderCheckHooks??=[]).push(n.index),d=!0),u++}eT(e,n,i)}function eT(e,t,n){for(let r=t.directiveStart;r<t.directiveEnd;r++){let o=e.data[r];if(n===null||!n.has(o))Xg(0,t,o,r),Xg(1,t,o,r),tm(t,r,!1);else{let i=n.get(o);em(0,t,i,r),em(1,t,i,r),tm(t,r,!0)}}}function Xg(e,t,n,r){let o=e===0?n.inputs:n.outputs;for(let i in o)if(Object.hasOwn(o,i)){let s;e===0?s=t.inputs??={}:s=t.outputs??={},s[i]??=[],s[i].push(r),Sy(t,i)}}function em(e,t,n,r){let o=e===0?n.inputs:n.outputs;for(let i in o)if(Object.hasOwn(o,i)){let s=o[i],a;e===0?a=t.hostDirectiveInputs??={}:a=t.hostDirectiveOutputs??={},a[s]??=[],a[s].push(r,i),Sy(t,s)}}function Sy(e,t){t===`class`?e.flags|=8:t===`style`&&(e.flags|=16)}function tm(e,t,n){let{attrs:r,inputs:o,hostDirectiveInputs:i}=e;if(r===null||!n&&o===null||n&&i===null||Qu(e)){e.initialInputs??=[],e.initialInputs.push(null);return}let s=null,a=0;for(;a<r.length;){let c=r[a];if(c===0){a+=4;continue}else if(c===5){a+=2;continue}else if(typeof c==`number`)break;if(!n&&Object.hasOwn(o,c)){let l=o[c];for(let d of l)if(d===t){s??=[],s.push(c,r[a+1]);break}}else if(n&&Object.hasOwn(i,c)){let l=i[c];for(let d=0;d<l.length;d+=2)if(l[d]===t){s??=[],s.push(l[d+1],r[a+1]);break}}a+=2}e.initialInputs??=[],e.initialInputs.push(s)}function tT(e,t,n,r,o){e.data[r]=o;let s=new li(o.factory||(o.factory=ar(o.type,!0)),hr(o),at,null);e.blueprint[r]=s,n[r]=s,nT(e,t,r,Wv(e,n,o.hostVars,Yt),o)}function nT(e,t,n,r,o){let i=o.hostBindings;if(i){let s=e.hostBindingOpCodes;s===null&&(s=e.hostBindingOpCodes=[]);let a=~t.index;rT(s)!=a&&s.push(a),s.push(n,r,i)}}function rT(e){let t=e.length;for(;t>0;){let n=e[--t];if(typeof n==`number`&&n<0)return n}return 0}function oT(e,t,n){if(n){if(t.exportAs)for(let r=0;r<t.exportAs.length;r++)n[t.exportAs[r]]=e;hr(t)&&(n[``]=e)}}function iT(e,t,n){e.flags|=1,e.directiveStart=t,e.directiveEnd=t+n,e.providerIndexes=t}function Dy(e,t,n,r,o,i,s,a){let c=t[D],l=c.consts,u=Ka(c,e,n,r,zt(l,s));return i&&KD(c,t,u,zt(l,a),o),u.mergedAttrs=Pa(u.mergedAttrs,u.attrs),u.attrs!==null&&_a(u,u.attrs,!1),u.mergedAttrs!==null&&_a(u,u.mergedAttrs,!0),c.queries!==null&&c.queries.elementStart(c,u),u}function Ty(e,t){nI(e,t),dd(t)&&e.queries.elementEnd(t)}function sT(e,t,n,r,o,i){let s=t.consts,c=Ka(t,e,n,r,zt(s,o));if(c.mergedAttrs=Pa(c.mergedAttrs,c.attrs),i!=null){let l=zt(s,i);c.localNames=[];for(let d=0;d<l.length;d+=2)c.localNames.push(l[d],-1)}return c.attrs!==null&&_a(c,c.attrs,!1),c.mergedAttrs!==null&&_a(c,c.mergedAttrs,!0),t.queries!==null&&t.queries.elementStart(t,c),c}var Cy=typeof ShadowRoot<`u`;var aT=typeof Document<`u`;function cT(e){return Object.keys(e).map(t=>{let[n,r,o]=e[t],i={propName:n,templateName:t,isSignal:(r&Ya.SignalBased)!==0};return o&&(i.transform=o),i})}function lT(e){return Object.keys(e).map(t=>({propName:e[t],templateName:t}))}function dT(e,t,n){let r=t instanceof ae?t:t?.injector;return r&&e.getStandaloneInjector!==null&&(r=e.getStandaloneInjector(r)||r),r?new Ir(n,r):n}function uT(e){let t=e.get(Sr,null);if(t===null)throw new w(407,!1);
4return{rendererFactory:t,sanitizer:e.get(Ey,null),changeDetectionScheduler:e.get(Ut,null),ngReflect:!1,tracingService:e.get(hn,null,{optional:!0})}}function fT(e,t){let n=_y(e);return Wu(t,n,n===`svg`?Kr:n===`math`?qs:null)}function pT(e){if((e&&`localName`in e&&typeof e.localName==`string`?e.localName:e?.tagName)?.toLowerCase()===`script`)throw new w(905,!1)}function _y(e){return(e.selectors[0][0]||`div`).toLowerCase()}var hi=class{componentDef;ngModule;selector;componentType;ngContentSelectors;isBoundToModule;cachedInputs=null;cachedOutputs=null;get inputs(){return this.cachedInputs??=cT(this.componentDef.inputs),this.cachedInputs}get outputs(){return this.cachedOutputs??=lT(this.componentDef.outputs),this.cachedOutputs}constructor(t,n){this.componentDef=t,this.ngModule=n,this.componentType=t.type,this.selector=wS(t.selectors),this.ngContentSelectors=t.ngContentSelectors??[],this.isBoundToModule=!!n}create(t,n,r,o,i,s){$(U.DynamicComponentStart);let a=T(null);try{let c=this.componentDef,l=dT(c,o||this.ngModule,t),d=uT(l),u=d.tracingService;return u&&u.componentCreate?u.componentCreate(wy(c),()=>this.createComponentRef(d,l,n,r,i,s)):this.createComponentRef(d,l,n,r,i,s)}finally{T(a)}}createComponentRef(t,n,r,o,i,s){let a=this.componentDef,c=hT(o,a,s,i),l=t.rendererFactory.createRenderer(null,a),d=o?QS(l,o,a.encapsulation,n):fT(a,l);pT(d);let u=n.get(_r,null),f=gT(d,()=>n.get(V,null)??ja());u&&u.addHost(f);let h=s?.some(nm)||i?.some(C=>typeof C!=`function`&&C.bindings.some(nm)),y=af(null,c,null,512|zv(a),null,null,t,l,n,null,pv(d,n,!0));u&&Cy&&f instanceof ShadowRoot&&Ks(y,()=>{u.removeHost(f)}),y[Y]=d,Xs(y);let S=null;try{let C=Dy(Y,y,2,`#host`,()=>c.directiveRegistry,!0,0);xv(l,d,C),ao(d,y),Gv(c,y,C),Ev(c,C,y),Ty(c,C),r!==void 0&&vT(C,this.ngContentSelectors,r),S=vt(C.index,y),y[pe]=S[pe],ff(c,y,null)}catch(C){throw S!==null&&qd(S),qd(y),C}finally{$(U.DynamicComponentEnd),ea()}return new Ma(this.componentType,y,!!h)}};function hT(e,t,n,r){let o=e?[`ng-version`,`22.1.3`]:IS(t.selectors[0]),i=null,s=null,a=0;if(n)for(let d of n)a+=d[du].requiredVars,d.create&&(d.targetIdx=0,(i??=[]).push(d)),d.update&&(d.targetIdx=0,(s??=[]).push(d));if(r)for(let d=0;d<r.length;d++){let u=r[d];if(typeof u!=`function`)for(let f of u.bindings){a+=f[du].requiredVars;let h=d+1;f.create&&(f.targetIdx=h,(i??=[]).push(f)),f.update&&(f.targetIdx=h,(s??=[]).push(f))}}let c=[t];if(r)for(let d of r){let f=Fs(typeof d==`function`?d:d.type);c.push(f)}return sf(0,null,mT(i,s),1,a,c,null,null,null,[o],null)}function gT(e,t){let n=e.getRootNode?.();return aT&&n instanceof Document?n.head:n&&Cy&&n instanceof ShadowRoot?n:t().head}function mT(e,t){return!e&&!t?null:n=>{if(n&1&&e)for(let r of e)r.create();if(n&2&&t)for(let r of t)r.update()}}function nm(e){let t=e[du].kind;return t===`input`||t===`twoWay`}var Ma=class extends by{_rootLView;_hasInputBindings;instance;hostView;changeDetectorRef;componentType;location;previousInputValues=null;_tNode;constructor(t,n,r){super(),this._rootLView=n,this._hasInputBindings=r,this._tNode=eo(n[D],Y),this.location=po(this._tNode,n),this.instance=vt(this._tNode.index,n)[pe],this.hostView=this.changeDetectorRef=new xn(n,void 0),this.componentType=t}setInput(t,n){this._hasInputBindings;let r=this._tNode;if(this.previousInputValues??=new Map,this.previousInputValues.has(t)&&Object.is(this.previousInputValues.get(t),n))return;let o=this._rootLView;uf(r,o[D],o,t,n);this.previousInputValues.set(t,n);pf(vt(r.index,o),1)}get injector(){return new An(this._tNode,this._rootLView)}destroy(){this.hostView.destroy()}onDestroy(t){this.hostView.onDestroy(t)}};function vT(e,t,n){let r=e.projection=[];for(let o=0;o<t.length;o++){let i=n[o];r.push(i!=null&&i.length?Array.from(i):null)}}var ho=(()=>{class e{static __NG_ELEMENT_ID__=yT}return e})();function yT(){return My(ze(),L())}var uu=class e extends ho{_lContainer;_hostTNode;_hostLView;constructor(t,n,r){super(),this._lContainer=t,this._hostTNode=n,this._hostLView=r}get element(){return po(this._hostTNode,this._hostLView)}get injector(){return new An(this._hostTNode,this._hostLView)}get parentInjector(){let t=Mu(this._hostTNode,this._hostLView);if(Cm(t)){let n=ba(t,this._hostLView),r=ya(t),o=n[D].data[r+8];return new An(o,n)}else return new An(null,this._hostLView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(t){let n=rm(this._lContainer);return n!==null&&n[t]||null}get length(){return this._lContainer.length-oe}createEmbeddedView(t,n,r){let o,i;typeof r==`number`?o=r:r!=null&&(o=r.index,i=r.injector);let s=Ca(this._lContainer,t.ssrId),a=t.createEmbeddedViewImpl(n||{},i,s);
vendor: 1,290 bytes, line 4
4return this.insertImpl(a,o,co(this._hostTNode,s)),a}createComponent(t,n,r,o,i,s,a){let c,l=n||{};c=l.index,r=l.injector,o=l.projectableNodes,i=l.environmentInjector||l.ngModuleRef,s=l.directives,a=l.bindings;let d=new hi(Sn(t)),u=r||this.parentInjector;if(!i&&d.ngModule==null){let j=this.parentInjector.get(ae,null);j&&(i=j)}let f=Sn(d.componentType??{}),h=Ca(this._lContainer,f?.id??null),y=h?.firstChild??null,S=d.create(u,o,y,i,s,a);return this.insertImpl(S.hostView,c,co(this._hostTNode,h)),S}insert(t,n){return this.insertImpl(t,n,!0)}insertImpl(t,n,r){let o=t._lView;if(eg(o)){let a=this.indexOf(t);if(a!==-1)this.detach(a);else{let c=o[ue],l=new e(c,c[nt],c[ue]);l.detach(l.indexOf(t))}}let i=this._adjustIndex(n),s=this._lContainer;return Ii(s,o,i,r),t.attachToViewContainerRef(),id(Ud(s),i,t),t}move(t,n){return this.insert(t,n)}indexOf(t){let n=rm(this._lContainer);return n!==null?n.indexOf(t):-1}remove(t){let n=this._adjustIndex(t,-1),r=fi(this._lContainer,n);r&&(Yo(Ud(this._lContainer),n),Za(r[D],r))}detach(t){let n=this._adjustIndex(t,-1),r=fi(this._lContainer,n);return r&&Yo(Ud(this._lContainer),n)!=null?new xn(r):null}_adjustIndex(t,n=0){return t??this.length+n}};function rm(e){return e[Xo]}function Ud(e){return e[Xo]||(e[Xo]=[])}function My(e,t){let n,r=t[e.index];
4return Qe(r)?n=r:(n=ly(r,t,null,e),t[e.index]=n,cf(t,n)),Ny(n,t,e,r),new uu(n,e,t)}function bT(e,t){let n=e[G],r=n.createComment(``),o=ot(t,e);return wr(n,n.parentNode(o),r,n.nextSibling(o),!1),r}var Ny=Ay;var vf=()=>!1;function ET(e,t,n){return vf(e,t,n)}function Ay(e,t,n,r){if(e[cn])return;let o;n.type&8?o=Ie(r):o=bT(t,n),e[cn]=o}function wT(e,t,n){if(e[cn]&&e[Mt])return!0;let r=n[Ye],o=t.index-Y;if(!r||Um(t)||vv(r,o))return!1;let s=Kd(r,o),a=r.data[Fa]?.[o];if(a===void 0)return!1;let[c,l]=VD(s,a);return e[cn]=c,e[Mt]=l,!0}function IT(e,t,n,r){vf(e,n,t)||Ay(e,t,n,r)}function Ry(){Ny=IT,vf=wT}var fu=class e{queryList;matches=null;constructor(t){this.queryList=t}clone(){return new e(this.queryList)}setDirty(){this.queryList.setDirty()}};var pu=class e{queries;constructor(t=[]){this.queries=t}createEmbeddedView(t){let n=t.queries;if(n!==null){let r=t.contentQueries!==null?t.contentQueries[0]:n.length,o=[];for(let i=0;i<r;i++){let s=n.getByIndex(i),a=this.queries[s.indexInDeclarationView];o.push(a.clone())}return new e(o)}return null}insertView(t){this.dirtyQueriesWithMatches(t)}detachView(t){this.dirtyQueriesWithMatches(t)}finishViewCreation(t){this.dirtyQueriesWithMatches(t)}dirtyQueriesWithMatches(t){for(let n=0;n<this.queries.length;n++)yf(t,n).matches!==null&&this.queries[n].setDirty()}};var hu=class{flags;read;predicate;constructor(t,n,r=null){this.flags=n,this.read=r,typeof t==`string`?this.predicate=AT(t):this.predicate=t}};var gu=class e{queries;constructor(t=[]){this.queries=t}elementStart(t,n){for(let r=0;r<this.queries.length;r++)this.queries[r].elementStart(t,n)}elementEnd(t){for(let n=0;n<this.queries.length;n++)this.queries[n].elementEnd(t)}embeddedTView(t){let n=null;for(let r=0;r<this.length;r++){let o=n!==null?n.length:0,i=this.getByIndex(r).embeddedTView(t,o);i&&(i.indexInDeclarationView=r,n!==null?n.push(i):n=[i])}return n!==null?new e(n):null}template(t,n){for(let r=0;r<this.queries.length;r++)this.queries[r].template(t,n)}getByIndex(t){return this.queries[t]}get length(){return this.queries.length}track(t){this.queries.push(t)}};var mu=class e{metadata;matches=null;indexInDeclarationView=-1;crossesNgTemplate=!1;_declarationNodeIndex;_appliesToNextNode=!0;constructor(t,n=-1){this.metadata=t,this._declarationNodeIndex=n}elementStart(t,n){this.isApplyingToNode(n)&&this.matchTNode(t,n)}elementEnd(t){this._declarationNodeIndex===t.index&&(this._appliesToNextNode=!1)}template(t,n){this.elementStart(t,n)}embeddedTView(t,n){return this.isApplyingToNode(t)?(this.crossesNgTemplate=!0,this.addMatch(-t.index,n),new e(this.metadata)):null}isApplyingToNode(t){if(this._appliesToNextNode&&(this.metadata.flags&1)!==1){let n=this._declarationNodeIndex,r=t.parent;for(;r!==null&&r.type&8&&r.index!==n;)r=r.parent;return n===(r!==null?r.index:-1)}return this._appliesToNextNode}matchTNode(t,n){let r=this.metadata.predicate;if(Array.isArray(r))for(let o=0;o<r.length;o++){let i=r[o];this.matchTNodeWithReadOption(t,n,ST(n,i)),this.matchTNodeWithReadOption(t,n,pa(n,t,i,!1,!1))}else r===pi?n.type&4&&this.matchTNodeWithReadOption(t,n,-1):this.matchTNodeWithReadOption(t,n,pa(n,t,r,!1,!1))}matchTNodeWithReadOption(t,n,r){if(r!==null){let o=this.metadata.read;if(o!==null)if(o===xt||o===ho||o===pi&&n.type&4)this.addMatch(n.index,-2);else{let i=pa(n,t,o,!1,!1);i!==null&&this.addMatch(n.index,i)}else this.addMatch(n.index,r)}}addMatch(t,n){this.matches===null?this.matches=[t,n]:this.matches.push(t,n)}};function ST(e,t){let n=e.localNames;if(n!==null){for(let r=0;r<n.length;r+=2)if(n[r]===t)return n[r+1]}return null}function DT(e,t){return e.type&11?po(e,t):e.type&4?gf(e,t):null}function TT(e,t,n,r){return n===-1?DT(t,e):n===-2?CT(e,t,r):wa(e,e[D],n,t)}function CT(e,t,n){if(n===xt)return po(t,e);if(n===pi)return gf(t,e);if(n===ho)return My(t,e)}function xy(e,t,n,r){let o=t[Ht].queries[r];if(o.matches===null){let i=e.data,s=n.matches,a=[];for(let c=0;s!==null&&c<s.length;c+=2){let l=s[c];if(l<0)a.push(null);else{let d=i[l];a.push(TT(t,d,s[c+1],n.metadata.read))}}o.matches=a}return o.matches}function vu(e,t,n,r){let o=e.queries.getByIndex(n),i=o.matches;if(i!==null){let s=xy(e,t,o,n);for(let a=0;a<i.length;a+=2){let c=i[a];if(c>0)r.push(s[a/2]);else{let l=i[a+1],d=t[-c];for(let u=oe;u<d.length;u++){let f=d[u];f[Cn]===f[ue]&&vu(f[D],f,l,r)}if(d[pr]!==null){let u=d[pr];for(let f=0;f<u.length;f++){let h=u[f];vu(h[D],h,l,r)}}}}}return r}function _T(e,t){return e[Ht].queries[t].queryList}function MT(e,t,n){let r=new Ia((n&4)===4);return rg(e,t,r,r.destroy),(t[Ht]??=new pu).queries.push(new fu(r))-1}function NT(e,t,n,r){let o=Be();if(o.firstCreatePass){let i=ze();RT(o,new hu(t,n,r),i.index),xT(o,e),(n&2)===2&&(o.staticContentQueries=!0)}return MT(o,L(),n)}function AT(e){return e.split(`,`).map(t=>t.trim())}function RT(e,t,n){e.queries===null&&(e.queries=new gu),e.queries.track(new mu(t,n))}function xT(e,t){let n=e.contentQueries||(e.contentQueries=[]);t!==(n.length?n[n.length-1]:-1)&&n.push(e.queries.length-1,t)}function yf(e,t){return e.queries.getByIndex(t)}function OT(e,t){let n=e[D],r=yf(n,t);return r.crossesNgTemplate?vu(n,e,t,[]):xy(n,e,r,t)}function Si(e){return!!e&&typeof e.then==`function`}function Oy(e){return!!e&&typeof e.subscribe==`function`}var lo=class{};var nc=class{};var Na=class extends lo{ngModuleType;_parent;_bootstrapComponents=[];_r3Injector;instance;destroyCbs=[];constructor(t,n,r,o=!0){super(),this.ngModuleType=t,this._parent=n;let i=Ph(t);this._bootstrapComponents=uS(i.bootstrap),this._r3Injector=_d(t,n,[{provide:lo,useValue:this},...r],qo(t),new Set([`environment`])),o&&this.resolveInjectorInitializer
vendor: 4,572 bytes, line 4
4s()}resolveInjectorInitializers(){this._r3Injector.resolveInjectorInitializers(),this.instance=this._r3Injector.get(this.ngModuleType)}get injector(){return this._r3Injector}destroy(){let t=this._r3Injector;!t.destroyed&&t.destroy(),this.destroyCbs.forEach(n=>n()),this.destroyCbs=null}onDestroy(t){this.destroyCbs.push(t)}};var Aa=class extends nc{moduleType;constructor(t){super(),this.moduleType=t}create(t){return new Na(this.moduleType,t,[])}};var gi=class extends lo{injector;instance=null;constructor(t){super();let n=new cr([...t.providers,{provide:lo,useValue:this}],t.parent||Jo(),t.debugName,new Set([`environment`]));this.injector=n,t.runEnvironmentInitializers&&n.resolveInjectorInitializers()}destroy(){this.injector.destroy()}onDestroy(t){this.injector.onDestroy(t)}};function go(e,t,n=null){return new gi({providers:e,parent:t,debugName:n,runEnvironmentInitializers:!0}).injector}var kT=(()=>{class e{_injector;cachedInjectors=new Map;constructor(n){this._injector=n}getOrCreateStandaloneInjector(n){if(!n.standalone)return null;if(!this.cachedInjectors.has(n)){let r=Bs(!1,n.type),o=r.length>0?go([r],this._injector,``):null;this.cachedInjectors.set(n,o)}return this.cachedInjectors.get(n)}ngOnDestroy(){try{for(let n of this.cachedInjectors.values())n!==null&&n.destroy()}finally{this.cachedInjectors.clear()}}static ɵprov=O({token:e,providedIn:`environment`,factory:()=>new e(R(ae))})}return e})();function se(e){return _u(()=>{let t=ky(e),n=l(k$1({},t),{decls:e.decls,vars:e.vars,template:e.template,consts:e.consts||null,ngContentSelectors:e.ngContentSelectors,onPush:e.changeDetection!==Nu.Eager,directiveDefs:null,pipeDefs:null,dependencies:t.standalone&&e.dependencies||null,getStandaloneInjector:t.standalone?o=>o.get(kT).getOrCreateStandaloneInjector(n):null,getExternalStyles:null,signals:e.signals??!1,data:e.data||{},encapsulation:e.encapsulation||Rt.Emulated,styles:e.styles||In,_:null,schemas:e.schemas||null,tView:null,id:``});t.standalone&&Je(`NgStandalone`),Py(n);let r=e.dependencies;return n.directiveDefs=om(r,PT),n.pipeDefs=om(r,nd),n.id=FT(n),n})}function PT(e){return Sn(e)||Fs(e)}function LT(e,t){if(e==null)return dr;let n={};for(let r in e)if(Object.hasOwn(e,r)){let o=e[r],i,s,a,c;Array.isArray(o)?(a=o[0],i=o[1],s=o[2]??i,c=o[3]||null):(i=o,s=o,a=Ya.None,c=null),n[i]=[r,a,c],t[i]=s}return n}function jT(e){if(e==null)return dr;let t={};for(let n in e)Object.hasOwn(e,n)&&(t[e[n]]=n);return t}function kn(e){return _u(()=>{let t=ky(e);return Py(t),t})}function bf(e){return{type:e.type,name:e.name,factory:null,pure:e.pure!==!1,standalone:e.standalone??!0,onDestroy:e.type.prototype.ngOnDestroy||null}}function ky(e){let t={};return{type:e.type,providersResolver:null,viewProvidersResolver:null,factory:null,hostBindings:e.hostBindings||null,hostVars:e.hostVars||0,hostAttrs:e.hostAttrs||null,contentQueries:e.contentQueries||null,declaredInputs:t,inputConfig:e.inputs||dr,exportAs:e.exportAs||null,standalone:e.standalone??!0,signals:e.signals===!0,selectors:e.selectors||In,viewQuery:e.viewQuery||null,features:e.features||null,setInput:null,resolveHostDirectives:null,hostDirectives:null,controlDef:null,signalFormsInputPresence:null,inputs:LT(e.inputs,t),outputs:jT(e.outputs),debugInfo:null}}function Py(e){e.features?.forEach(t=>t(e))}function om(e,t){return e?()=>{let n=typeof e==`function`?e():e,r=[];for(let o of n){let i=t(o);i!==null&&r.push(i)}return r}:null}function FT(e){let t=0,n=typeof e.consts==`function`?``:e.consts,r=[e.selectors,e.ngContentSelectors,e.hostVars,e.hostAttrs,n,e.vars,e.decls,e.encapsulation,e.standalone,e.signals,e.exportAs,JSON.stringify(e.inputs),JSON.stringify(e.outputs),Object.getOwnPropertyNames(e.type.prototype),!!e.contentQueries,!!e.viewQuery];for(let i of r.join(`|`))t=Math.imul(31,t)+i.charCodeAt(0)<<0;return t+=2147483648,`c`+t}var Ly=new I(``);var Ef=(()=>{class e{resolve;reject;initialized=!1;done=!1;donePromise=new Promise((n,r)=>{this.resolve=n,this.reject=r});appInits=p(Ly,{optional:!0})??[];injector=p(xe);constructor(){}runInitializers(){if(this.initialized)return;let n=[];for(let o of this.appInits){let i=we(this.injector,o);if(Si(i))n.push(i);else if(Oy(i)){let s=new Promise((a,c)=>{i.subscribe({complete:a,error:c})});n.push(s)}}let r=()=>{this.done=!0,this.resolve()};Promise.all(n).then(()=>{r()}).catch(o=>{this.reject(o)}),n.length===0&&r(),this.initialized=!0}static ɵfac=function(r){return new(r||e)};static ɵprov=ce({token:e,factory:e.ɵfac})}return e})();function UT(e,t,n,r,o,i,s,a){if(n.firstCreatePass){e.mergedAttrs=Pa(e.mergedAttrs,e.attrs);
4let d=e.tView=sf(2,e,o,i,s,n.directiveRegistry,n.pipeRegistry,null,n.schemas,n.consts,null);n.queries!==null&&(n.queries.template(n,e),d.queries=n.queries.embeddedTView(e))}a&&(e.flags|=a),to(e,!1);let c=jy(n,t,e,r);na()&&rf(n,t,c,e),ao(c,t);let l=ly(c,t,c,e);t[r+Y]=l,cf(t,l),ET(l,e,t)}function Ra(e,t,n,r,o,i,s,a,c,l,d){let u=n+Y,f;if(t.firstCreatePass){if(f=Ka(t,u,4,s||null,a||null),l!=null){let h=zt(t.consts,l);f.localNames=[];for(let y=0;y<h.length;y+=2)f.localNames.push(h[y],-1)}}else f=t.data[u];return UT(f,e,t,n,r,o,i,c),l!=null&&lf(e,f,d),f}var jy=Fy;function Fy(e,t,n,r){return dn(!0),t[G].createComment(``)}function HT(e,t,n,r){let o=!Va(t,n);dn(o);let i=t[Ye]?.data[Zm]?.[r]??null;if(i!==null&&n.tView!==null&&n.tView.ssrId===null&&(n.tView.ssrId=i),o)return Fy(e,t);let s=t[Ye],a=Qa(s,e,t,n);Ha(s,r,a);return Ja(Uu(s,r),a)}function Uy(){jy=HT}var it=(function(e){return e[e.NOT_STARTED=0]=`NOT_STARTED`,e[e.IN_PROGRESS=1]=`IN_PROGRESS`,e[e.COMPLETE=2]=`COMPLETE`,e[e.FAILED=3]=`FAILED`,e})(it||{});var im=0;var VT=1;var he=(function(e){return e[e.Placeholder=0]=`Placeholder`,e[e.Loading=1]=`Loading`,e[e.Complete=2]=`Complete`,e[e.Error=3]=`Error`,e})(he||{});var $T=0;var Di=1;var BT=4;var zT=5;var WT=7;var so=8;var qT=9;var wf=(function(e){return e[e.Manual=0]=`Manual`,e[e.Playthrough=1]=`Playthrough`,e})(wf||{});function ma(e,t){let n=GT(e),r=t[n];if(r!==null){for(let o of r)o();t[n]=null}}function ZT(e){ma(1,e),ma(0,e),ma(2,e)}function GT(e){let t=BT;return e===1?t=zT:e===2&&(t=qT),t}function Hy(e){return e+1}function mo(e,t){e[D];return e[Hy(t.index)]}function Ti(e,t){let n=Hy(t.index);return e.data[n]}function YT(e,t,n){let r=t[D],o=Ti(r,n);switch(e){case he.Complete:return o.primaryTmplIndex;case he.Loading:return o.loadingTmplIndex;case he.Error:return o.errorTmplIndex;case he.Placeholder:return o.placeholderTmplIndex;default:return null}}function sm(e,t){return t===he.Placeholder?e.placeholderBlockConfig?.[im]??null:t===he.Loading?e.loadingBlockConfig?.[im]??null:null}function KT(e){return e.loadingBlockConfig?.[VT]??null}function am(e,t){if(!e||e.length===0)return t;let n=new Set(e);for(let r of t)n.add(r);return e.length===n.size?e:Array.from(n)}function QT(e,t){return eo(e,t.primaryTmplIndex+Y)}var JT=(()=>{class e{cachedInjectors=new Map;getOrCreateInjector(n,r,o,i){if(!this.cachedInjectors.has(n)){let s=o.length>0?go(o,r,i):null;this.cachedInjectors.set(n,s)}return this.cachedInjectors.get(n)}ngOnDestroy(){try{for(let n of this.cachedInjectors.values())n!==null&&n.destroy()}finally{this.cachedInjectors.clear()}}static ɵprov=O({token:e,providedIn:`environment`,factory:()=>new e})}return e})();var Vy=new I(``);function Hd(e,t,n){return e.get(JT).getOrCreateInjector(t,e,n,``)}function XT(e,t,n){if(e instanceof Ir){let o=e.injector,i=e.parentInjector;return new Ir(o,Hd(i,t,n))}let r=e.get(ae);if(r!==e)return new Ir(e,Hd(r,t,n));return Hd(e,t,n)}function Er(e,t,n,r=!1){let o=n[ue],i=o[D];if(_n(o))return;let s=mo(o,t),a=s[Di],c=s[WT];if(!(c!==null&&e<c)&&cm(a,e)&&cm(s[$T]??-1,e)){let l=Ti(i,t),u=!r&&(KT(l)!==null||sm(l,he.Loading)!==null||sm(l,he.Placeholder))?nC:tC;try{u(e,s,n,t,o)}catch(f){df(o,f)}}}function eC(e,t){let n=e[Mt]?.findIndex(o=>o.data[Qm]===t[Di])??-1;return{dehydratedView:n>-1?e[Mt][n]:null,dehydratedViewIx:n}}function tC(e,t,n,r,o){$(U.DeferBlockStateStart);let i=YT(e,o,r);if(i!==null){t[Di]=e;let s=o[D],c=eo(s,i+Y),l=0;hf(n,l);let d;if(e===he.Complete){let y=Ti(s,r),S=y.providers;S&&S.length>0&&(d=XT(o[Ke],y,S))}let{dehydratedView:u,dehydratedViewIx:f}=eC(n,t),h=wi(o,c,null,{injector:d,dehydratedView:u});if(Ii(n,h,l,co(c,u)),Gs(h),f>-1&&n[Mt]?.splice(f,1),(e===he.Complete||e===he.Error)&&Array.isArray(t[so])){for(let y of t[so])y();t[so]=null}}$(U.DeferBlockStateEnd)}function cm(e,t){return e<t}function lm(e,t,n){e.loadingPromise.then(()=>{e.loadingState===it.COMPLETE?Er(he.Complete,t,n):e.loadingState===it.FAILED&&Er(he.Error,t,n)})}var nC=null;function rC(e,t){return t[Ke].get(Vy,null,{optional:!0})?.behavior!==wf.Manual}var rc=(()=>{class e{log(n){console.log(n)}warn(n){console.warn(n)}static ɵfac=function(r){return new(r||e)};static ɵprov=O({token:e,factory:e.ɵfac,providedIn:`platform`})}return e})();var If=new I(``);var Ot=new I(``);function $y(){vl(()=>{throw new w(600,``)})}var oC=10;var We=(()=>{class e{_runningTick=!1;_destroyed=!1;_destroyListeners=[];_views=[];internalErrorHandler=p(yt);
4afterRenderManager=p(Xu);zonelessEnabled=p(ii);rootEffectScheduler=p(ia);dirtyFlags=0;tracingSnapshot=null;allTestViews=new Set;autoDetectTestViews=new Set;includeAllTestViews=!1;afterTick=new le;get allViews(){return[...(this.includeAllTestViews?this.allTestViews:this.autoDetectTestViews).keys(),...this._views]}get destroyed(){return this._destroyed}componentTypes=[];components=[];internalPendingTask=p(qt);get isStable(){return this.internalPendingTask.hasPendingTasksObservable.pipe(J(n=>!n))}constructor(){p(hn,{optional:!0})}whenStable(){let n;return new Promise(r=>{n=this.isStable.subscribe({next:o=>{o&&r()}})}).finally(()=>{n.unsubscribe()})}_injector=p(ae);_rendererFactory=null;get injector(){return this._injector}bootstrap(n,r){return this.bootstrapImpl(n,r)}bootstrapImpl(n,r,o=xe.NULL){return this._injector.get(Oe).run(()=>{if($(U.BootstrapComponentStart),!this._injector.get(Ef).done)throw new w(405,``);let a=Sn(n),c=this._injector.get(lo),l=new hi(a,c);this.componentTypes.push(n);let{hostElement:d,directives:u,bindings:f}=iC(r),h=d||l.selector,y=l.create(o,[],h,c.injector,u,f),S=y.location.nativeElement,C=y.injector.get(If,null);return C?.registerApplication(S),y.onDestroy(()=>{this.detachView(y.hostView),ci(this.components,y),C?.unregisterApplication(S)}),this._loadComponent(y),$(U.BootstrapComponentEnd,y),y})}tick(){this.zonelessEnabled||(this.dirtyFlags|=1),this._tick()}_tick(){$(U.ChangeDetectionStart),this.tracingSnapshot!==null?this.tracingSnapshot.run(za.CHANGE_DETECTION,this.tickImpl):this.tickImpl()}tickImpl=()=>{if(this._runningTick)throw $(U.ChangeDetectionEnd),new w(101,!1);let n=T(null);try{this._runningTick=!0,this.synchronize()}finally{this._runningTick=!1,this.tracingSnapshot?.dispose(),this.tracingSnapshot=null,T(n),this.afterTick.next(),$(U.ChangeDetectionEnd)}};synchronize(){this._rendererFactory===null&&!this._injector.destroyed&&(this._rendererFactory=this._injector.get(Sr,null,{optional:!0}));let n=0;for(;this.dirtyFlags!==0&&n++<oC;){$(U.ChangeDetectionSyncStart);try{this.synchronizeOnce()}finally{$(U.ChangeDetectionSyncEnd)}}}synchronizeOnce(){this.dirtyFlags&16&&(this.dirtyFlags&=-17,this.rootEffectScheduler.flush());let n=!1;if(this.dirtyFlags&7){let r=!!(this.dirtyFlags&1);this.dirtyFlags&=-8,this.dirtyFlags|=8;for(let{_lView:o}of this.allViews){if(!r&&!ei(o))continue;iy(o,r&&!this.zonelessEnabled?0:1),n=!0}if(this.dirtyFlags&=-5,this.syncDirtyFlagsWithViews(),this.dirtyFlags&23)return}n||(this._rendererFactory?.begin?.(),this._rendererFactory?.end?.()),this.dirtyFlags&8&&(this.dirtyFlags&=-9,this.afterRenderManager.execute()),this.syncDirtyFlagsWithViews()}syncDirtyFlagsWithViews(){if(this.allViews.some(({_lView:n})=>ei(n))){this.dirtyFlags|=2;return}else this.dirtyFlags&=-8}attachView(n){let r=n;this._views.push(r),r.attachToAppRef(this)}detachView(n){let r=n;ci(this._views,r),r.detachFromAppRef()}_loadComponent(n){this.attachView(n.hostView);try{this.tick()}catch(o){this.internalErrorHandler(o)}this.components.push(n),this._injector.get(Ot,[]).forEach(o=>o(n))}ngOnDestroy(){if(!this._destroyed)try{this._destroyListeners.forEach(n=>n()),this._views.slice().forEach(n=>n.destroy())}finally{this._destroyed=!0,this._views=[],this._destroyListeners=[]}}onDestroy(n){return this._destroyListeners.push(n),()=>ci(this._destroyListeners,n)}destroy(){if(this._destroyed)throw new w(406,!1);let n=this._injector;n.destroy&&!n.destroyed&&n.destroy()}get viewCount(){return this._views.length}static ɵfac=function(r){return new(r||e)};static ɵprov=ce({token:e,factory:e.ɵfac})}return e})();function iC(e){return e===void 0||typeof e==`string`||e instanceof Element?{hostElement:e}:e}function ci(e,t){let n=e.indexOf(t);n>-1&&e.splice(n,1)}function By(e,t,n){let r=t[Ke],o=t[D];if(e.loadingState!==it.NOT_STARTED)return e.loadingPromise??Promise.resolve();let i=mo(t,n),s=QT(o,e);e.loadingState=it.IN_PROGRESS,ma(1,i);let a=e.dependencyResolverFn,c=r.get(ro).add();return a?(e.loadingPromise=Promise.allSettled(a()).then(l=>{let d=!1,f=[],h=[];for(let y=0;y<l.length;y++){let S=l[y];
4if(S.status===`fulfilled`){let C=S.value,j=Sn(C)||Fs(C);if(j)f.push(j);else{let K=nd(C);K&&h.push(K)}}else{d=!0,S.reason instanceof Error?S.reason:new Error(String(S.reason));break}}if(d){if(e.loadingState=it.FAILED,e.errorTmplIndex===null)df(t,new w(-750,``))}else{e.loadingState=it.COMPLETE;let y=s.tView;if(f.length>0){y.directiveRegistry=am(y.directiveRegistry,f);e.providers=Bs(!1,...f.map(j=>j.type))}h.length>0&&(y.pipeRegistry=am(y.pipeRegistry,h))}}),e.loadingPromise.finally(()=>{e.loadingPromise=null,c()})):(e.loadingPromise=Promise.resolve().then(()=>{e.loadingPromise=null,e.loadingState=it.COMPLETE,c()}),e.loadingPromise)}function sC(e,t,n){let r=t[D],o=t[n.index];if(!rC(e,t))return;let i=mo(t,n),s=Ti(r,n);switch(ZT(i),s.loadingState){case it.NOT_STARTED:Er(he.Loading,n,o),By(s,t,n),s.loadingState===it.IN_PROGRESS&&lm(s,n,o);break;case it.IN_PROGRESS:Er(he.Loading,n,o),lm(s,n,o);break;case it.COMPLETE:Er(he.Complete,n,o);break;case it.FAILED:Er(he.Error,n,o);break;default:}}async function zy(e,t,n){let r=e.get(yi);if(r.hydrating.has(t))return;let{parentBlockPromise:i,hydrationQueue:s}=LI(t,e);if(s.length===0)return;i!==null&&s.shift(),lC(r,s),i!==null&&await i;let a=s[0];r.has(a)?await dm(e,s,n):r.awaitParentBlock(a,async()=>await dm(e,s,n))}async function dm(e,t,n){let r=e.get(yi),o=r.hydrating,i=e.get(qt),s=i.add();for(let c=0;c<t.length;c++){let l=t[c],d=r.get(l);if(d!=null){if(await uC(d),await dC(e),aC(d)){UD(d),um(t.slice(c),r);break}o.get(l).resolve()}else{cC(c,t,r),um(t.slice(c),r);break}}let a=t[t.length-1];await o.get(a)?.promise,i.remove(s),n&&n(t),HD(r.get(a),t,r,e.get(We))}function aC(e){return mo(e.lView,e.tNode)[Di]===he.Error}function cC(e,t,n){let r=e-1,o=r>-1?n.get(t[r]):null;o&&ec(o.lContainer)}function um(e,t){let n=t.hydrating;for(let r of e)n.get(r)?.reject();t.cleanup(e)}function lC(e,t){for(let n of t)e.hydrating.set(n,ni())}function dC(e){return new Promise(t=>Wa(t,{injector:e}))}async function uC(e){let{tNode:t,lView:n}=e,r=mo(n,t);return new Promise(o=>{fC(r,o),sC(2,n,t)})}function fC(e,t){Array.isArray(e[so])||(e[so]=[]),e[so].push(t)}function me(e,t,n,r){let o=L();if(On(o,vr(),t)){Be();aD(ti(),o,e,t,n,r)}return me}var yu=class{destroy(t){}updateValue(t,n){}swap(t,n){let r=Math.min(t,n),o=Math.max(t,n),i=this.detach(o);if(o-r>1){let s=this.detach(r);this.attach(r,i),this.attach(o,s)}else this.attach(r,i)}move(t,n){this.attach(n,this.detach(t))}};function Vd(e,t,n,r,o){return e===n&&Object.is(t,r)?1:Object.is(o(e,t),o(n,r))?-1:0}function pC(e,t,n,r){let o,i,s=0,a=e.length-1;if(Array.isArray(t)){T(r);let l=t.length-1;for(T(null);s<=a&&s<=l;){let d=e.at(s),u=t[s],f=Vd(s,d,s,u,n);if(f!==0){f<0&&e.updateValue(s,u),s++;continue}let h=e.at(a),y=t[l],S=Vd(a,h,l,y,n);if(S!==0){S<0&&e.updateValue(a,y),a--,l--;continue}let C=n(s,d),j=n(a,h),K=n(s,u);if(Object.is(K,j)){let Ce=n(l,y);Object.is(Ce,C)?(e.swap(s,a),e.updateValue(a,y),l--,a--):e.move(a,s),e.updateValue(s,u),s++;continue}if(o??=new xa,i??=pm(e,s,a,n),bu(e,o,s,K))e.updateValue(s,u),s++,a++;else if(i.has(K))o.set(C,e.detach(s)),a--;else{let Ce=e.create(s,t[s]);e.attach(s,Ce),s++,a++}}for(;s<=l;)fm(e,o,n,s,t[s]),s++}else if(t!=null){T(r);let l=t[Symbol.iterator]();T(null);let d=l.next();for(;!d.done&&s<=a;){let u=e.at(s),f=d.value,h=Vd(s,u,s,f,n);if(h!==0)h<0&&e.updateValue(s,f),s++,d=l.next();else{o??=new xa,i??=pm(e,s,a,n);let y=n(s,f);if(bu(e,o,s,y))e.updateValue(s,f),s++,a++,d=l.next();else if(!i.has(y))e.attach(s,e.create(s,f)),s++,a++,d=l.next();else{let S=n(s,u);o.set(S,e.detach(s)),a--}}}for(;!d.done;)fm(e,o,n,e.length,d.value),d=l.next()}for(;s<=a;)e.destroy(e.detach(a--));o?.forEach(l=>{e.destroy(l)})}function bu(e,t,n,r){return t!==void 0&&t.has(r)?(e.attach(n,t.get(r)),t.delete(r),!0):!1}function fm(e,t,n,r,o){if(bu(e,t,r,n(r,o)))e.updateValue(r,o);else{let i=e.create(r,o);e.attach(r,i)}}function pm(e,t,n,r){let o=new Set;for(let i=t;i<=n;i++)o.add(r(i,e.at(i)));return o}var xa=class{kvMap=new Map;_vMap=void 0;has(t){return this.kvMap.has(t)}delete(t){if(!this.has(t))return!1;let n=this.kvMap.get(t);return this._vMap!==void 0&&this._vMap.has(n)?(this.kvMap.set(t,this._vMap.get(n)),this._vMap.delete(n)):this.kvMap.delete(t),!0}get(t){return this.kvMap.get(t)}set(t,n){if(this.kvMap.has(t)){let r=this.kvMap.get(t);this._vMap===void 0&&(this._vMap=new Map);let o=this._vMap;for(;o.has(r);)r=o.get(r);o.set(r,n)}else this.kvMap.set(t,n)}forEach(t){for(let[n,r]of this.kvMap)if(t(r,n),this._vMap!==void 0){let o=this._vMap;for(;o.has(r);)r=o.get(r),t(r,n)}}};function ve(e,t,n,r,o,i,s,a){Je(`NgControlFlow`);let c=L(),l=Be();return Ra(c,l,e,t,n,r,o,zt(l.consts,i),256,s,a),Sf}function Sf(e,t,n,r,o,i,s,a){Je(`NgControlFlow`);let c=L(),l=Be();return Ra(c,l,e,t,n,r,o,zt(l.consts,i),512,s,a),Sf}function ye(e,t){Je(`NgControlFlow`);let n=L(),r=vr(),o=n[r]!==Yt?n[r]:-1,i=o!==-1?Oa(n,Y+o):void 0,s=0;if(On(n,r,e)){let a=T(null);try{if(i!==void 0&&hf(i,s),e!==-1){let c=Y+e,l=Oa(n,c),d=Su(n[D],c),u=vy(l,d,n);Ii(l,wi(n,d,t,{dehydratedView:u}),s,co(d,u))}}finally{T(a)}}else if(i!==void 0){let a=dy(i,s);a!==void 0&&(a[pe]=t)}}var Eu=class{lContainer;$implicit;$index;constructor(t,n,r){this.lContainer=t,this.$implicit=n,this.$index=r}get $count(){return this.lContainer.length-oe}};function Df(e,t){return t}var wu=class{hasEmptyBlock;trackByFn;liveCollection;constructor(t,n,r){this.hasEmptyBlock=t,this.trackByFn=n,this.liveCollection=r}};function Se(e,t,n,r,o,i,s,a,c,l,d,u,f){Je(`NgControlFlow`);let h=L(),y=Be(),S=c!==void 0,C=L(),K=new wu(S,a?s.bind(C[$e][pe]):s);C[Y+e]=K,Ra(h,y,e+1,t,n,r,o,zt(y.consts,i),256),S&&Ra(h,y,e+2,c,l,d,u,zt(y.consts,f),512)}var Iu=class extends yu{lContainer;hostLView;templateTNode;operationsCounter=void 0;needsIndexUpdate=!1;constructor(t,n,r){super(),this.lContainer=t,this.hostLView=n,this.templateTNode=r}get length(){return this.lContainer.length-oe}at(t){return this.getLView(t)[pe].$implicit}attach(t,n){let r=n[Ye];this.needsIndexUpdate||=t!==this.length,Ii(this.lContainer,n,t,co(this.templateTNode,r)),hC(this.lContainer,t)}detach(t){return this.needsIndexUpdate||=t!==this.length-1,gC(this.lContainer,t),mC(this.lContainer,t)}create(t,n){let r=Ca(this.lContainer,this.templateTNode.tView.ssrId);return wi(this.hostLView,this.templateTNode,new Eu(this.lContainer,n,t),{dehydratedView:r})}destroy(t){Za(t[D],t)}updateValue(t,n){this.getLView(t)[pe].$implicit=n}reset(){this.needsIndexUpdate=!1}
4updateIndexes(){if(this.needsIndexUpdate)for(let t=0;t<this.length;t++)this.getLView(t)[pe].$index=t}getLView(t){return vC(this.lContainer,t)}};function De(e){let t=T(null),n=ln();try{let r=L(),o=r[D],i=r[n],s=n+1,a=Oa(r,s);if(i.liveCollection===void 0)i.liveCollection=new Iu(a,r,Su(o,s));else i.liveCollection.reset();let c=i.liveCollection;if(pC(c,e,i.trackByFn,t),c.updateIndexes(),i.hasEmptyBlock){let l=vr(),d=c.length===0;if(On(r,l,d)){let u=n+2,f=Oa(r,u);if(d){let h=Su(o,u),y=vy(f,h,r);Ii(f,wi(r,h,void 0,{dehydratedView:y}),0,co(h,y))}else o.firstUpdatePass&&Xa(f),hf(f,0)}}}finally{T(t)}}function Oa(e,t){return e[t]}function hC(e,t){if(e.length<=oe)return;let r=e[oe+t],o=r?r[$t]:void 0;if(r&&o&&o.detachedLeaveAnimationFns&&o.detachedLeaveAnimationFns.length>0){let i=r[Ke];MS(i,o),Rn.delete(r[Vt]),o.detachedLeaveAnimationFns=void 0}}function gC(e,t){if(e.length<=oe)return;let r=e[oe+t],o=r?r[$t]:void 0;o&&o.leave&&o.leave.size>0&&(o.detachedLeaveAnimationFns=[])}function mC(e,t){return fi(e,t)}function vC(e,t){return dy(e,t)}function Su(e,t){return eo(e,t)}function H(e,t,n){let r=L();if(On(r,vr(),t)){Be();tD(ti(),r,e,t,r[G],n)}return H}function hm(e,t,n,r,o){uf(t,e,n,o?`class`:`style`,r)}function g(e,t,n,r){let o=L(),i=o[D],s=e+Y,a=i.firstCreatePass?Dy(s,o,2,t,sD,sg(),n,r):i.data[s];if(Bt(a)){let c=o[_t].tracingService;if(c&&c.componentCreate){let l=i.data[a.directiveStart+a.componentOffset];return c.componentCreate(wy(l),()=>(gm(e,t,o,a,r),g))}}return gm(e,t,o,a,r),g}function gm(e,t,n,r,o){if(Jv(r,n,e,t,Tf),Ws(r)){let i=n[D];Gv(i,n,r),Ev(i,r,n)}o!=null&&lf(n,r)}function m(){let e=Be(),n=Xv(ze());return e.firstCreatePass&&Ty(e,n),yd(n)&&bd(),md(),n.classesWithoutHost!=null&&oI(n)&&hm(e,n,L(),n.classesWithoutHost,!0),n.stylesWithoutHost!=null&&iI(n)&&hm(e,n,L(),n.stylesWithoutHost,!1),m}function ie(e,t,n,r){return g(e,t,n,r),m(),ie}function ke(e,t,n,r){let o=L(),i=o[D],s=e+Y,a=i.firstCreatePass?sT(s,i,2,t,n,r):i.data[s];return Jv(a,o,e,t,Tf),r!=null&&lf(o,a),ke}function je(){return yd(Xv(ze()))&&bd(),md(),je}function Pn(e,t,n,r){return ke(e,t,n,r),je(),Pn}var Tf=(e,t,n,r,o)=>(dn(!0),Wu(t[G],r,ta()));function yC(e,t,n,r,o){let i=!Va(t,n);if(dn(i),i)return Wu(t[G],r,ta());let s=t[Ye],a=Qa(s,e,t,n);if(mv(s,o)&&Ha(s,o,a.nextSibling),s){if(a==null)throw new w(-502,`<${r}>`);if(a.nodeType!==Node.ELEMENT_NODE){let c=a,l=c.textContent&&c.textContent.slice(0,50);throw new w(-500,l?`${c.nodeName} ("${l}")`:c.nodeName)}(jm(n)||Fm(a))&&Bt(n)&&(ag(n),Rv(a))}return a}function Wy(){Tf=yC}function vo(e,t,n){let r=L();if(On(r,vr(),t)){Be();Qv(ti(),r,e,t,r[G],n)}return vo}var Ci=`en-US`;function Zy(e){typeof e==`string`&&e.toLowerCase().replace(/_/g,`-`)}function Ln(e,t,n){let r=L(),o=Be(),i=ze();return IC(o,r,r[G],i,e,t,n),Ln}function IC(e,t,n,r,o,i,s){let a=!0,c=null;if((r.type&3||s)&&(c??=Fd(r,t,i),ZD(r,e,t,s,n,o,i,c)&&(a=!1)),a){let l=r.outputs?.[o],d=r.hostDirectiveOutputs?.[o];if(d&&d.length)for(let u=0;u<d.length;u+=2){let f=d[u],h=d[u+1];c??=Fd(r,t,i),Jg(r,t,f,h,o,c)}if(l&&l.length)for(let u of l)c??=Fd(r,t,i),Jg(r,t,u,o,o,c)}}function Q(e=1){return bg(e)}function oc(e,t,n,r){return NT(e,t,n,r),oc}function Cf(e){let t=L(),n=Be(),r=Dd();Js(r+1);let o=yf(n,r);if(e.dirty&&Xh(t)===((o.metadata.flags&2)===2)){if(o.matches===null)e.reset([]);else{let i=OT(t,r);e.reset(i,bI),e.notifyOnChanges()}return!0}return!1}function _f(){return _T(L(),Dd())}function da(e,t){return e<<17|t<<2}function Tr(e){return e>>17&32767}function SC(e){return(e&2)==2}function DC(e,t){return e&131071|t<<17}function Du(e){return e|2}function uo(e){return(e&131068)>>2}function $d(e,t){return e&-131069|t<<2}function TC(e){return(e&1)===1}function Tu(e){return e|1}function CC(e,t,n,r,o,i){let s=i?t.classBindings:t.styleBindings,a=Tr(s),c=uo(s);e[r]=n;let l=!1,d;if(Array.isArray(n)){let u=n;d=u[1],(d===null||Qr(u,d)>0)&&(l=!0)}else d=n;if(o)if(c!==0){let f=Tr(e[a+1]);e[r+1]=da(f,a),f!==0&&(e[f+1]=$d(e[f+1],r)),e[a+1]=DC(e[a+1],r)}else e[r+1]=da(a,0),a!==0&&(e[a+1]=$d(e[a+1],r)),a=r;else e[r+1]=da(c,0),a===0?a=r:e[c+1]=$d(e[c+1],r),c=r;l&&(e[r+1]=Du(e[r+1])),mm(e,d,r,!0),mm(e,d,r,!1),_C(t,d,e,r,i),s=da(a,c),i?t.classBindings=s:t.styleBindings=s}function _C(e,t,n,r,o){let i=o?e.residualClasses:e.residualStyles;
vendor: 1,356 bytes, line 4
4i!=null&&typeof t==`string`&&Qr(i,t)>=0&&(n[r+1]=Tu(n[r+1]))}function mm(e,t,n,r){let o=e[n+1],i=t===null,s=r?Tr(o):uo(o),a=!1;for(;s!==0&&(a===!1||i);){let c=e[s],l=e[s+1];MC(c,t)&&(a=!0,e[s+1]=r?Tu(l):Du(l)),s=r?Tr(l):uo(l)}a&&(e[n+1]=r?Du(o):Tu(o))}function MC(e,t){return e===null||t==null||(Array.isArray(e)?e[1]:e)===t?!0:Array.isArray(e)&&typeof t==`string`?Qr(e,t)>=0:!1}function kt(e,t){return NC(e,t,null,!0),kt}function NC(e,t,n,r){let o=L(),i=Be(),s=ug(2);if(i.firstUpdatePass&&RC(i,e,s,r),t!==Yt&&On(o,s,t)){let a=i.data[ln()];LC(i,a,o,o[G],e,o[s+1]=jC(t,n),r,s)}}function AC(e,t){return t>=e.expandoStartIndex}function RC(e,t,n,r){let o=e.data;if(o[n+1]===null){let i=o[ln()],s=AC(e,n);FC(i,r)&&t===null&&!s&&(t=!1),t=xC(o,i,t,r),CC(o,i,t,n,s,r)}}function xC(e,t,n,r){let o=gg(e),i=r?t.residualClasses:t.residualStyles;if(o===null)(r?t.classBindings:t.styleBindings)===0&&(n=Bd(null,e,t,n,r),n=mi(n,t.attrs,r),i=null);else{let s=t.directiveStylingLast;if(s===-1||e[s]!==o)if(n=Bd(o,e,t,n,r),i===null){let c=OC(e,t,r);c!==void 0&&Array.isArray(c)&&(c=Bd(null,e,t,c[1],r),c=mi(c,t.attrs,r),kC(e,t,r,c))}else i=PC(e,t,r)}return i!==void 0&&(r?t.residualClasses=i:t.residualStyles=i),n}function OC(e,t,n){let r=n?t.classBindings:t.styleBindings;if(uo(r)!==0)return e[Tr(r)]}function kC(e,t,n,r){let o=n?t.classBindings:t.styleBindings;e[Tr(o)]=r}
4function PC(e,t,n){let r,o=t.directiveEnd;for(let i=1+t.directiveStylingLast;i<o;i++){let s=e[i].hostAttrs;r=mi(r,s,n)}return mi(r,t.attrs,n)}function Bd(e,t,n,r,o){let i=null,s=n.directiveEnd,a=n.directiveStylingLast;for(a===-1?a=n.directiveStart:a++;a<s&&(i=t[a],r=mi(r,i.hostAttrs,o),i!==e);)a++;return e!==null&&(n.directiveStylingLast=a),r}function mi(e,t,n){let r=n?1:2,o=-1;if(t!==null)for(let i=0;i<t.length;i++){let s=t[i];typeof s==`number`?o=s:o===r&&(Array.isArray(e)||(e=e===void 0?[]:[``,e]),$h(e,s,n?!0:t[++i]))}return e===void 0?null:e}function LC(e,t,n,r,o,i,s,a){if(!(t.type&3))return;let c=e.data,l=c[a+1];if(!ka(TC(l)?vm(c,t,n,o,uo(l),s):void 0)){ka(i)||SC(l)&&(i=vm(c,null,n,o,a,s));ZS(r,s,ud(ln(),n),o,i)}}function vm(e,t,n,r,o,i){let s=t===null,a;for(;o>0;){let c=e[o],l=Array.isArray(c),d=l?c[1]:c,u=d===null,f=n[o+1];f===Yt&&(f=u?In:void 0);let h=u?$s(f,r):d===r?f:void 0;if(l&&!ka(h)&&(h=$s(c,r)),ka(h)&&(a=h,s))return a;let y=e[o+1];o=s?Tr(y):uo(y)}if(t!==null){let c=i?t.residualClasses:t.residualStyles;c!=null&&(a=$s(c,r))}return a}function ka(e){return e!==void 0}function jC(e,t){return e==null||e===``||(typeof t==`string`?e=st(e)+t:typeof e==`object`&&(e=qo(st(e)))),e}function FC(e,t){return(e.flags&(t?8:16))!==0}function v(e,t=``){let n=L(),r=Be(),o=e+Y,i=r.firstCreatePass?Ka(r,o,1,t,null):r.data[o],s=Gy(r,n,i,t);n[o]=s,na()&&rf(r,n,s,i),to(i,!1)}var Gy=(e,t,n,r)=>(dn(!0),Mv(t[G],r));function UC(e,t,n,r){let o=!Va(t,n);if(dn(o),o)return Mv(t[G],r);let i=t[Ye];return Qa(i,e,t,n)}function Yy(){Gy=UC}function HC(e,t,n,r=``){return On(e,vr(),n)?t+Go(n)+r:Yt}function q(e){return te(``,e),q}function te(e,t,n){let r=L(),o=HC(r,e,t,n);return o!==Yt&&VC(r,ln(),o),te}function VC(e,t,n){let r=ud(t,e);iS(e[G],r,n)}var $C=()=>null;var Mf=new I(``);function Ky(){return $C()}function Qy(e){e.requested&&e.activated&&(e.injector,e.document)}function bt(e,t,n){return Jy(L(),Sd(),e,t,n)}function zC(e,t){let n=e[t];return n===Yt?void 0:n}function Jy(e,t,n,r,o,i){let s=t+n;return On(e,s,o)?qD(e,s+1,i?r.call(i,o):r(o)):zC(e,s+1)}function Nf(e,t){let n=Be(),r,o=e+Y;n.firstCreatePass?(r=WC(t,n.pipeRegistry),n.data[o]=r,r.onDestroy&&(n.destroyHooks??=[]).push(o,r.onDestroy)):r=n.data[o];let i=r.factory||(r.factory=ar(r.type,!0)),a=He(at);try{let c=Ea(!1),l=i();return Ea(c),fd(n,L(),o,l),l}finally{He(a)}}function WC(e,t){if(t)for(let n=t.length-1;n>=0;n--){let r=t[n];if(e===r.name)return r}}function Af(e,t,n){let r=e+Y,o=L(),i=Jh(o,r);return qC(o,r)?Jy(o,Sd(),t,i.transform,n,i):i.transform(n)}function qC(e,t){return e[D].data[t].pure}var Xy=(()=>{class e{applicationErrorHandler=p(yt);appRef=p(We);taskService=p(qt);ngZone=p(Oe);zonelessEnabled=p(ii);tracing=p(hn,{optional:!0});zoneIsDefined=typeof Zone<`u`&&!!Zone.root.run;schedulerTickApplyArgs=[{data:{__scheduler_tick__:!0}}];subscriptions=new Ne;angularZoneId=this.zoneIsDefined?this.ngZone._inner?.get(zo):null;scheduleInRootZone=!this.zonelessEnabled&&this.zoneIsDefined&&(p(xd,{optional:!0})??!1);cancelScheduledCallback=null;useMicrotaskScheduler=!1;runningTick=!1;pendingRenderTaskId=null;constructor(){this.subscriptions.add(this.appRef.afterTick.subscribe(()=>{let n=this.taskService.add();if(!this.runningTick&&(this.cleanup(),!this.zonelessEnabled||this.appRef.includeAllTestViews)){this.taskService.remove(n);return}this.switchToMicrotaskScheduler(),this.taskService.remove(n)})),this.subscriptions.add(this.ngZone.onUnstable.subscribe(()=>{this.runningTick||this.cleanup()}))}switchToMicrotaskScheduler(){this.ngZone.runOutsideAngular(()=>{let n=this.taskService.add();this.useMicrotaskScheduler=!0,queueMicrotask(()=>{this.useMicrotaskScheduler=!1,this.taskService.remove(n)})})}notify(n){if(!this.zonelessEnabled&&n===5)return;switch(n){case 0:case 2:this.appRef.dirtyFlags|=2;break;case 3:case 4:case 5:case 1:this.appRef.dirtyFlags|=4;break;case 6:this.appRef.dirtyFlags|=2;break;case 12:this.appRef.dirtyFlags|=16;break;case 13:this.appRef.dirtyFlags|=2;break;case 11:break;default:this.appRef.dirtyFlags|=8}if(this.appRef.tracingSnapshot=this.tracing?.snapshot(this.appRef.tracingSnapshot)??null,!this.shouldScheduleTick())return;let r=this.useMicrotaskScheduler?Sg:Md;this.pendingRenderTaskId=this.taskService.add(),this.scheduleInRootZone?this.cancelScheduledCallback=Zone.root.run(()=>r(()=>this.tick())):this.cancelScheduledCallback=this.ngZone.runOutsideAngular(()=>r(()=>this.tick()))}shouldScheduleTick(){return!(this.appRef.destroyed||this.pendingRenderTaskId!==null||this.runningTick||this.appRef._runningTick||!this.zonelessEnabled&&this.zoneIsDef
4ined&&Zone.current.get(zo+this.angularZoneId))}tick(){if(this.runningTick||this.appRef.destroyed)return;if(this.appRef.dirtyFlags===0){this.cleanup();return}!this.zonelessEnabled&&this.appRef.dirtyFlags&7&&(this.appRef.dirtyFlags|=1);let n=this.taskService.add();try{this.ngZone.run(()=>{this.runningTick=!0,this.appRef._tick()},void 0,this.schedulerTickApplyArgs)}catch(r){this.applicationErrorHandler(r)}finally{this.taskService.remove(n),this.cleanup()}}ngOnDestroy(){this.subscriptions.unsubscribe(),this.cleanup()}cleanup(){if(this.runningTick=!1,this.cancelScheduledCallback?.(),this.cancelScheduledCallback=null,this.pendingRenderTaskId!==null){let n=this.pendingRenderTaskId;this.pendingRenderTaskId=null,this.taskService.remove(n)}}static ɵfac=function(r){return new(r||e)};static ɵprov=ce({token:e,factory:e.ɵfac})}return e})();function eb(){return[{provide:Ut,useExisting:Xy},{provide:Oe,useClass:Wo},{provide:ii,useValue:!0}]}var Rf=(()=>{class e{compileModuleSync(n){return new Aa(n)}compileModuleAsync(n){return Promise.resolve(this.compileModuleSync(n))}clearCache(){}clearCacheFor(n){}getModuleId(n){}static ɵfac=function(r){return new(r||e)};static ɵprov=ce({token:e,factory:e.ɵfac})}return e})();function ZC(){return typeof $localize<`u`&&$localize.locale||Ci}var xf=new I(``,{factory:()=>p(xf,{optional:!0,skipSelf:!0})||ZC()});var ic=new I(``);function Pt(e,t){return os(e,t?.equal)}function re(e){return Xp(e)}(class e extends Error{_brand;constructor(t){super(t)}static IDLE=new e(`IDLE`);static LOADING=new e(`LOADING`)});var GC=e=>e;function sc(e,t){if(typeof e==`function`)return tb(Il(e,GC,t?.equal),t?.debugName,t?.set);else return tb(Il(e.source,e.computation,e.equal),e.debugName,e.set)}function tb(e,t,n){let r=e[Me],o=e;if(n!==void 0){let i=s=>Sl(r,s);o.set=s=>n(s,i),o.update=s=>n(s(re(e)),i)}else o.set=i=>Sl(r,i),o.update=i=>Jp(r,i);return o.asReadonly=ra.bind(e),o}var Ff={JSACTION:`__jsaction`,OWNER:`__owner`};var ib={};function YC(e){return e[Ff.JSACTION]}function nb(e,t){e[Ff.JSACTION]=t}function KC(e){return ib[e]}function QC(e,t){ib[e]=t}var _={CLICK:`click`,CLICKMOD:`clickmod`,DBLCLICK:`dblclick`,FOCUS:`focus`,FOCUSIN:`focusin`,BLUR:`blur`,FOCUSOUT:`focusout`,SUBMIT:`submit`,KEYDOWN:`keydown`,KEYPRESS:`keypress`,KEYUP:`keyup`,MOUSEOVER:`mouseover`,MOUSEOUT:`mouseout`,MOUSEENTER:`mouseenter`,MOUSELEAVE:`mouseleave`,POINTEROVER:`pointerover`,POINTEROUT:`pointerout`,POINTERENTER:`pointerenter`,POINTERLEAVE:`pointerleave`,ERROR:`error`,LOAD:`load`,TOUCHSTART:`touchstart`,TOUCHEND:`touchend`,TOUCHMOVE:`touchmove`,TOGGLE:`toggle`};var JC=[_.MOUSEENTER,_.MOUSELEAVE,`pointerenter`,`pointerleave`];_.CLICK,_.DBLCLICK,_.FOCUSIN,_.FOCUSOUT,_.KEYDOWN,_.KEYUP,_.KEYPRESS,_.MOUSEOVER,_.MOUSEOUT,_.SUBMIT,_.TOUCHSTART,_.TOUCHEND,_.TOUCHMOVE;var XC=[_.FOCUS,_.BLUR,_.ERROR,_.LOAD,_.TOGGLE];var Uf=e=>XC.indexOf(e)>=0;function e_(e){return e===_.MOUSEENTER?_.MOUSEOVER:e===_.MOUSELEAVE?_.MOUSEOUT:e===_.POINTERENTER?_.POINTEROVER:e===_.POINTERLEAVE?_.POINTEROUT:e}function t_(e,t,n,r){let o=!1;Uf(t)&&(o=!0);let i=typeof r==`boolean`?{capture:o,passive:r}:o;return e.addEventListener(t,n,i),{eventType:t,handler:n,capture:o,passive:r}}function n_(e,t){if(e.removeEventListener){let n=typeof t.passive==`boolean`?{capture:t.capture}:t.capture;e.removeEventListener(t.eventType,t.handler,n)}else e.detachEvent&&e.detachEvent(`on${t.eventType}`,t.handler)}function r_(e){e.preventDefault?e.preventDefault():e.returnValue=!1}var rb=typeof navigator<`u`&&/Macintosh/.test(navigator.userAgent);function o_(e){return e.which===2||e.which==null&&e.button===4}function i_(e){return rb&&e.metaKey||!rb&&e.ctrlKey||o_(e)||e.shiftKey}function s_(e,t,n){let r=e.relatedTarget;return(e.type===_.MOUSEOVER&&t===_.MOUSEENTER||e.type===_.MOUSEOUT&&t===_.MOUSELEAVE||e.type===_.POINTEROVER&&t===_.POINTERENTER||e.type===_.POINTEROUT&&t===_.POINTERLEAVE)&&(!r||r!==n&&!n.contains(r))}function a_(e,t){let n={};for(let r in e){if(r===`srcElement`||r===`target`)continue;let o=r,i=e[o];typeof i!=`function`&&(n[o]=i)}return e.type===_.MOUSEOVER?n.type=_.MOUSEENTER:e.type===_.MOUSEOUT?n.type=_.MOUSELEAVE:e.type===_.POINTEROVER?n.type=_.POINTERENTER:n.type=_.POINTERLEAVE,n.target=n.srcElement=t,n.bubbles=!1,n._originalEvent=e,n}var dc=class{element;handlerInfos=[];constructor(t){this.element=t}addEventListener(t,n,r){this.handlerInfos.push(t_(this.element,t,n(this.element),r))}cleanUp(){for(let t=0;t<this.handlerInfos.length;t++)n_(this.element,this.handlerInfos[t]);this.handlerInfos=[]}};var c_={EVENT_ACTION_SEPARATOR:`:`};function jn(e){return e.eventType}function Hf(e,t){e.eventType=t}function cc(e){return e.event}
4function sb(e,t){e.event=t}function ab(e){return e.targetElement}function cb(e,t){e.targetElement=t}function lb(e){return e.eic}function l_(e,t){e.eic=t}function d_(e){return e.timeStamp}function u_(e,t){e.timeStamp=t}function lc(e){return e.eia}function db(e,t,n){e.eia=[t,n]}function kf(e){e.eia=void 0}function ac(e){return e[1]}function f_(e){return e.eirp}function ub(e,t){e.eirp=t}function fb(e){return e.eir}function pb(e,t){e.eir=t}function hb(e){return{eventType:e.eventType,event:e.event,targetElement:e.targetElement,eic:e.eic,eia:e.eia,timeStamp:e.timeStamp,eirp:e.eirp,eiack:e.eiack,eir:e.eir}}function p_(e,t,n,r,o,i,s,a){return{eventType:e,event:t,targetElement:n,eic:r,timeStamp:o,eia:i,eirp:s,eiack:a}}var Pf=class e{eventInfo;constructor(t){this.eventInfo=t}getEventType(){return jn(this.eventInfo)}setEventType(t){Hf(this.eventInfo,t)}getEvent(){return cc(this.eventInfo)}setEvent(t){sb(this.eventInfo,t)}getTargetElement(){return ab(this.eventInfo)}setTargetElement(t){cb(this.eventInfo,t)}getContainer(){return lb(this.eventInfo)}setContainer(t){l_(this.eventInfo,t)}getTimestamp(){return d_(this.eventInfo)}setTimestamp(t){u_(this.eventInfo,t)}getAction(){let t=lc(this.eventInfo);if(t)return{name:t[0],element:t[1]}}setAction(t){if(!t){kf(this.eventInfo);return}db(this.eventInfo,t.name,t.element)}getIsReplay(){return f_(this.eventInfo)}setIsReplay(t){ub(this.eventInfo,t)}getResolved(){return fb(this.eventInfo)}setResolved(t){pb(this.eventInfo,t)}clone(){return new e(hb(this.eventInfo))}};var h_={};var g_=/\s*;\s*/;var m_=_.CLICK;var Lf=class{a11yClickSupport=!1;clickModSupport=!0;syntheticMouseEventSupport;updateEventInfoForA11yClick=void 0;preventDefaultForA11yClick=void 0;populateClickOnlyAction=void 0;constructor({syntheticMouseEventSupport:t=!1,clickModSupport:n=!0}={}){this.syntheticMouseEventSupport=t,this.clickModSupport=n}resolveEventType(t){this.clickModSupport&&jn(t)===_.CLICK&&i_(cc(t))?Hf(t,_.CLICKMOD):this.a11yClickSupport&&this.updateEventInfoForA11yClick(t)}resolveAction(t){fb(t)||(this.populateAction(t,ab(t)),pb(t,!0))}resolveParentAction(t){let n=lc(t),r=n&&ac(n);kf(t);let o=r&&this.getParentNode(r);o&&this.populateAction(t,o)}populateAction(t,n){let r=n;for(;r&&r!==lb(t)&&(r.nodeType===Node.ELEMENT_NODE&&this.populateActionOnElement(r,t),!lc(t));)r=this.getParentNode(r);let o=lc(t);if(o&&(this.a11yClickSupport&&this.preventDefaultForA11yClick(t),this.syntheticMouseEventSupport&&(jn(t)===_.MOUSEENTER||jn(t)===_.MOUSELEAVE||jn(t)===_.POINTERENTER||jn(t)===_.POINTERLEAVE)))if(s_(cc(t),jn(t),ac(o)))sb(t,a_(cc(t),ac(o))),cb(t,ac(o));else kf(t)}getParentNode(t){let n=t[Ff.OWNER];if(n)return n;let r=t.parentNode;return r?.nodeName===`#document-fragment`?r?.host??null:r}populateActionOnElement(t,n){let r=this.parseActions(t),o=r[jn(n)];o!==void 0&&db(n,o,t),this.a11yClickSupport&&this.populateClickOnlyAction(t,n,r)}parseActions(t){let n=YC(t);if(!n){let r=t.getAttribute(sa.JSACTION);if(!r)n=h_,nb(t,n);else{if(n=KC(r),!n){n={};let o=r.split(g_);for(let i=0;i<o.length;i++){let s=o[i];if(!s)continue;let a=s.indexOf(c_.EVENT_ACTION_SEPARATOR),c=a!==-1,l=c?s.substr(0,a).trim():m_,d=c?s.substr(a+1).trim():s;n[l]=d}QC(r,n)}nb(t,n)}}return n}addA11yClickSupport(t,n,r){this.a11yClickSupport=!0,this.updateEventInfoForA11yClick=t,this.preventDefaultForA11yClick=n,this.populateClickOnlyAction=r}};var gb=(function(e){return e[e.I_AM_THE_JSACTION_FRAMEWORK=0]=`I_AM_THE_JSACTION_FRAMEWORK`,e})(gb||{});var jf=class{dispatchDelegate;actionResolver;eventReplayer;eventReplayScheduled=!1;replayEventInfoWrappers=[];constructor(t,{actionResolver:n,eventReplayer:r}={}){this.dispatchDelegate=t,this.actionResolver=n,this.eventReplayer=r}dispatch(t){let n=new Pf(t);this.actionResolver?.resolveEventType(t),this.actionResolver?.resolveAction(t);let r=n.getAction();if(r&&v_(r.element,n)&&r_(n.getEvent()),this.eventReplayer&&n.getIsReplay()){this.scheduleEventInfoWrapperReplay(n);return}this.dispatchDelegate(n)}scheduleEventInfoWrapperReplay(t){this.replayEventInfoWrappers.push(t),!this.eventReplayScheduled&&(this.eventReplayScheduled=!0,Promise.resolve().then(()=>{this.eventReplayScheduled=!1,this.eventReplayer(this.replayEventInfoWrappers)}))}};function v_(e,t){return e.tagName===`A`&&(t.getEventType()===_.CLICK||t.getEventType()===_.CLICKMOD)}var mb=Symbol.for(`propagationStopped`);var Vf={REPLAY:101};var y_="`preventDefault` called during event replay.";var b_="`composedPath` called during event replay.";var uc=class{dispatchDelegate;clickModSupport;actionResolver;dispatcher;constructor(t,n=!0){this.dispatchDelegate=t,this.clickModSupport=n,this.actionResolver=new Lf({clickModSupport:n}),this.dispatcher=new jf(r=>{this.dispatchToDelegate(r)},{actionResolver:this.actionResolver})}dispatch(t){this.dispatcher.dispatch(t)}
4dispatchToDelegate(t){for(t.getIsReplay()&&I_(t),E_(t);t.getAction();){if(S_(t),Uf(t.getEventType())&&t.getAction().element!==t.getTargetElement()||(this.dispatchDelegate(t.getEvent(),t.getAction().name),w_(t)))return;this.actionResolver.resolveParentAction(t.eventInfo)}}};function E_(e){let t=e.getEvent(),n=e.getEvent().stopPropagation.bind(t),r=()=>{t[mb]=!0,n()};Mr(t,`stopPropagation`,r),Mr(t,`stopImmediatePropagation`,r)}function w_(e){return!!e.getEvent()[mb]}function I_(e){let t=e.getEvent(),n=e.getTargetElement(),r=t.preventDefault.bind(t);Mr(t,`target`,n),Mr(t,`eventPhase`,Vf.REPLAY),Mr(t,`preventDefault`,()=>{throw r(),new Error(y_+``)}),Mr(t,`composedPath`,()=>{throw new Error(b_+``)})}function S_(e){let t=e.getEvent(),n=e.getAction()?.element;n&&Mr(t,`currentTarget`,n,{configurable:!0})}function Mr(e,t,n,{configurable:r=!1}={}){Object.defineProperty(e,t,{value:n,configurable:r})}function vb(e,t){e.ecrd(n=>{t.dispatch(n)},gb.I_AM_THE_JSACTION_FRAMEWORK)}function D_(e){return e?.q??[]}function T_(e){e&&(ob(e.c,e.et,e.h),ob(e.c,e.etc,e.h,!0))}function ob(e,t,n,r){for(let o=0;o<t.length;o++)e.removeEventListener(t[o],n,r)}var C_=!1;var yb=(()=>{class e{static MOUSE_SPECIAL_SUPPORT=C_;containerManager;eventHandlers={};browserEventTypeToExtraEventTypes={};dispatcher=null;queuedEventInfos=[];constructor(n){this.containerManager=n}handleEvent(n,r,o){let i=p_(n,r,r.target,o,Date.now());this.handleEventInfo(i)}handleEventInfo(n){if(!this.dispatcher){ub(n,!0),this.queuedEventInfos?.push(n);return}this.dispatcher(n)}addEvent(n,r,o){if(n in this.eventHandlers||!this.containerManager||!e.MOUSE_SPECIAL_SUPPORT&&JC.indexOf(n)>=0)return;let i=(a,c,l)=>{this.handleEvent(a,c,l)};this.eventHandlers[n]=i;let s=e_(r||n);if(s!==n){let a=this.browserEventTypeToExtraEventTypes[s]||[];a.push(n),this.browserEventTypeToExtraEventTypes[s]=a}this.containerManager.addEventListener(s,a=>c=>{i(n,c,a)},o)}replayEarlyEvents(n=window._ejsa){n&&(this.replayEarlyEventInfos(n.q),T_(n),delete window._ejsa)}replayEarlyEventInfos(n){for(let r=0;r<n.length;r++){let o=n[r],i=this.getEventTypesForBrowserEventType(o.eventType);for(let s=0;s<i.length;s++){let a=hb(o);Hf(a,i[s]),this.handleEventInfo(a)}}}getEventTypesForBrowserEventType(n){let r=[];return this.eventHandlers[n]&&r.push(n),this.browserEventTypeToExtraEventTypes[n]&&r.push(...this.browserEventTypeToExtraEventTypes[n]),r}handler(n){return this.eventHandlers[n]}cleanUp(){this.containerManager?.cleanUp(),this.containerManager=null,this.eventHandlers={},this.browserEventTypeToExtraEventTypes={},this.dispatcher=null,this.queuedEventInfos=[]}registerDispatcher(n,r){this.ecrd(n,r)}ecrd(n,r){if(this.dispatcher=n,this.queuedEventInfos?.length){for(let o=0;o<this.queuedEventInfos.length;o++)this.handleEventInfo(this.queuedEventInfos[o]);this.queuedEventInfos=null}}}return e})();function bb(e,t=window){return D_(t._ejsas?.[e])}function $f(e,t=window){t._ejsas&&(t._ejsas[e]=void 0)}var Nb=Symbol(`InputSignalNode#UNSET`);var V_=l(k$1({},ss),{transformFn:void 0,applyValueToInputSignal(e,t){Xn(e,t)}});function Ab(e,t){let n=Object.create(V_);n.value=e,n.transformFn=t?.transform;function r(){if(Yn(n),n.value===Nb)throw new w(-950,null);return n.value}return r[Me]=n,r}var hc=class{attributeName;constructor(t){this.attributeName=t}__NG_ELEMENT_ID__=()=>La(this.attributeName);toString(){return`HostAttributeToken ${this.attributeName}`}};function zf(e){return $_(e)?e.default:e}function $_(e){return e&&typeof e==`object`&&`default`in e}function Eb(e,t){return Ab(e,t)}function B_(e){return Ab(Nb,e)}var qe=(Eb.required=B_,Eb);var fc=new WeakSet;var wb=``;function Ib(e){return e.get(ku,ev)}function Rb(){let e=[{provide:ku,useFactory:()=>{let t=!0;{let n=p(Nt);t=!!window._ejsas?.[n]}return t&&Je(`NgEventReplay`),t}}];return e.push({provide:an,useValue:()=>{let t=p(We),{injector:n}=t;if(!fc.has(t)){let r=p(Lu);if(Ib(n)){cv();let i=sv(n.get(Nt),(s,a,c)=>{s.nodeType===Node.ELEMENT_NODE&&(nv(s,a,c),rv(s,r))});t.onDestroy(i)}}},multi:!0},{provide:Ot,useFactory:()=>{let t=p(We),{injector:n}=t;return()=>{if(!Ib(n)||fc.has(t))return;fc.add(t);let r=n.get(Nt);t.onDestroy(()=>{fc.delete(t),$f(r)}),t.whenStable().then(()=>
4{if(t.destroyed)return;let o=n.get(iv);z_(o,n);let i=n.get(Lu);i.get(wb)?.forEach(ov),i.delete(wb);let s=o.instance;gv(n)?t.onDestroy(()=>s.cleanUp()):s.cleanUp()})}},multi:!0}),e}var z_=(e,t)=>{let n=t.get(Nt),r=window._ejsas[n],o=e.instance=new yb(new dc(r.c));for(let a of r.et)o.addEvent(a);for(let a of r.etc)o.addEvent(a);let i=bb(n);o.replayEarlyEventInfos(i),$f(n);vb(o,new uc(a=>{W_(t,a,a.currentTarget)}))};function W_(e,t,n){let r=(n&&n.getAttribute(vi))??``;/d\d+/.test(r)?q_(r,e,t,n):t.eventPhase===Vf.REPLAY&&ju(t,n)}function q_(e,t,n,r){let o=t.get(tv);o.push({event:n,currentTarget:r}),zy(t,e,Z_(o))}function Z_(e){return t=>{let n=new Set(t),r=[];for(let{event:o,currentTarget:i}of e){let s=i.getAttribute(vi);n.has(s)?ju(o,i):r.push({event:o,currentTarget:i})}e.length=0,e.push(...r)}}var Sb=!1;var G_=1e4;function Y_(){Sb||(Sb=!0,fv(),Wy(),Yy(),Uy(),Ry(),my(),Kv())}function K_(e){return e.whenStable()}function xb(){let e=[{provide:Cr,useFactory:()=>{let t=!0;return t=!!p(Nn,{optional:!0})?.get(Fu,null),t&&Je(`NgHydration`),t}},{provide:an,useValue:()=>{let t=p(V);p(Cr)&&(yv(t),Y_())},multi:!0}];return e.push({provide:Ou,useFactory:()=>p(Cr)},{provide:Ot,useFactory:()=>{let t=p(Ut);if(p(Cr)){let n=p(We);return()=>{K_(n).then(()=>{n.destroyed||(mf(n),t.notify(7))})}}return()=>{}},multi:!0}),Ct(e)}function Ob(){let e=[Rb(),{provide:Pu,useValue:!0},{provide:yi,useFactory:Ky}];return e.push({provide:Mf,useFactory:()=>({requested:!1,activated:!1,injector:p(xe),document:p(V)})},{provide:Ot,useFactory:()=>{let t=p(Mf);return()=>{t.requested||(t.requested=!0,Qy(t))}},multi:!0}),e}G_-1e3;var Mi=(()=>{class e{static __NG_ELEMENT_ID__=Q_}return e})();function Q_(e){return J_(ze(),L(),(e&16)===16)}function J_(e,t,n){if(Bt(e)&&!n){let r=vt(e.index,t);return new xn(r,r)}else if(e.type&175){let r=t[$e];return new xn(r,t)}return null}var Bf=new I(``);var X_=new I(``);function _i(e){return!e.moduleRef}function eM(e){let t=_i(e)?e.r3Injector:e.moduleRef.injector,n=t.get(Oe);return n.run(()=>{_i(e)?e.r3Injector.resolveInjectorInitializers():e.moduleRef.resolveInjectorInitializers();let r=t.get(yt),o;if(n.runOutsideAngular(()=>{o=n.onError.subscribe({next:r})}),_i(e)){let i=()=>t.destroy(),s=e.platformInjector.get(Bf);s.add(i),t.onDestroy(()=>{o.unsubscribe(),s.delete(i)})}else{let i=()=>e.moduleRef.destroy(),s=e.platformInjector.get(Bf);s.add(i),e.moduleRef.onDestroy(()=>{ci(e.allPlatformModules,e.moduleRef),o.unsubscribe(),s.delete(i)})}return nM(r,n,()=>{let i=t.get(qt),s=i.add(),a=t.get(Ef);return a.runInitializers(),a.donePromise.then(()=>{if(Zy(t.get(xf,Ci)||Ci),!t.get(X_,!0))return _i(e)?t.get(We):(e.allPlatformModules.push(e.moduleRef),e.moduleRef);if(_i(e)){let d=t.get(We);return e.rootComponent!==void 0&&d.bootstrap(e.rootComponent),d}else return tM?.(e.moduleRef,e.allPlatformModules),e.moduleRef}).finally(()=>{i.remove(s)})})})}var tM;function nM(e,t,n){try{let r=n();return Si(r)?r.catch(o=>{throw t.runOutsideAngular(()=>e(o)),o}):r}catch(r){throw t.runOutsideAngular(()=>e(r)),r}}var pc=null;function rM(e=[],t){return xe.create({name:t,providers:[{provide:Qo,useValue:`platform`},{provide:Bf,useValue:new Set([()=>pc=null])},...e]})}function oM(e=[]){if(pc)return pc;let t=rM(e);return pc=t,$y(),iM(t),t}function iM(e){let t=e.get(oa,null);we(e,()=>{t?.forEach(n=>n())})}function kb(e){let{rootComponent:t,appProviders:n,platformProviders:r,platformRef:o}=e;$(U.BootstrapApplicationStart);try{let i=o?.injector??oM(r);return eM({r3Injector:new gi({providers:[eb(),Tg,...n||[]],parent:i,debugName:``,runEnvironmentInitializers:!1}).injector,platformInjector:i,rootComponent:t})}catch(i){return Promise.reject(i)}finally{$(U.BootstrapApplicationEnd)}}function Ni(e){return typeof e==`boolean`?e:e!=null&&e!==`false`}var Pb=null;function Qt(){return Pb}function Wf(e){Pb??=e}var Ai=class{};var Ri=(()=>{class e{historyGo(n){throw new Error(``)}static ɵfac=function(r){return new(r||e)};static ɵprov=O({token:e,factory:()=>p(Lb),providedIn:`platform`})}return e})();var Lb=(()=>{class e extends Ri{_location;_history;_doc=p(V);constructor(){super(),this._location=window.location,this._history=window.history}getBaseHrefFromDOM(){return Qt().getBaseHref(this._doc)}onPopState(n){let r=Qt().getGlobalEventTarget(this._doc,`window`);return r.addEventListener(`popstate`,n,!1),()=>r.removeEventListener(`popstate`,n)}onHashChange(n){let r=Qt().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){this._history.pushState(n,r,o)}replaceState(n,r,o){this._history.replaceState(n,r,o)}forward(){this._history.forward()}back(){this._history.back()}historyGo(n=0){this._history.go(n)}getState(){return this._history.state}static ɵfac=function(r){return new(r||e)};static ɵprov=O({token:e,factory:()=>new e,providedIn:`platform`})}return e})();function Ub(e,t){return e?t?e.endsWith(`/`)?t.startsWith(`/`)?e+t.slice(1):e+t:t.startsWith(`/`)?e+t:`${e}/${t}`:e:t}function jb(e){let t=e.search(/#|\?|$/);return e[t-1]===`/`?e.slice(0,t-1)+e.slice(t):e}function Fn(e){return e&&e[0]!==`?`?`?${e}`:e}var Nr=(()=>{class e{historyGo(n){throw new Error(``)}static ɵfac=function(r){return new(r||e)};static ɵprov=O({token:e,factory:()=>p(Hb),providedIn:`root`})}return e})();var sM=new I(``);var Hb=(()=>{class e extends Nr{_platformLocation;_baseHref;_removeListenerFns=[];constructor(n,r){super(),this._platformLocation=n,this._baseHref=r??this._platformLocation.getBaseHrefFromDOM()??p(V).location?.origin??``}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(n){this._removeListenerFns.push(this._platformLocation.onPopState(n),this._platformLocation.on
vendor: 5,023 bytes, line 4
4HashChange(n))}getBaseHref(){return this._baseHref}prepareExternalUrl(n){return Ub(this._baseHref,n)}path(n=!1){let r=this._platformLocation.pathname+Fn(this._platformLocation.search),o=this._platformLocation.hash;return o&&n?`${r}${o}`:r}pushState(n,r,o,i){let s=this.prepareExternalUrl(o+Fn(i));this._platformLocation.pushState(n,r,s)}replaceState(n,r,o,i){let s=this.prepareExternalUrl(o+Fn(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)}static ɵfac=function(r){return new(r||e)(R(Ri),R(sM,8))};static ɵprov=O({token:e,factory:e.ɵfac,providedIn:`root`})}return e})();var Ar=(()=>{class e{_subject=new le;_basePath;_locationStrategy;_urlChangeListeners=[];_urlChangeSubscription=null;constructor(n){this._locationStrategy=n;let r=this._locationStrategy.getBaseHref();this._basePath=lM(jb(Fb(r))),this._locationStrategy.onPopState(o=>{this._subject.next({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+Fn(r))}normalize(n){return e.stripTrailingSlash(cM(this._basePath,Fb(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+Fn(r)),o)}replaceState(n,r=``,o=null){this._locationStrategy.replaceState(o,``,n,r),this._notifyUrlChangeListeners(this.prepareExternalUrl(n+Fn(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.subscribe(r=>{this._notifyUrlChangeListeners(r.url,r.state)}),()=>{let r=this._urlChangeListeners.indexOf(n);this._urlChangeListeners.splice(r,1),this._urlChangeListeners.length===0&&(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??void 0,complete:o??void 0})}static normalizeQueryParams=Fn;static joinWithSlash=Ub;static stripTrailingSlash=jb;static ɵfac=function(r){return new(r||e)(R(Nr))};static ɵprov=O({token:e,factory:()=>aM(),providedIn:`root`})}return e})();function aM(){return new Ar(R(Nr))}function cM(e,t){if(!e||!t.startsWith(e))return t;let n=t.substring(e.length);return n===``||[`/`,`;`,`?`,`#`].includes(n[0])?n:t}function Fb(e){return e.replace(/\/index\.html$/,``)}function lM(e){if(new RegExp(`^(https?:)?//`).test(e)){let[,n]=e.split(/\/\/[^\/]+/);return n}return e}function qf(e,t){t=encodeURIComponent(t);for(let n of e.split(`;`)){let r=n.indexOf(`=`),[o,i]=r==-1?[n,``]:[n.slice(0,r),n.slice(r+1)];if(o.trim()!==t)continue;let s=i;try{s=decodeURIComponent(i)}catch{}return s.length>1&&s[0]===`"`&&s[s.length-1]===`"`&&(s=s.slice(1,-1)),s}return null}var Gf=`browser`;function gc(e){return e===Gf}var Vb=(()=>{class e{static ɵprov=O({token:e,providedIn:`root`,factory:()=>new Zf(p(V),window)})}return e})();var Zf=class{document;window;offset=()=>[0,0];constructor(t,n){this.document=t,this.window=n}setOffset(t){Array.isArray(t)?this.offset=()=>t:this.offset=t}getScrollPosition(){return[this.window.scrollX,this.window.scrollY]}scrollToPosition(t,n){this.window.scrollTo(l(k$1({},n),{left:t[0],top:t[1]}))}scrollToAnchor(t,n){let r=uM(this.document,t);r&&(this.scrollToElement(r,n),r.focus({preventScroll:!0}))}setHistoryScrollRestoration(t){try{this.window.history.scrollRestoration=t}catch{console.warn(Tt(2400,!1))}}scrollToElement(t,n){let r=t.getBoundingClientRect(),o=r.left+this.window.pageXOffset,i=r.top+this.window.pageYOffset,s=this.offset();this.window.scrollTo(l(k$1({},n),{left:o-s[0],top:i-s[1]}))}};function uM(e,t){let n=e.getElementById(t)||e.getElementsByName(t)[0];if(n)return n;if(typeof e.createTreeWalker==`function`&&e.body&&typeof e.body.attachShadow==`function`){let r=e.createTreeWalker(e.body,NodeFilter.SHOW_ELEMENT),o=r.currentNode;for(;o;){let i=o.shadowRoot;if(i){let s=i.getElementById(t)||i.querySelector(`[name="${CSS.escape(t)}"]`);if(s)return s}o=r.nextNode()}}return null}var xi=class{_doc;constructor(t){this._doc=t}manager};var mc=(()=>{class e extends xi{constructor(n){super(n)}supports(n){return!0}addEventListener(n,r,o,i){return n.addEventListener(r,o,i),()=>this.removeEventListener(n,r,o,i)}removeEventListener(n,r,o,i){return n.removeEventListener(r,o,i)}static ɵfac=function(r){return new(r||e)(R(V))};static ɵprov=O({token:e,factory:e.ɵfac})}return e})();var bc=new I(``);var Jf=(()=>{class e{_zone;_plugins;_eventNameToPlugin=new Map;
4constructor(n,r){this._zone=r,n.forEach(s=>{s.manager=this});let o=n.filter(s=>!(s instanceof mc));this._plugins=o.slice().reverse();let i=n.find(s=>s instanceof mc);i&&this._plugins.push(i)}addEventListener(n,r,o,i){return this._findPluginFor(r).addEventListener(n,r,o,i)}getZone(){return this._zone}_findPluginFor(n){let r=this._eventNameToPlugin.get(n);if(r)return r;if(r=this._plugins.find(i=>i.supports(n)),!r)throw new w(-5101,!1);return this._eventNameToPlugin.set(n,r),r}static ɵfac=function(r){return new(r||e)(R(bc),R(Oe))};static ɵprov=O({token:e,factory:e.ɵfac})}return e})();var Yf=`ng-app-id`;function $b(e){for(let t of e)t.remove()}function Bb(e,t){let n=t.createElement(`style`);return n.textContent=e,n}function pM(e,t,n,r){let o=e.head?.querySelectorAll(`style[${Yf}="${t}"],link[${Yf}="${t}"]`);if(!o||o.length===0)return!1;for(let i of o)i.removeAttribute(Yf),i instanceof HTMLLinkElement?r.set(i.href.slice(i.href.lastIndexOf(`/`)+1),{usage:0,elements:[i]}):i.textContent&&n.set(i.textContent,{usage:0,elements:[i]});return!0}function Qf(e,t){let n=t.createElement(`link`);return n.setAttribute(`rel`,`stylesheet`),n.setAttribute(`href`,e),n}var Xf=(()=>{class e{doc;appId;nonce;inline=new Map;external=new Map;hosts=new Set;constructor(n,r,o,i={}){this.doc=n,this.appId=r,this.nonce=o,pM(n,r,this.inline,this.external)&&this.hosts.add(n.head)}addStyles(n,r){for(let o of n)this.addUsage(o,this.inline,Bb);r?.forEach(o=>this.addUsage(o,this.external,Qf))}removeStyles(n,r){for(let o of n)this.removeUsage(o,this.inline);r?.forEach(o=>this.removeUsage(o,this.external))}addUsage(n,r,o){let i=r.get(n);i?i.usage++:r.set(n,{usage:1,elements:[...this.hosts].map(s=>this.addElement(s,o(n,this.doc)))})}removeUsage(n,r){let o=r.get(n);o&&(o.usage--,o.usage<=0&&($b(o.elements),r.delete(n)))}ngOnDestroy(){for(let[,{elements:n}]of[...this.inline,...this.external])$b(n);this.hosts.clear()}addHost(n){if(!this.hosts.has(n)){this.hosts.add(n);for(let[r,{elements:o}]of this.inline)o.push(this.addElement(n,Bb(r,this.doc)));for(let[r,{elements:o}]of this.external)o.push(this.addElement(n,Qf(r,this.doc)))}}removeHost(n){this.hosts.delete(n);for(let r of[...this.inline.values(),...this.external.values()]){let o=[];for(let i of r.elements)i.parentNode===n?i.remove():o.push(i);r.elements=o}}addElement(n,r){return this.nonce&&r.setAttribute(`nonce`,this.nonce),n.appendChild(r)}static ɵfac=function(r){return new(r||e)(R(V),R(Nt),R(ri,8),R(br))};static ɵprov=O({token:e,factory:e.ɵfac})}return e})();var Kf={svg:`http://www.w3.org/2000/svg`,xhtml:`http://www.w3.org/1999/xhtml`,xlink:`http://www.w3.org/1999/xlink`,xml:`http://www.w3.org/XML/1998/namespace`,xmlns:`http://www.w3.org/2000/xmlns/`,math:`http://www.w3.org/1998/Math/MathML`};var ep=/%COMP%/g;var Wb=`%COMP%`;var hM=`_nghost-${Wb}`;var gM=`_ngcontent-${Wb}`;var mM=!0;var vM=new I(``,{factory:()=>mM});var yM=new I(``);function bM(e){return gM.replace(ep,e)}function EM(e){return hM.replace(ep,e)}function qb(e,t){return t.map(n=>n.replace(ep,e))}var tp=(()=>{class e{eventManager;sharedStylesHost;appId;removeStylesOnCompDestroy;doc;ngZone;nonce;tracingService;rendererByCompId=new Map;defaultRenderer;cssVarNamespace;constructor(n,r,o,i,s,a,c=null,l=null,d=null){this.eventManager=n,this.sharedStylesHost=r,this.appId=o,this.removeStylesOnCompDestroy=i,this.doc=s,this.ngZone=a,this.nonce=c,this.tracingService=l,this.cssVarNamespace=d??``,this.defaultRenderer=new Oi(n,s,a,this.tracingService,this.cssVarNamespace)}createRenderer(n,r){if(!n||!r)return this.defaultRenderer;let o=this.getOrCreateRenderer(n,r);return o instanceof yc?o.applyToHost(n):o instanceof ki&&o.applyStyles(),o}getOrCreateRenderer(n,r){let o=this.rendererByCompId,i=o.get(r.id);if(!i){let s=this.doc,a=this.ngZone,c=this.eventManager,l=this.sharedStylesHost,d=this.removeStylesOnCompDestroy,u=this.tracingService;switch(r.encapsulation){case Rt.Emulated:i=new yc(c,l,r,this.appId,d,s,a,u,this.cssVarNamespace);break;case Rt.ShadowDom:return new vc(c,n,r,s,a,this.nonce,u,this.cssVarNamespace,l);case Rt.ExperimentalIsolatedShadowDom:return new vc(c,n,r,s,a,this.nonce,u,this.cssVarNamespace);default:i=new ki(c,l,r,d,s,a,u,this.cssVarNamespace);break}o.set(r.id,i)}return i}ngOnDestroy(){this.rendererByCompId.clear()}componentReplaced(n){this.rendererByCompId.delete(n)}static ɵfac=function(r){return new(r||e)(R(Jf),R(_r),R(Nt),R(vM),R(V),R(Oe),R(ri),R(hn,8),R(yM,8))};static ɵprov=O({token:e,factory:e.ɵfac})}return e})();var Oi=class{eventManager;doc;ngZone;tracingService;cssVarNamespace;data=Object.create(null);throwOnSyntheticProps=!0;constructor(t,n,r,o,i=``){this.eventManager=t,this.doc=n,this.ngZone=r,this.tracingService=o,this.cssVarNamespace=i}destroy(){}destroyNode=null;createElement(t,n){return n?this.doc.createElementNS(Kf[n]||n,t):this.doc.createElement(t)}createComment(t){return this.doc.createComment(t)}createText(t){return this.doc.createTextNode(t)}appendChild(t,n){(zb(t)?t.content:t).appendChild(n)}insertBefore(t,n,r){if(t){let o=zb(t)?t.content:t;if(r!=null&&r.parentNode!==o)throw new w(-5106,wM(r));o.insertBefore(n,r)}}removeChild(t,n){n.remove()}selectRootElement(t,n){let r=typeof t==`string`?this.doc.querySelector(t):t;if(!r)throw new w(-5104,!1);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;let i=Kf[o];i?t.setAttributeNS(i,n,r):t.setAttribute(n,r)}else t.setAttribute(n,r)}removeAttribute(t,n,r){if(r){let o=Kf[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){let i=n.startsWith(`--`);i&&(n=n.replace(`%NS%`,this.cssVarNamespace)),i||o&(fn.DashCase|fn.Important)?t.style.setProperty(n,r,o&fn.Important?`important`:``):t.style[n]=r}removeStyle(t,n,r){let o=n.startsWith(`--`);o&&(n=n.replace(`%NS%`,this.cssVarNamespace)),o||r&fn.DashCase?t.style.removeProperty(n):t.style[n]=``}setProperty(t,n,r){t!=null&&(t[n]=r)}setValue(t,n){t.nodeValue=n}listen(t,n,r,o){if(typeof t==`string`&&(t=Qt().getGlobalEventTarget(this.doc,t),!t))throw new w(-5102,!1);let i=this.decoratePreventDefault(r);return this.tracingService?.wrapEventListener&&(i=this.tracingService.wrapEventListener(t,n,i)),this.eventManager.addEventListener(t,n,i,o)}decoratePreventDefault(t){return n=>{if(n===`__ngUnwrap__`)return t;t(n)===!1&&n.preventDefault()}}};function zb(e){return e.tagName===`TEMPLATE`&&e.content!==void 0}function wM(e){let t=e.textContent?.slice(0,50);return t?`${e.nodeName} ("${t}")`:e.nodeName}var vc=class extends Oi{hostEl;sharedStylesHost;shadowRoot;constructor(t,n,r,o,i,s,a,c,l){super(t,o,i,a,c),this.hostEl=n,this.sharedStylesHost=l,this.shadowRoot=n.attachShadow({mode:`open`}),this.sharedStylesHost&&this.sharedStylesHost.addHost(this.shadowRoot);let d=r.styles;d=qb(r.id,d).map(f=>f.replace(/%NS%/g,c));for(let f of d){let h=document.createElement(`style`);s&&h.setAttribute(`nonce`,s),h.textContent=f,this.shadowRoot.appendChild(h)}let u=r.getExternalStyles?.();if(u)for(let f of u){let h=Qf(f,o);s&&h.setAttribute(`nonce`,s),this.shadowRoot.appendChild(h)}}nodeOrShadowRoot(t){return t===this.hostEl?this.shadowRoot:t}appendChild(t,n){return super.appendChild(this.nodeOrShadowRoot(t),n)}insertBefore(t,n,r){return super.insertBefore(this.nodeOrShadowRoot(t),n,r)}removeChild(t,n){return super.removeChild(null,n)}parentNode(t){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(t)))}destroy(){this.sharedStylesHost&&this.sharedStylesHost.removeHost(this.shadowRoot)}};var ki=class extends Oi{sharedStylesHost;removeStylesOnCompDestroy;styles;styleUrls;constructor(t,n,r,o,i,s,a,c,l){super(t,i,s,a,c),this.sharedStylesHost=n,this.removeStylesOnCompDestroy=o;let d=r.styles,u=l?qb(l,d):d;this.styles=u.map(f=>f.replace(/%NS%/g,c)),this.styleUrls=r.getExternalStyles?.(l)}
vendor: 3,001 bytes, line 4
4applyStyles(){this.sharedStylesHost.addStyles(this.styles,this.styleUrls)}destroy(){this.removeStylesOnCompDestroy&&Rn.size===0&&this.sharedStylesHost.removeStyles(this.styles,this.styleUrls)}};var yc=class extends ki{contentAttr;hostAttr;constructor(t,n,r,o,i,s,a,c,l){let d=o+`-`+r.id;super(t,n,r,i,s,a,c,l,d),this.contentAttr=bM(d),this.hostAttr=EM(d)}applyToHost(t){this.applyStyles(),this.setAttribute(t,this.hostAttr,``)}createElement(t,n){let r=super.createElement(t,n);return super.setAttribute(r,this.contentAttr,``),r}};var Ec=class e extends Ai{supportsDOMEvents=!0;static makeCurrent(){Wf(new e)}onAndCancel(t,n,r,o){return t.addEventListener(n,r,o),()=>{t.removeEventListener(n,r,o)}}dispatchEvent(t,n){t.dispatchEvent(n)}remove(t){t.remove()}createElement(t,n){return n=n||this.getDefaultDocument(),n.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 n===`window`?window:n===`document`?t:n===`body`?t.body:null}getBaseHref(t){let n=IM();return n==null?null:SM(n)}resetBaseElement(){Pi=null}getUserAgent(){return window.navigator.userAgent}getCookie(t){return qf(document.cookie,t)}};var Pi=null;function IM(){return Pi=Pi||document.head.querySelector(`base`),Pi?Pi.getAttribute(`href`):null}function SM(e){return new URL(e,document.baseURI).pathname}var Zb=[`alt`,`control`,`meta`,`shift`];var DM={"\b":`Backspace`," ":`Tab`,"�":`Delete`,"\x1B":`Escape`,Del:`Delete`,Esc:`Escape`,Left:`ArrowLeft`,Right:`ArrowRight`,Up:`ArrowUp`,Down:`ArrowDown`,Menu:`ContextMenu`,Scroll:`ScrollLock`,Win:`OS`};var TM={alt:e=>e.altKey,control:e=>e.ctrlKey,meta:e=>e.metaKey,shift:e=>e.shiftKey};var Gb=(()=>{class e extends xi{constructor(n){super(n)}supports(n){return e.parseEventName(n)!=null}addEventListener(n,r,o,i){let s=e.parseEventName(r),a=e.eventCallback(s.fullKey,o,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>Qt().onAndCancel(n,s.domEventName,a,i))}static parseEventName(n){let r=n.toLowerCase().split(`.`),o=r.shift();if(r.length===0||!(o===`keydown`||o===`keyup`))return null;let i=e._normalizeKey(r.pop()),s=``,a=r.indexOf(`code`);if(a>-1&&(r.splice(a,1),s=`code.`),Zb.forEach(l=>{let d=r.indexOf(l);d>-1&&(r.splice(d,1),s+=l+`.`)}),s+=i,r.length!=0||i.length===0)return null;let c={};return c.domEventName=o,c.fullKey=s,c}static matchEventFullKeyCode(n,r){let o=DM[n.key]||n.key,i=``;return r.indexOf(`code.`)>-1&&(o=n.code,i=`code.`),o==null||!o?!1:(o=o.toLowerCase(),o===` `?o=`space`:o===`.`&&(o=`dot`),Zb.forEach(s=>{if(s!==o){let a=TM[s];a(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 n===`esc`?`escape`:n}static ɵfac=function(r){return new(r||e)(R(V))};static ɵprov=O({token:e,factory:e.ɵfac})}return e})();
4async function np(e,t,n){return kb(k$1({rootComponent:e},CM(t,n)))}function CM(e,t){return{platformRef:t?.platformRef,appProviders:[...RM,...e?.providers??[]],platformProviders:AM}}function _M(){Ec.makeCurrent()}function MM(){return new Dt}function NM(){return Au(document),document}var AM=[{provide:br,useValue:Gf},{provide:oa,useValue:_M,multi:!0},{provide:V,useFactory:NM}];var RM=[{provide:Qo,useValue:`root`},{provide:Dt,useFactory:MM},{provide:bc,useClass:mc,multi:!0},{provide:bc,useClass:Gb,multi:!0},tp,{provide:_r,useClass:Xf},{provide:Xf,useExisting:_r},Jf,{provide:Sr,useExisting:tp},[]];var Li=class e{headers;normalizedNames=new Map;lazyInit;lazyUpdate=null;constructor(t){t?typeof t==`string`?this.lazyInit=()=>{this.headers=new Map,t.split(` 5`).forEach(n=>{let r=n.indexOf(`:`);if(r>0){let o=n.slice(0,r),i=n.slice(r+1).trim();this.addHeaderEntry(o,i)}})}:typeof Headers<`u`&&t instanceof Headers?(this.headers=new Map,t.forEach((n,r)=>{this.addHeaderEntry(r,n)})):this.lazyInit=()=>{this.headers=new Map,Object.entries(t).forEach(([n,r])=>{this.setHeaderEntries(n,r)})}:this.headers=new Map}has(t){return this.init(),this.headers.has(t.toLowerCase())}get(t){this.init();let 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 e?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();for(let[n,r]of t.headers.entries())this.headers.set(n,r),this.normalizedNames.set(n,t.normalizedNames.get(n))}clone(t){let n=new e;return n.lazyInit=this.lazyInit&&this.lazyInit instanceof e?this.lazyInit:this,n.lazyUpdate=(this.lazyUpdate||[]).concat([t]),n}applyUpdate(t){let n=t.name.toLowerCase();switch(t.op){case`a`:case`s`:let r=t.value;if(typeof r==`string`&&(r=[r]),r.length===0)return;this.maybeSetNormalizedName(t.name,n);let o=t.op===`a`?(this.headers.get(n)||[]).slice():[];o.push(...r),this.headers.set(n,o);break;case`d`:let i=t.value;if(i===void 0)this.headers.delete(n),this.normalizedNames.delete(n);else{let s=Array.isArray(i)?i:[i],a=this.headers.get(n);if(!a)return;a=a.filter(c=>s.indexOf(c)===-1),a.length===0?(this.headers.delete(n),this.normalizedNames.delete(n)):this.headers.set(n,a)}break}}addHeaderEntry(t,n){let r=t.toLowerCase();this.maybeSetNormalizedName(t,r),this.headers.has(r)?this.headers.get(r).push(n):this.headers.set(r,[n])}setHeaderEntries(t,n){let r=(Array.isArray(n)?n:[n]).map(i=>i.toString()),o=t.toLowerCase();this.headers.set(o,r),this.maybeSetNormalizedName(t,o)}forEach(t){this.init(),Array.from(this.normalizedNames.keys()).forEach(n=>t(this.normalizedNames.get(n),this.headers.get(n)))}};var op=(function(e){return e[e.Sent=0]=`Sent`,e[e.UploadProgress=1]=`UploadProgress`,e[e.ResponseHeader=2]=`ResponseHeader`,e[e.DownloadProgress=3]=`DownloadProgress`,e[e.Response=4]=`Response`,e[e.User=5]=`User`,e})(op||{});var rp=class{headers;status;statusText;url;ok;type;redirected;responseType;constructor(t,n=200,r=`OK`){this.headers=t.headers||new Li,this.status=t.status!==void 0?t.status:n,this.statusText=t.statusText||r,this.url=t.url||null,this.redirected=t.redirected,this.responseType=t.responseType,this.ok=this.status>=200&&this.status<300}};var wc=class e extends rp{body;constructor(t={}){super(t),this.body=t.body!==void 0?t.body:null}type=op.Response;clone(t={}){return new e({body:t.body!==void 0?t.body:this.body,headers:t.headers||this.headers,status:t.status!==void 0?t.status:this.status,statusText:t.statusText||this.statusText,url:t.url||this.url||void 0,redirected:t.redirected??this.redirected,responseType:t.responseType??this.responseType})}};var Yb=new I(``);var kM=new I(``);var PM=`b`;var LM=`h`;var jM=`s`;var FM=`st`;var UM=`u`;var HM=`rt`;var ip=new I(``);var VM=[`GET`,`HEAD`];function Xb(e,t){let{isCacheActive:n,filter:r,includePostRequests:o,includeRequestsWithAuthHeaders:i,includeRequestsWithCredentials:s,includeNonCacheableRequests:a}=t,{transferCache:c,method:l}=e;return!(!n||c===!1||l===`POST`&&!o&&!c||l!==`POST`&&!VM.includes(l)||!i&&zM(e)||!s&&GM(e)||!a&&(qM(e.headers)||ZM(e.cache))||r?.(e)===!1)}function $M(e,t,n,r,o,i=!1){if(!i&&!Xb(e,t))return null;if(r)throw new w(2803,!1);if(!o){let S=e.url;o=e0(e,S)}let s=n.get(o,null);if(!s)return null;let{[PM]:a,[HM]:c,[LM]:l,[jM]:d,[FM]:u,[UM]:f}=s,h=a;
5switch(c){case`arraybuffer`:h=Qb(a);break;case`blob`:h=new Blob([Qb(a)]);break}let y=new Li(l);return new wc({body:h,headers:y,status:d,statusText:u,url:f})}function BM(e,t){let n=p(ip);if(!Xb(e,n))return t(e);let r=p(Nn);p(kM,{optional:!0});let i=e.url,a=$M(e,n,r,null,e0(e,i),!0);return a?x(a):t(e)}function zM(e){let t=e.headers;return t.has(`authorization`)||t.has(`proxy-authorization`)||t.has(`cookie`)}var WM=new Set([`no-store`,`private`,`no-cache`]);function qM(e){let t=e.get(`cache-control`);return t?t.split(`,`).some(n=>{let r=n.split(`=`,1)[0].trim().toLowerCase();return WM.has(r)}):!1}function ZM(e){return e===`no-cache`||e===`no-store`}function GM(e){let{withCredentials:t,credentials:n}=e;return t||n===`include`||n===`same-origin`}function Kb(e){let t=new URLSearchParams(e instanceof URLSearchParams?e:e.toString());return t.sort(),t.toString()}function e0(e,t){let{params:n,method:r,responseType:o}=e,i=Kb(n),s=e.serializeBody();s instanceof URLSearchParams?s=Kb(s):typeof s!=`string`&&(s=``);return KM([r,o,t,s,i].join(`\0`))}function Qb(e){let t=atob(e);return Uint8Array.from(t,r=>r.charCodeAt(0)).buffer}function t0(e){return[{provide:ip,useFactory:()=>(Je(`NgHttpTransferCache`),k$1({isCacheActive:!0},e))},{provide:Yb,useValue:BM,multi:!0},{provide:Ot,multi:!0,useFactory:()=>{let t=p(We),n=p(ip);return()=>{t.whenStable().then(()=>{n.isCacheActive=!1})}}}]}var YM=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]);var Jb;function KM(e){Jb??=new TextEncoder;let t=Jb.encode(e),n=1779033703,r=3144134277,o=1013904242,i=2773480762,s=1359893119,a=2600822924,c=528734635,l=1541459225,d=t.length*8,u=(t.length+8>>6)+1<<6,f=new Uint8Array(u);f.set(t),f[t.length]=128;let h=new DataView(f.buffer),y=d>>>0,S=d/4294967296>>>0;h.setUint32(u-8,S,!1),h.setUint32(u-4,y,!1);let C=new Uint32Array(64);for(let j=0;j<u;j+=64){for(let _e=0;_e<16;_e++)C[_e]=h.getUint32(j+_e*4,!1);for(let _e=16;_e<64;_e++){let Wn=C[_e-15],fl=((Wn>>>7|Wn<<25)^(Wn>>>18|Wn<<14)^Wn>>>3)>>>0,vn=C[_e-2],pl=((vn>>>17|vn<<15)^(vn>>>19|vn<<13)^vn>>>10)>>>0;C[_e]=C[_e-16]+fl+C[_e-7]+pl>>>0}let K=n,Ce=r,Oo=o,dl=i,wt=s,es=a,ts=c,ul=l;for(let _e=0;_e<64;_e++){let Wn=((wt>>>6|wt<<26)^(wt>>>11|wt<<21)^(wt>>>25|wt<<7))>>>0,fl=(wt&es^~wt&ts)>>>0,vn=ul+Wn+fl+YM[_e]+C[_e]>>>0,_E=(((K>>>2|K<<30)^(K>>>13|K<<19)^(K>>>22|K<<10))>>>0)+((K&Ce^K&Oo^Ce&Oo)>>>0)>>>0;ul=ts,ts=es,es=wt,wt=dl+vn>>>0,dl=Oo,Oo=Ce,Ce=K,K=vn+_E>>>0}n=n+K>>>0,r=r+Ce>>>0,o=o+Oo>>>0,i=i+dl>>>0,s=s+wt>>>0,a=a+es>>>0,c=c+ts>>>0,l=l+ul>>>0}return[n,r,o,i,s,a,c,l].map(j=>j.toString(16).padStart(8,`0`)).join(``)}var c0=(()=>{class e{_doc=p(V);_dom=Qt();_cachedHead;addTag(n,r=!1){return n?this._getOrCreateElement(n,r):null}addTags(n,r=!1){return n.filter(o=>!!o).map(o=>this._getOrCreateElement(o,r))}getTag(n){if(!n)return null;let r=this._doc.querySelector(n0(n));return s0(r)?r:null}getTags(n){if(!n)return[];let r=this._doc.querySelectorAll(n0(n));return r?Array.from(r).filter(o=>s0(o)):[]}updateTag(n,r){o0(n),r??=i0(n);let o=this.getTag(r);return o?(r0(n,o),o):this._getOrCreateElement(n,!0)}removeTag(n){this.removeTagElement(this.getTag(n))}removeTagElement(n){n&&this._dom.remove(n)}_getOrCreateElement(n,r=!1){if(o0(n),!r){let s=i0(n),a=this.getTags(s).filter(c=>JM(n,c))[0];if(a!==void 0)return a}let o=this._dom.createElement(`meta`);return r0(n,o),this._doc.getElementsByTagName(`head`)[0].appendChild(o),o}static ɵfac=function(r){return new(r||e)};static ɵprov=ce({token:e,factory:e.ɵfac})}return e})();function n0(e){return`meta[${e}]`}function r0(e,t){Object.keys(e).forEach(n=>t.setAttribute(sp(n),e[n]))}function o0(e){for(let t of Object.keys(e))if(sp(t).toLowerCase().startsWith(`on`))throw new w(5203,!1)}function i0(e){let t=e.name?`name`:`property`;return`${t}=${QM(String(e[t]))}`}function QM(e){return`"${e.replace(/\\/g,`\\\\`).replace(/"/g,`\\"`)}"`}function JM(e,t){return Object.keys(e).every(n=>t.getAttribute(sp(n))===e[n])}function sp(e){return Object.hasOwn(a0,e)?a0[e]:e}function s0(e){return e?.nodeName.toLowerCase()===`meta`}var a0={httpEquiv:`http-equiv`};var Sc=(()=>{class e{_doc;constructor(n){this._doc=n}getTitle(){return this._doc.title}setTitle(n){this._doc.title=n||``}static ɵfac=function(r){return new(r||e)(R(V))};static ɵprov=O({token:e,factory:e.ɵfac,providedIn:`root`})}return e})();var Ic=(function(e){return e[e.NoHttpTransferCache=0]=`NoHttpTransferCache`,e[e.HttpTransferCacheOptions=1]=`HttpTransferCacheOptions`,e[e.I18nSupport=2]=`I18nSupport`,e[e.EventReplay=3]=`EventReplay`,e[e.IncrementalHydration=4]=`IncrementalHydration`,e[e.NoIncrementalHydration=5]=`NoIncrementalHydration`,e})(Ic||{});function l0(...e){let t=[],n=new Set;for(let{ɵproviders:o,ɵkind:i}of e)n.add(i),o.length&&t.push(o);let r=n.has(Ic.HttpTransferCacheOptions);return Ct([[],[],xb(),n.has(Ic.NoHttpTransferCache)||r?[]:t0({}),n.has(Ic.NoIncrementalHydration)?[]:Ob(),t,{provide:ic,useValue:{isActive:!0}},{provide:Ot,multi:!0,useFactory:()=>{let o=p(We),i=p(ic);return()=>{o.whenStable().then(()=>{i.isActive=!1})}}}])}var ap=(()=>{class e{static ɵfac=function(r){return new(r||e)};static ɵprov=O({token:e,factory:function(r){let o=null;return r?o=new(r||e):o=R(XM),o},providedIn:`root`})}return e})();var XM=(()=>{class e extends ap{_doc=p(V);sanitize(n,r){if(r==null)return null;switch(n){case X.NONE:return r;case X.HTML:return Gt(r,`HTML`)?st(r):Ba(this._doc,String(r)).toString();case X.STYLE:return Gt(r,`Style`)?st(r):r;case X.SCRIPT:if(Gt(r,`Script`))return st(r);throw new w(5200,!1);
5case X.URL:return Gt(r,`URL`)?st(r):bi(String(r));case X.RESOURCE_URL:if(Gt(r,`ResourceURL`))return st(r);throw new w(-5201,!1);default:throw new w(5202,!1)}}bypassSecurityTrustHtml(n){return Hu(n)}bypassSecurityTrustStyle(n){return Vu(n)}bypassSecurityTrustScript(n){return $u(n)}bypassSecurityTrustUrl(n){return Bu(n)}bypassSecurityTrustResourceUrl(n){return zu(n)}static ɵfac=function(r){return new(r||e)};static ɵprov=ce({token:e,factory:e.ɵfac})}return e})();var N=`primary`;var Gi=Symbol(`RouteTitle`);var fp=class{params;constructor(t){this.params=t||{}}has(t){return Object.hasOwn(this.params,t)}get(t){if(this.has(t)){let n=this.params[t];return Array.isArray(n)?n[0]:n}return null}getAll(t){if(this.has(t)){let n=this.params[t];return Array.isArray(n)?n:[n]}return[]}get keys(){return Object.keys(this.params)}};function xr(e){return new fp(e)}function cp(e,t,n){for(let r=0;r<e.length;r++){let o=e[r],i=t[r];if(o[0]===`:`)n[o.substring(1)]=i;else if(o!==i.path)return!1}return!0}function m0(e,t,n){let r=n.path.split(`/`),o=r.indexOf(`**`);if(o===-1){if(r.length>e.length||n.pathMatch===`full`&&(t.hasChildren()||r.length<e.length))return null;let c={},l=e.slice(0,r.length);return cp(r,l,c)?{consumed:l,posParams:c}:null}if(o!==r.lastIndexOf(`**`))return null;let i=r.slice(0,o),s=r.slice(o+1);if(i.length+s.length>e.length||n.pathMatch===`full`&&t.hasChildren()&&n.path!==`**`)return null;let a={};return!cp(i,e.slice(0,i.length),a)||!cp(s,e.slice(e.length-s.length),a)?null:{consumed:e,posParams:a}}function Nc(e){return new Promise((t,n)=>{e.pipe(nn()).subscribe({next:r=>t(r),error:r=>n(r)})})}function tN(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;++n)if(!Jt(e[n],t[n]))return!1;return!0}function Jt(e,t){let n=e?pp(e):void 0,r=t?pp(t):void 0;if(!n||!r||n.length!=r.length)return!1;let o;for(let i=0;i<n.length;i++)if(o=n[i],!v0(e[o],t[o]))return!1;return!0}function pp(e){return[...Object.keys(e),...Object.getOwnPropertySymbols(e)]}function v0(e,t){if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return!1;let n=[...e].sort(),r=[...t].sort();return n.every((o,i)=>r[i]===o)}else return e===t}function nN(e){return e.length>0?e[e.length-1]:null}function kr(e){return Cs(e)?e:Si(e)?de(Promise.resolve(e)):x(e)}function y0(e){return Cs(e)?Nc(e):Promise.resolve(e)}var rN={exact:E0,subset:w0};var b0={exact:oN,subset:iN,ignored:()=>!0};var Mp={paths:`exact`,fragment:`ignored`,matrixParams:`ignored`,queryParams:`exact`};var Io={paths:`subset`,fragment:`ignored`,matrixParams:`ignored`,queryParams:`subset`};function Np(e,t,n){let r=e instanceof Ze?e:t.parseUrl(e);return Pt(()=>hp(t.lastSuccessfulNavigation()?.finalUrl??new Ze,r,k$1(k$1({},Io),n)))}function hp(e,t,n){return rN[n.paths](e.root,t.root,n.matrixParams)&&b0[n.queryParams](e.queryParams,t.queryParams)&&!(n.fragment===`exact`&&e.fragment!==t.fragment)}function oN(e,t){return Jt(e,t)}function E0(e,t,n){if(!Rr(e.segments,t.segments)||!Cc(e.segments,t.segments,n)||e.numberOfChildren!==t.numberOfChildren)return!1;for(let r in t.children)if(!e.children[r]||!E0(e.children[r],t.children[r],n))return!1;return!0}function iN(e,t){return Object.keys(t).length<=Object.keys(e).length&&Object.keys(t).every(n=>v0(e[n],t[n]))}function w0(e,t,n){return I0(e,t,t.segments,n)}function I0(e,t,n,r){if(e.segments.length>n.length){let o=e.segments.slice(0,n.length);return!(!Rr(o,n)||t.hasChildren()||!Cc(o,n,r))}else if(e.segments.length===n.length){if(!Rr(e.segments,n)||!Cc(e.segments,n,r))return!1;for(let o in t.children)if(!e.children[o]||!w0(e.children[o],t.children[o],r))return!1;return!0}else{let o=n.slice(0,e.segments.length),i=n.slice(e.segments.length);return!Rr(e.segments,o)||!Cc(e.segments,o,r)||!e.children[N]?!1:I0(e.children[N],t,i,r)}}function Cc(e,t,n){return t.every((r,o)=>b0[n](e[o].parameters,r.parameters))}var Ze=class{root;queryParams;fragment;_queryParamMap;constructor(t=new B([],{}),n={},r=null){this.root=t,this.queryParams=n,this.fragment=r}get queryParamMap(){return this._queryParamMap??=xr(this.queryParams),this._queryParamMap}toString(){return cN.serialize(this)}};var B=class{segments;children;parent=null;constructor(t,n){this.segments=t,this.children=n,Object.values(n).forEac
vendor: 11,206 bytes, line 5
5h(r=>r.parent=this)}hasChildren(){return this.numberOfChildren>0}get numberOfChildren(){return Object.keys(this.children).length}toString(){return _c(this)}};var Un=class{path;parameters;_parameterMap;constructor(t,n){this.path=t,this.parameters=n}get parameterMap(){return this._parameterMap??=xr(this.parameters),this._parameterMap}toString(){return D0(this)}};function sN(e,t){return Rr(e,t)&&e.every((n,r)=>Jt(n.parameters,t[r].parameters))}function Rr(e,t){return e.length!==t.length?!1:e.every((n,r)=>n.path===t[r].path)}function aN(e,t){let n=[];return Object.entries(e.children).forEach(([r,o])=>{r===N&&(n=n.concat(t(o,r)))}),Object.entries(e.children).forEach(([r,o])=>{r!==N&&(n=n.concat(t(o,r)))}),n}var Pr=(()=>{class e{static ɵfac=function(r){return new(r||e)};static ɵprov=ce({token:e,factory:()=>new Hn})}return e})();var Hn=class{parse(t){let n=new mp(t);return new Ze(n.parseRootSegment(),n.parseQueryParams(),n.parseFragment())}serialize(t){return`${`/${ji(t.root,!0)}`}${uN(t.queryParams)}${typeof t.fragment==`string`?`#${lN(t.fragment)}`:``}`}};var cN=new Hn;function _c(e){return e.segments.map(t=>D0(t)).join(`/`)}function ji(e,t){if(!e.hasChildren())return _c(e);if(t){let n=e.children[N]?ji(e.children[N],!1):``,r=[];return Object.entries(e.children).forEach(([o,i])=>{o!==N&&r.push(`${o}:${ji(i,!1)}`)}),r.length>0?`${n}(${r.join(`//`)})`:n}else{let n=aN(e,(r,o)=>o===N?[ji(e.children[N],!1)]:[`${o}:${ji(r,!1)}`]);return Object.keys(e.children).length===1&&e.children[N]!=null?`${_c(e)}/${n[0]}`:`${_c(e)}/(${n.join(`//`)})`}}function S0(e){return encodeURIComponent(e).replace(/%40/g,`@`).replace(/%3A/gi,`:`).replace(/%24/g,`$`).replace(/%2C/gi,`,`)}function Dc(e){return S0(e).replace(/%3B/gi,`;`)}function lN(e){return encodeURI(e)}function gp(e){return S0(e).replace(/\(/g,`%28`).replace(/\)/g,`%29`).replace(/%26/gi,`&`)}function Mc(e){return decodeURIComponent(e)}function d0(e){return Mc(e.replace(/\+/g,`%20`))}function D0(e){return`${gp(e.path)}${dN(e.parameters)}`}function dN(e){return Object.entries(e).map(([t,n])=>`;${gp(t)}=${gp(n)}`).join(``)}function uN(e){let t=Object.entries(e).map(([n,r])=>Array.isArray(r)?r.map(o=>`${Dc(n)}=${Dc(o)}`).join(`&`):`${Dc(n)}=${Dc(r)}`).filter(n=>n);return t.length?`?${t.join(`&`)}`:``}var fN=/^[^\/()?;#]+/;function lp(e){let t=e.match(fN);return t?t[0]:``}var pN=/^[^\/()?;=#]+/;function hN(e){let t=e.match(pN);return t?t[0]:``}var gN=/^[^=?&#]+/;function mN(e){let t=e.match(gN);return t?t[0]:``}var vN=/^[^&#]+/;function yN(e){let t=e.match(vN);return t?t[0]:``}var mp=class{url;remaining;constructor(t){this.url=t,this.remaining=t}parseRootSegment(){for(;this.consumeOptional(`/`););return this.remaining===``||this.peekStartsWith(`?`)||this.peekStartsWith(`#`)?new B([],{}):new B([],this.parseChildren())}parseQueryParams(){let t={};if(this.consumeOptional(`?`))do this.parseQueryParam(t);while(this.consumeOptional(`&`));return t}parseFragment(){return this.consumeOptional(`#`)?decodeURIComponent(this.remaining):null}parseChildren(t=0){if(t>50)throw new w(4010,!1);if(this.remaining===``)return{};this.consumeOptional(`/`);let n=[];for(this.peekStartsWith(`(`)||n.push(this.parseSegment());this.peekStartsWith(`/`)&&!this.peekStartsWith(`//`)&&!this.peekStartsWith(`/(`);)this.capture(`/`),n.push(this.parseSegment());let r={};this.peekStartsWith(`/(`)&&(this.capture(`/`),r=this.parseParens(!0,t));let o={};return this.peekStartsWith(`(`)&&(o=this.parseParens(!1,t)),(n.length>0||Object.keys(r).length>0)&&(o[N]=new B(n,r)),o}parseSegment(){let t=lp(this.remaining);if(t===``&&this.peekStartsWith(`;`))throw new w(4009,!1);return this.capture(t),new Un(Mc(t),this.parseMatrixParams())}parseMatrixParams(){let t={};for(;this.consumeOptional(`;`);)this.parseParam(t);return t}parseParam(t){let n=hN(this.remaining);if(!n)return;this.capture(n);let r=``;if(this.consumeOptional(`=`)){let o=lp(this.remaining);o&&(r=o,this.capture(r))}t[Mc(n)]=Mc(r)}parseQueryParam(t){let n=mN(this.remaining);if(!n)return;this.capture(n);let r=``;if(this.consumeOptional(`=`)){let s=yN(this.remaining);s&&(r=s,this.capture(r))}let o=d0(n),i=d0(r);if(Object.hasOwn(t,o)){let s=t[o];Array.isArray(s)||(s=[s],t[o]=s),s.push(i)}else t[o]=i}parseParens(t,n){let r=Object.create(null);for(this.capture(`(`);!this.consumeOptional(`)`)&&this.remaining.length>0;){let o=lp(this.remaining),i=this.remaining[o.length];if(i!==`/`&&i!==`)`&&i!==`;`)throw new w(4010,!1);let s;o.indexOf(`:`)>-1?(s=o.slice(0,o.indexOf(`:`)),this.capture(s),this.capture(`:`)):t&&(s=N);let a=this.parseChildren(n+1);r[s??N]=Object.keys(a).length===1&&a[N]?a[N]:new B([],a),this.consumeOptional(`//`)}return r}peekStartsWith(t){return this.remaining.startsWith(t)}consumeOptional(t){return this.peekStartsWith(t)?(this.remaining=this.remaining.substring(t.length),!0):!1}capture(t){if(!this.consumeOptional(t))throw new w(4011,!1)}};function T0(e){return e.segments.length>0?new B([],{[N]:e}):e}function C0(e){let t=Object.create(null);for(let[r,o]of Object.entries(e.children)){let i=C0(o);if(r===N&&i.segments.length===0&&i.hasChildren())for(let[s,a]of Object.entries(i.children))t[s]=a;else(i.segments.length>0||i.hasChildren())&&(t[r]=i)}return bN(new B(e.segments,t))}function bN(e){if(e.numberOfChildren===1&&e.children[N]){let t=e.children[N];return new B(e.segments.concat(t.segments),t.children)}return e}function Vn(e){return e instanceof Ze}function _0(e,t,n=null,r=null,o=new Hn){return N0(M0(e),t,n,r,o)}function M0(e){let t;function n(i){let s={};for(let c of i.children){let l=n(c);s[c.outlet]=l}let a=new B(i.url,s);return i===e&&(t=a),a}let o=T0(n(e.root));return t??o}function N0(e,t,n,r,o){let i=e;for(;i.parent;)i=i.parent;if(t.length===0)return dp(i,i,i,n,r,o);let s=EN(t);if(s.toRoot())return dp(i,i,new B([],{}),n,r,o);let a=wN(s,i,e),c=a.processChildren?Ui(a.segmentGroup,a.index,s.commands):R0(a.segmentGroup,a.index,s.commands);return dp(i,a.segmentGroup,c,n,r,o)}function Ac(e){return typeof e==`object`&&e!=null&&!e.outlets&&!e.segmentPath}function Vi(e){return typeof e==`object`&&e!=null&&e.outlets}function u0(e,t,n){e||=`ɵ`;let r=new Ze;return r.queryParams={[e]:t},n.parse(n.serialize(r)).queryParams[e]}function dp(e,t,n,r,o,i){let s={};for(let[l,d]of Object.entries(r??{}))s[l]=Array.isArray(d)?d.map(u=>u0(l,u,i)):u0(l,d,i);let a;e===t?a=n:a=A0(e,t,n);return new Ze(T0(C0(a)),s,o)}function A0(e,t,n){let r=Object.create(null);return Object.entries(e.children).forEach(([o,i])=>{i===t?r[o]=n:r[o]=A0(i,t,n)}),new B(e.segments,r)}var Rc=class{isAbsolute;numberOfDoubleDots;commands;constructor(t,n,r){if(this.isAbsolute=t,this.numberOfDoubleDots=n,this.commands=r,t&&r.length>0&&Ac(r[0]))throw new w(4003,!1);let o=r.find(Vi);if(o&&o!==nN(r))throw new w(4004,!1)}toRoot(){return this.isAbsolute&&this.commands.length===1&&this.commands[0]==`/`}};function EN(e){if(typeof e[0]==`string`&&e.length===1&&e[0]===`/`)return new Rc(!0,0,e);let t=0,n=!1,r=e.reduce((o,i,s)=>{if(typeof i==`object`&&i!=null){if(i.outlets){let a={};return Object.entries(i.outlets).forEach(([c,l])=>{a[c]=typeof l==`string`?l.split(`/`):l}),[...o,{outlets:a}]}if(i.segmentPath)return[...o,i.segmentPath]}return typeof i!=`string`?[...o,i]:s===0?(i.split(`/`).forEach((a,c)=>{c==0&&a===`.`||(c==0&&a===``?n=!0:a===`..`?t++:a!=``&&o.push(a))}),o):[...o,i]},[]);return new Rc(n,t,r)}var bo=class{segmentGroup;processChildren;index;constructor(t,n,r){this.segmentGroup=t,this.processChildren=n,this.index=r}};function wN(e,t,n){if(e.isAbsolute)return new bo(t,!0,0);if(!n)return new bo(t,!1,NaN);if(n.parent===null)return new bo(n,!0,0);let r=Ac(e.commands[0])?0:1;return IN(n,n.segments.length-1+r,e.numberOfDoubleDots)}function IN(e,t,n){let r=e,o=t,i=n;for(;i>o;){if(i-=o,r=r.parent,!r)throw new w(4005,!1);o=r.segments.length}return new bo(r,!1,o-i)}function SN(e){return Vi(e[0])?e[0].outlets:{[N]:e}}function R0(e,t,n){if(e??=new B([],{}),e.segments.length===0&&e.hasChildren())return Ui(e,t,n);let r=DN(e,t,n),o=n.slice(r.commandIndex);if(r.match&&r.pathIndex<e.segments.length){let i=new B(e.segments.slice(0,r.pathIndex),{});return i.children[N]=new B(e.segments.slice(r.pathIndex),e.children),Ui(i,0,o)}else return r.match&&o.length===0?new B(e.segments,{}):r.match&&!e.hasChildren()?vp(e,t,n):r.match?Ui(e,0,o):vp(e,t,n)}function Ui(e,t,n){if(n.length===0)return new B(e.segments,{});{let r=SN(n),o=Object.create(null);if(Object.keys(r).some(i=>i!==N)&&e.children[N]&&e.numberOfChildren===1&&e.children[N].segments.length===0){let i=Ui(e.children[N],t,n);return new B(e.segments,i.children)}return Object.entries(r).forEach(([i,s])=>{typeof s==`string`&&(s=[s]),s!==null&&(o[i]=R0(e.children[i],t,s))}),Object.entries(e.children).forEach(([i,s])=>{r[i]===void 0&&(o[i]=s)}),new B(e.segments,o)}}function DN(e,t,n){let r=0,o=t,i={match:!1,pathIndex:0,commandIndex:0};for(;o<e.segments.length;){if(r>=n.length)return i;let s=e.segments[o],a=n[r];if(Vi(a))break;let c=`${a}`,l=r<n.length-1?n[r+1]:null;if(o>0&&c===void 0)break;if(c&&l&&typeof l==`object`&&l.outlets===void 0){if(!p0(c,l,s))return i;r+=2}else{if(!p0(c,{},s))return i;r++}o++}return{match:!0,pathIndex:o,commandIndex:r}}function vp(e,t,n){let r=e.segments.slice(0,t),o=0;for(;o<n.length;){let i=n[o];if(Vi(i))return new B(r,TN(i.outlets));if(o===0&&Ac(n[0])){let c=e.segments[t];r.push(new Un(c.path,f0(n[0]))),o++;continue}let s=Vi(i)?i.outlets[N]:`${i}`,a=o<n.length-1?n[o+1]:null;s&&a&&Ac(a)?(r.push(new Un(s,f0(a))),o+=2):(r.push(new Un(s,{})),o++)}return new B(r,{})}function TN(e){let t={};return Object.entries(e).forEach(([n,r])=>{typeof r==`string`&&(r=[r]),r!==null&&(t[n]=vp(new B([],{}),0,r))}),t}function f0(e){let t={};return Object.entries(e).forEach(([n,r])=>t[n]=`${r}`),t}function p0(e,t,n){return e==n.path&&Jt(t,n.parameters)}var Eo=`imperative`;var be=(function(e){return e[e.NavigationStart=0]=`NavigationStart`,e[e.NavigationEnd=1]=`NavigationEnd`,e[e.NavigationCancel=2]=`NavigationCancel`,e[e.NavigationError=3]=`NavigationError`,e[e.RoutesRecognized=4]=`RoutesRecognized`,e[e.ResolveStart=5]=`ResolveStart`,e[e.ResolveEnd=6]=`ResolveEnd`,e[e.GuardsCheckStart=7]=`GuardsCheckStart`,e[e.GuardsCheckEnd=8]=`GuardsCheckEnd`,e[e.RouteConfigLoadStart=9]=`RouteConfigLoadStart`,e[e.RouteConfigLoadEnd=10]=`RouteConfigLoadEnd`,e[e.ChildActivationStart=11]=`ChildActivationStart`,e[e.ChildActivationEnd=12]=`ChildActivationEnd`,e[e.ActivationStart=13]=`ActivationStart`,e[e.ActivationEnd=14]=`ActivationEnd`,e[e.Scroll=15]=`Scroll`,e[e.NavigationSkipped=16]=`NavigationSkipped`,e})(be||{});var lt=class{id;url;constructor(t,n){this.id=t,this.url=n}};var $n=class extends lt{type=be.NavigationStart;navigationTrigger;restoredState;constructor(t,n,r=`imperative`,o=null){super(t,n),this.navigationTrigger=r,this.restoredState=o}toString(){return`NavigationStart(id: ${this.id}, url: '${this.url}')`}};var Xe=class extends lt{urlAfterRedirects;type=be.NavigationEnd;constructor(t,n,r){super(t,n),this.urlAfterRedirects=r}toString(){return`NavigationEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}')`}};var Fe=(function(e){return e[e.Redirect=0]=`Redirect`,e[e.SupersededByNewNavigation=1]=`SupersededByNewNavigation`,e[e.NoDataFromRe
5solver=2]=`NoDataFromResolver`,e[e.GuardRejected=3]=`GuardRejected`,e[e.Aborted=4]=`Aborted`,e})(Fe||{});var So=(function(e){return e[e.IgnoredSameUrlNavigation=0]=`IgnoredSameUrlNavigation`,e[e.IgnoredByUrlHandlingStrategy=1]=`IgnoredByUrlHandlingStrategy`,e})(So||{});var Et=class extends lt{reason;code;type=be.NavigationCancel;constructor(t,n,r,o){super(t,n),this.reason=r,this.code=o}toString(){return`NavigationCancel(id: ${this.id}, url: '${this.url}')`}};function x0(e){return e instanceof Et&&(e.code===Fe.Redirect||e.code===Fe.SupersededByNewNavigation)}var Xt=class extends lt{reason;code;type=be.NavigationSkipped;constructor(t,n,r,o){super(t,n),this.reason=r,this.code=o}};var Or=class extends lt{error;target;type=be.NavigationError;constructor(t,n,r,o){super(t,n),this.error=r,this.target=o}toString(){return`NavigationError(id: ${this.id}, url: '${this.url}', error: ${this.error})`}};var $i=class extends lt{urlAfterRedirects;state;type=be.RoutesRecognized;constructor(t,n,r,o){super(t,n),this.urlAfterRedirects=r,this.state=o}toString(){return`RoutesRecognized(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}};var xc=class extends lt{urlAfterRedirects;state;type=be.GuardsCheckStart;constructor(t,n,r,o){super(t,n),this.urlAfterRedirects=r,this.state=o}toString(){return`GuardsCheckStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}};var Oc=class extends lt{urlAfterRedirects;state;shouldActivate;type=be.GuardsCheckEnd;constructor(t,n,r,o,i){super(t,n),this.urlAfterRedirects=r,this.state=o,this.shouldActivate=i}toString(){return`GuardsCheckEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state}, shouldActivate: ${this.shouldActivate})`}};var kc=class extends lt{urlAfterRedirects;state;type=be.ResolveStart;constructor(t,n,r,o){super(t,n),this.urlAfterRedirects=r,this.state=o}toString(){return`ResolveStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}};var Pc=class extends lt{urlAfterRedirects;state;type=be.ResolveEnd;constructor(t,n,r,o){super(t,n),this.urlAfterRedirects=r,this.state=o}toString(){return`ResolveEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}};var Lc=class{route;type=be.RouteConfigLoadStart;constructor(t){this.route=t}toString(){return`RouteConfigLoadStart(path: ${this.route.path})`}};var jc=class{route;type=be.RouteConfigLoadEnd;constructor(t){this.route=t}toString(){return`RouteConfigLoadEnd(path: ${this.route.path})`}};var Fc=class{snapshot;type=be.ChildActivationStart;constructor(t){this.snapshot=t}toString(){return`ChildActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||``}')`}};var Uc=class{snapshot;type=be.ChildActivationEnd;constructor(t){this.snapshot=t}toString(){return`ChildActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||``}')`}};var Hc=class{snapshot;type=be.ActivationStart;constructor(t){this.snapshot=t}toString(){return`ActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||``}')`}};var Vc=class{snapshot;type=be.ActivationEnd;constructor(t){this.snapshot=t}toString(){return`ActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||``}')`}};var Do=class{routerEvent;position;anchor;scrollBehavior;type=be.Scroll;constructor(t,n,r,o){this.routerEvent=t,this.position=n,this.anchor=r,this.scrollBehavior=o}toString(){let t=this.position?`${this.position[0]}, ${this.position[1]}`:null;return`Scroll(anchor: '${this.anchor}', position: '${t}')`}};var To=class{};var Bi=class{};var Co=class{url;navigationBehaviorOptions;constructor(t,n){this.url=t,this.navigationBehaviorOptions=n}};function CN(e){return!(e instanceof To)&&!(e instanceof Co)&&!(e instanceof Bi)}var $c=class{rootInjector;outlet=null;route=null;children;attachRef=null;get injector(){return this.route?.snapshot._environmentInjector??this.rootInjector}constructor(t){this.rootInjector=t,this.children=new No(this.rootInjector)}};var No=(()=>{class e{rootInjector;contexts=new Map;constructor(n){this.rootInjector=n}onChildOutletCreated(n,r){let o=this.getOrCreateContext(n);o.outlet=r,this.contexts.set(n,o)}onChildOutletDestroyed(n){let r=this.getContext(n);r&&(r.outlet=null,r.attachRef=null)}onOutletDeactivated(){let 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 $c(this.rootInjector),this.contexts.set(n,r)),r}getContext(n){return this.contexts.get(n)||null}static ɵfac=function(r){return new(r||e)(R(ae))};static ɵprov=O({token:e,factory:e.ɵfac,providedIn:`root`})}return e})();var Bc=class{_root;constructor(t){this._root=t}get root(){return this._root.value}
5parent(t){let n=this.pathFromRoot(t);return n.length>1?n[n.length-2]:null}children(t){let n=yp(t,this._root);return n?n.children.map(r=>r.value):[]}firstChild(t){let n=yp(t,this._root);return n&&n.children.length>0?n.children[0].value:null}siblings(t){let n=bp(t,this._root);return n.length<2?[]:n[n.length-2].children.map(o=>o.value).filter(o=>o!==t)}pathFromRoot(t){return bp(t,this._root).map(n=>n.value)}};function yp(e,t){if(e===t.value)return t;for(let n of t.children){let r=yp(e,n);if(r)return r}return null}function bp(e,t){if(e===t.value)return[t];for(let n of t.children){let r=bp(e,n);if(r.length)return r.unshift(t),r}return[]}var ct=class{value;children;constructor(t,n){this.value=t,this.children=n}toString(){return`TreeNode(${this.value})`}};function yo(e){let t={};return e&&e.children.forEach(n=>t[n.value.outlet]=n),t}var zi=class extends Bc{snapshot;constructor(t,n){super(t),this.snapshot=n,Rp(this,t)}toString(){return this.snapshot.toString()}};function O0(e,t){let n=_N(e,t),r=new Ae([new Un(``,{})]),o=new Ae({}),i=new Ae({}),c=new dt(r,o,new Ae({}),new Ae(``),i,N,e,n.root);return c.snapshot=n.root,new zi(new ct(c,[]),n)}function _N(e,t){return new Wi(``,new ct(new _o([],{},{},``,{},N,e,null,{},t),[]))}var dt=class{urlSubject;paramsSubject;queryParamsSubject;fragmentSubject;dataSubject;outlet;component;snapshot;_futureSnapshot;_routerState;_paramMap;_queryParamMap;title;url;params;queryParams;fragment;data;resources;_localInjector;pending;paramsSignal;queryParamsSignal;paramMapSignal;queryParamMapSignal;fragmentSignal;dataSignal;constructor(t,n,r,o,i,s,a,c){this.urlSubject=t,this.paramsSubject=n,this.queryParamsSubject=r,this.fragmentSubject=o,this.dataSubject=i,this.outlet=s,this.component=a,this._futureSnapshot=c,this.title=this.dataSubject?.pipe(J(l=>l[Gi]))??x(void 0),this.url=t,this.params=n,this.queryParams=r,this.fragment=o,this.data=i}get routeConfig(){return this._futureSnapshot.routeConfig}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap??=this.params.pipe(J(t=>xr(t))),this._paramMap}get queryParamMap(){return this._queryParamMap??=this.queryParams.pipe(J(t=>xr(t))),this._queryParamMap}toString(){return this.snapshot?this.snapshot.toString():`Future(${this._futureSnapshot})`}_setPending(t){this._futureSnapshot=t,this.pending?.set(!0)}};var MN=`always`;function Ap(e,t,n){let r,{routeConfig:o}=e;return t!==null&&(n===`always`||o?.path===``||!t.component&&!t.routeConfig?.loadComponent)?r={params:k$1(k$1({},t.params),e.params),data:k$1(k$1({},t.data),e.data),resolve:k$1(k$1(k$1(k$1({},e.data),t.data),o?.data),e._resolvedData)}:r={params:k$1({},e.params),data:k$1({},e.data),resolve:k$1(k$1({},e.data),e._resolvedData??{})},o&&P0(o)&&(r.resolve[Gi]=o.title),r}var _o=class{url;params;queryParams;fragment;data;outlet;component;routeConfig;_resolve;_resolvedData;_routerState;_paramMap;_queryParamMap;_environmentInjector;resources;get title(){return this.data?.[Gi]}constructor(t,n,r,o,i,s,a,c,l,d){this.url=t,this.params=n,this.queryParams=r,this.fragment=o,this.data=i,this.outlet=s,this.component=a,this.routeConfig=c,this._resolve=l,this._environmentInjector=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??=xr(this.params),this._paramMap}get queryParamMap(){return this._queryParamMap??=xr(this.queryParams),this._queryParamMap}toString(){return`Route(url:'${this.url.map(r=>r.toString()).join(`/`)}', path:'${this.routeConfig?this.routeConfig.path:``}')`}};var Wi=class extends Bc{url;constructor(t,n){super(n),this.url=t,Rp(this,n)}toString(){return k0(this._root)}};
5function Rp(e,t){t.value._routerState=e,t.children.forEach(n=>Rp(e,n))}function k0(e){let t=e.children.length>0?` { ${e.children.map(k0).join(`, `)} } `:``;return`${e.value}${t}`}function up(e){if(e.snapshot){let t=e.snapshot,n=e._futureSnapshot;e.snapshot=n,Jt(t.queryParams,n.queryParams)||e.queryParamsSubject.next(n.queryParams),t.fragment!==n.fragment&&e.fragmentSubject.next(n.fragment),Jt(t.params,n.params)||e.paramsSubject.next(n.params),tN(t.url,n.url)||e.urlSubject.next(n.url),Jt(t.data,n.data)||e.dataSubject.next(n.data)}else e.snapshot=e._futureSnapshot,e.dataSubject.next(e._futureSnapshot.data)}function Ep(e,t){let n=Jt(e.params,t.params)&&sN(e.url,t.url),r=!e.parent!=!t.parent;return n&&!r&&(!e.parent||Ep(e.parent,t.parent))}function P0(e){return typeof e.title==`string`||e.title===null}var L0=new I(``);var Yi=(()=>{class e{activated=null;get activatedComponentRef(){return this.activated}_activatedRoute=null;name=N;activateEvents=new Le;deactivateEvents=new Le;attachEvents=new Le;detachEvents=new Le;routerOutletData=qe();parentContexts=p(No);location=p(ho);changeDetector=p(Mi);inputBinder=p(Zc,{optional:!0});supportsBindingToComponentInputs=!0;ngOnChanges(n){if(n.name){let{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),this.inputBinder?.unsubscribeFromRouteData(this)}isTrackedInParentContexts(n){return this.parentContexts.getContext(n)?.outlet===this}ngOnInit(){this.initializeOutletWithName()}initializeOutletWithName(){if(this.parentContexts.onChildOutletCreated(this.name,this),this.activated)return;let 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 w(4012,!1);return this.activated.instance}get activatedRoute(){if(!this.activated)throw new w(4012,!1);return this._activatedRoute}get activatedRouteData(){return this._activatedRoute?this._activatedRoute.snapshot.data:{}}detach(){if(!this.activated)throw new w(4012,!1);this.location.detach();let 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.inputBinder?.bindActivatedRouteToOutletComponent(this),this.attachEvents.emit(n.instance)}deactivate(){if(this.activated){let n=this.component;this.activated.destroy(),this.activated=null,this._activatedRoute=null,this.deactivateEvents.emit(n)}}activateWith(n,r){if(this.isActivated)throw new w(4013,!1);this._activatedRoute=n;let o=this.location,s=n.snapshot.component,a=this.parentContexts.getOrCreateContext(this.name).children,c=new wp(n,a,o.injector,this.routerOutletData);this.activated=o.createComponent(s,{index:o.length,injector:c,environmentInjector:r}),this.changeDetector.markForCheck(),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.activateEvents.emit(this.activated.instance)}static ɵfac=function(r){return new(r||e)};static ɵdir=kn({type:e,selectors:[[`router-outlet`]],inputs:{name:`name`,routerOutletData:[1,`routerOutletData`]},outputs:{activateEvents:`activate`,deactivateEvents:`deactivate`,attachEvents:`attach`,detachEvents:`detach`},exportAs:[`outlet`],features:[fo]})}return e})();var wp=class{route;childContexts;parent;outletData;constructor(t,n,r,o){this.route=t,this.childContexts=n,this.parent=r,this.outletData=o}get(t,n){return t===dt?this.route:t===No?this.childContexts:t===L0?this.outletData:this.parent.get(t,n)}};var Zc=new I(``);var xp=(()=>{class e{static ɵfac=function(r){return new(r||e)};static ɵcmp=se({type:e,selectors:[[`ng-component`]],exportAs:[`emptyRouterOutlet`],decls:1,vars:0,template:function(r,o){r&1&&ie(0,`router-outlet`)},dependencies:[Yi],encapsulation:2,changeDetection:1})}return e})();function Op(e){let t=e.children&&e.children.map(Op),n=t?l(k$1({},e),{children:t}):k$1({},e);return!n.component&&!n.loadComponent&&(t||n.loadChildren)&&n.outlet&&n.outlet!==N&&(n.component=xp),n}function NN(e,t,n){let r=new Set;return{newlyCreatedRoutes:r,state:new zi(qi(e,t._root,n?n._root:void 0,r),t)}}function qi(e,t,n,r){if(n&&e.shouldReuseRoute(t.value,n.value.snapshot)){let o=n.value;o._setPending(t.value);return new ct(o,AN(e,t,n,r))}else{if(e.shouldAttach(t.value)){let s=e.retrieve(t.value);if(s!==null){let a=s.route;return a.value._setPending(t.value),a.children=t.children.map(c=>qi(e,c,void 0,r)),a}}let o=RN(t.value);o._setPending(t.value),r.add(o);return new ct(o,t.children.map(s=>qi(e,s,void 0,r)))}}function AN(e,t,n,r){return t.children.map(o=>{for(let i of n.children)if(e.shouldReuseRoute(o.value,i.value.snapshot))return qi(e,o,i,r);return qi(e,o,void 0,r)})}function RN(e){return new dt(new Ae(e.url),new Ae(e.params),new Ae(e.queryParams),new Ae(e.fragment),new Ae(e.data),e.outlet,e.component,e)}var Bn=class{redirectTo;navigationBehaviorOptions;constructor(t,n){this.redirectTo=t,this.navigationBehaviorOptions=n}};var j0=`ngNavigationCancelingError`;function zc(e,t){let{redirectTo:n,navigationBehaviorOptions:r}=Vn(t)?{redirectTo:t,navigationBehaviorOptions:void 0}:t,o=F0(!1,Fe.Redirect);return o.url=n,o.navigationBehaviorOptions=r,o}function F0(e,t){let n=new Error(`NavigationCancelingError: ${e||``}`);return n[j0]=!0,n.cancellationCode=t,n}function xN(e){return U0(e)&&Vn(e.url)}function U0(e){return!!e&&e[j0]}var Ip=class{routeReuseStrategy;futureState;currState;forwardEvent;inputBindingEnabled;constructor(t,n,r,o,i){this.routeReuseStrategy=t,this.futureState=n,this.currState=r,this.forwardEvent=o,this.inputBindingEnabled=i}activate(t){let n=this.futureState._root,r=this.currState?this.currState._root:null;this.deactivateChildRoutes(n,r,t),up(this.futureState.root),this.activateChildRoutes(n,r,t)}deactivateChildRoutes(t,n,r){let o=yo(n);
5t.children.forEach(i=>{let s=i.value.outlet;this.deactivateRoutes(i,o[s],r),delete o[s]}),Object.values(o).forEach(i=>{this.deactivateRouteAndItsChildren(i,r)})}deactivateRoutes(t,n,r){let o=t.value,i=n?n.value:null;if(o===i)if(o.component){let 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){let r=n.getContext(t.value.outlet),o=r&&t.value.component?r.children:n,i=yo(t);for(let s of Object.values(i))this.deactivateRouteAndItsChildren(s,o);if(r&&r.outlet){let s=r.outlet.detach(),a=r.children.onOutletDeactivated();this.routeReuseStrategy.store(t.value.snapshot,{componentRef:s,route:t,contexts:a})}}deactivateRouteAndOutlet(t,n){let r=n.getContext(t.value.outlet),o=r&&t.value.component?r.children:n,i=yo(t);for(let s of Object.values(i))this.deactivateRouteAndItsChildren(s,o);r&&(r.outlet&&(r.outlet.deactivate(),r.children.onOutletDeactivated()),r.attachRef=null,r.route=null),t.value._localInjector?.destroy()}activateChildRoutes(t,n,r){let o=yo(n);t.children.forEach(i=>{this.activateRoutes(i,o[i.value.outlet],r),this.forwardEvent(new Vc(i.value.snapshot))}),t.children.length&&this.forwardEvent(new Uc(t.value.snapshot))}activateRoutes(t,n,r){let o=t.value,i=n?n.value:null;if(up(o),o===i)if(o.component){let s=r.getOrCreateContext(o.outlet);this.activateChildRoutes(t,n,s.children)}else this.activateChildRoutes(t,n,r);else if(o.component){let s=r.getOrCreateContext(o.outlet);if(this.routeReuseStrategy.shouldAttach(o.snapshot)){let 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),up(a.route.value),this.activateChildRoutes(t,null,s.children)}else s.attachRef=null,s.route=o,s.outlet&&s.outlet.activateWith(o,s.injector),this.activateChildRoutes(t,null,s.children)}else this.activateChildRoutes(t,null,r)}};var Wc=class{path;route;constructor(t){this.path=t,this.route=this.path[this.path.length-1]}};var wo=class{component;route;constructor(t,n){this.component=t,this.route=n}};function ON(e,t,n){let r=e._root;return Fi(r,t?t._root:null,n,[r.value])}function kN(e){let t=e.routeConfig?e.routeConfig.canActivateChild:null;return!t||t.length===0?null:{node:e,guards:t}}function Ao(e,t){let n=Symbol(),r=t.get(e,n);return r===n?typeof e==`function`&&!Kl(e)?e:t.get(e):r}function Fi(e,t,n,r,o={canDeactivateChecks:[],canActivateChecks:[]}){let i=yo(t);return e.children.forEach(s=>{PN(s,i[s.value.outlet],n,r.concat([s.value]),o),delete i[s.value.outlet]}),Object.entries(i).forEach(([s,a])=>Hi(a,n.getContext(s),n,o)),o}function PN(e,t,n,r,o={canDeactivateChecks:[],canActivateChecks:[]}){let i=e.value,s=t?t.value:null,a=n?n.getContext(e.value.outlet):null;if(s&&i.routeConfig===s.routeConfig){let c=LN(s,i,i.routeConfig.runGuardsAndResolvers);c?o.canActivateChecks.push(new Wc(r)):(i.data=s.data,i._resolvedData=s._resolvedData),i.component?Fi(e,t,a?a.children:null,r,o):Fi(e,t,n,r,o),c&&a&&a.outlet&&a.outlet.isActivated&&o.canDeactivateChecks.push(new wo(a.outlet.component,s))}else s&&Hi(t,a,n,o),o.canActivateChecks.push(new Wc(r)),i.component?Fi(e,null,a?a.children:null,r,o):Fi(e,null,n,r,o);return o}function LN(e,t,n){if(typeof n==`function`)return we(t._environmentInjector,()=>n(e,t));switch(n){case`pathParamsChange`:return!Rr(e.url,t.url);case`pathParamsOrQueryParamsChange`:return!Rr(e.url,t.url)||!Jt(e.queryParams,t.queryParams);case`always`:return!0;case`paramsOrQueryParamsChange`:return!Ep(e,t)||!Jt(e.queryParams,t.queryParams);default:return!Ep(e,t)}}function Hi(e,t,n,r){let o=yo(e),i=e.value;Object.entries(o).forEach(([s,a])=>{i.component?t?Hi(a,t.children.getContext(s),t.children,r):Hi(a,null,null,r):Hi(a,n?n.getContext(s):null,n,r)}),i.component?t&&t.outlet&&t.outlet.isActivated?r.canDeactivateChecks.push(new wo(t.outlet.component,i)):r.canDeactivateChecks.push(new wo(null,i)):r.canDeactivateChecks.push(new wo(null,i))}function Ki(e){return typeof e==`function`}function jN(e){return typeof e==`boolean`}function FN(e){return e&&Ki(e.canLoad)}function UN(e){return e&&Ki(e.canActivate)}function HN(e){return e&&Ki(e.canActivateChild)}function VN(e){return e&&Ki(e.canDeactivate)}function $N(e){return e&&Ki(e.canMatch)}function H0(e){return e instanceof rr||e?.name===`EmptyError`}var Tc=Symbol(`INITIAL_VALUE`);function Mo(){return pt(e=>xl(e.map(t=>t.pipe(tn(1),kl(Tc)))).pipe(J(t=>{for(let n of t)if(n!==!0){if(n===Tc)return Tc;if(n===!1||BN(n))return n}return!0}),et(t=>t!==Tc),tn(1)))}function BN(e){return Vn(e)||e instanceof Bn}function V0(e){return e.aborted?x(void 0).pipe(tn(1)):new P(t=>{let n=()=>{t.next(),t.complete()};return e.addEventListener(`abort`,n),()=>e.removeEventListener(`abort`,n)})}function $0(e){return or(V0(e))}function zN(e){return Pe(t=>{let{targetSnapshot:n,currentSnapshot:r,guards:{canActivateChecks:o,canDeactivateChecks:i}}=t;return i.length===0&&o.length===0?x(l(k$1({},t),{guardsResult:!0})):WN(i,n,r).pipe(Pe(s=>s&&jN(s)?qN(n,o,e):x(s)),J(s=>l(k$1({},t),{guardsResult:s})))})}function WN(e,t,n){return de(e).pipe(Pe(r=>QN(r.component,r.route,n,t)),nn(r=>r!==!0,!0))}
5function qN(e,t,n){return de(t).pipe(Ho(r=>qr(GN(r.route.parent,n),ZN(r.route,n),KN(e,r.path),YN(e,r.route))),nn(r=>r!==!0,!0))}function ZN(e,t){return e!==null&&t&&t(new Hc(e)),x(!0)}function GN(e,t){return e!==null&&t&&t(new Fc(e)),x(!0)}function YN(e,t){let n=t.routeConfig?t.routeConfig.canActivate:null;if(!n||n.length===0)return x(!0);return x(n.map(o=>Uo(()=>{let i=t._environmentInjector,s=Ao(o,i);return kr(UN(s)?s.canActivate(t,e):we(i,()=>s(t,e))).pipe(nn())}))).pipe(Mo())}function KN(e,t){let n=t[t.length-1];return x(t.slice(0,t.length-1).reverse().map(i=>kN(i)).filter(i=>i!==null).map(i=>Uo(()=>{return x(i.guards.map(a=>{let c=i.node._environmentInjector,l=Ao(a,c);return kr(HN(l)?l.canActivateChild(n,e):we(c,()=>l(n,e))).pipe(nn())})).pipe(Mo())}))).pipe(Mo())}function QN(e,t,n,r){let o=t&&t.routeConfig?t.routeConfig.canDeactivate:null;if(!o||o.length===0)return x(!0);return x(o.map(s=>{let a=t._environmentInjector,c=Ao(s,a);return kr(VN(c)?c.canDeactivate(e,t,n,r):we(a,()=>c(e,t,n,r))).pipe(nn())})).pipe(Mo())}function JN(e,t,n,r,o){let i=t.canLoad;if(i===void 0||i.length===0)return x(!0);return x(i.map(a=>{let c=Ao(a,e),d=kr(FN(c)?c.canLoad(t,n):we(e,()=>c(t,n)));return o?d.pipe($0(o)):d})).pipe(Mo(),B0(r))}function B0(e){return fs(ht(t=>{if(typeof t!=`boolean`)throw zc(e,t)}),J(t=>t===!0))}function XN(e,t,n,r,o,i){let s=t.canMatch;if(!s||s.length===0)return x(!0);return x(s.map(c=>{let l=Ao(c,e);return kr($N(l)?l.canMatch(t,n,o):we(e,()=>l(t,n,o))).pipe($0(i))})).pipe(Mo(),B0(r))}var gn=class e extends Error{segmentGroup;constructor(t){super(),this.segmentGroup=t||null,Object.setPrototypeOf(this,e.prototype)}};var Zi=class e extends Error{urlTree;constructor(t){super(),this.urlTree=t,Object.setPrototypeOf(this,e.prototype)}};function eA(e){throw new w(4e3,!1)}function tA(e){throw F0(!1,Fe.GuardRejected)}var Sp=class{urlSerializer;urlTree;constructor(t,n){this.urlSerializer=t,this.urlTree=n}async lineralizeSegments(t,n){let r=[],o=n.root;for(;;){if(r=r.concat(o.segments),o.numberOfChildren===0)return r;if(o.numberOfChildren>1||!o.children[N])throw eA(`${t.redirectTo}`);o=o.children[N]}}async applyRedirectCommands(t,n,r,o,i){let s=await nA(n,o,i);if(s instanceof Ze)throw new Zi(s);let a=this.applyRedirectCreateUrlTree(s,this.urlSerializer.parse(s),t,r);if(s[0]===`/`)throw new Zi(a);return a}applyRedirectCreateUrlTree(t,n,r,o){return new Ze(this.createSegmentGroup(t,n.root,r,o),this.createQueryParams(n.queryParams,this.urlTree.queryParams),n.fragment)}createQueryParams(t,n){let r={};return Object.entries(t).forEach(([o,i])=>{if(typeof i==`string`&&i[0]===`:`){let a=i.substring(1);r[o]=n[a]}else r[o]=i}),r}createSegmentGroup(t,n,r,o){let i=this.createSegments(t,n.segments,r,o),s=Object.create(null);return Object.entries(n.children).forEach(([a,c])=>{s[a]=this.createSegmentGroup(t,c,r,o)}),new B(i,s)}createSegments(t,n,r,o){return n.map(i=>i.path[0]===`:`?this.findPosParam(t,i,o):this.findOrReturn(i,r))}findPosParam(t,n,r){let o=r[n.path.substring(1)];if(!o)throw new w(4001,!1);return o}findOrReturn(t,n){let r=0;for(let o of n){if(o.path===t.path)return n.splice(r),o;r++}return t}};function nA(e,t,n){if(typeof e==`string`)return Promise.resolve(e);let r=e;return Nc(kr(we(n,()=>r(t))))}function rA(e,t){return e.providers&&!e._injector&&(e._injector=go(e.providers,t,`Route: ${e.path}`)),e._injector??t}function Lt(e){return e.outlet||N}function oA(e,t){let n=e.filter(r=>Lt(r)===t);return n.push(...e.filter(r=>Lt(r)!==t)),n}var Dp={matched:!1,consumedSegments:[],remainingSegments:[],parameters:{},positionalParamSegments:{}};function z0(e){return{routeConfig:e.routeConfig,url:e.url,params:e.params,queryParams:e.queryParams,fragment:e.fragment,data:e.data,outlet:e.outlet,title:e.title,paramMap:e.paramMap,queryParamMap:e.queryParamMap}}function iA(e,t,n,r,o,i,s){let a=W0(e,t,n);if(!a.matched)return x(a);let c=z0(i(a));return r=rA(t,r),XN(r,t,n,o,c,s).pipe(J(l=>l===!0?a:k$1({},Dp)))}function W0(e,t,n){if(t.path===``)return t.pathMatch===`full`&&(e.hasChildren()||n.length>0)?k$1({},Dp):{matched:!0,consumedSegments:[],remainingSegments:n,parameters:{},positionalParamSegments:{}};let o=(t.matcher||m0)(n,e,t);if(!o)return k$1({},Dp);let i={};Object.entries(o.posParams??{}
5).forEach(([a,c])=>{i[a]=c.path});let s=o.consumed.length>0?k$1(k$1({},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 h0(e,t,n,r,o){return n.length>0&&cA(e,n,r,o)?{segmentGroup:new B(t,aA(r,new B(n,e.children))),slicedSegments:[]}:n.length===0&&lA(e,n,r)?{segmentGroup:new B(e.segments,sA(e,n,r,e.children)),slicedSegments:n}:{segmentGroup:new B(e.segments,e.children),slicedSegments:n}}function sA(e,t,n,r){let o={};for(let i of n)if(Gc(e,t,i)&&!r[Lt(i)]){let s=new B([],{});o[Lt(i)]=s}return k$1(k$1({},r),o)}function aA(e,t){let n={};n[N]=t;for(let r of e)if(r.path===``&&Lt(r)!==N){let o=new B([],{});n[Lt(r)]=o}return n}function cA(e,t,n,r){return n.some(o=>!Gc(e,t,o)||!(Lt(o)!==N)?!1:!(r!==void 0&&Lt(o)===r))}function lA(e,t,n){return n.some(r=>Gc(e,t,r))}function Gc(e,t,n){return(e.hasChildren()||t.length>0)&&n.pathMatch===`full`?!1:n.path===``}function dA(e,t,n){return t.length===0&&!e.children[n]}var Tp=class{};async function uA(e,t,n,r,o,i,s,a){return new Cp(e,t,n,r,o,s,i,a).recognize()}var fA=31;var Cp=class{injector;configLoader;rootComponentType;config;urlTree;paramsInheritanceStrategy;urlSerializer;abortSignal;applyRedirects;absoluteRedirectCount=0;allowRedirects=!0;constructor(t,n,r,o,i,s,a,c){this.injector=t,this.configLoader=n,this.rootComponentType=r,this.config=o,this.urlTree=i,this.paramsInheritanceStrategy=s,this.urlSerializer=a,this.abortSignal=c,this.applyRedirects=new Sp(this.urlSerializer,this.urlTree)}noMatchError(t){return new w(4002,`'${t.segmentGroup}'`)}async recognize(){let t=h0(this.urlTree.root,[],[],this.config).segmentGroup,{children:n,rootSnapshot:r}=await this.match(t),i=new Wi(``,new ct(r,n)),s=_0(r,[],this.urlTree.queryParams,this.urlTree.fragment);return s.queryParams=this.urlTree.queryParams,i.url=this.urlSerializer.serialize(s),{state:i,tree:s}}async match(t){let n=new _o([],Object.freeze({}),Object.freeze(k$1({},this.urlTree.queryParams)),this.urlTree.fragment,Object.freeze({}),N,this.rootComponentType,null,{},this.injector);try{return{children:await this.processSegmentGroup(this.injector,this.config,t,N,n),rootSnapshot:n}}catch(r){if(r instanceof Zi)return this.urlTree=r.urlTree,this.match(r.urlTree.root);throw r instanceof gn?this.noMatchError(r):r}}async processSegmentGroup(t,n,r,o,i){if(r.segments.length===0&&r.hasChildren())return this.processChildren(t,n,r,i);let s=await this.processSegment(t,n,r,r.segments,o,!0,i);return s instanceof ct?[s]:[]}async processChildren(t,n,r,o){let i=[];for(let c of Object.keys(r.children))c===`primary`?i.unshift(c):i.push(c);let s=[];for(let c of i){let l=r.children[c],d=oA(n,c),u=await this.processSegmentGroup(t,d,l,c,o);s.push(...u)}let a=q0(s);return pA(a),a}async processSegment(t,n,r,o,i,s,a){for(let c of n)try{return await this.processSegmentAgainstRoute(c._injector??t,n,c,r,o,i,s,a)}catch(l){if(l instanceof gn||H0(l))continue;throw l}if(dA(r,o,i))return new Tp;throw new gn(r)}async processSegmentAgainstRoute(t,n,r,o,i,s,a,c){if(Lt(r)!==s&&(s===N||!Gc(o,i,r)))throw new gn(o);if(r.redirectTo===void 0)return this.matchSegmentAgainstRoute(t,o,r,i,s,c);if(this.allowRedirects&&a)return this.expandSegmentAgainstRouteUsingRedirect(t,o,n,r,i,s,c);throw new gn(o)}async expandSegmentAgainstRouteUsingRedirect(t,n,r,o,i,s,a){let{matched:c,parameters:l,consumedSegments:d,positionalParamSegments:u,remainingSegments:f}=W0(n,o,i);if(!c)throw new gn(n);typeof o.redirectTo==`string`&&o.redirectTo[0]===`/`&&(this.absoluteRedirectCount++,this.absoluteRedirectCount>fA&&(this.allowRedirects=!1));let h=this.createSnapshot(t,o,i,l,a);if(this.abortSignal.aborted)throw new Error(this.abortSignal.reason);let y=await this.applyRedirects.applyRedirectCommands(d,o.redirectTo,u,z0(h),t),S=await this.applyRedirects.lineralizeSegments(o,y);return this.processSegment(t,r,n,S.concat(f),s,!1,a)}createSnapshot(t,n,r,o,i){let s=new _o(r,o,Object.freeze(k$1({},this.urlTree.queryParams)),this.urlTree.fragment,gA(n),Lt(n),n.component??n._loadedComponent??null,n,mA(n),t),a=Ap(s,i,this.paramsInheritanceStrategy);return s.params=Object.freeze(a.params),s.data=Object.freeze(a.data),s}
5async matchSegmentAgainstRoute(t,n,r,o,i,s){if(this.abortSignal.aborted)throw new Error(this.abortSignal.reason);let a=Ce=>this.createSnapshot(t,r,Ce.consumedSegments,Ce.parameters,s),c=await Nc(iA(n,r,o,t,this.urlSerializer,a,this.abortSignal));if(r.path===`**`&&(n.children={}),!c?.matched)throw new gn(n);t=r._injector??t;let{routes:l}=await this.getChildConfig(t,r,o),d=r._loadedInjector??t,{parameters:u,consumedSegments:f,remainingSegments:h}=c,y=this.createSnapshot(t,r,f,u,s),{segmentGroup:S,slicedSegments:C}=h0(n,f,h,l,i);if(C.length===0&&S.hasChildren())return new ct(y,await this.processChildren(d,l,S,y));if(l.length===0&&C.length===0)return new ct(y,[]);let j=Lt(r)===i,K=await this.processSegment(d,l,S,C,j?N:i,!0,y);return new ct(y,K instanceof ct?[K]:[])}async getChildConfig(t,n,r){if(n.children)return{routes:n.children,injector:t};if(n.loadChildren){if(n._loadedRoutes!==void 0){let i=n._loadedNgModuleFactory;return i&&!n._loadedInjector&&(n._loadedInjector=i.create(t).injector),{routes:n._loadedRoutes,injector:n._loadedInjector}}if(this.abortSignal.aborted)throw new Error(this.abortSignal.reason);if(await Nc(JN(t,n,r,this.urlSerializer,this.abortSignal))){let i=await this.configLoader.loadChildren(t,n);return n._loadedRoutes=i.routes,n._loadedInjector=i.injector,n._loadedNgModuleFactory=i.factory,i}throw tA(n)}return{routes:[],injector:t}}};function pA(e){e.sort((t,n)=>t.value.outlet===N?-1:n.value.outlet===N?1:t.value.outlet.localeCompare(n.value.outlet))}function hA(e){let t=e.value.routeConfig;return t&&t.path===``}function q0(e){let t=[],n=new Set;for(let r of e){if(!hA(r)){t.push(r);continue}let o=t.find(i=>r.value.routeConfig===i.value.routeConfig);o!==void 0?(o.children.push(...r.children),n.add(o)):t.push(r)}for(let r of n){let o=q0(r.children);t.push(new ct(r.value,o))}return t.filter(r=>!n.has(r))}function gA(e){return e.data||{}}function mA(e){return e.resolve||{}}function vA(e,t,n,r,o,i,s){return Pe(async a=>{let{state:c,tree:l$1}=await uA(e,t,n,r,a.extractedUrl,o,i,s);return l(k$1({},a),{targetSnapshot:c,urlAfterRedirects:l$1})})}function yA(e){return Pe(t=>{let{targetSnapshot:n,guards:{canActivateChecks:r}}=t;if(!r.length)return x(t);let o=new Set(r.map(a=>a.route)),i=new Set;for(let a of o)if(!i.has(a))for(let c of Z0(a))i.add(c);let s=0;return de(i).pipe(Ho(a=>o.has(a)?bA(a,n,e):(a.data=Ap(a,a.parent,e).resolve,x(void 0))),ht(()=>s++),_s(1),Pe(a=>s===i.size?x(t):Re))})}function Z0(e){return[e,...e.children.map(n=>Z0(n)).flat()]}function bA(e,t,n){let r=e.routeConfig,o=e._resolve;return r?.title!==void 0&&!P0(r)&&(o[Gi]=r.title),Uo(()=>(e.data=Ap(e,e.parent,n).resolve,EA(o,e,t).pipe(J(i=>(e._resolvedData=i,e.data=k$1(k$1({},e.data),i),null)))))}function EA(e,t,n){let r=pp(e);if(r.length===0)return x({});let o={};return de(r).pipe(Pe(i=>wA(e[i],t,n).pipe(nn(),ht(s=>{if(s instanceof Bn)throw zc(new Hn,s);o[i]=s}))),_s(1),J(()=>o),Zr(i=>H0(i)?Re:Rl(i)))}function wA(e,t,n){let r=t._environmentInjector,o=Ao(e,r);return kr(o.resolve?o.resolve(t,n):we(r,()=>o(t,n)))}var G0=new I(``);function _p(e){return pt(t=>{let n=e(t);return n?de(n).pipe(J(()=>t)):x(t)})}var kp=(()=>{class e{buildTitle(n){let r,o=n.root;for(;o!==void 0;)r=this.getResolvedTitleForRoute(o)??r,o=o.children.find(i=>i.outlet===N);return r}getResolvedTitleForRoute(n){return n.data[Gi]}static ɵfac=function(r){return new(r||e)};static ɵprov=ce({token:e,factory:()=>p(Y0)})}return e})();var Y0=(()=>{class e extends kp{title;constructor(n){super(),this.title=n}updateTitle(n){let r=this.buildTitle(n);r!==void 0&&this.title.setTitle(r)}static ɵfac=function(r){return new(r||e)(R(Sc))};static ɵprov=O({token:e,factory:e.ɵfac,providedIn:`root`})}return e})();var Ro=new I(``,{factory:()=>({})});var Qi=new I(``);var K0=(()=>{class e{componentLoaders=new WeakMap;childrenLoaders=new WeakMap;onLoadStartListener;onLoadEndListener;compiler=p(Rf);async loadComponent(n,r){if(this.componentLoaders.get(r))return this.componentLoaders.get(r);if(r._loadedComponent)return Promise.resolve(r._loadedComponent);this.onLoadStartListener&&this.onLoadStartListener(r);let o=(async()=>{try{let s=await J0(zf(await y0(we(n,()=>r.loadComponent()))));return this.onLoadEndListener&&this.onLoadEndListener(r),r._loadedComponent=s,s}finally{this.componentLoaders.delete(r)}})();return this.componentLoaders.set(r,o),o}loadChildren(n,r){if(this.childrenLoaders.get(r))return this.childrenLoaders.get(r);if(r._loadedRoutes)return Promise.resolve({routes:r._loadedRoutes,injector:r._loadedInjector});this.onLoadStartListener&&this.onLoadStartListener(r);let o=(async()=>{try{let i=await Q0(r,this.compiler,n,this.onLoadEndListener);return r._loadedRoutes=i.routes,r._loadedInjector=i.injector,r._loadedNgModuleFactory=i.factory,i}finally{this.childrenLoaders.delete(r)}})();return this.childrenLoaders.set(r,o),o}static ɵfac=function(r){return new(r||e)};static ɵprov=ce({token:e,factory:e.ɵfac})}return e})();async function Q0(e,t,n,r){let i=await J0(zf(await y0(we(n,()=>e.loadChildren())))),s;i instanceof nc||Array.isArray(i)?s=i:s=await t.compileModuleAsync(i),r&&r(e);let a,c,d;return Array.isArray(s)?c=s:(a=s.create(n).injector,d=s,c=a.get(Qi,[],{optional:!0,self:!0}).flat()),{routes:c.map(Op),injector:a,factory:d}}async function J0(e){return e}var Yc=(()=>{class e{static ɵfac=function(r){return new(r||e)};static ɵprov=ce({token:e,factory:()=>p(IA)})}return e})();var IA=(()=>{class e{shouldProcessUrl(n){return!0}extract(n){return n}merge(n,r){return n}static ɵfac=function(r){return new(r||e)};static ɵprov=ce({token:e,factory:e.ɵfac})}return e})();var X0=new I(``);var SA=()=>{};var eE=new I(``);var Pp=(()=>{class e{currentNavigation=ne(null,{equal:()=>!1});currentTransition=null;lastSuccessfulNavigation=ne(null);events=new le;
5transitionAbortWithErrorSubject=new le;configLoader=p(K0);environmentInjector=p(ae);destroyRef=p(fe);urlSerializer=p(Pr);rootContexts=p(No);location=p(Ar);inputBindingEnabled=p(Zc,{optional:!0})!==null;titleStrategy=p(kp);options=p(Ro,{optional:!0})||{};paramsInheritanceStrategy=this.options.paramsInheritanceStrategy||MN;urlHandlingStrategy=p(Yc);createViewTransition=p(X0,{optional:!0});navigationErrorHandler=p(eE,{optional:!0});routerResourcesFeature=p(G0,{optional:!0});navigationId=0;get hasRequestedNavigation(){return this.navigationId!==0}transitions;afterPreactivation=()=>x(void 0);rootComponentType=null;destroyed=!1;constructor(){let n=o=>this.events.next(new Lc(o)),r=o=>this.events.next(new jc(o));this.configLoader.onLoadEndListener=r,this.configLoader.onLoadStartListener=n,this.destroyRef.onDestroy(()=>{this.destroyed=!0})}complete(){this.transitions?.complete()}handleNavigationRequest(n){let r=++this.navigationId;re(()=>{this.transitions?.next(l(k$1({},n),{extractedUrl:this.urlHandlingStrategy.extract(n.rawUrl),targetSnapshot:null,targetRouterState:null,guards:{canActivateChecks:[],canDeactivateChecks:[]},guardsResult:null,id:r,routesRecognizeHandler:{},beforeActivateHandler:{}}))})}setupNavigations(n){return this.transitions=new Ae(null),this.transitions.pipe(et(r=>r!==null),pt(r=>{let o=!0,i=!1,s=new AbortController,a=()=>!i&&this.currentTransition?.id===r.id;return x(r).pipe(pt(c=>{if(this.navigationId>r.id)return this.cancelNavigationTransition(r,``,Fe.SupersededByNewNavigation),Re;this.currentTransition=r;let l$2=this.lastSuccessfulNavigation();this.currentNavigation.set({id:c.id,initialUrl:c.rawUrl,extractedUrl:c.extractedUrl,targetBrowserUrl:typeof c.extras.browserUrl==`string`?this.urlSerializer.parse(c.extras.browserUrl):c.extras.browserUrl,trigger:c.source,extras:c.extras,previousNavigation:l$2?l(k$1({},l$2),{previousNavigation:null}):null,abort:()=>s.abort(),routesRecognizeHandler:c.routesRecognizeHandler,beforeActivateHandler:c.beforeActivateHandler});let d=!n.navigated||this.isUpdatingInternalState()||this.isUpdatedBrowserUrl(),u=c.extras.onSameUrlNavigation??n.onSameUrlNavigation;if(!d&&u!==`reload`)return this.events.next(new Xt(c.id,this.urlSerializer.serialize(c.rawUrl),``,So.IgnoredSameUrlNavigation)),c.resolve(!1),Re;if(this.urlHandlingStrategy.shouldProcessUrl(c.rawUrl))return x(c).pipe(pt(f=>(this.events.next(new $n(f.id,this.urlSerializer.serialize(f.extractedUrl),f.source,f.restoredState)),f.id!==this.navigationId?Re:Promise.resolve(f))),vA(this.environmentInjector,this.configLoader,this.rootComponentType,n.config,this.urlSerializer,this.paramsInheritanceStrategy,s.signal),ht(f=>{r.targetSnapshot=f.targetSnapshot,r.urlAfterRedirects=f.urlAfterRedirects,this.currentNavigation.update(h=>(h.finalUrl=f.urlAfterRedirects,h)),this.events.next(new Bi)}),pt(f=>de(r.routesRecognizeHandler.deferredHandle??x(void 0)).pipe(J(()=>f))),ht(()=>{let f=new $i(c.id,this.urlSerializer.serialize(c.extractedUrl),this.urlSerializer.serialize(c.urlAfterRedirects),c.targetSnapshot);this.events.next(f)}));if(d&&this.urlHandlingStrategy.shouldProcessUrl(c.currentRawUrl)){let{id:f,extractedUrl:h,source:y,restoredState:S,extras:C}=c,j=new $n(f,this.urlSerializer.serialize(h),y,S);this.events.next(j);let K=O0(this.rootComponentType,this.environmentInjector).snapshot;return this.currentTransition=r=l(k$1({},c),{targetSnapshot:K,urlAfterRedirects:h,extras:l(k$1({},C),{skipLocationChange:!1,replaceUrl:!1})}),this.currentNavigation.update(Ce=>(Ce.finalUrl=h,Ce)),x(r)}else return this.events.next(new Xt(c.id,this.urlSerializer.serialize(c.extractedUrl),``,So.IgnoredByUrlHandlingStrategy)),c.resolve(!1),Re}),J(c=>{let l$3=new xc(c.id,this.urlSerializer.serialize(c.extractedUrl),this.urlSerializer.serialize(c.urlAfterRedirects),c.targetSnapshot);return this.events.next(l$3),this.currentTransition=r=l(k$1({},c),{guards:ON(c.targetSnapshot,c.currentSnapshot,this.rootContexts)}),r}),zN(c=>this.events.next(c)),pt(c=>{if(r.guardsResult=c.guardsResult,c.guardsResult&&typeof c.guardsResult!=`boolean`)throw zc(this.urlSerializer,c.guardsResult);let l=new Oc(c.id,this.urlSerializer.serialize(c.extractedUrl),this.urlSerializer.serialize(c.urlAfterRedirects),c.targetSnapshot,!!c.guardsResult);if(this.events.next(l),!a())return Re;if(!c.guardsResult)return this.cancelNavigationTransition(c,``,Fe.GuardRejected),Re;if(c.guards.canActivateChecks.length===0)return x(c);let d=new kc(c.id,this.urlSerializer.serialize(c.extractedUrl),this.urlSerializer.serialize(c.urlAfterRedirects),c.targetSnapshot);if(this.events.next(d),!a())return Re;let u=!1;return x(c).pipe(yA(this.paramsInheritanceStrategy),ht({next:()=>{u=!0;let f=new Pc(c.id,this.urlSerializer.serialize(c.extractedUrl),this.urlSerializer.serialize(c.urlAfterRedirects),c.targetSnapshot);this.events.next(f)},complete:()=>
5{u||this.cancelNavigationTransition(c,``,Fe.NoDataFromResolver)}}))}),_p(c=>{let l=u=>{let f=[];if(u.routeConfig?._loadedComponent)u.component=u.routeConfig?._loadedComponent;else if(u.routeConfig?.loadComponent){let h=u._environmentInjector;f.push(this.configLoader.loadComponent(h,u.routeConfig).then(y=>{u.component=y}))}for(let h of u.children)f.push(...l(h));return f},d=l(c.targetSnapshot.root);return d.length===0?x(c):de(Promise.all(d).then(()=>c))}),pt(c=>{let{newlyCreatedRoutes:l$4,state:d}=NN(n.routeReuseStrategy,c.targetSnapshot,c.currentRouterState);return this.currentTransition=r=c=l(k$1({},c),{targetRouterState:d,newlyCreatedRoutes:l$4}),this.currentNavigation.update(u=>(u.targetRouterState=d,u)),x(c)}),this.routerResourcesFeature?.setupAndRunResources(s.signal)??(c=>c),_p(()=>this.afterPreactivation()),pt(()=>{let{currentSnapshot:c,targetSnapshot:l}=r,d=this.createViewTransition?.(this.environmentInjector,c.root,l.root);return d?de(d).pipe(J(()=>r)):x(r)}),tn(1),pt(c=>{o=!1,this.events.next(new To);let l=r.beforeActivateHandler.deferredHandle;return l?de(l.then(()=>c)):x(c)}),ht(c=>{new Ip(n.routeReuseStrategy,r.targetRouterState,r.currentRouterState,l=>this.events.next(l),this.inputBindingEnabled).activate(this.rootContexts),c.newlyCreatedRoutes?.clear(),a()&&(tE(c.targetRouterState),i=!0,this.currentNavigation.update(l=>(l.abort=SA,l)),this.lastSuccessfulNavigation.set(re(this.currentNavigation)),this.events.next(new Xe(c.id,this.urlSerializer.serialize(c.extractedUrl),this.urlSerializer.serialize(c.urlAfterRedirects))),this.titleStrategy?.updateTitle(c.targetRouterState.snapshot),c.resolve(!0))}),or(V0(s.signal).pipe(et(()=>!i&&o),ht(()=>{this.cancelNavigationTransition(r,s.signal.reason+``,Fe.Aborted)}))),ht({complete:()=>{i=!0}}),or(this.transitionAbortWithErrorSubject.pipe(ht(c=>{throw c}))),Ol(()=>{s.abort(),i||this.cancelNavigationTransition(r,``,Fe.SupersededByNewNavigation),this.currentTransition?.id===r.id&&(this.currentNavigation.set(null),this.currentTransition=null)}),Zr(c=>{if(i=!0,g0(r),this.destroyed)return r.resolve(!1),Re;if(U0(c))this.events.next(new Et(r.id,this.urlSerializer.serialize(r.extractedUrl),c.message,c.cancellationCode)),xN(c)?this.events.next(new Co(c.url,c.navigationBehaviorOptions)):r.resolve(!1);else{let l=new Or(r.id,this.urlSerializer.serialize(r.extractedUrl),c,r.targetSnapshot??void 0);try{let d=we(this.environmentInjector,()=>this.navigationErrorHandler?.(l));if(d instanceof Bn){let{message:u,cancellationCode:f}=zc(this.urlSerializer,d);this.events.next(new Et(r.id,this.urlSerializer.serialize(r.extractedUrl),u,f)),this.events.next(new Co(d.redirectTo,d.navigationBehaviorOptions))}else throw this.events.next(l),c}catch(d){this.options.resolveNavigationPromiseOnError?r.resolve(!1):r.reject(d)}}return Re}))}))}cancelNavigationTransition(n,r,o){g0(n);let i=new Et(n.id,this.urlSerializer.serialize(n.extractedUrl),r,o);this.events.next(i),n.resolve(!1)}isUpdatingInternalState(){return this.currentTransition?.extractedUrl.toString()!==this.currentTransition?.currentUrlTree.toString()}isUpdatedBrowserUrl(){let n=this.urlHandlingStrategy.extract(this.urlSerializer.parse(this.location.path(!0))),r=re(this.currentNavigation),o=r?.targetBrowserUrl??r?.extractedUrl;return n.toString()!==o?.toString()&&!r?.extras.skipLocationChange}static ɵfac=function(r){return new(r||e)};static ɵprov=ce({token:e,factory:e.ɵfac})}return e})();function DA(e){return e!==Eo}function g0(e){for(let t of e.newlyCreatedRoutes??[])t._localInjector?.destroy(),t._localInjector=void 0;tE(e.targetRouterState)}function tE(e){if(!e)return;let t=n=>{n.value.pending?.set(!1),n.children.forEach(t)};t(e._root)}var nE=new I(``);var rE=(()=>{class e{static ɵfac=function(r){return new(r||e)};static ɵprov=ce({token:e,factory:()=>p(TA)})}return e})();var qc=class{shouldDetach(t){return!1}store(t,n){}shouldAttach(t){return!1}retrieve(t){return null}shouldReuseRoute(t,n){return t.routeConfig===n.routeConfig}shouldDestroyInjector(t){return!0}};var TA=(()=>{class e extends qc{static ɵfac=function(r){return new(r||e)};static ɵprov=ce({token:e,factory:e.ɵfac})}return e})();var Kc=(()=>
5{class e{urlSerializer=p(Pr);options=p(Ro,{optional:!0})||{};canceledNavigationResolution=this.options.canceledNavigationResolution||`replace`;location=p(Ar);urlHandlingStrategy=p(Yc);urlUpdateStrategy=this.options.urlUpdateStrategy||`deferred`;currentUrlTree=new Ze;getCurrentUrlTree(){return this.currentUrlTree}rawUrlTree=this.currentUrlTree;getRawUrlTree(){return this.rawUrlTree}createBrowserPath({finalUrl:n,initialUrl:r,targetBrowserUrl:o}){let i=n!==void 0?this.urlHandlingStrategy.merge(n,r):r,s=o??i;return s instanceof Ze?this.urlSerializer.serialize(s):s}routerUrlState(n){return n?.targetBrowserUrl===void 0||n?.finalUrl===void 0?{}:{ɵrouterUrl:this.urlSerializer.serialize(n.finalUrl)}}commitTransition({targetRouterState:n,finalUrl:r,initialUrl:o}){r&&n?(this.currentUrlTree=r,this.rawUrlTree=this.urlHandlingStrategy.merge(r,o),this.routerState=n):this.rawUrlTree=o}routerState=O0(null,p(ae));getRouterState(){return this.routerState}_stateMemento=this.createStateMemento();get stateMemento(){return this._stateMemento}updateStateMemento(){this._stateMemento=this.createStateMemento()}createStateMemento(){return{rawUrlTree:this.rawUrlTree,currentUrlTree:this.currentUrlTree,routerState:this.routerState}}restoredState(){return this.location.getState()}static ɵfac=function(r){return new(r||e)};static ɵprov=ce({token:e,factory:()=>p(CA)})}return e})();var CA=(()=>{class e extends Kc{currentPageId=0;lastSuccessfulId=-1;get browserPageId(){return this.canceledNavigationResolution!==`computed`?this.currentPageId:this.restoredState()?.ɵrouterPageId??this.currentPageId}registerNonRouterCurrentEntryChangeListener(n){return this.location.subscribe(r=>{r.type===`popstate`&&setTimeout(()=>{n(r.url,r.state,`popstate`,{replaceUrl:!0})})})}handleRouterEvent(n,r){n instanceof $n?this.updateStateMemento():n instanceof Xt?this.commitTransition(r):n instanceof $i?this.urlUpdateStrategy===`eager`&&(r.extras.skipLocationChange||this.setBrowserUrl(this.createBrowserPath(r),r)):n instanceof To?(this.commitTransition(r),this.urlUpdateStrategy===`deferred`&&!r.extras.skipLocationChange&&this.setBrowserUrl(this.createBrowserPath(r),r)):n instanceof Et&&!x0(n)?this.restoreHistory(r):n instanceof Or?this.restoreHistory(r,!0):n instanceof Xe&&(this.lastSuccessfulId=n.id,this.currentPageId=this.browserPageId)}setBrowserUrl(n,r){let{extras:o,id:i}=r,{replaceUrl:s,state:a}=o;if(this.location.isCurrentPathEqualTo(n)||s){let c=this.browserPageId,l=k$1(k$1({},a),this.generateNgRouterState(i,c,r));this.location.replaceState(n,``,l)}else{let c=k$1(k$1({},a),this.generateNgRouterState(i,this.browserPageId+1,r));this.location.go(n,``,c)}}restoreHistory(n,r=!1){if(this.canceledNavigationResolution===`computed`){let o=this.browserPageId,i=this.currentPageId-o;i!==0?this.location.historyGo(i):this.getCurrentUrlTree()===n.finalUrl&&i===0&&(this.resetInternalState(n),this.resetUrlToCurrentUrlTree())}else this.canceledNavigationResolution===`replace`&&(r&&this.resetInternalState(n),this.resetUrlToCurrentUrlTree())}resetInternalState({finalUrl:n}){this.routerState=this.stateMemento.routerState,this.currentUrlTree=this.stateMemento.currentUrlTree,this.rawUrlTree=this.urlHandlingStrategy.merge(this.currentUrlTree,n??this.rawUrlTree)}resetUrlToCurrentUrlTree(){this.location.replaceState(this.urlSerializer.serialize(this.getRawUrlTree()),``,this.generateNgRouterState(this.lastSuccessfulId,this.currentPageId))}generateNgRouterState(n,r,o){return this.canceledNavigationResolution===`computed`?k$1({navigationId:n,ɵrouterPageId:r},this.routerUrlState(o)):k$1({navigationId:n},this.routerUrlState(o))}static ɵfac=function(r){return new(r||e)};static ɵprov=ce({token:e,factory:e.ɵfac})}return e})();function Lp(e,t){e.events.pipe(et(n=>n instanceof Xe||n instanceof Et||n instanceof Or||n instanceof Xt),J(n=>n instanceof Xe||n instanceof Xt?0:(n instanceof Et?n.code===Fe.Redirect||n.code===Fe.SupersededByNewNavigation:!1)?2:1),et(n=>n!==2),tn(1)).subscribe(()=>{t()})}var ut=(()=>{class e{get currentUrlTree(){return this.stateManager.getCurrentUrlTree()}get rawUrlTree(){return this.stateManager.getRawUrlTree()}disposed=!1;nonRouterCurrentEntryChangeSubscription;console=p(rc);stateManager=p(Kc);options=p(Ro,{optional:!0})||{};pendingTasks=p(qt);urlUpdateStrategy=this.options.urlUpdateStrategy||`deferred`;navigationTransitions=p(Pp);
5urlSerializer=p(Pr);location=p(Ar);urlHandlingStrategy=p(Yc);injector=p(ae);_events=new le;get events(){return this._events}get routerState(){return this.stateManager.getRouterState()}navigated=!1;routeReuseStrategy=p(rE);injectorCleanup=p(nE,{optional:!0});onSameUrlNavigation=this.options.onSameUrlNavigation||`ignore`;config=p(Qi,{optional:!0})?.flat()??[];componentInputBindingEnabled=!!p(Zc,{optional:!0});currentNavigation=this.navigationTransitions.currentNavigation.asReadonly();constructor(){this.resetConfig(this.config),this.navigationTransitions.setupNavigations(this).subscribe({error:n=>{}}),this.subscribeToNavigationEvents()}eventsSubscription=new Ne;subscribeToNavigationEvents(){let n=this.navigationTransitions.events.subscribe(r=>{try{let o=this.navigationTransitions.currentTransition,i=re(this.navigationTransitions.currentNavigation);if(o!==null&&i!==null){if(this.stateManager.handleRouterEvent(r,i),r instanceof Et&&r.code!==Fe.Redirect&&r.code!==Fe.SupersededByNewNavigation)this.navigated=!0;else if(r instanceof Xe)this.navigated=!0,this.injectorCleanup?.(this.routeReuseStrategy,this.routerState,this.config);else if(r instanceof Co){let s=r.navigationBehaviorOptions,a=this.urlHandlingStrategy.merge(r.url,o.currentRawUrl),c=k$1({scroll:o.extras.scroll,browserUrl:o.extras.browserUrl,info:o.extras.info,skipLocationChange:o.extras.skipLocationChange,replaceUrl:o.extras.replaceUrl||this.urlUpdateStrategy===`eager`||DA(o.source)},s);this.scheduleNavigation(a,Eo,null,c,{resolve:o.resolve,reject:o.reject,promise:o.promise})}}CN(r)&&this._events.next(r)}catch(o){this.navigationTransitions.transitionAbortWithErrorSubject.next(o)}});this.eventsSubscription.add(n)}resetRootComponentType(n){this.routerState.root.component=n,this.navigationTransitions.rootComponentType=n}initialNavigation(){this.setUpLocationChangeListener(),this.navigationTransitions.hasRequestedNavigation||this.navigateToSyncWithBrowser(this.location.path(!0),Eo,this.stateManager.restoredState(),{replaceUrl:!0})}setUpLocationChangeListener(){this.nonRouterCurrentEntryChangeSubscription??=this.stateManager.registerNonRouterCurrentEntryChangeListener((n,r,o,i)=>{this.navigateToSyncWithBrowser(n,o,r,i)})}navigateToSyncWithBrowser(n,r,o,i){let s=o?.navigationId?o:null,a=o?.ɵrouterUrl??n;if(o?.ɵrouterUrl&&(i=l(k$1({},i),{browserUrl:n})),o){let l=k$1({},o);delete l.navigationId,delete l.ɵrouterPageId,delete l.ɵrouterUrl,Object.keys(l).length!==0&&(i.state=l)}let c=this.parseUrl(a);this.scheduleNavigation(c,r,s,i).catch(l=>{this.disposed||this.injector.get(yt)(l)})}get url(){return this.serializeUrl(this.currentUrlTree)}getCurrentNavigation(){return re(this.navigationTransitions.currentNavigation)}get lastSuccessfulNavigation(){return this.navigationTransitions.lastSuccessfulNavigation}resetConfig(n){this.config=n.map(Op),this.navigated=!1}ngOnDestroy(){this.dispose()}dispose(){this._events.unsubscribe(),this.navigationTransitions.complete(),this.nonRouterCurrentEntryChangeSubscription?.unsubscribe(),this.nonRouterCurrentEntryChangeSubscription=void 0,this.disposed=!0,this.eventsSubscription.unsubscribe()}createUrlTree(n,r={}){let{relativeTo:o,queryParams:i,fragment:s,queryParamsHandling:a,preserveFragment:c}=r,l=c?this.currentUrlTree.fragment:s,d=null;switch(a??this.options.defaultQueryParamsHandling){case`merge`:d=k$1(k$1({},this.currentUrlTree.queryParams),i);break;case`preserve`:d=this.currentUrlTree.queryParams;break;default:d=i||null}d!==null&&(d=this.removeEmptyProps(d));let u;try{u=M0(o?o.snapshot:this.routerState.snapshot.root)}catch{(typeof n[0]!=`string`||n[0][0]!==`/`)&&(n=[]),u=this.currentUrlTree.root}return N0(u,n,d,l??null,this.urlSerializer)}navigateByUrl(n,r={skipLocationChange:!1}){let o=Vn(n)?n:this.parseUrl(n),i=this.urlHandlingStrategy.merge(o,this.rawUrlTree);return this.scheduleNavigation(i,Eo,null,r)}navigate(n,r={skipLocationChange:!1}){return _A(n),this.navigateByUrl(this.createUrlTree(n,r),r)}serializeUrl(n){return this.urlSerializer.serialize(n)}parseUrl(n){try{return this.urlSerializer.parse(n)}catch{return this.console.warn(Tt(4018,!1)),this.urlSerializer.parse(`/`)}}isActive(n,r){let o;if(r===!0?o=k$1({},Mp):r===!1?o=k$1({},Io):o=k$1(k$1({},Io),r),Vn(n))return hp(this.currentUrlTree,n,o);let i=this.parseUrl(n);return hp(this.currentUrlTree,i,o)}removeEmptyProps(n){return Object.entries(n).reduce((r,[o,i])=>(i!=null&&(r[o]=i),r),{})}scheduleNavigation(n,r,o,i,s){if(this.disposed)return Promise.resolve(!1);let a,c,l;s?(a=s.resolve,c=s.reject,l=s.promise):l=new Promise((u,f)=>{a=u,c=f});let d=this.pendingTasks.add();return Lp(this,()=>{queueMicrotask(()=>this.pendingTasks.remove(d))}),this.navigationTransitions.handleNavigationRequest({source:r,restoredState:o,currentUrlTree:this.currentUrlTree,currentRawUrl:this.currentUrlTree,rawUrl:n,extras:i,resolve:a,reject:c,promise:l,currentSnapshot:this.routerState.snapshot,currentRouterState:this.routerState}
5),l.catch(Promise.reject.bind(Promise))}static ɵfac=function(r){return new(r||e)};static ɵprov=ce({token:e,factory:e.ɵfac})}return e})();function _A(e){for(let t=0;t<e.length;t++)if(e[t]==null)throw new w(4008,!1)}var MA=(()=>{class e{router=p(ut);stateManager=p(Kc);fragment=ne(``);queryParams=ne({});path=ne(``);serializer=p(Pr);constructor(){this.updateState(),this.router.events?.subscribe(n=>{n instanceof Xe&&this.updateState()})}updateState(){let{fragment:n,root:r,queryParams:o}=this.stateManager.getCurrentUrlTree();this.fragment.set(n),this.queryParams.set(o),this.path.set(this.serializer.serialize(new Ze(r)))}static ɵfac=function(r){return new(r||e)};static ɵprov=ce({token:e,factory:e.ɵfac})}return e})();var Te=(()=>{class e{router;route;tabIndexAttribute;renderer;el;locationStrategy;hrefAttributeValue=p(new hc(`href`),{optional:!0});reactiveHref=sc(()=>this.isAnchorElement?this.computeHref(this._urlTree()):this.hrefAttributeValue);get href(){return re(this.reactiveHref)}set href(n){this.reactiveHref.set(n)}set target(n){this._target.set(n)}get target(){return re(this._target)}_target=ne(void 0);set queryParams(n){this._queryParams.set(n)}get queryParams(){return re(this._queryParams)}_queryParams=ne(void 0,{equal:()=>!1});set fragment(n){this._fragment.set(n)}get fragment(){return re(this._fragment)}_fragment=ne(void 0);set queryParamsHandling(n){this._queryParamsHandling.set(n)}get queryParamsHandling(){return re(this._queryParamsHandling)}_queryParamsHandling=ne(void 0);set state(n){this._state.set(n)}get state(){return re(this._state)}_state=ne(void 0,{equal:()=>!1});set info(n){this._info.set(n)}get info(){return re(this._info)}_info=ne(void 0,{equal:()=>!1});set relativeTo(n){this._relativeTo.set(n)}get relativeTo(){return re(this._relativeTo)}_relativeTo=ne(void 0);set preserveFragment(n){this._preserveFragment.set(n)}get preserveFragment(){return re(this._preserveFragment)}_preserveFragment=ne(!1);set skipLocationChange(n){this._skipLocationChange.set(n)}get skipLocationChange(){return re(this._skipLocationChange)}_skipLocationChange=ne(!1);set replaceUrl(n){this._replaceUrl.set(n)}get replaceUrl(){return re(this._replaceUrl)}_replaceUrl=ne(!1);browserUrl=qe(void 0);isAnchorElement;onChanges=new le;applicationErrorHandler=p(yt);options=p(Ro,{optional:!0});reactiveRouterState=p(MA);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;let c=s.nativeElement.tagName?.toLowerCase();this.isAnchorElement=c===`a`||c===`area`||!!(typeof customElements==`object`&&customElements.get(c)?.observedAttributes?.includes?.(`href`))}setTabIndexIfNotOnNativeEl(n){this.tabIndexAttribute!=null||this.isAnchorElement||this.applyAttributeValue(`tabindex`,n)}ngOnChanges(n){this.onChanges.next(this)}routerLinkInput=ne(null);set routerLink(n){n==null?(this.routerLinkInput.set(null),this.setTabIndexIfNotOnNativeEl(null)):(Vn(n)?this.routerLinkInput.set(n):this.routerLinkInput.set(Array.isArray(n)?n:[n]),this.setTabIndexIfNotOnNativeEl(`0`))}onClick(n,r,o,i,s){let a=this._urlTree();if(a===null||this.isAnchorElement&&(n!==0||r||o||i||s||typeof this.target==`string`&&this.target!=`_self`))return!0;let c=this.browserUrl(),l=k$1({skipLocationChange:this.skipLocationChange,replaceUrl:this.replaceUrl,state:this.state,info:this.info},c!==void 0&&{browserUrl:c});return this.router.navigateByUrl(a,l)?.catch(d=>{this.applicationErrorHandler(d)}),!this.isAnchorElement}ngOnDestroy(){}applyAttributeValue(n,r){let o=this.renderer,i=this.el.nativeElement;r!==null?o.setAttribute(i,n,r):o.removeAttribute(i,n)}_urlTree=Pt(()=>{this.reactiveRouterState.path(),this._preserveFragment()&&this.reactiveRouterState.fragment();let n=o=>o===`preserve`||o===`merge`;(n(this._queryParamsHandling())||n(this.options?.defaultQueryParamsHandling))&&this.reactiveRouterState.queryParams();let r=this.routerLinkInput();return r===null||!this.router.createUrlTree?null:Vn(r)?r:this.router.createUrlTree(r,{relativeTo:this._relativeTo()!==void 0?this._relativeTo():this.route,queryParams:this._queryParams(),fragment:this._fragment(),queryParamsHandling:this._queryParamsHandling(),preserveFragment:this._preserveFragment()})},{equal:(n,r)=>this.computeHref(n)===this.computeHref(r)});get urlTree(){return re(this._urlTree)}computeHref(n){return n!==null&&this.locationStrategy?this.locationStrategy?.prepareExternalUrl(this.router.serializeUrl(n))??``:null}static ɵfac=function(r){return new(r||e)(at(ut),at(dt),La(`tabindex`),at(Dr),at(xt),at(Nr))};static ɵdir=kn({type:e,selectors:[[``,`routerLink`,``]],hostVars:2,hostBindings:function(r,o){r&1&&Ln(`click`,function(s){return o.onClick(s.button,s.ctrlKey,s.shiftKey,s.altKey,s.metaKey)}),r&2&&me(`href`,o.reactiveHref(),Gu)(`target`,o._target())},inputs:{target:`target`,queryParams:`queryParams`,fragment:`fragment`,queryParamsHandling:`queryParamsHandling`,state:`state`,info:`info`,relativeTo:`relativeTo`,preserveFragment:[2,`preserveFragment`,`preserveFragment`,Ni],skipLocationChange:[2,`skipLocationChange`,`skipLocationChange`,Ni],replaceUrl:[2,`replaceUrl`,`replaceUrl`,Ni],browserUrl:[1,`browserUrl`],routerLink:`routerLink`},features:[fo]})}return e})();var jp=(()=>{class e{router;element;renderer;cdr;links;classes=[];routerEventsSubscription;linkInputChangesSubscription;_isActive=!1;get isActive(){return this._isActive}routerLinkActiveOptions={exact:!1};ariaCurrentWhenActive;isActiveChange=new Le;link=p(Te,{optional:!0});constructor(n,r,o,i){this.router=n,this.element=r,this.renderer=o,this.cdr=i,this.routerEventsSubscription=n.events.subscribe(s=>{s instanceof Xe&&this.update()})}ngAfterContentInit(){x(this.links.changes,x(null)).pipe(Wr()).subscribe(n=>{this.update(),this.subscribeToEachLinkOnChanges()})}subscribeToEachLinkOnChanges(){this.linkInputChangesSubscription?.unsubscribe();let n=[...this.links.toArray(),this.link].filter(r=>!!r).map(r=>r.onChanges);this.linkInputChangesSubscription=de(n).pipe(Wr()).subscribe(r=>{this._isActive!==this.isLinkActive(this.router)(r)&&this.update()})}set routerLinkActive(n){if(n==null){this.classes=[];return}let 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||this.routerLinkActiveOptions===null&&!this._isActive||queueMicrotask(()=>{let n=this.hasActiveLinks();
5this.classes.forEach(r=>{n?this.renderer.addClass(this.element.nativeElement,r):this.renderer.removeClass(this.element.nativeElement,r)}),n&&this.ariaCurrentWhenActive!==void 0?this.renderer.setAttribute(this.element.nativeElement,`aria-current`,this.ariaCurrentWhenActive.toString()):this.renderer.removeAttribute(this.element.nativeElement,`aria-current`),this._isActive!==n&&(this._isActive=n,this.cdr.markForCheck(),this.isActiveChange.emit(n))})}isLinkActive(n){let r=this.routerLinkActiveOptions;if(r===null)return()=>!1;let o;return r===void 0?o=k$1({},Io):NA(r)?o=r:r.exact??!1?o=k$1({},Mp):o=k$1({},Io),i=>{let s=i.urlTree;return s?re(Np(s,n,o)):!1}}hasActiveLinks(){let n=this.isLinkActive(this.router);return this.link&&n(this.link)||this.links.some(n)}static ɵfac=function(r){return new(r||e)(at(ut),at(xt),at(Dr),at(Mi))};static ɵdir=kn({type:e,selectors:[[``,`routerLinkActive`,``]],contentQueries:function(r,o,i){if(r&1&&oc(i,Te,5),r&2){let s;Cf(s=_f())&&(o.links=s)}},inputs:{routerLinkActiveOptions:`routerLinkActiveOptions`,ariaCurrentWhenActive:`ariaCurrentWhenActive`,routerLinkActive:`routerLinkActive`},outputs:{isActiveChange:`isActiveChange`},exportAs:[`routerLinkActive`],features:[fo]})}return e})();function NA(e){let t=e;return!!(t.paths||t.matrixParams||t.queryParams||t.fragment)}var oE=new I(``);var AA=(()=>{class e{options;routerEventsSubscription;scrollEventsSubscription;lastId=0;lastSource=Eo;restoredId=0;store={};isHydrating=p(Cr,{optional:!0})??!1;urlSerializer=p(Pr);zone=p(Oe);viewportScroller=p(Vb);transitions=p(Pp);constructor(n){this.options=n,this.options.scrollPositionRestoration||=`disabled`,this.options.anchorScrolling||=`disabled`,this.isHydrating&&p(We).whenStable().then(()=>{this.isHydrating=!1})}init(){this.options.scrollPositionRestoration!==`disabled`&&this.viewportScroller.setHistoryScrollRestoration(`manual`),this.routerEventsSubscription=this.createScrollEvents(),this.scrollEventsSubscription=this.consumeScrollEvents()}createScrollEvents(){return this.transitions.events.subscribe(n=>{n instanceof $n?(this.store[this.lastId]=this.viewportScroller.getScrollPosition(),this.lastSource=n.navigationTrigger,this.restoredId=n.restoredState?n.restoredState.navigationId:0):n instanceof Xe?(this.lastId=n.id,this.scheduleScrollEvent(n,this.urlSerializer.parse(n.urlAfterRedirects).fragment)):n instanceof Xt&&n.code===So.IgnoredSameUrlNavigation&&(this.lastSource=void 0,this.restoredId=0,this.scheduleScrollEvent(n,this.urlSerializer.parse(n.url).fragment))})}consumeScrollEvents(){return this.transitions.events.subscribe(n=>{if(!(n instanceof Do)||n.scrollBehavior===`manual`)return;let r={behavior:`instant`};n.position?this.options.scrollPositionRestoration===`top`?this.viewportScroller.scrollToPosition([0,0],r):this.options.scrollPositionRestoration===`enabled`&&this.viewportScroller.scrollToPosition(n.position,r):n.anchor&&this.options.anchorScrolling===`enabled`?this.viewportScroller.scrollToAnchor(n.anchor):this.options.scrollPositionRestoration!==`disabled`&&this.viewportScroller.scrollToPosition([0,0])})}scheduleScrollEvent(n,r){if(this.isHydrating)return;let o=re(this.transitions.currentNavigation)?.extras.scroll;this.zone.runOutsideAngular(async()=>{await new Promise(i=>{setTimeout(i),typeof requestAnimationFrame<`u`&&requestAnimationFrame(i)}),this.zone.run(()=>{this.transitions.events.next(new Do(n,this.lastSource===`popstate`?this.store[this.restoredId]:null,r,o))})})}ngOnDestroy(){this.routerEventsSubscription?.unsubscribe(),this.scrollEventsSubscription?.unsubscribe()}static ɵfac=function(r){tc()};static ɵprov=O({token:e,factory:e.ɵfac})}return e})();function Fp(e,...t){return Ct([{provide:Qi,multi:!0,useValue:e},{provide:dt,useFactory:RA},{provide:Ot,multi:!0,useFactory:OA},t.map(n=>n.ɵproviders)])}function RA(){return p(ut).routerState.root}function xA(e,t){return{ɵkind:e,ɵproviders:t}}function Up(e={}){return xA(4,[{provide:oE,useFactory:()=>new AA(e)}])}function OA(){let e=p(xe);return t=>{let n=e.get(We);if(t!==n.components[0])return;let r=e.get(ut),o=e.get(kA);e.get(PA)===1&&r.initialNavigation(),e.get(LA,null,{optional:!0})?.setUpPreloading(),e.get(oE,null,{optional:!0})?.init(),r.resetRootComponentType(n.componentTypes[0]),o.closed||(o.next(),o.complete(),o.unsubscribe())}}var kA=new I(``,{factory:()=>new le});
5var PA=new I(``,{factory:()=>1});var LA=new I(``);var iE=[{slug:`iphone-duo-cross-platform-introduction`,title:`An iPhone Duo Review for Cross-Platform App Developers`,description:`Observations from the iPhone Duo simulator: how vertical bars change buttons, tabs, safe areas, modals, transitions, and layouts when the device is folded.`,image:`https://rdlabo.dev/article-images/iphone-duo-cross-platform-introduction.svg`,imageWidth:1200,imageHeight:630,emoji:`ð±`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/iphone-duo-cross-platform-introduction`,publishedAt:`2026-09-28T10:47:31.000Z`,publishedDate:`2026-09-28`},{slug:`capacitor-brotherprint-bluetooth-v8-2`,title:`From Capacitor to Brother Printers: Official Bluetooth Support in v8.2.0`,description:`Brother Print v8.2.0 fixes the iOS Bluetooth discovery crash, corrects Android permissions, and adds optional printer filtering and SDK-free regression tests.`,updatedAt:`2026-09-09`,image:`https://rdlabo.dev/article-images/capacitor-brotherprint-bluetooth-v8-2.svg`,imageWidth:1200,imageHeight:630,emoji:`ð¨ï¸`,relatedLibraries:[{id:`capacitor-brotherprint`,name:`Brother Print`,url:`https://docs.rdlabo.dev/projects/capacitor-brotherprint`}],sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/capacitor-brotherprint-bluetooth-v8-2`,publishedAt:`2026-09-09T03:38:06.000Z`,publishedDate:`2026-09-09`},{slug:`ionic-theme-reusable-css-v9-1`,title:`Making Ionic Themes Easier to Override: Rethinking !important and Shadow Parts in v9.1.0`,description:`How v9.1.0 of the iOS 26 and Material Design 3 themes makes Ionic styles easier to override by reducing !important, preferring public CSS custom properties, and fixing grouped Inset Lists.`,image:`https://rdlabo.dev/article-images/ionic-theme-reusable-css-v9-1.svg`,imageWidth:1200,imageHeight:630,emoji:`ð§©`,relatedLibraries:[{id:`ionic-theme-ios26`,name:`Ionic Theme iOS26`,url:`https://docs.rdlabo.dev/projects/ionic-theme-ios26`},{id:`ionic-theme-md3`,name:`Ionic Theme MD3`,url:`https://docs.rdlabo.dev/projects/ionic-theme-md3`}],sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/ionic-theme-reusable-css-v9-1`,publishedAt:`2026-09-04T08:04:56.000Z`,publishedDate:`2026-09-04`},{slug:`cloudflare-workers-ai-model-benchmark`,title:`I Was Ready to Move Everything to OSS Models on Cloudflare Workers AIâThen the Benchmarks Said No`,description:`A production-shaped benchmark of seven OSS models on Workers AI against GPT-5.2, Gemini 3.5 Flash-Lite, and Claude Haiku 4.5 for schema compliance, latency, accuracy, and cost.`,image:`https://rdlabo.dev/article-images/cloudflare-workers-ai-model-benchmark.svg`,imageWidth:1200,imageHeight:630,emoji:`â±ï¸`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/cloudflare-workers-ai-model-benchmark`,publishedAt:`2026-09-02T11:59:56.000Z`,publishedDate:`2026-09-02`},{slug:`playwright-visual-regression-ci-baseline`,title:`Visual Regression Testing for OSS: Mac-Independent Baselines Updated Only in CI`,description:`How an Ionic theme project uses Playwright in a fixed Linux container, maintainer-authorized screenshot updates, and separate read/write jobs to keep visual baselines reproducible and reviewable.`,updatedAt:`2026-09-03`,image:`https://rdlabo.dev/article-images/playwright-visual-regression-ci-baseline.svg`,imageWidth:1200,imageHeight:630,emoji:`ð¸`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/playwright-visual-regression-ci-baseline`,publishedAt:`2026-08-31T06:54:43.000Z`,publishedDate:`2026-08-31`},{slug:`npm-beta-per-pull-request`,title:`Let Users Try This PR with npm install: Building Per-PR Beta Releases for OSS`,description:`How I built a secure per-PR npm beta release flow with GitHub Actions, OIDC trusted publishing, immutable versions, and maintainer-approved /beta commands.`,updatedAt:`2026-09-03`,image:`https://rdlabo.dev/article-images/npm-beta-per-pull-request.svg`,imageWidth:1200,imageHeight:630,emoji:`ð§ª`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/npm-beta-per-pull-request`,publishedAt:`2026-08-30T03:26:43.000Z`,publishedDate:`2026-08-30`},{slug:`b3874dc571f7da`,title:`The Library Grew by 0.1KB, but the Angular App's Initial JavaScript Shrank by 685KB`,description:`Why replacing Ionic root imports with granular entrypoints in a provider library cut an Angular app's initial synchronous JavaScript closure by 36.5%, even though the library itself became slightly larger.`,updatedAt:`2026-09-03`,image:`https://rdlabo.dev/article-images/b3874dc571f7da.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/b3874dc571f7da`,publishedAt:`2026-08-28T09:52:27.000Z`,publishedDate:`2026-08-28`},{slug:`ionic-themes-ionic9-major-update`,title:`Bringing iOS 26 and Material Design 3 to Ionic: Both Themes Reach v9`,description:`The iOS 26 and Material Design 3 themes for Ionic now align with Ionic 9, adding two-line list items, supporting-text layouts, iOS outline fields, visual regression testing, and a smoother migration path.`,image:`https://rdlabo.dev/article-images/ionic-themes-ionic9-major-update.svg`,imageWidth:1200,imageHeight:630,emoji:`ð¨`,relatedLibraries:[{id:`ionic-theme-ios26`,name:`Ionic Theme iOS26`,url:`https://docs.rdlabo.dev/projects/ionic-theme-ios26`},{id:`ionic-theme-md3`,name:`Ionic Theme MD3`,url:`https://docs.rdlabo.dev/projects/ionic-theme-md3`}],sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/ionic-themes-ionic9-major-update`,publishedAt:`2026-08-25T06:33:09.000Z`,publishedDate:`2026-08-25`},{slug:`ionic-theme-md3`,title:`A Material Design 3 Theme for Ionic Has Grown into Something Really Good`,description:`@rdlabo/ionic-theme-md3 brings Material Design 3 to Ionic
5while preserving its components and markup, with dark mode, transitions, incremental adoption, and iOS 26 theme compatibility.`,image:`https://rdlabo.dev/article-images/ionic-theme-md3.svg`,imageWidth:1200,imageHeight:630,emoji:`ð¨`,relatedLibraries:[{id:`ionic-theme-md3`,name:`Ionic Theme MD3`,url:`https://docs.rdlabo.dev/projects/ionic-theme-md3`}],sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/ionic-theme-md3`,publishedAt:`2026-08-24T06:17:54.000Z`,publishedDate:`2026-08-24`},{slug:`ionic-9-components-got-better`,title:`Ionic 9 Is Here! Web Standardization Takes a Big Step Forward â Five Major Changes`,description:`Ionic Framework 9 highlights five changes that matter in day-to-day app development: rich Select options, Font Icons in ion-icon, ion-img deprecation, cleaner form controls, and more accessible sheet modal handles.`,updatedAt:`2026-08-31`,image:`https://rdlabo.dev/article-images/ionic-9-components-got-better.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,relatedLibraries:[{id:`ionic-docs`,name:`Ionic Docs Japanese`,url:`https://ionicframework.jp/docs/`}],sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/ionic-9-components-got-better`,publishedAt:`2026-08-20T23:21:47.000Z`,publishedDate:`2026-08-21`},{slug:`capawesome-live-update-release-cycle`,title:`Capacitor App Release Best Practices: Split Live Update and Store Submission in CI`,description:`Wire Capawesome Live Update, Cloud Build, Cloud Deploy, and GitHub Actions so a version tag alone routes bug fixes over-the-air and feature or native changes through store submission.`,image:`https://rdlabo.dev/article-images/capawesome-live-update-release-cycle.svg`,imageWidth:1200,imageHeight:630,emoji:`ð²`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/capawesome-live-update-release-cycle`,publishedAt:`2026-08-20T05:00:49.000Z`,publishedDate:`2026-08-20`},{slug:`mobile-app-live-updates`,title:`Live Updates for Mobile Apps: Overcoming the Next Bottleneck After AI-Accelerated Development`,description:`AI can make implementation dramatically faster, but mobile delivery still stalls at store review. Live Updates can shorten that last mile when the change, policy, and native runtime all allow it.`,image:`https://rdlabo.dev/article-images/mobile-app-live-updates.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`note`,originalUrl:`https://note.com/rdlabo/n/na69e5aad6840`,publishedAt:`2026-08-19T03:18:54.000Z`,publishedDate:`2026-08-19`},{slug:`f3f96d96bd5e87`,title:`The Implementation Load Was Too HeavyâSo I Shelved It. What I Learned Shipping That Feature with AI`,description:`I shipped offline sync for a business app after shelving it for years. AI expanded what developer knowledge could reachânot replace itâand guardrails made a release I could not fully trace line by line still controllable.`,image:`https://rdlabo.dev/article-images/f3f96d96bd5e87.svg`,imageWidth:1200,imageHeight:630,emoji:`ð§ `,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/f3f96d96bd5e87`,publishedAt:`2026-08-17T02:05:15.000Z`,publishedDate:`2026-08-17`},{slug:`custom-eslint-rules-for-ai-coding`,title:`Why You Should Write Custom ESLint Rules â Generic Rules Won't Tame AI Coding`,description:`When AI writes your code, generic ESLint rules are not enough. Custom rules turn repeated review comments into CI guardrails that enforce your project's architecture and error-handling style.`,image:`https://rdlabo.dev/article-images/custom-eslint-rules-for-ai-coding.svg`,imageWidth:1200,imageHeight:630,emoji:`ð§`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/custom-eslint-rules-for-ai-coding`,publishedAt:`2026-08-15T18:26:13.000Z`,publishedDate:`2026-08-16`},{slug:`cloudflare-workers-after-rich-programming`,title:`I Was Doing Rich Programming â How Implementation Changes on Cloudflare Workers`,description:`Moving NestJS on EC2 to Hono on Cloudflare Workers made hidden costs visible: bundle size, 128 MB memory, subrequests, CPU time, Durable Object duration, and KV operations.`,image:`https://rdlabo.dev/article-images/cloudflare-workers-after-rich-programming.svg`,imageWidth:1200,imageHeight:630,emoji:`ð¸`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/cloudflare-workers-after-rich-programming`,publishedAt:`2026-08-14T20:40:24.000Z`,publishedDate:`2026-08-15`},{slug:`workers-kv-cache-api-boundary`,title:`Workers KV vs Cache API â Where Each Belongs`,description:`After moving from ElastiCache to Cloudflare, per-key KV billing surfaced waste. Split short-lived colo-local responses into Cache API and cross-colo artifacts into KV.`,image:`https://rdlabo.dev/article-images/workers-kv-cache-api-boundary.svg`,imageWidth:1200,imageHeight:630,emoji:`ð§`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/workers-kv-cache-api-boundary`,publishedAt:`2026-08-14T03:37:19.000Z`,publishedDate:`2026-08-14`},{slug:`workers-hono-websocket-hibernation`,title:`Keeping WebSockets Without Keeping Cloudflare Workers Awake â Durable Objects Hibernation`,description:`WebSocket plus Durable Objects worked, but idle connections kept the object awake. Hibernation keeps connections while sleeping the DO â with auth, client resync, workerd tests, and ops checks.`,image:`https://rdlabo.dev/article-images/workers-hono-websocket-hibernation.svg`,
5imageWidth:1200,imageHeight:630,emoji:`ð§`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/workers-hono-websocket-hibernation`,publishedAt:`2026-08-14T01:58:12.000Z`,publishedDate:`2026-08-14`},{slug:`workers-hono-sse-vs-websocket`,title:`SSE Is Simpler â But I Still Chose WebSocket on Cloudflare Workers`,description:`Server-sent events looked easier for one-way invalidate notifications. On Workers with Durable Objects, idle SSE kept the object awake â WebSocket Hibernation was the way out.`,image:`https://rdlabo.dev/article-images/workers-hono-sse-vs-websocket.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/workers-hono-sse-vs-websocket`,publishedAt:`2026-08-12T23:59:53.000Z`,publishedDate:`2026-08-13`},{slug:`workers-hono-zod-number-coercion`,title:`Migrating NestJS DTOs to Hono + Zod â Reproducing Value Coercion in Schemas and Helpers`,description:`Copying types into Zod is not enough when moving from NestJS. class-transformer @Transform behavior for numbers, defaults, and empty strings needs field-by-field Zod helpers.`,image:`https://rdlabo.dev/article-images/workers-hono-zod-number-coercion.svg`,imageWidth:1200,imageHeight:630,emoji:`ð¢`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/workers-hono-zod-number-coercion`,publishedAt:`2026-08-12T01:03:25.000Z`,publishedDate:`2026-08-12`},{slug:`workers-hono-cron-subrequest-limit`,title:`Cron N+1 Surfaced on Cloudflare Workers â Splitting Full Runs into a Queue`,description:`A Cron job that listed users once then called an external API per user hit subrequest limits on Workers. Even after higher limits, bounded Queue consumers beat one heroic invocation.`,image:`https://rdlabo.dev/article-images/workers-hono-cron-subrequest-limit.svg`,imageWidth:1200,imageHeight:630,emoji:`ð§`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/workers-hono-cron-subrequest-limit`,publishedAt:`2026-08-12T00:42:54.000Z`,publishedDate:`2026-08-12`},{slug:`workers-hono-container-lifecycle`,title:`Building a DI Container on Every Request Was Slow in Hono on Cloudflare Workers`,description:`Split Hono app, secrets, and DB connections across isolate and invocation scopes so Workers reuse what is safe to reuse without mixing request state.`,image:`https://rdlabo.dev/article-images/workers-hono-container-lifecycle.svg`,imageWidth:1200,imageHeight:630,emoji:`ð¦`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/workers-hono-container-lifecycle`,publishedAt:`2026-08-11T02:28:10.000Z`,publishedDate:`2026-08-11`},{slug:`workers-hono-perflog-vs-tracing`,title:`I Packaged a Hono Performance Logging Layer to Measure and Improve Cloudflare Workers Speed`,description:`Use perfLog middleware with Workers Logs and Analytics Engine to find slow routes by p50/p95, then drill into Workers Tracing for a single request.`,image:`https://rdlabo.dev/article-images/workers-hono-perflog-vs-tracing.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/workers-hono-perflog-vs-tracing`,publishedAt:`2026-08-11T02:10:48.000Z`,publishedDate:`2026-08-11`},{slug:`workers-hono-hyperdrive-connection-lifecycle`,title:`Create a mysql2 Connection on Every Request Even With HyperdriveâWhy Not to Put It in Global Scope on Cloudflare Workers`,description:`Separate the Worker-side Hyperdrive client from Hyperdrive's origin connection pool, and manage mysql2 per invocation without calling connection.end().`,image:`https://rdlabo.dev/article-images/workers-hono-hyperdrive-connection-lifecycle.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/workers-hono-hyperdrive-connection-lifecycle`,publishedAt:`2026-08-10T00:12:17.000Z`,publishedDate:`2026-08-10`},{slug:`workers-hono-mysql-jst-timezone`,title:`Dates Shifted by 9 Hours After Moving to Cloudflare WorkersâAligning DB Connections and Business Time to JST`,description:`Fix implicit local timezone drift with mysql2 timezone '+09:00', @rdlabo/workers-timezone, ESLint guards, and real MySQL wire tests.`,updatedAt:`2026-09-07`,image:`https://rdlabo.dev/article-images/workers-hono-mysql-jst-timezone.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/workers-hono-mysql-jst-timezone`,publishedAt:`2026-08-09T23:53:42.000Z`,publishedDate:`2026-08-10`},{slug:`workers-hono-firebase-id-token`,title:`Firebase Admin Auth Worked on Cloudflare WorkersâWhy I Still Verify ID Tokens With jose`,description:`Compare firebase-admin, @hono/firebase-auth, and jose on Workers; keep a small verifier aligned with Firebase's official JWT checks.`,image:`https://rdlabo.dev/article-images/workers-hono-firebase-id-token.svg`,imageWidth:1200,imageHeight:630,emoji:`ð¥`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/workers-hono-firebase-id-token`,publishedAt:`2026-08-09T02:19:27.000Z`,publishedDate:`2026-08-09`},{slug:`workers-hono-aws-credentials`,title:`Testing AWS SDK v3 on Cloudflare WorkersâWhy I Call Secrets Manager and STS With fetch and SigV4`,de
5scription:`AWS SDK v3 can reach AWS from Workers but lacks a credential chain; use aws4fetch for two operations with explicit Workers Secrets.`,image:`https://rdlabo.dev/article-images/workers-hono-aws-credentials.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/workers-hono-aws-credentials`,publishedAt:`2026-08-09T02:19:26.000Z`,publishedDate:`2026-08-09`},{slug:`workers-hono-wrangler-dev-aws-profile`,title:`A Hack to Pass AWS CLI Credentials to wranglerâAWS_PROFILE Alone Does Not Reach Cloudflare Workers`,description:`Resolve short-lived credentials from AWS CLI at wrangler dev startup and inject them as Worker bindings without copying keys into .dev.vars.`,image:`https://rdlabo.dev/article-images/workers-hono-wrangler-dev-aws-profile.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/workers-hono-wrangler-dev-aws-profile`,publishedAt:`2026-08-08T23:49:16.000Z`,publishedDate:`2026-08-09`},{slug:`workers-hono-execution-model-workbench`,title:`If EC2 Is a Rented Office and Lambda Is a Meeting Room, Cloudflare Workers Is a Workbench`,description:`A metaphor for the Workers execution model: why server code broke after moving NestJS to Hono + Workers, and how to decide where state and work live and how long they last.`,image:`https://rdlabo.dev/article-images/workers-hono-execution-model-workbench.svg`,imageWidth:1200,imageHeight:630,emoji:`ð ï¸`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/workers-hono-execution-model-workbench`,publishedAt:`2026-08-08T13:29:20.000Z`,publishedDate:`2026-08-08`},{slug:`df42c9d6f69af9`,title:`Migrating Ionic + Angular Unit Tests from Karma/Jasmine to Vitest (jsdom)`,description:`Move Ionic + Angular unit tests to Angular's official @angular/build:unit-test builder with Vitest and jsdomâsetup steps, Ionic-specific pitfalls, and CI lockfile traps.`,image:`https://rdlabo.dev/article-images/df42c9d6f69af9.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/df42c9d6f69af9`,publishedAt:`2026-07-06T05:59:47.000Z`,publishedDate:`2026-07-06`},{slug:`2fbd2e66b2f834`,title:`Five Production Pitfalls When Moving NestJS Fully to SWC for Speed`,description:`NestJS build times drop sharply with SWC, but test-green does not mean production-safeâfive traps from a full test/serve/build SWC rollout with fixes and rationale.`,image:`https://rdlabo.dev/article-images/2fbd2e66b2f834.svg`,imageWidth:1200,imageHeight:630,emoji:`ð¨`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/2fbd2e66b2f834`,publishedAt:`2026-07-06T05:36:08.000Z`,publishedDate:`2026-07-06`},{slug:`dda4ef1c48a970`,title:`Configuration Recipes for Running NestJS on AWS Elastic Beanstalk in a Monorepo`,description:`Copy-paste Elastic Beanstalk setup for a monorepo NestJS APIâProcfile, ebextensions, nginx, prebuild hooks, ebignore, and environment layout with rationale for each file.`,image:`https://rdlabo.dev/article-images/dda4ef1c48a970.svg`,imageWidth:1200,imageHeight:630,emoji:`ð±`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/dda4ef1c48a970`,publishedAt:`2026-07-06T00:55:14.000Z`,publishedDate:`2026-07-06`},{slug:`14dfbb048f524e`,title:`When Cloudflare Pages Serves HTML for llms.txtâand Implicit SPA Mode`,description:`Why llms.txt returned Angular HTML on Cloudflare Pages, how implicit SPA mode treats .txt files, and fixing it by adding 404.html to the build output.`,image:`https://rdlabo.dev/article-images/14dfbb048f524e.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/14dfbb048f524e`,publishedAt:`2026-04-23T08:30:00.000Z`,publishedDate:`2026-04-23`},{slug:`8431b93780afe5`,title:`[Talk Notes] Expand Quality Coverage Quantitatively and Mechanically with Custom ESLint`,description:`Talk notes on why custom ESLint guardrails beat review-only quality at scaleâwith AI on the teamâand how to build project-specific rules quickly.`,image:`https://rdlabo.dev/article-images/8431b93780afe5.svg`,imageWidth:1200,imageHeight:630,emoji:`ð½`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/8431b93780afe5`,publishedAt:`2026-02-01T06:55:53.000Z`,publishedDate:`2026-02-01`},{slug:`42751b10ef11d3`,title:`Signal Forms in Ionic Angular: Fastest Path to Production?`,description:`How I migrated Ionic + Angular forms to experimental Signal Formsâbasic patterns, undefined/null constraints, validation schema, and Ionic-specific notes.`,image:`https://rdlabo.dev/article-images/42751b10ef11d3.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/42751b10ef11d3`,publishedAt:`2026-01-31T22:58:30.000Z`,publishedDate:`2026-02-01`},{slug:`8ac300d0f67394`,title:`Getting Started with Stripe Terminal Apps on Devices: From Dev Environment Setup to Implementation`,description:`A practical guide to Stripe Terminal Apps on Devices in JapanâDevKit ordering, Android constraints, regional limits, and Kotlin or Capacitor development paths.`,image:`https://rdlabo.dev/article-images/8ac300d0f67394.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/8ac300d0f67394`,publishedAt:`2025-12-24T08:29:34.000Z`,publishedDate:`2025-12-24`}
5,{slug:`679887bea93514`,title:`Designing the Payment Experience in Code: Stripe Terminal Lets You Own Reader UI/UX`,description:`How Stripe Terminal Apps on Devices turns payment readers into a UX platformâcustom flows before and after tap-to-pay, WebView with Capacitor, and real-world use cases.`,image:`https://rdlabo.dev/article-images/679887bea93514.svg`,imageWidth:1200,imageHeight:630,emoji:`ð¥`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/679887bea93514`,publishedAt:`2025-12-24T05:14:32.000Z`,publishedDate:`2025-12-24`},{slug:`264cd906e01d81`,title:`Ionic Framework / Capacitor: A 2025 Retrospective`,description:`A year-in-review of Ionic and Capacitor in 2025âModular themes, iOS 26 and MD3 OSS, faster Capacitor releases, SPM on iOS, and npm trusted publishing.`,image:`https://rdlabo.dev/article-images/264cd906e01d81.svg`,imageWidth:1200,imageHeight:630,emoji:`ð¥`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/264cd906e01d81`,publishedAt:`2025-12-20T05:57:28.000Z`,publishedDate:`2025-12-20`},{slug:`be8462ca01a6e1`,title:`Automating Angular Library npm Publish with Trusted Publish in the 2FA Era`,description:`Use npm trusted publishing and GitHub Actions to release multiple Angular libraries from dist/ without manual 2FAâtag triggers, dynamic projects, and provenance.`,image:`https://rdlabo.dev/article-images/be8462ca01a6e1.svg`,imageWidth:1200,imageHeight:630,emoji:`ð¤`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/be8462ca01a6e1`,publishedAt:`2025-12-20T04:47:30.000Z`,publishedDate:`2025-12-20`},{slug:`0b5364331e0bf6`,title:`Automated Releases with Trusted Publish in npm Workspace Monorepos`,description:`Automate npm workspace monorepo releases with trusted publishingâGitHub Actions, tag triggers, dynamic workspace lists, and provenance without per-package 2FA.`,image:`https://rdlabo.dev/article-images/0b5364331e0bf6.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/0b5364331e0bf6`,publishedAt:`2025-12-20T04:47:29.000Z`,publishedDate:`2025-12-20`},{slug:`d221326a53a557`,title:`Even Apple's First-Party Apps Use WebViews. WebView App Criticism Is Just the Wig Theory.`,description:`Apple's private -apple-visual-effect CSS, why WebView apps are hard to spot, the wig theory of bad vs seamless hybrids, and why the WebView stigma is outdated.`,image:`https://rdlabo.dev/article-images/d221326a53a557.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/d221326a53a557`,publishedAt:`2025-11-06T09:29:25.000Z`,publishedDate:`2025-11-06`},{slug:`1cac6284b08db2`,title:`I Released the Most Faithful iOS 26 CSS Library in the World!`,description:`Introducing @rdlabo/ionic-theme-ios26âpixel-compared Ionic theme for iOS 26 safe areas, floating tabs, rounded UI, dark mode, and Capacitor deployment.`,image:`https://rdlabo.dev/article-images/1cac6284b08db2.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,relatedLibraries:[{id:`ionic-theme-ios26`,name:`Ionic Theme iOS26`,url:`https://docs.rdlabo.dev/projects/ionic-theme-ios26`}],sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/1cac6284b08db2`,publishedAt:`2025-10-14T05:12:00.000Z`,publishedDate:`2025-10-14`},{slug:`3b5cca43f2da75`,title:`[Talk Notes] User Authentication Flows and Fundamentals`,description:`Conference talk notes on authentication vs authorization vs sessionsâpassword risks, MFA and OAuth, session models, and when to use Firebase or Auth0.`,image:`https://rdlabo.dev/article-images/3b5cca43f2da75.svg`,imageWidth:1200,imageHeight:630,emoji:`ð¸`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/3b5cca43f2da75`,publishedAt:`2025-09-22T02:34:47.000Z`,publishedDate:`2025-09-22`},{slug:`7d39ddfe9c7cf1`,title:`Building an ESLint Rule to Check Attribute Types in Ionic Angular`,description:`How an ESLint rule reads Ionic's components.d.ts to catch boolean, number, and string-literal attribute mismatches in Angular templatesâwith auto-fix for property bindings.`,image:`https://rdlabo.dev/article-images/7d39ddfe9c7cf1.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/7d39ddfe9c7cf1`,publishedAt:`2025-09-21T00:31:39.000Z`,publishedDate:`2025-09-21`},{slug:`e3fe9c3d458f74`,title:`Three Things to Watch When Implementing Stripe Terminal`,description:`Lessons from Japan's Stripe Terminal launch: internet-connected vs Bluetooth readers, mandatory firmware updates, and Location/country constraints that docs alone do not spell out.`,image:`https://rdlabo.dev/article-images/e3fe9c3d458f74.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/e3fe9c3d458f74`,publishedAt:`2025-09-09T03:37:42.000Z`,publishedDate:`2025-09-09`},{slug:`80d2394f8ef0a2`,title:`Angular v20 New Features and a Better Developer Experience`,description:`A practical tour of Angular v20: Resource and HTTP Resource APIs, streaming resources, stabilized signal APIs, host binding type checks, and QOL improvements like template HMR.`,image:`https://rdlabo.dev/article-images/80d2394f8ef0a2.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/80d2394f8ef0a2`,publishedAt:`2025-06-17T02:14:32.000Z`,publishedDate:`2025-06-17`},{slug:`75d004ccad0d67`,title:`[Talk Notes] Application Security from a Frontend Developer's Perspective`,description:`Talk notes on moving beyond obvious vulnerabilitiesâautomating XSS/SQLi defenses, realistic threat modeling, and designing systems that survive even when something goes wrong.`,image:`https://rdlabo.dev/article-images/75d004ccad0d67.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/75d004ccad0d67`,publishedAt:`2025-06-15T07:09:32.000Z`,publishedDate:`2025-06-15`},{slug:`5ee5ce6fb9b973`,title:`@rdlabo/eslint-plugin-rules: The Angular ESLint Plugin I Wanted`,description:`Custom ESLint rules I built for Angular teamsâSignal misuse, inject() migration, readonly for zoneless, Ionic lifecycle checksâwith auto-fix where it helps.`,image:`https://rdlabo.dev/article-images/5ee5ce6fb9b973.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/5ee5ce6fb9b973`,publishedAt:`2025-06-07T10:53:22.000Z`,publishedDate:`2025-06-07`},{slug:`1eb7348f731a6c`,title:`Angular 20 Update Impressions (Niche Edition)`,description:`Personal notes on Angular 20: control-flow migration, the move from @angular-devkit/build-angular to @angular/build, flattened library .d.ts output, and experimental API renames.`,image:`https://rdlabo.dev/article-images/1eb7348f731a6c.svg`,
5imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/1eb7348f731a6c`,publishedAt:`2025-05-30T08:23:04.000Z`,publishedDate:`2025-05-30`},{slug:`9f9f2a89b95928`,title:`[Talk Notes] Introduction to Relational Databases: Learning Normalization You Keep Postponing`,description:`Talk notes on why databases outlive frontend and backend stacks, RDB vs NoSQL trade-offs, normalization vs denormalization, and keeping query cost under control.`,image:`https://rdlabo.dev/article-images/9f9f2a89b95928.svg`,imageWidth:1200,imageHeight:630,emoji:`ð¡`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/9f9f2a89b95928`,publishedAt:`2025-05-26T06:02:45.000Z`,publishedDate:`2025-05-26`},{slug:`ff0bc7de29bd65`,title:`Angular v20 Resources API Changes: Better Error Handling and a Cleaner API`,description:`Breaking changes ahead of Angular v20 Resources: value() throws on error, reload() on WritableResource only, requestâparams rename, and httpResource URL functions.`,image:`https://rdlabo.dev/article-images/ff0bc7de29bd65.svg`,imageWidth:1200,imageHeight:630,emoji:`ð»`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/ff0bc7de29bd65`,publishedAt:`2025-05-24T03:57:54.000Z`,publishedDate:`2025-05-24`},{slug:`4fd9c40161ca97`,title:`Fixing CDK Virtual Scroll Flicker in Angular Zoneless Mode with patch-package`,description:`When zoneless change detection is enabled, CDK Virtual Scroll can flicker during scrolling. This guide applies a patch-package workaround until the upstream fix lands.`,image:`https://rdlabo.dev/article-images/4fd9c40161ca97.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/4fd9c40161ca97`,publishedAt:`2025-05-23T10:09:02.000Z`,publishedDate:`2025-05-23`},{slug:`0fe0824fc702d0`,title:`An Extension Pattern for Flexible Angular Signal effect Management`,description:`Angular Signal effects skip reruns when you set the same value again. A trigger signal and refresh helper separate UI actions from data loading for refreshes and infinite scroll.`,image:`https://rdlabo.dev/article-images/0fe0824fc702d0.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/0fe0824fc702d0`,publishedAt:`2025-05-18T05:42:24.000Z`,publishedDate:`2025-05-18`},{slug:`08891227c7a233`,title:`Step by Step: Regenerating Angular spec Files`,description:`A step-by-step guide to finding missing Angular spec files and recreating them from CLI templates, then aligning them with your project's test setup.`,image:`https://rdlabo.dev/article-images/08891227c7a233.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/08891227c7a233`,publishedAt:`2025-05-14T08:09:26.000Z`,publishedDate:`2025-05-14`},{slug:`7238fb4da82821`,title:`Managing HTTP Requests in the Angular Signals Era`,description:`From basic HttpClient plus signals to the resource API, httpResource trade-offs, and a practical infinite-scroll pattern driven by signal state.`,image:`https://rdlabo.dev/article-images/7238fb4da82821.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/7238fb4da82821`,publishedAt:`2025-05-09T02:20:45.000Z`,publishedDate:`2025-05-09`},{slug:`e4c5efb81a745e`,title:`Handling Route Parameters with Angular withComponentInputBinding`,description:`Angular v17 withComponentInputBinding and signal inputs simplify route params compared with ActivatedRoute subscriptions, with clearer types and effects.`,image:`https://rdlabo.dev/article-images/e4c5efb81a745e.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/e4c5efb81a745e`,publishedAt:`2025-05-03T00:30:38.000Z`,publishedDate:`2025-05-03`},{slug:`12a8f95c74ed04`,title:`Zone-based vs Zoneless Performance in an Ionic Angular App: Measurements and Analysis`,description:`Lighthouse comparisons of a mid-size Ionic Angular app show large gains after zoneless migrationâespecially Total Blocking Timeâeven though Ionic does not officially support zoneless yet.`,image:`https://rdlabo.dev/article-images/12a8f95c74ed04.
5svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/12a8f95c74ed04`,publishedAt:`2025-04-28T15:23:30.000Z`,publishedDate:`2025-04-29`},{slug:`4b23117adb33aa`,title:`Angular linked signal vs computed signal: A Deep Dive`,description:`When to choose Angular computed signals versus linked signalsâread-only derivation, previous-value access, direct writes, and practical validation patterns.`,image:`https://rdlabo.dev/article-images/4b23117adb33aa.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/4b23117adb33aa`,publishedAt:`2025-04-26T01:58:24.000Z`,publishedDate:`2025-04-26`},{slug:`eab1f30b780ce0`,title:`How I Migrated Angular to Zoneless and What Changed`,description:`Migrating small prerendered Angular sites to zoneless: bundle size gains are modest, but targeted change detection, lower startup overhead, and clearer debugging pay off.`,image:`https://rdlabo.dev/article-images/eab1f30b780ce0.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/eab1f30b780ce0`,publishedAt:`2025-04-26T01:06:58.000Z`,publishedDate:`2025-04-26`},{slug:`fcae4a959a91e9`,title:`Using Generative AI to Draft Four Personal Articles from Official YouTube Videos`,description:`How NotebookLM, Devin, and Cursor turned four Angular official YouTube videos into Zenn articlesâand what that workflow says about AI-assisted writing.`,image:`https://rdlabo.dev/article-images/fcae4a959a91e9.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/fcae4a959a91e9`,publishedAt:`2025-04-24T02:13:56.000Z`,publishedDate:`2025-04-24`},{slug:`bb36705665c226`,title:`How Angular Signals Made State Management So Much Easier`,description:`Why Angular Signals freed me from RxJS timing and NgRx boilerplateâsimpler state, one-way data flow, and a practical counter example.`,image:`https://rdlabo.dev/article-images/bb36705665c226.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/bb36705665c226`,publishedAt:`2025-04-23T13:53:12.000Z`,publishedDate:`2025-04-23`},{slug:`35e1d6ae8d8adf`,title:`Angular 19.2: Experimental HTTP Resource and Response Streaming`,description:`Angular 19.2 adds experimental httpResource and response streamingâsimpler async state with Signals, chat streaming, and untagged template literals.`,image:`https://rdlabo.dev/article-images/35e1d6ae8d8adf.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/35e1d6ae8d8adf`,publishedAt:`2025-04-23T13:53:11.000Z`,publishedDate:`2025-04-23`},{slug:`753b9b923e0a63`,title:`Angular v19 Release: Standalone Components by Default and Signals Reach Stable`,description:`Angular v19 makes standalone components the default, stabilizes Signal APIs, adds experimental linkSignal and resource, and ships Material theme and incremental hydration updates.`,image:`https://rdlabo.dev/article-images/753b9b923e0a63.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/753b9b923e0a63`,publishedAt:`2025-04-23T13:53:11.000Z`,publishedDate:`2025-04-23`},{slug:`2ff4604df6cfe6`,title:`Angular v19 Style HMR: A Dramatic Boost to the Developer Experience`,description:`Angular v19 adds Hot Module Replacement for stylesâinstant CSS updates without rebuilds or reloads while keeping app state intact.`,image:`https://rdlabo.dev/article-images/2ff4604df6cfe6.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/2ff4604df6cfe6`,publishedAt:`2025-04-23T10:20:02.000Z`,publishedDate:`2025-04-23`},{slug:`1df8fb1484c003`,title:`Why Property Order Matters in Signal-Era Angular Components`,description:`With httpResource and computed signals, Angular component property order is not styleâit affects initialization. DI first, then state, then derived signals.`,image:`https://rdlabo.dev/article-images/1df8fb1484c003.svg`,imageWidth:1200,imageHeight:630,emoji:`ð¥`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/1df8fb1484c003`,publishedAt:`2025-04-23T09:04:25.000Z`,publishedDate:`2025-04-23`},{slug:`11f76921df8475`,title:`Rewriting HttpClient Requests with httpResource`,description:`How httpResource replaces HttpClient service calls with Signal-driven requests, including reload(), and an Ionic pattern with ViewDidEnter.`,image:`https://rdlabo.dev/article-images/11f76921df8475.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/11f76921df8475`,publishedAt:`2025-04-12T10:59:23.000Z`,publishedDate:`2025-04-12`}
5,{slug:`bb03d724d33831`,title:`Converting ViewDidEnter to a Signal in Ionic Angular`,description:`Signal-based Ionic pages should defer data loading until ionViewDidEnterâcreateDidEnter turns lifecycle events into a Signal for httpResource and computed.`,image:`https://rdlabo.dev/article-images/bb03d724d33831.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/bb03d724d33831`,publishedAt:`2025-04-12T10:10:54.000Z`,publishedDate:`2025-04-12`},{slug:`55cbf1fd6a4b2f`,title:`@angular-eslint Can Leave package.json â Migrate to ESLint v9-Ready angular-eslint`,description:`ESLint v8 reached EOL in October 2024. This guide walks through Flat Config migration with @eslint/migrate-config and switching from @angular-eslint to angular-eslint via ng add.`,image:`https://rdlabo.dev/article-images/55cbf1fd6a4b2f.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/55cbf1fd6a4b2f`,publishedAt:`2024-12-12T00:53:30.000Z`,publishedDate:`2024-12-12`},{slug:`d321a378825c63`,title:`Printing Only Selected Elements in Ionic â DOM-to-Image and Print Stylesheets`,description:`How I print food-label layouts from an Ionic app: convert preview HTML to images with dom-to-image-more, tile them for multi-up printing, and use @media print CSS to hide everything else.`,image:`https://rdlabo.dev/article-images/d321a378825c63.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/d321a378825c63`,publishedAt:`2024-12-05T12:10:17.000Z`,publishedDate:`2024-12-05`},{slug:`c6a838ae934128`,title:`Use Stripe on Mobile Too â Capacitor Stripe Plugin Updates in 2024`,description:`A 2024 recap of the Capacitor Stripe plugins I maintain: Capacitor v6, Stripe Terminal RC, Swift Package Manager support, and a full Kotlin migration on Android.`,updatedAt:`2026-09-03`,image:`https://rdlabo.dev/article-images/c6a838ae934128.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/c6a838ae934128`,publishedAt:`2024-12-05T10:08:19.000Z`,publishedDate:`2024-12-05`},{slug:`7506d62d50609d`,title:`Why Capacitor Stripe Plugins Pin Minor SDK Versions Instead of Up to Next Major`,description:`Stripe SDK SemVer looks safe on paper, but minor releases often break plugin users. I explain why I pin to minor versions and how to override Android SDK versions in variables.gradle.`,image:`https://rdlabo.dev/article-images/7506d62d50609d.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/7506d62d50609d`,publishedAt:`2024-12-04T13:33:33.000Z`,publishedDate:`2024-12-04`},{slug:`5325127b665d56`,title:`Match Ionic iOS List Design to iOS 18 with CSS â Inset Lists, Icons, and Group Styling`,description:`Use ion-list inset, ion-item-group, and scoped CSS to recreate iOS Settings-style lists with colored icons, headers, notes, and rounded group backgrounds.`,image:`https://rdlabo.dev/article-images/5325127b665d56.svg`,imageWidth:1200,imageHeight:630,emoji:`ð¸`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/5325127b665d56`,publishedAt:`2024-12-03T04:29:42.000Z`,publishedDate:`2024-12-03`},{slug:`b3bd6491cc26d6`,title:`Capacitor Plugins I Use in Production â A List by App`,description:`Capacitor and Cordova plugins I rely on across tipsys, winecode, Food Label Printing, and an ODSS business appâbeyond the awesome-capacitorjs catalog.`,image:`https://rdlabo.dev/article-images/b3bd6491cc26d6.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/b3bd6491cc26d6`,publishedAt:`2024-12-03T02:11:47.000Z`,publishedDate:`2024-12-03`},{slug:`78a3d783699901`,title:`Capacitor Configuration Options â A capacitor.config.ts Reference`,description:`A walkthrough of CapacitorConfig settings in capacitor.config.ts: app identity, WebView behavior, Android and iOS overrides, server and Cordova options, and plugin configuration.`,image:`https://rdlabo.dev/article-images/78a3d783699901.svg`,imageWidth:1200,imageHeight:630,emoji:`ð¡`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/78a3d783699901`,publishedAt:`2024-11-29T07:49:20.000Z`,publishedDate:`2024-11-29`},{slug:`4db7c7a6bc357f`,title:`A Fresh Look at Ionic Global Configuration â IonicConfig Options Explained`,description:`How to pass IonicConfig through provideIonicAngular, setupIonicReact, or IonicVueâand what each global option controls for animation, platform mode, navigation, and security.`,image:`https://rdlabo.dev/article-images/4db7c7a6bc357f.
5svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/4db7c7a6bc357f`,publishedAt:`2024-11-29T07:34:30.000Z`,publishedDate:`2024-11-29`},{slug:`73141a76d25564`,title:`What LINE's Chat List Taught Me About Virtual Scroll Design`,description:`How LINE keeps chat-list row height fixed despite variable preview text, and why that choice pays off for virtual scroll performance.`,image:`https://rdlabo.dev/article-images/73141a76d25564.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/73141a76d25564`,publishedAt:`2024-11-29T07:17:29.000Z`,publishedDate:`2024-11-29`},{slug:`3430a462ab031f`,title:`The CSS Property Behind LINE-Style Chat UI: flex-direction: column-reverse`,description:`Use flex-direction: column-reverse to anchor chat UIs at the bottom, append new messages without scroll jumps, and load older messages above.`,image:`https://rdlabo.dev/article-images/3430a462ab031f.svg`,imageWidth:1200,imageHeight:630,emoji:`ð¬`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/3430a462ab031f`,publishedAt:`2024-11-29T06:34:47.000Z`,publishedDate:`2024-11-29`},{slug:`c763a815ee3e5a`,title:`Implement Scroll-Hiding Headers Easily in Ionic Angular`,description:`A library for scroll-hiding headers in Ionic Angular, with support for ion-content scrolling and Angular CDK virtual scroll.`,image:`https://rdlabo.dev/article-images/c763a815ee3e5a.svg`,imageWidth:1200,imageHeight:630,emoji:`ð¥`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/c763a815ee3e5a`,publishedAt:`2024-11-29T01:08:39.000Z`,publishedDate:`2024-11-29`},{slug:`51b63e75b84da9`,title:`Implement a Photo Slider Modal Easily in Ionic Angular`,description:`Use @rdlabo/ionic-angular-photo-editor to open a full-screen photo viewer modal from any Ionic Angular app without duplicating slider code.`,image:`https://rdlabo.dev/article-images/51b63e75b84da9.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/51b63e75b84da9`,publishedAt:`2024-11-28T08:53:12.000Z`,publishedDate:`2024-11-28`},{slug:`7aa8c9091cc4b9`,title:`Implement Photo Editing Easily in Ionic Angular`,description:`Wrap TUI Image Editor for Ionic Angular with @rdlabo/ionic-angular-photo-editor for crop, rotate, filters, and brightness in a modal.`,image:`https://rdlabo.dev/article-images/7aa8c9091cc4b9.svg`,imageWidth:1200,imageHeight:630,emoji:`ð¥`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/7aa8c9091cc4b9`,publishedAt:`2024-11-28T07:57:41.000Z`,publishedDate:`2024-11-28`},{slug:`ebc12423e41ccd`,title:`Using AAR Files in Capacitor Android Plugins`,description:`Add an AAR distributed outside Maven as a local Gradle module in a Capacitor Android project so users can install it after accepting the license.`,image:`https://rdlabo.dev/article-images/ebc12423e41ccd.svg`,imageWidth:1200,imageHeight:630,emoji:`ð¸`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/ebc12423e41ccd`,publishedAt:`2024-11-28T04:18:40.000Z`,publishedDate:`2024-11-28`},{slug:`aecbf9fcb150a5`,title:`Comparing Plugin Code in Capacitor, Flutter, and React Native`,description:`Side-by-side Kotlin echo plugins for Capacitor, React Native, and Flutter show how each framework registers methods and bridges to JavaScript.`,image:`https://rdlabo.dev/article-images/aecbf9fcb150a5.svg`,imageWidth:1200,imageHeight:630,emoji:`ð¬`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/aecbf9fcb150a5`,publishedAt:`2024-11-28T02:31:42.000Z`,publishedDate:`2024-11-28`},{slug:`d06742a359b6fa`,title:`Review Theme Colors and Dark Mode Settings Changed in Ionic 8`,description:`Ionic 8 empties the default variables.scss in favor of WCAG AA contrast colors in core styles, updates the color generator, and moves dark mode to :root.ion-palette-dark with CSS imports.`,image:`https://rdlabo.dev/article-images/d06742a359b6fa.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/d06742a359b6fa`,publishedAt:`2024-11-27T14:27:29.000Z`,publishedDate:`2024-11-27`},{slug:`71e3a422af48c5`,title:`Five Steps to Migrate a Capacitor Plugin to SPM Support`,description:`Rename plugin entry files, run capacitor-plugin-converter, scaffold a fresh plugin template, replace the ios folder and podspec paths, then mirror CocoaPods dependencies in Package.swift.`,image:`https://rdlabo.dev/article-images/71e3a422af48c5.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/71e3a422af48c5`,publishedAt:`2024-11-27T09:37:07.000Z`,publishedDate:`2024-11-27`},{slug:`66d020dcffa639`,title:`How to Tell Whether a Capacitor Plugin Supports SPM`,description:`Capacitor plugins usually ship both a .podspec for CocoaPods and Package.swift for Swift Package Manager â here is how to check each and what to expect as SPM adoption grows.`,image:`https://rdlabo.dev/article-images/66d020dcffa639.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/66d020dcffa639`,publishedAt:`2024-11-27T08:23:26.000Z`,publishedDate:`2024-11-27`},{slug:`4456315c9ca829`,title:`How to Adopt Swift Package Manager in Capacitor iOS`,description:"Capacitor v6 adds experimental SPM support via `npx cap add ios --packagemanager SPM`, replaces the Podfile with CapApp-SPM, and removes the need for manual pod update.",image:`https://rdlabo.dev/article-images/4456315c9ca829.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/4456315c9ca829`,publishedAt:`2024-11-27T04:52:52.000Z`,publishedDate:`2024-11-27`}
5,{slug:`97b767dd27b4c5`,title:`Ionic Is a UI Framework Specialized for Mobile UI`,description:`From 2018 book definitions to Ionic 8 in 2024 â Ionic is an open-source mobile UI toolkit built on web standards, not just a hybrid-app framework tied to Angular.`,image:`https://rdlabo.dev/article-images/97b767dd27b4c5.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/97b767dd27b4c5`,publishedAt:`2024-11-27T03:03:58.000Z`,publishedDate:`2024-11-27`},{slug:`bab2fa94f4a6d8`,title:`Two Snags When Updating a Static Prerender Site to Angular 19`,description:`While upgrading Angular prerender sites to v19, I hit a TS2315 Http2ServerResponse generic error fixed by reinstalling node_modules and Sass @import deprecation warnings addressed with sass-migrator.`,image:`https://rdlabo.dev/article-images/bab2fa94f4a6d8.svg`,imageWidth:1200,imageHeight:630,emoji:`ð¦`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/bab2fa94f4a6d8`,publishedAt:`2024-11-23T08:14:52.000Z`,publishedDate:`2024-11-23`},{slug:`c6623c6ccc16dd`,title:`Migrating to OnPush Change Detection in Ionic Angular`,description:`How I migrated winecode to OnPush using Angular Signalsâexcluding ion-nav and ion-router-outlet componentsâwith step-by-step migration and ESLint checks.`,image:`https://rdlabo.dev/article-images/c6623c6ccc16dd.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/c6623c6ccc16dd`,publishedAt:`2024-10-15T06:30:54.000Z`,publishedDate:`2024-10-15`},{slug:`ee3c566ef29e34`,title:`Building an OSS for Variable-Size and Reverse Virtual Scroll with Angular CDK`,description:`Why I created @rdlabo/ngx-cdk-scroll-strategies for per-item virtual scroll sizes and LINE-style reverse scrolling on CdkVirtualScrollViewport.`,image:`https://rdlabo.dev/article-images/ee3c566ef29e34.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/ee3c566ef29e34`,publishedAt:`2024-07-30T07:04:10.000Z`,publishedDate:`2024-07-30`},{slug:`eead4251326b5a`,title:`Four Things to Watch When Implementing Stripe Identity`,description:`Lessons from running Stripe Identity in production in Japanâdocument types, My Number card cases, lighting, and how to handle verification failures.`,image:`https://rdlabo.dev/article-images/eead4251326b5a.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/eead4251326b5a`,publishedAt:`2024-07-18T01:50:07.000Z`,publishedDate:`2024-07-18`},{slug:`f085832bed97b4`,title:`Angular Signal Effects Are Clearer with IIFEs`,description:`Why effects skip async and conditional signal reads, and two patternsâIIFE and first-line assignmentâto register dependencies reliably.`,image:`https://rdlabo.dev/article-images/f085832bed97b4.svg`,imageWidth:1200,imageHeight:630,emoji:`ð¥`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/f085832bed97b4`,publishedAt:`2024-07-02T05:08:01.000Z`,publishedDate:`2024-07-02`},{slug:`6109f1f7998920`,title:`[Ionic Angular] ionic-angular-collect-icons â Simplifying addIcons`,description:`Auto-collect ion-icon name attributes and generate addIcons registrations for Ionic Angular standalone apps, with dev and production workflows.`,image:`https://rdlabo.dev/article-images/6109f1f7998920.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/6109f1f7998920`,publishedAt:`2024-01-04T09:41:54.000Z`,publishedDate:`2024-01-04`},{slug:`9f5f04734dc684`,title:`Checking the Latest Ionic Angular Setup as of January 2024`,description:`A January 2024 checklist for Ionic Angular: New Form Syntax, Angular and Ionic standalone migration, and built-in control flow.`,image:`https://rdlabo.dev/article-images/9f5f04734dc684.svg`,imageWidth:1200,imageHeight:630,emoji:`ð·`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/9f5f04734dc684`,publishedAt:`2024-01-04T09:01:55.000Z`,publishedDate:`2024-01-04`},{slug:`606fd444a76f8f`,title:`I Built an ESLint Rule to Prevent Accidental Imports from IonicModule`,description:`Ionic Angular Standalone introduced two import paths, and IDE suggestions can pick the wrong one. This ESLint rule flags @ionic/angular imports and supports auto-fix.`,image:`https://rdlabo.dev/article-images/606fd444a76f8f.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/606fd444a76f8f`,publishedAt:`2023-12-23T00:59:26.000Z`,publishedDate:`2023-12-23`},{slug:`d6b6c32a1f9d84`,title:`Best Practices for Ionic Angular Standalone Architecture`,description:`Component import groups, addIcons trade-offs, ViewModel separation, and ionic-angular-collect-icons as practical answers to Ionic Standalone DX feedback.`,image:`https://rdlabo.dev/article-images/d6b6c32a1f9d84.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/d6b6c32a1f9d84`,publishedAt:`2023-12-20T07:45:46.000Z`,publishedDate:`2023-12-20`},{slug:`d6c6c428da299d`,title:`Migrating Ionic Angular to Standalone Automatically with Codemods`,description:`How to run @ionic/angular-standalone-codemods with Prettier prep, what each migration step changes, and what to verify before committing.`,image:`https://rdlabo.dev/article-images/d6c6c428da299d.svg`,
5imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/d6c6c428da299d`,publishedAt:`2023-12-20T02:09:28.000Z`,publishedDate:`2023-12-20`},{slug:`8beb8c91e7d337`,title:`Understanding Ionic Angular Standalone Architecture in Depth`,description:`How IonicModule.forRoot became provideIonicAngular, why each Ionic component is now standalone, and how IonIcon bundling with addIcons improves tree-shaking and ESBuild.`,image:`https://rdlabo.dev/article-images/8beb8c91e7d337.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/8beb8c91e7d337`,publishedAt:`2023-12-19T14:33:29.000Z`,publishedDate:`2023-12-19`},{slug:`21ec0111b532c3`,title:`Looking Back at Capacitor Stripe Plugin Updates So Far`,description:`A timeline of @capacitor-community/stripe from Cordova origins through security rework, documentation, Identity and Terminal, and plugin splits in v5.1.0.`,image:`https://rdlabo.dev/article-images/21ec0111b532c3.svg`,imageWidth:1200,imageHeight:630,emoji:`ð¦`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/21ec0111b532c3`,publishedAt:`2023-11-30T13:37:29.000Z`,publishedDate:`2023-11-30`},{slug:`d017496527af9d`,title:`How to Use Angular Standalone with the Ionic CLI`,description:`Notes on updating the Ionic CLI and angular.json schematics so ng generate produces Standalone pages and components, plus the routes file naming rule.`,image:`https://rdlabo.dev/article-images/d017496527af9d.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/d017496527af9d`,publishedAt:`2023-05-29T01:25:14.000Z`,publishedDate:`2023-05-29`},{slug:`5ae89ca93e1bfe`,title:`Catching Up a Neglected Ionic Angular Project After Two Years`,description:`Step-by-step upgrade from Angular 11/Ionic 5 to Angular 16/Ionic 7: ng update, Capacitor migration, Standalone, strict mode, and extracting overlay controllers.`,image:`https://rdlabo.dev/article-images/5ae89ca93e1bfe.svg`,imageWidth:1200,imageHeight:630,emoji:`ð¨`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/5ae89ca93e1bfe`,publishedAt:`2023-05-24T03:43:18.000Z`,publishedDate:`2023-05-24`},{slug:`7aa0b566f97c80`,title:`I Released an ESLint Plugin with Useful Rules for Ionic Angular Projects ð`,description:`@rdlabo/eslint-plugin-rules bundles ESLint rules for Ionic Angular: migrate constructor DI to inject with auto-fix, enforce inject imports, and block inline overlay elements.`,image:`https://rdlabo.dev/article-images/7aa0b566f97c80.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/7aa0b566f97c80`,publishedAt:`2023-04-27T10:38:47.000Z`,publishedDate:`2023-04-27`},{slug:`0d33b439941a38`,title:`Ionic 7 Dropped swipeToClose â Here's an Alternative Implementation`,description:`Ionic 7 removed swipeToClose on non-card modals. This Angular example recreates swipe-to-dismiss with touch events and RxJS on the modal page component.`,image:`https://rdlabo.dev/article-images/0d33b439941a38.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/0d33b439941a38`,publishedAt:`2023-04-18T04:13:04.000Z`,publishedDate:`2023-04-18`},{slug:`1eb9e13c8a5945`,title:`Learn Ionic 7's Refreshed Form Syntax`,description:`Ionic 7 simplifies ion-input, ion-select, and other form controls with label and helper-text attributes. This guide covers basic migrations and advanced layouts with aria-labelledby and legacy.`,image:`https://rdlabo.dev/article-images/1eb9e13c8a5945.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/1eb9e13c8a5945`,publishedAt:`2023-04-10T02:05:31.000Z`,publishedDate:`2023-04-10`},{slug:`e3ee9228949c3b`,title:`When Using structuredClone, Mind Compatibility for Now`,description:`structuredClone requires iOS 15.4+; warn users to update or add the ungap polyfill if you still need older iOS versions.`,image:`https://rdlabo.dev/article-images/e3ee9228949c3b.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/e3ee9228949c3b`,publishedAt:`2022-12-20T09:03:18.000Z`,publishedDate:`2022-12-20`},{slug:`3dc3a703ecb9f5`,title:`A Clever Way for Restaurants and Companies to Share SMS Authentication`,description:`Share SMS 2FA across staff with a cheap Android ph
5one, povo SIM, frzindev SMS forwarding to Gmail, and optional email forwarding.`,image:`https://rdlabo.dev/article-images/3dc3a703ecb9f5.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/3dc3a703ecb9f5`,publishedAt:`2022-12-11T08:15:07.000Z`,publishedDate:`2022-12-11`},{slug:`6d8f9064a3ec40`,title:`[Trending] Do You Know Trapeze? Manage iOS and Android App Config from a Single YAML File`,description:`Intro to Trapeze for syncing native app version, permissions, and CI build numbers from one YAML config file.`,image:`https://rdlabo.dev/article-images/6d8f9064a3ec40.svg`,imageWidth:1200,imageHeight:630,emoji:`ð¤`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/6d8f9064a3ec40`,publishedAt:`2022-12-11T08:15:07.000Z`,publishedDate:`2022-12-11`},{slug:`49fe9bfe302800`,title:`My Take on Ionic Joining OutSystems`,description:`Notes on the IonicâOutSystems deal: enterprise alignment, OSS independence, and what to expect next.`,image:`https://rdlabo.dev/article-images/49fe9bfe302800.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/49fe9bfe302800`,publishedAt:`2022-11-11T03:28:38.000Z`,publishedDate:`2022-11-11`},{slug:`d9b0869e1ebea2`,title:`Android Chrome 108 Changes How the Viewport Works`,description:`Chrome 108 on Android resizes the layout viewport when the keyboard opens; set interactive-widget on the viewport meta tag if needed.`,image:`https://rdlabo.dev/article-images/d9b0869e1ebea2.svg`,imageWidth:1200,imageHeight:630,emoji:`ð£`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/d9b0869e1ebea2`,publishedAt:`2022-11-10T01:38:33.000Z`,publishedDate:`2022-11-10`},{slug:`37c9dee03285ea`,title:`Revoking Sign In with Apple Tokens from Capacitor in Node.js`,description:`Implement Apple token revocation in Node.js for App Store account-deletion requirements with Capacitor and Firebase Auth.`,image:`https://rdlabo.dev/article-images/37c9dee03285ea.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/37c9dee03285ea`,publishedAt:`2022-10-31T09:02:58.000Z`,publishedDate:`2022-10-31`},{slug:`269d5dff02e0d7`,title:`Angular i18n Is Great for Semi-Automated Multilingual Apps â Including DeepL Auto-Translation`,description:`Why compile-time Angular i18n shines, plus a workflow to auto-translate JSON locale files with DeepL.`,image:`https://rdlabo.dev/article-images/269d5dff02e0d7.svg`,imageWidth:1200,imageHeight:630,emoji:`ð¦`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/269d5dff02e0d7`,publishedAt:`2022-10-31T04:49:41.000Z`,publishedDate:`2022-10-31`},{slug:`134b412c83be80`,title:`How to Update a Capacitor 3 Plugin to Capacitor 4 and Open a Pull Request`,description:`Check plugin Capacitor version support, use @rdlabo/capacitor-plugin-to-v4, npm link, test, and submit a PR.`,image:`https://rdlabo.dev/article-images/134b412c83be80.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/134b412c83be80`,publishedAt:`2022-08-01T10:08:21.000Z`,publishedDate:`2022-08-01`},{slug:`42fde7b1159b66`,title:`Becoming Japan's First Ionic Developer Expert`,description:`Recognized as an Ionic Developer Expert at Ionic Conference 2022 â OSS services, regional meetups, and how to apply to the program.`,image:`https://rdlabo.dev/article-images/42fde7b1159b66.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/42fde7b1159b66`,publishedAt:`2022-07-26T02:23:29.000Z`,publishedDate:`2022-07-26`},{slug:`f414f5d2f1a6d0`,title:`[Angular] Detect Autocomplete Input on Mobile Safari Too`,description:`Work around a WKWebView bug where autocomplete fills ion-input without firing input events, using the change event instead.`,image:`https://rdlabo.dev/article-images/f414f5d2f1a6d0.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/f414f5d2f1a6d0`,publishedAt:`2022-07-24T02:38:24.000Z`,publishedDate:`2022-07-24`},{slug:`c899eee25d0191`,title:`Reorganizing the Risks in "Seven Firebase Authentication Pitfalls"`,description:`A response to Flatt Security's Firebase Authentication risk articleâseparating product specs, implementation mistakes, and genuine Firebase concerns.`,image:`https://rdlabo.dev/article-images/c899eee25d0191.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/c899eee25d0191`,publishedAt:`2022-04-27T06:49:35.000Z`,publishedDate:`2022-04-27`},{slug:`adf4cf0d6d7114`,title:`[Ionic] I Want Collapsible Large Titles on Android Design Too!`,description:`Enable Ionic Collapsible Large Titles on Android Material Design by forcing ion-header to iOS mode while keeping ion-toolbar in md mode.`,image:`https://rdlabo.dev/article-images/adf4cf0d6d7114.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/adf4cf0d6d7114`,publishedAt:`2022-04-21T08:13:06.000Z`,publishedDate:`2022-04-21`},{slug:`0dd69cc205c076`,title:`Choosing How to Run Firebase Authentication OAuth on Capacitor`,description:`Compare Capacitor plugins for Sign in with Apple, Facebook Login, and Google Auth, and wire native OAuth tokens into Firebase Authentication.`,image:`https://rdlabo.dev/article-images/0dd69cc205c076.svg`,imageWidth:1200,imageHeight:630,emoji:`ð¥`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/0dd69cc205c076`,publishedAt:`2022-04-21T07:01:01.000Z`,publishedDate:`2022-04-21`},{slug:`f91d7a65d2772c`,title:`[@angular/fire] Upgrading to Firebase v9`,description:`Migrate AngularFire Authentication from compat modules to modular Firebase v9 APIs, including Capacitor iOS persistence setup.`,image:`https://rdlabo.dev/article-images/f91d7a65d2772c.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/f91d7a65d2772c`,publishedAt:`2022-04-12T02:00:07.000Z`,publishedDate:`2022-04-12`},{slug:`fe628d4601625e`,title:`Why Run CI (Continuous Integration)?`,description:`CI exists to remove repetitive build, format, lint, and review checks from every pull request so developers can focus on work only humans should do.`,image:`https://rdlabo.dev/article-images/fe628d4601625e.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/fe628d4601625e`,publishedAt:`2022-02-15T01:10:24.000Z`,publishedDate:`2022-02-15`},{slug:`5dec0bec70eab7`,title:`How OSS Work to Help Web Developers Earn Led to Stripe Sponsorship`,description:`From Ionic meetups and Capacitor plugins to GitHub Sponsors support from Stripeâhow practical open-source sharing turned into sponsorship.`,image:`https://rdlabo.dev/article-images/5dec0bec70eab7.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/5dec0bec70eab7`,publishedAt:`2022-02-13T01:17:06.000Z`,publishedDate:`2022-02-13`},{slug:`62f404d448df01`,title:`[Ionic Angular] Rethinking ion-datetime in v
56`,description:`Compare inline accordion, split month-year and date, modal, and popover patterns for ion-datetime picker UI in Ionic v6.`,image:`https://rdlabo.dev/article-images/62f404d448df01.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/62f404d448df01`,publishedAt:`2022-01-30T06:37:04.000Z`,publishedDate:`2022-01-30`},{slug:`6e0f7e0ee2f53b`,title:`Fixing Image Flash During StencilJS Prerender`,description:`Disable prerender hashAssets when StencilJS hydration replaces HTML and causes images to flash because asset URLs no longer match.`,image:`https://rdlabo.dev/article-images/6e0f7e0ee2f53b.svg`,imageWidth:1200,imageHeight:630,emoji:`ð¨`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/6e0f7e0ee2f53b`,publishedAt:`2022-01-06T07:05:29.000Z`,publishedDate:`2022-01-06`},{slug:`f7ab46b76af59f`,title:`In StencilJS, @Prop Does Not Always Trigger a Re-renderâUse @Watch Too`,description:`Why changing a Stencil @Prop after render does not update the DOM, and how to combine @Watch with @State to trigger re-renders.`,image:`https://rdlabo.dev/article-images/f7ab46b76af59f.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/f7ab46b76af59f`,publishedAt:`2021-12-21T03:35:20.000Z`,publishedDate:`2021-12-21`},{slug:`60b4be5be02704`,title:`Writing Angular Without Learning RxJS [2021 / RxJS 7 Edition]`,description:`A practical guide to using Angular with only the RxJS you need for HttpClient, including firstValueFrom for Promise-style async/await.`,image:`https://rdlabo.dev/article-images/60b4be5be02704.svg`,imageWidth:1200,imageHeight:630,emoji:`ð¦`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/60b4be5be02704`,publishedAt:`2021-12-15T07:17:09.000Z`,publishedDate:`2021-12-15`},{slug:`6aa6c1fcf95bd4`,title:`Designing Loading Controller Code for Network Requests in Ionic Angular`,description:`Move LoadingController presentation and dismissal into a service with RxJS so page components stay thin during HTTP calls.`,image:`https://rdlabo.dev/article-images/6aa6c1fcf95bd4.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/6aa6c1fcf95bd4`,publishedAt:`2021-12-14T10:21:35.000Z`,publishedDate:`2021-12-14`},{slug:`31a4bea8346e00`,title:`Resolving catchError Synchronously When a Request Fails in Ionic Angular`,description:`Why AlertController in catchError completes before the user dismisses the alert, and how to wrap it in a Promise so error handling waits.`,image:`https://rdlabo.dev/article-images/31a4bea8346e00.svg`,imageWidth:1200,imageHeight:630,emoji:`ð¡`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/31a4bea8346e00`,publishedAt:`2021-12-14T10:21:34.000Z`,publishedDate:`2021-12-14`},{slug:`7e5049389d0289`,title:`[Ionic Angular] Replicating ion-back-button Behavior in Code`,description:`How to programmatically pop the navigation stack or navigate to defaultHref, matching the logic built into ion-back-button.`,image:`https://rdlabo.dev/article-images/7e5049389d0289.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/7e5049389d0289`,publishedAt:`2021-12-10T05:20:52.000Z`,publishedDate:`2021-12-10`},{slug:`5b371823a31d4f`,title:`How to Deploy a StencilJS Site on Firebase Hosting`,description:`Fix 404 errors when deploying StencilJS to Firebase Hostingâdisable hash filenames, disable cache, and add SPA rewrites.`,image:`https://rdlabo.dev/article-images/5b371823a31d4f.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/5b371823a31d4f`,publishedAt:`2021-12-07T02:55:22.000Z`,publishedDate:`2021-12-07`},{slug:`40d7bd7c720636`,title:`Measuring Ionic Angular Performance on an M1 MacBook Pro`,description:`Build time benchmarks for Ionic Angular on M1 MacBook Pro vs Intel Macs, plus notes on the Â¥300k depreciation limit.`,image:`https://rdlabo.dev/article-images/40d7bd7c720636.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/40d7bd7c720636`,publishedAt:`2021-12-05T02:26:40.000Z`,publishedDate:`2021-12-05`},{slug:`ded32a2a313ffd`,title:`A Deep Dive into When Ionic Components Load`,description:`How Ionic lazy-loads Web Components, why UI can stutter on first paint, and preload tricks with display:none or dynamic DOM.`,image:`https://rdlabo.dev/article-images/ded32a2a313ffd.svg`,imageWidth:1200,imageHeight:630,emoji:`ð¦`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/ded32a2a313ffd`,publishedAt:`2021-12-01T08:33:30.000Z`,publishedDate:`2021-12-01`},{slug:`c3cc5264794570`,title:`Visualize Ionic/Angular Bundle Files with webpack-bundle-analyzer`,description:`Use webpack-bundle-analyzer with ng build --stats-json to size Ionic/Angular lazy-loaded modules and improve UX.`,image:`https://rdlabo.dev/article-images/c3cc5264794570.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/c3cc5264794570`,publishedAt:`2021-12-01T04:28:21.000Z`,publishedDate:`2021-12-01`},{slug:`8ac1bc1be13f16`,title:`Develop Ionic/Angular Projects with Module Boundaries in Mind`,description:`Balance lazy-loaded ngModules in Ionic/Angularâavoid huge initial bundles and too many tiny splits that hurt navigation feel.`,image:`https://rdlabo.dev/article-images/8ac1bc1be13f16.svg`,imageWidth:1200,imageHeight:630,emoji:`ð§©`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/8ac1bc1be13f16`,publishedAt:`2021-12-01T02:37:42.000Z`,publishedDate:`2021-12-01`},{slug:`bf448fedc16edd`,title:`Understanding Large Title in the Ionic Framework Starter Template`,description:`How Ionic reproduces iOS Large Title with dual ion-header, collapse=condense, size=large, and when to remove it.`,image:`https://rdlabo.dev/article-images/bf448fedc16edd.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/bf448fedc16edd`,publishedAt:`2021-09-07T07:09:05.000Z`,publishedDate:`2021-09-07`},{slug:`a259a3241918da`,title:`Why I Fully Moved to Serverless: SecurityâI Had Been Leaving Servers Unpatched`,description:`Lessons from years of "set it and forget it" VPS and EC2 opsâwhy exposing servers is risky, and how serverless shifts security patches to the platform.`,image:`https://rdlabo.dev/article-images/a259a3241918da.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/a259a3241918da`,publishedAt:`2021-04-19T12:51:52.000Z`,publishedDate:`2021-04-19`},{slug:`13139f33603b01`,title:`The Frameworks and Platforms I Use for App Development, Front to Back`,description:`A snapshot of my default stack from Ionic and Angular through NestJS, AWS Lambda, and Firebaseâuseful when collaborating on B2C and B2B projects.`,image:`https://rdlabo.dev/article-images/13139f33603b01.svg`,imageWidth:1200,imageHeight:630,emoji:`â³`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/13139f33603b01`,publishedAt:`2021-04-19T05:40:20.000Z`,publishedDate:`2021-04-19`},{slug:`c8e7778eb80e7b`,title:`How to Test Firing a Change Event When a select Changes in Stencil`,description:`E2E testing a Stencil Web Component select inside Shadow DOMâwork around Puppeteer limitations with evaluateHandle and dispatchEvent.`,image:`https://rdlabo.dev/article-images/c8e7778eb80e7b.svg`,imageWidth:1200,imageHeight:630,emoji:`ð¡`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/c8e7778eb80e7b`,publishedAt:`2021-04-03T04:37:44.000Z`,publishedDate:`2021-04-03`},{slug:`f66b43bc8aca6b`,title:`NativeScript for Capacitor and Its Plugins Hit BetaâAccess Native APIs Directly from JavaScript`,description:`NativeScript for Capacitor beta lets hybrid apps call iOS and Android APIs from JavaScriptâplus @nativescript-community/capacitor-plugins for reuse.`,image:`https://rdlabo.dev/article-images/f
566b43bc8aca6b.svg`,imageWidth:1200,imageHeight:630,emoji:`â¨`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/f66b43bc8aca6b`,publishedAt:`2021-02-25T00:56:59.000Z`,publishedDate:`2021-02-25`},{slug:`9c04dee47ad402`,title:`A Look at the Ionic Team's 2021 Plans Through Their Repositories`,description:`What Ionic Framework 6, Capacitor 3, accessibility, and desktop milestones suggest for hybrid app development in 2021.`,image:`https://rdlabo.dev/article-images/9c04dee47ad402.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/9c04dee47ad402`,publishedAt:`2021-01-02T02:13:40.000Z`,publishedDate:`2021-01-02`},{slug:`5efcdcd898048a`,title:`Organizing Ionic and Its Surrounding Ecosystem`,description:`Clarify what Ionic coversâUI components, Stencil, Capacitor, Cordova, and Ionic Nativeâso scope mismatches do not derail conversations.`,image:`https://rdlabo.dev/article-images/5efcdcd898048a.svg`,imageWidth:1200,imageHeight:630,emoji:`â³`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/5efcdcd898048a`,publishedAt:`2020-12-25T03:18:25.000Z`,publishedDate:`2020-12-25`},{slug:`dd7abeaefdb76d`,title:`Handling capacitor/ios Keyboard Resize Yourself Makes It Smoother`,description:`Disable Capacitor's default iOS keyboard resize and animate margin-bottom on keyboardWillShow for smoother fixed-footer input UX.`,image:`https://rdlabo.dev/article-images/dd7abeaefdb76d.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/dd7abeaefdb76d`,publishedAt:`2020-12-24T04:57:28.000Z`,publishedDate:`2020-12-24`},{slug:`98de1f6d3846ab`,title:`Summarizing the Role of Stencil's Host Element After Reading Ionic Code`,description:`What Stencil's virtual Host API doesâhost element manipulation, top-level DOM wrapper, @Element(), and Shadow DOM :host styling.`,image:`https://rdlabo.dev/article-images/98de1f6d3846ab.svg`,imageWidth:1200,imageHeight:630,emoji:`ð§·`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/98de1f6d3846ab`,publishedAt:`2020-12-22T05:31:58.000Z`,publishedDate:`2020-12-22`},{slug:`3b00a8154ab835`,title:`Understanding the slot Attribute Using Ionic's IonItem as a Reference`,description:`How IonItem's start/end/default slots work in Shadow DOM, ::slotted() styling, and flex layout in item-inner.`,image:`https://rdlabo.dev/article-images/3b00a8154ab835.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/3b00a8154ab835`,publishedAt:`2020-12-21T03:10:43.000Z`,publishedDate:`2020-12-21`},{slug:`5f0419da880ab0`,title:`Don't Blindly Trust Freelancers: Manage Orders with Contracts and Task Splitting`,description:`Risk control when outsourcing to freelancersâuse contracts, split work into smaller tasks, and bring in a second opinion instead of handing everything off.`,image:`https://rdlabo.dev/article-images/5f0419da880ab0.svg`,imageWidth:1200,imageHeight:630,emoji:`ð·`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/5f0419da880ab0`,publishedAt:`2020-12-20T04:04:11.000Z`,publishedDate:`2020-12-20`},{slug:`b3693ff01d31a3`,title:`Ionic's IonItem Can Become a div, a, or buttonâa Versatile Component`,description:`How ion-item picks div, anchor, or button from href and button attributes for accessible, standards-friendly DOM.`,image:`https://rdlabo.dev/article-images/b3693ff01d31a3.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/b3693ff01d31a3`,publishedAt:`2020-12-18T01:44:17.000Z`,publishedDate:`2020-12-18`},{slug:`2adf2bdb3a97e4`,title:`A Helper Method for Merging Associative Arrays in Ionic`,description:`ArrayConcatById merges timeline-style arrays by ID with overwrite, deletion, and sort options for Infinite Scroll and Refresher.`,image:`https://rdlabo.dev/article-images/2adf2bdb3a97e4.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/2adf2bdb3a97e4`,publishedAt:`2020-12-17T01:55:18.000Z`,publishedDate:`2020-12-17`},{slug:`64852bb8dc1343`,title:`Pause New App Development and Submit Your Google Play Console Content Rating First`,description:`Content rating by an external agency can block new Android releases for days. Submit it earlyâeven before your binary is ready.`,image:`https://rdlabo.dev/article-images/64852bb8dc1343.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/64852bb8dc1343`,publishedAt:`2020-12-15T02:04:46.000Z`,publishedDate:`2020-12-15`}
5,{slug:`d7e72e3eae0bd8`,title:`Ionic/Angular Toast Gets Easier with a Helper Method`,description:`Wrap ToastController in a service with defaults and optional Capacitor Haptics so feedback toasts stay consistent across a growing app.`,image:`https://rdlabo.dev/article-images/d7e72e3eae0bd8.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/d7e72e3eae0bd8`,publishedAt:`2020-12-14T02:13:47.000Z`,publishedDate:`2020-12-14`},{slug:`61822edac67d0e`,title:`Implement Ionic/Angular Lifecycle Interfaces to Avoid Typos`,description:`Implement ViewWillEnter and related Ionic lifecycle interfaces so compiler errors catch misspelled ionView* method names.`,image:`https://rdlabo.dev/article-images/61822edac67d0e.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/61822edac67d0e`,publishedAt:`2020-12-10T02:37:48.000Z`,publishedDate:`2020-12-10`},{slug:`70d80262263c14`,title:`Smart AlertController Refactoring with Promises in Ionic`,description:`Why handler return values do not flow through onWillDismiss, and how to wrap AlertController in a Promise for clean async refactoring.`,image:`https://rdlabo.dev/article-images/70d80262263c14.svg`,imageWidth:1200,imageHeight:630,emoji:`ð¸`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/70d80262263c14`,publishedAt:`2020-12-10T02:18:23.000Z`,publishedDate:`2020-12-10`},{slug:`fb02f0fe826f22`,title:`The Standard Way to Get Fast Live Reload in Ionic/Angular`,description:`Enable Angular 11 HMR with ionic serve -- --hmr for much faster feedback on large Ionic/Angular projects.`,image:`https://rdlabo.dev/article-images/fb02f0fe826f22.svg`,imageWidth:1200,imageHeight:630,emoji:`ð
`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/fb02f0fe826f22`,publishedAt:`2020-12-06T09:05:02.000Z`,publishedDate:`2020-12-06`},{slug:`008e0ccaf6028c`,title:`How to Start an Ionic + NestJS Project with the Monorepo Template`,description:`Step-by-step setup using the create-ionic-nest-app template: clone, generate app and API, and npm run release.`,image:`https://rdlabo.dev/article-images/008e0ccaf6028c.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/008e0ccaf6028c`,publishedAt:`2020-12-04T02:05:55.000Z`,publishedDate:`2020-12-04`},{slug:`a221ba2bba33f1`,title:`Implementing a Half Modal in Ionic/Angular`,description:`CSS and ModalController options for half-height modals, backdrop on stacked modals, and expanding to full screen when the keyboard opens.`,image:`https://rdlabo.dev/article-images/a221ba2bba33f1.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/a221ba2bba33f1`,publishedAt:`2020-12-02T13:36:40.000Z`,publishedDate:`2020-12-02`},{slug:`f3fdf9c42ba8b9`,title:`I Added Links from the Ionic Framework Japanese Documentation to Zenn`,description:`An experimental cross-link between ionicframework.jp, ionicframework.com/jp/docs, and the Zenn Ionic topic page.`,image:`https://rdlabo.dev/article-images/f3fdf9c42ba8b9.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/f3fdf9c42ba8b9`,publishedAt:`2020-12-01T15:04:39.000Z`,publishedDate:`2020-12-02`},{slug:`b25c18b243a5b8`,title:`Making an Ionic/Angular App Compatible with iOS 12 (Backward Compatibility)`,description:`Fix ReferenceError: Can't find variable: globalThis on iOS 12 by adding the @ungap/global-this polyfill to polyfills.ts.`,image:`https://rdlabo.dev/article-images/b25c18b243a5b8.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/b25c18b243a5b8`,publishedAt:`2020-12-01T09:22:35.000Z`,publishedDate:`2020-12-01`},{slug:`1fda37f6e1025999e86e`,title:`Product Version Management and Release Flow with GitHub Actions and np Was Surprisingly Easy`,description:`Automate version tags and release notes with np, align package.json with GitHub releases, and trigger deploys from version tags.`,image:`https://rdlabo.dev/article-images/1fda37f6e1025999e86e.svg`,imageWidth:1200,imageHeight:630,emoji:`ð§`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/1fda37f6e1025999e86e`,publishedAt:`2020-11-10T06:24:02.000Z`,publishedDate:`2020-11-10`},{slug:`1e80620bf432e4eb09f6`,title:`CSS Variable Color Schemes Work Better When You Also Define contrast and rgb`,description:`Beyond primary and secondary CSS variables, add contrast and rgb values to avoid one-off colors and improve maintainability.`,image:`https://rdlabo.dev/article-images/1e80620bf432e4eb09f6.svg`,imageWidth:1200,imageHeight:630,emoji:`â½`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/1e80620bf432e4eb09f6`,publishedAt:`2020-09-26T02:30:20.000Z`,publishedDate:`2020-09-26`},{slug:`1e85816cfca74375156f`,title:`Where Is a Web Designer's Canvas?`,description:`CrowdWorks vs Lancers deliverables, in-browser design, and why HTML/CSSânot mockup imagesâshould be the web design canvas.`,image:`https://rdlabo.dev/article-images/1e85816cfca74375156f.svg`,imageWidth:1200,imageHeight:630,emoji:`ð¦`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/1e85816cfca74375156f`,publishedAt:`2020-09-19T01:15:04.000Z`,publishedDate:`2020-09-19`},{slug:`4a241cacc7e364be8066`,title:`How to Turn Your Website into an iOS/Android App in Just Five Minutes`,description:`Step-by-step Capacitor tutorial: set up Node, Xcode, and Android Studio, wrap a static site in www, and run it in iOS and Android emulators.`,image:`https://rdlabo.dev/article-images/4a241cacc7e364be8066.svg`,
5imageWidth:1200,imageHeight:630,emoji:`ð±`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/4a241cacc7e364be8066`,publishedAt:`2020-09-17T10:23:04.000Z`,publishedDate:`2020-09-17`},{slug:`aaa2fd4c403df1eba4c7`,title:`I Realized PageSpeed Insights Is a Tool for Screening Out Web Production Sales Pitches`,description:`Use PageSpeed Insights on a prospect's sample URLâif they cannot score above red (50), treat that as a hard filter, not a performance benchmark.`,image:`https://rdlabo.dev/article-images/aaa2fd4c403df1eba4c7.svg`,imageWidth:1200,imageHeight:630,emoji:`ð`,sourceName:`Zenn`,originalUrl:`https://zenn.dev/rdlabo/articles/aaa2fd4c403df1eba4c7`,publishedAt:`2020-09-17T08:21:15.000Z`,publishedDate:`2020-09-17`}];var sE=[`2026`,`2025`,`2024`,`2023`,`2022`,`2021`,`2020`];var aE={"iphone-duo-cross-platform-introduction":()=>import(`./chunk-5-GHAS4D.js`),"capacitor-brotherprint-bluetooth-v8-2":()=>import(`./chunk-DKo82H4y2.js`),"ionic-theme-reusable-css-v9-1":()=>import(`./chunk-CGgxphyk.js`),"cloudflare-workers-ai-model-benchmark":()=>import(`./chunk-BwpHDp8R2.js`),"playwright-visual-regression-ci-baseline":()=>import(`./chunk-e9GD7QlP2.js`),"npm-beta-per-pull-request":()=>import(`./chunk-dOabKZwh2.js`),b3874dc571f7da:()=>import(`./chunk-DTymhI7e2.js`),"ionic-themes-ionic9-major-update":()=>import(`./chunk-DMvHKCxq.js`),"ionic-theme-md3":()=>import(`./chunk-BmEJU3IR2.js`),"ionic-9-components-got-better":()=>import(`./chunk-BQOqegzy2.js`),"capawesome-live-update-release-cycle":()=>import(`./chunk-BweL3U4w.js`),"mobile-app-live-updates":()=>import(`./chunk-fWkFfHOl.js`),f3f96d96bd5e87:()=>import(`./chunk-D8KBHMbB.js`),"custom-eslint-rules-for-ai-coding":()=>import(`./chunk-IgaK8q1E.js`),"cloudflare-workers-after-rich-programming":()=>import(`./chunk-Cqk-sev1.js`),"workers-kv-cache-api-boundary":()=>import(`./chunk-CsYf1jtV.js`),"workers-hono-websocket-hibernation":()=>import(`./chunk-BusaHAA8.js`),"workers-hono-sse-vs-websocket":()=>import(`./chunk-Bfta2AWi2.js`),"workers-hono-zod-number-coercion":()=>import(`./chunk-BtlS-SoF.js`),"workers-hono-cron-subrequest-limit":()=>import(`./chunk-pWzBwfVf2.js`),"workers-hono-container-lifecycle":()=>import(`./chunk-CmrqMDIU.js`),"workers-hono-perflog-vs-tracing":()=>import(`./chunk-B0GXNV0F.js`),"workers-hono-hyperdrive-connection-lifecycle":()=>import(`./chunk-efkAUVm0.js`),"workers-hono-mysql-jst-timezone":()=>import(`./chunk-P3LHRjIM2.js`),"workers-hono-firebase-id-token":()=>import(`./chunk-BMuXo6d22.js`),"workers-hono-aws-credentials":()=>import(`./chunk-C6p2CdpR.js`),"workers-hono-wrangler-dev-aws-profile":()=>import(`./chunk-D0mHpL0F.js`),"workers-hono-execution-model-workbench":()=>import(`./chunk-DpE_Uyfn2.js`),df42c9d6f69af9:()=>import(`./chunk-SL8XVM6T2.js`),"2fbd2e66b2f834":()=>import(`./chunk-BuKPdT7o.js`),dda4ef1c48a970:()=>import(`./chunk-CvWgqwia.js`),"14dfbb048f524e":()=>import(`./chunk-BY4lUE4g.js`),"8431b93780afe5":()=>import(`./chunk-COrxLUrC2.js`),"42751b10ef11d3":()=>import(`./chunk-Cqd2pyau.js`),"8ac300d0f67394":()=>import(`./chunk-BiyriTvJ.js`),"679887bea93514":()=>import(`./chunk-BvWdwIOM.js`),"264cd906e01d81":()=>import(`./chunk-BCAiUfBf.js`),be8462ca01a6e1:()=>import(`./chunk-DYVDzuWQ2.js`),"0b5364331e0bf6":()=>import(`./chunk-DNdwOm_X.js`),d221326a53a557:()=>import(`./chunk-8zKrMy49.js`),"1cac6284b08db2":()=>import(`./chunk-BCTtchLL2.js`),"3b5cca43f2da75":()=>import(`./chunk-B4Q_UWwJ.js`),"7d39ddfe9c7cf1":()=>import(`./chunk-Cg2Z6YJp2.js`),e3fe9c3d458f74:()=>import(`./chunk-C43rjGlW2.js`),"80d2394f8ef0a2":()=>import(`./chunk-D2A__6mu.js`),"75d004ccad0d67":()=>import(`./chunk-DYI4sGYv2.js`),"5ee5ce6fb9b973":()=>import(`./chunk-Cr0Kinri2.js`),"1eb7348f731a6c":()=>import(`./chunk-bWMo_mxM.js`),"9f9f2a89b95928":()=>import(`./chunk-DKXJgx0S.js`),ff0bc7de29bd65:()=>import(`./chunk-V6KTjmhm.js`),"4fd9c40161ca97":()=>import(`./chunk-D_Oh490n2.js`),"0fe0824fc702d0":()=>import(`./chunk-CyKIbt-f.js`),"08891227c7a233":()=>import(`./chunk-ZmCRYMUu2.js`),"7238fb4da82821":()=>import(`./chunk-CCQz9kSc.js`),e4c5efb81a745e:()=>import(`./chunk-jaJ9cz5B.js`),"12a8f95c74ed04":()=>import(`./chunk-D35AYPIP.js`),"4b23117adb33aa":()=>import(`./chunk-B1tIBDqs.js`),eab1f30b780ce0:()=>import(`./chunk-D-HiLt9q.js`),fcae4a959a91e9:()=>
5import(`./chunk-Coxr0ueP2.js`),bb36705665c226:()=>import(`./chunk-pHdQbkSI.js`),"35e1d6ae8d8adf":()=>import(`./chunk-wkB_ERdk.js`),"753b9b923e0a63":()=>import(`./chunk-C6D1gkrJ2.js`),"2ff4604df6cfe6":()=>import(`./chunk-CTeYsCe_.js`),"1df8fb1484c003":()=>import(`./chunk-IgUBvw8O.js`),"11f76921df8475":()=>import(`./chunk-MI_LOVTa.js`),bb03d724d33831:()=>import(`./chunk-BIiNYF2X.js`),"55cbf1fd6a4b2f":()=>import(`./chunk-Di-IYnYH.js`),d321a378825c63:()=>import(`./chunk-CKvQOtfy.js`),c6a838ae934128:()=>import(`./chunk-BT19bFV42.js`),"7506d62d50609d":()=>import(`./chunk-CCR6nIGT2.js`),"5325127b665d56":()=>import(`./chunk-DjbnCdGH.js`),b3bd6491cc26d6:()=>import(`./chunk-CSU7ThQ5.js`),"78a3d783699901":()=>import(`./chunk-DCbgFgnj.js`),"4db7c7a6bc357f":()=>import(`./chunk-Dowc1Zu7.js`),"73141a76d25564":()=>import(`./chunk-CRxewcs5.js`),"3430a462ab031f":()=>import(`./chunk-CSlsFiyF2.js`),c763a815ee3e5a:()=>import(`./chunk-Dl220YvO.js`),"51b63e75b84da9":()=>import(`./chunk-8Ut5Tal-.js`),"7aa8c9091cc4b9":()=>import(`./chunk-CwF68mUx.js`),ebc12423e41ccd:()=>import(`./chunk-BZxhGL7V.js`),aecbf9fcb150a5:()=>import(`./chunk-D2Do1pjg.js`),d06742a359b6fa:()=>import(`./chunk-ByBX2U6C2.js`),"71e3a422af48c5":()=>import(`./chunk-mfHvCMgv.js`),"66d020dcffa639":()=>import(`./chunk-i_wPCCdI.js`),"4456315c9ca829":()=>import(`./chunk-DqblvIWf.js`),"97b767dd27b4c5":()=>import(`./chunk-BRZ5JShe2.js`),bab2fa94f4a6d8:()=>import(`./chunk-D7QxHfhr.js`),c6623c6ccc16dd:()=>import(`./chunk-eO6B9iRm.js`),ee3c566ef29e34:()=>import(`./chunk-Cne7bfSK.js`),eead4251326b5a:()=>import(`./chunk-Djk95Iod.js`),f085832bed97b4:()=>import(`./chunk-nXCjt6zI.js`),"6109f1f7998920":()=>import(`./chunk-Clgo7YRp2.js`),"9f5f04734dc684":()=>import(`./chunk-DlJ2DAxk2.js`),"606fd444a76f8f":()=>import(`./chunk-DrCVS5A7.js`),d6b6c32a1f9d84:()=>import(`./chunk-CkI09dDs.js`),d6c6c428da299d:()=>import(`./chunk-_9_eCAEf2.js`),"8beb8c91e7d337":()=>import(`./chunk-DjPFXSP82.js`),"21ec0111b532c3":()=>import(`./chunk-B8GNgSXt2.js`),d017496527af9d:()=>import(`./chunk-Dq0wWJKF.js`),"5ae89ca93e1bfe":()=>import(`./chunk-Cq40MPQp.js`),"7aa0b566f97c80":()=>import(`./chunk-CBpQweXU.js`),"0d33b439941a38":()=>import(`./chunk-CCWPCqY2.js`),"1eb9e13c8a5945":()=>import(`./chunk-CtkmWbMz2.js`),e3ee9228949c3b:()=>import(`./chunk-BYkWGms8.js`),"3dc3a703ecb9f5":()=>import(`./chunk-DkQU9zMa2.js`),"6d8f9064a3ec40":()=>import(`./chunk-z22F7if7.js`),"49fe9bfe302800":()=>import(`./chunk-B-JebKVM.js`),d9b0869e1ebea2:()=>import(`./chunk-DeQ6S63G2.js`),"37c9dee03285ea":()=>import(`./chunk-BLjRKqoG.js`),"269d5dff02e0d7":()=>import(`./chunk-Bfp78uUw.js`),"134b412c83be80":()=>import(`./chunk-15STTKIS2.js`),"42fde7b1159b66":()=>import(`./chunk-DhkKS6G02.js`),f414f5d2f1a6d0:()=>import(`./chunk-CBF1_LJc.js`),c899eee25d0191:()=>import(`./chunk-RqjUh6sJ2.js`),adf4cf0d6d7114:()=>import(`./chunk-DaBb2FlF.js`),"0dd69cc205c076":()=>import(`./chunk-DbeinNj3.js`),f91d7a65d2772c:()=>import(`./chunk-am8pBrhZ.js`),fe628d4601625e:()=>import(`./chunk-D9reV81g2.js`),"5dec0bec70eab7":()=>import(`./chunk-CFGyy081.js`),"62f404d448df01":()=>import(`./chunk-D5Br646F2.js`),"6e0f7e0ee2f53b":()=>import(`./chunk-ClOpFz0b.js`),f7ab46b76af59f:()=>import(`./chunk-BwHjb78N.js`),"60b4be5be02704":()=>import(`./chunk-LC9ZaZEP.js`),"6aa6c1fcf95bd4":()=>import(`./chunk-CCmff9P2.js`),"31a4bea8346e00":()=>import(`./chunk-DVDQWxss.js`),"7e5049389d0289":()=>import(`./chunk-C5bXTLk6.js`),"5b371823a31d4f":()=>import(`./chunk-DNDpjor5.js`),"40d7bd7c720636":()=>import(`./chunk-DanBXGho.js`),ded32a2a313ffd:()=>import(`./chunk-DE1fVMH92.js`),c3cc5264794570:()=>import(`./chunk-ClDf5fy1.js`),"8ac1bc1be13f16":()=>import(`./chunk-BwY-Sq8V.js`),bf448fedc16edd:()=>import(`./chunk-ByURBPs3.js`),a259a3241918da:()=>import(`./chunk-BznuQN7q.js`),"13139f33603b01":()=>import(`./chunk-Bz0jQkxu2.js`),c8e7778eb80e7b:()=>import(`./chunk-DHj7fNWW.js`),f66b43bc8aca6b:()=>import(`./chunk-JP0uPo-Z.js`),"9c04dee47ad402":()=>import(`./chunk-CKNVmaEy.js`),"5efcdcd898048a":()=>import(`./chunk-CdR4U3wQ.js`),dd7abeaefdb76d:()=>import(`./chunk-DV0_sO4L.js`),"98de1f6d3846ab":()=>import(`./chunk-BaB8uJpz2.js`),"3b00a8154ab835":()=>import(`./chunk-CxShxIzd.js`),"5f0419da880ab0":()=>import(`./chunk-DzOcK3pt2.js`),b3693ff01d31a3:()=>import(`./chunk-BwDI1iBV.js`),"2adf2bdb3a97e4":()=>import(`./chunk-DQMJzO01.js`),"64852bb8dc1343":()=>import(`./chunk-BE4uTCqE.js`),d7e72e3eae0bd8:()=>import(`./chunk-BLnbKPvO2.js`),"61822edac67d0e":()=>import(`./chunk-DLCLoYBV.js`),"70d80262263c14":()=>import(`./chunk-C4xII9D-2.js`),fb02f0fe826f22:()=>import(`./chunk-tRsWfjzK2.js`),"008e0ccaf6028c":()=>import(`./chunk-B-M-DzMe2.js`),a221ba2bba33f1:()=>import(`./chunk-CaqOZaKY.js`),f3fdf9c42ba8b9:()=>import(`./chunk-D3trPEgv2.js`),b25c18b243a5b8:()=>import(`./chunk-CAmMURpJ.js`),"1fda37f6e1025999e86e":()=>import(`./chunk-BcTFdkgq.js`),"1e80620bf432e4eb09f6":()=>import(`./chunk-BCDxwW-I2.js`),"1e85816cfca74375156f":()=>import(`./chunk-5lbmO1Zx.js`),"4a241cacc7e364be8066":()=>import(`./chunk-DmXqO_Y8.js`),aaa2fd4c403df1eba4c7:()=>import(`./chunk-B_TdyqEn.js`)};var mn=iE;var cE=sE;var Qc=Array.from(new Map(mn.flatMap(e=>(e.relatedLibraries??[]).map(t=>[t.id,{id:t.id,name:t.name}]))).values()).sort((e,t)=>
5e.name.localeCompare(t.name,`en`));async function lE(e){let t=mn.find(r=>r.slug===e),n=aE[e];if(!(!t||!n))return k$1(k$1({},t),(await n()).default)}function Lr(e){return new Intl.DateTimeFormat(`en-US`,{timeZone:`Asia/Tokyo`,year:`numeric`,month:`long`,day:`numeric`}).format(new Date(`${e}T00:00:00+09:00`))}var dE=async e=>{let t=p(ut);return await lE(e.paramMap.get(`slug`)??``)??new Bn(t.parseUrl(`/not-found`))};function Hp(e){try{return decodeURIComponent(e)}catch{return e}}var Jc=class e{#t=p(xt);#e=p(ut);#r=null;constructor(){ef(()=>{for(let r of this.#t.nativeElement.querySelectorAll(`h2[id], h3[id], h4[id], h5[id], h6[id]`)){if(r.dataset.headingLinkReady)continue;let o=r.textContent?.trim()??``,i=r.querySelector(`a.header-anchor-link`)??r.ownerDocument.createElement(`a`);i.className=`header-anchor-link`,i.textContent=`#`,i.removeAttribute(`aria-hidden`),i.setAttribute(`aria-label`,o),r.setAttribute(`aria-label`,o);let s=this.#e.parseUrl(this.#e.url);s.fragment=Hp(r.id),i.href=this.#e.serializeUrl(s);i.href=`${new URL(r.ownerDocument.baseURI).pathname.replace(/\/$/,``)}${i.getAttribute(`href`)}`,r.prepend(i),r.dataset.headingLinkReady=`true`}let t=this.#e.parseUrl(this.#e.url).fragment;if(!t){this.#r=null;return}let n=Array.from(this.#t.nativeElement.querySelectorAll(`[id]`)).find(r=>Hp(r.id)===t);n&&this.#r!==t&&(n.scrollIntoView(),this.#r=t)})}navigate(t){if(t.defaultPrevented||t.button!==0||t.ctrlKey||t.metaKey||t.shiftKey||t.altKey)return;let n=t.target;if(!(n instanceof Element))return;let r=n.closest(`h2[id], h3[id], h4[id], h5[id], h6[id]`);if(!r||!this.#t.nativeElement.contains(r))return;let o=n.closest(`a`);if(o&&!o.classList.contains(`header-anchor-link`))return;t.preventDefault();let i=this.#e.parseUrl(this.#e.url);i.fragment=Hp(r.id),this.#e.navigateByUrl(i).then(()=>r.scrollIntoView())}static ɵfac=function(n){return new(n||e)};static ɵdir=kn({type:e,selectors:[[``,`appHeadingLinks`,``]],hostBindings:function(n,r){n&1&&Ln(`click`,function(i){return r.navigate(i)})}})};var Xc=class e{#t=p(ap);transform(t){return this.#t.bypassSecurityTrustHtml(t)}static ɵfac=function(n){return new(n||e)};static ɵpipe=bf({name:`safeHtml`,type:e,pure:!0})};var el=class e{supportHref=qe(`/support`);supportLabel=qe(`Support this OSS`);resourcesLabel=qe(`Resources`);static ɵfac=function(n){return new(n||e)};static ɵcmp=se({type:e,selectors:[[`app-oss-resource-links`]],inputs:{supportHref:[1,`supportHref`],supportLabel:[1,`supportLabel`],resourcesLabel:[1,`resourcesLabel`]},decls:18,vars:3,consts:[[1,`oss-resource-links__list`],[1,`oss-resource-links__link`,3,`href`],[`viewBox`,`0 0 24 24`,`fill`,`currentColor`,`aria-hidden`,`true`,1,`oss-resource-links__icon`],[`d`,`m12 21.35-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3A6 6 0 0 1 12 5.09 6 6 0 0 1 16.5 3C19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35Z`],[`href`,`https://zenn.dev/rdlabo`,`target`,`_blank`,`rel`,`noopener noreferrer`,1,`oss-resource-links__link`,`external-link`],[`viewBox`,`0 0 24 24`,`fill`,`none`,`aria-hidden`,`true`,1,`oss-resource-links__icon`],[`d`,`M7 5h10v14H7V5Z`,`stroke`,`currentColor`,`stroke-width`,`1.75`,`stroke-linejoin`,`round`],[`d`,`M9 9h6M9 12h6M9 15h4`,`stroke`,`currentColor`,`stroke-width`,`1.75`,`stroke-linecap`,`round`],[`href`,`https://x.com/rdlabo`,`target`,`_blank`,`rel`,`noopener noreferrer`,1,`oss-resource-links__link`,`external-link`],[`d`,`M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231 5.451-6.231Zm-1.161 17.52h1.833L7.084 4.126H5.117l11.966 15.644Z`]],template:function(n,r){n&1&&(ke(0,`nav`)(1,`ul`,0)(2,`li`)(3,`a`,1),Wt(),ke(4,`svg`,2),Pn(5,`path`,3),je(),v(6),je()(),yr(),ke(7,`li`)(8,`a`,4),Wt(),ke(9,`svg`,5),Pn(10,`path`,6)(11,`path`,7),je(),v(12,` Zenn `),je()(),yr(),ke(13,`li`)(14,`a`,8),Wt(),ke(15,`svg`,2),Pn(16,`path`,9),je(),v(17,` X / @rdlabo `),je()()()()),n&2&&(me(`aria-label`,r.resourcesLabel()),b(3),vo(`href`,r.supportHref(),ee),b(3),te(` `,r.supportLabel(),` `))},styles:[`[_nghost-%COMP%]{display:block}.oss-resource-links__list[_ngcontent-%COMP%]{display:grid;gap:.65rem;margin:0;padding:0;list-style:none}.oss-resource-links__list[_ngcontent-%COMP%] > li[_ngcontent-%COMP%]{margin:0;padding:0;list-style:none}.oss-resource-links__link[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.5rem;color:#333;font-size:.82rem;font-weight:400;line-height:1.25rem;text-decoration:none}.oss-resource-links__link[_ngcontent-%COMP%]:hover, .oss-resource-links__link[_ngcontent-%COMP%]:focus-visible{color:var(--%NS%site-accent-strong, #c44320)}.oss-resource-links__link[_ngcontent-%COMP%]:focus-visible{border-radius:.125rem;outline:2px solid var(--%NS%site-accent, #ea572a);outline-offset:2px}.oss-resource-links__icon[_ngcontent-%COMP%]{width:.875rem;height:.875rem;flex-shrink:0}`]})};var jA=e=>[`/articles`,e];var FA=e=>({library:e});var uE=(e,t)=>t.id;function UA(e,t){if(e&1&&(g(0,`li`)(1,`a`,7),v(2),m()()),e&2){let n=t.$implicit,r=Q(2);b(),H(`routerLink`,bt(3,jA,r.articleSlug()))(`fragment`,n.id),b(),q(n.text)}}function HA(e,t){if(e&1&&(g(0,`p`,4),v(1,`Contents`),m(),g(2,`nav`,5)(3,`ul`,6),Se(4,UA,3,5,`li`,null,uE),m()()),e&2){let n=Q();b(4),De(n.tocHeadings())}}function VA(e,t){e&1&&(g(0,`span`,16),v(1,` (related to this article)`),m())}function $A(e,t){if(e&1&&(g(0,`li`)(1,`a`,11)(2,`span`,12),Wt(),g(3,`svg`,13),ie(4,`path`,14)(5,`circle`,15),m()(),v(6),ve(7,VA,2,0,`span`,16),m()()),e&2){let n=t.$implicit,r=Q(2);b(),kt(`article-sidebar__category-link--active`,r.currentCategoryId()===n.id)(`article-sidebar__category-link--related`,r.relatedCategoryIds().includes(n.id
5)&&r.currentCategoryId()!==n.id),H(`queryParams`,bt(8,FA,n.id)),me(`aria-current`,r.currentCategoryId()===n.id?`page`:null),b(5),te(` `,n.name,` `),b(),ye(r.relatedCategoryIds().includes(n.id)&&r.currentCategoryId()!==n.id?7:-1)}}function BA(e,t){if(e&1&&(g(0,`div`,8)(1,`p`,4),v(2,`Category`),m(),g(3,`nav`,9)(4,`ul`,10),Se(5,$A,8,10,`li`,null,uE),m()()()),e&2){let n=Q();kt(`article-sidebar__section--separated`,n.tocHeadings().length),b(5),De(n.categories)}}var xo=class e{tocHeadings=qe([]);articleSlug=qe(void 0);currentCategoryId=qe(void 0);relatedCategoryIds=qe([]);categories=Qc;static ɵfac=function(n){return new(n||e)};static ɵcmp=se({type:e,selectors:[[`app-article-sidebar`]],inputs:{tocHeadings:[1,`tocHeadings`],articleSlug:[1,`articleSlug`],currentCategoryId:[1,`currentCategoryId`],relatedCategoryIds:[1,`relatedCategoryIds`]},decls:5,vars:4,consts:[[`aria-label`,`Article navigation`,`data-pagefind-ignore`,``,1,`article-sidebar`],[1,`article-sidebar__categories`,3,`article-sidebar__section--separated`],[1,`article-sidebar__resources`],[`supportHref`,`https://docs.rdlabo.dev/support`],[1,`article-sidebar__label`],[`aria-label`,`On this page`],[1,`article-sidebar__list`],[1,`article-sidebar__link`,3,`routerLink`,`fragment`],[1,`article-sidebar__categories`],[`aria-label`,`Article categories`],[1,`article-sidebar__category-list`],[`routerLink`,`/articles`,1,`article-sidebar__category-link`,3,`queryParams`],[`aria-hidden`,`true`,1,`article-sidebar__category-icon`],[`viewBox`,`0 0 24 24`,`fill`,`none`],[`d`,`M20 13 11 4H4v7l9 9 7-7Z`],[`cx`,`7.5`,`cy`,`7.5`,`r`,`1.25`],[1,`sr-only`]],template:function(n,r){n&1&&(g(0,`aside`,0),ve(1,HA,6,0),ve(2,BA,7,2,`div`,1),g(3,`div`,2),ie(4,`app-oss-resource-links`,3),m()()),n&2&&(b(),ye(r.tocHeadings().length?1:-1),b(),ye(r.categories.length?2:-1),b(),kt(`article-sidebar__resources--separated`,r.tocHeadings().length||r.categories.length))},dependencies:[el,Te],encapsulation:2})};var tl=`https://rdlabo.dev/#organization`;var Vp=`https://rdlabo.dev`;function nl(e){return{"@context":`https://schema.org`,"@graph":e}}function fE(e){return JSON.stringify(e).replace(/</g,`\\u003c`)}function pE(){return{"@type":`Organization`,"@id":tl,name:`rdlabo`,url:Vp}}function $p(e){return{"@type":`BreadcrumbList`,itemListElement:e.map((t,n)=>({"@type":`ListItem`,position:n+1,name:t.name,item:t.url}))}}var zn=Vp;function hE(e){return e===`/`?zn:`${zn}${e}`}function gE(e){return nl([{"@type":`WebSite`,"@id":`${zn}/#website`,url:zn,name:`rdlabo.dev`,description:e,publisher:{"@id":tl},inLanguage:`en`},pE()])}function mE(e,t){return nl([$p([{name:`rdlabo.dev`,url:zn},{name:e,url:hE(t)}])])}function vE(e){let t=hE(`/articles/${e.slug}`),n={"@type":`BlogPosting`,"@id":`${t}#blogposting`,mainEntityOfPage:t,headline:e.title,description:e.description,image:e.image,datePublished:e.publishedAt,author:{"@type":`Organization`,name:`rdlabo`,url:zn},publisher:{"@id":tl},inLanguage:`en`,isBasedOn:{"@type":`Article`,"@id":e.originalUrl,inLanguage:`ja`}};return e.updatedAt&&(n.dateModified=e.updatedAt),nl([n,$p([{name:`rdlabo.dev`,url:zn},{name:`Articles`,url:`${zn}/articles`},{name:e.title,url:t}])])}var ft={name:`rdlabo.dev`,tagline:`Engineering notes and open-source tools for modern application teams.`,description:`Engineering notes and maintained open-source tools for Ionic, Angular, Capacitor, and Cloudflare Workers applications.`,docsUrl:`https://docs.rdlabo.dev`,supportUrl:`https://docs.rdlabo.dev/support`,sponsorUrl:`https://github.com/sponsors/rdlabo?metadata_campaign=rdlabo-home`,githubUrl:`https://github.com/rdlabo-dev`,zennUrl:`https://zenn.dev/rdlabo`,xUrl:`https://x.com/rdlabo`};var rl=[{label:`Articles`,href:`/articles`},{label:`Docs`,href:ft.docsUrl,sameSite:!0},{label:`Sponsor`,href:ft.supportUrl,sameSite:!0},{label:`GitHub`,href:ft.githubUrl,external:!0,mobile:!1}];var yE=[{name:`Capacitor Community Stripe`,packageName:`@capacitor-community/stripe`,description:`Native Stripe payments for Capacitor apps â PaymentSheet, Apple Pay, Google Pay, and web checkout from one codebase.`,repositoryUrl:`https://github.com/capacitor-community/stripe`,docsUrl:`https://docs.rdlabo.dev/projects/capacitor-stripe`},{name:`Ionic Theme iOS27`,packageName:`@rdlabo/ionic-theme-ios27`,description:`Stable iOS 27 styling, motion, and Liquid Glass for Ionic, with an experimental native UI shell for Capacitor iOS.`,repositoryUrl:`https://github.com/rdlabo-dev/ionic-theme-ios27`,docsUrl:`https://docs.rdlabo.dev/projects/ionic-theme-ios27`},{name:`Ionic Theme MD3`,packageName:`@rdlabo/ionic-theme-md3`,description:`Material Design 3 styling for Ionic applications, compatible with the iOS26 theme from a single HTML structure.`,repositoryUrl:`https://github.com/rdlabo-dev/ionic-theme-md3`,docsUrl:`https://docs.rdlabo.dev/projects/ionic-theme-md3`},{name:`Angular CDK Scroll Strategies`,packageName:`@rdlabo/ngx-cdk-scroll-strategies`,description:`Dynamic item-size strategies for Angular CDK virtual scrolling, including reverse layouts and stable geometry.`,repositoryUrl:`https://github.com/rdlabo-dev/ionic-angular-library`,docsUrl:`https://docs.rdlabo.dev/projects/ngx-cdk-scroll-strategies`}];
5var bE=[{name:`Hono API toolkit`,description:`Validation, authentication, queues, and testing.`,docsUrl:`https://docs.rdlabo.dev/projects/workers-hono-kit`},{name:`MySQL + Hyperdrive`,description:`Database connections, retries, and Drizzle.`,docsUrl:`https://docs.rdlabo.dev/projects/workers-mysql`},{name:`Timezone + ESLint`,description:`Explicit date conversions with lint checks.`,docsUrl:`https://docs.rdlabo.dev/projects/workers-timezone`}];var EE=`rdlabo-json-ld`;var wE=`data-rdlabo-json-ld`;var en=class e{#t=p(V);#e=p(c0);#r=p(Sc);setPage(t){let n=`https://rdlabo.dev${t.path===`/`?``:t.path}`,r=t.image??`https://rdlabo.dev/og.png`;this.#r.setTitle(t.title),this.#e.updateTag({name:`description`,content:t.description}),this.#e.updateTag({property:`og:title`,content:t.title}),this.#e.updateTag({property:`og:description`,content:t.description}),this.#e.updateTag({property:`og:type`,content:t.type??`website`}),this.#e.updateTag({property:`og:url`,content:n}),this.#e.updateTag({property:`og:site_name`,content:ft.name}),this.#e.updateTag({property:`og:image`,content:r}),t.imageWidth&&t.imageHeight?(this.#e.updateTag({property:`og:image:width`,content:String(t.imageWidth)}),this.#e.updateTag({property:`og:image:height`,content:String(t.imageHeight)})):t.image?(this.#e.removeTag(`property="og:image:width"`),this.#e.removeTag(`property="og:image:height"`)):(this.#e.updateTag({property:`og:image:width`,content:`1200`}),this.#e.updateTag({property:`og:image:height`,content:`630`})),this.#e.updateTag({name:`twitter:card`,content:`summary_large_image`}),this.#e.updateTag({name:`twitter:image`,content:r}),this.#e.updateTag({name:`robots`,content:t.noIndex?`noindex, nofollow`:`index, follow`}),t.publishedAt?this.#e.updateTag({property:`article:published_time`,content:t.publishedAt}):this.#e.removeTag(`property="article:published_time"`);let o=this.#t.head.querySelector(`link[rel="canonical"]`);o||(o=this.#t.createElement(`link`),o.rel=`canonical`,this.#t.head.appendChild(o)),o.href=n,this.#n(t.noIndex?void 0:t.structuredData)}#n(t){let n=`script[${wE}], script#${EE}`,r=[...this.#t.head.querySelectorAll(n)],o=r.shift();for(let s of r)s.remove();if(!t){o?.remove();return}let i=o;i||(i=this.#t.createElement(`script`),this.#t.head.appendChild(i)),i.type=`application/ld+json`,i.id=EE,i.setAttribute(wE,``),i.textContent=fE(t)}static ɵfac=function(n){return new(n||e)};static ɵprov=O({token:e,factory:e.ɵfac,providedIn:`root`})};var zA=(e,t)=>t.id;function WA(e,t){if(e&1&&(g(0,`span`),v(1,`Updated `),g(2,`time`,18),v(3),m()()),e&2){let n=Q();b(2),me(`datetime`,n.article.updatedAt),b(),q(n.displayUpdatedDate)}}function qA(e,t){if(e&1&&(g(0,`li`)(1,`a`,20),v(2),m()()),e&2){let n=t.$implicit;b(),H(`href`,n.url,ee),b(),te(``,n.name,` documentation`)}}function ZA(e,t){if(e&1&&(g(0,`aside`,16)(1,`h2`,19),v(2,`Continue with documentation`),m(),g(3,`ul`),Se(4,qA,3,2,`li`,null,zA),m()()),e&2){let n=Q();b(4),De(n.article.relatedLibraries)}}var ol=class e{#t=p(dt);#e=p(en);article=this.#t.snapshot.data.article;coverImage=this.article.image.replace(/^https:\/\/rdlabo\.dev\//,`/`);displayDate=Lr(this.article.publishedDate);displayUpdatedDate=this.article.updatedAt?Lr(this.article.updatedAt):void 0;tocHeadings=this.article.headings.filter(t=>t.level===2);relatedLibraryIds=(this.article.relatedLibraries??[]).map(t=>t.id);sponsorUrl=`https://github.com/sponsors/rdlabo?metadata_campaign=rdlabo-article`;constructor(){this.#e.setPage({title:`${this.article.title} \u2014 rdlabo.dev`,description:this.article.description,path:`/articles/${this.article.slug}`,type:`article`,publishedAt:this.article.publishedAt,image:this.article.image,imageWidth:this.article.imageWidth,imageHeight:this.article.imageHeight,structuredData:vE(this.article)})}static ɵfac=function(n){return new(n||e)};static ɵcmp=se({type:e,selectors:[[`app-article-page`]],decls:38,vars:20,consts:[[1,`article-page`],[1,`article-layout`],[1,`article-main`],[1,`article-header`],[`routerLink`,`/articles`,1,`article-header__back`],[`aria-hidden`,`true`,1,`article-header__emoji`],[1,`article-header__dates`],[`data-article-published`,``],[`data-article-image`,``,`fetchpriority`,`high`,1,`article-header__cover`,3,`src`,`alt`],[1,`article-original`],[`target`,`_blank`,`rel`,`noopener noreferrer`,1,`external-link`,3,`href`],[`appHeadingLinks`,``,1,`znc`,`article-content`,3,`innerHTML`],[`aria-labelledby`,`article-support-heading`,1,`article-support`],[1,`article-support__eyebrow`],[`id`,`article-support-heading`],[`target`,`_blank`,`rel`,`noopener noreferrer`,1,`button`,`button--secondary`,`external-link`,3,`href`],[`aria-labelledby`,`related-libraries-heading`,1,`article-related-libraries`],[3,`tocHeadings`,`articleSlug`,`relatedCategoryIds`],[`data-article-modified`,``],[`id`,`related-libraries-heading`],[3,`href`]],template:function(n,r){n&1&&(g(0,`article`,0)(1,`div`,1)(2,`div`,2)(3,`header`,3)(4,`a`,4),v(5,`â All articles`),m(),g(6,`div`,5),v(7),m(),g(8,`h1`),v(9),m(),g(10,`p`),v(11),m(),g(12,`div`,6)(13,`span`),v(14,`Published `),g(15,`time`,7),v(16),m()(),ve(17,WA,4,2,`span`),m()(),ie(18,`img`,8),g(19,`aside`,9)(20,`p`),v(21,`This article is an English translation.`),m(),g(22,`a`,10),v(23),m()(),ie(24,`div`,11),Nf(25,`safeHtml`),g(26,`aside`,12)(27,`div`)(28,`p`,13),v(29,`Support independent OSS`),m(),g(30,`h2`,14),v(31,`Support rdlabo OSS`),m(),g(32,`p`),v(33,`If you'd like to supp
5ort ongoing public OSS work, sponsorship starts at $5 a month.`),m()(),g(34,`a`,15),v(35,`View sponsorship options`),m()(),ve(36,ZA,6,0,`aside`,16),m(),ie(37,`app-article-sidebar`,17),m()()),n&2&&(b(7),q(r.article.emoji),b(2),q(r.article.title),b(2),q(r.article.description),b(4),me(`datetime`,r.article.publishedDate),b(),q(r.displayDate),b(),ye(r.article.updatedAt&&r.displayUpdatedDate?17:-1),b(),H(`src`,r.coverImage,ee)(`alt`,r.article.title+` cover image`),me(`width`,r.article.imageWidth)(`height`,r.article.imageHeight),b(4),H(`href`,r.article.originalUrl,ee),b(),te(`Read the original article in Japanese on `,r.article.sourceName),b(),H(`innerHTML`,Af(25,18,r.article.html),Zu),b(10),H(`href`,r.sponsorUrl,ee),b(2),ye(r.article.relatedLibraries?.length?36:-1),b(),H(`tocHeadings`,r.tocHeadings)(`articleSlug`,r.article.slug)(`relatedCategoryIds`,r.relatedLibraryIds))},dependencies:[Te,xo,Jc,Xc],encapsulation:2})};function IE(e){e||(e=p(fe));let t=new P(n=>{if(e.destroyed){n.next();return}return e.onDestroy(n.next.bind(n))});return n=>n.pipe(or(t))}function Bp(e,t){let r=!t?.manualCleanup?t?.injector?.get(fe)??p(fe):null,o=GA(t?.equal),i;t?.requireSync?i=ne({kind:0},{equal:o}):i=ne({kind:1,value:t?.initialValue},{equal:o});let s,a=e.subscribe({next:c=>i.set({kind:1,value:c}),error:c=>{i.set({kind:2,error:c}),s?.()},complete:()=>{s?.()}});if(t?.requireSync&&i().kind===0)throw new w(601,!1);return s=r?.onDestroy(a.unsubscribe.bind(a)),Pt(()=>{let c=i();switch(c.kind){case 1:return c.value;case 2:throw c.error;case 0:throw new w(601,!1)}},{equal:t?.equal})}function GA(e=Object.is){return(t,n)=>t.kind===1&&n.kind===1&&e(t.value,n.value)}var YA=e=>[`/articles/archive`,e];var KA=e=>[`/articles`,e];var QA=(e,t)=>t.label;var JA=(e,t)=>t.slug;function XA(e,t){e&1&&v(0),e&2&&te(` Engineering Notes for `,t.name,` `)}function eR(e,t){e&1&&v(0),e&2&&te(` Engineering Notes from `,t,` `)}function tR(e,t){e&1&&v(0,` Engineering Notes `)}function nR(e,t){e&1&&(g(0,`p`,8),v(1,` Showing all articles in this category. `),g(2,`a`,10),v(3,`All articles`),m()())}function rR(e,t){if(e&1&&(g(0,`a`,15),v(1),m()),e&2){let n=t.$implicit;kt(`article-years__active`,Q().selectedYear()===n),H(`routerLink`,bt(4,YA,n)),b(),q(n)}}function oR(e,t){if(e&1&&(g(0,`li`)(1,`a`,18)(2,`time`,19),v(3),m(),g(4,`span`,20),v(5),m(),g(6,`h3`,21),v(7),m(),g(8,`p`,22),v(9),m(),g(10,`span`,23),v(11,`Read article â`),m()()()),e&2){let n=t.$implicit,r=Q(3);b(),H(`routerLink`,bt(7,KA,n.slug)),me(`aria-label`,n.title),b(),me(`datetime`,n.publishedDate),b(),te(` `,r.formatArticleDate(n.publishedDate),` `),b(2),te(`From `,n.sourceName),b(2),q(n.title),b(2),q(n.description)}}function iR(e,t){if(e&1&&(g(0,`section`,16)(1,`h2`),v(2),m(),g(3,`ul`,17),Se(4,oR,12,9,`li`,null,JA),m()()),e&2){let n=t.$implicit;b(2),q(n.label),b(2),De(n.articles)}}function sR(e,t){if(e&1&&(g(0,`div`,12),Se(1,iR,6,1,`section`,16,QA),m()),e&2){let n=Q();b(),De(n.months())}}function aR(e,t){if(e&1&&(g(0,`div`,13)(1,`p`,24),v(2,`No engineering notes found.`),m(),g(3,`p`,25),v(4,` Read the Japanese originals on `),g(5,`a`,26),v(6,`Zenn`),m(),v(7,`. `),m()()),e&2){let n=Q();b(5),H(`href`,n.site.zennUrl,ee)}}var Ji=class e{#t=p(dt);#e=p(en);site=ft;years=cE;selectedYear=Bp(this.#t.paramMap.pipe(J(t=>t.get(`year`))),{initialValue:this.#t.snapshot.paramMap.get(`year`)});requestedLibrary=Bp(this.#t.queryParamMap.pipe(J(t=>t.get(`library`))),{initialValue:this.#t.snapshot.queryParamMap.get(`library`)});selectedCategory=Pt(()=>Qc.find(t=>t.id===this.requestedLibrary()));months=Pt(()=>{let t=this.selectedYear(),n=this.selectedCategory()?.id,r=n?mn:t?mn.filter(o=>o.publishedDate.startsWith(t)):mn.slice(0,12);return this.#r(n?r.filter(o=>o.relatedLibraries?.some(i=>i.id===n)):r)});formatArticleDate=Lr;constructor(){no(()=>{let t=this.selectedYear(),n=this.selectedCategory(),r=t&&!n?`Engineering Notes from ${t}`:`Engineering Notes`,o=n?`${r} for ${n.name}`:r,i=t&&!n?`/articles/archive/${t}`:`/articles`,s=n?`${i}?library=${encodeURIComponent(n.id)}`:i;this.#e.setPage({title:`${o} \u2014 rdlabo.dev`,description:n?`Practical engineering notes from building and maintaining ${n.name}.`:t?`Engineering notes published in ${t} from real-world Ionic, Angular, Capacitor, Cloudflare, and OSS work.`:`Engineering notes from building and maintaining real-world Ionic, Angular, Capacitor, Cloudflare, and open-source projects.`,path:s,structuredData:mE(o,s)})})}#r(t){let n=new Map;for(let r of t){let o=r.publishedDate.slice(0,7);n.set(o,[...n.get(o)??[],r])}return[...n].map(([r,o])=>({label:new Intl.DateTimeFormat(`en-US`,{timeZone:`Asia/Tokyo`,year:`numeric`,month:`long`}).format(new Date(`${r}-01T00:00:00+09:00`)),articles:o}))}static ɵfac=function(n){return new(n||e)};static ɵcmp=se({type:e,selectors:[[`app-articles-page`]],decls:23,vars:6,consts:[[1,`articles-page`],[1,`article-layout`],[1,`article-main`],[1,`page-header`],[1,`page-header__eyebrow`],[1,`page-header__title`],[1,`page-header__lead`],[1,`page-header__note`],[1,`article-filter-status`],[`aria-label`,`Article ar
5chives`,1,`article-years`],[`routerLink`,`/articles`],[3,`routerLink`,`article-years__active`],[1,`article-archive`],[`role`,`status`,1,`articles-empty`,`articles-empty--page`],[3,`currentCategoryId`],[3,`routerLink`],[1,`article-month`],[1,`article-list`],[1,`article-preview`,3,`routerLink`],[1,`article-preview__date`],[1,`article-preview__source`],[1,`article-preview__title`],[1,`article-preview__summary`],[`aria-hidden`,`true`,1,`article-preview__cta`],[1,`articles-empty__title`],[1,`articles-empty__body`],[`target`,`_blank`,`rel`,`noopener noreferrer`,1,`external-link`,3,`href`]],template:function(n,r){if(n&1&&(g(0,`article`,0)(1,`div`,1)(2,`div`,2)(3,`header`,3)(4,`p`,4),v(5,`Writing`),m(),g(6,`h1`,5),ve(7,XA,1,1)(8,eR,1,1)(9,tR,1,0),m(),g(10,`p`,6),v(11,` Practical lessons from building and maintaining real-world Ionic, Angular, Capacitor, Cloudflare, and open-source projects. `),m(),g(12,`p`,7),v(13,` Some articles are reviewed English editions of work originally published in Japanese on Zenn and note. `),m(),ve(14,nR,4,0,`p`,8),m(),g(15,`nav`,9)(16,`a`,10),v(17,`Latest`),m(),Se(18,rR,2,6,`a`,11,Df),m(),ve(20,sR,3,0,`div`,12)(21,aR,8,1,`div`,13),m(),ie(22,`app-article-sidebar`,14),m()()),n&2){let o;b(7),ye((o=r.selectedCategory())?7:(o=r.selectedYear())?8:9,o),b(7),ye(r.selectedCategory()?14:-1),b(2),kt(`article-years__active`,!r.selectedYear()&&!r.selectedCategory()),b(2),De(r.years),b(2),ye(r.months().length?20:21),b(2),H(`currentCategoryId`,r.selectedCategory()?.id)}},dependencies:[Te,xo],encapsulation:2})};var il=class e{project=qe.required();static ɵfac=function(n){return new(n||e)};static ɵcmp=se({type:e,selectors:[[`app-featured-project-card`]],inputs:{project:[1,`project`]},decls:13,vars:4,consts:[[1,`featured-project-card`,3,`href`],[`aria-hidden`,`true`,1,`featured-project-card__icon`],[`viewBox`,`0 0 24 24`,`fill`,`none`,`xmlns`,`http://www.w3.org/2000/svg`],[`d`,`M8 4h8l4 4v12a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h3Z`,`stroke`,`currentColor`,`stroke-width`,`1.75`,`stroke-linejoin`,`round`],[`d`,`M16 4v4h4M8 13h8M8 17h5`,`stroke`,`currentColor`,`stroke-width`,`1.75`,`stroke-linecap`,`round`,`stroke-linejoin`,`round`],[1,`featured-project-card__title`],[1,`featured-project-card__package`],[1,`featured-project-card__description`],[1,`featured-project-card__cta`]],template:function(n,r){n&1&&(ke(0,`a`,0)(1,`span`,1),Wt(),ke(2,`svg`,2),Pn(3,`path`,3)(4,`path`,4),je()(),yr(),ke(5,`h3`,5),v(6),je(),ke(7,`p`,6),v(8),je(),ke(9,`p`,7),v(10),je(),ke(11,`span`,8),v(12,`Read documentation`),je()()),n&2&&(vo(`href`,r.project().docsUrl,ee),b(6),q(r.project().name),b(2),q(r.project().packageName),b(2),q(r.project().description))},styles:[`[_nghost-%COMP%]{display:block;height:100%}.featured-project-card[_ngcontent-%COMP%]{display:flex;height:100%;min-height:14rem;flex-direction:column;padding:1.5rem;border:1px solid var(--%NS%rd-line);border-radius:.75rem;background:#fff;color:#292320;text-decoration:none;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease,background-color .2s ease,color .2s ease}.featured-project-card[_ngcontent-%COMP%]:hover{border-color:#ea572a;box-shadow:0 4px 16px #29232008}.featured-project-card[_ngcontent-%COMP%]:focus-visible{outline:2px solid #ea572a;outline-offset:4px}.featured-project-card__icon[_ngcontent-%COMP%]{display:flex;width:2.25rem;height:2.25rem;align-items:center;justify-content:center;border-radius:.5rem;background:#fff0ea;color:#d64a23;transition:background-color .2s ease,color .2s ease}.featured-project-card__icon[_ngcontent-%COMP%] svg[_ngcontent-%COMP%]{width:1.5rem;height:1.5rem}.featured-project-card[_ngcontent-%COMP%]:hover .featured-project-card__icon[_ngcontent-%COMP%]{background:#ea572a;color:#fff}.featured-project-card__title[_ngcontent-%COMP%]{margin:1rem 0 0;font-size:1.2rem;font-weight:600;line-height:1.2;letter-spacing:-.035em}.featured-project-card__package[_ngcontent-%COMP%]{margin:.5rem 0 0;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.75rem;line-height:1.25rem;color:var(--%NS%rd-muted);overflow-wrap:anywhere}.featured-project-card__description[_ngcontent-%COMP%]{flex:1 1 auto;margin:.85rem 0 0;font-size:.9rem;line-height:1.65;color:#6f6661}.featured-project-card__cta[_ngcontent-%COMP%]{margin-top:auto;padding-top:1.1rem;font-size:.875rem;font-weight:600;color:#c44320}`]})};var SE=e=>[`/articles`,e];var cR=(e,t)=>t.packageName;var lR=(e,t)=>t.docsUrl;var dR=(e,t)=>t.slug;function uR(e,t){if(e&1&&(g(0,`a`,10)(1,`span`,36),v(2,`Latest note `),g(3,`span`,37),v(4,`â`),m()(),g(5,`time`),v(6),m(),g(7,`h2`),v(8),m(),g(9,`p`),v(10),m(),g(11,`span`,38),v(12,`Read article `),g(13,`span`,37),v(14,`â`),m()()()),e&2){let n=t,r=Q();H(`routerLink`,bt(5,SE,n.slug)),b(5),me(`datetime`,n.publishedDate),b(),q(r.formatArticleDate(n.publishedDate)),b(2),q(n.title),b(2),q(n.description)}}function fR(e,t){if(e&1&&(g(0,`li`),ie(1,`app-featured-project-card`,39),m()),e&2){let n=t.$implicit;b(),H(`project`,n)}}function pR(e,t){if(e&1&&(g(0,`li`)(1,`a`,40)(2,`span`),v(3),g(4,`span`,37),v(5,`â`),m()(),g(6,`p`),v(7),m()()()),e&2){let n=t.$implicit;b(),H(`href`,n.docsUrl,ee),b(2),te(``,n.name,` `),b(4),q(n.description)}}function hR(e,t){if(e&1&&(g(0,`li`)(1,`a`,41)(2,`time`,42),v(3),m(),g(4,`h3`,43),v(5),m(),g(6,`p`,44),v(7),m(),g(8,`span`,45),v(9,`Read article â`),m()()()),e&2){let n=t.$implicit,r=Q(2);b(),H(`routerLink`,bt(6,SE,n.slug)),me(`aria-label`,n.title),b(),me(`datetime`,n.publishedDate),b(),te(` `,r.formatArticleDate(n.publishedDate),` `),b(2),q(n.title),b(2),q(n.description)}}function gR(e,t){if(e&1&&(g(0,`ul`,26),Se(1,hR,10,8,`li`,null,dR),m()),e&2){let n=Q();b(),De(n.latestArticles)}}function mR(e,t){if(e&1&&(g(0,`div`,27)(1,`p`,46),v(2,`Articles are on the way.`),m(),g(3,`p`,47),v(4,` This section will list recent writing from rdlabo. Follow `),g(5,`a`,48),v(6,`Ze
5nn`),m(),v(7,` for updates in the meantime. `),m()()),e&2){let n=Q();b(5),H(`href`,n.site.zennUrl,ee)}}var sl=class e{#t=p(en);site=ft;workersProjects=bE;featuredProjects=yE;heroArticle=mn[0];latestArticles=mn.slice(1,4);formatArticleDate=Lr;constructor(){this.#t.setPage({title:`Cloudflare Workers, Ionic & Capacitor OSS and notes | rdlabo`,description:ft.description,path:`/`,structuredData:gE(ft.description)})}static ɵfac=function(n){return new(n||e)};static ɵcmp=se({type:e,selectors:[[`app-home-page`]],decls:65,vars:6,consts:[[1,`home-page`],[`aria-labelledby`,`home-hero-heading`,1,`home-hero`],[1,`home-hero__inner`],[1,`home-hero__copy`],[1,`home-hero__eyebrow`],[`id`,`home-hero-heading`,1,`home-hero__title`],[1,`home-hero__lead`],[1,`home-hero__actions`],[1,`button`,`button--primary`,3,`href`],[`target`,`_blank`,`rel`,`noopener noreferrer`,1,`button`,`button--secondary`,`external-link`,3,`href`],[1,`hero-note`,3,`routerLink`],[`aria-labelledby`,`featured-projects-heading`,1,`home-section`],[1,`home-section__inner`],[1,`section-heading`],[1,`section-heading__eyebrow`],[`id`,`featured-projects-heading`,1,`section-heading__title`],[1,`section-heading__lead`],[1,`project-grid`],[`aria-labelledby`,`workers-projects-heading`,1,`workers-projects`],[`id`,`workers-projects-heading`],[1,`project-grid__all`],[1,`button`,`button--secondary`,3,`href`],[`aria-labelledby`,`latest-articles-heading`,1,`home-section`,`home-section--articles`],[1,`section-heading`,`section-heading--split`],[`id`,`latest-articles-heading`,1,`section-heading__title`],[`routerLink`,`/articles`,1,`text-link`],[1,`article-list`],[`role`,`status`,1,`articles-empty`],[`aria-labelledby`,`community-cta-heading`,1,`community-cta`],[1,`community-cta__inner`],[1,`community-cta__copy`],[1,`community-cta__eyebrow`],[`id`,`community-cta-heading`,1,`community-cta__title`],[1,`community-cta__lead`],[1,`community-cta__vision`],[`target`,`_blank`,`rel`,`noopener noreferrer`,1,`button`,`button--primary`,`external-link`,3,`href`],[1,`hero-note__label`],[`aria-hidden`,`true`],[1,`hero-note__cta`],[3,`project`],[3,`href`],[1,`article-preview`,3,`routerLink`],[1,`article-preview__date`],[1,`article-preview__title`],[1,`article-preview__summary`],[`aria-hidden`,`true`,1,`article-preview__cta`],[1,`articles-empty__title`],[1,`articles-empty__body`],[`target`,`_blank`,`rel`,`noopener noreferrer`,1,`external-link`,3,`href`]],template:function(n,r){if(n&1&&(g(0,`article`,0)(1,`section`,1)(2,`div`,2)(3,`div`,3)(4,`p`,4),v(5,`Open source by rdlabo`),m(),g(6,`h1`,5),v(7,` Libraries for apps.`),ie(8,`br`),g(9,`span`),v(10,`Notes from building them.`),m()(),g(11,`p`,6),v(12,` Open-source libraries and engineering notes for Ionic, Angular, Capacitor, and Cloudflare Workers. `),m(),g(13,`div`,7)(14,`a`,8),v(15,`Browse documentation`),m(),g(16,`a`,9),v(17,` View on GitHub `),m()()(),ve(18,uR,15,7,`a`,10),m()(),g(19,`section`,11)(20,`div`,12)(21,`header`,13)(22,`p`,14),v(23,`Featured OSS`),m(),g(24,`h2`,15),v(25,`Selected projects`),m(),g(26,`p`,16),v(27,`Libraries, plugins, and UI tools.`),m()(),g(28,`ul`,17),Se(29,fR,2,1,`li`,null,cR),m(),g(31,`section`,18)(32,`h3`,19),v(33,`Cloudflare Workers`),m(),g(34,`ul`),Se(35,pR,8,3,`li`,null,lR),m()(),g(37,`div`,20)(38,`a`,21),v(39,`All Projects`),m()()()(),g(40,`section`,22)(41,`div`,12)(42,`header`,23)(43,`div`)(44,`p`,14),v(45,`Engineering Notes`),m(),g(46,`h2`,24),v(47,`Recent writing`),m()(),g(48,`a`,25),v(49,`All articles`),m()(),ve(50,gR,3,0,`ul`,26)(51,mR,8,1,`div`,27),m()(),g(52,`section`,28)(53,`div`,29)(54,`div`,30)(55,`p`,31),v(56,`Community-supported OSS`),m(),g(57,`h2`,32),v(58,` Help keep this work independent and available to everyone. `),m(),g(59,`p`,33),v(60,` Monthly sponsorships help maintain public libraries, documentation, compatibility updates, and releases. If you'd like to support that work, you can start at $5 a month. `),m(),g(61,`p`,34),v(62,`Current milestone: 10 monthly sponsors.`),m()(),g(63,`a`,35),v(64,`View sponsorship options`),m()()()()),n&2){let o;b(14),H(`href`,r.site.docsUrl,ee),b(2),H(`href`,r.site.githubUrl,ee),b(2),ye((o=r.heroArticle)?18:-1,o),b(11),De(r.featuredProjects),b(6),De(r.workersProjects),b(3),H(`href`,r.site.docsUrl,ee),b(12),ye(r.latestArticles.length>0?50:51),b(13),H(`href`,r.site.sponsorUrl,ee)}},dependencies:[Te,il],styles:[`.home-hero[_ngcontent-%COMP%]{background:var(--%NS%rd-paper)}.home-hero__inner[_ngcontent-%COMP%]{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);align-items:center;gap:3.5rem;padding-block:4rem}.home-hero__title[_ngcontent-%COMP%]{max-width:20ch;font-size:clamp(2.5rem,3.8vw,3.8rem);line-height:1.07;letter-spacing:-.05em;font-weight:650}.home-hero__title[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{color:var(--%NS%rd-accent)}.home-hero__lead[_ngcontent-%COMP%]{max-width:36rem;font-size:1.05rem;line-height:1.75}.home-hero__eyebrow[_ngcontent-%COMP%], .section-heading__eyebrow[_ngcontent-%COMP%]{font-size:.7rem;letter-spacing:.14em}.home-hero__actions[_ngcontent-%COMP%] .button[_ngcontent-%COMP%]{border-radius:.5rem;font-size:.875rem}.hero-note[_ngcontent-%COMP%]{display:flex;min-width:0;flex-direction:column;align-self:stretch;justify-content:center;padding:1.75rem;border:1px solid var(--%NS%rd-line);border-radius:.75rem;background:#fff;text-decoration:none;transition:border-color .16s ease}.hero-note[_ngcontent-%COMP%]:hover{border-color:var(--%NS%rd-accent)}.hero-note__label[_ngcontent-%COMP%]{display:flex;justify-content:space-between;color:var(--%NS%rd-accent);font-size:.7rem;font-weight:650;letter-spacing:.1em;text-transform:uppercase}.hero-note[_ngcontent-%COMP%] time[_ngcontent-%COMP%]{margin-top:2rem;color:var(--%NS%rd-muted);font:.7rem/1.5 var(--%NS%rd-mono)}.hero-note[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{margin:.5rem 0 0;font-size:1.3rem;font-weight:600;line-height:1.4;letter-spacing:-.025em;text-wrap:pretty}.hero-note[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;margin:.85rem 0 0;color:var(--%NS%rd-muted);font-size:.85rem;line-height:1.7}.hero-note__cta[_ngcontent-%COMP%]{margin-top:1.5rem;color:var(--%NS%rd-accent);font-size:.8rem;font-weight:600}.home-section[_ngcontent-%COMP%]{padding-block:3.25rem}.section-heading__title[_ngcontent-%COMP%]{font-size:1.8rem}.section-heading__lead[_ngcontent-%COMP%]{margin-top:.6rem;font-size:.9rem}.project-grid[_ngcontent-%COMP%]{gap:1rem;margin-top:1.75rem}.project-grid__all[_ngcontent-%COMP%]{justify-content:flex-start;margin-top:1.25rem}.project-grid__all[_ngcontent-%COMP%] .button[_ngcontent-%COMP%]{min-height:2.75rem;border:none;background:transparent;padding-inline:0;color:var(--%NS%rd-accent);font-size:.85rem}.project-grid__all[_ngcontent-%COMP%] .button[_ngcontent-%COMP%]:after{content:"\\2192";margin-left:.65rem}.home-section--articles[_ngcontent-%COMP%]{background:#fff}.article-list[_ngcontent-%COMP%]{gap:0;margin-top:1.75rem;border-top:1px solid var(--%NS%rd-line)}.article-preview[_ngcontent-%COMP%]{display:grid;grid-template-columns:7rem minmax(0,1fr) auto;gap:.4rem 2rem;padding:1.5rem 0;border:0;border-bottom:1px solid var(--%NS%rd-line);border-radius:0;background:transparent}.article-list[_ngcontent-%COMP%] > li[_ngcontent-%COMP%]:last-child .article-preview[_ngcontent-%COMP%]{border-bottom:0}.article-preview[_ngcontent-%COMP%]:hover{transform:none;box-shadow:none}.article-preview__date[_ngcontent-%COMP%]{grid-row:1 / 3;padding-top:.25rem;font:.7rem/1.6 var(--%NS%rd-mono)}.article-preview__title[_ngcontent-%COMP%]{margin:0;font-size:1.15rem;font-weight:600;line-height:1.45}.article-preview__summary[_ngcontent-%COMP%]{grid-column:2;max-width:48rem;margin:0;font-size:.875rem;line-height:1.7}.article-preview__cta[_ngcontent-%COMP%]{grid-column:3;grid-row:1 / 3;align-self:center;margin:0;font-size:.8rem;white-space:nowrap}.community-cta[_ngcontent-%COMP%]{background:var(--%NS%rd-paper)}.community-cta__inner[_ngcontent-%COMP%]{padding-block:2.5rem}.community-cta__title[_ngcontent-%COMP%]{max-width:32ch;font-size:1.6rem;line-height:1.25}.community-cta__lead[_ngcontent-%COMP%]{max-width:40rem;font-size:.9rem}.community-cta[_ngcontent-%COMP%] .button[_ngcontent-%COMP%]{border-radius:.5rem;font-size:.85rem}@media(max-width:760px){.home-hero__inner[_ngcontent-%COMP%]{grid-template-columns:minmax(0,1fr);gap:2rem;padding-block:2.75rem}.home-hero__title[_ngcontent-%COMP%]{max-width:20ch}.hero-note[_ngcontent-%COMP%]{padding:1.25rem}.hero-note[_ngcontent-%COMP%] time[_ngcontent-%COMP%]{margin-top:1rem}.hero-note[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{font-size:1.15rem}.hero-note[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{-webkit-line-clamp:2}.article-preview[_ngcontent-%COMP%]{grid-template-columns:minmax(0,1fr);gap:.6rem}.article-preview__date[_ngcontent-%COMP%], .article-preview__summary[_ngcontent-%COMP%], .article-preview__cta[_ngcontent-%COMP%]{grid-column:auto;grid-row:auto}}.workers-projects[_ngcontent-%COMP%]{margin-top:2rem}.workers-projects[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]{margin:0;font-size:1rem;font-weight:600}.workers-projects[_ngcontent-%COMP%] ul[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem;padding:0;margin:.85rem 0 0;list-style:none}.workers-projects[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{display:block;min-height:2.75rem;padding-block:.5rem;text-decoration:none}.workers-projects[_ngcontent-%COMP%] a[_ngcontent-%COMP%] > span[_ngcontent-%COMP%]{color:var(--%NS%rd-accent);font-size:.9rem;font-weight:600}.workers-projects[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:hover > span[_ngcontent-%COMP%]{text-decoration:underline;text-underline-offset:.2em}.workers-projects[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{margin:.4rem 0 0;color:var(--%NS%rd-muted);font-size:.8rem;line-height:1.6}@media(max-width:760px){.workers-projects[_ngcontent-%COMP%] ul[_ngcontent-%COMP%]{grid-template-columns:minmax(0,1fr);gap:.5rem}}`]})};var Xi=class e{#t=p(en);constructor(){this.#t.setPage({title:`Page not found â rdlabo.dev`,description:`The requested page could not be found.`,path:`/not-found`,noIndex:!0})}static ɵfac=function(n){return new(n||e)};static ɵcmp=se({type:e,selectors:[[`app-not-found-page`]],decls:9,vars:0,consts:[[`data-pagefind-ignore`,``,1,`not-found`],[1,`page-header__eyebrow`],[`routerLink`,`/`,1,`button`,`button--primary`]],template:function(n,r){n&1&&(g(0,`section`,0)(1,`p`,1),v(2,`404`),m(),g(3,`h1`),v(4,`Page not found`),m(),g(5,`p`),v(6,`The page may have moved or no longer exists.`),m(),g(7,`a`,2),v(8,`Back home`),m()())},dependencies:[Te],encapsulation:2})};var DE=[{path:``,component:sl},{path:`articles`,component:Ji},{path:`articles/archive/:year`,component:Ji},{path:`articles/:slug`,component:ol,resolve:{article:dE}},{path:`not-found`,component:Xi},{path:`**`,component:Xi}];var TE={providers:[Rd(),Fp(DE,Up({anchorScrolling:`enabled`,scrollPositionRestoration:`enabled`})),l0()]};var vR=(e,t)=>t.href;
5function yR(e,t){if(e&1&&(g(0,`a`,8),v(1),m()),e&2){let n=Q().$implicit;H(`href`,n.href,ee),b(),te(` `,n.label,` `)}}function bR(e,t){if(e&1&&(g(0,`a`,9),v(1),m()),e&2){let n=Q().$implicit;H(`href`,n.href,ee),b(),te(` `,n.label,` `)}}function ER(e,t){if(e&1&&(g(0,`a`,10),v(1),m()),e&2){let n=Q().$implicit;H(`routerLink`,n.href),b(),q(n.label)}}function wR(e,t){if(e&1&&(g(0,`li`),ve(1,yR,2,2,`a`,8)(2,bR,2,2,`a`,9)(3,ER,2,2,`a`,10),m()),e&2){let n=t.$implicit;b(),ye(n.sameSite?1:n.external?2:3)}}var al=class e{site=ft;navLinks=rl;currentYear=new Date().getFullYear();static ɵfac=function(n){return new(n||e)};static ɵcmp=se({type:e,selectors:[[`app-site-footer`]],decls:13,vars:3,consts:[[1,`site-footer`],[1,`site-footer__inner`],[1,`site-footer__brand`],[1,`site-footer__title`],[1,`site-footer__description`],[`aria-label`,`Footer`,1,`site-footer__nav`],[1,`site-footer__list`],[1,`site-footer__copyright`],[1,`site-footer__link`,3,`href`],[`target`,`_blank`,`rel`,`noopener noreferrer`,1,`site-footer__link`,`external-link`,3,`href`],[1,`site-footer__link`,3,`routerLink`]],template:function(n,r){n&1&&(g(0,`footer`,0)(1,`div`,1)(2,`div`,2)(3,`p`,3),v(4),m(),g(5,`p`,4),v(6),m()(),g(7,`nav`,5)(8,`ul`,6),Se(9,wR,4,1,`li`,null,vR),m()(),g(11,`p`,7),v(12),m()()()),n&2&&(b(4),q(r.site.name),b(2),q(r.site.description),b(3),De(r.navLinks),b(3),te(` © `,r.currentYear,` rdlabo. Released under the MIT License. `))},dependencies:[Te],encapsulation:2})};var IR=e=>({exact:e});var SR=(e,t)=>t.href;function DR(e,t){if(e&1&&(g(0,`a`,10),v(1),m()),e&2){let n=Q().$implicit;H(`href`,n.href,ee),b(),te(` `,n.label,` `)}}function TR(e,t){if(e&1&&(g(0,`a`,11),v(1),m()),e&2){let n=Q().$implicit;H(`href`,n.href,ee),b(),te(` `,n.label,` `)}}function CR(e,t){if(e&1&&(g(0,`a`,12),v(1),m()),e&2){let n=Q().$implicit;H(`routerLink`,n.href)(`routerLinkActiveOptions`,bt(3,IR,n.href===`/`)),b(),te(` `,n.label,` `)}}function _R(e,t){if(e&1&&(g(0,`li`,9),ve(1,DR,2,2,`a`,10)(2,TR,2,2,`a`,11)(3,CR,2,5,`a`,12),m()),e&2){let n=t.$implicit;kt(`site-nav__item--mobile-hidden`,n.mobile===!1),b(),ye(n.sameSite?1:n.external?2:3)}}var cl=class e{navLinks=rl;static ɵfac=function(n){return new(n||e)};static ɵcmp=se({type:e,selectors:[[`app-site-header`]],decls:11,vars:0,consts:[[1,`site-header`],[1,`site-header__inner`],[`routerLink`,`/`,`aria-label`,`rdlabo.dev home`,1,`site-brand`],[`src`,`/assets/brand/rdlabo-logo.svg`,`width`,`48`,`height`,`24`,`alt`,``,1,`site-brand__logo`],[1,`site-brand__name`],[1,`site-search`],[`aria-label`,`Primary`,1,`site-nav`],[1,`site-nav__list`],[1,`site-nav__item`,3,`site-nav__item--mobile-hidden`],[1,`site-nav__item`],[1,`site-nav__link`,3,`href`],[`target`,`_blank`,`rel`,`noopener noreferrer`,1,`site-nav__link`,`external-link`,3,`href`],[`routerLinkActive`,`site-nav__link--active`,`ariaCurrentWhenActive`,`page`,1,`site-nav__link`,3,`routerLink`,`routerLinkActiveOptions`]],template:function(n,r){n&1&&(g(0,`header`,0)(1,`div`,1)(2,`a`,2),ie(3,`img`,3),g(4,`span`,4),v(5,`rdlabo.dev`),m()(),ie(6,`pagefind-modal-trigger`,5),g(7,`nav`,6)(8,`ul`,7),Se(9,_R,4,3,`li`,8,SR),m()()()()),n&2&&(b(9),De(r.navLinks))},dependencies:[Te,jp],encapsulation:2})};np(class e{#t=p(ut);#e=p(fe);#r=p(br);#n=p(V);constructor(){gc(this.#r)&&this.#s(),this.#t.events.pipe(et(t=>t instanceof Xe),IE(this.#e)).subscribe(t=>this.#o(t.urlAfterRedirects))}trackArticleJourney(t){if(!gc(this.#r))return;let n=t.target,r=n instanceof Element?n.closest(`a[href]`):null,o=this.#n.defaultView?.location.pathname.match(/^\/articles\/([^/]+)$/);if(!r||!o)return;let i=new URL(r.href,this.#n.baseURI),s=this.#i(i);if(!s)return;this.#n.defaultView?.gtag?.(`event`,s,{article_slug:decodeURIComponent(o[1]),link_url:i.href,link_domain:i.hostname})}#o(t){if(!gc(this.#r))return;let n=this.#n.defaultView;n?.gtag&&n.gtag(`event`,`page_view`,{page_title:this.#n.title,page_location:n.location.href,page_path:t})}#i(t){if(t.hostname===`docs.rdlabo.dev`)return`article_to_docs`;if(t.hostname===`www.npmjs.com`||t.hostname===`npmjs.com`)return`article_to_npm`;if(t.hostname===`github.com`)return t.pathname.startsWith(`/sponsors/`)?`article_to_sponsor`:`article_to_github`;if(t.hostname===`zenn.dev`||t.hostname===`note.com`)return`article_source_click`}#s(){if(!this.#n.head.querySelector(`link[data-pagefind-ui]`)){let t=this.#n.createElement(`link`);t.rel=`stylesheet`,t.href=`/pagefind/pagefind-component-ui.css`,t.dataset.pagefindUi=``,this.#n.head.appendChild(t)}if(!this.#n.head.querySelector(`script[data-pagefind-ui]`)){let t=this.#n.createElement(`script`);t.type=`module`,t.src=`/pagefind/pagefind-component-ui.js`,t.dataset.pagefindUi=``,this.#n.head.appendChild(t)}}static ɵfac=function(n){return new(n||e)};static ɵcmp=se({type:e,selectors:[[`app-root`]],hostBindings:function(n,r){n&1&&Ln(`click`,function(i){return r.trackArticleJourney(i)},Ku)},decls:8,vars:0,consts:[[`href`,`#main-content`,1,`skip-link`],[1,`site-shell`],[`id`,`main-content`,`tabindex`,`-1`,`data-pagefind-body`,``,1,`site-main`]],template:function(n,r){n&1&&(g(0,`a`,0),v(1,`Skip to content`),m(),g(2,`div`,1),ie(3,`app-site-header`),g(4,`main`,2),ie(5,`router-outlet`),m(),ie(6,`app-site-footer`),m(),ie(7,`pagefind-modal`))},dependencies:[Yi,cl,al],encapsulation:2})},TE).catch(e=>console.error(e));
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.