diff --git a/app/src/__tests__/forms-panels.test.ts b/app/src/__tests__/forms-panels.test.ts
index d8fa0c8d..ef67a6cf 100644
--- a/app/src/__tests__/forms-panels.test.ts
+++ b/app/src/__tests__/forms-panels.test.ts
@@ -1147,6 +1147,15 @@ describe('FormsFields inline editing', () => {
const edit = button(fixture, 'Edit email');
expect(edit.disabled).toBe(true);
expect(edit.getAttribute('aria-describedby')).toBe('forms-writes-off');
+ const notes = [
+ ...(fixture.nativeElement as HTMLElement).querySelectorAll('[id="forms-writes-off"]'),
+ ];
+ expect(notes.length).toBeGreaterThan(0);
+ for (const note of notes) {
+ expect(note.textContent!.trim()).not.toBe('');
+ expect(note.textContent).not.toContain('function');
+ expect(note.textContent).not.toContain('[Input Signal');
+ }
});
});
diff --git a/app/src/pages/forms-action-bar.ts b/app/src/pages/forms-action-bar.ts
index 59174d61..589e4514 100644
--- a/app/src/pages/forms-action-bar.ts
+++ b/app/src/pages/forms-action-bar.ts
@@ -75,7 +75,7 @@ import { FORMS_STYLES } from './forms-types';
@if (!canWrite()) {
-
{{ writesOff }}
+ {{ writesOff() }}
}
{{ message() }}
diff --git a/apps/docs/src/content/api/angular-debug-api.md b/apps/docs/src/content/api/angular-debug-api.md
index 28c6d543..0669699b 100644
--- a/apps/docs/src/content/api/angular-debug-api.md
+++ b/apps/docs/src/content/api/angular-debug-api.md
@@ -33,6 +33,7 @@ A required function is one every supported Angular version publishes, so the ove
| `ɵgetInjectorMetadata` | 17.0 | No | Type (`element`, `environment` or `null`) and source of an injector. |
| `ɵsetProfiler` | See note | No | Adds a profiler. From 20.0 it hands back its remover; before that it has one slot (`ng-capabilities.ts` checks the version). |
| `ɵgetSignalGraph` | 19.1 | No | The reactive graph of an injector. Node ids from 20.1. |
+| `toggleWatchSignal` | See note | No | Watches or unwatches a signal-graph node by id. Present in 22.3 prereleases; not called by the overlay. |
| `ɵgetDeferBlocks` | 19.1 | No | `@defer` blocks under a node. Replaced by `ɵgetControlFlowBlocks` in 22.0. |
| `ɵgetControlFlowBlocks` | 22.0 | No | `@defer` and `@for` blocks under a node. |
| `ɵgetTransferState` | See note | No | The TransferState entries without Angular's own hydration keys. Present in 22.1; not checked on older versions. |
diff --git a/apps/docs/src/content/inspectors/signals.md b/apps/docs/src/content/inspectors/signals.md
index 0d3e5103..e208e26d 100644
--- a/apps/docs/src/content/inspectors/signals.md
+++ b/apps/docs/src/content/inspectors/signals.md
@@ -84,7 +84,7 @@ Click an entry under **Dependencies (producers)** or **Consumers** to open that
### Resources
-Angular builds each `resource()`, `httpResource()` and `rxResource()` from several internal signals, labeled `Resource#name.value`, `Resource#name.state` and so on. The tab folds them into one card under **Resources**, and leaves them out of the **Signals** list. Angular labels these signals from 21.0.1. On earlier versions they have no names, so the tab shows no **Resources** cards and lists them as unnamed nodes. Each card shows:
+Angular builds each `resource()`, `httpResource()` and `rxResource()` from several internal signals, labeled `Resource#name.value`, `Resource#name.state` and so on. The tab folds them into one card under **Resources**, and leaves them out of the **Signals** list. Angular labels these signals from 21.0.1, and the 22.3 prereleases add a `Resource#name.params` computed that the tab folds in the same way. On earlier versions they have no names, so the tab shows no **Resources** cards and lists them as unnamed nodes. Each card shows:
| Field | Meaning |
| --------------- | ----------------------------------------------------------------------------------------- |
diff --git a/extension/ui/assets/browser-agent-rpc-KH4HHvHf-aJiGMZYV.js b/extension/ui/assets/browser-agent-rpc-KH4HHvHf-DF8dhgzY.js
similarity index 95%
rename from extension/ui/assets/browser-agent-rpc-KH4HHvHf-aJiGMZYV.js
rename to extension/ui/assets/browser-agent-rpc-KH4HHvHf-DF8dhgzY.js
index c1f0b186..02088227 100644
--- a/extension/ui/assets/browser-agent-rpc-KH4HHvHf-aJiGMZYV.js
+++ b/extension/ui/assets/browser-agent-rpc-KH4HHvHf-DF8dhgzY.js
@@ -1 +1 @@
-import{t as e}from"./index-XF1T2gjx.js";var t=Symbol.for(`devframe:browser-agent-registry`),{tools:n,listeners:r}=globalThis[t]??={tools:new Map,listeners:new Set};function i(){return[...n.values()]}function a(e){return r.add(e),()=>r.delete(e)}var o=`devframe:client-id`,s;function c(t=globalThis.window){try{let n=t?.sessionStorage;if(n){let t=n.getItem(o);return t||(t=e(),n.setItem(o,t)),t}}catch{}return s??=e(),s}function l(){let e=typeof document>`u`?void 0:document;return{url:e?.location?.href??``,title:e?.title??``,visible:!e||e.visibilityState===`visible`,focused:e?.hasFocus()??!0}}function u(e){e.client.register({name:`devframe:agent:invoke-client-tool`,type:`action`,jsonSerializable:!0,handler:async(e,t)=>{let n=i().find(t=>t.id===e);if(!n)throw Error(`[devframe/agent] browser tool "${e}" not found`);return await n.invoke(t)}});let t=!1,n=!1,r=0,o=()=>{t||n||(t=!0,queueMicrotask(async()=>{if(t=!1,n)return;let a=i().map(({invoke:e,...t})=>t);(a.length!==0||r!==0)&&(r=a.length,await e.callOptional(`devframe:agent:sync-client-tools`,c(),a,l()).catch(()=>{}))}))},s=a(o),u=e.events.on(`connection:status`,e=>{e===`connected`&&o()}),d=typeof window>`u`?void 0:window;return d?.addEventListener(`focus`,o),d?.addEventListener(`blur`,o),d?.document.addEventListener(`visibilitychange`,o),o(),()=>{n=!0,s(),u(),d?.removeEventListener(`focus`,o),d?.removeEventListener(`blur`,o),d?.document.removeEventListener(`visibilitychange`,o)}}export{u as setupBrowserAgentRpcBridge};
\ No newline at end of file
+import{t as e}from"./index-fAMsQf9b.js";var t=Symbol.for(`devframe:browser-agent-registry`),{tools:n,listeners:r}=globalThis[t]??={tools:new Map,listeners:new Set};function i(){return[...n.values()]}function a(e){return r.add(e),()=>r.delete(e)}var o=`devframe:client-id`,s;function c(t=globalThis.window){try{let n=t?.sessionStorage;if(n){let t=n.getItem(o);return t||(t=e(),n.setItem(o,t)),t}}catch{}return s??=e(),s}function l(){let e=typeof document>`u`?void 0:document;return{url:e?.location?.href??``,title:e?.title??``,visible:!e||e.visibilityState===`visible`,focused:e?.hasFocus()??!0}}function u(e){e.client.register({name:`devframe:agent:invoke-client-tool`,type:`action`,jsonSerializable:!0,handler:async(e,t)=>{let n=i().find(t=>t.id===e);if(!n)throw Error(`[devframe/agent] browser tool "${e}" not found`);return await n.invoke(t)}});let t=!1,n=!1,r=0,o=()=>{t||n||(t=!0,queueMicrotask(async()=>{if(t=!1,n)return;let a=i().map(({invoke:e,...t})=>t);(a.length!==0||r!==0)&&(r=a.length,await e.callOptional(`devframe:agent:sync-client-tools`,c(),a,l()).catch(()=>{}))}))},s=a(o),u=e.events.on(`connection:status`,e=>{e===`connected`&&o()}),d=typeof window>`u`?void 0:window;return d?.addEventListener(`focus`,o),d?.addEventListener(`blur`,o),d?.document.addEventListener(`visibilitychange`,o),o(),()=>{n=!0,s(),u(),d?.removeEventListener(`focus`,o),d?.removeEventListener(`blur`,o),d?.document.removeEventListener(`visibilitychange`,o)}}export{u as setupBrowserAgentRpcBridge};
\ No newline at end of file
diff --git a/extension/ui/assets/index-XF1T2gjx.js b/extension/ui/assets/index-fAMsQf9b.js
similarity index 99%
rename from extension/ui/assets/index-XF1T2gjx.js
rename to extension/ui/assets/index-fAMsQf9b.js
index 2524a5f9..5ade7d63 100644
--- a/extension/ui/assets/index-XF1T2gjx.js
+++ b/extension/ui/assets/index-fAMsQf9b.js
@@ -5,7 +5,7 @@
`):``,this.name=`UnsubscriptionError`,this.errors=t}});function or(e,t){if(e){var n=e.indexOf(t);0<=n&&e.splice(n,1)}}var sr=function(){function e(e){this.initialTeardown=e,this.closed=!1,this._parentage=null,this._finalizers=null}return e.prototype.unsubscribe=function(){var e,t,n,r,i;if(!this.closed){this.closed=!0;var a=this._parentage;if(a){if(this._parentage=null,Array.isArray(a))try{for(var o=Zn(a),s=o.next();!s.done;s=o.next())s.value.remove(this)}catch(t){e={error:t}}finally{try{s&&!s.done&&(t=o.return)&&t.call(o)}finally{if(e)throw e.error}}else a.remove(this)}var c=this.initialTeardown;if(rr(c))try{c()}catch(e){i=e instanceof ar?e.errors:[e]}var l=this._finalizers;if(l){this._finalizers=null;try{for(var u=Zn(l),d=u.next();!d.done;d=u.next()){var f=d.value;try{ur(f)}catch(e){i??=[],e instanceof ar?i=$n($n([],Qn(i)),Qn(e.errors)):i.push(e)}}}catch(e){n={error:e}}finally{try{d&&!d.done&&(r=u.return)&&r.call(u)}finally{if(n)throw n.error}}}if(i)throw new ar(i)}},e.prototype.add=function(t){if(t&&t!==this){if(this.closed)ur(t);else{if(t instanceof e){if(t.closed||t._hasParent(this))return;t._addParent(this)}(this._finalizers=this._finalizers??[]).push(t)}}},e.prototype._hasParent=function(e){var t=this._parentage;return t===e||Array.isArray(t)&&t.includes(e)},e.prototype._addParent=function(e){var t=this._parentage;this._parentage=Array.isArray(t)?(t.push(e),t):t?[t,e]:e},e.prototype._removeParent=function(e){var t=this._parentage;t===e?this._parentage=null:Array.isArray(t)&&or(t,e)},e.prototype.remove=function(t){var n=this._finalizers;n&&or(n,t),t instanceof e&&t._removeParent(this)},e.EMPTY=(function(){var t=new e;return t.closed=!0,t})(),e}(),cr=sr.EMPTY;function lr(e){return e instanceof sr||e&&`closed`in e&&rr(e.remove)&&rr(e.add)&&rr(e.unsubscribe)}function ur(e){rr(e)?e():e.unsubscribe()}var dr={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1},fr={setTimeout:function(e,t){var n=[...arguments].slice(2),r=fr.delegate;return r?.setTimeout?r.setTimeout.apply(r,$n([e,t],Qn(n))):setTimeout.apply(void 0,$n([e,t],Qn(n)))},clearTimeout:function(e){return(fr.delegate?.clearTimeout||clearTimeout)(e)},delegate:void 0};function pr(e){fr.setTimeout(function(){var t=dr.onUnhandledError;if(t)t(e);else throw e})}function mr(){}var hr=(function(){return vr(`C`,void 0,void 0)})();function gr(e){return vr(`E`,void 0,e)}function _r(e){return vr(`N`,e,void 0)}function vr(e,t,n){return{kind:e,value:t,error:n}}var yr=null;function br(e){if(dr.useDeprecatedSynchronousErrorHandling){var t=!yr;if(t&&(yr={errorThrown:!1,error:null}),e(),t){var n=yr,r=n.errorThrown,i=n.error;if(yr=null,r)throw i}}else e()}function xr(e){dr.useDeprecatedSynchronousErrorHandling&&yr&&(yr.errorThrown=!0,yr.error=e)}var Sr=function(e){Jn(t,e);function t(t){var n=e.call(this)||this;return n.isStopped=!1,t?(n.destination=t,lr(t)&&t.add(n)):n.destination=Ar,n}return t.create=function(e,t,n){return new Er(e,t,n)},t.prototype.next=function(e){this.isStopped?kr(_r(e),this):this._next(e)},t.prototype.error=function(e){this.isStopped?kr(gr(e),this):(this.isStopped=!0,this._error(e))},t.prototype.complete=function(){this.isStopped?kr(hr,this):(this.isStopped=!0,this._complete())},t.prototype.unsubscribe=function(){this.closed||(this.isStopped=!0,e.prototype.unsubscribe.call(this),this.destination=null)},t.prototype._next=function(e){this.destination.next(e)},t.prototype._error=function(e){try{this.destination.error(e)}finally{this.unsubscribe()}},t.prototype._complete=function(){try{this.destination.complete()}finally{this.unsubscribe()}},t}(sr),Cr=Function.prototype.bind;function wr(e,t){return Cr.call(e,t)}var Tr=function(){function e(e){this.partialObserver=e}return e.prototype.next=function(e){var t=this.partialObserver;if(t.next)try{t.next(e)}catch(e){Dr(e)}},e.prototype.error=function(e){var t=this.partialObserver;if(t.error)try{t.error(e)}catch(e){Dr(e)}else Dr(e)},e.prototype.complete=function(){var e=this.partialObserver;if(e.complete)try{e.complete()}catch(e){Dr(e)}},e}(),Er=function(e){Jn(t,e);function t(t,n,r){var i=e.call(this)||this,a;if(rr(t)||!t)a={next:t??void 0,error:n??void 0,complete:r??void 0};else{var o;i&&dr.useDeprecatedNextContext?(o=Object.create(t),o.unsubscribe=function(){return i.unsubscribe()},a={next:t.next&&wr(t.next,o),error:t.error&&wr(t.error,o),complete:t.complete&&wr(t.complete,o)}):a=t}return i.destination=new Tr(a),i}return t}(Sr);function Dr(e){dr.useDeprecatedSynchronousErrorHandling?xr(e):pr(e)}function Or(e){throw e}function kr(e,t){var n=dr.onStoppedNotification;n&&fr.setTimeout(function(){return n(e,t)})}var Ar={closed:!0,next:mr,error:Or,complete:mr},jr=(function(){return typeof Symbol==`function`&&Symbol.observable||`@@observable`})();function Mr(e){return e}function Nr(e){return e.length===0?Mr:e.length===1?e[0]:function(t){return e.reduce(function(e,t){return t(e)},t)}}var Pr=function(){function e(e){e&&(this._subscribe=e)}return e.prototype.lift=function(t){var n=new e;return n.source=this,n.operator=t,n},e.prototype.subscribe=function(e,t,n){var r=this,i=Lr(e)?e:new Er(e,t,n);return br(function(){var e=r,t=e.operator,n=e.source;i.add(t?t.call(i,n):n?r._subscribe(i):r._trySubscribe(i))}),i},e.prototype._trySubscribe=function(e){try{return this._subscribe(e)}catch(t){e.error(t)}},e.prototype.forEach=function(e,t){var n=this;return t=Fr(t),new t(function(t,r){var i=new Er({next:function(t){try{e(t)}catch(e){r(e),i.unsubscribe()}},error:r,complete:t});n.subscribe(i)})},e.prototype._subscribe=function(e){return this.source?.subscribe(e)},e.prototype[jr]=function(){return this},e.prototype.pipe=function(){return Nr([...arguments])(this)},e.prototype.toPromise=function(e){var t=this;return e=Fr(e),new e(function(e,n){var r;t.subscribe(function(e){return r=e},function(e){return n(e)},function(){return e(r)})})},e.create=function(t){return new e(t)},e}();function Fr(e){return e??dr.Promise??Promise}function Ir(e){return e&&rr(e.next)&&rr(e.error)&&rr(e.complete)}function Lr(e){return e&&e instanceof Sr||Ir(e)&&lr(e)}function Rr(e){return rr(e?.lift)}function zr(e){return function(t){if(Rr(t))return t.lift(function(t){try{return e(t,this)}catch(e){this.error(e)}});throw TypeError(`Unable to lift unknown Observable type`)}}function Br(e,t,n,r,i){return new Vr(e,t,n,r,i)}var Vr=function(e){Jn(t,e);function t(t,n,r,i,a,o){var s=e.call(this,t)||this;return s.onFinalize=a,s.shouldUnsubscribe=o,s._next=n?function(e){try{n(e)}catch(e){t.error(e)}}:e.prototype._next,s._error=i?function(e){try{i(e)}catch(e){t.error(e)}finally{this.unsubscribe()}}:e.prototype._error,s._complete=r?function(){try{r()}catch(e){t.error(e)}finally{this.unsubscribe()}}:e.prototype._complete,s}return t.prototype.unsubscribe=function(){var t;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){var n=this.closed;e.prototype.unsubscribe.call(this),!n&&((t=this.onFinalize)==null||t.call(this))}},t}(Sr),Hr=ir(function(e){return function(){e(this),this.name=`ObjectUnsubscribedError`,this.message=`object unsubscribed`}}),Ur=function(e){Jn(t,e);function t(){var t=e.call(this)||this;return t.closed=!1,t.currentObservers=null,t.observers=[],t.isStopped=!1,t.hasError=!1,t.thrownError=null,t}return t.prototype.lift=function(e){var t=new Wr(this,this);return t.operator=e,t},t.prototype._throwIfClosed=function(){if(this.closed)throw new Hr},t.prototype.next=function(e){var t=this;br(function(){var n,r;if(t._throwIfClosed(),!t.isStopped){t.currentObservers||=Array.from(t.observers);try{for(var i=Zn(t.currentObservers),a=i.next();!a.done;a=i.next())a.value.next(e)}catch(e){n={error:e}}finally{try{a&&!a.done&&(r=i.return)&&r.call(i)}finally{if(n)throw n.error}}}})},t.prototype.error=function(e){var t=this;br(function(){if(t._throwIfClosed(),!t.isStopped){t.hasError=t.isStopped=!0,t.thrownError=e;for(var n=t.observers;n.length;)n.shift().error(e)}})},t.prototype.complete=function(){var e=this;br(function(){if(e._throwIfClosed(),!e.isStopped){e.isStopped=!0;for(var t=e.observers;t.length;)t.shift().complete()}})},t.prototype.unsubscribe=function(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null},Object.defineProperty(t.prototype,"observed",{get:function(){return this.observers?.length>0},enumerable:!1,configurable:!0}),t.prototype._trySubscribe=function(t){return this._throwIfClosed(),e.prototype._trySubscribe.call(this,t)},t.prototype._subscribe=function(e){return this._throwIfClosed(),this._checkFinalizedStatuses(e),this._innerSubscribe(e)},t.prototype._innerSubscribe=function(e){var t=this,n=this,r=n.hasError,i=n.isStopped,a=n.observers;return r||i?cr:(this.currentObservers=null,a.push(e),new sr(function(){t.currentObservers=null,or(a,e)}))},t.prototype._checkFinalizedStatuses=function(e){var t=this,n=t.hasError,r=t.thrownError,i=t.isStopped;n?e.error(r):i&&e.complete()},t.prototype.asObservable=function(){var e=new Pr;return e.source=this,e},t.create=function(e,t){return new Wr(e,t)},t}(Pr),Wr=function(e){Jn(t,e);function t(t,n){var r=e.call(this)||this;return r.destination=t,r.source=n,r}return t.prototype.next=function(e){var t,n;(n=(t=this.destination)?.next)==null||n.call(t,e)},t.prototype.error=function(e){var t,n;(n=(t=this.destination)?.error)==null||n.call(t,e)},t.prototype.complete=function(){var e,t;(t=(e=this.destination)?.complete)==null||t.call(e)},t.prototype._subscribe=function(e){return this.source?.subscribe(e)??cr},t}(Ur),Gr=function(e){Jn(t,e);function t(t){var n=e.call(this)||this;return n._value=t,n}return Object.defineProperty(t.prototype,"value",{get:function(){return this.getValue()},enumerable:!1,configurable:!0}),t.prototype._subscribe=function(t){var n=e.prototype._subscribe.call(this,t);return!n.closed&&t.next(this._value),n},t.prototype.getValue=function(){var e=this,t=e.hasError,n=e.thrownError,r=e._value;if(t)throw n;return this._throwIfClosed(),r},t.prototype.next=function(t){e.prototype.next.call(this,this._value=t)},t}(Ur);function Kr(e){return e[e.length-1]}function qr(e){return rr(Kr(e))?e.pop():void 0}var Jr=(function(e){return e&&typeof e.length==`number`&&typeof e!=`function`});function Yr(e){return rr(e?.then)}function Xr(e){return rr(e[jr])}function Zr(e){return Symbol.asyncIterator&&rr(e?.[Symbol.asyncIterator])}function Qr(e){return TypeError(`You provided `+(typeof e==`object`&&e?`an invalid object`:`'`+e+`'`)+` where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.`)}function $r(){return typeof Symbol!=`function`||!Symbol.iterator?`@@iterator`:Symbol.iterator}var ei=$r();function ti(e){return rr(e?.[ei])}function ni(e){return tr(this,arguments,function(){var t,n,r,i;return Xn(this,function(a){switch(a.label){case 0:t=e.getReader(),a.label=1;case 1:a.trys.push([1,,9,10]),a.label=2;case 2:return[4,er(t.read())];case 3:return n=a.sent(),r=n.value,i=n.done,i?[4,er(void 0)]:[3,5];case 4:return[2,a.sent()];case 5:return[4,er(r)];case 6:return[4,a.sent()];case 7:return a.sent(),[3,2];case 8:return[3,10];case 9:return t.releaseLock(),[7];case 10:return[2]}})})}function ri(e){return rr(e?.getReader)}function ii(e){if(e instanceof Pr)return e;if(e!=null){if(Xr(e))return _ee(e);if(Jr(e))return vee(e);if(Yr(e))return yee(e);if(Zr(e))return ai(e);if(ti(e))return bee(e);if(ri(e))return xee(e)}throw Qr(e)}function _ee(e){return new Pr(function(t){var n=e[jr]();if(rr(n.subscribe))return n.subscribe(t);throw TypeError(`Provided object does not correctly implement Symbol.observable`)})}function vee(e){return new Pr(function(t){for(var n=0;n=0?n.slice(0,r):n}function gi(e,t){return e?t?`${e} ${t}`:e:t||``}var Uee=mi({__forward_ref__:mi});function _i(e){return e.__forward_ref__=_i,e}function vi(e){return yi(e)?e():e}function yi(e){return typeof e==`function`&&Object.hasOwn(e,Uee)&&e.__forward_ref__===_i}function bi(e){return{token:e.token,providedIn:e.providedIn||null,factory:e.factory,value:void 0}}function xi(e){return Si(e,Ti)}function Si(e,t){return Object.hasOwn(e,t)&&e[t]||null}function Ci(e){return(e?.[Ti]??null)||null}function wi(e){return e&&Object.hasOwn(e,Ei)?e[Ei]:null}var Ti=mi({ɵprov:mi}),Ei=mi({ɵinj:mi}),Di=class{_desc;ngMetadataName=`InjectionToken`;ɵprov;constructor(e,t){this._desc=e,this.ɵprov=void 0,typeof t==`number`?this.__NG_ELEMENT_ID__=t:t!==void 0&&(this.ɵprov=bi({token:this,providedIn:t.providedIn||`root`,factory:t.factory}))}get multi(){return this}toString(){return`InjectionToken ${this._desc}`}};function Oi(e){return e&&!!e.ɵproviders}var ki=mi({ɵcmp:mi}),Ai=mi({ɵdir:mi}),ji=mi({ɵpipe:mi}),Mi=mi({ɵfac:mi}),Ni=mi({__NG_ELEMENT_ID__:mi}),Pi=mi({__NG_ENV_ID__:mi});function Fi(e){return Ri(e,`@Component`),e[ki]||null}function Ii(e){return Ri(e,`@Directive`),e[Ai]||null}function Li(e){return Ri(e,`@Pipe`),e[ji]||null}function Ri(e,t){if(e==null)throw new fi(-919,!1)}function zi(e){return typeof e==`string`?e:e==null?``:String(e)}var Bi=mi({ngErrorCode:mi}),Vi=mi({ngErrorMessage:mi}),Hi=mi({ngTokenPath:mi});function Ui(e,t){return Gi(``,-200,t)}function Wi(e,t){throw new fi(-201,!1)}function Gi(e,t,n){let r=new fi(t,e);return r[Bi]=t,r[Vi]=e,n&&(r[Hi]=n),r}function Ki(e){return e[Bi]}var qi;function Ji(){return qi}function Yi(e){let t=qi;return qi=e,t}function Xi(e,t,n){let r=xi(e);if(r&&r.providedIn==`root`)return r.value===void 0?r.value=r.factory():r.value;if(n&8)return null;if(t!==void 0)return t;Wi(e,``)}var Zi=globalThis,Qi={},$i=`__NG_DI_FLAG__`,ea=class{injector;constructor(e){this.injector=e}retrieve(e,t){let n=ra(t)||0;try{return this.injector.get(e,n&8?null:Qi,n)}catch(e){if(Vn(e))return e;throw e}}};function ta(e,t=0){let n=Rn();if(n===void 0)throw new fi(-203,!1);if(n===null)return Xi(e,void 0,t);{let r=ia(t),i=n.retrieve(e,r);if(Vn(i)){if(r.optional)return null;throw i}return i}}function na(e,t=0){return(Ji()||ta)(vi(e),t)}function x(e,t){return na(e,ra(t))}function ra(e){return e===void 0||typeof e==`number`?e:0|(e.optional&&8)|(e.host&&1)|(e.self&&2)|(e.skipSelf&&4)}function ia(e){return{optional:!!(e&8),host:!!(e&1),self:!!(e&2),skipSelf:!!(e&4)}}function aa(e){let t=[];for(let n=0;nArray.isArray(e)?ua(e,t):t(e))}function da(e,t,n){t>=e.length?e.push(n):e.splice(t,0,n)}function fa(e,t){return t>=e.length-1?e.pop():e.splice(t,1)[0]}function pa(e,t){let n=[];for(let r=0;rt;){let t=i-2;e[i]=e[t],i--}e[t]=n,e[t+1]=r}}function ha(e,t,n){let r=_a(e,t);return r>=0?e[r|1]=n:(r=~r,ma(e,r,t,n)),r}function ga(e,t){let n=_a(e,t);if(n>=0)return e[n|1]}function _a(e,t){return va(e,t,1)}function va(e,t,n){let r=0,i=e.length>>n;for(;i!==r;){let a=r+(i-r>>1),o=e[a<t?i=a:r=a+1}return~(i<{n.push(e)};return ua(t,e=>{let t=e;Oa(t,a,[],r)&&(i||=[],i.push(t))}),i!==void 0&&Da(i,a),n}function Da(e,t){for(let n=0;n{t(e,r)})}}function Oa(e,t,n,r){if(e=vi(e),!e)return!1;let i=null,a=wi(e),o=!a&&Fi(e);if(!a&&!o){let t=e.ngModule;if(a=wi(t),a)i=t;else return!1}else if(o&&!o.standalone)return!1;else i=e;let s=r.has(i);if(o){if(s)return!1;if(r.add(i),o.dependencies){let e=typeof o.dependencies==`function`?o.dependencies():o.dependencies;for(let i of e)Oa(i,t,n,r)}}else if(a){if(a.imports!=null&&!s){r.add(i);let e;try{ua(a.imports,i=>{Oa(i,t,n,r)&&(e||=[],e.push(i))})}finally{}e!==void 0&&Da(e,t)}if(!s){let e=sa(i)||(()=>new i);t({provide:i,useFactory:e,deps:ba},i),t({provide:Ca,useValue:i,multi:!0},i),t({provide:xa,useValue:()=>na(i),multi:!0},i)}let o=a.providers;if(o!=null&&!s){let n=e;ka(o,e=>{t(e,n)})}}else return!1;return i!==e&&e.providers!==void 0}function ka(e,t){for(let n of e)Oi(n)&&(n=n.ɵproviders),Array.isArray(n)?ka(n,t):t(n)}var Aa=mi({provide:String,useValue:mi});function ja(e){return typeof e==`object`&&!!e&&Aa in e}function Ma(e){return!!(e&&e.useExisting)}function Na(e){return!!(e&&e.useFactory)}function Pa(e){return typeof e==`function`}function Fa(e){return!!e.useClass}var Ia=new Di(``),La={},Ra={},za=void 0;function Ba(){return za===void 0&&(za=new wa),za}var Va=class{},Ha=class extends Va{parent;source;scopes;records=new Map;_ngOnDestroyHooks=new Set;_onDestroyHooks=[];get destroyed(){return this._destroyed}_destroyed=!1;injectorDefTypes;constructor(e,t,n,r){super(),this.parent=t,this.source=n,this.scopes=r,Qa(e,e=>this.processProvider(e)),this.records.set(Sa,Ja(void 0,this)),r.has(`environment`)&&this.records.set(Va,Ja(void 0,this));let i=this.records.get(Ia);i!=null&&typeof i.value==`string`&&this.scopes.add(i.value),this.injectorDefTypes=new Set(this.get(Ca,ba,{self:!0}))}retrieve(e,t){let n=ra(t)||0;try{return this.get(e,Qi,n)}catch(e){if(Vn(e))return e;throw e}}destroy(){qa(this),this._destroyed=!0;let e=rn(null);try{for(let e of this._ngOnDestroyHooks)e.ngOnDestroy();let e=this._onDestroyHooks;this._onDestroyHooks=[];for(let t of e)t()}finally{this.records.clear(),this._ngOnDestroyHooks.clear(),this.injectorDefTypes.clear(),rn(e)}}onDestroy(e){return qa(this),this._onDestroyHooks.push(e),()=>this.removeOnDestroy(e)}runInContext(e){qa(this);let t=zn(this),n=Yi(void 0);try{return e()}finally{zn(t),Yi(n)}}get(e,t=Qi,n){if(qa(this),Object.hasOwn(e,Pi))return e[Pi](this);let r=ra(n),i=zn(this),a=Yi(void 0);try{if(!(r&4)){let t=this.records.get(e);if(t===void 0){let n=Za(e)&&xi(e);t=n&&this.injectableDefInScope(n)?Ja(Ua(e),La):null,this.records.set(e,t)}if(t!=null)return this.hydrate(e,t,r)}let n=r&2?Ba():this.parent;return t=r&8&&t===Qi?null:t,n.get(e,t)}catch(e){let t=Ki(e);throw t===-200||t===-201?new fi(t,null):e}finally{Yi(a),zn(i)}}resolveInjectorInitializers(){let e=rn(null),t=zn(this),n=Yi(void 0);try{let e=this.get(xa,ba,{self:!0});for(let t of e)t()}finally{zn(t),Yi(n),rn(e)}}toString(){return`R3Injector[...]`}processProvider(e){e=vi(e);let t=Pa(e)?e:vi(e&&e.provide),n=Ga(e);if(!Pa(e)&&e.multi===!0){let n=this.records.get(t);n||(n=Ja(void 0,La,!0),n.factory=()=>aa(n.multi),this.records.set(t,n)),t=e,n.multi.push(e)}this.records.set(t,n)}hydrate(e,t,n){let r=rn(null);try{if(t.value===Ra)throw Ui(``);return t.value===La&&(t.value=Ra,t.value=t.factory(void 0,n)),typeof t.value==`object`&&t.value&&Xa(t.value)&&this._ngOnDestroyHooks.add(t.value),t.value}finally{rn(r)}}injectableDefInScope(e){if(!e.providedIn)return!1;let t=vi(e.providedIn);return typeof t==`string`?t===`any`||this.scopes.has(t):this.injectorDefTypes.has(t)}removeOnDestroy(e){let t=this._onDestroyHooks.indexOf(e);t!==-1&&this._onDestroyHooks.splice(t,1)}};function Ua(e){let t=xi(e),n=t===null?sa(e):t.factory;if(n!==null)return n;if(e instanceof Di)throw new fi(-204,!1);if(e instanceof Function)return Wa(e);throw new fi(-204,!1)}function Wa(e){if(e.length>0)throw new fi(-204,!1);let t=Ci(e);return t===null?()=>new e:()=>t.factory(e)}function Ga(e){return ja(e)?Ja(void 0,e.useValue):Ja(Ka(e),La)}function Ka(e,t,n){let r;if(Pa(e)){let t=vi(e);return sa(t)||Ua(t)}if(ja(e))r=()=>vi(e.useValue);else if(Na(e))r=()=>e.useFactory(...aa(e.deps||[]));else if(Ma(e))r=(t,n)=>na(vi(e.useExisting),n!==void 0&&n&8?8:void 0);else{let t=vi(e&&(e.useClass||e.provide));if(Ya(e))r=()=>new t(...aa(e.deps));else return sa(t)||Ua(t)}return r}function qa(e){if(e.destroyed)throw new fi(-205,!1)}function Ja(e,t,n=!1){return{factory:e,value:t,multi:n?[]:void 0}}function Ya(e){return!!e.deps}function Xa(e){return typeof e==`object`&&!!e&&typeof e.ngOnDestroy==`function`}function Za(e){return typeof e==`function`||typeof e==`object`&&e.ngMetadataName===`InjectionToken`}function Qa(e,t){for(let n of e)Array.isArray(n)?Qa(n,t):n&&Oi(n)?Qa(n.ɵproviders,t):t(n)}function $a(e,t){let n;e instanceof Ha?(qa(e),n=e):n=new ea(e);let r=zn(n),i=Yi(void 0);try{return t()}finally{zn(r),Yi(i)}}function eo(){return Ji()!==void 0||Rn()!=null}var to=1;function no(e){return Array.isArray(e)&&typeof e[to]==`object`}function ro(e){return Array.isArray(e)&&e[to]===!0}function io(e){return!!(e.flags&4)}function ao(e){return e.componentOffset>-1}function oo(e){return(e.flags&1)==1}function so(e){return!!e.template}function co(e){return!!(e[2]&512)}function lo(e){return(e[2]&256)==256}var uo=(function(e){return e[e.NONE=0]=`NONE`,e[e.HTML=1]=`HTML`,e[e.STYLE=2]=`STYLE`,e[e.SCRIPT=3]=`SCRIPT`,e[e.URL=4]=`URL`,e[e.RESOURCE_URL=5]=`RESOURCE_URL`,e[e.ATTRIBUTE_NO_BINDING=6]=`ATTRIBUTE_NO_BINDING`,e})(uo||{}),fo=`math`;function po(e){for(;Array.isArray(e);)e=e[0];return e}function mo(e,t){return po(t[e])}function ho(e,t){return po(t[e.index])}function go(e,t){return e.data[t]}function _o(e,t){return e[t]}function vo(e,t,n,r){n>=e.data.length&&(e.data[n]=null,e.blueprint[n]=null),t[n]=r}function yo(e,t){let n=t[e];return no(n)?n:n[0]}function bo(e){return(e[2]&128)==128}function xo(e){return ro(e[3])}function So(e,t){return t==null?null:e[t]}function Co(e){e[17]=0}function wo(e){e[2]&1024||(e[2]|=1024,bo(e)&&Oo(e))}function To(e,t){for(;e>0;)t=t[14],e--;return t}function Eo(e){return!!(e[2]&9216||e[24]?.dirty)}function Do(e){e[10].changeDetectionScheduler?.notify(8),e[2]&64&&(e[2]|=1024),Eo(e)&&Oo(e)}function Oo(e){e[10].changeDetectionScheduler?.notify(0);let t=Ao(e);for(;t!==null&&!(t[2]&8192||(t[2]|=8192,!bo(t)));)t=Ao(t)}function ko(e,t){if(lo(e))throw new fi(911,!1);e[21]===null&&(e[21]=[]),e[21].push(t)}function Wee(e,t){if(e[21]===null)return;let n=e[21].indexOf(t);n!==-1&&e[21].splice(n,1)}function Ao(e){let t=e[3];return ro(t)?t[3]:t}function jo(e){return e[7]??=[]}function Mo(e){return e.cleanup??=[]}function Gee(e,t,n,r){let i=jo(t);i.push(n),e.firstCreatePass&&Mo(e).push(r,i.length-1)}var No={lFrame:as(null),bindingsEnabled:!0,skipHydrationRootTNode:null},Po=!1;function Kee(){return No.lFrame.elementDepthCount}function qee(){No.lFrame.elementDepthCount++}function Fo(){No.lFrame.elementDepthCount--}function Io(){return No.bindingsEnabled}function Lo(){return No.skipHydrationRootTNode!==null}function Ro(e){return No.skipHydrationRootTNode===e}function zo(){No.skipHydrationRootTNode=null}function Bo(){return No.lFrame.lView}function Vo(){return No.lFrame.tView}function S(e){return No.lFrame.contextLView=e,e[8]}function C(e){return No.lFrame.contextLView=null,e}function Ho(){let e=Uo();for(;e!==null&&e.type===64;)e=e.parent;return e}function Uo(){return No.lFrame.currentTNode}function Jee(){let e=No.lFrame,t=e.currentTNode;return e.isParent?t:t.parent}function Wo(e,t){let n=No.lFrame;n.currentTNode=e,n.isParent=t}function Go(){return No.lFrame.isParent}function Ko(){No.lFrame.isParent=!1}function qo(){return No.lFrame.contextLView}function Jo(){return Po}function Yo(e){let t=Po;return Po=e,t}function Xo(){let e=No.lFrame,t=e.bindingRootIndex;return t===-1&&(t=e.bindingRootIndex=e.tView.bindingStartIndex),t}function Zo(){return No.lFrame.bindingIndex}function Yee(e){return No.lFrame.bindingIndex=e}function Qo(){return No.lFrame.bindingIndex++}function $o(e){let t=No.lFrame,n=t.bindingIndex;return t.bindingIndex+=e,n}function Xee(){return No.lFrame.inI18n}function Zee(e,t){let n=No.lFrame;n.bindingIndex=n.bindingRootIndex=e,es(t)}function Qee(){return No.lFrame.currentDirectiveIndex}function es(e){No.lFrame.currentDirectiveIndex=e}function $ee(e){let t=No.lFrame.currentDirectiveIndex;return t===-1?null:e[t]}function ete(){return No.lFrame.currentQueryIndex}function ts(e){No.lFrame.currentQueryIndex=e}function tte(e){let t=e[1];return t.type===2?t.declTNode:t.type===1?e[5]:null}function ns(e,t,n){if(n&4){let r=t,i=e;for(;r=r.parent,r===null&&!(n&1)&&(r=tte(i),!(r===null||(i=i[14],r.type&10))););if(r===null)return!1;t=r,e=i}let r=No.lFrame=is();return r.currentTNode=t,r.lView=e,!0}function rs(e){let t=is(),n=e[1];No.lFrame=t,t.currentTNode=n.firstChild,t.lView=e,t.tView=n,t.contextLView=e,t.bindingIndex=n.bindingStartIndex,t.inI18n=!1}function is(){let e=No.lFrame,t=e===null?null:e.child;return t===null?as(e):t}function as(e){let t={currentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:-1,contextLView:null,elementDepthCount:0,currentNamespace:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:e,child:null,inI18n:!1};return e!==null&&(e.child=t),t}function os(){let e=No.lFrame;return No.lFrame=e.parent,e.currentTNode=null,e.lView=null,e}var ss=os;function cs(){let e=os();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 nte(e){return(No.lFrame.contextLView=To(e,No.lFrame.contextLView))[8]}function ls(){return No.lFrame.selectedIndex}function us(e){No.lFrame.selectedIndex=e}function ds(){let e=No.lFrame;return go(e.tView,e.selectedIndex)}function w(){No.lFrame.currentNamespace=`svg`}function fs(){ps()}function ps(){No.lFrame.currentNamespace=null}function ms(){return No.lFrame.currentNamespace}var hs=!0;function gs(){return hs}function _s(e){hs=e}function vs(e,t=null,n=null,r){let i=ys(e,t,n,r);return i.resolveInjectorInitializers(),i}function ys(e,t=null,n=null,r,i=new Set){return new Ha([n||ba,Ta(e)],t||Ba(),null,i)}var bs=class e{static THROW_IF_NOT_FOUND=Qi;static NULL=new wa;static create(e,t){if(Array.isArray(e))return vs({name:``},t,e,``);{let t=e.name??``;return vs({name:t},e.parent,e.providers,t)}}static ɵprov=bi({token:e,providedIn:`any`,factory:()=>na(Sa)});static __NG_ELEMENT_ID__=-1},xs=new Di(``),Ss=class{static __NG_ELEMENT_ID__=ws;static __NG_ENV_ID__=e=>e},Cs=class extends Ss{_lView;constructor(e){super(),this._lView=e}get destroyed(){return lo(this._lView)}onDestroy(e){let t=this._lView;return ko(t,e),()=>Wee(t,e)}};function ws(){return new Cs(Bo())}var Ts=new Di(``),Es=(()=>{class e{taskId=0;pendingTasks=new Set;destroyed=!1;pendingTask=new Gr(!1);debugTaskTracker=x(Ts,{optional:!0});get hasPendingTasks(){return!this.destroyed&&this.pendingTask.value}get hasPendingTasksObservable(){return this.destroyed?new Pr(e=>{e.next(!1),e.complete()}):this.pendingTask}add(){!this.hasPendingTasks&&!this.destroyed&&this.pendingTask.next(!0);let e=this.taskId++;return this.pendingTasks.add(e),this.debugTaskTracker?.add(e),e}has(e){return this.pendingTasks.has(e)}remove(e){this.pendingTasks.delete(e),this.debugTaskTracker?.remove(e),this.pendingTasks.size===0&&this.hasPendingTasks&&this.pendingTask.next(!1)}ngOnDestroy(){this.pendingTasks.clear(),this.hasPendingTasks&&this.pendingTask.next(!1),this.destroyed=!0,this.pendingTask.unsubscribe()}static ɵprov=bi({token:e,providedIn:`root`,factory:()=>new e})}return e})(),Ds=class extends Ur{__isAsync;destroyRef=void 0;pendingTasks=void 0;constructor(e=!1){super(),this.__isAsync=e,eo()&&(this.destroyRef=x(Ss,{optional:!0})??void 0,this.pendingTasks=x(Es,{optional:!0})??void 0)}emit(e){let t=rn(null);try{super.next(e)}finally{rn(t)}}subscribe(e,t,n){let r=e,i=t||(()=>null),a=n;if(e&&typeof e==`object`){let t=e;r=t.next?.bind(t),i=t.error?.bind(t),a=t.complete?.bind(t)}this.__isAsync&&(i=this.wrapInTimeout(i),r&&=this.wrapInTimeout(r),a&&=this.wrapInTimeout(a));let o=super.subscribe({next:r,error:i,complete:a});return e instanceof sr&&e.add(o),o}wrapInTimeout(e){return t=>{let n=this.pendingTasks?.add();setTimeout(()=>{try{e(t)}finally{n!==void 0&&this.pendingTasks?.remove(n)}})}}};function Os(...e){}function ks(e){let t,n;function r(){e=Os;try{n!==void 0&&typeof cancelAnimationFrame==`function`&&cancelAnimationFrame(n),t!==void 0&&clearTimeout(t)}catch{}}return t=setTimeout(()=>{e(),r()}),typeof requestAnimationFrame==`function`&&(n=requestAnimationFrame(()=>{e(),r()})),()=>r()}function As(e){return queueMicrotask(()=>e()),()=>{e=Os}}var js=`isAngularZone`,Ms=`isAngularZone_ID`,Ns=0,Ps=class e{hasPendingMacrotasks=!1;hasPendingMicrotasks=!1;isStable=!0;onUnstable=new Ds(!1);onMicrotaskEmpty=new Ds(!1);onStable=new Ds(!1);onError=new Ds(!1);constructor(e){let{enableLongStackTrace:t=!1,shouldCoalesceEventChangeDetection:n=!1,shouldCoalesceRunChangeDetection:r=!1,scheduleInRootZone:i=!1}=e;if(typeof Zone>`u`)throw new fi(908,!1);Zone.assertZonePatched();let a=this;a._nesting=0,a._outer=a._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(a._inner=a._inner.fork(new Zone.TaskTrackingZoneSpec)),t&&Zone.longStackTraceZoneSpec&&(a._inner=a._inner.fork(Zone.longStackTraceZoneSpec)),a.shouldCoalesceEventChangeDetection=!r&&n,a.shouldCoalesceRunChangeDetection=r,a.callbackScheduled=!1,a.scheduleInRootZone=i,Rs(a)}static isInAngularZone(){return typeof Zone<`u`&&Zone.current.get(js)===!0}static assertInAngularZone(){if(!e.isInAngularZone())throw new fi(909,!1)}static assertNotInAngularZone(){if(e.isInAngularZone())throw new fi(909,!1)}run(e,t,n){return this._inner.run(e,t,n)}runTask(e,t,n,r){let i=this._inner,a=i.scheduleEventTask(`NgZoneEvent: `+r,e,Fs,Os,Os);try{return i.runTask(a,t,n)}finally{i.cancelTask(a)}}runGuarded(e,t,n){return this._inner.runGuarded(e,t,n)}runOutsideAngular(e){return this._outer.run(e)}},Fs={};function Is(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 Ls(e){if(e.isCheckStableRunning||e.callbackScheduled)return;e.callbackScheduled=!0;function t(){ks(()=>{e.callbackScheduled=!1,zs(e),e.isCheckStableRunning=!0,Is(e),e.isCheckStableRunning=!1})}e.scheduleInRootZone?Zone.root.run(()=>{t()}):e._outer.run(()=>{t()}),zs(e)}function Rs(e){let t=()=>{Ls(e)},n=Ns++;e._inner=e._inner.fork({name:`angular`,properties:{[js]:!0,[Ms]:n,[Ms+n]:!0},onInvokeTask:(n,r,i,a,o,s)=>{if(Us(s))return n.invokeTask(i,a,o,s);try{return Bs(e),n.invokeTask(i,a,o,s)}finally{(e.shouldCoalesceEventChangeDetection&&a.type===`eventTask`||e.shouldCoalesceRunChangeDetection)&&t(),Vs(e)}},onInvoke:(n,r,i,a,o,s,c)=>{try{return Bs(e),n.invoke(i,a,o,s,c)}finally{e.shouldCoalesceRunChangeDetection&&!e.callbackScheduled&&!Ws(s)&&t(),Vs(e)}},onHasTask:(t,n,r,i)=>{t.hasTask(r,i),n===r&&(i.change==`microTask`?(e._hasPendingMicrotasks=i.microTask,zs(e),Is(e)):i.change==`macroTask`&&(e.hasPendingMacrotasks=i.macroTask))},onHandleError:(t,n,r,i)=>(t.handleError(r,i),e.runOutsideAngular(()=>e.onError.emit(i)),!1)})}function zs(e){e.hasPendingMicrotasks=!!(e._hasPendingMicrotasks||(e.shouldCoalesceEventChangeDetection||e.shouldCoalesceRunChangeDetection)&&e.callbackScheduled===!0)}function Bs(e){e._nesting++,e.isStable&&(e.isStable=!1,e.onUnstable.emit(null))}function Vs(e){e._nesting--,Is(e)}var Hs=class{hasPendingMicrotasks=!1;hasPendingMacrotasks=!1;isStable=!0;onUnstable=new Ds;onMicrotaskEmpty=new Ds;onStable=new Ds;onError=new Ds;run(e,t,n){return e.apply(t,n)}runGuarded(e,t,n){return e.apply(t,n)}runOutsideAngular(e){return e()}runTask(e,t,n,r){return e.apply(t,n)}};function Us(e){return Gs(e,`__ignore_ng_zone__`)}function Ws(e){return Gs(e,`__scheduler_tick__`)}function Gs(e,t){return!Array.isArray(e)||e.length!==1?!1:e[0]?.data?.[t]===!0}var Ks=class{_console=console;handleError(e){this._console.error(`ERROR`,e)}},qs=new Di(``,{factory:()=>{let e=x(Ps),t=x(Va),n;return r=>{e.runOutsideAngular(()=>{t.destroyed&&!n?setTimeout(()=>{throw r}):(n??=t.get(Ks),n.handleError(r))})}}}),Js={provide:xa,useValue:()=>{x(Ks,{optional:!0})},multi:!0};function T(e,t){let[n,r,i]=hee(e,t?.equal),a=n;return a[nn],a.set=r,a.update=i,a.asReadonly=Ys.bind(a),a}function Ys(){let e=this[nn];if(e.readonlyFn===void 0){let t=()=>this();t[nn]=e,e.readonlyFn=t}return e.readonlyFn}var Xs=new Di(``,{factory:()=>Zs}),Zs=`ng`,Qs=new Di(``),$s=new Di(``,{providedIn:`platform`,factory:()=>`unknown`}),ec=new Di(``,{factory:()=>x(xs).body?.querySelector(`[ngCspNonce]`)?.getAttribute(`ngCspNonce`)||null}),tc=(()=>{class e{view;node;constructor(e,t){this.view=e,this.node=t}static __NG_ELEMENT_ID__=nc}return e})();function nc(){return new tc(Bo(),Ho())}var rc=class{},ic=new Di(``,{factory:()=>!0}),ac=new Di(``),oc=(()=>{class e{static ɵprov=bi({token:e,providedIn:`root`,factory:()=>new sc})}return e})(),sc=class{dirtyEffectCount=0;queues=new Map;add(e){this.enqueue(e),this.schedule(e)}schedule(e){e.dirty&&this.dirtyEffectCount++}remove(e){let t=e.zone,n=this.queues.get(t);n.has(e)&&(n.delete(e),e.dirty&&this.dirtyEffectCount--)}enqueue(e){let t=e.zone;this.queues.has(t)||this.queues.set(t,new Set);let n=this.queues.get(t);n.has(e)||n.add(e)}flush(){for(;this.dirtyEffectCount>0;){let e=!1;for(let[t,n]of this.queues)e||=t===null?this.flushQueue(n):t.run(()=>this.flushQueue(n));e||(this.dirtyEffectCount=0)}}flushQueue(e){let t=!1;for(let n of e)n.dirty&&(this.dirtyEffectCount--,t=!0,n.run());return t}},cc=class{[nn];constructor(e){this[nn]=e}destroy(){this[nn].destroy()}};function E(e,t){let n=t?.injector??x(bs),r=t?.manualCleanup===!0?null:n.get(Ss),i,a=n.get(tc,null,{optional:!0}),o=n.get(rc);return a===null?i=pc(e,n.get(oc),o):(i=fc(a.view,o,e),r instanceof Cs&&r._lView===a.view&&(r=null)),i.injector=n,r!==null&&(i.onDestroyFns=[r.onDestroy(()=>i.destroy())]),new cc(i)}var lc={...Fn,cleanupFns:void 0,zone:null,onDestroyFns:null,run(){let e=Yo(!1);try{In(this)}finally{Yo(e)}},cleanup(){if(!this.cleanupFns?.length)return;let e=rn(null);try{for(;this.cleanupFns.length;)this.cleanupFns.pop()()}finally{this.cleanupFns=[],rn(e)}}},uc={...lc,consumerMarkedDirty(){this.scheduler.schedule(this),this.notifier.notify(12)},destroy(){if(yn(this),this.onDestroyFns!==null)for(let e of this.onDestroyFns)e();this.cleanup(),this.scheduler.remove(this)}},dc={...lc,consumerMarkedDirty(){this.view[2]|=8192,Oo(this.view),this.notifier.notify(13)},destroy(){if(yn(this),this.onDestroyFns!==null)for(let e of this.onDestroyFns)e();this.cleanup(),this.view[23]?.delete(this)}};function fc(e,t,n){let r=Object.create(dc);return r.view=e,r.zone=typeof Zone<`u`?Zone.current:null,r.notifier=t,r.fn=mc(r,n),e[23]??=new Set,e[23].add(r),r.consumerMarkedDirty(r),r}function pc(e,t,n){let r=Object.create(uc);return r.fn=mc(r,e),r.scheduler=t,r.notifier=n,r.zone=typeof Zone<`u`?Zone.current:null,r.scheduler.add(r),r.notifier.notify(12),r}function mc(e,t){return()=>{t(t=>(e.cleanupFns??=[]).push(t))}}function hc(e){return typeof e==`function`&&e[nn]!==void 0}function gc(e){return hc(e)&&typeof e.set==`function`}var _c=Symbol(`InputSignalNode#UNSET`),vc={...Nn,transformFn:void 0,applyValueToInputSignal(e,t){jn(e,t)}};function yc(e){return{toString:e}.toString()}var bc=(function(e){return e[e.TemplateCreateStart=0]=`TemplateCreateStart`,e[e.TemplateCreateEnd=1]=`TemplateCreateEnd`,e[e.TemplateUpdateStart=2]=`TemplateUpdateStart`,e[e.TemplateUpdateEnd=3]=`TemplateUpdateEnd`,e[e.LifecycleHookStart=4]=`LifecycleHookStart`,e[e.LifecycleHookEnd=5]=`LifecycleHookEnd`,e[e.OutputStart=6]=`OutputStart`,e[e.OutputEnd=7]=`OutputEnd`,e[e.BootstrapApplicationStart=8]=`BootstrapApplicationStart`,e[e.BootstrapApplicationEnd=9]=`BootstrapApplicationEnd`,e[e.BootstrapComponentStart=10]=`BootstrapComponentStart`,e[e.BootstrapComponentEnd=11]=`BootstrapComponentEnd`,e[e.ChangeDetectionStart=12]=`ChangeDetectionStart`,e[e.ChangeDetectionEnd=13]=`ChangeDetectionEnd`,e[e.ChangeDetectionSyncStart=14]=`ChangeDetectionSyncStart`,e[e.ChangeDetectionSyncEnd=15]=`ChangeDetectionSyncEnd`,e[e.AfterRenderHooksStart=16]=`AfterRenderHooksStart`,e[e.AfterRenderHooksEnd=17]=`AfterRenderHooksEnd`,e[e.ComponentStart=18]=`ComponentStart`,e[e.ComponentEnd=19]=`ComponentEnd`,e[e.DeferBlockStateStart=20]=`DeferBlockStateStart`,e[e.DeferBlockStateEnd=21]=`DeferBlockStateEnd`,e[e.DynamicComponentStart=22]=`DynamicComponentStart`,e[e.DynamicComponentEnd=23]=`DynamicComponentEnd`,e[e.HostBindingsUpdateStart=24]=`HostBindingsUpdateStart`,e[e.HostBindingsUpdateEnd=25]=`HostBindingsUpdateEnd`,e})(bc||{}),xc=class{previousValue;currentValue;firstChange;constructor(e,t,n){this.previousValue=e,this.currentValue=t,this.firstChange=n}isFirstChange(){return this.firstChange}};function Sc(e,t,n,r){t===null?e[n]=r:t.applyValueToInputSignal(t,r)}var Cc=null,wc=(()=>{Cc=Ec;let e=()=>Ec;return e.ngInherit=!0,e})();function Tc(){return Cc}function Ec(e){return e.type.prototype.ngOnChanges&&(e.setInput=Oc),Dc}function Dc(){let e=Ac(this),t=e?.current;if(t){let n=e.previous;if(n===ya)e.previous=t;else for(let e in t)n[e]=t[e];e.current=null,this.ngOnChanges(t)}}function Oc(e,t,n,r,i){let a=this.declaredInputs[r],o=Ac(e)||jc(e,{previous:ya,current:null}),s=o.current||={},c=o.previous,l=c[a];s[a]=new xc(l&&l.currentValue,n,c===ya),Sc(e,t,i,n)}var kc=`__ngSimpleChanges__`;function Ac(e){return Object.hasOwn(e,kc)&&e[kc]||null}function jc(e,t){return e[kc]=t}var Mc=[],Nc=function(e,t=null,n){for(let r=0;r=r)break}else t[c]<0&&(e[17]+=65536),(s>14>16&&(e[2]&3)===t&&(e[2]+=16384,Bc(o,a)):Bc(o,a)}var Hc=-1,Uc=class{factory;name;injectImpl;resolving=!1;canSeeViewProviders;multi;componentProviders;index;providerFactory;constructor(e,t,n,r){this.factory=e,this.name=r,this.canSeeViewProviders=t,this.injectImpl=n}};function Wc(e){return!!(e.flags&8)}function Gc(e){return!!(e.flags&16)}function Kc(e,t,n){let r=0;for(;rt){o=a-1;break}}}for(;a>16}function el(e,t){let n=$c(e),r=t;for(;n>0;)r=r[14],n--;return r}var tl=!0;function nl(e){let t=tl;return tl=e,t}var rl=255,il=5,al=0,ol={};function sl(e,t,n){let r;typeof n==`string`?r=n.charCodeAt(0)||0:Object.hasOwn(n,Ni)&&(r=n[Ni]),r??=n[Ni]=al++;let i=r&rl,a=1<>il)]|=a}function cl(e,t){let n=ul(e,t);if(n!==-1)return n;let r=t[1];r.firstCreatePass&&(e.injectorIndex=t.length,ll(r.data,e),ll(t,null),ll(r.blueprint,null));let i=dl(e,t),a=e.injectorIndex;if(Zc(i)){let e=Qc(i),n=el(i,t),r=n[1].data;for(let i=0;i<8;i++)t[a+i]=n[e+i]|r[e+i]}return t[a+8]=i,a}function ll(e,t){e.push(0,0,0,0,0,0,0,0,t)}function ul(e,t){return e.injectorIndex===-1||e.parent&&e.parent.injectorIndex===e.injectorIndex||t[e.injectorIndex+8]===null?-1:e.injectorIndex}function dl(e,t){if(e.parent&&e.parent.injectorIndex!==-1)return e.parent.injectorIndex;let n=0,r=null,i=t;for(;i!==null;){if(r=Ol(i),r===null)return Hc;if(n++,i=i[14],r.injectorIndex!==-1)return r.injectorIndex|n<<16}return Hc}function fl(e,t,n){sl(e,t,n)}function pl(e,t,n){if(n&8||e!==void 0)return e;Wi(t,`NodeInjector`)}function ml(e,t,n,r){if(n&8&&r===void 0&&(r=null),!(n&3)){let i=e[9],a=Yi(void 0);try{return i?i.get(t,r,n&8):Xi(t,r,n&8)}finally{Yi(a)}}return pl(r,t,n)}function hl(e,t,n,r=0,i){if(e!==null){if(t[2]&2048&&!(r&2)){let i=Dl(e,t,n,r,ol);if(i!==ol)return i}let i=gl(e,t,n,r,ol);if(i!==ol)return i}return ml(t,n,r,i)}function gl(e,t,n,r,i){let a=bl(n);if(typeof a==`function`){if(!ns(t,e,r))return r&1?pl(i,n,r):ml(t,n,r,i);try{let e;if(e=a(r),e==null&&!(r&8))Wi(n);else return e}finally{ss()}}else if(typeof a==`number`){let i=null,o=ul(e,t),s=Hc,c=r&1?t[15][5]:null;for((o===-1||r&4)&&(s=o===-1?dl(e,t):t[o+8],s===Hc||!Sl(r,!1)?o=-1:(i=t[1],o=Qc(s),t=el(s,t)));o!==-1;){let e=t[1];if(xl(a,o,e.data)){let e=_l(o,t,n,i,r,c);if(e!==ol)return e}s=t[o+8],s!==Hc&&Sl(r,t[1].data[o+8]===c)&&xl(a,o,t)?(i=e,o=Qc(s),t=el(s,t)):o=-1}}return i}function _l(e,t,n,r,i,a){let o=t[1],s=o.data[e+8],c=vl(s,o,n,r==null?ao(s)&&tl:r!=o&&!!(s.type&3),i&1&&a===s);return c===null?ol:yl(t,o,c,s,i)}function vl(e,t,n,r,i){let a=e.providerIndexes,o=t.data,s=a&1048575,c=e.directiveStart,l=e.directiveEnd,u=a>>20,d=r?s:s+u,f=i?s+u:l;for(let e=d;e=c&&t.type===n)return e}if(i){let e=o[c];if(e&&so(e)&&e.type===n)return c}return null}function yl(e,t,n,r,i){let a=e[n],o=t.data;if(a instanceof Uc){let s=a;if(s.resolving)throw Ui(``);let c=nl(s.canSeeViewProviders);s.resolving=!0,o[n].type||o[n];let l=s.injectImpl?Yi(s.injectImpl):null;ns(e,r,0);try{a=e[n]=s.factory(void 0,i,o,e,r),t.firstCreatePass&&n>=r.directiveStart&&Pc(n,o[n],t)}finally{l!==null&&Yi(l),nl(c),s.resolving=!1,ss()}}return a}function bl(e){if(typeof e==`string`)return e.charCodeAt(0)||0;let t=Object.hasOwn(e,Ni)?e[Ni]:void 0;return typeof t==`number`?t>=0?t&rl:wl:t}function xl(e,t,n){let r=1<>il)]&r)}function Sl(e,t){return!(e&2)&&!(e&1&&t)}var Cl=class{_tNode;_lView;constructor(e,t){this._tNode=e,this._lView=t}get(e,t,n){return hl(this._tNode,this._lView,e,ra(n),t)}};function wl(){return new Cl(Ho(),Bo())}function Tl(e){return yc(()=>{let t=e.prototype.constructor,n=t[Mi]||El(t),r=Object.prototype,i=Object.getPrototypeOf(e.prototype).constructor;for(;i&&i!==r;){let e=i[Mi]||El(i);if(e&&e!==n)return e;i=Object.getPrototypeOf(i)}return e=>new e})}function El(e){return yi(e)?()=>{let t=El(vi(e));return t&&t()}:sa(e)}function Dl(e,t,n,r,i){let a=e,o=t;for(;a!==null&&o!==null&&o[2]&2048&&!co(o);){let e=gl(a,o,n,r|2,ol);if(e!==ol)return e;r&=-5;let t=a.parent;if(!t){let e=o[20];if(e){let t=e.get(n,ol,r);if(t!==ol)return t}t=Ol(o),o=o[14]}a=t}return i}function Ol(e){let t=e[1],n=t.type;return n===2?t.declTNode:n===1?e[5]:null}function kl(e){return{token:e.token,providedIn:e.autoProvided===!1?null:`root`,factory:e.factory,value:void 0}}function Al(){return jl(Ho(),Bo())}function jl(e,t){return new Ml(ho(e,t))}var Ml=(()=>{class e{nativeElement;constructor(e){this.nativeElement=e}static __NG_ELEMENT_ID__=Al}return e})();function Nl(e){return e instanceof Ml?e.nativeElement:e}function Pl(){return this._results[Symbol.iterator]()}var Fl=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 Ur}constructor(e=!1){this._emitDistinctChangesOnly=e}get(e){return this._results[e]}map(e){return this._results.map(e)}filter(e){return this._results.filter(e)}find(e){return this._results.find(e)}reduce(e,t){return this._results.reduce(e,t)}forEach(e){this._results.forEach(e)}some(e){return this._results.some(e)}toArray(){return this._results.slice()}toString(){return this._results.toString()}reset(e,t){this.dirty=!1;let n=la(e);(this._changesDetected=!ca(this._results,n,t))&&(this._results=n,this.length=n.length,this.last=n[this.length-1],this.first=n[0])}notifyOnChanges(){this._changes!==void 0&&(this._changesDetected||!this._emitDistinctChangesOnly)&&this._changes.next(this)}onDirty(e){this._onDirty=e}setDirty(){this.dirty=!0,this._onDirty?.()}destroy(){this._changes!==void 0&&(this._changes.complete(),this._changes.unsubscribe())}[Symbol.iterator]=Pl};function Il(e){return(e.flags&128)==128}var Ll=(function(e){return e[e.OnPush=0]=`OnPush`,e[e.Eager=1]=`Eager`,e[e.Default=1]=`Default`,e})(Ll||{}),Rl=new Map,zl=0;function Bl(){return zl++}function Vl(e){Rl.set(e[19],e)}function Hl(e){Rl.delete(e[19])}var Ul=`__ngContext__`;function Wl(e,t){no(t)?(e[Ul]=t[19],Vl(t)):e[Ul]=t}function Gl(e){return ql(e[12])}function Kl(e){return ql(e[4])}function ql(e){for(;e!==null&&!ro(e);)e=e[4];return e}var Jl=void 0;function Yl(e){Jl=e}function Xl(){if(Jl!==void 0)return Jl;if(typeof document<`u`)return document;throw new fi(210,!1)}var Zl=!1,Ql=new Di(``,{factory:()=>Zl}),$l=new WeakMap;function eu(e,t){if(typeof e!=`object`||!e)return;let n=$l.get(e);n||(n=new WeakSet,$l.set(e,n)),n.add(t)}function tu(e){return(e.flags&32)==32}var nu=()=>null;function ru(e,t,n=!1){return nu(e,t,n)}function iu(e,t){let n=e.contentQueries;if(n!==null){let r=rn(null);try{for(let r=0;r|^->||--!>|)/g,gu=`$1`;function _u(e){return e.replace(mu,e=>e.replace(hu,gu))}function vu(e,t){return e.createText(t)}function yu(e,t,n){e.setValue(t,n)}function bu(e,t){return e.createComment(_u(t))}function xu(e,t,n){return e.createElement(t,n)}function Su(e,t,n,r,i){e.insertBefore(t,n,r,i)}function Cu(e,t,n){e.appendChild(t,n)}function wu(e,t,n,r,i){r===null?Cu(e,t,n):Su(e,t,n,r,i)}function Tu(e,t,n,r){e.removeChild(null,t,n,r)}function rte(e,t,n){e.setAttribute(t,`style`,n)}function ite(e,t,n){n===``?e.removeAttribute(t,`class`):e.setAttribute(t,`class`,n)}function Eu(e,t,n){let{mergedAttrs:r,classes:i,styles:a}=n;r!==null&&Kc(e,t,r),i!==null&&ite(e,t,i),a!==null&&rte(e,t,a)}function Du(e){let t=ate();return t?t.sanitize(uo.URL,e)||``:uu(e,`URL`)?lu(e):pu(zi(e))}function ate(){let e=Bo();return e&&e[10].sanitizer}function Ou(e){return e.ownerDocument.defaultView}function ku(e){return e.ownerDocument}function ote(e,t,n){let r=e.length;for(;;){let i=e.indexOf(t,n);if(i===-1)return i;if(i===0||e.charCodeAt(i-1)<=32){let n=t.length;if(i+n===r||e.charCodeAt(i+n)<=32)return i}n=i+1}}var Au=`ng-template`;function ste(e,t,n,r){let i=0;if(r){for(;i-1){let e;for(;++ia?``:i[u+1].toLowerCase(),r&2&&l!==e){if(Mu(r))return!1;o=!0}}}}}return Mu(r)||o}function Mu(e){return!(e&1)}function ute(e,t,n,r){if(t===null)return-1;let i=0;if(r||!n){let n=!1;for(;i-1)for(n++;n0?`="`+t+`"`:``)+`]`}else r&8?i+=`.`+o:r&4&&(i+=` `+o)}else i!==``&&!Mu(o)&&(t+=Pu(a,i),i=``),r=o,a||=!Mu(r);n++}return i!==``&&(t+=Pu(a,i)),t}function gte(e){return e.map(hte).join(`,`)}function _te(e){let t=[],n=[],r=1,i=2;for(;r!1});function Ru(e){if(!e)return 0;let t=e.toLowerCase().indexOf(`ms`)>-1?1:1e3;return parseFloat(e)*t}function zu(e,t){return e.getPropertyValue(t).split(`,`).map(e=>e.trim())}function bte(e){let t=zu(e,`transition-property`),n=zu(e,`transition-duration`),r=zu(e,`transition-delay`),i={propertyName:``,duration:0,animationName:void 0};for(let e=0;ei.duration&&(i.propertyName=t[e],i.duration=a)}return i}function xte(e){let t=zu(e,`animation-name`),n=zu(e,`animation-delay`),r=zu(e,`animation-duration`),i=zu(e,`animation-iteration-count`),a={animationName:``,propertyName:void 0,duration:0};for(let e=0;ea.duration&&s!==`infinite`&&(a.animationName=t[e],a.duration=o)}return a}function Bu(e,t){return e!==void 0&&e.duration>t.duration}function Vu(e){return(e.animationName!=null||e.propertyName!=null)&&e.duration>0}function Hu(e){let t=e.effect?.getTiming();if(t===void 0)return;let n=typeof t.duration==`number`?t.duration:0,r=(t.delay??0)+n,i=e.playbackRate;return i!==void 0&&i!==0&&i!==1&&(r/=Math.abs(i)),r}function Ste(e,t){let n=getComputedStyle(e),r=xte(n),i=bte(n),a=r.duration>i.duration?r:i;Bu(t.get(e),a)||Vu(a)&&t.set(e,a)}function Cte(e,t,n){if(!n)return;let r=e.getAnimations();return r.length===0?Ste(e,t):wte(e,t,r)}function wte(e,t,n){let r={animationName:void 0,propertyName:void 0,duration:0};for(let e of n){if(e.effect?.getTiming()?.iterations===1/0)continue;let t=Hu(e)??0,n,i;e.animationName?i=e.animationName:n=e.transitionProperty,t>=r.duration&&(r={animationName:i,propertyName:n,duration:t})}Bu(t.get(e),r)||Vu(r)&&t.set(e,r)}var Uu=new Set,Tte=!1,Ete=1,Wu=typeof document<`u`&&typeof document?.documentElement?.getAnimations==`function`;function Dte(e){return e[9].get(yte,Tte)}function Ote(e,t,n){let r=Ku.get(e);if(r){for(let e of t)r.classList.push(e);for(let e of n)r.cleanupFns.push(e)}else Ku.set(e,{classList:t,cleanupFns:n})}function Gu(e){let t=Ku.get(e);if(t){for(let e of t.cleanupFns)e();Ku.delete(e)}qu.delete(e)}var Ku=new WeakMap,qu=new WeakMap,Ju=new WeakMap;function Yu(e){return e?e[14]??e:null}var Xu=new WeakSet;function kte(e,t,n){let r=Ju.get(e);if(!r||r.length===0)return;let i=t.parentNode,a=t.previousSibling,o=Yu(n);for(let e=r.length-1;e>=0;e--){let{el:n,declarationView:s}=r[e],c=n.parentNode;n===t?(r.splice(e,1),Xu.add(n),n.dispatchEvent(new CustomEvent(`animationend`,{detail:{cancel:!0}}))):(a&&n===a||c&&i&&c!==i&&(o===null||s===null||o===s))&&(r.splice(e,1),n.dispatchEvent(new CustomEvent(`animationend`,{detail:{cancel:!0}})),n.parentNode?.removeChild(n))}}function Ate(e,t,n){let r=Yu(n),i=Ju.get(e);i?i.some(e=>e.el===t)||i.push({el:t,declarationView:r}):Ju.set(e,[{el:t,declarationView:r}])}function Zu(e){let t=e[26]??={};return t.enter??=new Map}function jte(e){let t=typeof e==`function`?e():e,n=Array.isArray(t)?t:null;return typeof t==`string`&&(n=t.trim().split(/\s+/).filter(e=>e)),n}function Qu(e){return e.composedPath?e.composedPath()[0]:e.target}function $u(e,t){let n=qu.get(t);if(n===void 0)return!0;if(t!==Qu(e))return!1;let r=e.animation;if(r){let e=Hu(r);if(e!==void 0&&e+Ete{class e{impl=null;execute(){this.impl?.execute()}static ɵprov=bi({token:e,providedIn:`root`,factory:()=>new e})}return e})(),ad=[0,1,2,3],od=(()=>{class e{ngZone=x(Ps);scheduler=x(rc);errorHandler=x(Ks,{optional:!0});sequences=new Set;deferredRegistrations=new Set;executing=!1;constructor(){x(td,{optional:!0})}execute(){let e=this.sequences.size>0;e&&Nc(bc.AfterRenderHooksStart),this.executing=!0;for(let e of ad)for(let t of this.sequences)if(!t.erroredOrDestroyed&&t.hooks[e])try{t.pipelinedValue=this.ngZone.runOutsideAngular(()=>this.maybeTrace(()=>{let n=t.hooks[e];return n(t.pipelinedValue)},t.snapshot))}catch(e){t.erroredOrDestroyed=!0,this.errorHandler?.handleError(e)}this.executing=!1;for(let e of this.sequences)e.afterRun(),e.once&&(this.sequences.delete(e),e.destroy());for(let e of this.deferredRegistrations)this.sequences.add(e);this.deferredRegistrations.size>0&&this.scheduler.notify(7),this.deferredRegistrations.clear(),e&&Nc(bc.AfterRenderHooksEnd)}register(e){let{view:t}=e;t===void 0?this.executing?this.deferredRegistrations.add(e):this.addSequence(e):((t[25]??=[]).push(e),Oo(t),t[2]|=8192)}addSequence(e){this.sequences.add(e),this.scheduler.notify(7)}unregister(e){this.executing&&this.sequences.has(e)?(e.erroredOrDestroyed=!0,e.pipelinedValue=void 0,e.once=!0):(this.sequences.delete(e),this.deferredRegistrations.delete(e))}maybeTrace(e,t){return t?t.run(ed.AFTER_NEXT_RENDER,e):e()}static ɵprov=bi({token:e,providedIn:`root`,factory:()=>new e})}return e})(),sd=class{impl;hooks;view;once;snapshot;erroredOrDestroyed=!1;pipelinedValue=void 0;unregisterOnDestroy;constructor(e,t,n,r,i,a=null){this.impl=e,this.hooks=t,this.view=n,this.once=r,this.snapshot=a,this.unregisterOnDestroy=i?.onDestroy(()=>this.destroy())}afterRun(){this.erroredOrDestroyed=!1,this.pipelinedValue=void 0,this.snapshot?.dispose(),this.snapshot=null}destroy(){this.impl.unregister(this),this.unregisterOnDestroy?.();let e=this.view?.[25];e&&(this.view[25]=e.filter(e=>e!==this))}};function cd(e,t){let n=t?.injector??x(bs);return rd(`NgAfterNextRender`),Pte(e,n,t,!0)}function Nte(e){return e instanceof Function?[void 0,void 0,e,void 0]:[e.earlyRead,e.write,e.mixedReadWrite,e.read]}function Pte(e,t,n,r){let i=t.get(id);i.impl??=t.get(od);let a=t.get(td,null,{optional:!0}),o=n?.manualCleanup===!0?null:t.get(Ss),s=t.get(tc,null,{optional:!0}),c=new sd(i.impl,Nte(e),s?.view,r,o,a?.snapshot(null));return i.impl.register(c),c}var ld=new Di(``,{factory:()=>{let e=x(Va),t=new Set;return e.onDestroy(()=>t.clear()),{queue:t,isScheduled:!1,scheduler:null,injector:e}}});function ud(e,t,n){let r=e.get(ld);if(Array.isArray(t))for(let e of t)r.queue.add(e),n?.detachedLeaveAnimationFns?.push(e);else r.queue.add(t),n?.detachedLeaveAnimationFns?.push(t);r.scheduler&&r.scheduler(e)}function Fte(e,t){let n=e.get(ld);if(Array.isArray(t))for(let e of t)n.queue.delete(e);else n.queue.delete(t)}function Ite(e,t){let n=e.get(ld);if(t.detachedLeaveAnimationFns){for(let e of t.detachedLeaveAnimationFns)n.queue.delete(e);t.detachedLeaveAnimationFns=void 0}}function Lte(e){let t=e.get(ld);t.isScheduled||=(cd(()=>{t.isScheduled=!1;for(let e of t.queue)e();t.queue.clear()},{injector:t.injector}),!0)}function Rte(e){let t=e.get(ld);t.scheduler=Lte,t.scheduler(e)}function dd(e,t){for(let[n,r]of t)ud(e,r.animateFns)}function fd(e,t,n,r){let i=e?.[26]?.enter;t!==null&&i&&i.has(n.index)&&dd(r,i)}function pd(e,t,n,r){try{n.get(Sa)}catch{return r(!1)}let i=e?.[26];i?.enter?.has(t.index)&&Fte(n,i.enter.get(t.index).animateFns);let a=zte(e,t,i);if(a.size===0){let n=!1;if(e){let r=[];md(e,t,r),n=r.length>0}if(!n)return r(!1)}e&&Uu.add(e[19]),ud(n,()=>Bte(e,t,i||void 0,a,r),i||void 0)}function zte(e,t,n){let r=new Map,i=n?.leave;if(i&&i.has(t.index)&&r.set(t.index,i.get(t.index)),e&&i)for(let[n,a]of i){if(r.has(n))continue;let i=e[1].data[n].parent;for(;i;){if(i===t){r.set(n,a);break}i=i.parent}}return r}function Bte(e,t,n,r,i){let a=[];if(n&&n.leave)for(let[e]of r){if(!n.leave.has(e))continue;let t=n.leave.get(e);for(let e of t.animateFns){let{promise:t}=e();a.push(t)}n.detachedLeaveAnimationFns=void 0}if(e&&md(e,t,a),a.length>0){let t=n||e?.[26];if(t){let n=t.running;n&&a.push(n),t.running=Promise.allSettled(a),Hte(e,t.running,i)}else Promise.allSettled(a).then(()=>{e&&Uu.delete(e[19]),i(!0)})}else e&&Uu.delete(e[19]),i(!1)}function md(e,t,n){if(t.type&12){let r=e[t.index];if(ro(r))for(let e=10;e{e[26]?.running===t&&(e[26].running=void 0,Uu.delete(e[19])),n(!0)})}function hd(e,t,n,r,i,a,o,s){if(i!=null){let c,l=!1;ro(i)?c=i:no(i)&&(l=!0,i=i[0]);let u=po(i);e===0&&r!==null?(fd(s,r,a,n),o==null?Cu(t,r,u):Su(t,r,u,o||null,!0)):e===1&&r!==null?(fd(s,r,a,n),Su(t,r,u,o||null,!0),kte(a,u,s)):e===2?(s?.[26]?.leave?.has(a.index)&&Ate(a,u,s),Xu.delete(u),pd(s,a,n,e=>{if(Xu.has(u)){Xu.delete(u);return}Tu(t,u,l,e)})):e===3&&(Xu.delete(u),pd(s,a,n,()=>{t.destroyNode(u)})),c!=null&&$te(t,e,n,c,a,r,o)}}function Ute(e,t){gd(e,t),t[0]=null,t[5]=null}function Wte(e,t,n,r,i,a){r[0]=i,r[5]=t,Dd(e,r,n,1,i,a)}function gd(e,t){t[10].changeDetectionScheduler?.notify(9),Dd(e,t,t[11],2,null,null)}function Gte(e){let t=e[12];if(!t)return yd(e[1],e);for(;t;){let n=null;if(no(t))n=t[12];else{let e=t[10];e&&(n=e)}if(!n){for(;t&&!t[4]&&t!==e;)no(t)&&yd(t[1],t),t=t[3];t===null&&(t=e),no(t)&&yd(t[1],t),n=t&&t[4]}t=n}}function _d(e,t){let n=e[9],r=n.indexOf(t);n.splice(r,1)}function vd(e,t){if(lo(t))return;let n=t[11];n.destroyNode&&Dd(e,t,n,3,null,null),Gte(t)}function yd(e,t){if(lo(t))return;let n=rn(null);try{t[2]&=-129,t[2]|=256,t[24]&&yn(t[24]),qte(e,t),Kte(e,t),t[1].type===1&&t[11].destroy();let n=t[16];if(n!==null&&ro(t[3])){n!==t[3]&&_d(n,t);let r=t[18];r!==null&&r.detachView(e)}Hl(t)}finally{rn(n)}}function Kte(e,t){let n=e.cleanup,r=t[7];if(n!==null)for(let e=0;e=0?r[t]():r[-t].unsubscribe(),e+=2}else{let t=r[n[e+1]];n[e].call(t)}r!==null&&(t[7]=null);let i=t[21];if(i!==null){t[21]=null;for(let e=0;e27&&Rd(e,t,27,!1),Nc(o?bc.TemplateUpdateStart:bc.TemplateCreateStart,i,n),n(r,i)}finally{us(a),Nc(o?bc.TemplateUpdateEnd:bc.TemplateCreateEnd,i,n)}}function Hd(e,t,n){Yd(e,t,n),(n.flags&64)==64&&Xd(e,t,n)}function Ud(e,t,n=ho){let r=t.localNames;if(r!==null){let i=t.index+1;for(let a=0;a=s&&i<=c){let o=t.data[i],s=r[e+1];Bd(o,n[i],s,a),l=!0}else if(i>c)break}}return o!==null&&Object.hasOwn(r.inputs,i)&&(Bd(r,n[o],i,a),l=!0),l}function cf(e,t){let n=yo(t,e),r=n[1];lf(r,n);let i=n[0];i!==null&&n[6]===null&&(n[6]=ru(i,n[9])),Nc(bc.ComponentStart);try{uf(r,n,n[8])}finally{Nc(bc.ComponentEnd,n[8])}}function lf(e,t){for(let n=t.length;n{Oo(e.lView)},consumerOnSignalRead(){this.lView[24]=this}};function Sf(e){let t=e[24]??Object.create(Cf);return t.lView=e,t}var Cf={...on,consumerIsAlwaysLive:!0,kind:`template`,consumerMarkedDirty:e=>{let t=Ao(e.lView);for(;t&&!wf(t[1]);)t=Ao(t);t&&wo(t)},consumerOnSignalRead(){this.lView[24]=this}};function wf(e){return e.type!==2}function Tf(e){if(e[23]===null)return;let t=!0;for(;t;){let n=!1;for(let t of e[23])if(t.dirty&&(n=!0,t.zone===null||Zone.current===t.zone?t.run():t.zone.run(()=>t.run()),e[23]===null))return;t=n&&!!(e[2]&8192)}}var Ef=100;function Df(e,t=0){let n=e[10].rendererFactory;n.begin?.();try{Of(e,t)}finally{n.end?.()}}function Of(e,t){let n=Jo();try{Yo(!0),Pf(e,t);let n=0;for(;Eo(e);){if(n===Ef)throw new fi(103,!1);n++,Pf(e,1)}}finally{Yo(n)}}function kf(e,t,n,r){if(lo(t))return;let i=t[2];rs(t);let a=!0,o=null,s=null;wf(e)?(s=vf(t),o=mn(s)):an()===null?(a=!1,s=Sf(t),o=mn(s)):t[24]&&=(yn(t[24]),null);try{Co(t),Yee(e.bindingStartIndex),n!==null&&Vd(e,t,n,2,r);let a=(i&3)==3;if(a){let n=e.preOrderCheckHooks;n!==null&&Ic(t,n,null)}else{let n=e.preOrderHooks;n!==null&&Lc(t,n,0,null),Rc(t,0)}if(jf(t),Tf(t),Af(t,0),e.contentQueries!==null&&iu(e,t),a){let n=e.contentCheckHooks;n!==null&&Ic(t,n)}else{let n=e.contentHooks;n!==null&&Lc(t,n,1),Rc(t,1)}If(e,t);let o=e.components;o!==null&&Ff(t,o,0);let s=e.viewQuery;if(s!==null&&au(2,s,r),a){let n=e.viewCheckHooks;n!==null&&Ic(t,n)}else{let n=e.viewHooks;n!==null&&Lc(t,n,2),Rc(t,2)}if(e.firstUpdatePass===!0&&(e.firstUpdatePass=!1),t[22]){for(let e of t[22])e();t[22]=null}gf(t),t[2]&=-73}catch(e){throw Oo(t),e}finally{s!==null&&(gn(s,o),a&&bf(s)),cs()}}function Af(e,t){for(let n=Gl(e);n!==null;n=Kl(n))for(let e=10;e0&&(e[n-1][4]=r[4]);let a=fa(e,10+t);Ute(r[1],r);let o=a[18];o!==null&&o.detachView(a[1]),r[3]=null,r[4]=null,r[2]&=-129}return r}function Uf(e,t,n,r){let i=10+r,a=n.length;r>0&&(n[i-1][4]=t),r-1&&(Hf(e,n),fa(t,n))}this._attachedToViewContainer=!1}vd(this._lView[1],this._lView)}onDestroy(e){ko(this._lView,e)}markForCheck(){Lf(this._cdRefInjectingView||this._lView,4)}detach(){this._lView[2]&=-129}reattach(){Do(this._lView),this._lView[2]|=128}detectChanges(){this._lView[2]|=1024,Df(this._lView)}checkNoChanges(){}attachToViewContainerRef(){if(this._appRef)throw new fi(902,!1);this._attachedToViewContainer=!0}detachFromAppRef(){this._appRef=null;let e=co(this._lView),t=this._lView[16];t!==null&&!e&&_d(t,this._lView),gd(this._lView[1],this._lView)}attachToAppRef(e){if(this._attachedToViewContainer)throw new fi(902,!1);this._appRef=e;let t=co(this._lView),n=this._lView[16];n!==null&&!t&&Wf(n,this._lView),Do(this._lView)}},Kf=(()=>{class e{_declarationLView;_declarationTContainer;elementRef;static __NG_ELEMENT_ID__=qf;constructor(e,t,n){this._declarationLView=e,this._declarationTContainer=t,this.elementRef=n}get ssrId(){return this._declarationTContainer.tView?.ssrId||null}createEmbeddedView(e,t){return this.createEmbeddedViewImpl(e,t)}createEmbeddedViewImpl(e,t,n){return new Gf(ff(this._declarationLView,this._declarationTContainer,e,{embeddedViewInjector:t,dehydratedView:n}))}}return e})();function qf(){return Jf(Ho(),Bo())}function Jf(e,t){return e.type&4?new Kf(t,e,jl(e,t)):null}function Yf(e,t,n,r,i){let a=e.data[t];if(a===null)a=Xf(e,t,n,r,i),Xee()&&(a.flags|=32);else if(a.type&64){a.type=n,a.value=r,a.attrs=i;let e=Jee();a.injectorIndex=e===null?-1:e.injectorIndex}return Wo(a,!0),a}function Xf(e,t,n,r,i){let a=Uo(),o=Go(),s=o?a:a&&a.parent,c=e.data[t]=Qf(e,s,n,t,r,i);return Zf(e,c,a,o),c}function Zf(e,t,n,r){e.firstChild===null&&(e.firstChild=t),n!==null&&(r?n.child==null&&t.parent!==null&&(n.child=t):n.next===null&&(n.next=t,t.prev=n))}function Qf(e,t,n,r,i,a){let o=t?t.injectorIndex:-1,s=0;return Lo()&&(s|=128),{type:n,index:r,insertBeforeIndex:null,injectorIndex:o,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,componentOffset:-1,controlDirectiveIndex:-1,customControlIndex:-1,propertyBindings:null,flags:s,providerIndexes:0,value:i,namespace:ms(),attrs:a,mergedAttrs:null,localNames:null,initialInputs:null,inputs:null,hostDirectiveInputs:null,outputs:null,hostDirectiveOutputs:null,directiveToIndex:null,tView:null,next:null,prev:null,projectionNext:null,child:null,parent:t,projection:null,styles:null,stylesWithoutHost:null,residualStyles:void 0,classes:null,classesWithoutHost:null,residualClasses:void 0,classBindings:0,styleBindings:0}}function $f(e){let t=e[6]??[],n=e[3][11],r=[];for(let e of t)e.data.di===void 0?ep(e,n):r.push(e);e[6]=r}function ep(e,t){let n=0,r=e.firstChild;if(r){let i=e.data.r;for(;nnull,np=()=>null;function rp(e,t){return tp(e,t)}function ip(e,t,n){return np(e,t,n)}var ap=class{},op=class{},sp=class{destroyNode=null;static __NG_ELEMENT_ID__=()=>cp()};function cp(){let e=Bo(),t=yo(Ho().index,e);return(no(t)?t:e)[11]}var lp=(()=>{class e{static ɵprov=bi({token:e,providedIn:`root`,factory:()=>null})}return e})();function up(e){return e.debugInfo?.className||e.type.name||null}var dp={},fp=class{injector;parentInjector;constructor(e,t){this.injector=e,this.parentInjector=t}get(e,t,n){let r=this.injector.get(e,dp,n);return r!==dp||t===dp?r:this.parentInjector.get(e,t,n)}};function pp(e,t,n){return e[t]=n}function mp(e,t){return e[t]}function hp(e,t,n){if(n===Fu)return!1;let r=e[t];return!Object.is(r,n)&&(e[t]=n,!0)}function gp(e,t,n,r){let i=hp(e,t,n);return hp(e,t+1,r)||i}function _p(e,t,n,r,i){let a=gp(e,t,n,r);return hp(e,t+2,i)||a}function vp(e,t,n,r,i,a){let o=gp(e,t,n,r);return gp(e,t+2,i,a)||o}function yp(e,t,n){return function r(i){let a=r.__ngNativeEl__;a!==void 0&&eu(i,a),Lf(ao(e)?yo(e.index,t):t,5);let o=t[8],s=bp(t,o,n,i),c=r.__ngNextListenerFn__;for(;c;)s=bp(t,o,c,i)&&s,c=c.__ngNextListenerFn__;return s}}function bp(e,t,n,r){let i=rn(null);try{return Nc(bc.OutputStart,t,n),n(r)!==!1}catch(t){return af(e,t),!1}finally{Nc(bc.OutputEnd,t,n),rn(i)}}function xp(e,t,n,r,i,a,o,s){let c=oo(e),l=!1,u=null;if(!r&&c&&(u=Cp(t,n,a,e.index)),u!==null){let e=u.__ngLastListenerFn__||u;e.__ngNextListenerFn__=o,u.__ngLastListenerFn__=o,l=!0}else{let o=ho(e,n),c=r?r(o):o;r||(s.__ngNativeEl__=o);let l=i.listen(c,a,s);Sp(a)||wp(r?t=>r(po(t[e.index])):e.index,t,n,a,s,l,!1)}return l}function Sp(e){return e.startsWith(`animation`)||e.startsWith(`transition`)}function Cp(e,t,n,r){let i=e.cleanup;if(i!=null)for(let e=0;er?n[r]:null}typeof a==`string`&&(e+=2)}return null}function wp(e,t,n,r,i,a,o){let s=t.firstCreatePass?Mo(t):null,c=jo(n),l=c.length;c.push(i,a),s&&s.push(r,e,l,(l+1)*(o?-1:1))}function Tp(e,t,n,r,i){let a=null,o=null,s=null,c=!1,l=e.directiveToIndex.get(n.type);if(typeof l==`number`?a=l:[a,o,s]=l,o!==null&&s!==null&&e.hostDirectiveOutputs&&Object.hasOwn(e.hostDirectiveOutputs,r)){let n=e.hostDirectiveOutputs[r];for(let a=0;a=o&&l<=s)c=!0,Ep(e,t,l,n[a+1],r,i);else if(l>s)break}}return Object.hasOwn(n.outputs,r)&&(c=!0,Ep(e,t,a,r,r,i)),c}function Ep(e,t,n,r,i,a){let o=t[n],s=t[1],c=o[s.data[n].outputs[r]].subscribe(a);wp(e.index,s,t,i,a,c,!0)}function Dp(){Op()}function Op(){let e=Bo(),t=Vo(),n=Ho();if(t.firstCreatePass&&Pp(t,n),n.controlDirectiveIndex===-1)return;rd(`NgSignalForms`);let r=e[n.controlDirectiveIndex];t.data[n.controlDirectiveIndex].controlDef.create(r,new jp(e,t,n))}function kp(){Ap()}function Ap(){let e=Bo(),t=Vo(),n=ds();if(n.controlDirectiveIndex===-1)return;let r=t.data[n.controlDirectiveIndex].controlDef,i=e[n.controlDirectiveIndex];r.update(i,new jp(e,t,n))}var jp=class{lView;tView;tNode;hasPassThrough;constructor(e,t,n){this.lView=e,this.tView=t,this.tNode=n,this.hasPassThrough=!!(n.flags&4096)}get customControl(){return this.tNode.customControlIndex===-1?void 0:this.lView[this.tNode.customControlIndex]}get nativeElement(){return ho(this.tNode,this.lView)}get descriptor(){return`<${this.tNode.value}>`}listenToCustomControlOutput(e,t){let n=this.tView.data[this.tNode.customControlIndex];Tp(this.tNode,this.lView,n,e,yp(this.tNode,this.lView,t))}listenToCustomControlModel(e){let t=this.tNode.flags&1024?`valueChange`:`checkedChange`,n=this.tView.data[this.tNode.customControlIndex];Tp(this.tNode,this.lView,n,t,yp(this.tNode,this.lView,e))}listenToDom(e,t){xp(this.tNode,this.tView,this.lView,void 0,this.lView[11],e,t,yp(this.tNode,this.lView,t))}setInputOnDirectives(e,t,n){let r=this.tNode.inputs?.[e],i=this.tNode.hostDirectiveInputs?.[e];if(!r&&!i)return!1;let a=!1;if(r)for(let i of r){if(i===this.tNode.controlDirectiveIndex)continue;let r=this.lView[i],o=this.tView.data[i];(!n||n(Np(r,o,e)))&&(Bd(o,r,e,t),a=!0)}if(i)for(let r=0;r0;){let e=n.shift();if(typeof e!=`function`){for(let n in e.inputs)t[e.inputs[n]]=!0;let r=Mp(e.directive);r!==null&&n.push(...r);continue}for(let r of e()){if(typeof r==`function`)continue;if(r.inputs)for(let e=0;e1){t.flags|=4096;return}Fp(e,t)}function Fp(e,t){for(let n=t.directiveStart;n{let r=t.hostDirectiveInputs[e],i=t.hostDirectiveOutputs[e+`Change`];if(!r||!i)return!1;for(let e=0;e=i&&a<=o)return t.flags|=n,t.customControlIndex=r,!0}}return!1};if(e(`value`,1024)||e(`checked`,2048))return}}function Ip(e,t){return Lp(e,t)&&Rp(e,t+`Change`)}function Lp(e,t){return t in e.inputs}function Rp(e,t){return t in e.outputs}var zp=Symbol(`BINDING`),Bp=new Di(``);function Vp(e,t,n){let r=n?e.styles:null,i=n?e.classes:null,a=0;if(t!==null)for(let e=0;e0&&(n.directiveToIndex=new Map);for(let c=0;c0;){let n=e[--t];if(typeof n==`number`&&n<0)return n}return 0}function tm(e,t,n){if(n){if(t.exportAs)for(let r=0;r{let[n,r,i]=e[t],a={propName:n,templateName:t,isSignal:(r&zd.SignalBased)!==0};return i&&(a.transform=i),a})}function lm(e){return Object.keys(e).map(t=>({propName:e[t],templateName:t}))}function um(e,t,n){let r=t instanceof Va?t:t?.injector;return r&&e.getStandaloneInjector!==null&&(r=e.getStandaloneInjector(r)||r),r?new fp(n,r):n}function dm(e){let t=e.get(op,null);if(t===null)throw new fi(407,!1);return{rendererFactory:t,sanitizer:e.get(lp,null),changeDetectionScheduler:e.get(rc,null),ngReflect:!1,tracingService:e.get(td,null,{optional:!0})}}function fm(e,t,n){let r=mm(e);return xu(t,r,r===`svg`?`svg`:r===`math`?fo:n)}function pm(e){if((e&&`localName`in e&&typeof e.localName==`string`?e.localName:e?.tagName)?.toLowerCase()===`script`)throw new fi(905,!1)}function mm(e){return(e.selectors[0][0]||`div`).toLowerCase()}var hm=class{componentDef;ngModule;selector;componentType;ngContentSelectors;isBoundToModule;cachedInputs=null;cachedOutputs=null;get inputs(){return this.cachedInputs??=cm(this.componentDef.inputs),this.cachedInputs}get outputs(){return this.cachedOutputs??=lm(this.componentDef.outputs),this.cachedOutputs}constructor(e,t){this.componentDef=e,this.ngModule=t,this.componentType=e.type,this.selector=gte(e.selectors),this.ngContentSelectors=e.ngContentSelectors??[],this.isBoundToModule=!!t}create(e,t,n,r,i,a,o){Nc(bc.DynamicComponentStart);let s=rn(null);try{let s=this.componentDef,c=um(s,r||this.ngModule,e),l=dm(c),u=l.tracingService;return u&&u.componentCreate?u.componentCreate(up(s),()=>this.createComponentRef(l,c,t,n,i,a,o)):this.createComponentRef(l,c,t,n,i,a,o)}finally{rn(s)}}createComponentRef(e,t,n,r,i,a,o){let s=this.componentDef,c=gm(r,s,a,i),l=e.rendererFactory.createRenderer(null,s),u=r?Wd(l,r,s.encapsulation,t):fm(s,l,o??null);pm(u);let d=t.get(Bp,null),f=_m(u,()=>t.get(xs,null)??Xl());d&&d.addHost(f);let p=a?.some(ym)||i?.some(e=>typeof e!=`function`&&e.bindings.some(ym)),m=Nd(null,c,null,512|Fd(s),null,null,e,l,t,null,ru(u,t,!0));d&&om&&f instanceof ShadowRoot&&ko(m,()=>{d.removeHost(f)}),m[27]=u,rs(m);let ee=null;try{let e=rm(27,m,2,`#host`,()=>c.directiveRegistry,!0,0);Eu(l,u,e),Wl(u,m),Hd(c,m,e),ou(c,e,m),im(c,e),n!==void 0&&xm(e,this.ngContentSelectors,n),ee=yo(e.index,m),m[8]=ee[8],uf(c,m,null)}catch(e){throw ee!==null&&Hl(ee),Hl(m),e}finally{Nc(bc.DynamicComponentEnd),cs()}return new bm(this.componentType,m,!!p)}};function gm(e,t,n,r){let i=e?[`ng-version`,`22.1.7`]:_te(t.selectors[0]),a=null,o=null,s=0;if(n)for(let e of n)s+=e[zp].requiredVars,e.create&&(e.targetIdx=0,(a??=[]).push(e)),e.update&&(e.targetIdx=0,(o??=[]).push(e));if(r)for(let e=0;e{if(n&1&&e)for(let t of e)t.create();if(n&2&&t)for(let e of t)e.update()}}function ym(e){let t=e[zp].kind;return t===`input`||t===`twoWay`}var bm=class extends ap{_rootLView;_hasInputBindings;instance;hostView;changeDetectorRef;componentType;location;previousInputValues=null;_tNode;constructor(e,t,n){super(),this._rootLView=t,this._hasInputBindings=n,this._tNode=go(t[1],27),this.location=jl(this._tNode,t),this.instance=yo(this._tNode.index,t)[8],this.hostView=this.changeDetectorRef=new Gf(t,void 0),this.componentType=e}setInput(e,t){this._hasInputBindings;let n=this._tNode;if(this.previousInputValues??=new Map,this.previousInputValues.has(e)&&Object.is(this.previousInputValues.get(e),t))return;let r=this._rootLView;of(n,r[1],r,e,t),this.previousInputValues.set(e,t),Lf(yo(n.index,r),1)}get injector(){return new Cl(this._tNode,this._rootLView)}destroy(){this.hostView.destroy()}onDestroy(e){this.hostView.onDestroy(e)}};function xm(e,t,n){let r=e.projection=[];for(let e=0;e{class e{static __NG_ELEMENT_ID__=Cm}return e})();function Cm(){return Dm(Ho(),Bo())}var wm=class e extends Sm{_lContainer;_hostTNode;_hostLView;constructor(e,t,n){super(),this._lContainer=e,this._hostTNode=t,this._hostLView=n}get element(){return jl(this._hostTNode,this._hostLView)}get injector(){return new Cl(this._hostTNode,this._hostLView)}get parentInjector(){let e=dl(this._hostTNode,this._hostLView);if(Zc(e)){let t=el(e,this._hostLView),n=Qc(e),r=t[1].data[n+8];return new Cl(r,t)}return new Cl(null,this._hostLView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(e){let t=Tm(this._lContainer);return t!==null&&t[e]||null}get length(){return this._lContainer.length-10}createEmbeddedView(e,t,n){let r,i;typeof n==`number`?r=n:n!=null&&(r=n.index,i=n.injector);let a=rp(this._lContainer,e.ssrId),o=e.createEmbeddedViewImpl(t||{},i,a);return this.insertImpl(o,r,pf(this._hostTNode,a)),o}createComponent(e,t,n,r,i,a,o){let s,c=t||{};s=c.index,n=c.injector,r=c.projectableNodes,i=c.environmentInjector||c.ngModuleRef,a=c.directives,o=c.bindings;let l=new hm(Fi(e)),u=n||this.parentInjector;if(!i&&l.ngModule==null){let e=this.parentInjector.get(Va,null);e&&(i=e)}let d=Fi(l.componentType??{}),f=rp(this._lContainer,d?.id??null),p=f?.firstChild??null,m=l.create(u,r,p,i,a,o,this._getHostElementNamespace());return this.insertImpl(m.hostView,s,pf(this._hostTNode,f)),m}_getHostElementNamespace(){if(this._hostTNode.type&2){let e=this._hostTNode.parent??this._hostLView[5];return e!==null&&e.type&2&&typeof e.value==`string`&&e.value.toLowerCase()===`foreignobject`?null:e?.namespace??null}return this._hostTNode.namespace}insert(e,t){return this.insertImpl(e,t,!0)}insertImpl(t,n,r){let i=t._lView;if(xo(i)){let n=this.indexOf(t);if(n!==-1)this.detach(n);else{let n=i[3],r=new e(n,n[5],n[3]);r.detach(r.indexOf(t))}}let a=this._adjustIndex(n),o=this._lContainer;return Bf(o,i,a,r),t.attachToViewContainerRef(),da(Em(o),a,t),t}move(e,t){return this.insert(e,t)}indexOf(e){let t=Tm(this._lContainer);return t===null?-1:t.indexOf(e)}remove(e){let t=this._adjustIndex(e,-1),n=Hf(this._lContainer,t);n&&(fa(Em(this._lContainer),t),vd(n[1],n))}detach(e){let t=this._adjustIndex(e,-1),n=Hf(this._lContainer,t);return n&&fa(Em(this._lContainer),t)!=null?new Gf(n):null}_adjustIndex(e,t=0){return e??this.length+t}};function Tm(e){return e[8]}function Em(e){return e[8]||=[]}function Dm(e,t){let n,r=t[e.index];return ro(r)?n=r:(n=Rf(r,t,null,e),t[e.index]=n,Ld(t,n)),km(n,t,e,r),new wm(n,e,t)}function Om(e,t){let n=e[11],r=n.createComment(``),i=ho(t,e);return Su(n,n.parentNode(i),r,n.nextSibling(i),!1),r}var km=Mm,Am=()=>!1;function jm(e,t,n){return Am(e,t,n)}function Mm(e,t,n,r){if(e[7])return;let i;i=n.type&8?po(r):Om(t,n),e[7]=i}var Nm=class e{queryList;matches=null;constructor(e){this.queryList=e}clone(){return new e(this.queryList)}setDirty(){this.queryList.setDirty()}},Pm=class e{queries;constructor(e=[]){this.queries=e}createEmbeddedView(t){let n=t.queries;if(n!==null){let r=t.contentQueries===null?n.length:t.contentQueries[0],i=[];for(let e=0;e0)r.push(o[e/2]);else{let i=a[e+1],o=t[-n];for(let e=10;ee.trim())}function Jm(e,t,n){e.queries===null&&(e.queries=new Im),e.queries.track(new Lm(t,n))}function Ym(e,t){return e.queries.getByIndex(t)}function Xm(e,t){let n=e[1],r=Ym(n,t);return r.crossesNgTemplate?Um(n,e,t,[]):Hm(n,e,r,t)}function Zm(e,t,n){let r,i=Tn(()=>{r._dirtyCounter();let n=th(r,e);if(t&&n===void 0)throw new fi(-951,!1);return n});return r=i[nn],r._dirtyCounter=T(0),r._flatValue=void 0,i}function Qm(e){return Zm(!0,!1,e)}function $m(e){return Zm(!0,!0,e)}function eh(e,t){let n=e[nn];n._lView=Bo(),n._queryIndex=t,n._queryList=Wm(n._lView,t),n._queryList.onDirty(()=>n._dirtyCounter.update(e=>e+1))}function th(e,t){let n=e._lView,r=e._queryIndex;if(n===void 0||r===void 0||n[2]&4)return t?void 0:ba;let i=Wm(n,r),a=Xm(n,r);return i.reset(a,Nl),t?i.first:i._changesDetected||e._flatValue===void 0?e._flatValue=i.toArray():e._flatValue}function nh(e){return!!e&&typeof e.then==`function`}function rh(e){return!!e&&typeof e.subscribe==`function`}var ih=class{},ah=class extends ih{injector;instance=null;constructor(e){super();let t=new Ha([...e.providers,{provide:ih,useValue:this}],e.parent||Ba(),e.debugName,new Set([`environment`]));this.injector=t,e.runEnvironmentInitializers&&t.resolveInjectorInitializers()}destroy(){this.injector.destroy()}onDestroy(e){this.injector.onDestroy(e)}};function oh(e,t,n=null){return new ah({providers:e,parent:t,debugName:n,runEnvironmentInitializers:!0}).injector}var sh=(()=>{class e{_injector;cachedInjectors=new Map;constructor(e){this._injector=e}getOrCreateStandaloneInjector(e){if(!e.standalone)return null;if(!this.cachedInjectors.has(e)){let t=Ea(!1,e.type),n=t.length>0?oh([t],this._injector,``):null;this.cachedInjectors.set(e,n)}return this.cachedInjectors.get(e)}ngOnDestroy(){try{for(let e of this.cachedInjectors.values())e!==null&&e.destroy()}finally{this.cachedInjectors.clear()}}static ɵprov=bi({token:e,providedIn:`environment`,factory:()=>new e(na(Va))})}return e})();function O(e){return yc(()=>{let t=ph(e),n={...t,decls:e.decls,vars:e.vars,template:e.template,consts:e.consts||null,ngContentSelectors:e.ngContentSelectors,onPush:e.changeDetection!==Ll.Eager,directiveDefs:null,pipeDefs:null,dependencies:t.standalone&&e.dependencies||null,getStandaloneInjector:t.standalone?e=>e.get(sh).getOrCreateStandaloneInjector(n):null,getExternalStyles:null,signals:e.signals??!1,data:e.data||{},encapsulation:e.encapsulation||su.Emulated,styles:e.styles||ba,_:null,schemas:e.schemas||null,tView:null,id:``};t.standalone&&rd(`NgStandalone`),mh(n);let r=e.dependencies;return n.directiveDefs=hh(r,ch),n.pipeDefs=hh(r,Li),n.id=gh(n),n})}function ch(e){return Fi(e)||Ii(e)}function lh(e,t){if(e==null)return ya;let n={};for(let r in e)if(Object.hasOwn(e,r)){let i=e[r],a,o,s,c;Array.isArray(i)?(s=i[0],a=i[1],o=i[2]??a,c=i[3]||null):(a=i,o=i,s=zd.None,c=null),n[a]=[r,s,c],t[a]=o}return n}function uh(e){if(e==null)return ya;let t={};for(let n in e)Object.hasOwn(e,n)&&(t[e[n]]=n);return t}function dh(e){return yc(()=>{let t=ph(e);return mh(t),t})}function fh(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 ph(e){let t={};return{type:e.type,providersResolver:null,viewProvidersResolver:null,factory:null,hostBindings:e.hostBindings||null,hostVars:e.hostVars||0,hostAttrs:e.hostAttrs||null,contentQueries:e.contentQueries||null,declaredInputs:t,inputConfig:e.inputs||ya,exportAs:e.exportAs||null,standalone:e.standalone??!0,signals:e.signals===!0,selectors:e.selectors||ba,viewQuery:e.viewQuery||null,features:e.features||null,setInput:null,resolveHostDirectives:null,hostDirectives:null,controlDef:null,signalFormsInputPresence:null,inputs:lh(e.inputs,t),outputs:uh(e.outputs),debugInfo:null}}function mh(e){e.features?.forEach(t=>t(e))}function hh(e,t){return e?()=>{let n=typeof e==`function`?e():e,r=[];for(let e of n){let n=t(e);n!==null&&r.push(n)}return r}:null}function gh(e){let t=0,n=typeof e.consts==`function`?``:e.consts,r=[e.selectors,e.ngContentSelectors,e.hostVars,e.hostAttrs,n,e.vars,e.decls,e.encapsulation,e.standalone,e.signals,e.exportAs,JSON.stringify(e.inputs),JSON.stringify(e.outputs),Object.getOwnPropertyNames(e.type.prototype),!!e.contentQueries,!!e.viewQuery];for(let e of r.join(`|`))t=Math.imul(31,t)+e.charCodeAt(0)<<0;return t+=2147483648,`c`+t}var _h=new Di(``),vh=(()=>{class e{resolve;reject;initialized=!1;done=!1;donePromise=new Promise((e,t)=>{this.resolve=e,this.reject=t});appInits=x(_h,{optional:!0})??[];injector=x(bs);constructor(){}runInitializers(){if(this.initialized)return;let e=[];for(let t of this.appInits){let n=$a(this.injector,t);if(nh(n))e.push(n);else if(rh(n)){let t=new Promise((e,t)=>{n.subscribe({complete:e,error:t})});e.push(t)}}let t=()=>{this.done=!0,this.resolve()};Promise.all(e).then(()=>{t()}).catch(e=>{this.reject(e)}),e.length===0&&t(),this.initialized=!0}static ɵfac=function(t){return new(t||e)};static ɵprov=kl({token:e,factory:e.ɵfac})}return e})();function yh(e){return t=>{t.controlDef={create:(e,t)=>{e?.ɵngControlCreate(t)},update:(e,t)=>{e?.ɵngControlUpdate?.(t)},passThroughInput:e}}}function bh(e){return Object.getPrototypeOf(e.prototype).constructor}function xh(e){let t=bh(e.type),n=!0,r=[e];for(;t&&t!==Function.prototype&&t!==Object.prototype;){let i,a=Object.hasOwn(t,ki)?t[ki]:void 0,o=Object.hasOwn(t,Ai)?t[Ai]:void 0;if(so(e))i=a??o;else{if(a)throw new fi(903,!1);i=o}if(i){if(n){r.push(i);let t=e;t.inputs=wh(e.inputs),t.declaredInputs=wh(e.declaredInputs),t.outputs=wh(e.outputs);let n=i.hostBindings;n&&Dh(e,n);let a=i.viewQuery,o=i.contentQueries;if(a&&Th(e,a),o&&Eh(e,o),Sh(e,i),Hee(e.outputs,i.outputs),so(i)&&i.data.animation){let t=e.data;t.animation=(t.animation||[]).concat(i.data.animation)}}let t=i.features;if(t)for(let r=0;r=0;r--){let i=e[r];i.hostVars=t+=i.hostVars,i.hostAttrs=Yc(i.hostAttrs,n=Yc(n,i.hostAttrs))}}function wh(e){return e===ya?{}:e===ba?[]:e}function Th(e,t){let n=e.viewQuery;e.viewQuery=n?(e,r)=>{t(e,r),n(e,r)}:t}function Eh(e,t){let n=e.contentQueries;e.contentQueries=n?(e,r,i)=>{t(e,r,i),n(e,r,i)}:t}function Dh(e,t){let n=e.hostBindings;e.hostBindings=n?(e,r)=>{t(e,r),n(e,r)}:t}function Oh(e,t,n,r,i,a,o,s){if(n.firstCreatePass){e.mergedAttrs=Yc(e.mergedAttrs,e.attrs);let t=e.tView=Ad(2,e,i,a,o,n.directiveRegistry,n.pipeRegistry,null,n.schemas,n.consts,null);n.queries!==null&&(n.queries.template(n,e),t.queries=n.queries.embeddedTView(e))}s&&(e.flags|=s),Wo(e,!1);let c=Mh(n,t,e,r);gs()&&Sd(n,t,c,e),Wl(c,t);let l=Rf(c,t,c,e);t[r+27]=l,Ld(t,l),jm(l,e,t)}function kh(e,t,n,r,i,a,o,s,c,l,u){let d=n+27,f;return t.firstCreatePass?(f=Yf(t,d,4,o||null,s||null),Io()&&Up(t,e,f,So(t.consts,l),Qd),Fc(t,f)):f=t.data[d],Oh(f,e,t,n,r,i,a,c),oo(f)&&Hd(t,e,f),l!=null&&Ud(e,f,u),f}function Ah(e,t,n,r,i,a,o,s,c,l,u){let d=n+27,f;if(t.firstCreatePass){if(f=Yf(t,d,4,o||null,s||null),l!=null){let e=So(t.consts,l);f.localNames=[];for(let t=0;t{throw new fi(600,``)})}var Lh=10,Rh=(()=>{class e{_runningTick=!1;_destroyed=!1;_destroyListeners=[];_views=[];internalErrorHandler=x(qs);afterRenderManager=x(id);zonelessEnabled=x(ic);rootEffectScheduler=x(oc);dirtyFlags=0;tracingSnapshot=null;allTestViews=new Set;autoDetectTestViews=new Set;includeAllTestViews=!1;afterTick=new Ur;get allViews(){return[...(this.includeAllTestViews?this.allTestViews:this.autoDetectTestViews).keys(),...this._views]}get destroyed(){return this._destroyed}componentTypes=[];components=[];internalPendingTask=x(Es);get isStable(){return this.internalPendingTask.hasPendingTasksObservable.pipe(ui(e=>!e))}constructor(){x(td,{optional:!0})}whenStable(){let e;return new Promise(t=>{e=this.isStable.subscribe({next:e=>{e&&t()}})}).finally(()=>{e.unsubscribe()})}_injector=x(Va);_rendererFactory=null;get injector(){return this._injector}bootstrap(e,t){return this.bootstrapImpl(e,t)}bootstrapImpl(e,t,n=bs.NULL){return this._injector.get(Ps).run(()=>{if(Nc(bc.BootstrapComponentStart),!this._injector.get(vh).done)throw new fi(405,``);let r=Fi(e),i=this._injector.get(ih),a=new hm(r,i);this.componentTypes.push(e);let{hostElement:o,directives:s,bindings:c}=zh(t),l=o||a.selector,u=a.create(n,[],l,i.injector,s,c),d=u.location.nativeElement,f=u.injector.get(Ph,null);return f?.registerApplication(d),u.onDestroy(()=>{this.detachView(u.hostView),Bh(this.components,u),f?.unregisterApplication(d)}),this._loadComponent(u),Nc(bc.BootstrapComponentEnd,u),u})}tick(){this.zonelessEnabled||(this.dirtyFlags|=1),this._tick()}_tick(){Nc(bc.ChangeDetectionStart),this.tracingSnapshot===null?this.tickImpl():this.tracingSnapshot.run(ed.CHANGE_DETECTION,this.tickImpl)}tickImpl=()=>{if(this._runningTick)throw Nc(bc.ChangeDetectionEnd),new fi(101,!1);let e=rn(null);try{this._runningTick=!0,this.synchronize()}finally{this._runningTick=!1,this.tracingSnapshot?.dispose(),this.tracingSnapshot=null,rn(e),this.afterTick.next(),Nc(bc.ChangeDetectionEnd)}};synchronize(){this._rendererFactory===null&&!this._injector.destroyed&&(this._rendererFactory=this._injector.get(op,null,{optional:!0}));let e=0;for(;this.dirtyFlags!==0&&e++Eo(e))){this.dirtyFlags|=2;return}this.dirtyFlags&=-8}attachView(e){let t=e;this._views.push(t),t.attachToAppRef(this)}detachView(e){let t=e;Bh(this._views,t),t.detachFromAppRef()}_loadComponent(e){this.attachView(e.hostView);try{this.tick()}catch(e){this.internalErrorHandler(e)}this.components.push(e),this._injector.get(Fh,[]).forEach(t=>t(e))}ngOnDestroy(){if(!this._destroyed)try{this._destroyListeners.forEach(e=>e()),this._views.slice().forEach(e=>e.destroy())}finally{this._destroyed=!0,this._views=[],this._destroyListeners=[]}}onDestroy(e){return this._destroyListeners.push(e),()=>Bh(this._destroyListeners,e)}destroy(){if(this._destroyed)throw new fi(406,!1);let e=this._injector;e.destroy&&!e.destroyed&&e.destroy()}get viewCount(){return this._views.length}static ɵfac=function(t){return new(t||e)};static ɵprov=kl({token:e,factory:e.ɵfac})}return e})();function zh(e){return e===void 0||typeof e==`string`||e instanceof Element?{hostElement:e}:e}function Bh(e,t){let n=e.indexOf(t);n>-1&&e.splice(n,1)}function k(e,t,n,r){let i=Bo();return hp(i,Qo(),t)&&(Vo(),$d(ds(),i,e,t,n,r)),k}function Vh(e){if(rd(`NgAnimateEnter`),!Wu)return Vh;let t=Bo();if(Dte(t))return Vh;let n=Ho(),r=t[9].get(Ps);return Mte(Zu(t),n,()=>Hh(t,n,e,r)),Rte(t[9]),dd(t[9],Zu(t)),Vh}function Hh(e,t,n,r){let i=ho(t,e),a=e[11],o=jte(n),s=[],c=!1,l=e=>{if(Qu(e)!==i)return;let t=e instanceof AnimationEvent?`animationend`:`transitionend`;r.runOutsideAngular(()=>{a.listen(i,t,u)})},u=e=>{Qu(e)===i&&($u(e,i)&&(c=!0),Uh(e,i,a))};if(o&&o.length>0){r.runOutsideAngular(()=>{s.push(a.listen(i,`animationstart`,l)),s.push(a.listen(i,`transitionstart`,l))}),Ote(i,o,s);for(let e of o)a.addClass(i,e);r.runOutsideAngular(()=>{requestAnimationFrame(()=>{if(!c&&(Cte(i,qu,Wu),!qu.has(i))){for(let e of o)a.removeClass(i,e);Gu(i)}})})}}function Uh(e,t,n){let r=Ku.get(t);if(Qu(e)===t&&r&&$u(e,t)){e.stopPropagation();for(let e of r.classList)n.removeClass(t,e);Gu(t)}}var Wh=class{destroy(e){}updateValue(e,t){}swap(e,t){let n=Math.min(e,t),r=Math.max(e,t),i=this.detach(r);if(r-n>1){let e=this.detach(n);this.attach(n,i),this.attach(r,e)}else this.attach(n,i)}move(e,t){this.attach(t,this.detach(e))}};function Gh(e,t,n,r,i){return e===n&&Object.is(t,r)?1:Object.is(i(e,t),i(n,r))?-1:0}function Kh(e,t,n,r){let i,a,o=0,s=e.length-1;if(Array.isArray(t)){rn(r);let c=t.length-1;for(rn(null);o<=s&&o<=c;){let r=e.at(o),l=t[o],u=Gh(o,r,o,l,n);if(u!==0){u<0&&e.updateValue(o,l),o++;continue}let d=e.at(s),f=t[c],p=Gh(s,d,c,f,n);if(p!==0){p<0&&e.updateValue(s,f),s--,c--;continue}let m=n(o,r),ee=n(s,d),h=n(o,l);if(Object.is(h,ee)){let t=n(c,f);Object.is(t,m)?(e.swap(o,s),e.updateValue(s,f),c--,s--):e.move(s,o),e.updateValue(o,l),o++;continue}if(i??=new Xh,a??=Yh(e,o,s,n),qh(e,i,o,h))e.updateValue(o,l),o++,s++;else if(a.has(h))i.set(m,e.detach(o)),s--;else{let n=e.create(o,t[o]);e.attach(o,n),o++,s++}}for(;o<=c;)Jh(e,i,n,o,t[o]),o++}else if(t!=null){rn(r);let c=t[Symbol.iterator]();rn(null);let l=c.next();for(;!l.done&&o<=s;){let t=e.at(o),r=l.value,u=Gh(o,t,o,r,n);if(u!==0)u<0&&e.updateValue(o,r),o++,l=c.next();else{i??=new Xh,a??=Yh(e,o,s,n);let u=n(o,r);if(qh(e,i,o,u))e.updateValue(o,r),o++,s++,l=c.next();else if(!a.has(u))e.attach(o,e.create(o,r)),o++,s++,l=c.next();else{let r=n(o,t);i.set(r,e.detach(o)),s--}}}for(;!l.done;)Jh(e,i,n,e.length,l.value),l=c.next()}for(;o<=s;)e.destroy(e.detach(s--));i?.forEach(t=>{e.destroy(t)})}function qh(e,t,n,r){return t!==void 0&&t.has(r)?(e.attach(n,t.get(r)),t.delete(r),!0):!1}function Jh(e,t,n,r,i){if(qh(e,t,r,n(r,i)))e.updateValue(r,i);else{let t=e.create(r,i);e.attach(r,t)}}function Yh(e,t,n,r){let i=new Set;for(let a=t;a<=n;a++)i.add(r(a,e.at(a)));return i}var Xh=class{kvMap=new Map;_vMap=void 0;has(e){return this.kvMap.has(e)}delete(e){if(!this.has(e))return!1;let t=this.kvMap.get(e);return this._vMap!==void 0&&this._vMap.has(t)?(this.kvMap.set(e,this._vMap.get(t)),this._vMap.delete(t)):this.kvMap.delete(e),!0}get(e){return this.kvMap.get(e)}set(e,t){if(this.kvMap.has(e)){let n=this.kvMap.get(e);this._vMap===void 0&&(this._vMap=new Map);let r=this._vMap;for(;r.has(n);)n=r.get(n);r.set(n,t)}else this.kvMap.set(e,t)}forEach(e){for(let[t,n]of this.kvMap)if(e(n,t),this._vMap!==void 0){let r=this._vMap;for(;r.has(n);)n=r.get(n),e(n,t)}}};function A(e,t,n,r,i,a,o,s){rd(`NgControlFlow`);let c=Bo(),l=Vo();return Ah(c,l,e,t,n,r,i,So(l.consts,a),256,o,s),Zh}function Zh(e,t,n,r,i,a,o,s){rd(`NgControlFlow`);let c=Bo(),l=Vo();return Ah(c,l,e,t,n,r,i,So(l.consts,a),512,o,s),Zh}function j(e,t){rd(`NgControlFlow`);let n=Bo(),r=Qo(),i=n[r]===Fu?-1:n[r],a=i===-1?void 0:rg(n,27+i);if(hp(n,r,e)){let r=rn(null);try{if(a!==void 0&&Vf(a,0),e!==-1){let r=27+e,i=rg(n,r),a=cg(n[1],r),o=ip(i,a,n);Bf(i,ff(n,a,t,{dehydratedView:o}),0,pf(a,o))}}finally{rn(r)}}else if(a!==void 0){let e=zf(a,0);e!==void 0&&(e[8]=t)}}var Qh=class{lContainer;$implicit;$index;constructor(e,t,n){this.lContainer=e,this.$implicit=t,this.$index=n}get $count(){return this.lContainer.length-10}};function $h(e){return e}function eg(e,t){return t}var tg=class{hasEmptyBlock;trackByFn;liveCollection;constructor(e,t,n){this.hasEmptyBlock=e,this.trackByFn=t,this.liveCollection=n}};function M(e,t,n,r,i,a,o,s,c,l,u,d,f){rd(`NgControlFlow`);let p=Bo(),m=Vo(),ee=c!==void 0,h=Bo(),g=new tg(ee,s?o.bind(h[15][8]):o);h[27+e]=g,Ah(p,m,e+1,t,n,r,i,So(m.consts,a),256),ee&&Ah(p,m,e+2,c,l,u,d,So(m.consts,f),512)}var ng=class extends Wh{lContainer;hostLView;templateTNode;operationsCounter=void 0;needsIndexUpdate=!1;constructor(e,t,n){super(),this.lContainer=e,this.hostLView=t,this.templateTNode=n}get length(){return this.lContainer.length-10}at(e){return this.getLView(e)[8].$implicit}attach(e,t){let n=t[6];this.needsIndexUpdate||=e!==this.length,Bf(this.lContainer,t,e,pf(this.templateTNode,n)),ig(this.lContainer,e)}detach(e){return this.needsIndexUpdate||=e!==this.length-1,ag(this.lContainer,e),og(this.lContainer,e)}create(e,t){let n=rp(this.lContainer,this.templateTNode.tView.ssrId);return ff(this.hostLView,this.templateTNode,new Qh(this.lContainer,t,e),{dehydratedView:n})}destroy(e){vd(e[1],e)}updateValue(e,t){this.getLView(e)[8].$implicit=t}reset(){this.needsIndexUpdate=!1}updateIndexes(){if(this.needsIndexUpdate)for(let e=0;e0){let e=n[9];Ite(e,r),Uu.delete(n[19]),r.detachedLeaveAnimationFns=void 0}}function ag(e,t){if(e.length<=10)return;let n=e[10+t],r=n?n[26]:void 0;r&&r.leave&&r.leave.size>0&&(r.detachedLeaveAnimationFns=[])}function og(e,t){return Hf(e,t)}function sg(e,t){return zf(e,t)}function cg(e,t){return go(e,t)}function P(e,t,n){let r=Bo();return hp(r,Qo(),t)&&(Vo(),Kd(ds(),r,e,t,r[11],n)),P}function lg(e,t,n,r,i){of(t,e,n,i?`class`:`style`,r)}function F(e,t,n,r){let i=Bo(),a=i[1],o=e+27,s=a.firstCreatePass?rm(o,i,2,t,Qd,Io(),n,r):a.data[o];if(ao(s)){let n=i[10].tracingService;if(n&&n.componentCreate){let o=a.data[s.directiveStart+s.componentOffset];return n.componentCreate(up(o),()=>(ug(e,t,i,s,r),F))}}return ug(e,t,i,s,r),F}function ug(e,t,n,r,i){if(nf(r,n,e,t,fg),oo(r)){let e=n[1];Hd(e,n,r),ou(e,r,n)}i!=null&&Ud(n,r)}function I(){let e=Vo(),t=rf(Ho());return e.firstCreatePass&&im(e,t),Ro(t)&&zo(),Fo(),t.classesWithoutHost!=null&&Wc(t)&&lg(e,t,Bo(),t.classesWithoutHost,!0),t.stylesWithoutHost!=null&&Gc(t)&&lg(e,t,Bo(),t.stylesWithoutHost,!1),I}function L(e,t,n,r){return F(e,t,n,r),I(),L}function R(e,t,n,r){let i=Bo(),a=i[1],o=e+27,s=a.firstCreatePass?am(o,a,2,t,n,r):a.data[o];return nf(s,i,e,t,fg),r!=null&&Ud(i,s),R}function z(){return Ro(rf(Ho()))&&zo(),Fo(),z}function dg(e,t,n,r){return R(e,t,n,r),z(),dg}var fg=(e,t,n,r,i)=>(_s(!0),xu(t[11],r,ms()));function pg(e,t,n){let r=Bo(),i=r[1],a=e+27,o=i.firstCreatePass?rm(a,r,8,`ng-container`,Qd,Io(),t,n):i.data[a];if(nf(o,r,e,`ng-container`,gg),oo(o)){let e=r[1];Hd(e,r,o),ou(e,o,r)}return n!=null&&Ud(r,o),pg}function mg(){let e=Vo(),t=rf(Ho());return e.firstCreatePass&&im(e,t),mg}function hg(e,t,n){return pg(e,t,n),mg(),hg}var gg=(e,t,n,r,i)=>(_s(!0),bu(t[11],``));function B(){return Bo()}function V(e,t,n){let r=Bo();return hp(r,Qo(),t)&&(Vo(),qd(ds(),r,e,t,r[11],n)),V}var _g=void 0;function vg(e){let t=Math.floor(Math.abs(e)),n=e.toString().replace(/^[^.]*\.?/,``).length;return t===1&&n===0?1:5}var yg=[`en`,[[`a`,`p`],[`AM`,`PM`]],[[`AM`,`PM`]],[[`S`,`M`,`T`,`W`,`T`,`F`,`S`],[`Sun`,`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`],[`Sunday`,`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`],[`Su`,`Mo`,`Tu`,`We`,`Th`,`Fr`,`Sa`]],_g,[[`J`,`F`,`M`,`A`,`M`,`J`,`J`,`A`,`S`,`O`,`N`,`D`],[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`],[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`]],_g,[[`B`,`A`],[`BC`,`AD`],[`Before Christ`,`Anno Domini`]],0,[6,0],[`M/d/yy`,`MMM d, y`,`MMMM d, y`,`EEEE, MMMM d, y`],[`h:mm a`,`h:mm:ss a`,`h:mm:ss a z`,`h:mm:ss a zzzz`],[`{1}, {0}`,_g,_g,_g],[`.`,`,`,`;`,`%`,`+`,`-`,`E`,`×`,`‰`,`∞`,`NaN`,`:`],[`#,##0.###`,`#,##0%`,`¤#,##0.00`,`#E0`],`USD`,`$`,`US Dollar`,{},`ltr`,vg],bg=Object.create(null);function xg(e){let t=wg(e),n=Sg(t);if(n)return n;let r=t.split(`-`)[0];if(n=Sg(r),n)return n;if(r===`en`)return yg;throw new fi(701,!1)}function Sg(e){if(!(e in bg)){let t=Zi.ng&&Zi.ng.common&&Zi.ng.common.locales&&Zi.ng.common.locales[e];return t!==void 0&&(bg[e]=t),t}return bg[e]}var Cg={LocaleId:0,DayPeriodsFormat:1,DayPeriodsStandalone:2,DaysFormat:3,DaysStandalone:4,MonthsFormat:5,MonthsStandalone:6,Eras:7,FirstDayOfWeek:8,WeekendRange:9,DateFormat:10,TimeFormat:11,DateTimeFormat:12,NumberSymbols:13,NumberFormats:14,CurrencyCode:15,CurrencySymbol:16,CurrencyName:17,Currencies:18,Directionality:19,PluralCase:20,ExtraData:21};function wg(e){return e.toLowerCase().replace(/_/g,`-`)}var Tg=`en-US`;function Eg(e){typeof e==`string`&&e.toLowerCase().replace(/_/g,`-`)}function H(e,t,n){let r=Bo(),i=Vo(),a=Ho();return Dg(i,r,r[11],a,e,t,n),H}function U(e,t,n){let r=Bo(),i=Vo(),a=Ho();return(a.type&3||n)&&xp(a,i,r,n,r[11],e,t,yp(a,r,t)),U}function Dg(e,t,n,r,i,a,o){let s=!0,c=null;if((r.type&3||o)&&(c??=yp(r,t,a),xp(r,e,t,o,n,i,a,c)&&(s=!1)),s){let e=r.outputs?.[i],n=r.hostDirectiveOutputs?.[i];if(n&&n.length)for(let e=0;e>17&32767}function Lg(e){return(e&2)==2}function Rg(e,t){return e&131071|t<<17}function zg(e){return e|2}function Bg(e){return(e&131068)>>2}function Vg(e,t){return e&-131069|t<<2}function Hg(e){return(e&1)==1}function Ug(e){return e|1}function Wg(e,t,n,r,i,a){let o=a?t.classBindings:t.styleBindings,s=Ig(o),c=Bg(o);e[r]=n;let l=!1,u;if(Array.isArray(n)){let e=n;u=e[1],(u===null||_a(e,u)>0)&&(l=!0)}else u=n;if(i){if(c!==0){let t=Ig(e[s+1]);e[r+1]=Fg(t,s),t!==0&&(e[t+1]=Vg(e[t+1],r)),e[s+1]=Rg(e[s+1],r)}else e[r+1]=Fg(s,0),s!==0&&(e[s+1]=Vg(e[s+1],r)),s=r}else e[r+1]=Fg(c,0),s===0?s=r:e[c+1]=Vg(e[c+1],r),c=r;l&&(e[r+1]=zg(e[r+1])),Kg(e,u,r,!0),Kg(e,u,r,!1),Gg(t,u,e,r,a),o=Fg(s,c),a?t.classBindings=o:t.styleBindings=o}function Gg(e,t,n,r,i){let a=i?e.residualClasses:e.residualStyles;a!=null&&typeof t==`string`&&_a(a,t)>=0&&(n[r+1]=Ug(n[r+1]))}function Kg(e,t,n,r){let i=e[n+1],a=t===null,o=r?Ig(i):Bg(i),s=!1;for(;o!==0&&(s===!1||a);){let n=e[o],i=e[o+1];qg(n,t)&&(s=!0,e[o+1]=r?Ug(i):zg(i)),o=r?Ig(i):Bg(i)}s&&(e[n+1]=r?zg(i):Ug(i))}function qg(e,t){return e===null||t==null||(Array.isArray(e)?e[1]:e)===t?!0:Array.isArray(e)&&typeof t==`string`?_a(e,t)>=0:!1}var Jg={textEnd:0,key:0,keyEnd:0,value:0,valueEnd:0};function Yg(e){return e.substring(Jg.key,Jg.keyEnd)}function Xg(e){return Qg(e),Zg(e,$g(e,0,Jg.textEnd))}function Zg(e,t){let n=Jg.textEnd;return n===t?-1:(t=Jg.keyEnd=e_(e,Jg.key=t,n),$g(e,t,n))}function Qg(e){Jg.key=0,Jg.keyEnd=0,Jg.value=0,Jg.valueEnd=0,Jg.textEnd=e.length}function $g(e,t,n){for(;t32;)t++;return t}function t_(e,t,n){return i_(e,t,n,!1),t_}function G(e,t){return i_(e,t,null,!0),G}function n_(e){a_(h_,r_,e,!0)}function r_(e,t){for(let n=Xg(t);n>=0;n=Zg(t,n))ha(e,Yg(t),!0)}function i_(e,t,n,r){let i=Bo(),a=Vo(),o=$o(2);if(a.firstUpdatePass&&s_(a,e,o,r),t!==Fu&&hp(i,o,t)){let s=a.data[ls()];__(a,s,i,i[11],e,i[o+1]=b_(t,n),r,o)}}function a_(e,t,n,r){let i=Vo(),a=$o(2);i.firstUpdatePass&&s_(i,null,a,r);let o=Bo();if(n!==Fu&&hp(o,a,n)){let s=i.data[ls()];if(x_(s,r)&&!o_(i,a)){let e=r?s.classesWithoutHost:s.stylesWithoutHost;e!==null&&(n=gi(e,n||``)),lg(i,s,o,n,r)}else g_(i,s,o,o[11],o[a+1],o[a+1]=m_(e,t,n),r,a)}}function o_(e,t){return t>=e.expandoStartIndex}function s_(e,t,n,r){let i=e.data;if(i[n+1]===null){let a=i[ls()],o=o_(e,n);x_(a,r)&&t===null&&!o&&(t=!1),t=c_(i,a,t,r),Wg(i,a,t,n,o,r)}}function c_(e,t,n,r){let i=$ee(e),a=r?t.residualClasses:t.residualStyles;if(i===null)(r?t.classBindings:t.styleBindings)===0&&(n=f_(null,e,t,n,r),n=p_(n,t.attrs,r),a=null);else{let o=t.directiveStylingLast;if(o===-1||e[o]!==i){if(n=f_(i,e,t,n,r),a===null){let n=l_(e,t,r);n!==void 0&&Array.isArray(n)&&(n=f_(null,e,t,n[1],r),n=p_(n,t.attrs,r),u_(e,t,r,n))}else a=d_(e,t,r)}}return a!==void 0&&(r?t.residualClasses=a:t.residualStyles=a),n}function l_(e,t,n){let r=n?t.classBindings:t.styleBindings;if(Bg(r)!==0)return e[Ig(r)]}function u_(e,t,n,r){let i=n?t.classBindings:t.styleBindings;e[Ig(i)]=r}function d_(e,t,n){let r,i=t.directiveEnd;for(let a=1+t.directiveStylingLast;a0;){let t=e[i],a=Array.isArray(t),c=a?t[1]:t,l=c===null,u=n[i+1];u===Fu&&(u=l?ba:void 0);let d=l?ga(u,r):c===r?u:void 0;if(a&&!y_(d)&&(d=ga(t,r)),y_(d)&&(s=d,o))return s;let f=e[i+1];i=o?Ig(f):Bg(f)}if(t!==null){let e=a?t.residualClasses:t.residualStyles;e!=null&&(s=ga(e,r))}return s}function y_(e){return e!==void 0}function b_(e,t){return e==null||e===``||(typeof t==`string`?e=lu(e)+t:typeof e==`object`&&(e=hi(lu(e)))),e}function x_(e,t){return!!(e.flags&(t?8:16))}function K(e,t=``){let n=Bo(),r=Vo(),i=e+27,a=r.firstCreatePass?Yf(r,i,1,t,null):r.data[i],o=S_(r,n,a,t);n[i]=o,gs()&&Sd(r,n,o,a),Wo(a,!1)}var S_=(e,t,n,r)=>(_s(!0),vu(t[11],r));function C_(e,t,n,r=``){return hp(e,Qo(),n)?t+zi(n)+r:Fu}function w_(e,t,n,r,i,a=``){let o=gp(e,Zo(),n,i);return $o(2),o?t+zi(n)+r+zi(i)+a:Fu}function T_(e,t,n,r,i,a,o,s=``){let c=_p(e,Zo(),n,i,o);return $o(3),c?t+zi(n)+r+zi(i)+a+zi(o)+s:Fu}function E_(e,t,n,r,i,a,o,s,c,l=``){let u=vp(e,Zo(),n,i,o,c);return $o(4),u?t+zi(n)+r+zi(i)+a+zi(o)+s+zi(c)+l:Fu}function q(e){return J(``,e),q}function J(e,t,n){let r=Bo(),i=C_(r,e,t,n);return i!==Fu&&k_(r,ls(),i),J}function Y(e,t,n,r,i){let a=Bo(),o=w_(a,e,t,n,r,i);return o!==Fu&&k_(a,ls(),o),Y}function D_(e,t,n,r,i,a,o){let s=Bo(),c=T_(s,e,t,n,r,i,a,o);return c!==Fu&&k_(s,ls(),c),D_}function O_(e,t,n,r,i,a,o,s,c){let l=Bo(),u=E_(l,e,t,n,r,i,a,o,s,c);return u!==Fu&&k_(l,ls(),u),O_}function k_(e,t,n){let r=mo(t,e);yu(e[11],r,n)}function A_(e,t,n){gc(t)&&(t=t());let r=Bo();return hp(r,Qo(),t)&&(Vo(),Kd(ds(),r,e,t,r[11],n)),A_}function j_(e,t){let n=gc(e);return n&&e.set(t),n}function M_(e,t){let n=Bo(),r=Vo(),i=Ho();return Dg(r,n,n[11],i,e,t),M_}var N_={};function P_(e){rd(`NgLet`);let t=Vo(),n=Bo(),r=e+27;return Wo(Yf(t,r,128,null,null),!1),vo(t,n,r,N_),P_}function F_(e){return vo(Vo(),Bo(),ls(),e),e}function I_(e){let t=_o(qo(),27+e);if(t===N_)throw new fi(314,!1);return t}function L_(e,t,n=``){return C_(Bo(),e,t,n)}function R_(e,t,n){let r=Vo();r.firstCreatePass&&z_(t,r.data,r.blueprint,so(e),n)}function z_(e,t,n,r,i){if(e=vi(e),Array.isArray(e))for(let a=0;a>20;if(Pa(e)||!e.multi){let r=new Uc(l,i,Hp,null),p=H_(c,t,i?u:u+f,d);p===-1?(fl(cl(s,o),a,c),B_(a,e,t.length),t.push(c),s.directiveStart++,s.directiveEnd++,i&&(s.providerIndexes+=1048576),n.push(r),o.push(r)):(n[p]=r,o[p]=r)}else{let p=H_(c,t,u+f,d),m=H_(c,t,u,u+f),ee=p>=0&&n[p],h=m>=0&&n[m];if(i&&!h||!i&&!ee){fl(cl(s,o),a,c);let u=nne(i?tne:ene,n.length,i,r,l,e);!i&&h&&(n[m].providerFactory=u),B_(a,e,t.length,0),t.push(c),s.directiveStart++,s.directiveEnd++,i&&(s.providerIndexes+=1048576),n.push(u),o.push(u)}else{let t=V_(n[i?m:p],l,!i&&r);B_(a,e,p>-1?p:m,t)}!i&&r&&h&&n[m].componentProviders++}}}function B_(e,t,n,r){let i=Pa(t),a=Fa(t);if(i||a){let o=(a?vi(t.useClass):t).prototype.ngOnDestroy;if(o){let a=e.destroyHooks||=[];if(!i&&t.multi){let e=a.indexOf(n);e===-1?a.push(n,[r,o]):a[e+1].push(r,o)}else a.push(n,o)}}}function V_(e,t,n){return n&&e.componentProviders++,e.multi.push(t)-1}function H_(e,t,n,r){for(let i=n;i{n.providersResolver=(t,n)=>R_(t,n?n(e):e,!1),t&&(n.viewProvidersResolver=(e,n)=>R_(e,n?n(t):t,!0))}}function G_(e,t){let n=Xo()+e,r=Bo();return r[n]===Fu?pp(r,n,t()):mp(r,n)}function K_(e,t,n){return Y_(Bo(),Xo(),e,t,n)}function q_(e,t,n,r){return X_(Bo(),Xo(),e,t,n,r)}function rne(e,t,n,r,i,a,o){return ine(Bo(),Xo(),e,t,n,r,i,a)}function J_(e,t){let n=e[t];return n===Fu?void 0:n}function Y_(e,t,n,r,i,a){let o=t+n;return hp(e,o,i)?pp(e,o+1,a?r.call(a,i):r(i)):J_(e,o+1)}function X_(e,t,n,r,i,a,o){let s=t+n;return gp(e,s,i,a)?pp(e,s+2,o?r.call(o,i,a):r(i,a)):J_(e,s+2)}function ine(e,t,n,r,i,a,o,s,c){let l=t+n;return vp(e,l,i,a,o,s)?pp(e,l+4,c?r.call(c,i,a,o,s):r(i,a,o,s)):J_(e,l+4)}function Z_(e,t){let n=Vo(),r,i=e+27;n.firstCreatePass?(r=ane(t,n.pipeRegistry),n.data[i]=r,r.onDestroy&&(n.destroyHooks??=[]).push(i,r.onDestroy)):r=n.data[i];let a=r.factory||(r.factory=sa(r.type,!0)),o=Yi(Hp);try{let e=nl(!1),t=a();return nl(e),vo(n,Bo(),i,t),t}finally{Yi(o)}}function ane(e,t){if(t)for(let n=t.length-1;n>=0;n--){let r=t[n];if(e===r.name)return r}}function Q_(e,t,n){let r=e+27,i=Bo(),a=_o(i,r);return ev(i,r)?Y_(i,Xo(),t,a.transform,n,a):a.transform(n)}function $_(e,t,n,r){let i=e+27,a=Bo(),o=_o(a,i);return ev(a,i)?X_(a,Xo(),t,o.transform,n,r,o):o.transform(n,r)}function ev(e,t){return e[1].data[t].pure}function tv(e,t){return Jf(e,t)}var one=(()=>{class e{applicationErrorHandler=x(qs);appRef=x(Rh);taskService=x(Es);ngZone=x(Ps);zonelessEnabled=x(ic);tracing=x(td,{optional:!0});zoneIsDefined=typeof Zone<`u`&&!!Zone.root.run;schedulerTickApplyArgs=[{data:{__scheduler_tick__:!0}}];subscriptions=new sr;angularZoneId=this.zoneIsDefined?this.ngZone._inner?.get(Ms):null;scheduleInRootZone=!this.zonelessEnabled&&this.zoneIsDefined&&(x(ac,{optional:!0})??!1);cancelScheduledCallback=null;useMicrotaskScheduler=!1;runningTick=!1;pendingRenderTaskId=null;constructor(){this.subscriptions.add(this.appRef.afterTick.subscribe(()=>{let e=this.taskService.add();if(!this.runningTick&&(this.cleanup(),!this.zonelessEnabled||this.appRef.includeAllTestViews)){this.taskService.remove(e);return}this.switchToMicrotaskScheduler(),this.taskService.remove(e)})),this.subscriptions.add(this.ngZone.onUnstable.subscribe(()=>{this.runningTick||this.cleanup()}))}switchToMicrotaskScheduler(){this.ngZone.runOutsideAngular(()=>{let e=this.taskService.add();this.useMicrotaskScheduler=!0,queueMicrotask(()=>{this.useMicrotaskScheduler=!1,this.taskService.remove(e)})})}notify(e){if(!this.zonelessEnabled&&e===5)return;switch(e){case 0:case 2:this.appRef.dirtyFlags|=2;break;case 3:case 4:case 5:case 1:this.appRef.dirtyFlags|=4;break;case 6:this.appRef.dirtyFlags|=2;break;case 12:this.appRef.dirtyFlags|=16;break;case 13:this.appRef.dirtyFlags|=2;break;case 11:break;default:this.appRef.dirtyFlags|=8}if(this.appRef.tracingSnapshot=this.tracing?.snapshot(this.appRef.tracingSnapshot)??null,!this.shouldScheduleTick())return;let t=this.useMicrotaskScheduler?As:ks;this.pendingRenderTaskId=this.taskService.add(),this.cancelScheduledCallback=this.scheduleInRootZone?Zone.root.run(()=>t(()=>this.tick())):this.ngZone.runOutsideAngular(()=>t(()=>this.tick()))}shouldScheduleTick(){return!(this.appRef.destroyed||this.pendingRenderTaskId!==null||this.runningTick||this.appRef._runningTick||!this.zonelessEnabled&&this.zoneIsDefined&&Zone.current.get(`isAngularZone_ID`+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 e=this.taskService.add();try{this.ngZone.run(()=>{this.runningTick=!0,this.appRef._tick()},void 0,this.schedulerTickApplyArgs)}catch(e){this.applicationErrorHandler(e)}finally{this.taskService.remove(e),this.cleanup()}}ngOnDestroy(){this.subscriptions.unsubscribe(),this.cleanup()}cleanup(){if(this.runningTick=!1,this.cancelScheduledCallback?.(),this.cancelScheduledCallback=null,this.pendingRenderTaskId!==null){let e=this.pendingRenderTaskId;this.pendingRenderTaskId=null,this.taskService.remove(e)}}static ɵfac=function(t){return new(t||e)};static ɵprov=kl({token:e,factory:e.ɵfac})}return e})();function sne(){return[{provide:rc,useExisting:one},{provide:Ps,useClass:Hs},{provide:ic,useValue:!0}]}function cne(){return typeof $localize<`u`&&$localize.locale||`en-US`}var nv=new Di(``,{factory:()=>x(nv,{optional:!0,skipSelf:!0})||cne()}),rv=class{destroyed=!1;listeners=null;errorHandler=x(Ks,{optional:!0});isEmitting=!1;hasNullListeners=!1;destroyRef=x(Ss);constructor(){this.destroyRef.onDestroy(()=>{this.destroyed=!0,this.listeners=null})}subscribe(e){if(this.destroyed)throw new fi(953,!1);return(this.listeners??=[]).push(e),{unsubscribe:()=>{let t=this.listeners?this.listeners.indexOf(e):-1;t>-1&&(this.isEmitting?(this.hasNullListeners=!0,this.listeners[t]=null):this.listeners.splice(t,1))}}}emit(e){if(this.destroyed){console.warn(pi(953,!1));return}if(this.listeners===null)return;this.isEmitting=!0;let t=rn(null);try{for(let t of this.listeners)try{t!==null&&t(e)}catch(e){this.errorHandler?.handleError(e)}}finally{this.hasNullListeners&&(this.hasNullListeners=!1,this.listeners&&lne(this.listeners)),rn(t),this.isEmitting=!1}}};function lne(e){let t=e.length-1;for(;t>-1;)e[t]===null&&e.splice(t,1),t--}function X(e,t){return Tn(e,t?.equal)}function Z(e){return Kn(e)}(class e extends Error{_brand;constructor(e){super(e)}static IDLE=new e(`IDLE`);static LOADING=new e(`LOADING`)});var une=e=>e;function Q(e,t){return typeof e==`function`?iv(Hn(e,une,t?.equal),t?.debugName,t?.set):iv(Hn(e.source,e.computation,e.equal),e.debugName,e.set)}function iv(e,t,n){let r=e[nn],i=e;if(n!==void 0){let t=e=>Un(r,e);i.set=e=>n(e,t),i.update=r=>n(r(Z(e)),t)}else i.set=e=>Un(r,e),i.update=e=>Wn(r,e);return i.asReadonly=Ys.bind(e),i}var av=!1;function dne(){return av}function ov(e){av=e}function sv(e,t){let n=Object.create(vc);n.value=e,n.transformFn=t?.transform;function r(){if(sn(n),n.value===_c)throw new fi(-950,null);return n.value}return r[nn]=n,r}function cv(e){return new rv}function lv(e,t){return sv(e,t)}function fne(e){return sv(_c,e)}var $=(lv.required=fne,lv);function uv(e,t){let n=Object.create(vc),r=new rv;n.value=e;function i(){return sn(n),dv(n.value),n.value}return i[nn]=n,i.asReadonly=Ys.bind(i),i.set=e=>{n.equal(n.value,e)||(jn(n,e),r.emit(e))},i.update=e=>{dv(n.value),i.set(e(n.value))},i.subscribe=r.subscribe.bind(r),i.destroyRef=r.destroyRef,i}function dv(e){if(e===_c)throw new fi(952,!1)}function fv(e,t){return uv(e,t)}function pne(e){return uv(_c,e)}var pv=(fv.required=pne,fv);function mv(e,t){return Qm(t)}function mne(e,t){return $m(t)}var hv=(mv.required=mne,mv),hne=(()=>{class e{static __NG_ELEMENT_ID__=gne}return e})();function gne(e){return _ne(Ho(),Bo(),(e&16)==16)}function _ne(e,t,n){if(ao(e)&&!n){let n=yo(e.index,t);return new Gf(n,n)}if(e.type&175){let e=t[15];return new Gf(e,t)}return null}var gv=new Di(``),vne=new Di(``);function _v(e){return!e.moduleRef}function yne(e){let t=_v(e)?e.r3Injector:e.moduleRef.injector,n=t.get(Ps);return n.run(()=>{_v(e)?e.r3Injector.resolveInjectorInitializers():e.moduleRef.resolveInjectorInitializers();let r=t.get(qs),i;if(n.runOutsideAngular(()=>{i=n.onError.subscribe({next:r})}),_v(e)){let n=()=>t.destroy(),r=e.platformInjector.get(gv);r.add(n),t.onDestroy(()=>{i.unsubscribe(),r.delete(n)})}else{let t=()=>e.moduleRef.destroy(),n=e.platformInjector.get(gv);n.add(t),e.moduleRef.onDestroy(()=>{Bh(e.allPlatformModules,e.moduleRef),i.unsubscribe(),n.delete(t)})}return xne(r,n,()=>{let n=t.get(Es),r=n.add(),i=t.get(vh);return i.runInitializers(),i.donePromise.then(()=>{if(Eg(t.get(nv,Tg)||`en-US`),!t.get(vne,!0))return _v(e)?t.get(Rh):(e.allPlatformModules.push(e.moduleRef),e.moduleRef);if(_v(e)){let n=t.get(Rh);return e.rootComponent!==void 0&&n.bootstrap(e.rootComponent),n}return bne?.(e.moduleRef,e.allPlatformModules),e.moduleRef}).finally(()=>void n.remove(r))})})}var bne;function xne(e,t,n){try{let r=n();return nh(r)?r.catch(n=>{throw t.runOutsideAngular(()=>e(n)),n}):r}catch(n){throw t.runOutsideAngular(()=>e(n)),n}}var vv=null;function Sne(e=[],t){return bs.create({name:t,providers:[{provide:Ia,useValue:`platform`},{provide:gv,useValue:new Set([()=>vv=null])},...e]})}function Cne(e=[]){if(vv)return vv;let t=Sne(e);return vv=t,Ih(),wne(t),t}function wne(e){let t=e.get(Qs,null);$a(e,()=>{t?.forEach(e=>e())})}function Tne(e){let{rootComponent:t,appProviders:n,platformProviders:r,platformRef:i}=e;Nc(bc.BootstrapApplicationStart);try{let e=i?.injector??Cne(r);return yne({r3Injector:new ah({providers:[sne(),Js,...n||[]],parent:e,debugName:``,runEnvironmentInitializers:!1}).injector,platformInjector:e,rootComponent:t})}catch(e){return Promise.reject(e)}finally{Nc(bc.BootstrapApplicationEnd)}}function yv(e){return typeof e==`boolean`?e:e!=null&&e!==`false`}var bv=Symbol(`NOT_SET`),xv=new Set,Ene={...Nn,kind:`afterRenderEffectPhase`,consumerIsAlwaysLive:!0,consumerAllowSignalWrites:!0,value:bv,cleanup:null,consumerMarkedDirty(){if(this.sequence.impl.executing){if(this.sequence.lastPhase===null||this.sequence.lastPhase(sn(r),r.value),r.signal[nn]=r,r.registerCleanupFn=e=>(r.cleanup??=new Set).add(e),this.nodes[e]=r,this.hooks[e]=e=>r.phaseFn(e)}}afterRun(){super.afterRun(),this.lastPhase=null}destroy(){if(this.onDestroyFns!==null)for(let e of this.onDestroyFns)e();super.destroy();for(let e of this.nodes)if(e)try{for(let t of e.cleanup??xv)t()}finally{yn(e)}}};function Sv(e,t){let n=t?.injector??x(bs),r=n.get(rc),i=n.get(id),a=n.get(td,null,{optional:!0});i.impl??=n.get(od);let o=e;typeof o==`function`&&(o={mixedReadWrite:e});let s=n.get(tc,null,{optional:!0}),c=new Dne(i.impl,[o.earlyRead,o.write,o.mixedReadWrite,o.read],s?.view,r,n,a?.snapshot(null));return i.impl.register(c),c}var Cv=null;function wv(){return Cv}function One(e){Cv??=e}var kne=class{},Tv=(function(e){return e[e.Format=0]=`Format`,e[e.Standalone=1]=`Standalone`,e})(Tv||{}),Ev=(function(e){return e[e.Narrow=0]=`Narrow`,e[e.Abbreviated=1]=`Abbreviated`,e[e.Wide=2]=`Wide`,e[e.Short=3]=`Short`,e})(Ev||{}),Dv=(function(e){return e[e.Short=0]=`Short`,e[e.Medium=1]=`Medium`,e[e.Long=2]=`Long`,e[e.Full=3]=`Full`,e})(Dv||{}),Ov={Decimal:0,Group:1,List:2,PercentSign:3,PlusSign:4,MinusSign:5,Exponential:6,SuperscriptingExponent:7,PerMille:8,Infinity:9,NaN:10,TimeSeparator:11,CurrencyDecimal:12,CurrencyGroup:13};function Ane(e){return xg(e)[Cg.LocaleId]}function jne(e,t,n){let r=xg(e);return Pv(Pv([r[Cg.DayPeriodsFormat],r[Cg.DayPeriodsStandalone]],t),n)}function Mne(e,t,n){let r=xg(e);return Pv(Pv([r[Cg.DaysFormat],r[Cg.DaysStandalone]],t),n)}function Nne(e,t,n){let r=xg(e);return Pv(Pv([r[Cg.MonthsFormat],r[Cg.MonthsStandalone]],t),n)}function Pne(e,t){let n=xg(e)[Cg.Eras];return Pv(n,t)}function kv(e,t){return Pv(xg(e)[Cg.DateFormat],t)}function Av(e,t){return Pv(xg(e)[Cg.TimeFormat],t)}function jv(e,t){let n=xg(e)[Cg.DateTimeFormat];return Pv(n,t)}function Mv(e,t){let n=xg(e),r=n[Cg.NumberSymbols][t];if(r===void 0){if(t===Ov.CurrencyDecimal)return n[Cg.NumberSymbols][Ov.Decimal];if(t===Ov.CurrencyGroup)return n[Cg.NumberSymbols][Ov.Group]}return r}function Nv(e){if(!e[Cg.ExtraData])throw new fi(2303,!1)}function Fne(e){let t=xg(e);return Nv(t),(t[Cg.ExtraData][2]||[]).map(e=>typeof e==`string`?Fv(e):[Fv(e[0]),Fv(e[1])])}function Ine(e,t,n){let r=xg(e);return Nv(r),Pv(Pv([r[Cg.ExtraData][0],r[Cg.ExtraData][1]],t)||[],n)||[]}function Pv(e,t){for(let n=t;n>-1;n--)if(e[n]!==void 0)return e[n];throw new fi(2304,!1)}function Fv(e){let[t,n]=e.split(`:`);return{hours:+t,minutes:+n}}var Lne=/^(\d{4,})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/,Iv=Object.create(null),Rne=/((?:[^BEGHLMOSWYZabcdhmswyz']+)|(?:'(?:[^']|'')*')|(?:G{1,5}|y{1,4}|Y{1,4}|M{1,5}|L{1,5}|w{1,2}|W{1}|d{1,2}|E{1,6}|c{1,6}|a{1,5}|b{1,5}|B{1,5}|h{1,2}|H{1,2}|m{1,2}|s{1,2}|S{1,3}|z{1,4}|Z{1,5}|O{1,4}))([\s\S]*)/,zne=256;function Bne(e,t,n,r){let i=Xne(e);Vne(t),t=Rv(n,t)||t;let a=[],o;for(;t;)if(o=Rne.exec(t),o){a=a.concat(o.slice(1));let e=a.pop();if(!e)break;t=e}else{a.push(t);break}let s=i.getTimezoneOffset();r&&(s=Yv(r,s),i=Yne(i,r));let c=``;return a.forEach(e=>{let t=qne(e);c+=t?t(i,n,s):e===`''`?`'`:e.replace(/(^'|'$)/g,``).replace(/''/g,`'`)}),c}function Vne(e){if(e.length>zne)throw new fi(2300,!1)}function Lv(e,t,n){let r=new Date(0);return r.setFullYear(e,t,n),r.setHours(0,0,0),r}function Rv(e,t){let n=Ane(e);if(Iv[n]??=Object.create(null),Iv[n][t])return Iv[n][t];let r=``;switch(t){case`shortDate`:r=kv(e,Dv.Short);break;case`mediumDate`:r=kv(e,Dv.Medium);break;case`longDate`:r=kv(e,Dv.Long);break;case`fullDate`:r=kv(e,Dv.Full);break;case`shortTime`:r=Av(e,Dv.Short);break;case`mediumTime`:r=Av(e,Dv.Medium);break;case`longTime`:r=Av(e,Dv.Long);break;case`fullTime`:r=Av(e,Dv.Full);break;case`short`:let t=Rv(e,`shortTime`),n=Rv(e,`shortDate`);r=zv(jv(e,Dv.Short),[t,n]);break;case`medium`:let i=Rv(e,`mediumTime`),a=Rv(e,`mediumDate`);r=zv(jv(e,Dv.Medium),[i,a]);break;case`long`:let o=Rv(e,`longTime`),s=Rv(e,`longDate`);r=zv(jv(e,Dv.Long),[o,s]);break;case`full`:let c=Rv(e,`fullTime`),l=Rv(e,`fullDate`);r=zv(jv(e,Dv.Full),[c,l])}return r&&(Iv[n][t]=r),r}function zv(e,t){return t&&(e=e.replace(/\{([^}]+)}/g,function(e,n){return Object.hasOwn(t,n)?t[n]:e})),e}function Bv(e,t,n=`-`,r,i){let a=``;(e<0||i&&e<=0)&&(i?e=-e+1:(e=-e,a=n));let o=String(e);for(;o.length0||s>-n)&&(s+=n),e===3)s===0&&n===-12&&(s=12);else if(e===6)return Hne(s,t);let c=Mv(o,Ov.MinusSign);return Bv(s,t,c,r,i)}}function Une(e,t){switch(e){case 0:return t.getFullYear();case 1:return t.getMonth();case 2:return t.getDate();case 3:return t.getHours();case 4:return t.getMinutes();case 5:return t.getSeconds();case 6:return t.getMilliseconds();case 7:return t.getDay();default:throw new fi(2301,!1)}}function Hv(e,t,n=Tv.Format,r=!1){return function(i,a){return Wne(i,a,e,t,n,r)}}function Wne(e,t,n,r,i,a){switch(n){case 2:return Nne(t,i,r)[e.getMonth()];case 1:return Mne(t,i,r)[e.getDay()];case 0:let n=e.getHours(),o=e.getMinutes();if(a){let e=Fne(t),a=Ine(t,i,r),s=e.findIndex(e=>{if(Array.isArray(e)){let[t,r]=e,i=n>=t.hours&&o>=t.minutes,a=n0?Math.floor(i/60):Math.ceil(i/60);switch(e){case 0:return(i>=0?`+`:``)+Bv(o,2,a)+Bv(Math.abs(i%60),2,a);case 1:return`GMT`+(i>=0?`+`:``)+Bv(o,1,a);case 2:return`GMT`+(i>=0?`+`:``)+Bv(o,2,a)+`:`+Bv(Math.abs(i%60),2,a);case 3:return r===0?`Z`:(i>=0?`+`:``)+Bv(o,2,a)+`:`+Bv(Math.abs(i%60),2,a);default:throw new fi(2310,!1)}}}var Gne=0,Wv=4;function Kne(e){let t=Lv(e,Gne,1).getDay();return Lv(e,0,1+(t<=Wv?Wv:11)-t)}function Gv(e){let t=e.getDay(),n=t===0?-3:Wv-t;return Lv(e.getFullYear(),e.getMonth(),e.getDate()+n)}function Kv(e,t=!1){return function(n,r){let i;if(t){let e=new Date(n.getFullYear(),n.getMonth(),1).getDay()-1,t=n.getDate();i=1+Math.floor((t+e)/7)}else{let e=Gv(n),t=Kne(e.getFullYear()),r=e.getTime()-t.getTime();i=1+Math.round(r/6048e5)}return Bv(i,e,Mv(r,Ov.MinusSign))}}function qv(e,t=!1){return function(n,r){return Bv(Gv(n).getFullYear(),e,Mv(r,Ov.MinusSign),t)}}var Jv=Object.create(null);function qne(e){if(Jv[e])return Jv[e];let t;switch(e){case`G`:case`GG`:case`GGG`:t=Hv(3,Ev.Abbreviated);break;case`GGGG`:t=Hv(3,Ev.Wide);break;case`GGGGG`:t=Hv(3,Ev.Narrow);break;case`y`:t=Vv(0,1,0,!1,!0);break;case`yy`:t=Vv(0,2,0,!0,!0);break;case`yyy`:t=Vv(0,3,0,!1,!0);break;case`yyyy`:t=Vv(0,4,0,!1,!0);break;case`Y`:t=qv(1);break;case`YY`:t=qv(2,!0);break;case`YYY`:t=qv(3);break;case`YYYY`:t=qv(4);break;case`M`:case`L`:t=Vv(1,1,1);break;case`MM`:case`LL`:t=Vv(1,2,1);break;case`MMM`:t=Hv(2,Ev.Abbreviated);break;case`MMMM`:t=Hv(2,Ev.Wide);break;case`MMMMM`:t=Hv(2,Ev.Narrow);break;case`LLL`:t=Hv(2,Ev.Abbreviated,Tv.Standalone);break;case`LLLL`:t=Hv(2,Ev.Wide,Tv.Standalone);break;case`LLLLL`:t=Hv(2,Ev.Narrow,Tv.Standalone);break;case`w`:t=Kv(1);break;case`ww`:t=Kv(2);break;case`W`:t=Kv(1,!0);break;case`d`:t=Vv(2,1);break;case`dd`:t=Vv(2,2);break;case`c`:case`cc`:t=Vv(7,1);break;case`ccc`:t=Hv(1,Ev.Abbreviated,Tv.Standalone);break;case`cccc`:t=Hv(1,Ev.Wide,Tv.Standalone);break;case`ccccc`:t=Hv(1,Ev.Narrow,Tv.Standalone);break;case`cccccc`:t=Hv(1,Ev.Short,Tv.Standalone);break;case`E`:case`EE`:case`EEE`:t=Hv(1,Ev.Abbreviated);break;case`EEEE`:t=Hv(1,Ev.Wide);break;case`EEEEE`:t=Hv(1,Ev.Narrow);break;case`EEEEEE`:t=Hv(1,Ev.Short);break;case`a`:case`aa`:case`aaa`:t=Hv(0,Ev.Abbreviated);break;case`aaaa`:t=Hv(0,Ev.Wide);break;case`aaaaa`:t=Hv(0,Ev.Narrow);break;case`b`:case`bb`:case`bbb`:t=Hv(0,Ev.Abbreviated,Tv.Standalone,!0);break;case`bbbb`:t=Hv(0,Ev.Wide,Tv.Standalone,!0);break;case`bbbbb`:t=Hv(0,Ev.Narrow,Tv.Standalone,!0);break;case`B`:case`BB`:case`BBB`:t=Hv(0,Ev.Abbreviated,Tv.Format,!0);break;case`BBBB`:t=Hv(0,Ev.Wide,Tv.Format,!0);break;case`BBBBB`:t=Hv(0,Ev.Narrow,Tv.Format,!0);break;case`h`:t=Vv(3,1,-12);break;case`hh`:t=Vv(3,2,-12);break;case`H`:t=Vv(3,1);break;case`HH`:t=Vv(3,2);break;case`m`:t=Vv(4,1);break;case`mm`:t=Vv(4,2);break;case`s`:t=Vv(5,1);break;case`ss`:t=Vv(5,2);break;case`S`:t=Vv(6,1);break;case`SS`:t=Vv(6,2);break;case`SSS`:t=Vv(6,3);break;case`Z`:case`ZZ`:case`ZZZ`:t=Uv(0);break;case`ZZZZZ`:t=Uv(3);break;case`O`:case`OO`:case`OOO`:case`z`:case`zz`:case`zzz`:t=Uv(1);break;case`OOOO`:case`ZZZZ`:case`zzzz`:t=Uv(2);break;default:return null}return Jv[e]=t,t}function Yv(e,t){e=e.replace(/:/g,``);let n=Date.parse(`Jan 01, 1970 00:00:00 `+e)/6e4;return isNaN(n)?t:n}function Jne(e,t){return e=new Date(e.getTime()),e.setMinutes(e.getMinutes()+t),e}function Yne(e,t,n){let r=e.getTimezoneOffset();return Jne(e,-1*(Yv(t,r)-r))}function Xne(e){if(Xv(e))return e;if(typeof e==`number`&&!isNaN(e))return new Date(e);if(typeof e==`string`){if(e=e.trim(),/^(\d{4}(-\d{1,2}(-\d{1,2})?)?)$/.test(e)){let[t,n=1,r=1]=e.split(`-`).map(e=>+e);return Lv(t,n-1,r)}let t=parseFloat(e);if(!isNaN(e-t))return new Date(t);let n;if(n=e.match(Lne))return Zne(n)}let t=new Date(e);if(!Xv(t))throw new fi(2311,!1);return t}function Zne(e){let t=new Date(0),n=0,r=0,i=e[8]?t.setUTCFullYear:t.setFullYear,a=e[8]?t.setUTCHours:t.setHours;e[9]&&(n=Number(e[9]+e[10]),r=Number(e[9]+e[11])),i.call(t,Number(e[1]),Number(e[2])-1,Number(e[3]));let o=Number(e[4]||0)-n,s=Number(e[5]||0)-r,c=Number(e[6]||0),l=Math.floor(parseFloat(`0.`+(e[7]||0))*1e3);return a.call(t,o,s,c,l),t}function Xv(e){return e instanceof Date&&!isNaN(e.valueOf())}var Zv=(()=>{class e{_viewContainerRef;_viewRef=null;ngTemplateOutletContext=null;ngTemplateOutlet=null;ngTemplateOutletInjector=null;injector=x(bs);constructor(e){this._viewContainerRef=e}ngOnChanges(e){if(this._shouldRecreateView(e)){let e=this._viewContainerRef;if(this._viewRef&&e.remove(e.indexOf(this._viewRef)),!this.ngTemplateOutlet){this._viewRef=null;return}let t=this._createContextForwardProxy();this._viewRef=e.createEmbeddedView(this.ngTemplateOutlet,t,{injector:this._getInjector()})}}_getInjector(){return this.ngTemplateOutletInjector===`outlet`?this.injector:this.ngTemplateOutletInjector??void 0}_shouldRecreateView(e){return!!e.ngTemplateOutlet||!!e.ngTemplateOutletInjector}_createContextForwardProxy(){return new Proxy({},{set:(e,t,n)=>this.ngTemplateOutletContext?Reflect.set(this.ngTemplateOutletContext,t,n):!1,get:(e,t,n)=>{if(this.ngTemplateOutletContext)return Reflect.get(this.ngTemplateOutletContext,t,n)}})}static ɵfac=function(t){return new(t||e)(Hp(Sm))};static ɵdir=dh({type:e,selectors:[[``,`ngTemplateOutlet`,``]],inputs:{ngTemplateOutletContext:`ngTemplateOutletContext`,ngTemplateOutlet:`ngTemplateOutlet`,ngTemplateOutletInjector:`ngTemplateOutletInjector`},features:[wc]})}return e})();function Qne(e,t){return new fi(2100,!1)}var $ne=`mediumDate`,ere=new Di(``),tre=new Di(``),Qv=(()=>{class e{locale;defaultTimezone;defaultOptions;constructor(e,t,n){this.locale=e,this.defaultTimezone=t,this.defaultOptions=n}transform(t,n,r,i){if(t==null||t===``||t!==t)return null;try{let e=n??this.defaultOptions?.dateFormat??$ne,a=r??this.defaultOptions?.timezone??this.defaultTimezone??void 0;return Bne(t,e,i||this.locale,a)}catch(t){throw Qne(e,t.message)}}static ɵfac=function(t){return new(t||e)(Hp(nv,16),Hp(ere,24),Hp(tre,24))};static ɵpipe=fh({name:`date`,type:e,pure:!0})}return e})(),$v=(()=>{class e{transform(e){return JSON.stringify(e,null,2)}static ɵfac=function(t){return new(t||e)};static ɵpipe=fh({name:`json`,type:e,pure:!1})}return e})();function nre(e,t){t=encodeURIComponent(t);for(let n of e.split(`;`)){let e=n.indexOf(`=`),[r,i]=e==-1?[n,``]:[n.slice(0,e),n.slice(e+1)];if(r.trim()!==t)continue;let a=i;try{a=decodeURIComponent(i)}catch{}return a.length>1&&a[0]===`"`&&a[a.length-1]===`"`&&(a=a.slice(1,-1)),a}return null}var rre=`browser`,ey=class{_doc;constructor(e){this._doc=e}manager},ty=(()=>{class e extends ey{constructor(e){super(e)}supports(e){return!0}addEventListener(e,t,n,r){return e.addEventListener(t,n,r),()=>this.removeEventListener(e,t,n,r)}removeEventListener(e,t,n,r){return e.removeEventListener(t,n,r)}static ɵfac=function(t){return new(t||e)(na(xs))};static ɵprov=bi({token:e,factory:e.ɵfac})}return e})(),ny=new Di(``),ry=(()=>{class e{_zone;_plugins;_eventNameToPlugin=new Map;constructor(e,t){this._zone=t,e.forEach(e=>{e.manager=this});let n=e.filter(e=>!(e instanceof ty));this._plugins=n.slice().reverse();let r=e.find(e=>e instanceof ty);r&&this._plugins.push(r)}addEventListener(e,t,n,r){return this._findPluginFor(t).addEventListener(e,t,n,r)}getZone(){return this._zone}_findPluginFor(e){let t=this._eventNameToPlugin.get(e);if(t)return t;if(t=this._plugins.find(t=>t.supports(e)),!t)throw new fi(-5101,!1);return this._eventNameToPlugin.set(e,t),t}static ɵfac=function(t){return new(t||e)(na(ny),na(Ps))};static ɵprov=bi({token:e,factory:e.ɵfac})}return e})(),iy=`ng-app-id`;function ay(e){for(let t of e)t.remove()}function oy(e,t){let n=t.createElement(`style`);return n.textContent=e,n}function ire(e,t,n,r){let i=e.head?.querySelectorAll(`style[${iy}="${t}"],link[${iy}="${t}"]`);if(!i||i.length===0)return!1;for(let e of i)e.removeAttribute(iy),e instanceof HTMLLinkElement?r.set(e.href.slice(e.href.lastIndexOf(`/`)+1),{usage:0,elements:[e]}):e.textContent&&n.set(e.textContent,{usage:0,elements:[e]});return!0}function sy(e,t){let n=t.createElement(`link`);return n.setAttribute(`rel`,`stylesheet`),n.setAttribute(`href`,e),n}var cy=(()=>{class e{doc;appId;nonce;inline=new Map;external=new Map;hosts=new Set;constructor(e,t,n,r={}){this.doc=e,this.appId=t,this.nonce=n,ire(e,t,this.inline,this.external)&&this.hosts.add(e.head)}addStyles(e,t){for(let t of e)this.addUsage(t,this.inline,oy);t?.forEach(e=>this.addUsage(e,this.external,sy))}removeStyles(e,t){for(let t of e)this.removeUsage(t,this.inline);t?.forEach(e=>this.removeUsage(e,this.external))}addUsage(e,t,n){let r=t.get(e);r?r.usage++:t.set(e,{usage:1,elements:[...this.hosts].map(t=>this.addElement(t,n(e,this.doc)))})}removeUsage(e,t){let n=t.get(e);n&&(n.usage--,n.usage<=0&&(ay(n.elements),t.delete(e)))}ngOnDestroy(){for(let[,{elements:e}]of[...this.inline,...this.external])ay(e);this.hosts.clear()}addHost(e){if(!this.hosts.has(e)){this.hosts.add(e);for(let[t,{elements:n}]of this.inline)n.push(this.addElement(e,oy(t,this.doc)));for(let[t,{elements:n}]of this.external)n.push(this.addElement(e,sy(t,this.doc)))}}removeHost(e){this.hosts.delete(e);for(let t of[...this.inline.values(),...this.external.values()]){let n=[];for(let r of t.elements)r.parentNode===e?r.remove():n.push(r);t.elements=n}}addElement(e,t){return this.nonce&&t.setAttribute(`nonce`,this.nonce),e.appendChild(t)}static ɵfac=function(t){return new(t||e)(na(xs),na(Xs),na(ec,8),na($s))};static ɵprov=bi({token:e,factory:e.ɵfac})}return e})(),ly={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`},uy=/%COMP%/g,dy=`%COMP%`,are=`_nghost-${dy}`,ore=`_ngcontent-${dy}`,sre=!0,cre=new Di(``,{factory:()=>sre}),lre=new Di(``);function ure(e){return ore.replace(uy,e)}function dre(e){return are.replace(uy,e)}function fy(e,t){return t.map(t=>t.replace(uy,e))}var py=(()=>{class e{eventManager;sharedStylesHost;appId;removeStylesOnCompDestroy;doc;ngZone;nonce;tracingService;rendererByCompId=new Map;defaultRenderer;cssVarNamespace;constructor(e,t,n,r,i,a,o=null,s=null,c=null){this.eventManager=e,this.sharedStylesHost=t,this.appId=n,this.removeStylesOnCompDestroy=r,this.doc=i,this.ngZone=a,this.nonce=o,this.tracingService=s,this.cssVarNamespace=c??``,this.defaultRenderer=new my(e,i,a,this.tracingService,this.cssVarNamespace)}createRenderer(e,t){if(!e||!t)return this.defaultRenderer;let n=this.getOrCreateRenderer(e,t);return n instanceof vy?n.applyToHost(e):n instanceof _y&&n.applyStyles(),n}getOrCreateRenderer(e,t){let n=this.rendererByCompId,r=n.get(t.id);if(!r){let i=this.doc,a=this.ngZone,o=this.eventManager,s=this.sharedStylesHost,c=this.removeStylesOnCompDestroy,l=this.tracingService;switch(t.encapsulation){case su.Emulated:r=new vy(o,s,t,this.appId,c,i,a,l,this.cssVarNamespace);break;case su.ShadowDom:return new gy(o,e,t,i,a,this.nonce,l,this.cssVarNamespace,s);case su.ExperimentalIsolatedShadowDom:return new gy(o,e,t,i,a,this.nonce,l,this.cssVarNamespace);default:r=new _y(o,s,t,c,i,a,l,this.cssVarNamespace)}n.set(t.id,r)}return r}ngOnDestroy(){this.rendererByCompId.clear()}componentReplaced(e){this.rendererByCompId.delete(e)}static ɵfac=function(t){return new(t||e)(na(ry),na(Bp),na(Xs),na(cre),na(xs),na(Ps),na(ec),na(td,8),na(lre,8))};static ɵprov=bi({token:e,factory:e.ɵfac})}return e})(),my=class{eventManager;doc;ngZone;tracingService;cssVarNamespace;data=Object.create(null);throwOnSyntheticProps=!0;constructor(e,t,n,r,i=``){this.eventManager=e,this.doc=t,this.ngZone=n,this.tracingService=r,this.cssVarNamespace=i}destroy(){}destroyNode=null;createElement(e,t){return t?this.doc.createElementNS(ly[t]||t,e):this.doc.createElement(e)}createComment(e){return this.doc.createComment(e)}createText(e){return this.doc.createTextNode(e)}appendChild(e,t){(hy(e)?e.content:e).appendChild(t)}insertBefore(e,t,n){if(e){let r=hy(e)?e.content:e;if(n!=null&&n.parentNode!==r)throw new fi(-5106,!1);r.insertBefore(t,n)}}removeChild(e,t){t.remove()}selectRootElement(e,t){let n=typeof e==`string`?this.doc.querySelector(e):e;if(!n)throw new fi(-5104,!1);return t||(n.textContent=``),n}parentNode(e){return e.parentNode}nextSibling(e){return e.nextSibling}setAttribute(e,t,n,r){if(r){t=r+`:`+t;let i=ly[r];i?e.setAttributeNS(i,t,n):e.setAttribute(t,n)}else e.setAttribute(t,n)}removeAttribute(e,t,n){if(n){let r=ly[n];r?e.removeAttributeNS(r,t):e.removeAttribute(`${n}:${t}`)}else e.removeAttribute(t)}addClass(e,t){e.classList.add(t)}removeClass(e,t){e.classList.remove(t)}setStyle(e,t,n,r){let i=t.startsWith(`--`);i&&(t=t.replace(`%NS%`,this.cssVarNamespace)),i||r&(Iu.DashCase|Iu.Important)?e.style.setProperty(t,n,r&Iu.Important?`important`:``):e.style[t]=n}removeStyle(e,t,n){let r=t.startsWith(`--`);r&&(t=t.replace(`%NS%`,this.cssVarNamespace)),r||n&Iu.DashCase?e.style.removeProperty(t):e.style[t]=``}setProperty(e,t,n){e!=null&&(e[t]=n)}setValue(e,t){e.nodeValue=t}listen(e,t,n,r){if(typeof e==`string`&&(e=wv().getGlobalEventTarget(this.doc,e),!e))throw new fi(-5102,!1);let i=this.decoratePreventDefault(n);return this.tracingService?.wrapEventListener&&(i=this.tracingService.wrapEventListener(e,t,i)),this.eventManager.addEventListener(e,t,i,r)}decoratePreventDefault(e){return t=>{if(t===`__ngUnwrap__`)return e;e(t)===!1&&t.preventDefault()}}};function hy(e){return e.tagName===`TEMPLATE`&&e.content!==void 0}var gy=class extends my{hostEl;sharedStylesHost;shadowRoot;constructor(e,t,n,r,i,a,o,s,c){super(e,r,i,o,s),this.hostEl=t,this.sharedStylesHost=c,this.shadowRoot=t.attachShadow({mode:`open`}),this.sharedStylesHost&&this.sharedStylesHost.addHost(this.shadowRoot);let l=n.styles;l=fy(n.id,l).map(e=>e.replace(/%NS%/g,s));for(let e of l){let t=document.createElement(`style`);a&&t.setAttribute(`nonce`,a),t.textContent=e,this.shadowRoot.appendChild(t)}let u=n.getExternalStyles?.();if(u)for(let e of u){let t=sy(e,r);a&&t.setAttribute(`nonce`,a),this.shadowRoot.appendChild(t)}}nodeOrShadowRoot(e){return e===this.hostEl?this.shadowRoot:e}appendChild(e,t){return super.appendChild(this.nodeOrShadowRoot(e),t)}insertBefore(e,t,n){return super.insertBefore(this.nodeOrShadowRoot(e),t,n)}removeChild(e,t){return super.removeChild(null,t)}parentNode(e){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(e)))}destroy(){this.sharedStylesHost&&this.sharedStylesHost.removeHost(this.shadowRoot)}},_y=class extends my{sharedStylesHost;removeStylesOnCompDestroy;styles;styleUrls;constructor(e,t,n,r,i,a,o,s,c){super(e,i,a,o,s),this.sharedStylesHost=t,this.removeStylesOnCompDestroy=r;let l=n.styles,u=c?fy(c,l):l;this.styles=u.map(e=>e.replace(/%NS%/g,s)),this.styleUrls=n.getExternalStyles?.(c)}applyStyles(){this.sharedStylesHost.addStyles(this.styles,this.styleUrls)}destroy(){this.removeStylesOnCompDestroy&&Uu.size===0&&this.sharedStylesHost.removeStyles(this.styles,this.styleUrls)}},vy=class extends _y{contentAttr;hostAttr;constructor(e,t,n,r,i,a,o,s,c){let l=r+`-`+n.id;super(e,t,n,i,a,o,s,c,l),this.contentAttr=ure(l),this.hostAttr=dre(l)}applyToHost(e){this.applyStyles(),this.setAttribute(e,this.hostAttr,``)}createElement(e,t){let n=super.createElement(e,t);return super.setAttribute(n,this.contentAttr,``),n}},fre=class e extends kne{supportsDOMEvents=!0;static makeCurrent(){One(new e)}onAndCancel(e,t,n,r){return e.addEventListener(t,n,r),()=>{e.removeEventListener(t,n,r)}}dispatchEvent(e,t){e.dispatchEvent(t)}remove(e){e.remove()}createElement(e,t){return t||=this.getDefaultDocument(),t.createElement(e)}createHtmlDocument(){return document.implementation.createHTMLDocument(`fakeTitle`)}getDefaultDocument(){return document}isElementNode(e){return e.nodeType===Node.ELEMENT_NODE}isShadowRoot(e){return e instanceof DocumentFragment}getGlobalEventTarget(e,t){return t===`window`?window:t===`document`?e:t===`body`?e.body:null}getBaseHref(e){let t=pre();return t==null?null:mre(t)}resetBaseElement(){yy=null}getUserAgent(){return window.navigator.userAgent}getCookie(e){return nre(document.cookie,e)}},yy=null;function pre(){return yy||=document.head.querySelector(`base`),yy?yy.getAttribute(`href`):null}function mre(e){return new URL(e,document.baseURI).pathname}var by=[`alt`,`control`,`meta`,`shift`],hre={"\b":`Backspace`," ":`Tab`,"":`Delete`,"\x1B":`Escape`,Del:`Delete`,Esc:`Escape`,Left:`ArrowLeft`,Right:`ArrowRight`,Up:`ArrowUp`,Down:`ArrowDown`,Menu:`ContextMenu`,Scroll:`ScrollLock`,Win:`OS`},gre={alt:e=>e.altKey,control:e=>e.ctrlKey,meta:e=>e.metaKey,shift:e=>e.shiftKey},_re=(()=>{class e extends ey{constructor(e){super(e)}supports(t){return e.parseEventName(t)!=null}addEventListener(t,n,r,i){let a=e.parseEventName(n),o=e.eventCallback(a.fullKey,r,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>wv().onAndCancel(t,a.domEventName,o,i))}static parseEventName(t){let n=t.toLowerCase().split(`.`),r=n.shift();if(n.length===0||r!==`keydown`&&r!==`keyup`)return null;let i=e._normalizeKey(n.pop()),a=``,o=n.indexOf(`code`);if(o>-1&&(n.splice(o,1),a=`code.`),by.forEach(e=>{let t=n.indexOf(e);t>-1&&(n.splice(t,1),a+=e+`.`)}),a+=i,n.length!=0||i.length===0)return null;let s={};return s.domEventName=r,s.fullKey=a,s}static matchEventFullKeyCode(e,t){let n=hre[e.key]||e.key,r=``;return t.indexOf(`code.`)>-1&&(n=e.code,r=`code.`),n==null||!n?!1:(n=n.toLowerCase(),n===` `?n=`space`:n===`.`&&(n=`dot`),by.forEach(t=>{if(t!==n){let n=gre[t];n(e)&&(r+=t+`.`)}}),r+=n,r===t)}static eventCallback(t,n,r){return i=>{e.matchEventFullKeyCode(i,t)&&r.runGuarded(()=>n(i))}}static _normalizeKey(e){return e===`esc`?`escape`:e}static ɵfac=function(t){return new(t||e)(na(xs))};static ɵprov=bi({token:e,factory:e.ɵfac})}return e})();async function vre(e,t,n){return Tne({rootComponent:e,...yre(t,n)})}function yre(e,t){return{platformRef:t?.platformRef,appProviders:[...wre,...e?.providers??[]],platformProviders:Cre}}function bre(){fre.makeCurrent()}function xre(){return new Ks}function Sre(){return Yl(document),document}var Cre=[{provide:$s,useValue:rre},{provide:Qs,useValue:bre,multi:!0},{provide:xs,useFactory:Sre}],wre=[{provide:Ia,useValue:`root`},{provide:Ks,useFactory:xre},{provide:ny,useClass:ty,multi:!0},{provide:ny,useClass:_re,multi:!0},py,{provide:Bp,useClass:cy},{provide:cy,useExisting:Bp},ry,{provide:op,useExisting:py},[]];function xy(e,t){let n=`\x1B[${e}m`,r=`\x1B[${t}m`;return((e,...t)=>{if(Array.isArray(e)&&`raw`in e){let i=e,a=``;for(let e=0;e{let r=new Dre({code:i,why:Sy(a.why,e),fix:Sy(a.fix,e),docs:o,cause:e.cause,sources:e.sources,data:Sy(a.data,e)},s);for(let e of t)e(r,n);return r};n[i]=s}return n}function Are(e){return t=>{let n=`${e.bold(e.red(`[${t.name}]`))} ${t.message}`,r=[];return t.fix&&r.push(`${e.dim(`fix:`)} ${t.fix}`),t.sources?.length&&r.push(`${e.dim(`sources:`)} ${t.sources.join(`, `)}`),t.docs&&r.push(`${e.dim(`see:`)} ${e.cyan(t.docs)}`),r.length===0?n:[n,...r.map((t,n)=>`${e.dim(n{e=n,t=r}),resolve:e,reject:t}}var Fre=Math.random.bind(Math),Ire=`useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict`;function Lre(e=21){let t=``,n=e;for(;n--;)t+=Ire[Fre()*64|0];return t}var Rre=6e4,wy=e=>e,zre=wy,{clearTimeout:Ty,setTimeout:Bre}=globalThis;function Vre(e,t){let{post:n,on:r,off:i=()=>{},eventNames:a=[],serialize:o=wy,deserialize:s=zre,resolver:c,bind:l=`rpc`,timeout:u=Rre,proxify:d=!0}=t,f=!1,p=new Map,m,ee;async function h(e,r,i,a){if(f)throw Error(`[birpc] rpc is closed, cannot call "${e}"`);let s={m:e,a:r,t:`q`};a&&(s.o=!0);let c=async e=>n(o(e));if(i){await c(s);return}if(m)try{await m}finally{m=void 0}let{promise:l,resolve:d,reject:h}=Pre(),g=Lre();s.i=g;let te;async function ne(n=s){return u>=0&&(te=Bre(()=>{try{if(t.onTimeoutError?.call(ee,e,r)!==!0)throw Error(`[birpc] timeout on calling "${e}"`)}catch(e){h(e)}p.delete(g)},u),typeof te==`object`&&(te=te.unref?.())),p.set(g,{resolve:d,reject:h,timeoutId:te,method:e}),await c(n),l}try{t.onRequest?await t.onRequest.call(ee,s,ne,d):await ne()}catch(e){if(t.onGeneralError?.call(ee,e)!==!0)throw e;return}finally{Ty(te),p.delete(g)}return l}let g={$call:(e,...t)=>h(e,t,!1),$callOptional:(e,...t)=>h(e,t,!1,!0),$callEvent:(e,...t)=>h(e,t,!0),$callRaw:e=>h(e.method,e.args,e.event,e.optional),$rejectPendingCalls:ne,get $closed(){return f},get $meta(){return t.meta},$close:te,$functions:e};ee=d?new Proxy({},{get(t,n){if(Object.hasOwn(g,n))return g[n];if(n===`then`&&!a.includes(`then`)&&!(`then`in e))return;let r=(...e)=>h(n,e,!0);if(a.includes(n))return r.asEvent=r,r;let i=(...e)=>h(n,e,!1);return i.asEvent=r,i}}):g;function te(e){f=!0,p.forEach(({reject:t,method:n})=>{let r=Error(`[birpc] rpc is closed, cannot call "${n}"`);if(e)return e.cause??=r,t(e);t(r)}),p.clear(),i(re)}function ne(e){let t=Array.from(p.values()).map(({method:t,reject:n})=>e?e({method:t,reject:n}):n(Error(`[birpc]: rejected pending call "${t}".`)));return p.clear(),t}async function re(r,...i){let a;try{a=s(r)}catch(e){if(t.onGeneralError?.call(ee,e)!==!0)throw e;return}if(a.t===`q`){let{m:r,a:s,o:u}=a,d,f,p=await(c?c.call(ee,r,e[r]):e[r]);if(u&&(p||=()=>void 0),!p)f=Error(`[birpc] function "${r}" not found`);else try{d=await p.apply(l===`rpc`?ee:e,s)}catch(e){f=e}if(a.i){if(f&&t.onFunctionError&&t.onFunctionError.call(ee,f,r,s)===!0)return;if(!f)try{await n(o({t:`s`,i:a.i,r:d}),...i);return}catch(e){if(f=e,t.onGeneralError?.call(ee,e,r,s)!==!0)throw e}try{await n(o({t:`s`,i:a.i,e:f}),...i)}catch(e){if(t.onGeneralError?.call(ee,e,r,s)!==!0)throw e}}}else{let{i:e,r:t,e:n}=a,r=p.get(e);r&&(Ty(r.timeoutId),n?r.reject(n):r.resolve(t)),p.delete(e)}}return m=r(re),ee}function Ey(e,t){return t.safety?t.safety:e===`static`||e===`query`||e==null?`read`:`action`}var Dy=Object.freeze({type:`object`,additionalProperties:!0});function Oy(e){let t=e[`~standard`];if(t.jsonSchema)try{return t.jsonSchema.input({target:`draft-2020-12`})}catch{return Dy}return Dy}function ky(e){if(!e||e.length===0)return{type:`object`,properties:{}};let t={},n=[];for(let r=0;rn[`arg${t}`]);if(`arg0`in n){let e=[];for(;`arg${e.length}`in n;)e.push(n[`arg${e.length}`]);return e}return Object.keys(n).length===0?[]:void 0}function jy(e,t){return Ay(e,t)??[e]}function My(e){return typeof e==`string`?`'${e}'`:new Iy().serialize(e)}var Ny=` _-,;:!?.'"()[]{}@*/\\%\`^+<=>|~$0123456789abcdefghijklmnopqrstuvwxyz`,Py=(function(){let e=new Uint8Array(128);for(let t=0;t<69;t++)e[Ny.charCodeAt(t)]=t+1;for(let t=65;t<=90;t++)e[t]=e[t+32];return e})();function Fy(e,t){if(e===t)return 0;let n=Math.min(e.length,t.length),r=0;for(let i=0;ia?-1:1)}return e.length===t.length?r:e.lengththis.compare(e[0],t[0])),r=`${e}{`;for(let e=0;ethis.compare(e,t)))}`}$Map(e){return this.serializeObjectEntries(`Map`,e.entries())}}for(let t of[`Error`,`RegExp`,`URL`])e.prototype[`$`+t]=function(e){return`${t}(${e})`};for(let t of[`Int8Array`,`Uint8Array`,`Uint8ClampedArray`,`Int16Array`,`Uint16Array`,`Int32Array`,`Uint32Array`,`Float32Array`,`Float64Array`])e.prototype[`$`+t]=function(e){return`${t}[${e.join(`,`)}]`};for(let t of[`BigInt64Array`,`BigUint64Array`])e.prototype[`$`+t]=function(e){return`${t}[${e.join(`n,`)}${e.length>0?`n`:``}]`};return e})(),Ly=[1779033703,-1150833019,1013904242,-1521486534,1359893119,-1694144372,528734635,1541459225],Ry=[1116352408,1899447441,-1245643825,-373957723,961987163,1508970993,-1841331548,-1424204075,-670586216,310598401,607225278,1426881987,1925078388,-2132889090,-1680079193,-1046744716,-459576895,-272742522,264347078,604807628,770255983,1249150122,1555081692,1996064986,-1740746414,-1473132947,-1341970488,-1084653625,-958395405,-710438585,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,-2117940946,-1838011259,-1564481375,-1474664885,-1035236496,-949202525,-778901479,-694614492,-200395387,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,-2067236844,-1933114872,-1866530822,-1538233109,-1090935817,-965641998],zy=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_`,By=[],Vy=class{_data=new Hy;_hash=new Hy([...Ly]);_nDataBytes=0;_minBufferSize=0;finalize(e){e&&this._append(e);let t=this._nDataBytes*8,n=this._data.sigBytes*8;return this._data.words[n>>>5]|=128<<24-n%32,this._data.words[(n+64>>>9<<4)+14]=Math.floor(t/4294967296),this._data.words[(n+64>>>9<<4)+15]=t,this._data.sigBytes=this._data.words.length*4,this._process(),this._hash}_doProcessBlock(e,t){let n=this._hash.words,r=n[0],i=n[1],a=n[2],o=n[3],s=n[4],c=n[5],l=n[6],u=n[7];for(let n=0;n<64;n++){if(n<16)By[n]=e[t+n]|0;else{let e=By[n-15],t=(e<<25|e>>>7)^(e<<14|e>>>18)^e>>>3,r=By[n-2],i=(r<<15|r>>>17)^(r<<13|r>>>19)^r>>>10;By[n]=t+By[n-7]+i+By[n-16]}let d=s&c^~s&l,f=r&i^r&a^i&a,p=(r<<30|r>>>2)^(r<<19|r>>>13)^(r<<10|r>>>22),m=(s<<26|s>>>6)^(s<<21|s>>>11)^(s<<7|s>>>25),ee=u+m+d+Ry[n]+By[n],h=p+f;u=l,l=c,c=s,s=o+ee|0,o=a,a=i,i=r,r=ee+h|0}n[0]=n[0]+r|0,n[1]=n[1]+i|0,n[2]=n[2]+a|0,n[3]=n[3]+o|0,n[4]=n[4]+s|0,n[5]=n[5]+c|0,n[6]=n[6]+l|0,n[7]=n[7]+u|0}_append(e){typeof e==`string`&&(e=Hy.fromUtf8(e)),this._data.concat(e),this._nDataBytes+=e.sigBytes}_process(e){let t,n=this._data.sigBytes/64;n=e?Math.ceil(n):Math.max((n|0)-this._minBufferSize,0);let r=n*16,i=Math.min(r*4,this._data.sigBytes);if(r){for(let e=0;e>>2]|=(n.charCodeAt(e)&255)<<24-e%4*8;return new e(i,r)}toBase64(){let e=[];for(let t=0;t>>2]>>>24-t%4*8&255,r=this.words[t+1>>>2]>>>24-(t+1)%4*8&255,i=this.words[t+2>>>2]>>>24-(t+2)%4*8&255,a=n<<16|r<<8|i;for(let n=0;n<4&&t*8+n*6>>6*(3-n)&63))}return e.join(``)}concat(e){if(this.words[this.sigBytes>>>2]&=4294967295<<32-this.sigBytes%4*8,this.words.length=Math.ceil(this.sigBytes/4),this.sigBytes%4)for(let t=0;t>>2]>>>24-t%4*8&255;this.words[this.sigBytes+t>>>2]|=n<<24-(this.sigBytes+t)%4*8}else for(let t=0;t>>2]=e.words[t>>>2];this.sigBytes+=e.sigBytes}};function Uy(e){return new Vy().finalize(e).toBase64()}function Wy(e){return Uy(My(e))}function Gy(e){return Wy(e)}function Ky(){let e={};function t(t,...n){let r=e[t]||[];for(let e=0,t=r.length;e{e[t]=e[t]?.filter(e=>n!==e)}}function i(e,t){let n=r(e,((...e)=>(n(),t(...e))));return n}return{_listeners:e,emit:t,emitOnce:n,on:r,once:i}}var qy=/^[\w+.-]{2,}:\/\//;function Jy(e){return e.endsWith(`/`)?e:`${e}/`}function Yy(e){return(e.endsWith(`/`)?e.slice(0,-1):e)||`/`}function Xy(e,...t){let n=e;for(let e of t)e&&e!==`/`&&(n=n?Jy(n)+e.replace(/^\.?\//,``):e);return n}function Zy(e,t){if(!t||t===`/`||qy.test(e))return e;let n=Yy(t);return e.startsWith(n)?e:Xy(n,e)}function Qy(e,t){let n=e.match(qy);return t+(n?e.slice(n[0].length):e)}var $y=`useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict`;function eb(e=21){let t=``,n=e;for(;n--;)t+=$y[Math.random()*64|0];return t}var tb=Symbol.for(`immer-nothing`),nb=Symbol.for(`immer-draftable`),rb=Symbol.for(`immer-state`),ib=[function(e){return`The plugin for '${e}' has not been loaded into Immer. To enable the plugin, import and call \`enable${e}()\` when initializing your application.`},function(e){return`produce can only be called on things that are draftable: plain objects, arrays, Map, Set or classes that are marked with '[immerable]: true'. Got '${e}'`},`This object has been frozen and should not be mutated`,function(e){return`Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? `+e},`An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.`,`Immer forbids circular references`,"The first or second argument to `produce` must be a function","The third argument to `produce` must be a function or undefined","First argument to `createDraft` must be a plain object, an array, or an immerable object","First argument to `finishDraft` must be a draft returned by `createDraft`",function(e){return`'current' expects a draft, got: ${e}`},`Object.defineProperty() cannot be used on an Immer draft`,`Object.setPrototypeOf() cannot be used on an Immer draft`,`Immer only supports deleting array indices`,`Immer only supports setting array indices and the 'length' property`,function(e){return`'original' expects a draft, got: ${e}`}];function ab(e,...t){{let n=ib[e],r=kb(n)?n.apply(null,t):n;throw Error(`[Immer] ${r}`)}}var ob=Object,sb=ob.getPrototypeOf,cb=`constructor`,lb=`prototype`,ub=`configurable`,db=`enumerable`,fb=`writable`,pb=`value`,mb=e=>!!e&&!!e[rb];function hb(e){return e?vb(e)||Tb(e)||!!e[nb]||!!e[cb]?.[nb]||Eb(e)||Db(e):!1}var gb=ob[lb][cb].toString(),_b=new WeakMap;function vb(e){if(!e||!Ob(e))return!1;let t=sb(e);if(t===null||t===ob[lb])return!0;let n=ob.hasOwnProperty.call(t,cb)&&t[cb];if(n===Object)return!0;if(!kb(n))return!1;let r=_b.get(n);return r===void 0&&(r=Function.toString.call(n),_b.set(n,r)),r===gb}function yb(e,t,n=!0){bb(e)===0?(n?Reflect.ownKeys(e):ob.keys(e)).forEach(n=>{t(n,e[n],e)}):e.forEach((n,r)=>t(r,n,e))}function bb(e){let t=e[rb];return t?t.type_:Tb(e)?1:Eb(e)?2:Db(e)?3:0}var xb=(e,t,n=bb(e))=>n===2?e.has(t):ob[lb].hasOwnProperty.call(e,t),Sb=(e,t,n=bb(e))=>n===2?e.get(t):e[t],Cb=(e,t,n,r=bb(e))=>{r===2?e.set(t,n):r===3?e.add(n):e[t]=n};function wb(e,t){return e===t?e!==0||1/e==1/t:e!==e&&t!==t}var Tb=Array.isArray,Eb=e=>e instanceof Map,Db=e=>e instanceof Set,Ob=e=>typeof e==`object`,kb=e=>typeof e==`function`,Ab=e=>typeof e==`boolean`;function jb(e){let t=+e;return Number.isInteger(t)&&String(t)===e}var Mb=e=>Ob(e)?e?.[rb]:null,Nb=e=>e.copy_||e.base_,Pb=e=>e.modified_?e.copy_:e.base_;function Fb(e,t){if(Eb(e))return new Map(e);if(Db(e))return new Set(e);if(Tb(e))return Array[lb].slice.call(e);let n=vb(e);if(t===!0||t===`class_only`&&!n){let t=ob.getOwnPropertyDescriptors(e);delete t[rb];let n=Reflect.ownKeys(t);for(let r=0;r1&&ob.defineProperties(e,{set:Rb,add:Rb,clear:Rb,delete:Rb}),ob.freeze(e),t&&yb(e,(e,t)=>{Ib(t,!0)},!1),e)}function Lb(){ab(2)}var Rb={[pb]:Lb};function zb(e){return e===null||!Ob(e)||ob.isFrozen(e)}var Bb=`MapSet`,Vb=`Patches`,Hb=`ArrayMethods`,Ub={};function Wb(e){let t=Ub[e];return t||ab(0,e),t}var Gb=e=>!!Ub[e];function Kb(e,t){Ub[e]||(Ub[e]=t)}var qb,Jb=()=>qb,Yb=(e,t)=>({drafts_:[],parent_:e,immer_:t,canAutoFreeze_:!0,unfinalizedDrafts_:0,handledSet_:new Set,processedForPatches_:new Set,mapSetPlugin_:Gb(Bb)?Wb(Bb):void 0,arrayMethodsPlugin_:Gb(Hb)?Wb(Hb):void 0});function Xb(e,t){t&&(e.patchPlugin_=Wb(Vb),e.patches_=[],e.inversePatches_=[],e.patchListener_=t)}function Zb(e){Qb(e),e.drafts_.forEach(ex),e.drafts_=null}function Qb(e){e===qb&&(qb=e.parent_)}var $b=e=>qb=Yb(qb,e);function ex(e){let t=e[rb];t.type_===0||t.type_===1?t.revoke_():t.revoked_=!0}function tx(e,t){t.unfinalizedDrafts_=t.drafts_.length;let n=t.drafts_[0];if(e!==void 0&&e!==n){n[rb].modified_&&(Zb(t),ab(4)),hb(e)&&(e=nx(t,e));let{patchPlugin_:r}=t;r&&r.generateReplacementPatches_(n[rb].base_,e,t)}else e=nx(t,n);return rx(t,e,!0),Zb(t),t.patches_&&t.patchListener_(t.patches_,t.inversePatches_),e===tb?void 0:e}function nx(e,t){if(zb(t))return t;let n=t[rb];if(!n)return dx(t,e.handledSet_,e);if(!ax(n,e))return t;if(!n.modified_)return n.base_;if(!n.finalized_){let{callbacks_:t}=n;if(t)for(;t.length>0;)t.pop()(e);lx(n,e)}return n.copy_}function rx(e,t,n=!1){!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&Ib(t,n)}function ix(e){e.finalized_=!0,e.scope_.unfinalizedDrafts_--}var ax=(e,t)=>e.scope_===t,ox=[];function sx(e,t,n,r){let i=Nb(e),a=e.type_;if(r!==void 0&&Sb(i,r,a)===t){Cb(i,r,n,a);return}if(!e.draftLocations_){let t=e.draftLocations_=new Map;yb(i,(e,n)=>{if(mb(n)){let r=t.get(n)||[];r.push(e),t.set(n,r)}})}let o=e.draftLocations_.get(t)??ox;for(let e of o)Cb(i,e,n,a)}function cx(e,t,n){e.callbacks_.push(function(r){let i=t;if(!i||!ax(i,r))return;r.mapSetPlugin_?.fixSetContents(i);let a=Pb(i);sx(e,i.draft_??i,a,n),lx(i,r)})}function lx(e,t){if(e.modified_&&!e.finalized_&&(e.type_===3||e.type_===1&&e.allIndicesReassigned_||(e.assigned_?.size??0)>0)){let{patchPlugin_:n}=t;if(n){let r=n.getPath(e);r&&n.generatePatches_(e,r,t)}ix(e)}}function ux(e,t,n){let{scope_:r}=e;if(mb(n)){let i=n[rb];ax(i,r)&&i.callbacks_.push(function(){bx(e),sx(e,n,Pb(i),t)})}else hb(n)&&e.callbacks_.push(function(){let i=Nb(e);e.type_===3?i.has(n)&&dx(n,r.handledSet_,r):Sb(i,t,e.type_)===n&&r.drafts_.length>1&&(e.assigned_.get(t)??!1)===!0&&e.copy_&&dx(Sb(e.copy_,t,e.type_),r.handledSet_,r)})}function dx(e,t,n){return!n.immer_.autoFreeze_&&n.unfinalizedDrafts_<1||mb(e)||t.has(e)||!hb(e)||zb(e)?e:(t.add(e),yb(e,(r,i)=>{if(mb(i)){let t=i[rb];ax(t,n)&&(Cb(e,r,Pb(t),e.type_),ix(t))}else hb(i)&&dx(i,t,n)}),e)}function fx(e,t){let n=Tb(e),r={type_:+!!n,scope_:t?t.scope_:Jb(),modified_:!1,finalized_:!1,assigned_:void 0,parent_:t,base_:e,draft_:null,copy_:null,revoke_:null,isManual_:!1,callbacks_:void 0},i=r,a=px;n&&(i=[r],a=mx);let{revoke:o,proxy:s}=Proxy.revocable(i,a);return r.draft_=s,r.revoke_=o,[s,r]}var px={get(e,t){if(t===rb)return e;let n=e.scope_.arrayMethodsPlugin_,r=e.type_===1&&typeof t==`string`;if(r&&n?.isArrayOperationMethod(t))return n.createMethodInterceptor(e,t);let i=Nb(e);if(!xb(i,t,e.type_))return _x(e,i,t);let a=i[t];if(e.finalized_||!hb(a)||r&&e.operationMethod&&n?.isMutatingArrayMethod(e.operationMethod)&&jb(t))return a;if(a===hx(e.base_,t)||gx(e,t,a)){bx(e);let n=e.type_===1?+t:t,r=Sx(e.scope_,a,e,n);return e.copy_[n]=r}return a},has(e,t){return t in Nb(e)},ownKeys(e){return Reflect.ownKeys(Nb(e))},set(e,t,n){let r=vx(Nb(e),t);if(r?.set)return r.set.call(e.draft_,n),!0;if(!e.modified_){let r=hx(Nb(e),t),i=r?.[rb];if(i&&i.base_===n)return e.copy_[t]=n,e.assigned_.delete(t),!0;if(wb(n,r)&&(n!==void 0||xb(e.base_,t,e.type_)))return!0;bx(e),yx(e)}return e.copy_[t]===n&&(n!==void 0||xb(e.copy_,t,e.type_))||Number.isNaN(n)&&Number.isNaN(e.copy_[t])?!0:(e.copy_[t]=n,e.assigned_.set(t,!0),ux(e,t,n),!0)},deleteProperty(e,t){return bx(e),hx(e.base_,t)!==void 0||t in e.base_?(e.assigned_.set(t,!1),yx(e)):e.assigned_.delete(t),e.copy_&&delete e.copy_[t],!0},getOwnPropertyDescriptor(e,t){let n=Nb(e),r=Reflect.getOwnPropertyDescriptor(n,t);return r&&{[fb]:!0,[ub]:e.type_!==1||t!==`length`,[db]:r[db],[pb]:n[t]}},defineProperty(){ab(11)},getPrototypeOf(e){return sb(e.base_)},setPrototypeOf(){ab(12)}},mx={};for(let e in px){let t=px[e];mx[e]=function(){let e=arguments;return e[0]=e[0][0],t.apply(this,e)}}mx.deleteProperty=function(e,t){return isNaN(parseInt(t))&&ab(13),mx.set.call(this,e,t,void 0)},mx.set=function(e,t,n){return t!==`length`&&isNaN(parseInt(t))&&ab(14),px.set.call(this,e[0],t,n,e[0])};function hx(e,t){let n=e[rb];return(n?Nb(n):e)[t]}function gx(e,t,n){return e.type_!==1||!e.allIndicesReassigned_||e.assigned_?.get(t)||!hb(n)||n[rb]?!1:e.baseRefs_.has(n)}function _x(e,t,n){let r=vx(t,n);return r?pb in r?r[pb]:r.get?.call(e.draft_):void 0}function vx(e,t){if(!(t in e))return;let n=sb(e);for(;n;){let e=Object.getOwnPropertyDescriptor(n,t);if(e)return e;n=sb(n)}}function yx(e){e.modified_||(e.modified_=!0,e.parent_&&yx(e.parent_))}function bx(e){e.copy_||=(e.assigned_=new Map,Fb(e.base_,e.scope_.immer_.useStrictShallowCopy_))}var xx=class{constructor(e){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.useStrictIteration_=!1,this.produce=(e,t,n)=>{if(kb(e)&&!kb(t)){let n=t;t=e;let r=this;return function(e=n,...i){return r.produce(e,e=>t.call(this,e,...i))}}kb(t)||ab(6),n!==void 0&&!kb(n)&&ab(7);let r;if(hb(e)){let i=$b(this),a=Sx(i,e,void 0),o=!0;try{r=t(a),o=!1}finally{o?Zb(i):Qb(i)}return Xb(i,n),tx(r,i)}if(!e||!Ob(e)){if(r=t(e),r===void 0&&(r=e),r===tb&&(r=void 0),this.autoFreeze_&&Ib(r,!0),n){let t=[],i=[];Wb(Vb).generateReplacementPatches_(e,r,{patches_:t,inversePatches_:i}),n(t,i)}return r}ab(1,e)},this.produceWithPatches=(e,t)=>{if(kb(e))return(t,...n)=>this.produceWithPatches(t,t=>e(t,...n));let n,r;return[this.produce(e,t,(e,t)=>{n=e,r=t}),n,r]},Ab(e?.autoFreeze)&&this.setAutoFreeze(e.autoFreeze),Ab(e?.useStrictShallowCopy)&&this.setUseStrictShallowCopy(e.useStrictShallowCopy),Ab(e?.useStrictIteration)&&this.setUseStrictIteration(e.useStrictIteration)}createDraft(e){hb(e)||ab(8),mb(e)&&(e=Cx(e));let t=$b(this),n=Sx(t,e,void 0);return n[rb].isManual_=!0,Qb(t),n}finishDraft(e,t){let n=e&&e[rb];(!n||!n.isManual_)&&ab(9);let{scope_:r}=n;return Xb(r,t),tx(void 0,r)}setAutoFreeze(e){this.autoFreeze_=e}setUseStrictShallowCopy(e){this.useStrictShallowCopy_=e}setUseStrictIteration(e){this.useStrictIteration_=e}shouldUseStrictIteration(){return this.useStrictIteration_}applyPatches(e,t){let n;for(n=t.length-1;n>=0;n--){let r=t[n];if(r.path.length===0&&r.op===`replace`){e=r.value;break}}n>-1&&(t=t.slice(n+1));let r=Wb(Vb).applyPatches_;return mb(e)?r(e,t):this.produce(e,e=>r(e,t))}};function Sx(e,t,n,r){let[i,a]=Eb(t)?Wb(Bb).proxyMap_(t,n):Db(t)?Wb(Bb).proxySet_(t,n):fx(t,n);return(n?.scope_??Jb()).drafts_.push(i),a.callbacks_=n?.callbacks_??[],a.key_=r,n&&r!==void 0?cx(n,a,r):a.callbacks_.push(function(e){e.mapSetPlugin_?.fixSetContents(a);let{patchPlugin_:t}=e;a.modified_&&t&&t.generatePatches_(a,[],e)}),i}function Cx(e){return mb(e)||ab(10,e),wx(e)}function wx(e){if(!hb(e)||zb(e))return e;let t=e[rb],n,r=!0;if(t){if(!t.modified_)return t.base_;t.finalized_=!0,n=Fb(e,t.scope_.immer_.useStrictShallowCopy_),r=t.scope_.immer_.shouldUseStrictIteration()}else n=Fb(e,!0);let i=n;return Db(n)&&(n=new Set),yb(i,(e,t)=>{Cb(n,e,wx(t))},r),t&&(t.finalized_=!1),n}function Tx(){ib.push(`Sets cannot have "replace" patches.`,function(e){return`Unsupported patch operation: `+e},function(e){return`Cannot apply patch, path doesn't resolve: `+e},`Patching reserved attributes like __proto__, prototype and constructor is not allowed`);function e(n,r=[]){if(n.key_!==void 0){let e=n.parent_.copy_??n.parent_.base_,t=Mb(Sb(e,n.key_)),i=Sb(e,n.key_);if(i===void 0||i!==n.draft_&&i!==n.base_&&i!==n.copy_||t!=null&&t.base_!==n.base_)return null;let a=n.parent_.type_===3,o;if(a){let e=n.parent_;o=Array.from(e.drafts_.keys()).indexOf(n.key_)}else o=n.key_;if(!(a&&e.size>o||xb(e,o))||n.parent_.type_===1&&n.parent_.allIndicesReassigned_)return null;r.push(o)}if(n.parent_)return e(n.parent_,r);r.reverse();try{t(n.copy_,r)}catch{return null}return r}function t(e,t){let n=e;for(let e=0;e{let u=Sb(o,e,c),f=Sb(s,e,c),p=l?xb(o,e)?n:`add`:r;if(u===f&&p===n)return;let m=t.concat(e);i.push(p===r?{op:p,path:m}:{op:p,path:m,value:d(f)}),a.push(p===`add`?{op:r,path:m}:p===r?{op:`add`,path:m,value:d(u)}:{op:n,path:m,value:d(u)})})}function s(e,t,n,i){let{base_:a,copy_:o}=e,s=0;a.forEach(e=>{if(!o.has(e)){let a=t.concat([s]);n.push({op:r,path:a,value:e}),i.unshift({op:`add`,path:a,value:e})}s++}),s=0,o.forEach(e=>{if(!a.has(e)){let a=t.concat([s]);n.push({op:`add`,path:a,value:e}),i.unshift({op:r,path:a,value:e})}s++})}function c(e,t,r){let{patches_:i,inversePatches_:a}=r;i.push({op:n,path:[],value:t===tb?void 0:t}),a.push({op:n,path:[],value:e})}function l(e,t){return t.forEach(t=>{let{path:i,op:a}=t,o=e;for(let e=0;e[e,u(t)]));if(Db(e))return new Set(Array.from(e).map(u));let t=Object.create(sb(e));for(let n in e)t[n]=u(e[n]);return xb(e,nb)&&(t[nb]=e[nb]),t}function d(e){return mb(e)?u(e):e}Kb(Vb,{applyPatches_:l,generatePatches_:i,generateReplacementPatches_:c,getPath:e})}globalThis.Iterator?.from;var Ex=new xx,Dx=Ex.produce,Ox=Ex.produceWithPatches.bind(Ex),kx=Ex.applyPatches.bind(Ex),Ax=1e3;function jx(e,t){if(e.add(t),e.size>Ax){let t=e.values().next().value;t!==void 0&&e.delete(t)}}function Mx(e){let{enablePatches:t=!1}=e;t&&Tx();let n=Ky(),r=e.initialValue,i=new Set;return{on:n.on,value:()=>r,patch:(e,t=eb())=>{i.has(t)||(Tx(),r=kx(r,e),jx(i,t),n.emit(`updated`,r,void 0,t))},mutate:(e,a=eb())=>{if(!i.has(a)){if(jx(i,a),t){let[t,i]=Ox(r,e);if(t===r)return;r=t,n.emit(`updated`,r,i,a)}else{let t=Dx(r,e);if(t===r)return;r=t,n.emit(`updated`,r,void 0,a)}}},syncIds:i}}var Nx=typeof self==`object`?self:globalThis,Px=new Set([`Error`,`EvalError`,`RangeError`,`ReferenceError`,`SyntaxError`,`TypeError`,`URIError`,`AggregateError`]),Fx=new Set([`Boolean`,`Number`,`String`,`Int8Array`,`Uint8Array`,`Uint8ClampedArray`,`Int16Array`,`Uint16Array`,`Int32Array`,`Uint32Array`,`Float16Array`,`Float32Array`,`Float64Array`,`BigInt64Array`,`BigUint64Array`]);function Ix(e,t){let n=(t,n)=>(e.set(n,t),t),r=i=>{if(e.has(i))return e.get(i);let[a,o]=t[i];switch(a){case 0:case-1:return n(o,i);case 1:{let e=n([],i);for(let t of o)e.push(r(t));return e}case 2:{let e=n({},i);for(let[t,n]of o)e[r(t)]=r(n);return e}case 3:return n(new Date(o),i);case 4:{let{source:e,flags:t}=o;return n(new RegExp(e,t),i)}case 5:{let e=n(new Map,i);for(let[t,n]of o)e.set(r(t),r(n));return e}case 6:{let e=n(new Set,i);for(let t of o)e.add(r(t));return e}case 7:{let{name:e,message:t}=o,r=Px.has(e)?Nx[e]:void 0;return n(new(r??Nx.Error)(t),i)}case 8:return n(BigInt(o),i);case`BigInt`:return n(Object(BigInt(o)),i);case`ArrayBuffer`:return n(new Uint8Array(o).buffer,o);case`DataView`:{let{buffer:e}=new Uint8Array(o);return n(new DataView(e),o)}}if(typeof a==`string`&&Fx.has(a))return n(new Nx[a](o),i);throw TypeError(`unable to deserialize unsafe or unknown type: ${String(a)}`)};return r}function Lx(e){return Ix(new Map,e)(0)}var Rx=``,{toString:zx}={},{keys:Bx}=Object;function Vx(e){let t=typeof e;if(t!==`object`||!e)return[0,t];let n=zx.call(e).slice(8,-1);switch(n){case`Array`:return[1,Rx];case`Object`:return[2,Rx];case`Date`:return[3,Rx];case`RegExp`:return[4,Rx];case`Map`:return[5,Rx];case`Set`:return[6,Rx];case`DataView`:return[1,n]}return n.includes(`Array`)?[1,n]:n.includes(`Error`)?[7,n]:[2,n]}function Hx([e,t]){return e===0&&(t===`function`||t===`symbol`)}function Ux(e,t,n,r){let i=(e,t)=>{let i=r.push(e)-1;return n.set(t,i),i},a=r=>{if(n.has(r))return n.get(r);let[o,s]=Vx(r);switch(o){case 0:{let t=r;switch(s){case`bigint`:o=8,t=r.toString();break;case`function`:case`symbol`:if(e)throw TypeError(`unable to serialize ${s}`);t=null;break;case`undefined`:return i([-1],r)}return i([o,t],r)}case 1:{if(s){let e=r;return s===`DataView`?e=new Uint8Array(r.buffer):s===`ArrayBuffer`&&(e=new Uint8Array(r)),i([s,[...e]],r)}let e=[],t=i([o,e],r);for(let t of r)e.push(a(t));return t}case 2:{if(s)switch(s){case`BigInt`:return i([s,r.toString()],r);case`Boolean`:case`Number`:case`String`:return i([s,r.valueOf()],r)}if(t&&`toJSON`in r)return a(r.toJSON());let n=[],c=i([o,n],r);for(let t of Bx(r))(e||!Hx(Vx(r[t])))&&n.push([a(t),a(r[t])]);return c}case 3:return i([o,r.toISOString()],r);case 4:{let{source:e,flags:t}=r;return i([o,{source:e,flags:t}],r)}case 5:{let t=[],n=i([o,t],r);for(let[n,i]of r)(e||!(Hx(Vx(n))||Hx(Vx(i))))&&t.push([a(n),a(i)]);return n}case 6:{let t=[],n=i([o,t],r);for(let n of r)(e||!Hx(Vx(n)))&&t.push(a(n));return n}}let{message:c}=r;return i([o,{name:s,message:c}],r)};return a}function Wx(e,t={}){let n=[];return Ux(!(t.json||t.lossy),!!t.json,new Map,n)(e),n}var{parse:Gx,stringify:Kx}=JSON,qx={json:!0,lossy:!0};function Jx(e){return Lx(Gx(e))}function Yx(e){return Kx(Wx(e,qx))}function Xx(e){return Lx(e)}function Zx(e){return Yx(e)}function Qx(e){return Jx(e)}var $x=256,eS=class extends Error{name=`StreamClosedError`};function tS(e={}){let t=e.id??eb(),n=Math.max(0,e.replayWindow??0),r=Ky(),i=new AbortController,a=[],o=!1,s=0;function c(e){if(o)throw new eS(`Cannot write to a closed stream "${t}"`);s+=1,n>0&&(a.push({seq:s,chunk:e}),a.length>n&&(a.length-n===1?a.shift():a.splice(0,a.length-n))),r.emit(`chunk`,s,e)}function l(e){if(o)return;o=!0;let t=rS(e);i.abort(e),r.emit(`end`,t)}function u(){o||(o=!0,i.signal.aborted||i.abort(`stream closed`),r.emit(`end`,void 0))}function d(e){o||i.signal.aborted||i.abort(e??`aborted`)}let f=new WritableStream({write(e){c(e)},close(){u()},abort(e){l(e)}});return{id:t,signal:i.signal,get closed(){return o},get lastSeq(){return s},write:c,error:l,close:u,abort:d,writable:f,events:r,buffer:a}}function nS(e={}){let t=e.id??eb(),n=Math.max(1,e.highWaterMark??$x),r=[],i=0,a=!1,o=!1,s,c,l,u;function d(){if(c){if(r.length>0){let e=r.shift(),t=c;c=void 0,t.resolve({value:e,done:!1});return}if(a){let e=c;if(c=void 0,s){let t=Error(s.message);t.name=s.name,e.reject(t)}else e.resolve({value:void 0,done:!0})}}}function f(){if(l){for(;r.length>0;){let e=r.shift();try{l.enqueue(e)}catch{break}}if(a&&l){try{if(s){let e=Error(s.message);e.name=s.name,l.error(e)}else l.close()}catch{}l=void 0}}}function p(t,s){if(!(a||o)&&!(t<=i)){if(i=t,r.push(s),r.length>n){let t=r.length-n;r.splice(0,t),e.onOverflow?.(t)}d(),u&&f()}}function m(e){a||(a=!0,s=e,d(),u&&f())}function ee(){o||a||(o=!0,e.onCancel?.(),m(void 0))}function h(){return u||(u=new ReadableStream({start(e){l=e,f()},cancel(){ee()}}),u)}return{id:t,get cancelled(){return o},get done(){return a},get lastSeenSeq(){return i},get readable(){return h()},cancel:ee,_push:p,_end:m,[Symbol.asyncIterator](){return{next(){if(r.length>0)return Promise.resolve({value:r.shift(),done:!1});if(a){if(s){let e=Error(s.message);return e.name=s.name,Promise.reject(e)}return Promise.resolve({value:void 0,done:!0})}return new Promise((e,t)=>{c={resolve:e,reject:t}})},return(){return ee(),Promise.resolve({value:void 0,done:!0})}}}}}function rS(e){if(e instanceof Error)return{name:e.name||`Error`,message:e.message};if(typeof e==`string`)return{name:`Error`,message:e};try{return{name:`Error`,message:JSON.stringify(e)}}catch{return{name:`Error`,message:String(e)}}}var iS=128;function aS(e){return e.replace(/[^\w-]+/g,`_`).slice(0,iS)}var oS=`modulepreload`,sS=function(e,t){return new URL(e,t).href},cS={},lS=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?import.meta.resolve(e):new URL(e,import.meta.url).href}r=o(t.map(t=>{if(t=sS(t,n),t=s(t),t in cS)return;cS[t]=!0;let r=t.endsWith(`.css`);for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}let i=document.createElement(`link`);if(i.rel=r?`stylesheet`:oS,r||(i.as=`script`),i.crossOrigin=``,i.href=t,a&&i.setAttribute(`nonce`,a),document.head.appendChild(i),r)return new Promise((e,n)=>{i.addEventListener(`load`,e),i.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}).filter(e=>e!==void 0))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},uS=`__connection.json`,dS=`__DEVFRAME_CONNECTION__`,fS=`x-birpc-session`,pS=`__rpc-dump/index.json`,mS=`devframe:services`,hS=`devframe_otp`,gS=`devframe_auth_token`;Cy.postMessage.remoteAssetsError;var _S=class{cacheMap=new Map;options;keySerializer;constructor(e){this.options=e,this.keySerializer=e.keySerializer||(e=>Gy(e))}updateOptions(e){this.options={...this.options,...e}}cached(e,t){let n=this.cacheMap.get(e);if(n)return n.get(this.keySerializer(t))}has(e,t){return this.cacheMap.get(e)?.has(this.keySerializer(t))??!1}apply(e,t){let n=this.cacheMap.get(e.m)||new Map;n.set(this.keySerializer(e.a),t),this.cacheMap.set(e.m,n)}validate(e){return this.options.functions.includes(e)}clear(e){e?this.cacheMap.delete(e):this.cacheMap.clear()}},vS=Nre({docsBase:`https://devfra.me/errors`,codes:{DF0019:{why:e=>`RPC function "${e.name}" has \`agent\` set but \`jsonSerializable\` is \`false\`; MCP requires JSON-serializable data.`,fix:"Remove `jsonSerializable: false`, or remove `agent` to keep it RPC-only."},DF0020:{why:e=>`RPC function "${e.name}" declares \`jsonSerializable: true\` but the value at "${e.path}" is a ${e.type}.`,fix:"Either drop `jsonSerializable: true` (falls back to structured-clone) or change the value to a JSON-safe shape."},DF0021:{why:e=>`RPC function "${e.name}" is already registered`,fix:"Use the `force` parameter to overwrite an existing registration."},DF0022:{why:e=>`RPC function "${e.name}" is not registered. Use register() to add new functions.`},DF0023:{why:e=>`RPC function "${e.name}" is not registered`},DF0024:{why:e=>`Either handler or setup function must be provided for RPC function "${e.name}"`},DF0025:{why:e=>`Function "${e.name}" not found in dump store`},DF0026:{why:e=>`No dump match for "${e.name}" with args: ${e.args}`},DF0027:{why:e=>`Function "${e.name}" with type "${e.type}" cannot have dump configuration. Only "static" and "query" types support dumps.`},DF0028:{why:e=>`Function "${e.name}" with type "${e.type}" cannot use \`snapshot: true\`. Only "query" functions support this sugar; "static" functions have equivalent default behavior already.`,fix:"Remove `snapshot: true`, or change the function type to `query`."},DF0043:{why:e=>`RPC function "${e.name}" received an invalid argument at position ${e.index}: ${e.issues}`,fix:"Pass a value that satisfies the `args` schema declared for this function."},DF0044:{why:e=>`RPC function "${e.name}" returned a value that failed its \`returns\` schema: ${e.issues}`,fix:"Make the handler return a value that satisfies the `returns` schema, or relax the schema."}}});function yS(e){if(e.agent&&e.jsonSerializable===!1)throw vS.DF0019({name:e.name});e.agent&&!e.jsonSerializable&&(e.jsonSerializable=!0)}async function bS(e,t){let n=e[`~standard`].validate(t);return n instanceof Promise?await n:n}function xS(e){return e.map(e=>{let t=e.path?.map(e=>typeof e==`object`?e.key:e).join(`.`);return t?`${t}: ${e.message}`:e.message}).join(`; `)}async function SS(e,t,n){let r=n.slice();if(!t||t.length===0)return r;for(let r=0;r{n.get(t)===r&&n.delete(t)}),n.set(t,r)),await r}if(!e.__promise){let n=Promise.resolve(e.setup(t));n.catch(()=>{e.__promise===n&&(e.__promise=void 0)}),e.__promise=n}return await e.__promise}async function TS(e,t){let n=e.handler;if(!n){let r=await wS(e,t);if(!r.handler)throw vS.DF0024({name:e.name});n=r.handler}let r=e.args,i=e.returns;if(!r&&!i)return n;let a=n;return async(...t)=>{let n=await SS(e.name,r,t),o=await a(...n);return await CS(e.name,i,o)}}var ES=class{context;definitions=new Map;functions;_onChanged=[];constructor(e){this.context=e;let t=this.definitions,n=this;this.functions=new Proxy({},{get(e,r){let i=t.get(r);if(i)return TS(i,n.context)},has(e,n){return t.has(n)},getOwnPropertyDescriptor(e,n){return{value:t.get(n)?.handler,configurable:!0,enumerable:!0}},ownKeys(){return Array.from(t.keys())}})}register(e,t=!1){if(this.definitions.has(e.name)&&!t)throw vS.DF0021({name:e.name});yS(e),this.definitions.set(e.name,e),this._onChanged.forEach(t=>t(e.name))}update(e,t=!1){if(!this.definitions.has(e.name)&&!t)throw vS.DF0022({name:e.name});yS(e),this.definitions.set(e.name,e),this._onChanged.forEach(t=>t(e.name))}onChanged(e){return this._onChanged.push(e),()=>{let t=this._onChanged.indexOf(e);t!==-1&&this._onChanged.splice(t,1)}}async getHandler(e){return await TS(this.definitions.get(e),this.context)}getSchema(e){let t=this.definitions.get(e);if(!t)throw vS.DF0023({name:String(e)});return{args:t.args,returns:t.returns}}has(e){return this.definitions.has(e)}get(e){return this.definitions.get(e)}list(){return Array.from(this.definitions.keys())}};function DS(e,t=``){return JSON.stringify(e,function(e,n){let r=this,i=r==null?n:r[e];if(i===void 0){if(Array.isArray(r))throw kS(t,`undefined`,r,e);return n}return i!==null&&OS(i,r,e,t),n})}function OS(e,t,n,r){if(typeof e==`bigint`)throw kS(r,`BigInt`,t,n);if(typeof e!=`object`)return;if(e instanceof Map)throw kS(r,`Map`,t,n);if(e instanceof Set)throw kS(r,`Set`,t,n);if(e instanceof Date)throw kS(r,`Date`,t,n);if(Array.isArray(e))return;let i=Object.getPrototypeOf(e);if(i!==null&&i!==Object.prototype)throw kS(r,e.constructor?.name??`class instance`,t,n)}function kS(e,t,n,r){let i=AS(n,r);return vS.DF0020({name:e||``,type:t,path:i})}function AS(e,t){return Array.isArray(e)?`[${t}]`:t===``?``:t}var jS=`__DEVFRAME_CONNECTION_META__`,MS=`__DEVFRAME_CONNECTION_AUTH_TOKEN__`;function NS(e){let t=[()=>window?.[e],()=>globalThis?.[e],()=>parent.window?.[e]];for(let e of t)try{let t=e();if(t)return t}catch{}}function PS(){return NS(dS)}function FS(){return NS(jS)}function IS(e){if(e)return e;try{let e=localStorage.getItem(MS);if(e)return e}catch{}return NS(MS)}function LS(e){globalThis[dS]=e,globalThis[jS]={...e.connectionMeta,baseUrl:e.metaBaseUrl},e.authToken&&RS(e.authToken)}function RS(e){try{localStorage.setItem(MS,e)}catch{}globalThis[MS]=e;let t=PS();t&&(globalThis[dS]={...t,authToken:e})}function zS(e){let t=Zy(uS,e);try{return new URL(t,globalThis.location?.href).href}catch{return t}}function BS(e,t){return t&&t!==e.authToken?{...e,authToken:t}:e}function VS(){let e=PS();if(e)return BS(e,IS()??e.authToken??e.connectionMeta.authToken);let t=FS();if(t)return{connectionMeta:t,metaBaseUrl:t.baseUrl??zS(`./`),authToken:IS(t.authToken)}}async function HS(e={}){if(e.connection){let t=BS(e.connection,IS(e.authToken??e.connection.authToken??e.connection.connectionMeta.authToken));return LS(t),t}let t=Array.isArray(e.baseURL)?e.baseURL:[e.baseURL??`./`];if(e.connectionMeta){let n={connectionMeta:e.connectionMeta,metaBaseUrl:zS(t[0]??`./`),authToken:IS(e.authToken??e.connectionMeta.authToken)};return LS(n),n}let n=VS();if(n){let t=BS(n,IS(e.authToken??n.authToken??n.connectionMeta.authToken));return LS(t),t}let r=[];for(let n of t){let t=Zy(uS,n),i=zS(n);try{let n=await fetch(t);if(!n.ok)throw Error(`Failed to fetch connection meta from ${i}: ${n.status}`);let r=await n.json(),a=n.url||i,o={connectionMeta:r,metaBaseUrl:r.baseUrl?new URL(r.baseUrl,a).href:a,authToken:IS(e.authToken??r.authToken)};return LS(o),o}catch(e){r.push(e)}}throw Error(`Failed to get connection meta from ${t.join(`, `)}`,{cause:r})}var US=class extends Error{name=`DevframeConnectionError`;kind;constructor(e,t,n){super(t,n),this.kind=e}};function WS(e=hS){try{let t=globalThis.location?.hash?.replace(/^#/,``)??``;return new URLSearchParams(t).get(e)||void 0}catch{return}}function GS(e){try{let t=new URL(globalThis.location.href),n=new URLSearchParams(t.hash.replace(/^#/,``));if(!n.has(e))return;n.delete(e),t.hash=n.toString(),globalThis.history?.replaceState(globalThis.history.state,``,t.href)}catch{}}function KS(e=hS){let t=WS(e);return t&&GS(e),t}async function qS(e,t={}){let n=KS(t.param??`devframe_otp`);return n?e.isTrusted?!0:e.requestTrustWithCode(n):!1}function JS(e){let t={},n=new WeakMap,r,i=()=>(r??=e.sharedState.get(mS,{initialValue:{}}).then(e=>(t=e.value(),e.on(`updated`,e=>{t=e}),e)),r);return i(),{state:i,has:e=>e in t,keys:()=>Object.keys(t),get:r=>{let i=t[r];if(!i)return;let a=n.get(i);return a||(a={...i,rpc:e.scope(i.scope).rpc},n.set(i,a)),a}}}function YS(e){let t=new Map,n=new Map,r=new Map,i=new Set,a=e.connectionMeta.backend===`static`;function o(e,t){let n=r.get(e);return n&&typeof n==`object`&&!Array.isArray(n)&&typeof t==`object`&&!Array.isArray(t)?{...n,...t}:t}e.client.register({name:Cy.broadcast.clientStateUpdated,type:`event`,handler:(e,n,r)=>{let i=t.get(e);i&&!i.syncIds.has(r)&&i.mutate(()=>o(e,n),r)}}),e.client.register({name:Cy.broadcast.clientStatePatch,type:`event`,handler:(e,n,r)=>{let i=t.get(e);i&&!i.syncIds.has(r)&&i.patch(n,r)}});function s(t,n){let r=[];return r.push(n.on(`updated`,(n,r,i)=>{a||(r?e.callEvent(`devframe:rpc:server-state:patch`,t,r,i):e.callEvent(`devframe:rpc:server-state:set`,t,n,i))})),()=>{for(let e of r)e()}}return{keys:()=>Array.from(t.keys()),onKeyAdded(e){return i.add(e),()=>{i.delete(e)}},delete(e){let i=n.get(e);n.delete(e);let a=t.delete(e);return r.delete(e),i?.(),a},get:async(c,l)=>{if(l?.initialValue!==void 0&&r.set(c,l.initialValue),t.has(c))return t.get(c);let u=Mx({initialValue:l?.initialValue,enablePatches:!1});async function d(){if(a||e.callEvent(`devframe:rpc:server-state:subscribe`,c),l?.initialValue!==void 0){t.set(c,u);for(let e of i)e(c);return e.call(`devframe:rpc:server-state:get`,c).then(e=>{e!==void 0&&u.mutate(()=>o(c,e))}).catch(e=>{console.error(`Error getting server state`,e)}),n.set(c,s(c,u)),u}{let r=await e.call(`devframe:rpc:server-state:get`,c);u.mutate(()=>o(c,r)),t.set(c,u);for(let e of i)e(c);return n.set(c,s(c,u)),u}}return new Promise((t,n)=>{if(e.isTrusted)d().then(t,n);else{t(u);let n=!1;e.events.on(Cy.client.isTrustedUpdated,e=>{e&&!n&&(n=!0,d())})}})}}}var XS=new Map;function ZS(e=XS){let t=new Map;return{serialize:n=>{let r;return n.t===`q`?r=n.m:(r=t.get(n.i),t.delete(n.i)),!(n.t===`s`&&`e`in n)&&r&&e.get(r)?.jsonSerializable===!0?DS(n,r??``):`s:${Zx(n)}`},deserialize:e=>{let n=e.startsWith(`s:`)?Qx(e.slice(2)):JSON.parse(e);return n.t===`q`&&n.i&&n.m&&t.set(n.i,n.m),n}}}function QS(){}function $S(e){let t=e.search(/\n\n|\r\n\r\n/);if(!(t<0))return{frame:e.slice(0,t),rest:e.slice(t+(e[t]===`\r`?4:2))}}function eC(e){let t=`message`,n=[];for(let r of e.split(/\r?\n/))r.startsWith(`:`)||(r.startsWith(`event:`)?t=r.slice(6).trimStart():r.startsWith(`data:`)&&n.push(r.slice(5).replace(/^ /,``)));return{event:t,data:n}}function tC(e){let{onConnected:t=QS,onError:n=QS,onDisconnected:r=QS,definitions:i,fetch:a=globalThis.fetch.bind(globalThis)}=e,o=e.url;e.authToken&&(o=`${o}${o.includes(`?`)?`&`:`?`}${gS}=${encodeURIComponent(e.authToken)}`);let s=ZS(i),c=new AbortController,l=!1,u,d,f,p,m=new Promise((e,t)=>{f=e,p=t});m.catch(()=>{});function ee(e){l||(l=!0,p(e),n(e),r())}function h(){l||(l=!0,p(Error(`Devframe SSE stream closed`)),r())}function g(e,n){if(e===`session`){f(n),t();return}u?.(n)}async function te(e){let t=e.getReader();d=t;let n=new TextDecoder,r=``;for(;;){let{done:e,value:i}=await t.read();if(e)break;for(r+=n.decode(i,{stream:!0});;){let e=$S(r);if(!e)break;r=e.rest;let{event:t,data:n}=eC(e.frame);n.length>0&&g(t,n.join(`
-`))}}h()}return(async()=>{try{let e=await a(o,{headers:{accept:`text/event-stream`},signal:c.signal});if(!e.ok||!e.body)throw Error(`Devframe SSE stream request failed: ${e.status}`);await te(e.body)}catch(e){if(c.signal.aborted){h();return}ee(e instanceof Error?e:Error(String(e)))}})(),{close:()=>{l=!0,c.abort(),d?.cancel().catch(()=>{})},on:e=>{u=e},post:async e=>{let t;try{t=await m}catch{return}if(l){n(Error(`Devframe SSE channel is closed; message dropped`));return}try{let n=await a(o,{method:`POST`,headers:{"content-type":`text/plain; charset=utf-8`,[fS]:t},body:e});if(n.status===200){let e=await n.text();e&&u?.(e);return}if(!n.ok)throw Error(`Devframe SSE POST failed: ${n.status}`)}catch(e){n(e instanceof Error?e:Error(String(e)))}},serialize:s.serialize,deserialize:s.deserialize}}function nC(e,t){let{channel:n,rpcOptions:r={}}=t;return Vre(e,{...n,timeout:-1,...r,proxify:!1})}function rC(e){let{transport:t,authToken:n,connectionMeta:r,events:i,clientRpc:a,rpcOptions:o={},callTimeout:s=0}=e,c=!1,l=`connecting`,u=null,d=Promise.withResolvers();function f(e,t=null){if(t?u=t:e===`connected`&&(u=null),e===l)return;let n=l;l=e,i.emit(Cy.client.connectionStatus,e,n)}let p=new Set;function m(e){for(let t of[...p])t.reject(e)}function ee(){return l===`disconnected`||l===`error`?new US(`connection`,`[devframe] Not connected to the devframe server`,{cause:u??void 0}):l===`unauthorized`?new US(`auth`,`[devframe] Not authorized by the devframe server`,{cause:u??void 0}):null}function h(e,t){return new Promise((n,r)=>{let a=!1,o,c={reject(e){a||(l(),i.emit(Cy.client.error,e,t),r(e))}};function l(){a=!0,p.delete(c),o&&clearTimeout(o)}p.add(c),s>0&&(o=setTimeout(()=>{c.reject(new US(`timeout`,`[devframe] RPC call "${t}" timed out after ${s}ms`))},s)),e.then(e=>{a||(l(),n(e))},e=>{if(a)return;l();let n=e instanceof Error?e:Error(String(e));i.emit(Cy.client.error,n,t),r(n)})})}let g=new Map;for(let e of r.jsonSerializableMethods??[])g.set(e,{jsonSerializable:!0});let te=e.createChannel({definitions:g,onError(e){f(`error`,e),i.emit(Cy.client.connectionError,e),m(new US(`connection`,`[devframe] Connection to the devframe server failed`,{cause:e}))},onDisconnected(){l!==`error`&&f(`disconnected`),m(new US(`connection`,`[devframe] Disconnected from the devframe server`,{cause:u??void 0}))}}),ne=nC(a.functions,{channel:te,rpcOptions:o});a.register({name:Cy.broadcast.authRevoked,type:`event`,handler:()=>{c=!1;let e=new US(`auth`,`[devframe] The devframe server revoked this client's trust`);f(`unauthorized`,e),i.emit(Cy.client.connectionError,e),m(e),i.emit(Cy.client.isTrustedUpdated,!1)}});let re=n;async function ie(e){re=e;let t=await ne.$call(`anonymous:devframe:auth`,{authToken:e,ua:navigator.userAgent,origin:location.origin});if(c=t.isTrusted,c)d.resolve(!0),f(`connected`);else{let e=new US(`auth`,`[devframe] The devframe server refused this client's credentials`);f(`unauthorized`,e),i.emit(Cy.client.connectionError,e)}return i.emit(Cy.client.isTrustedUpdated,c),t.isTrusted}async function ae(e){let t=(await ne.$call(`anonymous:devframe:auth:exchange`,{code:e,ua:navigator.userAgent,origin:location.origin}))?.authToken??null;return t&&(re=t,c=!0,d.resolve(!0),f(`connected`),i.emit(Cy.client.isTrustedUpdated,!0)),t}async function oe(e={}){await ne.$call(`anonymous:devframe:auth:request-code`,{ua:navigator.userAgent,origin:location.origin,...e.reissue?{reissue:!0}:{}})}async function se(){return c?!0:ie(re??``)}async function ce(e=6e4){if(c&&d.resolve(!0),e<=0)return d.promise;let t;try{return await Promise.race([d.promise,new Promise((n,r)=>{t=setTimeout(()=>{r(Error(`[devframe] Timeout waiting for rpc to be trusted`))},e)})]),c}finally{clearTimeout(t)}}return{transport:t,get isTrusted(){return c},get status(){return l},get connectionError(){return u},requestTrust:se,requestTrustWithToken:ie,requestTrustWithCode:ae,requestAuthCode:oe,ensureTrusted:ce,call:(...e)=>{let t=String(e[0]),n=ee();return n?(i.emit(Cy.client.error,n,t),Promise.reject(n)):h(ne.$call(...e),t)},callEvent:(...e)=>{let t=ee();if(t){i.emit(Cy.client.error,t,String(e[0]));return}return ne.$callEvent(...e)},callOptional:(...e)=>{let t=String(e[0]),n=ee();return n?(i.emit(Cy.client.error,n,t),Promise.reject(n)):h(ne.$callOptional(...e),t)},close:()=>{te.close()}}}function iC(e,t,n){let r=(()=>{try{return new URL(t,n.href)}catch{return new URL(n.href)}})();if(e&&typeof e==`object`){if(e.host!=null||e.port!=null){let t=e.host??`${r.hostname}:${e.port}`;return new URL(e.path??`/`,`${r.protocol}//${t}`).href}return new URL(e.path??``,r).href}let i=e??``;return/^https?:\/\//i.test(i)?i:new URL(i,r).href}function aC(e){let{authToken:t,connectionMeta:n,metaBaseUrl:r,events:i,clientRpc:a,rpcOptions:o={},sseOptions:s={},callTimeout:c=0}=e,l=iC(n.sse,r??`./`,location);return rC({transport:`sse`,authToken:t,connectionMeta:n,events:i,clientRpc:a,rpcOptions:o,callTimeout:c,createChannel:e=>tC({url:l,authToken:t,definitions:e.definitions,...s,onConnected(){s.onConnected?.()},onError(t){e.onError(t),s.onError?.(t)},onDisconnected(){e.onDisconnected(),s.onDisconnected?.()}})})}function oC(e){let{name:t,message:n,cause:r,...i}=e,a=r instanceof Error?r:sC(r)?oC(r):r,o=a===void 0?Error(n):Error(n,{cause:a});return o.name=t,Object.assign(o,i),o}function sC(e){return typeof e==`object`&&!!e&&typeof e.message==`string`&&typeof e.name==`string`}function cC(e){return typeof e==`object`&&!!e&&e.type===`static`&&typeof e.path==`string`}function lC(e){return typeof e==`object`&&!!e&&e.type===`query`&&typeof e.records==`object`&&e.records!==null}function uC(e){return typeof e==`object`&&!!e&&(`output`in e||`error`in e)}function dC(e){if(e.error)throw oC(e.error);return e.output}function fC(e){return e.some(e=>e!=null)}function pC(e){return typeof e==`object`&&e&&`serialization`in e&&`data`in e?e.data:e}function mC(e,t){let n=new Map,r=new Map;function i(e,t){return t===`structured-clone`&&Array.isArray(e)?Xx(e):e}function a(e,t){return i(pC(e),t)}async function o(e){n.has(e.path)||n.set(e.path,t(e.path).then(t=>a(t,e.serialization)));let r=await n.get(e.path);return uC(r)?dC(r):r}async function s(e,n){return r.has(e)||r.set(e,t(e).then(e=>a(e,n))),await r.get(e)}async function c(t,n){if(!(t in e))throw Error(`[devframe-rpc] Function "${t}" not found in dump store`);let r=e[t];if(cC(r)){if(fC(n))throw Error(`[devframe-rpc] No dump match for "${t}" with args: ${JSON.stringify(n)}`);return await o(r)}if(lC(r)){let e=Gy(n),i=r.records[e];if(i)return dC(await s(i,r.serialization));if(r.fallback)return dC(await s(r.fallback,r.serialization));throw Error(`[devframe-rpc] No dump match for "${t}" with args: ${JSON.stringify(n)}`)}if(!fC(n))return r;throw Error(`[devframe-rpc] No dump match for "${t}" with args: ${JSON.stringify(n)}`)}return{call:async(e,t)=>await c(e,t),callOptional:async(t,n)=>{if(t in e)return await c(t,n)},callEvent:async(e,t)=>{}}}async function hC(e){let t=mC(await e.fetchJsonFromBases(pS),e.fetchJsonFromBases);return{transport:`static`,isTrusted:!0,status:`connected`,connectionError:null,requestTrust:async()=>!0,requestTrustWithToken:async()=>!0,requestTrustWithCode:async()=>null,requestAuthCode:async()=>{},ensureTrusted:async()=>!0,call:(...e)=>t.call(e[0],e.slice(1)),callEvent:(...e)=>t.callEvent(e[0],e.slice(1)),callOptional:(...e)=>t.callOptional(e[0],e.slice(1)),close:()=>{}}}var gC=``;function _C(e,t){return`${e}${gC}${t}`}function vC(e){let t=new Map,n=new Map;e.client.register({name:Cy.broadcast.streamingChunk,type:`event`,handler(e,n,r,i){t.get(_C(e,n))?._push(r,i)}}),e.client.register({name:Cy.broadcast.streamingEnd,type:`event`,handler(e,n,r){let i=_C(e,n),a=t.get(i);a&&(a._end(r),t.delete(i))}}),e.client.register({name:Cy.broadcast.streamingUploadCancel,type:`event`,handler(e,t){let r=_C(e,t),i=n.get(r);i&&(i.abort(`server cancelled upload`),n.delete(r))}}),e.events.on(Cy.client.isTrustedUpdated,n=>{if(n)for(let[n,r]of t){if(r.cancelled||r.done)continue;let t=n.indexOf(gC);if(t<0)continue;let i=n.slice(0,t),a=n.slice(t+1);e.callEvent(`devframe:streaming:subscribe`,i,a,{afterSeq:r.lastSeenSeq})}});function r(n,r,i={}){let a=_C(n,r),o=t.get(a);if(o)return o;let s=nS({id:r,highWaterMark:i.highWaterMark,onOverflow(e){console.warn(`[devframe] DF0029: Stream "${n}#${r}" dropped ${e} chunk(s) after exceeding the client high-water mark.`)},onCancel(){e.callEvent(`devframe:streaming:cancel`,n,r),t.delete(a)}});if(t.set(a,s),e.isTrusted)e.callEvent(`devframe:streaming:subscribe`,n,r,{afterSeq:0});else{let i=e.events.on(Cy.client.isTrustedUpdated,o=>{o&&(i(),t.has(a)&&!s.cancelled&&!s.done&&e.callEvent(`devframe:streaming:subscribe`,n,r,{afterSeq:s.lastSeenSeq}))})}return s}function i(t,r){let i=_C(t,r),a=n.get(i);if(a)return a;let o=tS({id:r});return o.events.on(`chunk`,(n,i)=>{e.callEvent(`devframe:streaming:upload-chunk`,t,r,n,i)}),o.events.on(`end`,a=>{e.callEvent(`devframe:streaming:upload-end`,t,r,a),n.delete(i)}),n.set(i,o),o}return{subscribe:r,upload:i}}function yC(){}var bC=new Map;function xC(e){let t=e.url;e.authToken&&(t=`${t}?${gS}=${encodeURIComponent(e.authToken)}`);let n=new WebSocket(t),{onConnected:r=yC,onError:i=yC,onDisconnected:a=yC,definitions:o=bC}=e;n.addEventListener(`open`,e=>{r(e)}),n.addEventListener(`error`,e=>{let t=e instanceof Error?e:Error(e.type);i(t)}),n.addEventListener(`close`,e=>{a(e)});let s=ZS(o);return{close:()=>{n.close()},on:e=>{n.addEventListener(`message`,t=>{e(t.data)})},post:e=>{if(n.readyState===WebSocket.OPEN){n.send(e);return}if(n.readyState===WebSocket.CONNECTING){let t=()=>{i(),n.readyState===WebSocket.OPEN&&n.send(e)},r=()=>i();function i(){n.removeEventListener(`open`,t),n.removeEventListener(`close`,r)}n.addEventListener(`open`,t),n.addEventListener(`close`,r);return}i(Error(`Devframe WebSocket is not open; message dropped`))},serialize:s.serialize,deserialize:s.deserialize}}function SC(e,t,n){let r=(()=>{try{return new URL(t,n.href)}catch{return new URL(n.href)}})(),i=r.protocol===`https:`?`wss:`:`ws:`;if(e&&typeof e==`object`){if(e.host!=null||e.port!=null){let t=e.host??`${r.hostname}:${e.port}`,n=new URL(e.path??`/`,`${i}//${t}`);return n.protocol=i,n.href}let t=new URL(e.path??``,r);return t.protocol=i,t.href}if(typeof e==`number`)return`${i}//${r.hostname}:${e}`;let a=e??``;if(/^wss?:\/\//i.test(a))return a;if(/^https?:\/\//i.test(a))return Qy(a,/^https/i.test(a)?`wss://`:`ws://`);let o=new URL(a,r);return o.protocol=i,o.href}function CC(e){let{authToken:t,connectionMeta:n,metaBaseUrl:r,events:i,clientRpc:a,rpcOptions:o={},wsOptions:s={},callTimeout:c=0}=e,l=SC(n.websocket,r??`./`,location);return rC({transport:`websocket`,authToken:t,connectionMeta:n,events:i,clientRpc:a,rpcOptions:o,callTimeout:c,createChannel:e=>xC({url:l,authToken:t,definitions:e.definitions,...s,onConnected(e){s.onConnected?.(e)},onError(t){e.onError(t),s.onError?.(t)},onDisconnected(t){e.onDisconnected(),s.onDisconnected?.(t)}})})}function wC(e){return e.includes(`:`)}function TC(e,t){return wC(t)?t:`${e}:${t}`}function EC(e){return{async get(t){return(await e()).value()?.[t]},async set(t,n){(await e()).mutate(e=>{if(e===void 0)return{[t]:n};e[t]=n})},async delete(t){(await e()).mutate(e=>{e!==void 0&&delete e[t]})},async all(){return(await e()).value()??{}},async onChange(t){return(await e()).on(`updated`,e=>t(e??{}))}}}function DC(e,t,n){let r=`devframe:settings:${n}:${t}`,i;function a(){return i||=(async()=>(await e.ensureTrusted(),e.sharedState.get(r)))().catch(e=>{throw i=void 0,e}),i}return EC(a)}function OC(e,t){return{global:DC(e,t,`global`),project:DC(e,t,`project`)}}function kC(e,t){return{namespace:t,base:e,rpc:{namespace:t,register(n){if(wC(n.name))throw Error(`[devframe] Scoped client RPC registration for namespace "${t}" received an already-namespaced function name "${n.name}". Pass a bare name without a ":" separator.`);e.client.register({...n,name:`${t}:${n.name}`})},call:((n,...r)=>e.call(TC(t,n),...r)),callEvent:((n,...r)=>e.callEvent(TC(t,n),...r)),callOptional:((n,...r)=>e.callOptional(TC(t,n),...r)),sharedState:((n,r)=>e.sharedState.get(TC(t,n),r)),streaming:{subscribe:(n,r,i)=>e.streaming.subscribe(TC(t,n),r,i),upload:(n,r)=>e.streaming.upload(TC(t,n),r)}},settings:OC(e,t),scope:e.scope}}function AC(){if(typeof document<`u`){let e=document.modelContext;if(e)return e}if(typeof navigator<`u`){let e=navigator.modelContext;if(e)return e}}function jC(e,t={}){let n=t.modelContext??AC();if(!n)return()=>{};let r=n,i=new Map,a=new Map;function o(t,n){let o=aS(t.name),s=a.get(o);if(s&&s!==t.name){console.warn(`[devframe] WebMCP tool name "${o}" (from "${t.name}") collides with "${s}"; keeping the first registration.`);return}let c=new AbortController,l=Ey(t.type,n),u=r.registerTool({name:o,description:n.description,inputSchema:ky(t.args),annotations:{title:n.title??t.name,readOnlyHint:l===`read`,destructiveHint:l===`destructive`},execute:n=>MC(t,e.context,n)},{signal:c.signal});u&&`then`in u&&u.then(()=>{},()=>{}),a.set(o,t.name),i.set(t.name,()=>{c.abort(),u&&`unregister`in u&&typeof u.unregister==`function`&&u.unregister(),a.delete(o)})}function s(t){let n=t?[t]:[...e.definitions.keys()];for(let t of n){i.get(t)?.(),i.delete(t);let n=e.definitions.get(t),r=n?.agent;n&&r&&o(n,r)}}s();let c=e.onChanged(e=>s(e));return()=>{c();for(let e of i.values())e();i.clear()}}async function MC(e,t,n){try{let r=jy(n,e.args?.length);return{content:[{type:`text`,text:NC(await(await TS(e,t))(...r))}]}}catch(e){return{isError:!0,content:[{type:`text`,text:PC(e)}]}}}function NC(e){return e===void 0?`undefined`:typeof e==`string`?e:JSON.stringify(e,null,2)}function PC(e){if(!(e instanceof Error))return String(e);let t=e.cause instanceof Error?` (cause: ${e.cause.message})`:``;return`${e.name}: ${e.message}${t}`}function FC(e,t){if(t.backend===`static`)return`static`;let n=t.websocket!==void 0,r=t.sse!==void 0;if(e===`websocket`){if(!n)throw Error(`[devframe] transport: 'websocket' was requested, but this server does not advertise a WebSocket endpoint`);return`websocket`}if(e===`sse`){if(!r)throw Error(`[devframe] transport: 'sse' was requested, but this server does not advertise an SSE endpoint`);return`sse`}if(t.backend===`sse`&&r)return`sse`;if(n)return`websocket`;if(r)return`sse`;throw Error(`[devframe] This server advertises no RPC transport (backend "none"), so there is nothing to connect to. Enable the WebSocket or SSE endpoint on the server, or use its static/MCP surfaces instead.`)}async function IC(e={}){let{baseURL:t=`./`,rpcOptions:n={},cacheOptions:r=!1}=e,i=Ky(),a=Array.isArray(t)?t:[t],o=await HS(e),{connectionMeta:s,metaBaseUrl:c,authToken:l}=o,u=a[0]??`./`;try{u=new URL(`.`,c).href}catch{}let d=new _S({functions:[],...typeof e.cacheOptions==`object`?e.cacheOptions:{}}),f={rpc:void 0},p=new ES(f),m=e.webmcp===!1?void 0:jC(p),ee,h=!1,g=0,te;function ne(){g++,te=void 0,d.clear(),r===!0&&d.updateOptions({functions:[]})}r&&(p.register({name:Cy.broadcast.cacheInvalidate,type:`event`,handler:ne}),i.on(Cy.client.connectionStatus,ne),i.on(Cy.client.isTrustedUpdated,ne));async function re(e){let t=[u,...a.filter(e=>e!==u)].filter(e=>e!=null),n=[];for(let r of t)try{return await fetch(Zy(e,r)).then(t=>{if(!t.ok)throw Error(`Failed to fetch ${e} from ${r}: ${t.status}`);return t.json()})}catch(e){n.push(e)}throw Error(`Failed to load ${e} from ${t.join(`, `)}`,{cause:n})}let ie=e.callTimeout??0,ae=ie>0?ie:1/0,oe,se={authToken:l,connectionMeta:s,metaBaseUrl:c,events:i,clientRpc:p,callTimeout:e.callTimeout,rpcOptions:{...n,async onRequest(e,t,i){let a=performance.now()+ae;if(await n.onRequest?.call(this,e,t,i),r===!0&&e.i&&oe.isTrusted&&!e.m.startsWith(`anonymous:`)&&e.m!==`devframe:rpc:cacheable-functions`){function t(){if(performance.now()>=a)throw new US(`timeout`,`[devframe] RPC call "${e.m}" timed out after ${ie}ms`)}for(;!te&&(t(),!(h||oe.status!==`connected`));){let e=g;te=oe.callOptional(`devframe:rpc:cacheable-functions`).then(t=>{e===g&&d.updateOptions({functions:t??[]})}).catch(t=>{throw e===g&&(te=void 0),t}),await te}await te,t()}let o=g;if(r&&e.i&&!h&&oe.isTrusted&&d.validate(e.m)){if(d.has(e.m,e.a))return i(d.cached(e.m,e.a));let n=await t(e);o===g&&!h&&d.apply(e,n)}else await t(e)}}},ce=FC(e.transport??`auto`,s);oe=ce===`static`?await hC({fetchJsonFromBases:re}):ce===`sse`?aC({...se,sseOptions:e.sseOptions}):CC({...se,wsOptions:e.wsOptions});let le;try{le=new BroadcastChannel(`devframe-auth`)}catch{}let ue,de=!1;function fe(e){return((...t)=>de||!ue?e(...t):ue.then(()=>e(...t)))}function pe(){h=!0,ne();try{ee?.(),m?.()}finally{try{le?.close()}finally{oe.close?.()}}}let me={events:i,get isTrusted(){return oe.isTrusted},get status(){return oe.status},get connectionError(){return oe.connectionError},get transport(){return oe.transport??ce},get connection(){return o},connectionMeta:s,ensureTrusted:oe.ensureTrusted,requestTrust:oe.requestTrust,requestTrustWithToken:async e=>(RS(e),o={...o,authToken:e},oe.requestTrustWithToken(e)),requestTrustWithCode:async e=>{let t=await oe.requestTrustWithCode(e);if(!t)return!1;RS(t),o={...o,authToken:t};try{le?.postMessage({type:`auth-update`,authToken:t})}catch{}return!0},requestAuthCode:e=>oe.requestAuthCode(e),call:fe(oe.call),callEvent:fe(oe.callEvent),callOptional:fe(oe.callOptional),client:p,sharedState:void 0,services:void 0,streaming:void 0,cacheManager:d,scope:void 0,close:pe};me.sharedState=YS(me),me.streaming=vC(me),me.services=JS(me);let he=new Map;me.scope=(e=>{if(!e)return me;let t=he.get(e);return t||(t=kC(me,e),he.set(e,t)),t}),f.rpc=me;function ge(){try{return typeof window<`u`&&window.self===window.top}catch{return!1}}async function _e(){if(e.simpleAuth!==!1&&ge()&&typeof globalThis.prompt==`function`)for(await me.requestAuthCode().catch(()=>{});!me.isTrusted;){let e=globalThis.prompt(`devframe: enter the authentication code shown in your terminal`);if(e==null)return;let t=e.trim();if(t&&await me.requestTrustWithCode(t))return}}async function ve(){let t=await oe.requestTrust(),n=e.otpParam??`devframe_otp`,r=n?await qS(me,{param:n}):!1;t||r||me.isTrusted||await _e()}return ue=ve().then(()=>{de=!0},()=>{de=!0}),s.mcp&&lS(async()=>{let{setupBrowserAgentRpcBridge:e}=await import(`./browser-agent-rpc-KH4HHvHf-aJiGMZYV.js`);return{setupBrowserAgentRpcBridge:e}},[],import.meta.url).then(({setupBrowserAgentRpcBridge:e})=>{h||(ee=e(me))}).catch(()=>{}),le&&(le.onmessage=e=>{e.data?.type===`auth-update`&&e.data.authToken&&me.requestTrustWithToken(e.data.authToken)}),me}var LC=IC,RC=[`components`,`injectors`,`signals`,`ngrx`,`tanstackQuery`,`forms`,`router`,`pipes`,`http`,`analog`,`capacitor`,`errors`,`plugins`,`performance`,`build`],zC=[`angular`,`ngrx`,`analog`,`angular-native`,`nativescript`,`capacitor`];function BC(e){return`pangular:${e}`}var VC=[`forms`,`router`,`ngrx`,`http`,`analog`,`components`,`tanstackQuery`,`plugins`],HC={refreshMs:{default:3e3,min:500,max:8e3},navigations:{default:50,min:5,max:500},formTimeline:{default:200,min:10,max:2e3},httpCalls:{default:200,min:10,max:2e3},changeLog:{default:200,min:10,max:2e3},cdCycles:{default:200,min:10,max:2e3},cdSlowMs:{default:16,min:1,max:1e3},capacitorCalls:{default:200,min:10,max:2e3},idleAfterMs:{default:6e4,min:0,max:6e5}},UC={"opted-out":`the request sets transferCache: false`,post:`POST requests are left out unless includePostRequests is set`,method:`only GET, HEAD and POST requests are cached`,"auth-headers":`it sends an Authorization, Proxy-Authorization or Cookie header`,credentials:`it sends credentials (withCredentials or credentials: include/same-origin)`,"no-cache-request":`the request asks for no-store, no-cache or private`,"no-cache-response":`the response has Cache-Control no-store, no-cache or private`,"set-cookie":`the response sets a cookie`,error:`failed responses are not stored`,mocked:`a fault rule answered before the transfer cache ran`,filter:`the transferCache filter passed to withPangular() left it out`,"cache-off-or-filter":`the transfer cache is off, or its filter (or another withHttpTransferCacheOptions setting) left it out`},WC=[[0,`Network error (offline)`],[200,`OK`],[201,`Created`],[202,`Accepted`],[203,`Non-Authoritative Information`],[204,`No Content`],[205,`Reset Content`],[206,`Partial Content`],[207,`Multi-Status`],[208,`Already Reported`],[226,`IM Used`],[300,`Multiple Choices`],[301,`Moved Permanently`],[302,`Found`],[303,`See Other`],[304,`Not Modified`],[307,`Temporary Redirect`],[308,`Permanent Redirect`],[400,`Bad Request`],[401,`Unauthorized`],[402,`Payment Required`],[403,`Forbidden`],[404,`Not Found`],[405,`Method Not Allowed`],[406,`Not Acceptable`],[407,`Proxy Authentication Required`],[408,`Request Timeout`],[409,`Conflict`],[410,`Gone`],[411,`Length Required`],[412,`Precondition Failed`],[413,`Content Too Large`],[414,`URI Too Long`],[415,`Unsupported Media Type`],[416,`Range Not Satisfiable`],[417,`Expectation Failed`],[418,`I'm a Teapot`],[421,`Misdirected Request`],[422,`Unprocessable Content`],[423,`Locked`],[424,`Failed Dependency`],[425,`Too Early`],[426,`Upgrade Required`],[428,`Precondition Required`],[429,`Too Many Requests`],[431,`Request Header Fields Too Large`],[451,`Unavailable For Legal Reasons`],[499,`Client Closed Request`],[500,`Internal Server Error`],[501,`Not Implemented`],[502,`Bad Gateway`],[503,`Service Unavailable`],[504,`Gateway Timeout`],[505,`HTTP Version Not Supported`],[506,`Variant Also Negotiates`],[507,`Insufficient Storage`],[508,`Loop Detected`],[510,`Not Extended`],[511,`Network Authentication Required`],[520,`Web Server Returned an Unknown Error`],[521,`Web Server Is Down`],[522,`Connection Timed Out`],[523,`Origin Is Unreachable`],[524,`A Timeout Occurred`]];function GC(e){return WC.some(([t])=>t===e)}var KC=/^[a-z][a-z0-9-]{0,39}$/;function qC(e,t){let n=t.plugins?.[e],r=t.inspectors.plugins&&KC.test(e)&&(n?.enabled??!0);return{enabled:r,tools:r&&t.agent.tools.plugins&&(n?.tools??!0),actions:r&&t.actions.plugins&&(n?.actions??!0)}}var JC=`pangular`,YC={mod:`Mod`,ctrl:`Ctrl`,control:`Ctrl`,meta:`Meta`,cmd:`Meta`,command:`Meta`,alt:`Alt`,option:`Alt`,opt:`Alt`,shift:`Shift`},XC=[`Mod`,`Ctrl`,`Meta`,`Alt`,`Shift`];function ZC(e){if(typeof e!=`string`||e.length>40)return;let t=e.split(`+`).map(e=>e.trim());if(t.some(e=>!e))return;let n=new Set,r;for(let e of t){let t=YC[e.toLowerCase()];if(t){if(n.has(t))return;n.add(t);continue}if(r!==void 0)return;if(/^[a-z0-9]$/i.test(e))r=e.toUpperCase();else if(/^f([1-9]|1[0-2])$/i.test(e))r=e.toUpperCase();else return}if(r&&[...n].some(e=>e!==`Shift`)&&!(n.has(`Mod`)&&(n.has(`Ctrl`)||n.has(`Meta`))))return[...XC.filter(e=>n.has(e)),r].join(`+`)}function QC(e,t,n){let r=t.split(`+`),i=r.pop(),a=new Set(r),o=a.has(`Ctrl`)||a.has(`Mod`)&&!n,s=a.has(`Meta`)||a.has(`Mod`)&&n;if(e.ctrlKey!==o||e.metaKey!==s||e.altKey!==a.has(`Alt`)||e.shiftKey!==a.has(`Shift`))return!1;if(/^F\d+$/.test(i))return e.key.toUpperCase()===i;let c=/^\d$/.test(i)?`Digit${i}`:`Key${i}`;return e.code?e.code===c:e.key.toUpperCase()===i}function $C(e,t){if(!t)return e.replace(/^Mod\b/,`Ctrl`);let n={Mod:`⌘`,Meta:`⌘`,Ctrl:`⌃`,Alt:`⌥`,Shift:`⇧`};return e.split(`+`).map(e=>n[e]??e).join(``)}var ew=[{id:`dashboard`,label:`Dashboard`},{id:`timeline`,label:`Timeline`},{id:`audit`,label:`Audit`},{id:`analog`,label:`Analog`,inspector:`analog`},{id:`components`,label:`Components`,inspector:`components`},{id:`routes`,label:`Routes`,inspector:`router`},{id:`signals`,label:`Signals`,inspector:`signals`},{id:`injectors`,label:`Injectors`,inspector:`injectors`},{id:`store`,label:`Store`,inspector:`ngrx`},{id:`queries`,label:`Queries`,inspector:`tanstackQuery`},{id:`forms`,label:`Forms`,inspector:`forms`},{id:`pipes`,label:`Pipes`,inspector:`pipes`},{id:`network`,label:`SSR & HTTP`,inspector:`http`},{id:`errors`,label:`Errors`,inspector:`errors`},{id:`performance`,label:`Performance`,inspector:`performance`},{id:`build`,label:`Build`,inspector:`build`},{id:`capacitor`,label:`Capacitor`,inspector:`capacitor`},{id:`plugins`,label:`Plugins`,inspector:`plugins`}],tw=1e4;function nw(e){return ew.filter(t=>!(`inspector`in t)||e.inspectors[t.inspector])}var rw={components:`a component instance, by its id in the component tree`,injectors:`a component's element injector, by the component's id`,signals:`a component's signal graph, by the component's id`,forms:`a form, by its id`},iw=200;function aw(e){let t=new URLSearchParams({tab:e.tab});return e.id&&t.set(`id`,e.id),e.page&&t.set(`page`,e.page),`#${t.toString()}`}function ow(e){let t=new URLSearchParams(e.replace(/^#/,``)),n=e=>{let n=t.get(e)?.trim();return n&&n.length<=iw?n:void 0},r=n(`tab`);if(!r)return null;let i=n(`id`),a=n(`page`);return{tab:r,...i?{id:i}:{},...a?{page:a}:{}}}var sw=[{id:`settings`,title:`Open settings`,group:`Go to`,keywords:`preferences tabs`},{id:`pick-component`,title:`Pick component on page`,group:`Actions`,keywords:`select inspect element`,inspector:`components`},{id:`cd-record-start`,title:`Start recording change detection`,group:`Actions`,keywords:`profiler cycles`,inspector:`components`},{id:`cd-record-stop`,title:`Stop recording change detection`,group:`Actions`,keywords:`profiler cycles`,inspector:`components`},{id:`cd-clear`,title:`Clear change detection recording`,group:`Actions`,keywords:`reset recordings cycles`,inspector:`components`},{id:`theme:system`,title:`Theme: follow the system`,group:`Theme`,keywords:`auto`},{id:`theme:light`,title:`Theme: light`,group:`Theme`},{id:`theme:dark`,title:`Theme: dark`,group:`Theme`},{id:`dock:float`,title:`Popup: float`,group:`Popup`,keywords:`dock`,popupOnly:!0},{id:`dock:bottom`,title:`Popup: dock to the bottom`,group:`Popup`,keywords:`dock`,popupOnly:!0},{id:`dock:right`,title:`Popup: dock to the right`,group:`Popup`,keywords:`dock`,popupOnly:!0},{id:`dock:reset-size`,title:`Popup: reset the docked size`,group:`Popup`,keywords:`splitter resize height width`,popupOnly:!0},{id:`popout`,title:`Popup: open in its own window`,group:`Popup`,keywords:`pop out detach new window`,popupOnly:!0},{id:`popout:return`,title:`Popup: back into the page`,group:`Popup`,keywords:`pop in attach dock window`,popupOnly:!0}];function cw(e){let t=nw(e).map(e=>({id:`tab:${e.id}`,title:`Go to ${e.label}`,group:`Go to`,keywords:`tab open`})),n=sw.filter(t=>!t.inspector||e.inspectors[t.inspector]).map(({inspector:e,...t})=>t);return[...t,...n]}function lw(e){return e&&typeof e==`object`&&!Array.isArray(e)?e:{}}var uw=Object.freeze({minLength:24,threshold:4.5}),dw={min:16,max:512},fw={min:2,max:6};function pw(e){return typeof e==`number`&&Number.isInteger(e)&&e>=dw.min&&e<=dw.max}function mw(e){return typeof e==`number`&&Number.isFinite(e)&&e>=fw.min&&e<=fw.max}function hw(e){if(e===!0)return{...uw};if(!e||typeof e!=`object`||Array.isArray(e))return;let{minLength:t,threshold:n}=e;return{minLength:pw(t)?t:uw.minLength,threshold:mw(n)?n:uw.threshold}}function gw(e){let t=hw(e);return t?{entropy:t}:{}}function _w(e,t){return typeof e==`boolean`?e:t}var vw=100,yw=100;function bw(e){if(!Array.isArray(e))return[];let t=e.filter(e=>typeof e==`string`).map(e=>e.trim()).filter(e=>e&&e.length<=yw);return[...new Set(t)].slice(0,vw)}function xw(e,t){let{default:n,min:r,max:i}=HC[t];return typeof e!=`number`||!Number.isFinite(e)?n:Math.min(i,Math.max(r,Math.round(e)))}function Sw(e,t){return Object.fromEntries(e.map(e=>[e,t(e)]))}function Cw(e){let t=lw(e),n=lw(t.agent),r=lw(t.inspectors),i=lw(n.tools),a=lw(t.actions),o=_w(t.actions,!0),s=lw(t.redaction),c=lw(t.limits),l=Sw(RC,e=>_w(r[e],!0));return{inspectors:l,agent:{readOnly:_w(n.readOnly,!1),tools:Sw(RC,e=>l[e]&&_w(i[e],!0)),browserTools:_w(n.browserTools,!1)},actions:Sw(VC,e=>l[e]&&_w(a[e],o)),redaction:{secretNames:bw(s.secretNames),unmask:bw(s.unmask),...gw(s.entropy)},limits:Object.fromEntries(Object.keys(HC).map(e=>[e,xw(c[e],e)])),popup:{hotkey:Aw(lw(t.popup).hotkey)},plugins:kw(t.plugins),lint:{rules:Dw(t.lint)},analog:Tw(t.analog),ngrx:{trace:_w(lw(t.ngrx).trace,!1)}}}var ww=500;function Tw(e){let t=lw(e).contentSchema;return typeof t==`string`&&t.trim()&&t.length<=ww?{contentSchema:t.trim()}:{}}var Ew=200;function Dw(e){let t=lw(lw(e).rules),n={};for(let[e,r]of Object.entries(t).slice(0,Ew))typeof r==`boolean`&&(n[e]=r);return n}var Ow=100;function kw(e){let t={};for(let[n,r]of Object.entries(lw(e)).slice(0,Ow)){if(!KC.test(n))continue;if(typeof r==`boolean`){t[n]={enabled:r,tools:!0,actions:!0};continue}let e=lw(r);r!==void 0&&Object.keys(e).length&&(t[n]={enabled:_w(e.enabled,!0),tools:_w(e.tools,!0),actions:_w(e.actions,!0)})}return t}function Aw(e){return e===!1?!1:ZC(e)??`Alt+Shift+P`}function jw(e){let t=e?.configs;return Cw(t?.[JC])}function Mw(e){return`${{forms:`Writing to forms`,router:`Navigating and clearing navigations`,ngrx:`Restoring NgRx state, dispatching actions and changing the Store DevTools history`,http:`Changing HTTP mock rules and SSR overrides, refetching the TransferState payload, and clearing HTTP calls`,analog:`Calling API routes, clearing server calls, running Nitro tasks and purging the Nitro cache`,components:`Editing component properties and signals`,tanstackQuery:`Invalidating and refetching TanStack queries`,plugins:`Running plugin actions`}[e]} is turned off in the devtools config (actions.${e}).`}var Nw=[`pangular:build-meta`],Pw={components:`Components`,injectors:`Injectors`,signals:`Signals`,ngrx:`NgRx`,tanstackQuery:`TanStack Query`,forms:`Forms`,router:`Router`,pipes:`Pipes`,http:`HTTP`,analog:`Analog`,capacitor:`Capacitor`,errors:`Errors`,plugins:`Plugins`,performance:`Performance`,build:`Build`},Fw={forms:`Form writes`,router:`Navigation`,ngrx:`NgRx restore, dispatch and Store DevTools`,http:`HTTP mocking`,analog:`Analog API calls`,components:`Component edits`,tanstackQuery:`TanStack Query invalidate and refetch`,plugins:`Plugin actions`},Iw={refreshMs:e=>`poll every ${e} ms`,navigations:e=>`${e} navigations`,formTimeline:e=>`${e} form events`,httpCalls:e=>`${e} HTTP calls`,changeLog:e=>`${e} NgRx changes`,cdCycles:e=>`${e} change detection cycles`,cdSlowMs:e=>`slow cycles over ${e} ms`,capacitorCalls:e=>`${e} Capacitor plugin calls`,idleAfterMs:e=>e?`idle ${e/1e3} s after the last agent call`:`never idle`};function Lw(e){if(!e)return[];let t=[`On`];return e.minLength!==uw.minLength&&t.push(`${e.minLength} characters or more`),e.threshold!==uw.threshold&&t.push(`up to ${e.threshold} bits per character`),t}function Rw(e){let t=[],n=(e,n)=>{n.length&&t.push({label:e,value:n.join(`, `)})},r=RC.filter(t=>e.inspectors[t]);n(`Inspectors off`,RC.filter(t=>!e.inspectors[t]).map(e=>Pw[e])),n(`Agent`,e.agent.readOnly?[`Read-only`]:[]),n(`Hidden from the agent`,r.filter(t=>!e.agent.tools[t]).map(e=>Pw[e])),n(`Blocked actions`,VC.filter(t=>e.inspectors[t]&&!e.actions[t]).map(e=>Fw[e])),n(`Extra secret names`,e.redaction.secretNames),n(`Unmasked names`,e.redaction.unmask),n(`Entropy masking`,Lw(e.redaction.entropy)),n(`Limits`,Object.keys(HC).filter(t=>e.limits[t]!==HC[t].default).map(t=>Iw[t](e.limits[t]))),e.popup.hotkey!==`Alt+Shift+P`&&n(`Popup shortcut`,[e.popup.hotkey===!1?`Off`:e.popup.hotkey]);let i=Object.entries(e.plugins??{});return n(`Plugins off`,i.filter(([,e])=>!e.enabled).map(([e])=>e)),n(`Plugin tools or actions off`,i.filter(([,e])=>e.enabled&&(!e.tools||!e.actions)).map(([e,t])=>`${e} (${[!t.tools&&`tools`,!t.actions&&`actions`].filter(Boolean).join(`, `)})`)),n(`Lint rules off`,Object.entries(e.lint?.rules??{}).filter(([,e])=>!e).map(([e])=>e)),t}function zw(e){let t={tags:[],directives:[],text:``},n=e.toLowerCase();return n=n.replace(/<\s*([^<>\s]+)\s*>/g,(e,n)=>(t.tags.push({value:n,exact:!0}),` `)),n=n.replace(/\[\s*([^[\]\s]+)\s*\]/g,(e,n)=>(t.directives.push({value:n,exact:!0}),` `)),n=n.replace(/(^|\s)([<[])([^<>[\]\s]*)$/,(e,n,r,i)=>(i&&(r===`<`?t.tags:t.directives).push({value:i,exact:!1}),n)),t.text=n.replace(/\s+/g,` `).trim(),t}function Bw(e){return!e.tags.length&&!e.directives.length&&!e.text}function Vw(e,t){let n=e.tag.toLowerCase(),r=(e.directives??[]).map(e=>e.toLowerCase()),i=(e.attributes??[]).map(e=>e.toLowerCase()),a=[...r,...r.map(e=>e.replace(/directive$/,``)),...i];for(let{value:e,exact:r}of t.tags)if(r?n!==e:!n.startsWith(e))return!1;for(let{value:e,exact:n}of t.directives)if(!a.some(t=>n?t===e:t.includes(e)))return!1;if(t.text){let a=t.text;if(!(e.name.toLowerCase().includes(a)||n.includes(a)||r.some(e=>e.includes(a))||i.some(e=>e.includes(a))))return!1}return!0}var Hw={debugApi:{subject:`Live data`,since:`12.0`},injectorProviders:{subject:`Reading providers and environment injectors`,since:`16.2`},injectorMetadata:{subject:`The full injector tree`,since:`17.0`},isSignal:{subject:`Telling signals apart in component values`,since:`17.1`},signalGraph:{subject:`The live signal graph`,since:`20.1`},deferBlocks:{subject:`Listing @defer blocks`,since:`19.1`},forBlocks:{subject:`Listing @for blocks`,since:`22.0`},profiler:{subject:`Recording change detection`,since:`20.0`},angularProfiling:{subject:`Angular profiling`,since:`20.0`},routerInstance:{subject:`The router debug util`,since:`20.3`}};function Uw(e){let t=/^(\d+)\.(\d+)/.exec(e.trim());return t?`${t[1]}.${t[2]}`:e.trim()}function Ww(e){let t=/^(\d+)(?:\.(\d+))?/.exec(e.trim());return t?[Number(t[1]),Number(t[2]??0)]:null}function Gw(e,t){let n=Ww(e),r=Ww(t);return!n||!r?!1:n[0]===r[0]?n[1]>=r[1]:n[0]>r[0]}function Kw(e,t){return e?.capabilities?.[t]===!1}function qw(e,t){let n=Hw[e],r=`${n.subject} needs Angular ${n.since} or later`;if(!t)return`${r}; this page's Angular version is unknown.`;let i=Uw(t);return Gw(t,n.since)?`${r} in a development build; this page runs Angular ${i} without it, which usually means a production build.`:`${r}; this page runs Angular ${i}.`}function Jw(e){return e.hydration===`hydrated`&&e.hydratedAt===void 0?`hydrated before inspection`:e.hydration}var Yw=/^on (viewport|interaction|hover)\b/;function Xw(e){let t=e.filter(e=>!/^(prefetch|hydrate) /.test(e));return t.length>0&&t.every(e=>Yw.test(e))}function Zw(e,t){let n=[],r=e.since>0?Math.max(0,Math.round((t-e.since)/1e3)):0;return e.state===`error`&&n.push({kind:`failed`,text:`failed to load`,label:`failed`}),(e.state===`placeholder`||e.state===`initial`)&&r*1e3>=1e4&&n.push(Xw(e.triggers)?{kind:`waiting`,text:`waiting for its trigger for ${r}s`,label:`waiting ${r}s`,seconds:r}:{kind:`stuck`,text:`on its placeholder for ${r}s`,label:`stuck ${r}s`,seconds:r}),e.hydrateNever?n.push({kind:`hydrate-never`,text:`hydrate never: the server HTML stays static`,label:`hydrate never`}):e.hydration===`dehydrated`&&n.push({kind:`dehydrated`,text:`still dehydrated`,label:`dehydrated`}),n}var Qw=`pangular-page-id`,$w=null;function eT(e){$w=e}function tT(){if($w)return $w;try{return new URLSearchParams(location.search).get(`pageId`)||(window.top===window?null:sessionStorage.getItem(Qw)||null)}catch{return null}}function nT(e,t){if(t.chosen&&e[t.chosen])return t.chosen;if(t.host)return t.host;if(t.previous&&e[t.previous])return t.previous;let n=null;for(let t of Object.values(e))(!n||t.reportedAt>n.reportedAt)&&(n=t);return n?.pageId??null}function rT(e,t){return e?t?e.pages?.[t]??null:e:null}function iT(e,t){return e?t?e.pages?.[t]??null:e.graph??null:null}function aT(){return{functions:[...Nw]}}function oT(e,t,n){return e?e.scope(`pangular`).rpc.call(t,...n===void 0?[]:[n]):Promise.resolve(null)}function sT(e,t,n){return oT(e,t,n).then(e=>e,()=>null)}function cT(e){return e?.connectionMeta.backend===`static`}function lT(e){let t=()=>{let t=e()?.scope(`pangular`).rpc;t&&(t.callEvent(`request-page-highlight`,null),t.callEvent(`request-form-highlight`,null))};return addEventListener(`pagehide`,t),()=>{removeEventListener(`pagehide`,t),t()}}function uT(e=globalThis){delete e.__DEVFRAME_CONNECTION__,delete e.__DEVFRAME_CONNECTION_META__}function dT(e){return e.split(`@`)[1]??``}var fT={signal:`Signal Forms`,reactive:`Reactive`,template:`Template-driven`},pT={own:`validator`,directive:`template attribute`,tree:`cross-field rule`,async:`async`,parse:`parse`,submission:`server`,schema:`schema`,manual:`setErrors`},mT=sT,hT={key:`name looks secret`,"input-type":`password input`,autocomplete:`autocomplete is a secret kind`,marker:`marked as mask`,parent:`inside a secret group`,config:`listed in mask`};function gT(e){return hT[e]??e}var _T=`https://pangular-inspector.dev/security/#opt-fields-in-or-out`;async function vT(e,t){return await mT(e,`request-form-action`,t)??{ok:!1,error:`The devtools server did not answer.`}}function yT(e){return`${e.ok?e.message??`Done.`:e.error??`Failed.`}${e.skipped?.length?` Skipped: ${e.skipped.map(e=>`${e.path} (${e.reason})`).join(`, `)}.`:``}${e.status?` Status: ${e.status}.`:``}`}var bT=/"(?:[^"\\\n]|\\.)*"|`([^`\n]*)`|\*\*/g;function xT(e){return(e??``).replace(/^_Labels, paths.*_\n\n/,``).replace(bT,(e,t)=>t??(e===`**`?``:e))}function ST(e,t){let n=Math.max(0,e-t),r=Math.ceil(n/6e4);if(r<60)return`in ${r} min`;let i=Math.round(r/60);return i<48?`in ${i} ${i===1?`hour`:`hours`}`:`in ${Math.round(i/24)} days`}function CT(e,t){return e.length?e.join(`, `):t}function wT(e,t){let n=[];if(n.push({label:`One-time code`,value:e.auth?e.oneTimeCode.state===`locked`?`Locked after too many wrong codes: run pangular token --rotate or restart the server for a new code`:e.oneTimeCode.expiresAt?`On, current code expires ${ST(e.oneTimeCode.expiresAt,t)}`:`On`:`Off: every client is trusted`}),e.auth){let{count:r,nextExpiresAt:i,lastExpiresAt:a}=e.tokens;n.push({label:`Trusted clients`,value:r?r===1||i===a?`${r} ${r===1?`token`:`tokens`}, expires ${ST(i??t,t)}`:`${r} tokens, the first expires ${ST(i??t,t)}, the last ${ST(a??t,t)}`:`None`}),e.pairingTokens&&n.push({label:`Pairing tokens`,value:`${e.pairingTokens} accepted instead of the code`})}return e.reported?(n.push({label:`Reach`,value:e.network?`This machine and other machines`:`This machine only`}),n.push({label:`Allowed origins`,value:e.originCheck?`${CT(e.allowedOrigins,`This machine and the Chrome extension`)}${e.customOrigins?`, plus a custom origin check`:``}`:`Any: the origin check is off`}),(e.allowedHosts===`any`||e.allowedHosts.length)&&n.push({label:`Allowed hosts`,value:e.allowedHosts===`any`?`Any`:e.allowedHosts.join(`, `)}),n):n}function TT(e){return jw(e?.connectionMeta)}function ET(e){return Array.isArray(e)&&e.every(e=>typeof e==`string`)?[...e]:void 0}function DT(e,t){if(!t||typeof t!=`object`)return e;let n=ET(t.secretNames),r=ET(t.unmask);if(!n||!r)return e;let i=hw(t.entropy);return{...e,redaction:i?{secretNames:n,unmask:r,entropy:i}:{secretNames:n,unmask:r}}}function OT(e,t){return TT(e).actions[t]}var kT={components:`components`,routes:`router`,signals:`signals`,injectors:`injectors`,store:`ngrx`,queries:`tanstackQuery`,forms:`forms`,pipes:`pipes`,network:`http`,analog:`analog`,capacitor:`capacitor`,errors:`errors`,plugins:`plugins`,performance:`performance`,build:`build`};function AT(e){return kT[e]}var jT=`https://pangular-inspector.dev/getting-started/configuration/#inspectors-and-agent-tools`;function MT(e,t){let n=kT[e];return!n||t.inspectors[n]}function NT(e,t){e&1&&(w(),dg(0,`rect`,5)(1,`rect`,6)(2,`rect`,7)(3,`rect`,8))}function PT(e,t){e&1&&(w(),dg(0,`path`,9)(1,`circle`,10)(2,`circle`,11)(3,`path`,12))}function FT(e,t){e&1&&(w(),dg(0,`path`,13)(1,`path`,14))}function IT(e,t){e&1&&(w(),dg(0,`path`,15)(1,`path`,16)(2,`path`,17))}function LT(e,t){e&1&&(w(),dg(0,`circle`,18)(1,`path`,19)(2,`circle`,20))}function RT(e,t){e&1&&(w(),dg(0,`path`,1))}function zT(e,t){e&1&&(w(),dg(0,`path`,21)(1,`path`,22)(2,`path`,23)(3,`path`,24))}function BT(e,t){e&1&&(w(),dg(0,`ellipse`,25)(1,`path`,26)(2,`path`,27))}function VT(e,t){e&1&&(w(),dg(0,`rect`,28)(1,`path`,29)(2,`path`,30)(3,`path`,31))}function HT(e,t){e&1&&(w(),dg(0,`circle`,32)(1,`path`,9)(2,`path`,33))}function UT(e,t){e&1&&(w(),dg(0,`path`,34)(1,`path`,35)(2,`path`,36)(3,`path`,37)(4,`circle`,38))}function WT(e,t){e&1&&(w(),dg(0,`circle`,39)(1,`path`,40))}function GT(e,t){e&1&&(w(),dg(0,`ellipse`,41)(1,`path`,42)(2,`path`,43)(3,`path`,44)(4,`path`,45))}function KT(e,t){e&1&&(w(),dg(0,`circle`,32)(1,`path`,46)(2,`path`,47))}function qT(e,t){e&1&&(w(),dg(0,`path`,48)(1,`path`,49))}function JT(e,t){e&1&&(w(),dg(0,`path`,50)(1,`path`,51)(2,`path`,52))}function YT(e,t){e&1&&(w(),dg(0,`path`,2))}function XT(e,t){e&1&&(w(),dg(0,`path`,3))}function ZT(e,t){e&1&&(w(),dg(0,`path`,4))}var QT=class e{name=$.required();static ɵfac=function(t){return new(t||e)};static ɵcmp=O({type:e,selectors:[[`app-tab-icon`]],inputs:{name:[1,`name`]},decls:20,vars:1,consts:[[`viewBox`,`0 0 24 24`,`width`,`16`,`height`,`16`,`fill`,`none`,`stroke`,`currentColor`,`stroke-width`,`1.8`,`stroke-linecap`,`round`,`stroke-linejoin`,`round`,`aria-hidden`,`true`],[`d`,`M22 12h-4l-3 9L9 3l-3 9H2`],[`d`,`M10 3h4v3a2 2 0 1 0 4 0V5h1a2 2 0 0 1 2 2v4h-2a2 2 0 1 0 0 4h2v4a2 2 0 0 1-2 2h-4v-2a2 2 0 1 0-4 0v2H7a2 2 0 0 1-2-2v-4H4a2 2 0 1 1 0-4h1V7a2 2 0 0 1 2-2h3Z`],[`d`,`m8 3 4 8 5-5 5 15H2L8 3z`],[`fill`,`currentColor`,`stroke`,`none`,`transform`,`translate(1.8 1.8) scale(0.85)`,`d`,`M24 3.7l-5.766 5.766 5.725 5.736-3.713 3.712L5.073 3.742 8.786.03l5.736 5.726L20.284 0 24 3.7zM.029 8.785l3.713-3.713 15.173 15.173-3.713 3.714-5.732-5.726L3.7 24 0 20.285l5.754-5.764L.029 8.785z`],[`x`,`3`,`y`,`3`,`width`,`7`,`height`,`9`,`rx`,`1.5`],[`x`,`14`,`y`,`3`,`width`,`7`,`height`,`5`,`rx`,`1.5`],[`x`,`14`,`y`,`12`,`width`,`7`,`height`,`9`,`rx`,`1.5`],[`x`,`3`,`y`,`16`,`width`,`7`,`height`,`5`,`rx`,`1.5`],[`d`,`M3 12h18`],[`cx`,`7`,`cy`,`12`,`r`,`2`],[`cx`,`14`,`cy`,`12`,`r`,`2`],[`d`,`M18 7v10`],[`d`,`M9 11l2 2 4-4`],[`d`,`M12 3 4 6v6c0 4.5 3.4 8.3 8 9 4.6-.7 8-4.5 8-9V6l-8-3Z`],[`d`,`M12 2 3 7l9 5 9-5-9-5Z`],[`d`,`m3 12 9 5 9-5`],[`d`,`m3 17 9 5 9-5`],[`cx`,`6`,`cy`,`19`,`r`,`3`],[`d`,`M9 19h8.5a3.5 3.5 0 0 0 0-7h-11a3.5 3.5 0 0 1 0-7H15`],[`cx`,`18`,`cy`,`5`,`r`,`3`],[`d`,`M12 22v-5`],[`d`,`M9 8V2`],[`d`,`M15 8V2`],[`d`,`M18 8v5a4 4 0 0 1-4 4h-4a4 4 0 0 1-4-4V8Z`],[`cx`,`12`,`cy`,`5`,`rx`,`9`,`ry`,`3`],[`d`,`M3 5v14a9 3 0 0 0 18 0V5`],[`d`,`M3 12a9 3 0 0 0 18 0`],[`x`,`3`,`y`,`4`,`width`,`18`,`height`,`16`,`rx`,`2`],[`d`,`M7 9h10`],[`d`,`M7 13h6`],[`d`,`M7 17h8`],[`cx`,`12`,`cy`,`12`,`r`,`9`],[`d`,`M12 3a14 14 0 0 1 0 18a14 14 0 0 1 0-18Z`],[`d`,`M4 7h10`],[`d`,`M4 17h6`],[`d`,`m14 13 4 4-4 4`],[`d`,`M10 17h8`],[`cx`,`18`,`cy`,`7`,`r`,`3`],[`cx`,`12`,`cy`,`12`,`r`,`3`],[`d`,`M19.4 15a1.7 1.7 0 0 0 .3 1.8l.1.1a2 2 0 1 1-2.8 2.8l-.1-.1a1.7 1.7 0 0 0-1.8-.3 1.7 1.7 0 0 0-1 1.5V21a2 2 0 1 1-4 0v-.1a1.7 1.7 0 0 0-1.1-1.5 1.7 1.7 0 0 0-1.8.3l-.1.1a2 2 0 1 1-2.8-2.8l.1-.1a1.7 1.7 0 0 0 .3-1.8 1.7 1.7 0 0 0-1.5-1H3a2 2 0 1 1 0-4h.1a1.7 1.7 0 0 0 1.5-1.1 1.7 1.7 0 0 0-.3-1.8l-.1-.1a2 2 0 1 1 2.8-2.8l.1.1a1.7 1.7 0 0 0 1.8.3H9a1.7 1.7 0 0 0 1-1.5V3a2 2 0 1 1 4 0v.1a1.7 1.7 0 0 0 1 1.5 1.7 1.7 0 0 0 1.8-.3l.1-.1a2 2 0 1 1 2.8 2.8l-.1.1a1.7 1.7 0 0 0-.3 1.8V9a1.7 1.7 0 0 0 1.5 1H21a2 2 0 1 1 0 4h-.1a1.7 1.7 0 0 0-1.5 1Z`],[`cx`,`11`,`cy`,`5`,`rx`,`8`,`ry`,`3`],[`d`,`M3 5v6c0 1.66 3.58 3 8 3`],[`d`,`M3 11v6c0 1.66 3.58 3 8 3`],[`d`,`M21 14a4 4 0 1 1-1.2-2.85L21 12.3`],[`d`,`M21 9v3.3h-3.3`],[`d`,`M12 7v6`],[`d`,`M12 16.5v.01`],[`d`,`M12 14l4-4`],[`d`,`M3.34 19a10 10 0 1 1 17.32 0`],[`d`,`M21 16V8l-9-5-9 5v8l9 5 9-5Z`],[`d`,`m3.3 7 8.7 5 8.7-5`],[`d`,`M12 22V12`]],template:function(e,t){if(e&1&&(w(),R(0,`svg`,0),A(1,NT,4,0)(2,PT,4,0)(3,FT,2,0)(4,IT,3,0)(5,LT,3,0)(6,RT,1,0,`:svg:path`,1)(7,zT,4,0)(8,BT,3,0)(9,VT,4,0)(10,HT,3,0)(11,UT,5,0)(12,WT,2,0)(13,GT,5,0)(14,KT,3,0)(15,qT,2,0)(16,JT,3,0)(17,YT,1,0,`:svg:path`,2)(18,XT,1,0,`:svg:path`,3)(19,ZT,1,0,`:svg:path`,4),z()),e&2){let e;D(),j((e=t.name())===`dashboard`?1:e===`timeline`?2:e===`audit`?3:e===`components`?4:e===`routes`?5:e===`signals`?6:e===`injectors`?7:e===`store`?8:e===`forms`?9:e===`network`?10:e===`pipes`?11:e===`settings`?12:e===`queries`?13:e===`errors`?14:e===`performance`?15:e===`build`?16:e===`plugins`?17:e===`analog`?18:e===`capacitor`?19:-1)}},styles:[`[_nghost-%COMP%] {
+`))}}h()}return(async()=>{try{let e=await a(o,{headers:{accept:`text/event-stream`},signal:c.signal});if(!e.ok||!e.body)throw Error(`Devframe SSE stream request failed: ${e.status}`);await te(e.body)}catch(e){if(c.signal.aborted){h();return}ee(e instanceof Error?e:Error(String(e)))}})(),{close:()=>{l=!0,c.abort(),d?.cancel().catch(()=>{})},on:e=>{u=e},post:async e=>{let t;try{t=await m}catch{return}if(l){n(Error(`Devframe SSE channel is closed; message dropped`));return}try{let n=await a(o,{method:`POST`,headers:{"content-type":`text/plain; charset=utf-8`,[fS]:t},body:e});if(n.status===200){let e=await n.text();e&&u?.(e);return}if(!n.ok)throw Error(`Devframe SSE POST failed: ${n.status}`)}catch(e){n(e instanceof Error?e:Error(String(e)))}},serialize:s.serialize,deserialize:s.deserialize}}function nC(e,t){let{channel:n,rpcOptions:r={}}=t;return Vre(e,{...n,timeout:-1,...r,proxify:!1})}function rC(e){let{transport:t,authToken:n,connectionMeta:r,events:i,clientRpc:a,rpcOptions:o={},callTimeout:s=0}=e,c=!1,l=`connecting`,u=null,d=Promise.withResolvers();function f(e,t=null){if(t?u=t:e===`connected`&&(u=null),e===l)return;let n=l;l=e,i.emit(Cy.client.connectionStatus,e,n)}let p=new Set;function m(e){for(let t of[...p])t.reject(e)}function ee(){return l===`disconnected`||l===`error`?new US(`connection`,`[devframe] Not connected to the devframe server`,{cause:u??void 0}):l===`unauthorized`?new US(`auth`,`[devframe] Not authorized by the devframe server`,{cause:u??void 0}):null}function h(e,t){return new Promise((n,r)=>{let a=!1,o,c={reject(e){a||(l(),i.emit(Cy.client.error,e,t),r(e))}};function l(){a=!0,p.delete(c),o&&clearTimeout(o)}p.add(c),s>0&&(o=setTimeout(()=>{c.reject(new US(`timeout`,`[devframe] RPC call "${t}" timed out after ${s}ms`))},s)),e.then(e=>{a||(l(),n(e))},e=>{if(a)return;l();let n=e instanceof Error?e:Error(String(e));i.emit(Cy.client.error,n,t),r(n)})})}let g=new Map;for(let e of r.jsonSerializableMethods??[])g.set(e,{jsonSerializable:!0});let te=e.createChannel({definitions:g,onError(e){f(`error`,e),i.emit(Cy.client.connectionError,e),m(new US(`connection`,`[devframe] Connection to the devframe server failed`,{cause:e}))},onDisconnected(){l!==`error`&&f(`disconnected`),m(new US(`connection`,`[devframe] Disconnected from the devframe server`,{cause:u??void 0}))}}),ne=nC(a.functions,{channel:te,rpcOptions:o});a.register({name:Cy.broadcast.authRevoked,type:`event`,handler:()=>{c=!1;let e=new US(`auth`,`[devframe] The devframe server revoked this client's trust`);f(`unauthorized`,e),i.emit(Cy.client.connectionError,e),m(e),i.emit(Cy.client.isTrustedUpdated,!1)}});let re=n;async function ie(e){re=e;let t=await ne.$call(`anonymous:devframe:auth`,{authToken:e,ua:navigator.userAgent,origin:location.origin});if(c=t.isTrusted,c)d.resolve(!0),f(`connected`);else{let e=new US(`auth`,`[devframe] The devframe server refused this client's credentials`);f(`unauthorized`,e),i.emit(Cy.client.connectionError,e)}return i.emit(Cy.client.isTrustedUpdated,c),t.isTrusted}async function ae(e){let t=(await ne.$call(`anonymous:devframe:auth:exchange`,{code:e,ua:navigator.userAgent,origin:location.origin}))?.authToken??null;return t&&(re=t,c=!0,d.resolve(!0),f(`connected`),i.emit(Cy.client.isTrustedUpdated,!0)),t}async function oe(e={}){await ne.$call(`anonymous:devframe:auth:request-code`,{ua:navigator.userAgent,origin:location.origin,...e.reissue?{reissue:!0}:{}})}async function se(){return c?!0:ie(re??``)}async function ce(e=6e4){if(c&&d.resolve(!0),e<=0)return d.promise;let t;try{return await Promise.race([d.promise,new Promise((n,r)=>{t=setTimeout(()=>{r(Error(`[devframe] Timeout waiting for rpc to be trusted`))},e)})]),c}finally{clearTimeout(t)}}return{transport:t,get isTrusted(){return c},get status(){return l},get connectionError(){return u},requestTrust:se,requestTrustWithToken:ie,requestTrustWithCode:ae,requestAuthCode:oe,ensureTrusted:ce,call:(...e)=>{let t=String(e[0]),n=ee();return n?(i.emit(Cy.client.error,n,t),Promise.reject(n)):h(ne.$call(...e),t)},callEvent:(...e)=>{let t=ee();if(t){i.emit(Cy.client.error,t,String(e[0]));return}return ne.$callEvent(...e)},callOptional:(...e)=>{let t=String(e[0]),n=ee();return n?(i.emit(Cy.client.error,n,t),Promise.reject(n)):h(ne.$callOptional(...e),t)},close:()=>{te.close()}}}function iC(e,t,n){let r=(()=>{try{return new URL(t,n.href)}catch{return new URL(n.href)}})();if(e&&typeof e==`object`){if(e.host!=null||e.port!=null){let t=e.host??`${r.hostname}:${e.port}`;return new URL(e.path??`/`,`${r.protocol}//${t}`).href}return new URL(e.path??``,r).href}let i=e??``;return/^https?:\/\//i.test(i)?i:new URL(i,r).href}function aC(e){let{authToken:t,connectionMeta:n,metaBaseUrl:r,events:i,clientRpc:a,rpcOptions:o={},sseOptions:s={},callTimeout:c=0}=e,l=iC(n.sse,r??`./`,location);return rC({transport:`sse`,authToken:t,connectionMeta:n,events:i,clientRpc:a,rpcOptions:o,callTimeout:c,createChannel:e=>tC({url:l,authToken:t,definitions:e.definitions,...s,onConnected(){s.onConnected?.()},onError(t){e.onError(t),s.onError?.(t)},onDisconnected(){e.onDisconnected(),s.onDisconnected?.()}})})}function oC(e){let{name:t,message:n,cause:r,...i}=e,a=r instanceof Error?r:sC(r)?oC(r):r,o=a===void 0?Error(n):Error(n,{cause:a});return o.name=t,Object.assign(o,i),o}function sC(e){return typeof e==`object`&&!!e&&typeof e.message==`string`&&typeof e.name==`string`}function cC(e){return typeof e==`object`&&!!e&&e.type===`static`&&typeof e.path==`string`}function lC(e){return typeof e==`object`&&!!e&&e.type===`query`&&typeof e.records==`object`&&e.records!==null}function uC(e){return typeof e==`object`&&!!e&&(`output`in e||`error`in e)}function dC(e){if(e.error)throw oC(e.error);return e.output}function fC(e){return e.some(e=>e!=null)}function pC(e){return typeof e==`object`&&e&&`serialization`in e&&`data`in e?e.data:e}function mC(e,t){let n=new Map,r=new Map;function i(e,t){return t===`structured-clone`&&Array.isArray(e)?Xx(e):e}function a(e,t){return i(pC(e),t)}async function o(e){n.has(e.path)||n.set(e.path,t(e.path).then(t=>a(t,e.serialization)));let r=await n.get(e.path);return uC(r)?dC(r):r}async function s(e,n){return r.has(e)||r.set(e,t(e).then(e=>a(e,n))),await r.get(e)}async function c(t,n){if(!(t in e))throw Error(`[devframe-rpc] Function "${t}" not found in dump store`);let r=e[t];if(cC(r)){if(fC(n))throw Error(`[devframe-rpc] No dump match for "${t}" with args: ${JSON.stringify(n)}`);return await o(r)}if(lC(r)){let e=Gy(n),i=r.records[e];if(i)return dC(await s(i,r.serialization));if(r.fallback)return dC(await s(r.fallback,r.serialization));throw Error(`[devframe-rpc] No dump match for "${t}" with args: ${JSON.stringify(n)}`)}if(!fC(n))return r;throw Error(`[devframe-rpc] No dump match for "${t}" with args: ${JSON.stringify(n)}`)}return{call:async(e,t)=>await c(e,t),callOptional:async(t,n)=>{if(t in e)return await c(t,n)},callEvent:async(e,t)=>{}}}async function hC(e){let t=mC(await e.fetchJsonFromBases(pS),e.fetchJsonFromBases);return{transport:`static`,isTrusted:!0,status:`connected`,connectionError:null,requestTrust:async()=>!0,requestTrustWithToken:async()=>!0,requestTrustWithCode:async()=>null,requestAuthCode:async()=>{},ensureTrusted:async()=>!0,call:(...e)=>t.call(e[0],e.slice(1)),callEvent:(...e)=>t.callEvent(e[0],e.slice(1)),callOptional:(...e)=>t.callOptional(e[0],e.slice(1)),close:()=>{}}}var gC=``;function _C(e,t){return`${e}${gC}${t}`}function vC(e){let t=new Map,n=new Map;e.client.register({name:Cy.broadcast.streamingChunk,type:`event`,handler(e,n,r,i){t.get(_C(e,n))?._push(r,i)}}),e.client.register({name:Cy.broadcast.streamingEnd,type:`event`,handler(e,n,r){let i=_C(e,n),a=t.get(i);a&&(a._end(r),t.delete(i))}}),e.client.register({name:Cy.broadcast.streamingUploadCancel,type:`event`,handler(e,t){let r=_C(e,t),i=n.get(r);i&&(i.abort(`server cancelled upload`),n.delete(r))}}),e.events.on(Cy.client.isTrustedUpdated,n=>{if(n)for(let[n,r]of t){if(r.cancelled||r.done)continue;let t=n.indexOf(gC);if(t<0)continue;let i=n.slice(0,t),a=n.slice(t+1);e.callEvent(`devframe:streaming:subscribe`,i,a,{afterSeq:r.lastSeenSeq})}});function r(n,r,i={}){let a=_C(n,r),o=t.get(a);if(o)return o;let s=nS({id:r,highWaterMark:i.highWaterMark,onOverflow(e){console.warn(`[devframe] DF0029: Stream "${n}#${r}" dropped ${e} chunk(s) after exceeding the client high-water mark.`)},onCancel(){e.callEvent(`devframe:streaming:cancel`,n,r),t.delete(a)}});if(t.set(a,s),e.isTrusted)e.callEvent(`devframe:streaming:subscribe`,n,r,{afterSeq:0});else{let i=e.events.on(Cy.client.isTrustedUpdated,o=>{o&&(i(),t.has(a)&&!s.cancelled&&!s.done&&e.callEvent(`devframe:streaming:subscribe`,n,r,{afterSeq:s.lastSeenSeq}))})}return s}function i(t,r){let i=_C(t,r),a=n.get(i);if(a)return a;let o=tS({id:r});return o.events.on(`chunk`,(n,i)=>{e.callEvent(`devframe:streaming:upload-chunk`,t,r,n,i)}),o.events.on(`end`,a=>{e.callEvent(`devframe:streaming:upload-end`,t,r,a),n.delete(i)}),n.set(i,o),o}return{subscribe:r,upload:i}}function yC(){}var bC=new Map;function xC(e){let t=e.url;e.authToken&&(t=`${t}?${gS}=${encodeURIComponent(e.authToken)}`);let n=new WebSocket(t),{onConnected:r=yC,onError:i=yC,onDisconnected:a=yC,definitions:o=bC}=e;n.addEventListener(`open`,e=>{r(e)}),n.addEventListener(`error`,e=>{let t=e instanceof Error?e:Error(e.type);i(t)}),n.addEventListener(`close`,e=>{a(e)});let s=ZS(o);return{close:()=>{n.close()},on:e=>{n.addEventListener(`message`,t=>{e(t.data)})},post:e=>{if(n.readyState===WebSocket.OPEN){n.send(e);return}if(n.readyState===WebSocket.CONNECTING){let t=()=>{i(),n.readyState===WebSocket.OPEN&&n.send(e)},r=()=>i();function i(){n.removeEventListener(`open`,t),n.removeEventListener(`close`,r)}n.addEventListener(`open`,t),n.addEventListener(`close`,r);return}i(Error(`Devframe WebSocket is not open; message dropped`))},serialize:s.serialize,deserialize:s.deserialize}}function SC(e,t,n){let r=(()=>{try{return new URL(t,n.href)}catch{return new URL(n.href)}})(),i=r.protocol===`https:`?`wss:`:`ws:`;if(e&&typeof e==`object`){if(e.host!=null||e.port!=null){let t=e.host??`${r.hostname}:${e.port}`,n=new URL(e.path??`/`,`${i}//${t}`);return n.protocol=i,n.href}let t=new URL(e.path??``,r);return t.protocol=i,t.href}if(typeof e==`number`)return`${i}//${r.hostname}:${e}`;let a=e??``;if(/^wss?:\/\//i.test(a))return a;if(/^https?:\/\//i.test(a))return Qy(a,/^https/i.test(a)?`wss://`:`ws://`);let o=new URL(a,r);return o.protocol=i,o.href}function CC(e){let{authToken:t,connectionMeta:n,metaBaseUrl:r,events:i,clientRpc:a,rpcOptions:o={},wsOptions:s={},callTimeout:c=0}=e,l=SC(n.websocket,r??`./`,location);return rC({transport:`websocket`,authToken:t,connectionMeta:n,events:i,clientRpc:a,rpcOptions:o,callTimeout:c,createChannel:e=>xC({url:l,authToken:t,definitions:e.definitions,...s,onConnected(e){s.onConnected?.(e)},onError(t){e.onError(t),s.onError?.(t)},onDisconnected(t){e.onDisconnected(),s.onDisconnected?.(t)}})})}function wC(e){return e.includes(`:`)}function TC(e,t){return wC(t)?t:`${e}:${t}`}function EC(e){return{async get(t){return(await e()).value()?.[t]},async set(t,n){(await e()).mutate(e=>{if(e===void 0)return{[t]:n};e[t]=n})},async delete(t){(await e()).mutate(e=>{e!==void 0&&delete e[t]})},async all(){return(await e()).value()??{}},async onChange(t){return(await e()).on(`updated`,e=>t(e??{}))}}}function DC(e,t,n){let r=`devframe:settings:${n}:${t}`,i;function a(){return i||=(async()=>(await e.ensureTrusted(),e.sharedState.get(r)))().catch(e=>{throw i=void 0,e}),i}return EC(a)}function OC(e,t){return{global:DC(e,t,`global`),project:DC(e,t,`project`)}}function kC(e,t){return{namespace:t,base:e,rpc:{namespace:t,register(n){if(wC(n.name))throw Error(`[devframe] Scoped client RPC registration for namespace "${t}" received an already-namespaced function name "${n.name}". Pass a bare name without a ":" separator.`);e.client.register({...n,name:`${t}:${n.name}`})},call:((n,...r)=>e.call(TC(t,n),...r)),callEvent:((n,...r)=>e.callEvent(TC(t,n),...r)),callOptional:((n,...r)=>e.callOptional(TC(t,n),...r)),sharedState:((n,r)=>e.sharedState.get(TC(t,n),r)),streaming:{subscribe:(n,r,i)=>e.streaming.subscribe(TC(t,n),r,i),upload:(n,r)=>e.streaming.upload(TC(t,n),r)}},settings:OC(e,t),scope:e.scope}}function AC(){if(typeof document<`u`){let e=document.modelContext;if(e)return e}if(typeof navigator<`u`){let e=navigator.modelContext;if(e)return e}}function jC(e,t={}){let n=t.modelContext??AC();if(!n)return()=>{};let r=n,i=new Map,a=new Map;function o(t,n){let o=aS(t.name),s=a.get(o);if(s&&s!==t.name){console.warn(`[devframe] WebMCP tool name "${o}" (from "${t.name}") collides with "${s}"; keeping the first registration.`);return}let c=new AbortController,l=Ey(t.type,n),u=r.registerTool({name:o,description:n.description,inputSchema:ky(t.args),annotations:{title:n.title??t.name,readOnlyHint:l===`read`,destructiveHint:l===`destructive`},execute:n=>MC(t,e.context,n)},{signal:c.signal});u&&`then`in u&&u.then(()=>{},()=>{}),a.set(o,t.name),i.set(t.name,()=>{c.abort(),u&&`unregister`in u&&typeof u.unregister==`function`&&u.unregister(),a.delete(o)})}function s(t){let n=t?[t]:[...e.definitions.keys()];for(let t of n){i.get(t)?.(),i.delete(t);let n=e.definitions.get(t),r=n?.agent;n&&r&&o(n,r)}}s();let c=e.onChanged(e=>s(e));return()=>{c();for(let e of i.values())e();i.clear()}}async function MC(e,t,n){try{let r=jy(n,e.args?.length);return{content:[{type:`text`,text:NC(await(await TS(e,t))(...r))}]}}catch(e){return{isError:!0,content:[{type:`text`,text:PC(e)}]}}}function NC(e){return e===void 0?`undefined`:typeof e==`string`?e:JSON.stringify(e,null,2)}function PC(e){if(!(e instanceof Error))return String(e);let t=e.cause instanceof Error?` (cause: ${e.cause.message})`:``;return`${e.name}: ${e.message}${t}`}function FC(e,t){if(t.backend===`static`)return`static`;let n=t.websocket!==void 0,r=t.sse!==void 0;if(e===`websocket`){if(!n)throw Error(`[devframe] transport: 'websocket' was requested, but this server does not advertise a WebSocket endpoint`);return`websocket`}if(e===`sse`){if(!r)throw Error(`[devframe] transport: 'sse' was requested, but this server does not advertise an SSE endpoint`);return`sse`}if(t.backend===`sse`&&r)return`sse`;if(n)return`websocket`;if(r)return`sse`;throw Error(`[devframe] This server advertises no RPC transport (backend "none"), so there is nothing to connect to. Enable the WebSocket or SSE endpoint on the server, or use its static/MCP surfaces instead.`)}async function IC(e={}){let{baseURL:t=`./`,rpcOptions:n={},cacheOptions:r=!1}=e,i=Ky(),a=Array.isArray(t)?t:[t],o=await HS(e),{connectionMeta:s,metaBaseUrl:c,authToken:l}=o,u=a[0]??`./`;try{u=new URL(`.`,c).href}catch{}let d=new _S({functions:[],...typeof e.cacheOptions==`object`?e.cacheOptions:{}}),f={rpc:void 0},p=new ES(f),m=e.webmcp===!1?void 0:jC(p),ee,h=!1,g=0,te;function ne(){g++,te=void 0,d.clear(),r===!0&&d.updateOptions({functions:[]})}r&&(p.register({name:Cy.broadcast.cacheInvalidate,type:`event`,handler:ne}),i.on(Cy.client.connectionStatus,ne),i.on(Cy.client.isTrustedUpdated,ne));async function re(e){let t=[u,...a.filter(e=>e!==u)].filter(e=>e!=null),n=[];for(let r of t)try{return await fetch(Zy(e,r)).then(t=>{if(!t.ok)throw Error(`Failed to fetch ${e} from ${r}: ${t.status}`);return t.json()})}catch(e){n.push(e)}throw Error(`Failed to load ${e} from ${t.join(`, `)}`,{cause:n})}let ie=e.callTimeout??0,ae=ie>0?ie:1/0,oe,se={authToken:l,connectionMeta:s,metaBaseUrl:c,events:i,clientRpc:p,callTimeout:e.callTimeout,rpcOptions:{...n,async onRequest(e,t,i){let a=performance.now()+ae;if(await n.onRequest?.call(this,e,t,i),r===!0&&e.i&&oe.isTrusted&&!e.m.startsWith(`anonymous:`)&&e.m!==`devframe:rpc:cacheable-functions`){function t(){if(performance.now()>=a)throw new US(`timeout`,`[devframe] RPC call "${e.m}" timed out after ${ie}ms`)}for(;!te&&(t(),!(h||oe.status!==`connected`));){let e=g;te=oe.callOptional(`devframe:rpc:cacheable-functions`).then(t=>{e===g&&d.updateOptions({functions:t??[]})}).catch(t=>{throw e===g&&(te=void 0),t}),await te}await te,t()}let o=g;if(r&&e.i&&!h&&oe.isTrusted&&d.validate(e.m)){if(d.has(e.m,e.a))return i(d.cached(e.m,e.a));let n=await t(e);o===g&&!h&&d.apply(e,n)}else await t(e)}}},ce=FC(e.transport??`auto`,s);oe=ce===`static`?await hC({fetchJsonFromBases:re}):ce===`sse`?aC({...se,sseOptions:e.sseOptions}):CC({...se,wsOptions:e.wsOptions});let le;try{le=new BroadcastChannel(`devframe-auth`)}catch{}let ue,de=!1;function fe(e){return((...t)=>de||!ue?e(...t):ue.then(()=>e(...t)))}function pe(){h=!0,ne();try{ee?.(),m?.()}finally{try{le?.close()}finally{oe.close?.()}}}let me={events:i,get isTrusted(){return oe.isTrusted},get status(){return oe.status},get connectionError(){return oe.connectionError},get transport(){return oe.transport??ce},get connection(){return o},connectionMeta:s,ensureTrusted:oe.ensureTrusted,requestTrust:oe.requestTrust,requestTrustWithToken:async e=>(RS(e),o={...o,authToken:e},oe.requestTrustWithToken(e)),requestTrustWithCode:async e=>{let t=await oe.requestTrustWithCode(e);if(!t)return!1;RS(t),o={...o,authToken:t};try{le?.postMessage({type:`auth-update`,authToken:t})}catch{}return!0},requestAuthCode:e=>oe.requestAuthCode(e),call:fe(oe.call),callEvent:fe(oe.callEvent),callOptional:fe(oe.callOptional),client:p,sharedState:void 0,services:void 0,streaming:void 0,cacheManager:d,scope:void 0,close:pe};me.sharedState=YS(me),me.streaming=vC(me),me.services=JS(me);let he=new Map;me.scope=(e=>{if(!e)return me;let t=he.get(e);return t||(t=kC(me,e),he.set(e,t)),t}),f.rpc=me;function ge(){try{return typeof window<`u`&&window.self===window.top}catch{return!1}}async function _e(){if(e.simpleAuth!==!1&&ge()&&typeof globalThis.prompt==`function`)for(await me.requestAuthCode().catch(()=>{});!me.isTrusted;){let e=globalThis.prompt(`devframe: enter the authentication code shown in your terminal`);if(e==null)return;let t=e.trim();if(t&&await me.requestTrustWithCode(t))return}}async function ve(){let t=await oe.requestTrust(),n=e.otpParam??`devframe_otp`,r=n?await qS(me,{param:n}):!1;t||r||me.isTrusted||await _e()}return ue=ve().then(()=>{de=!0},()=>{de=!0}),s.mcp&&lS(async()=>{let{setupBrowserAgentRpcBridge:e}=await import(`./browser-agent-rpc-KH4HHvHf-DF8dhgzY.js`);return{setupBrowserAgentRpcBridge:e}},[],import.meta.url).then(({setupBrowserAgentRpcBridge:e})=>{h||(ee=e(me))}).catch(()=>{}),le&&(le.onmessage=e=>{e.data?.type===`auth-update`&&e.data.authToken&&me.requestTrustWithToken(e.data.authToken)}),me}var LC=IC,RC=[`components`,`injectors`,`signals`,`ngrx`,`tanstackQuery`,`forms`,`router`,`pipes`,`http`,`analog`,`capacitor`,`errors`,`plugins`,`performance`,`build`],zC=[`angular`,`ngrx`,`analog`,`angular-native`,`nativescript`,`capacitor`];function BC(e){return`pangular:${e}`}var VC=[`forms`,`router`,`ngrx`,`http`,`analog`,`components`,`tanstackQuery`,`plugins`],HC={refreshMs:{default:3e3,min:500,max:8e3},navigations:{default:50,min:5,max:500},formTimeline:{default:200,min:10,max:2e3},httpCalls:{default:200,min:10,max:2e3},changeLog:{default:200,min:10,max:2e3},cdCycles:{default:200,min:10,max:2e3},cdSlowMs:{default:16,min:1,max:1e3},capacitorCalls:{default:200,min:10,max:2e3},idleAfterMs:{default:6e4,min:0,max:6e5}},UC={"opted-out":`the request sets transferCache: false`,post:`POST requests are left out unless includePostRequests is set`,method:`only GET, HEAD and POST requests are cached`,"auth-headers":`it sends an Authorization, Proxy-Authorization or Cookie header`,credentials:`it sends credentials (withCredentials or credentials: include/same-origin)`,"no-cache-request":`the request asks for no-store, no-cache or private`,"no-cache-response":`the response has Cache-Control no-store, no-cache or private`,"set-cookie":`the response sets a cookie`,error:`failed responses are not stored`,mocked:`a fault rule answered before the transfer cache ran`,filter:`the transferCache filter passed to withPangular() left it out`,"cache-off-or-filter":`the transfer cache is off, or its filter (or another withHttpTransferCacheOptions setting) left it out`},WC=[[0,`Network error (offline)`],[200,`OK`],[201,`Created`],[202,`Accepted`],[203,`Non-Authoritative Information`],[204,`No Content`],[205,`Reset Content`],[206,`Partial Content`],[207,`Multi-Status`],[208,`Already Reported`],[226,`IM Used`],[300,`Multiple Choices`],[301,`Moved Permanently`],[302,`Found`],[303,`See Other`],[304,`Not Modified`],[307,`Temporary Redirect`],[308,`Permanent Redirect`],[400,`Bad Request`],[401,`Unauthorized`],[402,`Payment Required`],[403,`Forbidden`],[404,`Not Found`],[405,`Method Not Allowed`],[406,`Not Acceptable`],[407,`Proxy Authentication Required`],[408,`Request Timeout`],[409,`Conflict`],[410,`Gone`],[411,`Length Required`],[412,`Precondition Failed`],[413,`Content Too Large`],[414,`URI Too Long`],[415,`Unsupported Media Type`],[416,`Range Not Satisfiable`],[417,`Expectation Failed`],[418,`I'm a Teapot`],[421,`Misdirected Request`],[422,`Unprocessable Content`],[423,`Locked`],[424,`Failed Dependency`],[425,`Too Early`],[426,`Upgrade Required`],[428,`Precondition Required`],[429,`Too Many Requests`],[431,`Request Header Fields Too Large`],[451,`Unavailable For Legal Reasons`],[499,`Client Closed Request`],[500,`Internal Server Error`],[501,`Not Implemented`],[502,`Bad Gateway`],[503,`Service Unavailable`],[504,`Gateway Timeout`],[505,`HTTP Version Not Supported`],[506,`Variant Also Negotiates`],[507,`Insufficient Storage`],[508,`Loop Detected`],[510,`Not Extended`],[511,`Network Authentication Required`],[520,`Web Server Returned an Unknown Error`],[521,`Web Server Is Down`],[522,`Connection Timed Out`],[523,`Origin Is Unreachable`],[524,`A Timeout Occurred`]];function GC(e){return WC.some(([t])=>t===e)}var KC=/^[a-z][a-z0-9-]{0,39}$/;function qC(e,t){let n=t.plugins?.[e],r=t.inspectors.plugins&&KC.test(e)&&(n?.enabled??!0);return{enabled:r,tools:r&&t.agent.tools.plugins&&(n?.tools??!0),actions:r&&t.actions.plugins&&(n?.actions??!0)}}var JC=`pangular`,YC={mod:`Mod`,ctrl:`Ctrl`,control:`Ctrl`,meta:`Meta`,cmd:`Meta`,command:`Meta`,alt:`Alt`,option:`Alt`,opt:`Alt`,shift:`Shift`},XC=[`Mod`,`Ctrl`,`Meta`,`Alt`,`Shift`];function ZC(e){if(typeof e!=`string`||e.length>40)return;let t=e.split(`+`).map(e=>e.trim());if(t.some(e=>!e))return;let n=new Set,r;for(let e of t){let t=YC[e.toLowerCase()];if(t){if(n.has(t))return;n.add(t);continue}if(r!==void 0)return;if(/^[a-z0-9]$/i.test(e))r=e.toUpperCase();else if(/^f([1-9]|1[0-2])$/i.test(e))r=e.toUpperCase();else return}if(r&&[...n].some(e=>e!==`Shift`)&&!(n.has(`Mod`)&&(n.has(`Ctrl`)||n.has(`Meta`))))return[...XC.filter(e=>n.has(e)),r].join(`+`)}function QC(e,t,n){let r=t.split(`+`),i=r.pop(),a=new Set(r),o=a.has(`Ctrl`)||a.has(`Mod`)&&!n,s=a.has(`Meta`)||a.has(`Mod`)&&n;if(e.ctrlKey!==o||e.metaKey!==s||e.altKey!==a.has(`Alt`)||e.shiftKey!==a.has(`Shift`))return!1;if(/^F\d+$/.test(i))return e.key.toUpperCase()===i;let c=/^\d$/.test(i)?`Digit${i}`:`Key${i}`;return e.code?e.code===c:e.key.toUpperCase()===i}function $C(e,t){if(!t)return e.replace(/^Mod\b/,`Ctrl`);let n={Mod:`⌘`,Meta:`⌘`,Ctrl:`⌃`,Alt:`⌥`,Shift:`⇧`};return e.split(`+`).map(e=>n[e]??e).join(``)}var ew=[{id:`dashboard`,label:`Dashboard`},{id:`timeline`,label:`Timeline`},{id:`audit`,label:`Audit`},{id:`analog`,label:`Analog`,inspector:`analog`},{id:`components`,label:`Components`,inspector:`components`},{id:`routes`,label:`Routes`,inspector:`router`},{id:`signals`,label:`Signals`,inspector:`signals`},{id:`injectors`,label:`Injectors`,inspector:`injectors`},{id:`store`,label:`Store`,inspector:`ngrx`},{id:`queries`,label:`Queries`,inspector:`tanstackQuery`},{id:`forms`,label:`Forms`,inspector:`forms`},{id:`pipes`,label:`Pipes`,inspector:`pipes`},{id:`network`,label:`SSR & HTTP`,inspector:`http`},{id:`errors`,label:`Errors`,inspector:`errors`},{id:`performance`,label:`Performance`,inspector:`performance`},{id:`build`,label:`Build`,inspector:`build`},{id:`capacitor`,label:`Capacitor`,inspector:`capacitor`},{id:`plugins`,label:`Plugins`,inspector:`plugins`}],tw=1e4;function nw(e){return ew.filter(t=>!(`inspector`in t)||e.inspectors[t.inspector])}var rw={components:`a component instance, by its id in the component tree`,injectors:`a component's element injector, by the component's id`,signals:`a component's signal graph, by the component's id`,forms:`a form, by its id`},iw=200;function aw(e){let t=new URLSearchParams({tab:e.tab});return e.id&&t.set(`id`,e.id),e.page&&t.set(`page`,e.page),`#${t.toString()}`}function ow(e){let t=new URLSearchParams(e.replace(/^#/,``)),n=e=>{let n=t.get(e)?.trim();return n&&n.length<=iw?n:void 0},r=n(`tab`);if(!r)return null;let i=n(`id`),a=n(`page`);return{tab:r,...i?{id:i}:{},...a?{page:a}:{}}}var sw=[{id:`settings`,title:`Open settings`,group:`Go to`,keywords:`preferences tabs`},{id:`pick-component`,title:`Pick component on page`,group:`Actions`,keywords:`select inspect element`,inspector:`components`},{id:`cd-record-start`,title:`Start recording change detection`,group:`Actions`,keywords:`profiler cycles`,inspector:`components`},{id:`cd-record-stop`,title:`Stop recording change detection`,group:`Actions`,keywords:`profiler cycles`,inspector:`components`},{id:`cd-clear`,title:`Clear change detection recording`,group:`Actions`,keywords:`reset recordings cycles`,inspector:`components`},{id:`theme:system`,title:`Theme: follow the system`,group:`Theme`,keywords:`auto`},{id:`theme:light`,title:`Theme: light`,group:`Theme`},{id:`theme:dark`,title:`Theme: dark`,group:`Theme`},{id:`dock:float`,title:`Popup: float`,group:`Popup`,keywords:`dock`,popupOnly:!0},{id:`dock:bottom`,title:`Popup: dock to the bottom`,group:`Popup`,keywords:`dock`,popupOnly:!0},{id:`dock:right`,title:`Popup: dock to the right`,group:`Popup`,keywords:`dock`,popupOnly:!0},{id:`dock:reset-size`,title:`Popup: reset the docked size`,group:`Popup`,keywords:`splitter resize height width`,popupOnly:!0},{id:`popout`,title:`Popup: open in its own window`,group:`Popup`,keywords:`pop out detach new window`,popupOnly:!0},{id:`popout:return`,title:`Popup: back into the page`,group:`Popup`,keywords:`pop in attach dock window`,popupOnly:!0}];function cw(e){let t=nw(e).map(e=>({id:`tab:${e.id}`,title:`Go to ${e.label}`,group:`Go to`,keywords:`tab open`})),n=sw.filter(t=>!t.inspector||e.inspectors[t.inspector]).map(({inspector:e,...t})=>t);return[...t,...n]}function lw(e){return e&&typeof e==`object`&&!Array.isArray(e)?e:{}}var uw=Object.freeze({minLength:24,threshold:4.5}),dw={min:16,max:512},fw={min:2,max:6};function pw(e){return typeof e==`number`&&Number.isInteger(e)&&e>=dw.min&&e<=dw.max}function mw(e){return typeof e==`number`&&Number.isFinite(e)&&e>=fw.min&&e<=fw.max}function hw(e){if(e===!0)return{...uw};if(!e||typeof e!=`object`||Array.isArray(e))return;let{minLength:t,threshold:n}=e;return{minLength:pw(t)?t:uw.minLength,threshold:mw(n)?n:uw.threshold}}function gw(e){let t=hw(e);return t?{entropy:t}:{}}function _w(e,t){return typeof e==`boolean`?e:t}var vw=100,yw=100;function bw(e){if(!Array.isArray(e))return[];let t=e.filter(e=>typeof e==`string`).map(e=>e.trim()).filter(e=>e&&e.length<=yw);return[...new Set(t)].slice(0,vw)}function xw(e,t){let{default:n,min:r,max:i}=HC[t];return typeof e!=`number`||!Number.isFinite(e)?n:Math.min(i,Math.max(r,Math.round(e)))}function Sw(e,t){return Object.fromEntries(e.map(e=>[e,t(e)]))}function Cw(e){let t=lw(e),n=lw(t.agent),r=lw(t.inspectors),i=lw(n.tools),a=lw(t.actions),o=_w(t.actions,!0),s=lw(t.redaction),c=lw(t.limits),l=Sw(RC,e=>_w(r[e],!0));return{inspectors:l,agent:{readOnly:_w(n.readOnly,!1),tools:Sw(RC,e=>l[e]&&_w(i[e],!0)),browserTools:_w(n.browserTools,!1)},actions:Sw(VC,e=>l[e]&&_w(a[e],o)),redaction:{secretNames:bw(s.secretNames),unmask:bw(s.unmask),...gw(s.entropy)},limits:Object.fromEntries(Object.keys(HC).map(e=>[e,xw(c[e],e)])),popup:{hotkey:Aw(lw(t.popup).hotkey)},plugins:kw(t.plugins),lint:{rules:Dw(t.lint)},analog:Tw(t.analog),ngrx:{trace:_w(lw(t.ngrx).trace,!1)}}}var ww=500;function Tw(e){let t=lw(e).contentSchema;return typeof t==`string`&&t.trim()&&t.length<=ww?{contentSchema:t.trim()}:{}}var Ew=200;function Dw(e){let t=lw(lw(e).rules),n={};for(let[e,r]of Object.entries(t).slice(0,Ew))typeof r==`boolean`&&(n[e]=r);return n}var Ow=100;function kw(e){let t={};for(let[n,r]of Object.entries(lw(e)).slice(0,Ow)){if(!KC.test(n))continue;if(typeof r==`boolean`){t[n]={enabled:r,tools:!0,actions:!0};continue}let e=lw(r);r!==void 0&&Object.keys(e).length&&(t[n]={enabled:_w(e.enabled,!0),tools:_w(e.tools,!0),actions:_w(e.actions,!0)})}return t}function Aw(e){return e===!1?!1:ZC(e)??`Alt+Shift+P`}function jw(e){let t=e?.configs;return Cw(t?.[JC])}function Mw(e){return`${{forms:`Writing to forms`,router:`Navigating and clearing navigations`,ngrx:`Restoring NgRx state, dispatching actions and changing the Store DevTools history`,http:`Changing HTTP mock rules and SSR overrides, refetching the TransferState payload, and clearing HTTP calls`,analog:`Calling API routes, clearing server calls, running Nitro tasks and purging the Nitro cache`,components:`Editing component properties and signals`,tanstackQuery:`Invalidating and refetching TanStack queries`,plugins:`Running plugin actions`}[e]} is turned off in the devtools config (actions.${e}).`}var Nw=[`pangular:build-meta`],Pw={components:`Components`,injectors:`Injectors`,signals:`Signals`,ngrx:`NgRx`,tanstackQuery:`TanStack Query`,forms:`Forms`,router:`Router`,pipes:`Pipes`,http:`HTTP`,analog:`Analog`,capacitor:`Capacitor`,errors:`Errors`,plugins:`Plugins`,performance:`Performance`,build:`Build`},Fw={forms:`Form writes`,router:`Navigation`,ngrx:`NgRx restore, dispatch and Store DevTools`,http:`HTTP mocking`,analog:`Analog API calls`,components:`Component edits`,tanstackQuery:`TanStack Query invalidate and refetch`,plugins:`Plugin actions`},Iw={refreshMs:e=>`poll every ${e} ms`,navigations:e=>`${e} navigations`,formTimeline:e=>`${e} form events`,httpCalls:e=>`${e} HTTP calls`,changeLog:e=>`${e} NgRx changes`,cdCycles:e=>`${e} change detection cycles`,cdSlowMs:e=>`slow cycles over ${e} ms`,capacitorCalls:e=>`${e} Capacitor plugin calls`,idleAfterMs:e=>e?`idle ${e/1e3} s after the last agent call`:`never idle`};function Lw(e){if(!e)return[];let t=[`On`];return e.minLength!==uw.minLength&&t.push(`${e.minLength} characters or more`),e.threshold!==uw.threshold&&t.push(`up to ${e.threshold} bits per character`),t}function Rw(e){let t=[],n=(e,n)=>{n.length&&t.push({label:e,value:n.join(`, `)})},r=RC.filter(t=>e.inspectors[t]);n(`Inspectors off`,RC.filter(t=>!e.inspectors[t]).map(e=>Pw[e])),n(`Agent`,e.agent.readOnly?[`Read-only`]:[]),n(`Hidden from the agent`,r.filter(t=>!e.agent.tools[t]).map(e=>Pw[e])),n(`Blocked actions`,VC.filter(t=>e.inspectors[t]&&!e.actions[t]).map(e=>Fw[e])),n(`Extra secret names`,e.redaction.secretNames),n(`Unmasked names`,e.redaction.unmask),n(`Entropy masking`,Lw(e.redaction.entropy)),n(`Limits`,Object.keys(HC).filter(t=>e.limits[t]!==HC[t].default).map(t=>Iw[t](e.limits[t]))),e.popup.hotkey!==`Alt+Shift+P`&&n(`Popup shortcut`,[e.popup.hotkey===!1?`Off`:e.popup.hotkey]);let i=Object.entries(e.plugins??{});return n(`Plugins off`,i.filter(([,e])=>!e.enabled).map(([e])=>e)),n(`Plugin tools or actions off`,i.filter(([,e])=>e.enabled&&(!e.tools||!e.actions)).map(([e,t])=>`${e} (${[!t.tools&&`tools`,!t.actions&&`actions`].filter(Boolean).join(`, `)})`)),n(`Lint rules off`,Object.entries(e.lint?.rules??{}).filter(([,e])=>!e).map(([e])=>e)),t}function zw(e){let t={tags:[],directives:[],text:``},n=e.toLowerCase();return n=n.replace(/<\s*([^<>\s]+)\s*>/g,(e,n)=>(t.tags.push({value:n,exact:!0}),` `)),n=n.replace(/\[\s*([^[\]\s]+)\s*\]/g,(e,n)=>(t.directives.push({value:n,exact:!0}),` `)),n=n.replace(/(^|\s)([<[])([^<>[\]\s]*)$/,(e,n,r,i)=>(i&&(r===`<`?t.tags:t.directives).push({value:i,exact:!1}),n)),t.text=n.replace(/\s+/g,` `).trim(),t}function Bw(e){return!e.tags.length&&!e.directives.length&&!e.text}function Vw(e,t){let n=e.tag.toLowerCase(),r=(e.directives??[]).map(e=>e.toLowerCase()),i=(e.attributes??[]).map(e=>e.toLowerCase()),a=[...r,...r.map(e=>e.replace(/directive$/,``)),...i];for(let{value:e,exact:r}of t.tags)if(r?n!==e:!n.startsWith(e))return!1;for(let{value:e,exact:n}of t.directives)if(!a.some(t=>n?t===e:t.includes(e)))return!1;if(t.text){let a=t.text;if(!(e.name.toLowerCase().includes(a)||n.includes(a)||r.some(e=>e.includes(a))||i.some(e=>e.includes(a))))return!1}return!0}var Hw={debugApi:{subject:`Live data`,since:`12.0`},injectorProviders:{subject:`Reading providers and environment injectors`,since:`16.2`},injectorMetadata:{subject:`The full injector tree`,since:`17.0`},isSignal:{subject:`Telling signals apart in component values`,since:`17.1`},signalGraph:{subject:`The live signal graph`,since:`20.1`},deferBlocks:{subject:`Listing @defer blocks`,since:`19.1`},forBlocks:{subject:`Listing @for blocks`,since:`22.0`},profiler:{subject:`Recording change detection`,since:`20.0`},angularProfiling:{subject:`Angular profiling`,since:`20.0`},routerInstance:{subject:`The router debug util`,since:`20.3`}};function Uw(e){let t=/^(\d+)\.(\d+)/.exec(e.trim());return t?`${t[1]}.${t[2]}`:e.trim()}function Ww(e){let t=/^(\d+)(?:\.(\d+))?/.exec(e.trim());return t?[Number(t[1]),Number(t[2]??0)]:null}function Gw(e,t){let n=Ww(e),r=Ww(t);return!n||!r?!1:n[0]===r[0]?n[1]>=r[1]:n[0]>r[0]}function Kw(e,t){return e?.capabilities?.[t]===!1}function qw(e,t){let n=Hw[e],r=`${n.subject} needs Angular ${n.since} or later`;if(!t)return`${r}; this page's Angular version is unknown.`;let i=Uw(t);return Gw(t,n.since)?`${r} in a development build; this page runs Angular ${i} without it, which usually means a production build.`:`${r}; this page runs Angular ${i}.`}function Jw(e){return e.hydration===`hydrated`&&e.hydratedAt===void 0?`hydrated before inspection`:e.hydration}var Yw=/^on (viewport|interaction|hover)\b/;function Xw(e){let t=e.filter(e=>!/^(prefetch|hydrate) /.test(e));return t.length>0&&t.every(e=>Yw.test(e))}function Zw(e,t){let n=[],r=e.since>0?Math.max(0,Math.round((t-e.since)/1e3)):0;return e.state===`error`&&n.push({kind:`failed`,text:`failed to load`,label:`failed`}),(e.state===`placeholder`||e.state===`initial`)&&r*1e3>=1e4&&n.push(Xw(e.triggers)?{kind:`waiting`,text:`waiting for its trigger for ${r}s`,label:`waiting ${r}s`,seconds:r}:{kind:`stuck`,text:`on its placeholder for ${r}s`,label:`stuck ${r}s`,seconds:r}),e.hydrateNever?n.push({kind:`hydrate-never`,text:`hydrate never: the server HTML stays static`,label:`hydrate never`}):e.hydration===`dehydrated`&&n.push({kind:`dehydrated`,text:`still dehydrated`,label:`dehydrated`}),n}var Qw=`pangular-page-id`,$w=null;function eT(e){$w=e}function tT(){if($w)return $w;try{return new URLSearchParams(location.search).get(`pageId`)||(window.top===window?null:sessionStorage.getItem(Qw)||null)}catch{return null}}function nT(e,t){if(t.chosen&&e[t.chosen])return t.chosen;if(t.host)return t.host;if(t.previous&&e[t.previous])return t.previous;let n=null;for(let t of Object.values(e))(!n||t.reportedAt>n.reportedAt)&&(n=t);return n?.pageId??null}function rT(e,t){return e?t?e.pages?.[t]??null:e:null}function iT(e,t){return e?t?e.pages?.[t]??null:e.graph??null:null}function aT(){return{functions:[...Nw]}}function oT(e,t,n){return e?e.scope(`pangular`).rpc.call(t,...n===void 0?[]:[n]):Promise.resolve(null)}function sT(e,t,n){return oT(e,t,n).then(e=>e,()=>null)}function cT(e){return e?.connectionMeta.backend===`static`}function lT(e){let t=()=>{let t=e()?.scope(`pangular`).rpc;t&&(t.callEvent(`request-page-highlight`,null),t.callEvent(`request-form-highlight`,null))};return addEventListener(`pagehide`,t),()=>{removeEventListener(`pagehide`,t),t()}}function uT(e=globalThis){delete e.__DEVFRAME_CONNECTION__,delete e.__DEVFRAME_CONNECTION_META__}function dT(e){return e.split(`@`)[1]??``}var fT={signal:`Signal Forms`,reactive:`Reactive`,template:`Template-driven`},pT={own:`validator`,directive:`template attribute`,tree:`cross-field rule`,async:`async`,parse:`parse`,submission:`server`,schema:`schema`,manual:`setErrors`},mT=sT,hT={key:`name looks secret`,"input-type":`password input`,autocomplete:`autocomplete is a secret kind`,marker:`marked as mask`,parent:`inside a secret group`,config:`listed in mask`};function gT(e){return hT[e]??e}var _T=`https://pangular-inspector.dev/security/#opt-fields-in-or-out`;async function vT(e,t){return await mT(e,`request-form-action`,t)??{ok:!1,error:`The devtools server did not answer.`}}function yT(e){return`${e.ok?e.message??`Done.`:e.error??`Failed.`}${e.skipped?.length?` Skipped: ${e.skipped.map(e=>`${e.path} (${e.reason})`).join(`, `)}.`:``}${e.status?` Status: ${e.status}.`:``}`}var bT=/"(?:[^"\\\n]|\\.)*"|`([^`\n]*)`|\*\*/g;function xT(e){return(e??``).replace(/^_Labels, paths.*_\n\n/,``).replace(bT,(e,t)=>t??(e===`**`?``:e))}function ST(e,t){let n=Math.max(0,e-t),r=Math.ceil(n/6e4);if(r<60)return`in ${r} min`;let i=Math.round(r/60);return i<48?`in ${i} ${i===1?`hour`:`hours`}`:`in ${Math.round(i/24)} days`}function CT(e,t){return e.length?e.join(`, `):t}function wT(e,t){let n=[];if(n.push({label:`One-time code`,value:e.auth?e.oneTimeCode.state===`locked`?`Locked after too many wrong codes: run pangular token --rotate or restart the server for a new code`:e.oneTimeCode.expiresAt?`On, current code expires ${ST(e.oneTimeCode.expiresAt,t)}`:`On`:`Off: every client is trusted`}),e.auth){let{count:r,nextExpiresAt:i,lastExpiresAt:a}=e.tokens;n.push({label:`Trusted clients`,value:r?r===1||i===a?`${r} ${r===1?`token`:`tokens`}, expires ${ST(i??t,t)}`:`${r} tokens, the first expires ${ST(i??t,t)}, the last ${ST(a??t,t)}`:`None`}),e.pairingTokens&&n.push({label:`Pairing tokens`,value:`${e.pairingTokens} accepted instead of the code`})}return e.reported?(n.push({label:`Reach`,value:e.network?`This machine and other machines`:`This machine only`}),n.push({label:`Allowed origins`,value:e.originCheck?`${CT(e.allowedOrigins,`This machine and the Chrome extension`)}${e.customOrigins?`, plus a custom origin check`:``}`:`Any: the origin check is off`}),(e.allowedHosts===`any`||e.allowedHosts.length)&&n.push({label:`Allowed hosts`,value:e.allowedHosts===`any`?`Any`:e.allowedHosts.join(`, `)}),n):n}function TT(e){return jw(e?.connectionMeta)}function ET(e){return Array.isArray(e)&&e.every(e=>typeof e==`string`)?[...e]:void 0}function DT(e,t){if(!t||typeof t!=`object`)return e;let n=ET(t.secretNames),r=ET(t.unmask);if(!n||!r)return e;let i=hw(t.entropy);return{...e,redaction:i?{secretNames:n,unmask:r,entropy:i}:{secretNames:n,unmask:r}}}function OT(e,t){return TT(e).actions[t]}var kT={components:`components`,routes:`router`,signals:`signals`,injectors:`injectors`,store:`ngrx`,queries:`tanstackQuery`,forms:`forms`,pipes:`pipes`,network:`http`,analog:`analog`,capacitor:`capacitor`,errors:`errors`,plugins:`plugins`,performance:`performance`,build:`build`};function AT(e){return kT[e]}var jT=`https://pangular-inspector.dev/getting-started/configuration/#inspectors-and-agent-tools`;function MT(e,t){let n=kT[e];return!n||t.inspectors[n]}function NT(e,t){e&1&&(w(),dg(0,`rect`,5)(1,`rect`,6)(2,`rect`,7)(3,`rect`,8))}function PT(e,t){e&1&&(w(),dg(0,`path`,9)(1,`circle`,10)(2,`circle`,11)(3,`path`,12))}function FT(e,t){e&1&&(w(),dg(0,`path`,13)(1,`path`,14))}function IT(e,t){e&1&&(w(),dg(0,`path`,15)(1,`path`,16)(2,`path`,17))}function LT(e,t){e&1&&(w(),dg(0,`circle`,18)(1,`path`,19)(2,`circle`,20))}function RT(e,t){e&1&&(w(),dg(0,`path`,1))}function zT(e,t){e&1&&(w(),dg(0,`path`,21)(1,`path`,22)(2,`path`,23)(3,`path`,24))}function BT(e,t){e&1&&(w(),dg(0,`ellipse`,25)(1,`path`,26)(2,`path`,27))}function VT(e,t){e&1&&(w(),dg(0,`rect`,28)(1,`path`,29)(2,`path`,30)(3,`path`,31))}function HT(e,t){e&1&&(w(),dg(0,`circle`,32)(1,`path`,9)(2,`path`,33))}function UT(e,t){e&1&&(w(),dg(0,`path`,34)(1,`path`,35)(2,`path`,36)(3,`path`,37)(4,`circle`,38))}function WT(e,t){e&1&&(w(),dg(0,`circle`,39)(1,`path`,40))}function GT(e,t){e&1&&(w(),dg(0,`ellipse`,41)(1,`path`,42)(2,`path`,43)(3,`path`,44)(4,`path`,45))}function KT(e,t){e&1&&(w(),dg(0,`circle`,32)(1,`path`,46)(2,`path`,47))}function qT(e,t){e&1&&(w(),dg(0,`path`,48)(1,`path`,49))}function JT(e,t){e&1&&(w(),dg(0,`path`,50)(1,`path`,51)(2,`path`,52))}function YT(e,t){e&1&&(w(),dg(0,`path`,2))}function XT(e,t){e&1&&(w(),dg(0,`path`,3))}function ZT(e,t){e&1&&(w(),dg(0,`path`,4))}var QT=class e{name=$.required();static ɵfac=function(t){return new(t||e)};static ɵcmp=O({type:e,selectors:[[`app-tab-icon`]],inputs:{name:[1,`name`]},decls:20,vars:1,consts:[[`viewBox`,`0 0 24 24`,`width`,`16`,`height`,`16`,`fill`,`none`,`stroke`,`currentColor`,`stroke-width`,`1.8`,`stroke-linecap`,`round`,`stroke-linejoin`,`round`,`aria-hidden`,`true`],[`d`,`M22 12h-4l-3 9L9 3l-3 9H2`],[`d`,`M10 3h4v3a2 2 0 1 0 4 0V5h1a2 2 0 0 1 2 2v4h-2a2 2 0 1 0 0 4h2v4a2 2 0 0 1-2 2h-4v-2a2 2 0 1 0-4 0v2H7a2 2 0 0 1-2-2v-4H4a2 2 0 1 1 0-4h1V7a2 2 0 0 1 2-2h3Z`],[`d`,`m8 3 4 8 5-5 5 15H2L8 3z`],[`fill`,`currentColor`,`stroke`,`none`,`transform`,`translate(1.8 1.8) scale(0.85)`,`d`,`M24 3.7l-5.766 5.766 5.725 5.736-3.713 3.712L5.073 3.742 8.786.03l5.736 5.726L20.284 0 24 3.7zM.029 8.785l3.713-3.713 15.173 15.173-3.713 3.714-5.732-5.726L3.7 24 0 20.285l5.754-5.764L.029 8.785z`],[`x`,`3`,`y`,`3`,`width`,`7`,`height`,`9`,`rx`,`1.5`],[`x`,`14`,`y`,`3`,`width`,`7`,`height`,`5`,`rx`,`1.5`],[`x`,`14`,`y`,`12`,`width`,`7`,`height`,`9`,`rx`,`1.5`],[`x`,`3`,`y`,`16`,`width`,`7`,`height`,`5`,`rx`,`1.5`],[`d`,`M3 12h18`],[`cx`,`7`,`cy`,`12`,`r`,`2`],[`cx`,`14`,`cy`,`12`,`r`,`2`],[`d`,`M18 7v10`],[`d`,`M9 11l2 2 4-4`],[`d`,`M12 3 4 6v6c0 4.5 3.4 8.3 8 9 4.6-.7 8-4.5 8-9V6l-8-3Z`],[`d`,`M12 2 3 7l9 5 9-5-9-5Z`],[`d`,`m3 12 9 5 9-5`],[`d`,`m3 17 9 5 9-5`],[`cx`,`6`,`cy`,`19`,`r`,`3`],[`d`,`M9 19h8.5a3.5 3.5 0 0 0 0-7h-11a3.5 3.5 0 0 1 0-7H15`],[`cx`,`18`,`cy`,`5`,`r`,`3`],[`d`,`M12 22v-5`],[`d`,`M9 8V2`],[`d`,`M15 8V2`],[`d`,`M18 8v5a4 4 0 0 1-4 4h-4a4 4 0 0 1-4-4V8Z`],[`cx`,`12`,`cy`,`5`,`rx`,`9`,`ry`,`3`],[`d`,`M3 5v14a9 3 0 0 0 18 0V5`],[`d`,`M3 12a9 3 0 0 0 18 0`],[`x`,`3`,`y`,`4`,`width`,`18`,`height`,`16`,`rx`,`2`],[`d`,`M7 9h10`],[`d`,`M7 13h6`],[`d`,`M7 17h8`],[`cx`,`12`,`cy`,`12`,`r`,`9`],[`d`,`M12 3a14 14 0 0 1 0 18a14 14 0 0 1 0-18Z`],[`d`,`M4 7h10`],[`d`,`M4 17h6`],[`d`,`m14 13 4 4-4 4`],[`d`,`M10 17h8`],[`cx`,`18`,`cy`,`7`,`r`,`3`],[`cx`,`12`,`cy`,`12`,`r`,`3`],[`d`,`M19.4 15a1.7 1.7 0 0 0 .3 1.8l.1.1a2 2 0 1 1-2.8 2.8l-.1-.1a1.7 1.7 0 0 0-1.8-.3 1.7 1.7 0 0 0-1 1.5V21a2 2 0 1 1-4 0v-.1a1.7 1.7 0 0 0-1.1-1.5 1.7 1.7 0 0 0-1.8.3l-.1.1a2 2 0 1 1-2.8-2.8l.1-.1a1.7 1.7 0 0 0 .3-1.8 1.7 1.7 0 0 0-1.5-1H3a2 2 0 1 1 0-4h.1a1.7 1.7 0 0 0 1.5-1.1 1.7 1.7 0 0 0-.3-1.8l-.1-.1a2 2 0 1 1 2.8-2.8l.1.1a1.7 1.7 0 0 0 1.8.3H9a1.7 1.7 0 0 0 1-1.5V3a2 2 0 1 1 4 0v.1a1.7 1.7 0 0 0 1 1.5 1.7 1.7 0 0 0 1.8-.3l.1-.1a2 2 0 1 1 2.8 2.8l-.1.1a1.7 1.7 0 0 0-.3 1.8V9a1.7 1.7 0 0 0 1.5 1H21a2 2 0 1 1 0 4h-.1a1.7 1.7 0 0 0-1.5 1Z`],[`cx`,`11`,`cy`,`5`,`rx`,`8`,`ry`,`3`],[`d`,`M3 5v6c0 1.66 3.58 3 8 3`],[`d`,`M3 11v6c0 1.66 3.58 3 8 3`],[`d`,`M21 14a4 4 0 1 1-1.2-2.85L21 12.3`],[`d`,`M21 9v3.3h-3.3`],[`d`,`M12 7v6`],[`d`,`M12 16.5v.01`],[`d`,`M12 14l4-4`],[`d`,`M3.34 19a10 10 0 1 1 17.32 0`],[`d`,`M21 16V8l-9-5-9 5v8l9 5 9-5Z`],[`d`,`m3.3 7 8.7 5 8.7-5`],[`d`,`M12 22V12`]],template:function(e,t){if(e&1&&(w(),R(0,`svg`,0),A(1,NT,4,0)(2,PT,4,0)(3,FT,2,0)(4,IT,3,0)(5,LT,3,0)(6,RT,1,0,`:svg:path`,1)(7,zT,4,0)(8,BT,3,0)(9,VT,4,0)(10,HT,3,0)(11,UT,5,0)(12,WT,2,0)(13,GT,5,0)(14,KT,3,0)(15,qT,2,0)(16,JT,3,0)(17,YT,1,0,`:svg:path`,2)(18,XT,1,0,`:svg:path`,3)(19,ZT,1,0,`:svg:path`,4),z()),e&2){let e;D(),j((e=t.name())===`dashboard`?1:e===`timeline`?2:e===`audit`?3:e===`components`?4:e===`routes`?5:e===`signals`?6:e===`injectors`?7:e===`store`?8:e===`forms`?9:e===`network`?10:e===`pipes`?11:e===`settings`?12:e===`queries`?13:e===`errors`?14:e===`performance`?15:e===`build`?16:e===`plugins`?17:e===`analog`?18:e===`capacitor`?19:-1)}},styles:[`[_nghost-%COMP%] {
display: inline-flex;
flex-shrink: 0;
}`]})},$T=(e,t)=>t.tab,eE=(e,t)=>t.label;function tE(e,t){e&1&&K(0),e&2&&J(` `,W().meta()?.projectName,` `)}function nE(e,t){e&1&&K(0,` Project details unavailable `)}function rE(e,t){e&1&&K(0,` Loading… `)}function iE(e,t){e&1&&(K(0,` Run `),F(1,`code`),K(2,`pangular build`),I(),K(3,` again to rebuild the report. `))}function aE(e,t){e&1&&K(0,` Check that the dev server is running. `)}function oE(e,t){if(e&1){let e=B();F(0,`button`,13),H(`click`,function(){return S(e),C(W(2).loadMeta())}),K(1,`Try again`),I()}}function sE(e,t){if(e&1&&(F(0,`p`,11),A(1,iE,4,0)(2,aE,1,0),I(),A(3,oE,2,0,`button`,12)),e&2){let e=W();D(),j(e.staticReport()?1:2),D(2),j(e.staticReport()?-1:3)}}function cE(e,t){e&1&&(F(0,`li`,5)(1,`span`),K(2,`Analog`),I(),K(3),I()),e&2&&(D(3),q(t))}function lE(e,t){e&1&&(F(0,`li`)(1,`span`),K(2,`Change detection`),I(),K(3),I()),e&2&&(D(3),q(t))}function uE(e,t){if(e&1&&(F(0,`span`,20),K(1),I(),F(2,`span`,21),K(3),I()),e&2){let e=W().$implicit,t=W();D(),q(t.cards()[e.tab]?.value),D(2),q(t.cards()[e.tab]?.sub)}}function dE(e,t){e&1&&(F(0,`span`,22),K(1,`–`),I(),F(2,`span`,21),K(3,`Count unavailable`),I())}function fE(e,t){e&1&&(L(0,`span`,23),F(1,`span`,21),K(2,`Counting…`),I())}function pE(e,t){if(e&1){let e=B();F(0,`button`,14),H(`click`,function(){let t=S(e).$implicit;return C(W().navigate.emit(t.tab))}),F(1,`span`,15)(2,`span`,16),L(3,`app-tab-icon`,17),I(),F(4,`span`,18),K(5,`→`),I()(),F(6,`span`,19),K(7),I(),A(8,uE,4,2)(9,dE,4,0)(10,fE,3,0),I()}if(e&2){let e,n=t.$implicit,r=t.$index,i=W().stateOf(n.tab);t_(`animation-delay`,60*r,`ms`),k(`aria-busy`,i===`loading`),D(3),P(`name`,n.tab),D(4),q(n.label),D(),j((e=i)===`ready`?8:e===`error`?9:10)}}function mE(e,t){e&1&&(F(0,`p`),K(1,`Loading…`),I())}function hE(e,t){if(e&1&&(F(0,`div`)(1,`dt`),K(2),I(),F(3,`dd`),K(4),I()()),e&2){let e=t.$implicit;D(2),q(e.label),D(2),q(e.value)}}function gE(e,t){if(e&1&&(F(0,`dl`),M(1,hE,5,2,`div`,null,eE),I()),e&2){let e=W();D(),N(e.configItems())}}function _E(e,t){e&1&&(F(0,`p`),K(1,`Defaults`),I())}function vE(e,t){if(e&1&&(F(0,`div`)(1,`dt`),K(2),I(),F(3,`dd`),K(4),I()()),e&2){let e=t.$implicit;D(2),q(e.label),D(2),q(e.value)}}function yE(e,t){e&1&&(F(0,`section`,10)(1,`h2`,24),K(2,`Security`),I(),F(3,`dl`),M(4,vE,5,2,`div`,null,eE),I()()),e&2&&(D(4),N(t))}var bE=[{tab:`components`,label:`Components`},{tab:`routes`,label:`Routes`},{tab:`signals`,label:`Signals`},{tab:`injectors`,label:`Injectors`},{tab:`store`,label:`NgRx declarations`},{tab:`pipes`,label:`Pipes`},{tab:`forms`,label:`Forms`},{tab:`network`,label:`SSR & HTTP`}];function xE(e){return bE.filter(t=>MT(t.tab,e))}var SE={zoneless:`Zoneless`,zone:`zone.js`,"zone-unused":`Zoneless, zone.js loaded`};function CE(e){return e&&Object.hasOwn(SE,e)?SE[e]:null}var wE=new Set([`signal`,`computed`,`linkedSignal`,`effect`]),TE={action:[`action`,`actions`],reducer:[`reducer`,`reducers`],effect:[`effect`,`effects`],selector:[`selector`,`selectors`],feature:[`feature`,`features`],"store-setup":[`setup call`,`setup calls`],"signal-store":[`signal store`,`signal stores`],"signal-state":[`signal state`,`signal states`],"signal-method":[`signal method`,`signal methods`]};function EE(e,t,n){return`${e} ${e===1?t:n}`}function DE(e,t){for(let n of e??[])t(n),DE(n.children,t)}function OE(e){if(!e.some(e=>e.kind))return{value:e.length,sub:`discovered in source`};let t=e.filter(e=>e.kind===`directive`).length;return{value:e.length-t,sub:`components · ${EE(t,`directive`,`directives`)}`}}function kE(e){if(!e.some(e=>e.kind))return{value:e.length,sub:`route entries in source`};let t=e.filter(e=>e.kind===`redirect`).length;return{value:new Set(e.filter(e=>e.kind===`page`).map(e=>e.fullPath??e.path??``)).size,sub:`navigable paths · ${EE(t,`redirect`,`redirects`)}`}}function AE(e){let t=new Map;for(let n of e)n.kind&&t.set(n.kind,(t.get(n.kind)??0)+1);if(!t.size)return{value:e.length,sub:`declarations in source`};let n=[...t].sort((e,t)=>t[1]-e[1]).map(([e,t])=>{let[n,r]=TE[e]??[e,e];return EE(t,n,r)});return{value:e.length,sub:n.join(` · `)}}function jE(e,t){let n=e?.forms??[],r=t?n.filter(e=>dT(e.id)===t):n;if(!r.length)return{value:0,sub:`no forms on the page yet`};let i=r.filter(e=>e.root?.status===`INVALID`).length;return{value:r.length,sub:`${r.length===1?`form`:`forms`} · ${i} invalid`}}function ME(e){return e.cancelled||e.status===void 0?!1:e.status===0||e.status>=400}function NE(e,t){let n=e?.pages??[],r=t?n.find(e=>e.pageId===t)??null:n.reduce((e,t)=>!e||t.reportedAt>e.reportedAt?t:e,null),i=t&&!r?[]:e?.serverCalls??[],a=r?.initialUrl,o=[...a?i.filter(e=>!e.pageUrl||e.pageUrl===a):i,...r?.calls??[]];if(!o.length)return{value:0,sub:`no calls recorded yet`};let s=o.filter(ME).length;return{value:o.length,sub:`${o.length===1?`call`:`calls`} · ${s} failed`}}var PE=class e{rpc=$(null);navigate=cv();staticReport=X(()=>cT(this.rpc()));meta=T(null);security=T(null);redaction=T(null);config=X(()=>DT(TT(this.rpc()),this.redaction()));stats=X(()=>this.rpc()?xE(this.config()):[]);configItems=X(()=>Rw(this.config()));metaState=T(`loading`);states=T({});rows=T({});injectorTree=T(null);signalGraph=T(null);formsState=T(null);httpState=T(null);pageId=tT();destroyRef=x(Ss);stopLive=[];zone=X(()=>CE(rT(this.injectorTree(),this.pageId)?.zone));liveInjectors=X(()=>{let e=rT(this.injectorTree(),this.pageId);if(!e?.roots?.length)return null;let t=0,n=0,r=e=>{t++,n+=e.providers?.length??0};return DE(e.roots,r),DE(e.environment,r),{injectors:t,providers:n}});liveSignals=X(()=>{let e=iT(this.signalGraph(),this.pageId);return e?.nodes?.length?e.nodes.filter(e=>wE.has(e.kind??``)).length:null});cards=X(()=>{let e=this.rows(),t={};if(e.components&&(t.components=OE(e.components)),e.routes&&(t.routes=kE(e.routes)),e.store&&(t.store=AE(e.store)),e.pipes){let n=e.pipes.filter(e=>e.builtin).length;t.pipes={value:e.pipes.length-n,sub:n?`custom pipes · ${n} built-in in use`:`custom pipes in source`}}let n=this.liveSignals();n===null?e.signals&&(t.signals={value:e.signals.length,sub:`signal declarations in source`}):t.signals={value:n,sub:e.signals?`live on the page · ${e.signals.length} declared in source`:`live on the page`};let r=this.liveInjectors();r?t.injectors={value:r.injectors,sub:`live injectors · ${EE(r.providers,`provider`,`providers`)}`}:e.injectors&&(t.injectors={value:e.injectors.filter(e=>e.type!==`injection`).length,sub:`provider declarations in source`});let i=this.formsState();i&&(t.forms=jE(i,this.pageId));let a=this.httpState();return a&&(t.network=NE(a,this.pageId)),t});loadMeta(e=this.rpc()){e&&(this.metaState.set(`loading`),e.scope(`pangular`).rpc.call(`build-meta`).then(t=>{this.rpc()===e&&(this.meta.set(t),this.metaState.set(`ready`))}).catch(()=>{this.rpc()===e&&this.metaState.set(`error`)}))}loadRedaction(e){this.redaction.set(null),!cT(e)&&oT(e,`redaction-config`).then(t=>{this.rpc()===e&&this.redaction.set(t)}).catch(()=>{})}loadSecurity(e){this.security.set(null),!cT(e)&&sT(e,`security-status`).then(t=>{this.rpc()===e&&t&&this.security.set(wT(t,Date.now()))})}constructor(){E(()=>{let e=this.rpc();if(!e)return;let t=e.scope(`pangular`);this.states.set({}),this.rows.set({}),this.formsState.set(null),this.httpState.set(null),this.loadMeta(e),this.loadRedaction(e),this.loadSecurity(e);let n=TT(e),r=e=>MT(e,n);r(`components`)&&this.load(t.rpc.call(`get-components`),`components`),r(`routes`)&&this.load(t.rpc.call(`get-routes`),`routes`),r(`signals`)&&this.load(t.rpc.call(`get-signals`),`signals`),r(`injectors`)&&this.load(t.rpc.call(`get-providers`),`injectors`),r(`store`)&&this.load(t.rpc.call(`get-ngrx-store`),`store`),r(`pipes`)&&this.load(t.rpc.call(`get-pipes`),`pipes`),this.watchLive(e,n)}),this.destroyRef.onDestroy(()=>this.unwatch())}stateOf(e){return(e===`signals`?this.liveSignals():e===`injectors`?this.liveInjectors():null)===null?this.states()[e]??`loading`:`ready`}load(e,t){let n=e=>this.states.update(n=>({...n,[t]:e}));e.then(e=>{this.rows.update(n=>({...n,[t]:Array.isArray(e)?e:[]})),n(`ready`)}).catch(()=>n(`error`))}async watchLive(e,t){this.unwatch();let n=e.scope(`pangular`).rpc,r=async(t,r,i)=>{let a=e=>i&&this.states.update(t=>({...t,[i]:e}));try{let i=await n.sharedState(t);if(this.destroyRef.destroyed||this.rpc()!==e)return;r(i.value()),a(`ready`),this.stopLive.push(i.on(`updated`,e=>r(e)))}catch{if(this.destroyRef.destroyed||this.rpc()!==e)return;r(null),a(`error`)}};await Promise.all([t.inspectors.injectors&&r(`injector-tree`,e=>this.injectorTree.set(e)),t.inspectors.signals&&r(`signal-graph`,e=>this.signalGraph.set(e)),MT(`forms`,t)&&r(`forms`,e=>this.formsState.set(e??{}),`forms`),MT(`network`,t)&&r(`http`,e=>this.httpState.set(e??{}),`network`)])}unwatch(){for(let e of this.stopLive.splice(0))e()}static ɵfac=function(t){return new(t||e)};static ɵcmp=O({type:e,selectors:[[`app-dashboard`]],inputs:{rpc:[1,`rpc`]},outputs:{navigate:`navigate`},decls:34,vars:15,consts:[[`aria-labelledby`,`project-title`,1,`project`],[1,`project-head`],[1,`eyebrow`],[`id`,`project-title`],[1,`chips`],[1,`analog`],[1,`grid`],[`type`,`button`,1,`stat`,3,`animation-delay`],[`aria-labelledby`,`config-title`,1,`config`],[`id`,`config-title`],[`aria-labelledby`,`security-title`,1,`config`],[1,`hint`],[`type`,`button`,1,`retry`],[`type`,`button`,1,`retry`,3,`click`],[`type`,`button`,1,`stat`,3,`click`],[1,`top`],[1,`icon`],[3,`name`],[`aria-hidden`,`true`,1,`go`],[1,`label`],[1,`big`],[1,`sub`],[1,`big`,`muted`],[`aria-hidden`,`true`,1,`big`,`skeleton`],[`id`,`security-title`]],template:function(e,t){if(e&1&&(F(0,`section`,0)(1,`div`,1)(2,`p`,2),K(3,`Project`),I(),F(4,`h2`,3),A(5,tE,1,1)(6,nE,1,0)(7,rE,1,0),I(),A(8,sE,4,2),I(),F(9,`ul`,4)(10,`li`)(11,`span`),K(12,`Angular`),I(),K(13),I(),F(14,`li`)(15,`span`),K(16,`TypeScript`),I(),K(17),I(),F(18,`li`)(19,`span`),K(20,`SSR`),I(),K(21),I(),A(22,cE,4,1,`li`,5),A(23,lE,4,1,`li`),I()(),F(24,`div`,6),M(25,pE,11,6,`button`,7,$T),I(),F(27,`section`,8)(28,`h2`,9),K(29,`Configuration`),I(),A(30,mE,2,0,`p`)(31,gE,3,0,`dl`)(32,_E,2,0,`p`),I(),A(33,yE,6,0,`section`,10)),e&2){let e,n,r,i;k(`aria-busy`,t.metaState()===`loading`),D(4),G(`muted`,t.metaState()!==`ready`),D(),j((e=t.metaState())===`ready`?5:e===`error`?6:7),D(3),j(t.metaState()===`error`?8:-1),D(),G(`pending`,t.metaState()===`loading`),D(4),q(t.meta()?.angularVersion??`…`),D(4),q(t.meta()?.typescript??`…`),D(4),q(t.meta()?t.meta()?.ssr?`On`:`Off`:`…`),D(),j((n=t.meta()?.analog)?22:-1,n),D(),j((r=t.zone())?23:-1,r),D(2),N(t.stats()),D(2),k(`aria-busy`,!t.rpc()),D(3),j(t.rpc()?t.configItems().length?31:32:30),D(3),j((i=t.security())?33:-1,i)}},dependencies:[QT],styles:[`[_nghost-%COMP%] {
@@ -12727,7 +12727,7 @@ pre[_ngcontent-%COMP%]:focus-visible {
.kv[_ngcontent-%COMP%] {
grid-template-columns: minmax(0, 1fr);
}
-}`]})};function WZ(e,t){if(e&1){let e=B();R(0,`button`,2),U(`click`,function(){return S(e),C(W().confirmAct.emit(`restore`))}),K(1),z()}if(e&2){let e=W();G(`armed`,e.armed()===`restore`),V(`disabled`,!e.canWrite()),k(`aria-describedby`,e.canWrite()?null:`forms-writes-off`)(`title`,`Restore `+e.snapshot()),D(),J(` `,e.armed()===`restore`?`Confirm restore`:`Restore `+e.snapshot(),` `)}}function GZ(e,t){if(e&1&&(R(0,`p`,9),K(1),z()),e&2){let e=W();D(),q(e.writesOff)}}var KZ=class e{canWrite=$(!1);writesOff=$(``);picking=$(null);snapshot=$(null);armed=$(null);message=$(``);act=cv();confirmAct=cv();pick=cv();cancelPick=cv();static ɵfac=function(t){return new(t||e)};static ɵcmp=O({type:e,selectors:[[`app-forms-action-bar`]],inputs:{canWrite:[1,`canWrite`],writesOff:[1,`writesOff`],picking:[1,`picking`],snapshot:[1,`snapshot`],armed:[1,`armed`],message:[1,`message`]},outputs:{act:`act`,confirmAct:`confirmAct`,pick:`pick`,cancelPick:`cancelPick`},decls:22,vars:21,consts:[[1,`action-bar`],[`role`,`group`,`aria-label`,`Form actions`,1,`actions`],[`type`,`button`,1,`small`,3,`click`,`disabled`],[`type`,`button`,1,`small`,3,`click`],[`aria-hidden`,`true`,1,`divider`],[`type`,`button`,1,`small`,3,`armed`,`disabled`],[`aria-hidden`,`true`,1,`spacer`],[`type`,`button`,1,`small`,`danger`,3,`click`,`disabled`],[`type`,`button`,1,`small`,`primary`,3,`click`,`disabled`],[`id`,`forms-writes-off`,1,`muted`],[`role`,`status`,1,`status`]],template:function(e,t){e&1&&(R(0,`div`,0)(1,`div`,1)(2,`button`,2),U(`click`,function(){return t.act.emit(`touch-all`)}),K(3,` Touch all `),z(),R(4,`button`,2),U(`click`,function(){return t.act.emit(`revalidate`)}),K(5,` Revalidate `),z(),R(6,`button`,3),U(`click`,function(){return t.act.emit(`focus-first-invalid`)}),K(7,` Focus first invalid `),z(),R(8,`button`,3),U(`click`,function(){return t.picking()?t.cancelPick.emit():t.pick.emit()}),K(9),z(),dg(10,`span`,4),R(11,`button`,3),U(`click`,function(){return t.act.emit(`snapshot`)}),K(12,`Snapshot`),z(),A(13,WZ,2,6,`button`,5),dg(14,`span`,6),R(15,`button`,7),U(`click`,function(){return t.confirmAct.emit(`reset`)}),K(16),z(),R(17,`button`,8),U(`click`,function(){return t.confirmAct.emit(`submit`)}),K(18),z()(),A(19,GZ,2,1,`p`,9),R(20,`p`,10),K(21),z()()),e&2&&(D(2),V(`disabled`,!t.canWrite()),k(`aria-describedby`,t.canWrite()?null:`forms-writes-off`),D(2),V(`disabled`,!t.canWrite()),k(`aria-describedby`,t.canWrite()?null:`forms-writes-off`),D(4),G(`on`,t.picking()),k(`aria-pressed`,!!t.picking()),D(),J(` `,t.picking()?`Cancel picking`:`Pick field on page`,` `),D(4),j(t.snapshot()?13:-1),D(2),G(`armed`,t.armed()===`reset`),V(`disabled`,!t.canWrite()),k(`aria-describedby`,t.canWrite()?null:`forms-writes-off`),D(),J(` `,t.armed()===`reset`?`Confirm reset`:`Reset`,` `),D(),G(`armed`,t.armed()===`submit`),V(`disabled`,!t.canWrite()),k(`aria-describedby`,t.canWrite()?null:`forms-writes-off`),D(),J(` `,t.armed()===`submit`?`Confirm submit`:`Submit`,` `),D(),j(t.canWrite()?-1:19),D(2),q(t.message()))},styles:[`.muted[_ngcontent-%COMP%] {
+}`]})};function WZ(e,t){if(e&1){let e=B();R(0,`button`,2),U(`click`,function(){return S(e),C(W().confirmAct.emit(`restore`))}),K(1),z()}if(e&2){let e=W();G(`armed`,e.armed()===`restore`),V(`disabled`,!e.canWrite()),k(`aria-describedby`,e.canWrite()?null:`forms-writes-off`)(`title`,`Restore `+e.snapshot()),D(),J(` `,e.armed()===`restore`?`Confirm restore`:`Restore `+e.snapshot(),` `)}}function GZ(e,t){if(e&1&&(R(0,`p`,9),K(1),z()),e&2){let e=W();D(),q(e.writesOff())}}var KZ=class e{canWrite=$(!1);writesOff=$(``);picking=$(null);snapshot=$(null);armed=$(null);message=$(``);act=cv();confirmAct=cv();pick=cv();cancelPick=cv();static ɵfac=function(t){return new(t||e)};static ɵcmp=O({type:e,selectors:[[`app-forms-action-bar`]],inputs:{canWrite:[1,`canWrite`],writesOff:[1,`writesOff`],picking:[1,`picking`],snapshot:[1,`snapshot`],armed:[1,`armed`],message:[1,`message`]},outputs:{act:`act`,confirmAct:`confirmAct`,pick:`pick`,cancelPick:`cancelPick`},decls:22,vars:21,consts:[[1,`action-bar`],[`role`,`group`,`aria-label`,`Form actions`,1,`actions`],[`type`,`button`,1,`small`,3,`click`,`disabled`],[`type`,`button`,1,`small`,3,`click`],[`aria-hidden`,`true`,1,`divider`],[`type`,`button`,1,`small`,3,`armed`,`disabled`],[`aria-hidden`,`true`,1,`spacer`],[`type`,`button`,1,`small`,`danger`,3,`click`,`disabled`],[`type`,`button`,1,`small`,`primary`,3,`click`,`disabled`],[`id`,`forms-writes-off`,1,`muted`],[`role`,`status`,1,`status`]],template:function(e,t){e&1&&(R(0,`div`,0)(1,`div`,1)(2,`button`,2),U(`click`,function(){return t.act.emit(`touch-all`)}),K(3,` Touch all `),z(),R(4,`button`,2),U(`click`,function(){return t.act.emit(`revalidate`)}),K(5,` Revalidate `),z(),R(6,`button`,3),U(`click`,function(){return t.act.emit(`focus-first-invalid`)}),K(7,` Focus first invalid `),z(),R(8,`button`,3),U(`click`,function(){return t.picking()?t.cancelPick.emit():t.pick.emit()}),K(9),z(),dg(10,`span`,4),R(11,`button`,3),U(`click`,function(){return t.act.emit(`snapshot`)}),K(12,`Snapshot`),z(),A(13,WZ,2,6,`button`,5),dg(14,`span`,6),R(15,`button`,7),U(`click`,function(){return t.confirmAct.emit(`reset`)}),K(16),z(),R(17,`button`,8),U(`click`,function(){return t.confirmAct.emit(`submit`)}),K(18),z()(),A(19,GZ,2,1,`p`,9),R(20,`p`,10),K(21),z()()),e&2&&(D(2),V(`disabled`,!t.canWrite()),k(`aria-describedby`,t.canWrite()?null:`forms-writes-off`),D(2),V(`disabled`,!t.canWrite()),k(`aria-describedby`,t.canWrite()?null:`forms-writes-off`),D(4),G(`on`,t.picking()),k(`aria-pressed`,!!t.picking()),D(),J(` `,t.picking()?`Cancel picking`:`Pick field on page`,` `),D(4),j(t.snapshot()?13:-1),D(2),G(`armed`,t.armed()===`reset`),V(`disabled`,!t.canWrite()),k(`aria-describedby`,t.canWrite()?null:`forms-writes-off`),D(),J(` `,t.armed()===`reset`?`Confirm reset`:`Reset`,` `),D(),G(`armed`,t.armed()===`submit`),V(`disabled`,!t.canWrite()),k(`aria-describedby`,t.canWrite()?null:`forms-writes-off`),D(),J(` `,t.armed()===`submit`?`Confirm submit`:`Submit`,` `),D(),j(t.canWrite()?-1:19),D(2),q(t.message()))},styles:[`.muted[_ngcontent-%COMP%] {
color: var(--%NS%text-2);
}
diff --git a/extension/ui/index.html b/extension/ui/index.html
index ea9568a1..4cbe6fdb 100644
--- a/extension/ui/index.html
+++ b/extension/ui/index.html
@@ -9,7 +9,7 @@
Pangular Inspector
-
+
diff --git a/packages/devtools/CHANGELOG.md b/packages/devtools/CHANGELOG.md
index 3f9cf3ab..520af280 100644
--- a/packages/devtools/CHANGELOG.md
+++ b/packages/devtools/CHANGELOG.md
@@ -331,6 +331,8 @@ What remains: `/config` exports `DEFAULT_POPUP_HOTKEY`, `PANGULAR_ACTIONS`, `PAN
- Turning **Counts launcher** on or off in a popped-out panel changes the launcher on the app page that opened it. The popup takes the change only from the window it popped the panel out into.
- The **Pipes** list is one Tab stop with arrow keys, Home and End, like the other lists in the panel, and in every list the Tab stop follows a row selected with a click that does not focus it, as in Safari (#370).
- The popup's **No devtools server found** state and the panel's **Can't reach the devtools server** message link to the troubleshooting docs (#373).
+- On Angular 22.3 prereleases the Signals tab folds the new `Resource#name.params` computed into its resource, instead of showing it as an extra **resource 2** card.
+- The Forms tab's note under the action buttons, shown when form writes are off, says why instead of printing `[Input Signal: …]`.
### Docs
diff --git a/packages/devtools/src/__tests__/debug-api-real.test.ts b/packages/devtools/src/__tests__/debug-api-real.test.ts
index 7745a304..ed391fdb 100644
--- a/packages/devtools/src/__tests__/debug-api-real.test.ts
+++ b/packages/devtools/src/__tests__/debug-api-real.test.ts
@@ -9,7 +9,8 @@ import { STANDALONE, angularAtLeast, zonelessProviders } from './angular-version
class DebugRoot {}
Component({ ...STANDALONE, selector: 'app-root', template: 'ok
' })(DebugRoot);
-describe('NgDebugApi against a real app', () => {
+// `bootstrapApplication` and standalone components arrive in 14.0.
+describe.runIf(angularAtLeast('14.0'))('NgDebugApi against a real app', () => {
let app: ApplicationRef | null = null;
afterEach(() => {
app?.destroy();
diff --git a/packages/devtools/src/__tests__/signal-resources.test.ts b/packages/devtools/src/__tests__/signal-resources.test.ts
index b1693105..11cf25ab 100644
--- a/packages/devtools/src/__tests__/signal-resources.test.ts
+++ b/packages/devtools/src/__tests__/signal-resources.test.ts
@@ -70,6 +70,37 @@ describe('groupResources', () => {
]);
});
+ it('folds the params computed of Angular 22.3 prereleases into its resource, and keeps another resource it reads apart', () => {
+ // From 22.3 `extRequest` reads a `params` computed, which runs the user's params function.
+ const nodes = [
+ node('1', 'computed', 'Resource.value', 'Ada'),
+ node('2', 'linkedSignal', 'Resource.state'),
+ node('3', 'linkedSignal', 'Resource.extRequest'),
+ node('4', 'computed', 'Resource.params', 1),
+ node('5', 'computed', 'Resource.value', ['Ada post']),
+ node('6', 'linkedSignal', 'Resource.state'),
+ node('7', 'linkedSignal', 'Resource.extRequest'),
+ node('8', 'computed', 'Resource.params', 'Ada'),
+ node('9', 'signal', 'userId', 1),
+ ];
+ const edges: SignalGraphEdge[] = [
+ { consumer: 0, producer: 1 },
+ { consumer: 1, producer: 2 },
+ { consumer: 2, producer: 3 },
+ { consumer: 3, producer: 8 },
+ { consumer: 4, producer: 5 },
+ { consumer: 5, producer: 6 },
+ { consumer: 6, producer: 7 },
+ // The second resource's params read the first resource's value.
+ { consumer: 7, producer: 0 },
+ ];
+ const resources = groupResources(nodes, edges, [], serialize);
+ expect(resources.map((r) => [r.name, r.value, r.nodeIds])).toEqual([
+ ['resource 1', 'Ada', ['1', '2', '3', '4']],
+ ['resource 2', ['Ada post'], ['5', '6', '7', '8']],
+ ]);
+ });
+
it('derives status from the graph when no instance holds the resource', () => {
const nodes = [
node('1', 'computed', 'Resource#trips.value', '(threw an error)'),
diff --git a/packages/devtools/src/debug-api.ts b/packages/devtools/src/debug-api.ts
index 9554088b..300a72f4 100644
--- a/packages/devtools/src/debug-api.ts
+++ b/packages/devtools/src/debug-api.ts
@@ -115,6 +115,8 @@ export interface NgDebugApi {
): unknown;
/** The reactive graph of an injector. Node ids from 20.1. @since 19.1 */
ɵgetSignalGraph?(injector: unknown): NgDebugSignalGraph | null;
+ /** Watches or unwatches a signal-graph node by id. Present in 22.3 prereleases; not called by the overlay. */
+ toggleWatchSignal?(id: string): void;
/** `@defer` blocks under a node. Replaced by `ɵgetControlFlowBlocks` in 22.0. @since 19.1 */
ɵgetDeferBlocks?(node: Node): unknown[];
/** `@defer` and `@for` blocks under a node. @since 22.0 */
@@ -156,6 +158,7 @@ export const NG_DEBUG_FUNCTIONS = [
'ɵgetInjectorMetadata',
'ɵsetProfiler',
'ɵgetSignalGraph',
+ 'toggleWatchSignal',
'ɵgetDeferBlocks',
'ɵgetControlFlowBlocks',
'ɵgetTransferState',
diff --git a/packages/devtools/src/signal-resources.ts b/packages/devtools/src/signal-resources.ts
index 59035e39..20041f4a 100644
--- a/packages/devtools/src/signal-resources.ts
+++ b/packages/devtools/src/signal-resources.ts
@@ -98,6 +98,17 @@ function find(parent: number[], i: number): number {
return i;
}
+/**
+ * Whether an edge between two parts of same-named resources is internal to one
+ * resource. The parts that run the user's params function may read another
+ * resource: `extRequest` up to 22.2, and the `params` computed that the 22.3
+ * prereleases add between them (`extRequest` then reads only its own `params`).
+ */
+function ownEdge(consumer: string, producer: string): boolean {
+ if (consumer === 'extRequest') return producer === 'params';
+ return consumer !== 'params';
+}
+
function groupsOf(nodes: SignalGraphNode[], edges: SignalGraphEdge[]): Group[] {
const parsed = nodes.map((n) => parseResourceLabel(n.label));
const parent = nodes.map((_, i) => i);
@@ -115,8 +126,7 @@ function groupsOf(nodes: SignalGraphNode[], edges: SignalGraphEdge[]): Group[] {
if (!valid(e)) continue;
const a = parsed[e.consumer];
const b = parsed[e.producer];
- // extRequest reads the user's params, which may read another resource.
- if (a && b && a.name === b.name && a.part !== 'extRequest') union(e.consumer, e.producer);
+ if (a && b && a.name === b.name && ownEdge(a.part, b.part)) union(e.consumer, e.producer);
}
// httpResource signals have plain names: `_statusCode` and friends read the
// resource's own signals, and its `stream` is read by the resource value.