PageSourceSearch

https://semnexus.com/main-44WFRNBR.js

js semnexus.com collected 2026-10-03 22:11:03 UTC 651,749 bytes, 81 lines download raw bytes

1var Qx=Object.defineProperty,Kx=Object.defineProperties;var Jx=Object.getOwnPropertyDescriptors;var ka=Object.getOwnPropertySymbols;var jg=Object.prototype.hasOwnProperty,Vg=Object.prototype.propertyIsEnumerable;var Lg=(e,n,t)=>n in e?Qx(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t,I=(e,n)=>{for(var t in n||={})jg.call(n,t)&&Lg(e,t,n[t]);if(ka)for(var t of ka(n))Vg.call(n,t)&&Lg(e,t,n[t]);return e},Z=(e,n)=>Kx(e,Jx(n));var Bg=(e,n)=>{var t={};for(var i in e)jg.call(e,i)&&n.indexOf(i)<0&&(t[i]=e[i]);if(e!=null&&ka)for(var i of ka(e))n.indexOf(i)<0&&Vg.call(e,i)&&(t[i]=e[i]);return t};var bd;function Oa(){return bd}function yn(e){let n=bd;return bd=e,n}var Ug=Symbol("NotFound"),Zo=class extends Error{name="\u0275NotFound";constructor(n){super(n)}};function Vi(e){return e===Ug||e?.name==="\u0275NotFound"}function La(e,n){return Object.is(e,n)}var qe=null,Na=!1,wd=1,Xx=null,mt=Symbol("SIGNAL");function J(e){let n=qe;return qe=e,n}function ja(){return qe}var ai={version:0,lastCleanEpoch:0,dirty:!1,producerNode:void 0,producerLastReadVersion:void 0,producerIndexOfThis:void 0,nextProducerIndex:0,liveConsumerNode:void 0,liveConsumerIndexOfThis:void 0,consumerAllowSignalWrites:!1,consumerIsAlwaysLive:!1,kind:"unknown",producerMustRecompute:()=>!1,producerRecomputeValue:()=>{},consumerMarkedDirty:()=>{},consumerOnSignalRead:()=>{}};function Nr(e){if(Na)throw new Error("");if(qe===null)return;qe.consumerOnSignalRead(e);let n=qe.nextProducerIndex++;if(Ua(qe),n<qe.producerNode.length&&qe.producerNode[n]!==e&&Ko(qe)){let t=qe.producerNode[n];Ba(t,qe.producerIndexOfThis[n])}qe.producerNode[n]!==e&&(qe.producerNode[n]=e,qe.producerIndexOfThis[n]=Ko(qe)?Hg(e,qe,n):0),qe.producerLastReadVersion[n]=e.version}function $g(){wd++}function Va(e){if(!(Ko(e)&&!e.dirty)&&!(!e.dirty&&e.lastCleanEpoch===wd)){if(!e.producerMustRecompute(e)&&!Rr(e)){Fa(e);return}e.producerRecomputeValue(e),Fa(e)}}function _d(e){if(e.liveConsumerNode===void 0)return;let n=Na;Na=!0;try{for(let t of e.liveConsumerNode)t.dirty||eD(t)}finally{Na=n}}function Ed(){return qe?.consumerAllowSignalWrites!==!1}function eD(e){e.dirty=!0,_d(e),e.consumerMarkedDirty?.(e)}function Fa(e){e.dirty=!1,e.lastCleanEpoch=wd}function ci(e){return e&&(e.nextProducerIndex=0),J(e)}function Bi(e,n){if(J(n),!(!e||e.producerNode===void 0||e.producerIndexOfThis===void 0||e.producerLastReadVersion===void 0)){if(Ko(e))for(let t=e.nextProducerIndex;t<e.producerNode.length;t++)Ba(e.producerNode[t],e.producerIndexOfThis[t]);for(;e.producerNode.length>e.nextProducerIndex;)e.producerNode.pop(),e.producerLastReadVersion.pop(),e.producerIndexOfThis.pop()}}function Rr(e){Ua(e);for(let n=0;n<e.producerNode.length;n++){let t=e.producerNode[n],i=e.producerLastReadVersion[n];if(i!==t.version||(Va(t),i!==t.version))return!0}return!1}function Pr(e){if(Ua(e),Ko(e))for(let n=0;n<e.producerNode.length;n++)Ba(e.producerNode[n],e.producerIndexOfThis[n]);e.producerNode.length=e.producerLastReadVersion.length=e.producerIndexOfThis.length=0,e.liveConsumerNode&&(e.liveConsumerNode.length=e.liveConsumerIndexOfThis.length=0)}function Hg(e,n,t){if(zg(e),e.liveConsumerNode.length===0&&Gg(e))for(let i=0;i<e.producerNode.length;i++)e.producerIndexOfThis[i]=Hg(e.producerNode[i],e,i);return e.liveConsumerIndexOfThis.push(t),e.liveConsumerNode.push(n)-1}function Ba(e,n){if(zg(e),e.liveConsumerNode.length===1&&Gg(e))for(let i=0;i<e.producerNode.length;i++)Ba(e.producerNode[i],e.producerIndexOfThis[i]);let t=e.liveConsumerNode.length-1;if(e.liveConsumerNode[n]=e.liveConsumerNode[t],e.liveConsumerIndexOfThis[n]=e.liveConsumerIndexOfThis[t],e.liveConsumerNode.length--,e.liveConsumerIndexOfThis.length--,n<e.liveConsumerNode.length){let i=e.liveConsumerIndexOfThis[n],r=e.liveConsumerNode[n];Ua(r),r.producerIndexOfThis[i]=n}}function Ko(e){return e.consumerIsAlwaysLive||(e?.liveConsumerNode?.length??0)>0}function Ua(e){e.producerNode??=[],e.producerIndexOfThis??=[],e.producerLastReadVersion??=[]}function zg(e){e.liveConsumerNode??=[],e.liveConsumerIndexOfThis??=[]}function Gg(e){return e.producerNode!==void 0}function $a(e){Xx?.(e)}function Ha(e,n){let t=Object.create(tD);t.computation=e,n!==void 0&&(t.equal=n);let i=()=>
vendor: 4,334 bytes, lines 1-3
1{if(Va(t),Nr(t),t.value===Qo)throw t.error;return t.value};return i[mt]=t,$a(t),i}var Ra=Symbol("UNSET"),Pa=Symbol("COMPUTING"),Qo=Symbol("ERRORED"),tD=Z(I({},ai),{value:Ra,dirty:!0,error:null,equal:La,kind:"computed",producerMustRecompute(e){return e.value===Ra||e.value===Pa},producerRecomputeValue(e){if(e.value===Pa)throw new Error("");let n=e.value;e.value=Pa;let t=ci(e),i,r=!1;try{i=e.computation(),J(null),r=n!==Ra&&n!==Qo&&i!==Qo&&e.equal(n,i)}catch(o){i=Qo,e.error=o}finally{Bi(e,t)}if(r){e.value=n;return}e.value=i,e.version++}});function nD(){throw new Error}var Wg=nD;function qg(e){Wg(e)}function Cd(e){Wg=e}var iD=null;function xd(e,n){let t=Object.create(za);t.value=e,n!==void 0&&(t.equal=n);let i=()=>Yg(t);return i[mt]=t,$a(t),[i,s=>Fr(t,s),s=>Dd(t,s)]}function Yg(e){return Nr(e),e.value}function Fr(e,n){Ed()||qg(e),e.equal(e.value,n)||(e.value=n,rD(e))}function Dd(e,n){Ed()||qg(e),Fr(e,n(e.value))}var za=Z(I({},ai),{equal:La,value:void 0,kind:"signal"});function rD(e){e.version++,$g(),_d(e),iD?.(e)}function ee(e){return typeof e=="function"}function Lr(e){let t=e(i=>{Error.call(i),i.stack=new Error().stack});return t.prototype=Object.create(Error.prototype),t.prototype.constructor=t,t}var Ga=Lr(e=>function(t){e(this),this.message=t?`${t.length} errors occurred during unsubscription:
2${t.map((i,r)=>`${r+1}) ${i.toString()}`).join(`
3  `)}`:"",this.name="UnsubscriptionError",this.errors=t});function Jo(e,n){if(e){let t=e.indexOf(n);0<=t&&e.splice(t,1)}}var Ge=class e{constructor(n){this.initialTeardown=n,this.closed=!1,this._parentage=null,this._finalizers=null}unsubscribe(){let n;if(!this.closed){this.closed=!0;let{_parentage:t}=this;if(t)if(this._parentage=null,Array.isArray(t))for(let o of t)o.remove(this);else t.remove(this);let{initialTeardown:i}=this;if(ee(i))try{i()}catch(o){n=o instanceof Ga?o.errors:[o]}let{_finalizers:r}=this;if(r){this._finalizers=null;for(let o of r)try{Zg(o)}catch(s){n=n??[],s instanceof Ga?n=[...n,...s.errors]:n.push(s)}}if(n)throw new Ga(n)}}add(n){var t;if(n&&n!==this)if(this.closed)Zg(n);else{if(n instanceof e){if(n.closed||n._hasParent(this))return;n._addParent(this)}(this._finalizers=(t=this._finalizers)!==null&&t!==void 0?t:[]).push(n)}}_hasParent(n){let{_parentage:t}=this;return t===n||Array.isArray(t)&&t.includes(n)}_addParent(n){let{_parentage:t}=this;this._parentage=Array.isArray(t)?(t.push(n),t):t?[t,n]:n}_removeParent(n){let{_parentage:t}=this;t===n?this._parentage=null:Array.isArray(t)&&Jo(t,n)}remove(n){let{_finalizers:t}=this;t&&Jo(t,n),n instanceof e&&n._removeParent(this)}};Ge.EMPTY=(()=>{let e=new Ge;return e.closed=!0,e})();var Sd=Ge.EMPTY;function Wa(e){return e instanceof Ge||e&&"closed"in e&&ee(e.remove)&&ee(e.add)&&ee(e.unsubscribe)}function Zg(e){ee(e)?e():e.unsubscribe()}var tn={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1};var jr={setTimeout(e,n,...t){let{delegate:i}=jr;return i?.setTimeout?i.setTimeout(e,n,...t):setTimeout(e,n,...t)},clearTimeout(e){let{delegate:n}=jr;return(n?.clearTimeout||clearTimeout)(e)},delegate:void 0};function qa(e){jr.setTimeout(()=>{let{onUnhandledError:n}=tn;if(n)n(e);else throw e})}function Xo(){}var Qg=Id("C",void 0,void 0);function Kg(e){return Id("E",void 0,e)}function Jg(e){return Id("N",e,void 0)}function Id(e,n,t){return{kind:e,value:n,error:t}}var Ui=null;function Vr(e){if(tn.useDeprecatedSynchronousErrorHandling){let n=!Ui;if(n&&(Ui={errorThrown:!1,error:null}),e(),n){let{errorThrown:t,error:i}=Ui;if(Ui=null,t)throw i}}else e()}function Xg(e){tn.useDeprecatedSynchronousErrorHandling&&Ui&&(Ui.errorThrown=!0,Ui.error=e)}var $i=class extends Ge{constructor(n){super(),this.isStopped=!1,n?(this.destination=n,Wa(n)&&n.add(this)):this.destination=aD}static create(n,t,i){return new Fn(n,t,i)}next(n){this.isStopped?Td(Jg(n),this):this._next(n)}error(n){this.isStopped?Td(Kg(n),this):(this.isStopped=!0,this._error(n))}complete(){this.isStopped?Td(Qg,this):(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe(),this.destination=null)}_next(n){this.destination.next(n)}_error(n){try{this.destination.error(n)}finally{this.unsubscribe()}}_complete(){try{this.destination.complete()}finally{this.unsubscribe()}}},oD=Function.prototype.bind;
vendor: 7,846 bytes, line 3
3function Md(e,n){return oD.call(e,n)}var Ad=class{constructor(n){this.partialObserver=n}next(n){let{partialObserver:t}=this;if(t.next)try{t.next(n)}catch(i){Ya(i)}}error(n){let{partialObserver:t}=this;if(t.error)try{t.error(n)}catch(i){Ya(i)}else Ya(n)}complete(){let{partialObserver:n}=this;if(n.complete)try{n.complete()}catch(t){Ya(t)}}},Fn=class extends $i{constructor(n,t,i){super();let r;if(ee(n)||!n)r={next:n??void 0,error:t??void 0,complete:i??void 0};else{let o;this&&tn.useDeprecatedNextContext?(o=Object.create(n),o.unsubscribe=()=>this.unsubscribe(),r={next:n.next&&Md(n.next,o),error:n.error&&Md(n.error,o),complete:n.complete&&Md(n.complete,o)}):r=n}this.destination=new Ad(r)}};function Ya(e){tn.useDeprecatedSynchronousErrorHandling?Xg(e):qa(e)}function sD(e){throw e}function Td(e,n){let{onStoppedNotification:t}=tn;t&&jr.setTimeout(()=>t(e,n))}var aD={closed:!0,next:Xo,error:sD,complete:Xo};var Br=typeof Symbol=="function"&&Symbol.observable||"@@observable";function kt(e){return e}function kd(...e){return Od(e)}function Od(e){return e.length===0?kt:e.length===1?e[0]:function(t){return e.reduce((i,r)=>r(i),t)}}var oe=(()=>{class e{constructor(t){t&&(this._subscribe=t)}lift(t){let i=new e;return i.source=this,i.operator=t,i}subscribe(t,i,r){let o=lD(t)?t:new Fn(t,i,r);return Vr(()=>{let{operator:s,source:a}=this;o.add(s?s.call(o,a):a?this._subscribe(o):this._trySubscribe(o))}),o}_trySubscribe(t){try{return this._subscribe(t)}catch(i){t.error(i)}}forEach(t,i){return i=ev(i),new i((r,o)=>{let s=new Fn({next:a=>{try{t(a)}catch(c){o(c),s.unsubscribe()}},error:o,complete:r});this.subscribe(s)})}_subscribe(t){var i;return(i=this.source)===null||i===void 0?void 0:i.subscribe(t)}[Br](){return this}pipe(...t){return Od(t)(this)}toPromise(t){return t=ev(t),new t((i,r)=>{let o;this.subscribe(s=>o=s,s=>r(s),()=>i(o))})}}return e.create=n=>new e(n),e})();function ev(e){var n;return(n=e??tn.Promise)!==null&&n!==void 0?n:Promise}function cD(e){return e&&ee(e.next)&&ee(e.error)&&ee(e.complete)}function lD(e){return e&&e instanceof $i||cD(e)&&Wa(e)}function Nd(e){return ee(e?.lift)}function le(e){return n=>{if(Nd(n))return n.lift(function(t){try{return e(t,this)}catch(i){this.error(i)}});throw new TypeError("Unable to lift unknown Observable type")}}function ue(e,n,t,i,r){return new Rd(e,n,t,i,r)}var Rd=class extends $i{constructor(n,t,i,r,o,s){super(n),this.onFinalize=o,this.shouldUnsubscribe=s,this._next=t?function(a){try{t(a)}catch(c){n.error(c)}}:super._next,this._error=r?function(a){try{r(a)}catch(c){n.error(c)}finally{this.unsubscribe()}}:super._error,this._complete=i?function(){try{i()}catch(a){n.error(a)}finally{this.unsubscribe()}}:super._complete}unsubscribe(){var n;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){let{closed:t}=this;super.unsubscribe(),!t&&((n=this.onFinalize)===null||n===void 0||n.call(this))}}};function Ur(){return le((e,n)=>{let t=null;e._refCount++;let i=ue(n,void 0,void 0,void 0,()=>{if(!e||e._refCount<=0||0<--e._refCount){t=null;return}let r=e._connection,o=t;t=null,r&&(!o||r===o)&&r.unsubscribe(),n.unsubscribe()});e.subscribe(i),i.closed||(t=e.connect())})}var $r=class extends oe{constructor(n,t){super(),this.source=n,this.subjectFactory=t,this._subject=null,this._refCount=0,this._connection=null,Nd(n)&&(this.lift=n.lift)}_subscribe(n){return this.getSubject().subscribe(n)}getSubject(){let n=this._subject;return(!n||n.isStopped)&&(this._subject=this.subjectFactory()),this._subject}_teardown(){this._refCount=0;let{_connection:n}=this;this._subject=this._connection=null,n?.unsubscribe()}connect(){let n=this._connection;if(!n){n=this._connection=new Ge;let t=this.getSubject();n.add(this.source.subscribe(ue(t,void 0,()=>{this._teardown(),t.complete()},i=>{this._teardown(),t.error(i)},()=>this._teardown()))),n.closed&&(this._connection=null,n=Ge.EMPTY)}return n}refCount(){return Ur()(this)}};var tv=Lr(e=>function(){e(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"});var ke=(()=>{class e extends oe{constructor(){super(),this.closed=!1,this.currentObservers=null,this.observers=[],this.isStopped=!1,this.hasError=!1,this.thrownError=null}lift(t){let i=new Za(this,this);return i.operator=t,i}_throwIfClosed(){if(this.closed)throw new tv}next(t){Vr(()=>{if(this._throwIfClosed(),!this.isStopped){this.currentObservers||(this.currentObservers=Array.from(this.observers));for(let i of this.currentObservers)i.next(t)}})}error(t){Vr(()=>{if(this._throwIfClosed(),!this.isStopped){this.hasError=this.isStopped=!0,this.thrownError=t;let{observers:i}=this;for(;i.length;)i.shift().error(t)}})}complete(){Vr(()=>{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:i,isStopped:r,observers:o}=this;return i||r?Sd:(this.currentObservers=null,o.push(t),new Ge(()=>{this.currentObservers=null,Jo(o,t)}))}_checkFinalizedStatuses(t){let{hasError:i,thrownError:r,isStopped:o}=this;i?t.error(r):o&&t.complete()}asObservable(){let t=new oe;return t.source=this,t}}return e.create=(n,t)=>new Za(n,t),e})(),Za=class extends ke{constructor(n,t){super(),this.destination=n,this.source=t}next(n){var t,i;(i=(t=this.destination)===null||t===void 0?void 0:t.next)===null||i===void 0||i.call(t,n)}error(n){var t,i;(i=(t=this.destination)===null||t===void 0?void 0:t.error)===null||i===void 0||i.call(t,n)}complete(){var n,t;(t=(n=this.destination)===null||n===void 0?void 0:n.complete)===null||t===void 0||t.call(n)}_subscribe(n){var t,i;return(i=(t=this.source)===null||t===void 0?void 0:t.subscribe(n))!==null&&i!==void 0?i:Sd}};var st=class extends ke{constructor(n){super(),this._value=n}get value(){return this.getValue()}_subscribe(n){let t=super._subscribe(n);return!t.closed&&n.next(this._value),t}getValue(){let{hasError:n,thrownError:t,_value:i}=this;if(n)throw t;return this._throwIfClosed(),i}next(n){super.next(this._value=n)}};var Pd={now(){return(Pd.delegate||Date).now()},delegate:void 0};var Qa=class extends ke{constructor(n=1/0,t=1/0,i=Pd){super(),this._bufferSize=n,this._windowTime=t,this._timestampProvider=i,this._buffer=[],this._infiniteTimeWindow=!0,this._infiniteTimeWindow=t===1/0,this._bufferSize=Math.max(1,n),this._windowTime=Math.max(1,t)}next(n){let{isStopped:t,_buffer:i,_infiniteTimeWindow:r,_timestampProvider:o,_windowTime:s}=this;t||(i.push(n),!r&&i.push(o.now()+s)),this._trimBuffer(),super.next(n)}_subscribe(n){this._throwIfClosed(),this._trimBuffer();let t=this._innerSubscribe(n),{_infiniteTimeWindow:i,_buffer:r}=this,o=r.slice();for(let s=0;s<o.length&&!n.closed;s+=i?1:2)n.next(o[s]);return this._checkFinalizedStatuses(n),t}_trimBuffer(){let{_bufferSize:n,_timestampProvider:t,_buffer:i,_infiniteTimeWindow:r}=this,o=(r?1:2)*n;if(n<1/0&&o<i.length&&i.splice(0,i.length-o),!r){let s=t.now(),a=0;for(let c=1;c<i.length&&i[c]<=s;c+=2)a=c;a&&i.splice(0,a+1)}}};var It=new oe(e=>e.complete());function nv(e){return e&&ee(e.schedule)}function iv(e){return e[e.length-1]}function Ka(e){return ee(iv(e))?e.pop():void 0}function li(e){return nv(iv(e))?e.pop():void 0}function ov(e,n,t,i){function r(o){return o instanceof t?o:new t(function(s){s(o)})}return new(t||(t=Promise))(function(o,s){function a(m){try{d(i.next(m))}catch(h){s(h)}}function c(m){try{d(i.throw(m))}catch(h){s(h)}}function d(m){m.done?o(m.value):r(m.value).then(a,c)}d((i=i.apply(e,n||[])).next())})}function rv(e){var n=typeof Symbol=="function"&&Symbol.iterator,t=n&&e[n],i=0;if(t)return t.call(e);
vendor: 3,263 bytes, line 3
3if(e&&typeof e.length=="number")return{next:function(){return e&&i>=e.length&&(e=void 0),{value:e&&e[i++],done:!e}}};throw new TypeError(n?"Object is not iterable.":"Symbol.iterator is not defined.")}function Hi(e){return this instanceof Hi?(this.v=e,this):new Hi(e)}function sv(e,n,t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var i=t.apply(e,n||[]),r,o=[];return r=Object.create((typeof AsyncIterator=="function"?AsyncIterator:Object).prototype),a("next"),a("throw"),a("return",s),r[Symbol.asyncIterator]=function(){return this},r;function s(g){return function(x){return Promise.resolve(x).then(g,h)}}function a(g,x){i[g]&&(r[g]=function(R){return new Promise(function(k,N){o.push([g,R,k,N])>1||c(g,R)})},x&&(r[g]=x(r[g])))}function c(g,x){try{d(i[g](x))}catch(R){w(o[0][3],R)}}function d(g){g.value instanceof Hi?Promise.resolve(g.value.v).then(m,h):w(o[0][2],g)}function m(g){c("next",g)}function h(g){c("throw",g)}function w(g,x){g(x),o.shift(),o.length&&c(o[0][0],o[0][1])}}function av(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var n=e[Symbol.asyncIterator],t;return n?n.call(e):(e=typeof rv=="function"?rv(e):e[Symbol.iterator](),t={},i("next"),i("throw"),i("return"),t[Symbol.asyncIterator]=function(){return this},t);function i(o){t[o]=e[o]&&function(s){return new Promise(function(a,c){s=e[o](s),r(a,c,s.done,s.value)})}}function r(o,s,a,c){Promise.resolve(c).then(function(d){o({value:d,done:a})},s)}}var Ja=e=>e&&typeof e.length=="number"&&typeof e!="function";function Xa(e){return ee(e?.then)}function ec(e){return ee(e[Br])}function tc(e){return Symbol.asyncIterator&&ee(e?.[Symbol.asyncIterator])}function nc(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 uD(){return typeof Symbol!="function"||!Symbol.iterator?"@@iterator":Symbol.iterator}var ic=uD();function rc(e){return ee(e?.[ic])}function oc(e){return sv(this,arguments,function*(){let t=e.getReader();try{for(;;){let{value:i,done:r}=yield Hi(t.read());if(r)return yield Hi(void 0);yield yield Hi(i)}}finally{t.releaseLock()}})}function sc(e){return ee(e?.getReader)}function Pe(e){if(e instanceof oe)return e;if(e!=null){if(ec(e))return dD(e);if(Ja(e))return pD(e);if(Xa(e))return fD(e);if(tc(e))return cv(e);if(rc(e))return mD(e);if(sc(e))return hD(e)}throw nc(e)}function dD(e){return new oe(n=>{let t=e[Br]();if(ee(t.subscribe))return t.subscribe(n);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}function pD(e){return new oe(n=>{for(let t=0;t<e.length&&!n.closed;t++)n.next(e[t]);n.complete()})}function fD(e){return new oe(n=>{e.then(t=>{n.closed||(n.next(t),n.complete())},t=>n.error(t)).then(null,qa)})}function mD(e){return new oe(n=>{for(let t of e)if(n.next(t),n.closed)return;n.complete()})}function cv(e){return new oe(n=>{gD(e,n).catch(t=>n.error(t))})}function hD(e){return cv(oc(e))}function gD(e,n){var t,i,r,o;return ov(this,void 0,void 0,function*(){try{for(t=av(e);i=yield t.next(),!i.done;){let s=i.value;if(n.next(s),n.closed)return}}catch(s){r={error:s}}
vendor: 4,100 bytes, line 3
3finally{try{i&&!i.done&&(o=t.return)&&(yield o.call(t))}finally{if(r)throw r.error}}n.complete()})}function Mt(e,n,t,i=0,r=!1){let o=n.schedule(function(){t(),r?e.add(this.schedule(null,i)):this.unsubscribe()},i);if(e.add(o),!r)return o}function ac(e,n=0){return le((t,i)=>{t.subscribe(ue(i,r=>Mt(i,e,()=>i.next(r),n),()=>Mt(i,e,()=>i.complete(),n),r=>Mt(i,e,()=>i.error(r),n)))})}function cc(e,n=0){return le((t,i)=>{i.add(e.schedule(()=>t.subscribe(i),n))})}function lv(e,n){return Pe(e).pipe(cc(n),ac(n))}function uv(e,n){return Pe(e).pipe(cc(n),ac(n))}function dv(e,n){return new oe(t=>{let i=0;return n.schedule(function(){i===e.length?t.complete():(t.next(e[i++]),t.closed||this.schedule())})})}function pv(e,n){return new oe(t=>{let i;return Mt(t,n,()=>{i=e[ic](),Mt(t,n,()=>{let r,o;try{({value:r,done:o}=i.next())}catch(s){t.error(s);return}o?t.complete():t.next(r)},0,!0)}),()=>ee(i?.return)&&i.return()})}function lc(e,n){if(!e)throw new Error("Iterable cannot be null");return new oe(t=>{Mt(t,n,()=>{let i=e[Symbol.asyncIterator]();Mt(t,n,()=>{i.next().then(r=>{r.done?t.complete():t.next(r.value)})},0,!0)})})}function fv(e,n){return lc(oc(e),n)}function mv(e,n){if(e!=null){if(ec(e))return lv(e,n);if(Ja(e))return dv(e,n);if(Xa(e))return uv(e,n);if(tc(e))return lc(e,n);if(rc(e))return pv(e,n);if(sc(e))return fv(e,n)}throw nc(e)}function Le(e,n){return n?mv(e,n):Pe(e)}function U(...e){let n=li(e);return Le(e,n)}function Hr(e,n){let t=ee(e)?e:()=>e,i=r=>r.error(t());return new oe(n?r=>n.schedule(i,0,r):i)}function Fd(e){return!!e&&(e instanceof oe||ee(e.lift)&&ee(e.subscribe))}var Ln=Lr(e=>function(){e(this),this.name="EmptyError",this.message="no elements in sequence"});function Q(e,n){return le((t,i)=>{let r=0;t.subscribe(ue(i,o=>{i.next(e.call(n,o,r++))}))})}var{isArray:vD}=Array;function yD(e,n){return vD(n)?e(...n):e(n)}function uc(e){return Q(n=>yD(e,n))}var{isArray:bD}=Array,{getPrototypeOf:wD,prototype:_D,keys:ED}=Object;function dc(e){if(e.length===1){let n=e[0];if(bD(n))return{args:n,keys:null};if(CD(n)){let t=ED(n);return{args:t.map(i=>n[i]),keys:t}}}return{args:e,keys:null}}function CD(e){return e&&typeof e=="object"&&wD(e)===_D}function pc(e,n){return e.reduce((t,i,r)=>(t[i]=n[r],t),{})}function fc(...e){let n=li(e),t=Ka(e),{args:i,keys:r}=dc(e);if(i.length===0)return Le([],n);let o=new oe(xD(i,n,r?s=>pc(r,s):kt));return t?o.pipe(uc(t)):o}function xD(e,n,t=kt){return i=>{hv(n,()=>{let{length:r}=e,o=new Array(r),s=r,a=r;for(let c=0;c<r;c++)hv(n,()=>{let d=Le(e[c],n),m=!1;d.subscribe(ue(i,h=>{o[c]=h,m||(m=!0,a--),a||i.next(t(o.slice()))},()=>{--s||i.complete()}))},i)},i)}}function hv(e,n,t){e?Mt(t,e,n):n()}function gv(e,n,t,i,r,o,s,a){let c=[],d=0,m=0,h=!1,w=()=>{h&&!c.length&&!d&&n.complete()},g=R=>d<i?x(R):c.push(R),x=R=>{o&&n.next(R),d++;let k=!1;Pe(t(R,m++)).subscribe(ue(n,N=>{r?.(N),o?g(N):n.next(N)},()=>{k=!0},void 0,()=>{if(k)try{for(d--;c.length&&d<i;){let N=c.shift();s?Mt(n,s,()=>x(N)):x(N)}w()}catch(N){n.error(N)}}))};return e.subscribe(ue(n,g,()=>{h=!0,w()})),()=>{a?.()}}function Ye(e,n,t=1/0){return ee(n)?Ye((i,r)=>Q((o,s)=>n(i,o,r,s))(Pe(e(i,r))),t):(typeof n=="number"&&(t=n),le((i,r)=>gv(i,r,e,t)))}function vv(e=1/0){return Ye(kt,e)}function yv(){return vv(1)}function zr(...e){return yv()(Le(e,li(e)))}function es(e){return new oe(n=>{Pe(e()).subscribe(n)})}function Ld(...e){let n=Ka(e),{args:t,keys:i}=dc(e),r=new oe(o=>{let{length:s}=t;if(!s){o.complete();return}let a=new Array(s),c=s,d=s;for(let m=0;m<s;m++){let h=!1;Pe(t[m]).subscribe(ue(o,w=>{h||(h=!0,d--),a[m]=w},()=>c--,void 0,()=>{(!c||!h)&&(d||o.next(i?pc(i,a):a),o.complete())}))}});return n?r.pipe(uc(n)):r}function at(e,n){return le((t,i)=>{let r=0;t.subscribe(ue(i,o=>e.call(n,o,r++)&&i.next(o)))})}function nn(e){return le((n,t)=>{let i=null,r=!1,o;i=n.subscribe(ue(t,void 0,void 0,s=>{o=Pe(e(s,nn(e)(n))),i?(i.unsubscribe(),i=null,o.subscribe(t)):r=!0})),r&&(i.unsubscribe(),i=null,o.subscribe(t))})}function bv(e,n,t,i,r){return(o,s)=>{let a=t,c=n,d=0;o.subscribe(ue(s,m=>{let h=d++;c=a?e(c,m,h):(a=!0,m),i&&s.next(c)},r&&(()=>{a&&s.next(c),s.complete()}
vendor: 11,265 bytes, lines 3-7
3)))}}function ui(e,n){return ee(n)?Ye(e,n,1):Ye(e,1)}function di(e){return le((n,t)=>{let i=!1;n.subscribe(ue(t,r=>{i=!0,t.next(r)},()=>{i||t.next(e),t.complete()}))})}function jn(e){return e<=0?()=>It:le((n,t)=>{let i=0;n.subscribe(ue(t,r=>{++i<=e&&(t.next(r),e<=i&&t.complete())}))})}function mc(e=DD){return le((n,t)=>{let i=!1;n.subscribe(ue(t,r=>{i=!0,t.next(r)},()=>i?t.complete():t.error(e())))})}function DD(){return new Ln}function zi(e){return le((n,t)=>{try{n.subscribe(t)}finally{t.add(e)}})}function Vn(e,n){let t=arguments.length>=2;return i=>i.pipe(e?at((r,o)=>e(r,o,i)):kt,jn(1),t?di(n):mc(()=>new Ln))}function Gr(e){return e<=0?()=>It:le((n,t)=>{let i=[];n.subscribe(ue(t,r=>{i.push(r),e<i.length&&i.shift()},()=>{for(let r of i)t.next(r);t.complete()},void 0,()=>{i=null}))})}function jd(e,n){let t=arguments.length>=2;return i=>i.pipe(e?at((r,o)=>e(r,o,i)):kt,Gr(1),t?di(n):mc(()=>new Ln))}function Vd(e,n){return le(bv(e,n,arguments.length>=2,!0))}function wv(e={}){let{connector:n=()=>new ke,resetOnError:t=!0,resetOnComplete:i=!0,resetOnRefCountZero:r=!0}=e;return o=>{let s,a,c,d=0,m=!1,h=!1,w=()=>{a?.unsubscribe(),a=void 0},g=()=>{w(),s=c=void 0,m=h=!1},x=()=>{let R=s;g(),R?.unsubscribe()};return le((R,k)=>{d++,!h&&!m&&w();let N=c=c??n();k.add(()=>{d--,d===0&&!h&&!m&&(a=Bd(x,r))}),N.subscribe(k),!s&&d>0&&(s=new Fn({next:we=>N.next(we),error:we=>{h=!0,w(),a=Bd(g,t,we),N.error(we)},complete:()=>{m=!0,w(),a=Bd(g,i),N.complete()}}),Pe(R).subscribe(s))})(o)}}function Bd(e,n,...t){if(n===!0){e();return}if(n===!1)return;let i=new Fn({next:()=>{i.unsubscribe(),e()}});return Pe(n(...t)).subscribe(i)}function Ud(e,n,t){let i,r=!1;return e&&typeof e=="object"?{bufferSize:i=1/0,windowTime:n=1/0,refCount:r=!1,scheduler:t}=e:i=e??1/0,wv({connector:()=>new Qa(i,n,t),resetOnError:!0,resetOnComplete:!1,resetOnRefCountZero:r})}function $d(...e){let n=li(e);return le((t,i)=>{(n?zr(e,t,n):zr(e,t)).subscribe(i)})}function ct(e,n){return le((t,i)=>{let r=null,o=0,s=!1,a=()=>s&&!r&&i.complete();t.subscribe(ue(i,c=>{r?.unsubscribe();let d=0,m=o++;Pe(e(c,m)).subscribe(r=ue(i,h=>i.next(n?n(c,h,m,d++):h),()=>{r=null,a()}))},()=>{s=!0,a()}))})}function hc(e){return le((n,t)=>{Pe(e).subscribe(ue(t,()=>t.complete(),Xo)),!t.closed&&n.subscribe(t)})}function nt(e,n,t){let i=ee(e)||n||t?{next:e,error:n,complete:t}:e;return i?le((r,o)=>{var s;(s=i.subscribe)===null||s===void 0||s.call(i);let a=!0;r.subscribe(ue(o,c=>{var d;(d=i.next)===null||d===void 0||d.call(i,c),o.next(c)},()=>{var c;a=!1,(c=i.complete)===null||c===void 0||c.call(i),o.complete()},c=>{var d;a=!1,(d=i.error)===null||d===void 0||d.call(i,c),o.error(c)},()=>{var c,d;a&&((c=i.unsubscribe)===null||c===void 0||c.call(i)),(d=i.finalize)===null||d===void 0||d.call(i)}))}):kt}function _v(e){let n=J(null);try{return e()}finally{J(n)}}var wc="https://angular.dev/best-practices/security#preventing-cross-site-scripting-xss",M=class extends Error{code;constructor(n,t){super(mi(n,t)),this.code=n}};function SD(e){return`NG0${Math.abs(e)}`}function mi(e,n){return`${SD(e)}${n?": "+n:""}`}var hi=globalThis;function Ne(e){for(let n in e)if(e[n]===Ne)return n;throw Error("")}function Dv(e,n){for(let t in n)n.hasOwnProperty(t)&&!e.hasOwnProperty(t)&&(e[t]=n[t])}function Tt(e){if(typeof e=="string")return e;if(Array.isArray(e))return`[${e.map(Tt).join(", ")}]`;if(e==null)return""+e;let n=e.overriddenName||e.name;if(n)return`${n}`;let t=e.toString();if(t==null)return""+t;let i=t.indexOf(`
4`);return i>=0?t.slice(0,i):t}function _c(e,n){return e?n?`${e} ${n}`:e:n||""}var ID=Ne({__forward_ref__:Ne});function Un(e){return e.__forward_ref__=Un,e.toString=function(){return Tt(this())},e}function Ze(e){return ep(e)?e():e}function ep(e){return typeof e=="function"&&e.hasOwnProperty(ID)&&e.__forward_ref__===Un}function Sv(e,n,t,i){throw new Error(`ASSERTION ERROR: ${e}`+(i==null?"":` [Expected=> ${t} ${i} ${n} <=Actual]`))}function A(e){return{token:e.token,providedIn:e.providedIn||null,factory:e.factory,value:void 0}}function rn(e){return{providers:e.providers||[],imports:e.imports||[]}}function os(e){return MD(e,Ec)}function tp(e){return os(e)!==null}function MD(e,n){return e.hasOwnProperty(n)&&e[n]||null}function TD(e){let n=e?.[Ec]??null;return n||null}function zd(e){return e&&e.hasOwnProperty(vc)?e[vc]:null}var Ec=Ne({\u0275prov:Ne}),vc=Ne({\u0275inj:Ne}),P=class{_desc;ngMetadataName="InjectionToken";\u0275prov;constructor(n,t){this._desc=n,this.\u0275prov=void 0,typeof t=="number"?this.__NG_ELEMENT_ID__=t:t!==void 0&&(this.\u0275prov=A({token:this,providedIn:t.providedIn||"root",factory:t.factory}))}get multi(){return this}toString(){return`InjectionToken ${this._desc}`}};function np(e){return e&&!!e.\u0275providers}var ip=Ne({\u0275cmp:Ne}),rp=Ne({\u0275dir:Ne}),op=Ne({\u0275pipe:Ne}),sp=Ne({\u0275mod:Ne}),ns=Ne({\u0275fac:Ne}),Zi=Ne({__NG_ELEMENT_ID__:Ne}),Ev=Ne({__NG_ENV_ID__:Ne});function $n(e){return typeof e=="string"?e:e==null?"":String(e)}function Iv(e){return typeof e=="function"?e.name||e.toString():typeof e=="object"&&e!=null&&typeof e.type=="function"?e.type.name||e.type.toString():$n(e)}function ap(e,n){throw new M(-200,e)}function Cc(e,n){throw new M(-201,!1)}var Gd;function Mv(){return Gd}function yt(e){let n=Gd;return Gd=e,n}function cp(e,n,t){let i=os(e);if(i&&i.providedIn=="root")return i.value===void 0?i.value=i.factory():i.value;if(t&8)return null;if(n!==void 0)return n;Cc(e,"Injector")}var AD={},Gi=AD,Wd="__NG_DI_FLAG__",qd=class{injector;constructor(n){this.injector=n}retrieve(n,t){let i=Wi(t)||0;try{return this.injector.get(n,i&8?null:Gi,i)}catch(r){if(Vi(r))return r;throw r}}},yc="ngTempTokenPath",kD="ngTokenPath",OD=/\n/gm,ND="\u0275",Cv="__source";function RD(e,n=0){let t=Oa();if(t===void 0)throw new M(-203,!1);if(t===null)return cp(e,void 0,n);{let i=PD(n),r=t.retrieve(e,i);if(Vi(r)){if(i.optional)return null;throw r}return r}}function $(e,n=0){return(Mv()||RD)(Ze(e),n)}function y(e,n){return $(e,Wi(n))}function Wi(e){return typeof e>"u"||typeof e=="number"?e:0|(e.optional&&8)|(e.host&&1)|(e.self&&2)|(e.skipSelf&&4)}function PD(e){return{optional:!!(e&8),host:!!(e&1),self:!!(e&2),skipSelf:!!(e&4)}}function Yd(e){let n=[];for(let t=0;t<e.length;t++){let i=Ze(e[t]);if(Array.isArray(i)){if(i.length===0)throw new M(900,!1);let r,o=0;for(let s=0;s<i.length;s++){let a=i[s],c=FD(a);typeof c=="number"?c===-1?r=a.token:o|=c:r=a}n.push($(r,o))}else n.push($(i))}return n}function lp(e,n){return e[Wd]=n,e.prototype[Wd]=n,e}function FD(e){return e[Wd]}function LD(e,n,t,i){let r=e[yc];throw n[Cv]&&r.unshift(n[Cv]),e.message=jD(`
5`+e.message,r,t,i),e[kD]=r,e[yc]=null,e}function jD(e,n,t,i=null){e=e&&e.charAt(0)===`
6`&&e.charAt(1)==ND?e.slice(2):e;let r=Tt(n);if(Array.isArray(n))r=n.map(Tt).join(" -> ");else if(typeof n=="object"){let o=[];for(let s in n)if(n.hasOwnProperty(s)){let a=n[s];o.push(s+":"+(typeof a=="string"?JSON.stringify(a):Tt(a)))}r=`{${o.join(", ")}}`}return`${t}${i?"("+i+")":""}[${r}]: ${e.replace(OD,`
7  `)}`}function pi(e,n){let t=e.hasOwnProperty(ns);return t?e[ns]:null}function Tv(e,n,t){if(e.length!==n.length)return!1;for(let i=0;i<e.length;i++){let r=e[i],o=n[i];if(t&&(r=t(r),o=t(o)),o!==r)return!1}return!0}function Av(e){return e.flat(Number.POSITIVE_INFINITY)}function xc(e,n){e.forEach(t=>Array.isArray(t)?xc(t,n):n(t))}function up(e,n,t){n>=e.length?e.push(t):e.splice(n,0,t)}function ss(e,n){return n>=e.length-1?e.pop():e.splice(n,1)[0]}function kv(e,n){let t=[];for(let i=0;i<e;i++)t.push(n);return t}function Ov(e,n,t,i){let r=e.length;if(r==n)e.push(t,i);else if(r===1)e.push(i,e[0]),e[0]=t;else{for(r--,e.push(e[r-1],e[r]);r>n;){let o=r-2;e[r]=e[o],r--}e[n]=t,e[n+1]=i}}function as(e,n,t){let i=qr(e,n);return i>=0?e[i|1]=t:(i=~i,Ov(e,i,n,t)),i}function Dc(e,n){let t=qr(e,n);if(t>=0)return e[t|1]}function qr(e,n){return VD(e,n,1)}function VD(e,n,t){let i=0,r=e.length>>t;for(;r!==i;){let o=i+(r-i>>1),s=e[o<<t];if(n===s)return o<<t;s>n?r=o:i=o+1}return~(r<<t)}var on={},bt=[],Gt=new P(""),dp=new P("",-1),pp=new P(""),is=class{get(n,t=Gi){if(t===Gi)throw new Zo(`NullInjectorError: No provider for ${Tt(n)}!`);return t}};function fp(e){return e[sp]||null}function Hn(e){return e[ip]||null}function cs(e){return e[rp]||null}function mp(e){return e[op]||null}function Wt(e){return{\u0275providers:e}}function Nv(e){return Wt([{provide:Gt,multi:!0,useValue:e}])}function Rv(...e){return{\u0275providers:Sc(!0,e),\u0275fromNgModule:!0}}function Sc(e,...n){let t=[],i=new Set,r,o=s=>{t.push(s)};return xc(n,s=>{let a=s;bc(a,o,[],i)&&(r||=[],r.push(a))}),r!==void 0&&Pv(r,o),t}function Pv(e,n){for(let t=0;t<e.length;t++){let{ngModule:i,providers:r}=e[t];hp(r,o=>{n(o,i)})}}function bc(e,n,t,i){if(e=Ze(e),!e)return!1;let r=null,o=zd(e),s=!o&&Hn(e);if(!o&&!s){let c=e.ngModule;if(o=zd(c),o)r=c;else return!1}else{if(s&&!s.standalone)return!1;r=e}let a=i.has(r);if(s){if(a)return!1;if(i.add(r),s.dependencies){let c=typeof s.dependencies=="function"?s.dependencies():s.dependencies;for(let d of c)bc(d,n,t,i)}}else if(o){if(o.imports!=null&&!a){i.add(r);let d;try{xc(o.imports,m=>{bc(m,n,t,i)&&(d||=[],d.push(m))})}finally{}d!==void 0&&Pv(d,n)}if(!a){let d=pi(r)||(()=>new r);n({provide:r,useFactory:d,deps:bt},r),n({provide:pp,useValue:r,multi:!0},r),n({provide:Gt,useValue:()=>$(r),multi:!0},r)}let c=o.providers;if(c!=null&&!a){let d=e;hp(c,m=>{n(m,d)})}}else return!1;return r!==e&&e.providers!==void 0}function hp(e,n){for(let t of e)np(t)&&(t=t.\u0275providers),Array.isArray(t)?hp(t,n):n(t)}var BD=Ne({provide:String,useValue:Ne});function Fv(e){return e!==null&&typeof e=="object"&&BD in e}function UD(e){return!!(e&&e.useExisting)}function $D(e){return!!(e&&e.useFactory)}function qi(e){return typeof e=="function"}function Lv(e){return!!e.useClass}var ls=new P(""),gc={},xv={},Hd;function us(){return Hd===void 0&&(Hd=new is),Hd}var $e=class{},Yi=class extends $e{parent;source;scopes;records=new Map;_ngOnDestroyHooks=new Set;_onDestroyHooks=[];get destroyed(){return this._destroyed}_destroyed=!1;injectorDefTypes;constructor(n,t,i,r){super(),this.parent=t,this.source=i,this.scopes=r,Qd(n,s=>this.processProvider(s)),this.records.set(dp,Wr(void 0,this)),r.has("environment")&&this.records.set($e,Wr(void 0,this));let o=this.records.get(ls);o!=null&&typeof o.value=="string"&&this.scopes.add(o.value),this.injectorDefTypes=new Set(this.get(pp,bt,{self:!0}))}retrieve(n,t){let i=Wi(t)||0;try{return this.get(n,Gi,i)}catch(r){if(Vi(r))return r;throw r}}destroy(){ts(this),this._destroyed=!0;let n=J(null);try{for(let i of this._ngOnDestroyHooks)i.ngOnDestroy();let t=this._onDestroyHooks;this._onDestroyHooks=[];for(let i of t)i()}finally{this.records.clear(),this._ngOnDestroyHooks.clear(),this.injectorDefTypes.clear(),J(n)}}onDestroy(n){return ts(this),this._onDestroyHooks.push(n),()=>this.removeOnDestroy(n)}runInContext(n){ts(this);let t=yn(this),i=yt(void 0),r;try{return n()}finally{yn(t),yt(i)}}get(n,t=Gi,i){if(ts(this),n.hasOwnProperty(Ev))return n[Ev](this);let r=Wi(i),o,s=yn(this),a=yt(void 0);try{if(!(r&4)){let d=this.records.get(n);if(d===void 0){let m=qD(n)&&os(n);m&&this.injectableDefInScope(m)?d=Wr(Zd(n),gc):d=null,this.records.set(n,d)}if(d!=null)return this.hydrate(n,d,r)}let c=r&2?us():this.parent;return t=r&8&&t===Gi?null:t,c.get(n,t)}
vendor: 5,497 bytes, line 7
7catch(c){if(Vi(c)){if((c[yc]=c[yc]||[]).unshift(Tt(n)),s)throw c;return LD(c,n,"R3InjectorError",this.source)}else throw c}finally{yt(a),yn(s)}}resolveInjectorInitializers(){let n=J(null),t=yn(this),i=yt(void 0),r;try{let o=this.get(Gt,bt,{self:!0});for(let s of o)s()}finally{yn(t),yt(i),J(n)}}toString(){let n=[],t=this.records;for(let i of t.keys())n.push(Tt(i));return`R3Injector[${n.join(", ")}]`}processProvider(n){n=Ze(n);let t=qi(n)?n:Ze(n&&n.provide),i=zD(n);if(!qi(n)&&n.multi===!0){let r=this.records.get(t);r||(r=Wr(void 0,gc,!0),r.factory=()=>Yd(r.multi),this.records.set(t,r)),t=n,r.multi.push(n)}this.records.set(t,i)}hydrate(n,t,i){let r=J(null);try{return t.value===xv?ap(Tt(n)):t.value===gc&&(t.value=xv,t.value=t.factory(void 0,i)),typeof t.value=="object"&&t.value&&WD(t.value)&&this._ngOnDestroyHooks.add(t.value),t.value}finally{J(r)}}injectableDefInScope(n){if(!n.providedIn)return!1;let t=Ze(n.providedIn);return typeof t=="string"?t==="any"||this.scopes.has(t):this.injectorDefTypes.has(t)}removeOnDestroy(n){let t=this._onDestroyHooks.indexOf(n);t!==-1&&this._onDestroyHooks.splice(t,1)}};function Zd(e){let n=os(e),t=n!==null?n.factory:pi(e);if(t!==null)return t;if(e instanceof P)throw new M(204,!1);if(e instanceof Function)return HD(e);throw new M(204,!1)}function HD(e){if(e.length>0)throw new M(204,!1);let t=TD(e);return t!==null?()=>t.factory(e):()=>new e}function zD(e){if(Fv(e))return Wr(void 0,e.useValue);{let n=gp(e);return Wr(n,gc)}}function gp(e,n,t){let i;if(qi(e)){let r=Ze(e);return pi(r)||Zd(r)}else if(Fv(e))i=()=>Ze(e.useValue);else if($D(e))i=()=>e.useFactory(...Yd(e.deps||[]));else if(UD(e))i=(r,o)=>$(Ze(e.useExisting),o!==void 0&&o&8?8:void 0);else{let r=Ze(e&&(e.useClass||e.provide));if(GD(e))i=()=>new r(...Yd(e.deps));else return pi(r)||Zd(r)}return i}function ts(e){if(e.destroyed)throw new M(205,!1)}function Wr(e,n,t=!1){return{factory:e,value:n,multi:t?[]:void 0}}function GD(e){return!!e.deps}function WD(e){return e!==null&&typeof e=="object"&&typeof e.ngOnDestroy=="function"}function qD(e){return typeof e=="function"||typeof e=="object"&&e.ngMetadataName==="InjectionToken"}function Qd(e,n){for(let t of e)Array.isArray(t)?Qd(t,n):t&&np(t)?Qd(t.\u0275providers,n):n(t)}function ut(e,n){let t;e instanceof Yi?(ts(e),t=e):t=new qd(e);let i,r=yn(t),o=yt(void 0);try{return n()}finally{yn(r),yt(o)}}function jv(){return Mv()!==void 0||Oa()!=null}var wt=0,B=1,X=2,He=3,qt=4,_t=5,Et=6,Yr=7,ze=8,sn=9,bn=10,me=11,Zr=12,vp=13,Qi=14,dt=15,gi=16,Ki=17,wn=18,ds=19,yp=20,Bn=21,Ic=22,zn=23,Ot=24,Ji=25,de=26,Vv=1,an=6,_n=7,ps=8,Xi=9,Qe=10;function Nt(e){return Array.isArray(e)&&typeof e[Vv]=="object"}function Rt(e){return Array.isArray(e)&&e[Vv]===!0}function bp(e){return(e.flags&4)!==0}function Gn(e){return e.componentOffset>-1}function Qr(e){return(e.flags&1)===1}function cn(e){return!!e.template}function er(e){return(e[X]&512)!==0}function vi(e){return(e[X]&256)===256}var Bv="svg",Uv="math";function Pt(e){for(;Array.isArray(e);)e=e[wt];return e}function wp(e,n){return Pt(n[e])}function Yt(e,n){return Pt(n[e.index])}function tr(e,n){return e.data[n]}function Mc(e,n){return e[n]}function fs(e,n,t,i){t>=e.data.length&&(e.data[t]=null,e.blueprint[t]=null),n[t]=i}function Zt(e,n){let t=n[e];return Nt(t)?t:t[wt]}function $v(e){return(e[X]&4)===4}function Tc(e){return(e[X]&128)===128}function Hv(e){return Rt(e[He])}function Qt(e,n){return n==null?null:e[n]}function _p(e){e[Ki]=0}function Ep(e){e[X]&1024||(e[X]|=1024,Tc(e)&&yi(e))}function zv(e,n){for(;e>0;)n=n[Qi],e--;return n}function ms(e){return!!(e[X]&9216||e[Ot]?.dirty)}function Ac(e){e[bn].changeDetectionScheduler?.notify(8),e[X]&64&&(e[X]|=1024),ms(e)&&yi(e)}function yi(e){e[bn].changeDetectionScheduler?.notify(0);let n=fi(e);for(;n!==null&&!(n[X]&8192||(n[X]|=8192,!Tc(n)));)n=fi(n)}function Cp(e,n){if(vi(e))throw new M(911,!1);e[Bn]===null&&(e[Bn]=[]),e[Bn].push(n)}function Gv(e,n){if(e[Bn]===null)return;let t=e[Bn].indexOf(n);t!==-1&&e[Bn].splice(t,1)}function fi(e){let n=e[He];return Rt(n)?n[He]:n}function xp(e){return e[Yr]??=[]}function Dp(e){return e.cleanup??=[]}function Wv(e,n,t,i){let r=xp(n);r.push(t),e.firstCreatePass&&Dp(e).push(i,r.length-1)}var ie={lFrame:ry(null),bindingsEnabled:!0,skipHydrationRootTNode:null},hs=function(e){return e[e.Off=0]="Off",e[e.Exhaustive=1]="Exhaustive",e[e.OnlyDirtyViews=2]="OnlyDirtyViews",e}(hs||{}),YD=0,Kd=!1;function qv(){return ie.lFrame.elementDepthCount}function Yv(){ie.lFrame.elementDepthCount++}function Sp(){ie.lFrame.elementDepthCount--}function kc(){return ie.bindingsEnabled}function Oc(){return ie.skipHydrationRootTNode!==null}function Ip(e){return ie.skipHydrationRootTNode===e}function Zv(e){ie.skipHydrationRootTNode=e}function Mp(){ie.skipHydrationRootTNode=null}function G(){return ie.lFrame.lView}function Ie(){return ie.lFrame.tView}function W(e){return ie.lFrame.contextLView=e,e[ze]}function q(e){return ie.lFrame.contextLView=null,e}function Ke(){let e=Tp();for(;e!==null&&e.type===64;)e=e.parent;return e}function Tp(){return ie.lFrame.currentTNode}function Qv(){let e=ie.lFrame,n=e.currentTNode;return e.isParent?n:n.parent}function nr(e,n){let t=ie.lFrame;t.currentTNode=e,t.isParent=n}function Ap(){return ie.lFrame.isParent}function kp(){ie.lFrame.isParent=!1}function Op(){return ie.lFrame.contextLView}function Np(e){Sv("Must never be called in production mode"),YD=e}function Rp(){return Kd}function Kr(e){let n=Kd;return Kd=e,n}function gs(){let e=ie.lFrame,n=e.bindingRootIndex;
7return n===-1&&(n=e.bindingRootIndex=e.tView.bindingStartIndex),n}function Kv(){return ie.lFrame.bindingIndex}function Jv(e){return ie.lFrame.bindingIndex=e}function Wn(){return ie.lFrame.bindingIndex++}function Nc(e){let n=ie.lFrame,t=n.bindingIndex;return n.bindingIndex=n.bindingIndex+e,t}function Xv(){return ie.lFrame.inI18n}function ey(e,n){let t=ie.lFrame;t.bindingIndex=t.bindingRootIndex=e,Rc(n)}function ty(){return ie.lFrame.currentDirectiveIndex}function Rc(e){ie.lFrame.currentDirectiveIndex=e}function ny(e){let n=ie.lFrame.currentDirectiveIndex;return n===-1?null:e[n]}function Pp(){return ie.lFrame.currentQueryIndex}function Pc(e){ie.lFrame.currentQueryIndex=e}function ZD(e){let n=e[B];return n.type===2?n.declTNode:n.type===1?e[_t]:null}function Fp(e,n,t){if(t&4){let r=n,o=e;for(;r=r.parent,r===null&&!(t&1);)if(r=ZD(o),r===null||(o=o[Qi],r.type&10))break;if(r===null)return!1;n=r,e=o}let i=ie.lFrame=iy();return i.currentTNode=n,i.lView=e,!0}function Fc(e){let n=iy(),t=e[B];ie.lFrame=n,n.currentTNode=t.firstChild,n.lView=e,n.tView=t,n.contextLView=e,n.bindingIndex=t.bindingStartIndex,n.inI18n=!1}function iy(){let e=ie.lFrame,n=e===null?null:e.child;return n===null?ry(e):n}function ry(e){let n={currentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:-1,contextLView:null,elementDepthCount:0,currentNamespace:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:e,child:null,inI18n:!1};return e!==null&&(e.child=n),n}function oy(){let e=ie.lFrame;return ie.lFrame=e.parent,e.currentTNode=null,e.lView=null,e}var Lp=oy;function Lc(){let e=oy();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 sy(e){return(ie.lFrame.contextLView=zv(e,ie.lFrame.contextLView))[ze]}function ln(){return ie.lFrame.selectedIndex}function bi(e){ie.lFrame.selectedIndex=e}function vs(){let e=ie.lFrame;return tr(e.tView,e.selectedIndex)}function jp(){return ie.lFrame.currentNamespace}var ay=!0;function jc(){return ay}function qn(e){ay=e}function Jd(e,n=null,t=null,i){let r=Vp(e,n,t,i);return r.resolveInjectorInitializers(),r}function Vp(e,n=null,t=null,i,r=new Set){let o=[t||bt,Rv(e)];return i=i||(typeof e=="object"?void 0:Tt(e)),new Yi(o,n||us(),i||null,r)}var lt=class e{static THROW_IF_NOT_FOUND=Gi;static NULL=new is;static create(n,t){if(Array.isArray(n))return Jd({name:""},t,n,"");{let i=n.name??"";return Jd({name:i},n.parent,n.providers,i)}}static \u0275prov=A({token:e,providedIn:"any",factory:()=>$(dp)});static __NG_ELEMENT_ID__=-1},Me=new P(""),ht=(()=>{class e{static __NG_ELEMENT_ID__=QD;static __NG_ENV_ID__=t=>t}return e})(),rs=class extends ht{_lView;constructor(n){super(),this._lView=n}get destroyed(){return vi(this._lView)}onDestroy(n){let t=this._lView;return Cp(t,n),()=>Gv(t,n)}};function QD(){return new rs(G())}var Ht=class{_console=console;handleError(n){this._console.error("ERROR",n)}},gt=new P("",{providedIn:"root",factory:()=>{let e=y($e),n;return t=>{e.destroyed&&!n?setTimeout(()=>{throw t}):(n??=e.get(Ht),n.handleError(t))}}}),cy={provide:Gt,useValue:()=>void y(Ht),multi:!0},KD=new P("",{providedIn:"root",factory:()=>{let e=y(Me).defaultView;if(!e)return;let n=y(gt),t=o=>{n(o.reason),o.preventDefault()},i=o=>{o.error?n(o.error):n(new Error(o.message,{cause:o})),o.preventDefault()},r=()=>{e.addEventListener("unhandledrejection",t),e.addEventListener("error",i)};typeof Zone<"u"?Zone.root.run(r):r(),y(ht).onDestroy(()=>{e.removeEventListener("error",i),e.removeEventListener("unhandledrejection",t)})}});function Bp(){return Wt([Nv(()=>void y(KD))])}function Up(e){return typeof e=="function"&&e[mt]!==void 0}function ae(e,n){let[t,i,r]=xd(e,n?.equal),o=t,s=o[mt];return o.set=i,o.update=r,o.asReadonly=$p.bind(o),o}function $p(){let e=this[mt];if(e.readonlyFn===void 0){let n=()=>this();n[mt]=e,e.readonlyFn=n}return e.readonlyFn}function Hp(e){return Up(e)&&typeof e.set=="function"}var zt=class{},Jr=new P("",{providedIn:"root",factory:()=>!1});var zp=new P(""),Vc=new P("");var Xr=(()=>{class e{view;node;
vendor: 6,786 bytes, line 7
7constructor(t,i){this.view=t,this.node=i}static __NG_ELEMENT_ID__=JD}return e})();function JD(){return new Xr(G(),Ke())}var En=(()=>{class e{taskId=0;pendingTasks=new Set;destroyed=!1;pendingTask=new st(!1);get hasPendingTasks(){return this.destroyed?!1:this.pendingTask.value}get hasPendingTasksObservable(){return this.destroyed?new oe(t=>{t.next(!1),t.complete()}):this.pendingTask}add(){!this.hasPendingTasks&&!this.destroyed&&this.pendingTask.next(!0);let t=this.taskId++;return this.pendingTasks.add(t),t}has(t){return this.pendingTasks.has(t)}remove(t){this.pendingTasks.delete(t),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 \u0275prov=A({token:e,providedIn:"root",factory:()=>new e})}return e})(),ir=(()=>{class e{internalPendingTasks=y(En);scheduler=y(zt);errorHandler=y(gt);add(){let t=this.internalPendingTasks.add();return()=>{this.internalPendingTasks.has(t)&&(this.scheduler.notify(11),this.internalPendingTasks.remove(t))}}run(t){let i=this.add();t().catch(this.errorHandler).finally(i)}static \u0275prov=A({token:e,providedIn:"root",factory:()=>new e})}return e})();function rr(...e){}var ys=(()=>{class e{static \u0275prov=A({token:e,providedIn:"root",factory:()=>new Xd})}return e})(),Xd=class{dirtyEffectCount=0;queues=new Map;add(n){this.enqueue(n),this.schedule(n)}schedule(n){n.dirty&&this.dirtyEffectCount++}remove(n){let t=n.zone,i=this.queues.get(t);i.has(n)&&(i.delete(n),n.dirty&&this.dirtyEffectCount--)}enqueue(n){let t=n.zone;this.queues.has(t)||this.queues.set(t,new Set);let i=this.queues.get(t);i.has(n)||i.add(n)}flush(){for(;this.dirtyEffectCount>0;){let n=!1;for(let[t,i]of this.queues)t===null?n||=this.flushQueue(i):n||=t.run(()=>this.flushQueue(i));n||(this.dirtyEffectCount=0)}}flushQueue(n){let t=!1;for(let i of n)i.dirty&&(this.dirtyEffectCount--,t=!0,i.run());return t}};var Bc={JSACTION:"jsaction"};function lo(e){return{toString:e}.toString()}var Uc="__parameters__";function sS(e){return function(...t){if(e){let i=e(...t);for(let r in i)this[r]=i[r]}}}function n0(e,n,t){return lo(()=>{let i=sS(n);function r(...o){if(this instanceof r)return i.apply(this,o),this;let s=new r(...o);return a.annotation=s,a;function a(c,d,m){let h=c.hasOwnProperty(Uc)?c[Uc]:Object.defineProperty(c,Uc,{value:[]})[Uc];for(;h.length<=m;)h.push(null);return(h[m]=h[m]||[]).push(s),c}}return r.prototype.ngMetadataName=e,r.annotationCls=r,r})}var bl=lp(n0("Optional"),8);var Wf=lp(n0("SkipSelf"),4);function aS(e){return typeof e=="function"}var Xc=class{previousValue;currentValue;firstChange;constructor(n,t,i){this.previousValue=n,this.currentValue=t,this.firstChange=i}isFirstChange(){return this.firstChange}};function i0(e,n,t,i){n!==null?n.applyValueToInputSignal(n,i):e[t]=i}var pn=(()=>{let e=()=>r0;return e.ngInherit=!0,e})();function r0(e){return e.type.prototype.ngOnChanges&&(e.setInput=lS),cS}function cS(){let e=s0(this),n=e?.current;if(n){let t=e.previous;if(t===on)e.previous=n;else for(let i in n)t[i]=n[i];e.current=null,this.ngOnChanges(n)}}function lS(e,n,t,i,r){let o=this.declaredInputs[i],s=s0(e)||uS(e,{previous:on,current:null}),a=s.current||(s.current={}),c=s.previous,d=c[o];a[o]=new Xc(d&&d.currentValue,t,c===on),i0(e,n,r,t)}var o0="__ngSimpleChanges__";function s0(e){return e[o0]||null}function uS(e,n){return e[o0]=n}var ly=[];var ge=function(e,n=null,t){for(let i=0;i<ly.length;i++){let r=ly[i];r(e,n,t)}};function dS(e,n,t){let{ngOnChanges:i,ngOnInit:r,ngDoCheck:o}=n.type.prototype;if(i){let s=r0(n);(t.preOrderHooks??=[]).push(e,s),(t.preOrderCheckHooks??=[]).push(e,s)}r&&(t.preOrderHooks??=[]).push(0-e,r),o&&((t.preOrderHooks??=[]).push(e,o),(t.preOrderCheckHooks??=[]).push(e,o))}function a0(e,n){for(let t=n.directiveStart,i=n.directiveEnd;t<i;t++){let o=e.data[t].type.prototype,{ngAfterContentInit:s,ngAfterContentChecked:a,ngAfterViewInit:c,ngAfterViewChecked:d,ngOnDestroy:m}=o;s&&(e.contentHooks??=[]).push(-t,s),a&&((e.contentHooks??=[]).push(t,a),(e.contentCheckHooks??=[]).push(t,a)),c&&(e.viewHooks??=[]).push(-t,c),d&&((e.viewHooks??=[]).push(t,d),(e.viewCheckHooks??=[]).push(t,d)),m!=null&&(e.destroyHooks??=[]).push(t,m)}}function Wc(e,n,t){c0(e,n,3,t)}function qc(e,n,t,i){(e[X]&3)===t&&c0(e,n,t,i)}function Gp(e,n){let t=e[X];(t&3)===n&&(t&=16383,t+=1,e[X]=t)}function c0(e,n,t,i){let r=i!==void 0?e[Ki]&65535:0,o=i??-1,s=n.length-1,a=0;for(let c=r;c<s;c++)if(typeof n[c+1]=="number"){if(a=n[c],i!=null&&a>=i)break}else n[c]<0&&(e[Ki]+=65536),(a<o||o==-1)&&(pS(e,t,n,c),e[Ki]=(e[Ki]&4294901760)+c+2),c++}function uy(e,n){ge(4,e,n);let t=J(null);try{n.call(e)}finally{J(t),ge(5,e,n)}}function pS(e,n,t,i){let r=t[i]<0,o=t[i+1],s=r?-t[i]:t[i],a=e[s];r?e[X]>>14<e[Ki]>>16&&(e[X]&3)===n&&(e[X]+=16384,uy(a,o)):uy(a,o)}var to=-1,ar=class{factory;injectImpl;resolving=!1;canSeeViewProviders;multi;componentProviders;index;providerFactory;constructor(n,t,i){this.factory=n,this.canSeeViewProviders=t,this.injectImpl=i}};function fS(e){return(e.flags&8)!==0}function mS(e){return(e.flags&16)!==0}function hS(e,n,t){let i=0;for(;i<t.length;){let r=t[i];if(typeof r=="number"){if(r!==0)break;i++;let o=t[i++],s=t[i++],a=t[i++];e.setAttribute(n,s,a,o)}else{let o=r,s=t[++i];gS(o)?e.setProperty(n,o,s):e.setAttribute(n,o,s),i++}}return i}function l0(e){return e===3||e===4||e===6}function gS(e){return e.charCodeAt(0)===64}function ro(e,n){if(!(n===null||n.length===0))if(e===null||e.length===0)e=n.slice();else{let t=-1;for(let i=0;i<n.length;i++){let r=n[i];typeof r=="number"?t=r:t===0||(t===-1||t===2?dy(e,t,r,null,n[++i]):dy(e,t,r,null,null))}}return e}function dy(e,n,t,i,r){let o=0,s=e.length;if(n===-1)s=-1;else for(;o<e.length;){let a=e[o++];if(typeof a=="number"){if(a===n){s=-1;break}else if(a>n){s=o-1;break}}}for(;o<e.length;){let a=e[o];if(typeof a=="number")break;if(a===t){r!==null&&(e[o+1]=r);return}o++,r!==null&&o++}s!==-1&&(e.splice(s,0,n),o=s+1),e.splice(o++,0,t),r!==null&&e.splice(o++,0,r)}function u0(e){return e!==to}function el(e){return e&32767}function vS(e){return e>>16}function tl(e,n){let t=vS(e),i=n;for(;t>0;)i=i[Qi],t--;return i}var of=!0;function nl(e){let n=of;return of=e,n}var yS=256,d0=yS-1,p0=5,bS=0,Cn={};function wS(e,n,t){let i;typeof t=="string"?i=t.charCodeAt(0)||0:t.hasOwnProperty(Zi)&&(i=t[Zi]),i==null&&(i=t[Zi]=bS++);let r=i&d0,o=1<<r;n.data[e+(r>>p0)]|=o}function il(e,n){let t=f0(e,n);if(t!==-1)return t;let i=n[B];i.firstCreatePass&&(e.injectorIndex=n.length,Wp(i.data,e),Wp(n,null),Wp(i.blueprint,null));let r=qf(e,n),o=e.injectorIndex;if(u0(r)){let s=el(r),a=tl(r,n),c=a[B].data;for(let d=0;d<8;d++)n[o+d]=a[s+d]|c[s+d]}return n[o+8]=r,o}function Wp(e,n){e.push(0,0,0,0,0,0,0,0,n)}
vendor: 4,165 bytes, line 7
7function f0(e,n){return e.injectorIndex===-1||e.parent&&e.parent.injectorIndex===e.injectorIndex||n[e.injectorIndex+8]===null?-1:e.injectorIndex}function qf(e,n){if(e.parent&&e.parent.injectorIndex!==-1)return e.parent.injectorIndex;let t=0,i=null,r=n;for(;r!==null;){if(i=y0(r),i===null)return to;if(t++,r=r[Qi],i.injectorIndex!==-1)return i.injectorIndex|t<<16}return to}function sf(e,n,t){wS(e,n,t)}function _S(e,n){if(n==="class")return e.classes;if(n==="style")return e.styles;let t=e.attrs;if(t){let i=t.length,r=0;for(;r<i;){let o=t[r];if(l0(o))break;if(o===0)r=r+2;else if(typeof o=="number")for(r++;r<i&&typeof t[r]=="string";)r++;else{if(o===n)return t[r+1];r=r+2}}}return null}function m0(e,n,t){if(t&8||e!==void 0)return e;Cc(n,"NodeInjector")}function h0(e,n,t,i){if(t&8&&i===void 0&&(i=null),(t&3)===0){let r=e[sn],o=yt(void 0);try{return r?r.get(n,i,t&8):cp(n,i,t&8)}finally{yt(o)}}return m0(i,n,t)}function g0(e,n,t,i=0,r){if(e!==null){if(n[X]&2048&&!(i&2)){let s=DS(e,n,t,i,Cn);if(s!==Cn)return s}let o=v0(e,n,t,i,Cn);if(o!==Cn)return o}return h0(n,t,i,r)}function v0(e,n,t,i,r){let o=CS(t);if(typeof o=="function"){if(!Fp(n,e,i))return i&1?m0(r,t,i):h0(n,t,i,r);try{let s;if(s=o(i),s==null&&!(i&8))Cc(t);else return s}finally{Lp()}}else if(typeof o=="number"){let s=null,a=f0(e,n),c=to,d=i&1?n[dt][_t]:null;for((a===-1||i&4)&&(c=a===-1?qf(e,n):n[a+8],c===to||!fy(i,!1)?a=-1:(s=n[B],a=el(c),n=tl(c,n)));a!==-1;){let m=n[B];if(py(o,a,m.data)){let h=ES(a,n,t,s,i,d);if(h!==Cn)return h}c=n[a+8],c!==to&&fy(i,n[B].data[a+8]===d)&&py(o,a,n)?(s=m,a=el(c),n=tl(c,n)):a=-1}}return r}function ES(e,n,t,i,r,o){let s=n[B],a=s.data[e+8],c=i==null?Gn(a)&&of:i!=s&&(a.type&3)!==0,d=r&1&&o===a,m=Yc(a,s,t,c,d);return m!==null?_s(n,s,m,a,r):Cn}function Yc(e,n,t,i,r){let o=e.providerIndexes,s=n.data,a=o&1048575,c=e.directiveStart,d=e.directiveEnd,m=o>>20,h=i?a:a+m,w=r?a+m:d;for(let g=h;g<w;g++){let x=s[g];if(g<c&&t===x||g>=c&&x.type===t)return g}if(r){let g=s[c];if(g&&cn(g)&&g.type===t)return c}return null}function _s(e,n,t,i,r){let o=e[t],s=n.data;if(o instanceof ar){let a=o;a.resolving&&ap(Iv(s[t]));let c=nl(a.canSeeViewProviders);a.resolving=!0;let d=s[t].type||s[t],m,h=a.injectImpl?yt(a.injectImpl):null,w=Fp(e,i,0);try{o=e[t]=a.factory(void 0,r,s,e,i),n.firstCreatePass&&t>=i.directiveStart&&dS(t,s[t],n)}finally{h!==null&&yt(h),nl(c),a.resolving=!1,Lp()}}return o}function CS(e){if(typeof e=="string")return e.charCodeAt(0)||0;let n=e.hasOwnProperty(Zi)?e[Zi]:void 0;return typeof n=="number"?n>=0?n&d0:xS:n}function py(e,n,t){let i=1<<e;return!!(t[n+(e>>p0)]&i)}function fy(e,n){return!(e&2)&&!(e&1&&n)}var sr=class{_tNode;_lView;constructor(n,t){this._tNode=n,this._lView=t}get(n,t,i){return g0(this._tNode,this._lView,n,Wi(i),t)}};function xS(){return new sr(Ke(),G())}function pr(e){return lo(()=>{let n=e.prototype.constructor,t=n[ns]||af(n),i=Object.prototype,r=Object.getPrototypeOf(e.prototype).constructor;for(;r&&r!==i;){let o=r[ns]||af(r);if(o&&o!==t)return o;r=Object.getPrototypeOf(r)}return o=>new o})}function af(e){return ep(e)?()=>{let n=af(Ze(e));return n&&n()}:pi(e)}function DS(e,n,t,i,r){let o=e,s=n;for(;o!==null&&s!==null&&s[X]&2048&&!er(s);){let a=v0(o,s,t,i|2,Cn);if(a!==Cn)return a;let c=o.parent;if(!c){let d=s[yp];if(d){let m=d.get(t,Cn,i);if(m!==Cn)return m}c=y0(s),s=s[Qi]}o=c}return r}function y0(e){let n=e[B],t=n.type;return t===2?n.declTNode:t===1?e[_t]:null}function As(e){return _S(Ke(),e)}function SS(){return uo(Ke(),G())}function uo(e,n){return new Xe(Yt(e,n))}var Xe=(()=>{class e{nativeElement;constructor(t){this.nativeElement=t}static __NG_ELEMENT_ID__=SS}return e})();function IS(e){return e instanceof Xe?e.nativeElement:e}function MS(){return this._results[Symbol.iterator]()}var rl=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 ke}constructor(n=!1){this._emitDistinctChangesOnly=n}get(n){return this._results[n]}map(n){return this._results.map(n)}filter(n){return this._results.filter(n)}find(n){return this._results.find(n)}reduce(n,t){return this._results.reduce(n,t)}
7forEach(n){this._results.forEach(n)}some(n){return this._results.some(n)}toArray(){return this._results.slice()}toString(){return this._results.toString()}reset(n,t){this.dirty=!1;let i=Av(n);(this._changesDetected=!Tv(this._results,i,t))&&(this._results=i,this.length=i.length,this.last=i[this.length-1],this.first=i[0])}notifyOnChanges(){this._changes!==void 0&&(this._changesDetected||!this._emitDistinctChangesOnly)&&this._changes.next(this)}onDirty(n){this._onDirty=n}setDirty(){this.dirty=!0,this._onDirty?.()}destroy(){this._changes!==void 0&&(this._changes.complete(),this._changes.unsubscribe())}[Symbol.iterator]=MS},b0="ngSkipHydration",TS="ngskiphydration";function w0(e){let n=e.mergedAttrs;if(n===null)return!1;for(let t=0;t<n.length;t+=2){let i=n[t];if(typeof i=="number")return!1;if(typeof i=="string"&&i.toLowerCase()===TS)return!0}return!1}function _0(e){return e.hasAttribute(b0)}function ol(e){return(e.flags&128)===128}function E0(e){if(ol(e))return!0;let n=e.parent;for(;n;){if(ol(e)||w0(n))return!0;n=n.parent}return!1}var Yf=function(e){return e[e.OnPush=0]="OnPush",e[e.Default=1]="Default",e}(Yf||{}),C0=new Map,AS=0;function kS(){return AS++}function OS(e){C0.set(e[ds],e)}function cf(e){C0.delete(e[ds])}var my="__ngContext__";function oo(e,n){Nt(n)?(e[my]=n[ds],OS(n)):e[my]=n}function x0(e){return S0(e[Zr])}function D0(e){return S0(e[qt])}function S0(e){for(;e!==null&&!Rt(e);)e=e[qt];return e}var lf;function Zf(e){lf=e}function po(){if(lf!==void 0)return lf;if(typeof document<"u")return document;throw new M(210,!1)}var xn=new P("",{providedIn:"root",factory:()=>NS}),NS="ng",wl=new P(""),je=new P("",{providedIn:"platform",factory:()=>"unknown"});var _l=new P("",{providedIn:"root",factory:()=>po().body?.querySelector("[ngCspNonce]")?.getAttribute("ngCspNonce")||null});function RS(){let e=new fr;return e.store=PS(po(),y(xn)),e}var fr=(()=>{class e{static \u0275prov=A({token:e,providedIn:"root",factory:RS});store={};onSerializeCallbacks={};get(t,i){return this.store[t]!==void 0?this.store[t]:i}set(t,i){this.store[t]=i}remove(t){delete this.store[t]}hasKey(t){return this.store.hasOwnProperty(t)}get isEmpty(){return Object.keys(this.store).length===0}onSerialize(t,i){this.onSerializeCallbacks[t]=i}toJson(){for(let t in this.onSerializeCallbacks)if(this.onSerializeCallbacks.hasOwnProperty(t))try{this.store[t]=this.onSerializeCallbacks[t]()}catch(i){console.warn("Exception in onSerialize callback: ",i)}return JSON.stringify(this.store).replace(/</g,"\\u003C")}}return e})();function PS(e,n){let t=e.getElementById(n+"-state");if(t?.textContent)try{return JSON.parse(t.textContent)}catch(i){console.warn("Exception while restoring TransferState for app "+n,i)}return{}}var I0="h",M0="b",FS="f",LS="n",T0="e",A0="t",El="c",Qf="x",Es="r",k0="i",O0="n",Kf="d";var N0="di",R0="s",P0="p";var ks=new P(""),F0=!1,Jf=new P("",{providedIn:"root",factory:()=>F0});var Xf=new P(""),L0=!1,j0=new P(""),em=new P("",{providedIn:"root",factory:()=>new Map});var Os="ngb";var V0=(e,n,t)=>{let i=e,r=i.__jsaction_fns??new Map,o=r.get(n)??[];o.push(t),r.set(n,o),i.__jsaction_fns=r},B0=(e,n)=>{let t=e,i=t.getAttribute(Os)??"",r=n.get(i)??new Set;r.has(t)||r.add(t),n.set(i,r)};var U0=e=>{e.removeAttribute(Bc.JSACTION),e.removeAttribute(Os),e.__jsaction_fns=void 0},$0=new P("",{providedIn:"root",factory:()=>({})});function tm(e,n){let t=n?.__jsaction_fns?.get(e.type);if(!(!t||!n?.isConnected))for(let i of t)i(e)}var uf=new Map;function H0(e,n){return uf.set(e,n),()=>uf.delete(e)}var hy=!1,z0=(e,n,t,i)=>{};function jS(e,n,t,i){z0(e,n,t,i)}function G0(){hy||(z0=(e,n,t,i)=>{let r=e[sn].get(xn);uf.get(r)?.(n,t,i)},hy=!0)}var Cl=new P("");function Ns(e){return(e.flags&32)===32}var VS="__nghData__",nm=VS,BS="__nghDeferData__",W0=BS,Zc="ngh",q0="nghm",Y0=()=>null;function US(e,n,t=!1){let i=e.getAttribute(Zc);if(i==null)return null;let[r,o]=i.split("|");if(i=t?o:r,!i)return null;let s=o?`|${o}`:"",a=t?r:s,c={};if(i!==""){let m=n.get(fr,null,{optional:!0});m!==null&&(c=m.get(nm,[])[Number(i)])}let d={data:c,firstChild:e.firstChild??null};return t&&(d.firstChild=e,xl(d,0,e.nextSibling)),a?e.setAttribute(Zc,a):e.removeAttribute(Zc),d}function Z0(){Y0=US}function Q0(e,n,t=!1){return Y0(e,n,t)}function K0(e){let n=e._lView;return n[B].type===2?null:(er(n)&&(n=n[de]),n)}function $S(e){return e.textContent?.replace(/\s/gm,"")}function HS(e){let n=po(),t=n.createNodeIterator(e,NodeFilter.SHOW_COMMENT,{acceptNode(o){let s=$S(o);return s==="ngetn"||s==="ngtns"?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_REJECT}}),i,r=[];for(;i=t.nextNode();)r.push(i);for(let o of r)o.textContent==="ngetn"?o.replaceWith(n.createTextNode("")):o.remove()}function xl(e,n,t){e.segmentHeads??={},e.segmentHeads[n]=t}function df(e,n){return e.segmentHeads?.[n]??null}function J0(e){return e.get(j0,!1,{optional:!0})}function zS(e,n){let t=e.data,i=t[T0]?.[n]??null;return i===null&&t[El]?.[n]&&(i=im(e,n)),i}function X0(e,n){return e.data[El]?.[n]??null}function im(e,n){let t=X0(e,n)??[],i=0;for(let r of t)i+=r[Es]*(r[Qf]??1);return i}function GS(e){if(typeof e.disconnectedNodes>"u"){let n=e.data[Kf];e.disconnectedNodes=n?new Set(n):null}return e.disconnectedNodes}function eb(e,n){if(typeof e.disconnectedNodes>"u"){let t=e.data[Kf];e.disconnectedNodes=t?new Set(t):null}return!!GS(e)?.has(n)}function Dl(e,n){let t=e[Et];return t!==null&&!Oc()&&!Ns(n)&&!eb(t,n.index-de)}function WS(e,n){let t=n.get(Cl),r=n.get(fr).get(W0,{}),o=!1,s=e,a=null,c=[];for(;!o&&s;){o=t.has(s);let d=t.hydrating.get(s);if(a===null&&d!=null){a=d.promise;break}c.unshift(s),s=r[s][P0]}return{parentBlockPromise:a,hydrationQueue:c}}function qp(e){return!!e&&e.nodeType===Node.COMMENT_NODE&&e.textContent?.trim()===q0}function gy(e){for(;e&&e.nodeType===Node.TEXT_NODE;)e=e.previousSibling;return e}function tb(e){for(let i of e.body.childNodes)if(qp(i))return;let n=gy(e.body.previousSibling);if(qp(n))return;let t=gy(e.head.lastChild);if(!qp(t))throw new M(-507,!1)}function nb(e,n){let t=e.contentQueries;if(t!==null){let i=J(null);try{for(let r=0;r<t.length;r+=2){let o=t[r],s=t[r+1];if(s!==-1){let a=e.data[s];Pc(o),a.contentQueries(2,n[s],s)}}}finally{J(i)}}}function pf(e,n,t){Pc(0);let i=J(null);try{n(e,t)}finally{J(i)}}function rm(e,n,t){if(bp(n)){let i=J(null);try{let r=n.directiveStart,o=n.directiveEnd;for(let s=r;s<o;s++){let a=e.data[s];if(a.contentQueries){let c=t[s];a.contentQueries(1,c,s)}}}finally{J(i)}}}var Yn=function(e){return e[e.Emulated=0]="Emulated",e[e.None=2]="None",e[e.ShadowDom=3]="ShadowDom",e}(Yn||{}),$c;function qS(){if($c===void 0&&($c=null,hi.trustedTypes))try{$c=hi.trustedTypes.createPolicy("angular",{createHTML:e=>e,createScript:e=>e,createScriptURL:e=>e})}catch{}return $c}function Sl(e){return qS()?.createHTML(e)||e}var Hc;function ib(){if(Hc===void 0&&(Hc=null,hi.trustedTypes))try{Hc=hi.trustedTypes.createPolicy("angular#unsafe-bypass",{createHTML:e=>e,createScript:e=>e,createScriptURL:e=>e})}catch{}return Hc}function vy(e){return ib()?.createHTML(e)||e}function yy(e){return ib()?.createScriptURL(e)||e}var Zn=class{changingThisBreaksApplicationSecurity;constructor(n){this.changingThisBreaksApplicationSecurity=n}toString(){return`SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity} (see ${wc})`}},ff=class extends Zn{getTypeName(){return"HTML"}},mf=class extends Zn{getTypeName(){return"Style"}}
vendor: 5,679 bytes, line 7
7,hf=class extends Zn{getTypeName(){return"Script"}},gf=class extends Zn{getTypeName(){return"URL"}},vf=class extends Zn{getTypeName(){return"ResourceURL"}};function jt(e){return e instanceof Zn?e.changingThisBreaksApplicationSecurity:e}function Dn(e,n){let t=rb(e);if(t!=null&&t!==n){if(t==="ResourceURL"&&n==="URL")return!0;throw new Error(`Required a safe ${n}, got a ${t} (see ${wc})`)}return t===n}function rb(e){return e instanceof Zn&&e.getTypeName()||null}function om(e){return new ff(e)}function sm(e){return new mf(e)}function am(e){return new hf(e)}function cm(e){return new gf(e)}function lm(e){return new vf(e)}function YS(e){let n=new bf(e);return ZS()?new yf(n):n}var yf=class{inertDocumentHelper;constructor(n){this.inertDocumentHelper=n}getInertBodyElement(n){n="<body><remove></remove>"+n;try{let t=new window.DOMParser().parseFromString(Sl(n),"text/html").body;return t===null?this.inertDocumentHelper.getInertBodyElement(n):(t.firstChild?.remove(),t)}catch{return null}}},bf=class{defaultDoc;inertDocument;constructor(n){this.defaultDoc=n,this.inertDocument=this.defaultDoc.implementation.createHTMLDocument("sanitization-inert")}getInertBodyElement(n){let t=this.inertDocument.createElement("template");return t.innerHTML=Sl(n),t}};function ZS(){try{return!!new window.DOMParser().parseFromString(Sl(""),"text/html")}catch{return!1}}var QS=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:\/?#]*(?:[\/?#]|$))/i;function Rs(e){return e=String(e),e.match(QS)?e:"unsafe:"+e}function Qn(e){let n={};for(let t of e.split(","))n[t]=!0;return n}function Ps(...e){let n={};for(let t of e)for(let i in t)t.hasOwnProperty(i)&&(n[i]=!0);return n}var ob=Qn("area,br,col,hr,img,wbr"),sb=Qn("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),ab=Qn("rp,rt"),KS=Ps(ab,sb),JS=Ps(sb,Qn("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")),XS=Ps(ab,Qn("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")),by=Ps(ob,JS,XS,KS),cb=Qn("background,cite,href,itemtype,longdesc,poster,src,xlink:href"),eI=Qn("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"),tI=Qn("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"),nI=Ps(cb,eI,tI),iI=Qn("script,style,template"),wf=class{sanitizedSomething=!1;buf=[];sanitizeChildren(n){let t=n.firstChild,i=!0,r=[];for(;t;){if(t.nodeType===Node.ELEMENT_NODE?i=this.startElement(t):t.nodeType===Node.TEXT_NODE?this.chars(t.nodeValue):this.sanitizedSomething=!0,i&&t.firstChild){r.push(t),t=sI(t);continue}for(;t;){t.nodeType===Node.ELEMENT_NODE&&this.endElement(t);let o=oI(t);if(o){t=o;break}t=r.pop()}}return this.buf.join("")}startElement(n){let t=wy(n).toLowerCase();if(!by.hasOwnProperty(t))return this.sanitizedSomething=!0,!iI.hasOwnProperty(t);this.buf.push("<"),this.buf.push(t);let i=n.attributes;for(let r=0;r<i.length;r++){let o=i.item(r),s=o.name,a=s.toLowerCase();if(!nI.hasOwnProperty(a)){this.sanitizedSomething=!0;continue}let c=o.value;cb[a]&&(c=Rs(c)),this.buf.push(" ",s,'="',_y(c),'"')}return this.buf.push(">"),!0}endElement(n){let t=wy(n).toLowerCase();by.hasOwnProperty(t)&&!ob.hasOwnProperty(t)&&(this.buf.push("</"),this.buf.push(t),this.buf.push(">"))}chars(n){this.buf.push(_y(n))}};function rI(e,n){return(e.compareDocumentPosition(n)&Node.DOCUMENT_POSITION_CONTAINED_BY)!==Node.DOCUMENT_POSITION_CONTAINED_BY}function oI(e){let n=e.nextSibling;if(n&&e!==n.previousSibling)throw lb(n);return n}function sI(e){let n=e.firstChild;if(n&&rI(e,n))throw lb(n);return n}function wy(e){let n=e.nodeName;return typeof n=="string"?n:"FORM"}function lb(e){return new Error(`Failed to sanitize html because the element is clobbered: ${e.outerHTML}`)}var aI=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,cI=/([^\#-~ |!])/g;function _y(e){return e.replace(/&/g,"&amp;").replace(aI,function(n){let t=n.charCodeAt(0),i=n.charCodeAt(1);return"&#"+((t-55296)*1024+(i-56320)+65536)+";"}).replace(cI,function(n){return"&#"+n.charCodeAt(0)+";"}).replace(/</g,"&lt;").replace(/>/g,"&gt;")}var zc;function Il(e,n){let t=null;try{zc=zc||YS(e);let i=n?String(n):"";t=zc.getInertBodyElement(i);let r=5,o=i;do{if(r===0)throw new Error("Failed to sanitize html because the input is unstable");r--,i=o,o=t.innerHTML,t=zc.getInertBodyElement(i)}while(i!==o);let a=new wf().sanitizeChildren(Ey(t)||t);return Sl(a)}finally{if(t){let i=Ey(t)||t;for(;i.firstChild;)i.firstChild.remove()}}}function Ey(e){return"content"in e&&lI(e)?e.content:null}
vendor: 3,338 bytes, line 7
7function lI(e){return e.nodeType===Node.ELEMENT_NODE&&e.nodeName==="TEMPLATE"}var Kt=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}(Kt||{});function Ve(e){let n=dm();return n?vy(n.sanitize(Kt.HTML,e)||""):Dn(e,"HTML")?vy(jt(e)):Il(po(),$n(e))}function pe(e){let n=dm();return n?n.sanitize(Kt.URL,e)||"":Dn(e,"URL")?jt(e):Rs($n(e))}function ub(e){let n=dm();if(n)return yy(n.sanitize(Kt.RESOURCE_URL,e)||"");if(Dn(e,"ResourceURL"))return yy(jt(e));throw new M(904,!1)}function uI(e,n){return n==="src"&&(e==="embed"||e==="frame"||e==="iframe"||e==="media"||e==="script")||n==="href"&&(e==="base"||e==="link")?ub:pe}function um(e,n,t){return uI(n,t)(e)}function dm(){let e=G();return e&&e[bn].sanitizer}var dI=/^>|^->|<!--|-->|--!>|<!-$/g,pI=/(<|>)/g,fI="\u200B$1\u200B";function mI(e){return e.replace(dI,n=>n.replace(pI,fI))}function pm(e){return e.ownerDocument.defaultView}function db(e){return e.ownerDocument.body}function pb(e){return e instanceof Function?e():e}function hI(e,n,t){let i=e.length;for(;;){let r=e.indexOf(n,t);if(r===-1)return r;if(r===0||e.charCodeAt(r-1)<=32){let o=n.length;if(r+o===i||e.charCodeAt(r+o)<=32)return r}t=r+1}}var fb="ng-template";function gI(e,n,t,i){let r=0;if(i){for(;r<n.length&&typeof n[r]=="string";r+=2)if(n[r]==="class"&&hI(n[r+1].toLowerCase(),t,0)!==-1)return!0}else if(fm(e))return!1;if(r=n.indexOf(1,r),r>-1){let o;for(;++r<n.length&&typeof(o=n[r])=="string";)if(o.toLowerCase()===t)return!0}return!1}function fm(e){return e.type===4&&e.value!==fb}function vI(e,n,t){let i=e.type===4&&!t?fb:e.value;return n===i}function yI(e,n,t){let i=4,r=e.attrs,o=r!==null?_I(r):0,s=!1;for(let a=0;a<n.length;a++){let c=n[a];if(typeof c=="number"){if(!s&&!un(i)&&!un(c))return!1;if(s&&un(c))continue;s=!1,i=c|i&1;continue}if(!s)if(i&4){if(i=2|i&1,c!==""&&!vI(e,c,t)||c===""&&n.length===1){if(un(i))return!1;s=!0}}else if(i&8){if(r===null||!gI(e,r,c,t)){if(un(i))return!1;s=!0}}else{let d=n[++a],m=bI(c,r,fm(e),t);if(m===-1){if(un(i))return!1;s=!0;continue}if(d!==""){let h;if(m>o?h="":h=r[m+1].toLowerCase(),i&2&&d!==h){if(un(i))return!1;s=!0}}}}return un(i)||s}function un(e){return(e&1)===0}function bI(e,n,t,i){if(n===null)return-1;let r=0;if(i||!t){let o=!1;for(;r<n.length;){let s=n[r];if(s===e)return r;if(s===3||s===6)o=!0;else if(s===1||s===2){let a=n[++r];for(;typeof a=="string";)a=n[++r];continue}else{if(s===4)break;if(s===0){r+=4;continue}}r+=o?1:2}return-1}else return EI(n,e)}function mb(e,n,t=!1){for(let i=0;i<n.length;i++)if(yI(e,n[i],t))return!0;return!1}function wI(e){let n=e.attrs;if(n!=null){let t=n.indexOf(5);if((t&1)===0)return n[t+1]}return null}function _I(e){for(let n=0;n<e.length;n++){let t=e[n];if(l0(t))return n}return e.length}function EI(e,n){let t=e.indexOf(4);if(t>-1)for(t++;t<e.length;){let i=e[t];if(typeof i=="number")return-1;if(i===n)return t;t++}return-1}function CI(e,n){e:for(let t=0;t<n.length;t++){let i=n[t];if(e.length===i.length){for(let r=0;r<e.length;r++)if(e[r]!==i[r])continue e;return!0}}return!1}function Cy(e,n){return e?":not("+n.trim()+")":n}function xI(e){let n=e[0],t=1,i=2,r="",o=!1;for(;t<e.length;){let s=e[t];if(typeof s=="string")if(i&2){let a=e[++t];r+="["+s+(a.length>0?'="'+a+'"':"")+"]"}else i&8?r+="."+s:i&4&&(r+=" "+s);
vendor: 18,040 bytes, line 7
7else r!==""&&!un(s)&&(n+=Cy(o,r),r=""),i=s,o=o||!un(i);t++}return r!==""&&(n+=Cy(o,r)),n}function DI(e){return e.map(xI).join(",")}function SI(e){let n=[],t=[],i=1,r=2;for(;i<e.length;){let o=e[i];if(typeof o=="string")r===2?o!==""&&n.push(o,e[++i]):r===8&&t.push(o);else{if(!un(r))break;r=o}i++}return t.length&&n.push(1,...t),n}var vt={};function hb(e,n){return e.createText(n)}function II(e,n,t){e.setValue(n,t)}function gb(e,n){return e.createComment(mI(n))}function mm(e,n,t){return e.createElement(n,t)}function sl(e,n,t,i,r){e.insertBefore(n,t,i,r)}function vb(e,n,t){e.appendChild(n,t)}function xy(e,n,t,i,r){i!==null?sl(e,n,t,i,r):vb(e,n,t)}function hm(e,n,t){e.removeChild(null,n,t)}function yb(e){e.textContent=""}function MI(e,n,t){e.setAttribute(n,"style",t)}function TI(e,n,t){t===""?e.removeAttribute(n,"class"):e.setAttribute(n,"class",t)}function bb(e,n,t){let{mergedAttrs:i,classes:r,styles:o}=t;i!==null&&hS(e,n,i),r!==null&&TI(e,n,r),o!==null&&MI(e,n,o)}function gm(e,n,t,i,r,o,s,a,c,d,m){let h=de+i,w=h+r,g=AI(h,w),x=typeof d=="function"?d():d;return g[B]={type:e,blueprint:g,template:t,queries:null,viewQuery:a,declTNode:n,data:g.slice().fill(null,h),bindingStartIndex:h,expandoStartIndex:w,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 o=="function"?o():o,pipeRegistry:typeof s=="function"?s():s,firstChild:null,schemas:c,consts:x,incompleteFirstPass:!1,ssrId:m}}function AI(e,n){let t=[];for(let i=0;i<n;i++)t.push(i<e?null:vt);return t}function kI(e){let n=e.tView;return n===null||n.incompleteFirstPass?e.tView=gm(1,null,e.template,e.decls,e.vars,e.directiveDefs,e.pipeDefs,e.viewQuery,e.schemas,e.consts,e.id):n}function vm(e,n,t,i,r,o,s,a,c,d,m){let h=n.blueprint.slice();return h[wt]=r,h[X]=i|4|128|8|64|1024,(d!==null||e&&e[X]&2048)&&(h[X]|=2048),_p(h),h[He]=h[Qi]=e,h[ze]=t,h[bn]=s||e&&e[bn],h[me]=a||e&&e[me],h[sn]=c||e&&e[sn]||null,h[_t]=o,h[ds]=kS(),h[Et]=m,h[yp]=d,h[dt]=n.type==2?e[dt]:h,h}function OI(e,n,t){let i=Yt(n,e),r=kI(t),o=e[bn].rendererFactory,s=ym(e,vm(e,r,null,wb(t),i,n,null,o.createRenderer(i,t),null,null,null));return e[n.index]=s}function wb(e){let n=16;return e.signals?n=4096:e.onPush&&(n=64),n}function _b(e,n,t,i){if(t===0)return-1;let r=n.length;for(let o=0;o<t;o++)n.push(i),e.blueprint.push(i),e.data.push(null);return r}function ym(e,n){return e[Zr]?e[vp][qt]=n:e[Zr]=n,e[vp]=n,n}function f(e=1){Eb(Ie(),G(),ln()+e,!1)}function Eb(e,n,t,i){if(!i)if((n[X]&3)===3){let o=e.preOrderCheckHooks;o!==null&&Wc(n,o,t)}else{let o=e.preOrderHooks;o!==null&&qc(n,o,0,t)}bi(t)}var Ml=function(e){return e[e.None=0]="None",e[e.SignalBased=1]="SignalBased",e[e.HasDecoratorInputTransform=2]="HasDecoratorInputTransform",e}(Ml||{});function _f(e,n,t,i){let r=J(null);try{let[o,s,a]=e.inputs[t],c=null;(s&Ml.SignalBased)!==0&&(c=n[o][mt]),c!==null&&c.transformFn!==void 0?i=c.transformFn(i):a!==null&&(i=a.call(n,i)),e.setInput!==null?e.setInput(n,c,i,t,o):i0(n,c,o,i)}finally{J(r)}}var dn=function(e){return e[e.Important=1]="Important",e[e.DashCase=2]="DashCase",e}(dn||{}),NI;function bm(e,n){return NI(e,n)}function eo(e,n,t,i,r){if(i!=null){let o,s=!1;Rt(i)?o=i:Nt(i)&&(s=!0,i=i[wt]);let a=Pt(i);e===0&&t!==null?r==null?vb(n,t,a):sl(n,t,a,r||null,!0):e===1&&t!==null?sl(n,t,a,r||null,!0):e===2?hm(n,a,s):e===3&&n.destroyNode(a),o!=null&&HI(n,e,o,t,r)}}function RI(e,n){Cb(e,n),n[wt]=null,n[_t]=null}function PI(e,n,t,i,r,o){i[wt]=r,i[_t]=n,Al(e,i,t,1,r,o)}function Cb(e,n){n[bn].changeDetectionScheduler?.notify(9),Al(e,n,n[me],2,null,null)}function FI(e){let n=e[Zr];if(!n)return Yp(e[B],e);for(;n;){let t=null;if(Nt(n))t=n[Zr];else{let i=n[Qe];i&&(t=i)}if(!t){for(;n&&!n[qt]&&n!==e;)Nt(n)&&Yp(n[B],n),n=n[He];n===null&&(n=e),Nt(n)&&Yp(n[B],n),t=n&&n[qt]}n=t}}function wm(e,n){let t=e[Xi],i=t.indexOf(n);t.splice(i,1)}function Tl(e,n){if(vi(n))return;let t=n[me];t.destroyNode&&Al(e,n,t,3,null,null),FI(n)}function Yp(e,n){if(vi(n))return;let t=J(null);try{n[X]&=-129,n[X]|=256,n[Ot]&&Pr(n[Ot]),jI(e,n),LI(e,n),n[B].type===1&&n[me].destroy();let i=n[gi];if(i!==null&&Rt(n[He])){i!==n[He]&&wm(i,n);let r=n[wn];r!==null&&r.detachView(e)}cf(n)}finally{J(t)}}function LI(e,n){let t=e.cleanup,i=n[Yr];if(t!==null)for(let s=0;s<t.length-1;s+=2)if(typeof t[s]=="string"){let a=t[s+3];a>=0?i[a]():i[-a].unsubscribe(),s+=2}else{let a=i[t[s+1]];t[s].call(a)}i!==null&&(n[Yr]=null);let r=n[Bn];if(r!==null){n[Bn]=null;for(let s=0;s<r.length;s++){let a=r[s];a()}}let o=n[zn];if(o!==null){n[zn]=null;for(let s of o)s.destroy()}}function jI(e,n){let t;if(e!=null&&(t=e.destroyHooks)!=null)for(let i=0;i<t.length;i+=2){let r=n[t[i]];if(!(r instanceof ar)){let o=t[i+1];if(Array.isArray(o))for(let s=0;s<o.length;s+=2){let a=r[o[s]],c=o[s+1];ge(4,a,c);try{c.call(a)}finally{ge(5,a,c)}}else{ge(4,r,o);try{o.call(r)}finally{ge(5,r,o)}}}}}function xb(e,n,t){return VI(e,n.parent,t)}function VI(e,n,t){let i=n;for(;i!==null&&i.type&168;)n=i,i=n.parent;if(i===null)return t[wt];if(Gn(i)){let{encapsulation:r}=e.data[i.directiveStart+i.componentOffset];if(r===Yn.None||r===Yn.Emulated)return null}return Yt(i,t)}function Db(e,n,t){return UI(e,n,t)}function BI(e,n,t){return e.type&40?Yt(e,t):null}var UI=BI,Dy;function _m(e,n,t,i){let r=xb(e,i,n),o=n[me],s=i.parent||n[_t],a=Db(s,i,n);if(r!=null)if(Array.isArray(t))for(let c=0;c<t.length;c++)xy(o,r,t[c],a,!1);else xy(o,r,t,a,!1);Dy!==void 0&&Dy(o,i,n,t,r)}function bs(e,n){if(n!==null){let t=n.type;if(t&3)return Yt(n,e);if(t&4)return Ef(-1,e[n.index]);if(t&8){let i=n.child;if(i!==null)return bs(e,i);{let r=e[n.index];return Rt(r)?Ef(-1,r):Pt(r)}}else{if(t&128)return bs(e,n.next);if(t&32)return bm(n,e)()||Pt(e[n.index]);{let i=Sb(e,n);if(i!==null){if(Array.isArray(i))return i[0];let r=fi(e[dt]);return bs(r,i)}else return bs(e,n.next)}}}return null}function Sb(e,n){if(n!==null){let i=e[dt][_t],r=n.projection;return i.projection[r]}return null}function Ef(e,n){let t=Qe+e+1;if(t<n.length){let i=n[t],r=i[B].firstChild;if(r!==null)return bs(i,r)}return n[_n]}function Em(e,n,t,i,r,o,s){for(;t!=null;){if(t.type===128){t=t.next;continue}let a=i[t.index],c=t.type;if(s&&n===0&&(a&&oo(Pt(a),i),t.flags|=2),!Ns(t))if(c&8)Em(e,n,t.child,i,r,o,!1),eo(n,e,r,a,o);else if(c&32){let d=bm(t,i),m;for(;m=d();)eo(n,e,r,m,o);eo(n,e,r,a,o)}else c&16?Ib(e,n,i,t,r,o):eo(n,e,r,a,o);t=s?t.projectionNext:t.next}}function Al(e,n,t,i,r,o){Em(t,i,e.firstChild,n,r,o,!1)}function $I(e,n,t){let i=n[me],r=xb(e,t,n),o=t.parent||n[_t],s=Db(o,t,n);Ib(i,0,n,t,r,s)}function Ib(e,n,t,i,r,o){let s=t[dt],c=s[_t].projection[i.projection];if(Array.isArray(c))for(let d=0;d<c.length;d++){let m=c[d];eo(n,e,r,m,o)}else{let d=c,m=s[He];ol(i)&&(d.flags|=128),Em(e,n,d,m,r,o,!0)}}function HI(e,n,t,i,r){let o=t[_n],s=Pt(t);o!==s&&eo(n,e,i,o,r);for(let a=Qe;a<t.length;a++){let c=t[a];Al(c[B],c,e,n,i,o)}}function zI(e,n,t,i,r){if(n)r?e.addClass(t,i):e.removeClass(t,i);else{let o=i.indexOf("-")===-1?void 0:dn.DashCase;r==null?e.removeStyle(t,i,o):(typeof r=="string"&&r.endsWith("!important")&&(r=r.slice(0,-10),o|=dn.Important),e.setStyle(t,i,r,o))}}function Mb(e,n,t,i,r){let o=ln(),s=i&2;try{bi(-1),s&&n.length>de&&Eb(e,n,de,!1),ge(s?2:0,r,t),t(i,r)}finally{bi(o),ge(s?3:1,r,t)}}function kl(e,n,t){QI(e,n,t),(t.flags&64)===64&&KI(e,n,t)}function Fs(e,n,t=Yt){let i=n.localNames;if(i!==null){let r=n.index+1;for(let o=0;o<i.length;o+=2){let s=i[o+1],a=s===-1?t(n,e):e[s];e[r++]=a}}}function GI(e,n,t,i){let o=i.get(Jf,F0)||t===Yn.ShadowDom,s=e.selectRootElement(n,o);return WI(s),s}function WI(e){Tb(e)}var Tb=()=>null;function qI(e){_0(e)?yb(e):HS(e)}function Ab(){Tb=qI}function YI(e){return e==="class"?"className":e==="for"?"htmlFor":e==="formaction"?"formAction":e==="innerHtml"?"innerHTML":e==="readonly"?"readOnly":e==="tabindex"?"tabIndex":e}function kb(e,n,t,i,r,o){let s=n[B];if(Im(e,s,n,t,i)){Gn(e)&&ZI(n,e.index);return}e.type&3&&(t=YI(t)),Ob(e,n,t,i,r,o)}function Ob(e,n,t,i,r,o){if(e.type&3){let s=Yt(e,n);i=o!=null?o(i,e.value||"",t):i,r.setProperty(s,t,i)}else e.type&12}function ZI(e,n){let t=Zt(n,e);t[X]&16||(t[X]|=64)}function QI(e,n,t){let i=t.directiveStart,r=t.directiveEnd;Gn(t)&&OI(n,t,e.data[i+t.componentOffset]),e.firstCreatePass||il(t,n);let o=t.initialInputs;for(let s=i;s<r;s++){let a=e.data[s],c=_s(n,e,s,t);if(oo(c,n),o!==null&&t1(n,s-i,c,a,t,o),cn(a)){let d=Zt(t.index,n);d[ze]=_s(n,e,s,t)}}}function KI(e,n,t){let i=t.directiveStart,r=t.directiveEnd,o=t.index,s=ty();try{bi(o);for(let a=i;a<r;a++){let c=e.data[a],d=n[a];Rc(a),(c.hostBindings!==null||c.hostVars!==0||c.hostAttrs!==null)&&JI(c,d)}}finally{bi(-1),Rc(s)}}function JI(e,n){e.hostBindings!==null&&e.hostBindings(1,n)}function Cm(e,n){let t=e.directiveRegistry,i=null;if(t)for(let r=0;r<t.length;r++){let o=t[r];mb(n,o.selectors,!1)&&(i??=[],cn(o)?i.unshift(o):i.push(o))}return i}function XI(e,n,t,i,r,o){let s=Yt(e,n);e1(n[me],s,o,e.value,t,i,r)}function e1(e,n,t,i,r,o,s){if(o==null)e.removeAttribute(n,r,t);else{let a=s==null?$n(o):s(o,i||"",r);e.setAttribute(n,r,a,t)}}function t1(e,n,t,i,r,o){let s=o[n];if(s!==null)for(let a=0;a<s.length;a+=2){let c=s[a],d=s[a+1];_f(i,t,c,d)}}function xm(e,n,t,i,r){let o=de+t,s=n[B],a=r(s,n,e,i,t);n[o]=a,nr(e,!0);let c=e.type===2;return c?(bb(n[me],a,e),(qv()===0||Qr(e))&&oo(a,n),Yv()):oo(a,n),jc()&&(!c||!Ns(e))&&_m(s,n,a,e),e}function Dm(e){let n=e;return Ap()?kp():(n=n.parent,nr(n,!1)),n}function Sm(e,n){let t=e[sn];if(!t)return;t.get(gt,null)?.(n)}function Im(e,n,t,i,r){let o=e.inputs?.[i],s=e.hostDirectiveInputs?.[i],a=!1;if(s)for(let c=0;c<s.length;c+=2){let d=s[c],m=s[c+1],h=n.data[d];_f(h,t[d],m,r),a=!0}if(o)for(let c of o){let d=t[c],m=n.data[c];_f(m,d,i,r),a=!0}return a}function n1(e,n){let t=Zt(n,e),i=t[B];i1(i,t);let r=t[wt];r!==null&&t[Et]===null&&(t[Et]=Q0(r,t[sn])),ge(18),Mm(i,t,t[ze]),ge(19,t[ze])}function i1(e,n){for(let t=n.length;t<e.blueprint.length;t++)n.push(e.blueprint[t])}function Mm(e,n,t){Fc(n);try{let i=e.viewQuery;i!==null&&pf(1,i,t);let r=e.template;r!==null&&Mb(e,n,r,1,t),e.firstCreatePass&&(e.firstCreatePass=!1),n[wn]?.finishViewCreation(e),e.staticContentQueries&&nb(e,n),e.staticViewQueries&&pf(2,e.viewQuery,t);let o=e.components;o!==null&&r1(n,o)}catch(i){throw e.firstCreatePass&&(e.incompleteFirstPass=!0,e.firstCreatePass=!1),i}finally{n[X]&=-5,Lc()}}function r1(e,n){for(let t=0;t<n.length;t++)n1(e,n[t])}function fo(e,n,t,i){let r=J(null);try{let o=n.tView,a=e[X]&4096?4096:16,c=vm(e,o,t,a,null,n,null,null,i?.injector??null,i?.embeddedViewInjector??null,i?.dehydratedView??null),d=e[n.index];c[gi]=d;let m=e[wn];return m!==null&&(c[wn]=m.createEmbeddedView(o)),Mm(o,c,t),c}finally{J(r)}}function cr(e,n){return!n||n.firstChild===null||ol(e)}var Sy=!1,o1=new P("");function Cs(e,n,t,i,r=!1){for(;t!==null;){if(t.type===128){t=r?t.projectionNext:t.next;continue}let o=n[t.index];o!==null&&i.push(Pt(o)),Rt(o)&&Nb(o,i);let s=t.type;if(s&8)Cs(e,n,t.child,i);else if(s&32){let a=bm(t,n),c;for(;c=a();)i.push(c)}else if(s&16){let a=Sb(n,t);if(Array.isArray(a))i.push(...a);else{let c=fi(n[dt]);Cs(c[B],c,a,i,!0)}}t=r?t.projectionNext:t.next}return i}function Nb(e,n){for(let t=Qe;t<e.length;t++){let i=e[t],r=i[B].firstChild;r!==null&&Cs(i[B],i,r,n)}e[_n]!==e[wt]&&n.push(e[_n])}function Rb(e){if(e[Ji]!==null){for(let n of e[Ji])n.impl.addSequence(n);e[Ji].length=0}}var Pb=[];function s1(e){return e[Ot]??a1(e)}function a1(e){let n=Pb.pop()??Object.create(l1);return n.lView=e,n}function c1(e){e.lView[Ot]!==e&&(e.lView=null,Pb.push(e))}var l1=Z(I({},ai),{consumerIsAlwaysLive:!0,kind:"template",consumerMarkedDirty:e=>{yi(e.lView)},consumerOnSignalRead(){this.lView[Ot]=this}});function u1(e){let n=e[Ot]??Object.create(d1);return n.lView=e,n}var d1=Z(I({},ai),{consumerIsAlwaysLive:!0,kind:"template",consumerMarkedDirty:e=>{let n=fi(e.lView);for(;n&&!Fb(n[B]);)n=fi(n);n&&Ep(n)},consumerOnSignalRead(){this.lView[Ot]=this}});function Fb(e){return e.type!==2}function Lb(e){if(e[zn]===null)return;let n=!0;for(;n;){let t=!1;for(let i of e[zn])i.dirty&&(t=!0,i.zone===null||Zone.current===i.zone?i.run():i.zone.run(()=>i.run()));n=t&&!!(e[X]&8192)}}var p1=100;function Tm(e,n=0){let i=e[bn].rendererFactory,r=!1;r||i.begin?.();try{f1(e,n)}finally{r||i.end?.()}}function f1(e,n){let t=Rp();try{Kr(!0),Cf(e,n);let i=0;for(;ms(e);){if(i===p1)throw new M(103,!1);i++,Cf(e,1)}}finally{Kr(t)}}function jb(e,n){Np(n?hs.Exhaustive:hs.OnlyDirtyViews);try{Tm(e)}finally{Np(hs.Off)}}function m1(e,n,t,i){if(vi(n))return;let r=n[X],o=!1,s=!1;Fc(n);let a=!0,c=null,d=null;o||(Fb(e)?(d=s1(n),c=ci(d)):ja()===null?(a=!1,d=u1(n),c=ci(d)):n[Ot]&&(Pr(n[Ot]),n[Ot]=null));try{_p(n),Jv(e.bindingStartIndex),t!==null&&Mb(e,n,t,2,i);let m=(r&3)===3;if(!o)if(m){let g=e.preOrderCheckHooks;g!==null&&Wc(n,g,null)}else{let g=e.preOrderHooks;g!==null&&qc(n,g,0,null),Gp(n,0)}if(s||h1(n),Lb(n),Vb(n,0),e.contentQueries!==null&&nb(e,n),!o)if(m){let g=e.contentCheckHooks;g!==null&&Wc(n,g)}else{let g=e.contentHooks;g!==null&&qc(n,g,1),Gp(n,1)}v1(e,n);let h=e.components;h!==null&&Ub(n,h,0);let w=e.viewQuery;if(w!==null&&pf(2,w,i),!o)if(m){let g=e.viewCheckHooks;g!==null&&Wc(n,g)}else{let g=e.viewHooks;g!==null&&qc(n,g,2),Gp(n,2)}if(e.firstUpdatePass===!0&&(e.firstUpdatePass=!1),n[Ic]){for(let g of n[Ic])g();n[Ic]=null}o||(Rb(n),n[X]&=-73)}catch(m){throw o||yi(n),m}finally{d!==null&&(Bi(d,c),a&&c1(d)),Lc()}}function Vb(e,n){for(let t=x0(e);t!==null;t=D0(t))for(let i=Qe;i<t.length;i++){let r=t[i];Bb(r,n)}}function h1(e){for(let n=x0(e);n!==null;n=D0(n)){if(!(n[X]&2))continue;let t=n[Xi];for(let i=0;i<t.length;i++){let r=t[i];Ep(r)}}}function g1(e,n,t){ge(18);let i=Zt(n,e);Bb(i,t),ge(19,i[ze])}function Bb(e,n){Tc(e)&&Cf(e,n)}function Cf(e,n){let i=e[B],r=e[X],o=e[Ot],s=!!(n===0&&r&16);if(s||=!!(r&64&&n===0),s||=!!(r&1024),s||=!!(o?.dirty&&Rr(o)),s||=!1,o&&(o.dirty=!1),e[X]&=-9217,s)m1(i,e,i.template,e[ze]);else if(r&8192){let a=J(null);try{Lb(e),Vb(e,1);let c=i.components;c!==null&&Ub(e,c,1),Rb(e)}finally{J(a)}}}function Ub(e,n,t){for(let i=0;i<n.length;i++)g1(e,n[i],t)}function v1(e,n){let t=e.hostBindingOpCodes;if(t!==null)try{for(let i=0;i<t.length;i++){let r=t[i];if(r<0)bi(~r);else{let o=r,s=t[++i],a=t[++i];ey(s,o);let c=n[o];ge(24,c),a(2,c),ge(25,c)}}}finally{bi(-1)}}function Ol(e,n){let t=Rp()?64:1088;for(e[bn].changeDetectionScheduler?.notify(n);e;){e[X]|=t;let i=fi(e);if(er(e)&&!i)return e;e=i}return null}function $b(e,n,t,i){return[e,!0,0,n,null,i,null,t,null,null]}function Hb(e,n){let t=Qe+n;if(t<e.length)return e[t]}function mo(e,n,t,i=!0){let r=n[B];if(y1(r,n,e,t),i){let s=Ef(t,e),a=n[me],c=a.parentNode(e[_n]);c!==null&&PI(r,e[_t],a,n,c,s)}let o=n[Et];o!==null&&o.firstChild!==null&&(o.firstChild=null)}function Am(e,n){let t=xs(e,n);return t!==void 0&&Tl(t[B],t),t}function xs(e,n){if(e.length<=Qe)return;let t=Qe+n,i=e[t];if(i){let r=i[gi];r!==null&&r!==e&&wm(r,i),n>0&&(e[t-1][qt]=i[qt]);let o=ss(e,Qe+n);RI(i[B],i);let s=o[wn];s!==null&&s.detachView(o[B]),i[He]=null,i[qt]=null,i[X]&=-129}return i}function y1(e,n,t,i){let r=Qe+i,o=t.length;i>0&&(t[r-1][qt]=n),i<o-Qe?(n[qt]=t[r],up(t,Qe+i,n)):(t.push(n),n[qt]=null),n[He]=t;let s=n[gi];s!==null&&t!==s&&zb(s,n);let a=n[wn];a!==null&&a.insertView(e),Ac(n),n[X]|=128}function zb(e,n){let t=e[Xi],i=n[He];if(Nt(i))e[X]|=2;else{let r=i[He][dt];n[dt]!==r&&(e[X]|=2)}t===null?e[Xi]=[n]:t.push(n)}var wi=class{_lView;_cdRefInjectingView;_appRef=null;_attachedToViewContainer=!1;exhaustive;get rootNodes(){let n=this._lView,t=n[B];return Cs(t,n,t.firstChild,[])}constructor(n,t){this._lView=n,this._cdRefInjectingView=t}get context(){return this._lView[ze]}set context(n){this._lView[ze]=n}get destroyed(){return vi(this._lView)}destroy(){if(this._appRef)this._appRef.detachView(this);else if(this._attachedToViewContainer){let n=this._lView[He];if(Rt(n)){let t=n[ps],i=t?t.indexOf(this):-1;i>-1&&(xs(n,i),ss(t,i))}this._attachedToViewContainer=!1}Tl(this._lView[B],this._lView)}onDestroy(n){Cp(this._lView,n)}markForCheck(){Ol(this._cdRefInjectingView||this._lView,4)}detach(){this._lView[X]&=-129}reattach(){Ac(this._lView),this._lView[X]|=128}detectChanges(){this._lView[X]|=1024,Tm(this._lView)}checkNoChanges(){return;try{this.exhaustive??=this._lView[sn].get(o1,Sy)}catch{this.exhaustive=Sy}}attachToViewContainerRef(){if(this._appRef)throw new M(902,!1);this._attachedToViewContainer=!0}detachFromAppRef(){this._appRef=null;let n=er(this._lView),t=this._lView[gi];t!==null&&!n&&wm(t,this._lView),Cb(this._lView[B],this._lView)}attachToAppRef(n){if(this._attachedToViewContainer)throw new M(902,!1);this._appRef=n;let t=er(this._lView),i=this._lView[gi];i!==null&&!t&&zb(i,this._lView),Ac(this._lView)}};var _i=(()=>{class e{_declarationLView;_declarationTContainer;elementRef;static __NG_ELEMENT_ID__=b1;constructor(t,i,r){this._declarationLView=t,this._declarationTContainer=i,this.elementRef=r}get ssrId(){return this._declarationTContainer.tView?.ssrId||null}createEmbeddedView(t,i){return this.createEmbeddedViewImpl(t,i)}createEmbeddedViewImpl(t,i,r){let o=fo(this._declarationLView,this._declarationTContainer,t,{embeddedViewInjector:i,dehydratedView:r});return new wi(o)}}return e})();function b1(){return Nl(Ke(),G())}function Nl(e,n){return e.type&4?new _i(n,e,uo(e,n)):null}function mr(e,n,t,i,r){let o=e.data[n];if(o===null)o=w1(e,n,t,i,r),Xv()&&(o.flags|=32);else if(o.type&64){o.type=t,o.value=i,o.attrs=r;let s=Qv();o.injectorIndex=s===null?-1:s.injectorIndex}return nr(o,!0),o}function w1(e,n,t,i,r){let o=Tp(),s=Ap(),a=s?o:o&&o.parent,c=e.data[n]=E1(e,a,t,n,i,r);return _1(e,c,o,s),c}function _1(e,n,t,i){e.firstChild===null&&(e.firstChild=n),t!==null&&(i?t.child==null&&n.parent!==null&&(t.child=n):t.next===null&&(t.next=n,n.prev=t))}function E1(e,n,t,i,r,o){let s=n?n.injectorIndex:-1,a=0;return Oc()&&(a|=128),{type:t,index:i,insertBeforeIndex:null,injectorIndex:s,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,componentOff
7set:-1,propertyBindings:null,flags:a,providerIndexes:0,value:r,attrs:o,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:n,projection:null,styles:null,stylesWithoutHost:null,residualStyles:void 0,classes:null,classesWithoutHost:null,residualClasses:void 0,classBindings:0,styleBindings:0}}var C1=new RegExp(`^(\\d+)*(${M0}|${I0})*(.*)`);function x1(e){let n=e.match(C1),[t,i,r,o]=n,s=i?parseInt(i,10):r,a=[];for(let[c,d,m]of o.matchAll(/(f|n)(\d*)/g)){let h=parseInt(m,10)||1;a.push(d,h)}return[s,...a]}function D1(e){return!e.prev&&e.parent?.type===8}function Zp(e){return e.index-de}function S1(e,n){let t=e.i18nNodes;if(t)return t.get(n)}function Rl(e,n,t,i){let r=Zp(i),o=S1(e,r);if(o===void 0){let s=e.data[O0];if(s?.[r])o=M1(s[r],t);else if(n.firstChild===i)o=e.firstChild;else{let a=i.prev===null,c=i.prev??i.parent;if(D1(i)){let d=Zp(i.parent);o=df(e,d)}else{let d=Yt(c,t);if(a)o=d.firstChild;else{let m=Zp(c),h=df(e,m);if(c.type===2&&h){let g=im(e,m)+1;o=Pl(g,h)}else o=d.nextSibling}}}}return o}function Pl(e,n){let t=n;for(let i=0;i<e;i++)t=t.nextSibling;return t}function I1(e,n){let t=e;for(let i=0;i<n.length;i+=2){let r=n[i],o=n[i+1];for(let s=0;s<o;s++)switch(r){case FS:t=t.firstChild;break;case LS:t=t.nextSibling;break}}return t}function M1(e,n){let[t,...i]=x1(e),r;if(t===I0)r=n[dt][wt];else if(t===M0)r=db(n[dt][wt]);else{let o=Number(t);r=Pt(n[o+de])}return I1(r,i)}var T1=!1;function Gb(e){T1=e}function A1(e){let n=e[Et];if(n){let{i18nNodes:t,dehydratedIcuData:i}=n;if(t&&i){let r=e[me];for(let o of i.values())k1(r,t,o)}n.i18nNodes=void 0,n.dehydratedIcuData=void 0}}function k1(e,n,t){for(let i of t.node.cases[t.case]){let r=n.get(i.index-de);r&&hm(e,r,!1)}}function Fl(e){let n=e[an]??[],i=e[He][me],r=[];for(let o of n)o.data[N0]!==void 0?r.push(o):Wb(o,i);e[an]=r}function O1(e){let{lContainer:n}=e,t=n[an];if(t===null)return;let r=n[He][me];for(let o of t)Wb(o,r)}function Wb(e,n){let t=0,i=e.firstChild;if(i){let r=e.data[Es];for(;t<r;){let o=i.nextSibling;hm(n,i,!1),i=o,t++}}}function Ll(e){Fl(e);let n=e[wt];Nt(n)&&al(n);for(let t=Qe;t<e.length;t++)al(e[t])}function al(e){A1(e);let n=e[B];for(let t=de;t<n.bindingStartIndex;t++)if(Rt(e[t])){let i=e[t];Ll(i)}else Nt(e[t])&&al(e[t])}function km(e){let n=e._views;for(let t of n){let i=K0(t);i!==null&&i[wt]!==null&&(Nt(i)?al(i):Ll(i))}}function N1(e,n,t,i){e!==null&&(t.cleanup(n),Ll(e.lContainer),km(i))}function R1(e,n){let t=[];for(let i of n)for(let r=0;r<(i[Qf]??1);r++){let o={data:i,firstChild:null};i[Es]>0&&(o.firstChild=e,e=Pl(i[Es],e)),t.push(o)}return[e,t]}var qb=()=>null,Yb=()=>null;function Zb(){qb=P1,Yb=F1}function P1(e,n){return Kb(e,n)?e[an].shift():(Fl(e),null)}function Ds(e,n){return qb(e,n)}function F1(e,n,t){if(n.tView.ssrId===null)return null;let i=Ds(e,n.tView.ssrId);return t[B].firstUpdatePass&&i===null&&L1(t,n),i}function Qb(e,n,t){return Yb(e,n,t)}function L1(e,n){let t=n;for(;t;){if(Iy(e,t))return;if((t.flags&256)===256)break;t=t.prev}for(t=n.next;t&&(t.flags&512)===512;){if(Iy(e,t))return;t=t.next}}function Kb(e,n){let t=e[an];return!n||t===null||t.length===0?!1:t[0].data[k0]===n}function Iy(e,n){let t=n.tView?.ssrId;if(t==null)return!1;let i=e[n.index];return Rt(i)&&Kb(i,t)?(Fl(i),!0):!1}var Jb=class{},jl=class{},xf=class{resolveComponentFactory(n){throw new M(917,!1)}},Ls=class{static NULL=new xf},lr=class{},Kn=(()=>{class e{destroyNode=null;static __NG_ELEMENT_ID__=()=>j1()}return e})();function j1(){let e=G(),n=Ke(),t=Zt(n.index,e);return(Nt(t)?t:e)[me]}var Xb=(()=>{class e{static \u0275prov=A({token:e,providedIn:"root",factory:()=>null})}return e})();var Qc={},no=class{injector;parentInjector;constructor(n,t){this.injector=n,this.parentInjector=t}get(n,t,i){let r=this.injector.get(n,Qc,i);return r!==Qc||t===Qc?r:this.parentInjector.get(n,t,i)}};function cl(e,n,t){let i=t?e.styles:null,r=t?e.classes:null,o=0;if(n!==null)for(let s=0;s<n.length;s++){let a=n[s];if(typeof a=="number")o=a;else if(o==1)r=_c(r,a);else if(o==2){let c=a,d=n[++s];i=_c(i,c+": "+d+";")}}t?e.styles=i:e.stylesWithoutHost=i,t?e.classes=r:e.classesWithoutHost=r}function D(e,n=0){let t=G();if(t===null)return $(e,n);let i=Ke();return g0(i,t,Ze(e),n)}function ew(e,n,t,i,r){let o=i===null?null:{"":-1},s=r(e,t);if(s!==null){let a=s,c=null,d=null;for(let m of s)if(m.resolveHostDirectives!==null){[a,c,d]=m.resolveHostDirectives(s);break}U1(e,n,t,a,o,c,d)}o!==null&&i!==null&&V1(t,i,o)}function V1(e,n,t){let i=e.localNames=[];for(let r=0;r<n.length;r+=2){let o=t[n[r+1]];if(o==null)throw new M(-301,!1);i.push(n[r],o)}}
vendor: 10,599 bytes, line 7
7function B1(e,n,t){n.componentOffset=t,(e.components??=[]).push(n.index)}function U1(e,n,t,i,r,o,s){let a=i.length,c=!1;for(let w=0;w<a;w++){let g=i[w];!c&&cn(g)&&(c=!0,B1(e,t,w)),sf(il(t,n),e,g.type)}q1(t,e.data.length,a);for(let w=0;w<a;w++){let g=i[w];g.providersResolver&&g.providersResolver(g)}let d=!1,m=!1,h=_b(e,n,a,null);a>0&&(t.directiveToIndex=new Map);for(let w=0;w<a;w++){let g=i[w];if(t.mergedAttrs=ro(t.mergedAttrs,g.hostAttrs),H1(e,t,n,h,g),W1(h,g,r),s!==null&&s.has(g)){let[R,k]=s.get(g);t.directiveToIndex.set(g.type,[h,R+t.directiveStart,k+t.directiveStart])}else(o===null||!o.has(g))&&t.directiveToIndex.set(g.type,h);g.contentQueries!==null&&(t.flags|=4),(g.hostBindings!==null||g.hostAttrs!==null||g.hostVars!==0)&&(t.flags|=64);let x=g.type.prototype;!d&&(x.ngOnChanges||x.ngOnInit||x.ngDoCheck)&&((e.preOrderHooks??=[]).push(t.index),d=!0),!m&&(x.ngOnChanges||x.ngDoCheck)&&((e.preOrderCheckHooks??=[]).push(t.index),m=!0),h++}$1(e,t,o)}function $1(e,n,t){for(let i=n.directiveStart;i<n.directiveEnd;i++){let r=e.data[i];if(t===null||!t.has(r))My(0,n,r,i),My(1,n,r,i),Ay(n,i,!1);else{let o=t.get(r);Ty(0,n,o,i),Ty(1,n,o,i),Ay(n,i,!0)}}}function My(e,n,t,i){let r=e===0?t.inputs:t.outputs;for(let o in r)if(r.hasOwnProperty(o)){let s;e===0?s=n.inputs??={}:s=n.outputs??={},s[o]??=[],s[o].push(i),tw(n,o)}}function Ty(e,n,t,i){let r=e===0?t.inputs:t.outputs;for(let o in r)if(r.hasOwnProperty(o)){let s=r[o],a;e===0?a=n.hostDirectiveInputs??={}:a=n.hostDirectiveOutputs??={},a[s]??=[],a[s].push(i,o),tw(n,s)}}function tw(e,n){n==="class"?e.flags|=8:n==="style"&&(e.flags|=16)}function Ay(e,n,t){let{attrs:i,inputs:r,hostDirectiveInputs:o}=e;if(i===null||!t&&r===null||t&&o===null||fm(e)){e.initialInputs??=[],e.initialInputs.push(null);return}let s=null,a=0;for(;a<i.length;){let c=i[a];if(c===0){a+=4;continue}else if(c===5){a+=2;continue}else if(typeof c=="number")break;if(!t&&r.hasOwnProperty(c)){let d=r[c];for(let m of d)if(m===n){s??=[],s.push(c,i[a+1]);break}}else if(t&&o.hasOwnProperty(c)){let d=o[c];for(let m=0;m<d.length;m+=2)if(d[m]===n){s??=[],s.push(d[m+1],i[a+1]);break}}a+=2}e.initialInputs??=[],e.initialInputs.push(s)}function H1(e,n,t,i,r){e.data[i]=r;let o=r.factory||(r.factory=pi(r.type,!0)),s=new ar(o,cn(r),D);e.blueprint[i]=s,t[i]=s,z1(e,n,i,_b(e,t,r.hostVars,vt),r)}function z1(e,n,t,i,r){let o=r.hostBindings;if(o){let s=e.hostBindingOpCodes;s===null&&(s=e.hostBindingOpCodes=[]);let a=~n.index;G1(s)!=a&&s.push(a),s.push(t,i,o)}}function G1(e){let n=e.length;for(;n>0;){let t=e[--n];if(typeof t=="number"&&t<0)return t}return 0}function W1(e,n,t){if(t){if(n.exportAs)for(let i=0;i<n.exportAs.length;i++)t[n.exportAs[i]]=e;cn(n)&&(t[""]=e)}}function q1(e,n,t){e.flags|=1,e.directiveStart=n,e.directiveEnd=n+t,e.providerIndexes=n}function Om(e,n,t,i,r,o,s,a){let c=n[B],d=c.consts,m=Qt(d,s),h=mr(c,e,t,i,m);return o&&ew(c,n,h,Qt(d,a),r),h.mergedAttrs=ro(h.mergedAttrs,h.attrs),h.attrs!==null&&cl(h,h.attrs,!1),h.mergedAttrs!==null&&cl(h,h.mergedAttrs,!0),c.queries!==null&&c.queries.elementStart(c,h),h}function Nm(e,n){a0(e,n),bp(n)&&e.queries.elementEnd(n)}function Y1(e,n,t,i,r,o){let s=n.consts,a=Qt(s,r),c=mr(n,e,t,i,a);if(c.mergedAttrs=ro(c.mergedAttrs,c.attrs),o!=null){let d=Qt(s,o);c.localNames=[];for(let m=0;m<d.length;m+=2)c.localNames.push(d[m],-1)}return c.attrs!==null&&cl(c,c.attrs,!1),c.mergedAttrs!==null&&cl(c,c.mergedAttrs,!0),n.queries!==null&&n.queries.elementStart(n,c),c}function Rm(e){return Vl(e)?Array.isArray(e)||!(e instanceof Map)&&Symbol.iterator in e:!1}function nw(e,n){if(Array.isArray(e))for(let t=0;t<e.length;t++)n(e[t]);else{let t=e[Symbol.iterator](),i;for(;!(i=t.next()).done;)n(i.value)}}function Vl(e){return e!==null&&(typeof e=="function"||typeof e=="object")}function Pm(e,n,t){return e[n]=t}function Z1(e,n){return e[n]}function Lt(e,n,t){if(t===vt)return!1;let i=e[n];return Object.is(i,t)?!1:(e[n]=t,!0)}function iw(e,n,t,i){let r=Lt(e,n,t);return Lt(e,n+1,i)||r}function Kc(e,n,t){return function i(r){let o=Gn(e)?Zt(e.index,n):n;Ol(o,5);let s=n[ze],a=ky(n,s,t,r),c=i.__ngNextListenerFn__;for(;c;)a=ky(n,s,c,r)&&a,c=c.__ngNextListenerFn__;return a}}function ky(e,n,t,i){let r=J(null);try{return ge(6,n,t),t(i)!==!1}catch(o){return Sm(e,o),!1}finally{ge(7,n,t),J(r)}}function rw(e,n,t,i,r,o,s,a){let c=Qr(e),d=!1,m=null;if(!i&&c&&(m=Q1(n,t,o,e.index)),m!==null){let h=m.__ngLastListenerFn__||m;h.__ngNextListenerFn__=s,m.__ngLastListenerFn__=s,d=!0}else{let h=Yt(e,t),w=i?i(h):h;jS(t,w,o,a);let g=r.listen(w,o,a),x=i?R=>i(Pt(R[e.index])):e.index;ow(x,n,t,o,a,g,!1)}return d}function Q1(e,n,t,i){let r=e.cleanup;if(r!=null)for(let o=0;o<r.length-1;o+=2){let s=r[o];if(s===t&&r[o+1]===i){let a=n[Yr],c=r[o+2];return a&&a.length>c?a[c]:null}typeof s=="string"&&(o+=2)}return null}function ow(e,n,t,i,r,o,s){let a=n.firstCreatePass?Dp(n):null,c=xp(t),d=c.length;c.push(r,o),a&&a.push(i,e,d,(d+1)*(s?-1:1))}function Oy(e,n,t,i,r,o){let s=n[t],a=n[B],d=a.data[t].outputs[i],h=s[d].subscribe(o);ow(e.index,a,n,r,o,h,!0)}var Df=Symbol("BINDING");var ll=class extends Ls{ngModule;constructor(n){super(),this.ngModule=n}resolveComponentFactory(n){let t=Hn(n);return new so(t,this.ngModule)}};function K1(e){return Object.keys(e).map(n=>{let[t,i,r]=e[n],o={propName:t,templateName:n,isSignal:(i&Ml.SignalBased)!==0};return r&&(o.transform=r),o})}function J1(e){return Object.keys(e).map(n=>({propName:e[n],templateName:n}))}function X1(e,n,t){let i=n instanceof $e?n:n?.injector;return i&&e.getStandaloneInjector!==null&&(i=e.getStandaloneInjector(i)||i),i?new no(t,i):t}function eM(e){let n=e.get(lr,null);if(n===null)throw new M(407,!1);let t=e.get(Xb,null),i=e.get(zt,null);return{rendererFactory:n,sanitizer:t,changeDetectionScheduler:i,ngReflect:!1}}function tM(e,n){let t=(e.selectors[0][0]||"div").toLowerCase();return mm(n,t,t==="svg"?Bv:t==="math"?Uv:null)}var so=class extends jl{componentDef;ngModule;selector;componentType;ngContentSelectors;isBoundToModule;cachedInputs=null;cachedOutputs=null;get inputs(){return this.cachedInputs??=K1(this.componentDef.inputs),this.cachedInputs}get outputs(){return this.cachedOutputs??=J1(this.componentDef.outputs),this.cachedOutputs}constructor(n,t){super(),this.componentDef=n,this.ngModule=t,this.componentType=n.type,this.selector=DI(n.selectors),this.ngContentSelectors=n.ngContentSelectors??[],this.isBoundToModule=!!t}create(n,t,i,r,o,s){ge(22);let a=J(null);try{let c=this.componentDef,d=nM(i,c,s,o),m=X1(c,r||this.ngModule,n),h=eM(m),w=h.rendererFactory.createRenderer(null,c),g=i?GI(w,i,c.encapsulation,m):tM(c,w),x=s?.some(Ny)||o?.some(N=>typeof N!="function"&&N.bindings.some(Ny)),R=vm(null,d,null,512|wb(c),null,null,h,w,m,null,Q0(g,m,!0));R[de]=g,Fc(R);let k=null;try{let N=Om(de,R,2,"#host",()=>d.directiveRegistry,!0,0);g&&(bb(w,g,N),oo(g,R)),kl(d,R,N),rm(d,N,R),Nm(d,N),t!==void 0&&rM(N,this.ngContentSelectors,t),k=Zt(N.index,R),R[ze]=k[ze],Mm(d,R,null)}catch(N){throw k!==null&&cf(k),cf(R),N}finally{ge(23),Lc()}return new ul(this.componentType,R,!!x)}finally{J(a)}}};function nM(e,n,t,i){let r=e?["ng-version","20.1.0"]:SI(n.selectors[0]),o=null,s=null,a=0;if(t)for(let m of t)a+=m[Df].requiredVars,m.create&&(m.targetIdx=0,(o??=[]).push(m)),m.update&&(m.targetIdx=0,(s??=[]).push(m));if(i)for(let m=0;m<i.length;m++){let h=i[m];if(typeof h!="function")for(let w of h.bindings){a+=w[Df].requiredVars;let g=m+1;w.create&&(w.targetIdx=g,(o??=[]).push(w)),w.update&&(w.targetIdx=g,(s??=[]).push(w))}}let c=[n];if(i)for(let m of i){let h=typeof m=="function"?m:m.type,w=cs(h);c.push(w)}return gm(0,null,iM(o,s),1,a,c,null,null,null,[r],null)}function iM(e,n){return!e&&!n?null:t=>{if(t&1&&e)for(let i of e)i.create();if(t&2&&n)for(let i of n)i.update()}}function Ny(e){let n=e[Df].kind;return n==="input"||n==="twoWay"}var ul=class extends Jb{_rootLView;_hasInputBindings;instance;hostView;changeDetectorRef;componentType;location;previousInputValues=null;_tNode;constructor(n,t,i){super(),this._rootLView=t,this._hasInputBindings=i,this._tNode=tr(t[B],de),this.location=uo(this._tNode,t),this.instance=Zt(this._tNode.index,t)[ze],this.hostView=this.changeDetectorRef=new wi(t,void 0),this.componentType=n}setInput(n,t){this._hasInputBindings;let i=this._tNode;if(this.previousInputValues??=new Map,this.previousInputValues.has(n)&&Object.is(this.previousInputValues.get(n),t))return;let r=this._rootLView,o=Im(i,r[B],r,n,t);this.previousInputValues.set(n,t);let s=Zt(i.index,r);Ol(s,1)}get injector(){return new sr(this._tNode,this._rootLView)}destroy(){this.hostView.destroy()}onDestroy(n){this.hostView.onDestroy(n)}};function rM(e,n,t){let i=e.projection=[];for(let r=0;r<n.length;r++){let o=t[r];i.push(o!=null&&o.length?Array.from(o):null)}}var Jn=(()=>{class e{static __NG_ELEMENT_ID__=oM}return e})();function oM(){let e=Ke();return aw(e,G())}var sM=Jn,sw=class extends sM{_lContainer;_hostTNode;_hostLView;constructor(n,t,i){super(),this._lContainer=n,this._hostTNode=t,this._hostLView=i}get element(){return uo(this._hostTNode,this._hostLView)}get injector(){return new sr(this._hostTNode,this._hostLView)}get parentInjector(){let n=qf(this._hostTNode,this._hostLView);if(u0(n)){let t=tl(n,this._hostLView),i=el(n),r=t[B].data[i+8];return new sr(r,t)}else return new sr(null,this._hostLView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(n){let t=Ry(this._lContainer);return t!==null&&t[n]||null}get length(){return this._lContainer.length-Qe}createEmbeddedView(n,t,i){let r,o;typeof i=="number"?r=i:i!=null&&(r=i.index,o=i.injector);let s=Ds(this._lContainer,n.ssrId),a=n.createEmbeddedViewImpl(t||{},o,s);return this.insertImpl(a,r,cr(this._hostTNode,s)),a}createComponent(n,t,i,r,o,s,a){let c=n&&!aS(n),d;if(c)d=t;else{let k=t||{};d=k.index,i=k.injector,r=k.projectableNodes,o=k.environmentInjector||k.ngModuleRef,s=k.directives,a=k.bindings}let m=c?n:new so(Hn(n)),h=i||this.parentInjector;if(!o&&m.ngModule==null){let N=(c?h:this.parentInjector).get($e,null);N&&(o=N)}let w=Hn(m.componentType??{}),g=Ds(this._lContainer,w?.id??null),x=g?.firstChild??null,R=m.create(h,r,x,o,s,a);return this.insertImpl(R.hostView,d,cr(this._hostTNode,g)),R}insert(n,t){return this.insertImpl(n,t,!0)}insertImpl(n,t,i){let r=n._lView;if(Hv(r)){let a=this.indexOf(n);if(a!==-1)this.detach(a);else{let c=r[He],d=new sw(c,c[_t],c[He]);d.detach(d.indexOf(n))}}let o=this._adjustIndex(t),s=this._lContainer;return mo(s,r,o,i),n.attachToViewContainerRef(),up(Qp(s),o,n),n}move(n,t){return this.insert(n,t)}indexOf(n){let t=Ry(this._lContainer);return t!==null?t.indexOf(n):-1}remove(n){let t=this._adjustIndex(n,-1),i=xs(this._lContainer,t);
7i&&(ss(Qp(this._lContainer),t),Tl(i[B],i))}detach(n){let t=this._adjustIndex(n,-1),i=xs(this._lContainer,t);return i&&ss(Qp(this._lContainer),t)!=null?new wi(i):null}_adjustIndex(n,t=0){return n??this.length+t}};function Ry(e){return e[ps]}function Qp(e){return e[ps]||(e[ps]=[])}function aw(e,n){let t,i=n[e.index];return Rt(i)?t=i:(t=$b(i,n,null,e),n[e.index]=t,ym(n,t)),cw(t,n,e,i),new sw(t,e,n)}function aM(e,n){let t=e[me],i=t.createComment(""),r=Yt(n,e),o=t.parentNode(r);return sl(t,o,i,t.nextSibling(r),!1),i}var cw=lw,Fm=()=>!1;function cM(e,n,t){return Fm(e,n,t)}function lw(e,n,t,i){if(e[_n])return;let r;t.type&8?r=Pt(i):r=aM(n,t),e[_n]=r}function lM(e,n,t){if(e[_n]&&e[an])return!0;let i=t[Et],r=n.index-de;if(!i||E0(n)||eb(i,r))return!1;let s=df(i,r),a=i.data[El]?.[r],[c,d]=R1(s,a);return e[_n]=c,e[an]=d,!0}function uM(e,n,t,i){Fm(e,t,n)||lw(e,n,t,i)}function uw(){cw=uM,Fm=lM}var Sf=class e{queryList;matches=null;constructor(n){this.queryList=n}clone(){return new e(this.queryList)}setDirty(){this.queryList.setDirty()}},If=class e{queries;constructor(n=[]){this.queries=n}createEmbeddedView(n){let t=n.queries;if(t!==null){let i=n.contentQueries!==null?n.contentQueries[0]:t.length,r=[];for(let o=0;o<i;o++){let s=t.getByIndex(o),a=this.queries[s.indexInDeclarationView];r.push(a.clone())}return new e(r)}return null}insertView(n){this.dirtyQueriesWithMatches(n)}detachView(n){this.dirtyQueriesWithMatches(n)}finishViewCreation(n){this.dirtyQueriesWithMatches(n)}dirtyQueriesWithMatches(n){for(let t=0;t<this.queries.length;t++)Lm(n,t).matches!==null&&this.queries[t].setDirty()}},Mf=class{flags;read;predicate;constructor(n,t,i=null){this.flags=t,this.read=i,typeof n=="string"?this.predicate=yM(n):this.predicate=n}},Tf=class e{queries;constructor(n=[]){this.queries=n}elementStart(n,t){for(let i=0;i<this.queries.length;i++)this.queries[i].elementStart(n,t)}elementEnd(n){for(let t=0;t<this.queries.length;t++)this.queries[t].elementEnd(n)}embeddedTView(n){let t=null;for(let i=0;i<this.length;i++){let r=t!==null?t.length:0,o=this.getByIndex(i).embeddedTView(n,r);o&&(o.indexInDeclarationView=i,t!==null?t.push(o):t=[o])}return t!==null?new e(t):null}template(n,t){for(let i=0;i<this.queries.length;i++)this.queries[i].template(n,t)}getByIndex(n){return this.queries[n]}get length(){return this.queries.length}track(n){this.queries.push(n)}},Af=class e{metadata;matches=null;indexInDeclarationView=-1;crossesNgTemplate=!1;_declarationNodeIndex;_appliesToNextNode=!0;constructor(n,t=-1){this.metadata=n,this._declarationNodeIndex=t}elementStart(n,t){this.isApplyingToNode(t)&&this.matchTNode(n,t)}elementEnd(n){this._declarationNodeIndex===n.index&&(this._appliesToNextNode=!1)}template(n,t){this.elementStart(n,t)}embeddedTView(n,t){return this.isApplyingToNode(n)?(this.crossesNgTemplate=!0,this.addMatch(-n.index,t),new e(this.metadata)):null}isApplyingToNode(n){if(this._appliesToNextNode&&(this.metadata.flags&1)!==1){let t=this._declarationNodeIndex,i=n.parent;for(;i!==null&&i.type&8&&i.index!==t;)i=i.parent;return t===(i!==null?i.index:-1)}return this._appliesToNextNode}matchTNode(n,t){let i=this.metadata.predicate;if(Array.isArray(i))for(let r=0;r<i.length;r++){let o=i[r];this.matchTNodeWithReadOption(n,t,dM(t,o)),this.matchTNodeWithReadOption(n,t,Yc(t,n,o,!1,!1))}else i===_i?t.type&4&&this.matchTNodeWithReadOption(n,t,-1):this.matchTNodeWithReadOption(n,t,Yc(t,n,i,!1,!1))}matchTNodeWithReadOption(n,t,i){if(i!==null){let r=this.metadata.read;if(r!==null)if(r===Xe||r===Jn||r===_i&&t.type&4)this.addMatch(t.index,-2);else{let o=Yc(t,n,r,!1,!1);o!==null&&this.addMatch(t.index,o)}else this.addMatch(t.index,i)}}addMatch(n,t){this.matches===null?this.matches=[n,t]:this.matches.push(n,t)}};function dM(e,n){let t=e.localNames;if(t!==null){for(let i=0;i<t.length;i+=2)if(t[i]===n)return t[i+1]}return null}
vendor: 4,342 bytes, line 7
7function pM(e,n){return e.type&11?uo(e,n):e.type&4?Nl(e,n):null}function fM(e,n,t,i){return t===-1?pM(n,e):t===-2?mM(e,n,i):_s(e,e[B],t,n)}function mM(e,n,t){if(t===Xe)return uo(n,e);if(t===_i)return Nl(n,e);if(t===Jn)return aw(n,e)}function dw(e,n,t,i){let r=n[wn].queries[i];if(r.matches===null){let o=e.data,s=t.matches,a=[];for(let c=0;s!==null&&c<s.length;c+=2){let d=s[c];if(d<0)a.push(null);else{let m=o[d];a.push(fM(n,m,s[c+1],t.metadata.read))}}r.matches=a}return r.matches}function kf(e,n,t,i){let r=e.queries.getByIndex(t),o=r.matches;if(o!==null){let s=dw(e,n,r,t);for(let a=0;a<o.length;a+=2){let c=o[a];if(c>0)i.push(s[a/2]);else{let d=o[a+1],m=n[-c];for(let h=Qe;h<m.length;h++){let w=m[h];w[gi]===w[He]&&kf(w[B],w,d,i)}if(m[Xi]!==null){let h=m[Xi];for(let w=0;w<h.length;w++){let g=h[w];kf(g[B],g,d,i)}}}}}return i}function hM(e,n){return e[wn].queries[n].queryList}function gM(e,n,t){let i=new rl((t&4)===4);return Wv(e,n,i,i.destroy),(n[wn]??=new If).queries.push(new Sf(i))-1}function vM(e,n,t){let i=Ie();return i.firstCreatePass&&(bM(i,new Mf(e,n,t),-1),(n&2)===2&&(i.staticViewQueries=!0)),gM(i,G(),n)}function yM(e){return e.split(",").map(n=>n.trim())}function bM(e,n,t){e.queries===null&&(e.queries=new Tf),e.queries.track(new Af(n,t))}function Lm(e,n){return e.queries.getByIndex(n)}function wM(e,n){let t=e[B],i=Lm(t,n);return i.crossesNgTemplate?kf(t,e,n,[]):dw(t,e,i,n)}var Py=new Set;function At(e){Py.has(e)||(Py.add(e),performance?.mark?.("mark_feature_usage",{detail:{feature:e}}))}var ur=class{},Bl=class{};var dl=class extends ur{ngModuleType;_parent;_bootstrapComponents=[];_r3Injector;instance;destroyCbs=[];componentFactoryResolver=new ll(this);constructor(n,t,i,r=!0){super(),this.ngModuleType=n,this._parent=t;let o=fp(n);this._bootstrapComponents=pb(o.bootstrap),this._r3Injector=Vp(n,t,[{provide:ur,useValue:this},{provide:Ls,useValue:this.componentFactoryResolver},...i],Tt(n),new Set(["environment"])),r&&this.resolveInjectorInitializers()}resolveInjectorInitializers(){this._r3Injector.resolveInjectorInitializers(),this.instance=this._r3Injector.get(this.ngModuleType)}get injector(){return this._r3Injector}destroy(){let n=this._r3Injector;!n.destroyed&&n.destroy(),this.destroyCbs.forEach(t=>t()),this.destroyCbs=null}onDestroy(n){this.destroyCbs.push(n)}},pl=class extends Bl{moduleType;constructor(n){super(),this.moduleType=n}create(n){return new dl(this.moduleType,n,[])}};var Ss=class extends ur{injector;componentFactoryResolver=new ll(this);instance=null;constructor(n){super();let t=new Yi([...n.providers,{provide:ur,useValue:this},{provide:Ls,useValue:this.componentFactoryResolver}],n.parent||us(),n.debugName,new Set(["environment"]));this.injector=t,n.runEnvironmentInitializers&&t.resolveInjectorInitializers()}destroy(){this.injector.destroy()}onDestroy(n){this.injector.onDestroy(n)}};function ho(e,n,t=null){return new Ss({providers:e,parent:n,debugName:t,runEnvironmentInitializers:!0}).injector}var _M=(()=>{class e{_injector;cachedInjectors=new Map;constructor(t){this._injector=t}getOrCreateStandaloneInjector(t){if(!t.standalone)return null;if(!this.cachedInjectors.has(t)){let i=Sc(!1,t.type),r=i.length>0?ho([i],this._injector,`Standalone[${t.type.name}]`):null;this.cachedInjectors.set(t,r)}return this.cachedInjectors.get(t)}ngOnDestroy(){try{for(let t of this.cachedInjectors.values())t!==null&&t.destroy()}finally{this.cachedInjectors.clear()}}static \u0275prov=A({token:e,providedIn:"environment",factory:()=>new e($($e))})}return e})();function C(e){return lo(()=>{let n=pw(e),t=Z(I({},n),{decls:e.decls,vars:e.vars,template:e.template,consts:e.consts||null,ngContentSelectors:e.ngContentSelectors,onPush:e.changeDetection===Yf.OnPush,directiveDefs:null,pipeDefs:null,dependencies:n.standalone&&e.dependencies||null,getStandaloneInjector:n.standalone?r=>r.get(_M).getOrCreateStandaloneInjector(t):null,getExternalStyles:null,signals:e.signals??!1,data:e.data||{},encapsulation:e.encapsulation||Yn.Emulated,styles:e.styles||bt,_:null,schemas:e.schemas||null,tView:null,id:""});n.standalone&&At("NgStandalone"),fw(t);let i=e.dependencies;return t.directiveDefs=Fy(i,EM),t.pipeDefs=Fy(i,mp),t.id=DM(t),t})}function EM(e){return Hn(e)||cs(e)}function Sn(e){return lo(()=>({type:e.type,bootstrap:e.bootstrap||bt,declarations:e.declarations||bt,imports:e.imports||bt,exp
vendor: 5,109 bytes, line 7
7orts:e.exports||bt,transitiveCompileScopes:null,schemas:e.schemas||null,id:e.id||null}))}function CM(e,n){if(e==null)return on;let t={};for(let i in e)if(e.hasOwnProperty(i)){let r=e[i],o,s,a,c;Array.isArray(r)?(a=r[0],o=r[1],s=r[2]??o,c=r[3]||null):(o=r,s=r,a=Ml.None,c=null),t[o]=[i,a,c],n[o]=s}return t}function xM(e){if(e==null)return on;let n={};for(let t in e)e.hasOwnProperty(t)&&(n[e[t]]=t);return n}function De(e){return lo(()=>{let n=pw(e);return fw(n),n})}function jm(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 pw(e){let n={};return{type:e.type,providersResolver:null,factory:null,hostBindings:e.hostBindings||null,hostVars:e.hostVars||0,hostAttrs:e.hostAttrs||null,contentQueries:e.contentQueries||null,declaredInputs:n,inputConfig:e.inputs||on,exportAs:e.exportAs||null,standalone:e.standalone??!0,signals:e.signals===!0,selectors:e.selectors||bt,viewQuery:e.viewQuery||null,features:e.features||null,setInput:null,resolveHostDirectives:null,hostDirectives:null,inputs:CM(e.inputs,n),outputs:xM(e.outputs),debugInfo:null}}function fw(e){e.features?.forEach(n=>n(e))}function Fy(e,n){return e?()=>{let t=typeof e=="function"?e():e,i=[];for(let r of t){let o=n(r);o!==null&&i.push(o)}return i}:null}function DM(e){let n=0,t=typeof e.consts=="function"?"":e.consts,i=[e.selectors,e.ngContentSelectors,e.hostVars,e.hostAttrs,t,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 o of i.join("|"))n=Math.imul(31,n)+o.charCodeAt(0)<<0;return n+=2147483648,"c"+n}function SM(e){return Object.getPrototypeOf(e.prototype).constructor}function In(e){let n=SM(e.type),t=!0,i=[e];for(;n;){let r;if(cn(e))r=n.\u0275cmp||n.\u0275dir;else{if(n.\u0275cmp)throw new M(903,!1);r=n.\u0275dir}if(r){if(t){i.push(r);let s=e;s.inputs=Kp(e.inputs),s.declaredInputs=Kp(e.declaredInputs),s.outputs=Kp(e.outputs);let a=r.hostBindings;a&&kM(e,a);let c=r.viewQuery,d=r.contentQueries;if(c&&TM(e,c),d&&AM(e,d),IM(e,r),Dv(e.outputs,r.outputs),cn(r)&&r.data.animation){let m=e.data;m.animation=(m.animation||[]).concat(r.data.animation)}}let o=r.features;if(o)for(let s=0;s<o.length;s++){let a=o[s];a&&a.ngInherit&&a(e),a===In&&(t=!1)}}n=Object.getPrototypeOf(n)}MM(i)}function IM(e,n){for(let t in n.inputs){if(!n.inputs.hasOwnProperty(t)||e.inputs.hasOwnProperty(t))continue;let i=n.inputs[t];i!==void 0&&(e.inputs[t]=i,e.declaredInputs[t]=n.declaredInputs[t])}}function MM(e){let n=0,t=null;for(let i=e.length-1;i>=0;i--){let r=e[i];r.hostVars=n+=r.hostVars,r.hostAttrs=ro(r.hostAttrs,t=ro(t,r.hostAttrs))}}function Kp(e){return e===on?{}:e===bt?[]:e}function TM(e,n){let t=e.viewQuery;t?e.viewQuery=(i,r)=>{n(i,r),t(i,r)}:e.viewQuery=n}function AM(e,n){let t=e.contentQueries;t?e.contentQueries=(i,r,o)=>{n(i,r,o),t(i,r,o)}:e.contentQueries=n}function kM(e,n){let t=e.hostBindings;t?e.hostBindings=(i,r)=>{n(i,r),t(i,r)}:e.hostBindings=n}function Vm(e){let n=t=>{let i=Array.isArray(e);t.hostDirectives===null?(t.resolveHostDirectives=OM,t.hostDirectives=i?e.map(Of):[e]):i?t.hostDirectives.unshift(...e.map(Of)):t.hostDirectives.unshift(e)};return n.ngInherit=!0,n}function OM(e){let n=[],t=!1,i=null,r=null;for(let o=0;o<e.length;o++){let s=e[o];if(s.hostDirectives!==null){let a=n.length;i??=new Map,r??=new Map,mw(s,n,i),r.set(s,[a,n.length-1])}o===0&&cn(s)&&(t=!0,n.push(s))}for(let o=t?1:0;o<e.length;o++)n.push(e[o]);return[n,i,r]}function mw(e,n,t){if(e.hostDirectives!==null)for(let i of e.hostDirectives)if(typeof i=="function"){let r=i();for(let o of r)Ly(Of(o),n,t)}else Ly(i,n,t)}function Ly(e,n,t){let i=cs(e.directive);NM(i.declaredInputs,e.inputs),mw(i,n,t),t.set(i,e),n.push(i)}function Of(e){return typeof e=="function"?{directive:Ze(e),inputs:on,outputs:on}:{directive:Ze(e.directive),inputs:jy(e.inputs),outputs:jy(e.outputs)}}function jy(e){if(e===void 0||e.length===0)return on;let n={};for(let t=0;t<e.length;t+=2)n[e[t]]=e[t+1];return n}function NM(e,n){for(let t in n)if(n.hasOwnProperty(t)){let i=n[t],r=e[t];e[i]=r}}function hw(e,n,t,i,r,o,s,a){if(t.firstCreatePass){e.mergedAttrs=ro(e.mergedAttrs,e.attrs);let m=e.tView=gm(2,e,r,o,s,t.directiveRegistry,t.pipeRegistry,null,t.schemas,t.consts,null);t.queries!==null&&(t.queries.template(t,e),m.queries=t.queries.embeddedTView(e))}a&&(e.flags|=a),nr(e,!1);let c=gw(t,n,e,i);jc()&&_m(t,n,c,e),oo(c,n);let d=$b(c,n,c,e);n[i+de]=d,ym(n,d),cM(d,e,n)}function RM(e,n,t,i,r,o,s,a,c,d,m){let h=t+de,w;return n.firstCreatePass?(w=mr(n,h,4,s||null,a||null),kc()&&ew(n,e,w,Qt(n.consts,d),Cm),a0(n,w)):w=n.data[h],hw(w,e,n,t,i,r,o,c),Qr(w)&&kl(n,e,w),d!=null&&Fs(e,w,m),w}function Is(e,n,t,i,r,o,s,a,c,d,m){let h=t+de,w;if(n.firstCreatePass){if(w=mr(n,h,4,s||null,a||null),d!=null){let g=Qt(n.consts,d);w.localNames=[];for(let x=0;x<g.length;x+=2)w.localNames.push(g[x],-1)}}else w=n.data[h];return hw(w,e,n,t,i,r,o,c),d!=null&&Fs(e,w,m),w}function Ee(e,n,t,i,r,o,s,a){let c=G(),d=Ie(),m=Qt(d.consts,o);
7return RM(c,d,e,n,t,i,r,m,void 0,s,a),Ee}var gw=vw;function vw(e,n,t,i){return qn(!0),n[me].createComment("")}function PM(e,n,t,i){let r=!Dl(n,t);qn(r);let o=n[Et]?.data[A0]?.[i]??null;if(o!==null&&t.tView!==null&&t.tView.ssrId===null&&(t.tView.ssrId=o),r)return vw(e,n);let s=n[Et],a=Rl(s,e,n,t);xl(s,i,a);let c=im(s,i);return Pl(c,a)}function yw(){gw=PM}var Ft=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}(Ft||{}),Vy=0,FM=1,We=function(e){return e[e.Placeholder=0]="Placeholder",e[e.Loading=1]="Loading",e[e.Complete=2]="Complete",e[e.Error=3]="Error",e}(We||{});var LM=0,js=1;var jM=4,VM=5;var BM=7,io=8,UM=9,Bm=function(e){return e[e.Manual=0]="Manual",e[e.Playthrough=1]="Playthrough",e}(Bm||{});function Jc(e,n){let t=HM(e),i=n[t];if(i!==null){for(let r of i)r();n[t]=null}}function $M(e){Jc(1,e),Jc(0,e),Jc(2,e)}function HM(e){let n=jM;return e===1?n=VM:e===2&&(n=UM),n}var Ul=function(e){return e[e.CHANGE_DETECTION=0]="CHANGE_DETECTION",e[e.AFTER_NEXT_RENDER=1]="AFTER_NEXT_RENDER",e}(Ul||{}),hr=new P(""),bw=!1,Nf=class extends ke{__isAsync;destroyRef=void 0;pendingTasks=void 0;constructor(n=!1){super(),this.__isAsync=n,jv()&&(this.destroyRef=y(ht,{optional:!0})??void 0,this.pendingTasks=y(En,{optional:!0})??void 0)}emit(n){let t=J(null);try{super.next(n)}finally{J(t)}}subscribe(n,t,i){let r=n,o=t||(()=>null),s=i;if(n&&typeof n=="object"){let c=n;r=c.next?.bind(c),o=c.error?.bind(c),s=c.complete?.bind(c)}this.__isAsync&&(o=this.wrapInTimeout(o),r&&(r=this.wrapInTimeout(r)),s&&(s=this.wrapInTimeout(s)));let a=super.subscribe({next:r,error:o,complete:s});return n instanceof Ge&&n.add(a),a}wrapInTimeout(n){return t=>{let i=this.pendingTasks?.add();setTimeout(()=>{try{n(t)}finally{i!==void 0&&this.pendingTasks?.remove(i)}})}}},_e=Nf;function ww(e){let n,t;function i(){e=rr;try{t!==void 0&&typeof cancelAnimationFrame=="function"&&cancelAnimationFrame(t),n!==void 0&&clearTimeout(n)}catch{}}return n=setTimeout(()=>{e(),i()}),typeof requestAnimationFrame=="function"&&(t=requestAnimationFrame(()=>{e(),i()})),()=>i()}function By(e){return queueMicrotask(()=>e()),()=>{e=rr}}var Um="isAngularZone",fl=Um+"_ID",zM=0,Oe=class e{hasPendingMacrotasks=!1;hasPendingMicrotasks=!1;isStable=!0;onUnstable=new _e(!1);onMicrotaskEmpty=new _e(!1);onStable=new _e(!1);onError=new _e(!1);constructor(n){let{enableLongStackTrace:t=!1,shouldCoalesceEventChangeDetection:i=!1,shouldCoalesceRunChangeDetection:r=!1,scheduleInRootZone:o=bw}=n;if(typeof Zone>"u")throw new M(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)),t&&Zone.longStackTraceZoneSpec&&(s._inner=s._inner.fork(Zone.longStackTraceZoneSpec)),s.shouldCoalesceEventChangeDetection=!r&&i,s.shouldCoalesceRunChangeDetection=r,s.callbackScheduled=!1,s.scheduleInRootZone=o,qM(s)}static isInAngularZone(){return typeof Zone<"u"&&Zone.current.get(Um)===!0}static assertInAngularZone(){if(!e.isInAngularZone())throw new M(909,!1)}static assertNotInAngularZone(){if(e.isInAngularZone())throw new M(909,!1)}run(n,t,i){return this._inner.run(n,t,i)}runTask(n,t,i,r){let o=this._inner,s=o.scheduleEventTask("NgZoneEvent: "+r,n,GM,rr,rr);try{return o.runTask(s,t,i)}finally{o.cancelTask(s)}}runGuarded(n,t,i){return this._inner.runGuarded(n,t,i)}runOutsideAngular(n){return this._outer.run(n)}},GM={};function $m(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 WM(e){if(e.isCheckStableRunning||e.callbackScheduled)return;e.callbackScheduled=!0;function n(){ww(()=>{e.callbackScheduled=!1,Rf(e),e.isCheckStableRunning=!0,$m(e),e.isCheckStableRunning=!1})}e.scheduleInRootZone?Zone.root.run(()=>{n()}):e._outer.run(()=>{n()}),Rf(e)}function qM(e){let n=()=>{WM(e)},t=zM++;e._inner=e._inner.fork({name:"angular",properties:{[Um]:!0,[fl]:t,[fl+t]:!0},onInvokeTask:(i,r,o,s,a,c)=>{if(YM(c))return i.invokeTask(o,s,a,c);try{return Uy(e),i.invokeTask(o,s,a,c)}finally{(e.shouldCoalesceEventChangeDetection&&s.type==="eventTask"||e.shouldCoalesceRunChangeDetection)&&n(),$y(e)}},onInvoke:(i,r,o,s,a,c,d)=>{try{return Uy(e),i.invoke(o,s,a,c,d)}
7finally{e.shouldCoalesceRunChangeDetection&&!e.callbackScheduled&&!ZM(c)&&n(),$y(e)}},onHasTask:(i,r,o,s)=>{i.hasTask(o,s),r===o&&(s.change=="microTask"?(e._hasPendingMicrotasks=s.microTask,Rf(e),$m(e)):s.change=="macroTask"&&(e.hasPendingMacrotasks=s.macroTask))},onHandleError:(i,r,o,s)=>(i.handleError(o,s),e.runOutsideAngular(()=>e.onError.emit(s)),!1)})}function Rf(e){e._hasPendingMicrotasks||(e.shouldCoalesceEventChangeDetection||e.shouldCoalesceRunChangeDetection)&&e.callbackScheduled===!0?e.hasPendingMicrotasks=!0:e.hasPendingMicrotasks=!1}function Uy(e){e._nesting++,e.isStable&&(e.isStable=!1,e.onUnstable.emit(null))}function $y(e){e._nesting--,$m(e)}var Ms=class{hasPendingMicrotasks=!1;hasPendingMacrotasks=!1;isStable=!0;onUnstable=new _e;onMicrotaskEmpty=new _e;onStable=new _e;onError=new _e;run(n,t,i){return n.apply(t,i)}runGuarded(n,t,i){return n.apply(t,i)}runOutsideAngular(n){return n()}runTask(n,t,i,r){return n.apply(t,i)}};function YM(e){return _w(e,"__ignore_ng_zone__")}function ZM(e){return _w(e,"__scheduler_tick__")}function _w(e,n){return!Array.isArray(e)||e.length!==1?!1:e[0]?.data?.[n]===!0}var Hm=(()=>{class e{impl=null;execute(){this.impl?.execute()}static \u0275prov=A({token:e,providedIn:"root",factory:()=>new e})}return e})(),Ew=[0,1,2,3],Cw=(()=>{class e{ngZone=y(Oe);scheduler=y(zt);errorHandler=y(Ht,{optional:!0});sequences=new Set;deferredRegistrations=new Set;executing=!1;constructor(){y(hr,{optional:!0})}execute(){let t=this.sequences.size>0;t&&ge(16),this.executing=!0;for(let i of Ew)for(let r of this.sequences)if(!(r.erroredOrDestroyed||!r.hooks[i]))try{r.pipelinedValue=this.ngZone.runOutsideAngular(()=>this.maybeTrace(()=>{let o=r.hooks[i];return o(r.pipelinedValue)},r.snapshot))}catch(o){r.erroredOrDestroyed=!0,this.errorHandler?.handleError(o)}this.executing=!1;for(let i of this.sequences)i.afterRun(),i.once&&(this.sequences.delete(i),i.destroy());for(let i of this.deferredRegistrations)this.sequences.add(i);this.deferredRegistrations.size>0&&this.scheduler.notify(7),this.deferredRegistrations.clear(),t&&ge(17)}register(t){let{view:i}=t;i!==void 0?((i[Ji]??=[]).push(t),yi(i),i[X]|=8192):this.executing?this.deferredRegistrations.add(t):this.addSequence(t)}addSequence(t){this.sequences.add(t),this.scheduler.notify(7)}unregister(t){this.executing&&this.sequences.has(t)?(t.erroredOrDestroyed=!0,t.pipelinedValue=void 0,t.once=!0):(this.sequences.delete(t),this.deferredRegistrations.delete(t))}maybeTrace(t,i){return i?i.run(Ul.AFTER_NEXT_RENDER,t):t()}static \u0275prov=A({token:e,providedIn:"root",factory:()=>new e})}return e})(),ml=class{impl;hooks;view;once;snapshot;erroredOrDestroyed=!1;pipelinedValue=void 0;unregisterOnDestroy;constructor(n,t,i,r,o,s=null){this.impl=n,this.hooks=t,this.view=i,this.once=r,this.snapshot=s,this.unregisterOnDestroy=o?.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 n=this.view?.[Ji];n&&(this.view[Ji]=n.filter(t=>t!==this))}};function $l(e,n){let t=n?.injector??y(lt);return At("NgAfterNextRender"),KM(e,t,n,!0)}function QM(e){return e instanceof Function?[void 0,void 0,e,void 0]:[e.earlyRead,e.write,e.mixedReadWrite,e.read]}function KM(e,n,t,i){let r=n.get(Hm);r.impl??=n.get(Cw);let o=n.get(hr,null,{optional:!0}),s=t?.manualCleanup!==!0?n.get(ht):null,a=n.get(Xr,null,{optional:!0}),c=new ml(r.impl,QM(e),a?.view,i,s,o?.snapshot(null));return r.impl.register(c),c}function xw(e){return e+1}function go(e,n){let t=e[B],i=xw(n.index);return e[i]}function Vs(e,n){let t=xw(n.index);return e.data[t]}function JM(e,n,t){let i=n[B],r=Vs(i,t);switch(e){case We.Complete:return r.primaryTmplIndex;case We.Loading:return r.loadingTmplIndex;case We.Error:return r.errorTmplIndex;case We.Placeholder:return r.placeholderTmplIndex;default:return null}}function Hy(e,n){return n===We.Placeholder?e.placeholderBlockConfig?.[Vy]??null:n===We.Loading?e.loadingBlockConfig?.[Vy]??null:null}function XM(e){return e.loadingBlockConfig?.[FM]??null}function zy(e,n){if(!e||e.length===0)return n;let t=new Set(e);for(let i of n)t.add(i);return e.length===t.size?e:Array.from(t)}function eT(e,n){let t=n.primaryTmplIndex+de;return tr(e,t)}var tT=(()=>{class e{cachedInjectors=new Map;getOrCreateInjector(t,i,r,o){if(!this.cachedInjectors.has(t)){let s=r.length>0?ho(r,i,o):null;this.cachedInjectors.set(t,s)}return this.cachedInjectors.get(t)}ngOnDestroy(){try{for(let t of this.cachedInjectors.values())t!==null&&t.destroy()}finally{this.cachedInjectors.clear()}}static \u0275prov=A({token:e,providedIn:"environment",factory:()=>new e})}return e})();var Dw=new P("");function Jp(e,n,t){return e.get(tT).getOrCreateInjector(n,e,t,"")}function nT(e,n,t){if(e instanceof no){let r=e.injector,o=e.parentInjector,s=Jp(o,n,t);return new no(r,s)}let i=e.get($e);if(i!==e){let r=Jp(i,n,t);return new no(e,r)}return Jp(e,n,t)}function or(e,n,t,i=!1){let r=t[He],o=r[B];if(vi(r))return;let s=go(r,n),a=s[js],c=s[BM];if(!(c!==null&&e<c)&&Gy(a,e)&&Gy(s[LM]??-1,e)){let d=Vs(o,n),h=!i&&!0&&(XM(d)!==null||Hy(d,We.Loading)!==null||Hy(d,We.Placeholder))?oT:rT;try{h(e,s,t,n,r)}catch(w){Sm(r,w)}}}function iT(e,n){let t=e[an]?.findIndex(r=>r.data[R0]===n[js])??-1;return{dehydratedView:t>-1?e[an][t]:null,dehydratedViewIx:t}}function rT(e,n,t,i,r){ge(20);let o=JM(e,r,i);if(o!==null){n[js]=e;let s=r[B],a=o+de,c=tr(s,a),d=0;Am(t,d);let m;if(e===We.Complete){let x=Vs(s,i),R=x.providers;R&&R.length>0&&(m=nT(r[sn],x,R))}let{dehydratedView:h,dehydratedViewIx:w}=iT(t,n),g=fo(r,c,null,{injector:m,dehydratedView:h});if(mo(t,g,d,cr(c,h)),Ol(g,2),w>-1&&t[an]?.splice(w,1),(e===We.Complete||e===We.Error)&&Array.isArray(n[io])){for(let x of n[io])x();n[io]=null}}ge(21)}function Gy(e,n){return e<n}function Wy(e,n,t){e.loadingPromise.then(()=>{e.loadingState===Ft.COMPLETE?or(We.Complete,n,t):e.loadingState===Ft.FAILED&&or(We.Error,n,t)}
vendor: 1,293 bytes, line 7
7)}var oT=null;var Hl=(()=>{class e{log(t){console.log(t)}warn(t){console.warn(t)}static \u0275fac=function(i){return new(i||e)};static \u0275prov=A({token:e,factory:e.\u0275fac,providedIn:"platform"})}return e})();var zm=new P("");function Xn(e){return!!e&&typeof e.then=="function"}function zl(e){return!!e&&typeof e.subscribe=="function"}var Sw=new P("");var Gm=(()=>{class e{resolve;reject;initialized=!1;done=!1;donePromise=new Promise((t,i)=>{this.resolve=t,this.reject=i});appInits=y(Sw,{optional:!0})??[];injector=y(lt);constructor(){}runInitializers(){if(this.initialized)return;let t=[];for(let r of this.appInits){let o=ut(this.injector,r);if(Xn(o))t.push(o);else if(zl(o)){let s=new Promise((a,c)=>{o.subscribe({complete:a,error:c})});t.push(s)}}let i=()=>{this.done=!0,this.resolve()};Promise.all(t).then(()=>{i()}).catch(r=>{this.reject(r)}),t.length===0&&i(),this.initialized=!0}static \u0275fac=function(i){return new(i||e)};static \u0275prov=A({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})(),Ei=new P("");function Iw(){Cd(()=>{let e="";throw new M(600,e)})}function Mw(e){return e.isBoundToModule}var sT=10;var Ct=(()=>{class e{_runningTick=!1;_destroyed=!1;_destroyListeners=[];_views=[];internalErrorHandler=y(gt);afterRenderManager=y(Hm);zonelessEnabled=y(Jr);
7rootEffectScheduler=y(ys);dirtyFlags=0;tracingSnapshot=null;allTestViews=new Set;autoDetectTestViews=new Set;includeAllTestViews=!1;afterTick=new ke;get allViews(){return[...(this.includeAllTestViews?this.allTestViews:this.autoDetectTestViews).keys(),...this._views]}get destroyed(){return this._destroyed}componentTypes=[];components=[];internalPendingTask=y(En);get isStable(){return this.internalPendingTask.hasPendingTasksObservable.pipe(Q(t=>!t))}constructor(){y(hr,{optional:!0})}whenStable(){let t;return new Promise(i=>{t=this.isStable.subscribe({next:r=>{r&&i()}})}).finally(()=>{t.unsubscribe()})}_injector=y($e);_rendererFactory=null;get injector(){return this._injector}bootstrap(t,i){return this.bootstrapImpl(t,i)}bootstrapImpl(t,i,r=lt.NULL){return this._injector.get(Oe).run(()=>{ge(10);let s=t instanceof jl;if(!this._injector.get(Gm).done){let x="";throw new M(405,x)}let c;s?c=t:c=this._injector.get(Ls).resolveComponentFactory(t),this.componentTypes.push(c.componentType);let d=Mw(c)?void 0:this._injector.get(ur),m=i||c.selector,h=c.create(r,[],m,d),w=h.location.nativeElement,g=h.injector.get(zm,null);return g?.registerApplication(w),h.onDestroy(()=>{this.detachView(h.hostView),ws(this.components,h),g?.unregisterApplication(w)}),this._loadComponent(h),ge(11,h),h})}tick(){this.zonelessEnabled||(this.dirtyFlags|=1),this._tick()}_tick(){ge(12),this.tracingSnapshot!==null?this.tracingSnapshot.run(Ul.CHANGE_DETECTION,this.tickImpl):this.tickImpl()}tickImpl=()=>{if(this._runningTick)throw new M(101,!1);let t=J(null);try{this._runningTick=!0,this.synchronize()}finally{this._runningTick=!1,this.tracingSnapshot?.dispose(),this.tracingSnapshot=null,J(t),this.afterTick.next(),ge(13)}};synchronize(){this._rendererFactory===null&&!this._injector.destroyed&&(this._rendererFactory=this._injector.get(lr,null,{optional:!0}));let t=0;for(;this.dirtyFlags!==0&&t++<sT;)ge(14),this.synchronizeOnce(),ge(15)}synchronizeOnce(){this.dirtyFlags&16&&(this.dirtyFlags&=-17,this.rootEffectScheduler.flush());let t=!1;if(this.dirtyFlags&7){let i=!!(this.dirtyFlags&1);this.dirtyFlags&=-8,this.dirtyFlags|=8;for(let{_lView:r}of this.allViews){if(!i&&!ms(r))continue;let o=i&&!this.zonelessEnabled?0:1;Tm(r,o),t=!0}if(this.dirtyFlags&=-5,this.syncDirtyFlagsWithViews(),this.dirtyFlags&23)return}t||(this._rendererFactory?.begin?.(),this._rendererFactory?.end?.()),this.dirtyFlags&8&&(this.dirtyFlags&=-9,this.afterRenderManager.execute()),this.syncDirtyFlagsWithViews()}syncDirtyFlagsWithViews(){if(this.allViews.some(({_lView:t})=>ms(t))){this.dirtyFlags|=2;return}else this.dirtyFlags&=-8}attachView(t){let i=t;this._views.push(i),i.attachToAppRef(this)}detachView(t){let i=t;ws(this._views,i),i.detachFromAppRef()}_loadComponent(t){this.attachView(t.hostView);try{this.tick()}catch(r){this.internalErrorHandler(r)}this.components.push(t),this._injector.get(Ei,[]).forEach(r=>r(t))}ngOnDestroy(){if(!this._destroyed)try{this._destroyListeners.forEach(t=>t()),this._views.slice().forEach(t=>t.destroy())}finally{this._destroyed=!0,this._views=[],this._destroyListeners=[]}}onDestroy(t){return this._destroyListeners.push(t),()=>ws(this._destroyListeners,t)}destroy(){if(this._destroyed)throw new M(406,!1);let t=this._injector;t.destroy&&!t.destroyed&&t.destroy()}get viewCount(){return this._views.length}static \u0275fac=function(i){return new(i||e)};static \u0275prov=A({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();function ws(e,n){let t=e.indexOf(n);t>-1&&e.splice(t,1)}function Tw(e,n,t){let i=n[sn],r=n[B];if(e.loadingState!==Ft.NOT_STARTED)return e.loadingPromise??Promise.resolve();let o=go(n,t),s=eT(r,e);e.loadingState=Ft.IN_PROGRESS,Jc(1,o);let a=e.dependencyResolverFn,c=i.get(ir).add();return a?(e.loadingPromise=Promise.allSettled(a()).then(d=>{let m=!1,h=[],w=[];for(let g of d)if(g.status==="fulfilled"){let x=g.value,R=Hn(x)||cs(x);if(R)h.push(R);else{let k=mp(x);k&&w.push(k)}}else{m=!0;break}if(m){if(e.loadingState=Ft.FAILED,e.errorTmplIndex===null){let g="",x=new M(-750,!1);Sm(n,x)}}else{e.loadingState=Ft.COMPLETE;let g=s.tView;if(h.length>0){g.directiveRegistry=zy(g.directiveRegistry,h);let x=h.map(k=>k.type),R=Sc(!1,...x);e.providers=R}w.length>0&&(g.pipeRegistry=zy(g.pipeRegistry,w))}}),e.loadingPromise.finally(()=>{e.loadingPromise=null,c()})):(e.loadingPromise=Promise.resolve().then(()=>{e.loadingPromise=null,e.loadingState=Ft.COMPLETE,c()}),e.loadingPromise)}function aT(e,n){return n[sn].get(Dw,null,{optional:!0})?.behavior!==Bm.Manual}function cT(e,n,t){let i=n[B],r=n[t.index];if(!aT(e,n))return;let o=go(n,t),s=Vs(i,t);switch($M(o),s.loadingState){case Ft.NOT_STARTED:or(We.Loading,t,r),Tw(s,n,t),s.loadingState===Ft.IN_PROGRESS&&Wy(s,t,r);break;case Ft.IN_PROGRESS:or(We.Loading,t,r),Wy(s,t,r);break;case Ft.COMPLETE:or(We.Complete,t,r);break;case Ft.FAILED:or(We.Error,t,r);break;default:}}async function Aw(e,n,t){let i=e.get(Cl);if(i.hydrating.has(n))return;let{parentBlockPromise:o,hydrationQueue:s}=WS(n,e);if(s.length===0)return;o!==null&&s.shift(),dT(i,s),o!==null&&await o;let a=s[0];i.has(a)?await qy(e,s,t):i.awaitParentBlock(a,async()=>await qy(e,s,t))}async function qy(e,n,t){let i=e.get(Cl),r=i.hydrating,o=e.get(En),s=o.add();for(let c=0;c<n.length;c++){let d=n[c],m=i.get(d);if(m!=null){if(await fT(m),await pT(e),lT(m)){O1(m),Yy(n.slice(c),i);break}r.get(d).resolve()}else{uT(c,n,i),Yy(n.slice(c),i);break}}let a=n[n.length-1];await r.get(a)?.promise,o.remove(s),t&&t(n),N1(i.get(a),n,i,e.get(Ct))}function lT(e){return go(e.lView,e.tNode)[js]===We.Error}function uT(e,n,t){let i=e-1,r=i>-1?t.get(n[i]):null;r&&Ll(r.lContainer)}function Yy(e,n){let t=n.hydrating;for(let i in e)t.get(i)?.reject();n.cleanup(e)}function dT(e,n){for(let t of n)e.hydrating.set(t,Promise.withResolvers())}function pT(e){return new Promise(n=>$l(n,{injector:e}))}async function fT(e){let{tNode:n,lView:t}=e,i=go(t,n);return new Promise(r=>{mT(i,r),cT(2,t,n)})}
vendor: 4,156 bytes, line 7
7function mT(e,n){Array.isArray(e[io])||(e[io]=[]),e[io].push(n)}function fn(e,n,t,i){let r=G(),o=Wn();if(Lt(r,o,n)){let s=Ie(),a=vs();XI(a,r,e,n,t,i)}return fn}var Pf=class{destroy(n){}updateValue(n,t){}swap(n,t){let i=Math.min(n,t),r=Math.max(n,t),o=this.detach(r);if(r-i>1){let s=this.detach(i);this.attach(i,o),this.attach(r,s)}else this.attach(i,o)}move(n,t){this.attach(t,this.detach(n))}};function Xp(e,n,t,i,r){return e===t&&Object.is(n,i)?1:Object.is(r(e,n),r(t,i))?-1:0}function hT(e,n,t){let i,r,o=0,s=e.length-1,a=void 0;if(Array.isArray(n)){let c=n.length-1;for(;o<=s&&o<=c;){let d=e.at(o),m=n[o],h=Xp(o,d,o,m,t);if(h!==0){h<0&&e.updateValue(o,m),o++;continue}let w=e.at(s),g=n[c],x=Xp(s,w,c,g,t);if(x!==0){x<0&&e.updateValue(s,g),s--,c--;continue}let R=t(o,d),k=t(s,w),N=t(o,m);if(Object.is(N,k)){let we=t(c,g);Object.is(we,R)?(e.swap(o,s),e.updateValue(s,g),c--,s--):e.move(s,o),e.updateValue(o,m),o++;continue}if(i??=new hl,r??=Qy(e,o,s,t),Ff(e,i,o,N))e.updateValue(o,m),o++,s++;else if(r.has(N))i.set(R,e.detach(o)),s--;else{let we=e.create(o,n[o]);e.attach(o,we),o++,s++}}for(;o<=c;)Zy(e,i,t,o,n[o]),o++}else if(n!=null){let c=n[Symbol.iterator](),d=c.next();for(;!d.done&&o<=s;){let m=e.at(o),h=d.value,w=Xp(o,m,o,h,t);if(w!==0)w<0&&e.updateValue(o,h),o++,d=c.next();else{i??=new hl,r??=Qy(e,o,s,t);let g=t(o,h);if(Ff(e,i,o,g))e.updateValue(o,h),o++,s++,d=c.next();else if(!r.has(g))e.attach(o,e.create(o,h)),o++,s++,d=c.next();else{let x=t(o,m);i.set(x,e.detach(o)),s--}}}for(;!d.done;)Zy(e,i,t,e.length,d.value),d=c.next()}for(;o<=s;)e.destroy(e.detach(s--));i?.forEach(c=>{e.destroy(c)})}function Ff(e,n,t,i){return n!==void 0&&n.has(i)?(e.attach(t,n.get(i)),n.delete(i),!0):!1}function Zy(e,n,t,i,r){if(Ff(e,n,i,t(i,r)))e.updateValue(i,r);else{let o=e.create(i,r);e.attach(i,o)}}function Qy(e,n,t,i){let r=new Set;for(let o=n;o<=t;o++)r.add(i(o,e.at(o)));return r}var hl=class{kvMap=new Map;_vMap=void 0;has(n){return this.kvMap.has(n)}delete(n){if(!this.has(n))return!1;let t=this.kvMap.get(n);return this._vMap!==void 0&&this._vMap.has(t)?(this.kvMap.set(n,this._vMap.get(t)),this._vMap.delete(t)):this.kvMap.delete(n),!0}get(n){return this.kvMap.get(n)}set(n,t){if(this.kvMap.has(n)){let i=this.kvMap.get(n);this._vMap===void 0&&(this._vMap=new Map);let r=this._vMap;for(;r.has(i);)i=r.get(i);r.set(i,t)}else this.kvMap.set(n,t)}forEach(n){for(let[t,i]of this.kvMap)if(n(i,t),this._vMap!==void 0){let r=this._vMap;for(;r.has(i);)i=r.get(i),n(i,t)}}};function j(e,n,t,i,r,o,s,a){At("NgControlFlow");let c=G(),d=Ie(),m=Qt(d.consts,o);return Is(c,d,e,n,t,i,r,m,256,s,a),Wm}function Wm(e,n,t,i,r,o,s,a){At("NgControlFlow");let c=G(),d=Ie(),m=Qt(d.consts,o);return Is(c,d,e,n,t,i,r,m,512,s,a),Wm}function V(e,n){At("NgControlFlow");let t=G(),i=Wn(),r=t[i]!==vt?t[i]:-1,o=r!==-1?gl(t,de+r):void 0,s=0;if(Lt(t,i,e)){let a=J(null);try{if(o!==void 0&&Am(o,s),e!==-1){let c=de+e,d=gl(t,c),m=Bf(t[B],c),h=Qb(d,m,t),w=fo(t,m,n,{dehydratedView:h});mo(d,w,s,cr(m,h))}}finally{J(a)}}else if(o!==void 0){let a=Hb(o,s);a!==void 0&&(a[ze]=n)}}var Lf=class{lContainer;$implicit;$index;constructor(n,t,i){this.lContainer=n,this.$implicit=t,this.$index=i}get $count(){return this.lContainer.length-Qe}};function te(e){return e}function qm(e,n){return n}var jf=class{hasEmptyBlock;trackByFn;liveCollection;constructor(n,t,i){this.hasEmptyBlock=n,this.trackByFn=t,this.liveCollection=i}};function H(e,n,t,i,r,o,s,a,c,d,m,h,w){At("NgControlFlow");let g=G(),x=Ie(),R=c!==void 0,k=G(),N=a?s.bind(k[dt][ze]):s,we=new jf(R,N);k[de+e]=we,Is(g,x,e+1,n,t,i,r,Qt(x.consts,o),256),R&&Is(g,x,e+2,c,d,m,h,Qt(x.consts,w),512)}var Vf=class extends Pf{lContainer;hostLView;templateTNode;operationsCounter=void 0;needsIndexUpdate=!1;constructor(n,t,i){super(),this.lContainer=n,this.hostLView=t,this.templateTNode=i}get length(){return this.lContainer.length-Qe}at(n){return this.getLView(n)[ze].$implicit}attach(n,t){let i=t[Et];this.needsIndexUpdate||=n!==this.length,mo(this.lContainer,t,n,cr(this.templateTNode,i))}detach(n){return this.needsIndexUpdate||=n!==this.length-1,gT(this.lContainer,n)}create(n,t){let i=Ds(this.lContainer,this.templateTNode.tView.ssrId),r
7=fo(this.hostLView,this.templateTNode,new Lf(this.lContainer,t,n),{dehydratedView:i});return this.operationsCounter?.recordCreate(),r}destroy(n){Tl(n[B],n),this.operationsCounter?.recordDestroy()}updateValue(n,t){this.getLView(n)[ze].$implicit=t}reset(){this.needsIndexUpdate=!1,this.operationsCounter?.reset()}updateIndexes(){if(this.needsIndexUpdate)for(let n=0;n<this.length;n++)this.getLView(n)[ze].$index=n}getLView(n){return vT(this.lContainer,n)}};function z(e){let n=J(null),t=ln();try{let i=G(),r=i[B],o=i[t],s=t+1,a=gl(i,s);if(o.liveCollection===void 0){let d=Bf(r,s);o.liveCollection=new Vf(a,i,d)}else o.liveCollection.reset();let c=o.liveCollection;if(hT(c,e,o.trackByFn),c.updateIndexes(),o.hasEmptyBlock){let d=Wn(),m=c.length===0;if(Lt(i,d,m)){let h=t+2,w=gl(i,h);if(m){let g=Bf(r,h),x=Qb(w,g,i),R=fo(i,g,void 0,{dehydratedView:x});mo(w,R,0,cr(g,x))}else r.firstUpdatePass&&Fl(w),Am(w,0)}}}finally{J(n)}}function gl(e,n){return e[n]}function gT(e,n){return xs(e,n)}function vT(e,n){return Hb(e,n)}function Bf(e,n){return tr(e,n)}function b(e,n,t){let i=G(),r=Wn();if(Lt(i,r,n)){let o=Ie(),s=vs();kb(s,i,e,n,i[me],t)}return b}function Uf(e,n,t,i,r){Im(n,e,t,r?"class":"style",i)}function l(e,n,t,i){let r=G(),o=r[B],s=e+de,a=o.firstCreatePass?Om(s,r,2,n,Cm,kc(),t,i):o.data[s];if(xm(a,r,e,n,Ym),Qr(a)){let c=r[B];kl(c,r,a),rm(c,a,r)}return i!=null&&Fs(r,a),l}function u(){let e=Ie(),n=Ke(),t=Dm(n);return e.firstCreatePass&&Nm(e,t),Ip(t)&&Mp(),Sp(),t.classesWithoutHost!=null&&fS(t)&&Uf(e,t,G(),t.classesWithoutHost,!0),t.stylesWithoutHost!=null&&mS(t)&&Uf(e,t,G(),t.stylesWithoutHost,!1),u}function v(e,n,t,i){return l(e,n,t,i),u(),v}function F(e,n,t,i){let r=G(),o=r[B],s=e+de,a=o.firstCreatePass?Y1(s,o,2,n,t,i):o.data[s];return xm(a,r,e,n,Ym),i!=null&&Fs(r,a),F}function L(){let e=Ke(),n=Dm(e);return Ip(n)&&Mp(),Sp(),L}function Fe(e,n,t,i){return F(e,n,t,i),L(),Fe}var Ym=(e,n,t,i,r)=>(qn(!0),mm(n[me],i,jp()));function yT(e,n,t,i,r){let o=!Dl(n,t);if(qn(o),o)return mm(n[me],i,jp());let s=n[Et],a=Rl(s,e,n,t);return X0(s,r)&&xl(s,r,a.nextSibling),s&&(w0(t)||_0(a))&&Gn(t)&&(Zv(t),yb(a)),a}function kw(){Ym=yT}function Mn(e,n,t){let i=G(),r=i[B],o=e+de,s=r.firstCreatePass?Om(o,i,8,"ng-container",Cm,kc(),n,t):r.data[o];if(xm(s,i,e,"ng-container",Ow),Qr(s)){let a=i[B];kl(a,i,s),rm(a,s,i)}return t!=null&&Fs(i,s),Mn}function Tn(){let e=Ie(),n=Ke(),t=Dm(n);return e.firstCreatePass&&Nm(e,t),Tn}var Ow=(e,n,t,i,r)=>(qn(!0),gb(n[me],""));function bT(e,n,t,i,r){let o,s=!Dl(n,t);if(qn(s),s)return gb(n[me],"");let a=n[Et],c=Rl(a,e,n,t),d=zS(a,r);return xl(a,r,c),o=Pl(d,c),o}function Nw(){Ow=bT}function he(){return G()}function Ci(e,n,t){let i=G(),r=Wn();if(Lt(i,r,n)){let o=Ie(),s=vs();Ob(s,i,e,n,i[me],t)}return Ci}var Bs="en-US";var wT=Bs;function Rw(e){typeof e=="string"&&(wT=e.toLowerCase().replace(/_/g,"-"))}function S(e,n,t){let i=G(),r=Ie(),o=Ke();return Pw(r,i,i[me],o,e,n,t),S}function gr(e,n,t){let i=G(),r=Ie(),o=Ke();return(o.type&3||t)&&rw(o,r,i,t,i[me],e,n,Kc(o,i,n)),gr}function Pw(e,n,t,i,r,o,s){let a=!0,c=null;if((i.type&3||s)&&(c??=Kc(i,n,o),rw(i,e,n,s,t,r,o,c)&&(a=!1)),a){let d=i.outputs?.[r],m=i.hostDirectiveOutputs?.[r];if(m&&m.length)for(let h=0;h<m.length;h+=2){let w=m[h],g=m[h+1];c??=Kc(i,n,o),Oy(i,n,w,g,r,c)}if(d&&d.length)for(let h of d)c??=Kc(i,n,o),Oy(i,n,h,r,r,c)}}function E(e=1){return sy(e)}function _T(e,n){let t=null,i=wI(e);for(let r=0;r<n.length;r++){let o=n[r];if(o==="*"){t=r;continue}if(i===null?mb(e,o,!0):CI(i,o))return r}return t}function ei(e){let n=G()[dt][_t];if(!n.projection){let t=e?e.length:1,i=n.projection=kv(t,null),r=i.slice(),o=n.child;for(;o!==null;){if(o.type!==128){let s=e?_T(o,e):0;s!==null&&(r[s]?r[s].projectionNext=o:i[s]=o,r[s]=o)}o=o.next}}}function ti(e,n=0,t,i,r,o){let s=G(),a=Ie(),c=i?e+1:null;c!==null&&Is(s,a,c,i,r,o,null,t);let d=mr(a,de+e,16,null,t||null);d.projection===null&&(d.projection=n),kp();let h=!s[Et]||Oc();s[dt][_t].projection[d.projection]===null&&c!==null?ET(s,a,c):h&&!Ns(d)&&$I(a,s,d)}function ET(e,n,t){let i=de+t,r=n.data[i],o=e[i],s=Ds(o,r.tView.ssrId),a=fo(e,r,void 0,{dehydratedView:s});
vendor: 15,580 bytes, line 7
7mo(o,a,0,cr(r,s))}function An(e,n,t){vM(e,n,t)}function mn(e){let n=G(),t=Ie(),i=Pp();Pc(i+1);let r=Lm(t,i);if(e.dirty&&$v(n)===((r.metadata.flags&2)===2)){if(r.matches===null)e.reset([]);else{let o=wM(n,i);e.reset(o,IS),e.notifyOnChanges()}return!0}return!1}function hn(){return hM(G(),Pp())}function Zm(e){let n=Op();return Mc(n,de+e)}function Gc(e,n){return e<<17|n<<2}function dr(e){return e>>17&32767}function CT(e){return(e&2)==2}function xT(e,n){return e&131071|n<<17}function $f(e){return e|2}function ao(e){return(e&131068)>>2}function ef(e,n){return e&-131069|n<<2}function DT(e){return(e&1)===1}function Hf(e){return e|1}function ST(e,n,t,i,r,o){let s=o?n.classBindings:n.styleBindings,a=dr(s),c=ao(s);e[i]=t;let d=!1,m;if(Array.isArray(t)){let h=t;m=h[1],(m===null||qr(h,m)>0)&&(d=!0)}else m=t;if(r)if(c!==0){let w=dr(e[a+1]);e[i+1]=Gc(w,a),w!==0&&(e[w+1]=ef(e[w+1],i)),e[a+1]=xT(e[a+1],i)}else e[i+1]=Gc(a,0),a!==0&&(e[a+1]=ef(e[a+1],i)),a=i;else e[i+1]=Gc(c,0),a===0?a=i:e[c+1]=ef(e[c+1],i),c=i;d&&(e[i+1]=$f(e[i+1])),Ky(e,m,i,!0),Ky(e,m,i,!1),IT(n,m,e,i,o),s=Gc(a,c),o?n.classBindings=s:n.styleBindings=s}function IT(e,n,t,i,r){let o=r?e.residualClasses:e.residualStyles;o!=null&&typeof n=="string"&&qr(o,n)>=0&&(t[i+1]=Hf(t[i+1]))}function Ky(e,n,t,i){let r=e[t+1],o=n===null,s=i?dr(r):ao(r),a=!1;for(;s!==0&&(a===!1||o);){let c=e[s],d=e[s+1];MT(c,n)&&(a=!0,e[s+1]=i?Hf(d):$f(d)),s=i?dr(d):ao(d)}a&&(e[t+1]=i?$f(r):Hf(r))}function MT(e,n){return e===null||n==null||(Array.isArray(e)?e[1]:e)===n?!0:Array.isArray(e)&&typeof n=="string"?qr(e,n)>=0:!1}var Je={textEnd:0,key:0,keyEnd:0,value:0,valueEnd:0};function Fw(e){return e.substring(Je.key,Je.keyEnd)}function TT(e){return e.substring(Je.value,Je.valueEnd)}function AT(e){return Vw(e),Lw(e,co(e,0,Je.textEnd))}function Lw(e,n){let t=Je.textEnd;return t===n?-1:(n=Je.keyEnd=OT(e,Je.key=n,t),co(e,n,t))}function kT(e){return Vw(e),jw(e,co(e,0,Je.textEnd))}function jw(e,n){let t=Je.textEnd,i=Je.key=co(e,n,t);return t===i?-1:(i=Je.keyEnd=NT(e,i,t),i=Jy(e,i,t,58),i=Je.value=co(e,i,t),i=Je.valueEnd=RT(e,i,t),Jy(e,i,t,59))}function Vw(e){Je.key=0,Je.keyEnd=0,Je.value=0,Je.valueEnd=0,Je.textEnd=e.length}function co(e,n,t){for(;n<t&&e.charCodeAt(n)<=32;)n++;return n}function OT(e,n,t){for(;n<t&&e.charCodeAt(n)>32;)n++;return n}function NT(e,n,t){let i;for(;n<t&&((i=e.charCodeAt(n))===45||i===95||(i&-33)>=65&&(i&-33)<=90||i>=48&&i<=57);)n++;return n}function Jy(e,n,t,i){return n=co(e,n,t),n<t&&n++,n}function RT(e,n,t){let i=-1,r=-1,o=-1,s=n,a=s;for(;s<t;){let c=e.charCodeAt(s++);if(c===59)return a;c===34||c===39?a=s=Xy(e,c,s,t):n===s-4&&o===85&&r===82&&i===76&&c===40?a=s=Xy(e,41,s,t):c>32&&(a=s),o=r,r=i,i=c&-33}return a}function Xy(e,n,t,i){let r=-1,o=t;for(;o<i;){let s=e.charCodeAt(o++);if(s==n&&r!==92)return o;s==92&&r===92?r=0:r=s}throw new Error}function xt(e,n,t){return Bw(e,n,t,!1),xt}function ce(e,n){return Bw(e,n,null,!0),ce}function Qm(e){Uw(zw,PT,e,!1)}function PT(e,n){for(let t=kT(n);t>=0;t=jw(n,t))zw(e,Fw(n),TT(n))}function Km(e){Uw($T,FT,e,!0)}function FT(e,n){for(let t=AT(n);t>=0;t=Lw(n,t))as(e,Fw(n),!0)}function Bw(e,n,t,i){let r=G(),o=Ie(),s=Nc(2);if(o.firstUpdatePass&&Hw(o,e,s,i),n!==vt&&Lt(r,s,n)){let a=o.data[ln()];Gw(o,a,r,r[me],e,r[s+1]=zT(n,t),i,s)}}function Uw(e,n,t,i){let r=Ie(),o=Nc(2);r.firstUpdatePass&&Hw(r,null,o,i);let s=G();if(t!==vt&&Lt(s,o,t)){let a=r.data[ln()];if(Ww(a,i)&&!$w(r,o)){let c=i?a.classesWithoutHost:a.stylesWithoutHost;c!==null&&(t=_c(c,t||"")),Uf(r,a,s,t,i)}else HT(r,a,s,s[me],s[o+1],s[o+1]=UT(e,n,t),i,o)}}function $w(e,n){return n>=e.expandoStartIndex}function Hw(e,n,t,i){let r=e.data;if(r[t+1]===null){let o=r[ln()],s=$w(e,t);Ww(o,i)&&n===null&&!s&&(n=!1),n=LT(r,o,n,i),ST(r,o,n,t,s,i)}}function LT(e,n,t,i){let r=ny(e),o=i?n.residualClasses:n.residualStyles;if(r===null)(i?n.classBindings:n.styleBindings)===0&&(t=tf(null,e,n,t,i),t=Ts(t,n.attrs,i),o=null);else{let s=n.directiveStylingLast;if(s===-1||e[s]!==r)if(t=tf(r,e,n,t,i),o===null){let c=jT(e,n,i);c!==void 0&&Array.isArray(c)&&(c=tf(null,e,n,c[1],i),c=Ts(c,n.attrs,i),VT(e,n,i,c))}else o=BT(e,n,i)}return o!==void 0&&(i?n.residualClasses=o:n.residualStyles=o),t}function jT(e,n,t){let i=t?n.classBindings:n.styleBindings;if(ao(i)!==0)return e[dr(i)]}function VT(e,n,t,i){let r=t?n.classBindings:n.styleBindings;e[dr(r)]=i}function BT(e,n,t){let i,r=n.directiveEnd;for(let o=1+n.directiveStylingLast;o<r;o++){let s=e[o].hostAttrs;i=Ts(i,s,t)}return Ts(i,n.attrs,t)}function tf(e,n,t,i,r){let o=null,s=t.directiveEnd,a=t.directiveStylingLast;for(a===-1?a=t.directiveStart:a++;a<s&&(o=n[a],i=Ts(i,o.hostAttrs,r),o!==e);)a++;return e!==null&&(t.directiveStylingLast=a),i}function Ts(e,n,t){let i=t?1:2,r=-1;if(n!==null)for(let o=0;o<n.length;o++){let s=n[o];typeof s=="number"?r=s:r===i&&(Array.isArray(e)||(e=e===void 0?[]:["",e]),as(e,s,t?!0:n[++o]))}return e===void 0?null:e}function UT(e,n,t){if(t==null||t==="")return bt;let i=[],r=jt(t);if(Array.isArray(r))for(let o=0;o<r.length;o++)e(i,r[o],!0);else if(typeof r=="object")for(let o in r)r.hasOwnProperty(o)&&e(i,o,r[o]);else typeof r=="string"&&n(i,r);return i}function zw(e,n,t){as(e,n,jt(t))}function $T(e,n,t){let i=String(n);i!==""&&!i.includes(" ")&&as(e,i,t)}function HT(e,n,t,i,r,o,s,a){r===vt&&(r=bt);let c=0,d=0,m=0<r.length?r[0]:null,h=0<o.length?o[0]:null;for(;m!==null||h!==null;){let w=c<r.length?r[c+1]:void 0,g=d<o.length?o[d+1]:void 0,x=null,R;m===h?(c+=2,d+=2,w!==g&&(x=h,R=g)):h===null||m!==null&&m<h?(c+=2,x=m):(d+=2,x=h,R=g),x!==null&&Gw(e,n,t,i,x,R,s,a),m=c<r.length?r[c]:null,h=d<o.length?o[d]:null}}function Gw(e,n,t,i,r,o,s,a){if(!(n.type&3))return;let c=e.data,d=c[a+1],m=DT(d)?e0(c,n,t,r,ao(d),s):void 0;if(!vl(m)){vl(o)||CT(d)&&(o=e0(c,null,t,r,a,s));let h=wp(ln(),t);zI(i,s,h,r,o)}}function e0(e,n,t,i,r,o){let s=n===null,a;for(;r>0;){let c=e[r],d=Array.isArray(c),m=d?c[1]:c,h=m===null,w=t[r+1];w===vt&&(w=h?bt:void 0);let g=h?Dc(w,i):m===i?w:void 0;if(d&&!vl(g)&&(g=Dc(c,i)),vl(g)&&(a=g,s))return a;let x=e[r+1];r=s?dr(x):ao(x)}if(n!==null){let c=o?n.residualClasses:n.residualStyles;c!=null&&(a=Dc(c,i))}return a}function vl(e){return e!==void 0}function zT(e,n){return e==null||e===""||(typeof n=="string"?e=e+n:typeof e=="object"&&(e=Tt(jt(e)))),e}function Ww(e,n){return(e.flags&(n?8:16))!==0}function p(e,n=""){let t=G(),i=Ie(),r=e+de,o=i.firstCreatePass?mr(i,r,1,n,null):i.data[r],s=qw(i,t,o,n,e);t[r]=s,jc()&&_m(i,t,s,o),nr(o,!1)}var qw=(e,n,t,i,r)=>(qn(!0),hb(n[me],i));function GT(e,n,t,i,r){let o=!Dl(n,t);if(qn(o),o)return hb(n[me],i);let s=n[Et];return Rl(s,e,n,t)}function Yw(){qw=GT}function Zw(e,n,t,i=""){return Lt(e,Wn(),t)?n+$n(t)+i:vt}function WT(e,n,t,i,r,o=""){let s=Kv(),a=iw(e,s,t,r);return Nc(2),a?n+$n(t)+i+$n(r)+o:vt}function O(e){return Ce("",e),O}function Ce(e,n,t){let i=G(),r=Zw(i,e,n,t);return r!==vt&&Qw(i,ln(),r),Ce}function vo(e,n,t,i,r){let o=G(),s=WT(o,e,n,t,i,r);return s!==vt&&Qw(o,ln(),s),vo}function Qw(e,n,t){let i=wp(n,e);II(e[me],i,t)}function Us(e,n,t){Hp(n)&&(n=n());let i=G(),r=Wn();if(Lt(i,r,n)){let o=Ie(),s=vs();kb(s,i,e,n,i[me],t)}return Us}function Gl(e,n){let t=Hp(e);return t&&e.set(n),t}function $s(e,n){let t=G(),i=Ie(),r=Ke();return Pw(i,t,t[me],r,e,n),$s}var Kw={};function Wl(e){let n=Ie(),t=G(),i=e+de,r=mr(n,i,128,null,null);return nr(r,!1),fs(n,t,i,Kw),Wl}function Jm(e){At("NgLet");let n=Ie(),t=G(),i=ln();return fs(n,t,i,e),e}function Xm(e){let n=Op(),t=Mc(n,de+e);if(t===Kw)throw new M(314,!1);return t}function eh(e){return Lt(G(),Wn(),e)?$n(e):vt}function ql(e,n,t=""){return Zw(G(),e,n,t)}function qT(e,n,t){let i=Ie();if(i.firstCreatePass){let r=cn(e);zf(t,i.data,i.blueprint,r,!0),zf(n,i.data,i.blueprint,r,!1)}}function zf(e,n,t,i,r){if(e=Ze(e),Array.isArray(e))for(let o=0;o<e.length;o++)zf(e[o],n,t,i,r);else{let o=Ie(),s=G(),a=Ke(),c=qi(e)?e:Ze(e.provide),d=gp(e),m=a.providerIndexes&1048575,h=a.directiveStart,w=a.providerIndexes>>20;if(qi(e)||!e.multi){let g=new ar(d,r,D),x=rf(c,n,r?m:m+w,h);x===-1?(sf(il(a,s),o,c),nf(o,e,n.length),n.push(c),a.directiveStart++,a.directiveEnd++,r&&(a.providerIndexes+=1048576),t.push(g),s.push(g)):(t[x]=g,s[x]=g)}else{let g=rf(c,n,m+w,h),x=rf(c,n,m,m+w),R=g>=0&&t[g],k=x>=0&&t[x];if(r&&!k||!r&&!R){sf(il(a,s),o,c);let N=QT(r?ZT:YT,t.length,r,i,d);!r&&k&&(t[x].providerFactory=N),nf(o,e,n.length,0),n.push(c),a.directiveStart++,a.directiveEnd++,r&&(a.providerIndexes+=1048576),t.push(N),s.push(N)}else{let N=Jw(t[r?x:g],d,!r&&i);nf(o,e,g>-1?g:x,N)}!r&&i&&k&&t[x].componentProviders++}}}function nf(e,n,t,i){let r=qi(n),o=Lv(n);if(r||o){let c=(o?Ze(n.useClass):n).prototype.ngOnDestroy;if(c){let d=e.destroyHooks||(e.destroyHooks=[]);if(!r&&n.multi){let m=d.indexOf(t);m===-1?d.push(t,[i,c]):d[m+1].push(i,c)}else d.push(t,c)}}}function Jw(e,n,t){return t&&e.componentProviders++,e.multi.push(n)-1}function rf(e,n,t,i){for(let r=t;r<i;r++)if(n[r]===e)return r;return-1}function YT(e,n,t,i,r){return Gf(this.multi,[])}function ZT(e,n,t,i,r){let o=this.multi,s;if(this.providerFactory){let a=this.providerFactory.componentProviders,c=_s(i,i[B],this.providerFactory.index,r);s=c.slice(0,a),Gf(o,s);for(let d=a;d<c.length;d++)s.push(c[d])}else s=[],Gf(o,s);return s}function Gf(e,n){for(let t=0;t<e.length;t++){let i=e[t];n.push(i())}return n}function QT(e,n,t,i,r){let o=new ar(e,t,D);return o.multi=[],o.index=n,o.componentProviders=0,Jw(o,r,i&&!t),o}function yo(e,n=[]){return t=>{t.providersResolver=(i,r)=>qT(i,r?r(e):e,n)}}function bo(e,n,t){let i=gs()+e,r=G();return r[i]===vt?Pm(r,i,t?n.call(t):n()):Z1(r,i)}function kn(e,n,t,i){return e_(G(),gs(),e,n,t,i)}function wo(e,n,t,i,r){return KT(G(),gs(),e,n,t,i,r)}function Xw(e,n){let t=e[n];return t===vt?void 0:t}function e_(e,n,t,i,r,o){let s=n+t;return Lt(e,s,r)?Pm(e,s+1,o?i.call(o,r):i(r)):Xw(e,s+1)}function KT(e,n,t,i,r,o,s){let a=n+t;return iw(e,a,r,o)?Pm(e,a+2,s?i.call(s,r,o):i(r,o)):Xw(e,a+2)}function vr(e,n){let t=Ie(),i,r=e+de;t.firstCreatePass?(i=JT(n,t.pipeRegistry),t.data[r]=i,i.onDestroy&&(t.destroyHooks??=[]).push(r,i.onDestroy)):i=t.data[r];let o=i.factory||(i.factory=pi(i.type,!0)),s,a=yt(D);try{let c=nl(!1),d=o();return nl(c),fs(t,G(),r,d),d}finally{yt(a)}}function JT(e,n){if(n)for(let t=n.length-1;t>=0;t--){let i=n[t];if(e===i.name)return i}}function yr(e,n,t){let i=e+de,r=G(),o=Mc(r,i);return XT(r,i)?e_(r,gs(),n,o.transform,t,o):o.transform(t)}function XT(e,n){return e[B].data[n].pure}function th(e,n){return Nl(e,n)}var yl=class{ngModuleFactory;componentFactories;constructor(n,t){this.ngModuleFactory=n,this.componentFactories=t}},nh=(()=>{class e{compileModuleSync(t){return new pl(t)}compileModuleAsync(t){return Promise.resolve(this.compileModuleSync(t))}compileModuleAndAllComponentsSync(t){let i=this.compileModuleSync(t),r=fp(t),o=pb(r.declarations).reduce((s,a)=>{let c=Hn(a);return c&&s.push(new so(c)),s},[]);return new yl(i,o)}compileModuleAndAllComponentsAsync(t){return Promise.resolve(this.compileModuleAndAllComponentsSync(t))}clearCache(){}clearCacheFor(t){}getModuleId(t){}static \u0275fac=function(i){return new(i||e)};static \u0275prov=A({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();var eA=(()=>{class e{zone=y(Oe);changeDetectionScheduler=y(zt);applicationRef=y(Ct);applicationErrorHandler=y(gt);_onMicrotaskEmptySubscription;initialize(){this._onMicrotaskEmptySubscription||(this._onMicrotaskEmptySubscription=this.zone.onMicrotaskEmpty.subscribe({next:()=>{this.changeDetectionScheduler.runningTick||this.zone.run(()=>{try{this.applicationRef.dirtyFlags|=1,this.applicationRef._tick()}catch(t){this.applicationErrorHandler(t)}})}}))}ngOnDestroy(){this._onMicrotaskEmptySubscription?.unsubscribe()}static \u0275fac=function(i){return new(i||e)};static \u0275prov=A({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();function t_({ngZoneFactory:e,ignoreChangesOutsideZone:n,scheduleInRootZone:t}){return e??=()=>new Oe(Z(I({},n_()),{scheduleInRootZone:t})),[{provide:Oe,useFactory:e},{provide:Gt,multi:!0,useFactory:()=>{let i=y(eA,{optional:!0});return()=>i.initialize()}},{provide:Gt,multi:!0,useFactory:()=>{let i=y(tA);return()=>{i.initialize()}}},n===!0?{provide:zp,useValue:!0}:[],{provide:Vc,useValue:t??bw},{provide:gt,useFactory:()=>{let i=y(Oe),r=y($e),o;return s=>{i.runOutsideAngular(()=>{r.destroyed&&!o?setTimeout(()=>{throw s}):(o??=r.get(Ht),o.handleError(s))})}}}]}function n_(e){return{enableLongStackTrace:!1,shouldCoalesceEventChangeDetection:e?.eventCoalescing??!1,shouldCoalesceRunChangeDetection:e?.runCoalescing??!1}}var tA=(()=>{class e{subscription=new Ge;initialized=!1;zone=y(Oe);pendingTasks=y(En);initialize(){if(this.initialized)return;this.initialized=!0;let t=null;!this.zone.isStable&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(t=this.pendingTasks.add()),this.zone.runOutsideAngular(()=>{this.subscription.add(this.zone.onStable.subscribe(()=>{Oe.assertNotInAngularZone(),queueMicrotask(()=>{t!==null&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(this.pendingTasks.remove(t),t=null)})}))}),this.subscription.add(this.zone.onUnstable.subscribe(()=>{Oe.assertInAngularZone(),t??=this.pendingTasks.add()}))}ngOnDestroy(){this.subscription.unsubscribe()}static \u0275fac=function(i){return new(i||e)};static \u0275prov=A({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();var ih=(()=>{class e{applicationErrorHandler=y(gt);appRef=y(Ct);taskService=y(En);ngZone=y(Oe);zonelessEnabled=y(Jr);tracing=y(hr,{optional:!0});disableScheduling=y(zp,{optional:!0})??!1;zoneIsDefined=typeof Zone<"u"&&!!Zone.root.run;schedulerTickApplyArgs=[{data:{__scheduler_tick__:!0}}];subscriptions=new Ge;angularZoneId=this.zoneIsDefined?this.ngZone._inner?.get(fl):null;scheduleInRootZone=!this.zonelessEnabled&&this.zoneIsDefined&&(y(Vc,{optional:!0})??!1);cancelScheduledCallback=null;useMicrotaskScheduler=!1;runningTick=!1;pendingRenderTaskId=null;constructor(){this.subscriptions.add(this.appRef.afterTick.subscribe(()=>{this.runningTick||this.cleanup()})),this.subscriptions.add(this.ngZone.onUnstable.subscribe(()=>{this.runningTick||this.cleanup()})),this.disableScheduling||=!this.zonelessEnabled&&(this.ngZone instanceof Ms||!this.zoneIsDefined)}notify(t){if(!this.zonelessEnabled&&t===5)return;let i=!1;switch(t){case 0:{this.appRef.dirtyFlags|=2;break}case 3:case 2:case 4:case 5:case 1:{this.appRef.dirtyFlags|=4;break}case 6:{this.appRef.dirtyFlags|=2,i=!0;break}case 12:{this.appRef.dirtyFlags|=16,i=!0;break}case 13:{this.appRef.dirtyFlags|=2,i=!0;break}case 11:{i=!0;break}case 9:case 8:case 7:case 10:default:this.appRef.dirtyFlags|=8}if(this.appRef.tracingSnapshot=this.tracing?.snapshot(this.appRef.tracingSnapshot)??null,!this.shouldScheduleTick(i))return;let r=this.useMicrotaskScheduler?By:ww;this.pendingRenderTaskId=this.taskService.add(),this.scheduleInRootZone?this.cancelScheduledCallback=Zone.root.run(()=>r(()=>this.tick())):this.cancelScheduledCallback=this.ngZone.runOutsideAngular(()=>r(()=>this.tick()))}shouldScheduleTick(t){return!(this.disableScheduling&&!t||this.appRef.destroyed||this.pendingRenderTaskId!==null||this.runningTick||this.appRef._runningTick||!this.zonelessEnabled&&this.zoneIsDefined&&Zone.current.get(fl+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 t=this.taskService.add();try{this.ngZone.run(()=>{this.runningTick=!0,this.appRef._tick()},void 0,this.schedulerTickApplyArgs)}catch(i){this.taskService.remove(t),this.applicationErrorHandler(i)}finally{this.cleanup()}
7this.useMicrotaskScheduler=!0,By(()=>{this.useMicrotaskScheduler=!1,this.taskService.remove(t)})}ngOnDestroy(){this.subscriptions.unsubscribe(),this.cleanup()}cleanup(){if(this.runningTick=!1,this.cancelScheduledCallback?.(),this.cancelScheduledCallback=null,this.pendingRenderTaskId!==null){let t=this.pendingRenderTaskId;this.pendingRenderTaskId=null,this.taskService.remove(t)}}static \u0275fac=function(i){return new(i||e)};static \u0275prov=A({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();function rh(){return At("NgZoneless"),Wt([{provide:zt,useExisting:ih},{provide:Oe,useClass:Ms},{provide:Jr,useValue:!0},{provide:Vc,useValue:!1},[]])}function nA(){return typeof $localize<"u"&&$localize.locale||Bs}var Yl=new P("",{providedIn:"root",factory:()=>y(Yl,{optional:!0,skipSelf:!0})||nA()});function Dt(e){return _v(e)}function Be(e,n){return Ha(e,n?.equal)}var oh=class{[mt];constructor(n){this[mt]=n}destroy(){this[mt].destroy()}};function Zl(e,n){let t=n?.injector??y(lt),i=n?.manualCleanup!==!0?t.get(ht):null,r,o=t.get(Xr,null,{optional:!0}),s=t.get(zt);return o!==null?(r=oA(o.view,s,e),i instanceof rs&&i._lView===o.view&&(i=null)):r=sA(e,t.get(ys),s),r.injector=t,i!==null&&(r.onDestroyFn=i.onDestroy(()=>r.destroy())),new oh(r)}var i_=Z(I({},ai),{consumerIsAlwaysLive:!0,consumerAllowSignalWrites:!0,dirty:!0,hasRun:!1,cleanupFns:void 0,zone:null,kind:"effect",onDestroyFn:rr,run(){if(this.dirty=!1,this.hasRun&&!Rr(this))return;this.hasRun=!0;let e=i=>(this.cleanupFns??=[]).push(i),n=ci(this),t=Kr(!1);try{this.maybeCleanup(),this.fn(e)}finally{Kr(t),Bi(this,n)}},maybeCleanup(){if(!this.cleanupFns?.length)return;let e=J(null);try{for(;this.cleanupFns.length;)this.cleanupFns.pop()()}finally{this.cleanupFns=[],J(e)}}}),iA=Z(I({},i_),{consumerMarkedDirty(){this.scheduler.schedule(this),this.notifier.notify(12)},destroy(){Pr(this),this.onDestroyFn(),this.maybeCleanup(),this.scheduler.remove(this)}}),rA=Z(I({},i_),{consumerMarkedDirty(){this.view[X]|=8192,yi(this.view),this.notifier.notify(13)},destroy(){Pr(this),this.onDestroyFn(),this.maybeCleanup(),this.view[zn]?.delete(this)}});function oA(e,n,t){let i=Object.create(rA);return i.view=e,i.zone=typeof Zone<"u"?Zone.current:null,i.notifier=n,i.fn=t,e[zn]??=new Set,e[zn].add(i),i.consumerMarkedDirty(i),i}function sA(e,n,t){let i=Object.create(iA);
7return i.fn=e,i.scheduler=n,i.notifier=t,i.zone=typeof Zone<"u"?Zone.current:null,i.scheduler.add(i),i.notifier.notify(12),i}var uh={JSACTION:"__jsaction",OWNER:"__owner"},a_={};function aA(e){return e[uh.JSACTION]}function r_(e,n){e[uh.JSACTION]=n}function cA(e){return a_[e]}function lA(e,n){a_[e]=n}var Y={AUXCLICK:"auxclick",CHANGE:"change",CLICK:"click",CLICKMOD:"clickmod",CLICKONLY:"clickonly",DBLCLICK:"dblclick",FOCUS:"focus",FOCUSIN:"focusin",BLUR:"blur",FOCUSOUT:"focusout",SUBMIT:"submit",KEYDOWN:"keydown",KEYPRESS:"keypress",KEYUP:"keyup",MOUSEUP:"mouseup",MOUSEDOWN:"mousedown",MOUSEOVER:"mouseover",MOUSEOUT:"mouseout",MOUSEENTER:"mouseenter",MOUSELEAVE:"mouseleave",MOUSEMOVE:"mousemove",POINTERUP:"pointerup",POINTERDOWN:"pointerdown",POINTEROVER:"pointerover",POINTEROUT:"pointerout",POINTERENTER:"pointerenter",POINTERLEAVE:"pointerleave",POINTERMOVE:"pointermove",POINTERCANCEL:"pointercancel",GOTPOINTERCAPTURE:"gotpointercapture",LOSTPOINTERCAPTURE:"lostpointercapture",ERROR:"error",LOAD:"load",UNLOAD:"unload",TOUCHSTART:"touchstart",TOUCHEND:"touchend",TOUCHMOVE:"touchmove",INPUT:"input",SCROLL:"scroll",TOGGLE:"toggle",CUSTOM:"_custom"},uA=[Y.MOUSEENTER,Y.MOUSELEAVE,"pointerenter","pointerleave"],U4=[Y.CLICK,Y.DBLCLICK,Y.FOCUSIN,Y.FOCUSOUT,Y.KEYDOWN,Y.KEYUP,Y.KEYPRESS,Y.MOUSEOVER,Y.MOUSEOUT,Y.SUBMIT,Y.TOUCHSTART,Y.TOUCHEND,Y.TOUCHMOVE,"touchcancel","auxclick","change","compositionstart","compositionupdate","compositionend","beforeinput","input","select","copy","cut","paste","mousedown","mouseup","wheel","contextmenu","dragover","dragenter","dragleave","drop","dragstart","dragend","pointerdown","pointermove","pointerup","pointercancel","pointerover","pointerout","gotpointercapture","lostpointercapture","ended","loadedmetadata","pagehide","pageshow","visibilitychange","beforematch"],dA=[Y.FOCUS,Y.BLUR,Y.ERROR,Y.LOAD,Y.TOGGLE],dh=e=>dA.indexOf(e)>=0;function pA(e){return e===Y.MOUSEENTER?Y.MOUSEOVER:e===Y.MOUSELEAVE?Y.MOUSEOUT:e===Y.POINTERENTER?Y.POINTEROVER:e===Y.POINTERLEAVE?Y.POINTEROUT:e}function fA(e,n,t,i){let r=!1;dh(n)&&(r=!0);let o=typeof i=="boolean"?{capture:r,passive:i}:r;return e.addEventListener(n,t,o),{eventType:n,handler:t,capture:r,passive:i}}function mA(e,n){if(e.removeEventListener){let t=typeof n.passive=="boolean"?{capture:n.capture}:n.capture;e.removeEventListener(n.eventType,n.handler,t)}else e.detachEvent&&e.detachEvent(`on${n.eventType}`,n.handler)}function hA(e){e.preventDefault?e.preventDefault():e.returnValue=!1}var o_=typeof navigator<"u"&&/Macintosh/.test(navigator.userAgent);function gA(e){return e.which===2||e.which==null&&e.button===4}function vA(e){return o_&&e.metaKey||!o_&&e.ctrlKey||gA(e)||e.shiftKey}function yA(e,n,t){let i=e.relatedTarget;return(e.type===Y.MOUSEOVER&&n===Y.MOUSEENTER||e.type===Y.MOUSEOUT&&n===Y.MOUSELEAVE||e.type===Y.POINTEROVER&&n===Y.POINTERENTER||e.type===Y.POINTEROUT&&n===Y.POINTERLEAVE)&&(!i||i!==t&&!t.contains(i))}function bA(e,n){let t={};for(let i in e){if(i==="srcElement"||i==="target")continue;let r=i,o=e[r];typeof o!="function"&&(t[r]=o)}return e.type===Y.MOUSEOVER?t.type=Y.MOUSEENTER:e.type===Y.MOUSEOUT?t.type=Y.MOUSELEAVE:e.type===Y.POINTEROVER?t.type=Y.POINTERENTER:t.type=Y.POINTERLEAVE,t.target=t.srcElement=n,t.bubbles=!1,t._originalEvent=e,t}var wA=typeof navigator<"u"&&/iPhone|iPad|iPod/.test(navigator.userAgent),Xl=class{element;handlerInfos=[];constructor(n){this.element=n}addEventListener(n,t,i){wA&&(this.element.style.cursor="pointer"),this.handlerInfos.push(fA(this.element,n,t(this.element),i))}cleanUp(){for(let n=0;n<this.handlerInfos.length;n++)mA(this.element,this.handlerInfos[n]);this.handlerInfos=[]}},_A={NAMESPACE_ACTION_SEPARATOR:".",EVENT_ACTION_SEPARATOR:":"};function xi(e){return e.eventType}function ph(e,n){e.eventType=n}function Kl(e){return e.event}function c_(e,n){e.event=n}function l_(e){return e.targetElement}function u_(e,n){e.targetElement=n}function d_(e){return e.eic}function EA(e,n){e.eic=n}function CA(e){return e.timeStamp}function xA(e,n){e.timeStamp=n}function Jl(e){return e.eia}function p_(e,n,t){e.eia=[n,t]}function sh(e){e.eia=void 0}function Ql(e){return e[1]}function DA(e){return e.eirp}function f_(e,n){e.eirp=n}function m_(e){return e.eir}function h_(e,n){e.eir=n}function g_(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 SA(e,n,t,i,r,o,s,a){return{eventType:e,event:n,targetElement:t,eic:i,timeStamp:r,eia:o,eirp:s,eiack:a}}var ah=class e{eventInfo;constructor(n){this.eventInfo=n}getEventType(){return xi(this.eventInfo)}setEventType(n){ph(this.eventInfo,n)}getEvent(){return Kl(this.eventInfo)}setEvent(n){c_(this.eventInfo,n)}getTargetElement(){return l_(this.eventInfo)}setTargetElement(n){u_(this.eventInfo,n)}getContainer(){return d_(this.eventInfo)}setContainer(n){EA(this.eventInfo,n)}getTimestamp(){return CA(this.eventInfo)}setTimestamp(n){xA(this.eventInfo,n)}getAction(){let n=Jl(this.eventInfo);if(n)return{name:n[0],element:n[1]}}setAction(n){if(!n){sh(this.eventInfo);return}p_(this.eventInfo,n.name,n.element)}getIsReplay(){return DA(this.eventInfo)}setIsReplay(n){f_(this.eventInfo,n)}getResolved(){return m_(this.eventInfo)}setResolved(n){h_(this.eventInfo,n)}clone(){return new e(g_(this.eventInfo))}},IA={},MA=/\s*;\s*/,TA=Y.CLICK,ch=class{a11yClickSupport=!1;clickModSupport=!0;syntheticMouseEventSupport;updateEventInfoForA11yClick=void 0;preventDefaultForA11yClick=void 0;populateClickOnlyAction=void 0;constructor({syntheticMouseEventSupport:n=!1,clickModSupport:t=!0}={}){this.syntheticMouseEventSupport=n,this.clickModSupport=t}resolveEventType(n){this.clickModSupport&&xi(n)===Y.CLICK&&vA(Kl(n))?ph(n,Y.CLICKMOD):this.a11yClickSupport&&this.updateEventInfoForA11yClick(n)}resolveAction(n){m_(n)||(this.populateAction(n,l_(n)),h_(n,!0))}resolveParentAction(n){let t=Jl(n),i=t&&Ql(t);sh(n);let r=i&&this.getParentNode(i);r&&this.populateAction(n,r)}populateAction(n,t){let i=t;for(;i&&i!==d_(n)&&(i.nodeType===Node.ELEMENT_NODE&&this.populateActionOnElement(i,n),!Jl(n));)i=this.getParentNode(i);let r=Jl(n);if(r&&(this.a11yClickSupport&&this.preventDefaultForA11yClick(n),this.syntheticMouseEventSupport&&(xi(n)===Y.MOUSEENTER||xi(n)===Y.MOUSELEAVE||xi(n)===Y.POINTERENTER||xi(n)===Y.POINTERLEAVE)))if(yA(Kl(n),xi(n),Ql(r))){let o=bA(Kl(n),Ql(r));c_(n,o),u_(n,Ql(r))}else sh(n)}getParentNode(n){let t=n[uh.OWNER];if(t)return t;let i=n.parentNode;return i?.nodeName==="#document-fragment"?i?.host??null:i}populateActionOnElement(n,t){let i=this.parseActions(n),r=i[xi(t)];r!==void 0&&p_(t,r,n),this.a11yClickSupport&&this.populateClickOnlyAction(n,t,i)}parseActions(n){let t=aA(n);if(!t){let i=n.getAttribute(Bc.JSACTION);if(!i)t=IA,r_(n,t);else{if(t=cA(i),!t){t={};let r=i.split(MA);for(let o=0;o<r.length;o++){let s=r[o];if(!s)continue;let a=s.indexOf(_A.EVENT_ACTION_SEPARATOR),c=a!==-1,d=c?s.substr(0,a).trim():TA,m=c?s.substr(a+1).trim():s;t[d]=m}lA(i,t)}r_(n,t)}}return t}
7addA11yClickSupport(n,t,i){this.a11yClickSupport=!0,this.updateEventInfoForA11yClick=n,this.preventDefaultForA11yClick=t,this.populateClickOnlyAction=i}},v_=function(e){return e[e.I_AM_THE_JSACTION_FRAMEWORK=0]="I_AM_THE_JSACTION_FRAMEWORK",e}(v_||{}),lh=class{dispatchDelegate;actionResolver;eventReplayer;eventReplayScheduled=!1;replayEventInfoWrappers=[];constructor(n,{actionResolver:t,eventReplayer:i}={}){this.dispatchDelegate=n,this.actionResolver=t,this.eventReplayer=i}dispatch(n){let t=new ah(n);this.actionResolver?.resolveEventType(n),this.actionResolver?.resolveAction(n);let i=t.getAction();if(i&&AA(i.element,t)&&hA(t.getEvent()),this.eventReplayer&&t.getIsReplay()){this.scheduleEventInfoWrapperReplay(t);return}this.dispatchDelegate(t)}scheduleEventInfoWrapperReplay(n){this.replayEventInfoWrappers.push(n),!this.eventReplayScheduled&&(this.eventReplayScheduled=!0,Promise.resolve().then(()=>{this.eventReplayScheduled=!1,this.eventReplayer(this.replayEventInfoWrappers)}))}};function AA(e,n){return e.tagName==="A"&&(n.getEventType()===Y.CLICK||n.getEventType()===Y.CLICKMOD)}var y_=Symbol.for("propagationStopped"),fh={REPLAY:101};var kA="`preventDefault` called during event replay.";var OA="`composedPath` called during event replay.",eu=class{dispatchDelegate;clickModSupport;actionResolver;dispatcher;constructor(n,t=!0){this.dispatchDelegate=n,this.clickModSupport=t,this.actionResolver=new ch({clickModSupport:t}),this.dispatcher=new lh(i=>{this.dispatchToDelegate(i)},{actionResolver:this.actionResolver})}dispatch(n){this.dispatcher.dispatch(n)}dispatchToDelegate(n){for(n.getIsReplay()&&PA(n),NA(n);n.getAction();){if(FA(n),dh(n.getEventType())&&n.getAction().element!==n.getTargetElement()||(this.dispatchDelegate(n.getEvent(),n.getAction().name),RA(n)))return;this.actionResolver.resolveParentAction(n.eventInfo)}}};function NA(e){let n=e.getEvent(),t=e.getEvent().stopPropagation.bind(n),i=()=>{n[y_]=!0,t()};br(n,"stopPropagation",i),br(n,"stopImmediatePropagation",i)}function RA(e){return!!e.getEvent()[y_]}function PA(e){let n=e.getEvent(),t=e.getTargetElement(),i=n.preventDefault.bind(n);br(n,"target",t),br(n,"eventPhase",fh.REPLAY),br(n,"preventDefault",()=>{throw i(),new Error(kA+"")}),br(n,"composedPath",()=>{throw new Error(OA+"")})}function FA(e){let n=e.getEvent(),t=e.getAction()?.element;t&&br(n,"currentTarget",t,{configurable:!0})}function br(e,n,t,{configurable:i=!1}={}){Object.defineProperty(e,n,{value:t,configurable:i})}function b_(e,n){e.ecrd(t=>{n.dispatch(t)},v_.I_AM_THE_JSACTION_FRAMEWORK)}function LA(e){return e?.q??[]}function jA(e){e&&(s_(e.c,e.et,e.h),s_(e.c,e.etc,e.h,!0))}function s_(e,n,t,i){for(let r=0;r<n.length;r++)e.removeEventListener(n[r],t,i)}var VA=!1,w_=(()=>{class e{static MOUSE_SPECIAL_SUPPORT=VA;containerManager;eventHandlers={};browserEventTypeToExtraEventTypes={};dispatcher=null;queuedEventInfos=[];constructor(t){this.containerManager=t}handleEvent(t,i,r){let o=SA(t,i,i.target,r,Date.now());this.handleEventInfo(o)}handleEventInfo(t){if(!this.dispatcher){f_(t,!0),this.queuedEventInfos?.push(t);return}this.dispatcher(t)}addEvent(t,i,r){if(t in this.eventHandlers||!this.containerManager||!e.MOUSE_SPECIAL_SUPPORT&&uA.indexOf(t)>=0)return;let o=(a,c,d)=>{this.handleEvent(a,c,d)};this.eventHandlers[t]=o;let s=pA(i||t);if(s!==t){let a=this.browserEventTypeToExtraEventTypes[s]||[];a.push(t),this.browserEventTypeToExtraEventTypes[s]=a}this.containerManager.addEventListener(s,a=>c=>{o(t,c,a)},r)}replayEarlyEvents(t=window._ejsa){t&&(this.replayEarlyEventInfos(t.q),jA(t),delete window._ejsa)}replayEarlyEventInfos(t){for(let i=0;i<t.length;i++){let r=t[i],o=this.getEventTypesForBrowserEventType(r.eventType);for(let s=0;s<o.length;s++){let a=g_(r);ph(a,o[s]),this.handleEventInfo(a)}}}getEventTypesForBrowserEventType(t){let i=[];return this.eventHandlers[t]&&i.push(t),this.browserEventTypeToExtraEventTypes[t]&&i.push(...this.browserEventTypeToExtraEventTypes[t]),i}handler(t){return this.eventHandlers[t]}cleanUp(){this.containerManager?.cleanUp(),this.containerManager=null,this.eventHandlers={},this.browserEventTypeToExtraEventTypes={},this.dispatcher=null,this.queuedEventInfos=[]}registerDispatcher(t,i){this.ecrd(t,i)}ecrd(t,i){if(this.dispatcher=t,this.queuedEventInfos?.length){for(let r=0;r<this.queuedEventInfos.length;r++)this.handleEventInfo(this.queuedEventInfos[r]);this.queuedEventInfos=null}}}return e})();function __(e,n=window){return LA(n._ejsas?.[e])}function mh(e,n=window){n._ejsas&&(n._ejsas[e]=void 0)}var A_=Symbol("InputSignalNode#UNSET"),ak=Z(I({},za),{transformFn:void 0,applyValueToInputSignal(e,n){Fr(e,n)}});function k_(e,n){let t=Object.create(ak);t.value=e,t.transformFn=n?.transform;function i(){if(Nr(t),t.value===A_){let r=null;throw new M(-950,r)}return t.value}return i[mt]=t,i}var ru=class{attributeName;constructor(n){this.attributeName=n}__NG_ELEMENT_ID__=()=>As(this.attributeName);toString(){return`HostAttributeToken ${this.attributeName}`}},ck=new P("");ck.__NG_ELEMENT_ID__=e=>{let n=Ke();if(n===null)throw new M(204,!1);if(n.type&2)return n.value;if(e&8)return null;throw new M(204,!1)};function E_(e,n){return k_(e,n)}function lk(e){return k_(A_,e)}var O_=(E_.required=lk,E_);var hh=new P(""),uk=new P("");function Hs(e){return!e.moduleRef}function dk(e){let n=Hs(e)?e.r3Injector:e.moduleRef.injector,t=n.get(Oe);return t.run(()=>
vendor: 9,051 bytes, line 7
7{Hs(e)?e.r3Injector.resolveInjectorInitializers():e.moduleRef.resolveInjectorInitializers();let i=n.get(gt),r;if(t.runOutsideAngular(()=>{r=t.onError.subscribe({next:i})}),Hs(e)){let o=()=>n.destroy(),s=e.platformInjector.get(hh);s.add(o),n.onDestroy(()=>{r.unsubscribe(),s.delete(o)})}else{let o=()=>e.moduleRef.destroy(),s=e.platformInjector.get(hh);s.add(o),e.moduleRef.onDestroy(()=>{ws(e.allPlatformModules,e.moduleRef),r.unsubscribe(),s.delete(o)})}return fk(i,t,()=>{let o=n.get(Gm);return o.runInitializers(),o.donePromise.then(()=>{let s=n.get(Yl,Bs);if(Rw(s||Bs),!n.get(uk,!0))return Hs(e)?n.get(Ct):(e.allPlatformModules.push(e.moduleRef),e.moduleRef);if(Hs(e)){let c=n.get(Ct);return e.rootComponent!==void 0&&c.bootstrap(e.rootComponent),c}else return pk?.(e.moduleRef,e.allPlatformModules),e.moduleRef})})})}var pk;function fk(e,n,t){try{let i=t();return Xn(i)?i.catch(r=>{throw n.runOutsideAngular(()=>e(r)),r}):i}catch(i){throw n.runOutsideAngular(()=>e(i)),i}}var nu=null;function mk(e=[],n){return lt.create({name:n,providers:[{provide:ls,useValue:"platform"},{provide:hh,useValue:new Set([()=>nu=null])},...e]})}function hk(e=[]){if(nu)return nu;let n=mk(e);return nu=n,Iw(),gk(n),n}function gk(e){let n=e.get(wl,null);ut(e,()=>{n?.forEach(t=>t())})}var wr=(()=>{class e{static __NG_ELEMENT_ID__=vk}return e})();function vk(e){return yk(Ke(),G(),(e&16)===16)}function yk(e,n,t){if(Gn(e)&&!t){let i=Zt(e.index,n);return new wi(i,i)}else if(e.type&175){let i=n[dt];return new wi(i,n)}return null}var gh=class{constructor(){}supports(n){return Rm(n)}create(n){return new vh(n)}},bk=(e,n)=>n,vh=class{length=0;collection;_linkedRecords=null;_unlinkedRecords=null;_previousItHead=null;_itHead=null;_itTail=null;_additionsHead=null;_additionsTail=null;_movesHead=null;_movesTail=null;_removalsHead=null;_removalsTail=null;_identityChangesHead=null;_identityChangesTail=null;_trackByFn;constructor(n){this._trackByFn=n||bk}forEachItem(n){let t;for(t=this._itHead;t!==null;t=t._next)n(t)}forEachOperation(n){let t=this._itHead,i=this._removalsHead,r=0,o=null;for(;t||i;){let s=!i||t&&t.currentIndex<C_(i,r,o)?t:i,a=C_(s,r,o),c=s.currentIndex;if(s===i)r--,i=i._nextRemoved;else if(t=t._next,s.previousIndex==null)r++;else{o||(o=[]);let d=a-r,m=c-r;if(d!=m){for(let w=0;w<d;w++){let g=w<o.length?o[w]:o[w]=0,x=g+w;m<=x&&x<d&&(o[w]=g+1)}let h=s.previousIndex;o[h]=m-d}}a!==c&&n(s,a,c)}}forEachPreviousItem(n){let t;for(t=this._previousItHead;t!==null;t=t._nextPrevious)n(t)}forEachAddedItem(n){let t;for(t=this._additionsHead;t!==null;t=t._nextAdded)n(t)}forEachMovedItem(n){let t;for(t=this._movesHead;t!==null;t=t._nextMoved)n(t)}forEachRemovedItem(n){let t;for(t=this._removalsHead;t!==null;t=t._nextRemoved)n(t)}forEachIdentityChange(n){let t;for(t=this._identityChangesHead;t!==null;t=t._nextIdentityChange)n(t)}diff(n){if(n==null&&(n=[]),!Rm(n))throw new M(900,!1);return this.check(n)?this:null}onDestroy(){}check(n){this._reset();let t=this._itHead,i=!1,r,o,s;if(Array.isArray(n)){this.length=n.length;for(let a=0;a<this.length;a++)o=n[a],s=this._trackByFn(a,o),t===null||!Object.is(t.trackById,s)?(t=this._mismatch(t,o,s,a),i=!0):(i&&(t=this._verifyReinsertion(t,o,s,a)),Object.is(t.item,o)||this._addIdentityChange(t,o)),t=t._next}else r=0,nw(n,a=>{s=this._trackByFn(r,a),t===null||!Object.is(t.trackById,s)?(t=this._mismatch(t,a,s,r),i=!0):(i&&(t=this._verifyReinsertion(t,a,s,r)),Object.is(t.item,a)||this._addIdentityChange(t,a)),t=t._next,r++}),this.length=r;return this._truncate(t),this.collection=n,this.isDirty}get isDirty(){return this._additionsHead!==null||this._movesHead!==null||this._removalsHead!==null||this._identityChangesHead!==null}_reset(){if(this.isDirty){let n;for(n=this._previousItHead=this._itHead;n!==null;n=n._next)n._nextPrevious=n._next;for(n=this._additionsHead;n!==null;n=n._nextAdded)n.previousIndex=n.currentIndex;for(this._additionsHead=this._additionsTail=null,n=this._movesHead;n!==null;n=n._nextMoved)n.previousIndex=n.currentIndex;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(n,t,i,r){let o;return n===null?o=this._itTail:(o=n._prev,this._remove(n)),n=this._unlinkedRecords===null?null:this._unlinkedRecords.get(i,null),n!==null?(Object.is(n.item,t)||this._addIdentityChange(n,t),this._reinsertAfter(n,o,r)):(n=this._linkedRecords===null?null:this._linkedRecords.get(i,r),n!==null?(Object.is(n.item,t)||this._addIdentityChange(n,t),this._moveAfter(n,o,r)):n=this._addAfter(new yh(t,i),o,r)),n}_verifyReinsertion(n,t,i,r){let o=this._unlinkedRecords===null?null:this._unlinkedRecords.get(i,null);return o!==null?n=this._reinsertAfter(o,n._prev,r):n.currentIndex!=r&&(n.currentIndex=r,this._addToMoves(n,r)),n}_truncate(n){for(;n!==null;){let t=n._next;this._addToRemovals(this._unlink(n)),n=t}this._unlinkedRecords!==null&&this._unlinkedRecords.clear(),this._additionsTail!==null&&(this._additionsTail._nextAdded=null),this._movesTail!==null&&(this._movesTail._nextMoved=null),this._itTail!==null&&(this._itTail._next=null),this._removalsTail!==null&&(this._removalsTail._nextRemoved=null),this._identityChangesTail!==null&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(n,t,i){this._unlinkedRecords!==null&&this._unlinkedRecords.remove(n);let r=n._prevRemoved,o=n._nextRemoved;return r===null?this._removalsHead=o:r._nextRemoved=o,o===null?this._removalsTail=r:o._prevRemoved=r,this._insertAfter(n,t,i),this._addToMoves(n,i),n}_moveAfter(n,t,i){return this._unlink(n),this._insertAfter(n,t,i),this._addToMoves(n,i),n}_addAfter(n,t,i){return this._insertAfter(n,t,i),this._additionsTail===null?this._additionsTail=this._additionsHead=n:this._additionsTail=this._additionsTail._nextAdded=n,n}_insertAfter(n,t,i){let r=t===null?this._itHead:t._next;return n._next=r,n._prev=t,r===null?this._itTail=n:r._prev=n,t===null?this._itHead=n:t._next=n,this._linkedRecords===null&&(this._linkedRecords=new ou),this._linkedRecords.put(n),n.currentIndex=i,n}_remove(n){return this._addToRemovals(this._unlink(n))}_unlink(n){this._linkedRecords!==null&&this._linkedRecords.remove(n);let t=n._prev,i=n._next;return t===null?this._itHead=i:t._next=i,i===null?this._itTail=t:i._prev=t,n}_addToMoves(n,t){return n.previousIndex===t||(this._movesTail===null?this._movesTail=this._movesHead=n:this._movesTail=this._movesTail._nextMoved=n),n}_addToRemovals(n){return this._unlinkedRecords===null&&(this._unlinkedRecords=new ou),this._unlinkedRecords.put(n),n.currentIndex=null,n._nextRemoved=null,this._removalsTail===null?(this._removalsTail=this._removalsHead=n,n._prevRemoved=null):(n._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=n),n}_addIdentityChange(n,t){return n.item=t,this._identityChangesTail===null?this._identityChangesTail=this._identityChangesHead=n:this._identityChangesTail=this._identityChangesTail._nextIdentityChange=n,n}},yh=class{item;trackById;currentIndex=null;previousIndex=null;_nextPrevious=null;_prev=null;_next=null;_prevDup=null;_nextDup=null;_prevRemoved=null;_nextRemoved=null;_nextAdded=null;_nextMoved=null;_nextIdentityChange=null;constructor(n,t){this.item=n,this.trackById=t}},bh=class{_head=null;_tail=null;add(n){this._head===null?(this._head=this._tail=n,n._nextDup=null,n._prevDup=null):(this._tail._nextDup=n,n._prevDup=this._tail,n._nextDup=null,this._tail=n)}get(n,t){let i;for(i=this._head;i!==null;i=i._nextDup)if((t===null||t<=i.currentIndex)&&Object.is(i.trackById,n))return i;return null}remove(n){let t=n._prevDup,i=n._nextDup;return t===null?this._head=i:t._nextDup=i,i===null?this._tail=t:i._prevDup=t,this._head===null}},ou=class{map=new Map;put(n){let t=n.trackById,i=this.map.get(t);i||(i=new bh,this.map.set(t,i)),i.add(n)}get(n,t){let i=n,r=this.map.get(i);return r?r.get(n,t):null}remove(n){let t=n.trackById;return this.map.get(t).remove(n)&&this.map.delete(t),n}get isEmpty(){return this.map.size===0}clear(){this.map.clear()}};function C_(e,n,t){let i=e.previousIndex;if(i===null)return i;let r=0;return t&&i<t.length&&(r=t[i]),i+n+r}var wh=class{constructor(){}supports(n){return n instanceof Map||Vl(n)}create(){return new _h}},_h=class{_records=new Map;_mapHead=null;_appendAfter=null;_previousMapHead=null;_changesHead=null;_changesTail=null;_additionsHead=null;_additionsTail=null;_removalsHead=null;_removalsTail=null;get isDirty(){return this._additionsHead!==null||this._changesHead!==null||this._removalsHead!==null}forEachItem(n){let t;for(t=this._mapHead;t!==null;t=t._next)n(t)}forEachPreviousItem(n){let t;for(t=this._previousMapHead;t!==null;t=t._nextPrevious)n(t)}forEachChangedItem(n){let t;for(t=this._changesHead;t!==null;t=t._nextChanged)n(t)}forEachAddedItem(n){let t;for(t=this._additionsHead;t!==null;t=t._nextAdded)n(t)}forEachRemovedItem(n){let t;for(t=this._removalsHead;t!==null;t=t._nextRemoved)n(t)}diff(n){if(!n)n=new Map;else if(!(n instanceof Map||Vl(n)))throw new M(900,!1);return this.check(n)?this:null}onDestroy(){}check(n){this._reset();let t=this._mapHead;
7if(this._appendAfter=null,this._forEach(n,(i,r)=>{if(t&&t.key===r)this._maybeAddToChanges(t,i),this._appendAfter=t,t=t._next;else{let o=this._getOrCreateRecordForKey(r,i);t=this._insertBeforeOrAppend(t,o)}}),t){t._prev&&(t._prev._next=null),this._removalsHead=t;for(let i=t;i!==null;i=i._nextRemoved)i===this._mapHead&&(this._mapHead=null),this._records.delete(i.key),i._nextRemoved=i._next,i.previousValue=i.currentValue,i.currentValue=null,i._prev=null,i._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(n,t){if(n){let i=n._prev;return t._next=n,t._prev=i,n._prev=t,i&&(i._next=t),n===this._mapHead&&(this._mapHead=t),this._appendAfter=n,n}return this._appendAfter?(this._appendAfter._next=t,t._prev=this._appendAfter):this._mapHead=t,this._appendAfter=t,null}_getOrCreateRecordForKey(n,t){if(this._records.has(n)){let r=this._records.get(n);this._maybeAddToChanges(r,t);let o=r._prev,s=r._next;return o&&(o._next=s),s&&(s._prev=o),r._next=null,r._prev=null,r}let i=new Eh(n);return this._records.set(n,i),i.currentValue=t,this._addToAdditions(i),i}_reset(){if(this.isDirty){let n;for(this._previousMapHead=this._mapHead,n=this._previousMapHead;n!==null;n=n._next)n._nextPrevious=n._next;for(n=this._changesHead;n!==null;n=n._nextChanged)n.previousValue=n.currentValue;for(n=this._additionsHead;n!=null;n=n._nextAdded)n.previousValue=n.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(n,t){Object.is(t,n.currentValue)||(n.previousValue=n.currentValue,n.currentValue=t,this._addToChanges(n))}_addToAdditions(n){this._additionsHead===null?this._additionsHead=this._additionsTail=n:(this._additionsTail._nextAdded=n,this._additionsTail=n)}_addToChanges(n){this._changesHead===null?this._changesHead=this._changesTail=n:(this._changesTail._nextChanged=n,this._changesTail=n)}_forEach(n,t){n instanceof Map?n.forEach(t):Object.keys(n).forEach(i=>t(n[i],i))}},Eh=class{key;previousValue=null;currentValue=null;_nextPrevious=null;_next=null;_prev=null;_nextAdded=null;_nextRemoved=null;_nextChanged=null;constructor(n){this.key=n}};function x_(){return new Ch([new gh])}var Ch=(()=>{class e{factories;static \u0275prov=A({token:e,providedIn:"root",factory:x_});constructor(t){this.factories=t}static create(t,i){if(i!=null){let r=i.factories.slice();t=t.concat(r)}return new e(t)}static extend(t){return{provide:e,useFactory:i=>e.create(t,i||x_()),deps:[[e,new Wf,new bl]]}}find(t){let i=this.factories.find(r=>r.supports(t));if(i!=null)return i;throw new M(901,!1)}}return e})();function D_(){return new xh([new wh])}var xh=(()=>{class e{static \u0275prov=A({token:e,providedIn:"root",factory:D_});factories;constructor(t){this.factories=t}static create(t,i){if(i){let r=i.factories.slice();t=t.concat(r)}return new e(t)}static extend(t){return{provide:e,useFactory:i=>e.create(t,i||D_()),deps:[[e,new Wf,new bl]]}}find(t){let i=this.factories.find(r=>r.supports(t));if(i)return i;throw new M(901,!1)}}return e})();function N_(e){ge(8);try{let{rootComponent:n,appProviders:t,platformProviders:i}=e,r=hk(i),o=[t_({}),{provide:zt,useExisting:ih},cy,...t||[]],s=new Ss({providers:o,parent:r,debugName:"",runEnvironmentInitializers:!1});return dk({r3Injector:s.injector,platformInjector:r,rootComponent:n})}catch(n){return Promise.reject(n)}finally{ge(9)}}var tu=new WeakSet,S_="",iu=[];function I_(e){return e.get(Xf,L0)}function R_(){let e=[{provide:Xf,useFactory:()=>{let n=!0;{let t=y(xn);n=!!window._ejsas?.[t]}return n&&At("NgEventReplay"),n}}];return e.push({provide:Gt,useValue:()=>{let n=y(Ct),{injector:t}=n;if(!tu.has(n)){let i=y(em);if(I_(t)){G0();let r=t.get(xn),o=H0(r,(s,a,c)=>{s.nodeType===Node.ELEMENT_NODE&&(V0(s,a,c),B0(s,i))});n.onDestroy(o)}}},multi:!0},{provide:Ei,useFactory:()=>{let n=y(Ct),{injector:t}=n;return()=>{if(!I_(t)||tu.has(n))return;tu.add(n);let i=t.get(xn);n.onDestroy(()=>{tu.delete(n),mh(i)}),n.whenStable().then(()=>{if(n.destroyed)return;let r=t.get($0);wk(r,t);let o=t.get(em);o.get(S_)?.forEach(U0),o.delete(S_);let s=r.instance;J0(t)?n.onDestroy(()=>s.cleanUp()):s.cleanUp()})}},multi:!0}),e}var wk=(e,n)=>
7{let t=n.get(xn),i=window._ejsas[t],r=e.instance=new w_(new Xl(i.c));for(let a of i.et)r.addEvent(a);for(let a of i.etc)r.addEvent(a);let o=__(t);r.replayEarlyEventInfos(o),mh(t);let s=new eu(a=>{_k(n,a,a.currentTarget)});b_(r,s)};function _k(e,n,t){let i=(t&&t.getAttribute(Os))??"";/d\d+/.test(i)?Ek(i,e,n,t):n.eventPhase===fh.REPLAY&&tm(n,t)}function Ek(e,n,t,i){iu.push({event:t,currentTarget:i}),Aw(n,e,Ck)}function Ck(e){let n=[...iu],t=new Set(e);iu=[];for(let{event:i,currentTarget:r}of n){let o=r.getAttribute(Os);t.has(o)?tm(i,r):iu.push({event:i,currentTarget:r})}}var M_=!1;function xk(){M_||(M_=!0,Z0(),kw(),Yw(),Nw(),yw(),uw(),Zb(),Ab())}function Dk(e){return e.whenStable()}function P_(){let e=[{provide:ks,useFactory:()=>{let n=!0;return n=!!y(fr,{optional:!0})?.get(nm,null),n&&At("NgHydration"),n}},{provide:Gt,useValue:()=>{Gb(!1),y(ks)&&(tb(po()),xk())},multi:!0}];return e.push({provide:Jf,useFactory:()=>y(ks)},{provide:Ei,useFactory:()=>{if(y(ks)){let n=y(Ct);return()=>{Dk(n).then(()=>{n.destroyed||km(n)})}}return()=>{}},multi:!0}),Wt(e)}function _r(e){return typeof e=="boolean"?e:e!=null&&e!=="false"}var j_=null;function Vt(){return j_}function Dh(e){j_??=e}var zs=class{},Sh=(()=>{class e{historyGo(t){throw new Error("")}static \u0275fac=function(i){return new(i||e)};static \u0275prov=A({token:e,factory:()=>y(V_),providedIn:"platform"})}return e})();var V_=(()=>{class e extends Sh{_location;_history;_doc=y(Me);constructor(){super(),this._location=window.location,this._history=window.history}getBaseHrefFromDOM(){return Vt().getBaseHref(this._doc)}onPopState(t){let i=Vt().getGlobalEventTarget(this._doc,"window");return i.addEventListener("popstate",t,!1),()=>i.removeEventListener("popstate",t)}onHashChange(t){let i=Vt().getGlobalEventTarget(this._doc,"window");return i.addEventListener("hashchange",t,!1),()=>i.removeEventListener("hashchange",t)}get href(){return this._location.href}get protocol(){return this._location.protocol}get hostname(){return this._location.hostname}get port(){return this._location.port}get pathname(){return this._location.pathname}get search(){return this._location.search}get hash(){return this._location.hash}set pathname(t){this._location.pathname=t}pushState(t,i,r){this._history.pushState(t,i,r)}replaceState(t,i,r){this._history.replaceState(t,i,r)}forward(){this._history.forward()}back(){this._history.back()}historyGo(t=0){this._history.go(t)}getState(){return this._history.state}static \u0275fac=function(i){return new(i||e)};static \u0275prov=A({token:e,factory:()=>new e,providedIn:"platform"})}return e})();function B_(e,n){return e?n?e.endsWith("/")?n.startsWith("/")?e+n.slice(1):e+n:n.startsWith("/")?e+n:`${e}/${n}`:e:n}function F_(e){let n=e.search(/#|\?|$/);return e[n-1]==="/"?e.slice(0,n-1)+e.slice(n):e}function Di(e){return e&&e[0]!=="?"?`?${e}`:e}var _o=(()=>{class e{historyGo(t){throw new Error("")}static \u0275fac=function(i){return new(i||e)};static \u0275prov=A({token:e,factory:()=>y($_),providedIn:"root"})}return e})(),U_=new P(""),$_=(()=>{class e extends _o{_platformLocation;_baseHref;_removeListenerFns=[];constructor(t,i){super(),this._platformLocation=t,this._baseHref=i??this._platformLocation.getBaseHrefFromDOM()??y(Me).location?.origin??""}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(t){this._removeListenerFns.push(this._platformLocation.onPopState(t),this._platformLocation.onHashChange(t))}getBaseHref(){return this._baseHref}prepareExternalUrl(t){return B_(this._baseHref,t)}path(t=!1){let i=this._platformLocation.pathname+Di(this._platformLocation.search),r=this._platformLocation.hash;return r&&t?`${i}${r}`:i}pushState(t,i,r,o){let s=this.prepareExternalUrl(r+Di(o));this._platformLocation.pushState(t,i,s)}replaceState(t,i,r,o){let s=this.prepareExternalUrl(r+Di(o));this._platformLocation.replaceState(t,i,s)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(t=0){this._platformLocation.historyGo?.(t)}static \u0275fac=function(i){return new(i||e)($(Sh),$(U_,8))};static \u0275prov=A({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})(),Eo=(()=>
vendor: 4,435 bytes, line 7
7{class e{_subject=new ke;_basePath;_locationStrategy;_urlChangeListeners=[];_urlChangeSubscription=null;constructor(t){this._locationStrategy=t;let i=this._locationStrategy.getBaseHref();this._basePath=Mk(F_(L_(i))),this._locationStrategy.onPopState(r=>{this._subject.next({url:this.path(!0),pop:!0,state:r.state,type:r.type})})}ngOnDestroy(){this._urlChangeSubscription?.unsubscribe(),this._urlChangeListeners=[]}path(t=!1){return this.normalize(this._locationStrategy.path(t))}getState(){return this._locationStrategy.getState()}isCurrentPathEqualTo(t,i=""){return this.path()==this.normalize(t+Di(i))}normalize(t){return e.stripTrailingSlash(Ik(this._basePath,L_(t)))}prepareExternalUrl(t){return t&&t[0]!=="/"&&(t="/"+t),this._locationStrategy.prepareExternalUrl(t)}go(t,i="",r=null){this._locationStrategy.pushState(r,"",t,i),this._notifyUrlChangeListeners(this.prepareExternalUrl(t+Di(i)),r)}replaceState(t,i="",r=null){this._locationStrategy.replaceState(r,"",t,i),this._notifyUrlChangeListeners(this.prepareExternalUrl(t+Di(i)),r)}forward(){this._locationStrategy.forward()}back(){this._locationStrategy.back()}historyGo(t=0){this._locationStrategy.historyGo?.(t)}onUrlChange(t){return this._urlChangeListeners.push(t),this._urlChangeSubscription??=this.subscribe(i=>{this._notifyUrlChangeListeners(i.url,i.state)}),()=>{let i=this._urlChangeListeners.indexOf(t);this._urlChangeListeners.splice(i,1),this._urlChangeListeners.length===0&&(this._urlChangeSubscription?.unsubscribe(),this._urlChangeSubscription=null)}}_notifyUrlChangeListeners(t="",i){this._urlChangeListeners.forEach(r=>r(t,i))}subscribe(t,i,r){return this._subject.subscribe({next:t,error:i??void 0,complete:r??void 0})}static normalizeQueryParams=Di;static joinWithSlash=B_;static stripTrailingSlash=F_;static \u0275fac=function(i){return new(i||e)($(_o))};static \u0275prov=A({token:e,factory:()=>Sk(),providedIn:"root"})}return e})();function Sk(){return new Eo($(_o))}function Ik(e,n){if(!e||!n.startsWith(e))return n;let t=n.substring(e.length);return t===""||["/",";","?","#"].includes(t[0])?t:n}function L_(e){return e.replace(/\/index.html$/,"")}function Mk(e){if(new RegExp("^(https?:)?//").test(e)){let[,t]=e.split(/\/\/[^\/]+/);return t}return e}var Ih=/\s+/,H_=[],Er=(()=>{class e{_ngEl;_renderer;initialClasses=H_;rawClass;stateMap=new Map;constructor(t,i){this._ngEl=t,this._renderer=i}set klass(t){this.initialClasses=t!=null?t.trim().split(Ih):H_}set ngClass(t){this.rawClass=typeof t=="string"?t.trim().split(Ih):t}ngDoCheck(){for(let i of this.initialClasses)this._updateState(i,!0);let t=this.rawClass;if(Array.isArray(t)||t instanceof Set)for(let i of t)this._updateState(i,!0);else if(t!=null)for(let i of Object.keys(t))this._updateState(i,!!t[i]);this._applyStateDiff()}_updateState(t,i){let r=this.stateMap.get(t);r!==void 0?(r.enabled!==i&&(r.changed=!0,r.enabled=i),r.touched=!0):this.stateMap.set(t,{enabled:i,changed:!0,touched:!0})}_applyStateDiff(){for(let t of this.stateMap){let i=t[0],r=t[1];r.changed?(this._toggleClass(i,r.enabled),r.changed=!1):r.touched||(r.enabled&&this._toggleClass(i,!1),this.stateMap.delete(i)),r.touched=!1}}_toggleClass(t,i){t=t.trim(),t.length>0&&t.split(Ih).forEach(r=>{i?this._renderer.addClass(this._ngEl.nativeElement,r):this._renderer.removeClass(this._ngEl.nativeElement,r)})}static \u0275fac=function(i){return new(i||e)(D(Xe),D(Kn))};static \u0275dir=De({type:e,selectors:[["","ngClass",""]],inputs:{klass:[0,"class","klass"],ngClass:"ngClass"}})}return e})();var su=class{$implicit;ngForOf;index;count;constructor(n,t,i,r){this.$implicit=n,this.ngForOf=t,this.index=i,this.count=r}get first(){return this.index===0}get last(){return this.index===this.count-1}get even(){return this.index%2===0}get odd(){return!this.even}},Jt=(()=>{class e{_viewContainer;_template;_differs;set ngForOf(t){this._ngForOf=t,this._ngForOfDirty=!0}set ngForTrackBy(t){this._trackByFn=t}get ngForTrackBy(){return this._trackByFn}_ngForOf=null;_ngForOfDirty=!0;_differ=null;_trackByFn;constructor(t,i,r){this._viewContainer=t,this._template=i,this._differs=r}set ngForTemplate(t){t&&(this._template=t)}ngDoCheck(){if(this._ngForOfDirty){this._ngForOfDirty=!1;let t=this._ngForOf;!this._differ&&t&&(this._differ=this._differs.find(t).create(this.ngForTrackBy))}if(this._differ){let t=this._differ.diff(this._ngForOf);t&&this._applyChanges(t)}}_applyChanges(t){let i=this._viewContainer;t.forEachOperation((r,o,s)=>
vendor: 6,081 bytes, line 7
7{if(r.previousIndex==null)i.createEmbeddedView(this._template,new su(r.item,this._ngForOf,-1,-1),s===null?void 0:s);else if(s==null)i.remove(o===null?void 0:o);else if(o!==null){let a=i.get(o);i.move(a,s),z_(a,r)}});for(let r=0,o=i.length;r<o;r++){let a=i.get(r).context;a.index=r,a.count=o,a.ngForOf=this._ngForOf}t.forEachIdentityChange(r=>{let o=i.get(r.currentIndex);z_(o,r)})}static ngTemplateContextGuard(t,i){return!0}static \u0275fac=function(i){return new(i||e)(D(Jn),D(_i),D(Ch))};static \u0275dir=De({type:e,selectors:[["","ngFor","","ngForOf",""]],inputs:{ngForOf:"ngForOf",ngForTrackBy:"ngForTrackBy",ngForTemplate:"ngForTemplate"}})}return e})();function z_(e,n){e.context.$implicit=n.item}var ni=(()=>{class e{_viewContainer;_context=new au;_thenTemplateRef=null;_elseTemplateRef=null;_thenViewRef=null;_elseViewRef=null;constructor(t,i){this._viewContainer=t,this._thenTemplateRef=i}set ngIf(t){this._context.$implicit=this._context.ngIf=t,this._updateView()}set ngIfThen(t){G_(t,!1),this._thenTemplateRef=t,this._thenViewRef=null,this._updateView()}set ngIfElse(t){G_(t,!1),this._elseTemplateRef=t,this._elseViewRef=null,this._updateView()}_updateView(){this._context.$implicit?this._thenViewRef||(this._viewContainer.clear(),this._elseViewRef=null,this._thenTemplateRef&&(this._thenViewRef=this._viewContainer.createEmbeddedView(this._thenTemplateRef,this._context))):this._elseViewRef||(this._viewContainer.clear(),this._thenViewRef=null,this._elseTemplateRef&&(this._elseViewRef=this._viewContainer.createEmbeddedView(this._elseTemplateRef,this._context)))}static ngIfUseIfTypeGuard;static ngTemplateGuard_ngIf;static ngTemplateContextGuard(t,i){return!0}static \u0275fac=function(i){return new(i||e)(D(Jn),D(_i))};static \u0275dir=De({type:e,selectors:[["","ngIf",""]],inputs:{ngIf:"ngIf",ngIfThen:"ngIfThen",ngIfElse:"ngIfElse"}})}return e})(),au=class{$implicit=null;ngIf=null};function G_(e,n){if(e&&!e.createEmbeddedView)throw new M(2020,!1)}var Cr=(()=>{class e{_ngEl;_differs;_renderer;_ngStyle=null;_differ=null;constructor(t,i,r){this._ngEl=t,this._differs=i,this._renderer=r}set ngStyle(t){this._ngStyle=t,!this._differ&&t&&(this._differ=this._differs.find(t).create())}ngDoCheck(){if(this._differ){let t=this._differ.diff(this._ngStyle);t&&this._applyChanges(t)}}_setStyle(t,i){let[r,o]=t.split("."),s=r.indexOf("-")===-1?void 0:dn.DashCase;i!=null?this._renderer.setStyle(this._ngEl.nativeElement,r,o?`${i}${o}`:i,s):this._renderer.removeStyle(this._ngEl.nativeElement,r,s)}_applyChanges(t){t.forEachRemovedItem(i=>this._setStyle(i.key,null)),t.forEachAddedItem(i=>this._setStyle(i.key,i.currentValue)),t.forEachChangedItem(i=>this._setStyle(i.key,i.currentValue))}static \u0275fac=function(i){return new(i||e)(D(Xe),D(xh),D(Kn))};static \u0275dir=De({type:e,selectors:[["","ngStyle",""]],inputs:{ngStyle:"ngStyle"}})}return e})();function Tk(e,n){return new M(2100,!1)}var Mh=class{createSubscription(n,t,i){return Dt(()=>n.subscribe({next:t,error:i}))}dispose(n){Dt(()=>n.unsubscribe())}},Th=class{createSubscription(n,t,i){return n.then(r=>t?.(r),r=>i?.(r)),{unsubscribe:()=>{t=null,i=null}}}dispose(n){n.unsubscribe()}},Ak=new Th,kk=new Mh,xr=(()=>{class e{_ref;_latestValue=null;markForCheckOnValueUpdate=!0;_subscription=null;_obj=null;_strategy=null;applicationErrorHandler=y(gt);constructor(t){this._ref=t}ngOnDestroy(){this._subscription&&this._dispose(),this._ref=null}transform(t){if(!this._obj){if(t)try{this.markForCheckOnValueUpdate=!1,this._subscribe(t)}finally{this.markForCheckOnValueUpdate=!0}return this._latestValue}return t!==this._obj?(this._dispose(),this.transform(t)):this._latestValue}_subscribe(t){this._obj=t,this._strategy=this._selectStrategy(t),this._subscription=this._strategy.createSubscription(t,i=>this._updateLatestValue(t,i),i=>this.applicationErrorHandler(i))}_selectStrategy(t){if(Xn(t))return Ak;if(zl(t))return kk;throw Tk(e,t)}_dispose(){this._strategy.dispose(this._subscription),this._latestValue=null,this._subscription=null,this._obj=null}_updateLatestValue(t,i){t===this._obj&&(this._latestValue=i,this.markForCheckOnValueUpdate&&this._ref?.markForCheck())}static \u0275fac=function(i){return new(i||e)(D(wr,16))};static \u0275pipe=jm({name:"async",type:e,pure:!1})}return e})();var K=(()=>{class e{static \u0275fac=function(i){return new(i||e)};static \u0275mod=Sn({type:e});static \u0275inj=rn({})}return e})();function Gs(e,n){n=encodeURIComponent(n);for(let t of e.split(";")){let i=t.indexOf("="),[r,o]=i==-1?[t,""]:[t.slice(0,i),t.slice(i+1)];if(r.trim()===n)return decodeURIComponent(o)}return null}var Dr=class{};var Ah="browser";function et(e){return e===Ah}var lu=new P(""),Ph=(()=>{class e{_zone;_plugins;_eventNameToPlugin=new Map;constructor(t,i){this._zone=i,t.forEach(r=>{r.manager=this}),this._plugins=t.slice().reverse()}addEventListener(t,i,r,o){return this._findPluginFor(i).addEventListener(t,i,r,o)}getZone(){return this._zone}_findPluginFor(t){let i=this._eventNameToPlugin.get(t);if(i)return i;if(i=this._plugins.find(o=>o.supports(t)),!i)throw new M(5101,!1);return this._eventNameToPlugin.set(t,i),i}static \u0275fac=function(i){return new(i||e)($(lu),$(Oe))};static \u0275prov=A({token:e,factory:e.\u0275fac})}return e})(),Ws=class{_doc;constructor(n){this._doc=n}manager},kh="ng-app-id";function W_(e){for(let n of e)n.remove()}function q_(e,n){let t=n.createElement("style");return t.textContent=e,t}function Ok(e,n,t,i){let r=e.head?.querySelectorAll(`style[${kh}="${n}"],link[${kh}="${n}"]`);if(r)for(let o of r)o.removeAttribute(kh),o instanceof HTMLLinkElement?i.set(o.href.slice(o.href.lastIndexOf("/")+1),{usage:0,elements:[o]}):o.textContent&&t.set(o.textContent,{usage:0,elements:[o]})}function Nh(e,n){let t=n.createElement("link");return t.setAttribute("rel","stylesheet"),t.setAttribute("href",e),t}var Fh=(()=>{class e{doc;appId;nonce;inline=new Map;external=new Map;hosts=new Set;constructor(t,i,r,o={}){this.doc=t,this.appId=i,this.nonce=r,Ok(t,i,this.inline,this.external),this.hosts.add(t.head)}addStyles(t,i){for(let r of t)this.addUsage(r,this.inline,q_);
vendor: 8,715 bytes, line 7
7i?.forEach(r=>this.addUsage(r,this.external,Nh))}removeStyles(t,i){for(let r of t)this.removeUsage(r,this.inline);i?.forEach(r=>this.removeUsage(r,this.external))}addUsage(t,i,r){let o=i.get(t);o?o.usage++:i.set(t,{usage:1,elements:[...this.hosts].map(s=>this.addElement(s,r(t,this.doc)))})}removeUsage(t,i){let r=i.get(t);r&&(r.usage--,r.usage<=0&&(W_(r.elements),i.delete(t)))}ngOnDestroy(){for(let[,{elements:t}]of[...this.inline,...this.external])W_(t);this.hosts.clear()}addHost(t){this.hosts.add(t);for(let[i,{elements:r}]of this.inline)r.push(this.addElement(t,q_(i,this.doc)));for(let[i,{elements:r}]of this.external)r.push(this.addElement(t,Nh(i,this.doc)))}removeHost(t){this.hosts.delete(t)}addElement(t,i){return this.nonce&&i.setAttribute("nonce",this.nonce),t.appendChild(i)}static \u0275fac=function(i){return new(i||e)($(Me),$(xn),$(_l,8),$(je))};static \u0275prov=A({token:e,factory:e.\u0275fac})}return e})(),Oh={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"},Lh=/%COMP%/g;var Z_="%COMP%",Nk=`_nghost-${Z_}`,Rk=`_ngcontent-${Z_}`,Pk=!0,Fk=new P("",{providedIn:"root",factory:()=>Pk});function Lk(e){return Rk.replace(Lh,e)}function jk(e){return Nk.replace(Lh,e)}function Q_(e,n){return n.map(t=>t.replace(Lh,e))}var jh=(()=>{class e{eventManager;sharedStylesHost;appId;removeStylesOnCompDestroy;doc;platformId;ngZone;nonce;tracingService;rendererByCompId=new Map;defaultRenderer;platformIsServer;constructor(t,i,r,o,s,a,c,d=null,m=null){this.eventManager=t,this.sharedStylesHost=i,this.appId=r,this.removeStylesOnCompDestroy=o,this.doc=s,this.platformId=a,this.ngZone=c,this.nonce=d,this.tracingService=m,this.platformIsServer=!1,this.defaultRenderer=new qs(t,s,c,this.platformIsServer,this.tracingService)}createRenderer(t,i){if(!t||!i)return this.defaultRenderer;let r=this.getOrCreateRenderer(t,i);return r instanceof cu?r.applyToHost(t):r instanceof Ys&&r.applyStyles(),r}getOrCreateRenderer(t,i){let r=this.rendererByCompId,o=r.get(i.id);if(!o){let s=this.doc,a=this.ngZone,c=this.eventManager,d=this.sharedStylesHost,m=this.removeStylesOnCompDestroy,h=this.platformIsServer,w=this.tracingService;switch(i.encapsulation){case Yn.Emulated:o=new cu(c,d,i,this.appId,m,s,a,h,w);break;case Yn.ShadowDom:return new Rh(c,d,t,i,s,a,this.nonce,h,w);default:o=new Ys(c,d,i,m,s,a,h,w);break}r.set(i.id,o)}return o}ngOnDestroy(){this.rendererByCompId.clear()}componentReplaced(t){this.rendererByCompId.delete(t)}static \u0275fac=function(i){return new(i||e)($(Ph),$(Fh),$(xn),$(Fk),$(Me),$(je),$(Oe),$(_l),$(hr,8))};static \u0275prov=A({token:e,factory:e.\u0275fac})}return e})(),qs=class{eventManager;doc;ngZone;platformIsServer;tracingService;data=Object.create(null);throwOnSyntheticProps=!0;constructor(n,t,i,r,o){this.eventManager=n,this.doc=t,this.ngZone=i,this.platformIsServer=r,this.tracingService=o}destroy(){}destroyNode=null;createElement(n,t){return t?this.doc.createElementNS(Oh[t]||t,n):this.doc.createElement(n)}createComment(n){return this.doc.createComment(n)}createText(n){return this.doc.createTextNode(n)}appendChild(n,t){(Y_(n)?n.content:n).appendChild(t)}insertBefore(n,t,i){n&&(Y_(n)?n.content:n).insertBefore(t,i)}removeChild(n,t){t.remove()}selectRootElement(n,t){let i=typeof n=="string"?this.doc.querySelector(n):n;if(!i)throw new M(-5104,!1);return t||(i.textContent=""),i}parentNode(n){return n.parentNode}nextSibling(n){return n.nextSibling}setAttribute(n,t,i,r){if(r){t=r+":"+t;let o=Oh[r];o?n.setAttributeNS(o,t,i):n.setAttribute(t,i)}else n.setAttribute(t,i)}removeAttribute(n,t,i){if(i){let r=Oh[i];r?n.removeAttributeNS(r,t):n.removeAttribute(`${i}:${t}`)}else n.removeAttribute(t)}addClass(n,t){n.classList.add(t)}removeClass(n,t){n.classList.remove(t)}setStyle(n,t,i,r){r&(dn.DashCase|dn.Important)?n.style.setProperty(t,i,r&dn.Important?"important":""):n.style[t]=i}removeStyle(n,t,i){i&dn.DashCase?n.style.removeProperty(t):n.style[t]=""}setProperty(n,t,i){n!=null&&(n[t]=i)}setValue(n,t){n.nodeValue=t}listen(n,t,i,r){if(typeof n=="string"&&(n=Vt().getGlobalEventTarget(this.doc,n),!n))throw new M(5102,!1);let o=this.decoratePreventDefault(i);return this.tracingService?.wrapEventListener&&(o=this.tracingService.wrapEventListener(n,t,o)),this.eventManager.addEventListener(n,t,o,r)}decoratePreventDefault(n){return t=>{if(t==="__ngUnwrap__")return n;n(t)===!1&&t.preventDefault()}}};function Y_(e){return e.tagName==="TEMPLATE"&&e.content!==void 0}var Rh=class extends qs{sharedStylesHost;hostEl;shadowRoot;constructor(n,t,i,r,o,s,a,c,d){super(n,o,s,c,d),this.sharedStylesHost=t,this.hostEl=i,this.shadowRoot=i.attachShadow({mode:"open"}),this.sharedStylesHost.addHost(this.shadowRoot);let m=r.styles;m=Q_(r.id,m);for(let w of m){let g=document.createElement("style");a&&g.setAttribute("nonce",a),g.textContent=w,this.shadowRoot.appendChild(g)}let h=r.getExternalStyles?.();if(h)for(let w of h){let g=Nh(w,o);a&&g.setAttribute("nonce",a),this.shadowRoot.appendChild(g)}}nodeOrShadowRoot(n){return n===this.hostEl?this.shadowRoot:n}appendChild(n,t){return super.appendChild(this.nodeOrShadowRoot(n),t)}insertBefore(n,t,i){return super.insertBefore(this.nodeOrShadowRoot(n),t,i)}removeChild(n,t){return super.removeChild(null,t)}parentNode(n){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(n)))}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}},Ys=class extends qs{sharedStylesHost;removeStylesOnCompDestroy;styles;styleUrls;constructor(n,t,i,r,o,s,a,c,d){super(n,o,s,a,c),this.sharedStylesHost=t,this.removeStylesOnCompDestroy=r;let m=i.styles;this.styles=d?Q_(d,m):m,this.styleUrls=i.getExternalStyles?.(d)}applyStyles(){this.sharedStylesHost.addStyles(this.styles,this.styleUrls)}destroy(){this.removeStylesOnCompDestroy&&this.sharedStylesHost.removeStyles(this.styles,this.styleUrls)}},cu=class extends Ys{contentAttr;hostAttr;constructor(n,t,i,r,o,s,a,c,d){let m=r+"-"+i.id;super(n,t,i,o,s,a,c,d,m),this.contentAttr=Lk(m),this.hostAttr=jk(m)}applyToHost(n){this.applyStyles(),this.setAttribute(n,this.hostAttr,"")}createElement(n,t){let i=super.createElement(n,t);return super.setAttribute(i,this.contentAttr,""),i}};var uu=class e extends zs{supportsDOMEvents=!0;static makeCurrent(){Dh(new e)}onAndCancel(n,t,i,r){return n.addEventListener(t,i,r),()=>{n.removeEventListener(t,i,r)}}dispatchEvent(n,t){n.dispatchEvent(t)}remove(n){n.remove()}createElement(n,t){return t=t||this.getDefaultDocument(),t.createElement(n)}createHtmlDocument(){return document.implementation.createHTMLDocument("fakeTitle")}getDefaultDocument(){return document}isElementNode(n){return n.nodeType===Node.ELEMENT_NODE}isShadowRoot(n){return n instanceof DocumentFragment}getGlobalEventTarget(n,t){return t==="window"?window:t==="document"?n:t==="body"?n.body:null}getBaseHref(n){let t=Vk();return t==null?null:Bk(t)}resetBaseElement(){Zs=null}getUserAgent(){return window.navigator.userAgent}getCookie(n){return Gs(document.cookie,n)}},Zs=null;function Vk(){return Zs=Zs||document.head.querySelector("base"),Zs?Zs.getAttribute("href"):null}function Bk(e){return new URL(e,document.baseURI).pathname}var Uk=(()=>{class e{build(){return new XMLHttpRequest}static \u0275fac=function(i){return new(i||e)};static \u0275prov=A({token:e,factory:e.\u0275fac})}return e})(),J_=(()=>{class e extends Ws{constructor(t){super(t)}supports(t){return!0}addEventListener(t,i,r,o){return t.addEventListener(i,r,o),()=>this.removeEventListener(t,i,r,o)}removeEventListener(t,i,r,o){return t.removeEventListener(i,r,o)}static \u0275fac=function(i){return new(i||e)($(Me))};static \u0275prov=A({token:e,factory:e.\u0275fac})}return e})(),K_=["alt","control","meta","shift"],$k={"\b":"Backspace","	":"Tab","\x7F":"Delete","\x1B":"Escape",Del:"Delete",Esc:"Escape",Left:"ArrowLeft",Right:"ArrowRight",Up:"ArrowUp",Down:"ArrowDown",Menu:"ContextMenu",Scroll:"ScrollLock",Win:"OS"},Hk={alt:e=>e.altKey,control:e=>e.ctrlKey,meta:e=>e.metaKey,shift:e=>e.shiftKey},X_=(()=>{class e extends Ws{constructor(t){super(t)}supports(t){return e.parseEventName(t)!=null}addEventListener(t,i,r,o){let s=e.parseEventName(i),a=e.eventCallback(s.fullKey,r,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>Vt().onAndCancel(t,s.domEventName,a,o))}static parseEventName(t){let i=t.toLowerCase().split("."),r=i.shift();if(i.length===0||!(r==="keydown"||r==="keyup"))return null;let o=e._normalizeKey(i.pop()),s="",a=i.indexOf("code");if(a>-1&&(i.splice(a,1),s="code."),K_.forEach(d=>{let m=i.indexOf(d);m>-1&&(i.splice(m,1),s+=d+".")}),s+=o,i.length!=0||o.length===0)return null;
7let c={};return c.domEventName=r,c.fullKey=s,c}static matchEventFullKeyCode(t,i){let r=$k[t.key]||t.key,o="";return i.indexOf("code.")>-1&&(r=t.code,o="code."),r==null||!r?!1:(r=r.toLowerCase(),r===" "?r="space":r==="."&&(r="dot"),K_.forEach(s=>{if(s!==r){let a=Hk[s];a(t)&&(o+=s+".")}}),o+=r,o===i)}static eventCallback(t,i,r){return o=>{e.matchEventFullKeyCode(o,t)&&r.runGuarded(()=>i(o))}}static _normalizeKey(t){return t==="esc"?"escape":t}static \u0275fac=function(i){return new(i||e)($(Me))};static \u0275prov=A({token:e,factory:e.\u0275fac})}return e})();function Vh(e,n){return N_(I({rootComponent:e},zk(n)))}function zk(e){return{appProviders:[...Zk,...e?.providers??[]],platformProviders:Yk}}function Gk(){uu.makeCurrent()}function Wk(){return new Ht}function qk(){return Zf(document),document}var Yk=[{provide:je,useValue:Ah},{provide:wl,useValue:Gk,multi:!0},{provide:Me,useFactory:qk}];var Zk=[{provide:ls,useValue:"root"},{provide:Ht,useFactory:Wk},{provide:lu,useClass:J_,multi:!0,deps:[Me]},{provide:lu,useClass:X_,multi:!0,deps:[Me]},jh,Fh,Ph,{provide:lr,useExisting:jh},{provide:Dr,useClass:Uk},[]];var xo=class{},Do=class{},gn=class e{headers;normalizedNames=new Map;lazyInit;lazyUpdate=null;constructor(n){n?typeof n=="string"?this.lazyInit=()=>{this.headers=new Map,n.split(`
8`).forEach(t=>{let i=t.indexOf(":");if(i>0){let r=t.slice(0,i),o=t.slice(i+1).trim();this.addHeaderEntry(r,o)}})}:typeof Headers<"u"&&n instanceof Headers?(this.headers=new Map,n.forEac
vendor: 10,410 bytes, line 8
8h((t,i)=>{this.addHeaderEntry(i,t)})):this.lazyInit=()=>{this.headers=new Map,Object.entries(n).forEach(([t,i])=>{this.setHeaderEntries(t,i)})}:this.headers=new Map}has(n){return this.init(),this.headers.has(n.toLowerCase())}get(n){this.init();let t=this.headers.get(n.toLowerCase());return t&&t.length>0?t[0]:null}keys(){return this.init(),Array.from(this.normalizedNames.values())}getAll(n){return this.init(),this.headers.get(n.toLowerCase())||null}append(n,t){return this.clone({name:n,value:t,op:"a"})}set(n,t){return this.clone({name:n,value:t,op:"s"})}delete(n,t){return this.clone({name:n,value:t,op:"d"})}maybeSetNormalizedName(n,t){this.normalizedNames.has(t)||this.normalizedNames.set(t,n)}init(){this.lazyInit&&(this.lazyInit instanceof e?this.copyFrom(this.lazyInit):this.lazyInit(),this.lazyInit=null,this.lazyUpdate&&(this.lazyUpdate.forEach(n=>this.applyUpdate(n)),this.lazyUpdate=null))}copyFrom(n){n.init(),Array.from(n.headers.keys()).forEach(t=>{this.headers.set(t,n.headers.get(t)),this.normalizedNames.set(t,n.normalizedNames.get(t))})}clone(n){let t=new e;return t.lazyInit=this.lazyInit&&this.lazyInit instanceof e?this.lazyInit:this,t.lazyUpdate=(this.lazyUpdate||[]).concat([n]),t}applyUpdate(n){let t=n.name.toLowerCase();switch(n.op){case"a":case"s":let i=n.value;if(typeof i=="string"&&(i=[i]),i.length===0)return;this.maybeSetNormalizedName(n.name,t);let r=(n.op==="a"?this.headers.get(t):void 0)||[];r.push(...i),this.headers.set(t,r);break;case"d":let o=n.value;if(!o)this.headers.delete(t),this.normalizedNames.delete(t);else{let s=this.headers.get(t);if(!s)return;s=s.filter(a=>o.indexOf(a)===-1),s.length===0?(this.headers.delete(t),this.normalizedNames.delete(t)):this.headers.set(t,s)}break}}addHeaderEntry(n,t){let i=n.toLowerCase();this.maybeSetNormalizedName(n,i),this.headers.has(i)?this.headers.get(i).push(t):this.headers.set(i,[t])}setHeaderEntries(n,t){let i=(Array.isArray(t)?t:[t]).map(o=>o.toString()),r=n.toLowerCase();this.headers.set(r,i),this.maybeSetNormalizedName(n,r)}forEach(n){this.init(),Array.from(this.normalizedNames.keys()).forEach(t=>n(this.normalizedNames.get(t),this.headers.get(t)))}};var fu=class{encodeKey(n){return eE(n)}encodeValue(n){return eE(n)}decodeKey(n){return decodeURIComponent(n)}decodeValue(n){return decodeURIComponent(n)}};function Qk(e,n){let t=new Map;return e.length>0&&e.replace(/^\?/,"").split("&").forEach(r=>{let o=r.indexOf("="),[s,a]=o==-1?[n.decodeKey(r),""]:[n.decodeKey(r.slice(0,o)),n.decodeValue(r.slice(o+1))],c=t.get(s)||[];c.push(a),t.set(s,c)}),t}var Kk=/%(\d[a-f0-9])/gi,Jk={40:"@","3A":":",24:"$","2C":",","3B":";","3D":"=","3F":"?","2F":"/"};function eE(e){return encodeURIComponent(e).replace(Kk,(n,t)=>Jk[t]??n)}function du(e){return`${e}`}var ii=class e{map;encoder;updates=null;cloneFrom=null;constructor(n={}){if(this.encoder=n.encoder||new fu,n.fromString){if(n.fromObject)throw new M(2805,!1);this.map=Qk(n.fromString,this.encoder)}else n.fromObject?(this.map=new Map,Object.keys(n.fromObject).forEach(t=>{let i=n.fromObject[t],r=Array.isArray(i)?i.map(du):[du(i)];this.map.set(t,r)})):this.map=null}has(n){return this.init(),this.map.has(n)}get(n){this.init();let t=this.map.get(n);return t?t[0]:null}getAll(n){return this.init(),this.map.get(n)||null}keys(){return this.init(),Array.from(this.map.keys())}append(n,t){return this.clone({param:n,value:t,op:"a"})}appendAll(n){let t=[];return Object.keys(n).forEach(i=>{let r=n[i];Array.isArray(r)?r.forEach(o=>{t.push({param:i,value:o,op:"a"})}):t.push({param:i,value:r,op:"a"})}),this.clone(t)}set(n,t){return this.clone({param:n,value:t,op:"s"})}delete(n,t){return this.clone({param:n,value:t,op:"d"})}toString(){return this.init(),this.keys().map(n=>{let t=this.encoder.encodeKey(n);return this.map.get(n).map(i=>t+"="+this.encoder.encodeValue(i)).join("&")}).filter(n=>n!=="").join("&")}clone(n){let t=new e({encoder:this.encoder});return t.cloneFrom=this.cloneFrom||this,t.updates=(this.updates||[]).concat(n),t}init(){this.map===null&&(this.map=new Map),this.cloneFrom!==null&&(this.cloneFrom.init(),this.cloneFrom.keys().forEach(n=>this.map.set(n,this.cloneFrom.map.get(n))),this.updates.forEach(n=>{switch(n.op){case"a":case"s":let t=(n.op==="a"?this.map.get(n.param):void 0)||[];t.push(du(n.value)),this.map.set(n.param,t);break;case"d":if(n.value!==void 0){let i=this.map.get(n.param)||[],r=i.indexOf(du(n.value));r!==-1&&i.splice(r,1),i.length>0?this.map.set(n.param,i):this.map.delete(n.param)}else{this.map.delete(n.param);break}}}),this.cloneFrom=this.updates=null)}};var mu=class{map=new Map;set(n,t){return this.map.set(n,t),this}get(n){return this.map.has(n)||this.map.set(n,n.defaultValue()),this.map.get(n)}delete(n){return this.map.delete(n),this}has(n){return this.map.has(n)}keys(){return this.map.keys()}};function Xk(e){switch(e){case"DELETE":case"GET":case"HEAD":case"OPTIONS":case"JSONP":return!1;default:return!0}}function tE(e){return typeof ArrayBuffer<"u"&&e instanceof ArrayBuffer}function nE(e){return typeof Blob<"u"&&e instanceof Blob}function iE(e){return typeof FormData<"u"&&e instanceof FormData}function eO(e){return typeof URLSearchParams<"u"&&e instanceof URLSearchParams}var Qs="Content-Type",hu="Accept",zh="X-Request-URL",oE="text/plain",sE="application/json",aE=`${sE}, ${oE}, */*`,Co=class e{url;body=null;headers;context;reportProgress=!1;withCredentials=!1;credentials;keepalive=!1;cache;priority;mode;redirect;responseType="json";method;params;urlWithParams;transferCache;timeout;constructor(n,t,i,r){this.url=t,this.method=n.toUpperCase();let o;if(Xk(this.method)||r?(this.body=i!==void 0?i:null,o=r):o=i,o){if(this.reportProgress=!!o.reportProgress,this.withCredentials=!!o.withCredentials,this.keepalive=!!o.keepalive,o.responseType&&(this.responseType=o.responseType),o.headers&&(this.headers=o.headers),o.context&&(this.context=o.context),o.params&&(this.params=o.params),o.priority&&(this.priority=o.priority),o.cache&&(this.cache=o.cache),o.credentials&&(this.credentials=o.credentials),typeof o.timeout=="number"){if(o.timeout<1||!Number.isInteger(o.timeout))throw new Error("");this.timeout=o.timeout}o.mode&&(this.mode=o.mode),o.redirect&&(this.redirect=o.redirect),this.transferCache=o.transferCache}if(this.headers??=new gn,this.context??=new mu,!this.params)this.params=new ii,this.urlWithParams=t;else{let s=this.params.toString();if(s.length===0)this.urlWithParams=t;else{let a=t.indexOf("?"),c=a===-1?"?":a<t.length-1?"&":"";this.urlWithParams=t+c+s}}}serializeBody(){return this.body===null?null:typeof this.body=="string"||tE(this.body)||nE(this.body)||iE(this.body)||eO(this.body)?this.body:this.body instanceof ii?this.body.toString():typeof this.body=="object"||typeof this.body=="boolean"||Array.isArray(this.body)?JSON.stringify(this.body):this.body.toString()}detectContentTypeHeader(){return this.body===null||iE(this.body)?null:nE(this.body)?this.body.type||null:tE(this.body)?null:typeof this.body=="string"?oE:this.body instanceof ii?"application/x-www-form-urlencoded;charset=UTF-8":typeof this.body=="object"||typeof this.body=="number"||typeof this.body=="boolean"?sE:null}clone(n={}){let t=n.method||this.method,i=n.url||this.url,r=n.responseType||this.responseType,o=n.keepalive??this.keepalive,s=n.priority||this.priority,a=n.cache||this.cache,c=n.mode||this.mode,d=n.redirect||this.redirect,m=n.credentials||this.credentials,h=n.transferCache??this.transferCache,w=n.timeout??this.timeout,g=n.body!==void 0?n.body:this.body,x=n.withCredentials??this.withCredentials,R=n.reportProgress??this.reportProgress,k=n.headers||this.headers,N=n.params||this.params,we=n.context??this.context;return n.setHeaders!==void 0&&(k=Object.keys(n.setHeaders).reduce((ft,xe)=>ft.set(xe,n.setHeaders[xe]),k)),n.setParams&&(N=Object.keys(n.setParams).reduce((ft,xe)=>ft.set(xe,n.setParams[xe]),N)),new e(t,i,g,{params:N,headers:k,context:we,reportProgress:R,responseType:r,withCredentials:x,transferCache:h,keepalive:o,cache:a,priority:s,timeout:w,mode:c,redirect:d,credentials:m})}},ri=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}(ri||{}),So=class{headers;status;statusText;url;ok;type;constructor(n,t=200,i="OK"){this.headers=n.headers||new gn,this.status=n.status!==void 0?n.status:t,this.statusText=n.statusText||i,this.url=n.url||null,this.ok=this.status>=200&&this.status<300}},Ks=class e extends So{constructor(n={}){super(n)}type=ri.ResponseHeader;clone(n={}){return new e({headers:n.headers||this.headers,status:n.status!==void 0?n.status:this.status,statusText:n.statusText||this.statusText,url:n.url||this.url||void 0})}},Sr=class e extends So{body;constructor(n={}){super(n),this.body=n.body!==void 0?n.body:null}type=ri.Response;clone(n={}){return new e({body:n.body!==void 0?n.body:this.body,headers:n.headers||this.headers,status:n.status!==void 0?n.status:this.status,statusText:n.statusText||this.statusText,url:n.url||this.url||void 0})}},On=class extends So{name="HttpErrorResponse";message;error;ok=!1;constructor(n){super(n,0,"Unknown Error"),this.status>=200&&this.status<300?this.message=`Http failure during parsing for ${n.url||"(unknown url)"}`:this.message=`Http failure response for ${n.url||"(unknown url)"}: ${n.status} ${n.statusText}`,this.error=n.error||null}},cE=200,tO=204;function Bh(e,n){return{body:n,headers:e.headers,context:e.context,observe:e.observe,params:e.params,reportProgress:e.reportProgress,responseType:e.responseType,withCredentials:e.withCredentials,transferCache:e.transferCache,keepalive:e.keepalive,priority:e.priority,cache:e.cache,mode:e.mode,redirect:e.redirect}}var Si=(()=>{class e{handler;constructor(t){this.handler=t}request(t,i,r={}){let o;if(t instanceof Co)o=t;else{let c;r.headers instanceof gn?c=r.headers:c=new gn(r.headers);let d;r.params&&(r.params instanceof ii?d=r.params:d=new ii({fromObject:r.params})),o=new Co(t,i,r.body!==void 0?r.body:null,{headers:c,context:r.context,params:d,reportProgress:r.reportProgress,responseType:r.responseType||"json",withCredentials:r.withCredentials,transferCache:r.transferCache,keepalive:r.keepalive,priority:r.priority,cache:r.cache,mode:r.mode,redirect:r.redirect,credentials:r.credentials})}let s=U(o).pipe(ui(c=>this.handler.handle(c)));if(t instanceof Co||r.observe==="events")return s;let a=s.pipe(at(c=>
8c instanceof Sr));switch(r.observe||"body"){case"body":switch(o.responseType){case"arraybuffer":return a.pipe(Q(c=>{if(c.body!==null&&!(c.body instanceof ArrayBuffer))throw new M(2806,!1);return c.body}));case"blob":return a.pipe(Q(c=>{if(c.body!==null&&!(c.body instanceof Blob))throw new M(2807,!1);return c.body}));case"text":return a.pipe(Q(c=>{if(c.body!==null&&typeof c.body!="string")throw new M(2808,!1);return c.body}));case"json":default:return a.pipe(Q(c=>c.body))}case"response":return a;default:throw new M(2809,!1)}}delete(t,i={}){return this.request("DELETE",t,i)}get(t,i={}){return this.request("GET",t,i)}head(t,i={}){return this.request("HEAD",t,i)}jsonp(t,i){return this.request("JSONP",t,{params:new ii().append(i,"JSONP_CALLBACK"),observe:"body",responseType:"json"})}options(t,i={}){return this.request("OPTIONS",t,i)}patch(t,i,r={}){return this.request("PATCH",t,Bh(r,i))}post(t,i,r={}){return this.request("POST",t,Bh(r,i))}put(t,i,r={}){return this.request("PUT",t,Bh(r,i))}static \u0275fac=function(i){return new(i||e)($(xo))};static \u0275prov=A({token:e,factory:e.\u0275fac})}return e})(),nO=/^\)\]\}',?\n/;function rE(e){if(e.url)return e.url;let n=zh.toLocaleLowerCase();return e.headers.get(n)}var lE=new P(""),pu=(()=>
8{class e{fetchImpl=y(Uh,{optional:!0})?.fetch??((...t)=>globalThis.fetch(...t));ngZone=y(Oe);destroyRef=y(ht);destroyed=!1;constructor(){this.destroyRef.onDestroy(()=>{this.destroyed=!0})}handle(t){return new oe(i=>{let r=new AbortController;this.doRequest(t,r.signal,i).then($h,s=>i.error(new On({error:s})));let o;return t.timeout&&(o=this.ngZone.runOutsideAngular(()=>setTimeout(()=>{r.signal.aborted||r.abort(new DOMException("signal timed out","TimeoutError"))},t.timeout))),()=>{o!==void 0&&clearTimeout(o),r.abort()}})}async doRequest(t,i,r){let o=this.createRequestInit(t),s;try{let g=this.ngZone.runOutsideAngular(()=>this.fetchImpl(t.urlWithParams,I({signal:i},o)));iO(g),r.next({type:ri.Sent}),s=await g}catch(g){r.error(new On({error:g,status:g.status??0,statusText:g.statusText,url:t.urlWithParams,headers:g.headers}));return}let a=new gn(s.headers),c=s.statusText,d=rE(s)??t.urlWithParams,m=s.status,h=null;if(t.reportProgress&&r.next(new Ks({headers:a,status:m,statusText:c,url:d})),s.body){let g=s.headers.get("content-length"),x=[],R=s.body.getReader(),k=0,N,we,ft=typeof Zone<"u"&&Zone.current,xe=!1;if(await this.ngZone.runOutsideAngular(async()=>{for(;;){if(this.destroyed){await R.cancel(),xe=!0;break}let{done:ji,value:Yo}=await R.read();if(ji)break;if(x.push(Yo),k+=Yo.length,t.reportProgress){we=t.responseType==="text"?(we??"")+(N??=new TextDecoder).decode(Yo,{stream:!0}):void 0;let Fg=()=>r.next({type:ri.DownloadProgress,total:g?+g:void 0,loaded:k,partialText:we});ft?ft.run(Fg):Fg()}}}),xe){r.complete();return}let Li=this.concatChunks(x,k);try{let ji=s.headers.get(Qs)??"";h=this.parseBody(t,Li,ji)}catch(ji){r.error(new On({error:ji,headers:new gn(s.headers),status:s.status,statusText:s.statusText,url:rE(s)??t.urlWithParams}));return}}m===0&&(m=h?cE:0),m>=200&&m<300?(r.next(new Sr({body:h,headers:a,status:m,statusText:c,url:d})),r.complete()):r.error(new On({error:h,headers:a,status:m,statusText:c,url:d}))}parseBody(t,i,r){switch(t.responseType){case"json":let o=new TextDecoder().decode(i).replace(nO,"");return o===""?null:JSON.parse(o);case"text":return new TextDecoder().decode(i);case"blob":return new Blob([i],{type:r});case"arraybuffer":return i.buffer}}createRequestInit(t){let i={},r;if(r=t.credentials,t.withCredentials&&(r="include"),t.headers.forEach((o,s)=>i[o]=s.join(",")),t.headers.has(hu)||(i[hu]=aE),!t.headers.has(Qs)){let o=t.detectContentTypeHeader();o!==null&&(i[Qs]=o)}return{body:t.serializeBody(),method:t.method,headers:i,credentials:r,keepalive:t.keepalive,cache:t.cache,priority:t.priority,mode:t.mode,redirect:t.redirect}}concatChunks(t,i){let r=new Uint8Array(i),o=0;for(let s of t)r.set(s,o),o+=s.length;return r}static \u0275fac=function(i){return new(i||e)};static \u0275prov=A({token:e,factory:e.\u0275fac})}return e})(),Uh=class{};function $h(){}function iO(e){e.then($h,$h)}function rO(e,n){return n(e)}function oO(e,n,t){return(i,r)=>ut(t,()=>n(i,o=>e(o,r)))}var uE=new P(""),Gh=new P(""),dE=new P("",{providedIn:"root",factory:()=>!0});var gu=(()=>{class e extends xo{backend;injector;chain=null;pendingTasks=y(ir);contributeToStability=y(dE);constructor(t,i){super(),this.backend=t,this.injector=i}handle(t){if(this.chain===null){let i=Array.from(new Set([...this.injector.get(uE),...this.injector.get(Gh,[])]));this.chain=i.reduceRight((r,o)=>oO(r,o,this.injector),rO)}if(this.contributeToStability){let i=this.pendingTasks.add();return this.chain(t,r=>this.backend.handle(r)).pipe(zi(i))}else return this.chain(t,i=>this.backend.handle(i))}static \u0275fac=function(i){return new(i||e)($(Do),$($e))};static \u0275prov=A({token:e,factory:e.\u0275fac})}return e})();var sO=/^\)\]\}',?\n/,aO=RegExp(`^${zh}:`,"m");function cO(e){return"responseURL"in e&&e.responseURL?e.responseURL:aO.test(e.getAllResponseHeaders())?e.getResponseHeader(zh):null}var Hh=(()=>{class e{xhrFactory;constructor(t){this.xhrFactory=t}handle(t){if(t.method==="JSONP")throw new M(-2800,!1);let i=this.xhrFactory;return U(null).pipe(ct(()=>new oe(o=>{let s=i.build();if(s.open(t.method,t.urlWithParams),t.withCredentials&&(s.withCredentials=!0),t.headers.forEac
8h((k,N)=>s.setRequestHeader(k,N.join(","))),t.headers.has(hu)||s.setRequestHeader(hu,aE),!t.headers.has(Qs)){let k=t.detectContentTypeHeader();k!==null&&s.setRequestHeader(Qs,k)}if(t.timeout&&(s.timeout=t.timeout),t.responseType){let k=t.responseType.toLowerCase();s.responseType=k!=="json"?k:"text"}let a=t.serializeBody(),c=null,d=()=>{if(c!==null)return c;let k=s.statusText||"OK",N=new gn(s.getAllResponseHeaders()),we=cO(s)||t.url;return c=new Ks({headers:N,status:s.status,statusText:k,url:we}),c},m=()=>{let{headers:k,status:N,statusText:we,url:ft}=d(),xe=null;N!==tO&&(xe=typeof s.response>"u"?s.responseText:s.response),N===0&&(N=xe?cE:0);let Li=N>=200&&N<300;if(t.responseType==="json"&&typeof xe=="string"){let ji=xe;xe=xe.replace(sO,"");try{xe=xe!==""?JSON.parse(xe):null}catch(Yo){xe=ji,Li&&(Li=!1,xe={error:Yo,text:xe})}}Li?(o.next(new Sr({body:xe,headers:k,status:N,statusText:we,url:ft||void 0})),o.complete()):o.error(new On({error:xe,headers:k,status:N,statusText:we,url:ft||void 0}))},h=k=>{let{url:N}=d(),we=new On({error:k,status:s.status||0,statusText:s.statusText||"Unknown Error",url:N||void 0});o.error(we)},w=h;t.timeout&&(w=k=>{let{url:N}=d(),we=new On({error:new DOMException("Request timed out","TimeoutError"),status:s.status||0,statusText:s.statusText||"Request timeout",url:N||void 0});o.error(we)});let g=!1,x=k=>{g||(o.next(d()),g=!0);let N={type:ri.DownloadProgress,loaded:k.loaded};k.lengthComputable&&(N.total=k.total),t.responseType==="text"&&s.responseText&&(N.partialText=s.responseText),o.next(N)},R=k=>{let N={type:ri.UploadProgress,loaded:k.loaded};k.lengthComputable&&(N.total=k.total),o.next(N)};return s.addEventListener("load",m),s.addEventListener("error",h),s.addEventListener("timeout",w),s.addEventListener("abort",h),t.reportProgress&&(s.addEventListener("progress",x),a!==null&&s.upload&&s.upload.addEventListener("progress",R)),s.send(a),o.next({type:ri.Sent}),()=>{s.removeEventListener("error",h),s.removeEventListener("abort",h),s.removeEventListener("load",m),s.removeEventListener("timeout",w),t.reportProgress&&(s.removeEventListener("progress",x),a!==null&&s.upload&&s.upload.removeEventListener("progress",R)),s.readyState!==s.DONE&&s.abort()}})))}static \u0275fac=function(i){return new(i||e)($(Dr))};static \u0275prov=A({token:e,factory:e.\u0275fac})}return e})(),pE=new P(""),lO="XSRF-TOKEN",uO=new P("",{providedIn:"root",factory:()=>lO}),dO="X-XSRF-TOKEN",pO=new P("",{providedIn:"root",factory:()=>dO}),Js=class{},fO=(()=>{class e{doc;cookieName;lastCookieString="";lastToken=null;parseCount=0;constructor(t,i){this.doc=t,this.cookieName=i}getToken(){let t=this.doc.cookie||"";return t!==this.lastCookieString&&(this.parseCount++,this.lastToken=Gs(t,this.cookieName),this.lastCookieString=t),this.lastToken}static \u0275fac=function(i){return new(i||e)($(Me),$(uO))};static \u0275prov=A({token:e,factory:e.\u0275fac})}return e})();function mO(e,n){let t=e.url.toLowerCase();if(!y(pE)||e.method==="GET"||e.method==="HEAD"||t.startsWith("http://")||t.startsWith("https://"))return n(e);let i=y(Js).getToken(),r=y(pO);return i!=null&&!e.headers.has(r)&&(e=e.clone({headers:e.headers.set(r,i)})),n(e)}var Wh=function(e){return e[e.Interceptors=0]="Interceptors",e[e.LegacyInterceptors=1]="LegacyInterceptors",e[e.CustomXsrfConfiguration=2]="CustomXsrfConfiguration",e[e.NoXsrfProtection=3]="NoXsrfProtection",e[e.JsonpSupport=4]="JsonpSupport",e[e.RequestsMadeViaParent=5]="RequestsMadeViaParent",e[e.Fetch=6]="Fetch",e}(Wh||{});function hO(e,n){return{\u0275kind:e,\u0275providers:n}}function qh(...e){let n=[Si,Hh,gu,{provide:xo,useExisting:gu},{provide:Do,useFactory:()=>y(lE,{optional:!0})??y(Hh)},{provide:uE,useValue:mO,multi:!0},{provide:pE,useValue:!0},{provide:Js,useClass:fO}];for(let t of e)n.push(...t.\u0275providers);return Wt(n)}function Yh(){return hO(Wh.Fetch,[pu,{provide:lE,useExisting:pu},{provide:Do,useExisting:pu}])}var gO=new P(""),vO="b",yO="h",bO="s",wO="st",_O="u",EO="rt",Zh=new P(""),CO=["GET","HEAD"];function xO(e,n){let g=y(Zh),{isCacheActive:t}=g,i=Bg(g,["isCacheActive"]),{transferCache:r,method:o}=e;if(!t||r===!1||o==="POST"&&!i.includePostRequests&&!r||o!=="POST"&&!CO.includes(o)||!i.includeRequestsWithAuthHeaders&&DO(e)||i.filter?.(e)===!1)return n(e);let s=y(fr);if(y(gO,{optional:!0}))throw new M(2803,!1);let c=e.url,d=SO(e,c),m=s.get(d,null),h=i.includeHeaders;if(typeof r=="object"&&r.includeHeaders&&(h=r.includeHeaders),m){let{[vO]:x,[EO]:R,[yO]:k,[bO]:N,[wO]:we,[_O]:ft}=m,xe=x;switch(R){case"arraybuffer":xe=new TextEncoder().encode(x).buffer;break;case"blob":xe=new Blob([x]);break}let Li=new gn(k);return U(new Sr({body:xe,headers:Li,status:N,statusText:we,url:ft}))}return n(e)}function DO(e){return e.headers.has("authorization")||e.headers.has("proxy-authorization")}function fE(e){return[...e.keys()].sort().map(n=>`${n}=${e.getAll(n)}`).join("&")}function SO(e,n){let{params:t,method:i,responseType:r}=e,o=fE(t),s=e.serializeBody();
8s instanceof URLSearchParams?s=fE(s):typeof s!="string"&&(s="");let a=[i,r,n,s,o].join("|"),c=IO(a);return c}function IO(e){let n=0;for(let t of e)n=Math.imul(31,n)+t.charCodeAt(0)<<0;return n+=2147483648,n.toString()}function mE(e){return[{provide:Zh,useFactory:()=>(At("NgHttpTransferCache"),I({isCacheActive:!0},e))},{provide:Gh,useValue:xO,multi:!0},{provide:Ei,multi:!0,useFactory:()=>{let n=y(Ct),t=y(Zh);return()=>{n.whenStable().then(()=>{t.isCacheActive=!1})}}}]}var gE=(()=>{class e{_doc;_dom;constructor(t){this._doc=t,this._dom=Vt()}addTag(t,i=!1){return t?this._getOrCreateElement(t,i):null}addTags(t,i=!1){return t?t.reduce((r,o)=>(o&&r.push(this._getOrCreateElement(o,i)),r),[]):[]}getTag(t){return t&&this._doc.querySelector(`meta[${t}]`)||null}getTags(t){if(!t)return[];let i=this._doc.querySelectorAll(`meta[${t}]`);return i?[].slice.call(i):[]}updateTag(t,i){if(!t)return null;i=i||this._parseSelector(t);let r=this.getTag(i);return r?this._setMetaElementAttributes(t,r):this._getOrCreateElement(t,!0)}removeTag(t){this.removeTagElement(this.getTag(t))}removeTagElement(t){t&&this._dom.remove(t)}_getOrCreateElement(t,i=!1){if(!i){let s=this._parseSelector(t),a=this.getTags(s).filter(c=>this._containsAttributes(t,c))[0];if(a!==void 0)return a}let r=this._dom.createElement("meta");return this._setMetaElementAttributes(t,r),this._doc.getElementsByTagName("head")[0].appendChild(r),r}_setMetaElementAttributes(t,i){return Object.keys(t).forEach(r=>i.setAttribute(this._getMetaKeyMap(r),t[r])),i}_parseSelector(t){let i=t.name?"name":"property";return`${i}="${t[i]}"`}_containsAttributes(t,i){return Object.keys(t).every(r=>i.getAttribute(this._getMetaKeyMap(r))===t[r])}_getMetaKeyMap(t){return TO[t]||t}static \u0275fac=function(i){return new(i||e)($(Me))};static \u0275prov=A({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})(),TO={httpEquiv:"http-equiv"},yu=(()=>{class e{_doc;constructor(t){this._doc=t}getTitle(){return this._doc.title}setTitle(t){this._doc.title=t||""}static \u0275fac=function(i){return new(i||e)($(Me))};static \u0275prov=A({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();var Qh=(()=>{class e{static \u0275fac=function(i){return new(i||e)};static \u0275prov=A({token:e,factory:function(i){let r=null;return i?r=new(i||e):r=$(AO),r},providedIn:"root"})}return e})(),AO=(()=>{class e extends Qh{_doc;constructor(t){super(),this._doc=t}sanitize(t,i){if(i==null)return null;switch(t){case Kt.NONE:return i;case Kt.HTML:return Dn(i,"HTML")?jt(i):Il(this._doc,String(i)).toString();case Kt.STYLE:return Dn(i,"Style")?jt(i):i;case Kt.SCRIPT:if(Dn(i,"Script"))return jt(i);throw new M(5200,!1);case Kt.URL:return Dn(i,"URL")?jt(i):Rs(String(i));case Kt.RESOURCE_URL:if(Dn(i,"ResourceURL"))return jt(i);throw new M(5201,!1);default:throw new M(5202,!1)}}bypassSecurityTrustHtml(t){return om(t)}bypassSecurityTrustStyle(t){return sm(t)}bypassSecurityTrustScript(t){return am(t)}bypassSecurityTrustUrl(t){return cm(t)}bypassSecurityTrustResourceUrl(t){return lm(t)}static \u0275fac=function(i){return new(i||e)($(Me))};static \u0275prov=A({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})(),vu=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}(vu||{});function kO(e,n=[],t={}){return{\u0275kind:e,\u0275providers:n}}function vE(){return kO(vu.EventReplay,R_())}function yE(...e){let n=[],t=new Set;for(let{\u0275providers:r,\u0275kind:o}of e)t.add(o),r.length&&n.push(r);let i=t.has(vu.HttpTransferCacheOptions);return Wt([[],P_(),t.has(vu.NoHttpTransferCache)||i?[]:mE({}),n])}var ne="primary",fa=Symbol("RouteTitle"),tg=class{params;constructor(n){this.params=n||{}}has(n){return Object.prototype.hasOwnProperty.call(this.params,n)}get(n){if(this.has(n)){let t=this.params[n];return Array.isArray(t)?t[0]:t}return null}getAll(n){if(this.has(n)){let t=this.params[n];return Array.isArray(t)?t:[t]}return[]}get keys(){return Object.keys(this.params)}};function Tr(e){return new tg(e)}function IE(e,n,t){let i=t.path.split("/");if(i.length>e.length||t.pathMatch==="full"&&(n.hasChildren()||i.length<e.length))return null;let r={};for(let o=0;o<i.length;o++){let s=i[o],a=e[o];if(s[0]===":")r[s.substring(1)]=a;else if(s!==a.path)return null}return{consumed:e.slice(0,i.length),posParams:r}}function OO(e,n){if(e.length!==n.length)return!1;for(let t=0;t<e.length;++t)if(!Nn(e[t],n[t]))return!1;return!0}function Nn(e,n){let t=e?ng(e):void 0,i=n?ng(n):void 0;if(!t||!i||t.length!=i.length)return!1;let r;for(let o=0;o<t.length;o++)if(r=t[o],!ME(e[r],n[r]))return!1;return!0}function ng(e){return[...Object.keys(e),...Object.getOwnPropertySymbols(e)]}function ME(e,n){if(Array.isArray(e)&&Array.isArray(n)){if(e.length!==n.length)return!1;let t=[...e].sort(),i=[...n].sort();return t.every((r,o)=>i[o]===r)}else return e===n}function TE(e){return e.length>0?e[e.length-1]:null}function si(e){return Fd(e)?e:Xn(e)?Le(Promise.resolve(e)):U(e)}var NO={exact:kE,subset:OE},AE={exact:RO,subset:PO,ignored:()=>!0};function wE(e,n,t){return NO[t.paths](e.root,n.root,t.matrixParams)&&AE[t.queryParams](e.queryParams,n.queryParams)&&!(t.fragment==="exact"&&e.fragment!==n.fragment)}function RO(e,n){return Nn(e,n)}function kE(e,n,t){if(!Ir(e.segments,n.segments)||!_u(e.segments,n.segments,t)||e.numberOfChildren!==n.numberOfChildren)return!1;for(let i in n.children)if(!e.children[i]||!kE(e.children[i],n.children[i],t))return!1;return!0}function PO(e,n){return Object.keys(n).length<=Object.keys(e).length&&Object.keys(n).every(t=>ME(e[t],n[t]))}function OE(e,n,t){return NE(e,n,n.segments,t)}function NE(e,n,t,i){if(e.segments.length>t.length){let r=e.segments.slice(0,t.length);
vendor: 11,891 bytes, line 8
8return!(!Ir(r,t)||n.hasChildren()||!_u(r,t,i))}else if(e.segments.length===t.length){if(!Ir(e.segments,t)||!_u(e.segments,t,i))return!1;for(let r in n.children)if(!e.children[r]||!OE(e.children[r],n.children[r],i))return!1;return!0}else{let r=t.slice(0,e.segments.length),o=t.slice(e.segments.length);return!Ir(e.segments,r)||!_u(e.segments,r,i)||!e.children[ne]?!1:NE(e.children[ne],n,o,i)}}function _u(e,n,t){return n.every((i,r)=>AE[t](e[r].parameters,i.parameters))}var Pn=class{root;queryParams;fragment;_queryParamMap;constructor(n=new ve([],{}),t={},i=null){this.root=n,this.queryParams=t,this.fragment=i}get queryParamMap(){return this._queryParamMap??=Tr(this.queryParams),this._queryParamMap}toString(){return jO.serialize(this)}},ve=class{segments;children;parent=null;constructor(n,t){this.segments=n,this.children=t,Object.values(t).forEach(i=>i.parent=this)}hasChildren(){return this.numberOfChildren>0}get numberOfChildren(){return Object.keys(this.children).length}toString(){return Eu(this)}},Ii=class{path;parameters;_parameterMap;constructor(n,t){this.path=n,this.parameters=t}get parameterMap(){return this._parameterMap??=Tr(this.parameters),this._parameterMap}toString(){return PE(this)}};function FO(e,n){return Ir(e,n)&&e.every((t,i)=>Nn(t.parameters,n[i].parameters))}function Ir(e,n){return e.length!==n.length?!1:e.every((t,i)=>t.path===n[i].path)}function LO(e,n){let t=[];return Object.entries(e.children).forEach(([i,r])=>{i===ne&&(t=t.concat(n(r,i)))}),Object.entries(e.children).forEach(([i,r])=>{i!==ne&&(t=t.concat(n(r,i)))}),t}var ma=(()=>{class e{static \u0275fac=function(i){return new(i||e)};static \u0275prov=A({token:e,factory:()=>new Ar,providedIn:"root"})}return e})(),Ar=class{parse(n){let t=new rg(n);return new Pn(t.parseRootSegment(),t.parseQueryParams(),t.parseFragment())}serialize(n){let t=`/${Xs(n.root,!0)}`,i=UO(n.queryParams),r=typeof n.fragment=="string"?`#${VO(n.fragment)}`:"";return`${t}${i}${r}`}},jO=new Ar;function Eu(e){return e.segments.map(n=>PE(n)).join("/")}function Xs(e,n){if(!e.hasChildren())return Eu(e);if(n){let t=e.children[ne]?Xs(e.children[ne],!1):"",i=[];return Object.entries(e.children).forEach(([r,o])=>{r!==ne&&i.push(`${r}:${Xs(o,!1)}`)}),i.length>0?`${t}(${i.join("//")})`:t}else{let t=LO(e,(i,r)=>r===ne?[Xs(e.children[ne],!1)]:[`${r}:${Xs(i,!1)}`]);return Object.keys(e.children).length===1&&e.children[ne]!=null?`${Eu(e)}/${t[0]}`:`${Eu(e)}/(${t.join("//")})`}}function RE(e){return encodeURIComponent(e).replace(/%40/g,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",")}function bu(e){return RE(e).replace(/%3B/gi,";")}function VO(e){return encodeURI(e)}function ig(e){return RE(e).replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/%26/gi,"&")}function Cu(e){return decodeURIComponent(e)}function _E(e){return Cu(e.replace(/\+/g,"%20"))}function PE(e){return`${ig(e.path)}${BO(e.parameters)}`}function BO(e){return Object.entries(e).map(([n,t])=>`;${ig(n)}=${ig(t)}`).join("")}function UO(e){let n=Object.entries(e).map(([t,i])=>Array.isArray(i)?i.map(r=>`${bu(t)}=${bu(r)}`).join("&"):`${bu(t)}=${bu(i)}`).filter(t=>t);return n.length?`?${n.join("&")}`:""}var $O=/^[^\/()?;#]+/;function Kh(e){let n=e.match($O);return n?n[0]:""}var HO=/^[^\/()?;=#]+/;function zO(e){let n=e.match(HO);return n?n[0]:""}var GO=/^[^=?&#]+/;function WO(e){let n=e.match(GO);return n?n[0]:""}var qO=/^[^&#]+/;function YO(e){let n=e.match(qO);return n?n[0]:""}var rg=class{url;remaining;constructor(n){this.url=n,this.remaining=n}parseRootSegment(){return this.consumeOptional("/"),this.remaining===""||this.peekStartsWith("?")||this.peekStartsWith("#")?new ve([],{}):new ve([],this.parseChildren())}parseQueryParams(){let n={};if(this.consumeOptional("?"))do this.parseQueryParam(n);while(this.consumeOptional("&"));return n}parseFragment(){return this.consumeOptional("#")?decodeURIComponent(this.remaining):null}parseChildren(){if(this.remaining==="")return{};this.consumeOptional("/");let n=[];for(this.peekStartsWith("(")||n.push(this.parseSegment());this.peekStartsWith("/")&&!this.peekStartsWith("//")&&!this.peekStartsWith("/(");)this.capture("/"),n.push(this.parseSegment());let t={};this.peekStartsWith("/(")&&(this.capture("/"),t=this.parseParens(!0));let i={};return this.peekStartsWith("(")&&(i=this.parseParens(!1)),(n.length>0||Object.keys(t).length>0)&&(i[ne]=new ve(n,t)),i}parseSegment(){let n=Kh(this.remaining);if(n===""&&this.peekStartsWith(";"))throw new M(4009,!1);return this.capture(n),new Ii(Cu(n),this.parseMatrixParams())}parseMatrixParams(){let n={};for(;this.consumeOptional(";");)this.parseParam(n);return n}parseParam(n){let t=zO(this.remaining);if(!t)return;this.capture(t);let i="";if(this.consumeOptional("=")){let r=Kh(this.remaining);r&&(i=r,this.capture(i))}n[Cu(t)]=Cu(i)}parseQueryParam(n){let t=WO(this.remaining);if(!t)return;this.capture(t);let i="";if(this.consumeOptional("=")){let s=YO(this.remaining);s&&(i=s,this.capture(i))}let r=_E(t),o=_E(i);if(n.hasOwnProperty(r)){let s=n[r];Array.isArray(s)||(s=[s],n[r]=s),s.push(o)}else n[r]=o}parseParens(n){let t={};for(this.capture("(");!this.consumeOptional(")")&&this.remaining.length>0;){let i=Kh(this.remaining),r=this.remaining[i.length];if(r!=="/"&&r!==")"&&r!==";")throw new M(4010,!1);let o;i.indexOf(":")>-1?(o=i.slice(0,i.indexOf(":")),this.capture(o),this.capture(":")):n&&(o=ne);let s=this.parseChildren();t[o]=Object.keys(s).length===1?s[ne]:new ve([],s),this.consumeOptional("//")}return t}peekStartsWith(n){return this.remaining.startsWith(n)}consumeOptional(n){return this.peekStartsWith(n)?(this.remaining=this.remaining.substring(n.length),!0):!1}capture(n){if(!this.consumeOptional(n))throw new M(4011,!1)}};function FE(e){return e.segments.length>0?new ve([],{[ne]:e}):e}function LE(e){let n={};for(let[i,r]of Object.entries(e.children)){let o=LE(r);if(i===ne&&o.segments.length===0&&o.hasChildren())for(let[s,a]of Object.entries(o.children))n[s]=a;else(o.segments.length>0||o.hasChildren())&&(n[i]=o)}let t=new ve(e.segments,n);return ZO(t)}function ZO(e){if(e.numberOfChildren===1&&e.children[ne]){let n=e.children[ne];return new ve(e.segments.concat(n.segments),n.children)}return e}function Mi(e){return e instanceof Pn}function jE(e,n,t=null,i=null){let r=VE(e);return BE(r,n,t,i)}function VE(e){let n;function t(o){let s={};for(let c of o.children){let d=t(c);s[c.outlet]=d}let a=new ve(o.url,s);return o===e&&(n=a),a}let i=t(e.root),r=FE(i);return n??r}function BE(e,n,t,i){let r=e;for(;r.parent;)r=r.parent;if(n.length===0)return Jh(r,r,r,t,i);let o=QO(n);if(o.toRoot())return Jh(r,r,new ve([],{}),t,i);let s=KO(o,r,e),a=s.processChildren?ta(s.segmentGroup,s.index,o.commands):$E(s.segmentGroup,s.index,o.commands);return Jh(r,s.segmentGroup,a,t,i)}function xu(e){return typeof e=="object"&&e!=null&&!e.outlets&&!e.segmentPath}function ra(e){return typeof e=="object"&&e!=null&&e.outlets}function Jh(e,n,t,i,r){let o={};i&&Object.entries(i).forEach(([c,d])=>{o[c]=Array.isArray(d)?d.map(m=>`${m}`):`${d}`});let s;e===n?s=t:s=UE(e,n,t);let a=FE(LE(s));return new Pn(a,o,r)}function UE(e,n,t){let i={};return Object.entries(e.children).forEach(([r,o])=>{o===n?i[r]=t:i[r]=UE(o,n,t)}),new ve(e.segments,i)}var Du=class{isAbsolute;numberOfDoubleDots;commands;constructor(n,t,i){if(this.isAbsolute=n,this.numberOfDoubleDots=t,this.commands=i,n&&i.length>0&&xu(i[0]))throw new M(4003,!1);let r=i.find(ra);if(r&&r!==TE(i))throw new M(4004,!1)}toRoot(){return this.isAbsolute&&this.commands.length===1&&this.commands[0]=="/"}};function QO(e){if(typeof e[0]=="string"&&e.length===1&&e[0]==="/")return new Du(!0,0,e);let n=0,t=!1,i=e.reduce((r,o,s)=>{if(typeof o=="object"&&o!=null){if(o.outlets){let a={};return Object.entries(o.outlets).forEach(([c,d])=>{a[c]=typeof d=="string"?d.split("/"):d}),[...r,{outlets:a}]}if(o.segmentPath)return[...r,o.segmentPath]}return typeof o!="string"?[...r,o]:s===0?(o.split("/").forEach((a,c)=>{c==0&&a==="."||(c==0&&a===""?t=!0:a===".."?n++:a!=""&&r.push(a))}),r):[...r,o]},[]);return new Du(t,n,i)}var To=class{segmentGroup;processChildren;index;constructor(n,t,i){this.segmentGroup=n,this.processChildren=t,this.index=i}};function KO(e,n,t){if(e.isAbsolute)return new To(n,!0,0);if(!t)return new To(n,!1,NaN);if(t.parent===null)return new To(t,!0,0);let i=xu(e.commands[0])?0:1,r=t.segments.length-1+i;return JO(t,r,e.numberOfDoubleDots)}function JO(e,n,t){let i=e,r=n,o=t;for(;o>r;){if(o-=r,i=i.parent,!i)throw new M(4005,!1);r=i.segments.length}return new To(i,!1,r-o)}function XO(e){return ra(e[0])?e[0].outlets:{[ne]:e}}function $E(e,n,t){if(e??=new ve([],{}),e.segments.length===0&&e.hasChildren())return ta(e,n,t);let i=eN(e,n,t),r=t.slice(i.commandIndex);if(i.match&&i.pathIndex<e.segments.length){let o=new ve(e.segments.slice(0,i.pathIndex),{});return o.children[ne]=new ve(e.segments.slice(i.pathIndex),e.children),ta(o,0,r)}else return i.match&&r.length===0?new ve(e.segments,{}):i.match&&!e.hasChildren()?og(e,n,t):i.match?ta(e,0,r):og(e,n,t)}function ta(e,n,t){if(t.length===0)return new ve(e.segments,{});{let i=XO(t),r={};if(Object.keys(i).some(o=>o!==ne)&&e.children[ne]&&e.numberOfChildren===1&&e.children[ne].segments.length===0){let o=ta(e.children[ne],n,t);return new ve(e.segments,o.children)}return Object.entries(i).forEach(([o,s])=>{typeof s=="string"&&(s=[s]),s!==null&&(r[o]=$E(e.children[o],n,s))}),Object.entries(e.children).forEach(([o,s])=>{i[o]===void 0&&(r[o]=s)}),new ve(e.segments,r)}}function eN(e,n,t){let i=0,r=n,o={match:!1,pathIndex:0,commandIndex:0};for(;r<e.segments.length;){if(i>=t.length)return o;let s=e.segments[r],a=t[i];if(ra(a))break;let c=`${a}`,d=i<t.length-1?t[i+1]:null;if(r>0&&c===void 0)break;if(c&&d&&typeof d=="object"&&d.outlets===void 0){if(!CE(c,d,s))return o;i+=2}else{if(!CE(c,{},s))return o;i++}r++}return{match:!0,pathIndex:r,commandIndex:i}}function og(e,n,t){let i=e.segments.slice(0,n),r=0;for(;r<t.length;){let o=t[r];if(ra(o)){let c=tN(o.outlets);return new ve(i,c)}if(r===0&&xu(t[0])){let c=e.segments[n];i.push(new Ii(c.path,EE(t[0]))),r++;continue}let s=ra(o)?o.outlets[ne]:`${o}`,a=r<t.length-1?t[r+1]:null;s&&a&&xu(a)?(i.push(new Ii(s,EE(a))),r+=2):(i.push(new Ii(s,{})),r++)}return new ve(i,{})}function tN(e){let n={};return Object.entries(e).forEach(([t,i])=>{typeof i=="string"&&(i=[i]),i!==null&&(n[t]=og(new ve([],{}),0,i))}),n}function EE(e){let n={};return Object.entries(e).forEach(([t,i])=>n[t]=`${i}`),n}function CE(e,n,t){return e==t.path&&Nn(n,t.parameters)}var na="imperative",it=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}(it||{}),$t=class{id;url;constructor(n,t){this.id=n,this.url=t}},kr=class extends $t{type=it.NavigationStart;navigationTrigger;restoredState;constructor(n,t,i="imperative",r=null){super(n,t),this.navigationTrigger=i,this.restoredState=r}toString(){return`NavigationStart(id: ${this.id}, url: '${this.url}')`}},Xt=class extends $t{urlAfterRedirects;type=it.NavigationEnd;constructor(n,t,i){super(n,t),this.urlAfterRedirects=i}toString(){return`NavigationEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}')`}},St=function(e){return e[e.Redirect=0]="Redirect",e[e.SupersededByNewNavigation=1]="SupersededByNewNavigation",e[e.NoDataFromRe
8solver=2]="NoDataFromResolver",e[e.GuardRejected=3]="GuardRejected",e[e.Aborted=4]="Aborted",e}(St||{}),oa=function(e){return e[e.IgnoredSameUrlNavigation=0]="IgnoredSameUrlNavigation",e[e.IgnoredByUrlHandlingStrategy=1]="IgnoredByUrlHandlingStrategy",e}(oa||{}),Rn=class extends $t{reason;code;type=it.NavigationCancel;constructor(n,t,i,r){super(n,t),this.reason=i,this.code=r}toString(){return`NavigationCancel(id: ${this.id}, url: '${this.url}')`}},oi=class extends $t{reason;code;type=it.NavigationSkipped;constructor(n,t,i,r){super(n,t),this.reason=i,this.code=r}},ko=class extends $t{error;target;type=it.NavigationError;constructor(n,t,i,r){super(n,t),this.error=i,this.target=r}toString(){return`NavigationError(id: ${this.id}, url: '${this.url}', error: ${this.error})`}},sa=class extends $t{urlAfterRedirects;state;type=it.RoutesRecognized;constructor(n,t,i,r){super(n,t),this.urlAfterRedirects=i,this.state=r}toString(){return`RoutesRecognized(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}},Su=class extends $t{urlAfterRedirects;state;type=it.GuardsCheckStart;constructor(n,t,i,r){super(n,t),this.urlAfterRedirects=i,this.state=r}toString(){return`GuardsCheckStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}},Iu=class extends $t{urlAfterRedirects;state;shouldActivate;type=it.GuardsCheckEnd;constructor(n,t,i,r,o){super(n,t),this.urlAfterRedirects=i,this.state=r,this.shouldActivate=o}toString(){return`GuardsCheckEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state}, shouldActivate: ${this.shouldActivate})`}},Mu=class extends $t{urlAfterRedirects;state;type=it.ResolveStart;constructor(n,t,i,r){super(n,t),this.urlAfterRedirects=i,this.state=r}toString(){return`ResolveStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}},Tu=class extends $t{urlAfterRedirects;state;type=it.ResolveEnd;constructor(n,t,i,r){super(n,t),this.urlAfterRedirects=i,this.state=r}toString(){return`ResolveEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}},Au=class{route;type=it.RouteConfigLoadStart;constructor(n){this.route=n}toString(){return`RouteConfigLoadStart(path: ${this.route.path})`}},ku=class{route;type=it.RouteConfigLoadEnd;constructor(n){this.route=n}toString(){return`RouteConfigLoadEnd(path: ${this.route.path})`}},Ou=class{snapshot;type=it.ChildActivationStart;constructor(n){this.snapshot=n}toString(){return`ChildActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}},Nu=class{snapshot;type=it.ChildActivationEnd;constructor(n){this.snapshot=n}toString(){return`ChildActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}},Ru=class{snapshot;type=it.ActivationStart;constructor(n){this.snapshot=n}toString(){return`ActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}},Pu=class{snapshot;type=it.ActivationEnd;constructor(n){this.snapshot=n}toString(){return`ActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}};var aa=class{},Oo=class{url;navigationBehaviorOptions;constructor(n,t){this.url=n,this.navigationBehaviorOptions=t}};function nN(e){return!(e instanceof aa)&&!(e instanceof Oo)}function iN(e,n){return e.providers&&!e._injector&&(e._injector=ho(e.providers,n,`Route: ${e.path}`)),e._injector??n}function vn(e){return e.outlet||ne}function rN(e,n){let t=e.filter(i=>vn(i)===n);return t.push(...e.filter(i=>vn(i)!==n)),t}function Po(e){if(!e)return null;if(e.routeConfig?._injector)return e.routeConfig._injector;for(let n=e.parent;n;n=n.parent){let t=n.routeConfig;if(t?._loadedInjector)return t._loadedInjector;if(t?._injector)return t._injector}return null}var Fu=class{rootInjector;outlet=null;route=null;children;attachRef=null;get injector(){return Po(this.route?.snapshot)??this.rootInjector}constructor(n){this.rootInjector=n,this.children=new Fo(this.rootInjector)}},Fo=(()=>{class e{rootInjector;contexts=new Map;constructor(t){this.rootInjector=t}onChildOutletCreated(t,i){let r=this.getOrCreateContext(t);r.outlet=i,this.contexts.set(t,r)}onChildOutletDestroyed(t){let i=this.getContext(t);i&&(i.outlet=null,i.attachRef=null)}onOutletDeactivated(){let t=this.contexts;return this.contexts=new Map,t}onOutletReAttached(t){this.contexts=t}getOrCreateContext(t){let i=this.getContext(t);
vendor: 14,077 bytes, line 8
8return i||(i=new Fu(this.rootInjector),this.contexts.set(t,i)),i}getContext(t){return this.contexts.get(t)||null}static \u0275fac=function(i){return new(i||e)($($e))};static \u0275prov=A({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})(),Lu=class{_root;constructor(n){this._root=n}get root(){return this._root.value}parent(n){let t=this.pathFromRoot(n);return t.length>1?t[t.length-2]:null}children(n){let t=sg(n,this._root);return t?t.children.map(i=>i.value):[]}firstChild(n){let t=sg(n,this._root);return t&&t.children.length>0?t.children[0].value:null}siblings(n){let t=ag(n,this._root);return t.length<2?[]:t[t.length-2].children.map(r=>r.value).filter(r=>r!==n)}pathFromRoot(n){return ag(n,this._root).map(t=>t.value)}};function sg(e,n){if(e===n.value)return n;for(let t of n.children){let i=sg(e,t);if(i)return i}return null}function ag(e,n){if(e===n.value)return[n];for(let t of n.children){let i=ag(e,t);if(i.length)return i.unshift(n),i}return[]}var Ut=class{value;children;constructor(n,t){this.value=n,this.children=t}toString(){return`TreeNode(${this.value})`}};function Mo(e){let n={};return e&&e.children.forEach(t=>n[t.value.outlet]=t),n}var ca=class extends Lu{snapshot;constructor(n,t){super(n),this.snapshot=t,hg(this,n)}toString(){return this.snapshot.toString()}};function HE(e){let n=oN(e),t=new st([new Ii("",{})]),i=new st({}),r=new st({}),o=new st({}),s=new st(""),a=new pt(t,i,o,s,r,ne,e,n.root);return a.snapshot=n.root,new ca(new Ut(a,[]),n)}function oN(e){let n={},t={},i={},r="",o=new Mr([],n,i,r,t,ne,e,null,{});return new la("",new Ut(o,[]))}var pt=class{urlSubject;paramsSubject;queryParamsSubject;fragmentSubject;dataSubject;outlet;component;snapshot;_futureSnapshot;_routerState;_paramMap;_queryParamMap;title;url;params;queryParams;fragment;data;constructor(n,t,i,r,o,s,a,c){this.urlSubject=n,this.paramsSubject=t,this.queryParamsSubject=i,this.fragmentSubject=r,this.dataSubject=o,this.outlet=s,this.component=a,this._futureSnapshot=c,this.title=this.dataSubject?.pipe(Q(d=>d[fa]))??U(void 0),this.url=n,this.params=t,this.queryParams=i,this.fragment=r,this.data=o}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(Q(n=>Tr(n))),this._paramMap}get queryParamMap(){return this._queryParamMap??=this.queryParams.pipe(Q(n=>Tr(n))),this._queryParamMap}toString(){return this.snapshot?this.snapshot.toString():`Future(${this._futureSnapshot})`}};function ju(e,n,t="emptyOnly"){let i,{routeConfig:r}=e;return n!==null&&(t==="always"||r?.path===""||!n.component&&!n.routeConfig?.loadComponent)?i={params:I(I({},n.params),e.params),data:I(I({},n.data),e.data),resolve:I(I(I(I({},e.data),n.data),r?.data),e._resolvedData)}:i={params:I({},e.params),data:I({},e.data),resolve:I(I({},e.data),e._resolvedData??{})},r&&GE(r)&&(i.resolve[fa]=r.title),i}var Mr=class{url;params;queryParams;fragment;data;outlet;component;routeConfig;_resolve;_resolvedData;_routerState;_paramMap;_queryParamMap;get title(){return this.data?.[fa]}constructor(n,t,i,r,o,s,a,c,d){this.url=n,this.params=t,this.queryParams=i,this.fragment=r,this.data=o,this.outlet=s,this.component=a,this.routeConfig=c,this._resolve=d}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap??=Tr(this.params),this._paramMap}get queryParamMap(){return this._queryParamMap??=Tr(this.queryParams),this._queryParamMap}toString(){let n=this.url.map(i=>i.toString()).join("/"),t=this.routeConfig?this.routeConfig.path:"";return`Route(url:'${n}', path:'${t}')`}},la=class extends Lu{url;constructor(n,t){super(t),this.url=n,hg(this,t)}toString(){return zE(this._root)}};function hg(e,n){n.value._routerState=e,n.children.forEach(t=>hg(e,t))}function zE(e){let n=e.children.length>0?` { ${e.children.map(zE).join(", ")} } `:"";return`${e.value}${n}`}function Xh(e){if(e.snapshot){let n=e.snapshot,t=e._futureSnapshot;e.snapshot=t,Nn(n.queryParams,t.queryParams)||e.queryParamsSubject.next(t.queryParams),n.fragment!==t.fragment&&e.fragmentSubject.next(t.fragment),Nn(n.params,t.params)||e.paramsSubject.next(t.params),OO(n.url,t.url)||e.urlSubject.next(t.url),Nn(n.data,t.data)||e.dataSubject.next(t.data)}else e.snapshot=e._futureSnapshot,e.dataSubject.next(e._futureSnapshot.data)}function cg(e,n){let t=Nn(e.params,n.params)&&FO(e.url,n.url),i=!e.parent!=!n.parent;return t&&!i&&(!e.parent||cg(e.parent,n.parent))}function GE(e){return typeof e.title=="string"||e.title===null}var WE=new P(""),ha=(()=>{class e{activated=null;get activatedComponentRef(){return this.activated}_activatedRoute=null;name=ne;activateEvents=new _e;deactivateEvents=new _e;attachEvents=new _e;detachEvents=new _e;routerOutletData=O_(void 0);parentContexts=y(Fo);location=y(Jn);changeDetector=y(wr);inputBinder=y($u,{optional:!0});supportsBindingToComponentInputs=!0;ngOnChanges(t){if(t.name){let{firstChange:i,previousValue:r}=t.name;if(i)return;this.isTrackedInParentContexts(r)&&(this.deactivate(),this.parentContexts.onChildOutletDestroyed(r)),this.initializeOutletWithName()}}ngOnDestroy(){this.isTrackedInParentContexts(this.name)&&this.parentContexts.onChildOutletDestroyed(this.name),this.inputBinder?.unsubscribeFromRouteData(this)}isTrackedInParentContexts(t){return this.parentContexts.getContext(t)?.outlet===this}ngOnInit(){this.initializeOutletWithName()}initializeOutletWithName(){if(this.parentContexts.onChildOutletCreated(this.name,this),this.activated)return;let t=this.parentContexts.getContext(this.name);t?.route&&(t.attachRef?this.attach(t.attachRef,t.route):this.activateWith(t.route,t.injector))}get isActivated(){return!!this.activated}get component(){if(!this.activated)throw new M(4012,!1);return this.activated.instance}get activatedRoute(){if(!this.activated)throw new M(4012,!1);return this._activatedRoute}get activatedRouteData(){return this._activatedRoute?this._activatedRoute.snapshot.data:{}}detach(){if(!this.activated)throw new M(4012,!1);this.location.detach();let t=this.activated;return this.activated=null,this._activatedRoute=null,this.detachEvents.emit(t.instance),t}attach(t,i){this.activated=t,this._activatedRoute=i,this.location.insert(t.hostView),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.attachEvents.emit(t.instance)}deactivate(){if(this.activated){let t=this.component;this.activated.destroy(),this.activated=null,this._activatedRoute=null,this.deactivateEvents.emit(t)}}activateWith(t,i){if(this.isActivated)throw new M(4013,!1);this._activatedRoute=t;let r=this.location,s=t.snapshot.component,a=this.parentContexts.getOrCreateContext(this.name).children,c=new lg(t,a,r.injector,this.routerOutletData);this.activated=r.createComponent(s,{index:r.length,injector:c,environmentInjector:i}),this.changeDetector.markForCheck(),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.activateEvents.emit(this.activated.instance)}static \u0275fac=function(i){return new(i||e)};static \u0275dir=De({type:e,selectors:[["router-outlet"]],inputs:{name:"name",routerOutletData:[1,"routerOutletData"]},outputs:{activateEvents:"activate",deactivateEvents:"deactivate",attachEvents:"attach",detachEvents:"detach"},exportAs:["outlet"],features:[pn]})}return e})(),lg=class{route;childContexts;parent;outletData;constructor(n,t,i,r){this.route=n,this.childContexts=t,this.parent=i,this.outletData=r}get(n,t){return n===pt?this.route:n===Fo?this.childContexts:n===WE?this.outletData:this.parent.get(n,t)}},$u=new P("");var gg=(()=>{class e{static \u0275fac=function(i){return new(i||e)};static \u0275cmp=C({type:e,selectors:[["ng-component"]],exportAs:["emptyRouterOutlet"],decls:1,vars:0,template:function(i,r){i&1&&v(0,"router-outlet")},dependencies:[ha],encapsulation:2})}return e})();function vg(e){let n=e.children&&e.children.map(vg),t=n?Z(I({},e),{children:n}):I({},e);return!t.component&&!t.loadComponent&&(n||t.loadChildren)&&t.outlet&&t.outlet!==ne&&(t.component=gg),t}function sN(e,n,t){let i=ua(e,n._root,t?t._root:void 0);return new ca(i,n)}function ua(e,n,t){if(t&&e.shouldReuseRoute(n.value,t.value.snapshot)){let i=t.value;i._futureSnapshot=n.value;let r=aN(e,n,t);return new Ut(i,r)}else{if(e.shouldAttach(n.value)){let o=e.retrieve(n.value);if(o!==null){let s=o.route;return s.value._futureSnapshot=n.value,s.children=n.children.map(a=>ua(e,a)),s}}let i=cN(n.value),r=n.children.map(o=>ua(e,o));return new Ut(i,r)}}function aN(e,n,t){return n.children.map(i=>{for(let r of t.children)if(e.shouldReuseRoute(i.value,r.value.snapshot))return ua(e,i,r);return ua(e,i)})}function cN(e){return new pt(new st(e.url),new st(e.params),new st(e.queryParams),new st(e.fragment),new st(e.data),e.outlet,e.component,e)}var No=class{redirectTo;navigationBehaviorOptions;constructor(n,t){this.redirectTo=n,this.navigationBehaviorOptions=t}},qE="ngNavigationCancelingError";function Vu(e,n){let{redirectTo:t,navigationBehaviorOptions:i}=Mi(n)?{redirectTo:n,navigationBehaviorOptions:void 0}:n,r=YE(!1,St.Redirect);return r.url=t,r.navigationBehaviorOptions=i,r}function YE(e,n){let t=new Error(`NavigationCancelingError: ${e||""}`);return t[qE]=!0,t.cancellationCode=n,t}function lN(e){return ZE(e)&&Mi(e.url)}function ZE(e){return!!e&&e[qE]}var uN=(e,n,t,i)=>Q(r=>(new ug(n,r.targetRouterState,r.currentRouterState,t,i).activate(e),r)),ug=class{routeReuseStrategy;futureState;currState;forwardEvent;inputBindingEnabled;constructor(n,t,i,r,o){this.routeReuseStrategy=n,this.futureState=t,this.currState=i,this.forwardEvent=r,this.inputBindingEnabled=o}activate(n){let t=this.futureState._root,i=this.currState?this.currState._root:null;this.deactivateChildRoutes(t,i,n),Xh(this.futureState.root),this.activateChildRoutes(t,i,n)}deactivateChildRoutes(n,t,i){let r=Mo(t);n.children.forEach(o=>{let s=o.value.outlet;this.deactivateRoutes(o,r[s],i),delete r[s]}),Object.values(r).forEach(o=>{this.deactivateRouteAndItsChildren(o,i)})}deactivateRoutes(n,t,i){let r=n.value,o=t?t.value:null;if(r===o)if(r.component){let s=i.getContext(r.outlet);s&&this.deactivateChildRoutes(n,t,s.children)}else this.deactivateChildRoutes(n,t,i);else o&&this.deactivateRouteAndItsChildren(t,i)}deactivateRouteAndItsChildren(n,t){n.value.component&&this.routeReuseStrategy.shouldDetach(n.value.snapshot)?this.detachAndStoreRouteSubtree(n,t):this.deactivateRouteAndOutlet(n,t)}detachAndStoreRouteSubtree(n,t){let i=t.getContext(n.value.outlet),r=i&&n.value.component?i.children:t,o=Mo(n);for(let s of Object.values(o))this.deactivateRouteAndItsChildren(s,r);if(i&&i.outlet){let s=i.outlet.detach(),a=i.children.onOutletDeactivated();this.routeReuseStrategy.store(n.value.snapshot,{componentRef:s,route:n,contexts:a})}}deactivateRouteAndOutlet(n,t){let i=t.getContext(n.value.outlet),r=i&&n.value.component?i.children:t,o=Mo(n);for(let s of Object.values(o))this.deactivateRouteAndItsChildren(s,r);i&&(i.outlet&&(i.outlet.deactivate(),i.children.onOutletDeactivated()),i.attachRef=null,i.route=null)}activateChildRoutes(n,t,i){let r=Mo(t);n.children.forEach(o=>{this.activateRoutes(o,r[o.value.outlet],i),this.forwardEvent(new Pu(o.value.snapshot))}),n.children.length&&this.forwardEvent(new Nu(n.value.snapshot))}activateRoutes(n,t,i){let r=n.value,o=t?t.value:null;if(Xh(r),r===o)if(r.component){let s=i.getOrCreateContext(r.outlet);this.activateChildRoutes(n,t,s.children)}else this.activateChildRoutes(n,t,i);else if(r.component){let s=i.getOrCreateContext(r.outlet);if(this.routeReuseStrategy.shouldAttach(r.snapshot)){let a=this.routeReuseStrategy.retrieve(r.snapshot);this.routeReuseStrategy.store(r.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),Xh(a.route.value),this.activateChildRoutes(n,null,s.children)}else s.attachRef=null,s.route=r,s.outlet&&s.outlet.activateWith(r,s.injector),this.activateChildRoutes(n,null,s.children)}else this.activateChildRoutes(n,null,i)}},Bu=class{path;route;constructor(n){this.path=n,this.route=this.path[this.path.length-1]}},Ao=class{component;route;constructor(n,t){this.component=n,this.route=t}};function dN(e,n,t){let i=e._root,r=n?n._root:null;return ea(i,r,t,[i.value])}function pN(e){let n=e.routeConfig?e.routeConfig.canActivateChild:null;return!n||n.length===0?null:{node:e,guards:n}}function Lo(e,n){let t=Symbol(),i=n.get(e,t);return i===t?typeof e=="function"&&!tp(e)?e:n.get(e):i}function ea(e,n,t,i,r={canDeactivateChecks:[],canActivateChecks:[]}){let o=Mo(n);return e.children.forEach(s=>{fN(s,o[s.value.outlet],t,i.concat([s.value]),r),delete o[s.value.outlet]}),Object.entries(o).forEach(([s,a])=>ia(a,t.getContext(s),r)),r}function fN(e,n,t,i,r={canDeactivateChecks:[],canActivateChecks:[]}){let o=e.value,s=n?n.value:null,a=t?t.getContext(e.value.outlet):null;if(s&&o.routeConfig===s.routeConfig){let c=mN(s,o,o.routeConfig.runGuardsAndResolvers);c?r.canActivateChecks.push(new Bu(i)):(o.data=s.data,o._resolvedData=s._resolvedData),o.component?ea(e,n,a?a.children:null,i,r):ea(e,n,t,i,r),c&&a&&a.outlet&&a.outlet.isActivated&&r.canDeactivateChecks.push(new Ao(a.outlet.component,s))}else s&&ia(n,a,r),r.canActivateChecks.push(new Bu(i)),o.component?ea(e,null,a?a.children:null,i,r):ea(e,null,t,i,r);return r}function mN(e,n,t){if(typeof t=="function")return t(e,n);switch(t){case"pathParamsChange":return!Ir(e.url,n.url);case"pathParamsOrQueryParamsChange":return!Ir(e.url,n.url)||!Nn(e.queryParams,n.queryParams);case"always":return!0;case"paramsOrQueryParamsChange":return!cg(e,n)||!Nn(e.queryParams,n.queryParams);case"paramsChange":default:return!cg(e,n)}}function ia(e,n,t){let i=Mo(e),r=e.value;
8Object.entries(i).forEach(([o,s])=>{r.component?n?ia(s,n.children.getContext(o),t):ia(s,null,t):ia(s,n,t)}),r.component?n&&n.outlet&&n.outlet.isActivated?t.canDeactivateChecks.push(new Ao(n.outlet.component,r)):t.canDeactivateChecks.push(new Ao(null,r)):t.canDeactivateChecks.push(new Ao(null,r))}function ga(e){return typeof e=="function"}function hN(e){return typeof e=="boolean"}function gN(e){return e&&ga(e.canLoad)}function vN(e){return e&&ga(e.canActivate)}function yN(e){return e&&ga(e.canActivateChild)}function bN(e){return e&&ga(e.canDeactivate)}function wN(e){return e&&ga(e.canMatch)}function QE(e){return e instanceof Ln||e?.name==="EmptyError"}var wu=Symbol("INITIAL_VALUE");function Ro(){return ct(e=>fc(e.map(n=>n.pipe(jn(1),$d(wu)))).pipe(Q(n=>{for(let t of n)if(t!==!0){if(t===wu)return wu;if(t===!1||_N(t))return t}return!0}),at(n=>n!==wu),jn(1)))}function _N(e){return Mi(e)||e instanceof No}function EN(e,n){return Ye(t=>{let{targetSnapshot:i,currentSnapshot:r,guards:{canActivateChecks:o,canDeactivateChecks:s}}=t;return s.length===0&&o.length===0?U(Z(I({},t),{guardsResult:!0})):CN(s,i,r,e).pipe(Ye(a=>a&&hN(a)?xN(i,o,e,n):U(a)),Q(a=>Z(I({},t),{guardsResult:a})))})}function CN(e,n,t,i){return Le(e).pipe(Ye(r=>TN(r.component,r.route,t,n,i)),Vn(r=>r!==!0,!0))}function xN(e,n,t,i){return Le(n).pipe(ui(r=>zr(SN(r.route.parent,i),DN(r.route,i),MN(e,r.path,t),IN(e,r.route,t))),Vn(r=>r!==!0,!0))}function DN(e,n){return e!==null&&n&&n(new Ru(e)),U(!0)}function SN(e,n){return e!==null&&n&&n(new Ou(e)),U(!0)}function IN(e,n,t){let i=n.routeConfig?n.routeConfig.canActivate:null;if(!i||i.length===0)return U(!0);let r=i.map(o=>es(()=>{let s=Po(n)??t,a=Lo(o,s),c=vN(a)?a.canActivate(n,e):ut(s,()=>a(n,e));return si(c).pipe(Vn())}));return U(r).pipe(Ro())}function MN(e,n,t){let i=n[n.length-1],o=n.slice(0,n.length-1).reverse().map(s=>pN(s)).filter(s=>s!==null).map(s=>es(()=>{let a=s.guards.map(c=>{let d=Po(s.node)??t,m=Lo(c,d),h=yN(m)?m.canActivateChild(i,e):ut(d,()=>m(i,e));return si(h).pipe(Vn())});return U(a).pipe(Ro())}));return U(o).pipe(Ro())}function TN(e,n,t,i,r){let o=n&&n.routeConfig?n.routeConfig.canDeactivate:null;if(!o||o.length===0)return U(!0);let s=o.map(a=>{let c=Po(n)??r,d=Lo(a,c),m=bN(d)?d.canDeactivate(e,n,t,i):ut(c,()=>d(e,n,t,i));return si(m).pipe(Vn())});return U(s).pipe(Ro())}function AN(e,n,t,i){let r=n.canLoad;if(r===void 0||r.length===0)return U(!0);let o=r.map(s=>{let a=Lo(s,e),c=gN(a)?a.canLoad(n,t):ut(e,()=>a(n,t));return si(c)});return U(o).pipe(Ro(),KE(i))}function KE(e){return kd(nt(n=>{if(typeof n!="boolean")throw Vu(e,n)}),Q(n=>n===!0))}function kN(e,n,t,i){let r=n.canMatch;if(!r||r.length===0)return U(!0);let o=r.map(s=>{let a=Lo(s,e),c=wN(a)?a.canMatch(n,t):ut(e,()=>a(n,t));return si(c)});return U(o).pipe(Ro(),KE(i))}var da=class{segmentGroup;constructor(n){this.segmentGroup=n||null}},pa=class extends Error{urlTree;constructor(n){super(),this.urlTree=n}};function Io(e){return Hr(new da(e))}function ON(e){return Hr(new M(4e3,!1))}function NN(e){return Hr(YE(!1,St.GuardRejected))}var dg=class{urlSerializer;urlTree;constructor(n,t){this.urlSerializer=n,this.urlTree=t}lineralizeSegments(n,t){let i=[],r=t.root;for(;;){if(i=i.concat(r.segments),r.numberOfChildren===0)return U(i);if(r.numberOfChildren>1||!r.children[ne])return ON(`${n.redirectTo}`);r=r.children[ne]}}applyRedirectCommands(n,t,i,r,o){return RN(t,r,o).pipe(Q(s=>{if(s instanceof Pn)throw new pa(s);let a=this.applyRedirectCreateUrlTree(s,this.urlSerializer.parse(s),n,i);if(s[0]==="/")throw new pa(a);return a}))}applyRedirectCreateUrlTree(n,t,i,r){let o=this.createSegmentGroup(n,t.root,i,r);return new Pn(o,this.createQueryParams(t.queryParams,this.urlTree.queryParams),t.fragment)}createQueryParams(n,t){let i={};return Object.entries(n).forEach(([r,o])=>{if(typeof o=="string"&&o[0]===":"){let a=o.substring(1);i[r]=t[a]}else i[r]=o}),i}createSegmentGroup(n,t,i,r){let o=this.createSegments(n,t.segments,i,r),s={};return Object.entries(t.children).forEach(([a,c])=>{s[a]=this.createSegmentGroup(n,c,i,r)}),new ve(o,s)}createSegments(n,t,i,r){return t.map(o=>o.path[0]===":"?this.findPosParam(n,o,r):this.findOrReturn(o,i))}findPosParam(n,t,i){let r=i[t.path.substring(1)];if(!r)throw new M(4001,!1);return r}findOrReturn(n,t){let i=0;for(let r of t){if(r.path===n.path)return t.splice(i),r;i++}return n}};function RN(e,n,t){if(typeof e=="string")return U(e);
8let i=e,{queryParams:r,fragment:o,routeConfig:s,url:a,outlet:c,params:d,data:m,title:h}=n;return si(ut(t,()=>i({params:d,data:m,queryParams:r,fragment:o,routeConfig:s,url:a,outlet:c,title:h})))}var pg={matched:!1,consumedSegments:[],remainingSegments:[],parameters:{},positionalParamSegments:{}};function PN(e,n,t,i,r){let o=JE(e,n,t);return o.matched?(i=iN(n,i),kN(i,n,t,r).pipe(Q(s=>s===!0?o:I({},pg)))):U(o)}function JE(e,n,t){if(n.path==="**")return FN(t);if(n.path==="")return n.pathMatch==="full"&&(e.hasChildren()||t.length>0)?I({},pg):{matched:!0,consumedSegments:[],remainingSegments:t,parameters:{},positionalParamSegments:{}};let r=(n.matcher||IE)(t,e,n);if(!r)return I({},pg);let o={};Object.entries(r.posParams??{}).forEach(([a,c])=>{o[a]=c.path});let s=r.consumed.length>0?I(I({},o),r.consumed[r.consumed.length-1].parameters):o;return{matched:!0,consumedSegments:r.consumed,remainingSegments:t.slice(r.consumed.length),parameters:s,positionalParamSegments:r.posParams??{}}}function FN(e){return{matched:!0,parameters:e.length>0?TE(e).parameters:{},consumedSegments:e,remainingSegments:[],positionalParamSegments:{}}}function xE(e,n,t,i){return t.length>0&&VN(e,t,i)?{segmentGroup:new ve(n,jN(i,new ve(t,e.children))),slicedSegments:[]}:t.length===0&&BN(e,t,i)?{segmentGroup:new ve(e.segments,LN(e,t,i,e.children)),slicedSegments:t}:{segmentGroup:new ve(e.segments,e.children),slicedSegments:t}}function LN(e,n,t,i){let r={};for(let o of t)if(Hu(e,n,o)&&!i[vn(o)]){let s=new ve([],{});r[vn(o)]=s}return I(I({},i),r)}function jN(e,n){let t={};t[ne]=n;for(let i of e)if(i.path===""&&vn(i)!==ne){let r=new ve([],{});t[vn(i)]=r}return t}function VN(e,n,t){return t.some(i=>Hu(e,n,i)&&vn(i)!==ne)}function BN(e,n,t){return t.some(i=>Hu(e,n,i))}function Hu(e,n,t){return(e.hasChildren()||n.length>0)&&t.pathMatch==="full"?!1:t.path===""}function UN(e,n,t){return n.length===0&&!e.children[t]}var fg=class{};function $N(e,n,t,i,r,o,s="emptyOnly"){return new mg(e,n,t,i,r,s,o).recognize()}var HN=31,mg=class{injector;configLoader;rootComponentType;config;urlTree;paramsInheritanceStrategy;urlSerializer;applyRedirects;absoluteRedirectCount=0;allowRedirects=!0;constructor(n,t,i,r,o,s,a){this.injector=n,this.configLoader=t,this.rootComponentType=i,this.config=r,this.urlTree=o,this.paramsInheritanceStrategy=s,this.urlSerializer=a,this.applyRedirects=new dg(this.urlSerializer,this.urlTree)}noMatchError(n){return new M(4002,`'${n.segmentGroup}'`)}recognize(){let n=xE(this.urlTree.root,[],[],this.config).segmentGroup;return this.match(n).pipe(Q(({children:t,rootSnapshot:i})=>{let r=new Ut(i,t),o=new la("",r),s=jE(i,[],this.urlTree.queryParams,this.urlTree.fragment);return s.queryParams=this.urlTree.queryParams,o.url=this.urlSerializer.serialize(s),{state:o,tree:s}}))}match(n){let t=new Mr([],Object.freeze({}),Object.freeze(I({},this.urlTree.queryParams)),this.urlTree.fragment,Object.freeze({}),ne,this.rootComponentType,null,{});return this.processSegmentGroup(this.injector,this.config,n,ne,t).pipe(Q(i=>({children:i,rootSnapshot:t})),nn(i=>{if(i instanceof pa)return this.urlTree=i.urlTree,this.match(i.urlTree.root);throw i instanceof da?this.noMatchError(i):i}))}processSegmentGroup(n,t,i,r,o){return i.segments.length===0&&i.hasChildren()?this.processChildren(n,t,i,o):this.processSegment(n,t,i,i.segments,r,!0,o).pipe(Q(s=>s instanceof Ut?[s]:[]))}processChildren(n,t,i,r){let o=[];for(let s of Object.keys(i.children))s==="primary"?o.unshift(s):o.push(s);return Le(o).pipe(ui(s=>{let a=i.children[s],c=rN(t,s);return this.processSegmentGroup(n,c,a,s,r)}),Vd((s,a)=>(s.push(...a),s)),di(null),jd(),Ye(s=>{if(s===null)return Io(i);let a=XE(s);return zN(a),U(a)}))}processSegment(n,t,i,r,o,s,a){return Le(t).pipe(ui(c=>this.processSegmentAgainstRoute(c._injector??n,t,c,i,r,o,s,a).pipe(nn(d=>{if(d instanceof da)return U(null);throw d}))),Vn(c=>!!c),nn(c=>{if(QE(c))return UN(i,r,o)?U(new fg):Io(i);throw c}))}processSegmentAgainstRoute(n,t,i,r,o,s,a,c){return vn(i)!==s&&(s===ne||!Hu(r,o,i))?Io(r):i.redirectTo===void 0?this.matchSegmentAgainstRoute(n,r,i,o,s,c):this.allowRedirects&&a?this.expandSegmentAgainstRouteUsingRedirect(n,r,t,i,o,s,c):Io(r)}expandSegmentAgainstRouteUsingRedirect(n,t,i,r,o,s,a){let{matched:c,parameters:d,consumedSegments:m,positionalParamSegments:h,remainingSegments:w}=JE(t,r,o);if(!c)return Io(t);
8typeof r.redirectTo=="string"&&r.redirectTo[0]==="/"&&(this.absoluteRedirectCount++,this.absoluteRedirectCount>HN&&(this.allowRedirects=!1));let g=new Mr(o,d,Object.freeze(I({},this.urlTree.queryParams)),this.urlTree.fragment,DE(r),vn(r),r.component??r._loadedComponent??null,r,SE(r)),x=ju(g,a,this.paramsInheritanceStrategy);return g.params=Object.freeze(x.params),g.data=Object.freeze(x.data),this.applyRedirects.applyRedirectCommands(m,r.redirectTo,h,g,n).pipe(ct(k=>this.applyRedirects.lineralizeSegments(r,k)),Ye(k=>this.processSegment(n,i,t,k.concat(w),s,!1,a)))}matchSegmentAgainstRoute(n,t,i,r,o,s){let a=PN(t,i,r,n,this.urlSerializer);return i.path==="**"&&(t.children={}),a.pipe(ct(c=>c.matched?(n=i._injector??n,this.getChildConfig(n,i,r).pipe(ct(({routes:d})=>{let m=i._loadedInjector??n,{parameters:h,consumedSegments:w,remainingSegments:g}=c,x=new Mr(w,h,Object.freeze(I({},this.urlTree.queryParams)),this.urlTree.fragment,DE(i),vn(i),i.component??i._loadedComponent??null,i,SE(i)),R=ju(x,s,this.paramsInheritanceStrategy);x.params=Object.freeze(R.params),x.data=Object.freeze(R.data);let{segmentGroup:k,slicedSegments:N}=xE(t,w,g,d);if(N.length===0&&k.hasChildren())return this.processChildren(m,d,k,x).pipe(Q(ft=>new Ut(x,ft)));if(d.length===0&&N.length===0)return U(new Ut(x,[]));let we=vn(i)===o;return this.processSegment(m,d,k,N,we?ne:o,!0,x).pipe(Q(ft=>new Ut(x,ft instanceof Ut?[ft]:[])))}))):Io(t)))}getChildConfig(n,t,i){return t.children?U({routes:t.children,injector:n}):t.loadChildren?t._loadedRoutes!==void 0?U({routes:t._loadedRoutes,injector:t._loadedInjector}):AN(n,t,i,this.urlSerializer).pipe(Ye(r=>r?this.configLoader.loadChildren(n,t).pipe(nt(o=>{t._loadedRoutes=o.routes,t._loadedInjector=o.injector})):NN(t))):U({routes:[],injector:n})}};function zN(e){e.sort((n,t)=>n.value.outlet===ne?-1:t.value.outlet===ne?1:n.value.outlet.localeCompare(t.value.outlet))}function GN(e){let n=e.value.routeConfig;return n&&n.path===""}function XE(e){let n=[],t=new Set;for(let i of e){if(!GN(i)){n.push(i);continue}let r=n.find(o=>i.value.routeConfig===o.value.routeConfig);r!==void 0?(r.children.push(...i.children),t.add(r)):n.push(i)}for(let i of t){let r=XE(i.children);n.push(new Ut(i.value,r))}return n.filter(i=>!t.has(i))}function DE(e){return e.data||{}}function SE(e){return e.resolve||{}}function WN(e,n,t,i,r,o){return Ye(s=>$N(e,n,t,i,s.extractedUrl,r,o).pipe(Q(({state:a,tree:c})=>Z(I({},s),{targetSnapshot:a,urlAfterRedirects:c}))))}function qN(e,n){return Ye(t=>{let{targetSnapshot:i,guards:{canActivateChecks:r}}=t;if(!r.length)return U(t);let o=new Set(r.map(c=>c.route)),s=new Set;for(let c of o)if(!s.has(c))for(let d of eC(c))s.add(d);let a=0;return Le(s).pipe(ui(c=>o.has(c)?YN(c,i,e,n):(c.data=ju(c,c.parent,e).resolve,U(void 0))),nt(()=>a++),Gr(1),Ye(c=>a===s.size?U(t):It))})}function eC(e){let n=e.children.map(t=>eC(t)).flat();return[e,...n]}function YN(e,n,t,i){let r=e.routeConfig,o=e._resolve;return r?.title!==void 0&&!GE(r)&&(o[fa]=r.title),es(()=>(e.data=ju(e,e.parent,t).resolve,ZN(o,e,n,i).pipe(Q(s=>(e._resolvedData=s,e.data=I(I({},e.data),s),null)))))}function ZN(e,n,t,i){let r=ng(e);if(r.length===0)return U({});let o={};return Le(r).pipe(Ye(s=>QN(e[s],n,t,i).pipe(Vn(),nt(a=>{if(a instanceof No)throw Vu(new Ar,a);o[s]=a}))),Gr(1),Q(()=>o),nn(s=>QE(s)?It:Hr(s)))}function QN(e,n,t,i){let r=Po(n)??i,o=Lo(e,r),s=o.resolve?o.resolve(n,t):ut(r,()=>o(n,t));return si(s)}function eg(e){return ct(n=>{let t=e(n);return t?Le(t).pipe(Q(()=>n)):U(n)})}var yg=(()=>{class e{buildTitle(t){let i,r=t.root;for(;r!==void 0;)i=this.getResolvedTitleForRoute(r)??i,r=r.children.find(o=>o.outlet===ne);return i}getResolvedTitleForRoute(t){return t.data[fa]}static \u0275fac=function(i){return new(i||e)};static \u0275prov=A({token:e,factory:()=>y(tC),providedIn:"root"})}return e})(),tC=(()=>{class e extends yg{title;constructor(t){super(),this.title=t}updateTitle(t){let i=this.buildTitle(t);i!==void 0&&this.title.setTitle(i)}static \u0275fac=function(i){return new(i||e)($(yu))};static \u0275prov=A({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})(),jo=new P("",{providedIn:"root",factory:()=>({})}),va=new P(""),nC=(()=>{class e{componentLoaders=new WeakMap;childrenLoaders=new WeakMap;onLoadStartListener;onLoadEndListener;compiler=y(nh);loadComponent(t,i){if(this.componentLoaders.get(i))return this.componentLoaders.get(i);if(i._loadedComponent)return U(i._loadedComponent);this.onLoadStartListener&&this.onLoadStartListener(i);let r=si(ut(t,()=>i.loadComponent())).pipe(Q(rC),nt(s=>{this.onLoadEndListener&&this.onLoadEndListener(i),i._loadedComponent=s}),zi(()=>{this.componentLoaders.delete(i)})),o=new $r(r,()=>new ke).pipe(Ur());return this.componentLoaders.set(i,o),o}loadChildren(t,i){if(this.childrenLoaders.get(i))return this.childrenLoaders.get(i);if(i._loadedRoutes)return U({routes:i._loadedRoutes,injector:i._loadedInjector});this.onLoadStartListener&&this.onLoadStartListener(i);let o=iC(i,this.compiler,t,this.onLoadEndListener).pipe(zi(()=>{this.childrenLoaders.delete(i)})),s=new $r(o,()=>new ke).pipe(Ur());return this.childrenLoaders.set(i,s),s}static \u0275fac=function(i){return new(i||e)};static \u0275prov=A({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();function iC(e,n,t,i){return si(ut(t,()=>e.loadChildren())).pipe(Q(rC),Ye(r=>r instanceof Bl||Array.isArray(r)?U(r):Le(n.compileModuleAsync(r))),Q(r=>{i&&i(e);let o,s,a=!1;return Array.isArray(r)?(s=r,a=!0):(o=r.create(t).injector,s=o.get(va,[],{optional:!0,self:!0}).flat()),{routes:s.map(vg),injector:o}}))}function KN(e){return e&&typeof e=="object"&&"default"in e}function rC(e){return KN(e)?e.default:e}var zu=(()=>{class e{static \u0275fac=function(i){return new(i||e)};static \u0275prov=A({token:e,factory:()=>y(JN),providedIn:"root"})}return e})(),JN=(()=>{class e{shouldProcessUrl(t){return!0}extract(t){return t}merge(t,i){return t}static \u0275fac=function(i){return new(i||e)};static \u0275prov=A({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})(),oC=new P("");var sC=new P(""),aC=(()=>{class e{currentNavigation=null;currentTransition=null;lastSuccessfulNavigation=null;events=new ke;
8transitionAbortWithErrorSubject=new ke;configLoader=y(nC);environmentInjector=y($e);destroyRef=y(ht);urlSerializer=y(ma);rootContexts=y(Fo);location=y(Eo);inputBindingEnabled=y($u,{optional:!0})!==null;titleStrategy=y(yg);options=y(jo,{optional:!0})||{};paramsInheritanceStrategy=this.options.paramsInheritanceStrategy||"emptyOnly";urlHandlingStrategy=y(zu);createViewTransition=y(oC,{optional:!0});navigationErrorHandler=y(sC,{optional:!0});navigationId=0;get hasRequestedNavigation(){return this.navigationId!==0}transitions;afterPreactivation=()=>U(void 0);rootComponentType=null;destroyed=!1;constructor(){let t=r=>this.events.next(new Au(r)),i=r=>this.events.next(new ku(r));this.configLoader.onLoadEndListener=i,this.configLoader.onLoadStartListener=t,this.destroyRef.onDestroy(()=>{this.destroyed=!0})}complete(){this.transitions?.complete()}handleNavigationRequest(t){let i=++this.navigationId;this.transitions?.next(Z(I({},t),{extractedUrl:this.urlHandlingStrategy.extract(t.rawUrl),targetSnapshot:null,targetRouterState:null,guards:{canActivateChecks:[],canDeactivateChecks:[]},guardsResult:null,abortController:new AbortController,id:i}))}setupNavigations(t){return this.transitions=new st(null),this.transitions.pipe(at(i=>i!==null),ct(i=>{let r=!1;return U(i).pipe(ct(o=>{if(this.navigationId>i.id)return this.cancelNavigationTransition(i,"",St.SupersededByNewNavigation),It;this.currentTransition=i,this.currentNavigation={id:o.id,initialUrl:o.rawUrl,extractedUrl:o.extractedUrl,targetBrowserUrl:typeof o.extras.browserUrl=="string"?this.urlSerializer.parse(o.extras.browserUrl):o.extras.browserUrl,trigger:o.source,extras:o.extras,previousNavigation:this.lastSuccessfulNavigation?Z(I({},this.lastSuccessfulNavigation),{previousNavigation:null}):null,abort:()=>o.abortController.abort()};let s=!t.navigated||this.isUpdatingInternalState()||this.isUpdatedBrowserUrl(),a=o.extras.onSameUrlNavigation??t.onSameUrlNavigation;if(!s&&a!=="reload"){let c="";return this.events.next(new oi(o.id,this.urlSerializer.serialize(o.rawUrl),c,oa.IgnoredSameUrlNavigation)),o.resolve(!1),It}if(this.urlHandlingStrategy.shouldProcessUrl(o.rawUrl))return U(o).pipe(ct(c=>(this.events.next(new kr(c.id,this.urlSerializer.serialize(c.extractedUrl),c.source,c.restoredState)),c.id!==this.navigationId?It:Promise.resolve(c))),WN(this.environmentInjector,this.configLoader,this.rootComponentType,t.config,this.urlSerializer,this.paramsInheritanceStrategy),nt(c=>{i.targetSnapshot=c.targetSnapshot,i.urlAfterRedirects=c.urlAfterRedirects,this.currentNavigation=Z(I({},this.currentNavigation),{finalUrl:c.urlAfterRedirects});let d=new sa(c.id,this.urlSerializer.serialize(c.extractedUrl),this.urlSerializer.serialize(c.urlAfterRedirects),c.targetSnapshot);this.events.next(d)}));if(s&&this.urlHandlingStrategy.shouldProcessUrl(o.currentRawUrl)){let{id:c,extractedUrl:d,source:m,restoredState:h,extras:w}=o,g=new kr(c,this.urlSerializer.serialize(d),m,h);this.events.next(g);let x=HE(this.rootComponentType).snapshot;return this.currentTransition=i=Z(I({},o),{targetSnapshot:x,urlAfterRedirects:d,extras:Z(I({},w),{skipLocationChange:!1,replaceUrl:!1})}),this.currentNavigation.finalUrl=d,U(i)}else{let c="";return this.events.next(new oi(o.id,this.urlSerializer.serialize(o.extractedUrl),c,oa.IgnoredByUrlHandlingStrategy)),o.resolve(!1),It}}),nt(o=>{let s=new Su(o.id,this.urlSerializer.serialize(o.extractedUrl),this.urlSerializer.serialize(o.urlAfterRedirects),o.targetSnapshot);this.events.next(s)}),Q(o=>(this.currentTransition=i=Z(I({},o),{guards:dN(o.targetSnapshot,o.currentSnapshot,this.rootContexts)}),i)),EN(this.environmentInjector,o=>this.events.next(o)),nt(o=>{if(i.guardsResult=o.guardsResult,o.guardsResult&&typeof o.guardsResult!="boolean")throw Vu(this.urlSerializer,o.guardsResult);let s=new Iu(o.id,this.urlSerializer.serialize(o.extractedUrl),this.urlSerializer.serialize(o.urlAfterRedirects),o.targetSnapshot,!!o.guardsResult);this.events.next(s)}),at(o=>o.guardsResult?!0:(this.cancelNavigationTransition(o,"",St.GuardRejected),!1)),eg(o=>{if(o.guards.canActivateChecks.length!==0)return U(o).pipe(nt(s=>{let a=new Mu(s.id,this.urlSerializer.serialize(s.extractedUrl),this.urlSerializer.serialize(s.urlAfterRedirects),s.targetSnapshot);this.events.next(a)}),ct(s=>{let a=!1;return U(s).pipe(qN(this.paramsInheritanceStrategy,this.environmentInjector),nt({next:()=>a=!0,complete:()=>
vendor: 12,874 bytes, line 8
8{a||this.cancelNavigationTransition(s,"",St.NoDataFromResolver)}}))}),nt(s=>{let a=new Tu(s.id,this.urlSerializer.serialize(s.extractedUrl),this.urlSerializer.serialize(s.urlAfterRedirects),s.targetSnapshot);this.events.next(a)}))}),eg(o=>{let s=a=>{let c=[];if(a.routeConfig?.loadComponent&&!a.routeConfig._loadedComponent){let d=Po(a)??this.environmentInjector;c.push(this.configLoader.loadComponent(d,a.routeConfig).pipe(nt(m=>{a.component=m}),Q(()=>{})))}for(let d of a.children)c.push(...s(d));return c};return fc(s(o.targetSnapshot.root)).pipe(di(null),jn(1))}),eg(()=>this.afterPreactivation()),ct(()=>{let{currentSnapshot:o,targetSnapshot:s}=i,a=this.createViewTransition?.(this.environmentInjector,o.root,s.root);return a?Le(a).pipe(Q(()=>i)):U(i)}),Q(o=>{let s=sN(t.routeReuseStrategy,o.targetSnapshot,o.currentRouterState);return this.currentTransition=i=Z(I({},o),{targetRouterState:s}),this.currentNavigation.targetRouterState=s,i}),nt(()=>{this.events.next(new aa)}),uN(this.rootContexts,t.routeReuseStrategy,o=>this.events.next(o),this.inputBindingEnabled),jn(1),hc(new oe(o=>{let s=i.abortController.signal,a=()=>o.next();return s.addEventListener("abort",a),()=>s.removeEventListener("abort",a)}).pipe(at(()=>!r&&!i.targetRouterState),nt(()=>{this.cancelNavigationTransition(i,i.abortController.signal.reason+"",St.Aborted)}))),nt({next:o=>{r=!0,this.lastSuccessfulNavigation=this.currentNavigation,this.events.next(new Xt(o.id,this.urlSerializer.serialize(o.extractedUrl),this.urlSerializer.serialize(o.urlAfterRedirects))),this.titleStrategy?.updateTitle(o.targetRouterState.snapshot),o.resolve(!0)},complete:()=>{r=!0}}),hc(this.transitionAbortWithErrorSubject.pipe(nt(o=>{throw o}))),zi(()=>{r||this.cancelNavigationTransition(i,"",St.SupersededByNewNavigation),this.currentTransition?.id===i.id&&(this.currentNavigation=null,this.currentTransition=null)}),nn(o=>{if(this.destroyed)return i.resolve(!1),It;if(r=!0,ZE(o))this.events.next(new Rn(i.id,this.urlSerializer.serialize(i.extractedUrl),o.message,o.cancellationCode)),lN(o)?this.events.next(new Oo(o.url,o.navigationBehaviorOptions)):i.resolve(!1);else{let s=new ko(i.id,this.urlSerializer.serialize(i.extractedUrl),o,i.targetSnapshot??void 0);try{let a=ut(this.environmentInjector,()=>this.navigationErrorHandler?.(s));if(a instanceof No){let{message:c,cancellationCode:d}=Vu(this.urlSerializer,a);this.events.next(new Rn(i.id,this.urlSerializer.serialize(i.extractedUrl),c,d)),this.events.next(new Oo(a.redirectTo,a.navigationBehaviorOptions))}else throw this.events.next(s),o}catch(a){this.options.resolveNavigationPromiseOnError?i.resolve(!1):i.reject(a)}}return It}))}))}cancelNavigationTransition(t,i,r){let o=new Rn(t.id,this.urlSerializer.serialize(t.extractedUrl),i,r);this.events.next(o),t.resolve(!1)}isUpdatingInternalState(){return this.currentTransition?.extractedUrl.toString()!==this.currentTransition?.currentUrlTree.toString()}isUpdatedBrowserUrl(){let t=this.urlHandlingStrategy.extract(this.urlSerializer.parse(this.location.path(!0))),i=this.currentNavigation?.targetBrowserUrl??this.currentNavigation?.extractedUrl;return t.toString()!==i?.toString()&&!this.currentNavigation?.extras.skipLocationChange}static \u0275fac=function(i){return new(i||e)};static \u0275prov=A({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();function XN(e){return e!==na}var cC=(()=>{class e{static \u0275fac=function(i){return new(i||e)};static \u0275prov=A({token:e,factory:()=>y(eR),providedIn:"root"})}return e})(),Uu=class{shouldDetach(n){return!1}store(n,t){}shouldAttach(n){return!1}retrieve(n){return null}shouldReuseRoute(n,t){return n.routeConfig===t.routeConfig}},eR=(()=>{class e extends Uu{static \u0275fac=(()=>{let t;return function(r){return(t||(t=pr(e)))(r||e)}})();static \u0275prov=A({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})(),lC=(()=>{class e{urlSerializer=y(ma);options=y(jo,{optional:!0})||{};canceledNavigationResolution=this.options.canceledNavigationResolution||"replace";location=y(Eo);urlHandlingStrategy=y(zu);urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred";currentUrlTree=new Pn;getCurrentUrlTree(){return this.currentUrlTree}rawUrlTree=this.currentUrlTree;getRawUrlTree(){return this.rawUrlTree}createBrowserPath({finalUrl:t,initialUrl:i,targetBrowserUrl:r}){let o=t!==void 0?this.urlHandlingStrategy.merge(t,i):i,s=r??o;return s instanceof Pn?this.urlSerializer.serialize(s):s}commitTransition({targetRouterState:t,finalUrl:i,initialUrl:r}){i&&t?(this.currentUrlTree=i,this.rawUrlTree=this.urlHandlingStrategy.merge(i,r),this.routerState=t):this.rawUrlTree=r}routerState=HE(null);getRouterState(){return this.routerState}stateMemento=this.createStateMemento();updateStateMemento(){this.stateMemento=this.createStateMemento()}createStateMemento(){return{rawUrlTree:this.rawUrlTree,currentUrlTree:this.currentUrlTree,routerState:this.routerState}}resetInternalState({finalUrl:t}){this.routerState=this.stateMemento.routerState,this.currentUrlTree=this.stateMemento.currentUrlTree,this.rawUrlTree=this.urlHandlingStrategy.merge(this.currentUrlTree,t??this.rawUrlTree)}static \u0275fac=function(i){return new(i||e)};static \u0275prov=A({token:e,factory:()=>y(tR),providedIn:"root"})}return e})(),tR=(()=>{class e extends lC{currentPageId=0;lastSuccessfulId=-1;restoredState(){return this.location.getState()}get browserPageId(){return this.canceledNavigationResolution!=="computed"?this.currentPageId:this.restoredState()?.\u0275routerPageId??this.currentPageId}registerNonRouterCurrentEntryChangeListener(t){return this.location.subscribe(i=>{i.type==="popstate"&&setTimeout(()=>{t(i.url,i.state,"popstate")})})}handleRouterEvent(t,i){t instanceof kr?this.updateStateMemento():t instanceof oi?this.commitTransition(i):t instanceof sa?this.urlUpdateStrategy==="eager"&&(i.extras.skipLocationChange||this.setBrowserUrl(this.createBrowserPath(i),i)):t instanceof aa?(this.commitTransition(i),this.urlUpdateStrategy==="deferred"&&!i.extras.skipLocationChange&&this.setBrowserUrl(this.createBrowserPath(i),i)):t instanceof Rn&&t.code!==St.SupersededByNewNavigation&&t.code!==St.Redirect?this.restoreHistory(i):t instanceof ko?this.restoreHistory(i,!0):t instanceof Xt&&(this.lastSuccessfulId=t.id,this.currentPageId=this.browserPageId)}setBrowserUrl(t,{extras:i,id:r}){let{replaceUrl:o,state:s}=i;if(this.location.isCurrentPathEqualTo(t)||o){let a=this.browserPageId,c=I(I({},s),this.generateNgRouterState(r,a));this.location.replaceState(t,"",c)}else{let a=I(I({},s),this.generateNgRouterState(r,this.browserPageId+1));this.location.go(t,"",a)}}restoreHistory(t,i=!1){if(this.canceledNavigationResolution==="computed"){let r=this.browserPageId,o=this.currentPageId-r;o!==0?this.location.historyGo(o):this.getCurrentUrlTree()===t.finalUrl&&o===0&&(this.resetInternalState(t),this.resetUrlToCurrentUrlTree())}else this.canceledNavigationResolution==="replace"&&(i&&this.resetInternalState(t),this.resetUrlToCurrentUrlTree())}resetUrlToCurrentUrlTree(){this.location.replaceState(this.urlSerializer.serialize(this.getRawUrlTree()),"",this.generateNgRouterState(this.lastSuccessfulId,this.currentPageId))}generateNgRouterState(t,i){return this.canceledNavigationResolution==="computed"?{navigationId:t,\u0275routerPageId:i}:{navigationId:t}}static \u0275fac=(()=>{let t;return function(r){return(t||(t=pr(e)))(r||e)}})();static \u0275prov=A({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();function bg(e,n){e.events.pipe(at(t=>t instanceof Xt||t instanceof Rn||t instanceof ko||t instanceof oi),Q(t=>t instanceof Xt||t instanceof oi?0:(t instanceof Rn?t.code===St.Redirect||t.code===St.SupersededByNewNavigation:!1)?2:1),at(t=>t!==2),jn(1)).subscribe(()=>{n()})}var nR={paths:"exact",fragment:"ignored",matrixParams:"ignored",queryParams:"exact"},iR={paths:"subset",fragment:"ignored",matrixParams:"ignored",queryParams:"subset"},Se=(()=>{class e{get currentUrlTree(){return this.stateManager.getCurrentUrlTree()}get rawUrlTree(){return this.stateManager.getRawUrlTree()}disposed=!1;nonRouterCurrentEntryChangeSubscription;console=y(Hl);stateManager=y(lC);options=y(jo,{optional:!0})||{};pendingTasks=y(En);urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred";navigationTransitions=y(aC);urlSerializer=y(ma);location=y(Eo);urlHandlingStrategy=y(zu);injector=y($e);_events=new ke;get events(){return this._events}get routerState(){return this.stateManager.getRouterState()}navigated=!1;routeReuseStrategy=y(cC);onSameUrlNavigation=this.options.onSameUrlNavigation||"ignore";config=y(va,{optional:!0})?.flat()??[];componentInputBindingEnabled=!!y($u,{optional:!0});constructor(){this.resetConfig(this.config),this.navigationTransitions.setupNavigations(this).subscribe({error:t=>{this.console.warn(t)}}),this.subscribeToNavigationEvents()}eventsSubscription=new Ge;subscribeToNavigationEvents(){let t=this.navigationTransitions.events.subscribe(i=>{try{let r=this.navigationTransitions.currentTransition,o=this.navigationTransitions.currentNavigation;if(r!==null&&o!==null){if(this.stateManager.handleRouterEvent(i,o),i instanceof Rn&&i.code!==St.Redirect&&i.code!==St.SupersededByNewNavigation)this.navigated=!0;else if(i instanceof Xt)this.navigated=!0;else if(i instanceof Oo){let s=i.navigationBehaviorOptions,a=this.urlHandlingStrategy.merge(i.url,r.currentRawUrl),c=I({browserUrl:r.extras.browserUrl,info:r.extras.info,skipLocationChange:r.extras.skipLocationChange,replaceUrl:r.extras.replaceUrl||this.urlUpdateStrategy==="eager"||XN(r.source)},s);this.scheduleNavigation(a,na,null,c,{resolve:r.resolve,reject:r.reject,promise:r.promise})}}nN(i)&&this._events.next(i)}catch(r){this.navigationTransitions.transitionAbortWithErrorSubject.next(r)}});this.eventsSubscription.add(t)}resetRootComponentType(t){this.routerState.root.component=t,this.navigationTransitions.rootComponentType=t}initialNavigation(){this.setUpLocationChangeListener(),this.navigationTransitions.hasRequestedNavigation||this.navigateToSyncWithBrowser(this.location.path(!0),na,this.stateManager.restoredState())}setUpLocationChangeListener(){this.nonRouterCurrentEntryChangeSubscription??=this.stateManager.registerNonRouterCurrentEntryChangeListener((t,i,r)=>{this.navigateToSyncWithBrowser(t,r,i)})}navigateToSyncWithBrowser(t,i,r){let o={replaceUrl:!0},s=r?.navigationId?r:null;if(r){let c=I({},r);delete c.navigationId,delete c.\u0275routerPageId,Object.keys(c).length!==0&&(o.state=c)}let a=this.parseUrl(t);this.scheduleNavigation(a,i,s,o).catch(c=>{this.disposed||this.injector.get(gt)(c)})}get url(){return this.serializeUrl(this.currentUrlTree)}getCurrentNavigation(){return this.navigationTransitions.currentNavigation}get lastSuccessfulNavigation(){return this.navigationTransitions.lastSuccessfulNavigation}resetConfig(t){this.config=t.map(vg),this.navigated=!1}ngOnDestroy(){this.dispose()}dispose(){this._events.unsubscribe(),this.navigationTransitions.complete(),this.nonRouterCurrentEntryChangeSubscription&&(this.nonRouterCurrentEntryChangeSubscription.unsubscribe(),this.nonRouterCurrentEntryChangeSubscription=void 0),this.disposed=!0,this.eventsSubscription.unsubscribe()}createUrlTree(t,i={}){let{relativeTo:r,queryParams:o,fragment:s,queryParamsHandling:a,preserveFragment:c}=i,d=c?this.currentUrlTree.fragment:s,m=null;switch(a??this.options.defaultQueryParamsHandling){case"merge":m=I(I({},this.currentUrlTree.queryParams),o);break;case"preserve":m=this.currentUrlTree.queryParams;break;default:m=o||null}m!==null&&(m=this.removeEmptyProps(m));let h;try{let w=r?r.snapshot:this.routerState.snapshot.root;h=VE(w)}catch{(typeof t[0]!="string"||t[0][0]!=="/")&&(t=[]),h=this.currentUrlTree.root}return BE(h,t,m,d??null)}navigateByUrl(t,i={skipLocationChange:!1}){let r=Mi(t)?t:this.parseUrl(t),o=this.urlHandlingStrategy.merge(r,this.rawUrlTree);return this.scheduleNavigation(o,na,null,i)}navigate(t,i={skipLocationChange:!1}){return rR(t),this.navigateByUrl(this.createUrlTree(t,i),i)}serializeUrl(t){return this.urlSerializer.serialize(t)}parseUrl(t){try{return this.urlSerializer.parse(t)}catch{return this.urlSerializer.parse("/")}}isActive(t,i){let r;if(i===!0?r=I({},nR):i===!1?r=I({},iR):r=i,Mi(t))return wE(this.currentUrlTree,t,r);let o=this.parseUrl(t);return wE(this.currentUrlTree,o,r)}removeEmptyProps(t){return Object.entries(t).reduce((i,[r,o])=>(o!=null&&(i[r]=o),i),{})}scheduleNavigation(t,i,r,o,s){if(this.disposed)return Promise.resolve(!1);let a,c,d;s?(a=s.resolve,c=s.reject,d=s.promise):d=new Promise((h,w)=>{a=h,c=w});let m=this.pendingTasks.add();return bg(this,()=>{queueMicrotask(()=>this.pendingTasks.remove(m))}),this.navigationTransitions.handleNavigationRequest({source:i,restoredState:r,currentUrlTree:this.currentUrlTree,currentRawUrl:this.currentUrlTree,rawUrl:t,extras:o,resolve:a,reject:c,promise:d,currentSnapshot:this.routerState.snapshot,currentRouterState:this.routerState}
8),d.catch(h=>Promise.reject(h))}static \u0275fac=function(i){return new(i||e)};static \u0275prov=A({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();function rR(e){for(let n=0;n<e.length;n++)if(e[n]==null)throw new M(4008,!1)}var Ue=(()=>{class e{router;route;tabIndexAttribute;renderer;el;locationStrategy;reactiveHref=ae(null);get href(){return Dt(this.reactiveHref)}set href(t){this.reactiveHref.set(t)}target;queryParams;fragment;queryParamsHandling;state;info;relativeTo;isAnchorElement;subscription;onChanges=new ke;applicationErrorHandler=y(gt);options=y(jo,{optional:!0});constructor(t,i,r,o,s,a){this.router=t,this.route=i,this.tabIndexAttribute=r,this.renderer=o,this.el=s,this.locationStrategy=a,this.reactiveHref.set(y(new ru("href"),{optional:!0}));let c=s.nativeElement.tagName?.toLowerCase();this.isAnchorElement=c==="a"||c==="area"||!!(typeof customElements=="object"&&customElements.get(c)?.observedAttributes?.includes?.("href")),this.isAnchorElement?this.setTabIndexIfNotOnNativeEl("0"):this.subscribeToNavigationEventsIfNecessary()}subscribeToNavigationEventsIfNecessary(){if(this.subscription!==void 0||!this.isAnchorElement)return;let t=this.preserveFragment,i=r=>r==="merge"||r==="preserve";t||=i(this.queryParamsHandling),t||=!this.queryParamsHandling&&!i(this.options?.defaultQueryParamsHandling),t&&(this.subscription=this.router.events.subscribe(r=>{r instanceof Xt&&this.updateHref()}))}preserveFragment=!1;skipLocationChange=!1;replaceUrl=!1;setTabIndexIfNotOnNativeEl(t){this.tabIndexAttribute!=null||this.isAnchorElement||this.applyAttributeValue("tabindex",t)}ngOnChanges(t){this.isAnchorElement&&(this.updateHref(),this.subscribeToNavigationEventsIfNecessary()),this.onChanges.next(this)}routerLinkInput=null;set routerLink(t){t==null?(this.routerLinkInput=null,this.setTabIndexIfNotOnNativeEl(null)):(Mi(t)?this.routerLinkInput=t:this.routerLinkInput=Array.isArray(t)?t:[t],this.setTabIndexIfNotOnNativeEl("0"))}onClick(t,i,r,o,s){let a=this.urlTree;if(a===null||this.isAnchorElement&&(t!==0||i||r||o||s||typeof this.target=="string"&&this.target!="_self"))return!0;let c={skipLocationChange:this.skipLocationChange,replaceUrl:this.replaceUrl,state:this.state,info:this.info};return this.router.navigateByUrl(a,c)?.catch(d=>{this.applicationErrorHandler(d)}),!this.isAnchorElement}ngOnDestroy(){this.subscription?.unsubscribe()}updateHref(){let t=this.urlTree;this.reactiveHref.set(t!==null&&this.locationStrategy?this.locationStrategy?.prepareExternalUrl(this.router.serializeUrl(t))??"":null)}applyAttributeValue(t,i){let r=this.renderer,o=this.el.nativeElement;i!==null?r.setAttribute(o,t,i):r.removeAttribute(o,t)}get urlTree(){return this.routerLinkInput===null?null:Mi(this.routerLinkInput)?this.routerLinkInput:this.router.createUrlTree(this.routerLinkInput,{relativeTo:this.relativeTo!==void 0?this.relativeTo:this.route,queryParams:this.queryParams,fragment:this.fragment,queryParamsHandling:this.queryParamsHandling,preserveFragment:this.preserveFragment})}static \u0275fac=function(i){return new(i||e)(D(Se),D(pt),As("tabindex"),D(Kn),D(Xe),D(_o))};static \u0275dir=De({type:e,selectors:[["","routerLink",""]],hostVars:2,hostBindings:function(i,r){i&1&&S("click",function(s){return r.onClick(s.button,s.ctrlKey,s.shiftKey,s.altKey,s.metaKey)}),i&2&&fn("href",r.reactiveHref(),um)("target",r.target)},inputs:{target:"target",queryParams:"queryParams",fragment:"fragment",queryParamsHandling:"queryParamsHandling",state:"state",info:"info",relativeTo:"relativeTo",preserveFragment:[2,"preserveFragment","preserveFragment",_r],skipLocationChange:[2,"skipLocationChange","skipLocationChange",_r],replaceUrl:[2,"replaceUrl","replaceUrl",_r],routerLink:"routerLink"},features:[pn]})}return e})();var sR=new P("");function wg(e,...n){return Wt([{provide:va,multi:!0,useValue:e},[],{provide:pt,useFactory:aR,deps:[Se]},{provide:Ei,multi:!0,useFactory:cR},n.map(t=>t.\u0275providers)])}function aR(e){return e.routerState.root}function cR(){let e=y(lt);return n=>{let t=e.get(Ct);if(n!==t.components[0])return;let i=e.get(Se),r=e.get(lR);e.get(uR)===1&&i.initialNavigation(),e.get(dR,null,{optional:!0})?.setUpPreloading(),e.get(sR,null,{optional:!0})?.init(),i.resetRootComponentType(t.componentTypes[0]),r.closed||(r.next(),r.complete(),r.unsubscribe())}}var lR=new P("",{factory:()=>new ke}),uR=new P("",{providedIn:"root",factory:()=>1});var dR=new P("");var dC=(()=>{class e{platformId;el;strength=.35;cap=14;active=!1;constructor(t,i){this.platformId=t,this.el=i.nativeElement}ngOnInit(){et(this.platformId)&&(matchMedia("(prefers-reduced-motion: reduce)").matches||matchMedia("(hover: none)").matches||(this.active=!0,this.el.style.display||(this.el.style.display="inline-block"),this.el.style.willChange="transform",this.el.style.transition="transform 0.2s cubic-bezier(0.16, 1, 0.3, 1)",this.el.addEventListener("mousemove",this.onMove),this.el.addEventListener("mouseleave",this.onLeave)))}ngOnDestroy(){this.active&&(this.el.removeEventListener("mousemove",this.onMove),this.el.removeEventListener("mouseleave",this.onLeave))}onMove=t=>{let i=this.el.getBoundingClientRect(),r=uC((t.clientX-(i.left+i.width/2))*this.strength,this.cap),o=uC((t.clientY-(i.top+i.height/2))*this.strength,this.cap);this.el.style.transform=`translate(${r}px, ${o}px)`};onLeave=()=>{this.el.style.transform=""};static \u0275fac=function(i){return new(i||e)(D(je),D(Xe))};static \u0275dir=De({type:e,selectors:[["","appMagnetic",""]]})}return e})();function uC(e,n){return Math.max(-n,Math.min(n,e))}var re=(()=>{class e{buttonText="";clicked=new _e;
8click(){this.clicked.emit()}static \u0275fac=function(i){return new(i||e)};static \u0275cmp=C({type:e,selectors:[["app-button"]],inputs:{buttonText:"buttonText"},outputs:{clicked:"clicked"},features:[Vm([dC])],decls:5,vars:1,consts:[[1,"relative","inline-block","w-[230px]","h-[42px]","cursor-pointer","transition","duration-300","hover:scale-[1.04]","hover:brightness-125","rounded-[36px]","text-white","font-bold",3,"click"],["src","/images/button/border.svg","alt","",1,"absolute","inset-0","w-full","h-full","object-cover"],[1,"relative","flex","items-center","justify-center","w-full","h-full","text-[16px]","text-white","font-outfit","font-bold","rounded-md"],[1,"leading-none"]],template:function(i,r){i&1&&(F(0,"div",0),gr("click",function(){return r.click()}),Fe(1,"img",1),F(2,"div",2)(3,"span",3),p(4),L()()()),i&2&&(f(4),O(r.buttonText))},encapsulation:2})}return e})();var Gu=(()=>{class e{trackEvent(t,i,r){if(typeof window>"u")return;let o=window;o.dataLayer=o.dataLayer||[],o.dataLayer.push({event:t,event_category:r,event_label:t,value:i})}trackBookingConversion(){if(typeof window>"u")return;let t=window,i=t.crypto?.randomUUID?.()??`appt_${Date.now()}_${Math.random().toString(36).slice(2)}`;t.oaiq?.("measure","appointment_scheduled",{type:"customer_action"},{event_id:i});try{fetch("/api/oai-conversion",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:i,source_url:t.location?.href}),keepalive:!0}).catch(()=>{})}catch{}this.trackMetaEvent("Schedule")}trackLead(){this.trackMetaEvent("Lead")}trackMetaEvent(t){if(typeof window>"u")return;let i=window,r=i.crypto?.randomUUID?.()??`${t.toLowerCase()}_${Date.now()}_${Math.random().toString(36).slice(2)}`;i.fbq?.("track",t,{},{eventID:r});let{fbp:o,fbc:s}=this.getFbCookies();try{fetch("/api/meta-capi",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({event_name:t,event_id:r,event_source_url:i.location?.href,fbp:o,fbc:s}),keepalive:!0}).catch(()=>{})}catch{}}getFbCookies(){if(typeof document>"u")return{};let t=o=>{let s=document.cookie.match(new RegExp("(?:^|; )"+o+"=([^;]*)"));return s?decodeURIComponent(s[1]):void 0},i=t("_fbp"),r=t("_fbc");if(!r){let o=new URLSearchParams(window.location?.search).get("fbclid");o&&(r=`fb.1.${Date.now()}.${o}`)}return{fbp:i,fbc:r}}static \u0275fac=function(i){return new(i||e)};static \u0275prov=A({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();var Re=(()=>{class e{scriptLoaded=!1;analytics=y(Gu);isMobile(){return typeof window<"u"&&!!window.matchMedia&&window.matchMedia("(max-width: 768px)").matches}constructor(){typeof window>"u"||typeof document>"u"||(this.isMobile()||this.loadCalendlyAssets().catch(()=>{}),window.addEventListener("message",t=>{t.origin&&t.origin.indexOf("calendly.com")!==-1&&t.data&&typeof t.data=="object"&&t.data.event==="calendly.event_scheduled"&&this.analytics.trackBookingConversion()}))}loadCalendlyAssets(){return new Promise((t,i)=>{if(typeof document>"u"){t();return}if(this.scriptLoaded){t();return}if(!document.querySelector('link[href="https://assets.calendly.com/assets/external/widget.css"]')){let o=document.createElement("link");o.rel="stylesheet",o.href="https://assets.calendly.com/assets/external/widget.css",document.head.appendChild(o)}if(document.querySelector("script[data-calendly-widget]")){this.scriptLoaded=!0,t();return}let r=document.createElement("script");r.setAttribute("data-calendly-widget","1"),r.src="https://assets.calendly.com/assets/external/widget.js",r.async=!0,r.onload=()=>{this.scriptLoaded=!0,t()},r.onerror=()=>i(new Error("Calendly script failed to load")),document.body.appendChild(r)})}async openPopup(t,i){if(typeof window>"u")return;this.analytics.trackEvent("schedule_call_click",i??window.location?.pathname??"unknown","conversion"),this.analytics.trackLead();let r=t??"https://calendly.com/d/gp2-d8h-jk5?hide_gdpr_banner=1&background_color=f2ecfb&text_color=0d0420&primary_color=d5087f";if(this.isMobile()){window.location.href=r;return}await this.loadCalendlyAssets();try{window.Calendly?.showPopupWidget(r)}catch(o){console.log("unable to open calendly",o)}}static \u0275fac=function(i){return new(i||e)};static \u0275prov=A({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();var ye=(()=>{class e{calendly;constructor(t){this.calendly=t}scheduleCall(){this.calendly.openPopup().catch(()=>{})}static \u0275fac=function(i){return new(i||e)(D(Re))};static \u0275cmp=C({type:e,selectors:[["app-connect"]],decls:9,vars:0,consts:[[1,"w-full","mt-[133px]","pb-[102px]","flex","flex-col","items-center"],["src","images/landing/lets-connect.svg","alt","lets connect",1,"h-[40p
8x]","mb-[18px]"],[1,"flex","flex-col","items-center"],[1,"mt-[31px]","mb-[56px]","px-4","sm:px-[12%]","text-center","text-sm","sm:text-base"],[1,"mb-4"],[1,"mt-4"],["buttonText","get in touch now!",3,"click"]],template:function(i,r){i&1&&(l(0,"div",0),v(1,"img",1),l(2,"div",2)(3,"div",3)(4,"p",4),p(5," SEM Nexus is ready to help you find unique solutions for your app. Get in touch to learn more about your project and receive the full SEM Nexus treatment. "),u(),l(6,"p",5),p(7," By partnering with SEM Nexus, you can confidently launch your app and get your product into the hands of customers, achieving unparalleled mobile growth. "),u()(),l(8,"app-button",6),S("click",function(){return r.scheduleCall()}),u()()())},dependencies:[re],encapsulation:2})}return e})();var mR=["*"],fe=(()=>{class e{backgroundImage;get style(){return{"background-image":`url('${this.backgroundImage}')`}}static \u0275fac=function(i){return new(i||e)};static \u0275cmp=C({type:e,selectors:[["app-background"]],inputs:{backgroundImage:"backgroundImage"},ngContentSelectors:mR,decls:2,vars:2,consts:[[1,"w-full","bg-cover","bg-center","bg-no-repeat","z-0"]],template:function(i,r){i&1&&(ei(),F(0,"div",0),ti(1),L()),i&2&&Qm(r.style)},dependencies:[K],encapsulation:2})}return e})();var hR=["heroVideo"],gR=[[["","hero-cta",""]]],vR=["[hero-cta]"],yR=e=>({"padding-responsive":e}),bR=e=>({background:e});function wR(e,n){if(e&1&&(l(0,"video",3,0),v(2,"source",14),u()),e&2){let t=E();b("poster",t.videoPoster||t.backgroundImage,pe),f(2),b("src",t.videoSrc,pe)}}function _R(e,n){if(e&1&&v(0,"img",4),e&2){let t=E();b("src",t.backgroundImage,pe)}}function ER(e,n){e&1&&v(0,"div",6)}function CR(e,n){if(e&1&&v(0,"img",8),e&2){let t=E();b("src",t.image,pe)}}function xR(e,n){if(e&1&&(l(0,"span",15),p(1),u()),e&2){let t=E();ce("gradient-text",t.align==="left"),f(),O(t.text)}}function DR(e,n){if(e&1&&v(0,"img",10),e&2){let t=E();b("src",t.title,pe)}}function SR(e,n){if(e&1&&v(0,"div",16),e&2){let t=E();ce("hero-title-text--left",t.align==="left")("px-4",t.align!=="left")("text-center",t.align!=="left"),b("innerHTML",t.titleHtml,Ve)}}function IR(e,n){if(e&1&&(l(0,"p",12),p(1),u()),e&2){let t=E();f(),O(t.subcopy)}}function MR(e,n){if(e&1&&(l(0,"span",13),p(1),u()),e&2){let t=E();f(),Ce(" ",t.projectName," ")}}var Te=(()=>{class e{platformId;text="";image="";title="";titleHtml="";height="525px";opacity="0.1";paddingTop="420px";backgroundImage="";videoSrc="";videoPoster="";align="center";subcopy="";projectName="";responsive=!1;heroVideo;constructor(t){this.platformId=t}ngOnInit(){this.preloadImage()}ngAfterViewInit(){if(!et(this.platformId))return;let t=this.heroVideo?.nativeElement;if(!t)return;t.muted=!0;let i=()=>t.play().catch(()=>{});i(),t.addEventListener("loadeddata",i,{once:!0})}ngOnChanges(){this.preloadImage()}get gradient(){return`linear-gradient(
9      180deg,
10      rgba(0, 0, 0, 0) 0%,
11      rgba(0, 0, 0, 0.5) 34%,
12      rgba(0, 0, 0, 0.9) 70.5%,
13      #000000 100%
14    )`}preloadImage(){if(et(this.platformId)&&this.backgroundImage){let t=new Image;t.src=this.backgroundImage,t.fetchPriority="high"}}get style(){return{"background-image":this.backgroundImage.startsWith("http://")||this.backgroundImage.startsWith("https://")?`linear-gradient(
15    180deg, 
16    rgba(0, 0, 0, 0) 0%, 
17    rgba(0, 0, 0, 0.5) 34%, 
18    rgba(0, 0, 0, 0.9) 70.5%, 
19    #000000 100%
20  ), url('${this.backgroundImage}')`:`url('${this.backgroundImage}')`,height:this.height,opacity:this.opacity,"background-size":"cover","background-position":"center","background-repeat":"no-repeat"}}static \u0275fac=function(i){return new(i||e)(D(je))};static \u0275cmp=C({type:e,selectors:[["app-hero-section"]],viewQuery:function(i,r){if(i&1&&An(hR,5),i&2){let o;mn(o=hn())&&(r.heroVideo=o.first)}},inputs:{text:"text",image:"image",title:"title",titleHtml:"titleHtml",height:"height",opacity:"opacity",paddingTop:"paddingTop",backgroundImage:"backgroundImage",videoSrc:"videoSrc",videoPoster:"videoPoster",align:"align",subcopy:"subcopy",projectName:"projectName",responsive:"responsive"},features:[pn],ngContentSelectors:vR,decls:14,vars:21,consts:[["heroVideo",""],[1,"flex","flex-col","relative","w-full","font-outfit","padding-responsive",3,"ngClass"],[1,"hero-bg","absolute","
20inset-0","z-0","overflow-hidden"],["autoplay","","muted","","loop","","playsinline","","aria-hidden","true",1,"w-full","h-full","object-cover",3,"poster"],["alt","Hero background","fetchpriority","high","decoding","async",1,"w-full","h-full","object-cover",3,"src"],[1,"absolute","inset-0","pointer-events-none",3,"ngStyle"],[1,"absolute","inset-0","pointer-events-none","hero-left-scrim"],[1,"hero-content","relative","z-10","flex","flex-col",3,"ngClass"],["alt","",1,"h-[20px]",3,"src"],[1,"h-[20px]","font-bold","text-base",3,"gradient-text"],["alt","",1,"px-4","h-[70px]","mt-4","pb-[24px]","object-contain",3,"src"],[1,"hero-title-text","font-outfit","font-bold","mt-4","pb-[24px]",3,"hero-title-text--left","px-4","text-center","innerHTML"],[1,"hero-subcopy","font-inter","text-sm","sm:text-base","text-text-dim"],[1,"px-4","h-[70px]","mt-4","pb-[24px]","font-bold","text-4xl","gradient-text","text-center","break-words"],["type","video/mp4",3,"src"],[1,"h-[20px]","font-bold","text-base"],[1,"hero-title-text","font-outfit","font-bold","mt-4","pb-[24px]",3,"innerHTML"]],template:function(i,r){i&1&&(ei(gR),l(0,"div",1)(1,"div",2),j(2,wR,3,2,"video",3)(3,_R,1,1,"img",4),v(4,"div",5),j(5,ER,1,0,"div",6),u(),l(6,"div",7),j(7,CR,1,1,"img",8),j(8,xR,2,3,"span",9),j(9,DR,1,1,"img",10),j(10,SR,1,7,"div",11),j(11,IR,2,1,"p",12),ti(12),j(13,MR,2,1,"span",13),u()()),i&2&&(xt("padding-top",r.videoSrc?null:r.paddingTop),ce("video-hero",r.videoSrc&&r.align!=="left")("video-hero-left",r.videoSrc&&r.align==="left"),b("ngClass",kn(17,yR,r.responsive)),f(2),V(r.videoSrc?2:3),f(2),b("ngStyle",kn(19,bR,r.gradient)),f(),V(r.align==="left"?5:-1),f(),b("ngClass",r.align==="left"?"mx-auto w-full max-w-site px-6 sm:px-10 items-start text-left":"items-center"),f(),V(r.image?7:-1),f(),V(r.text?8:-1),f(),V(r.title?9:-1),f(),V(r.titleHtml?10:-1),f(),V(r.subcopy?11:-1),f(2),V(r.projectName?13:-1))},dependencies:[K,Er,Cr],styles:[`@charset "UTF-8";@media (max-width: 1000px){.padding-responsive[_ngcontent-%COMP%]{padding-top:320px!important}}.video-hero[_ngcontent-%COMP%]{aspect-ratio:16/9;justify-content:flex-end;padding-bottom:clamp(24px,5vw,72px)}.video-hero.padding-responsive[_ngcontent-%COMP%]{padding-top:0!important}.video-hero-left[_ngcontent-%COMP%]{min-height:clamp(560px,90svh,820px);justify-content:center;padding-top:0}.video-hero-left.padding-responsive[_ngcontent-%COMP%]{padding-top:0!important}.hero-left-scrim[_ngcontent-%COMP%]{background:linear-gradient(90deg,#000000d9,#0000008c 38%,#0000 68%)}@media (max-width: 640px){.video-hero-left[_ngcontent-%COMP%]{min-height:0;justify-content:flex-start;padding-top:0;padding-bottom:0}.video-hero-left[_ngcontent-%COMP%]   .hero-bg[_ngcontent-%COMP%]{position:relative;inset:auto;width:100%;height:auto;aspect-ratio:16/9}.video-hero-left[_ngcontent-%COMP%]   .hero-left-scrim[_ngcontent-%COMP%]{display:none}.video-hero-left[_ngcontent-%COMP%]   .hero-content[_ngcontent-%COMP%]{padding-top:28px;padding-bottom:44px}.hero-title-text--left[_ngcontent-%COMP%]{font-size:clamp(2.25rem,9vw,3rem)}.hero-subcopy[_ngcontent-%COMP%]{max-width:100%}}.hero-title-text[_ngcontent-%COMP%]{font-size:clamp(2rem,5vw,3.25rem);line-height:1.05;letter-spacing:-.01em;color:#fff}.hero-title-text--left[_ngcontent-%COMP%]{font-size:clamp(2.75rem,6vw,5.5rem);line-height:.98;text-align:left}.hero-subcopy[_ngcontent-%COMP%]{max-width:460px;margin-top:4px;margin-bottom:28px;line-height:1.5}
21/*# sourceMappingURL=hero-section-QK5MZJ7Q.css.map */`]})}return e})();var pC=(()=>{class e{goToSection=new _e;static \u0275fac=function(i){return new(i||e)};static \u0275cmp=C({type:e,selectors:[["app-why-semnexus"]],outputs:{goToSection:"goToSection"},decls:7,vars:0,consts:[[1,"flex","flex-col","items-center","w-full","pb-[240px]"],["src","images/landing/why-semnexus.svg","alt","why semnexus",1,"h-[45px]","sm:h-[50px]"],[1,"mt-[24px]","px-4","sm:px-[20%]","text-center","text-sm","sm:text-base"],[1,"flex","flex-col","sm:flex-row","w-full","items-center","justify-center","gap-[20px]","mt-[22px]"],["buttonText","services",3,"clicked"],["buttonText","case studies",3,"clicked"]],template:function(i,r){i&1&&(l(0,"section",0),v(1,"img",1),l(2,"div",2),p(3," SEM Nexus builds and markets great mobile apps. We utilize a methodical and agile development process to ensure quality while keeping costs low and employ a comprehensive data-driven marketing process that allows us to build a niche-relevant user base around your product. "),u(),l(4,"div",3)(5,"app-button",4),S("clicked",function(){return r.goToSection.emit("services")}),u(),l(6,"app-button",5),S("clicked",function(){return r.goToSection.emit("case-studies")}),u()()())},dependencies:[re],encapsulation:2})}return e})();function TR(e,n){if(e&1&&(l(0,"li",7)(1,"a",8),v(2,"img",9)(3,"span",10),l(4,"span",11)(5,"span",12),p(6),u(),l(7,"span",13),p(8),u()()()()),e&2){let t=n.$implicit;f(),b("routerLink",t.link),fn("aria-label",t.line1+" "+t.line2),f(),b("src","images/landing/services-grid/"+t.image,pe),f(4),O(t.line1),f(2),O(t.line2)}}var fC=(()=>{class e{cards=[{line1:"mobile app",line2:"development",image:"mobile-app-development.avif",link:"/app-development-company"},{line1:"ai app",line2:"development",image:"ai-app-development.avif",link:"/ai-app-development-company"},{line1:"app store",line2:"optimization",image:"app-store-optimization.avif",link:"/mobile-app-marketing-services"},{line1:"mobile app",line2:"marketing",image:"mobile-app-marketing.avif",link:"/mobile-app-marketing-services"},{line1:"user",line2:"acquisition",image:"user-acquisition.avif",link:"/mobile-app-marketing-services"},{line1:"answer engine",line2:"optimization",image:"answer-engine-optimization.avif",link:"/aeo-marketing-services"},{line1:"influencer",line2:"marketing",image:"influencer-marketing.avif",link:"/influencer-process"},{line1:"website",line2:"marketing",image:"website-marketing.avif",link:"/website-marketing-services"},{line1:"conversion",line2:"optimization",image:"conversion-optimization.avif",link:"/website-marketing-services"},{line1:"growth",line2:"strategy",image:"growth-strategy.avif",link:"/business-mobile-consulting"}];static \u0275fac=function(i){return new(i||e)};static \u0275cmp=C({type:e,selectors:[["app-services"]],decls:16,vars:0,consts:[[1,"sg-section","w-full","px-4","sm:px-8"],[1,"sg-inner","mx-auto","flex","w-full","max-w-[1280px]","flex-col","items-center","text-center"],[1,"sg-heading","font-outfit","font-bold"],[1,"gradient-text"],[1,"sg-subhead","font-inter","mt-6"],[1,"sg-prose","font-inter","mt-5"],[1,"sg-grid","mt-12","grid","w-full","gap-5","grid-cols-2","md:grid-cols-3","lg:grid-cols-5"],[1,"sg-card"],[1,"sg-card-link",3,"routerLink"],["alt","","aria-hidden","true","loading","lazy",1,"sg-card-img",3,"src"],["aria-hidden","true",1,"sg-card-overlay"],[1,"sg-card-label","font-outfit","font-bold"],[1,"sg-card-l1","gradient-text"],[1,"sg-card-l2"]],template:function(i,r){i&1&&(l(0,"section",0)(1,"div",1)(2,"h2",2),p(3," end-to-e
21nd "),l(4,"span",3),p(5,"app growth"),u(),p(6," solutions "),u(),l(7,"p",4),p(8,"Building an app is only the beginning."),u(),l(9,"p",5),p(10," Many applications fail not because of poor products but because of weak distribution, ineffective marketing, or a lack of product-market fit. SEMNexus combines development, marketing, analytics, and growth strategy to help businesses build sustainable growth systems rather than isolated campaigns. "),u(),l(11,"p",5),p(12,"Our services include:"),u(),l(13,"ul",6),H(14,TR,9,5,"li",7,te),u()()()),i&2&&(f(14),z(r.cards))},dependencies:[Ue],styles:[`@charset "UTF-8";.sg-section[_ngcontent-%COMP%]{padding-top:clamp(40px,6vw,80px);padding-bottom:clamp(40px,6vw,80px)}.sg-heading[_ngcontent-%COMP%]{font-size:clamp(2rem,5vw,3.25rem);line-height:1.1;color:#fff}.sg-subhead[_ngcontent-%COMP%]{color:#fff;font-size:clamp(1rem,2vw,1.125rem);font-weight:600}.sg-prose[_ngcontent-%COMP%]{max-width:920px;color:var(--text-dim, #b3a8c9);font-size:clamp(.95rem,1.6vw,1.0625rem);line-height:1.6}.sg-card[_ngcontent-%COMP%]{list-style:none}.sg-card-link[_ngcontent-%COMP%]{position:relative;display:block;aspect-ratio:5/6;border-radius:18px;overflow:hidden;isolation:isolate}.sg-card-img[_ngcontent-%COMP%]{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}.sg-card-overlay[_ngcontent-%COMP%]{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,#0a04181a,#0a041838 45%,#0a0418c7)}.sg-card-label[_ngcontent-%COMP%]{position:absolute;left:1rem;right:1rem;bottom:1rem;z-index:2;display:flex;flex-direction:column;text-align:left;line-height:1.05}.sg-card-l1[_ngcontent-%COMP%], .sg-card-l2[_ngcontent-%COMP%]{font-size:clamp(1.05rem,1.5vw,1.4rem);letter-spacing:-.01em}.sg-card-l2[_ngcontent-%COMP%]{color:#fff}@media (prefers-reduced-motion: no-preference){.sg-card-img[_ngcontent-%COMP%]{transition:transform .5s var(--ease, cubic-bezier(.16, 1, .3, 1))}.sg-card-overlay[_ngcontent-%COMP%]{transition:background .4s ease}.sg-card-link[_ngcontent-%COMP%]:hover   .sg-card-img[_ngcontent-%COMP%]{transform:scale(1.06)}.sg-card-link[_ngcontent-%COMP%]:hover   .sg-card-overlay[_ngcontent-%COMP%]{background:linear-gradient(180deg,#0a04180d,#0a04182e 45%,#0a0418b3)}}
22/*# sourceMappingURL=services-MERCUA5K.css.map */`]})}return e})();var rt=(()=>{class e{platformId;static observer=null;el;constructor(t,i){this.platformId=t,this.el=i.nativeElement}ngOnInit(){!et(this.platformId)||typeof matchMedia<"u"&&matchMedia("(prefers-reduced-motion: reduce)").matches||(this.el.classList.add("reveal-ready"),e.ensureObserver().observe(this.el))}ngOnDestroy(){e.observer?.unobserve(this.el)}static ensureObserver(){return this.observer||(this.observer=new IntersectionObserver(t=>{for(let i of t)i.isIntersecting&&(i.target.classList.add("is-visible"),this.observer.unobserve(i.target))},{threshold:.15,rootMargin:"0px 0px -10% 0px"})),this.observer}static \u0275fac=function(i){return new(i||e)(D(je),D(Xe))};static \u0275dir=De({type:e,selectors:[["","appReveal",""]]})}return e})();function AR(e,n){if(e&1&&(l(0,"a",3),v(1,"h2",4),u()),e&2){let t=E();b("routerLink",t.link),f(),b("innerHTML",t.section.headingHtml,Ve)}}function kR(e,n){if(e&1&&v(0,"h2",4),e&2){let t=E();b("innerHTML",t.section.headingHtml,Ve)}}function OR(e,n){if(e&1&&(l(0,"p"),p(1),u()),e&2){let t=n.$implicit;f(),O(t)}}function NR(e,n){if(e&1&&(l(0,"div",5),H(1,OR,2,1,"p",null,te),u()),e&2){let t=E();f(),z(t.bodyLead)}}function RR(e,n){if(e&1&&(l(0,"a",11),v(1,"img",13),l(2,"span",14)(3,"span",15),p(4),u()()()),e&2){let t=E().$implicit;b("routerLink",t.link),fn("aria-label",t.label),f(),b("src","images/landing/dev-icons/"+t.icon,pe),f(3),O(t.label)}}function PR(e,n){if(e&1&&(l(0,"div",12),v(1,"img",13),l(2,"span",14)(3,"span",15),p(4),u()()()),e&2){let t=E().$implicit;fn("aria-label",t.label),f(),b("src","images/landing/dev-icons/"+t.icon,pe),f(3),O(t.label)}}function FR(e,n){if(e&1&&(l(0,"li",10),j(1,RR,5,4,"a",11)(2,PR,5,3,"div",12),u()),e&2){let t=n.$implicit,i=n.$index;xt("--reveal-delay",i*70+"ms"),f(),V(t.link?1:2)}}function LR(e,n){if(e&1&&(l(0,"p"),p(1),u()),e&2){let t=n.$implicit;f(),O(t)}}function jR(e,n){if(e&1&&(l(0,"div",9),H(1,LR,2,1,"p",null,te),u()),e&2){let t=E();
22f(),z(t.section.outro)}}var VR=[{icon:"ios-app-v2.png",label:"ios app",link:"/app-development-company"},{icon:"android-app-v2.png",label:"android app",link:"/app-development-company"},{icon:"react-native.png",label:"react native",link:"/app-development-company"},{icon:"ai-app.png",label:"ai app",link:"/ai-app-development-company"},{icon:"saas.png",label:"saas",link:"/app-development-company"},{icon:"web-application.png",label:"web application",link:"/app-development-company"},{icon:"ux-ui-design.png",label:"ux/ui design",link:"/app-development-company"},{icon:"api-development.png",label:"api development",link:"/app-development-company"}],Bo=(()=>{class e{section;link;cards=VR;get bodyLead(){return(this.section.lead??[]).filter(t=>!/:\s*$/.test(t.trim()))}get eyebrow(){return(this.section.lead??[]).find(t=>/:\s*$/.test(t.trim()))??"services include:"}static \u0275fac=function(i){return new(i||e)};static \u0275cmp=C({type:e,selectors:[["app-dev-services"]],inputs:{section:"section",link:"link",cards:"cards"},decls:12,vars:4,consts:[["appReveal","",1,"dv-section","w-full","px-4","sm:px-8"],[1,"dv-inner","mx-auto","flex","w-full","max-w-[1200px]","flex-col"],[1,"dv-head","grid","w-full","gap-6","lg:grid-cols-2","lg:gap-12"],[1,"dv-heading-link",3,"routerLink"],[1,"dv-heading","font-outfit","font-bold",3,"innerHTML"],[1,"dv-prose","font-inter","space-y-4"],[1,"dv-eyebrow","r-up","font-outfit","font-bold","mt-14","text-center"],[1,"dv-grid","mt-10","flex","w-full","flex-wrap","justify-center","gap-x-6","gap-y-12"],[1,"dv-card","r-scale",3,"--reveal-delay"],[1,"dv-outro","font-inter","space-y-4","mt-12","mx-auto","max-w-[820px]","text-center"],[1,"dv-card","r-scale"],[1,"dv-card-link",3,"routerLink"],[1,"dv-card-link"],["alt","","aria-hidden","true","loading","lazy",1,"dv-icon",3,"src"],[1,"dv-pill"],[1,"dv-pill-label"]],template:function(i,r){i&1&&(l(0,"section",0)(1,"div",1)(2,"div",2),j(3,AR,2,2,"a",3)(4,kR,1,1,"h2",4),j(5,NR,3,0,"div",5),u(),l(6,"p",6),p(7),u(),l(8,"ul",7),H(9,FR,3,3,"li",8,te),u(),j(11,jR,3,0,"div",9),u()()),i&2&&(f(3),V(r.link?3:4),f(2),V(r.bodyLead.length?5:-1),f(2),O(r.eyebrow),f(2),z(r.cards),f(2),V(r.section.outro!=null&&r.section.outro.length?11:-1))},dependencies:[Ue,rt],styles:[`@charset "UTF-8";.dv-section[_ngcontent-%COMP%]{padding-top:clamp(48px,7vw,96px);padding-bottom:clamp(48px,7vw,96px)}.dv-heading[_ngcontent-%COMP%]{font-size:clamp(2rem,4.5vw,3.4rem);line-height:1.05;color:#fff;letter-spacing:-.01em;text-transform:lowercase}.dv-heading-link[_ngcontent-%COMP%]{display:inline-block;text-decoration:none;cursor:pointer;transition:opacity .25s var(--ease, ease)}.dv-heading-link[_ngcontent-%COMP%]:hover{opacity:.82;text-decoration:underline;text-decoration-color:#ffffff73;text-underline-offset:8px}.dv-prose[_ngcontent-%COMP%]{color:var(--text-dim, #b3a8c9);font-size:clamp(.95rem,1.5vw,1.0625rem);line-height:1.65;max-width:56ch}@media (min-width: 1024px){.dv-prose[_ngcontent-%COMP%]{padding-top:.5rem}}.dv-eyebrow[_ngcontent-%COMP%]{color:#fff;text-transform:lowercase;font-size:clamp(1.05rem,2vw,1.3rem)}.dv-outro[_ngcontent-%COMP%]{color:var(--text-dim, #b3a8c9);font-size:clamp(.95rem,1.5vw,1.0625rem);line-height:1.65}.dv-card[_ngcontent-%COMP%]{list-style:none;flex:0 1 calc(50% - .75rem)}@media (min-width: 1024px){.dv-card[_ngcontent-%COMP%]{flex-basis:calc(25% - 1.125rem)}}.dv-card-link[_ngcontent-%COMP%]{position:relative;display:flex;flex-direction:column;align-items:center}.dv-icon[_ngcontent-%COMP%]{position:relative;z-index:2;width:clamp(84px,9vw,104px);height:clamp(84px,9vw,104px);object-fit:contain;margin-bottom:-34px;filter:drop-shadow(0 12px 24px rgba(0,0,0,.45))}.dv-pill[_ngcontent-%COMP%]{position:relative;z-index:1;display:flex;align-items:flex-end;justify-content:center;width:100%;min-height:86px;padding:44px 1rem 1rem;border-radius:22px;background:linear-gradient(180deg,#7c3aed33,#2563eb29);border:1px solid rgba(255,255,255,.12);backdrop-filter:blur(40px);-webkit-backdrop-filter:blur(40px)}.dv-pill-label[_ngcontent-%COMP%]{color:#fff;font-weight:600;font-size:clamp(.95rem,1.4vw,1.1rem);line-height:1.2;text-align:center}@media (prefers-reduced-motion: no-preference){.dv-icon[_ngcontent-%COMP%], .dv-pill[_ngcontent-%COMP%]{transition:transform .35s var(--ease, cubic-bezier(.16, 1, .3, 1)),border-color .35s,background .35s}.dv-card-link[_ngcontent-%COMP%]:hover   .dv-icon[_ngcontent-%COMP%]{transform:translateY(-4px) scale(1.04)}.dv-card-link[_ngcontent-%COMP%]:hover   .dv-pill[_ngcontent-%COMP%]{transform:translateY(-2px);border-color:#ffffff42;background:linear-gradient(180deg,#7c3aed4d,#2563eb3d)}}
23/*# sourceMappingURL=dev-services-GYLBV6OA.css.map */`]})}return e})();
23function BR(e,n){if(e&1&&(l(0,"p"),p(1),u()),e&2){let t=n.$implicit;f(),O(t)}}function UR(e,n){if(e&1&&(l(0,"div",8),H(1,BR,2,1,"p",null,te),u()),e&2){let t=E(2);f(),z(t.bodyLead)}}function $R(e,n){if(e&1&&(l(0,"div",2),v(1,"h2",7),j(2,UR,3,0,"div",8),u()),e&2){let t=E();f(),b("innerHTML",t.section.headingHtml,Ve),f(),V(t.bodyLead.length?2:-1)}}function HR(e,n){if(e&1&&(l(0,"a",9),v(1,"h2",7),u()),e&2){let t=E(2);b("routerLink",t.link),f(),b("innerHTML",t.section.headingHtml,Ve)}}function zR(e,n){if(e&1&&v(0,"h2",7),e&2){let t=E(2);b("innerHTML",t.section.headingHtml,Ve)}}function GR(e,n){if(e&1&&(l(0,"p"),p(1),u()),e&2){let t=n.$implicit;f(),O(t)}}function WR(e,n){if(e&1&&(l(0,"div",10),H(1,GR,2,1,"p",null,te),u()),e&2){let t=E(2);f(),z(t.bodyLead)}}function qR(e,n){if(e&1&&(l(0,"div",3),j(1,HR,2,2,"a",9)(2,zR,1,1,"h2",7),j(3,WR,3,0,"div",10),u()),e&2){let t=E();f(),V(t.link?1:2),f(2),V(t.bodyLead.length?3:-1)}}function YR(e,n){e&1&&(l(0,"span",13),v(1,"img",16),u())}function ZR(e,n){e&1&&v(0,"span",14)}function QR(e,n){if(e&1&&(l(0,"li",12),j(1,YR,2,0,"span",13)(2,ZR,1,0,"span",14),l(3,"span",15),p(4),u()()),e&2){let t=n.$implicit,i=n.$index,r=E(2);xt("--reveal-delay",i*70+"ms"),f(),V(r.marker==="check"?1:2),f(3),O(t)}}function KR(e,n){if(e&1&&(l(0,"ul",5),H(1,QR,5,4,"li",11,te),u()),e&2){let t=E();f(),z(t.section.bullets)}}function JR(e,n){if(e&1&&(l(0,"p"),p(1),u()),e&2){let t=n.$implicit;f(),O(t)}}function XR(e,n){if(e&1&&(l(0,"div",6),H(1,JR,2,1,"p",null,te),u()),e&2){let t=E();f(),z(t.section.outro)}}var Ti=(()=>{class e{section;link;marker="dot";layout="split";get bodyLead(){return(this.section.lead??[]).filter(t=>!/:\s*$/.test(t.trim()))}get eyebrow(){return(this.section.lead??[]).find(t=>/:\s*$/.test(t.trim()))??"services include:"}static \u0275fac=function(i){return new(i||e)};static \u0275cmp=C({type:e,selectors:[["app-tag-services"]],inputs:{section:"section",link:"link",marker:"marker",layout:"layout"},decls:8,vars:6,consts:[["appReveal","",1,"ts-section","w-full","px-4","sm:px-8"],[1,"ts-inner","mx-auto","flex","w-full","max-w-[1200px]","flex-col"],[1,"ts-head-center","flex","w-full","flex-col","items-center","text-center"],[1,"ts-head","grid","w-full","gap-6","lg:grid-cols-2","lg:gap-12"],[1,"ts-eyebrow","r-up","font-outfit","font-bold","mt-14","text-center"],[1,"ts-tags","mt-10","flex","w-full","flex-wrap","justify-center","gap-4"],[1,"ts-outro","font-inter","space-y-4","mt-12"],[1,"ts-heading","font-outfit","font-bold",3,"innerHTML"],[1,"ts-prose","font-inter","space-y-4","mt-5"],[1,"ts-heading-link",3,"routerLink"],[1,"ts-prose","font-inter","space-y-4"],[1,"ts-tag","r-scale",3,"--reveal-delay"],[1,"ts-tag","r-scale"],["aria-hidden","true",1,"ts-check"],["aria-hidden","true",1,"ts-dot"],[1,"ts-tag-label"],["src","images/sh
23ared/check.svg","alt","","loading","lazy"]],template:function(i,r){i&1&&(l(0,"section",0)(1,"div",1),j(2,$R,3,2,"div",2)(3,qR,4,2,"div",3),l(4,"p",4),p(5),u(),j(6,KR,3,0,"ul",5),j(7,XR,3,0,"div",6),u()()),i&2&&(ce("ts-center",r.layout==="center"),f(2),V(r.layout==="center"?2:3),f(3),O(r.eyebrow),f(),V(r.section.bullets!=null&&r.section.bullets.length?6:-1),f(),V(r.section.outro!=null&&r.section.outro.length?7:-1))},dependencies:[Ue,rt],styles:[`@charset "UTF-8";.ts-section[_ngcontent-%COMP%]{padding-top:clamp(48px,7vw,96px);padding-bottom:clamp(48px,7vw,96px)}.ts-heading[_ngcontent-%COMP%]{font-size:clamp(2rem,4.5vw,3.4rem);line-height:1.05;color:#fff;letter-spacing:-.01em;text-transform:lowercase}.ts-heading-link[_ngcontent-%COMP%]{display:inline-block;text-decoration:none;cursor:pointer;transition:opacity .25s var(--ease, ease)}.ts-heading-link[_ngcontent-%COMP%]:hover{opacity:.82;text-decoration:underline;text-decoration-color:#ffffff73;text-underline-offset:8px}.ts-prose[_ngcontent-%COMP%]{color:var(--text-dim, #b3a8c9);font-size:clamp(.95rem,1.5vw,1.0625rem);line-height:1.65;max-width:60ch}@media (min-width: 1024px){.ts-section[_ngcontent-%COMP%]:not(.ts-center)   .ts-prose[_ngcontent-%COMP%]{padding-top:.5rem}}.ts-outro[_ngcontent-%COMP%]{max-width:760px;margin-left:auto;margin-right:auto;text-align:center;color:var(--text-dim, #b3a8c9);font-size:clamp(.95rem,1.5vw,1.0625rem);line-height:1.65}.ts-center[_ngcontent-%COMP%]   .ts-heading[_ngcontent-%COMP%]{text-transform:lowercase}.ts-center[_ngcontent-%COMP%]   .ts-prose[_ngcontent-%COMP%]{margin-left:auto;margin-right:auto;text-align:center;max-width:760px}.ts-eyebrow[_ngcontent-%COMP%]{color:#fff;text-transform:lowercase;font-size:clamp(1.05rem,2vw,1.3rem)}.ts-tags[_ngcontent-%COMP%]{max-width:980px;margin-left:auto;margin-right:auto}.ts-tag[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.65rem;padding:.65rem 1.4rem .65rem .7rem;border-radius:999px;background:linear-gradient(180deg,#7c3aed33,#2563eb29);border:1px solid rgba(255,255,255,.12);backdrop-filter:blur(40px);-webkit-backdrop-filter:blur(40px);color:#fff;font-weight:600;font-size:clamp(.9rem,1.3vw,1.05rem);line-height:1;text-transform:lowercase}.ts-dot[_ngcontent-%COMP%]{width:26px;height:26px;flex-shrink:0;border-radius:999px;background-image:linear-gradient(34.54deg,#d5087f 9.45%,#d971dc 40.67%,#7e47f3 67.89%,#59d0ff 92.71%);box-shadow:inset 0 1px 1px #ffffff59,0 2px 6px #00000059}.ts-check[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;flex-shrink:0;border-radius:999px;background:#ffffff0f;border:1px solid rgba(255,255,255,.18)}.ts-check[_ngcontent-%COMP%]   img[_ngcontent-%COMP%]{width:13px;height:auto}@media (prefers-reduced-motion: no-preference){.ts-tag[_ngcontent-%COMP%]{transition:transform .3s var(--ease, cubic-bezier(.16, 1, .3, 1)),border-color .3s,background .3s}.ts-tag[_ngcontent-%COMP%]:hover{transform:translateY(-3px);border-color:#ffffff42;background:linear-gradient(180deg,#7c3aed4d,#2563eb3d)}}
24/*# sourceMappingURL=tag-services-NNVWV3GY.css.map */`]})}return e})();var Ai=(()=>{class e{platformId;el;active=!1;constructor(t,i){this.platformId=t,this.el=i.nativeElement}ngOnInit(){et(this.platformId)&&(matchMedia("(hover: none)").matches||(this.active=!0,this.el.classList.add("has-spot"),this.el.addEventListener("pointerenter",this.onEnter),this.el.addEventListener("pointermove",this.onMove),this.el.addEventListener("pointerleave",this.onLeave)))}ngOnDestroy(){this.active&&(this.el.removeEventListener("pointerenter",this.onEnter),this.el.removeEventListener("pointermove",this.onMove),this.el.removeEventListener("pointerleave",this.onLeave))}onEnter=()=>{this.el.classList.add("spot-on")};onMove=t=>{let i=this.el.getBoundingClientRect();this.el.style.setProperty("--spot-x",`${t.clientX-i.left}px`),this.el.style.setProperty("--spot-y",`${t.clientY-i.top}px`)};onLeave=()=>{this.el.classList.remove("spot-on")};static \u0275fac=function(i){return new(i||e)(D(je),D(Xe))};static \u0275dir=De({type:e,selectors:[["","appSpotlight",""]]})}return e})();function eP(e,n){if(e&1&&(l(0,"p"),p(1),u()),e&2){let t=n.$implicit;f(),O(t)}}function tP(e,n){if(e&1&&(l(0,"div",4),H(1,eP,2,1,"p",null,te),u()),e&2){let t=E(2);f(),z(t.paragraphs)}}function nP(e,n){if(e&1&&(l(0,"div",1),v(1,"h2",3),j(2,tP,3,0,"div",4),u()),e&2){let t=E();f(),b("innerHTML",t.section.headingHtml,Ve),f(),V(t.paragraphs.length?2:-1)}}function iP(e,n){if(e&1&&(l(0,"a",6),v(1,"h2",3),u()),e&2){let t=E(2);b("routerLink",t.link),f(),b("innerHTML",t.section.headingHtml,Ve)}}function rP(e,n){if(e&1&&v(0,"h2",3),e&2){let t=E(2);b("innerHTML",t.section.headingHtml,Ve)}}function oP(e,n){if(e&1&&(l(0,"p"),p(1),u()),e&2){let t=n.$implicit;f(),O(t)}}function sP(e,n){if(e&1&&(l(0,"div",7),H(1,oP,2,1,"p",null,te),u()),e&2){let t=E(2);f(),z(t.paragraphs)}}function aP(e,n){if(e&1&&(l(0,"div",5),j(1,iP,2,2,"a",6)(2,rP,1,1,"h2",3),j(3,sP,3,0,"div",7),u()),e&2){let t=E();ce("ls-card",t.card),f(),V(t.link?1:2),f(2),V(t.paragraphs.length?3:-1)}}var ki=(()=>{class e{section;headingAlign="left";card=!1;layout="split";link;get paragraphs(){let t=this.section.lead??[],i=this.section.outro??[];return[...t,...i].filter(r=>!/^\s*services include/i.test(r))}static \u0275fac=function(i){return new(i||e)};static \u0275cmp=C({type:e,selectors:[["app-lead-section"]],inputs:{section:"section",headingAlign:"headingAlign",card:"card",layout:"layout",link:"link"},decls:3,vars:3,consts:[["appReveal","",1,"ls-section","w-full","px-4","sm:px-8"],[1,"ls-center-inner","r-rise","mx-auto","flex","w-full","max-w-[880px]","flex-col","items-center","text-center"],["appSpotlight","",1,"ls-inner","r-rise","mx-auto","grid","w-full","max-w-[1200px]","items-center","gap-8","lg:grid-cols-2","lg:gap-12",3,"ls-card"],[1,"ls-heading","font-outfit","font-bold",3,"innerHTML"],[1,"ls-prose","font-inter","space-y-4","mt-6"],["appSpotlight","",1,"ls-inner","r-rise","mx-auto","grid","w-full","max-w-[1200px]","items-center","gap-8","lg:grid-cols-2","lg:gap-12"],[1,"ls-heading-link",3,"routerLink"],[1,"ls-prose","font-inter","space-y-4"]],template:function(i,r){i&1&&(l(0,"section",0),j(1,nP,3,2,"div",1)(2,aP,4,4,"div",2),u()),i&2&&(ce("ls-heading-right",r.headingAlign==="right"),f(),V(r.layout==="center"?1:2))},dependencies:[Ue,rt,Ai],styles:[`@charset "UTF-8";.ls-section[_ngcontent-%COMP%]{padding-top:clamp(56px,8vw,110px);padding-bottom:clamp(56px,8vw,110px)}.ls-card[_ngcontent-%COMP%]{padding:clamp(28px,4vw,56px);border-radius:32px;background:#ffffff0a;border:1px solid rgba(255,255,255,.1);backdrop-filter:blur(40px);-webkit-backdrop-filter:blur(40px);box-shadow:0 30px 60px #00000059}.ls-heading[_ngcontent-%COMP%]{font-size:clamp(2rem,4.5vw,3.4rem);line-height:1.05;color:#fff;letter-spacing:-.01em;text-transform:lowercase}.ls-section.ls-heading-right[_ngcontent-%COMP%]   .ls-heading[_ngcontent-%COMP%]{text-align:left}@media (min-width: 1024px){.ls-section.ls-heading-right[_ngcontent-%COMP%]   .ls-heading[_ngcontent-%COMP%]{text-align:right}}.ls-heading-link[_ngcontent-%COMP%]{display:inline-block;text-decoration:none;cursor:pointer;transition:opacity .25s var(--ease, ease)}.ls-heading-link[_ngcontent-%COMP%]:hover{opacity:.82;text-decoration:underline;text-decoration-color:#ffffff73;text-underline-offset:8px}@media (min-width: 1024px){.ls-section.ls-heading-right[_ngcontent-%COMP%]   .ls-heading-link[_ngcontent-%COMP%]{justify-self:end}}.ls-prose[_ngcontent-%COMP%]{color:var(--text-dim, #b3a8c9);font-size:clamp(.95rem,1.5vw,1.0625rem);line-height:1.65;max-width:60ch}.ls-center-inner[_ngcontent-%COMP%]   .ls-prose[_ngcontent-%COMP%]{max-width:820px;text-align:center;margin-left:auto;margin-right:auto}
25/*# sourceMappingURL=lead-section-YAY4R42C.css.map */`]})}return e})();var mC=(()=>{class e{static \u0275fac=function(i){return new(i||e)};static \u0275cmp=C({type:e,selectors:[["app-case-studies"]],decls:7,vars:0,consts:[[1,"w-full","flex","flex-col","items-center","mt-[120px]"],["src","images/landing/case-studies.svg","alt","case studies",1,"h-[40p
25x]"],[1,"mt-[14px]","px-4","sm:px-[10%]","text-center","text-sm","sm:text-base"],[1,"mt-[40px]","pb-[190px]","flex","items-center","justify-center","col"],["src","images/landing/case-studies/development.avif","alt","development","routerLink","development-case-studies",1,"h-[300px]","cursor-pointer"],["src","images/landing/case-studies/marketing.avif","alt","marketing","routerLink","marketing-case-studies",1,"h-[300px]","cursor-pointer"]],template:function(i,r){i&1&&(l(0,"div",0),v(1,"img",1),l(2,"div",2),p(3," Dive deep into some our best work. See just a few of the apps we've successfully built and marketed with our in-house tools and expertise. "),u(),l(4,"div",3),v(5,"img",4)(6,"img",5),u()())},dependencies:[Ue],styles:[`@media (max-width: 1599px){.col[_ngcontent-%COMP%]{flex-direction:column}}
26/*# sourceMappingURL=case-studies-FOYQATJ2.css.map */`]})}return e})();var hC=(()=>{class e{router;constructor(t){this.router=t}goToTeam(){this.router.navigate(["team"])}static \u0275fac=function(i){return new(i||e)(D(Se))};static \u0275cmp=C({type:e,selectors:[["app-team"]],decls:5,vars:0,consts:[[1,"w-full","h-[400px]","sm:h-[680px]","bg-center","bg-no-repeat","bg-cover",2,"background-image","url('images/landing/backgrounds/team.png')"],[1,"w-full","h-full","flex","items-end","justify-center","pb-[100px]","sm:pb-[182px]"],[1,"flex","flex-col","items-center"],["src","images/landing/about-team.svg","alt","about the team",1,"h-[40px]","mb-[18px]"],["buttonText","explore",3,"click"]],template:function(i,r){i&1&&(l(0,"div",0)(1,"div",1)(2,"div",2),v(3,"img",3),l(4,"app-button",4),S("click",function(){return r.goToTeam()}),u()()()())},dependencies:[re],encapsulation:2})}return e})();var cP=e=>["/",e];function lP(e,n){if(e&1&&v(0,"img",2),e&2){let t=E();b("src",t.post.featured_image,pe)("alt",t.post.featured_image_alt||t.post.title)}}var Oi=(()=>{class e{post;get categoryLabel(){return this.post.category_names?.[0]||"Uncategorized"}get formattedDate(){return this.post.date?new Date(this.post.date).toLocaleDateString("en-US",{year:"numeric",month:"short",day:"numeric"}):""}static \u0275fac=function(i){return new(i||e)};static \u0275cmp=C({type:e,selectors:[["app-blog-card"]],inputs:{post:"post"},decls:9,vars:7,consts:[[1,"block","w-full","h-[340px]","rounded-[36px]","text-white","overflow-hidden","shadow-lg","cursor-pointer","hover:opacity-90","transition-opacity",2,"border-color","rgba(255, 255, 255, 0.3)","background","linear-gradient(to bottom right, rgba(0,0,0,0), rgba(0,0,0,0.7))",3,"routerLink"],[1,"relative","h-[190px]","rounded-[36px]","overflow-hidden","bg-gradient-to-br","from-black/80","via-black/70","to-black/60"],["loading","lazy",1,"absolute","inset-0","w-full","h-full","object-cover",3,"src","alt"],[1,"absolute","bottom-2","left-6","font-outfit","bg-black/60","px-2","py-1","rounded","text-xs","z-10"],[1,"font-inter","pt-[16px]","pb-[12px]","px-4","text-justify","text-sm","line-clamp-3"],[1,"font-inter","px-4","text-xs","text-white/60"]],template:function(i,r){i&1&&(l(0,"a",0)(1,"div",1),j(2,lP,1,2,"img",2),l(3,"div",3),p(4),u()(),l(5,"div",4),p(6),u(),l(7,"div",5),p(8),u()()),i&2&&(b("routerLink",kn(5,cP,r.post.slug)),f(2),V(r.post.featured_image?2:-1),f(2),Ce(" ",r.categoryLabel," "),f(2),Ce(" ",r.post.title," "),f(2),Ce(" ",r.formattedDate," "))},dependencies:[K,Ue],encapsulation:2})}return e})();var uP=()=>({"background-color":"#7E47F3"}),dP=()=>({}),pP=(e,n)=>n.slug;function fP(e,n){if(e&1&&(l(0,"div",5),v(1,"app-blog-card",6),u()),e&2){let t=n.$implicit,i=E();ce("slide-in",i.showPosts()),f(),b("post",t)}}function mP(e,n){if(e&1){let t=he();l(0,"div",7),S("click",function(){let r=W(t).$implicit,o=E();return q(o.activateCarousel(r.value))}),u()}if(e&2){let t=n.$implicit;b("ngStyle",t.active?bo(1,uP):bo(2,dP))}}var gC=(()=>{class e{postsRaw=[];fromPost=0;toPost=3;showPosts=ae(!0);carouselTimeout=4e3;timer;carouselSteps=[{value:1,active:!0},{value:2,active:!1},{value:3,active:!1},{value:4,active:!1},{value:5,active:!1},{value:6,active:!1}];constructor(){}ngOnInit(){this.startCarouselAutoplay()}ngOnDestroy(){this.clearCarouselTimer()}startCarouselAutoplay(){this.clearCarouselTimer(),this.timer=setTimeout(()=>{this.showPosts.update(t=>!t),this.nextStep(),this.startCarouselAutoplay()},this.carouselTimeout)}clearCarouselTimer(){this.timer&&(clearTimeout(this.timer),this.timer=null)}nextStep(){setTimeout(()=>{this.showPosts.update(r=>!r);let t=this.activeStep,i=t===6?1:t+1;this.activateCarousel(i)},50)}activateCarousel(t){this.carouselSteps=this.carouselSteps.map(i=>Z(I({},i),{active:i.value===t})),this.updateFromTo()}updateFromTo(){this.fromPost=this.activeStep-1,this.toPost=this.activeStep+2}get activeStep(){return this.carouselSteps.find(t=>t.active)?.value||1}get posts(){return this.postsRaw.slice(this.fromPost,this.toPost)}static \u0275fac=function(i){return new(i||e)};static \u0275cmp=C({type:e,selectors:[["app-post-carousel"]],inputs:{postsRaw:"postsRaw"},decls:6,vars:1,consts:[[1,"w-full","flex","flex-col","items-center"],[1,"flex","items-center","justify-center","gap-[23px]","w-full","h-[340px]","px-2"],[1,"w-[400px]",3,"slide-in"],[1,"flex","items-center","justify-center","gap-[23px]","w-full","mt-[40px]","value"],["class","w-3 h-3 bg-gray-500 rounded-full",3,"ngStyle","click",4,"ngFor","ngForOf"],[1,"w-[400px]"],[3,"post"],[1,"w-3","h-3","bg-gray-500","rounded-full",3,"click","ngStyle"]],template:function(i,r){i&1&&(l(0,"div",0)(1,"div",1),H(2,fP,2,3,"div",2,pP),u(),l(4,"div",3),Ee(5,mP,1,3,"div",4),u()()),i&2&&(f(2),z(r.posts),f(3),b("ngForOf",r.carouselSteps))},dependencies:[K,Jt,Cr,Oi],styles:[`@keyframes _ngcontent-%COMP%_slideInFromRight{0%{opacity:0;transform:translate(40px)}to{opacity:1;transform:translate(0)}}.slide-in[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_slideInFromRight 1s ease-in-out}
27/*# sourceMappingURL=post-carousel-NLSFQM7C.css.map */`]})}return e})();function hP(e,n){if(e&1&&v(0,"app-blog-card",1),e&2){let t=E();b("post",t.activePost)}}var gP=7,vC=(()=>{class e{postsRaw=[];showPost=ae(!0);activeIndex=0;carouselTimeout=4e3;timer;constructor(){}ngOnInit(){this.startCarouselAutoplay()}ngOnDestroy(){this.clearCarouselTimer()}startCarouselAutoplay(){this.clearCarouselTimer(),this.timer=setTimeout(()=>{this.showPost.update(t=>!t),this.nextStep(),this.startCarouselAutoplay()},this.carouselTimeout)}nextStep(){setTimeout(()=>{this.activeIndex=this.activeIndex===this.limit?0:this.activeIndex+1,this.showPost.update(t=>!t)},50)}clearCarouselTimer(){this.timer&&(clearTimeout(this.timer),this.timer=null)}get limit(){return Math.min(this.postsRaw.length-1,gP)}get activePost(){return this.postsRaw[this.activeIndex]??this.postsRaw[0]}static \u0275fac=function(i){return new(i||e)};static \u0275cmp=C({type:e,selectors:[["app-post-carousel-mobile"]],inputs:{postsRaw:"postsRaw"},decls:2,vars:3,consts:[[1,"w-[350px]","flex","items-center","px-2"],[3,"post"]],template:function(i,r){i&1&&(l(0,"div",0),j(1,hP,1,1,"app-blog-card",1),u(
27)),i&2&&(ce("slide-in",r.showPost()),f(),V(r.activePost?1:-1))},dependencies:[K,Oi],styles:[`@keyframes _ngcontent-%COMP%_slideInFromRight{0%{opacity:0;transform:translate(40px)}to{opacity:1;transform:translate(0)}}.slide-in[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_slideInFromRight 1s ease-in-out}
28/*# sourceMappingURL=post-carousel-mobile-TYQIWFOM.css.map */`]})}return e})();var Ni=(()=>{class e{http=y(Si);index$;getIndex(){return this.index$||(this.index$=this.http.get("/blog-data/index.json").pipe(Ud({bufferSize:1,refCount:!1}))),this.index$}getPosts(){return this.getIndex().pipe(Q(t=>t.posts))}getPost(t){return this.http.get(`/blog-data/posts/${t}.json`)}static \u0275fac=function(i){return new(i||e)};static \u0275prov=A({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();function vP(e,n){if(e&1){let t=he();l(0,"section",1),v(1,"img",2)(2,"app-post-carousel",3)(3,"app-post-carousel-mobile",4),l(4,"app-button",5),S("clicked",function(){W(t);let r=E();return q(r.goToBlog())}),u()()}if(e&2){let t=n.ngIf;f(2),b("postsRaw",t),f(),b("postsRaw",t)}}var yP=8,yC=(()=>{class e{blogContent=y(Ni);router=y(Se);posts$=this.blogContent.getPosts().pipe(Q(t=>t.slice(0,yP)));goToBlog(){this.router.navigate(["/blog"])}static \u0275fac=function(i){return new(i||e)};static \u0275cmp=C({type:e,selectors:[["app-post-carousel-container"]],decls:2,vars:3,consts:[["class","w-full mt-[133px] flex flex-col items-center",4,"ngIf"],[1,"w-full","mt-[133px]","flex","flex-col","items-center"],["src","images/landing/the-blog.svg","alt","blog",1,"h-[40px]","mb-[18px]"],[1,"show-web",3,"postsRaw"],[1,"show-mobile",3,"postsRaw"],["buttonText","view all",1,"mt-[50px]",3,"clicked"]],template:function(i,r){i&1&&(Ee(0,vP,5,2,"section",0),vr(1,"async")),i&2&&b("ngIf",yr(1,1,r.posts$))},dependencies:[K,ni,gC,vC,re,xr],styles:[`@media (max-width: 1599px){.show-web[_ngcontent-%COMP%]{display:none}.show-mobile[_ngcontent-%COMP%]{display:inline}}@media (min-width: 1599px){.show-mobile[_ngcontent-%COMP%]{display:none}.show-web[_ngcontent-%COMP%]{display:inline}}
29/*# sourceMappingURL=post-carousel-container-IHZSEBUK.css.map */`]})}return e})();var bP=["root"];function wP(e,n){if(e&1&&(F(0,"p"),p(1),L()),e&2){let t=n.$implicit;f(),O(t)}}function _P(e,n){if(e&1&&(F(0,"li",9),Fe(1,"img",10),F(2,"span"),p(3),L()()),e&2){let t=n.$implicit;f(3),O(t)}}function EP(e,n){if(e&1&&(F(0,"ul",6),H(1,_P,4,1,"li",9,te),L()),e&2){let t=E();f(),z(t.section.bullets)}}function CP(e,n){if(e&1&&(F(0,"li",11)(1,"span",12),p(2),L(),F(3,"span",13),p(4),L()()),e&2){let t=n.$implicit;f(2),O(t.term),f(2),O(t.detail)}}function xP(e,n){if(e&1&&(F(0,"ul",7),H(1,CP,5,2,"li",11,te),L()),e&2){let t=E();f(),z(t.section.steps)}}function DP(e,n){if(e&1&&(F(0,"p"),p(1),L()),e&2){let t=n.$implicit;f(),O(t)}}function SP(e,n){if(e&1&&(F(0,"div",8),H(1,DP,2,1,"p",null,te),L()),e&2){let t=E();f(),z(t.section.outro)}}var bC=(()=>{class e{platformId;section;align="center";root;revealReady=ae(!1);revealed=ae(!1);motionOK=!1;constructor(t){this.platformId=t}ngOnInit(){et(this.platformId)&&(this.motionOK=!window.matchMedia?.("(prefers-reduced-motion: reduce)").matches,this.motionOK&&this.revealReady.set(!0))}ngAfterViewInit(){if(!et(this.platformId)||!this.motionOK)return;let t=this.root?.nativeElement;if(!t||!("IntersectionObserver"in window)){this.revealed.set(!0);return}let i=new IntersectionObserver(r=>{for(let o of r)if(o.isIntersecting){this.revealed.set(!0),i.disconnect();break}},{threshold:.15,rootMargin:"0px 0px -10% 0px"});i.observe(t)}static \u0275fac=function(i){return new(i||e)(D(je))};static \u0275cmp=C({type:e,selectors:[["app-content-section"]],viewQuery:function(i,r){if(i&1&&An(bP,5),i&2){let o;mn(o=hn())&&(r.root=o.first)}},inputs:{section:"section",align:"align"},decls:11,vars:12,consts:[["root",""],[1,"content-section","relative","z-10","w-full","px-4","sm:px-8","py-[clamp(24px,4vw,56px)]"],[1,"cs-inner","mx-auto","flex","w-full","max-w-[1100px]","flex-col"],[1,"reveal","cs-heading","font-outfit","font-semibold",2,"--reveal-delay","0ms",3,"innerHTML"],["aria-hidden","true",1,"reveal","cs-keyline",2,"--reveal-delay","80ms"],[1,"reveal","cs-prose","font-inter","space-y-4",2,"--reveal-delay","140ms"],[1,"reveal","cs-grid","mt-8","grid","w-full","gap-3","grid-cols-1","sm:grid-cols-2","lg:grid-cols-3",2,"--reveal-delay","200ms"],[1,"reveal","mt-8","w-full","space-y-4",2,"--reveal-delay","200ms"],[1,"reveal","cs-prose","font-inter","space-y-4","mt-6",2,"--reveal-delay","260ms"],[1,"cs-chip"],["src","images/sh
29ared/check.svg","alt","","aria-hidden","true","loading","lazy",1,"cs-check"],[1,"cs-step"],[1,"font-semibold","gradient-text"],[1,"block"]],template:function(i,r){i&1&&(F(0,"section",1,0)(2,"div",2),Fe(3,"h2",3)(4,"span",4),F(5,"div",5),H(6,wP,2,1,"p",null,te),L(),j(8,EP,3,0,"ul",6),j(9,xP,3,0,"ul",7),j(10,SP,3,0,"div",8),L()()),i&2&&(ce("align-left",r.align==="left")("align-right",r.align==="right")("reveal-ready",r.revealReady())("is-visible",r.revealed()),f(3),Ci("innerHTML",r.section.headingHtml,Ve),f(3),z(r.section.lead),f(2),V(r.section.bullets!=null&&r.section.bullets.length?8:-1),f(),V(r.section.steps!=null&&r.section.steps.length?9:-1),f(),V(r.section.outro!=null&&r.section.outro.length?10:-1))},styles:[`@charset "UTF-8";.cs-inner[_ngcontent-%COMP%]{align-items:center;text-align:center}@media (min-width: 768px){.content-section.align-left[_ngcontent-%COMP%]   .cs-inner[_ngcontent-%COMP%]{align-items:flex-start;text-align:left}.content-section.align-right[_ngcontent-%COMP%]   .cs-inner[_ngcontent-%COMP%]{align-items:flex-end;text-align:right}}.cs-heading[_ngcontent-%COMP%]{font-size:clamp(1.75rem,4vw,3.25rem);line-height:1.1;color:#fff;max-width:18ch}.content-section.align-left[_ngcontent-%COMP%]   .cs-heading[_ngcontent-%COMP%], .content-section.align-right[_ngcontent-%COMP%]   .cs-heading[_ngcontent-%COMP%]{max-width:22ch}.cs-keyline[_ngcontent-%COMP%]{display:block;width:64px;height:3px;margin:1.25rem 0 1.75rem;border-radius:999px;background-image:linear-gradient(34.54deg,#d5087f 9.45%,#d971dc 40.67%,#7e47f3 67.89%,#59d0ff 92.71%)}.cs-prose[_ngcontent-%COMP%]{max-width:680px;color:var(--text-dim, #b3a8c9);font-size:1.0625rem;line-height:1.7}@media (min-width: 640px){.cs-prose[_ngcontent-%COMP%]{font-size:1.125rem}}.cs-grid[_ngcontent-%COMP%]{max-width:980px}.cs-chip[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:flex-start;gap:.7rem;text-align:left;min-height:64px;padding:.9rem 1.15rem;border-radius:1.25rem;background-color:#ffffff1a;border:1px solid rgba(255,255,255,.12);color:#fff;font-size:.95rem;font-weight:600;line-height:1.25;backdrop-filter:blur(40px);-webkit-backdrop-filter:blur(40px)}.cs-check[_ngcontent-%COMP%]{width:18px;height:22px;flex-shrink:0}.cs-step[_ngcontent-%COMP%]   span[_ngcontent-%COMP%]:first-child{font-size:1.05rem}.cs-step[_ngcontent-%COMP%]   span[_ngcontent-%COMP%]:last-child{color:var(--text-dim, #b3a8c9)}@media (prefers-reduced-motion: no-preference){.cs-chip[_ngcontent-%COMP%]{transition:transform .3s var(--ease, ease),border-color .3s,background-color .3s}.cs-chip[_ngcontent-%COMP%]:hover{transform:translateY(-3px);border-color:#ffffff47;background-color:#ffffff29}.content-section.reveal-ready[_ngcontent-%COMP%]   .reveal[_ngcontent-%COMP%]{opacity:0;transform:translateY(24px);transition:opacity var(--dur, .7s) var(--ease, cubic-bezier(.16, 1, .3, 1)),transform var(--dur, .7s) var(--ease, cubic-bezier(.16, 1, .3, 1));transition-delay:var(--reveal-delay, 0ms)}.content-section.reveal-ready.is-visible[_ngcontent-%COMP%]   .reveal[_ngcontent-%COMP%]{opacity:1;transform:none}}
30/*# sourceMappingURL=content-section-YYDEJJWO.css.map */`]})}return e})();var wC=[{headingHtml:'mobile app development & <span class="gradient-text">marketing agency</span>',lead:["SEMNexus is a full-service mobile app development and marketing agency helping startups, entrepreneurs, and established businesses launch, scale, and optimize digital products. Our team combines custom app development, App Store Optimization (ASO), mobile app marketing, answer engine optimization (AEO), user acquisition, influencer marketing, and AI development services under one roof."],outro:["Unlike traditional agencies that focus on either development or marketing, SEMNexus supports the entire product lifecycle. From idea validation and MVP development to App Store growth, user acquisition, retention, and revenue optimization, we help companies build products designed for long-term success."]}];var ya=[{headingHtml:'custom mobile<br><span class="gradient-text">app development</span>',lead:["Our mobile app development team builds custom iOS, Android, cross-platform, SaaS, AI-powered, and web applications designed for scalability and performance. Whether you are launching a startup MVP or modernizing an existing platform, our developers create secure, maintainable software that aligns with your business objectives.","Services include:"],bullets:["iOS App Development","Android App Development","React Native Development","AI App Development","SaaS Development","Web Application Development","UI/UX Design","API Development"]},{headingHtml:'mobile app<br><span class="gradient-text">marketing</span><br>services',lead:["Successful applications require more than downloads. They require a repeatable growth engine.","Our app marketing services focus on acquiring high-quality users through App Store Optimization, paid advertising, influencer marketing, creative production, conversion optimization, and retention marketing. We help businesses increase visibility, improve App Store rankings, reduce acquisition costs, and maximize lifetime value.","Services include:"],bullets:["App Store Optimization (ASO)","Apple Search Ads","Google App Campaigns","TikTok Advert
30ising","Meta Advertising","Influencer Marketing","Mobile User Acquisition","Retention Marketing"]},{headingHtml:'answer engine<br><span class="gradient-text">optimization</span><br>(AEO)',lead:["Search is evolving beyond traditional search engines.","AI platforms such as ChatGPT, Gemini, Claude, Perplexity, and Google AI Overviews increasingly influence purchasing decisions and vendor discovery. Our Answer Engine Optimization services help businesses improve visibility within AI-generated recommendations through entity optimization, structured data implementation, authority building, citation development, and AI search strategy."],outro:["Our goal is to help businesses become the trusted answer when users ask AI platforms for recommendations."]},{headingHtml:'why businesses <span class="gradient-text">choose SEMNexus</span>',lead:["SEMNexus combines technical development expertise with performance marketing execution. Our clients work with a single partner capable of designing, building, launching, marketing, and scaling digital products. This integrated approach reduces communication overhead, accelerates development timelines, and creates stronger alignment between product development and growth objectives.","Businesses choose SEMNexus for:"],bullets:["Mobile App Development","App Store Optimization","User Acquisition","AI Development","Influencer Marketing","Answer Engine Optimization","Startup Product Strategy","Growth Consulting"]}],_C=[{headingHtml:'mobile app development, marketing, and <span class="gradient-text">growth experts</span>',lead:["SEMNexus helps businesses build, launch, and scale mobile applications through a combination of app development, app marketing, App Store Optimization, Answer Engine Optimization, influencer marketing, and growth consulting. Whether you\u2019re creating a new startup, expanding an existing product, or seeking greater visibility across traditional and AI-powered search platforms, our team provides the technical expertise and growth strategies required to compete in today\u2019s digital marketplace."],outro:["From MVP development and AI software engineering to mobile user acquisition and App Store growth, SEMNexus serves as a long-term partner focused on measurable business outcomes rather than isolated deliverables."]}];var se=(()=>{class e{titleSrv;metaSrv;doc;SITE_NAME="SEM Nexus";BASE_URL="https://semnexus.com";
30TWITTER_HANDLE="@semnexusdigital";DEFAULT_IMAGE="https://semnexus.com/images/shared/backgrounds/background-3.avif";WEBSITE_DESC="Startup App Experts";LOGO_URL="https://semnexus.com/wp-content/uploads/2022/04/cropped-SemNexusLogoHorizontal-WhiteType-1.png";SAME_AS=["https://www.facebook.com/people/SEMnexus/100065162281996/","https://x.com/semnexusdigital","https://www.instagram.com/semnexus_digital/"];globalNodes=new Map;pageNodes=new Map;constructor(t,i,r){this.titleSrv=t,this.metaSrv=i,this.doc=r}apply(t){let i=t.title.includes(this.SITE_NAME)?t.title:`${t.title} | ${this.SITE_NAME}`;this.titleSrv.setTitle(i);let r=t.canonical??this.currentPath(),o=this.absoluteUrl(r),s=t.image&&t.image.length>0?t.image:this.DEFAULT_IMAGE,a=t.type??"website";this.setNameMeta("description",t.description),this.setPropMeta("og:title",i),this.setPropMeta("og:description",t.description),this.setPropMeta("og:url",o),this.setPropMeta("og:type",a),this.setPropMeta("og:site_name",this.SITE_NAME),this.setPropMeta("og:image",s),this.setPropMeta("og:image:alt",t.imageAlt),a==="article"?(this.setPropMeta("article:published_time",t.publishedTime),this.setPropMeta("article:modified_time",t.modifiedTime),this.setPropMeta("article:author",t.author)):(this.removeMeta('property="article:published_time"'),this.removeMeta('property="article:modified_time"'),this.removeMeta('property="article:author"')),this.setNameMeta("twitter:card","summary_large_image"),this.setNameMeta("twitter:title",i),this.setNameMeta("twitter:description",t.description),this.setNameMeta("twitter:image",s),this.setNameMeta("twitter:site",this.TWITTER_HANDLE),this.setCanonical(o),t.noindex?this.setNameMeta("robots","noindex,nofollow"):this.removeMeta('name="robots"'),this.pageNodes.clear(),this.upsertPage(o,I(I({"@type":"WebPage","@id":o,url:o,name:i,isPartOf:{"@id":`${this.BASE_URL}/#website`},inLanguage:"en-US",potentialAction:[{"@type":"ReadAction",target:[o]}]},t.publishedTime&&{datePublished:t.publishedTime}),t.modifiedTime&&{dateModified:t.modifiedTime})),this.emitGraph()}setNameMeta(t,i){if(i==null||i===""){this.metaSrv.removeTag(`name="${t}"`);return}this.metaSrv.updateTag({name:t,content:i})}setPropMeta(t,i){if(i==null||i===""){this.metaSrv.removeTag(`property="${t}"`);return}this.metaSrv.updateTag({property:t,content:i})}removeMeta(t){this.metaSrv.removeTag(t)}setCanonical(t){let i=this.doc.head.querySelector('link[rel="canonical"]');i||(i=this.doc.createElement("link"),i.setAttribute("rel","canonical"),this.doc.head.appendChild(i)),i.setAttribute("href",t)}currentPath(){try{return this.doc.location?.pathname??"/"}catch{return"/"}}absoluteUrl(t){if(/^https?:\/\//i.test(t))return t;let i=t.startsWith("/")?t:`/${t}`;return`${this.BASE_URL}${i}`}upsertPage(t,i){let r=this.pageNodes.get(t)??{};this.pageNodes.set(t,I(I({},r),i))}upsertGlobal(t,i){let r=this.globalNodes.get(t)??{};this.globalNodes.set(t,I(I({},r),i))}emitGraph(){let t={"@context":"https://schema.org","@graph":[...this.globalNodes.values(),...this.pageNodes.values()]},i=this.doc.head.querySelector("script#ld-graph");i||(i=this.doc.createElement("script"),i.setAttribute("type","application/ld+json"),i.setAttribute("id","ld-graph"),this.doc.head.appendChild(i)),i.textContent=JSON.stringify(t);for(let r of["ld-organization","ld-website","ld-article","ld-breadcrumb"]){let o=this.doc.head.querySelector(`script#${r}`);o&&o.remove()}}setJsonLd(t,i){let r=`local:${t}`;this.pageNodes.set(r,i),this.emitGraph()}removeJsonLd(t){this.pageNodes.delete(`local:${t}`),this.emitGraph()}setBreadcrumbs(t){let i=this.absoluteUrl(this.currentPath()),r=`${i}#breadcrumb`;this.upsertPage(r,{"@type":"BreadcrumbList","@id":r,itemListElement:t.map((s,a)=>{let c={"@type":"ListItem",position:a+1,name:s.name};return s.url&&(c.item=this.absoluteUrl(s.url)),c})});let o=this.pageNodes.get(i);o&&(o.breadcrumb={"@id":r},this.pageNodes.set(i,o)),this.emitGraph()}setArticle(t){let i=this.absoluteUrl(`/${t.slug}`),r=`${i}#article`,o=`${i}#primaryimage`,s=this.personId(t.author),a=t.image&&t.image.length>0?t.image:this.DEFAULT_IMAGE;this.upsertPage(r,Z(I(Z(I({"@type":"Article","@id":r,isPartOf:{"@id":i},author:t.author?{"@id":s,name:t.author}:void 0,headline:t.title,datePublished:t.datePublished,dateModified:t.dateModified||t.datePublished,mainEntityOfPage:{"@i
30d":i}},t.wordCount!=null&&{wordCount:t.wordCount}),{publisher:{"@id":`${this.BASE_URL}/#organization`},image:{"@id":o},thumbnailUrl:a}),t.section&&{articleSection:[t.section]}),{inLanguage:"en-US"})),this.upsertPage(o,{"@type":"ImageObject",inLanguage:"en-US","@id":o,url:a,contentUrl:a}),t.author&&this.upsertPage(s,{"@type":"Person","@id":s,name:t.author});let c=this.pageNodes.get(i);c&&(c.primaryImageOfPage={"@id":o},c.image={"@id":o},c.thumbnailUrl=a,c.datePublished=t.datePublished,c.dateModified=t.dateModified||t.datePublished,this.pageNodes.set(i,c)),this.emitGraph()}setGlobalSchemas(){this.upsertGlobal(`${this.BASE_URL}/#website`,{"@type":"WebSite","@id":`${this.BASE_URL}/#website`,url:`${this.BASE_URL}/`,name:this.SITE_NAME,description:this.WEBSITE_DESC,publisher:{"@id":`${this.BASE_URL}/#organization`},potentialAction:[{"@type":"SearchAction",target:{"@type":"EntryPoint",urlTemplate:`${this.BASE_URL}/?s={search_term_string}`},"query-input":{"@type":"PropertyValueSpecification",valueRequired:!0,valueName:"search_term_string"}}],inLanguage:"en-US"}),this.upsertGlobal(`${this.BASE_URL}/#organization`,{"@type":"Organization","@id":`${this.BASE_URL}/#organization`,name:this.SITE_NAME,url:`${this.BASE_URL}/`,logo:{"@type":"ImageObject",inLanguage:"en-US","@id":`${this.BASE_URL}/#/schema/logo/image/`,url:this.LOGO_URL,contentUrl:this.LOGO_URL,width:512,height:512,caption:this.SITE_NAME},image:{"@id":`${this.BASE_URL}/#/schema/logo/image/`},sameAs:this.SAME_AS}),this.emitGraph()}personId(t){let i=(t||"unknown").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"");return`${this.BASE_URL}/#/schema/person/${i}`}static \u0275fac=function(i){return new(i||e)($(yu),$(gE),$(Me))};static \u0275prov=A({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();var IP=["services"],MP=["caseStudies"];function TP(e,n){if(e&1&&v(0,"app-content-section",6),e&2){let t=n.$implicit;b("section",t)}}function AP(e,n){if(e&1&&v(0,"app-content-section",6),e&2){let t=n.$implicit;b("section",t)}}var kP=[{q:"What does SEMNexus do?",a:"SEMNexus is a full-service mobile app development and marketing agency. We combine custom app development, AI development, App Store Optimization (ASO), mobile app marketing, user acquisition, influencer marketing, and Answer Engine Optimization (AEO) under one roof, supporting the entire product lifecycle from idea validation to growth."},{q:"Does SEMNexus handle both app development and marketing?",a:"Yes. Unlike agencies that focus on either development or marketing, SEMNexus does both. Clients work with a single partner capable of designing, building, launching, marketing, and scaling digital products, which reduces overhead and aligns product development with growth objectives."},{q:"What kinds of apps does SEMNexus build?",a:"We build custom iOS, Android, cross-platform (React Native), SaaS, AI-powered, and web applications \u2014 from startup MVPs to enterprise platforms \u2014 with UI/UX design, API development, and full-lifecycle support."},{q:"Can SEMNexus help my brand show up in AI search tools like ChatGPT?",a:"Yes. Our Answer Engine Optimization (AEO) services improve visibility within AI-generated recommendations across ChatGPT, Gemini, Claude, Perplexity, and Google AI Overviews through entity optimization, structured data, authority building, and citation development."}],EC=(()=>{class e{route;seo;calendly;servicesSection;caseStudiesSection;heroTitleHtml='<span class="gradient-text">mobile app</span><br>development &<br><span class="gradient-text">marketing agency</span>';introSections=wC;devSection=ya[0];mktSection=ya[1];aeoSection=ya[2];whyBusinessesSection=ya[3];bottomSections=_C;constructor(t,i,r){this.route=t,this.seo=i,this.calendly=r}scheduleCall(){this.calendly.openPopup().catch(()=>{})}ngOnInit(){this.seo.apply({title:"Mobile App Development & Marketing Agency",description:"SEMNexus is a full-service mobile app development and marketing agency: custom iOS, Android, and AI apps plus ASO, user acquisition, influencer marketing, and Answer Engine Optimization to launch, scale, and grow digital products.",canonical:"/",image:"https://semnexus.com/images/landing/backgrounds/landing-1.webp",imageAlt:"SEM Nexus \u2014 App Development and App Marketing Agency",type:"website"}),this.seo.setJsonLd("faq",{"@context":"https://schema.org","@type":"FAQPage","@id":"https://semnexus.com/#faq",mainEntity:kP.map(t=>
30({"@type":"Question",name:t.q,acceptedAnswer:{"@type":"Answer",text:t.a}}))})}goToSection(t){t==="services"?this.servicesSection.nativeElement.scrollIntoView({behavior:"smooth"}):t==="case-studies"&&this.caseStudiesSection.nativeElement.scrollIntoView({behavior:"smooth"})}ngAfterViewInit(){this.route.fragment.subscribe(t=>{t==="services"?setTimeout(()=>this.goToSection("services"),0):t==="case-studies"&&setTimeout(()=>this.goToSection("case-studies"),0)})}static \u0275fac=function(i){return new(i||e)(D(pt),D(se),D(Re))};static \u0275cmp=C({type:e,selectors:[["app-landing"]],viewQuery:function(i,r){if(i&1&&(An(IP,5),An(MP,5)),i&2){let o;mn(o=hn())&&(r.servicesSection=o.first),mn(o=hn())&&(r.caseStudiesSection=o.first)}},decls:30,vars:5,consts:[["services",""],["caseStudies",""],["backgroundImage","images/shared/backgrounds/background-1.avif"],[1,"sr-only"],["backgroundImage","images/landing/backgrounds/landing-1.webp","videoSrc","/video/home.mp4","align","left","subcopy","As an award-winning agency, SEM Nexus partners with industry leaders to build and market high-performance digital platforms. We specialize in scaling complex systems and leveraging AI to create powerful mobile and web experiences that deliver measurable business results.",3,"titleHtml"],["hero-cta","","buttonText","get in touch now!",3,"clicked"],[3,"section"],[3,"goToSection"],["backgroundImage","images/shared/backgrounds/background-2.avif"],[1,"-mt-[180px]"],[1,"section-divider"],["link","/app-development-company",3,"section"],["link","/mobile-app-marketing-services",3,"section"],["headingAlign","right","link","/aeo-marketing-services",3,"section"],["layout","center","marker","check",3,"section"],["backgroundImage","images/shared/backgrounds/background-3.avif"]],template:function(i,r){if(i&1){let o=he();l(0,"app-background",2)(1,"h1",3),p(2,"SEM Nexus \u2014 Mobile App Development and App Marketing Agency"),u(),l(3,"app-hero-section",4)(4,"app-button",5),S("clicked",function(){return W(o),q(r.scheduleCall())}),u()(),H(5,TP,1,1,"app-content-section",6,te),l(7,"app-why-semnexus",7),S("goToSection",function(a){return W(o),q(r.goToSection(a))}),u()(),l(8,"app-background",8)(9,"section",9,0),v(11,"app-services"),u(),v(12,"hr",10)(13,"app-dev-services",11)(14,"hr",10)(15,"app-tag-services",12)(16,"hr",10)(17,"app-lead-section",13)(18,"hr",10)(19,"app-tag-services",14)(20,"hr",10),l(21,"section",null,1),v(23,"app-case-studies"),u()(),l(24,"app-background",15),v(25,"app-team")(26,"app-post-carousel-container"),H(27,AP,1,1,"app-content-section",6,te),v(29,"app-connect"),u()}i&2&&(f(3),b("titleHtml",r.heroTitleHtml),f(2),z(r.introSections),f(8),b("section",r.devSection),f(2),b("section",r.mktSection),f(2),b("section",r.aeoSection),f(2),b("section",r.whyBusinessesSection),f(8),z(r.bottomSections))},dependencies:[K,fe,Te,re,pC,fC,Bo,Ti,ki,mC,hC,yC,ye,bC],encapsulation:2})}return e})();var OP=["*"],qu=(()=>{class e{static \u0275fac=function(i){return new(i||e)};static \u0275cmp=C({type:e,selectors:[["app-info"]],ngContentSelectors:OP,decls:3,vars:0,consts:[[1,"w-full","flex","justify-center","px-2","sm:px-0"],[1,"w-full","z-10","max-w-[1050px]","py-6","sm:py-[114px]"]],template:function(i,r){i&1&&(ei(),F(0,"div",0)(1,"div",1),ti(2),L()())},encapsulation:2})}return e})();var tt=function(e){return e.AI_DEV_INFO="ai development",e.HEALTHCARE_MARKETING="healthcare marketing",e.APP_MARKETING="app marketing",e.BUSINESS_MOBILE_CONSULTING="business mobile consulting",e.AEO_MARKETING="aeo marketing",e}(tt||{});var Yu=(()=>{class e{info;static \u0275fac=function(i){return new(i||e)};static \u0275cmp=C({type:e,selectors:[["app-numbered-card"]],inputs:{info:"info"},decls:8,vars:3,consts:[[1,"w-full","flex","justify-center","px-2","sm:px-0","mt-[80px]"],[1,"relative","w-full","backdrop-blur-[81.54845428466797px]","bg-white/10","rounded-[36px]","z-10","max-w-[350px]","h-[340px]","py-6","sm:py-[114px]"],[1,"absolute","top-[-60px]","flex","flex-col","items-center","justify-center","w-full"],["alt","",1,"h-[130px]",3,"src"],[1,"font-outfit","text-2xl","font-semibold","w-full","text-center","mt-[50px]"],[1,"font-inter","text-base","w-full","text-center","px-[25px]","mt-[15px]"]],template:function(i,r){i&1&&(F(0,"div",0)(1,"div",1)(2,"div",2),Fe(3,"img",3),F(4,"div",4),p(5),L(),F(6,"div",5),p(7),L()()()()),i&2&&(f(3),Ci("src",r.info.icon,pe),f(2),O(r.
30info.title),f(2),O(r.info.text))},encapsulation:2})}return e})();var ba="images/shared/cards",Ri="images/shared/steps",CC=[{icon:`${ba}/rocket.png`,title:"expertise",text:"Our team consists of experienced AI and software development professionals who excel in their respective fields."},{icon:`${ba}/bulb.png`,title:"custom solutions",text:"We understand that one size doesn't fit all. We tailor AI solutions to your specific business needs."},{icon:`${ba}/shield.png`,title:"security",text:"We prioritize data security and implement the highest industry standards to protect your information."},{icon:`${ba}/rocket.png`,title:"support",text:"Our commitment to your success doesn't end with project delivery. We offer ongoing support and maintenance to ensure your software continues to perform optimally."},{icon:`${ba}/cheese.png`,title:"proven track record",text:"We have a history of delivering successful AI-driven projects for a wide range of industries."}],xC=[{icon:`${Ri}/01.png`,title:"custom ai-powered solutions",text:"We create custom AI solutions\u2014like predictive analytics, NLP, and computer vision\u2014tailored to your unique business needs."},{icon:`${Ri}/02.png`,title:"enhanced data insights",text:"Our AI software unlocks your data's potential, delivering insights to help you make smart, timely business decisions."},{icon:`${Ri}/03.png`,title:"automation for efficiency",text:"AI automates tasks to cut errors and free your team for strategic work\u2014like chatbots, data entry, and process automation."},{icon:`${Ri}/04.png`,title:"personalized customer experience",text:"Boost customer satisfaction and conversions with AI-powered personalized recommendations based on user behavior."},{icon:`${Ri}/05.png`,title:"competitive advantage",text:"Adopt AI early to outpace competitors, spot opportunities, and lead in innovation and efficiency."},{icon:`${Ri}/06.png`,title:"predictive maintenance",text:"AI predicts equipment failures and triggers maintenance to prevent costly downtime."},{icon:`${Ri}/07.png`,title:"scalability and flexibility",text:"Our AI solutions scale with your business, adapting to growth and protecting your investment."},{icon:`${Ri}/08.png`,title:"security and compliance",text:"We ensure your AI software is secure, compliant, and meets industry data protection standards."}];var wa="images/shared/cards",Zu="images/shared/cards/backgrounds",DC=[{icon:`${wa}/bag.png`,title:"app store optimization (aso)",text:"Boost your rankings in the App Store & Google Play."},{icon:`${wa}/cheese.png`,title:"data-driven paid advertising",text:"Maximize ROI with targeted user acquisition."},{icon:`${wa}/clock.png`,title:"retetion & engagement",text:"Maximize ROI with targeted user acquisition."},{icon:`${wa}/camera.png`,title:"influencer & socia media marketing",text:"Amplify brand awareness and credibility."},{icon:`${wa}/plant.png`,title:"comprehensive growth strategies",text:"Tailored solutions for startups & enterprises."}],SC=[{icon:`${Zu}/app-store.png`,title:"app store optimization (aso)",text:"SEM Nexus employs effective ASO strategies to enhance your app's visibility in app stores, driving organic downloads and ensuring sustainable growth."},{icon:`${Zu}/user.png`,title:"user acquisition",text:"Through targeted advertising campaigns on platforms like social media, search engines, and display networks, SEM Nexus attracts high-quality users to your app, optimizing your marketing spend for maximum ROI."},{icon:`${Zu}/influencer.png`,title:"influencer marketing",text:"Leveraging a robust network of influencers, SEM Nexus ensures your product becomes widely recognized and trusted, enhancing brand credibility and user engagement."},{icon:`${Zu}/development.png`,title:"app development",text:"Whether starting from scratch or taking over development from a previous team, SEM Nexus offers versatile app development services, ensuring quality and efficiency throughout the process."}];var _a="images/shared/cards",Ea="images/shared/steps",IC=[{icon:`${_a}/rocket.png`,title:"expertise",text:"Explore the impact of artificial intelligence in diagnosing diseases and improving patient outcomes in modern healthcare."},{icon:`${_a}/bulb.png`,title:"custom solutions",text:"Discuss the role of telemedicine in expanding healthcare access to rural and underserved populations."},{icon:`${_a}
30/shield.png`,title:"security",text:"Analyze the ethical implications of genetic editing technologies in personalized medicine."},{icon:`${_a}/rocket.png`,title:"support",text:"Examine how wearable health devices are transforming preventive care and chronic disease management."},{icon:`${_a}/cheese.png`,title:"proven track record",text:"Investigate the challenges and opportunities of integrating mental health services into primary healthcare systems."}],MC=[{icon:`${Ea}/01.png`,title:"app development",text:"Versatile and reliable, SEM Nexus delivers seamless, tailored mobile health app development from start to finish."},{icon:`${Ea}/02.png`,title:"app marketing",text:"Data-driven marketing that delivers results\u2014SEM Nexus connects your wellness or telemedicine app with the right audience."},{icon:`${Ea}/03.png`,title:"influencer marketing",text:"SEM Nexus uses influencers to make your app the talk of the town."},{icon:`${Ea}/04.png`,title:"website marketing",text:"SEM Nexus boosts your web traffic and conversions for care apps and recovery tools with measurable results."},{icon:`${Ea}/05.png`,title:"explore our work",text:"Our case studies showcase successful medical, health, and fitness apps built and marketed with proven strategies."}];var Ca="images/shared/cards",_g="images/shared/steps",TC=[{icon:`${Ca}/rocket.png`,title:"reach customers where they are",text:"Most digital time is spent in apps, not browsers. A branded mobile presence puts your message directly on your customer's home screen \u2014 past the inbox, past the ad feed."},{icon:`${Ca}/plant.png`,title:"deepen the relationship",text:"Push notifications, account-aware experiences, and in-app messaging keep customers engaged between purchases \u2014 turning one-time buyers into repeat ones."},{icon:`${Ca}/screw.png`,title:"cut operational drag",text:"Self-service flows, automated workflows, and real-time field data replace phone calls, paper forms, and back-office friction \u2014 measurable lift in support load and team capacity."},{icon:`${Ca}/bag.png`,title:"open new revenue lines",text:"Subscriptions, in-app purchases, marketplace fees, premium tiers \u2014 mobile unlocks monetization models that don't work on a desktop site."},{icon:`${Ca}/cheese.png`,title:"see what's actually happening",text:"Mobile analytics surface user behavior at the feature level: which screens convert, where users drop off, what drives retention. You stop guessing and start shipping what works."}],AC=[{icon:`${_g}/01.png`,title:"discover \xB7 1 to 2 weeks",text:"We map your business model, your users, and where mobile adds real leverage. You leave with a prioritized feature list, a tech recommendation, and a realistic budget \u2014 not a sales pitch."},{icon:`${_g}/02.png`,title:"build \xB7 8 to 16 weeks",text:"Design, develop, integrate. Weekly demos, working software early, iOS and Android in parallel. You steer the product before it's locked in."},{icon:`${_g}/03.png`,title:"launch + grow \xB7 ongoing",text:"App Store launch, growth experiments, performance monitoring, and version-over-version improvements. Shipping is the start, not the end."}];var xa="images/shared/steps",kC=[{icon:`${xa}/01.png`,title:"entity optimization",subtitle:"We structure your brand so AI systems clearly understand:",bullets:["Who you are","What you do","Why you're relevant"],outro:"This includes semantic consistency across your entire digital footprint."},{icon:`${xa}/02.png`,title:"ai-readable content architecture",subtitle:"We build and restructure content so it can be:",bullets:["Parsed by AI models","Extracted into answers","Selected for summaries and recommendations"],outro:"This is not blog spam. It's precision-engineered answer content."},{icon:`${xa}/03.png`,title:"authority signal development",subtitle:"AI doesn't guess\u2014it selects based on confidence. We strengthen:",bullets:["Topical authority","Brand mentions","Contextual relevance","Trust signals across the web"]},{icon:`${xa}/04.png`,title:"answer targeting strategy",subtitle:"We identify the exact questions your buyers are asking:",bullets:['"Best [service] near me"','"Who should I hire for [problem]"','"Top companies for [solution]"'],outro:"Then we position your business as the <b>default answer</b>."},{icon:`${xa}/05.png`,title:"multi-platform ai visibility",subtitle:"We optimize your presence across:",bullets:["Google AI Overviews","ChatGPT responses","Consistent branding","Featured snippets","Knowledge panels"]}];var Pi=(()=>{class e{getCardInfoData(t){switch(t){case tt.AI_DEV_INFO:return CC;case tt.APP_MARKETING:return DC;case tt.HEALTHCARE_MARKETING:return IC;case tt.BUSINESS_MOBILE_CONSULTING:return TC;default:return[]}}getNumberedCardInfo(t){switch(t){case tt.AI_DEV_INFO:return xC;case tt.HEALTHCARE_MARKETING:return MC;case tt.BUSINESS_MOBILE_CONSULTING:return AC;default:return[]}}
30getCardWithBackgroundData(t){switch(t){case tt.APP_MARKETING:return SC;default:return[]}}getCardWithBulletsData(t){switch(t){case tt.AEO_MARKETING:return kC;default:return[]}}static \u0275fac=function(i){return new(i||e)};static \u0275prov=A({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();function NP(e,n){if(e&1&&(l(0,"div",5),v(1,"app-numbered-card",4),u()),e&2){let t=n.$implicit,i=E();ce("slide-in",i.showPosts()),f(),b("info",t)}}var OC=(()=>{class e{cardInfoService;cardInfo=[];showPosts=ae(!0);fromPost=0;toPost=3;activeIndex=0;limit=5;constructor(t){this.cardInfoService=t}ngOnInit(){this.cardInfo=this.cardInfoService.getNumberedCardInfo(tt.HEALTHCARE_MARKETING),this.startCarouselAutoplay()}carouselTimeout=4e3;timer;carouselSteps=[{value:1,active:!0},{value:2,active:!1},{value:3,active:!1}];ngOnDestroy(){this.clearCarouselTimer()}startCarouselAutoplay(){this.clearCarouselTimer(),this.timer=setTimeout(()=>{this.showPosts.update(t=>!t),this.nextStep(),this.startCarouselAutoplay()},this.carouselTimeout)}clearCarouselTimer(){this.timer&&(clearTimeout(this.timer),this.timer=null)}nextStep(){setTimeout(()=>{this.showPosts.update(r=>!r);let t=this.activeStep,i=t===4?1:t+1;this.activateCarousel(i)},50)}activateCarousel(t){this.carouselSteps=this.carouselSteps.map(i=>Z(I({},i),{active:i.value===t})),this.updateActiveIndex(),this.updateFromTo()}updateFromTo(){this.fromPost=this.activeStep-1,this.toPost=this.activeStep+2}updateActiveIndex(){this.activeIndex=this.activeIndex===this.limit?0:this.activeIndex+1}get activeStep(){return this.carouselSteps.find(t=>t.active)?.value||1}get infoData(){return this.cardInfo.slice(this.fromPost,this.toPost)}get activeInfo(){return this.cardInfo[this.activeIndex]??this.cardInfo[0]}static \u0275fac=function(i){return new(i||e)(D(Pi))};static \u0275cmp=C({type:e,selectors:[["app-healthcare-card-number-container"]],decls:6,vars:3,consts:[[1,"w-full","flex","flex-col","items-center","show-web"],[1,"flex","items-center","justify-center","gap-[23px]","w-full","px-2"],[1,"w-[400px]",3,"slide-in"],[1,"w-[350px]","flex","items-center","px-2","show-mobile"],[3,"info"],[1,"w-[400px]"]],template:function(i,r){i&1&&(l(0,"div",0)(1,"div",1),H(2,NP,2,3,"div",2,te),u()(),l(4,"div",3),v(5,"app-numbered-card",4),u()),i&2&&(f(2),z(r.infoData),f(2),ce("slide-in",r.showPosts()),f(),b("info",r.activeInfo))},dependencies:[K,Yu],styles:[`@keyframes _ngcontent-%COMP%_slideInFromRight{0%{opacity:0;transform:translate(40px)}to{opacity:1;transform:translate(0)}}.slide-in[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_slideInFromRight 1s ease-in-out}@media (max-width: 1599px){.show-web[_ngcontent-%COMP%]{display:none}.show-mobile[_ngcontent-%COMP%]{display:inline}}@media (min-width: 1599px){.show-mobile[_ngcontent-%COMP%]{display:none}.show-web[_ngcontent-%COMP%]{display:inline}}
31/*# sourceMappingURL=healthcare-card-number-container-AJOCF2T7.css.map */`]})}return e})();var Uo=(()=>{class e{info;static \u0275fac=function(i){return new(i||e)};static \u0275cmp=C({type:e,selectors:[["app-card"]],inputs:{info:"info"},decls:8,vars:3,consts:[[1,"w-full","flex","justify-center","px-2","sm:px-0","flex-1","min-h-0"],[1,"relative","w-full","backdrop-blur-[81.54845428466797px]","bg-white/10","rounded-[36px]","z-10","max-w-[406px]","min-h-[325px]","h-full","flex","flex-col","items-center","pt-[170px]","pb-[40px]","px-[25px]"],[1,"absolute","top-[-120px]","left-0","w-full","flex","justify-center"],["alt","",1,"w-[65%]",3,"src"],[1,"font-outfit","text-2xl","font-semibold","w-full","text-center"],[1,"font-inter","text-base","w-full","text-center","mt-[12px]"]],template:function(i,r){i&1&&(F(0,"div",0)(1,"div",1)(2,"div",2),Fe(3,"img",3),L(),F(4,"div",4),p(5),L(),F(6,"div",5),p(7),L()()()),i&2&&(f(3),Ci("src",r.info.icon,pe),f(2),O(r.info.title),f(2),O(r.
31info.text))},styles:[`[_nghost-%COMP%]{display:flex;flex-direction:column;width:100%;height:100%;padding-top:80px}
32/*# sourceMappingURL=card-WBVCANPD.css.map */`]})}return e})();function RP(e,n){if(e&1&&(l(0,"div",3),v(1,"app-card",4),u()),e&2){let t=n.$implicit;f(),b("info",t)}}var NC=(()=>{class e{cardInfo=[];static \u0275fac=function(i){return new(i||e)};static \u0275cmp=C({type:e,selectors:[["app-healthcare-card-container"]],inputs:{cardInfo:"cardInfo"},decls:3,vars:1,consts:[[1,"w-full","px-2","sm:px-[10%]","mt-[50px]"],[1,"w-full","flex","flex-wrap","justify-center","gap-6"],["class","w-[400px] items-center",4,"ngFor","ngForOf"],[1,"w-[400px]","items-center"],[3,"info"]],template:function(i,r){i&1&&(l(0,"div",0)(1,"div",1),Ee(2,RP,2,1,"div",2),u()()),i&2&&(f(2),b("ngForOf",r.cardInfo))},dependencies:[K,Jt,Uo],encapsulation:2})}return e})();var RC=(()=>{class e{cardInfoService;cardInfo=[];constructor(t){this.cardInfoService=t}ngOnInit(){this.cardInfo=this.cardInfoService.getCardInfoData(tt.HEALTHCARE_MARKETING)}static \u0275fac=function(i){return new(i||e)(D(Pi))};static \u0275cmp=C({type:e,selectors:[["app-healthcare-choose-us"]],decls:3,vars:1,consts:[[1,"flex","flex-col","justify-content","mt-[80px]"],["src","/images/shared/why-choose-us.svg","alt","",1,"h-[40px]"],[3,"cardInfo"]],template:function(i,r){i&1&&(l(0,"div",0),v(1,"img",1)(2,"app-healthcare-card-container",2),u()),i&2&&(f(2),b("cardInfo",r.cardInfo))},dependencies:[NC],encapsulation:2})}return e})();var PC=(()=>{class e{static \u0275fac=function(i){return new(i||e)};static \u0275cmp=C({type:e,selectors:[["app-healthcare-process"]],decls:3,vars:0,consts:[[1,"flex","flex-col","justify-center","items-center","pt-[100px]","z-10"],[1,"px-4","sm:px-[20%]","text-center","text-sm","sm:text-base","relative","z-10"]],template:function(i,r){i&1&&(F(0,"div",0)(1,"div",1),p(2," SEM Nexus is an award-winning mobile app agency specializing in helping healthcare apps succeed. While we work with apps of all kinds, our experience in healthcare is unparalleled. Whether it's a telehealth platform, fitness tracker, or wellness solution, we craft targeted campaigns to get your app into the hands of the right users. From strategy to execution, we focus on maximizing downloads and engagement. Partner with SEM Nexus to elevate your healthcare app's marketing and stand out in the competitive landscape. "),L()())},styles:[`.custom-col-display[_ngcontent-%COMP%]{flex-direction:column;align-items:center}@media (min-width: 1375px){.custom-col-display[_ngcontent-%COMP%]{flex-direction:row;align-items:flex-start;justify-content:space-between}}
33/*# sourceMappingURL=healthcare-process-WDYVBSLE.css.map */`]})}return e})();var FC=(()=>{class e{file="healthcare-marketing";calendly=y(Re);seo=y(se);ngOnInit(){this.seo.apply({title:"Healthcare App Marketing",description:"SEM Nexus markets healthcare, telehealth, and wellness apps with compliant targeting, optimized creatives, and full-funnel acquisition strategies.",canonical:"/apps-healthcare-marketing/",image:"https://semnexus.com/images/healthcare-marketing/backgrounds/healthcare-marketing.avif",imageAlt:"Healthcare app marketing services by SEM Nexus",type:"website"}),this.seo.setBreadcrumbs([{name:"Home",url:"/"},{name:"Healthcare App Marketing"}]),this.seo.setJsonLd("service",{"@context":"https://schema.org","@type":"Service","@id":"https://semnexus.com/apps-healthcare-marketing/#service",name:"Healthcare App Marketing",serviceType:"HIPAA-aware app marketing for healthcare, telehealth, and wellness",description:"Compliant targeting, optimized creatives, and full-funnel acquisition for healthcare, telehealth, and wellness apps.",provider:{"@id":"https://semnexus.com/#organization"},areaServed:{"@type":"Country",name:"United States"},url:"https://semnexus.com/apps-healthcare-marketing/"})}scheduleCall(){this.calendly.openPopup()}static \u0275fac=function(i){return new(i||e)};static \u0275cmp=C({type:e,selectors:[["app-apps-healthcare-marketing"]],decls:23,vars:2,consts:[["backgroundImage","images/shared/backgrounds/background-1.avif"],[1,"sr-only"],["height","520px","paddingTop","300px","opacity",".8","text","service",3,"backgroundImage","t
33itle"],["backgroundImage","images/shared/backgrounds/background-2.avif"],[1,"flex","flex-col","justify-center","items-center"],[1,"font-outfit","text-xl","sm:text-3xl","font-semibold","mb-2","sm:mb-6"],[1,"gradient-text"],[1,"font-inter","mb-6","sm:mb-[21px]","text-center","text-sm","sm:text-base"],["buttonText","get in touch now!",3,"clicked"],["backgroundImage","images/shared/backgrounds/background-3.avif"],[1,"h-[20px]"]],template:function(i,r){i&1&&(l(0,"app-background",0)(1,"h1",1),p(2,"Healthcare App Marketing \u2014 HIPAA-Aware User Acquisition for Telehealth and Wellness Apps"),u(),v(3,"app-hero-section",2)(4,"app-healthcare-process")(5,"app-healthcare-choose-us"),u(),l(6,"app-background",3)(7,"app-info")(8,"div",4)(9,"div",5),p(10," let's transform your healthcare business "),l(11,"span",6),p(12,"together"),u()(),l(13,"div",7),p(14," Your Vision. Our Expertise. Let's Build Something Great Together."),v(15,"br")(16,"br"),p(17," We're here to help you create and market innovative apps, from diet apps to telemedicine platforms. Get in touch today, and let's turn your project into a success. "),u(),l(18,"app-button",8),S("clicked",function(){return r.scheduleCall()}),u()()(),v(19,"app-healthcare-card-number-container"),u(),l(20,"app-background",9),v(21,"div",10)(22,"app-connect"),u()),i&2&&(f(3),b("backgroundImage",`images/${r.file}/backgrounds/${r.file}.avif`)("title",`images/${r.file}/${r.file}.svg`))},dependencies:[fe,Te,PC,RC,qu,re,OC,ye],encapsulation:2})}return e})();function $o(e,n){let i=!n?.manualCleanup?n?.injector?.get(ht)??y(ht):null,r=PP(n?.equal),o;n?.requireSync?o=ae({kind:0},{equal:r}):o=ae({kind:1,value:n?.initialValue},{equal:r});let s,a=e.subscribe({next:c=>o.set({kind:1,value:c}),error:c=>{o.set({kind:2,error:c}),s?.()},complete:()=>{s?.()}});if(n?.requireSync&&o().kind===0)throw new M(601,!1);return s=i?.onDestroy(a.unsubscribe.bind(a)),Be(()=>{let c=o();switch(c.kind){case 1:return c.value;case 2:throw c.error;case 0:throw new M(601,!1)}},{equal:n?.equal})}function PP(e=Object.is){return(n,t)=>n.kind===1&&t.kind===1&&e(n.value,t.value)}var FP=(e,n)=>n.slug,LP=(e,n)=>n.id;function jP(e,n){if(e&1){let t=he();l(0,"button",4),S("click",function(){let r=W(t).$implicit,o=E();return q(o.selectCategory(r.slug))}),p(1),u()}if(e&2){let t=n.$implicit,i=E();ce("bg-white",i.selectedCategory()===t.slug)("text-black",i.selectedCategory()===t.slug),f(),Ce(" ",t.name," ")}}function VP(e,n){e&1&&(l(0,"p",6),p(1,"Loading\u2026"),u())}function BP(e,n){if(e&1&&v(0,"app-blog-card",8),e&2){let t=n.$implicit;b("post",t)}}function UP(e,n){if(e&1){let t=he();l(0,"div",9)(1,"button",10),S("click",function(){W(t);let r=E(2);return q(r.loadMore())}),p(2," Load more "),u()()}}function $P(e,n){if(e&1&&(l(0,"div",7),H(1,BP,1,1,"app-blog-card",8,LP),u(),j(3,UP,3,0,"div",9)),e&2){let t=E();f(),z(t.visible()),f(2),V(t.hasMore()?3:-1)}}var HP=24,LC=(()=>{class e{file="blog";blogContent=y(Ni);seo=y(se);constructor(){this.seo.apply({title:"Blog",description:"Insights, guides, and field reports from SEM Nexus on app development, ASO, marketing, AI, and growth.",canonical:"/blog",type:"website"}),this.seo.setBreadcrumbs([{name:"Home",url:"/"},{name:"Blog"}])}allPosts=$o(this.blogContent.getPosts(),{initialValue:[]});selectedCategory=ae(null);page=ae(1);categories=Be(()=>{let t=new Map;for(let i of this.allPosts())i.categories.forEach((r,o)=>{t.has(r)||t.set(r,i.category_names[o]??r)});return[...t.entries()].map(([i,r])=>({slug:i,name:r})).sort((i,r)=>i.name.localeCompare(r.name))});filtered=Be(()=>{let t=this.selectedCategory();return t?this.allPosts().filter(i=>i.categories.includes(t)):this.allPosts()});visible=Be(()=>this.filtered().slice(0,this.page()*HP));hasMore=Be(()=>this.visible().length<this.filtered().length);selectCategory(t){this.selectedCategory.set(t),this.page.set(1)}loadMore(){this.page.update(t=>t+1)}static \u0275fac=function(i){return new(i||e)};static \u0275cmp=C({type:e,selectors:[["app-blog"]],decls:11,vars:7,consts:[["backgroundImage","images/shared/backgrounds/background-3.avif"],["height","240px","paddingTop","110px","opacity",".8","text","resources",3,"backgroundImage","t
33itle"],[1,"max-w-[1200px]","mx-auto","px-6","pb-20","pt-2"],[1,"flex","flex-wrap","gap-2","justify-center","mb-12"],["type","button",1,"px-4","py-2","rounded-full","text-xs","border","border-white/30","hover:bg-white/10","transition",3,"click"],["type","button",1,"px-4","py-2","rounded-full","text-xs","border","border-white/30","hover:bg-white/10","transition",3,"bg-white","text-black"],[1,"text-center","text-white/70"],[1,"grid","grid-cols-1","md:grid-cols-2","lg:grid-cols-3","gap-8"],[3,"post"],[1,"flex","justify-center","mt-12"],["type","button",1,"px-8","py-3","rounded-full","border","border-white/30","text-white","hover:bg-white/10","transition",3,"click"]],template:function(i,r){i&1&&(l(0,"app-background",0),v(1,"app-hero-section",1),l(2,"section",2)(3,"div",3)(4,"button",4),S("click",function(){return r.selectCategory(null)}),p(5," All "),u(),H(6,jP,2,5,"button",5,FP),u(),j(8,VP,2,0,"p",6)(9,$P,4,1),u(),v(10,"app-connect"),u()),i&2&&(f(),b("backgroundImage",`images/${r.file}/backgrounds/${r.file}.png`)("title",`images/${r.file}/${r.file}.svg`),f(3),ce("bg-white",r.selectedCategory()===null)("text-black",r.selectedCategory()===null),f(2),z(r.categories()),f(2),V(r.allPosts().length===0?8:9))},dependencies:[K,fe,Te,ye,Oi],encapsulation:2})}return e})();function zP(e,n){e&1&&(l(0,"div",1),p(1,"Loading\u2026"),u())}function GP(e,n){e&1&&(l(0,"div",2)(1,"h1",4),p(2,"Post not found"),u(),l(3,"a",5),p(4,"Back to blog"),u()())}function WP(e,n){if(e&1&&(l(0,"span",10),p(1),u()),e&2){let t=n.$implicit;f(),O(t)}}function qP(e,n){if(e&1&&v(0,"img",11),e&2){E();let t=Xm(0);b("src",t.featured_image,pe)("alt",t.featured_image_alt||t.title)}}function YP(e,n){if(e&1&&(Wl(0),l(1,"article",3)(2,"a",6),p(3,"\u2190 All posts"),u(),l(4,"header",7)(5,"h1",8),p(6),u(),l(7,"div",9)(8,"span"),p(9),u(),l(10,"span"),p(11),u(),H(12,WP,2,1,"span",10,qm),u()(),j(14,qP,1,2,"img",11),v(15,"div",12),u()),e&2){let t=E(),i=Jm(t.post());f(6),O(i.title),f(3),O(t.formattedDate()),f(2),Ce("by ",i.author),f(),z(i.category_names),f(2),V(i.featured_image?14:-1),f(),b("innerHTML",t.sanitizedHtml(),Ve)}}var jC=(()=>{class e{route=y(pt);router=y(Se);blogContent=y(Ni);sanitizer=y(Qh);seo=y(se);post=$o(this.route.paramMap.pipe(ct(t=>{let i=t.get("slug");return i?this.blogContent.getPost(i).pipe(nn(()=>U(null))):U(null)})),{initialValue:void 0});sanitizedHtml=Be(()=>{let t=this.post();return t?this.sanitizer.bypassSecurityTrustHtml(t.html):null});formattedDate=Be(()=>{let t=this.post();return t?.date?new Date(t.date).toLocaleDateString("en-US",{year:"numeric",month:"long",day:"numeric"}):""});constructor(){Zl(()=>{let t=this.post();if(!t){this.seo.removeJsonLd("article"),this.seo.removeJsonLd("breadcrumb");return}this.seo.apply({title:t.title,description:t.excerpt||void 0,canonical:`/${t.slug}`,image:t.featured_image||void 0,imageAlt:t.featured_image_alt||void 0,type:"article",publishedTime:t.date,modifiedTime:t.modified,author:t.author}),this.seo.setArticle({title:t.title,description:t.excerpt||"",slug:t.slug,image:t.featured_image||void 0,datePublished:t.date,dateModified:t.modified,author:t.author,section:t.category_names?.[0]||t.categories?.[0],wordCount:t.wordCount}),this.seo.setBreadcrumbs([{name:"Home",url:"/"},{name:"Blog",url:"/blog"},{name:t.title}])})}static \u0275fac=function(i){return new(i||e)};static \u0275cmp=C({type:e,selectors:[["app-blog-post"]],decls:5,vars:1,consts:[["backgroundImage","images/shared/backgrounds/background-3.avif"],[1,"min-h-screen","flex","items-center","justify-center","text-white/70"],[1,"min-h-screen","flex","flex-col","items-center","justify-center","gap-4","text-white"],[1,"max-w-[820px]","mx-auto","px-6","pt-32","pb-20","text-white"],[1,"text-3xl"],["routerLink","/blog",1,"underline"],["routerLink","/blog",1,"text-xs","text-white/60","hover:text-white"],[1,"mt-6","mb-10"],[1,"font-outfit","text-3xl","md:text-5xl","leading-tight"],[1,"mt-4","text-sm","text-white/60","flex","flex-wrap","gap-4"],[1,"px-2","py-0.5","bg-white/10","rounded","text-xs"],[1,"w-full","rounded-2xl","mb-10","object-cover","max-h-[480px]",3,"src","alt"],[1,"prose","prose-invert","prose-lg","max-w-none","blog-content",3,"innerHTML"]],template:function(i,r){i&1&&(l(0,"app-background",0),j(1,zP,2,0,"div",1)(2,GP,5,0,"div",2)(3,YP,16,6,"article",3),v(4,"app-connect"),u()),i&2&&(f(),V(r.post()===void 0?1:r.post()===null?2:3))},dependencies:[K,Ue,fe,ye],styles:[`.blog-content[_ngcontent-%COMP%]{color:#ffffffeb;font-size:1.05rem;line-height:1.7}
33.blog-content[_ngcontent-%COMP%]   :is(h2[_ngcontent-%COMP%], h3[_ngcontent-%COMP%], h4[_ngcontent-%COMP%], h5[_ngcontent-%COMP%], h6[_ngcontent-%COMP%]){font-family:Outfit,sans-serif;color:#fff;margin-top:2.2rem;margin-bottom:.9rem;line-height:1.25}.blog-content[_ngcontent-%COMP%]   h2[_ngcontent-%COMP%]{font-size:1.75rem}.blog-content[_ngcontent-%COMP%]   h3[_ngcontent-%COMP%]{font-size:1.4rem}.blog-content[_ngcontent-%COMP%]   h4[_ngcontent-%COMP%]{font-size:1.2rem}.blog-content[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{margin:1rem 0}.blog-content[_ngcontent-%COMP%]   a[_ngcontent-%COMP%]{color:#c4a4ff;text-decoration:underline;text-underline-offset:2px}.blog-content[_ngcontent-%COMP%]   a[_ngcontent-%COMP%]:hover{color:#fff}.blog-content[_ngcontent-%COMP%]   ul[_ngcontent-%COMP%], .blog-content[_ngcontent-%COMP%]   ol[_ngcontent-%COMP%]{margin:1rem 0 1rem 1.5rem;padding-left:.5rem}.blog-content[_ngcontent-%COMP%]   ul[_ngcontent-%COMP%]{list-style:disc}.blog-content[_ngcontent-%COMP%]   ol[_ngcontent-%COMP%]{list-style:decimal}.blog-content[_ngcontent-%COMP%]   li[_ngcontent-%COMP%]{margin:.4rem 0}.blog-content[_ngcontent-%COMP%]   blockquote[_ngcontent-%COMP%]{border-left:3px solid rgba(255,255,255,.3);padding:.5rem 1rem;margin:1.4rem 0;color:#ffffffb3;font-style:italic}.blog-content[_ngcontent-%COMP%]   img[_ngcontent-%COMP%]{border-radius:12px;max-width:100%;height:auto;margin:1.4rem 0}.blog-content[_ngcontent-%COMP%]   pre[_ngcontent-%COMP%], .blog-content[_ngcontent-%COMP%]   code[_ngcontent-%COMP%]{background:#0006;border-radius:6px}.blog-content[_ngcontent-%COMP%]   code[_ngcontent-%COMP%]{padding:.1rem .4rem;font-size:.92em}.blog-content[_ngcontent-%COMP%]   pre[_ngcontent-%COMP%]{padding:1rem;overflow-x:auto;margin:1.4rem 0}.blog-content[_ngcontent-%COMP%]   pre[_ngcontent-%COMP%]   code[_ngcontent-%COMP%]{background:transparent;padding:0}.blog-content[_ngcontent-%COMP%]   table[_ngcontent-%COMP%]{width:100%;border-collapse:collapse;margin:1.4rem 0}.blog-content[_ngcontent-%COMP%]   table[_ngcontent-%COMP%]   th[_ngcontent-%COMP%], .blog-content[_ngcontent-%COMP%]   table[_ngcontent-%COMP%]   td[_ngcontent-%COMP%]{border:1px solid rgba(255,255,255,.15);padding:.6rem .9rem;text-align:left}.blog-content[_ngcontent-%COMP%]   table[_ngcontent-%COMP%]   th[_ngcontent-%COMP%]{background:#ffffff14}.blog-content[_ngcontent-%COMP%]   hr[_ngcontent-%COMP%]{border:0;border-top:1px solid rgba(255,255,255,.15);margin:2rem 0}.blog-content[_ngcontent-%COMP%]   figure[_ngcontent-%COMP%]{margin:1.4rem 0}.blog-content[_ngcontent-%COMP%]   figure[_ngcontent-%COMP%]   figcaption[_ngcontent-%COMP%]{font-size:.85rem;color:#fff9;text-align:center;margin-top:.5rem}
34/*# sourceMappingURL=blog-post-YP2CDFHQ.css.map */`]})}return e})();var _="https://oldold.semnexus.com/",Ae="https://semnexus-web.s3.us-east-1.amazonaws.com";var VC=[{name:"ualett",logo:`${_}wp-content/uploads/2025/08/icon-1.png`,description:"Ualett is a U.S.-based financial platform serving over 160,000 gig workers, independent contractors, and small business owners. Through its mobile app, Ualett offers fast, no-credit-check cash advances with a flat fee and flexible repayment terms.",redirectUrl:"ualett",images:[`${_}wp-content/uploads/2025/08/ACCOUNT-SETUP.png`,`${_}wp-content/uploads/2025/08/BENEFITS.png`,`${_}wp-content/uploads/2025/08/CASH-OTW.png`,`${_}wp-content/uploads/2025/08/DETAILS.png`,`${_}wp-content/uploads/2025/08/HOME-1.png`,`${_}wp-content/uploads/2025/08/LOGIN.png`],background:`${_}wp-content/uploads/2025/08/bg-1.png`,downloadLinks:{google:"https://play.google.com/store/apps/details?id=com.ualett&pcampaignid=web_share",apple:"https://apps.apple.com/us/app/ualett/id1438430972"},strategy:"We conducted in-depth market research to define the ideal user persona: a gig worker needing fast, flexible, and transparent cash solutions.",optimization:"Optimized campaign structure, tracking, and audience targeting",creative:"Created and launched targeted ads across Google, Meta, and Apple Search.",dynamicContent:[{type:"text",title:"Overview",content:"Ualett is a U.S.-based financial platform serving over 160,000 gig workers, independent contractors, and small business owners. Through its mobile app, Ualett offers fast, no-credit-check cash advances with a flat fee and flexible repayment terms."},{type:"titleBullets",title:"Problem / Challenge",nestedBullets:[{subtitle:"Ualett faced strong competition from fintech apps with:",bullets:["Hidden fees, limited transparency","Poor user support","Inaccessible terms for gig workers"]},{subtitle:"To scale effectively, they needed a clear acquisition strategy, stronger messaging, and a reliable lead generation engine.",bullets:[]}]},{type:"bullets",title:"Objectives",content:`Increase qualified leads and app downloads,
35                Improve brand trust and clarity of messaging,
36                Optimize acquisition spend across major ad platforms`},{type:"titleBullets",title:"Strategy / Approach",nestedBullets:[{subtitle:"We conducted in-depth market research to define the ideal user persona: a gig worker needing fast, flexible, and transparent cash solutions. Based on this, we:",bullets:["Created and launched targeted ads across Google, Meta, and Apple Search","Developed ad messaging centered on speed, ease, and n
36o credit checks","Optimized campaign structure, tracking, and audience targeting"]}]},{type:"bullets",title:"Execution",content:`Set up conversion tracking and performance analytics across platforms,
37                Ran geo-targeted campaigns in high-density gig worker markets,
38                A/B tested ad variations for copy and CTA effectiveness,
39                Tracked User Experience Using Adjust and gave recommendations to correct any drop offs`},{type:"titleBullets",title:"Results",nestedBullets:[{subtitle:"Cumulative to date:",bullets:["544,634 total app installs","$1,021,570.84 in managed advertising spend","$1.88 blended cost per install"]},{subtitle:"Ongoing monthly performance:",bullets:["Over $50,000/month in advertising spend managed","More than 20,000 app downloads every month","\u{1F4C8} App downloads increased by 40%, month over month","\u{1F4C8} Leads increased by 30%, month over month"]}]},{type:"titleBullets",title:"Key Learnings / Insights",nestedBullets:[{subtitle:"",bullets:["Simplicity, trust, and speed are top priorities for gig workers","Search-based intent (Google & Apple) drove the highest ROI","Personalized, regional targeting improved quality and reduced CAC"]}]}]},{name:"resonante",logo:`${_}wp-content/uploads/2025/08/icon.png`,description:"Resonante is a mental health app that provides a safe, anonymous space for meaningful conversations, ensuring you never feel alone in life's challenges.",redirectUrl:"resonante",images:[`${_}wp-content/uploads/2025/08/CHAT-2.png`,`${_}wp-content/uploads/2025/08/CHAT.png`,`${_}wp-content/uploads/2025/08/HOME.png`,`${_}wp-content/uploads/2025/08/INTERESTS.png`,`${_}wp-content/uploads/2025/08/PROFILE.png`],background:`${_}wp-content/uploads/2025/08/bg.png`,downloadLinks:{google:"https://play.google.com/store/apps/details?id=com.resonante.www&pcampaignid=web_share",apple:"https://apps.apple.com/us/app/resonante/id67401
3975358"},strategy:"Identified key drop-off points through funnel analytics",optimization:"Built detailed in-app funnels to understand user behavior across onboarding, engagement, and monetization stages.",creative:"Ran paid acquisition campaigns on Google Ads and Facebook",dynamicContent:[{type:"text",title:"Overview",content:"Support Resonante\u2019s growth as a safe, anonymous space for emotional connection and support by running paid acquisition campaigns, analyzing user experience through in-app funnels, and improving subscription conversion through UX and pricing recommendations"},{type:"text",title:"Target Persona",content:"Following in-depth market research, we identified emotionally overwhelmed Gen Z and millennials who value anonymity, quick access, and peer connection. All campaign strategy and product analysis was aligned with this segment"},{type:"titleBullets",title:"What We Did",nestedBullets:[{subtitle:"Ran paid acquisition campaigns on Google Ads and Facebook",bullets:["Google Ads: 3,232 downloads at a cost per install  of $0.78","Facebook Ads: 2,108 installs at a CPI of $3.52"]},{subtitle:"",bullets:["Built detailed in-app funnels to understand user behavior across onboarding, engagement, and monetization stages"]},{subtitle:"",bullets:["Identified key drop-off points through funnel analytics"]},{subtitle:"Delivered actionable UX/CRO recommendations, including:",bullets:["Clearer CTAs and more intuitive onboarding steps","Suggested search functionality in dropdowns","In-app event tagging for deeper analytics"]},{subtitle:"",bullets:["Proposed a price increase from $3.99 to $5.99\u20136.49/month to better reflect the app\u2019s premium positioning, supported by competitor benchmarking"]}]},{type:"bullets",title:"Key Results",content:`Scaled acquisition efficiently through paid ads, maintaining a low blended CPI across channels,
40                Identified and addressed high-friction areas in the onboarding and subscription process,
41                Provided a phased roadmap for event tracking and CRO improvements,
42                Delivered strategic insights to boost monetization and App Store positioning`}]},{name:"kicksnap",logo:`${_}wp-content/uploads/2025/04/icon.png`,description:"KickSnap is a sneaker shopping app that lets users discover and buy sneakers using image recognition, text search, and a centralized marketplace.",redirectUrl:"kicksnap",images:[`${_}wp-content/uploads/2025/04/KICK-RACK.png`,`${_}wp-content/uploads/2025/04/IMG_0243.png`,`${_}wp-content/uploads/2025/04/IMG_0242.png`,`${_}wp-content/uploads/2025/04/IMG_0237.png`,`${_}wp-content/uploads/2025/04/CAMERA.png`],background:`${_}wp-content/uploads/2025/04/bg_2.png`,downloadLinks:{google:"https://play.google.com/store/apps/details?id=com.kicksnap&pcampaignid=web_share",apple:"https://apps.apple.com/us/app/kicksnap/id6450046203"},strategy:"Tested different ad creatives and adjusted targeting based on results. Increased ad spend on high-performing campaigns.",optimization:"Researched high-traffic keywords and optimized app store listings. Updated app titles, descriptions, and visuals to boost search rankings.",creative:"Focused on high-intent keywords like \u201Cbuy sneakers\u201D and \u201Csneaker search.\u201D Monitored keyword trends and updated ad copy to stay relevant. Used value-based bidding to drive quality installs.",dynamicContent:[{type:"text",title:"Overview",content:"KickSnap is a sneaker shopping app that lets users discover and buy sneakers using image recognition, text search, and a centralized marketplace. SEMNexus was tasked with driving app downloads and user engagement through a strategic combination of Google Ads and App Store Optimization . The goal was to increase user acquisition while maintaining a low cost per conversion through precise keyword targeting and continuous campaign optimization"},{type:"bullets",title:"Objectives",content:`Drive app downloads on iOS and Android,
43                          Optimize keyword targeting to improve visibility and conversion rates,
44                          Reduce cost per conversion while increasing user engagement`},{type:"titleBullets",title:"Strategy",nestedBullets:[{subtitle:"Google Ads \u2013 Keyword Targeting & Trend Monitoring",bullets:["Focused on high-intent keywords like \u201Cbuy sneakers\u201D and \u201Csneaker search.\u201D","Monitored keyword trends and updated ad copy to stay relevant","Used value-based bidding to drive quality installs"]}
44,{subtitle:"App Store Optimization (ASO)",bullets:["Researched high-traffic keywords and optimized app store listings","Updated app titles, descriptions, and visuals to boost search rankings"]},{subtitle:"A/B Testing & Performance Monitoring",bullets:["Tested different ad creatives and adjusted targeting based on results","Increased ad spend on high-performing campaigns"]}]},{type:"conclusion",title:"Conclusion",content:"We were able to deliver outstanding results through strategic keyword targeting and real-time campaign adjustments. The Android campaign achieved an exceptionally low cost per conversion demonstrating the effectiveness of the targeting and creative strategy. The iOS campaign showed strong engagement with room for further optimization. This case study highlights SEMNexus\u2019s ability to drive growth and maximize ROAS through expert Google Ads and ASO strategies"}]},{name:"hatched",logo:`${_}wp-content/uploads/2025/04/icon-1.png`,description:"Hatched is a dating app focused on fostering meaningful connections beyond surface-level attraction.",redirectUrl:"hatched",images:[`${_}wp-content/uploads/2025/04/QUESTIONS.png`,`${_}wp-content/uploads/2025/04/HOME.png`,`${_}wp-content/uploads/2025/04/CHAT.png`,`${_}wp-content/uploads/2025/04/CARTON.png`],background:`${_}wp-content/uploads/2025/04/bg-2.png`,downloadLinks:{google:"https://play.google.com/store/apps/details?id=com.hatchmatch.hatch&pcampaignid=web_share",apple:"https://apps.apple.com/us/app/hatched-personality-dating/id1577370215"},strategy:"Optimize Facebook Ad account to increase iOS downloads. Increase Android downloads through targeted Google Ads campaigns. Lower cost per conversion while driving high-quality user acquisition.",optimization:"Refined audience targeting based on user behavior and interests. Created new ad creatives focused on Hatched's unique value proposition.",creative:"Monitored keyword trends and updated ad copy based on search behavior. Used value-based bidding to maximize quality app installs.",dynamicContent:[{type:"text",title:"Overview",content:"Hatched is a dating app focused on fostering meaningful connections beyond surface-level attraction. Unlike traditional dating apps, Hatched uses an innovative matchmaking algorithm that connects users based on shared values and personality traits through a game-like experience. SEMNexus was tasked with optimizing Hatched\u2019s Facebook Ad account and driving Android downloads through a strategic Google Ads campaign to increase user acquisition and improve ad performance."},{type:"bullets",title:"Objectives",content:`Optimize Facebook Ad account to increase iOS downloads,
45                          Increase Android downloads through targeted Google Ads campaigns,
46                          Lower cost per conversion while driving high-quality user acquisition`},{type:"titleBullets",title:"Strategy",nestedBullets:[{subtitle:"Facebook Ads Optimization",bullets:["Refined audience targeting based on user behavior and interests","Created new ad creatives focused on Hatched\u2019s unique value proposition","Collaborated with UGC Creators to add to the campaigns","Launched A/B testing to identify high-performing ad variations"]},{subtitle:"Google Ads \u2013 Keyword Targeting & Trend Monitoring",bullets:["Monitored keyword trends and updated ad copy based on search behavior","Used value-based bidding to maximize quality app installs"]}]},{type:"conclusion",title:"Conclusion",content:"SEMNexus delivered strong results by optimizing Hatched\u2019s Facebook Ad account and executing a high-performance Google Ads strategy. The refined targeting and creative adjustments improved engagement and lowered acquisition costs on Facebook, while the strategic keyword targeting on Google Ads increased Android downloads at a competitive cost per conversion. "}]},{name:"happy mob",logo:`${_}wp-content/uploads/2025/04/icon-2.png`,description:"Happy Mob is a platform that connects users with minority-owned businesses in their area, serving as a directory to promote and support these businesses.",redirectUrl:"happy-mob",images:[`${_}wp-content/uploads/2025/04/SEARCH.png`,`${_}wp-content/uploads/2025/04/SAVED-BUSINESSES.png`,`${_}wp-content/uploads/2025/04/HOME-1.png`,`${_}wp-content/uploads/2025/04/DETAIL.png`,`${_}wp-content/uploads/2025/04/CATEGORIES.png`],background:`${_}
46wp-content/uploads/2025/04/bg-3.png`,strategy:"Increase app downloads through targeted Google Ads campaigns. Improve app store visibility with optimized imagery and keyword-rich descriptions. Lower cost per conversion while attracting high-quality users.",optimization:"Conducted keyword research to identify high-traffic, low-competition terms. Designed new app store visuals to highlight the app's mission and value.",creative:"Adjusted keyword targeting based on search trends and performance data. Used value-based bidding to maximize user acquisition while controlling costs.",dynamicContent:[{type:"text",title:"Overview",content:"Happy Mob is a platform that connects users with minority-owned businesses in their area, serving as a directory to promote and support these businesses. The app monetizes through ads and business promotions within the platform, targeting both minority-owned businesses and consumers interested in supporting them. SEMNexus was tasked with driving user acquisition through Google Ads and optimizing the app\u2019s visibility and conversion rates through strategic App Store Optimization (ASO)."},{type:"bullets",title:"Objectives",content:`Increase app downloads through targeted Google Ads campaigns,
47                          Improve app store visibility with optimized imagery and keyword-rich descriptions,
48                          Lower cost per conversion while attracting high-quality users`},{type:"titleBullets",title:"Strategy",nestedBullets:[{subtitle:"Google Ads \u2013 Keyword Targeting & Trend Monitoring",bullets:["Adjusted keyword targeting based on search trends and performance data","Used value-based bidding to maximize user acquisition while controlling costs"]},{subtitle:"App Store Optimization ",bullets:["Conducted keyword research to identify high-traffic, low-competition terms","Designed new app store visuals to highlight the app\u2019s mission and value","Optimized app titles and descriptions with strategic keywords to improve search rankings"]},{subtitle:"A/B Testing & Performance Monitoring",bullets:["Tested multiple ad variations and adjusted based on conversion performance","Increased ad spend on high-performing campaigns while pausing underperformers","Monitored app store performance and adjusted listing content to improve conversion rates"]}]},{type:"conclusion",title:"Conclusion",content:"SEMNexus delivered strong results for Happy Mob through a data-driven Google Ads and ASO strategy. The precise keyword targeting and value-based bidding helped drive high-quality app installs at a competitive cost per conversion. The app store optimization efforts enhanced the app\u2019s visibility and improved conversion rates, reinforcing Happy Mob\u2019s positioning as the go-to platform for supporting minority-owned businesses. "}]},{name:"foojan",logo:`${_}wp-content/uploads/2025/04/icon-3.png`,description:"Foojan is a mental health and self-improvement app that guides users through a transformative journey to reduce stress, manage anxiety, and enhance overall well-being.",redirectUrl:"foojan",images:[`${_}wp-content/uploads/2025/04/RESULTS.png`,`${_}wp-content/uploads/2025/04/LIFE-AREAS.png`,`${_}wp-content/uploads/2025/04/HOME-2.png`,`${_}wp-content/uploads/2025/04/TIMER.png`],background:`${_}wp-content/uploads/2025/04/bg-4.png`,downloadLinks:{google:"https://play.google.com/store/apps/details?id=com.foojan.app&pcampaignid=web_share",apple:"https://apps.apple.com/us/app/foojan-self-improvement-app/id1609189394"},strategy:"Increase app downloads through targeted ad campaigns. Identify and fix onboarding issues to improve user retention and engagement. Lower cost per conversion while maximizing high-quality installs.",optimization:"Updated ad copy based on search trends and user behavior. Adjusted bidding strategy to maximize ROAS while maintaining a low cost per install.",creative:"Targeted users interested in mental health, wellness, and self-improvement. Used lookalike audiences and interest-based targeting to improve acquisition quality.",dynamicContent:[{type:"text",title:"Overview",content:`Foojan is a mental health and self-improvement app that guides users through a transformative journey to reduce stress, manage anxiety, and enhance overall well-being. Using a multi-modality approach that integrates cognitive, behavioral, emotional, and body-mind theories, Foojan helps users achieve personal growth and emotional healing.
49                SEMNexus was tasked with driving app downloads through Facebook Ads and Google Ads for both Android and iOS. Additionally, SEMNexus conducted a comprehensive user experience (UX) analysis and provided actionable recommendations to improve onboarding and user retention.`},{type:"bullets",title:"Objectives",content:`Increase app downloads on iOS and Android through targeted ad campaigns,
50                          Identify and fix onboarding issues to improve user retention and engagement,
51                          Lower cost per conversion while maximizing high-quality installs`},{type:"titleBullets",title:"Strategy",nestedBullets:[{subtitle:"Facebook Ads \u2013 Targeted Audience Segmentation",bullets:["Targeted users interested in mental health, wellness, and self-improvement","Tested various ad creatives and CTAs to identify high-performing variations","Used lookalike audiences and interest-based targeting to improve acquisition quality"]},{subtitle:"Google Ads \u2013 Keyword Targeting & Trend Monitoring",bullets:["Upd
51ated ad copy based on search trends and user behavior","Adjusted bidding strategy to maximize ROAS while maintaining a low cost per install"]},{subtitle:"UX Analysis & Onboarding Fixes",bullets:["Analyzed user behavior through in-app analytics to identify drop-off points during onboarding","Recommended simplification of onboarding steps to reduce friction","Suggested clearer value propositions and improved CTAs to enhance user engagement"]}]},{type:"bullets",title:"Results",content:"John Design"},{type:"conclusion",title:"Conclusion",content:`SEMNexus successfully increased Foojan\u2019s app downloads and user engagement through a strategic combination of Facebook Ads and Google Ads. By optimizing audience targeting and continuously adjusting ad copy based on performance data, SEMNexus delivered a strong return on ad spend and increased user acquisition.                
52                The UX analysis and onboarding improvements directly enhanced user retention, ensuring that new users were more engaged and better supported from the start. This case study highlights  our ability to deliver results through a holistic approach combining paid acquisition and user experience optimization.`}]},{name:"cauldy",logo:`${_}wp-content/uploads/2025/04/icon-4.png`,description:"Cauldy is a Gen Z-designed social media platform focused on meaningful, anonymous interactions.",redirectUrl:"cauldy",images:[`${_}wp-content/uploads/2025/04/IMG_0498.png`,`${_}wp-content/uploads/2025/04/IMG_0497.png`,`${_}wp-content/uploads/2025/04/IMG_0496.png`,`${_}wp-content/uploads/2025/04/IMG_0495.png`],background:`${_}wp-content/uploads/2025/04/bg-5.png`,downloadLinks:{google:"https://play.google.com/store/apps/details?id=com.bleep.btw&pcampaignid=web_share",apple:"https://apps.apple.com/us/app/cauldy/id1668340510"},strategy:"Increase app downloads. Improve app store visibility and conversion rates. Develop a high-quality pitch deck to secure investor funding.",optimization:"Optimized app descriptions, visuals, and metadata to improve search ranking and conversion.",creative:"Targeted Gen Z users with tailored ad creatives (video, carousel, and story ads).",dynamicContent:[{type:"text",title:"Overview",content:"Cauldy is a Gen Z-designed social media platform focused on meaningful, anonymous interactions. SEMNexus was tasked with driving app downloads through Google Ads and Facebook Ads, improving visibility through App Store Optimization (ASO), and creating a professional pitch deck for investors"},{type:"bullets",title:"Objectives",content:`Increase app downloads on iOS and Android, 
53                Improve app store visibility and conversion rates, 
54                Develop a high-quality pitch deck to secure investor funding`},{type:"list",title:"Strategy",content:`Google Ads \u2013 Focused on high-intent keywords like "anonymous social media" and used value-based bidding to maximize installs,
55                        Facebook Ads \u2013 Targeted Gen Z users with tailored ad creatives (video, carousel, and story ads),
56                        ASO \u2013 Optimized app descriptions, visuals, and metadata to improve search ranking and conversion,
57                        UX Audit \u2013 Simplified signup process and added an interactive walkthrough to improve onboarding,
58                        Pitch Deck \u2013 Designed a compelling pitch deck highlighting Cauldy\u2019s growth potential`},{type:"titleBullets",title:"Results",nestedBullets:[{subtitle:"Google Ads",bullets:["Downloads: 38,067","Cost: $2,352","CPI: $0.06"]},{subtitle:"Facebook Ads",bullets:["Downloads: 2,011","Cost: $1,809","CPI: $0.90"]}]},{type:"conclusion",title:"Conclusion",content:"SEMNexus drove over 40,000 downloads at a highly competitive cost per install through strategic ad targeting and ASO. The onboarding improvements boosted retention, and the pitch deck positioned Cauldy for investor success."}]},{name:"Ramp Assist Boating",description:"ZF, a pioneering player in the boating industry, developed a cutting-edge boating app aimed at streamlining the boat retrieval process and enhancing users' boating experiences.",logo:`${_}wp-content/uploads/2025/04/icon-5.png`,images:[`${_}wp-content/uploads/2025/04/image-2-1.png`,`${_}wp-content/uploads/2025/04/image-5.png`,`${_}wp-content/uploads/2025/04/image-1-1.png`],redirectUrl:"ramp-assist-boating",background:`${_}
58wp-content/uploads/2025/04/bg-6.png`,downloadLinks:{apple:"https://apps.apple.com/us/app/ramp-assist-smart-boating/id1640103295?",google:""},strategy:"Highlighted the app's advanced AI technology, emphasizing real-time functionality through relatable scenarios.",optimization:"The combined approach of paid digital marketing and organic posting strategies led to increased app downloads and a solid foundation for the app's future growth in the boating industry.",creative:"Created visually engaging advertisements that showcased the app's features and benefits in real-life boating scenarios. -Designed clear and concise messaging that resonated with both novice and experienced boaters."},{name:"ultimate playlist",description:"The Ultimate Playlist App is a revolutionary internet radio platform that offers users a unique opportunity to win cash rewards simply by listening to music!",logo:`${_}wp-content/uploads/2025/04/icon-6.png`,images:[`${_}wp-content/uploads/2025/04/2-1.png`,`${_}wp-content/uploads/2025/04/1.png`,`${_}wp-content/uploads/2025/04/3.png`],redirectUrl:"ultimate-playlist",background:`${_}wp-content/uploads/2025/04/bg-7.png`,strategy:"We emphasized the simple process as well as the exciting opportunities for both daily cash drawings and the jackpot game.",optimization:"To incentivize engagement and participation, we designed in-app prompts and notifications to guide users. We lead them through the process of listening to playlists, rating songs, and adding them to their Apple Music playlists.",creative:"Video tutorials on how to use the app, success stories of previous winners, and explanations of the jackpot game. We shared this content across social media and within the app."},{name:"Fuel Your Side Hustle",description:"Embracing the spirit of innovation, FYSH stands as a dynamic platform committed to supporting the side-hustle economy by providing essential tools and infrastructure for building and growing personal businesses.",logo:`${_}wp-content/uploads/2025/04/icon-7.png`,images:[`${_}wp-content/uploads/2025/04/image3.png`,`${_}wp-content/uploads/2025/04/image-1-2.png`,`${_}wp-content/uploads/2025/04/image-6.png`],redirectUrl:"fysh",background:`${_}wp-content/uploads/2025/04/bg-8.png`,strategy:"The strategy focused on creating a strong brand presence, engaging the target audience through various channels, and emphasizing the unique benefits of FYSH's app.",optimization:"By skillfully integrating relevant keywords, attractive visuals, and compelling descriptions, we successfully optimized app listings and boosted visibility amongst potential users.",creative:" We crafted informative and engaging content that highlighted the benefits of using FYSH. Its way of simplifying schedules, management, and invoicing were just some of the virtues we spotlighted for side hustlers."},{name:"winquik",description:"WinQuik is the newest live trivia quiz app featuring dynamic personalities from all avenues of entertainment.",logo:`${_}wp-content/uploads/2025/04/icon-8.png`,images:[`${_}wp-content/uploads/2025/04/002.png`,`${_}wp-content/uploads/2025/04/001.png`,`${_}wp-content/uploads/2025/04/003.png`],redirectUrl:"winquik",background:`${_}wp-content/uploads/2025/04/bg-9.png`,strategy:"Our strategy was to focus on the fun factor of Winquik. Full refresh of Winquik's App Store imagery and description. We used a combination of App Store/Play Store Ads & Social Media to acquire an active user base.",optimization:"We first optimized their store listing to incorporate various targeted keywords and provided an update to their app store imagery. This helped provide a solid brand to their store listing.",creative:"The focus of our ads was to create fun and energetic videos that focused on Winquik's key features as well as the app's celebrity guests."},{name:"tito",description:"Tito shows you what's happening around you in real-time by combining user photos & videos with content curated by local experts. It's Yelp for what's happening right now!",logo:`${_}wp-content/uploads/2025/04/icon-9.png`,images:[`${_}wp-content/uploads/2025/04/01-1.png`,`${_}wp-content/uploads/2025/04/02-1.png`,`${_}wp-content/uploads/2025/04/03-1.png`],redirectUrl:"tito",background:`${_}
58wp-content/uploads/2025/04/bg-10.png`,strategy:"Our strategy was to focus on the app's ability to provide up-to-the-minute information on events and activities happening nearby.",optimization:"We first optimized their store listing to incorporate various targeted keywords and provided an update to their app store imagery. This helped provide a solid brand to their store listing.",creative:"Our focus was to create exciting video ads that visualized just how exciting life in the city can be when you can take full advantage of Tito!"},{name:"Pulse Briefing",description:"Support Pulse Briefing\u2019s growth by scaling user acquisition through paid ads, analyzing early-stage user experience, and delivering actionable UX and CRO recommendations to increase activation and long-term retention.",logo:`${Ae}/projects/marketing/pulse_briefing/icon.jpg`,images:[`${Ae}/projects/marketing/pulse_briefing/LOGIN.png`,`${Ae}/projects/marketing/pulse_briefing/HOME.png`,`${Ae}/projects/marketing/pulse_briefing/BOOKMARKED.png`,`${Ae}/projects/marketing/pulse_briefing/LOCATIONS.png`,`${Ae}/projects/marketing/pulse_briefing/NEWS.png`,`${Ae}/projects/marketing/pulse_briefing/SOURCES.png`,`${Ae}/projects/marketing/pulse_briefing/PREFERENCES.png`],redirectUrl:"pulse-briefing",background:`${Ae}/projects/marketing/pulse_briefing/banner.jpg`,strategy:"Our strategy was to focus on the app's ability to provide up-to-the-minute information on events and activities happening nearby.",optimization:"We first optimized their store listing to incorporate various targeted keywords and provided an update to their app store imagery. This helped provide a solid brand to their store listing.",creative:"Our focus was to create exciting video ads that visualized just how exciting life in the city can be when you can take full advantage of Tito!",dynamicContent:[{type:"text",title:"Objective",content:"Support Pulse Briefing\u2019s growth by scaling user acquisition through paid ads, analyzing early-stage user experience, and delivering actionable UX and CRO recommendations to increase activation and long-term retention."},{type:"text",title:"Target Persona",content:"Based on market research, we targeted time-constrained professionals and Gen Z users looking for personalized, clutter-free news updates in under two minutes per day."},{type:"titleBullets",title:"What We Did",nestedBullets:[{subtitle:"User Acquisition:",bullets:[" Launched Facebook and Google Ads campaigns, generating 18,000 installs at a blended CPI under $0.50"]},{subtitle:"UX Analysis:",bullets:["Built in-app funnels to track onboarding, engagement, and drop-off points"]},{subtitle:"CRO Recommendations:",bullets:["Delivered UX and copy improvements to reduce friction, boost activation, and guide users through the core features"]},{subtitle:"Event Tracking:",bullets:["Structured all key in-app events for clear behavioral tracking across the customer journey"]}]},{type:"bullets",title:"Key Insights and Outcomes",content:`Identified onboarding and sign-in steps with drop-offs exceeding 50%,
59                Rewrote core onboarding copy to emphasize user benefits and drive completion,
60                Proposed visual hierarchy improvements to increase CTA clarity and reduce hesitation,
61                Recommended phased feature unlocking to support retention and app stickiness`}]},{name:"TackOn",description:"Help TackOn grow its two-sided marketplace by driving app installs from both contractors and clients, and improving conversion through UX analysis and CRO recommendations.",logo:`${Ae}/projects/marketing/tackon/icon (2).jpg`,images:[`${Ae}/projects/marketing/tackon/LOGIN.png`,`${Ae}/projects/marketing/tackon/HOME.png`,`${Ae}/projects/marketing/tackon/DESCRIPTION.png`,`${Ae}/projects/marketing/tackon/CALENDAR.png`,`${Ae}/projects/marketing/tackon/JOB ACCEPT.png`,`${Ae}/projects/marketing/tackon/JOB TYPE.png`,`${Ae}/projects/marketing/tackon/REVIEW.png`],redirectUrl:"tackOn",background:`${Ae}/projects/marketing/tackon/banner.jpg`,strategy:"Our strategy was to focus on the app's ability to provide up-to-the-minute information on events and activities happening nearby.",optimization:"We first optimized their store listing to incorporate various targeted keywords and provided an update to their app store imagery. This helped provide a solid brand to their store listing.",creative:"Our focus was to create exciting video ads that visualized just how exciting life in the city can be when you can take full advantage of Tito!",dynamicContent:[{type:"text",title:"Objective",content:"Help TackOn grow its two-sided marketplace by driving app installs from both contractors and clients, and improving conversion through UX analysis and CRO recommendations."},{type:"titleBullets",title:"Target Persona",nestedBullets:[{subtitle:"We focused on two main personas:",bullets:["Contractors looking for fast, local job opportunities","Clients needing vetted service providers with minimal effort"]}]},{type:"titleBullets",title:"What We Did",nestedBullets:[{subtitle:"User Acquisition:",bullets:["1,000 installs via Facebook","1,200 installs via Google Ads","With a blended CPI well within performance benchmarks"]},{subtitle:"UX and Funnel Audit",bullets:["Conducted a full UX walkthrough and funnel review, focusing on onboarding, job posting, and profile completion flows."]},{subtitle:"CRO Recommendations:",bullets:["Clearer CTA hierarchy to guide job posting","Social login implementation (Google, Apple) to reduce signup friction","Progress bars, smart defaults, and guided tooltips to improve task completion","Microcopy and trust indicators to reassure and onboard users more effectively"]}]},{type:"bullets",title:"Key Insights and Outcomes",content:`Major drop-offs were identified in the welcome, login, and job posting flows, primarily due to unclear paths and friction-heavy screens,
62                Suggested structural changes to simplify user decision-making post-login and reduce overwhelm,
63                Highlighted missing event tracking that limited behavioral insight \u2014 emphasized the need for full event implementation to support ongoing optimization,
64                Provided a clear roadmap for improving user engagement and activation across both user types`}]},{name:"MeetAmore",description:"Support the launch of MeetAmore\u2019s MVP, a self-discovery\u2013driven dating app, by driving high-volume installs at low cost. The goal was to gather enough user data to inform UX improvements and define features for the next version of the app.",logo:`${Ae}/projects/marketing/meetamore/icon.jpg`,images:[`${Ae}/projects/marketing/meetamore/CHOOSE GUIDE.png`,`${Ae}/projects/marketing/meetamore/GUIDE.png`,`${Ae}/projects/marketing/meetamore/HOME.png`,`${Ae}/projects/marketing/tackon/CALENDAR.png`,`${Ae}/projects/marketing/meetamore/MY PROFILE.png`],redirectUrl:"meet-amore",background:`${Ae}/projects/marketing/meetamore/banner.jpg`,strategy:"Our strategy was to focus on the app's ability to provide up-to-the-minute information on events and activities happening nearby.",optimization:"We first optimized their store listing to incorporate various targeted keywords and provided an update to their app store imagery. This helped provide a solid brand to their store listing.",creative:"Our focus was to create exciting video ads that visualized just how exciting life in the city can be when you can take full advantage of Tito!",dynamicContent:[{type:"text",title:"Objective",content:"Support the launch of MeetAmore\u2019s MVP, a self-discovery\u2013driven dating app, by driving high-volume installs at low cost. The goal was to gather enough user data to inform UX improvements and define features for the next version of the app."},{type:"text",title:"Target Persona",content:"The app targeted Gen Z and millennial users looking for emotional compatibility, self
64-reflection, and non-traditional dating paths. Emotional growth and compatibility were positioned as core app values."},{type:"titleBullets",title:"What We Did",nestedBullets:[{subtitle:"User Acquisition",bullets:["3,100 installs","At a cost per install (CPI) of $0.17 Campaigns were optimized to bring in a broad early-stage user base for testing behavior and drop-off points."]},{subtitle:"UX and Funnel Audit",bullets:["Conducted a full audit of the onboarding experience, profile setup, and interaction flows. Reviewed friction points and emotional barriers to engagement."]},{subtitle:"Event Tracking Framework",bullets:["Onboarding (e.g., first open, sign-in, Google/Apple login, tutorial completion)","User engagement (e.g., profile actions, feature access, messaging)","Monetization (e.g., shop views, subscription clicks, gem purchases)"]},{subtitle:"Recommendations for Future Versions",bullets:["Refined onboarding sequence to reduce cognitive load and early drop-offs","Suggested more intuitive visual hierarchy and progress indicators","Highlighted behavioral patterns tied to subscription intent and core feature use","Provided roadmap for future feature prioritization based on tracked usage"]}]},{type:"bullets",title:"Key Insights and Outcomes",content:`Successfully gathered behavioral data from over 3,000 users during MVP phase,
65                Maintained a low CPI of $0.17, maximizing reach and learning per dollar,
66                Identified key friction points and engagement triggers to shape next app version,
67                Delivered a structured analytics foundation to guide product and design decisions`}]}];var Ku=(()=>{class e{http;projects=VC;constructor(t){this.http=t}getProjects(){return U(this.projects)}getProjectIds(){return this.projects.map(t=>t.redirectUrl)}getProjectByName(t){return U(this.projects.find(i=>i.name.toLowerCase()===t.toLowerCase()))}getProjectByUri(t){return U(this.projects.find(i=>i.redirectUrl.toLowerCase()===t.toLowerCase()))}static \u0275fac=function(i){return new(i||e)($(Si))};static \u0275prov=A({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();var ZP=e=>({"background-image":e});function QP(e,n){if(e&1){let t=he();l(0,"div",4)(1,"div",5),v(2,"img",6),l(3,"span",7),p(4),u(),l(5,"span",8),p(6),u(),l(7,"app-button",9),S("clicked",function(){let r=W(t).$implicit,o=E();return q(o.navigateTo(r.redirectUrl))}),u()()()}if(e&2){let t=n.$implicit;b("ngStyle",kn(4,ZP,"linear-gradient(180deg, rgba(20,21,60,0) 0%, rgba(27,17,65,0.4) 21.15%, rgba(20,21,60,0.6) 42.79%, #14153C 100%), url("+t.background+")")),f(2),b("src",t.logo,pe),f(2),O(t.name),f(2),O(t.description)}}var UC=(()=>{class e{router;mktProjectsService;projects$;constructor(t,i){this.router=t,this.mktProjectsService=i}ngOnInit(){this.projects$=this.mktProjectsService.getProjects()}navigateTo(t){this.router.navigate(["marketing",t])}static \u0275fac=function(i){return new(i||e)(D(Se),D(Ku))};static \u0275cmp=C({type:e,selectors:[["app-projects"]],decls:9,vars:2,consts:[[1,"flex","flex-col","justify-center","items-center","pt-[100px]","z-10"],[1,"font-outfit","font-semibold","text-3xl","sm:text-4xl"],[1,"gradient-text"],[1,"mt-[70px]","p-4","sm:p-0","grid","grid-cols-1","[@media(min-width:1155px)]:grid-cols-2","gap-6"],[1,"rounded-[36px]","opacity-100","bg-cover","bg-center","sm:w-[550px]","h-[450px]",3,"ngStyle"],[1,"flex","flex-col","pl-[32px]","pt-[50px]","pb-[35px]","h-full"],["alt","",1,"w-[112px]","h-[112px]","rounded-[20px]",3,"src"],[1,"gradient-text","font-semibold","font-outfit","text-3xl","mb-[8px]"],[1,"mb-[20px]","flex-1","text-base","w-[95%]","sm:text-lg","sm:w-[85%]"],["buttonText","read more",3,"clicked"]],template:function(i,r){i&1&&(l(0,"div",0)(1,"p",1),p(2,"know some of "),l(3,"span",2),p(4,"our projects"),u()(),l(5,"div",3),H(6,QP,8,6,"div",4,te),vr(8,"async"),u()()),i&2&&(f(6),z(yr(8,0,r.projects$)))},dependencies:[K,Cr,re,xr],encapsulation:2})}return e})();var KP=["*"],en=(()=>{class e{static \u0275fac=function(i){return new(i||e)};static \u0275cmp=C({type:e,selectors:[["app-info-card"]],ngContentSelectors:KP,decls:3,vars:0,consts:[[1,"w-full","flex","justify-center","px-2","sm:px-0"],[1,"w-full","backdrop-blur-[81.54845428466797px]","bg-white/10","rounded-[36px]","z-10","max-w-[1050px]","py-6","sm:py-[114px]"]],template:function(i,r){i&1&&(ei(),F(0,"div",0)(1,"div",1),ti(2),L()())},encapsulation:2})}return e})();var $C=(()=>{class e{file="marketing-case-studies";heroTitleHtml='<span class="gradient-text">marketing</span><br>case<br><span class="gradient-text">studies</span>';calendly=y(Re);seo=y(se);scheduleCall(){this.calendly.openPopup().catch(()=>{})}ngOnInit(){this.seo.apply({title:"Marketing Case Studies",description:"Explore SEM Nexus marketing case studies demonstrating ASO, paid UA, influencer performance, and ROI gains across key app categories.",canonical:"/marketing-case-studies/",image:"https://semnexus.com/images/marketing-case-studies/backgrounds/marketing-case-studies.avif",imageAlt:"SEM Nexus app marketing case studies",type:"website"}),this.seo.setBreadcrumbs([{name:"Home",url:"/"},{name:"Marketing Case Studies"}])}static \u0275fac=function(i){return new(i||e)};static \u0275cmp=C({type:e,selectors:[["app-case-studies"]],decls:13,vars:2,consts:[["backgroundImage","images/sh
67ared/backgrounds/background-3.avif"],[1,"sr-only"],["videoSrc","/video/marketing-case-studies.mp4","align","left","subcopy","Real results from real apps \u2014 see how our ASO, user acquisition, and retention work moved downloads, rankings, and revenue.","text","case studies",3,"backgroundImage","titleHtml"],["hero-cta","","buttonText","get in touch now!",3,"clicked"],[1,"mt-[150px]"],[1,"flex","justify-center"],["src","images/landing/why-semnexus.svg","alt","why semnexus",1,"h-[45px]","sm:h-[50px]"],[1,"mt-[24px]","px-4","sm:px-[10%]","text-center","text-sm","sm:text-base"]],template:function(i,r){i&1&&(l(0,"app-background",0)(1,"h1",1),p(2,"Marketing Case Studies \u2014 ASO, User Acquisition, and Retention Outcomes"),u(),l(3,"app-hero-section",2)(4,"app-button",3),S("clicked",function(){return r.scheduleCall()}),u()(),v(5,"app-projects"),l(6,"div",4)(7,"app-info-card")(8,"div",5),v(9,"img",6),u(),l(10,"div",7),p(11," At Semnexus, we help your app achieve high rankings, increase downloads, and maximize ROI. Our comprehensive app marketing services cover App Store Optimization, competitor analysis, ad copy, and growth strategies tailored for your success. Whether you're launching a new app or scaling an existing one, we deliver high-impact marketing without the high costs. Let's make your app go viral! "),u()()(),v(12,"app-connect"),u()),i&2&&(f(3),b("backgroundImage",`images/${r.file}/backgrounds/${r.file}.avif`)("titleHtml",r.heroTitleHtml))},dependencies:[fe,Te,ye,UC,en,re],encapsulation:2})}return e})();var HC=(()=>{class e{static \u0275fac=function(i){return new(i||e)};static \u0275cmp=C({type:e,selectors:[["app-process"]],decls:36,vars:0,consts:[[1,"flex","flex-col","justify-center","items-center","pt-[100px]","z-10"],[1,"font-outfit","text-3xl","font-semibold","mb-6"],[1,"px-4","sm:px-[20%]","text-center","text-sm","sm:text-base","relative","z-10"],[1,"mt-[64px]","px-1","sm:px-[10%]","w-full","flex","custom-col-display"],[1,"flex","items-center","justify-center","flex-col","w-[351px]","mb-8"],[1,"flex","items-center","justify-center","w-full"],["src","/images/shared/steps/01.png","alt","",1,"h-[130px]"],[1,"flex","flex-col","mt-8","items-center","justify-center","w-full"],[1,"font-outfit","text-2xl","font-semibold","mb-2","text-center","w-full"],[1,"font-inter","text-sm","sm:text-base","text-center"],["src","/images/shared/steps/02.png","alt","",1,"w-[191px]"],["src","/images/shared/steps/03.png","alt","",1,"w-[191px]"]],template:function(i,r){i&1&&(F(0,"div",0)(1,"div",1),p(2," our process "),L(),F(3,"div",2),p(4," SEM Nexus retains an incredible group of social media influencers with large, dedicated followings. Learn how SEM Nexus delivers outstanding influencer marketing with our established database, specialized bespoke searches, and full end-to-end campaign management. "),L(),F(5,"div",3)(6,"div",4)(7,"div",5),Fe(8,"img",6),L(),F(9,"div",7)(10,"div",8),p(11," established"),Fe(12,"br"),p(13,"database "),L(),F(14,"div",9),p(15," We have thousands of influencers for any brand and budget. If not, we'll find the right one just for you. "),L()()(),F(16,"div",4)(17,"div",5),Fe(18,"img",10),L(),F(19,"div",7)(20,"div",8),p(21," bespoke"),Fe(22,"br"),p(23,"searches "),L(),F(24,"div",9),p(25," We'll search across all platforms with a strategy tailored to your needs, delivering top creators until we find the perfect fit. "),L()()(),F(26,"div",4)(27,"div",5),Fe(28,"img",11),L(),F(29,"div",7)(30,"div",8),p(31," end-to-end campaign"),Fe(32,"br"),p(33,"management "),L(),F(34,"div",9),p(35," You pick the influencer, we manage everything else \u2014 from contracts to content and payments \u2014 for a smooth, impactful campaign. "),L()()()()())},styles:[`.custom-col-display[_ngcontent-%COMP%]{flex-direction:column;align-items:center}@media (min-width: 1375px){.custom-col-display[_ngcontent-%COMP%]{flex-direction:row;align-items:flex-start;justify-content:space-between}}
68/*# sourceMappingURL=process-WQ6TNWWN.css.map */`]})}return e})();var zC=(()=>{class e{file="influencer-process";router=y(Se);seo=y(se);ngOnInit(){this.seo.apply({title:"Influencer Marketing",description:"SEM Nexus manages creator sourcing, briefs, content, and tracking to run influencer campaigns that scale installs and conversions for mobile apps.",canonical:"/influencer-process/",image:"https://semnexus.com/images/influencer-process/backgrounds/influencer-process.avif",imageAlt:"Influencer marketing services by SEM Nexus",type:"website"}),this.seo.setBreadcrumbs([{name:"Home",url:"/"},{name:"Influencer Marketing"}]),this.seo.setJsonLd("service",{"@context":"https://schema.org","@type":"Service","@id":"https://semnexus.com/influencer-process/#service",name:"Influencer Marketing",serviceType:"Creator sourcing, campaign management, and performance tracking",description:"Influencer sourcing, campaign management, and performance tracking for mobile app growth.",provider:{"@id":"https://semnexus.com/#organization"},areaServed:{"@type":"Country",name:"United States"},url:"https://semnexus.com/influencer-process/"})}goToCaseStudies(){this.router.navigate(["marketing-case-studies"])}static \u0275fac=function(i){return new(i||e)};static \u0275cmp=C({type:e,selectors:[["app-influencer-process"]],decls:20,vars:2,consts:[["backgroundImage","images/sh
68ared/backgrounds/background-1.avif"],[1,"sr-only"],["height","520px","paddingTop","300px","opacity",".8","text","service",3,"backgroundImage","title"],["backgroundImage","images/shared/backgrounds/background-3.avif"],[1,"pt-[200px]"],[1,"flex","flex-col","justify-center","items-center"],[1,"font-outfit","text-xl","sm:text-3xl","font-semibold","mb-2","sm:mb-6"],[1,"gradient-text"],[1,"font-inter","mb-6","sm:mb-[21px]","text-center","text-sm","sm:text-base"],["buttonText","see all case studies",3,"clicked"]],template:function(i,r){i&1&&(l(0,"app-background",0)(1,"h1",1),p(2,"Influencer Marketing for Mobile Apps \u2014 Creator Sourcing, Campaigns, and Tracking"),u(),v(3,"app-hero-section",2)(4,"app-process"),u(),l(5,"app-background",3)(6,"div",4)(7,"app-info-card")(8,"div",5)(9,"div",6),p(10," marketing "),l(11,"span",7),p(12,"case studies"),u()(),l(13,"div",8),p(14," See the "),l(15,"b"),p(16,"SEM Nexus"),u(),p(17," process in action. Join us and take a deep dive into our best marketing work. "),u(),l(18,"app-button",9),S("clicked",function(){return r.goToCaseStudies()}),u()()()(),v(19,"app-connect"),u()),i&2&&(f(3),b("backgroundImage",`images/${r.file}/backgrounds/${r.file}.avif`)("title",`images/${r.file}/${r.file}.svg`))},dependencies:[fe,Te,en,re,ye,HC],encapsulation:2})}return e})();function JP(e,n){if(e&1&&(l(0,"p"),p(1),u()),e&2){let t=n.$implicit;f(),O(t)}}function XP(e,n){if(e&1&&(l(0,"div",4),H(1,JP,2,1,"p",null,te),u()),e&2){let t=E();f(),z(t.bodyLead)}}function e2(e,n){if(e&1&&(l(0,"li",9)(1,"span",10),p(2),u(),l(3,"span",11),p(4),u()()),e&2){let t=n.$implicit,i=n.$index;xt("--reveal-delay",i*150+"ms"),f(2),O(t.term),f(2),O(t.detail)}}function t2(e,n){if(e&1&&(l(0,"ul",6),H(1,e2,5,4,"li",8,te),u()),e&2){let t=E();f(),z(t.section.steps)}}function n2(e,n){if(e&1&&(l(0,"li",13)(1,"span",10),p(2),u()()),e&2){let t=n.$implicit,i=n.$index;xt("--reveal-delay",i*150+"ms"),f(2),O(t)}}function i2(e,n){if(e&1&&(l(0,"ul",6),H(1,n2,3,3,"li",12,te),u()),e&2){let t=E();f(),z(t.section.bullets)}}function r2(e,n){if(e&1&&(l(0,"p"),p(1),u()),e&2){let t=n.$implicit;f(),O(t)}}function o2(e,n){if(e&1&&(l(0,"div",7),H(1,r2,2,1,"p",null,te),u()),e&2){let t=E();f(),z(t.section.outro)}}var Ho=(()=>{class e{section;get bodyLead(){return(this.section.lead??[]).filter(t=>!/:\s*$/.test(t.trim()))}get eyebrow(){return(this.section.lead??[]).find(t=>/:\s*$/.test(t.trim()))??"our process includes:"}static \u0275fac=function(i){return new(i||e)};static \u0275cmp=C({type:e,selectors:[["app-steps-section"]],inputs:{section:"section"},decls:10,vars:5,consts:[["appReveal","",1,"ss-section","w-full","px-4","sm:px-8"],[1,"ss-grid","mx-auto","grid","w-full","max-w-[1200px]","gap-10","lg:grid-cols-2","lg:gap-16"],[1,"ss-left","r-left","flex","flex-col"],[1,"ss-heading","font-outfit","font-bold",3,"innerHTML"],[1,"ss-prose","font-inter","space-y-4","mt-6"],[1,"ss-eyebrow","font-outfit","font-bold","mt-8"],[1,"ss-steps","flex","flex-col","gap-4"],[1,"ss-outro","font-inter","space-y-4","mt-12","mx-auto","max-w-[820px]","text-center"],[1,"ss-card","r-drop",3,"--reveal-delay"],[1,"ss-card","r-drop"],[1,"ss-term","font-outfit","font-semibold","gradient-text"],[1,"ss-detail","font-inter"],[1,"ss-card","ss-card-label","r-drop",3,"--reveal-delay"],[1,"ss-card","ss-card-label","r-drop"]],template:function(i,r){i&1&&(l(0,"section",0)(1,"div",1)(2,"div",2),v(3,"h2",3),j(4,XP,3,0,"div",4),l(5,"p",5),p(6),u()(),j(7,t2,3,0,"ul",6)(8,i2,3,0,"ul",6),u(),j(9,o2,3,0,"div",7),u()),i&2&&(f(3),b("innerHTML",r.section.headingHtml,Ve),f(),V(r.bodyLead.length?4:-1),f(2),O(r.eyebrow),f(),V(r.section.steps!=null&&r.section.steps.length?7:r.section.bullets!=null&&r.section.bullets.length?8:-1),f(2),V(r.section.outro!=null&&r.section.outro.length?9:-1))},dependencies:[rt],styles:[`@charset "UTF-8";.ss-section[_ngcontent-%COMP%]{padding-top:clamp(48px,7vw,96px);padding-bottom:clamp(48px,7vw,96px)}.ss-grid[_ngcontent-%COMP%]{align-items:start}.ss-heading[_ngcontent-%COMP%]{font-size:clamp(2rem,4.5vw,3.4rem);line-height:1.05;letter-spacing:-.01em;color:#fff;text-transform:lowercase}.ss-prose[_ngcontent-%COMP%]{color:var(--text-dim, #b3a8c9);font-size:clamp(.95rem,1.5vw,1.0625rem);line-height:1.65;max-width:52ch}.ss-eyebrow[_ngcontent-%COMP%]{color:#fff;text-transform:lowercase;font-size:clamp(1.05rem,2vw,1.3rem)}.ss-card[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem;padding:1.1rem 1.4rem;border-radius:18px;background:#ffffff0d;border:1px solid rgba(255,255,255,.12);backdrop-filter:blur(40px);-webkit-backdrop-filter:blur(40px)}.ss-card-label[_ngcontent-%COMP%]{padding-top:1.25rem;padding-bottom:1.25rem}.ss-term[_ngcontent-%COMP%]{font-size:clamp(1.05rem,1.6vw,1.3rem);line-height:1.1;text-transform:lowercase}.ss-outro[_ngcontent-%COMP%]{color:var(--text-dim, #b3a8c9);font-size:clamp(.95rem,1.5vw,1.0625rem);line-height:1.65}.ss-detail[_ngcontent-%COMP%]{color:var(--text-dim, #b3a8c9);font-size:clamp(.85rem,1.3vw,.95rem);line-height:1.5}@media (prefers-reduced-motion: no-preference){.ss-card[_ngcontent-%COMP%]{transition:transform .3s var(--ease, cubic-bezier(.16, 1, .3, 1)),border-color .3s,background .3s}.ss-card[_ngcontent-%COMP%]:hover{transform:translateY(-3px);border-color:#ffffff42;background:#ffffff17}}
69/*# sourceMappingURL=steps-section-JH7I4LF2.css.map */`]})}return e})();function s2(e,n){if(e&1&&(l(0,"p"),p(1),u()),e&2){let t=n.$implicit;f(),O(t)}}function a2(e,n){if(e&1&&(l(0,"div",6),H(1,s2,2,1,"p",null,te),u()),e&2){let t=E();f(),z(t.paragraphs)}}var zo=(()=>{class e{section;icon;iconSide="left";get paragraphs(){let t=this.section.lead??[],i=this.section.outro??[];return[...t,...i].filter(r=>!/^\s*services include/i.test(r))}static \u0275fac=function(i){return new(i||e)};static \u0275cmp=C({type:e,selectors:[["app-icon-section"]],inputs:{section:"section",icon:"icon",iconSide:"iconSide"},decls:7,vars:13,consts:[["appReveal","",1,"is-section","w-full","px-4","sm:px-8"],[1,"is-grid","mx-auto","grid","w-full","max-w-[1200px]","items-center","gap-8","lg:grid-cols-2","lg:gap-16"],[1,"is-icon-wrap","flex","justify-center"],["alt","","aria-hidden","true","loading","lazy",1,"is-icon",3,"src"],[1,"is-text"],[1,"is-heading","font-outfit","font-bold",3,"innerHTML"],[1,"is-prose","font-inter","space-y-4","mt-5"]],template:function(i,r){i&1&&(l(0,"section",0)(1,"div",1)(2,"div",2),v(3,"img",3),u(),l(4,"div",4),v(5,"h2",5),j(6,a2,3,0,"div",6),u()()()),i&2&&(ce("is-icon-right",r.iconSide==="right"),f(2),ce("r-left",r.iconSide==="left")("r-right",r.iconSide==="right"),f(),b("src",r.icon,pe),f(),ce("r-right",r.iconSide==="left")("r-left",r.iconSide==="right"),f(),b("innerHTML",r.section.headingHtml,Ve),f(),V(r.paragraphs.length?6:-1))},dependencies:[rt],styles:[`@charset "UTF-8";.is-section[_ngcontent-%COMP%]{padding-top:clamp(48px,7vw,96px);padding-bottom:clamp(48px,7vw,96px)}.is-icon[_ngcontent-%COMP%]{width:clamp(150px,22vw,250px);height:auto;object-fit:contain;filter:drop-shadow(0 20px 40px rgba(0,0,0,.5))}.is-heading[_ngcontent-%COMP%]{font-size:clamp(1.75rem,4vw,3rem);line-height:1.08;letter-spacing:-.01em;color:#fff;text-transform:lowercase}.is-prose[_ngcontent-%COMP%]{color:var(--text-dim, #b3a8c9);font-size:clamp(.95rem,1.5vw,1.0625rem);line-height:1.65;max-width:60ch}@media (min-width: 1024px){.is-section.is-icon-right[_ngcontent-%COMP%]   .is-icon-wrap[_ngcontent-%COMP%]{order:2}.is-section.is-icon-right[_ngcontent-%COMP%]   .is-text[_ngcontent-%COMP%]{order:1;text-align:right}.is-section.is-icon-right[_ngcontent-%COMP%]   .is-prose[_ngcontent-%COMP%]{margin-left:auto}}@media (prefers-reduced-motion: no-preference){.is-icon[_ngcontent-%COMP%]{transition:transform .4s var(--ease, cubic-bezier(.16, 1, .3, 1))}.is-section[_ngcontent-%COMP%]:hover   .is-icon[_ngcontent-%COMP%]{transform:translateY(-6px) scale(1.03)}}
70/*# sourceMappingURL=icon-section-PKOAMWH3.css.map */`]})}return e})();var Eg=[{headingHtml:'full-service<br>mobile app<br><span class="gradient-text">marketing</span><br><span class="gradient-text">agency</span>',lead:["SemNexus is a full-service mobile app marketing agency helping startups, SaaS companies, and established brands acquire users, improve retention, and increase revenue. Our mobile app marketing services combine app store optimization (ASO), user acquisition, mobile advertising, influencer marketing, conversion rate optimization, and lifecycle marketing into a unified growth strategy.","Unlike traditional digital marketing agencies, our team specializes exclusively in mobile applications. We understand the unique challenges of app growth, including App Store ranking factors, Google Play visibility, subscription monetization, user retention, customer acquisition costs, and attribution tracking."],outro:["Whether you are launching a new app or scaling an established product, our app marketing services are designed to increase downloads, improve engagement, and maximize lifetime value."]},{headingHtml:'<span class="gradient-text">app store</span><br><span class="gradient-text">optimization</span><br>services',lead:["App Store Optimization (ASO) is one of the most effective ways to increase organic downloads and reduce customer acquisition costs. As a leading ASO agency, SemNexus helps mobile apps improve visibility across both the Apple App Store and Google Play Store.","Our app store optimization services include:"],bullets:["Keyword research and targeting","Metadata optimization","App title optimization","Subtitle and short description optimization","App category analysis","Competitor ASO research","Screenshot optimization","App preview video optimization","Conversion rate optimization","App Store A/B testing"],outro:["By improving keyword rankings and increasing App Store conversion rates, ASO creates sustainable organic growth that compounds over time. Our team continuously monitors ranking performance, search visibility, and download trends to i
70dentify new opportunities for growth."]}],Ju=[{headingHtml:'mobile app<br><span class="gradient-text">user acquisition</span>',lead:["Successful apps require more than visibility. They require a predictable user acquisition engine.","Our mobile app user acquisition services leverage paid advertising channels including Apple Search Ads, Google Ads, Meta Ads, TikTok Ads, Reddit Ads, influencer campaigns, and strategic partnerships to acquire high-intent users.","Rather than optimizing solely for installs, we focus on the metrics that matter most:"],bullets:["Customer acquisition cost (CAC)","Return on ad spend (ROAS)","Subscriber growth","Revenue generation","Retention rates","Lifetime value (LTV)"],outro:["This revenue-first approach allows clients to scale their mobile applications while maintaining profitability."]},{headingHtml:'mobile app<br>advertising <span class="gradient-text">campaign</span><br><span class="gradient-text">management</span>',lead:["Running successful mobile advertising campaigns requires more than launching ads. It requires constant testing, optimization, and data analysis.","Our mobile app advertising team manages campaigns across major advertising platforms, including:"],bullets:["Apple Search Ads","Google App Campaigns","Facebook Ads","Instagram Ads","TikTok Ads","Reddit Ads","YouTube Ads"],outro:["We continuously test creative assets, audience segments, bidding strategies, and conversion funnels to maximize campaign performance. Through rigorous experimentation, we identify the messaging and creative concepts that drive the highest-quality installs and strongest long-term user engagement."]},{headingHtml:'<span class="gradient-text">influencer marketing</span> for mobile apps',lead:["Influencer marketing has become one of the most effective app promotion strategies available. By partnering with creators who have highly engaged audiences, apps can generate trust, social proof, and organic awareness at scale.","SemNexus identifies influencers based on audience quality, demographic alignment, engagement metrics, and historical campaign performance. We manage outreach, negotiations, content strategy, tracking, and reporting to ensure every influencer partnership contributes to measurable business outcomes."],outro:["Influencer marketing campaigns can be combined with paid advertising efforts to amplify reach and create additional user-generated content for future campaigns."]}],Xu=[{headingHtml:'app store<br><span class="gradient-text">conversion rate</span><br><span class="gradient-text">optimization</span>',lead:["Generating App Store traffic is only part of the equation. Converting visitors into users is equally important.","Our conversion rate optimization process focuses on improving every element of your App Store listing, including:"],bullets:["App icons","Screenshots","Feature graphics","Preview videos","Value propositions","Social proof","Messaging hierarchy"],outro:["Even small increases in App Store conversion rates can significantly reduce acquisition costs while increasing overall download volume.","By combining App Store Optimization with conversion rate optimization, we help clients maximize the effectiveness of both organic and paid traffic sources."]},{headingHtml:'mobile app<br><span class="gradient-text">retention &amp;</span><br><span class="gradient-text">growth</span><br>marketing',lead:["Long-term success depends on retention.","Acquiring users is only the beginning. Our growth marketing team works to improve onboarding experiences, increase engagement, reduce churn, and maximize user lifetime value.","We help clients implement:"],bullets:["Push notification strategies","Email marketing automation","User segmentation","Re-engagement campaigns","Subscription optimization","In-app messaging","Behavioral analytics"],outro:["Improving retention often generates larger revenue gains than acquiring additional users, making lifecycle marketing an essential component of sustainable app growth."]},{headingHtml:'why businesses choose <span class="gradient-text">semnexus</span> as their mobile app marketing agency',lead:["Businesses choose SemNexus because we focus exclusively on mobile applications. Our team combines expertise in app store optimization, mobile app advertising, user acquisition, conversion rate optimization, influencer marketing, and retention marketing to create scalable growth systems for mobile apps.","Whether your goal is 
70increasing App Store rankings, acquiring new users, improving subscription revenue, or scaling advertising campaigns, our mobile app marketing services are designed to support every stage of the app growth lifecycle."],outro:["From startups preparing for launch to established applications looking to accelerate growth, SemNexus provides the strategic guidance and execution necessary to compete in today\u2019s increasingly competitive app marketplace."]}];var c2=[{q:"What is included in your mobile app marketing services?",a:"Our mobile app marketing services combine app store optimization (ASO), user acquisition, mobile advertising campaign management, influencer marketing, App Store conversion rate optimization, and retention and lifecycle marketing into a single, unified growth strategy for iOS and Android apps."},{q:"What is App Store Optimization (ASO) and why does it matter?",a:"ASO is the process of improving an app\u2019s visibility and conversion rate in the Apple App Store and Google Play. It covers keyword research, metadata and title optimization, screenshots, preview videos, and A/B testing. Strong ASO increases organic downloads and lowers customer acquisition costs because the growth compounds over time."},{q:"Which advertising platforms do you manage for app campaigns?",a:"We manage paid user acquisition across Apple Search Ads, Google App Campaigns, Facebook and Instagram Ads, TikTok Ads, Reddit Ads, and YouTube Ads. We continuously test creative, audiences, bidding strategies, and conversion funnels to drive the highest-quality installs."},{q:"How do you lower customer acquisition cost (CAC) and improve ROAS?",a:"We take a revenue-first approach: rather than optimizing only for installs, we optimize toward CAC, return on ad spend (ROAS), subscriber growth, retention, and lifetime value (LTV). Combining ASO with App Store conversion rate optimization also reduces the cost of every paid and organic visitor."},{q:"How do you improve app retention and lifetime value?",a:"Our growth marketing team improves onboarding, engagement, and churn through push notification strategies, email automation, user segmentation, re-engagement campaigns, subscription optimization, in-app messaging, and behavioral analytics. Improving retention often generates larger revenue gains than acquiring additional users."}],GC=(()=>{class e{file="marketing-services";heroTitleHtml='<span class="gradient-text">mobile app</span><br>marketing<br><span class="gradient-text">services</span>';introA=Eg[0];asoSection=Eg[1];userAcquisitionSection=Ju[0];advertisingSection=Ju[1];adCards=[{icon:"apple-search-ads.png",label:"apple search ads"},{icon:"google-app-campaigns.png",label:"google app campaigns"},{icon:"facebook-ads.png",label:"facebook ads"},{icon:"instagram-ads.png",label:"instagram ads"},{icon:"tiktok-ads.png",label:"tiktok ads"},{icon:"reddit-ads.png",label:"reddit ads"},{icon:"youtube-ads.png",label:"youtube ads"}];influencerSection=Ju[2];croSection=Xu[0];retentionSection=Xu[1];whyChooseSection=Xu[2];calendly=y(Re);seo=y(se);ngOnInit(){this.seo.apply({title:"Mobile App Marketing Services",description:"Full-service mobile app marketing agency: app store optimization (ASO), user acquisition, mobile advertising, influencer marketing, App Store conversion rate optimization, and retention marketing built to grow downloads, engagement, and revenue.",canonical:"/mobile-app-marketing-services/",image:"https://semnexus.com/images/marketing-services/backgrounds/marketing-services.avif",imageAlt:"Mobile app marketing services by SEM Nexus",type:"website"}),this.seo.setBreadcrumbs([{name:"Home",url:"/"},{name:"App Marketing"}]),this.seo.setJsonLd("service",{"@context":"https://schema.org","@type":"Service","@id":"https://semnexus.com/mobile-app-marketing-services/#service",name:"Mobile App Marketing",serviceType:"ASO, user acquisition, mobile advertising, influencer, CRO, and retention marketing",description:"Full-service mobile app marketing: App Store Optimization, paid user acquisition across social/search/display, mobile advertising campaign management, influencer marketing, App Store conversion rate optimization, and retention/lifecycle marketing for iOS and Android apps.",provider:{"@id":"https://semnexus.com/#organization"},areaServed:{"@type":"Country",name:"United States"},url:"https://semnexus.com/mobile-app-marketing-services/",offers:{"@type":"OfferCatalog",name:"Mobile app marketing services",itemListElement:[{"@type":"Offer",name:"App Store Optimization (ASO)",description:"Keyword research, metadata, title, screenshot, and preview video optimization plus App Store A/B testing across the Apple App Store and Google Play."}
70,{"@type":"Offer",name:"Mobile App User Acquisition",description:"Paid user acquisition across Apple Search Ads, Google Ads, Meta, TikTok, and Reddit optimized for CAC, ROAS, and lifetime value."},{"@type":"Offer",name:"Mobile App Advertising Campaign Management",description:"Creative testing, audience segmentation, bidding, and funnel optimization across Apple Search Ads, Google App Campaigns, Facebook, Instagram, TikTok, Reddit, and YouTube."},{"@type":"Offer",name:"Influencer Marketing for Mobile Apps",description:"Creator identification, outreach, negotiation, content strategy, tracking, and reporting to drive trust, social proof, and organic awareness."},{"@type":"Offer",name:"App Store Conversion Rate Optimization",description:"Optimization of app icons, screenshots, feature graphics, preview videos, value propositions, and messaging to lift App Store conversion rates."},{"@type":"Offer",name:"Retention & Growth Marketing",description:"Onboarding, push notifications, email automation, segmentation, re-engagement, subscription optimization, and behavioral analytics to maximize LTV."}]}}),this.seo.setJsonLd("faq",{"@context":"https://schema.org","@type":"FAQPage","@id":"https://semnexus.com/mobile-app-marketing-services/#faq",mainEntity:c2.map(t=>({"@type":"Question",name:t.q,acceptedAnswer:{"@type":"Answer",text:t.a}}))})}scheduleCall(){this.calendly.openPopup().catch(()=>{})}static \u0275fac=function(i){return new(i||e)};static \u0275cmp=C({type:e,selectors:[["app-marketing-services"]],decls:36,vars:11,consts:[["backgroundImage","images/shared/backgrounds/background-1.avif"],[1,"sr-only"],["videoSrc","/video/marketing-services.mp4","align","left","subcopy","From strategy to scale, we grow your app's downloads, retention, and revenue with ASO, paid user acquisition, influencer marketing, and conversion optimization.","text","service",3,"backgroundImage","titleHtml"],["hero-cta","","buttonText","get in touch now!",3,"clicked"],[3,"section"],["appReveal","",1,"section-divider"],["marker","check",3,"section"],["backgroundImage","images/shared/backgrounds/background-2.avif"],[1,"w-full","pt-[40px]","mb-[60px]","px-4","sm:px-[10%]"],[1,"glass-cta-wrap","max-w-[900px]","mx-auto"],["appReveal","","appSpotlight","",1,"glass-cta-card","r-rise","rounded-[28px]","p-8","sm:p-12","flex","flex-col","items-center","text-center"],[1,"font-inter","mb-7","text-sm","sm:text-base","max-w-[640px]"],[1,"gradient-text"],["buttonText","get in touch now!",3,"clicked"],[3,"section","cards"],["iconSide","left","icon","images/marketing-services/platform/influencer.png",3,"section"],["backgroundImage","images/shared/backgrounds/background-3.avif"],["layout","center",3,"section"],[1,"h-[60px]"]],template:function(i,r){i&1&&(l(0,"app-background",0)(1,"h1",1),p(2,"App Marketing Services \u2014 ASO, User Acquisition, Influencer, and Retention"),u(),l(3,"app-hero-section",2)(4,"app-button",3),S("clicked",function(){return r.scheduleCall()}),u()(),v(5,"app-lead-section",4)(6,"hr",5)(7,"app-tag-services",6),u(
70),l(8,"app-background",7)(9,"div",8)(10,"div",9)(11,"div",10)(12,"div",11),p(13," SEM Nexus is an award-winning agency specializing in building and marketing mobile apps. They offer a comprehensive suite of services designed to help startups and established businesses succeed in the mobile app industry."),v(14,"br")(15,"br"),p(16," Increase App Downloads, Improve User Retention & Drive Revenue! Contact us today for a "),l(17,"span",12),p(18,"FREE mobile app marketing consultation"),u(),p(19,". "),u(),l(20,"app-button",13),S("clicked",function(){return r.scheduleCall()}),u()()()(),v(21,"hr",5)(22,"app-tag-services",6)(23,"hr",5)(24,"app-dev-services",14)(25,"hr",5)(26,"app-icon-section",15),u(),l(27,"app-background",16),v(28,"hr",5)(29,"app-tag-services",6)(30,"hr",5)(31,"app-steps-section",4)(32,"hr",5)(33,"app-lead-section",17)(34,"div",18)(35,"app-connect"),u()),i&2&&(f(3),b("backgroundImage",`images/${r.file}/backgrounds/${r.file}.avif`)("titleHtml",r.heroTitleHtml),f(2),b("section",r.introA),f(2),b("section",r.asoSection),f(15),b("section",r.userAcquisitionSection),f(2),b("section",r.advertisingSection)("cards",r.adCards),f(2),b("section",r.influencerSection),f(3),b("section",r.croSection),f(2),b("section",r.retentionSection),f(2),b("section",r.whyChooseSection))},dependencies:[fe,Te,re,ye,ki,Ti,Ho,Bo,zo,rt,Ai],encapsulation:2})}return e})();var WC=(()=>{class e{seo=y(se);ngOnInit(){this.seo.apply({title:"Privacy Policy",description:"Read SEM Nexus\u2019 privacy policy covering data usage, collection, security measures, and your rights across our development and marketing services.",canonical:"/privacy-policy/",type:"website"}),this.seo.setBreadcrumbs([{name:"Home",url:"/"},{name:"Privacy Policy"}])}static \u0275fac=function(i){return new(i||e)};static \u0275cmp=C({type:e,selectors:[["app-privacy-policy"]],decls:173,vars:0,consts:[["backgroundImage","images/shared/backgrounds/background-3.avif"],[1,"px-4","sm:px-[26%]","pt-[100px]","text-justify","text-sm","sm:text-base","relative","z-10"],[1,"font-bold","text-center","text-5xl","sm:text-9xl","font-outfit","mb-8"],[1,"mb-8"],[1,"font-bold","text-2xl","font-outfit","mb-8"],[1,"list-disc","pl-8","mt-4"],[1,"mb-4"],["href","https://support.google.com/adwordspolicy/answer/1316548?hl=en",1,"text-[#7E47F3]"],["href","https://consumercal.org/california-online-privacy-protection-act-caloppa/#sthash.0FdRbT51.dpuf",1,"text-[#7E47F3]"],["href","mailto:[email protected]",1,"text-[#7E47F3]"],["href","/",1,"text-[#7E47F3]"]],template:function(i,r){i&1&&(l(0,"app-background",0)(1,"div",1)(2,"h1",2),p(3," Privacy Policy "),u(),l(4,"div",3),p(5," This privacy policy has been compiled to serve better those who are concerned with how their 'Personally Identifiable Information' (PII) is being used online. PII, as described in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website. "),u(),l(6,"div",4),p(7," What personal information do we collect from the people that visit our blog, website or app? "),u(),l(8,"div",3),p(9," When ordering or registering on our site, as appropriate, you may be asked to enter your name, email address or other details to help you with your experience. "),u(),l(10,"div",4),p(11," When do we collect information? "),u(),l(12,"div",3),p(13," We collect information from you when you fill out a form or enter information on our site. "),u(),l(14,"div",4),p(15," How do we use your information? "),u(),l(16,"div",3),p(17," We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways: "),l(18,"ul",5)(19,"li"),p(20," To follow up with them after correspondence (live chat, email or phone inquiries) "),u()()(),l(21,"div",4),p(22," How do we protect your information? "),u(),l(23,"div",3)(24,"p",6),p(25," Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible. "),u(),l(26,"p",6),p(27," We use regular Malware Scanning. "),u(),l(28,"p",6),p(29,"Your personal information is contained behind secured networks and is only accessible by a limited number of persons who have special access rights to such systems, and are required to keep the information confidential. In addition, all sensitive/credit information you supply is encrypted via Secure Socket Layer (SSL) technology."),u(),l(30,"p",6),p(31," We implement a variety of security measures when a user enters, submits, or accesses their information to maintain the safety of your personal information. "),u(),l(32,"p",6),p(33," All transactions are processed through a gateway provider and are not stored or processed on our servers. "),u()(),l(34,"div",4),p(35," Do we use 'cookies'? "),u(),l(36,"div",3)(37,"p",6),p(38," We do not use cookies for tracking purposes You can choose to have your computer warn you each time a cookie is being sent, or you can choose to turn off all cookies. You do this through your browser settings. Since browser is a little different, look at your browser's Help Menu to learn the correct way to modify your cookies. "),u(),l(39,"p",6),p(40," If you turn cookies off, Some of the features that make your site experience more efficient may not function properly.that make your site experience more efficient and may not function properly. "),u()(),l(41,"div",4),p(42," Third-party disclosure "),u(),l(43,"div",3),p(44," We do not sell, trade, or otherwise transfer to outside parties your Personally Identifiable Information. "),u(),l(45,"div",4),p(46," Third-party links "),u(),l(47,"div",3),p(48," We do not include or offer third-party products or services on our website. "),u(),l(49,"div",4),p(50," Google "),u(),l(51,"div",3)(52,"p",6),p(53," Google's advertising requirements can be summed up by Google's Advertising Principles. They are put in place to provide a positive experience for users. "),l(54,"a",7),p(
vendor: 5,391 bytes, line 70
7055,"https://support.google.com/adwordspolicy/answer/1316548?hl=en"),u()(),l(56,"p",6),p(57," We use Google AdSense Advertising on our website. Google, as a third-party vendor, uses cookies to serve ads on our site. Google's use of the DART cookie enables it to serve ads to our users based on previous visits to our site and other sites on the Internet. Users may opt-out of the use of the DART cookie by visiting the Google Ad and Content Network privacy policy. "),u(),l(58,"div",6),p(59," We have implemented the following: "),l(60,"ul",5)(61,"li"),p(62," Remarketing with Google AdSense "),u(),l(63,"li"),p(64," Google Display Network Impression Reporting "),u()(),p(65," We, along with third-party vendors such as Google use first-party cookies (such as the Google Analytics cookies) and third-party cookies (such as the DoubleClick cookie) or other third-party identifiers together to compile data regarding user interactions with ad impressions and other ad service functions as they relate to our website. "),u()(),l(66,"div",4),p(67," Opting out: "),u(),l(68,"div",3),p(69," Users can set preferences for how Google advertises to you using the Google Ad Settings page. Alternatively, you can opt out by visiting the Network Advertising Initiative Opt Out page or by using the Google Analytics Opt Out Browser add on. "),u(),l(70,"div",4),p(71," California Online Privacy Protection Act "),u(),l(72,"div",3)(73,"p",6),p(74," CalOPPA is the first state law in the nation to require commercial websites and online services to post a privacy policy. The law's reach stretches well beyond California to require any person or company in the United States (and conceivably the world) that operates websites collecting Personally Identifiable Information from California consumers to post a conspicuous privacy policy on its website stating exactly the information being collected and those individuals or companies with whom it is being shared. - See more at: "),l(75,"a",8),p(76," https://consumercal.org/california-online-privacy-protection-act-caloppa/#sthash.0FdRbT51.dpuf "),u()(),l(77,"div",6),p(78," According to CalOPPA, we agree to the following: "),l(79,"ul",5)(80,"li"),p(81," Users can visit our site anonymously. "),u(),l(82,"li"),p(83," Once this privacy policy is created, we will add a link to it on our home page or as a minimum, on the first significant page after entering our website. "),u(),l(84,"li"),p(85," Our Privacy Policy link includes the word 'Privacy' and can easily be found on the page specified above. "),u(),l(86,"li"),p(87," You will be notified of any Privacy Policy changes on our Privacy Policy Page. "),u(),l(88,"li"),p(89," You can change your personal information by emailing us. "),u()()()(),l(90,"div",4),p(91," How does our site handle Do Not Track signals? "),u(),l(92,"div",3),p(93," We don't honor Do Not Track signals and Do Not Track, plant cookies, or use advertising when a Do Not Track (DNT) browser mechanism is in place. We don't honor them because: "),l(94,"ul",5)(95,"li"),p(96," We need all user data "),u()()(),l(97,"div",4),p(98," Does our site allow third-party behavioral tracking? "),u(),l(99,"div",3),p(100," It's also important to note that we allow third-party behavioral tracking. "),u(),l(101,"div",4),p(102," COPPA (Children Online Privacy Protection Act) "),u(),l(103,"div",3)(104,"p",6),p(105," When it comes to the collection of personal information from children under the age of 13 years old, the Childrens Online Privacy Protection Act (COPPA) puts parents in control. The Federal Trade Commission, United States' consumer protection agency, enforces the COPPA Rule, which spells out what operators of websites and online services must do to protect children's privacy and safety online. "),u(),l(106,"p",6),p(107," We do not specifically market to children under the age of 13 years old."),v(108,"br"),p(109," Do we let third-parties, including ad networks or plug-ins collect PII from children under 13? "),u()(),l(110,"div",4),p(111," Fair Information Practices "),u(),l(112,"div",3)(113,"p",6),p(114," The Fair Information Practices Principles form the backbone of privacy law in the United States and the concepts they include have played a significant role in the development of data protection laws around the globe. Understanding the Fair Information Practice Principles and how they should be implemented is critical to comply with the various privacy laws that protect personal information. "),u(),l(115,"div",6),p(116," In order to be in line with Fair Information Practices we will take the following responsive action, should a data breach occur: "),l(117,"ul",5)(118,"li"),p(119," We will notify you via email "),u(),l(120,"li"),p(121," Within an undisclosed timeframe "),u()(),p(122," We also agree to the Individual Redress Principle which requires that individuals have the right to legally pursue enforceable rights against data collectors and processors who fail to adhere to the law. This principle requires not only that individuals have enforceable rights against data users, but also that individuals have recourse to courts or government agencies to investigate and/or prosecute non-compliance by data processors. "),u(),l(123,"p",6),p(124," We do not specifically market to children under the age of 13 years old."),v(125,"br"),p(126," Do we let third-parties, including ad networks or plug
70-ins collect PII from children under 13? "),u()(),l(127,"div",4),p(128," CAN SPAM Act "),u(),l(129,"div",3)(130,"p",6),p(131," The CAN-SPAM Act is a law that sets the rules for commercial email, establishes requirements for commercial messages, gives recipients the right to have emails stopped from being sent to them, and spells out tough penalties for violations. "),u(),l(132,"p",6),p(133," We collect your email address in order to send information, respond to inquiries, and/or other requests or questions "),u(),l(134,"div",6),p(135," To be in accordance with CANSPAM, we agree to the following: "),l(136,"ul",5)(137,"li"),p(138," Not use false or misleading subjects or email addresses. "),u(),l(139,"li"),p(140," Identify the message as an advertisement in some reasonable way. "),u(),l(141,"li"),p(142," Include the physical address of our business or site headquarters. "),u(),l(143,"li"),p(144," Monitor third-party email marketing services for compliance, if one is used. "),u(),l(145,"li"),p(146," Honor opt-out/unsubscribe requests quickly. "),u(),l(147,"li"),p(148," Allow users to unsubscribe by using the link at the bottom of each email. "),u()(),p(149," If at any time you would like to unsubscribe from receiving future emails, you can email us at "),l(150,"a",9),p(151,"[email protected]"),u(),p(152," and we will promptly remove you from ALL correspondence. "),u()(),l(153,"div",4),p(154," Contacting Us "),u(),l(155,"div",3)(156,"p",6),p(157," If there are any questions regarding this privacy policy, you may contact us using the information below. "),u(),l(158,"p",6)(159,"a",10),p(160,"semnexus.com"),u(),v(161,"br"),p(162," 46 Old Pond Road"),v(163,"br"),p(164," Great Neck, New York 11023 "),u(),l(165,"p",6),p(166," United States"),v(167,"br"),l(168,"a",9),p(169,"[email protected]"),u(),v(170,"br"),p(171," Last Edited on 2018-04-11 "),u()()(),v(172,"app-connect"),u())},dependencies:[fe,ye],encapsulation:2})}return e})();var ed=[{headingHtml:'mobile app<br><span class="gradient-text">development</span><br><span class="gradient-text">company</span><br>in new york',lead:["SemNexus is a leading New York mobile app development company specializing in custom iOS, Android, AI-powered, and cross-platform applications. Our team helps startups, entrepreneurs, and established businesses transform ideas into scalable digital products through strategic planning, user-focused design, and agile software development."],outro:["Whether you\u2019re launching a startup MVP, building an enterprise platform, or modernizing an existing application, our New York mobile app development services are designed to accelerate time-to-market while maintaining performance, security, and scalability. We combine technical expertise with growth-focused product strategy to build applications that not only function properly but also support long-term business goals."]},{headingHtml:'custom <span class="gradient-text">app</span><br><span class="gradient-text">development</span><br>services',lead:["Every successful application begins with understanding the problem it solves.","Our custom app development services are tailored to each client\u2019s business objectives, target audience, monetization strategy, and technical requirements. Rather than forcing businesses into rigid templates, we build solutions specifically designed around their workflows, customer needs, and long-term growth plans.","Our development team handles everything from discovery and planning to design, development, testing, deployment, and ongoing maintenance. This end-to-end approach allows businesses to work with a single development partner throughout the entire software lifecycle.","Services include:"],bullets:["Custom mobile app development","SaaS development","Web application development","Enterprise software development","Startup MVP development","API integrations","Backend development","Cloud infrastructure"]},{headingHtml:'<span class="gradient-text">iOS app</span> development',lead:["Building for Apple\u2019s ecosystem requires more than writing code. It requires understanding Apple\u2019s design standards, App Store requirements, performance expectations, and security guidelines.","Our iOS app development team creates high-performance applications for iPhone, iPad, Apple Watch, and other Apple devices. We focus on intuitive user experiences, efficient architecture, and seamless integration with Apple\u2019s ecosystem."],outro:["Whether you need a consumer-facing mobile application, subscription platform, marketplace, healthcare solution, or business application, our team develops scalable iOS products built for long-term success."]}],td=[{headingHtml:'<span class="gradient-text">android app</span> development',lead:["Android continues to be the largest mobile operating system in the world, making it essential for businesses seeking maximum market reach.","Our Android app development services focus on creating secure, scalable applications optimized for the diverse Android ecosystem. We build applications capable of performing across a wide range of devices while maintaining a consistent user experience."],outro:["From startup MVPs to enterprise applications, our Android developers leverage modern frameworks and development practices to deliver reliable, high-performance mobile solutions."]},{headingHtml:'<span class="gradient-text">cross-platform</span><br>app<br>
70development',lead:["For many businesses, speed and efficiency are critical.","Our cross-platform app development services allow companies to launch applications across iOS and Android using a shared codebase. This approach can significantly reduce development costs while accelerating product launches.","Using technologies such as React Native and other modern frameworks, we build applications that provide near-native performance while maintaining flexibility and scalability."],outro:["Cross-platform development is often an ideal solution for startups seeking to validate product-market fit before investing in separate native applications."]},{headingHtml:'<span class="gradient-text">AI app</span> development',lead:["Artificial intelligence is rapidly transforming the way businesses operate and interact with customers.","SEMNexus develops AI-powered applications that leverage machine learning, large language models, automation systems, predictive analytics, recommendation engines, and intelligent workflows. Our AI app development services help organizations improve efficiency, reduce manual work, and create differentiated customer experiences."],outro:["Whether you are building an AI chatbot, automation platform, predictive analytics system, AI marketplace, or generative AI product, our team can design and develop custom solutions aligned with your business objectives."]}],nd=[{headingHtml:'<span class="gradient-text">UI/UX design</span> &amp; app prototyping',lead:["Great applications begin with great user experiences.","Before development starts, our design team creates wireframes, user flows, interactive prototypes, and high-fidelity designs that allow stakeholders to validate concepts before significant development resources are invested.","This process reduces risk, improves communication, and helps ensure that the final product aligns with both user expectations and business objectives.","Our design services include:"],bullets:["Wireframing","Interactive prototyping","User experience design","User interface design","User testing","Design systems"]},{headingHtml:'agile mobile<br>app<br><span class="gradient-text">development</span><br><span class="gradient-text">process</span>',lead:["Our development process follows an agile methodology designed to maximize transparency, flexibility, and speed. Projects are developed in structured sprints, allowing clients to review progress regularly and provide feedback throughout development.","Our process includes:"],steps:[{term:"Discovery",detail
70:"Business analysis, market research, requirements gathering, and technical planning."},{term:"Design",detail:"Wireframes, prototypes, user testing, and interface design."},{term:"Development",detail:"Agile sprint-based development for mobile and web platforms."},{term:"Quality Assurance",detail:"Comprehensive testing across devices, operating systems, and use cases."},{term:"Deployment",detail:"App Store and Google Play submission, launch support, and monitoring."},{term:"Maintenance",detail:"Ongoing updates, feature enhancements, security improvements, and scaling support."}]},{headingHtml:'why choose <span class="gradient-text">semnexus</span> as your app development partner?',lead:["Choosing the right app development company can determine whether a product succeeds or fails. SEMNexus combines strategic planning, UI/UX design, mobile app development, AI development, quality assurance, and growth expertise under one roof."],outro:["Unlike traditional development firms that focus solely on coding, our team understands the full product lifecycle\u2014from initial concept and MVP development to user acquisition, App Store Optimization, retention, and long-term growth. This integrated approach allows clients to move faster, reduce risk, and build products designed for both technical success and commercial viability."]}];var l2=[{q:"What does your mobile app development company build?",a:"SEMNexus builds custom iOS, Android, cross-platform, and AI-powered applications \u2014 from startup MVPs to enterprise platforms. We handle the full lifecycle: discovery and planning, UI/UX design, development, quality assurance, deployment, and ongoing maintenance."},{q:"Do you develop native iOS and Android apps or cross-platform apps?",a:"Both. We build native iOS apps for iPhone, iPad, and Apple Watch, native Android apps optimized for the diverse Android ecosystem, and cross-platform apps with React Native and similar frameworks when a shared codebase lowers cost and speeds up launch."},{q:"Can you build AI-powered applications?",a:"Yes. Our AI app development services cover machine learning, large language models, automation, predictive analytics, recommendation engines, and generative AI products \u2014 designed around your business objectives rather than bolted on afterward."},{q:"What does your app development process look like?",a:"We follow an agile, sprint-based process with six stages: Discovery, Design, Development, Quality Assurance, Deployment, and Maintenance. Clients review progress and provide feedback throughout, which keeps the build transparent and flexible."},{q:"Do you help with design and prototyping before development starts?",a:"Yes. Before any code is written, our design team produces wireframes, user flows, interactive prototypes, and high-fidelity designs so stakeholders can validate concepts early \u2014 reducing risk and ensuring the product aligns with user expectations and business goals."}],Cg=(()=>{class e{file="app-development";heroTitleHtml='<span class="gradient-text">app</span><br>development<br><span class="gradient-text">services</span>';introA=ed[0];introB=ed[1];iosSection=ed[2];androidSection=td[0];crossPlatformSection=td[1];aiSection=td[2];uiuxSection=nd[0];agileSection=nd[1];whyChooseSection=nd[2];router=y(Se);calendly=y(Re);seo=y(se);ngOnInit(){this.seo.apply({title:"Mobile App Development Company",description:"SEMNexus is a mobile app development company building custom iOS, Android, cross-platform, and AI-powered applications \u2014 from startup MVPs to enterprise platforms \u2014 with UX/UI design, agile delivery, and full-lifecycle support.",canonical:"/app-development-company/",image:"https://semnexus.com/images/app-development/backgrounds/app-development.avif",imageAlt:"App development services by SEM Nexus",type:"website"}),this.seo.setBreadcrumbs([{name:"Home",url:"/"},{name:"App Development"}]),this.seo.setJsonLd("service",{"@context":"https://schema.org","@type":"Service","@id":"https://semnexus.com/app-development-company/#service",name:"Mobile App Development",serviceType:"iOS, Android, cross-platform, and AI app development",description:"Custom iOS, Android, cross-platform, and AI-powered mobile and software development with UI/UX design, agile delivery, QA, and full product-lifecycle support.",provider:{"@id":"https://semnexus.com/#organization"},areaServed:{"@type":"Country",name:"United States"},url:"https://semnexus.com/app-development-company/",offers:{"@type":"OfferCatalog",name:"App development services",itemListElement:[{"@type":"Offer",name:"Custom App Development",description:"Custom mobile, SaaS, web, and enterprise softw
70are built around each client\u2019s workflows, audience, and growth plans, with API integrations, backend, and cloud infrastructure."},{"@type":"Offer",name:"iOS App Development",description:"High-performance native apps for iPhone, iPad, and Apple Watch built to Apple\u2019s design, performance, and security standards."},{"@type":"Offer",name:"Android App Development",description:"Secure, scalable Android applications optimized to perform consistently across the diverse Android device ecosystem."},{"@type":"Offer",name:"Cross-Platform App Development",description:"Shared-codebase apps for iOS and Android using React Native and modern frameworks for near-native performance at lower cost."},{"@type":"Offer",name:"AI App Development",description:"AI-powered products using machine learning, LLMs, automation, predictive analytics, and recommendation engines."},{"@type":"Offer",name:"UI/UX Design & Prototyping",description:"Wireframing, interactive prototyping, UX/UI design, user testing, and design systems to validate concepts before build."}]}}),this.seo.setJsonLd("faq",{"@context":"https://schema.org","@type":"FAQPage","@id":"https://semnexus.com/app-development-company/#faq",mainEntity:l2.map(t=>({"@type":"Question",name:t.q,acceptedAnswer:{"@type":"Answer",text:t.a}}))})}goToCaseStudies(){this.router.navigate(["development-case-studies"])}goToConsulting(){this.router.navigate(["business-mobile-consulting"])}scheduleCall(){this.calendly.openPopup().catch(()=>{})}static \u0275fac=function(i){return new(i||e)};static \u0275cmp=C({type:e,selectors:[["app-app-development-company"]],decls:60,vars:12,consts:[["backgroundImage","images/shared/backgrounds/background-1.avif"],[1,"sr-only"],["videoSrc","/video/app-development.mp4","align","left","subcopy","From concept to code, we build powerful, scalable, and intuitive mobile apps that deliver exceptional user experiences and drive real business results.","text","service",3,"backgroundImage","titleHtml"],["hero-cta","","buttonText","get in touch now!",3,"clicked"],[3,"section"],["appReveal","",1,"section-divider"],["marker","check",3,"section"],["iconSide","left","icon","images/app-development/platform/ios.png?v=2",3,"section"],["backgroundImage","images/shared/backgrounds/background-2.avif"],["iconSide","right","icon","images/app-development/platform/android.png?v=2",3,"section"],[3,"section","card"],["iconSide","left","icon","images/app-development/platform/ai.png?v=2",3,"section"],[1,"flex","flex-col","justify-center","items-center"],[1,"font-outfit","text-xl","sm:text-3xl","font-semibold","mb-2","sm:mb-6"],[1,"gradient-text"],[1,"font-inter","mb-6","sm:mb-[21px]","text-center","text-sm","sm:text-base"],["buttonText","get in touch now!",3,"clicked"],[1,"w-full","mt-[80px]","mb-[40px]","px-4","sm:px-[10%]"],[1,"adc-cta-wrap","max-w-[900px]","mx-auto"],["appReveal","","appSpotlight","",1,"adc-cta-card","r-rise","rounded-[28px]","p-8","sm:p-12","flex","flex-col","items-center","text-center"],[1,"font-outfit","font-semibold","text-2xl","sm:text-3xl","mb-4","lowercase"],[1,"font-inter","text-sm","sm:text-base","mb-7","max-w-[640px]"],["buttonText","See mobile app strategy & implementation",3,"clicked"],["backgroundImage","images/shared/backgrounds/background-3.avif"],["layout","center","marker","check",3,"section"],["layout","center",3,"section"],[1,"w-full","mt-[40px]","mb-[60px]","px-4","sm:px-[10%]"],["appReveal","","appSpotlight","",1,"adc-cta-card","r-rise","rounded-[28px]","p-8","sm:p-14","flex","flex-col","items-center","text-center"],[1,"font-outfit","font-semibold","text-2xl","sm:text-3xl","mb-4"],[1,"font-inter","text-sm","sm:text-base","mb-7","max-w-[600px]"],["buttonText","see all case studies",3,"clicked"]],template:function(i,r){i&1&&(l(0,"app-background",0)(1,"h1",1),p(2,"App Development Services \u2014 Native iOS, Android, Cross-Platform, and AI Mobile Apps"),u(),l(3,"app-hero-section",2)(4,"app-button",3),S("clicked",function(){return r.scheduleCall()}),u()(),v(5,"app-lead-section",4)(6,"hr",5)(7,"app-tag-services",6)(8,"hr",5)(9,"app-icon-section",7),u(),l(10,"app-background",8),v(11,"app-icon-section",9)(12,"hr",5)(13,"app-lead-section",10)(14,"app-icon-section",11)(15,"hr",5),l(16,"app-info")(17,"div",12)(18,"div",13),p(19," let's transform your business with "),l(20,"span",14),p(21,"ai-powered software"),u()(),l(22,"div",15),p(23," Ready to take your software to the next level? Tell us about your project and our team will show you what AI can do for it."),v(24,"br")(25,"br"),p(26," Discover what AI can do for your product. Contact SEM Nexus to get started. "),u(),l(27,"app-button",16),S("clicked",function(){return r.scheduleCall()}),u()()(),l(28,"div",17)(29,"div",18)(30,"div",19)(31,"div",20),p(32," not sure where to start? "),u(),l(33,"div",21),p(34," If you need to validate the idea, scope features, or build a roadmap before committing to a build, our "),l(35,"span",14),p(36,"mobile app strategy & implementation"),u(),p(37," service is the right starting point. "),u(),l(38,"app-button",22),S("clicked",function(){return r.goToConsulting()}),u()()()()(),l(39,"app-background",23),v(40,"hr",5)(41,"app-tag-services",24)(42,"hr",5)(43,"app-steps-section",4)(44,"hr",5)(45,"app-lead-section",25),l(46,"div",26)(47,"div",18)(48,"div",27)(49,"div",28),p(50," development "),l(51,"span",14),p(52,"case studies"),u()(),l(53,"div",29),p(54," See the "),l(55,"b"),p(56,"SEM Nexus"),u(),p(57," process in action. Join us and take a deep dive into our best development work. "),u(),l(58,"app-button",30),S("clicked",function(){return r.goToCaseStudies()}),u()()()(),v(59,"app-connect"),u()),i&2&&(f(3),b("backgroundImage",`images/${r.file}/backgrounds/${r.file}.avif`)("titleHtml",r.heroTitleHtml),f(2),b("section",r.introA),f(2),b("section",r.introB),f(2),b("section",r.iosSection),f(2),b("section",r.androidSection),f(2),b("section",r.crossPlatformSection)("card",!0),f(),b("section",r.aiSection),f(27),b("section",r.uiuxSection),f(2),b("section",r.agileSection),f(2),b("section",r.whyChooseSection))},dependencies:[fe,Te,ki,Ti,zo,Ho,rt,Ai,qu,re,ye],styles:[`@charset "UTF-8";.adc-cta-card[_ngcontent-%COMP%]{background:linear-gradient(135deg,#7c3aed52,#2563eb38);border:1px solid rgba(255,255,255,.14);backdrop-filter:blur(40px);-webkit-backdrop-filter:blur(40px);box-shadow:0 30px 60px #00000059}.adc-cta-wrap[_ngcontent-%COMP%]{position:relative}.adc-cta-wrap[_ngcontent-%COMP%] > .adc-cta-card[_ngcontent-%COMP%]{position:relative;z-index:1}.adc-cta-wrap[_ngcontent-%COMP%]:before{content:"";position:absolute;inset:-28px;z-index:0;pointer-events:none;border-radius:44px;background:radial-gradient(50% 50% at 28% 30%,rgba(124,58,237,.42),transparent 70%),radial-gradient(50% 50% at 72% 70%,rgba(37,99,235,.34),transparent 70%);
70filter:blur(46px)}@media (prefers-reduced-motion: no-preference){.adc-cta-wrap[_ngcontent-%COMP%]:before{animation:aurora-drift 13s ease-in-out infinite alternate}}@keyframes _ngcontent-%COMP%_aurora-drift{0%{transform:translate(-14px,-8px) scale(1)}to{transform:translate(14px,8px) scale(1.08)}}
71/*# sourceMappingURL=app-development-company-GKRHK3NV.css.map */`]})}return e})();var qC=(()=>{class e{static \u0275fac=function(i){return new(i||e)};static \u0275cmp=C({type:e,selectors:[["app-process"]],decls:43,vars:0,consts:[[1,"flex","flex-col","justify-center","items-center","pt-[100px]","z-10"],[1,"font-outfit","text-3xl","font-semibold","mb-6"],[1,"px-4","sm:px-[22%]","text-justify","sm:text-center","text-sm","sm:text-base","relative","z-10"],[1,"gradient-text"],[1,"mt-[100px]","w-[95%]","flex","flex-col","sm:items-center"],[1,"flex","items-center","justify-center","sm:space-between","flex-col","sm:flex-row","w-full","sm:w-[600px]","sm:h-[252px]"],[1,"flex","items-center","justify-center","w-full","sm:w-[191px]"],["src","/images/shared/steps/01.png","alt","",1,"w-[191px]"],[1,"flex","flex-col","my-4","sm:my-0","sm:pl-[80px]","justify-center","w-full"],[1,"font-outfit","text-2xl","font-semibold","mb-2","text-center","sm:text-left"],[1,"font-inter","text-sm","sm:text-base","text-center","sm:text-left"],[1,"flex","flex-col","my-4","sm:my-0","sm:pr-[80px]","justify-center","w-full","order-2","sm:order-1"],[1,"flex","items-center","justify-center","w-full","sm:w-[191px]","order-1","sm:order-2"],["src","/images/shared/steps/02.png","alt","",1,"w-[191px]"],["src","/images/shared/steps/03.png","alt","",1,"w-[191px]"],["src","/images/shared/steps/04.png","alt","",1,"w-[191px]"]],template:function(i,r){i&1&&(F(0,"div",0)(1,"div",1),p(2," our process "),L(),F(3,"div",2),p(4," The SEM Nexus App Marketing Process uses a combination of app store optimization or ASO, App Store & Play Store ads, and social media ads. We also utilize "),F(5,"span",3),p(6,"influencers"),L(),p(7," to acquire users, followed by in-app analytics to retain active and paying users. In order to guarantee the best launch or campaign possible for your app we adhere to the following "),F(8,"span",3),p(9,"4 phase process:"),L()(),F(10,"div",4)(11,"div",5)(12,"div",6),Fe(13,"img",7),L(),F(14,"div",8)(15,"div",9),p(16," app store optimization "),L(),F(17,"div",10),p(18," We start ASO with in-depth keyword research, then craft strategic store descriptions and eye-catching app visuals. "),L()()(),F(19,"div",5)(20,"div",11)(21,"div",9),p(22," influencer marketing "),L(),F(23,"div",10),p(24," We use top Instagram and TikTok influencers to creatively promote and link to your app, maximizing reach and impact. "),L()(),F(25,"div",12),Fe(26,"img",13),L()(),F(27,"div",5)(28,"div",6),Fe(29,"img",14),L(),F(30,"div",8)(31,"div",9),p(32," add marketing "),L(),F(33,"div",10),p(34," We run targeted ads on Google, Apple, and social media to scale campaigns and keep your Cost Per Install (CPI) low. "),L()()(),F(35,"div",5)(36,"div",11)(37,"div",9),p(38," vc preparation "),L(),F(39,"div",10),p(40," Once product-market fit is clear, we create a standout pitch deck and share it with our VC network to help secure funding. "),L()(),F(41,"div",12),Fe(42,"img",15),L()()()())},encapsulation:2})}return e})();var YC=(()=>{class e{file="website-marketing";router=y(Se);seo=y(se);ngOnInit(){this.seo.apply({title:"Website Marketing Services",description:"SEM Nexus boosts traffic and conversions with targeted website marketing, paid ads, influencers, and messaging aligned with app growth strategy.",canonical:"/website-marketing-services/",image:"https://semnexus.com/images/website-marketing/backgrounds/website-marketing.avif",imageAlt:"Website marketing services by SEM Nexus",type:"website"}),this.seo.setBreadcrumbs([{name:"Home",url:"/"},{name:"Website Marketing"}]),this.seo.setJsonLd("service",{"@context":"https://schema.org","@type":"Service","@id":"https://semnexus.com/website-marketing-services/#service",name:"Website Marketing",serviceType:"Conversion-focused website strategy and execution",description:"Conversion-focused website strategy and execution \u2014 traffic, on-page experience, paid acquisition aligned with app growth.",provider:{"@id":"https://semnexus.com/#organization"},areaServed:{"@type":"Country",name:"United States"},url:"https://semnexus.com/website-marketing-services/"})}goToCaseStudies(){this.router.navigate(["marketing-case-studies"])}static \u0275fac=function(i){return new(i||e)};static \u0275cmp=C({type:e,selectors:[["app-website-marketing-services"]],decls:20,vars:2,consts:[["backgroundImage","images/sh
71ared/backgrounds/background-1.avif"],[1,"sr-only"],["height","520px","paddingTop","300px","opacity",".8","text","service",3,"backgroundImage","title"],["backgroundImage","images/shared/backgrounds/background-3.avif"],[1,"pt-[200px]"],[1,"flex","flex-col","justify-center","items-center"],[1,"font-outfit","text-xl","sm:text-3xl","font-semibold","mb-2","sm:mb-6"],[1,"gradient-text"],[1,"font-inter","mb-6","sm:mb-[21px]","text-center","text-sm","sm:text-base"],["buttonText","see all case studies",3,"clicked"]],template:function(i,r){i&1&&(l(0,"app-background",0)(1,"h1",1),p(2,"Website Marketing Services \u2014 Traffic, Conversion, and Paid Acquisition"),u(),v(3,"app-hero-section",2)(4,"app-process"),u(),l(5,"app-background",3)(6,"div",4)(7,"app-info-card")(8,"div",5)(9,"div",6),p(10," marketing "),l(11,"span",7),p(12,"case studies"),u()(),l(13,"div",8),p(14," See the "),l(15,"b"),p(16,"SEM Nexus"),u(),p(17," process in action. Join us and take a deep dive into our best marketing work. "),u(),l(18,"app-button",9),S("clicked",function(){return r.goToCaseStudies()}),u()()()(),v(19,"app-connect"),u()),i&2&&(f(3),b("backgroundImage",`images/${r.file}/backgrounds/${r.file}.avif`)("title",`images/${r.file}/${r.file}.svg`))},dependencies:[fe,Te,qC,en,re,ye],encapsulation:2})}return e})();var be="https://semnexus-blog-media.s3.us-east-1.amazonaws.com/case-studies",ZC=[{name:"Cerebyte",logo:`${be}/cerebyte/logo.png`,description:"Cerebyte is a wellness mobile app that plays audio tracks derived from real EEG brain-activity recordings \u2014 focus, calm, deep sleep, creative flow, and more. Members browse a library of recordings, build playlists, and use a Wake Up alarm that rises to a chosen track.",redirectUrl:"cerebyte",images:[`${be}/cerebyte/01.png`,`${be}/cerebyte/02.png`,`${be}/cerebyte/03.png`,`${be}/cerebyte/04.png`,`${be}/cerebyte/05.png`],discovery:"The client came to SEM Nexus to bring a clinically-grounded EEG-to-audio process to a consumer mobile app. The work centered on packaging a scientifically-derived audio library into a polished cross-platform listening experience, with subscription gating, content discovery, and the audio-fidelity demands that ambient/wellness listeners expect.",design:'The app is organized into themed "Labs" \u2014 Deep Sleep, Baby Sleep, and more \u2014 each holding curated audio tracks. A persistent mini-player keeps audio controls available across the app, a Wake Up alarm lets users rise to a chosen track, and saved Sessions and Favorites give listeners a way back to what works for them.',development:"SEM Nexus built the front-end with Flutter, shipping a single performant codebase to iOS and Android with the audio fidelity the product depends on. A Node.js back-end powers the audio library, subscription state, sequence storage, and content delivery.",downloadLinks:{google:"https://play.google.com/store/apps/details?id=com.cerebyte.android",apple:"https://apps.apple.com/us/app/cerebyte/id6760419256"}},{name:"Big Balls Brotherhood",logo:`${be}/big-balls-brotherhood/logo.png`,description:"Big Balls Brotherhood is the mobile platform for a Christian men's accountability program. Members start each day with a check-in, set goals across three pillars \u2014 Wealth, Strength, Leadership \u2014 and post inside a community forum that ties the digital experience to the broader Brotherhood curriculum.",redirectUrl:"big-balls-brotherhood",images:[`${be}/big-balls-brotherhood/01.png`,`${be}/big-balls-brotherhood/02.png`,`${be}/big-balls-brotherhood/03.png`,`${be}/big-balls-brotherhood/04.png`,`${be}/big-balls-brotherhood/05.png`],discovery:"Founder Daniel Krynzel came to SEM Nexus with a movement already in motion \u2014 weekly accountability calls, quarterly events, Systems Training \u2014 and a need for the digital backbone to carry the discipline into members' daily lives, end the isolation between meetings, and turn intention into a visible daily rhythm.",design:"The app is organized around a five-tab structure \u2014 Home, Forum, Education, Plan, Tasks. Members open to a daily check-in and journal feed, plan their lives across three time horizons (3-Year Visions, Monthly Goals, Weekly Commitments), track those commitments by pillar (Wealth/Strength/Leadership), and post inside a forum threaded by topic.",development:"Built with Flutter, shipping a single codebase to iOS and Android with the visual polish to match the movement's bold gold-on-black brand. A shared backend powers authentication, content delivery, journal entries, commitment tracking, and the community forum.",downloadLinks:{google:"https://play.google.com/store/apps/details?id=com.semnexus.apps.big_balls_brotherhood",apple:"https://apps.apple.com/us/app/big-balls-brotherhood/id6749697958"}},{name:"MyPace",logo:`${be}
71/mypace/logo.png`,description:"MyPace is a fitness and wellness mobile app that brings workouts, nutrition tracking, habit-building, and community into a single experience. AI-generated weekly workout routines and meal plans adapt to each member's goals, preferences, and activity level over time.",redirectUrl:"mypace",images:[`${be}/mypace/01.png`,`${be}/mypace/02.png`,`${be}/mypace/03.png`,`${be}/mypace/04.png`,`${be}/mypace/05.png`],discovery:"MyPace came to SEM Nexus needing to turn an AI-driven wellness concept into a polished cross-platform mobile app. The core problem to solve was personalization at scale \u2014 generating workout and meal plans that felt individually crafted, then adapting them as each member's data came in.",design:"The app has a five-tab structure \u2014 Fitness, Nutrition, Home, Wellness, Connect \u2014 that gives each pillar its own surface. Members track macros and hydration, browse a workout library categorized by goal (cardio, strength, home/quick, fat loss), discover recipes and meal galleries, and share progress in a community feed with photos, likes, and comments.",development:"SEM Nexus built the front-end with Angular and Ionic, shipping a single codebase to iOS and Android. A Node.js back-end powers the AI plan generation, member data, logging, and the adaptive recalibration loop that updates plans as activity and goals shift.",downloadLinks:{google:"https://play.google.com/store/apps/details?id=app.mypace.com",apple:"https://apps.apple.com/us/app/mypace-app/id6745795729"}},{name:"360 Medical Consulting",logo:`${be}/360-medical-consulting/logo.png`,description:"360 Medical Consulting is a HIPAA-compliant patient portal app that lets patients of a private medical practice schedule appointments, message their care team, and manage their health profile securely from their phone.",redirectUrl:"360-medical-consulting",images:[`${be}/360-medical-consulting/01.png`,`${be}/360-medical-consulting/02.png`,`${be}/360-medical-consulting/03.png`,`${be}/360-medical-consulting/04.png`,`${be}/360-medical-consulting/05.png`],discovery:"The client, a private medical practice, came to SEM Nexus to extend their care experience to a mobile app. They wanted patients to handle appointments, billing, and messaging on their own \u2014 freeing up the front desk while keeping every interaction HIPAA-compliant.",design:"The app is organized around four areas: appointment scheduling, secure messaging with the practice and doctors, a personal health profile (medical history, allergies, medications, insurance), and notifications. The interface is clean and large-type-friendly, with short paths from home to any task.",development:"The app was built with Angular and Ionic, shipping a single TypeScript codebase to iOS and Android. HIPAA-compliant encryption and access controls were enforced at every layer.",downloadLinks:{google:"https://play.google.com/store/apps/details?id=com.medical360.consulting",apple:"https://apps.apple.com/us/app/360-medical-consulting/id6596748340"}},{name:"My Home Delivery",logo:`${be}/my-home-delivery/logo.png`,description:"My Home Delivery is the on-demand mobile platform for big-and-bulky item delivery \u2014 furniture, appliances, and large retail purchases. Same-day or scheduled service with instant upfront pricing, real-time tracking, and a network of vetted, insured carriers.",redirectUrl:"my-home-delivery",images:[`${be}/my-home-delivery/01.png`,`${be}/my-home-delivery/02.png`,`${be}/my-home-delivery/03.png`,`${be}/my-home-delivery/04.png`,`${be}/my-home-delivery/05.png`],discovery:"The client identified a gap in last-mile delivery: traditional freight isn't built for same-day consumer service, and gig-economy platforms cap out on item size. The brief was a rideshare-style experience \u2014 upfront pricing, real-time tracking, vetted insured carriers \u2014 built for items that need a real truck and a crew.",design:"The app centers on a tight three-step flow: Get Estimate, Book, Track. Pickup and drop-off entry surfaces a locked-in price with no hidden fees; booking adds details for big items (elevator vs. stairs, item count, photos). Real-time tracking, carrier messaging, and Apple Wallet support carry the customer through delivery.",development:"The customer app was built with React Native on the front-end and a Laravel back-end powering the marketplace's APIs, pricing engine, carrier dispatch, and order state \u2014 iterated across more than a dozen versioned releases.",downloadLinks:{google:"https://play.google.com/store/apps/details?id=com.mhd.user",apple:"https://apps.apple.com/us/app/my-home-delivery/id1588425069"}},{name:"CellMyListing",logo:`${_}
71wp-content/uploads/2023/11/icon-4-300x300.png`,description:"This reliable all-in-one app provides you with the essential features to take stunning pictures of a property just by using your cellphone\u2019s camera. It allows users to order different types of services to enhance their pictures so they can promote their properties on the MLS and other apps and websites.",redirectUrl:"cellmylisting",images:[`${_}wp-content/uploads/2023/11/01-5.png`,`${_}wp-content/uploads/2023/11/02-6.png`,`${_}wp-content/uploads/2023/11/03-6.png`,`${_}wp-content/uploads/2023/11/04-5.png`,`${_}wp-content/uploads/2023/11/splash-4.png`],background:`${_}wp-content/uploads/2023/11/bg-3.png`,discovery:"Real estate professionals understand the vital importance of high-quality photos when selling property.",design:"Free tutorials that guide you step-by-step on taking near-professional-quality real estate pictures on your cell phone. Visually appealing and strategically designed to captivate potential buyers",development:"The app was built using Flutter, and the database runs on Google\u2019s Firebase database."},{name:"Cheersmate",logo:`${_}wp-content/uploads/2023/11/icon-3-300x300.png`,description:"Allows users to order drinks from their app and pick them up at the bar. Customers can run a tab and settle it, tip, and close their tab from their phones.",redirectUrl:"cheersmate",images:[`${_}wp-content/uploads/2023/11/01-4.png`,`${_}wp-content/uploads/2023/11/02-5.png`,`${_}wp-content/uploads/2023/11/03-5.png`,`${_}wp-content/uploads/2023/11/04-4.png`,`${_}wp-content/uploads/2023/11/splash-3.png`],background:`${_}wp-content/uploads/2023/11/bg-2.png`,discovery:"The client came to us trying to solve the problem of ordering drinks without having to get a waiter\u2019s attention or ahead of arriving at their local bar.",design:"The app features a version for the client where the bars around them are displayed, and they can open a tab and order drinks without even being there.",development:"The app was built using Flutter, and the database runs on Google\u2019s Firebase database.",downloadLinks:{google:"https://play.google.com/store/apps/details?id=com.semnexus.apps.cheersmate&pcampaignid=web_share",apple:""}},{name:"LEW",logo:`${_}wp-content/uploads/2023/11/icon-2-300x300.png`,description:"Lew was designed to help with dementia loved ones and their caregivers. We designed Lew with three aspects: the loved one (the person with dementia or needing help), the caregiver, and friends and family.",redirectUrl:"lew",images:[`${_}wp-content/uploads/2023/11/01-3.png`,`${_}wp-content/uploads/2023/11/02-4.png`,`${_}wp-content/uploads/2023/11/03-4.png`,`${_}wp-content/uploads/2023/11/04-3.png`,`${_}wp-content/uploads/2023/11/splash-2.png`],background:`${_}wp-content/uploads/2023/11/bg-1.png`,discovery:"The client came to us with an idea on how to keep in touch with loved ones who were living in assisted living or away from their loved ones. Easy to use for people with dementia or age-related disabilities.",design:`Daily Checklist,  Daily Calendar Pictures of People and Places.
72                    Send messages directly to loved ones you know who are suffering from dementia.`,development:"The app was built using Flutter, and the database runs on Google\u2019s Firebase database.",downloadLinks:{google:"https://play.google.com/store/apps/details?id=com.lewapp.android&pcampaignid=web_share",apple:"https://apps.apple.com/us/app/lew-app/id6447646984"}},{name:"Boss App",logo:`${_}wp-content/uploads/2023/11/icon-300x300.png`,description:"Boss is designed to be the ultimate app to transform how you find work and workers. Whether you\u2019re looking for opportunities to utilize your skills and free time or need the ideal person to get a job done, Boss is your one-stop solution. With options for both English and Spanish, Boss offers additional accessibility and opportunities for collaboration.",redirectUrl:"boss",images:[`${_}wp-content/uploads/2023/11/01-1.png`,`${_}wp-content/uploads/2023/11/02-2.png`,`${_}wp-content/uploads/2023/11/03-2.png`,`${_}wp-content/uploads/2023/11/04-1.png`,`${_}wp-content/uploads/2023/11/splash.png`],background:`${_}
72wp-content/uploads/2023/11/bg.jpg`,discovery:"The client realized an unattended niche in their area, so they approached Sem Nexus with an idea and a concept. During the discovery phase, the app took shape, and the design was completed.",design:"The app\u2019s design is meant to make it easy for people looking for a job and those who need to find skilled labor in their particular area. It was decided that the app should be published in Spanish and English to cover more people.",development:"The app is coded in Angular/Ionic, and the database is PostgreSQL.",downloadLinks:{apple:"https://apps.apple.com/us/app/a-boss-app/id1671890647",google:""}},{name:"HomeVetNow User",logo:`${_}wp-content/uploads/2023/04/homevetnow_user_icon-300x300.png`,description:"HomeVetNow User provides pet owners with real-time access to vetted and certified veterinarians in their area. Users can browse profiles, view qualifications, read reviews, and connect with their preferred pet care providers directly through the app, ensuring peace of mind and top-notch care for their pets.",redirectUrl:"homevetnow-user",images:[`${_}wp-content/uploads/2023/04/homevetnow_user_01.png`,`${_}wp-content/uploads/2023/04/homevetnow_user_02.png`,`${_}wp-content/uploads/2023/04/homevetnow_user_03.png`,`${_}wp-content/uploads/2023/04/homevetnow_user_04.png`,`${_}wp-content/uploads/2023/04/homevetnow_user_splash.png`],background:`${_}wp-content/uploads/2023/04/homevetnow_user_bg.jpg`,discovery:"HomeVetNow User was developed to offer pet owners the convenience and assurance of quality care at their fingertips.",design:"The app offers an intuitive interface that allows users to easily manage their pets' information, personal profile, and follow-up care.'",development:"SEM Nexus developed HomeVetNow utilizing Flutter."},{name:"Truck'N",description:"Truck'N is a comprehensive app designed to help truckers stay organized and efficient on the road. With features like load accounting, smart GPS, en-route reports, broker reviews, and a dedicated social platform, truckers can easily manage their journeys and connect with others in the industry.",logo:`${_}wp-content/uploads/2023/04/truckn_icon-300x300.jpg`,images:[`${_}wp-content/uploads/2023/04/truckn_01.png`,`${_}wp-content/uploads/2023/04/truckn_02.png`,`${_}wp-content/uploads/2023/04/truckn_03.png`,`${_}wp-content/uploads/2023/04/truckn_04.png`,`${_}wp-content/uploads/2022/11/truckn_splash.png`],redirectUrl:"truckn",background:`${_}wp-content/uploads/2023/04/truckn_bg.jpg`,discovery:"Truck'N was developed to provide truckers with essential tools and resources, ensuring a more enjoyable and efficient experience on the road.",design:"The app offers an intuitive interface that allows users to seamlessly navigate between features, such as load accounting, smart GPS, and en-route reports.",development:"SEM Nexus developed Truck'N utilizing Flutter."},{name:"Trusted Service",description:"Trusted Services is a convenient app that allows users to schedule and pay for service appointments with professionals such as Handymen, Electricians, Locksmiths, and Plumbers Trusted Services ensures quality and reliability!",logo:`${_}wp-content/uploads/2022/11/icon-1-300x300.png`,images:[`${_}wp-content/uploads/2023/04/trusted_01.png`,`${_}wp-content/uploads/2023/04/trusted_02.png`,`${_}wp-content/uploads/2023/04/trusted_03.png`,`${_}wp-content/uploads/2023/04/trusted_04.png`,`${_}wp-content/uploads/2022/10/trustedservices-sticky-506x1024.png`],redirectUrl:"trusted-services",background:`${_}wp-content/uploads/2023/04/trusted_bg.jpg`,discovery:"The discovery process for the app began when the client recognized the need for a platform that simplifies the process of finding and hiring trusted service professionals.",design:"The app offers an intuitive interface that enables users to effortlessly browse services, compare prices, and schedule appointments.",development:"SEM Nexus Developed Trusted Services utilizing Flutter."},{name:"Yogi-Go Fitness",description:"The Yogi-Go Fitness app is your premier app for discovering, messaging, and booking appointments with nearby yoga/fitness instructors and personal trainers. It\u2019s also a great way for trainers to be found by potential clients!",logo:`${_}wp-content/uploads/2022/11/icon.png`,images:[`${_}wp-content/uploads/2023/04/yogigo_01.png`,`${_}wp-content/uploads/2023/04/yogigo_02.png`,`${_}wp-content/uploads/2023/04/yogigo_03.png`,`${_}wp-content/uploads/2023/04/yogigo_04.png`,`${_}wp-content/uploads/2022/10/yogigosticky-1-506x1024.png`],redirectUrl:"yogigo-fitness",background:`${_}
72wp-content/uploads/2022/10/yogigo_bg.jpg`,discovery:"The discovery process for the app began when the client recognized the need for a user-friendly platform to connect fitness enthusiasts with qualified trainers, yogis, and instructors.",design:"The app provides an intuitive user interface, making it simple for users to find and communicate with fitness professionals, ensuring a seamless booking experience.",development:"SEM Nexus Developed Yogi-Go Fitness utilizing Flutter."}];var id=(()=>{class e{http;baseUrl=`${_}wp-json/wp/v2/case-studies?services_provided=49&per_page=30&page=1`;projects=ZC;constructor(t){this.http=t}getProjects(){return U(this.projects)}getProjectsFromWP(){return this.http.get(this.baseUrl).pipe(Q(t=>t.map(i=>this.mapToProject(i))))}getProjectByName(t){return U(this.projects.find(i=>i.name.toLowerCase()===t.toLowerCase()))}getProjectByUri(t){return U(this.projects.find(i=>i.redirectUrl.toLowerCase()===t.toLowerCase()))}getProjectIds(){return this.projects.map(t=>t.redirectUrl)}mapToProject(t){let i=[];if(t._links?.["wp:attachment"]?.length){let s=t._links["wp:attachment"][0].href;i.push(s)}let r=t.acf?.description||t.yoast_head_json?.description||"",o=i[0]||`${_}wp-content/uploads/2023/11/icon-4-300x300.png`;return{name:t.title?.rendered||"No title",description:r,logo:o,images:i,redirectUrl:t.link}}static \u0275fac=function(i){return new(i||e)($(Si))};static \u0275prov=A({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();var u2=()=>[];function d2(e,n){if(e&1&&v(0,"img",12),e&2){let t=n.$implicit,i=E().$implicit;b("alt",ql("",i.name," app screenshot"))("src",t,pe)}}function p2(e,n){if(e&1){let t=he();l(0,"div",3)(1,"app-button",13),S("clicked",function(){W(t);let r=E(2);return q(r.scheduleCall())}),u()()}}function f2(e,n){if(e&1){let t=he();l(0,"div",5)(1,"div",6),v(2,"img",7),l(3,"h2",8),p(4),u(),l(5,"p",9),p(6),u(),l(7,"app-button",10),S("click",function(){let r=W(t).$implicit,o=E();return q(o.navigateTo(r.redirectUrl))}),u()(),l(8,"div",11),H(9,d2,1,3,"img",12,te),u()(),j(11,p2,2,0,"div",3)}if(e&2){let t=n.$implicit,i=n.$index;f(2),b("alt",ql("",t.name," app logo"))("src",t.logo,pe),f(2),O(t.name),f(2),O(t.description),f(3),z(t.images.slice(0,4)),f(2),V(i===2?11:-1)}}var m2="https://calendly.com/marcocl/30min-1?hide_gdpr_banner=1&background_color=f2ecfb&text_color=0d0420&primary_color=d5087f",KC=(()=>{class e{router;devProjectsService;calendly;projects$;constructor(t,i,r){this.router=t,this.devProjectsService=i,this.calendly=r}ngOnInit(){this.projects$=this.devProjectsService.getProjects()}navigateTo(t){this.router.navigate([`case-studies/${t.toLowerCase()}/`])}scheduleCall(){this.calendly.openPopup(m2).catch(()=>{})}static \u0275fac=function(i){return new(i||e)(D(Se),D(id),D(Re))};static \u0275cmp=C({type:e,selectors:[["app-development-projects"]],decls:10,vars:3,consts:[[1,"relative","pt-28"],[1,"mb-10","text-center","text-[40px]"],[1,"gradient-text","font-semibold","cursor-pointer"],[1,"w-full","flex","flex-col","items-center","my-[80px]","px-4"],["buttonText","let's connect",3,"clicked"],[1,"flex","flex-col","md:flex-row","md:items-center","w-full","overflow-hidden","md:space-x-4","py-12","border-t","border-white/10","first:border-t-0"],[1,"w-full","md:w-1/5","p-4","sm:pl-26","flex","flex-col","justify-start","items-start","space-y-3","break-words"],["loading","lazy",1,"w-[90px]","sm:w-[100px]","md:w-[112px]","h-[90px]","sm:h-[100px]","md:h-[112px]","rounded-[25px]","object-contain","mb-2","override-opacity",3,"src","alt"],[1,"text-lg","font-bold","mb-1","text-inherit","font-inherit","override-opacity","break-words"],[1,"text-sm","text-inherit","font-inherit","mb-2","override-opacity","break-words"],["buttonText","read more",3,"click"],[1,"w-full","md:w-4/5","p-4","grid","gap-[10px]","grid-cols-2","sm:grid-cols-3","md:grid-cols-4","justify-items-center"],["loading","lazy",1,"w-[80%]","sm:w-[75%]","md:w-[70%]","h-auto","object-contain","rounded-md","override-opacity",3,"src","alt"],["buttonText","Let's talk about your app",3,"clicked"]],template:function(i,r){i&1&&(l(0,"div",0)(1,"p",1),p(2," know some of "),l(3,"span",2),p(4,"our projects"),u()(),l(5,"div",3)(6,"app-button",4),S("clicked",function(){return r.scheduleCall()}),u()(),H(7,f2,12,6,null,null,te),vr(9,"async"),u()),i&2&&(f(7),z(yr(9,0,r.projects$)??bo(2,u2)))},dependencies:[K,re,xr],encapsulation:2})}return e})();var JC=(()=>{class e{file="development-case-studies";seo=y(se);ngOnInit(){this.seo.apply({title:"Development Case Studies",description:"See SEM Nexus app development case studies covering UX/UI, agile builds, and launch results showing how we turn ideas into scalable mobile apps.",canonical:"/development-case-studies/",image:"https://semnexus.com/images/development-case-studies/backgrounds/development-case-studies.avif",imageAlt:"SEM Nexus mobile app development case studies",type:"website"}),this.seo.setBreadcrumbs([{name:"Home",url:"/"},{name:"Development Case Studies"}])}static \u0275fac=function(i){return new(i||e)};static \u0275cmp=C({type:e,selectors:[["app-development-case-studies"]],decls:17,vars:2,consts:[["backgroundImage","images/sh
72ared/backgrounds/background-1.avif"],[1,"sr-only"],["height","520px","paddingTop","300px","opacity",".8","text","case studies",3,"backgroundImage","title"],["backgroundImage","images/shared/backgrounds/background-3.avif"],[1,"pt-[200px]"],[1,"flex","flex-col","justify-center","items-center"],[1,"font-outfit","text-xl","sm:text-3xl","font-semibold","mb-2","sm:mb-6"],[1,"gradient-text"],[1,"font-inter","mb-6","sm:mb-[21px]","text-justify","text-sm","sm:text-base","px-[15%]"]],template:function(i,r){i&1&&(l(0,"app-background",0)(1,"h1",1),p(2,"Development Case Studies \u2014 Shipped Mobile Apps Across Healthcare, Logistics, Marketplace, and Wellness"),u(),v(3,"app-hero-section",2)(4,"app-development-projects"),u(),l(5,"app-background",3)(6,"div",4)(7,"app-info-card")(8,"div",5)(9,"div",6),p(10," Why "),l(11,"span",7),p(12,"Semnexus"),u(),p(13,"? "),u(),l(14,"div",8),p(15," At Semnexus, we help your app achieve high rankings, increase downloads, and maximize ROI. Our comprehensive app marketing services cover App Store Optimization, competitor analysis, ad copy, and growth strategies tailored for your success. Whether you're launching a new app or scaling an existing one, we deliver high-impact marketing without the high costs. Let's make your app go viral! "),u()()()(),v(16,"app-connect"),u()),i&2&&(f(3),b("backgroundImage",`images/${r.file}/backgrounds/${r.file}.avif`)("title",`images/${r.file}/${r.file}.svg`))},dependencies:[fe,Te,ye,KC,en],encapsulation:2})}return e})();function h2(e,n){if(e&1&&v(0,"img",10),e&2){let t=E(2);b("src",t.teamMember.profile_picture,pe)}}function g2(e,n){if(e&1){let t=he();l(0,"div",2)(1,"div",3),Ee(2,h2,1,1,"img",4),v(3,"div",5),u(),l(4,"div",6)(5,"div",7),p(6),u(),l(7,"div",8),p(8),u(),l(9,"app-button",9),S("clicked",function(){W(t);let r=E();return q(r.rotate())}),u()()()}if(e&2){let t=E();ce("rotate-y-180",t.showMore()),f(2),b("ngIf",t.teamMember.profile_picture),f(4),O(t.teamMember.name),f(2),O(t.teamMember.role)}}function v2(e,n){if(e&1){let t=he();l(0,"div",11),S("click",function(){W(t);let r=E();return q(r.rotate())}),l(1,"div",3),v(2,"img",12),u(),l(3,"div",13)(4,"div",14),p(5),u(),l(6,"div",15),p(7),u(),l(8,"div",16),p(9),u()()()}if(e&2){let t=E();ce("rotate-y-180",!t.showMore()),f(5),O(t.teamMember.name),f(2),O(t.teamMember.role),f(2),Ce(" ",t.teamMember.about)}}var XC=(()=>{class e{showMore=ae(!1);showFront=ae(!0);teamMember;isBrowser=et(y(je));rotate(){this.showMore.update(t=>!t),this.isBrowser?setTimeout(()=>{this.showFront.update(t=>!t)},400):this.showFront.set(!0)}static \u0275fac=function(i){return new(i||e)};static \u0275cmp=C({type:e,selectors:[["app-team-card"]],inputs:{teamMember:"teamMember"},decls:2,vars:2,consts:[["class","relative h-[250px] sm:h-[450px] w-[350px] sm:w-[550px] rounded-[36px] shadow-lg cursor-pointer bg-gradient-to-br from-transparent to-black/70",3,"rotate-y-180",4,"ngIf"],["class","relative h-[250px] sm:h-[450px] w-[350px] sm:w-[550px] rounded-[36px] shadow-lg cursor-pointer bg-gradient-to-br from-transparent to-black/70",3,"rotate-y-180","click",4,"ngIf"],[1,"relative","h-[250px]","sm:h-[450px]","w-[350px]","sm:w-[550px]","rounded-[36px]","shadow-lg","cursor-pointer","bg-gradient-to-br","from-transparent","to-black/70"],[1,"relative","w-full","h-full","rounded-[36px]","overflow-hidden"],["alt","","class","absolute inset-0 w-full h-full object-cover",3,"src",4,"ngIf"],[1,"absolute","inset-0","team-card-gradient"],[1,"w-full","font-outfit","z-1","absolute","bottom-[35px]","pl-[32px]"],[1,"gradient-text","font-semibold","text-3xl","mb-2"],[1,"text-lg","font-normal","mb-6"],["buttonText","read more",3,"clicked"],["alt","",1,"absolute","inset-0","w-full","h-full","object-cover",3,"src"],[1,"relative","h-[250px]","sm:h-[450px]","w-[350px]","sm:w-[550px]","rounded-[36px]","shadow-lg","cursor-pointer","bg-gradient-to-br","from-transparent","to-black/70",3,"click"],["src","/images/team/backgrounds/read-more.png","alt","",1,"absolute","inset-0","w-full","h-full","object-cover"],[1,"w-full","font-outfit","absolute","top-2","sm:top-[50px]","px-3","sm:pl-[52px]"],[1,"font-semibold","text-3xl","mb-2"],[1,"gradient-text","text-lg","font-normal","mb-2","sm:mb-6"],[1,"text-base","font-inter","mb-6","w-full","sm:w-[80%]","h-[150px]","sm:h-[265px]","overflow-y-auto","text-justify","sm:pr-10","hide-scrollbar"]],template:function(i,r){i&1&&Ee(0,g2,10,5,"div",0)(1,v2,10,5,"div",1),i&2&&(b("ngIf",r.showFront()),f(),b("ngIf",!r.showFront()))}
72,dependencies:[K,ni,re],styles:[`.team-card-gradient[_ngcontent-%COMP%]{background:linear-gradient(180deg,#14153c00,#1b114166 21.15%,#14153c99 42.79%,#14153c);position:absolute;inset:0;z-index:1}.rotate-y-180[_ngcontent-%COMP%]{transform:rotateY(180deg);transition:transform .7s}@media (max-width: 640px){.hide-scrollbar[_ngcontent-%COMP%]::-webkit-scrollbar{display:none}.hide-scrollbar[_ngcontent-%COMP%]{-ms-overflow-style:none;scrollbar-width:none}}
73/*# sourceMappingURL=team-card-5OCCQ5AM.css.map */`]})}return e})();var ex="images/team/members",tx=[{name:"mike kordvani",profile_picture:"mike.png",role:"Founder & CEO",about:"With a passion for technology and startups, Michael Kordvani founded and stands as CEO of SEM Nexus, the worlds leading startup mobile app agency. With 4 years of mobile app experience, and a background in sales, development, and marketing, Michael aims to lead the budding startups of the world."},{name:"marco coronado",profile_picture:"marco.png",role:"CTO",about:'Marco Coronado is a commercially-minded Technology Executive and the CTO of Semnexus, where he specializes in the intersection of AI innovation and regulated digital product development. With a career defined by bridging the gap between abstract business ideas and high-performance software, Marco leads a cross-functional team of engineers and designers to ship enterprise-grade applications in the MedTech and AI sectors. At Semnexus, Marco oversees the entire technical lifecycle\u2014from the initial architectural "Discovery" phase to the deployment of HIPAA-compliant healthcare platforms. He is the architect behind Adscapsule, a proprietary marketing intelligence system, and has been instrumental in scaling the agency\u2019s delivery velocity. Known for his ability to navigate complex regulatory landscapes while maintaining high development speed, Marco is a trusted advisor to founders looking to build scalable, AI-driven products from the ground up'},{name:"john michael guglielmi",profile_picture:"john.png",role:"Design Director",about:"With a distinct passion for animation and motion graphics, John has managed to hone his skills in the art of movement in design, resulting in excellent composition and pacing in the final product. When John isn't animating or video editing, he can be found in the movie theater, watching both new and old films to cross off his watch list."},{name:"wiam mahsoun",profile_picture:"wiam.png",role:"Digital Marketing Director",about:"Wiam, a Digital Marketing Director at SEM Nexus, brings over 6 years of strategic marketing expertise along with 4 years in project management. She earned her Bachelor's degree in Commercial Affairs and Business Strategies from Toulouse Business School. Wiam's credentials include the Facebook Marketing Associate, Google Ads App Marketing, LinkedIn Digital Marketing, and Apple Search Ads certificates. Fluent in English, French, and Arabic, she also enjoys traveling and discovering new sceneries. Digital Marketing Director."}];var nx=(()=>{class e{getTeamMembers(){return tx.map(t=>Z(I({},t),{profile_picture:`${ex}/${t.profile_picture}`}))}static \u0275fac=function(i){return new(i||e)};static \u0275prov=A({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();function b2(e,n){if(e&1&&(l(0,"div"),v(1,"app-team-card",3),u()),e&2){let t=n.$implicit;f(),b("teamMember",t)}}var ix=(()=>{class e{teamService;teamMembers=[];constructor(t){this.teamService=t,this.teamMembers=t.getTeamMembers()}static \u0275fac=function(i){return new(i||e)(D(nx))};static \u0275cmp=C({type:e,selectors:[["app-team-card-container"]],decls:3,vars:1,consts:[[1,"flex","justify-center","pt-[130px]","z-10"],[1,"team-grid"],[4,"ngFor","ngForOf"],[3,"teamMember"]],template:function(i,r){i&1&&(l(0,"div",0)(1,"div",1),Ee(2,b2,2,1,"div",2),u()()),i&2&&(f(2),b("ngForOf",r.teamMembers))},dependencies:[K,Jt,XC],styles:[`.team-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:1fr;gap:24px}@media (min-width: 1170px){.team-grid[_ngcontent-%COMP%]{grid-template-columns:repeat(2,1fr)}}
74/*# sourceMappingURL=team-card-container-DD63RHNK.css.map */`]})}return e})();var rx=(()=>{class e{file="team";seo=y(se);ngOnInit(){this.seo.apply({title:"About Us",description:"Meet the SEM Nexus team \u2014 founders, engineers, and growth marketers who build and scale mobile apps for B2B and B2C clients.",canonical:"/team/",image:"https://semnexus.com/images/team/backgrounds/team.avif",imageAlt:"SEM Nexus team",type:"website"}),this.seo.setBreadcrumbs([{name:"Home",url:"/"},{name:"About Us"}])}static \u0275fac=function(i){return new(i||e)};static \u0275cmp=C({type:e,selectors:[["app-team"]],decls:6,vars:2,consts:[["backgroundImage","images/sh
74ared/backgrounds/background-3.avif"],[1,"sr-only"],["height","520px","paddingTop","300px","opacity",".8","text","about us",3,"backgroundImage","title"]],template:function(i,r){i&1&&(l(0,"app-background",0)(1,"h1",1),p(2,"SEM Nexus Team \u2014 Mobile App Developers and Growth Marketers"),u(),v(3,"app-hero-section",2)(4,"app-team-card-container")(5,"app-connect"),u()),i&2&&(f(3),b("backgroundImage",`images/${r.file}/backgrounds/${r.file}.avif`)("title",`images/${r.file}/${r.file}.svg`))},dependencies:[fe,Te,ye,ix],encapsulation:2})}return e})();var ox=(()=>{class e{router;analyticsService;seo;constructor(t,i,r){this.router=t,this.analyticsService=i,this.seo=r}ngOnInit(){this.seo.apply({title:"Thanks for Booking",description:"Your call is on the calendar. We will reach out shortly to confirm details and next steps.",canonical:"/thank-you-for-booking/",type:"website",noindex:!0})}ngAfterViewInit(){this.analyticsService.trackBookingConversion()}navigateTo(t){if(t==="case-studies"){this.router.navigate(["/"],{fragment:"case-studies"});return}t==="blog"&&(window.location.href="/blog/"),this.router.navigate([t])}static \u0275fac=function(i){return new(i||e)(D(Se),D(Gu),D(se))};static \u0275cmp=C({type:e,selectors:[["app-thank-you"]],decls:22,vars:0,consts:[["backgroundImage","images/shared/backgrounds/background-3.avif","height","100%","width","100%","opacity",".8"],[1,"w-full","min-h-screen","flex","flex-col","justify-center","items-center","px-6","sm:px-12"],[1,"text-[60px]","sm:text-[80px]","md:text-[100px]","lg:text-[120px]","font-bold","mb-6","whitespace-nowrap","text-center"],[1,""],[1,"text-base","sm:text-lg","md:text-xl","mb-4"],[1,"text-base","sm:text-lg","md:text-xl","mb-10"],[1,"gradient-text","font-semibold","cursor-pointer",3,"click"],[1,"hidden","sm:block"],[1,"w-full","flex","justify-center"],["buttonText","RETURN HOME",3,"click"]],template:function(i,r){i&1&&(l(0,"app-background",0)(1,"div",1)(2,"h1",2),p(3," THANK YOU"),u(),l(4,"div",3)(5,"p",4),p(6," Thank y
74ou for booking - we are looking forward to your call. "),u(),l(7,"p",5),p(8," In the meantime, you can check out our "),l(9,"span",6),S("click",function(){return r.navigateTo("blog")}),p(10,"blog"),u(),p(11," and "),l(12,"span",6),S("click",function(){return r.navigateTo("case-studies")}),p(13,"case studies"),u(),p(14," to get a better "),v(15,"br",7),p(16," understanding of what "),l(17,"b"),p(18,"SEM Nexus"),u(),p(19," can do for you. "),u()(),l(20,"div",8)(21,"app-button",9),S("click",function(){return r.navigateTo("/")}),u()()()())},dependencies:[fe,re],encapsulation:2})}return e})();var w2=e=>({"sm:flex-row-reverse":e});function _2(e,n){if(e&1&&(Mn(0),l(1,"span",13),p(2),u(),Tn()),e&2){let t=E(2).$implicit,i=E();f(2),O(i.formatTitle(t.title).rest)}}function E2(e,n){if(e&1&&(l(0,"span",13),p(1),u()),e&2){let t=E(3).$implicit,i=E();f(),O(i.formatTitle(t.title).rest)}}function C2(e,n){if(e&1&&(l(0,"span",14),p(1),u(),Ee(2,E2,2,1,"span",15)),e&2){let t=E(2).$implicit,i=E();f(),O(i.formatTitle(t.title).first),f(),b("ngIf",i.formatTitle(t.title).rest)}}function x2(e,n){if(e&1&&(l(0,"p",16),p(1),u()),e&2){let t=E(2).$implicit;f(),O(t.content)}}function D2(e,n){if(e&1&&(l(0,"li"),p(1),u()),e&2){let t=n.$implicit;f(),O(t.trim())}}function S2(e,n){if(e&1&&(l(0,"ul",17),Ee(1,D2,2,1,"li",3),u()),e&2){let t=E(2).$implicit;f(),b("ngForOf",(t.content||"").split(","))}}function I2(e,n){if(e&1&&(l(0,"div")(1,"span",19),p(2),u(),l(3,"span"),p(4),u()()),e&2){let t=n.$implicit;f(2),Ce("",t.first," - "),f(2),O(t.second)}}function M2(e,n){if(e&1&&(l(0,"div",18),Ee(1,I2,5,2,"div",3),u()),e&2){let t=E(2).$implicit,i=E();f(),b("ngForOf",i.getFormattedLines(t.content))}}function T2(e,n){if(e&1&&(l(0,"li"),p(1),u()),e&2){let t=n.$implicit;f(),O(t)}}function A2(e,n){if(e&1&&(Mn(0),l(1,"h4",20),p(2),u(),l(3,"ul",21),Ee(4,T2,2,1,"li",3),u(),Tn()),e&2){let t=n.$implicit;f(2),O(t.subtitle),f(2),b("ngForOf",t.bullets)}}function k2(e,n){if(e&1&&(Mn(0),Ee(1,A2,5,2,"ng-container",3),Tn()),e&2){let t=E(2).$implicit;f(),b("ngForOf",t.nestedBullets)}}function O2(e,n){if(e&1&&(Mn(0),l(1,"div",5),v(2,"img",6),l(3,"div",7)(4,"h2",8),Ee(5,_2,3,1,"ng-container",9)(6,C2,3,2,"ng-template",null,0,th),u(),Ee(8,x2,2,1,"p",10)(9,S2,2,1,"ul",11)(10,M2,2,1,"div",12)(11,k2,2,1,"ng-container",4),u()(),Tn()),e&2){let t=Zm(7),i=E(),r=i.$implicit,o=i.index,s=E();
74f(),b("ngClass",kn(9,w2,o%2===1)),f(),b("src","images/shared/steps/0"+(o+1)+".png",pe)("alt","Step "+(o+1)),f(3),b("ngIf",s.formatTitle(r.title).single)("ngIfElse",t),f(3),b("ngIf",r.type==="text"),f(),b("ngIf",r.type==="bullets"),f(),b("ngIf",r.type==="list"),f(),b("ngIf",r.type==="titleBullets")}}function N2(e,n){if(e&1&&(Mn(0),Ee(1,O2,12,11,"ng-container",4),Tn()),e&2){let t=n.$implicit;f(),b("ngIf",t.type!=="conclusion")}}function R2(e,n){if(e&1&&(Mn(0),l(1,"div",22)(2,"h2",23),p(3,"Conclusion"),u(),l(4,"p",24),p(5),u()(),Tn()),e&2){let t=E().$implicit;f(5),O(t.content)}}function P2(e,n){if(e&1&&(Mn(0),Ee(1,R2,6,1,"ng-container",4),Tn()),e&2){let t=n.$implicit;f(),b("ngIf",t.type==="conclusion")}}var sx=(()=>{class e{items;formatTitle(t){if(!t)return{first:"",rest:"",single:!1};let i=t.trim(),r=i.indexOf(" ");if(r===-1)return{first:"",rest:i,single:!0};{let o=i.slice(0,r),s=" "+i.slice(r+1);return{first:o,rest:s,single:!1}}}getFormattedLines(t){return t?t.split(`
75`).map(i=>i.trim()).filter(i=>i.length).map(i=>{let r=i.split(/–|:/);return{first:r[0]?.trim()||"",second:r[1]?.trim().replace(/,$/,"")||""}}):[]}static \u0275fac=function(i){return new(i||e)};static \u0275cmp=C({type:e,selectors:[["app-dynamic-numbered-card"]],inputs:{items:"items"},decls:4,vars:2,consts:[["multiTitle",""],[1,"w-full","flex","justify-center","px-6","sm:px-10"],[1,"w-full","max-w-[900px]","flex","flex-col","gap-20","mt-20"],[4,"ngFor","ngForOf"],[4,"ngIf"],[1,"flex","flex-col","sm:flex-row","items-center","gap-10",3,"ngClass"],[1,"object-contain","max-h-[110px]","sm:max-h-[150px]","flex-shrink-0","mx-auto","sm:mx-0",3,"src","alt"],[1,"flex-1","text-white","leading-relaxed","max-w-[650px]","mx-auto","sm:mx-0","px-2"],[1,"text-2xl","font-semibold","mb-4","text-center","sm:text-left","font-outfit"],[4,"ngIf","ngIfElse"],["class","text-center sm:text-left",4,"ngIf"],["class","list-disc ml-6 space-y-2",4,"ngIf"],["class","space-y-3",4,"ngIf"],[1,"gradient-text"],[1,"text-white"],["class","gradient-text",4,"ngIf"],[1,"text-center","sm:text-left"],[1,"list-disc","ml-6","space-y-2"],[1,"space-y-3"],[1,"font-semibold"],[1,"text-lg","font-medium","mb-1"],[1,"list-disc","ml-6","mb-4"],[1,"w-full","mt-20"],[1,"text-2xl","font-semibold","mb-4","font-outfit","gradient-text","text-left","inline-block"],[1,"text-white","leading-relaxed","mx-auto","sm:mx-0","text-left"]],template:function(i,r){i&1&&(l(0,"div",1)(1,"div",2),Ee(2,N2,2,1,"ng-container",3)(3,P2,2,1,"ng-container",3),u()()),i&2&&(f(2),b("ngForOf",r.items),f(),b("ngForOf",r.items))},dependencies:[K,Er,Jt,ni],styles:[`[_nghost-%COMP%]{display:block}ul[_ngcontent-%COMP%]   li[_ngcontent-%COMP%]{padding-left:4px}img[_ngcontent-%COMP%]{flex-shrink:0}.gradient-text[_ngcontent-%COMP%]{background:linear-gradient(34.54deg,#d5087f 9.45%,#d971dc 40.67%,#7e47f3 67.89%,#59d0ff 92.71%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;color:#fff}
76/*# sourceMappingURL=dynamic-numbered-content-MPWD5VCQ.css.map */`]})}return e})();var F2=["carousel"];function L2(e,n){if(e&1&&(l(0,"div",8),v(1,"img",10),u()),e&2){let t=n.$implicit;f(),b("src",t,pe)}}function j2(e,n){if(e&1){let t=he();l(0,"div",1),v(1,"img",2),l(2,"h2",3),p(3),u(),l(4,"p",4),p(5),u(),l(6,"div",5)(7,"div",6,0),S("pointerdown",function(r){W(t);let o=E();return q(o.onPointerDown(r))})("pointermove",function(r){W(t);let o=E();return q(o.onPointerMove(r))})("pointerup",function(r){W(t);let o=E();return q(o.onPointerUp(r))})("pointercancel",function(r){W(t);let o=E();return q(o.onPointerUp(r))})("click",function(r){W(t);let o=E();return q(o.onCarouselClick(r))}),l(9,"div",7),H(10,L2,2,1,"div",8,te),u()()()(),v(12,"app-dynamic-numbered-card",9)}if(e&2){let t=E();f(),b("alt",eh(t.project.name))("src",t.project.logo,pe),f(2),Ce(" ",t.project.name," "),f(2),Ce(" ",t.project.description," "),f(5),z(t.project.images),f(2),b("items",t.project.dynamicContent)}}var ax=(()=>{class e{ngZone;carousel;project;isDragging=!1;startX=0;scrollStart=0;isUserInteracting=!1;scrollDirection=1;rafId;resumeTimeout;bounceCooldown=!1;constructor(t){this.ngZone=t}ngAfterViewInit(){this.carousel.nativeElement.querySelectorAll("img").forEach(i=>
76{i.draggable=!1,i.addEventListener("dragstart",r=>r.preventDefault())}),setTimeout(()=>this.startAutoScroll(),15e3)}startAutoScroll(){this.ngZone.runOutsideAngular(()=>{let t=()=>{if(!this.isDragging&&!this.isUserInteracting){let i=this.carousel.nativeElement,r=i.clientWidth*.001;i.scrollLeft+=this.scrollDirection*r;let o=i.scrollLeft+i.clientWidth>=i.scrollWidth-3,s=i.scrollLeft<=3;!this.bounceCooldown&&(o||s)&&(this.bounceCooldown=!0,setTimeout(()=>{this.scrollDirection=o?-1:1,this.bounceCooldown=!1},15e3))}this.rafId=requestAnimationFrame(t)};this.rafId=requestAnimationFrame(t)})}stopAutoScrollTemp(){this.isUserInteracting=!0,clearTimeout(this.resumeTimeout),this.resumeTimeout=setTimeout(()=>{this.isUserInteracting=!1},3e4)}onPointerDown(t){this.stopAutoScrollTemp(),this.isDragging=!0;let i=this.carousel.nativeElement;if(t.pointerId!=null&&i.setPointerCapture)try{i.setPointerCapture(t.pointerId)}catch{}this.startX=t.clientX-i.getBoundingClientRect().left,this.scrollStart=i.scrollLeft,i.classList.add("cursor-grabbing")}onPointerUp(t){this.isDragging=!1;let i=this.carousel.nativeElement;if(t.pointerId!=null&&i.releasePointerCapture)try{i.releasePointerCapture(t.pointerId)}catch{}i.classList.remove("cursor-grabbing")}onPointerMove(t){if(!this.isDragging||t.buttons!==void 0&&t.buttons!==1)return;t.preventDefault();let i=this.carousel.nativeElement,o=t.clientX-i.getBoundingClientRect().left-this.startX,s=i.querySelector("img"),a=s?s.clientWidth:300,c=window.innerWidth>1024?a/40:a/80,d=o*c;i.scrollLeft=this.scrollStart-d}onCarouselClick(t){this.stopAutoScrollTemp();let i=this.carousel.nativeElement,r=i.getBoundingClientRect();t.clientX-r.left<r.width/2?(i.scrollBy({left:-300,behavior:"smooth"}),this.scrollDirection=-1):(i.scrollBy({left:300,behavior:"smooth"}),this.scrollDirection=1)}static \u0275fac=function(i){return new(i||e)(D(Oe))};static \u0275cmp=C({type:e,selectors:[["app-project-details"]],viewQuery:function(i,r){if(i&1&&An(F2,5),i&2){let o;mn(o=hn())&&(r.carousel=o.first)}},inputs:{project:"project"},decls:1,vars:1,consts:[["carousel",""],[1,"flex","flex-col","items-center","w-full","px-4","sm:px-6","md:px-20","space-y-6","pt-[100px]","select-none"],[1,"w-[120px]","sm:w-[150px]","md:w-[200px]","h-auto","rounded-[25px]","object-contain",3,"src","alt"],[1,"text-2xl","sm:text-3xl","md:text-4xl","font-bold","text-center","break-words"],[1,"text-sm","sm:text-base","md:text-lg","text-center","max-w-full","sm:max-w-2xl","md:max-w-4xl","lg:max-w-5xl","break-words"],[1,"relative","w-full"],[1,"carousel","w-full","overflow-x-auto","scrollbar-hide","scroll-smooth","cursor-grab","active:cursor-grabbing","select-none",3,"pointerdown","pointermove","pointerup","pointercancel","click"],[1,"flex","flex-row","items-center","gap-4","sm:gap-5","md:gap-6","px-4","py-2","flex-nowrap","select-none"],[1,"flex-none","select-none","px-1","sm:px-2","md:px-3"],[3,"items"],["alt","Project image",1,"w-[250px]","sm:w-[280px]","md:w-[300px]","h-auto","object-contain","rounded-md","flex-none","select-none",3,"src"]],template:function(i,r){i&1&&j(0,j2,13,6),i&2&&V(r.project?0:-1)},dependencies:[K,sx],styles:[`.scrollbar-hide[_ngcontent-%COMP%]::-webkit-scrollbar{display:none}.scrollbar-hide[_ngcontent-%COMP%]{-ms-overflow-style:none;scrollbar-width:none}.carousel[_ngcontent-%COMP%]   img[_ngcontent-%COMP%]{pointer-events:none;-webkit-user-select:none;user-select:none}
77/*# sourceMappingURL=project-details-BWXN6Q52.css.map */`]})}return e})();function V2(e,n){if(e&1){let t=he();F(0,"img",5),gr("click",function(){W(t);let r=E(2);return q(r.goTo(r.downloadLinks.apple))}),L()}}function B2(e,n){if(e&1){let t=he();F(0,"img",6),gr("click",function(){W(t);let r=E(2);return q(r.goTo(r.downloadLinks.apple))}),L()}}function U2(e,n){if(e&1&&(F(0,"div",0),p(1," like the app? "),F(2,"p",1),p(3,"download"),L()(),F(4,"div",2),j(5,V2,1,0,"img",3),j(6,B2,1,0,"img",4),L()),e&2){let t=E();f(5),V(t.downloadLinks.apple?5:-1),f(),V(t.downloadLinks.google?6:-1)}}var cx=(()=>{class e{downloadLinks=void 0;goTo(t){window.open(t,"_blank")}static \u0275fac=function(i){return new(i||e)};static \u0275cmp=C({type:e,selectors:[["app-download-info"]],inputs:{downloadLinks:"downloadLinks"},decls:1,vars:1,consts:[[1,"font-outfit","font-bold","text-base","text-center"],[1,"gradient-text","font-semibold","text-4xl"],[1,"flex","flex-col","justify-center","px-4","sm:px-0","sm:flex-row","gap-[30px]","mt-[58px]"],["src","/images/download-buttons/apple.svg","alt",""],["src","/images/download-buttons/google.svg","alt",""],["src","/images/download-buttons/apple.svg","alt","",3,"click"],["src","/images/download-buttons/google.svg","alt","",3,"click"]],template:function(i,r){i&1&&j(0,U2,7,2),i&2&&V(r.downloadLinks?0:-1)},encapsulation:2})}return e})();function $2(e,n){if(e&1&&(l(0,"div",2),v(1,"app-card",3),u()),e&2){let t=n.$implicit;f(),b("info",t)}}var lx=(()=>{class e{cards=[];static \u0275fac=function(i){return new(i||e)};static \u0275cmp=C({type:e,selectors:[["app-card-container"]],inputs:{cards:"cards"},decls:4,vars:0,consts:[[1,"w-full","px-2","sm:px-[10%]","mt-[50px]"],[1,"w-full","flex","flex-wrap","justify-center","gap-6"],[1,"w-[400px]","items-center"],[3,"info"]],template:function(i,r){i&1&&(l(0,"div",0)(1,"div",1),H(2,$2,2,1,"div",2,te),u()()),i&2&&(f(2),z(r.cards))},dependencies:[Uo],encapsulation:2})}return e})();function H2(e,n){if(e&1&&(l(0,"h1",1),p(1),u()),e&2){let t=E();f(),vo("",t.projectData.name," \u2014 ",t.type==="development"?"Mobile App Development":"App Mar
77keting"," Case Study")}}var ot=(()=>{class e{router;route;devProjectsService;marketingProjectsService;type="development";projectName=null;projectData=null;file="ai-development";seo=y(se);constructor(t,i,r,o){this.router=t,this.route=i,this.devProjectsService=r,this.marketingProjectsService=o}ngOnInit(){this.route.data.subscribe(t=>{let i=t.slug,r=t.type;this.route.paramMap.subscribe(o=>{let s=o.get("project")||i;if(!s){this.router.navigateByUrl("/");return}(r??(this.router.url.startsWith("/case-studies/")?"development":"marketing"))==="development"?this.devProjectsService.getProjectByUri(s).subscribe(c=>{this.projectData=c??null,this.projectData?(this.type="development",this.applySeo(s,this.projectData,"development")):this.router.navigateByUrl("/")}):this.marketingProjectsService.getProjectByUri(s).subscribe(c=>{this.projectData=c??null,this.projectData?(this.type="marketing",this.applySeo(s,this.projectData,"marketing")):this.router.navigateByUrl("/")})})})}applySeo(t,i,r){let o=r==="development"?`/case-studies/${t}/`:`/${t}/`,s=`https://semnexus.com${o}`,a=i.images&&i.images.length>0?i.images[0]:i.logo;this.seo.apply({title:`${i.name} Case Study`,description:i.description.slice(0,160),canonical:o,image:a,imageAlt:`${i.name} app \u2014 case study`,type:"website"}),this.seo.setBreadcrumbs([{name:"Home",url:"/"},{name:r==="development"?"Development Case Studies":"Marketing Case Studies",url:r==="development"?"/development-case-studies/":"/marketing-case-studies/"},{name:i.name}]),this.seo.setJsonLd("case-study",{"@context":"https://schema.org","@type":"CreativeWork","@id":`${s}#case-study`,name:`${i.name} \u2014 case study`,headline:i.name,description:i.description,image:[a],url:s,author:{"@id":"https://semnexus.com/#organization"},publisher:{"@id":"https://semnexus.com/#organization"},about:{"@type":"SoftwareApplication",name:i.name,applicationCategory:"MobileApplication"},mainEntityOfPage:{"@type":"WebPage","@id":s}})}goToCaseStudies(){let t=this.type==="development"?"development-case-studies":"marketing-case-studies";this.router.navigate([t])}getProjectCards(){if(this.type==="marketing"){let t=this.projectData;return[{icon:"images/shared/cards/screw.png",title:"our strategy",text:t.strategy||""},{icon:"images/shared/cards/bag.png",title:"app store optimization",text:t.optimization||""},{icon:"images/shared/cards/bulb.png",title:"ad creative",text:t.creative||""}]}else if(this.type==="development"){let t=this.projectData;return[{icon:"images/shared/cards/rocket.png",title:"discovery",text:t.discovery||""},{icon:"images/shared/cards/bulb.png",title:"design",text:t.design||""},{icon:"images/shared/cards/plant.png",title:"development",text:t.development||""}]}return[]}static \u0275fac=function(i){return new(i||e)(D(Se),D(pt),D(id),D(Ku))};static \u0275cmp=C({type:e,selectors:[["app-case-studies-detail"]],decls:24,vars:9,consts:[[3,"backgroundImage"],[1,"sr-only"],["height","620px","paddingTop","520px","opacity",".7",3,"backgroundImage","projectName","text"],["backgroundImage","images/shared/backgrounds/background-2.avif"],[3,"project"],[1,"mt-[100px]","pb-[168px]"],[3,"cards"],[1,"mpb-[50px]"],[3,"downloadLinks"],["backgroundImage","images/shared/backgrounds/background-3.avif"],[1,"pt-[200px]"],[1,"flex","flex-col","justify-center","items-center"],[1,"font-outfit","text-xl","sm:text-3xl","font-semibold","mb-2","sm:mb-6"],[1,"gradient-text"],[1,"font-inter","mb-6","sm:mb-[21px]","text-center","text-sm","sm:text-base"],["buttonText","see all case studies",3,"clicked"]],template:function(i,r){i&1&&(l(0,"app-background",0),j(1,H2,2,2,"h1",1),v(2,"app-hero-section",2),u(),l(3,"app-background",3),v(4,"app-project-details",4),l(5,"div",5),v(6,"app-card-container",6),u(),l(7,"div",7),v(8,"app-download-info",8),u()(),l(9,"app-background",9)(10,"div",10)(11,"app-info-card")(12,"div",11)(13,"div",12),p(14),l(15,"span",13),p(16,"case studies"),u()(),l(17,"div",14),p(18," See the "),l(19,"b"),p(20,"SEM Nexus"),u(),p(21," process in action. Join us and take a deep dive into our best development work. "),u(),l(22,"app-button",15),S("clicked",function(){return r.goToCaseStudies()}),u()()()(),v(23,"app-connect"),u()),i&2&&(b("backgroundImage","images/sh
77ared/backgrounds/default.png"),f(),V(r.projectData?1:-1),f(),b("backgroundImage",(r.projectData==null?null:r.projectData.background)||`images/${r.file}/backgrounds/${r.file}.png`)("projectName",(r.projectData==null?null:r.projectData.name)||"")("text",r.type??""),f(2),b("project",r.projectData),f(2),b("cards",r.getProjectCards()),f(2),b("downloadLinks",r.projectData==null?null:r.projectData.downloadLinks),f(6),Ce(" ",r.type," "))},dependencies:[fe,Te,ye,en,re,ax,cx,lx],encapsulation:2})}return e})();var ux=(()=>{class e{static \u0275fac=function(i){return new(i||e)};static \u0275cmp=C({type:e,selectors:[["app-process"]],decls:8,vars:0,consts:[[1,"flex","flex-col","justify-center","items-center","z-10"],[1,"font-outfit","text-3xl","font-semibold","mb-6","text-center","px-4"],[1,"gradient-text"],[1,"px-4","sm:px-[20%]","text-center","text-sm","sm:text-base","relative","z-10"]],template:function(i,r){i&1&&(F(0,"div",0)(1,"div",1),p(2," from mobile "),F(3,"span",2),p(4,"strategy"),L(),p(5," to a shipping app "),L(),F(6,"div",3),p(7," We help B2B and B2C companies turn a mobile idea into a working product. From market validation and feature scoping to a fully shipped iOS and Android app, we partner with you end-to-end \u2014 so you don't have to assemble a strategy team, a design firm, and a development shop separately. The result is a mobile product that ships on time and earns its place in your customers' phones. "),L()())},dependencies:[K],encapsulation:2})}return e})();function z2(e,n){if(e&1&&(l(0,"div",3),v(1,"app-card",4),u()),e&2){let t=n.$implicit;f(),b("info",t)}}var dx=(()=>{class e{cardInfo=[];static \u0275fac=function(i){return new(i||e)};static \u0275cmp=C({type:e,selectors:[["app-marketing-card-container"]],inputs:{cardInfo:"cardInfo"},decls:3,vars:1,consts:[[1,"w-full","px-2","sm:px-[10%]","mt-[50px]"],[1,"w-full","flex","flex-wrap","justify-center","gap-6"],["class","w-[400px] items-center",4,"ngFor","ngForOf"],[1,"w-[400px]","items-center"],[3,"info"]],template:function(i,r){i&1&&(l(0,"div",0)(1,"div",1),Ee(2,z2,2,1,"div",2),u()()),i&2&&(f(2),b("ngForOf",r.cardInfo))},dependencies:[K,Jt,Uo],encapsulation:2})}return e})();var px=(()=>{class e{cardInfoService;cardInfo=[];constructor(t){this.cardInfoService=t}ngOnInit(){this.cardInfo=this.cardInfoService.getCardInfoData(tt.BUSINESS_MOBILE_CONSULTING)}static \u0275fac=function(i){return new(i||e)(D(Pi))};static \u0275cmp=C({type:e,selectors:[["app-edge"]],decls:7,vars:1,consts:[[1,"flex","flex-col","justify-content","mt-[80px]"],[1,"font-outfit","font-semibold","text-3xl","text-center","p-2"],[1,"gradient-text"],[3,"cardInfo"]],template:function(i,r){i&1&&(l(0,"div",0)(1,"div",1),p(2," why your business needs a "),l(3,"span",2),p(4,"mobile edge"),u(),p(5," ? "),u(),v(6,"app-marketing-card-container",3),u()),i&2&&(f(6),b("cardInfo",r.cardInfo))},dependencies:[dx],encapsulation:2})}return e})();function G2(e,n){if(e&1&&(l(0,"div",2),v(1,"app-numbered-card",4),u()),e&2){let t=n.$implicit;f(),b("info",t)}}var fx=(()=>{class e{cardInfoService;cardInfo=[];showPosts=ae(!0);activeIndex=0;carouselTimeout=4e3;timer;constructor(t){this.cardInfoService=t}ngOnInit(){this.cardInfo=this.cardInfoService.getNumberedCardInfo(tt.BUSINESS_MOBILE_CONSULTING),this.startCarouselAutoplay()}ngOnDestroy(){this.clearCarouselTimer()}get activeInfo(){return this.cardInfo[this.activeIndex]??this.cardInfo[0]}startCarouselAutoplay(){this.clearCarouselTimer(),this.timer=setTimeout(()=>{this.showPosts.update(t=>!t),setTimeout(()=>{this.activeIndex=this.cardInfo.length===0?0:(this.activeIndex+1)%this.cardInfo.length,this.showPosts.update(t=>!t)},50),this.startCarouselAutoplay()},this.carouselTimeout)}clearCarouselTimer(){this.timer&&(clearTimeout(this.timer),this.timer=null)}static \u0275fac=function(i){return new(i||e)(D(Pi))};static \u0275cmp=C({type:e,selectors:[["app-consulting-process"]],decls:6,vars:3,consts:[[1,"w-full","flex","flex-col","items-center","show-web"],[1,"flex","items-center","justify-center","gap-[23px]","w-full","px-2"],[1,"w-[400px]"],[1,"w-[350px]","flex","items-center","px-2","show-mobile"],[3,"info"]],template:function(i,r){i&1&&(l(0,"div",0)(1,"div",1),H(2,G2,2,1,"div",2,te),u()(),l(4,"div",3),v(5,"app-numbered-card",4),u()),i&2&&(f(2),z(r.cardInfo),f(2),ce("slide-in",r.showPosts()),f(),b("info",r.activeInfo))},dependencies:[K,Yu],styles:[`@keyframes _ngcontent-%COMP%_slideInFromRight{0%{opacity:0;transform:translate(40px)}to{opacity:1;transform:translate(0)}}.slide-in[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_slideInFromRight 1s ease-in-out}@media (max-width: 1599px){.show-web[_ngcontent-%COMP%]{display:none}.show-mobile[_ngcontent-%COMP%]{display:inline}}@media (min-width: 1599px){.show-mobile[_ngcontent-%COMP%]{display:none}.show-web[_ngcontent-%COMP%]{display:inline}}
78/*# sourceMappingURL=consulting-process.component-7D3OPLB6.css.map */`]})}return e})();var W2="Mobile App Strategy & Implementation",mx="Mobile strategy and product development for B2B and B2C companies. We turn a mobile idea into a shipping iOS and Android app \u2014 strategy, design, build, and growth from one team.",rd="/business-mobile-consulting/",q2="https://semnexus.com/images/business-mobile-consulting/backgrounds/business-mobile-consulting.avif",Y2="https://calendly.com/marcocl/30min-1?hide_gdpr_banner=1&background_color=f2ecfb&text_color=0d0420&primary_color=d5087f",Z2=[{q:"What does a typical engagement cost?",a:"A discovery engagement runs $4,000\u2013$10,000 and produces a feature list, technical recommendation, and budget. A full build is typically $20,000\u2013$200,000 depending on scope, integrations, and platform coverage. We share a fixed quote after discovery so there are no surprises after."},{q:"How long until we launch?",a:"Discovery is 1\u20132 weeks. A focused first version is typically 8\u201316 weeks of build. Most clients are in the App Store within 4 months of kickoff. Larger platforms ship a phase-one first and add scope iteratively."},{q:"Do you only consult, or do you also build the app?",a:"Both. The same team that scopes your strategy designs and ships the product. You do not hand a roadmap to a 
78separate development shop and hope it survives translation. Strategy, design, engineering, and growth are one team here."},{q:"What tech stacks do you work with?",a:"We ship native iOS and Android, and we use React Native, Flutter, and Angular/Ionic where a hybrid codebase fits the budget and feature set. Backends are typically Node, Laravel, or Python \u2014 chosen to fit your team's existing stack when there is one."},{q:"We already have a partial app \u2014 can you pick it up?",a:"Yes. Discovery includes a technical audit of what exists. We tell you honestly whether to continue, refactor, or restart, and we scope the path forward against your budget."}],hx=(()=>{class e{calendly;seo;file="business-mobile-consulting";constructor(t,i){this.calendly=t,this.seo=i}ngOnInit(){this.seo.apply({title:W2,description:mx,canonical:rd,image:q2,imageAlt:"Mobile app strategy and implementation by SEM Nexus",type:"website"}),this.seo.setBreadcrumbs([{name:"Home",url:"/"},{name:"Services",url:"/mobile-app-marketing-services/"},{name:"Mobile App Strategy & Implementation"}]),this.seo.setJsonLd("service",{"@context":"https://schema.org","@type":"Service","@id":`https://semnexus.com${rd}#service`,name:"Mobile App Strategy & Implementation",serviceType:"Mobile app strategy and product development",description:mx,provider:{"@id":"https://semnexus.com/#organization"},areaServed:{"@type":"Country",name:"United States"},url:`https://semnexus.com${rd}`,offers:{"@type":"OfferCatalog",name:"Mobile app strategy and implementation engagements",itemListElement:[{"@type":"Offer",name:"Discovery (1\u20132 weeks)",description:"Feature list, technical recommendation, realistic budget."},{"@type":"Offer",name:"Build (8\u201316 weeks)",description:"Design, development, iOS and Android shipped in parallel."},{"@type":"Offer",name:"Launch + grow (ongoing)",description:"App Store launch, growth experiments, version-over-version improvements."}]}}),this.seo.setJsonLd("faq",{"@context":"https://schema.org","@type":"FAQPage",mainEntity:Z2.map(t=>({"@type":"Question",name:t.q,acceptedAnswer:{"@type":"Answer",text:t.a}}))})}scheduleCall(t="bottom"){this.calendly.openPopup(Y2,`${rd}#${t}`).catch(()=>{})}static \u0275fac=function(i){return new(i||e)(D(Re),D(se))};static \u0275cmp=C({type:e,selectors:[["app-business-mobile-consulting"]],decls:116,vars:2,consts:[["backgroundImage","images/shared/backgrounds/background-3.avif"],[1,"sr-only"],["height","520px","paddingTop","300px","opacity",".8","text","service",3,"backgroundImage","title"],[1,"w-full","mt-[80px]","mb-[40px]","px-4","sm:px-[10%]"],[1,"grid","grid-cols-1","sm:grid-cols-3","gap-6","max-w-[1050px]","mx-auto"],[1,"flex","flex-col","items-center","bg-white/10","backdrop-blur-[40px]","rounded-[24px]","py-8","px-4","text-center"],[1,"font-outfit","text-4xl","sm:text-5xl","font-semibold","gradient-text"],[1,"font-inter","text-sm","sm:text-base","mt-2"],[1,"font-outfit","text-4xl","sm:text-5xl","font-semibold","gradient-text","text-center","leading-tight"],[1,"w-full","mt-[60px]","mb-[80px]","flex","flex-col","items-center","px-4"],[1,"font-inter","text-sm","sm:text-base","text-center","mb-[24px]","max-w-[600px]"],["buttonText","schedule a call",3,"click"],[1,"flex","flex-col","justify-content","my-[80px]","text-center"],[1,"font-outfit","font-semibold","text-3xl","text-center","p-2"],[1,"gradient-text"],[1,"font-inter","text-sm","sm:text-base","px-4","sm:px-[15%]"],[1,"mt-[100px]"],[1,"flex","flex-col","justify-center","items-center"],[1,"font-outfit","text-xl","sm:text-3xl","font-semibold","mb-2","sm:mb-6"],[1,"font-inter","mt-[17px]","mb-6","sm:mb-[21px]","text-center","text-sm","sm:text-base","px-1","sm:px-[15%]"],[1,"mt-[50px]","px-2","font-outfit","font-semibold","text-base","sm:text-lg","grid","grid-cols-1","[@media(min-width:1155px)]:grid-cols-2","gap-6"],[1,"flex","flex-row","items-start"],["src","images/sh
78ared/check.svg","alt","","loading","lazy",1,"w-[26px]","mr-[10px]","mt-[6px]"],[1,"text-left"],[1,"w-full","mt-[110px]","mb-[40px]","px-4","sm:px-[10%]"],[1,"max-w-[1050px]","mx-auto"],[1,"font-outfit","font-semibold","text-3xl","text-center","mb-[50px]"],[1,"flex","flex-col","gap-4"],[1,"bg-white/10","backdrop-blur-[40px]","rounded-[24px]","px-6","py-5","group"],[1,"font-outfit","font-semibold","text-lg","cursor-pointer","list-none","flex","justify-between","items-center"],[1,"ml-4","text-2xl","gradient-text","group-open:rotate-45","transition-transform"],[1,"font-inter","text-sm","sm:text-base","mt-4","leading-relaxed"],[1,"w-full","mt-[80px]","pb-[102px]","flex","flex-col","items-center","px-4"],[1,"font-outfit","font-semibold","text-3xl","text-center"],[1,"mt-[31px]","mb-[40px]","px-4","sm:px-[12%]","text-center","text-sm","sm:text-base","max-w-[800px]"]],template:function(i,r){i&1&&(l(0,"app-background",0)(1,"h1",1),p(2,"Mobile App Strategy & Implementation for B2B and B2C Companies"),u(),v(3,"app-hero-section",2)(4,"app-process"),l(5,"div",3)(6,"div",4)(7,"div",5)(8,"div",6),p(9,"15+"),u(),l(10,"div",7),p(11,"apps shipped on iOS and Android"),u()(),l(12,"div",5)(13,"div",6),p(14,"7"),u(),l(15,"div",7),p(16,"industries served \u2014 healthcare, logistics, retail, B2B SaaS, and more"),u()(),l(17,"div",5)(18,"div",8),p(19,"end-to-end"),u(),l(20,"div",7),p(21,"strategy, design, build, launch, growth \u2014 one team"),u()()()(),l(22,"div",9)(23,"div",10),p(24," Want to talk through a specific use case for your business? "),u(),l(25,"app-button",11),S("click",function(){return r.scheduleCall("top")}),u()(),v(26,"app-edge"),l(27,"div",12)(28,"div",13),p(29," how we "),l(30,"span",14),p(31,"work with you"),u()(),l(32,"span",15),p(33,"Three phases. Defined deliverables. Realistic timelines from kickoff to launch."),u()(),v(34,"app-consulting-process")(35,"div",16),l(36,"app-info-card")(37,"div",17)(38,"div",18),p(39," real results, "),l(40,"span",14),p(41,"real business impact"),u()(),l(42,"div",19),p(43," Our clients don't just get an app \u2014 they get a mobile strategy built to accelerate their business. We've helped B2B and B2C companies alike: "),l(44,"div",20)(45,"div",21),v(46,"img",22),l(47,"div",23),p(48," increase client retention with personalized mobile experiences "),u()(),l(49,"div",21),v(50,"img",22),l(51,"div",23),p(52," expand into new markets with mobile-driven offerings "),u()(),l(53,"div",21),v(54,"img",22),l(55,"div",23),p(56," reduce support costs through self-service and automation "),u()(),l(57,"div",21),v(58,"img",22),l(59,"div",23),p(60," improve operational visibility with real-time data and analytics "),u()()()()()(),l(61,"div",24)(62,"div",25)(63,"div",26),p(64," common "),l(65,"span",14),p(66,"questions"),u()(),l(67,"div",27)(68,"details",28)(69,"summary",29)(70,"span"),p(71,"What does a typical engagement cost?"),u(),l(72,"span",30),p(73,"+"),u()(),l(74,"div",31),p(75," A discovery engagement runs $4k\u2013$10k and produces a feature list, technical recommendation, and budget. A full build is typically $20k\u2013$200k depending on scope, integrations, and platform coverage. We share a fixed quote after discovery \u2014 no surprises after. "),u()(),l(76,"details",28)(77,"summary",29)(78,"span"),p(79,"How long until we launch?"),u(),l(80,"span",30),p(81,"+"),u()(),l(82,"div",31),p(83," Discovery is 1\u20132 weeks. A focused first version is typically 8\u201316 weeks of build. So most clients are in the App Store within 4 months of kickoff. Larger platforms ship a phase-one first, then add scope iteratively. "),u()(),l(84,"details",28)(85,"summary",29)(86,"span"),p(87,"Do you only consult, or do you also build the app?"),u(),l(88,"span",30),p(89,"+"),u()(),l(90,"div",31),p(91," Both. The same team that scopes your strategy designs and ships the product. You don't hand a roadmap to a separate dev shop and hope it survives translation. Strategy, design, engineering, and growth are one team here. "),u()(),l(92,"details",28)(93,"summary",29)(94,"span"),p(95,"What tech stacks do you work with?"),u(),l(96,"span",30),p(97,"+"),u()(),l(98,"div",31),p(99," We ship native iOS and Android, and we use React Native, Flutter, and Angular/Ionic where a hybrid codebase fits the budget and feature set. Backends are typically Node, Laravel, or Python \u2014 chosen to fit your team's existing stack when there is one. "),u()(),l(100,"details",28)(101,"summary",29)(102,"span"),p(103,"We already have a partial app \u2014 can you pick it up?"),u(),l(104,"span",30),p(105,"+"),u()(),l(106,"div",31),p(107," Yes. Discovery includes a technical audit of what exists. We tell you honestly whether to continue, refactor, or restart, and we scope the path forward against your budget. "),u()()()()(),l(108,"div",32)(109,"div",33)(110,"span",14),p(111,"let's talk"),u(),p(112," about your mobile path "),u(),l(113,"div",34),p(114," Schedule a 30-minute call. We'll talk through your idea and what a mobile path forward could look like \u2014 no sales script, no commitment. "),u(),l(115,"app-button",11),S("click",function(){return r.scheduleCall("bottom")}),u()()()),i&2&&(f(3),b("backgroundImage",`images/${r.file}/backgrounds/${r.file}.avif`)("title",`images/${r.file}/${r.file}.svg`))},dependencies:[fe,Te,ux,re,px,fx,en],encapsulation:2})}return e})();var od=[{headingHtml:'answer engine<br><span class="gradient-text">optimization</span><br>services',lead:["Answer Engine Optimization (AEO) is the process of increasing your brand\u2019s visibility within AI-powered answer engines such as ChatGPT, Google AI Overviews, Perplexity, Claude, and Gemini. Unlike traditional SEO, which focu
78ses on ranking web pages, AEO focuses on becoming the answer that AI systems recommend when users ask questions."],outro:["As AI-powered search continues to replace traditional search behavior, businesses must optimize not only for search engines but also for large language models, retrieval systems, and answer engines that synthesize information from multiple sources. SemNexus helps businesses build the authority, structure, and digital presence necessary to become trusted AI citations and recommendations across today\u2019s leading AI platforms."]},{headingHtml:'ChatGPT optimization & <span class="gradient-text">AI search visibility</span>',lead:["Millions of users now ask ChatGPT for recommendations instead of searching through traditional search results.","When users ask questions such as:"],bullets:["What is the best app marketing agency?","Which CRM should I use?","What is the best AI software?","Who are the top app developers?"],outro:["The AI determines which brands deserve to be cited and recommended.","Our ChatGPT optimization services help businesses improve visibility within AI-generated answers by strengthening authority signals, entity recognition, structured content, and third-party validation across the web. The goal is simple: increase the probability that AI systems recognize your company as a trusted answer."]},{headingHtml:'entity optimization<br><span class="gradient-text">&amp; knowledge graph</span><br>development',lead:["Modern AI systems think in entities, not keywords.","An entity can be a company, product, founder, service, or organization. Before AI systems can confidently recommend a brand, they must first understand that the brand exists, what it does, and how it relates to other entities across the web.","Our entity optimization services focus on:"],bullets:["Knowledge graph development","Entity mapping","Brand disambiguation","Digital footprint expansion","Entity relationship building","AI identity verification"],outro:["This process helps establish your company as a recognized and authoritative entity across AI search ecosystems."]}],sd=[{headingHtml:'<span class="gradient-text">AI citation</span><br>building services',lead:["Answer engines are designed to minimize hallucinations and increase factual accuracy. To accomplish this, they evaluate information from multiple sources and look for consensus across the internet.","Our AI citation building services focus on increasing your brand\u2019s visibility across trusted sources that influence AI retrieval systems, including:"],bullets:["Industry publications","News websites","Review platforms","Professional directories","Podcasts","Forums","Expert interviews","Thought leadership content"],outro:["The more authoritative and consistent the signals surrounding your business, the more likely AI systems are to trust and reference your brand."]},{headingHtml:'schema markup<br><span class="gradient-text">&amp; structured data</span><br>optimization',lead:["Artificial intelligence systems process structured data far more efficiently than unstructured content. Advanced schema markup helps answer engines understand your products, services, organization, pricing, reviews, and expertise.","Our technical AEO services include:"],bullets:["Organization schema","FAQ schema","Product schema","Service schema","Software schema","Article schema","Review schema","Knowledge graph schema"],outro:["By improving machine readability, we help answer engines retrieve and understand your content more effectively."]},{headingHtml:'<span class="gradient-text">Google AI Overviews</span> optimization',lead:["Google\u2019s AI Overviews have fundamentally changed search behavior by generating answers directly within search results. Ranking organically is no longer enough. Businesses must also earn inclusion within AI-generated summaries and recommendations."],outro:["Our Google AI Overviews optimization services focus on creating content structures, authority signals, entity relationships, and technical implementations designed to improve visibility within Google\u2019s AI-generated search experiences."]}],ad=[{headingHtml:'<span class="gradient-text">generative engine</span><br>optimization (GEO)',lead:["Generative Engine Optimization (GEO) expands beyond traditional search engine optimization by focu
78sing specifically on how generative AI systems retrieve, evaluate, and synthesize information. GEO and AEO share many similarities, but GEO focuses more broadly on visibility across the entire AI ecosystem.","Our GEO services help businesses establish authority across:"],bullets:["ChatGPT","Perplexity","Claude","Gemini","Google AI","Future AI search platforms"],outro:["By building comprehensive AI authority, businesses position themselves for long-term visibility as search continues evolving."]},{headingHtml:'AEO reporting &amp; <span class="gradient-text">AI<br>visibility tracking</span>',lead:["Traditional SEO measures rankings. AEO measures recommendations, citations, visibility, and share of voice across answer engines.","Our reporting framework tracks:"],bullets:["AI citations","Brand mentions","Competitive visibility","Answer engine presence","Share of voice","Entity growth","Authority development"],outro:["This allows businesses to monitor how AI systems perceive and reference their brand over time."]},{headingHtml:'why choose <span class="gradient-text">semnexus</span> as your AEO agency',lead:["Answer Engine Optimization requires a fundamentally different approach than traditional SEO. Success depends on building machine-readable authority, strengthening entity recognition, improving structured data, earning trusted third-party citations, and creating content specifically designed for AI retrieval systems."],outro:["SemNexus combines technical optimization, AI search strategy, entity development, citation building, and content architecture into a unified AEO framework designed to help businesses become the trusted answer across ChatGPT, Google AI Overviews, Perplexity, Claude, Gemini, and future AI search platforms. As answer engines continue replacing traditional search behavior, our goal is simple: position your brand where AI systems look first and recommend most often."]}];var Q2=[{q:"What is Answer Engine Optimization (AEO)?",a:"AEO is the process of increasing your brand\u2019s visibility within AI-powered answer engines such as ChatGPT, Google AI Overviews, Perplexity, Claude, and Gemini. Unlike traditional SEO, which ranks web pages, AEO focuses on becoming the answer that AI systems recommend when users ask questions."},{q:"How is AEO different from traditional SEO?",a:"Traditional SEO optimizes pages to rank in search results and measures success by rankings. AEO optimizes for large language models, retrieval systems, and answer engines, and measures recommendations, citations, visibility, and share of voice across AI platforms."},{q:"How do you get a brand cited and recommended by ChatGPT and other AI tools?",a:"We strengthen authority signals, entity recognition, structured content, and third-party validation across the web \u2014 and build trusted citations across industry publications, news sites, review platforms, directories, podcasts, and forums \u2014 so AI systems recognize your company as a trusted answer."},{q:"What is entity optimization and why does it matter for AI search?",a:"Modern AI systems think in entities, not keywords. Entity optimization \u2014 knowledge graph development, entity mapping, brand disambiguation, and relationship building \u2014 helps AI systems understand that your brand exists, what it does, and how it relates to other entities before recommending it."},{q:"What is Generative Engine Optimization (GEO)?",a:"GEO focuses on how generative AI systems retrieve, evaluate, and synthesize information across the entire AI ecosystem \u2014 ChatGPT, Perplexity, Claude, Gemini, Google AI, and future platforms. It shares fundamentals with AEO but targets broader AI visibility."},{q:"How do you measure AEO results?",a:"Our reporting framework tracks AI citations, brand mentions, competitive visibility, answer engine presence, share of voice, entity growth, and authority development, so you can monitor how AI systems perceive and reference your brand over time."}],gx=(()=>{class e{file="aeo-marketing-service";heroTitleHtml='<span class="gradient-text">aeo</span> marketing service';introA=od[0];chatgptSection=od[1];entitySection=od[2];citationSection=sd[0];schemaSection=sd[1];googleAiSection=sd[2];geoSection=ad[0];geoCards=[{icon:"chatgpt.png",label:"chatgpt"},{icon:"perplexity.png",label:"perplexity"},{icon:"claude.png",label:"claude"},{icon:"gemini.png",label:"gemini"},{icon:"google-ai-logo.png",label:"google ai"},{icon:"future-ai.png",label:"future ai search platforms"}];reportingSection=ad[1];whyChooseSection=ad[2];calendly=y(Re);seo=y(se);ngOnInit(){this.seo.apply({title:"Answer Engine Optimization (AEO) Services",description:"Answer engine optimization services that make your brand the trusted answer across ChatGPT, Google AI Overviews, Perplexity, Claude, and Gemini \u2014 through entity optimization, AI citation building, schema, and GEO.",canonical:"/aeo-marketing-services/",image:"https://semnexus.com/images/aeo-marketing-service/backgrounds/aeo-marketing-service.avif",imageAlt:"Answer Engine Optimization services by SEM Nexus",type:"website"}),this.seo.setBreadcrumbs([{name:"Home",url:"/"},{name:"AEO Services"}]),this.seo.setJsonLd("service",{"@context":"https://schema.org","@type":"Service","@id":"https://semnexus.com/aeo-marketing-services/#service",name:"Answer Engine Optimization",serviceType:"AI search optimization (AEO/GEO/SGE)",description:"SEO and AEO services that get brands cited in ChatGPT, Perplexity, Claude, Gemini, and Google AI Overviews through entity optimization, AI citation building, structured data, and generative engine optimization.",provider:{"@id":"https://semnexus.com/#organization"},areaServed:{"@type":"Country",name:"United States"},url:"https://semnexus.com/aeo-marketing-services/",offers:{"@type":"OfferCatalog",name:"Answer engine optimization services",itemListElement:[{"@type":"Offer",name:"ChatGPT Optimization & AI Search Visibility",description:"Improve visibility within AI-generated answers via authority signals, entity recognition, structured content, and third-party validation."},{"@type":"Offer",name:"Entity Optimization & Knowledge Graph Development",description:"Knowledge graph development, entity mapping, brand disambiguation, digital footprint expansion, and AI identity verification."},{"@type":"Offer",name:"AI Citation Building",description:"Build trusted citations across publications, news, review platforms, directories, podcasts, forums, and thought leadership that influence AI retrieval."},{"@type":"Offer",name:"Schema Markup & Structured Data Optimization",description:"Organization, FAQ, Product, Service, Software, Article, Review, and knowledge graph schema to improve machine readability."},{"@type":"Offer",name:"Google AI Overviews Optimization",description:"Content structures, authority signals, entity relationships, and technical implementations to earn inclusion in Google AI Overviews."},{"@type":"Offer",name:"Generative Engine Optimization (GEO)",description:"Authority across ChatGPT, Perplexity, Claude, Gemini, Google AI, and future AI search platforms."},{"@type":"Offer",name:"AEO Reporting & AI Visibility Tracking",description:"Track AI citations, brand mentions, competitive visibility, answer engine presence, share of voice, entity growth, and authority development."}]}}),this.seo.setJsonLd("faq",{"@context":"https://schema.org","@type":"FAQPage","@id":"https://semnexus.com/aeo-marketing-services/#faq",mainEntity:Q2.map(t=>
78({"@type":"Question",name:t.q,acceptedAnswer:{"@type":"Answer",text:t.a}}))})}scheduleCall(){this.calendly.openPopup().catch(()=>{})}static \u0275fac=function(i){return new(i||e)};static \u0275cmp=C({type:e,selectors:[["app-aeo-marketing-service"]],decls:28,vars:12,consts:[["backgroundImage","images/shared/backgrounds/background-1.avif"],[1,"sr-only"],["height","520px","paddingTop","300px","opacity","0.8","text","service",3,"backgroundImage","titleHtml"],[1,"flex","flex-col","items-center","text-center","px-4","mt-[60px]"],["buttonText","get in touch now!",3,"clicked"],[3,"section"],["appReveal","",1,"section-divider"],["layout","center","marker","check",3,"section"],["marker","check",3,"section"],["backgroundImage","images/shared/backgrounds/background-2.avif"],["iconSide","left","icon","images/aeo-marketing-service/platform/google-ai.png",3,"section"],["backgroundImage","images/shared/backgrounds/background-3.avif"],[3,"section","cards"],["layout","center",3,"section"],[1,"h-[60px]"]],template:function(i,r){i&1&&(l(0,"app-background",0)(1,"h1",1),p(2,"Answer Engine Optimization (AEO) Services \u2014 Get Cited in ChatGPT, Perplexity, and Google AI Overviews"),u(),v(3,"app-hero-section",2),l(4,"div",3)(5,"app-button",4),S("clicked",function(){return r.scheduleCall()}),u()(),v(6,"app-lead-section",5)(7,"hr",6)(8,"app-tag-services",7)(9,"hr",6)(10,"app-tag-services",8)(11,"hr",6),u(),l(12,"app-background",9),v(13,"hr",6)(14,"app-tag-services",8)(15,"hr",6)(16,"app-steps-section",5)(17,"hr",6)(18,"app-icon-section",10),u(),l(19,"app-background",11),v(20,"hr",6)(21,"app-dev-services",12)(22,"hr",6)(23,"app-tag-services",8)(24,"hr",6)(25,"app-lead-section",13)(26,"div",14)(27,"app-connect"),u()),i&2&&(f(3),b("backgroundImage",`images/${r.file}/backgrounds/${r.file}.avif`)("titleHtml",r.heroTitleHtml),f(3),b("section",r.introA),f(2),b("section",r.chatgptSection),f(2),b("section",r.entitySection),f(4),b("section",r.citationSection),f(2),b("section",r.schemaSection),f(2),b("section",r.googleAiSection),f(3),b("section",r.geoSection)("cards",r.geoCards),f(2),b("section",r.reportingSection),f(2),b("section",r.whyChooseSection))},dependencies:[fe,Te,ye,re,ki,Ti,Ho,zo,Bo,rt],encapsulation:2})}return e})();var K2=(e,n)=>n.id;function J2(e,n){e&1&&(l(0,"p",6),p(1,"Loading\u2026"),u())}function X2(e,n){e&1&&(l(0,"p",6),p(1," No posts found in this archive. "),l(2,"a",7),p(3,"Back to blog"),u(),p(4,". "),u())}function eF(e,n){if(e&1&&v(0,"app-blog-card",9),e&2){let t=n.$implicit;b("post",t)}}function tF(e,n){if(e&1){let t=he();l(0,"div",10)(1,"button",11),S("click",function(){W(t);let r=E(2);return q(r.loadMore())}),p(2," Load more "),u()()}}function nF(e,n){if(e&1&&(l(0,"div",8),H(1,eF,1,1,"app-blog-card",9,K2),u(),j(3,tF,3,0,"div",10)),e&2){let t=E();f(),z(t.visible()),f(2),V(t.hasMore()?3:-1)}}var iF=24;function cd(e){return String(e).toLowerCase().trim().replace(/&amp;/g,"").replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")}var ld=(()=>{class e{file="blog";blogContent=y(Ni);seo=y(se);route=y(pt);type=ae(this.route.snapshot.data.type||"category");slug=ae(this.route.snapshot.paramMap.get("slug")||"");page=ae(1);allPosts=$o(this.blogContent.getPosts(),{initialValue:[]});filtered=Be(()=>{let t=this.type(),i=this.slug();return this.allPosts().filter(r=>{if(t==="category"){let o=(r.categories||[]).map(cd),s=(r.category_names||[]).map(cd);return o.includes(i)||s.includes(i)}return t==="tag"?(r.tags||[]).map(cd).includes(i):r.author_slug&&r.author_slug===i?!0:cd(r.author||"")===i})});displayName=Be(()=>{let t=this.type(),i=this.slug(),r=this.filtered()[0];return t==="category"?r?.category_names?.[0]||r?.categories?.[0]||i:t==="tag"?r?.tags?.[0]||i:r?.author||i});visible=Be(()=>this.filtered().slice(0,this.page()*iF));hasMore=Be(()=>this.visible().length<this.filtered().length);constructor(){let t=this.type(),i=this.slug(),r=t==="category"?"Category":t==="tag"?"Tag":"Author",o=`/${t}`,s=`${r}: ${i}`;this.seo.apply({title:s,description:`Posts in the ${r.toLowerCase()} archive "${i}" on SEM Nexus.`,canonical:`${o}/${i}/`,type:"website"}),this.seo.setBreadcrumbs([{name:"Home",url:"/"},{name:"Blog",url:"/blog"},{name:s}
78]),this.seo.setJsonLd("collection-page",{"@type":"CollectionPage","@id":`https://semnexus.com${o}/${i}/#collection`,url:`https://semnexus.com${o}/${i}/`,name:s,isPartOf:{"@id":"https://semnexus.com/#website"},inLanguage:"en-US"})}loadMore(){this.page.update(t=>t+1)}static \u0275fac=function(i){return new(i||e)};static \u0275cmp=C({type:e,selectors:[["app-archive"]],decls:13,vars:5,consts:[["backgroundImage","images/shared/backgrounds/background-3.avif"],[1,"max-w-[1200px]","mx-auto","px-6","pt-28","pb-20"],[1,"mb-12"],[1,"text-sm","uppercase","tracking-wider","text-white/60","mb-2"],[1,"text-3xl","md:text-5xl","font-bold","text-white","gradient-text"],[1,"text-white/70","mt-3"],[1,"text-center","text-white/70"],["routerLink","/blog",1,"underline"],[1,"grid","grid-cols-1","md:grid-cols-2","lg:grid-cols-3","gap-8"],[3,"post"],[1,"flex","justify-center","mt-12"],["type","button",1,"px-8","py-3","rounded-full","border","border-white/30","text-white","hover:bg-white/10","transition",3,"click"]],template:function(i,r){i&1&&(l(0,"app-background",0)(1,"section",1)(2,"header",2)(3,"p",3),p(4),u(),l(5,"h1",4),p(6),u(),l(7,"p",5),p(8),u()(),j(9,J2,2,0,"p",6)(10,X2,5,0,"p",6)(11,nF,4,1),u(),v(12,"app-connect"),u()),i&2&&(f(4),Ce(" ",r.type()==="category"?"Category":r.type()==="tag"?"Tag":"Author"," "),f(2),O(r.displayName()),f(2),vo(" ",r.filtered().length," ",r.filtered().length===1?"post":"posts"," "),f(),V(r.allPosts().length===0?9:r.filtered().length===0?10:11))},dependencies:[K,fe,ye,Oi],encapsulation:2})}return e})();var vx=(e,n)=>n.label,rF=(e,n)=>n.term;function oF(e,n){if(e&1&&(l(0,"div",32)(1,"div",33),p(2),u(),l(3,"p",34),p(4),u()()),e&2){let t=n.$implicit,i=n.$index;xt("--reveal-delay",i*90+"ms"),f(2),Ce(" ",t.label," "),f(2),Ce(" ",t.detail," ")}}function sF(e,n){if(e&1&&(l(0,"div",35)(1,"div",36)(2,"span",37),p(3),u(),l(4,"div")(5,"div",38),p(6),u(),l(7,"p",39),p(8),u()()()()),e&2){let t=n.$implicit,i=n.$index;Km("aia-step-"+i),xt("--reveal-delay",i*110+"ms"),f(3),O(i+1),f(3),Ce(" ",t.term," "),f(2),O(t.detail)}}function aF(e,n){if(e&1&&(l(0,"div",40)(1,"div",41),v(2,"img",42),l(3,"span"),p(4),u()(),l(5,"p",43),p(6),u()()),e&2){let t=n.$implicit,i=n.$index;xt("--reveal-delay",i*90+"ms"),f(4),O(t.label),f(2),O(t.detail)}}var yx=(()=>{class e{calendly=y(Re);seo=y(se);services=[{label:"workflow automation",detail:"We map your existing processes, identify the bottlenecks, and build automated workflows that connect your tools and eliminate manual handoffs."},{label:"intelligent document processing",detail:"Extract, classify, and route information from invoices, contracts, forms, and emails\u2014no more copy-pasting between systems."},{label:"ai-powered customer support",detail:"Deploy smart assistants that handle routine inquiries instantly, qualify leads, and escalate to your team only when human judgment is needed."},{label:"data & reporting automation",detail:"Turn scattered data into automated dashboards and reports that update in real time, giving leadership the visibility to make faster decisions."},{label:"custom ai integrations",detail:"Connect AI capabilities directly into the platforms you already use\u2014CRM, ERP, marketing, and internal tools\u2014without ripping out your stack."}];steps=[{term:"Discover",detail:"We assess your processes and pinpoint the highest-impact automation opportunities."},{term:"Design",detail:"We architect a solution tailored to your tools, team, and goals."},{term:"Deploy",detail:"We build, test, and launch your automations with minimal disruption."},{term:"Optimize",detail:"We monitor performance and refine continuously to maximize results."}];reasons=[{label:"built for your scale",detail:"We understand the unique pressures of mid-market operations\u2014lean teams, ambitious targets, and no room for bloated enterprise overhead."},{label:"measurable roi",detail:"Every automation we build is tied to a clear outcome: hours saved, errors reduced, or revenue gained."},{label:"no disruption",detail:"We integrate with your existing systems and roll out in phases, so your operations never skip a beat."},{label:"a partner, not just a vendor",detail:"We stay involved after launch to optimize, expand, and ensure your automations keep delivering."}];
78ngOnInit(){this.seo.apply({title:"AI Automation Agency",description:"SemNexus is an AI automation agency that helps mid-market companies automate repetitive, time-draining processes \u2014 so your team can focus on the work that actually moves the business forward.",canonical:"/ai-automation-agency/",image:"https://semnexus.com/images/bg-header.png",imageAlt:"AI automation agency by SemNexus",type:"website"}),this.seo.setBreadcrumbs([{name:"Home",url:"/"},{name:"AI Automation"}]),this.seo.setJsonLd("service",{"@context":"https://schema.org","@type":"Service","@id":"https://semnexus.com/ai-automation-agency/#service",name:"AI Automation",serviceType:"Business process automation with AI",description:"AI automation services for mid-market companies \u2014 workflow automation, intelligent document processing, AI-powered customer support, data & reporting automation, and custom AI integrations.",provider:{"@id":"https://semnexus.com/#organization"},areaServed:{"@type":"Country",name:"United States"},url:"https://semnexus.com/ai-automation-agency/",offers:{"@type":"OfferCatalog",name:"AI automation services",itemListElement:this.services.map(t=>({"@type":"Offer",name:t.label,description:t.detail}))}})}scheduleCall(){this.calendly.openPopup().catch(()=>{})}static \u0275fac=function(i){return new(i||e)};static \u0275cmp=C({type:e,selectors:[["app-ai-automation"]],decls:71,vars:0,consts:[[1,"aia-hero","relative","w-full","overflow-hidden"],["aria-hidden","true",1,"aia-hero-bg"],["aria-hidden","true",1,"aia-hero-fade"],["appReveal","",1,"relative","z-10","flex","flex-col","items-center","text-center","px-4","pt-[260px]","sm:pt-[300px]","pb-[120px]"],[1,"aia-eyebrow","r-up","font-outfit","font-bold","text-sm","tracking-[0.04em]","mb-3"],[1,"aia-hero-title","r-up","font-outfit","font-bold","lowercase",2,"--reveal-delay","80ms"],[1,"gradient-text"],[1,"r-up","mt-8",2,"--reveal-delay","160ms"],["buttonText","get in touch now!",3,"clicked"],[1,"aia-hero-pitch","r-up","mt-[70px]","max-w-[640px]",2,"--reveal-delay","240ms"],[1,"font-outfit","font-semibold","text-lg","sm:text-xl","mb-5"],[1,"font-inter","text-sm","sm:text-base","text-white/75","mb-8"],["buttonText","book a discovery call!",3,"clicked"],["appReveal","",1,"aia-problem","relative","w-full","px-4","sm:px-[10%]","py-[100px]","sm:py-[130px]"],[1,"max-w-[1200px]","mx-auto","flex","flex-col","md:flex-row","gap-10","md:gap-16","items-start"],[1,"r-left","flex-1","font-outfit","font-bold","lowercase","text-3xl","sm:text-5xl","leading-[1.1]"],[1,"r-right","flex-1","font-inter","text-sm","sm:text-base","text-white/75","space-y-6",2,"--reveal-delay","120ms"],["appReveal","",1,"aia-services","relative","w-full","px-4","sm:px-[10%]","py-[90px]","sm:py-[120px]"],[1,"max-w-[1100px]","mx-auto"],[1,"r-up","text-center","font-outfit","font-bold","lowercase","text-3xl","sm:text-5xl","mb-14","sm:mb-20"],[1,"flex","flex-col","gap-6","sm:gap-7"],[1,"aia-svc-row","r-up","flex","flex-col","sm:flex-row","sm:items-center","gap-4","sm:gap-10",3,"--reveal-delay"],["appReveal","",1,"aia-how","relative","w-full","px-4","sm:px-[10%]","py-[90px]","sm:py-[120px]"],[1,"max-w-[1000px]","mx-auto"],[1,"aia-step","r-rise",3,"class","--reveal-delay"],["appReveal","",1,"aia-why","relative","w-full","px-4","sm:px-[10%]","py-[90px]","sm:py-[120px]"],[1,"r-up","text-center","font-outfit","font-bold","text-3xl","sm:text-5xl","leading-[1.15]","mb-14","sm:mb-20"],[1,"aia-reason-row","r-up","flex","flex-col","sm:flex-row","sm:items-center","gap-4","sm:gap-10",3,"--reveal-delay"],["appReveal","",1,"mt-[90px]","sm:mt-[120px]","flex","flex-col","items-center","text-center"],[1,"r-up","font-outfit","font-bold","text-2xl","sm:text-4xl","mb-5","lowercase"],[1,"r-up","font-inter","text-sm","sm:text-base","text-white/65","max-w-[620px]","mb-9",2,"--reveal-delay","100ms"],[1,"r-up",2,"--reveal-delay","180ms"],[1,"aia-svc-row","r-up","flex","flex-col","sm:flex-row","sm:items-center","gap-4","sm:gap-10"],[1,"aia-svc-pill","font-outfit","font-semibold","text-sm","sm:text-base"],[1,"aia-svc-detail","flex-1","font-inter","text-sm","sm:text-base","text-white/70"],[1,"aia-step","r-rise"],["appSpotlight","",1,"aia-step-card","flex","items-start","gap-5","sm:gap-7","rounded-[22px]","p-6","sm:p-8"],[1,"aia-step-num","font-outfit","font-bold"],[1,"aia-step-term","font-outfit","font-bold","text-lg","sm:text-xl","mb-2","gradient-text"],[1,"font-inter","text-sm","sm:text-base","text-white/70"],[1,"aia-reason-row","r-up","flex","flex-col","sm:flex-row","sm:items-center","gap-4","sm:gap-10"],[1,"aia-reason-pill","flex","items-center","gap-3","font-outfit","font-semibold","text-sm","sm:text-base"],["src","/images/logo/mark.svg","alt","","aria-hidden","true",1,"aia-reason-mark"],[1,"flex-1","font-inter","text-sm","sm:text-base","text-white/70"]],template:function(i,r){i&1&&(l(0,"section",0),v(1,"div",1)(2,"div",2),l(3,"div",3)(4,"span",4),p(5,"semnexus"),u(),l(6,"h1",5)(7,"span",6),p(8,"ai automation"),u(),p(9," agency "),u(),l(10,"div",7)(11,"app-button",8),S("clicked",function(){return r.scheduleCall()}),u()(),l(12,"div",9)(13,"p",10),p(14," Stop Drowning in Manual Work. Start Scaling with AI. "),u(),l(15,"p",11),p(16," SemNexus helps mid-market companies automate the repetitive, time-draining processes holding their teams back\u2014so your people can focus on the work that actually moves the business forward. "),u(),l(17,"app-button",12),S("clicked",function(){return r.scheduleCall()}),u()()()(),l(18,"section",13)(19,"div",14)(20,"h2",15),p(21," the problem isn't"),v(22,"br"),p(23,"your team."),v(24,"br"),l(25,"span",6),p(26,"it's the workload."),u()(),l(27,"div",16)(28,"p"),p(29," Your business is growing, but so is the operational drag. Manual data entry, disconnected systems, repetitive customer interactions, and reporting that eats entire afternoons. Hiring more people only adds cost and complexity. "),u(),l(30,"p"),p(31," AI automation changes the equation. Instead of throwing more headcount at the problem, you build intelligent systems that handle the routine work\u2014accurately, around the clock, and at a fraction of the cost. "),u()()()(),l(32,"section",17)(33,"div",18)(34,"h2",19)(35,"span",6),p(36,"ai automation"),u(),p(37," services "),u(),l(38,"div",20),H(39,oF,5,4,"div",21,vx),u()()(),l(41,"section",22)(42,"div",23)(43,"h2",19),p(44," how "),l(45,"span",6),p(46,"it works"),u()(),l(47,"div",20),H(48,sF,9,7,"div",24,rF),u()()(),l(50,"section",25)(51,"div",18)(52,"h2",26),p(53," why mid-market companies"),v(54,"br"),p(55,"choose "),l(56,"span",6),p(57,"semnexus"),u()(),l(58,"div",20),H(
7859,aF,7,4,"div",27,vx),u(),l(61,"div",28)(62,"h3",29),p(63," ready to see "),l(64,"span",6),p(65,"what ai can do for your business"),u(),p(66,"? "),u(),l(67,"p",30),p(68," In a free 30-minute discovery call, we'll identify where automation can save you the most time and money\u2014no obligation, no jargon. "),u(),l(69,"div",31)(70,"app-button",12),S("clicked",function(){return r.scheduleCall()}),u()()()()()),i&2&&(f(39),z(r.services),f(9),z(r.steps),f(11),z(r.reasons))},dependencies:[re,rt,Ai],styles:[`@charset "UTF-8";[_nghost-%COMP%]{display:block;background:#05010d}.aia-hero[_ngcontent-%COMP%]{min-height:760px}.aia-hero-bg[_ngcontent-%COMP%]{position:absolute;inset:0;background-image:url(/images/bg-header.png);background-size:cover;background-position:center top;background-repeat:no-repeat;z-index:0}.aia-hero-fade[_ngcontent-%COMP%]{position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(180deg,#05010d00,#05010d26 45%,#05010db3 80%,#05010d)}.aia-eyebrow[_ngcontent-%COMP%]{color:#ffffffd9}.aia-hero-title[_ngcontent-%COMP%]{font-size:clamp(2.4rem,6vw,4rem);line-height:1.05;letter-spacing:-.01em;color:#fff}.aia-problem[_ngcontent-%COMP%]{background:radial-gradient(120% 80% at 30% 0%,#7e47f329,#05010d00 60%),#05010d}.aia-services[_ngcontent-%COMP%]{background:#05010d}.aia-svc-pill[_ngcontent-%COMP%]{flex:0 0 auto;width:100%;max-width:280px;padding:.85rem 1.4rem;border-radius:14px;text-align:center;color:#fff;background:linear-gradient(180deg,#28103ca6,#0d0420a6);border:1px solid rgba(213,8,127,.35);box-shadow:inset 0 1px #ffffff0f,0 8px 24px #00000059;transition:border-color .3s ease,box-shadow .3s ease,transform .3s ease}.aia-svc-row[_ngcontent-%COMP%]:hover   .aia-svc-pill[_ngcontent-%COMP%]{border-color:#7e47f3b3;box-shadow:inset 0 1px #ffffff1a,0 10px 30px #7e47f340;transform:translateY(-2px)}@media (min-width: 640px){.aia-svc-pill[_ngcontent-%COMP%]{width:280px}}.aia-how[_ngcontent-%COMP%]{background:radial-gradient(100% 60% at 50% 0%,#d5087f1a,#05010d00 55%),#05010d}.aia-step-1[_ngcontent-%COMP%]{margin-left:4%}.aia-step-2[_ngcontent-%COMP%]{margin-left:8%}.aia-step-3[_ngcontent-%COMP%]{margin-left:12%}@media (max-width: 640px){.aia-step-1[_ngcontent-%COMP%], .aia-step-2[_ngcontent-%COMP%], .aia-step-3[_ngcontent-%COMP%]{margin-left:0}}.aia-step-card[_ngcontent-%COMP%]{background:linear-gradient(135deg,#7e47f32e,#d5087f1f);border:1px solid rgba(255,255,255,.1);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.aia-step-num[_ngcontent-%COMP%]{flex:0 0 auto;display:grid;place-items:center;width:52px;height:52px;font-size:1.5rem;color:#fff;border-radius:14px;background:#05010d80;border:1px solid rgba(213,8,127,.5)}.aia-why[_ngcontent-%COMP%]{background:radial-gradient(110% 70% at 50% 100%,#7e47f324,#05010d00 60%),#05010d}.aia-reason-pill[_ngcontent-%COMP%]{flex:0 0 auto;width:100%;max-width:280px;padding:.85rem 1.3rem;border-radius:14px;color:#fff;background:linear-gradient(120deg,#d5087f8c,#7e47f38c);border:1px solid rgba(255,255,255,.16);box-shadow:inset 0 1px #ffffff1f,0 8px 24px #7e47f338;transition:box-shadow .3s ease,transform .3s ease}.aia-reason-row[_ngcontent-%COMP%]:hover   .aia-reason-pill[_ngcontent-%COMP%]{transform:translateY(-2px);box-shadow:inset 0 1px #ffffff2e,0 12px 32px #d5087f4d}.aia-reason-mark[_ngcontent-%COMP%]{width:22px;height:22px;flex:0 0 auto}@media (min-width: 640px){.aia-reason-pill[_ngcontent-%COMP%]{width:280px}}
79/*# sourceMappingURL=ai-automation-IEL6CEWW.css.map */`]})}return e})();var bx=[{path:"development-case-studies",component:JC},{path:"marketing-case-studies",component:$C},{path:"blog",component:LC},{path:"team",component:rx},{path:"privacy-policy",component:WC},{path:"app-development-company",component:Cg},{path:"ai-app-development-company",component:Cg},{path:"mobile-app-marketing-services",component:GC},{path:"marketing-services",redirectTo:"mobile-app-marketing-services",pathMatch:"full"},{path:"influencer-process",component:zC},{path:"website-marketing-services",component:YC},{path:"business-mobile-consulting",component:hx},{path:"aeo-marketing-services",component:gx},{path:"ai-automation-agency",component:yx},{path:"aiautomation",redirectTo:"ai-automation-agency",pathMatch:"full"},{path:"apps-healthcare-marketing",component:FC},{path:"thank-you-for-booking",component:ox},{path:"case-studies/:project",component:ot},{path:"marketing/:project",component:ot},{path:"category/:slug",component:ld,data:{type:"category"}},{path:"tag/:slug",component:ld,data:{type:"tag"}},{path:"author/:slug",component:ld,data:{type:"author"}},{path:"ualett",component:ot,data:{slug:"ualett",type:"marketing"}},{path:"resonante",component:ot,data:{slug:"resonante",type:"marketing"}},{path:"cauldy",component:ot,data:{slug:"cauldy",type:"marketing"}},{path:"foojan",component:ot,data:{slug:"foojan",type:"marketing"}},{path:"happy-mob",component:ot,data:{slug:"happy-mob",type:"marketing"}},{path:"hatched",component:ot,data:{slug:"hatched",type:"marketing"}},{path:"kicksnap",component:ot,data:{slug:"kicksnap",type:"marketing"}},{path:"tito",component:ot,data:{slug:"tito",type:"marketing"}},{path:"winquik",component:ot,data:{slug:"winquik",type:"marketing"}},{path:"fysh",component:ot,data:{slug:"fysh",type:"marketing"}},{path:"ultimate-playlist",component:ot,data:{slug:"ultimate-playlist",type:"marketing"}},{path:"ramp-assist-boating",component:ot,data:{slug:"ramp-assist-boating",type:"marketing"}},{path:"gestureit",redirectTo:"marketing-case-studies",pathMatch:"full"},{path:"pulse-briefing",component:ot,data:{slug:"pulse-briefing",type:"marketing"}},{path:"tackOn",component:ot,data:{slug:"tackOn",type:"marketing"}},{path:"meet-amore",component:ot,data:{slug:"meet-amore",type:"marketing"}},{path:"",component:EC,pathMatch:"full"},{path:":slug",component:jC}];
vendor: 5,447 bytes, line 79
79var wx={providers:[Bp(),rh(),wg(bx),qh(Yh()),yE(vE())]};var Tx=(()=>{class e{_renderer;_elementRef;onChange=t=>{};onTouched=()=>{};constructor(t,i){this._renderer=t,this._elementRef=i}setProperty(t,i){this._renderer.setProperty(this._elementRef.nativeElement,t,i)}registerOnTouched(t){this.onTouched=t}registerOnChange(t){this.onChange=t}setDisabledState(t){this.setProperty("disabled",t)}static \u0275fac=function(i){return new(i||e)(D(Kn),D(Xe))};static \u0275dir=De({type:e})}return e})(),cF=(()=>{class e extends Tx{static \u0275fac=(()=>{let t;return function(r){return(t||(t=pr(e)))(r||e)}})();static \u0275dir=De({type:e,features:[In]})}return e})(),Ax=new P("");var lF={provide:Ax,useExisting:Un(()=>vd),multi:!0};function uF(){let e=Vt()?Vt().getUserAgent():"";return/android (\d+)/.test(e.toLowerCase())}var dF=new P(""),vd=(()=>{class e extends Tx{_compositionMode;_composing=!1;constructor(t,i,r){super(t,i),this._compositionMode=r,this._compositionMode==null&&(this._compositionMode=!uF())}writeValue(t){let i=t??"";this.setProperty("value",i)}_handleInput(t){(!this._compositionMode||this._compositionMode&&!this._composing)&&this.onChange(t)}_compositionStart(){this._composing=!0}_compositionEnd(t){this._composing=!1,this._compositionMode&&this.onChange(t)}static \u0275fac=function(i){return new(i||e)(D(Kn),D(Xe),D(dF,8))};static \u0275dir=De({type:e,selectors:[["input","formControlName","",3,"type","checkbox"],["textarea","formControlName",""],["input","formControl","",3,"type","checkbox"],["textarea","formControl",""],["input","ngModel","",3,"type","checkbox"],["textarea","ngModel",""],["","ngDefaultControl",""]],hostBindings:function(i,r){i&1&&S("input",function(s){return r._handleInput(s.target.value)})("blur",function(){return r.onTouched()})("compositionstart",function(){return r._compositionStart()})("compositionend",function(s){return r._compositionEnd(s.target.value)})},standalone:!1,features:[yo([lF]),In]})}return e})();function pF(e){return e==null||fF(e)===0}function fF(e){return e==null?null:Array.isArray(e)||typeof e=="string"?e.length:e instanceof Set?e.size:null}var Ig=new P(""),kx=new P("");function mF(e){return pF(e.value)?{required:!0}:null}function _x(e){return null}function Ox(e){return e!=null}function Nx(e){return Xn(e)?Le(e):e}function Rx(e){let n={};return e.forEach(t=>{n=t!=null?I(I({},n),t):n}),Object.keys(n).length===0?null:n}function Px(e,n){return n.map(t=>t(e))}function hF(e){return!e.validate}function Fx(e){return e.map(n=>hF(n)?n:t=>n.validate(t))}function gF(e){if(!e)return null;let n=e.filter(Ox);return n.length==0?null:function(t){return Rx(Px(t,n))}}function Mg(e){return e!=null?gF(Fx(e)):null}function vF(e){if(!e)return null;let n=e.filter(Ox);return n.length==0?null:function(t){let i=Px(t,n).map(Nx);return Ld(i).pipe(Q(Rx))}}function Tg(e){return e!=null?vF(Fx(e)):null}function Ex(e,n){return e===null?[n]:Array.isArray(e)?[...e,n]:[e,n]}function yF(e){return e._rawValidators}function bF(e){return e._rawAsyncValidators}function xg(e){return e?Array.isArray(e)?e:[e]:[]}function dd(e,n){return Array.isArray(e)?e.includes(n):e===n}function Cx(e,n){let t=xg(n);return xg(e).forEach(r=>{dd(t,r)||t.push(r)}),t}function xx(e,n){return xg(n).filter(t=>!dd(e,t))}var pd=class{get value(){return this.control?this.control.value:null}get valid(){return this.control?this.control.valid:null}get invalid(){return this.control?this.control.invalid:null}get pending(){return this.control?this.control.pending:null}get disabled(){return this.control?this.control.disabled:null}get enabled(){return this.control?this.control.enabled:null}get errors(){return this.control?this.control.errors:null}get pristine(){return this.control?this.control.pristine:null}get dirty(){return this.control?this.control.dirty:null}get touched(){return this.control?this.control.touched:null}get status(){return this.control?this.control.status:null}get untouched(){return this.control?this.control.untouched:null}get statusChanges(){return this.control?this.control.statusChanges:null}get valueChanges(){return this.control?this.control.valueChanges:null}get path(){return null}_composedValidatorFn;_composedAsyncValidatorFn;_rawValidators=[];_rawAsyncValidators=[];_setValidators(n){this._rawValidators=n||[],this._composedValidatorFn=Mg(this._rawValidators)}_setAsyncValidators(n){this._rawAsyncValidators=n||[],this._composedAsyncValidatorFn=Tg(this._rawAsyncValidators)}get validator(){return this._composedValidatorFn||null}get asyncValidator(){return this._composedAsyncValidatorFn||null}_onDestroyCallbacks=[];_registerOnDestroy(n){this._onDestroyCallbacks.push(n)}_invokeOnDestroyCallbacks(){this._onDestroyCallbacks.forEach(n=>n()),this._onDestroyCallbacks=[]}reset(n=void 0){this.control&&this.control.reset(n)}hasError(n,t){return this.control?this.control.hasError(n,t):!1}getError(n,t){return this.control?this.control.getError(n,t):null}},qo=class extends pd{name;get formDirective(){return null}get path(){return null}},Aa=class extends pd{_parent=null;name=null;valueAccessor=null},fd=class{_cd;constructor(n){this._cd=n}get isTouched(){return this._cd?.control?._touched?.(),!!this._cd?.control?.touched}get isUntouched(){return!!this._cd?.control?.untouched}get isPristine(){return this._cd?.control?._pristine?.(),!!this._cd?.control?.pristine}get isDirty(){return!!this._cd?.control?.dirty}get isValid(){return this._cd?.control?._status?.(),!!this._cd?.control?.valid}
vendor: 22,115 bytes, line 79
79get isInvalid(){return!!this._cd?.control?.invalid}get isPending(){return!!this._cd?.control?.pending}get isSubmitted(){return this._cd?._submitted?.(),!!this._cd?.submitted}},wF={"[class.ng-untouched]":"isUntouched","[class.ng-touched]":"isTouched","[class.ng-pristine]":"isPristine","[class.ng-dirty]":"isDirty","[class.ng-valid]":"isValid","[class.ng-invalid]":"isInvalid","[class.ng-pending]":"isPending"},YX=Z(I({},wF),{"[class.ng-submitted]":"isSubmitted"}),Lx=(()=>{class e extends fd{constructor(t){super(t)}static \u0275fac=function(i){return new(i||e)(D(Aa,2))};static \u0275dir=De({type:e,selectors:[["","formControlName",""],["","ngModel",""],["","formControl",""]],hostVars:14,hostBindings:function(i,r){i&2&&ce("ng-untouched",r.isUntouched)("ng-touched",r.isTouched)("ng-pristine",r.isPristine)("ng-dirty",r.isDirty)("ng-valid",r.isValid)("ng-invalid",r.isInvalid)("ng-pending",r.isPending)},standalone:!1,features:[In]})}return e})(),jx=(()=>{class e extends fd{constructor(t){super(t)}static \u0275fac=function(i){return new(i||e)(D(qo,10))};static \u0275dir=De({type:e,selectors:[["","formGroupName",""],["","formArrayName",""],["","ngModelGroup",""],["","formGroup",""],["form",3,"ngNoForm",""],["","ngForm",""]],hostVars:16,hostBindings:function(i,r){i&2&&ce("ng-untouched",r.isUntouched)("ng-touched",r.isTouched)("ng-pristine",r.isPristine)("ng-dirty",r.isDirty)("ng-valid",r.isValid)("ng-invalid",r.isInvalid)("ng-pending",r.isPending)("ng-submitted",r.isSubmitted)},standalone:!1,features:[In]})}return e})();var Da="VALID",ud="INVALID",Go="PENDING",Sa="DISABLED",Fi=class{},md=class extends Fi{value;source;constructor(n,t){super(),this.value=n,this.source=t}},Ma=class extends Fi{pristine;source;constructor(n,t){super(),this.pristine=n,this.source=t}},Ta=class extends Fi{touched;source;constructor(n,t){super(),this.touched=n,this.source=t}},Wo=class extends Fi{status;source;constructor(n,t){super(),this.status=n,this.source=t}},Dg=class extends Fi{source;constructor(n){super(),this.source=n}},Sg=class extends Fi{source;constructor(n){super(),this.source=n}};function Vx(e){return(yd(e)?e.validators:e)||null}function _F(e){return Array.isArray(e)?Mg(e):e||null}function Bx(e,n){return(yd(n)?n.asyncValidators:e)||null}function EF(e){return Array.isArray(e)?Tg(e):e||null}function yd(e){return e!=null&&!Array.isArray(e)&&typeof e=="object"}function CF(e,n,t){let i=e.controls;if(!(n?Object.keys(i):i).length)throw new M(1e3,"");if(!i[t])throw new M(1001,"")}function xF(e,n,t){e._forEachChild((i,r)=>{if(t[r]===void 0)throw new M(1002,"")})}var hd=class{_pendingDirty=!1;_hasOwnPendingAsyncValidator=null;_pendingTouched=!1;_onCollectionChange=()=>{};_updateOn;_parent=null;_asyncValidationSubscription;_composedValidatorFn;_composedAsyncValidatorFn;_rawValidators;_rawAsyncValidators;value;constructor(n,t){this._assignValidators(n),this._assignAsyncValidators(t)}get validator(){return this._composedValidatorFn}set validator(n){this._rawValidators=this._composedValidatorFn=n}get asyncValidator(){return this._composedAsyncValidatorFn}set asyncValidator(n){this._rawAsyncValidators=this._composedAsyncValidatorFn=n}get parent(){return this._parent}get status(){return Dt(this.statusReactive)}set status(n){Dt(()=>this.statusReactive.set(n))}_status=Be(()=>this.statusReactive());statusReactive=ae(void 0);get valid(){return this.status===Da}get invalid(){return this.status===ud}get pending(){return this.status==Go}get disabled(){return this.status===Sa}get enabled(){return this.status!==Sa}errors;get pristine(){return Dt(this.pristineReactive)}set pristine(n){Dt(()=>this.pristineReactive.set(n))}_pristine=Be(()=>this.pristineReactive());pristineReactive=ae(!0);get dirty(){return!this.pristine}get touched(){return Dt(this.touchedReactive)}set touched(n){Dt(()=>this.touchedReactive.set(n))}_touched=Be(()=>this.touchedReactive());touchedReactive=ae(!1);get untouched(){return!this.touched}_events=new ke;events=this._events.asObservable();valueChanges;statusChanges;get updateOn(){return this._updateOn?this._updateOn:this.parent?this.parent.updateOn:"change"}setValidators(n){this._assignValidators(n)}setAsyncValidators(n){this._assignAsyncValidators(n)}addValidators(n){this.setValidators(Cx(n,this._rawValidators))}addAsyncValidators(n){this.setAsyncValidators(Cx(n,this._rawAsyncValidators))}removeValidators(n){this.setValidators(xx(n,this._rawValidators))}removeAsyncValidators(n){this.setAsyncValidators(xx(n,this._rawAsyncValidators))}hasValidator(n){return dd(this._rawValidators,n)}hasAsyncValidator(n){return dd(this._rawAsyncValidators,n)}clearValidators(){this.validator=null}clearAsyncValidators(){this.asyncValidator=null}markAsTouched(n={}){let t=this.touched===!1;this.touched=!0;let i=n.sourceControl??this;this._parent&&!n.onlySelf&&this._parent.markAsTouched(Z(I({},n),{sourceControl:i})),t&&n.emitEvent!==!1&&this._events.next(new Ta(!0,i))}markAllAsDirty(n={}){this.markAsDirty({onlySelf:!0,emitEvent:n.emitEvent,sourceControl:this}),this._forEachChild(t=>t.markAllAsDirty(n))}markAllAsTouched(n={}){this.markAsTouched({onlySelf:!0,emitEvent:n.emitEvent,sourceControl:this}),this._forEachChild(t=>t.markAllAsTouched(n))}markAsUntouched(n={}){let t=this.touched===!0;this.touched=!1,this._pendingTouched=!1;let i=n.sourceControl??this;this._forEachChild(r=>{r.markAsUntouched({onlySelf:!0,emitEvent:n.emitEvent,sourceControl:i})}),this._parent&&!n.onlySelf&&this._parent._updateTouched(n,i),t&&n.emitEvent!==!1&&this._events.next(new Ta(!1,i))}markAsDirty(n={}){let t=this.pristine===!0;this.pristine=!1;let i=n.sourceControl??this;this._parent&&!n.onlySelf&&this._parent.markAsDirty(Z(I({},n),{sourceControl:i})),t&&n.emitEvent!==!1&&this._events.next(new Ma(!1,i))}markAsPristine(n={}){let t=this.pristine===!1;this.pristine=!0,this._pendingDirty=!1;let i=n.sourceControl??this;this._forEachChild(r=>{r.markAsPristine({onlySelf:!0,emitEvent:n.emitEvent})}),this._parent&&!n.onlySelf&&this._parent._updatePristine(n,i),t&&n.emitEvent!==!1&&this._events.next(new Ma(!0,i))}markAsPending(n={}){this.status=Go;let t=n.sourceControl??this;n.emitEvent!==!1&&(this._events.next(new Wo(this.status,t)),this.statusChanges.emit(this.status)),this._parent&&!n.onlySelf&&this._parent.markAsPending(Z(I({},n),{sourceControl:t}))}disable(n={}){let t=this._parentMarkedDirty(n.onlySelf);this.status=Sa,this.errors=null,this._forEachChild(r=>{r.disable(Z(I({},n),{onlySelf:!0}))}),this._updateValue();let i=n.sourceControl??this;n.emitEvent!==!1&&(this._events.next(new md(this.value,i)),this._events.next(new Wo(this.status,i)),this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors(Z(I({},n),{skipPristineCheck:t}),this),this._onDisabledChange.forEach(r=>r(!0))}enable(n={}){let t=this._parentMarkedDirty(n.onlySelf);this.status=Da,this._forEachChild(i=>{i.enable(Z(I({},n),{onlySelf:!0}))}),this.updateValueAndValidity({onlySelf:!0,emitEvent:n.emitEvent}),this._updateAncestors(Z(I({},n),{skipPristineCheck:t}),this),this._onDisabledChange.forEach(i=>i(!1))}_updateAncestors(n,t){this._parent&&!n.onlySelf&&(this._parent.updateValueAndValidity(n),n.skipPristineCheck||this._parent._updatePristine({},t),this._parent._updateTouched({},t))}setParent(n){this._parent=n}getRawValue(){return this.value}updateValueAndValidity(n={}){if(this._setInitialStatus(),this._updateValue(),this.enabled){let i=this._cancelExistingSubscription();this.errors=this._runValidator(),this.status=this._calculateStatus(),(this.status===Da||this.status===Go)&&this._runAsyncValidator(i,n.emitEvent)}let t=n.sourceControl??this;n.emitEvent!==!1&&(this._events.next(new md(this.value,t)),this._events.next(new Wo(this.status,t)),this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._parent&&!n.onlySelf&&this._parent.updateValueAndValidity(Z(I({},n),{sourceControl:t}))}_updateTreeValidity(n={emitEvent:!0}){this._forEachChild(t=>t._updateTreeValidity(n)),this.updateValueAndValidity({onlySelf:!0,emitEvent:n.emitEvent})}_setInitialStatus(){this.status=this._allControlsDisabled()?Sa:Da}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(n,t){if(this.asyncValidator){this.status=Go,this._hasOwnPendingAsyncValidator={emitEvent:t!==!1,shouldHaveEmitted:n!==!1};let i=Nx(this.asyncValidator(this));this._asyncValidationSubscription=i.subscribe(r=>{this._hasOwnPendingAsyncValidator=null,this.setErrors(r,{emitEvent:t,shouldHaveEmitted:n})})}}_cancelExistingSubscription(){if(this._asyncValidationSubscription){this._asyncValidationSubscription.unsubscribe();let n=(this._hasOwnPendingAsyncValidator?.emitEvent||this._hasOwnPendingAsyncValidator?.shouldHaveEmitted)??!1;return this._hasOwnPendingAsyncValidator=null,n}return!1}setErrors(n,t={}){this.errors=n,this._updateControlsErrors(t.emitEvent!==!1,this,t.shouldHaveEmitted)}get(n){let t=n;return t==null||(Array.isArray(t)||(t=t.split(".")),t.length===0)?null:t.reduce((i,r)=>i&&i._find(r),this)}getError(n,t){let i=t?this.get(t):this;return i&&i.errors?i.errors[n]:null}hasError(n,t){return!!this.getError(n,t)}get root(){let n=this;for(;n._parent;)n=n._parent;return n}_updateControlsErrors(n,t,i){this.status=this._calculateStatus(),n&&this.statusChanges.emit(this.status),(n||i)&&this._events.next(new Wo(this.status,t)),this._parent&&this._parent._updateControlsErrors(n,t,i)}_initObservables(){this.valueChanges=new _e,this.statusChanges=new _e}_calculateStatus(){return this._allControlsDisabled()?Sa:this.errors?ud:this._hasOwnPendingAsyncValidator||this._anyControlsHaveStatus(Go)?Go:this._anyControlsHaveStatus(ud)?ud:Da}_anyControlsHaveStatus(n){return this._anyControls(t=>t.status===n)}_anyControlsDirty(){return this._anyControls(n=>n.dirty)}_anyControlsTouched(){return this._anyControls(n=>n.touched)}_updatePristine(n,t){let i=!this._anyControlsDirty(),r=this.pristine!==i;this.pristine=i,this._parent&&!n.onlySelf&&this._parent._updatePristine(n,t),r&&this._events.next(new Ma(this.pristine,t))}_updateTouched(n={},t){this.touched=this._anyControlsTouched(),this._events.next(new Ta(this.touched,t)),this._parent&&!n.onlySelf&&this._parent._updateTouched(n,t)}_onDisabledChange=[];_registerOnCollectionChange(n){this._onCollectionChange=n}_setUpdateStrategy(n){yd(n)&&n.updateOn!=null&&(this._updateOn=n.updateOn)}_parentMarkedDirty(n){let t=this._parent&&this._parent.dirty;return!n&&!!t&&!this._parent._anyControlsDirty()}_find(n){return null}_assignValidators(n){this._rawValidators=Array.isArray(n)?n.slice():n,this._composedValidatorFn=_F(this._rawValidators)}_assignAsyncValidators(n){this._rawAsyncValidators=Array.isArray(n)?n.slice():n,this._composedAsyncValidatorFn=EF(this._rawAsyncValidators)}},gd=class extends hd{constructor(n,t,i){super(Vx(t),Bx(i,t)),this.controls=n,this._initObservables(),this._setUpdateStrategy(t),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}controls;registerControl(n,t){return this.controls[n]?this.controls[n]:(this.controls[n]=t,t.setParent(this),t._registerOnCollectionChange(this._onCollectionChange),t)}addControl(n,t,i={}){this.registerControl(n,t),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}removeControl(n,t={}){this.controls[n]&&this.controls[n]._registerOnCollectionChange(()=>{}),delete this.controls[n],this.updateValueAndValidity({emitEvent:t.emitEvent}),this._onCollectionChange()}setControl(n,t,i={}){this.controls[n]&&this.controls[n]._registerOnCollectionChange(()=>{}),delete this.controls[n],t&&this.registerControl(n,t),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}contains(n){return this.controls.hasOwnProperty(n)&&this.controls[n].enabled}setValue(n,t={}){xF(this,!0,n),Object.keys(n).forEach(i=>{CF(this,!0,i),this.controls[i].setValue(n[i],{onlySelf:!0,emitEvent:t.emitEvent})}),this.updateValueAndValidity(t)}patchValue(n,t={}){n!=null&&(Object.keys(n).forEach(i=>{let r=this.controls[i];r&&r.patchValue(n[i],{onlySelf:!0,emitEvent:t.emitEvent})}),this.updateValueAndValidity(t))}reset(n={},t={}){this._forEachChild((i,r)=>{i.reset(n?n[r]:null,{onlySelf:!0,emitEvent:t.emitEvent})}),this._updatePristine(t,this),this._updateTouched(t,this),this.updateValueAndValidity(t)}getRawValue(){return this._reduceChildren({},(n,t,i)=>(n[i]=t.getRawValue(),n))}_syncPendingControls(){let n=this._reduceChildren(!1,(t,i)=>i._syncPendingControls()?!0:t);return n&&this.updateValueAndValidity({onlySelf:!0}),n}_forEachChild(n){Object.keys(this.controls).forEach(t=>{let i=this.controls[t];i&&n(i,t)})}_setUpControls(){this._forEachChild(n=>{n.setParent(this),n._registerOnCollectionChange(this._onCollectionChange)})}_updateValue(){this.value=this._reduceValue()}_anyControls(n){for(let[t,i]of Object.entries(this.controls))if(this.contains(t)&&n(i))return!0;return!1}_reduceValue(){let n={};return this._reduceChildren(n,(t,i,r)=>((i.enabled||this.disabled)&&(t[r]=i.value),t))}_reduceChildren(n,t){let i=n;return this._forEachChild((r,o)=>{i=t(i,r,o)}),i}_allControlsDisabled(){for(let n of Object.keys(this.controls))if(this.controls[n].enabled)return!1;return Object.keys(this.controls).length>0||this.disabled}_find(n){return this.controls.hasOwnProperty(n)?this.controls[n]:null}};var Ag=new P("",{providedIn:"root",factory:()=>kg}),kg="always";function DF(e,n){return[...n.path,e]}function Ux(e,n,t=kg){$x(e,n),n.valueAccessor.writeValue(e.value),(e.disabled||t==="always")&&n.valueAccessor.setDisabledState?.(e.disabled),IF(e,n),TF(e,n),MF(e,n),SF(e,n)}function Dx(e,n){e.forEach(t=>{t.registerOnValidatorChange&&t.registerOnValidatorChange(n)})}function SF(e,n){if(n.valueAccessor.setDisabledState){let t=i=>{n.valueAccessor.setDisabledState(i)};e.registerOnDisabledChange(t),n._registerOnDestroy(()=>{e._unregisterOnDisabledChange(t)})}}function $x(e,n){let t=yF(e);n.validator!==null?e.setValidators(Ex(t,n.validator)):typeof t=="function"&&e.setValidators([t]);let i=bF(e);n.asyncValidator!==null?e.setAsyncValidators(Ex(i,n.asyncValidator)):typeof i=="function"&&e.setAsyncValidators([i]);let r=()=>e.updateValueAndValidity();Dx(n._rawValidators,r),Dx(n._rawAsyncValidators,r)}function IF(e,n){n.valueAccessor.registerOnChange(t=>{e._pendingValue=t,e._pendingChange=!0,e._pendingDirty=!0,e.updateOn==="change"&&Hx(e,n)})}function MF(e,n){n.valueAccessor.registerOnTouched(()=>{e._pendingTouched=!0,e.updateOn==="blur"&&e._pendingChange&&Hx(e,n),e.updateOn!=="submit"&&e.markAsTouched()})}function Hx(e,n){e._pendingDirty&&e.markAsDirty(),e.setValue(e._pendingValue,{emitModelToViewChange:!1}),n.viewToModelUpdate(e._pendingValue),e._pendingChange=!1}function TF(e,n){let t=(i,r)=>{n.valueAccessor.writeValue(i),r&&n.viewToModelUpdate(i)};e.registerOnChange(t),n._registerOnDestroy(()=>{e._unregisterOnChange(t)})}function AF(e,n){e==null,$x(e,n)}function kF(e,n){if(!e.hasOwnProperty("model"))return!1;let t=e.model;return t.isFirstChange()?!0:!Object.is(n,t.currentValue)}function OF(e){return Object.getPrototypeOf(e.constructor)===cF}function NF(e,n){e._syncPendingControls(),n.forEach(t=>{let i=t.control;i.updateOn==="submit"&&i._pendingChange&&(t.viewToModelUpdate(i._pendingValue),i._pendingChange=!1)})}function RF(e,n){if(!n)return null;Array.isArray(n);let t,i,r;return n.forEach(o=>{o.constructor===vd?t=o:OF(o)?i=o:r=o}),r||i||t||null}var PF={provide:qo,useExisting:Un(()=>Og)},Ia=Promise.resolve(),Og=(()=>{class e extends qo{callSetDisabledState;get submitted(){return Dt(this.submittedReactive)}_submitted=Be(()=>this.submittedReactive());submittedReactive=ae(!1);_directives=new Set;form;ngSubmit=new _e;options;constructor(t,i,r){super(),this.callSetDisabledState=r,this.form=new gd({},Mg(t),Tg(i))}ngAfterViewInit(){this._setUpdateStrategy()}get formDirective(){return this}get control(){return this.form}get path(){return[]}get controls(){return this.form.controls}addControl(t){Ia.then(()=>{let i=this._findContainer(t.path);t.control=i.registerControl(t.name,t.control),Ux(t.control,t,this.callSetDisabledState),t.control.updateValueAndValidity({emitEvent:!1}),this._directives.add(t)})}getControl(t){return this.form.get(t.path)}removeControl(t){Ia.then(()=>{let i=this._findContainer(t.path);i&&i.removeControl(t.name),this._directives.delete(t)})}addFormGroup(t){Ia.then(()=>{let i=this._findContainer(t.path),r=new gd({});AF(r,t),i.registerControl(t.name,r),r.updateValueAndValidity({emitEvent:!1})})}removeFormGroup(t){Ia.then(()=>{let i=this._findContainer(t.path);i&&i.removeControl(t.name)})}getFormGroup(t){return this.form.get(t.path)}updateModel(t,i){Ia.then(()=>{this.form.get(t.path).setValue(i)})}setValue(t){this.control.setValue(t)}onSubmit(t){return this.submittedReactive.set(!0),NF(this.form,this._directives),this.ngSubmit.emit(t),this.form._events.next(new Dg(this.control)),t?.target?.method==="dialog"}onReset(){this.resetForm()}resetForm(t=void 0){this.form.reset(t),this.submittedReactive.set(!1),this.form._events.next(new Sg(this.form))}_setUpdateStrategy(){this.options&&this.options.updateOn!=null&&(this.form._updateOn=this.options.updateOn)}_findContainer(t){return t.pop(),t.length?this.form.get(t):this.form}static \u0275fac=function(i){return new(i||e)(D(Ig,10),D(kx,10),D(Ag,8))};static \u0275dir=De({type:e,selectors:[["form",3,"ngNoForm","",3,"formGroup",""],["ng-form"],["","ngForm",""]],hostBindings:function(i,r){i&1&&S("submit",function(s){return r.onSubmit(s)})("reset",function(){return r.onReset()})},inputs:{options:[0,"ngFormOptions","options"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],standalone:!1,features:[yo([PF]),In]})}return e})();function Sx(e,n){let t=e.indexOf(n);t>-1&&e.splice(t,1)}function Ix(e){return typeof e=="object"&&e!==null&&Object.keys(e).length===2&&"value"in e&&"disabled"in e}var FF=class extends hd{defaultValue=null;_onChange=[];_pendingValue;_pendingChange=!1;constructor(n=null,t,i){super(Vx(t),Bx(i,t)),this._applyFormState(n),this._setUpdateStrategy(t),this._initObservables(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator}),yd(t)&&(t.nonNullable||t.initialValueIsDefault)&&(Ix(n)?this.defaultValue=n.value:this.defaultValue=n)}setValue(n,t={}){this.value=this._pendingValue=n,this._onChange.length&&t.emitModelToViewChange!==!1&&this._onChange.forEach(i=>i(this.value,t.emitViewToModelChange!==!1)),this.updateValueAndValidity(t)}patchValue(n,t={}){this.setValue(n,t)}reset(n=this.defaultValue,t={}){this._applyFormState(n),this.markAsPristine(t),this.markAsUntouched(t),this.setValue(this.value,t),this._pendingChange=!1}_updateValue(){}_anyControls(n){return!1}_allControlsDisabled(){return this.disabled}registerOnChange(n){this._onChange.push(n)}_unregisterOnChange(n){Sx(this._onChange,n)}registerOnDisabledChange(n){this._onDisabledChange.push(n)}_unregisterOnDisabledChange(n){Sx(this._onDisabledChange,n)}_forEachChild(n){}_syncPendingControls(){return this.updateOn==="submit"&&(this._pendingDirty&&this.markAsDirty(),this._pendingTouched&&this.markAsTouched(),this._pendingChange)?(this.setValue(this._pendingValue,{onlySelf:!0,emitModelToViewChange:!1}),!0):!1}_applyFormState(n){Ix(n)?(this.value=this._pendingValue=n.value,n.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this.value=this._pendingValue=n}};var LF={provide:Aa,useExisting:Un(()=>Ng)},Mx=Promise.resolve(),Ng=(()=>{class e extends Aa{_changeDetectorRef;callSetDisabledState;control=new FF;static ngAcceptInputType_isDisabled;_registered=!1;viewModel;name="";isDisabled;model;options;update=new _e;constructor(t,i,r,o,s,a){super(),this._changeDetectorRef=s,this.callSetDisabledState=a,this._parent=t,this._setValidators(i),this._setAsyncValidators(r),this.valueAccessor=RF(this,o)}ngOnChanges(t){if(this._checkForErrors(),!this._registered||"name"in t){if(this._registered&&(this._checkName(),this.formDirective)){let i=t.name.previousValue;this.formDirective.removeControl({name:i,path:this._getPath(i)})}this._setUpControl()}"isDisabled"in t&&this._updateDisabled(t),kF(t,this.viewModel)&&(this._updateValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}get path(){return this._getPath(this.name)}get formDirective(){return this._parent?this._parent.formDirective:null}viewToModelUpdate(t){this.viewModel=t,this.update.emit(t)}_setUpControl(){this._setUpdateStrategy(),this._isStandalone()?this._setUpStandalone():this.formDirective.addControl(this),this._registered=!0}_setUpdateStrategy(){this.options&&this.options.updateOn!=null&&(this.control._updateOn=this.options.updateOn)}_isStandalone(){return!this._parent||!!(this.options&&this.options.standalone)}_setUpStandalone(){Ux(this.control,this,this.callSetDisabledState),this.control.updateValueAndValidity({emitEvent:!1})}_checkForErrors(){this._checkName()}_checkName(){this.options&&this.options.name&&(this.name=this.options.name),!this._isStandalone()&&this.name}_updateValue(t){Mx.then(()=>{this.control.setValue(t,{emitViewToModelChange:!1}),this._changeDetectorRef?.markForCheck()})}_updateDisabled(t){let i=t.isDisabled.currentValue,r=i!==0&&_r(i);Mx.then(()=>{r&&!this.control.disabled?this.control.disable():!r&&this.control.disabled&&this.control.enable(),this._changeDetectorRef?.markForCheck()})}_getPath(t){return this._parent?DF(t,this._parent):[t]}static \u0275fac=function(i){return new(i||e)(D(qo,9),D(Ig,10),D(kx,10),D(Ax,10),D(wr,8),D(Ag,8))};static \u0275dir=De({type:e,selectors:[["","ngModel","",3,"formControlName","",3,"formControl",""]],inputs:{name:"name",isDisabled:[0,"disabled","isDisabled"],model:[0,"ngModel","model"],options:[0,"ngModelOptions","options"]},outputs:{update:"ngModelChange"},exportAs:["ngModel"],standalone:!1,features:[yo([LF]),In,pn]})}return e})();var zx=(()=>{class e{static \u0275fac=function(i){return new(i||e)};static \u0275dir=De({type:e,selectors:[["form",3,"ngNoForm","",3,"ngNativeValidate",""]],hostAttrs:["novalidate",""],standalone:!1})}return e})();var jF=(()=>{class e{_validator=_x;_onChange;_enabled;ngOnChanges(t){if(this.inputName in t){let i=this.normalizeInput(t[this.inputName].
79currentValue);this._enabled=this.enabled(i),this._validator=this._enabled?this.createValidator(i):_x,this._onChange&&this._onChange()}}validate(t){return this._validator(t)}registerOnValidatorChange(t){this._onChange=t}enabled(t){return t!=null}static \u0275fac=function(i){return new(i||e)};static \u0275dir=De({type:e,features:[pn]})}return e})();var VF={provide:Ig,useExisting:Un(()=>Rg),multi:!0};var Rg=(()=>{class e extends jF{required;inputName="required";normalizeInput=_r;createValidator=t=>mF;enabled(t){return t}static \u0275fac=(()=>{let t;return function(r){return(t||(t=pr(e)))(r||e)}})();static \u0275dir=De({type:e,selectors:[["","required","","formControlName","",3,"type","checkbox"],["","required","","formControl","",3,"type","checkbox"],["","required","","ngModel","",3,"type","checkbox"]],hostVars:1,hostBindings:function(i,r){i&2&&fn("required",r._enabled?"":null)},inputs:{required:"required"},standalone:!1,features:[yo([VF]),In]})}return e})();var BF=(()=>{class e{static \u0275fac=function(i){return new(i||e)};static \u0275mod=Sn({type:e});static \u0275inj=rn({})}return e})();var Gx=(()=>{class e{static withConfig(t){return{ngModule:e,providers:[{provide:Ag,useValue:t.callSetDisabledState??kg}]}}static \u0275fac=function(i){return new(i||e)};static \u0275mod=Sn({type:e});static \u0275inj=rn({imports:[BF]})}return e})();var Wx=(()=>{class e{newsletter={name:"",email:""};subscribe(){!this.newsletter.name||!this.newsletter.email||(this.newsletter={name:"",email:""})}static \u0275fac=function(i){return new(i||e)};static \u0275cmp=C({type:e,selectors:[["app-footer"]],decls:39,vars:2,consts:[["newsletterForm","ngForm"],[1,"w-screen","relative","h-[2px]","sm:h-[1px]"],["src","/images/footer/breaker.svg","alt","breaker",1,"block","w-full","h-full","m-0","p-0"],[1,"flex","flex-col","sm:flex-row","w-full","bg-black","justify-between","items-center","sm:items-start","px-[10%]","py-[50px]","font-outfit","text-white","gap-y-[40px]","sm:gap-y-0","sm:gap-x-[40px]","text-center","sm:text-left"],["routerLink","/",1,"w-full","sm:w-auto","sm:self-start","cursor-pointer"],["src","/images/footer/logo.svg","alt","logo",1,"mb-[24px]","mx-auto","sm:mx-0"],[1,"w-full","sm:w-auto","text-[16px]","font-bold","flex","flex-col","gap-[14px]","items-center","sm:items-start"],["routerLink","/","fragment","services",1,"cursor-pointer"],["routerLink","/","fragment","case-studies",1,"cursor-pointer"],["href","/blog/",1,"cursor-pointer"],["routerLink","/privacy-policy",1,"curs
79or-pointer"],[1,"w-full","sm:w-auto","self-start"],["src","/images/footer/follow.svg","alt","follow us",1,"mb-[24px]","mx-auto","sm:mx-0"],[1,"flex","gap-[5px]","justify-center","sm:justify-start"],["href","https://www.facebook.com/people/SEMnexus/100065162281996/","target","_blank","rel","noopener"],["src","/images/footer/facebook.svg","alt","facebook",1,"hover:brightness-0","hover:invert","transition"],["href","https://www.instagram.com/semnexus_digital/","target","_blank","rel","noopener"],["src","/images/footer/instagram.svg","alt","instagram",1,"hover:brightness-0","hover:invert","transition"],["href","https://www.linkedin.com/company/semnexus","target","_blank","rel","noopener"],["src","/images/footer/linkedin.svg","alt","linkedin",1,"hover:brightness-0","hover:invert","transition"],[1,"w-full","sm:w-auto","self-start","flex","flex-col","items-center","sm:items-start"],[1,"mb-2","text-[16px]","font-bold"],["autocomplete","off","autocorrect","off","autocapitalize","off","spellcheck","false","name","name","placeholder","name","type","text","required","",1,"w-[230px]","h-[42px]","rounded-[36px]","bg-white/20","backdrop-blur-md","px-4","text-white","placeholder-white","outline-none","mb-[5px]",3,"ngModelChange","ngModel"],["autocomplete","off","autocorrect","off","autocapitalize","off","spellcheck","false","name","email","placeholder","email","type","email","required","",1,"w-[230px]","h-[42px]","rounded-[36px]","bg-white/20","backdrop-blur-md","px-4","text-white","placeholder-white","outline-none","mb-[12px]",3,"ngModelChange","ngModel"],["buttonText","subscribe!",3,"clicked"]],template:function(i,r){if(i&1){let o=he();l(0,"div",1),v(1,"img",2),u(),l(2,"div",3)(3,"div",4),v(4,"img",5),l(5,"span"),p(6," 98 Cuttermill Road STE 223N,"),v(7,"br"),p(8," Great Neck, New York, 11024 "),u()(),l(9,"div",6)(10,"a",7)(11,"span"),p(12,"services"),u()(),l(13,"a",8)(14,"span"),p(15,"case studies"),u()(),l(16,"a",9)(17,"span"),p(18,"blog"),u()(),l(19,"a",10)(20,"span"),p(21,"privacy policy"),u()()(),l(22,"div",11),v(23,"img",12),l(24,"div",13)(25,"a",14),v(26,"img",15),u(),l(27,"a",16),v(28,"img",17),u(),l(29,"a",18),v(30,"img",19),u()()(),l(31,"form",null,0)(33,"div",20)(34,"span",21),p(35,"our newsletter"),u(),l(36,"input",22),$s("ngModelChange",function(a){return W(o),Gl(r.newsletter.name,a)||(r.newsletter.name=a),q(a)}),u(),l(37,"input",23),$s("ngModelChange",function(a){return W(o),Gl(r.newsletter.email,a)||(r.newsletter.email=a),q(a)}),u(),l(38,"app-button",24),S("clicked",function(){return W(o),q(r.subscribe())}),u()()()()}i&2&&(f(36),Us("ngModel",r.newsletter.name),f(),Us("ngModel",r.newsletter.email))},dependencies:[re,Ue,Gx,zx,vd,Lx,jx,Rg,Ng,Og],encapsulation:2})}return e})();var qx=(()=>{class e{calendly;platformId;showMenu=new _e;solid=ae(!1);constructor(t,i){this.calendly=t,this.platformId=i}ngOnInit(){et(this.platformId)&&this.updateSolid()}onScroll(){this.updateSolid()}updateSolid(){if(!et(this.platformId))return;let t=window.innerHeight*.9,i=window.scrollY>t;i!==this.solid()&&this.solid.set(i)}openMenu(){this.showMenu.emit()}scheduleCall(){this.calendly.openPopup().catch(()=>{})}static \u0275fac=function(i){return new(i||e)(D(Re),D(je))};static \u0275cmp=C({type:e,selectors:[["app-header"]],hostBindings:function(i,r){i&1&&S("scroll",function(){return r.onScroll()},pm)},outputs:{showMenu:"showMenu"},decls:11,vars:2,consts:[[1,"header-bar","fixed","top-0","z-50","w-full","h-[60px]","pl-4","pr-1","sm:pl-[60px]","sm:pr-[70px]","flex","items-center"],["routerLink","/",1,"cursor-pointer"],["src","/images/logo/semnexus.svg","alt",""],[1,"ml-auto","flex","items-center"],[1,"relative","inline-block","w-[162px]","h-[30px]","rounded-[36px]","cursor-pointer","hover:scale-[1.04]","hover:brightness-125","duration-300","transition",3,"click"],["src","/images/button/border.svg","alt","",1,"absolute","inset-0"],[1,"relative","w-full","h-full","text-[11px]","flex","items-center","justify-center","text-white","font-outfit","font-bold","rounded-md"],["src","/images/header/phone.svg","alt","",1,"mr-[9px]","h-[15px]","relative","-top-[3px]"],[1,"text-[11px]"],["src","/images/header/burger-menu.svg","alt","",1,"ml-1","sm:ml-[40px]","cursor-pointer","h-[20px]","sm:h-[15px]",3,"click"]],template:function(i,r){i&1&&(l(0,"div",0)(1,"a",1),v(2,"img",2),u(),l(3,"div",3)(4,"div",4),S("click",function(){return r.scheduleCall()}),v(5,"img",5),l(6,"div",6),v(7,"img",7),l(8,"span",8),p(9,"schedule a call"),u()()(),l(10,"img",9),S("click",function(){return r.openMenu()}
79),u()()()),i&2&&ce("is-solid",r.solid())},dependencies:[Ue],styles:[`.header-bar[_ngcontent-%COMP%]{background-color:transparent;border-bottom:1px solid transparent}.header-bar.is-solid[_ngcontent-%COMP%]{background-color:var(--bg-elev);border-bottom-color:color-mix(in srgb,var(--text) 8%,transparent)}@media (prefers-reduced-motion: no-preference){.header-bar[_ngcontent-%COMP%]{transition:background-color var(--dur) var(--ease),border-color var(--dur) var(--ease)}}
80/*# sourceMappingURL=header-UGW57X2Q.css.map */`]})}return e})();var $F=(e,n)=>({"animate-slide-in-right":e,"animate-slide-out-right":n}),Pg=(e,n)=>({"animate-slide-down-up":e,"animate-slide-up-down":n});function HF(e,n){if(e&1){let t=he();l(0,"div",19),S("animationend",function(){W(t);let r=E();return q(r.onAnimationEnd("developmentServices"))}),l(1,"nav",20)(2,"a",21),S("click",function(){W(t);let r=E();return q(r.hideMenu())}),p(3,"app development"),u(),l(4,"a",22),S("click",function(){W(t);let r=E();return q(r.hideMenu())}),p(5,"ai automation"),u(),l(6,"a",23),S("click",function(){W(t);let r=E();return q(r.hideMenu())}),p(7,"mobile app strategy & implementation"),u()(),l(8,"div",24)(9,"div",14),S("click",function(){W(t);let r=E();return q(r.scheduleCall())}),v(10,"img",15),l(11,"div",16),v(12,"img",17),l(13,"span",18),p(14,"schedule a call"),u()()()()()}if(e&2){let t=E();b("ngClass",wo(1,Pg,!t.dropdownStates.developmentServices.show,t.dropdownStates.developmentServices.show))}}function zF(e,n){if(e&1){let t=he();l(0,"div",19),S("animationend",function(){W(t);let r=E();return q(r.onAnimationEnd("marketingServices"))}),l(1,"nav",20)(2,"a",25),S("click",function(){W(t);let r=E();return q(r.hideMenu())}),p(3,"aeo marketing"),u(),l(4,"a",26),S("click",function(){W(t);let r=E();return q(r.hideMenu())}),p(5,"app marketing"),u(),l(6,"a",27),S("click",function(){W(t);let r=E();return q(r.hideMenu())}),p(7,"healthcare marketing"),u(),l(8,"a",28),S("click",function(){W(t);let r=E();return q(r.hideMenu())}),p(9,"influencer marketing"),u(),l(10,"a",29),S("click",function(){W(t);let r=E();return q(r.hideMenu())}),p(11,"website marketing"),u()(),l(12,"div",24)(13,"div",14),S("click",function(){W(t);let r=E();return q(r.scheduleCall())}),v(14,"img",15),l(15,"div",16),v(16,"img",17),l(17,"span",18),p(18,"schedule a call"),u()()()()()}if(e&2){let t=E();b("ngClass",wo(1,Pg,!t.dropdownStates.marketingServices.show,t.dropdownStates.marketingServices.show))}}function GF(e,n){if(e&1){let t=he();l(0,"div",19),S("animationend",function(){W(t);let r=E();return q(r.onAnimationEnd("cases"))}),l(1,"nav",20)(2,"a",30),S("click",function(){W(t);let r=E();return q(r.hideMenu())}),p(3,"development"),u(),l(4,"a",31),S("click",function(){W(t);let r=E();return q(r.hideMenu())}),p(5,"marketing"),u()()()}if(e&2){let t=E();b("ngClass",wo(1,Pg,!t.dropdownStates.cases.show,t.dropdownStates.cases.show))}}var Yx=(()=>{class e{calendly;constructor(t){this.calendly=t}isClosing=!1;dropdownStates={developmentServices:{show:!1,animating:!1},marketingServices:{show:!1,animating:!1},cases:{show:!1,animating:!1}};closeMenu=new _e;hideMenu(){this.isClosing=!0,setTimeout(()=>{this.closeMenu.emit(),this.isClosing=!1},300)}scheduleCall(){this.calendly.openPopup().catch(()=>{})}toggleDropdown(t){let i=this.dropdownStates[t];i.show?(i.animating=!0,i.show=!1,setTimeout(()=>{i.animating=!1},300)):i.show=!0}onAnimationEnd(t){let i=this.dropdownStates[t];i.animating&&(i.animating=!1)}static \u0275fac=function(i){return new(i||e)(D(Re))};static \u0275cmp=C({type:e,selectors:[["app-side-menu"]],outputs:{closeMenu:"closeMenu"},decls:39,vars:7,consts:[[1,"fixed","inset-0","z-60","bg-black/40","backdrop-blur-md","overflow-y-auto"],[1,"ml-auto","min-h-screen","w-full","sm:w-[469px]","bg-cover","bg-center","font-outfit","text-white","font-bold","flex","flex-col","p-4","sm:pt-[25px]","sm:px-[70px]",2,"background-image","url('/images/side-menu/backgrounds/side-menu.svg')",3,"ngClass"],[1,"text-right","text-white","text-xl","cursor-pointer",3,"click"],[1,"w-full","flex","justify-center","mt-[50px]"],["src","/images/logo/semnexus.svg","alt",""],[1,"flex","flex-col","mt-[80px]","gap-[50px]","items-center","text-3xl"],["routerLink","/",1,"curs
80or-pointer",3,"click"],[1,"flex","flex-col","items-center"],[1,"flex","items-center","cursor-pointer",3,"click"],["src","/images/side-menu/dropdown.svg","alt","",1,"ml-3","relative","top-[3px]"],[1,"mb-[30px]","w-[330px]",3,"ngClass"],[1,"flex","flex-col","items-center","w-full"],["href","/blog/",1,"cursor-pointer",3,"click"],[1,"w-full","flex","justify-center","my-[70px]"],[1,"relative","inline-block","w-[270px]","h-[50px]","rounded-[36px]","cursor-pointer","transition","hover:scale-[1.04]","hover:brightness-125","duration-300",3,"click"],["src","/images/button/border.svg","alt","",1,"absolute","inset-0","h-full","w-full","object-cover","rounded-[36px]"],[1,"relative","z-10","w-full","h-full","flex","items-center","justify-center","text-white","font-outfit","font-bold","rounded-[36px]"],["src","/images/header/phone.svg","alt","Phone Icon",1,"mr-[9px]","h-[18px]","relative"],[1,"text-[18px]"],[1,"mb-[30px]","w-[330px]",3,"animationend","ngClass"],[1,"flex","flex-col","gap-10","items-center","text-center","text-2xl","mb-[30px]"],["routerLink","/app-development-company",1,"cursor-pointer","border-b","border-white/10","whitespace-nowrap","w-[95%]","sm:w-[400px]","pb-[17px]",3,"click"],["routerLink","/ai-automation-agency",1,"curs
80or-pointer","border-b","border-white/10","whitespace-nowrap","w-[95%]","sm:w-[400px]","pb-[17px]",3,"click"],["routerLink","/business-mobile-consulting",1,"cursor-pointer",3,"click"],[1,"w-full","flex","justify-center","mb-[30px]"],["routerLink","/aeo-marketing-services",1,"cursor-pointer","border-b","border-white/10","whitespace-nowrap","w-[95%]","sm:w-[400px]","pb-[17px]",3,"click"],["routerLink","/mobile-app-marketing-services",1,"cursor-pointer","border-b","border-white/10","whitespace-nowrap","w-[95%]","sm:w-[400px]","pb-[17px]",3,"click"],["routerLink","/apps-healthcare-marketing",1,"cursor-pointer","border-b","border-white/10","whitespace-nowrap","w-[95%]","sm:w-[400px]","pb-[17px]",3,"click"],["routerLink","/influencer-process",1,"cursor-pointer","border-b","border-white/10","whitespace-nowrap","w-[95%]","sm:w-[400px]","pb-[17px]",3,"click"],["routerLink","/website-marketing-services",1,"cursor-pointer",3,"click"],["routerLink","/development-case-studies",1,"cursor-pointer","border-b","border-white/10","whitespace-nowrap","w-[95%]","sm:w-[400px]","pb-[17px]",3,"click"],["routerLink","/marketing-case-studies",1,"cursor-pointer",3,"click"]],template:function(i,r){i&1&&(l(0,"div",0)(1,"div",1)(2,"div",2),S("click",function(){return r.hideMenu()}),p(3,"x"),u(),l(4,"div",3),v(5,"img",4),u(),l(6,"nav",5)(7,"a",6),S("click",function(){return r.hideMenu()}),p(8,"home"),u(),l(9,"div",7)(10,"div",7)(11,"div",8),S("click",function(){return r.toggleDropdown("developmentServices")}),l(12,"a"),p(13,"development services"),u(),v(14,"img",9),u(),j(15,HF,15,4,"div",10),u()(),l(16,"div",7)(17,"div",11)(18,"div",8),S("click",function(){return r.toggleDropdown("marketingServices")}),l(19,"a"),p(20,"marketing services"),u(),v(21,"img",9),u(),j(22,zF,19,4,"div",10),u()(),l(23,"div",7)(24,"div",7)(25,"div",8),S("click",function(){return r.toggleDropdown("cases")}),l(26,"a"),p(27,"case studies"),u(),v(28,"img",9),u(),j(29,GF,6,4,"div",10),u()(),l(30,"a",12),S("click",function(){return r.hideMenu()}),p(31,"blog"),u()(),l(32,"div",13)(33,"div",14),S("click",function(){return r.scheduleCall()}),v(34,"img",15),l(35,"div",16),v(36,"img",17),l(37,"span",18),p(38,"schedule a call"),u()()()()()()),i&2&&(f(),b("ngClass",wo(4,$F,!r.isClosing,r.isClosing)),f(14),V(r.dropdownStates.developmentServices.show||r.dropdownStates.developmentServices.animating?15:-1),f(7),V(r.dropdownStates.marketingServices.show||r.dropdownStates.marketingServices.animating?22:-1),f(7),V(r.dropdownStates.cases.show||r.dropdownStates.cases.animating?29:-1))},dependencies:[K,Er,Ue],encapsulation:2})}return e})();function WF(e,n){if(e&1){let t=he();l(0,"app-side-menu",4),S("closeMenu",function(){W(t);let r=E();return r.scroll(!1),q(r.show=!1)}),u()}}var Zx=(()=>{class e{router;seo;platformId;document;show=!1;title="semnexus-landing";isBrowser=!1;isPopState=!1;constructor(t,i,r,o){this.router=t,this.seo=i,this.platformId=r,this.document=o,this.isBrowser=et(this.platformId),this.seo.setGlobalSchemas(),this.isBrowser&&this.router.events.pipe(at(s=>s instanceof Xt)).subscribe(s=>{window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:"page_view",page_path:s.urlAfterRedirects,page_location:window.location.href,page_title:o.title}),window.oaiq?.("measure","page_viewed",{type:"contents"}),window.fbq?.("track","PageView"),this.isPopState||window.scrollTo({top:0,behavior:"smooth"})})}scroll(t){this.isBrowser&&document.body.classList.toggle("overflow-hidden",t)}static \u0275fac=function(i){return new(i||e)(D(Se),D(se),D(je),D(Me))};static \u0275cmp=C({type:e,selectors:[["app-root"]],decls:6,vars:1,consts:[[1,"min-h-screen","w-full","flex","flex-col","relative","overflow-x-hidden","overflow-y-visible","text-white"],[3,"showMenu"],[1,"flex-1","bg-black","font-inter"],[3,"closeMenu",4,"ngIf"],[3,"closeMenu"]],template:function(i,r){i&1&&(l(0,"div",0)(1,"app-header",1),S("showMenu",function(){return r.scroll(!0),r.show=!0}),u(),l(2,"main",2),v(3,"router-outlet"),u(),v(4,"app-footer"),Ee(5,WF,1,0,"app-side-menu",3),u()),i&2&&(f(5),b("ngIf",r.show))},dependencies:[ha,Yx,qx,Wx,K,ni],encapsulation:2})}return e})();Vh(Zx,wx).catch(e=>console.error(e));
81//# sourceMappingURL=main-44WFRNBR.js.map

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.