homebridge-config-ui-x 5.10.1-beta.1 → 5.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +17 -4
- package/README.md +3 -3
- package/dist/core/auth/auth.controller.d.ts +0 -4
- package/dist/core/config/config.interfaces.d.ts +0 -14
- package/dist/core/config/config.service.d.ts +0 -6
- package/dist/core/config/config.service.js +0 -8
- package/dist/core/config/config.service.js.map +1 -1
- package/dist/core/config/config.startup.js +17 -48
- package/dist/core/config/config.startup.js.map +1 -1
- package/dist/core/feature-flags/feature-flags.registry.js +0 -5
- package/dist/core/feature-flags/feature-flags.registry.js.map +1 -1
- package/dist/core/homebridge-ipc/homebridge-ipc.service.js +0 -1
- package/dist/core/homebridge-ipc/homebridge-ipc.service.js.map +1 -1
- package/dist/core/spa/spa.filter.d.ts +0 -3
- package/dist/core/spa/spa.filter.js +2 -22
- package/dist/core/spa/spa.filter.js.map +1 -1
- package/dist/globalDefaults.js +0 -3
- package/dist/globalDefaults.js.map +1 -1
- package/dist/main.js +4 -18
- package/dist/main.js.map +1 -1
- package/dist/modules/accessories/accessories.controller.d.ts +1 -1
- package/dist/modules/accessories/accessories.module.js +0 -2
- package/dist/modules/accessories/accessories.module.js.map +1 -1
- package/dist/modules/accessories/accessories.service.d.ts +3 -21
- package/dist/modules/accessories/accessories.service.js +17 -280
- package/dist/modules/accessories/accessories.service.js.map +1 -1
- package/dist/modules/child-bridges/child-bridges.interfaces.d.ts +0 -9
- package/dist/modules/config-editor/config-editor.controller.d.ts +0 -4
- package/dist/modules/config-editor/config-editor.controller.js +0 -64
- package/dist/modules/config-editor/config-editor.controller.js.map +1 -1
- package/dist/modules/config-editor/config-editor.service.d.ts +1 -6
- package/dist/modules/config-editor/config-editor.service.js +1 -45
- package/dist/modules/config-editor/config-editor.service.js.map +1 -1
- package/dist/modules/custom-plugins/plugins-settings-ui/plugins-settings-ui.service.js +1 -1
- package/dist/modules/custom-plugins/plugins-settings-ui/plugins-settings-ui.service.js.map +1 -1
- package/dist/modules/plugins/plugins.service.js +2 -16
- package/dist/modules/plugins/plugins.service.js.map +1 -1
- package/dist/modules/server/server.controller.d.ts +0 -50
- package/dist/modules/server/server.controller.js +2 -201
- package/dist/modules/server/server.controller.js.map +1 -1
- package/dist/modules/server/server.service.d.ts +0 -48
- package/dist/modules/server/server.service.js +14 -502
- package/dist/modules/server/server.service.js.map +1 -1
- package/dist/modules/status/status.gateway.d.ts +0 -2
- package/dist/modules/status/status.interfaces.d.ts +0 -11
- package/dist/modules/status/status.service.d.ts +1 -4
- package/dist/modules/status/status.service.js +2 -21
- package/dist/modules/status/status.service.js.map +1 -1
- package/package.json +4 -9
- package/public/3rdpartylicenses.txt +606 -554
- package/public/assets/plugin-ui-utils/ui.js +0 -3
- package/public/assets/plugin-ui-utils/ui.js.map +1 -1
- package/public/chunk-227QDXDT.js +1 -0
- package/public/chunk-2AF3WD4J.js +2 -0
- package/public/chunk-3WJDQQZL.js +4 -0
- package/public/chunk-4EKX3Z76.js +8 -0
- package/public/{chunk-U4YCHJUJ.js → chunk-53KE3XPC.js} +2 -2
- package/public/chunk-53KNB3HO.js +1 -0
- package/public/chunk-5KQ5PHZY.js +1 -0
- package/public/chunk-5RSQ3VKF.js +1 -0
- package/public/chunk-7G4CXD2O.js +5 -0
- package/public/chunk-A6U6HYY3.js +1 -0
- package/public/chunk-APMBCXUH.js +1 -0
- package/public/chunk-AW3MY6EQ.js +3 -0
- package/public/chunk-C46IEABJ.js +1 -0
- package/public/chunk-DEAIAR5T.js +1 -0
- package/public/chunk-DOEUREPX.js +1 -0
- package/public/chunk-E7RYLM5U.js +1 -0
- package/public/chunk-FDR4RMWN.js +1 -0
- package/public/{chunk-BMOLDRJ3.js → chunk-FHGIL4GK.js} +1 -1
- package/public/chunk-FK57KJRX.js +1 -0
- package/public/chunk-FYY57EXZ.js +5 -0
- package/public/chunk-G6G4X3LL.js +1 -0
- package/public/chunk-G6VVYCFK.js +1 -0
- package/public/chunk-G7S7J6DQ.js +1 -0
- package/public/chunk-GZU7FSYR.js +1 -0
- package/public/chunk-HGQJCJDV.js +1 -0
- package/public/chunk-HIFUKISS.js +1 -0
- package/public/chunk-IKDCH6SV.js +1 -0
- package/public/chunk-IWRD5BS2.js +1 -0
- package/public/{chunk-T4IEJNVJ.js → chunk-J3GNTL4X.js} +1 -1
- package/public/chunk-KK5HST3W.js +1 -0
- package/public/chunk-KO7OKSD4.js +51 -0
- package/public/chunk-KY3N6RBR.js +4 -0
- package/public/chunk-L5OY5K3Z.js +1 -0
- package/public/chunk-LQSXNQRY.js +1 -0
- package/public/chunk-NIVC55QC.js +1 -0
- package/public/{chunk-MS6AXMT2.js → chunk-NLVJP2FS.js} +2 -52
- package/public/chunk-NVYUCMZB.js +1 -0
- package/public/chunk-NXM6LODP.js +1 -0
- package/public/chunk-O5PYZ4PG.js +16 -0
- package/public/chunk-OQAG4MQB.js +1 -0
- package/public/chunk-OQLCIKGK.js +1 -0
- package/public/chunk-OT3OZVNB.js +50 -0
- package/public/chunk-PA2FLQHK.js +1 -0
- package/public/chunk-PD4EFNCS.js +1 -0
- package/public/chunk-PHY7W3BQ.js +1 -0
- package/public/chunk-PKVKTMRP.js +19 -0
- package/public/chunk-PPU3W2KO.js +1 -0
- package/public/chunk-QIJ6OIDU.js +1 -0
- package/public/chunk-REIZTIW4.js +2 -0
- package/public/chunk-RQOGW4OS.js +1 -0
- package/public/chunk-RS6FC3D3.js +1 -0
- package/public/chunk-S5CZBBHY.js +1 -0
- package/public/chunk-SQSP77TI.js +1 -0
- package/public/chunk-TAJT2XQ6.js +1 -0
- package/public/{chunk-FE43ULOM.js → chunk-U73PAFR5.js} +1 -1
- package/public/chunk-U77IESKH.js +1 -0
- package/public/chunk-UBWU2SEH.js +1 -0
- package/public/chunk-UGNUDJ75.js +1 -0
- package/public/{chunk-H7F7H5MW.js → chunk-UPB765LT.js} +1 -1
- package/public/chunk-W4NH2DJW.js +1 -0
- package/public/chunk-W5BUXVY6.js +5 -0
- package/public/chunk-WPMRJABD.js +1 -0
- package/public/{chunk-7CDYTG4I.js → chunk-WYCRIQDH.js} +1 -1
- package/public/chunk-YRC6JINT.js +1 -0
- package/public/chunk-ZC4YICGQ.js +1 -0
- package/public/chunk-ZUOL6YC4.js +1 -0
- package/public/chunk-ZWGNHKFK.js +1 -0
- package/public/chunk-ZXKMLKZT.js +40 -0
- package/public/index.html +2 -2
- package/public/main-WC4DXWXF.js +1 -0
- package/public/styles-7EFV5QBG.css +1 -0
- package/scripts/extract-plugin-alias.js +2 -53
- package/dist/core/spa/spa-html.service.d.ts +0 -5
- package/dist/core/spa/spa-html.service.js +0 -32
- package/dist/core/spa/spa-html.service.js.map +0 -1
- package/dist/core/ssl/ssl-cert-generator.service.d.ts +0 -15
- package/dist/core/ssl/ssl-cert-generator.service.js +0 -125
- package/dist/core/ssl/ssl-cert-generator.service.js.map +0 -1
- package/dist/modules/accessories/accessories.interfaces.d.ts +0 -94
- package/dist/modules/accessories/accessories.interfaces.js +0 -2
- package/dist/modules/accessories/accessories.interfaces.js.map +0 -1
- package/docs/matter-todo.md +0 -15
- package/docs/ssl-upload-pr.md +0 -103
- package/public/assets/matter.svg +0 -8
- package/public/chunk-2D7CDA3H.js +0 -1
- package/public/chunk-2GBZLCJW.js +0 -1
- package/public/chunk-33YDZRAK.js +0 -1
- package/public/chunk-3DG6CT5D.js +0 -2
- package/public/chunk-3F75CKTQ.js +0 -1
- package/public/chunk-3OSRGC5M.js +0 -1
- package/public/chunk-3UTT42KH.js +0 -1
- package/public/chunk-442FBVB5.js +0 -1
- package/public/chunk-4PPFVY5K.js +0 -1
- package/public/chunk-4RWLV5CJ.js +0 -1
- package/public/chunk-4UDSSFBN.js +0 -1
- package/public/chunk-4XZK5MQY.js +0 -1
- package/public/chunk-5S4MIY7E.js +0 -1
- package/public/chunk-5X5S4L7Y.js +0 -1
- package/public/chunk-6ELMQIBK.js +0 -1
- package/public/chunk-6I27GJJF.js +0 -1
- package/public/chunk-7DWXCRSP.js +0 -1
- package/public/chunk-7RJ5H5OP.js +0 -1
- package/public/chunk-ABQLMP2L.js +0 -1
- package/public/chunk-B4AJQJMI.js +0 -1
- package/public/chunk-BEI5QPKL.js +0 -5
- package/public/chunk-BEWAKOMK.js +0 -1
- package/public/chunk-BOW5E4YK.js +0 -50
- package/public/chunk-BSST5MPT.js +0 -1
- package/public/chunk-BSXPNFI5.js +0 -1
- package/public/chunk-C4IIDRJP.js +0 -1
- package/public/chunk-CIWR3BDK.js +0 -5
- package/public/chunk-CMS4LVBG.js +0 -1
- package/public/chunk-CO3QJQRO.js +0 -1
- package/public/chunk-CS2WBXWW.js +0 -1
- package/public/chunk-CTWHZU36.js +0 -1
- package/public/chunk-DAMERMP3.js +0 -1
- package/public/chunk-DM74WNXP.js +0 -1
- package/public/chunk-DMKHEJF5.js +0 -3
- package/public/chunk-DTFJZNTX.js +0 -1
- package/public/chunk-DWU5C3KH.js +0 -1
- package/public/chunk-EBFB2GZT.js +0 -1
- package/public/chunk-EEA6UA46.js +0 -2
- package/public/chunk-EJACNX3Z.js +0 -1
- package/public/chunk-GPMU3WMO.js +0 -68
- package/public/chunk-GWHA2DEF.js +0 -1
- package/public/chunk-GXD2SS6L.js +0 -1
- package/public/chunk-H6QDC36H.js +0 -1
- package/public/chunk-HAJT335F.js +0 -1
- package/public/chunk-HK3N2YPM.js +0 -1
- package/public/chunk-HLNMCR4K.js +0 -1
- package/public/chunk-IC6BLNW5.js +0 -1
- package/public/chunk-IMRVMPXI.js +0 -1
- package/public/chunk-IPRQGPVV.js +0 -1
- package/public/chunk-IVZ5ER6L.js +0 -1
- package/public/chunk-JRQC3M7W.js +0 -4
- package/public/chunk-JT7TYR5C.js +0 -1
- package/public/chunk-KDXCBENV.js +0 -2
- package/public/chunk-KGOOP2T6.js +0 -1
- package/public/chunk-KMSHJTEM.js +0 -1
- package/public/chunk-L77RLTDM.js +0 -1
- package/public/chunk-LCGZABYG.js +0 -1
- package/public/chunk-LG53BDFP.js +0 -1
- package/public/chunk-LJMU7UD3.js +0 -1
- package/public/chunk-LKNJHPL6.js +0 -1
- package/public/chunk-LKODOMMX.js +0 -1
- package/public/chunk-LUUAC57N.js +0 -1
- package/public/chunk-MIWSF7W2.js +0 -1
- package/public/chunk-MQTRL6KN.js +0 -1
- package/public/chunk-NP23WSXR.js +0 -1
- package/public/chunk-O3SZVIF6.js +0 -1
- package/public/chunk-ODXGF3LF.js +0 -1
- package/public/chunk-OPDTKONB.js +0 -1
- package/public/chunk-ORK6IK47.js +0 -4
- package/public/chunk-OZI5E5HI.js +0 -1
- package/public/chunk-P4KZ2HSY.js +0 -1
- package/public/chunk-PI4V6TBF.js +0 -1
- package/public/chunk-PMN4OFOP.js +0 -1
- package/public/chunk-Q4WN5E2X.js +0 -1
- package/public/chunk-QA6IRNX4.js +0 -1
- package/public/chunk-QGV5S3KG.js +0 -1
- package/public/chunk-QKEI7JJT.js +0 -1
- package/public/chunk-QNQ4HXBD.js +0 -1
- package/public/chunk-QNQIBHMP.js +0 -1
- package/public/chunk-R4E7RV22.js +0 -1
- package/public/chunk-R5Q7W4AU.js +0 -1
- package/public/chunk-RQG4TZOZ.js +0 -1
- package/public/chunk-SN3EVQDP.js +0 -1
- package/public/chunk-T3526HQB.js +0 -1
- package/public/chunk-TTPURYKZ.js +0 -1
- package/public/chunk-UAFCVKMR.js +0 -1
- package/public/chunk-UBCYUHPO.js +0 -1
- package/public/chunk-UJEB6C35.js +0 -1
- package/public/chunk-UQP4IIIX.js +0 -1
- package/public/chunk-URTTNRYM.js +0 -1
- package/public/chunk-USFURAEW.js +0 -1
- package/public/chunk-UVRDZGSU.js +0 -1
- package/public/chunk-VBTEO65F.js +0 -1
- package/public/chunk-WCRO6YQB.js +0 -16
- package/public/chunk-XL5BAQKW.js +0 -8
- package/public/chunk-XUAJJMQ4.js +0 -1
- package/public/chunk-Y67I4K2H.js +0 -1
- package/public/chunk-YHOHHKYL.js +0 -1
- package/public/chunk-ZABK6QJY.js +0 -1
- package/public/chunk-ZCGZM7LU.js +0 -1
- package/public/chunk-ZE7IZECI.js +0 -19
- package/public/chunk-ZGIR65XW.js +0 -1
- package/public/chunk-ZXID2WUA.js +0 -1
- package/public/main-VGG7NRKO.js +0 -1
- package/public/media/matter-P563JGDL.svg +0 -8
- package/public/styles-CT2LPGES.css +0 -1
- /package/public/{polyfills-NISNRVWY.js → polyfills-5KWHJ7II.js} +0 -0
package/public/chunk-KDXCBENV.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{$ as p,$a as Dt,Aa as ai,Ba as cn,Ca as ui,Da as gt,E as dt,Eb as P,Fa as ln,Fb as V,G as Ne,Ga as ci,Gb as q,Ha as dn,Hb as Ve,Ia as mt,Ic as yn,Ja as he,K as tn,Ka as _e,La as li,Lb as gn,Ma as di,Mb as mn,N as nn,Na as hi,Oa as fi,Pa as pi,Q as xe,Qa as gi,Qb as Dn,Qc as Ge,Ra as mi,Rc as Ei,Sa as X,Sb as Ci,Sc as vn,Ta as hn,Tb as bi,Tc as Ti,U as v,Ub as B,Uc as Ze,V as ke,Vb as M,Vc as wn,Wb as ze,X as f,Y as De,Ya as O,Yb as j,Za as ye,Zc as Cn,_ as b,_a as Di,_c as wt,aa as h,ab as yi,ad as Ye,ba as Be,bd as We,c as qt,cd as Ct,d as N,da as si,db as fn,ea as rn,eb as vi,fa as oi,fb as wi,ga as sn,gb as yt,gc as we,ha as on,hb as S,i as ue,ic as Q,jb as vt,jc as ee,k as me,ka as le,la as I,lc as Ce,ma as ht,mb as pn,nb as ve,o as ce,ob as J,pa as de,pb as fe,qa as an,s as Qt,sa as je,sb as Ue,t as en,u as ii,ua as un,wa as ft,wb as $e,xa as pt,xb as He,z as ri,za as Te}from"./chunk-JRQC3M7W.js";import{a as _,b as G,h as lt}from"./chunk-B4AJQJMI.js";var Si=null;function te(){return Si}function bn(t){Si??=t}var Ke=class{},En=(()=>{class t{historyGo(e){throw new Error("")}static \u0275fac=function(n){return new(n||t)};static \u0275prov=f({token:t,factory:()=>h(Fi),providedIn:"platform"})}return t})();var Fi=(()=>{class t extends En{_location;_history;_doc=h(I);constructor(){super(),this._location=window.location,this._history=window.history}getBaseHrefFromDOM(){return te().getBaseHref(this._doc)}onPopState(e){let n=te().getGlobalEventTarget(this._doc,"window");return n.addEventListener("popstate",e,!1),()=>n.removeEventListener("popstate",e)}onHashChange(e){let n=te().getGlobalEventTarget(this._doc,"window");return n.addEventListener("hashchange",e,!1),()=>n.removeEventListener("hashchange",e)}get href(){return this._location.href}get protocol(){return this._location.protocol}get hostname(){return this._location.hostname}get port(){return this._location.port}get pathname(){return this._location.pathname}get search(){return this._location.search}get hash(){return this._location.hash}set pathname(e){this._location.pathname=e}pushState(e,n,r){this._history.pushState(e,n,r)}replaceState(e,n,r){this._history.replaceState(e,n,r)}forward(){this._history.forward()}back(){this._history.back()}historyGo(e=0){this._history.go(e)}getState(){return this._history.state}static \u0275fac=function(n){return new(n||t)};static \u0275prov=f({token:t,factory:()=>new t,providedIn:"platform"})}return t})();function Ii(t,i){return t?i?t.endsWith("/")?i.startsWith("/")?t+i.slice(1):t+i:i.startsWith("/")?t+i:`${t}/${i}`:t:i}function _i(t){let i=t.search(/#|\?|$/);return t[i-1]==="/"?t.slice(0,i-1)+t.slice(i):t}function pe(t){return t&&t[0]!=="?"?`?${t}`:t}var bt=(()=>{class t{historyGo(e){throw new Error("")}static \u0275fac=function(n){return new(n||t)};static \u0275prov=f({token:t,factory:()=>h(Ri),providedIn:"root"})}return t})(),Mi=new b(""),Ri=(()=>{class t extends bt{_platformLocation;_baseHref;_removeListenerFns=[];constructor(e,n){super(),this._platformLocation=e,this._baseHref=n??this._platformLocation.getBaseHrefFromDOM()??h(I).location?.origin??""}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(e){this._removeListenerFns.push(this._platformLocation.onPopState(e),this._platformLocation.onHashChange(e))}getBaseHref(){return this._baseHref}prepareExternalUrl(e){return Ii(this._baseHref,e)}path(e=!1){let n=this._platformLocation.pathname+pe(this._platformLocation.search),r=this._platformLocation.hash;return r&&e?`${n}${r}`:n}pushState(e,n,r,s){let o=this.prepareExternalUrl(r+pe(s));this._platformLocation.pushState(e,n,o)}replaceState(e,n,r,s){let o=this.prepareExternalUrl(r+pe(s));this._platformLocation.replaceState(e,n,o)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(e=0){this._platformLocation.historyGo?.(e)}static \u0275fac=function(n){return new(n||t)(p(En),p(Mi,8))};static \u0275prov=f({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Oi=(()=>{class t{_subject=new N;_basePath;_locationStrategy;_urlChangeListeners=[];_urlChangeSubscription=null;constructor(e){this._locationStrategy=e;let n=this._locationStrategy.getBaseHref();this._basePath=Pr(_i(Ai(n))),this._locationStrategy.onPopState(r=>{this._subject.next({url:this.path(!0),pop:!0,state:r.state,type:r.type})})}ngOnDestroy(){this._urlChangeSubscription?.unsubscribe(),this._urlChangeListeners=[]}path(e=!1){return this.normalize(this._locationStrategy.path(e))}getState(){return this._locationStrategy.getState()}isCurrentPathEqualTo(e,n=""){return this.path()==this.normalize(e+pe(n))}normalize(e){return t.stripTrailingSlash(Lr(this._basePath,Ai(e)))}prepareExternalUrl(e){return e&&e[0]!=="/"&&(e="/"+e),this._locationStrategy.prepareExternalUrl(e)}go(e,n="",r=null){this._locationStrategy.pushState(r,"",e,n),this._notifyUrlChangeListeners(this.prepareExternalUrl(e+pe(n)),r)}replaceState(e,n="",r=null){this._locationStrategy.replaceState(r,"",e,n),this._notifyUrlChangeListeners(this.prepareExternalUrl(e+pe(n)),r)}forward(){this._locationStrategy.forward()}back(){this._locationStrategy.back()}historyGo(e=0){this._locationStrategy.historyGo?.(e)}onUrlChange(e){return this._urlChangeListeners.push(e),this._urlChangeSubscription??=this.subscribe(n=>{this._notifyUrlChangeListeners(n.url,n.state)}),()=>{let n=this._urlChangeListeners.indexOf(e);this._urlChangeListeners.splice(n,1),this._urlChangeListeners.length===0&&(this._urlChangeSubscription?.unsubscribe(),this._urlChangeSubscription=null)}}_notifyUrlChangeListeners(e="",n){this._urlChangeListeners.forEach(r=>r(e,n))}subscribe(e,n,r){return this._subject.subscribe({next:e,error:n??void 0,complete:r??void 0})}static normalizeQueryParams=pe;static joinWithSlash=Ii;static stripTrailingSlash=_i;static \u0275fac=function(n){return new(n||t)(p(bt))};static \u0275prov=f({token:t,factory:()=>Or(),providedIn:"root"})}return t})();function Or(){return new Oi(p(bt))}function Lr(t,i){if(!t||!i.startsWith(t))return i;let e=i.substring(t.length);return e===""||["/",";","?","#"].includes(e[0])?e:i}function Ai(t){return t.replace(/\/index.html$/,"")}function Pr(t){if(new RegExp("^(https?:)?//").test(t)){let[,e]=t.split(/\/\/[^\/]+/);return e}return t}var In=(function(t){return t[t.Decimal=0]="Decimal",t[t.Percent=1]="Percent",t[t.Currency=2]="Currency",t[t.Scientific=3]="Scientific",t})(In||{});var L=(function(t){return t[t.Format=0]="Format",t[t.Standalone=1]="Standalone",t})(L||{}),w=(function(t){return t[t.Narrow=0]="Narrow",t[t.Abbreviated=1]="Abbreviated",t[t.Wide=2]="Wide",t[t.Short=3]="Short",t})(w||{}),x=(function(t){return t[t.Short=0]="Short",t[t.Medium=1]="Medium",t[t.Long=2]="Long",t[t.Full=3]="Full",t})(x||{}),k={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 Bi(t){return B(t)[M.LocaleId]}function ji(t,i,e){let n=B(t),r=[n[M.DayPeriodsFormat],n[M.DayPeriodsStandalone]],s=U(r,i);return U(s,e)}function Ui(t,i,e){let n=B(t),r=[n[M.DaysFormat],n[M.DaysStandalone]],s=U(r,i);return U(s,e)}function $i(t,i,e){let n=B(t),r=[n[M.MonthsFormat],n[M.MonthsStandalone]],s=U(r,i);return U(s,e)}function Hi(t,i){let n=B(t)[M.Eras];return U(n,i)}function Xe(t,i){let e=B(t);return U(e[M.DateFormat],i)}function Je(t,i){let e=B(t);return U(e[M.TimeFormat],i)}function qe(t,i){let n=B(t)[M.DateTimeFormat];return U(n,i)}function Z(t,i){let e=B(t),n=e[M.NumberSymbols][i];if(typeof n>"u"){if(i===k.CurrencyDecimal)return e[M.NumberSymbols][k.Decimal];if(i===k.CurrencyGroup)return e[M.NumberSymbols][k.Group]}return n}function Vi(t,i){return B(t)[M.NumberFormats][i]}function zi(t){if(!t[M.ExtraData])throw new v(2303,!1)}function Gi(t){let i=B(t);return zi(i),(i[M.ExtraData][2]||[]).map(n=>typeof n=="string"?Tn(n):[Tn(n[0]),Tn(n[1])])}function Zi(t,i,e){let n=B(t);zi(n);let r=[n[M.ExtraData][0],n[M.ExtraData][1]],s=U(r,i)||[];return U(s,e)||[]}function U(t,i){for(let e=i;e>-1;e--)if(typeof t[e]<"u")return t[e];throw new v(2304,!1)}function Tn(t){let[i,e]=t.split(":");return{hours:+i,minutes:+e}}var Nr=/^(\d{4,})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/,Et={},xr=/((?:[^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]*)/;function Yi(t,i,e,n){let r=Gr(t);i=ie(e,i)||i;let o=[],a;for(;i;)if(a=xr.exec(i),a){o=o.concat(a.slice(1));let c=o.pop();if(!c)break;i=c}else{o.push(i);break}let u=r.getTimezoneOffset();n&&(u=Ki(n,u),r=zr(r,n));let l="";return o.forEach(c=>{let d=Hr(c);l+=d?d(r,e,u):c==="''"?"'":c.replace(/(^'|'$)/g,"").replace(/''/g,"'")}),l}function Ft(t,i,e){let n=new Date(0);return n.setFullYear(t,i,e),n.setHours(0,0,0),n}function ie(t,i){let e=Bi(t);if(Et[e]??={},Et[e][i])return Et[e][i];let n="";switch(i){case"shortDate":n=Xe(t,x.Short);break;case"mediumDate":n=Xe(t,x.Medium);break;case"longDate":n=Xe(t,x.Long);break;case"fullDate":n=Xe(t,x.Full);break;case"shortTime":n=Je(t,x.Short);break;case"mediumTime":n=Je(t,x.Medium);break;case"longTime":n=Je(t,x.Long);break;case"fullTime":n=Je(t,x.Full);break;case"short":let r=ie(t,"shortTime"),s=ie(t,"shortDate");n=Tt(qe(t,x.Short),[r,s]);break;case"medium":let o=ie(t,"mediumTime"),a=ie(t,"mediumDate");n=Tt(qe(t,x.Medium),[o,a]);break;case"long":let u=ie(t,"longTime"),l=ie(t,"longDate");n=Tt(qe(t,x.Long),[u,l]);break;case"full":let c=ie(t,"fullTime"),d=ie(t,"fullDate");n=Tt(qe(t,x.Full),[c,d]);break}return n&&(Et[e][i]=n),n}function Tt(t,i){return i&&(t=t.replace(/\{([^}]+)}/g,function(e,n){return i!=null&&n in i?i[n]:e})),t}function z(t,i,e="-",n,r){let s="";(t<0||r&&t<=0)&&(r?t=-t+1:(t=-t,s=e));let o=String(t);for(;o.length<i;)o="0"+o;return n&&(o=o.slice(o.length-i)),s+o}function kr(t,i){return z(t,3).substring(0,i)}function R(t,i,e=0,n=!1,r=!1){return function(s,o){let a=Br(t,s);if((e>0||a>-e)&&(a+=e),t===3)a===0&&e===-12&&(a=12);else if(t===6)return kr(a,i);let u=Z(o,k.MinusSign);return z(a,i,u,n,r)}}function Br(t,i){switch(t){case 0:return i.getFullYear();case 1:return i.getMonth();case 2:return i.getDate();case 3:return i.getHours();case 4:return i.getMinutes();case 5:return i.getSeconds();case 6:return i.getMilliseconds();case 7:return i.getDay();default:throw new v(2301,!1)}}function E(t,i,e=L.Format,n=!1){return function(r,s){return jr(r,s,t,i,e,n)}}function jr(t,i,e,n,r,s){switch(e){case 2:return $i(i,r,n)[t.getMonth()];case 1:return Ui(i,r,n)[t.getDay()];case 0:let o=t.getHours(),a=t.getMinutes();if(s){let l=Gi(i),c=Zi(i,r,n),d=l.findIndex(D=>{if(Array.isArray(D)){let[g,T]=D,A=o>=g.hours&&a>=g.minutes,m=o<T.hours||o===T.hours&&a<T.minutes;if(g.hours<T.hours){if(A&&m)return!0}else if(A||m)return!0}else if(D.hours===o&&D.minutes===a)return!0;return!1});if(d!==-1)return c[d]}return ji(i,r,n)[o<12?0:1];case 3:return Hi(i,n)[t.getFullYear()<=0?0:1];default:let u=e;throw new v(2302,!1)}}function _t(t){return function(i,e,n){let r=-1*n,s=Z(e,k.MinusSign),o=r>0?Math.floor(r/60):Math.ceil(r/60);switch(t){case 0:return(r>=0?"+":"")+z(o,2,s)+z(Math.abs(r%60),2,s);case 1:return"GMT"+(r>=0?"+":"")+z(o,1,s);case 2:return"GMT"+(r>=0?"+":"")+z(o,2,s)+":"+z(Math.abs(r%60),2,s);case 3:return n===0?"Z":(r>=0?"+":"")+z(o,2,s)+":"+z(Math.abs(r%60),2,s);default:throw new v(2310,!1)}}}var Ur=0,St=4;function $r(t){let i=Ft(t,Ur,1).getDay();return Ft(t,0,1+(i<=St?St:St+7)-i)}function Wi(t){let i=t.getDay(),e=i===0?-3:St-i;return Ft(t.getFullYear(),t.getMonth(),t.getDate()+e)}function _n(t,i=!1){return function(e,n){let r;if(i){let s=new Date(e.getFullYear(),e.getMonth(),1).getDay()-1,o=e.getDate();r=1+Math.floor((o+s)/7)}else{let s=Wi(e),o=$r(s.getFullYear()),a=s.getTime()-o.getTime();r=1+Math.round(a/6048e5)}return z(r,t,Z(n,k.MinusSign))}}function At(t,i=!1){return function(e,n){let s=Wi(e).getFullYear();return z(s,t,Z(n,k.MinusSign),i)}}var An={};function Hr(t){if(An[t])return An[t];let i;switch(t){case"G":case"GG":case"GGG":i=E(3,w.Abbreviated);break;case"GGGG":i=E(3,w.Wide);break;case"GGGGG":i=E(3,w.Narrow);break;case"y":i=R(0,1,0,!1,!0);break;case"yy":i=R(0,2,0,!0,!0);break;case"yyy":i=R(0,3,0,!1,!0);break;case"yyyy":i=R(0,4,0,!1,!0);break;case"Y":i=At(1);break;case"YY":i=At(2,!0);break;case"YYY":i=At(3);break;case"YYYY":i=At(4);break;case"M":case"L":i=R(1,1,1);break;case"MM":case"LL":i=R(1,2,1);break;case"MMM":i=E(2,w.Abbreviated);break;case"MMMM":i=E(2,w.Wide);break;case"MMMMM":i=E(2,w.Narrow);break;case"LLL":i=E(2,w.Abbreviated,L.Standalone);break;case"LLLL":i=E(2,w.Wide,L.Standalone);break;case"LLLLL":i=E(2,w.Narrow,L.Standalone);break;case"w":i=_n(1);break;case"ww":i=_n(2);break;case"W":i=_n(1,!0);break;case"d":i=R(2,1);break;case"dd":i=R(2,2);break;case"c":case"cc":i=R(7,1);break;case"ccc":i=E(1,w.Abbreviated,L.Standalone);break;case"cccc":i=E(1,w.Wide,L.Standalone);break;case"ccccc":i=E(1,w.Narrow,L.Standalone);break;case"cccccc":i=E(1,w.Short,L.Standalone);break;case"E":case"EE":case"EEE":i=E(1,w.Abbreviated);break;case"EEEE":i=E(1,w.Wide);break;case"EEEEE":i=E(1,w.Narrow);break;case"EEEEEE":i=E(1,w.Short);break;case"a":case"aa":case"aaa":i=E(0,w.Abbreviated);break;case"aaaa":i=E(0,w.Wide);break;case"aaaaa":i=E(0,w.Narrow);break;case"b":case"bb":case"bbb":i=E(0,w.Abbreviated,L.Standalone,!0);break;case"bbbb":i=E(0,w.Wide,L.Standalone,!0);break;case"bbbbb":i=E(0,w.Narrow,L.Standalone,!0);break;case"B":case"BB":case"BBB":i=E(0,w.Abbreviated,L.Format,!0);break;case"BBBB":i=E(0,w.Wide,L.Format,!0);break;case"BBBBB":i=E(0,w.Narrow,L.Format,!0);break;case"h":i=R(3,1,-12);break;case"hh":i=R(3,2,-12);break;case"H":i=R(3,1);break;case"HH":i=R(3,2);break;case"m":i=R(4,1);break;case"mm":i=R(4,2);break;case"s":i=R(5,1);break;case"ss":i=R(5,2);break;case"S":i=R(6,1);break;case"SS":i=R(6,2);break;case"SSS":i=R(6,3);break;case"Z":case"ZZ":case"ZZZ":i=_t(0);break;case"ZZZZZ":i=_t(3);break;case"O":case"OO":case"OOO":case"z":case"zz":case"zzz":i=_t(1);break;case"OOOO":case"ZZZZ":case"zzzz":i=_t(2);break;default:return null}return An[t]=i,i}function Ki(t,i){t=t.replace(/:/g,"");let e=Date.parse("Jan 01, 1970 00:00:00 "+t)/6e4;return isNaN(e)?i:e}function Vr(t,i){return t=new Date(t.getTime()),t.setMinutes(t.getMinutes()+i),t}function zr(t,i,e){let r=t.getTimezoneOffset(),s=Ki(i,r);return Vr(t,-1*(s-r))}function Gr(t){if(Li(t))return t;if(typeof t=="number"&&!isNaN(t))return new Date(t);if(typeof t=="string"){if(t=t.trim(),/^(\d{4}(-\d{1,2}(-\d{1,2})?)?)$/.test(t)){let[r,s=1,o=1]=t.split("-").map(a=>+a);return Ft(r,s-1,o)}let e=parseFloat(t);if(!isNaN(t-e))return new Date(e);let n;if(n=t.match(Nr))return Zr(n)}let i=new Date(t);if(!Li(i))throw new v(2311,!1);return i}function Zr(t){let i=new Date(0),e=0,n=0,r=t[8]?i.setUTCFullYear:i.setFullYear,s=t[8]?i.setUTCHours:i.setHours;t[9]&&(e=Number(t[9]+t[10]),n=Number(t[9]+t[11])),r.call(i,Number(t[1]),Number(t[2])-1,Number(t[3]));let o=Number(t[4]||0)-e,a=Number(t[5]||0)-n,u=Number(t[6]||0),l=Math.floor(parseFloat("0."+(t[7]||0))*1e3);return s.call(i,o,a,u,l),i}function Li(t){return t instanceof Date&&!isNaN(t.valueOf())}var Yr=/^(\d+)?\.((\d+)(-(\d+))?)?$/,Pi=22,It=".",Qe="0",Wr=";",Kr=",",Sn="#";function Xr(t,i,e,n,r,s,o=!1){let a="",u=!1;if(!isFinite(t))a=Z(e,k.Infinity);else{let l=Qr(t);o&&(l=qr(l));let c=i.minInt,d=i.minFrac,D=i.maxFrac;if(s){let F=s.match(Yr);if(F===null)throw new v(2306,!1);let $=F[1],C=F[3],H=F[5];$!=null&&(c=Fn($)),C!=null&&(d=Fn(C)),H!=null?D=Fn(H):C!=null&&d>D&&(D=d)}es(l,d,D);let g=l.digits,T=l.integerLen,A=l.exponent,m=[];for(u=g.every(F=>!F);T<c;T++)g.unshift(0);for(;T<0;T++)g.unshift(0);T>0?m=g.splice(T,g.length):(m=g,g=[0]);let y=[];for(g.length>=i.lgSize&&y.unshift(g.splice(-i.lgSize,g.length).join(""));g.length>i.gSize;)y.unshift(g.splice(-i.gSize,g.length).join(""));g.length&&y.unshift(g.join("")),a=y.join(Z(e,n)),m.length&&(a+=Z(e,r)+m.join("")),A&&(a+=Z(e,k.Exponential)+"+"+A)}return t<0&&!u?a=i.negPre+a+i.negSuf:a=i.posPre+a+i.posSuf,a}function Xi(t,i,e){let n=Vi(i,In.Decimal),r=Jr(n,Z(i,k.MinusSign));return Xr(t,r,i,k.Group,k.Decimal,e)}function Jr(t,i="-"){let e={minInt:1,minFrac:0,maxFrac:0,posPre:"",posSuf:"",negPre:"",negSuf:"",gSize:0,lgSize:0},n=t.split(Wr),r=n[0],s=n[1],o=r.indexOf(It)!==-1?r.split(It):[r.substring(0,r.lastIndexOf(Qe)+1),r.substring(r.lastIndexOf(Qe)+1)],a=o[0],u=o[1]||"";e.posPre=a.substring(0,a.indexOf(Sn));for(let c=0;c<u.length;c++){let d=u.charAt(c);d===Qe?e.minFrac=e.maxFrac=c+1:d===Sn?e.maxFrac=c+1:e.posSuf+=d}let l=a.split(Kr);if(e.gSize=l[1]?l[1].length:0,e.lgSize=l[2]||l[1]?(l[2]||l[1]).length:0,s){let c=r.length-e.posPre.length-e.posSuf.length,d=s.indexOf(Sn);e.negPre=s.substring(0,d).replace(/'/g,""),e.negSuf=s.slice(d+c).replace(/'/g,"")}else e.negPre=i+e.posPre,e.negSuf=e.posSuf;return e}function qr(t){if(t.digits[0]===0)return t;let i=t.digits.length-t.integerLen;return t.exponent?t.exponent+=2:(i===0?t.digits.push(0,0):i===1&&t.digits.push(0),t.integerLen+=2),t}function Qr(t){let i=Math.abs(t)+"",e=0,n,r,s,o,a;for((r=i.indexOf(It))>-1&&(i=i.replace(It,"")),(s=i.search(/e/i))>0?(r<0&&(r=s),r+=+i.slice(s+1),i=i.substring(0,s)):r<0&&(r=i.length),s=0;i.charAt(s)===Qe;s++);if(s===(a=i.length))n=[0],r=1;else{for(a--;i.charAt(a)===Qe;)a--;for(r-=s,n=[],o=0;s<=a;s++,o++)n[o]=Number(i.charAt(s))}return r>Pi&&(n=n.splice(0,Pi-1),e=r-1,r=1),{digits:n,exponent:e,integerLen:r}}function es(t,i,e){if(i>e)throw new v(2307,!1);let n=t.digits,r=n.length-t.integerLen,s=Math.min(Math.max(i,r),e),o=s+t.integerLen,a=n[o];if(o>0){n.splice(Math.max(t.integerLen,o));for(let d=o;d<n.length;d++)n[d]=0}else{r=Math.max(0,r),t.integerLen=1,n.length=Math.max(1,o=s+1),n[0]=0;for(let d=1;d<o;d++)n[d]=0}if(a>=5)if(o-1<0){for(let d=0;d>o;d--)n.unshift(0),t.integerLen++;n.unshift(1),t.integerLen++}else n[o-1]++;for(;r<Math.max(0,s);r++)n.push(0);let u=s!==0,l=i+t.integerLen,c=n.reduceRight(function(d,D,g,T){return D=D+d,T[g]=D<10?D:D-10,u&&(T[g]===0&&g>=l?T.pop():u=!1),D>=10?1:0},0);c&&(n.unshift(c),t.integerLen++)}function Fn(t){let i=parseInt(t);if(isNaN(i))throw new v(2305,!1);return i}var Mt=class{$implicit;ngForOf;index;count;constructor(i,e,n,r){this.$implicit=i,this.ngForOf=e,this.index=n,this.count=r}get first(){return this.index===0}get last(){return this.index===this.count-1}get even(){return this.index%2===0}get odd(){return!this.even}},Ji=(()=>{class t{_viewContainer;_template;_differs;set ngForOf(e){this._ngForOf=e,this._ngForOfDirty=!0}set ngForTrackBy(e){this._trackByFn=e}get ngForTrackBy(){return this._trackByFn}_ngForOf=null;_ngForOfDirty=!0;_differ=null;_trackByFn;constructor(e,n,r){this._viewContainer=e,this._template=n,this._differs=r}set ngForTemplate(e){e&&(this._template=e)}ngDoCheck(){if(this._ngForOfDirty){this._ngForOfDirty=!1;let e=this._ngForOf;!this._differ&&e&&(this._differ=this._differs.find(e).create(this.ngForTrackBy))}if(this._differ){let e=this._differ.diff(this._ngForOf);e&&this._applyChanges(e)}}_applyChanges(e){let n=this._viewContainer;e.forEachOperation((r,s,o)=>{if(r.previousIndex==null)n.createEmbeddedView(this._template,new Mt(r.item,this._ngForOf,-1,-1),o===null?void 0:o);else if(o==null)n.remove(s===null?void 0:s);else if(s!==null){let a=n.get(s);n.move(a,o),Ni(a,r)}});for(let r=0,s=n.length;r<s;r++){let a=n.get(r).context;a.index=r,a.count=s,a.ngForOf=this._ngForOf}e.forEachIdentityChange(r=>{let s=n.get(r.currentIndex);Ni(s,r)})}static ngTemplateContextGuard(e,n){return!0}static \u0275fac=function(n){return new(n||t)(S(vt),S(fn),S(Ei))};static \u0275dir=J({type:t,selectors:[["","ngFor","","ngForOf",""]],inputs:{ngForOf:"ngForOf",ngForTrackBy:"ngForTrackBy",ngForTemplate:"ngForTemplate"}})}return t})();function Ni(t,i){t.context.$implicit=i.item}var Ot=(()=>{class t{_viewContainer;_context=new Rt;_thenTemplateRef=null;_elseTemplateRef=null;_thenViewRef=null;_elseViewRef=null;constructor(e,n){this._viewContainer=e,this._thenTemplateRef=n}set ngIf(e){this._context.$implicit=this._context.ngIf=e,this._updateView()}set ngIfThen(e){xi(e,!1),this._thenTemplateRef=e,this._thenViewRef=null,this._updateView()}set ngIfElse(e){xi(e,!1),this._elseTemplateRef=e,this._elseViewRef=null,this._updateView()}_updateView(){this._context.$implicit?this._thenViewRef||(this._viewContainer.clear(),this._elseViewRef=null,this._thenTemplateRef&&(this._thenViewRef=this._viewContainer.createEmbeddedView(this._thenTemplateRef,this._context))):this._elseViewRef||(this._viewContainer.clear(),this._thenViewRef=null,this._elseTemplateRef&&(this._elseViewRef=this._viewContainer.createEmbeddedView(this._elseTemplateRef,this._context)))}static ngIfUseIfTypeGuard;static ngTemplateGuard_ngIf;static ngTemplateContextGuard(e,n){return!0}static \u0275fac=function(n){return new(n||t)(S(vt),S(fn))};static \u0275dir=J({type:t,selectors:[["","ngIf",""]],inputs:{ngIf:"ngIf",ngIfThen:"ngIfThen",ngIfElse:"ngIfElse"}})}return t})(),Rt=class{$implicit=null;ngIf=null};function xi(t,i){if(t&&!t.createEmbeddedView)throw new v(2020,!1)}var ts=(()=>{class t{_ngEl;_differs;_renderer;_ngStyle=null;_differ=null;constructor(e,n,r){this._ngEl=e,this._differs=n,this._renderer=r}set ngStyle(e){this._ngStyle=e,!this._differ&&e&&(this._differ=this._differs.find(e).create())}ngDoCheck(){if(this._differ){let e=this._differ.diff(this._ngStyle);e&&this._applyChanges(e)}}_setStyle(e,n){let[r,s]=e.split("."),o=r.indexOf("-")===-1?void 0:ye.DashCase;n!=null?this._renderer.setStyle(this._ngEl.nativeElement,r,s?`${n}${s}`:n,o):this._renderer.removeStyle(this._ngEl.nativeElement,r,o)}_applyChanges(e){e.forEachRemovedItem(n=>this._setStyle(n.key,null)),e.forEachAddedItem(n=>this._setStyle(n.key,n.currentValue)),e.forEachChangedItem(n=>this._setStyle(n.key,n.currentValue))}static \u0275fac=function(n){return new(n||t)(S(Te),S(vn),S(yt))};static \u0275dir=J({type:t,selectors:[["","ngStyle",""]],inputs:{ngStyle:"ngStyle"}})}return t})(),ns=(()=>{class t{_viewContainerRef;_viewRef=null;ngTemplateOutletContext=null;ngTemplateOutlet=null;ngTemplateOutletInjector=null;constructor(e){this._viewContainerRef=e}ngOnChanges(e){if(this._shouldRecreateView(e)){let n=this._viewContainerRef;if(this._viewRef&&n.remove(n.indexOf(this._viewRef)),!this.ngTemplateOutlet){this._viewRef=null;return}let r=this._createContextForwardProxy();this._viewRef=n.createEmbeddedView(this.ngTemplateOutlet,r,{injector:this.ngTemplateOutletInjector??void 0})}}_shouldRecreateView(e){return!!e.ngTemplateOutlet||!!e.ngTemplateOutletInjector}_createContextForwardProxy(){return new Proxy({},{set:(e,n,r)=>this.ngTemplateOutletContext?Reflect.set(this.ngTemplateOutletContext,n,r):!1,get:(e,n,r)=>{if(this.ngTemplateOutletContext)return Reflect.get(this.ngTemplateOutletContext,n,r)}})}static \u0275fac=function(n){return new(n||t)(S(vt))};static \u0275dir=J({type:t,selectors:[["","ngTemplateOutlet",""]],inputs:{ngTemplateOutletContext:"ngTemplateOutletContext",ngTemplateOutlet:"ngTemplateOutlet",ngTemplateOutletInjector:"ngTemplateOutletInjector"},features:[ft]})}return t})();function Lt(t,i){return new v(2100,!1)}var is=/(?:[0-9A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF40\uDF42-\uDF49\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDE80-\uDEA9\uDEB0\uDEB1\uDF00-\uDF1C\uDF27\uDF30-\uDF45\uDF70-\uDF81\uDFB0-\uDFC4\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC71\uDC72\uDC75\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDEB8\uDF00-\uDF1A\uDF40-\uDF46]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEB0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2\uDFB0]|\uD808[\uDC00-\uDF99]|\uD809[\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE70-\uDEBE\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE7F\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD50-\uDD52\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD837[\uDF00-\uDF1E]|\uD838[\uDD00-\uDD2C\uDD37-\uDD3D\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB]|\uD839[\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43\uDD4B]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF38\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A])\S*/g,rs=(()=>{class t{transform(e){if(e==null)return null;if(typeof e!="string")throw Lt(t,e);return e.replace(is,n=>n[0].toUpperCase()+n.slice(1).toLowerCase())}static \u0275fac=function(n){return new(n||t)};static \u0275pipe=fe({name:"titlecase",type:t,pure:!0})}return t})(),ss=(()=>{class t{transform(e){if(e==null)return null;if(typeof e!="string")throw Lt(t,e);return e.toUpperCase()}static \u0275fac=function(n){return new(n||t)};static \u0275pipe=fe({name:"uppercase",type:t,pure:!0})}return t})(),os="mediumDate",qi=new b(""),Qi=new b(""),as=(()=>{class t{locale;defaultTimezone;defaultOptions;constructor(e,n,r){this.locale=e,this.defaultTimezone=n,this.defaultOptions=r}transform(e,n,r,s){if(e==null||e===""||e!==e)return null;try{let o=n??this.defaultOptions?.dateFormat??os,a=r??this.defaultOptions?.timezone??this.defaultTimezone??void 0;return Yi(e,o,s||this.locale,a)}catch(o){throw Lt(t,o.message)}}static \u0275fac=function(n){return new(n||t)(S(yn,16),S(qi,24),S(Qi,24))};static \u0275pipe=fe({name:"date",type:t,pure:!0})}return t})();function us(t,i){return{key:t,value:i}}var cs=(()=>{class t{differs;constructor(e){this.differs=e}differ;keyValues=[];compareFn=ki;transform(e,n=ki){if(!e||!(e instanceof Map)&&typeof e!="object")return null;this.differ??=this.differs.find(e).create();let r=this.differ.diff(e),s=n!==this.compareFn;return r&&(this.keyValues=[],r.forEachItem(o=>{this.keyValues.push(us(o.key,o.currentValue))})),(r||s)&&(n&&this.keyValues.sort(n),this.compareFn=n),this.keyValues}static \u0275fac=function(n){return new(n||t)(S(vn,16))};static \u0275pipe=fe({name:"keyvalue",type:t,pure:!1})}return t})();function ki(t,i){let e=t.key,n=i.key;if(e===n)return 0;if(e==null)return 1;if(n==null)return-1;if(typeof e=="string"&&typeof n=="string")return e<n?-1:1;if(typeof e=="number"&&typeof n=="number")return e-n;if(typeof e=="boolean"&&typeof n=="boolean")return e<n?-1:1;let r=String(e),s=String(n);return r==s?0:r<s?-1:1}var ls=(()=>{class t{_locale;constructor(e){this._locale=e}transform(e,n,r){if(!ds(e))return null;r||=this._locale;try{let s=hs(e);return Xi(s,r,n)}catch(s){throw Lt(t,s.message)}}static \u0275fac=function(n){return new(n||t)(S(yn,16))};static \u0275pipe=fe({name:"number",type:t,pure:!0})}return t})();function ds(t){return!(t==null||t===""||t!==t)}function hs(t){if(typeof t=="string"&&!isNaN(Number(t)-parseFloat(t)))return Number(t);if(typeof t!="number")throw new v(2309,!1);return t}var er=(()=>{class t{static \u0275fac=function(n){return new(n||t)};static \u0275mod=ve({type:t});static \u0275inj=De({})}return t})();function et(t,i){i=encodeURIComponent(i);for(let e of t.split(";")){let n=e.indexOf("="),[r,s]=n==-1?[e,""]:[e.slice(0,n),e.slice(n+1)];if(r.trim()===i)return decodeURIComponent(s)}return null}var be=class{};function su(t,i,e){return bi(t,i,e)}var Rn="browser";function ou(t){return t===Rn}var au=(()=>{class t{static \u0275prov=f({token:t,providedIn:"root",factory:()=>new Mn(h(I),window)})}return t})(),Mn=class{document;window;offset=()=>[0,0];constructor(i,e){this.document=i,this.window=e}setOffset(i){Array.isArray(i)?this.offset=()=>i:this.offset=i}getScrollPosition(){return[this.window.scrollX,this.window.scrollY]}scrollToPosition(i,e){this.window.scrollTo(G(_({},e),{left:i[0],top:i[1]}))}scrollToAnchor(i,e){let n=ps(this.document,i);n&&(this.scrollToElement(n,e),n.focus())}setHistoryScrollRestoration(i){try{this.window.history.scrollRestoration=i}catch{console.warn(ke(2400,!1))}}scrollToElement(i,e){let n=i.getBoundingClientRect(),r=n.left+this.window.pageXOffset,s=n.top+this.window.pageYOffset,o=this.offset();this.window.scrollTo(G(_({},e),{left:r-o[0],top:s-o[1]}))}};function ps(t,i){let e=t.getElementById(i)||t.getElementsByName(i)[0];if(e)return e;if(typeof t.createTreeWalker=="function"&&t.body&&typeof t.body.attachShadow=="function"){let n=t.createTreeWalker(t.body,NodeFilter.SHOW_ELEMENT),r=n.currentNode;for(;r;){let s=r.shadowRoot;if(s){let o=s.getElementById(i)||s.querySelector(`[name="${i}"]`);if(o)return o}r=n.nextNode()}}return null}var nr=t=>t.src,gs=new b("",{factory:()=>nr});var tr=/^((\s*\d+w\s*(,|$)){1,})$/;var ms=[1,2],Ds=640;var ys=1920,vs=1080;var uu=(()=>{class t{imageLoader=h(gs);config=ws(h(dn));renderer=h(yt);imgElement=h(Te).nativeElement;injector=h(le);destroyRef=h(ht);lcpObserver;_renderedSrc=null;ngSrc;ngSrcset;sizes;width;height;decoding;loading;priority=!1;loaderParams;disableOptimizedSrcset=!1;fill=!1;placeholder;placeholderConfig;src;srcset;constructor(){}ngOnInit(){yi("NgOptimizedImage"),this.placeholder&&this.removePlaceholderOnLoad(this.imgElement),this.setHostAttributes()}setHostAttributes(){this.fill?this.sizes||="100vw":(this.setHostAttribute("width",this.width.toString()),this.setHostAttribute("height",this.height.toString())),this.setHostAttribute("loading",this.getLoadingBehavior()),this.setHostAttribute("fetchpriority",this.getFetchPriority()),this.setHostAttribute("decoding",this.getDecoding()),this.setHostAttribute("ng-img","true");let e=this.updateSrcAndSrcset();this.sizes?this.getLoadingBehavior()==="lazy"?this.setHostAttribute("sizes","auto, "+this.sizes):this.setHostAttribute("sizes",this.sizes):this.ngSrcset&&tr.test(this.ngSrcset)&&this.getLoadingBehavior()==="lazy"&&this.setHostAttribute("sizes","auto, 100vw")}ngOnChanges(e){if(e.ngSrc&&!e.ngSrc.isFirstChange()){let n=this._renderedSrc;this.updateSrcAndSrcset(!0)}}callImageLoader(e){let n=e;return this.loaderParams&&(n.loaderParams=this.loaderParams),this.imageLoader(n)}getLoadingBehavior(){return!this.priority&&this.loading!==void 0?this.loading:this.priority?"eager":"lazy"}getFetchPriority(){return this.priority?"high":"auto"}getDecoding(){return this.priority?"sync":this.decoding??"auto"}getRewrittenSrc(){if(!this._renderedSrc){let e={src:this.ngSrc};this._renderedSrc=this.callImageLoader(e)}return this._renderedSrc}getRewrittenSrcset(){let e=tr.test(this.ngSrcset);return this.ngSrcset.split(",").filter(r=>r!=="").map(r=>{r=r.trim();let s=e?parseFloat(r):parseFloat(r)*this.width;return`${this.callImageLoader({src:this.ngSrc,width:s})} ${r}`}).join(", ")}getAutomaticSrcset(){return this.sizes?this.getResponsiveSrcset():this.getFixedSrcset()}getResponsiveSrcset(){let{breakpoints:e}=this.config,n=e;return this.sizes?.trim()==="100vw"&&(n=e.filter(s=>s>=Ds)),n.map(s=>`${this.callImageLoader({src:this.ngSrc,width:s})} ${s}w`).join(", ")}updateSrcAndSrcset(e=!1){e&&(this._renderedSrc=null);let n=this.getRewrittenSrc();this.setHostAttribute("src",n);let r;return this.ngSrcset?r=this.getRewrittenSrcset():this.shouldGenerateAutomaticSrcset()&&(r=this.getAutomaticSrcset()),r&&this.setHostAttribute("srcset",r),r}getFixedSrcset(){return ms.map(n=>`${this.callImageLoader({src:this.ngSrc,width:this.width*n})} ${n}x`).join(", ")}shouldGenerateAutomaticSrcset(){let e=!1;return this.sizes||(e=this.width>ys||this.height>vs),!this.disableOptimizedSrcset&&!this.srcset&&this.imageLoader!==nr&&!e}generatePlaceholder(e){let{placeholderResolution:n}=this.config;return e===!0?`url(${this.callImageLoader({src:this.ngSrc,width:n,isPlaceholder:!0})})`:typeof e=="string"?`url(${e})`:null}shouldBlurPlaceholder(e){return!e||!e.hasOwnProperty("blur")?!0:!!e.blur}removePlaceholderOnLoad(e){let n=()=>{let o=this.injector.get(Ge);r(),s(),this.placeholder=!1,o.markForCheck()},r=this.renderer.listen(e,"load",n),s=this.renderer.listen(e,"error",n);this.destroyRef.onDestroy(()=>{r(),s()}),Cs(e,n)}setHostAttribute(e,n){this.renderer.setAttribute(this.imgElement,e,n)}static \u0275fac=function(n){return new(n||t)};static \u0275dir=J({type:t,selectors:[["img","ngSrc",""]],hostVars:18,hostBindings:function(n,r){n&2&&we("position",r.fill?"absolute":null)("width",r.fill?"100%":null)("height",r.fill?"100%":null)("inset",r.fill?"0":null)("background-size",r.placeholder?"cover":null)("background-position",r.placeholder?"50% 50%":null)("background-repeat",r.placeholder?"no-repeat":null)("background-image",r.placeholder?r.generatePlaceholder(r.placeholder):null)("filter",r.placeholder&&r.shouldBlurPlaceholder(r.placeholderConfig)?"blur(15px)":null)},inputs:{ngSrc:[2,"ngSrc","ngSrc",bs],ngSrcset:"ngSrcset",sizes:"sizes",width:[2,"width","width",wn],height:[2,"height","height",wn],decoding:"decoding",loading:"loading",priority:[2,"priority","priority",Ze],loaderParams:"loaderParams",disableOptimizedSrcset:[2,"disableOptimizedSrcset","disableOptimizedSrcset",Ze],fill:[2,"fill","fill",Ze],placeholder:[2,"placeholder","placeholder",Es],placeholderConfig:"placeholderConfig",src:"src",srcset:"srcset"},features:[ft]})}return t})();function ws(t){let i={};return t.breakpoints&&(i.breakpoints=t.breakpoints.sort((e,n)=>e-n)),Object.assign({},ci,t,i)}function Cs(t,i){t.complete&&t.naturalWidth&&i()}function bs(t){return typeof t=="string"?t:he(t)}function Es(t){return typeof t=="string"&&t!=="true"&&t!=="false"&&t!==""?t:Ze(t)}var tt=class{_doc;constructor(i){this._doc=i}manager},Pt=(()=>{class t extends tt{constructor(e){super(e)}supports(e){return!0}addEventListener(e,n,r,s){return e.addEventListener(n,r,s),()=>this.removeEventListener(e,n,r,s)}removeEventListener(e,n,r,s){return e.removeEventListener(n,r,s)}static \u0275fac=function(n){return new(n||t)(p(I))};static \u0275prov=f({token:t,factory:t.\u0275fac})}return t})(),kt=new b(""),Nn=(()=>{class t{_zone;_plugins;_eventNameToPlugin=new Map;constructor(e,n){this._zone=n,e.forEach(o=>{o.manager=this});let r=e.filter(o=>!(o instanceof Pt));this._plugins=r.slice().reverse();let s=e.find(o=>o instanceof Pt);s&&this._plugins.push(s)}addEventListener(e,n,r,s){return this._findPluginFor(n).addEventListener(e,n,r,s)}getZone(){return this._zone}_findPluginFor(e){let n=this._eventNameToPlugin.get(e);if(n)return n;if(n=this._plugins.find(s=>s.supports(e)),!n)throw new v(5101,!1);return this._eventNameToPlugin.set(e,n),n}static \u0275fac=function(n){return new(n||t)(p(kt),p(de))};static \u0275prov=f({token:t,factory:t.\u0275fac})}return t})(),On="ng-app-id";function ir(t){for(let i of t)i.remove()}function rr(t,i){let e=i.createElement("style");return e.textContent=t,e}function Ts(t,i,e,n){let r=t.head?.querySelectorAll(`style[${On}="${i}"],link[${On}="${i}"]`);if(r)for(let s of r)s.removeAttribute(On),s instanceof HTMLLinkElement?n.set(s.href.slice(s.href.lastIndexOf("/")+1),{usage:0,elements:[s]}):s.textContent&&e.set(s.textContent,{usage:0,elements:[s]})}function Pn(t,i){let e=i.createElement("link");return e.setAttribute("rel","stylesheet"),e.setAttribute("href",t),e}var xn=(()=>{class t{doc;appId;nonce;inline=new Map;external=new Map;hosts=new Set;constructor(e,n,r,s={}){this.doc=e,this.appId=n,this.nonce=r,Ts(e,n,this.inline,this.external),this.hosts.add(e.head)}addStyles(e,n){for(let r of e)this.addUsage(r,this.inline,rr);n?.forEach(r=>this.addUsage(r,this.external,Pn))}removeStyles(e,n){for(let r of e)this.removeUsage(r,this.inline);n?.forEach(r=>this.removeUsage(r,this.external))}addUsage(e,n,r){let s=n.get(e);s?s.usage++:n.set(e,{usage:1,elements:[...this.hosts].map(o=>this.addElement(o,r(e,this.doc)))})}removeUsage(e,n){let r=n.get(e);r&&(r.usage--,r.usage<=0&&(ir(r.elements),n.delete(e)))}ngOnDestroy(){for(let[,{elements:e}]of[...this.inline,...this.external])ir(e);this.hosts.clear()}addHost(e){this.hosts.add(e);for(let[n,{elements:r}]of this.inline)r.push(this.addElement(e,rr(n,this.doc)));for(let[n,{elements:r}]of this.external)r.push(this.addElement(e,Pn(n,this.doc)))}removeHost(e){this.hosts.delete(e)}addElement(e,n){return this.nonce&&n.setAttribute("nonce",this.nonce),e.appendChild(n)}static \u0275fac=function(n){return new(n||t)(p(I),p(cn),p(ln,8),p(gt))};static \u0275prov=f({token:t,factory:t.\u0275fac})}return t})(),Ln={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"},kn=/%COMP%/g;var or="%COMP%",_s=`_nghost-${or}`,As=`_ngcontent-${or}`,Ss=!0,Fs=new b("",{factory:()=>Ss});function Is(t){return As.replace(kn,t)}function Ms(t){return _s.replace(kn,t)}function ar(t,i){return i.map(e=>e.replace(kn,t))}var Bn=(()=>{class t{eventManager;sharedStylesHost;appId;removeStylesOnCompDestroy;doc;ngZone;nonce;tracingService;rendererByCompId=new Map;defaultRenderer;platformIsServer;constructor(e,n,r,s,o,a,u=null,l=null){this.eventManager=e,this.sharedStylesHost=n,this.appId=r,this.removeStylesOnCompDestroy=s,this.doc=o,this.ngZone=a,this.nonce=u,this.tracingService=l,this.platformIsServer=!1,this.defaultRenderer=new nt(e,o,a,this.platformIsServer,this.tracingService)}createRenderer(e,n){if(!e||!n)return this.defaultRenderer;let r=this.getOrCreateRenderer(e,n);return r instanceof xt?r.applyToHost(e):r instanceof it&&r.applyStyles(),r}getOrCreateRenderer(e,n){let r=this.rendererByCompId,s=r.get(n.id);if(!s){let o=this.doc,a=this.ngZone,u=this.eventManager,l=this.sharedStylesHost,c=this.removeStylesOnCompDestroy,d=this.platformIsServer,D=this.tracingService;switch(n.encapsulation){case mt.Emulated:s=new xt(u,l,n,this.appId,c,o,a,d,D);break;case mt.ShadowDom:return new Nt(u,e,n,o,a,this.nonce,d,D,l);case mt.ExperimentalIsolatedShadowDom:return new Nt(u,e,n,o,a,this.nonce,d,D);default:s=new it(u,l,n,c,o,a,d,D);break}r.set(n.id,s)}return s}ngOnDestroy(){this.rendererByCompId.clear()}componentReplaced(e){this.rendererByCompId.delete(e)}static \u0275fac=function(n){return new(n||t)(p(Nn),p(xn),p(cn),p(Fs),p(I),p(de),p(ln),p(Dt,8))};static \u0275prov=f({token:t,factory:t.\u0275fac})}return t})(),nt=class{eventManager;doc;ngZone;platformIsServer;tracingService;data=Object.create(null);throwOnSyntheticProps=!0;constructor(i,e,n,r,s){this.eventManager=i,this.doc=e,this.ngZone=n,this.platformIsServer=r,this.tracingService=s}destroy(){}destroyNode=null;createElement(i,e){return e?this.doc.createElementNS(Ln[e]||e,i):this.doc.createElement(i)}createComment(i){return this.doc.createComment(i)}createText(i){return this.doc.createTextNode(i)}appendChild(i,e){(sr(i)?i.content:i).appendChild(e)}insertBefore(i,e,n){i&&(sr(i)?i.content:i).insertBefore(e,n)}removeChild(i,e){e.remove()}selectRootElement(i,e){let n=typeof i=="string"?this.doc.querySelector(i):i;if(!n)throw new v(-5104,!1);return e||(n.textContent=""),n}parentNode(i){return i.parentNode}nextSibling(i){return i.nextSibling}setAttribute(i,e,n,r){if(r){e=r+":"+e;let s=Ln[r];s?i.setAttributeNS(s,e,n):i.setAttribute(e,n)}else i.setAttribute(e,n)}removeAttribute(i,e,n){if(n){let r=Ln[n];r?i.removeAttributeNS(r,e):i.removeAttribute(`${n}:${e}`)}else i.removeAttribute(e)}addClass(i,e){i.classList.add(e)}removeClass(i,e){i.classList.remove(e)}setStyle(i,e,n,r){r&(ye.DashCase|ye.Important)?i.style.setProperty(e,n,r&ye.Important?"important":""):i.style[e]=n}removeStyle(i,e,n){n&ye.DashCase?i.style.removeProperty(e):i.style[e]=""}setProperty(i,e,n){i!=null&&(i[e]=n)}setValue(i,e){i.nodeValue=e}listen(i,e,n,r){if(typeof i=="string"&&(i=te().getGlobalEventTarget(this.doc,i),!i))throw new v(5102,!1);let s=this.decoratePreventDefault(n);return this.tracingService?.wrapEventListener&&(s=this.tracingService.wrapEventListener(i,e,s)),this.eventManager.addEventListener(i,e,s,r)}decoratePreventDefault(i){return e=>{if(e==="__ngUnwrap__")return i;i(e)===!1&&e.preventDefault()}}};function sr(t){return t.tagName==="TEMPLATE"&&t.content!==void 0}var Nt=class extends nt{hostEl;sharedStylesHost;shadowRoot;constructor(i,e,n,r,s,o,a,u,l){super(i,r,s,a,u),this.hostEl=e,this.sharedStylesHost=l,this.shadowRoot=e.attachShadow({mode:"open"}),this.sharedStylesHost&&this.sharedStylesHost.addHost(this.shadowRoot);let c=n.styles;c=ar(n.id,c);for(let D of c){let g=document.createElement("style");o&&g.setAttribute("nonce",o),g.textContent=D,this.shadowRoot.appendChild(g)}let d=n.getExternalStyles?.();if(d)for(let D of d){let g=Pn(D,r);o&&g.setAttribute("nonce",o),this.shadowRoot.appendChild(g)}}nodeOrShadowRoot(i){return i===this.hostEl?this.shadowRoot:i}appendChild(i,e){return super.appendChild(this.nodeOrShadowRoot(i),e)}insertBefore(i,e,n){return super.insertBefore(this.nodeOrShadowRoot(i),e,n)}removeChild(i,e){return super.removeChild(null,e)}parentNode(i){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(i)))}destroy(){this.sharedStylesHost&&this.sharedStylesHost.removeHost(this.shadowRoot)}},it=class extends nt{sharedStylesHost;removeStylesOnCompDestroy;styles;styleUrls;constructor(i,e,n,r,s,o,a,u,l){super(i,s,o,a,u),this.sharedStylesHost=e,this.removeStylesOnCompDestroy=r;let c=n.styles;this.styles=l?ar(l,c):c,this.styleUrls=n.getExternalStyles?.(l)}applyStyles(){this.sharedStylesHost.addStyles(this.styles,this.styleUrls)}destroy(){this.removeStylesOnCompDestroy&&Di.size===0&&this.sharedStylesHost.removeStyles(this.styles,this.styleUrls)}},xt=class extends it{contentAttr;hostAttr;constructor(i,e,n,r,s,o,a,u,l){let c=r+"-"+n.id;super(i,e,n,s,o,a,u,l,c),this.contentAttr=Is(c),this.hostAttr=Ms(c)}applyToHost(i){this.applyStyles(),this.setAttribute(i,this.hostAttr,"")}createElement(i,e){let n=super.createElement(i,e);return super.setAttribute(n,this.contentAttr,""),n}};var Bt=class t extends Ke{supportsDOMEvents=!0;static makeCurrent(){bn(new t)}onAndCancel(i,e,n,r){return i.addEventListener(e,n,r),()=>{i.removeEventListener(e,n,r)}}dispatchEvent(i,e){i.dispatchEvent(e)}remove(i){i.remove()}createElement(i,e){return e=e||this.getDefaultDocument(),e.createElement(i)}createHtmlDocument(){return document.implementation.createHTMLDocument("fakeTitle")}getDefaultDocument(){return document}isElementNode(i){return i.nodeType===Node.ELEMENT_NODE}isShadowRoot(i){return i instanceof DocumentFragment}getGlobalEventTarget(i,e){return e==="window"?window:e==="document"?i:e==="body"?i.body:null}getBaseHref(i){let e=Os();return e==null?null:Ls(e)}resetBaseElement(){rt=null}getUserAgent(){return window.navigator.userAgent}getCookie(i){return et(document.cookie,i)}},rt=null;function Os(){return rt=rt||document.head.querySelector("base"),rt?rt.getAttribute("href"):null}function Ls(t){return new URL(t,document.baseURI).pathname}var Ps=(()=>{class t{build(){return new XMLHttpRequest}static \u0275fac=function(n){return new(n||t)};static \u0275prov=f({token:t,factory:t.\u0275fac})}return t})(),ur=["alt","control","meta","shift"],Ns={"\b":"Backspace"," ":"Tab","\x7F":"Delete","\x1B":"Escape",Del:"Delete",Esc:"Escape",Left:"ArrowLeft",Right:"ArrowRight",Up:"ArrowUp",Down:"ArrowDown",Menu:"ContextMenu",Scroll:"ScrollLock",Win:"OS"},xs={alt:t=>t.altKey,control:t=>t.ctrlKey,meta:t=>t.metaKey,shift:t=>t.shiftKey},cr=(()=>{class t extends tt{constructor(e){super(e)}supports(e){return t.parseEventName(e)!=null}addEventListener(e,n,r,s){let o=t.parseEventName(n),a=t.eventCallback(o.fullKey,r,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>te().onAndCancel(e,o.domEventName,a,s))}static parseEventName(e){let n=e.toLowerCase().split("."),r=n.shift();if(n.length===0||!(r==="keydown"||r==="keyup"))return null;let s=t._normalizeKey(n.pop()),o="",a=n.indexOf("code");if(a>-1&&(n.splice(a,1),o="code."),ur.forEach(l=>{let c=n.indexOf(l);c>-1&&(n.splice(c,1),o+=l+".")}),o+=s,n.length!=0||s.length===0)return null;let u={};return u.domEventName=r,u.fullKey=o,u}static matchEventFullKeyCode(e,n){let r=Ns[e.key]||e.key,s="";return n.indexOf("code.")>-1&&(r=e.code,s="code."),r==null||!r?!1:(r=r.toLowerCase(),r===" "?r="space":r==="."&&(r="dot"),ur.forEach(o=>{if(o!==r){let a=xs[o];a(e)&&(s+=o+".")}}),s+=r,s===n)}static eventCallback(e,n,r){return s=>{t.matchEventFullKeyCode(s,e)&&r.runGuarded(()=>n(s))}}static _normalizeKey(e){return e==="esc"?"escape":e}static \u0275fac=function(n){return new(n||t)(p(I))};static \u0275prov=f({token:t,factory:t.\u0275fac})}return t})();function ks(t,i,e){let n=_({rootComponent:t,platformRef:e?.platformRef},Bs(i));return Ti(n)}function Bs(t){return{appProviders:[...Vs,...t?.providers??[]],platformProviders:Hs}}function js(){Bt.makeCurrent()}function Us(){return new an}function $s(){return ai(document),document}var Hs=[{provide:gt,useValue:Rn},{provide:ui,useValue:js,multi:!0},{provide:I,useFactory:$s}];var Vs=[{provide:si,useValue:"root"},{provide:an,useFactory:Us},{provide:kt,useClass:Pt,multi:!0},{provide:kt,useClass:cr,multi:!0},Bn,xn,Nn,{provide:wi,useExisting:Bn},{provide:be,useClass:Ps},[]];var W=class t{headers;normalizedNames=new Map;lazyInit;lazyUpdate=null;constructor(i){i?typeof i=="string"?this.lazyInit=()=>{this.headers=new Map,i.split(`
|
|
2
|
-
`).forEach(e=>{let n=e.indexOf(":");if(n>0){let r=e.slice(0,n),s=e.slice(n+1).trim();this.addHeaderEntry(r,s)}})}:typeof Headers<"u"&&i instanceof Headers?(this.headers=new Map,i.forEach((e,n)=>{this.addHeaderEntry(n,e)})):this.lazyInit=()=>{this.headers=new Map,Object.entries(i).forEach(([e,n])=>{this.setHeaderEntries(e,n)})}:this.headers=new Map}has(i){return this.init(),this.headers.has(i.toLowerCase())}get(i){this.init();let e=this.headers.get(i.toLowerCase());return e&&e.length>0?e[0]:null}keys(){return this.init(),Array.from(this.normalizedNames.values())}getAll(i){return this.init(),this.headers.get(i.toLowerCase())||null}append(i,e){return this.clone({name:i,value:e,op:"a"})}set(i,e){return this.clone({name:i,value:e,op:"s"})}delete(i,e){return this.clone({name:i,value:e,op:"d"})}maybeSetNormalizedName(i,e){this.normalizedNames.has(e)||this.normalizedNames.set(e,i)}init(){this.lazyInit&&(this.lazyInit instanceof t?this.copyFrom(this.lazyInit):this.lazyInit(),this.lazyInit=null,this.lazyUpdate&&(this.lazyUpdate.forEach(i=>this.applyUpdate(i)),this.lazyUpdate=null))}copyFrom(i){i.init(),Array.from(i.headers.keys()).forEach(e=>{this.headers.set(e,i.headers.get(e)),this.normalizedNames.set(e,i.normalizedNames.get(e))})}clone(i){let e=new t;return e.lazyInit=this.lazyInit&&this.lazyInit instanceof t?this.lazyInit:this,e.lazyUpdate=(this.lazyUpdate||[]).concat([i]),e}applyUpdate(i){let e=i.name.toLowerCase();switch(i.op){case"a":case"s":let n=i.value;if(typeof n=="string"&&(n=[n]),n.length===0)return;this.maybeSetNormalizedName(i.name,e);let r=(i.op==="a"?this.headers.get(e):void 0)||[];r.push(...n),this.headers.set(e,r);break;case"d":let s=i.value;if(!s)this.headers.delete(e),this.normalizedNames.delete(e);else{let o=this.headers.get(e);if(!o)return;o=o.filter(a=>s.indexOf(a)===-1),o.length===0?(this.headers.delete(e),this.normalizedNames.delete(e)):this.headers.set(e,o)}break}}addHeaderEntry(i,e){let n=i.toLowerCase();this.maybeSetNormalizedName(i,n),this.headers.has(n)?this.headers.get(n).push(e):this.headers.set(n,[e])}setHeaderEntries(i,e){let n=(Array.isArray(e)?e:[e]).map(s=>s.toString()),r=i.toLowerCase();this.headers.set(r,n),this.maybeSetNormalizedName(i,r)}forEach(i){this.init(),Array.from(this.normalizedNames.keys()).forEach(e=>i(this.normalizedNames.get(e),this.headers.get(e)))}};var $t=class{map=new Map;set(i,e){return this.map.set(i,e),this}get(i){return this.map.has(i)||this.map.set(i,i.defaultValue()),this.map.get(i)}delete(i){return this.map.delete(i),this}has(i){return this.map.has(i)}keys(){return this.map.keys()}},Ht=class{encodeKey(i){return lr(i)}encodeValue(i){return lr(i)}decodeKey(i){return decodeURIComponent(i)}decodeValue(i){return decodeURIComponent(i)}};function zs(t,i){let e=new Map;return t.length>0&&t.replace(/^\?/,"").split("&").forEach(r=>{let s=r.indexOf("="),[o,a]=s==-1?[i.decodeKey(r),""]:[i.decodeKey(r.slice(0,s)),i.decodeValue(r.slice(s+1))],u=e.get(o)||[];u.push(a),e.set(o,u)}),e}var Gs=/%(\d[a-f0-9])/gi,Zs={40:"@","3A":":",24:"$","2C":",","3B":";","3D":"=","3F":"?","2F":"/"};function lr(t){return encodeURIComponent(t).replace(Gs,(i,e)=>Zs[e]??i)}function jt(t){return`${t}`}var re=class t{map;encoder;updates=null;cloneFrom=null;constructor(i={}){if(this.encoder=i.encoder||new Ht,i.fromString){if(i.fromObject)throw new v(2805,!1);this.map=zs(i.fromString,this.encoder)}else i.fromObject?(this.map=new Map,Object.keys(i.fromObject).forEach(e=>{let n=i.fromObject[e],r=Array.isArray(n)?n.map(jt):[jt(n)];this.map.set(e,r)})):this.map=null}has(i){return this.init(),this.map.has(i)}get(i){this.init();let e=this.map.get(i);return e?e[0]:null}getAll(i){return this.init(),this.map.get(i)||null}keys(){return this.init(),Array.from(this.map.keys())}append(i,e){return this.clone({param:i,value:e,op:"a"})}appendAll(i){let e=[];return Object.keys(i).forEach(n=>{let r=i[n];Array.isArray(r)?r.forEach(s=>{e.push({param:n,value:s,op:"a"})}):e.push({param:n,value:r,op:"a"})}),this.clone(e)}set(i,e){return this.clone({param:i,value:e,op:"s"})}delete(i,e){return this.clone({param:i,value:e,op:"d"})}toString(){return this.init(),this.keys().map(i=>{let e=this.encoder.encodeKey(i);return this.map.get(i).map(n=>e+"="+this.encoder.encodeValue(n)).join("&")}).filter(i=>i!=="").join("&")}clone(i){let e=new t({encoder:this.encoder});return e.cloneFrom=this.cloneFrom||this,e.updates=(this.updates||[]).concat(i),e}init(){this.map===null&&(this.map=new Map),this.cloneFrom!==null&&(this.cloneFrom.init(),this.cloneFrom.keys().forEach(i=>this.map.set(i,this.cloneFrom.map.get(i))),this.updates.forEach(i=>{switch(i.op){case"a":case"s":let e=(i.op==="a"?this.map.get(i.param):void 0)||[];e.push(jt(i.value)),this.map.set(i.param,e);break;case"d":if(i.value!==void 0){let n=this.map.get(i.param)||[],r=n.indexOf(jt(i.value));r!==-1&&n.splice(r,1),n.length>0?this.map.set(i.param,n):this.map.delete(i.param)}else{this.map.delete(i.param);break}}}),this.cloneFrom=this.updates=null)}};function Ys(t){switch(t){case"DELETE":case"GET":case"HEAD":case"OPTIONS":case"JSONP":return!1;default:return!0}}function dr(t){return typeof ArrayBuffer<"u"&&t instanceof ArrayBuffer}function hr(t){return typeof Blob<"u"&&t instanceof Blob}function fr(t){return typeof FormData<"u"&&t instanceof FormData}function Ws(t){return typeof URLSearchParams<"u"&&t instanceof URLSearchParams}var st="Content-Type",Vt="Accept",gr="text/plain",mr="application/json",Dr=`${mr}, ${gr}, */*`,Ae=class t{url;body=null;headers;context;reportProgress=!1;withCredentials=!1;credentials;keepalive=!1;cache;priority;mode;redirect;referrer;integrity;referrerPolicy;responseType="json";method;params;urlWithParams;transferCache;timeout;constructor(i,e,n,r){this.url=e,this.method=i.toUpperCase();let s;if(Ys(this.method)||r?(this.body=n!==void 0?n:null,s=r):s=n,s){if(this.reportProgress=!!s.reportProgress,this.withCredentials=!!s.withCredentials,this.keepalive=!!s.keepalive,s.responseType&&(this.responseType=s.responseType),s.headers&&(this.headers=s.headers),s.context&&(this.context=s.context),s.params&&(this.params=s.params),s.priority&&(this.priority=s.priority),s.cache&&(this.cache=s.cache),s.credentials&&(this.credentials=s.credentials),typeof s.timeout=="number"){if(s.timeout<1||!Number.isInteger(s.timeout))throw new v(2822,"");this.timeout=s.timeout}s.mode&&(this.mode=s.mode),s.redirect&&(this.redirect=s.redirect),s.integrity&&(this.integrity=s.integrity),s.referrer&&(this.referrer=s.referrer),s.referrerPolicy&&(this.referrerPolicy=s.referrerPolicy),this.transferCache=s.transferCache}if(this.headers??=new W,this.context??=new $t,!this.params)this.params=new re,this.urlWithParams=e;else{let o=this.params.toString();if(o.length===0)this.urlWithParams=e;else{let a=e.indexOf("?"),u=a===-1?"?":a<e.length-1?"&":"";this.urlWithParams=e+u+o}}}serializeBody(){return this.body===null?null:typeof this.body=="string"||dr(this.body)||hr(this.body)||fr(this.body)||Ws(this.body)?this.body:this.body instanceof re?this.body.toString():typeof this.body=="object"||typeof this.body=="boolean"||Array.isArray(this.body)?JSON.stringify(this.body):this.body.toString()}detectContentTypeHeader(){return this.body===null||fr(this.body)?null:hr(this.body)?this.body.type||null:dr(this.body)?null:typeof this.body=="string"?gr:this.body instanceof re?"application/x-www-form-urlencoded;charset=UTF-8":typeof this.body=="object"||typeof this.body=="number"||typeof this.body=="boolean"?mr:null}clone(i={}){let e=i.method||this.method,n=i.url||this.url,r=i.responseType||this.responseType,s=i.keepalive??this.keepalive,o=i.priority||this.priority,a=i.cache||this.cache,u=i.mode||this.mode,l=i.redirect||this.redirect,c=i.credentials||this.credentials,d=i.referrer||this.referrer,D=i.integrity||this.integrity,g=i.referrerPolicy||this.referrerPolicy,T=i.transferCache??this.transferCache,A=i.timeout??this.timeout,m=i.body!==void 0?i.body:this.body,y=i.withCredentials??this.withCredentials,F=i.reportProgress??this.reportProgress,$=i.headers||this.headers,C=i.params||this.params,H=i.context??this.context;return i.setHeaders!==void 0&&($=Object.keys(i.setHeaders).reduce((ae,K)=>ae.set(K,i.setHeaders[K]),$)),i.setParams&&(C=Object.keys(i.setParams).reduce((ae,K)=>ae.set(K,i.setParams[K]),C)),new t(e,n,m,{params:C,headers:$,context:H,reportProgress:F,responseType:r,withCredentials:y,transferCache:T,keepalive:s,cache:a,priority:o,timeout:A,mode:u,redirect:l,credentials:c,referrer:d,integrity:D,referrerPolicy:g})}},se=(function(t){return t[t.Sent=0]="Sent",t[t.UploadProgress=1]="UploadProgress",t[t.ResponseHeader=2]="ResponseHeader",t[t.DownloadProgress=3]="DownloadProgress",t[t.Response=4]="Response",t[t.User=5]="User",t})(se||{}),Se=class{headers;status;statusText;url;ok;type;redirected;responseType;constructor(i,e=200,n="OK"){this.headers=i.headers||new W,this.status=i.status!==void 0?i.status:e,this.statusText=i.statusText||n,this.url=i.url||null,this.redirected=i.redirected,this.responseType=i.responseType,this.ok=this.status>=200&&this.status<300}},ot=class t extends Se{constructor(i={}){super(i)}type=se.ResponseHeader;clone(i={}){return new t({headers:i.headers||this.headers,status:i.status!==void 0?i.status:this.status,statusText:i.statusText||this.statusText,url:i.url||this.url||void 0})}},Fe=class t extends Se{body;constructor(i={}){super(i),this.body=i.body!==void 0?i.body:null}type=se.Response;clone(i={}){return new t({body:i.body!==void 0?i.body:this.body,headers:i.headers||this.headers,status:i.status!==void 0?i.status:this.status,statusText:i.statusText||this.statusText,url:i.url||this.url||void 0,redirected:i.redirected??this.redirected,responseType:i.responseType??this.responseType})}},Y=class extends Se{name="HttpErrorResponse";message;error;ok=!1;constructor(i){super(i,0,"Unknown Error"),this.status>=200&&this.status<300?this.message=`Http failure during parsing for ${i.url||"(unknown url)"}`:this.message=`Http failure response for ${i.url||"(unknown url)"}: ${i.status} ${i.statusText}`,this.error=i.error||null}},yr=200,Ks=204;var Xs=/^\)\]\}',?\n/,vr=new b(""),Ut=(()=>{class t{fetchImpl=h(Un,{optional:!0})?.fetch??((...e)=>globalThis.fetch(...e));ngZone=h(de);destroyRef=h(ht);handle(e){return new qt(n=>{let r=new AbortController;this.doRequest(e,r.signal,n).then($n,o=>n.error(new Y({error:o})));let s;return e.timeout&&(s=this.ngZone.runOutsideAngular(()=>setTimeout(()=>{r.signal.aborted||r.abort(new DOMException("signal timed out","TimeoutError"))},e.timeout))),()=>{s!==void 0&&clearTimeout(s),r.abort()}})}doRequest(e,n,r){return lt(this,null,function*(){let s=this.createRequestInit(e),o;try{let A=this.ngZone.runOutsideAngular(()=>this.fetchImpl(e.urlWithParams,_({signal:n},s)));Js(A),r.next({type:se.Sent}),o=yield A}catch(A){r.error(new Y({error:A,status:A.status??0,statusText:A.statusText,url:e.urlWithParams,headers:A.headers}));return}let a=new W(o.headers),u=o.statusText,l=o.url||e.urlWithParams,c=o.status,d=null;if(e.reportProgress&&r.next(new ot({headers:a,status:c,statusText:u,url:l})),o.body){let A=o.headers.get("content-length"),m=[],y=o.body.getReader(),F=0,$,C,H=typeof Zone<"u"&&Zone.current,ae=!1;if(yield this.ngZone.runOutsideAngular(()=>lt(this,null,function*(){for(;;){if(this.destroyRef.destroyed){yield y.cancel(),ae=!0;break}let{done:Pe,value:Jt}=yield y.read();if(Pe)break;if(m.push(Jt),F+=Jt.length,e.reportProgress){C=e.responseType==="text"?(C??"")+($??=new TextDecoder).decode(Jt,{stream:!0}):void 0;let ni=()=>r.next({type:se.DownloadProgress,total:A?+A:void 0,loaded:F,partialText:C});H?H.run(ni):ni()}}})),ae){r.complete();return}let K=this.concatChunks(m,F);try{let Pe=o.headers.get(st)??"";d=this.parseBody(e,K,Pe,c)}catch(Pe){r.error(new Y({error:Pe,headers:new W(o.headers),status:o.status,statusText:o.statusText,url:o.url||e.urlWithParams}));return}}c===0&&(c=d?yr:0);let D=c>=200&&c<300,g=o.redirected,T=o.type;D?(r.next(new Fe({body:d,headers:a,status:c,statusText:u,url:l,redirected:g,responseType:T})),r.complete()):r.error(new Y({error:d,headers:a,status:c,statusText:u,url:l,redirected:g,responseType:T}))})}parseBody(e,n,r,s){switch(e.responseType){case"json":let o=new TextDecoder().decode(n).replace(Xs,"");if(o==="")return null;try{return JSON.parse(o)}catch(a){if(s<200||s>=300)return o;throw a}case"text":return new TextDecoder().decode(n);case"blob":return new Blob([n],{type:r});case"arraybuffer":return n.buffer}}createRequestInit(e){let n={},r;if(r=e.credentials,e.withCredentials&&(r="include"),e.headers.forEach((s,o)=>n[s]=o.join(",")),e.headers.has(Vt)||(n[Vt]=Dr),!e.headers.has(st)){let s=e.detectContentTypeHeader();s!==null&&(n[st]=s)}return{body:e.serializeBody(),method:e.method,headers:n,credentials:r,keepalive:e.keepalive,cache:e.cache,priority:e.priority,mode:e.mode,redirect:e.redirect,referrer:e.referrer,integrity:e.integrity,referrerPolicy:e.referrerPolicy}}concatChunks(e,n){let r=new Uint8Array(n),s=0;for(let o of e)r.set(o,s),s+=o.length;return r}static \u0275fac=function(n){return new(n||t)};static \u0275prov=f({token:t,factory:t.\u0275fac})}return t})(),Un=class{};function $n(){}function Js(t){t.then($n,$n)}var qs=/^\)\]\}',?\n/;var Hn=(()=>{class t{xhrFactory;tracingService=h(Dt,{optional:!0});constructor(e){this.xhrFactory=e}maybePropagateTrace(e){return this.tracingService?.propagate?this.tracingService.propagate(e):e}handle(e){if(e.method==="JSONP")throw new v(-2800,!1);let n=this.xhrFactory;return ue(null).pipe(xe(()=>new qt(s=>{let o=n.build();if(o.open(e.method,e.urlWithParams),e.withCredentials&&(o.withCredentials=!0),e.headers.forEach((m,y)=>o.setRequestHeader(m,y.join(","))),e.headers.has(Vt)||o.setRequestHeader(Vt,Dr),!e.headers.has(st)){let m=e.detectContentTypeHeader();m!==null&&o.setRequestHeader(st,m)}if(e.timeout&&(o.timeout=e.timeout),e.responseType){let m=e.responseType.toLowerCase();o.responseType=m!=="json"?m:"text"}let a=e.serializeBody(),u=null,l=()=>{if(u!==null)return u;let m=o.statusText||"OK",y=new W(o.getAllResponseHeaders()),F=o.responseURL||e.url;return u=new ot({headers:y,status:o.status,statusText:m,url:F}),u},c=this.maybePropagateTrace(()=>{let{headers:m,status:y,statusText:F,url:$}=l(),C=null;y!==Ks&&(C=typeof o.response>"u"?o.responseText:o.response),y===0&&(y=C?yr:0);let H=y>=200&&y<300;if(e.responseType==="json"&&typeof C=="string"){let ae=C;C=C.replace(qs,"");try{C=C!==""?JSON.parse(C):null}catch(K){C=ae,H&&(H=!1,C={error:K,text:C})}}H?(s.next(new Fe({body:C,headers:m,status:y,statusText:F,url:$||void 0})),s.complete()):s.error(new Y({error:C,headers:m,status:y,statusText:F,url:$||void 0}))}),d=this.maybePropagateTrace(m=>{let{url:y}=l(),F=new Y({error:m,status:o.status||0,statusText:o.statusText||"Unknown Error",url:y||void 0});s.error(F)}),D=d;e.timeout&&(D=this.maybePropagateTrace(m=>{let{url:y}=l(),F=new Y({error:new DOMException("Request timed out","TimeoutError"),status:o.status||0,statusText:o.statusText||"Request timeout",url:y||void 0});s.error(F)}));let g=!1,T=this.maybePropagateTrace(m=>{g||(s.next(l()),g=!0);let y={type:se.DownloadProgress,loaded:m.loaded};m.lengthComputable&&(y.total=m.total),e.responseType==="text"&&o.responseText&&(y.partialText=o.responseText),s.next(y)}),A=this.maybePropagateTrace(m=>{let y={type:se.UploadProgress,loaded:m.loaded};m.lengthComputable&&(y.total=m.total),s.next(y)});return o.addEventListener("load",c),o.addEventListener("error",d),o.addEventListener("timeout",D),o.addEventListener("abort",d),e.reportProgress&&(o.addEventListener("progress",T),a!==null&&o.upload&&o.upload.addEventListener("progress",A)),o.send(a),s.next({type:se.Sent}),()=>{o.removeEventListener("error",d),o.removeEventListener("abort",d),o.removeEventListener("load",c),o.removeEventListener("timeout",D),e.reportProgress&&(o.removeEventListener("progress",T),a!==null&&o.upload&&o.upload.removeEventListener("progress",A)),o.readyState!==o.DONE&&o.abort()}})))}static \u0275fac=function(n){return new(n||t)(p(be))};static \u0275prov=f({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function wr(t,i){return i(t)}function Qs(t,i){return(e,n)=>i.intercept(e,{handle:r=>t(r,n)})}function eo(t,i,e){return(n,r)=>oi(e,()=>i(n,s=>t(s,r)))}var Cr=new b(""),Vn=new b("",{factory:()=>[]}),br=new b(""),zn=new b("",{providedIn:"root",factory:()=>!0});function to(){let t=null;return(i,e)=>{t===null&&(t=(h(Cr,{optional:!0})??[]).reduceRight(Qs,wr));let n=h(un);if(h(zn)){let s=n.add();return t(i,e).pipe(tn(s))}else return t(i,e)}}var Gt=(()=>{class t{static \u0275fac=function(n){return new(n||t)};static \u0275prov=f({token:t,factory:function(n){let r=null;return n?r=new(n||t):r=p(Hn),r},providedIn:"root"})}return t})();var zt=(()=>{class t{backend;injector;chain=null;pendingTasks=h(un);contributeToStability=h(zn);constructor(e,n){this.backend=e,this.injector=n}handle(e){if(this.chain===null){let n=Array.from(new Set([...this.injector.get(Vn),...this.injector.get(br,[])]));this.chain=n.reduceRight((r,s)=>eo(r,s,this.injector),wr)}if(this.contributeToStability){let n=this.pendingTasks.add();return this.chain(e,r=>this.backend.handle(r)).pipe(tn(n))}else return this.chain(e,n=>this.backend.handle(n))}static \u0275fac=function(n){return new(n||t)(p(Gt),p(rn))};static \u0275prov=f({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Gn=(()=>{class t{static \u0275fac=function(n){return new(n||t)};static \u0275prov=f({token:t,factory:function(n){let r=null;return n?r=new(n||t):r=p(zt),r},providedIn:"root"})}return t})();function jn(t,i){return{body:i,headers:t.headers,context:t.context,observe:t.observe,params:t.params,reportProgress:t.reportProgress,responseType:t.responseType,withCredentials:t.withCredentials,credentials:t.credentials,transferCache:t.transferCache,timeout:t.timeout,keepalive:t.keepalive,priority:t.priority,cache:t.cache,mode:t.mode,redirect:t.redirect,integrity:t.integrity,referrer:t.referrer,referrerPolicy:t.referrerPolicy}}var Zt=(()=>{class t{handler;constructor(e){this.handler=e}request(e,n,r={}){let s;if(e instanceof Ae)s=e;else{let u;r.headers instanceof W?u=r.headers:u=new W(r.headers);let l;r.params&&(r.params instanceof re?l=r.params:l=new re({fromObject:r.params})),s=new Ae(e,n,r.body!==void 0?r.body:null,{headers:u,context:r.context,params:l,reportProgress:r.reportProgress,responseType:r.responseType||"json",withCredentials:r.withCredentials,transferCache:r.transferCache,keepalive:r.keepalive,priority:r.priority,cache:r.cache,mode:r.mode,redirect:r.redirect,credentials:r.credentials,referrer:r.referrer,referrerPolicy:r.referrerPolicy,integrity:r.integrity,timeout:r.timeout})}let o=ue(s).pipe(dt(u=>this.handler.handle(u)));if(e instanceof Ae||r.observe==="events")return o;let a=o.pipe(ri(u=>u instanceof Fe));switch(r.observe||"body"){case"body":switch(s.responseType){case"arraybuffer":return a.pipe(ce(u=>{if(u.body!==null&&!(u.body instanceof ArrayBuffer))throw new v(2806,!1);return u.body}));case"blob":return a.pipe(ce(u=>{if(u.body!==null&&!(u.body instanceof Blob))throw new v(2807,!1);return u.body}));case"text":return a.pipe(ce(u=>{if(u.body!==null&&typeof u.body!="string")throw new v(2808,!1);return u.body}));case"json":default:return a.pipe(ce(u=>u.body))}case"response":return a;default:throw new v(2809,!1)}}delete(e,n={}){return this.request("DELETE",e,n)}get(e,n={}){return this.request("GET",e,n)}head(e,n={}){return this.request("HEAD",e,n)}jsonp(e,n){return this.request("JSONP",e,{params:new re().append(n,"JSONP_CALLBACK"),observe:"body",responseType:"json"})}options(e,n={}){return this.request("OPTIONS",e,n)}patch(e,n,r={}){return this.request("PATCH",e,jn(r,n))}post(e,n,r={}){return this.request("POST",e,jn(r,n))}put(e,n,r={}){return this.request("PUT",e,jn(r,n))}static \u0275fac=function(n){return new(n||t)(p(Gn))};static \u0275prov=f({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var no=new b("",{factory:()=>!0}),io="XSRF-TOKEN",ro=new b("",{providedIn:"root",factory:()=>io}),so="X-XSRF-TOKEN",oo=new b("",{providedIn:"root",factory:()=>so}),ao=(()=>{class t{cookieName=h(ro);doc=h(I);lastCookieString="";lastToken=null;parseCount=0;getToken(){let e=this.doc.cookie||"";return e!==this.lastCookieString&&(this.parseCount++,this.lastToken=et(e,this.cookieName),this.lastCookieString=e),this.lastToken}static \u0275fac=function(n){return new(n||t)};static \u0275prov=f({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Er=(()=>{class t{static \u0275fac=function(n){return new(n||t)};static \u0275prov=f({token:t,factory:function(n){let r=null;return n?r=new(n||t):r=p(ao),r},providedIn:"root"})}return t})();function uo(t,i){let e=t.url.toLowerCase();if(!h(no)||t.method==="GET"||t.method==="HEAD"||e.startsWith("http://")||e.startsWith("https://"))return i(t);let n=h(Er).getToken(),r=h(oo);return n!=null&&!t.headers.has(r)&&(t=t.clone({headers:t.headers.set(r,n)})),i(t)}var Yt=(function(t){return t[t.Interceptors=0]="Interceptors",t[t.LegacyInterceptors=1]="LegacyInterceptors",t[t.CustomXsrfConfiguration=2]="CustomXsrfConfiguration",t[t.NoXsrfProtection=3]="NoXsrfProtection",t[t.JsonpSupport=4]="JsonpSupport",t[t.RequestsMadeViaParent=5]="RequestsMadeViaParent",t[t.Fetch=6]="Fetch",t})(Yt||{});function Tr(t,i){return{\u0275kind:t,\u0275providers:i}}function co(...t){let i=[Zt,zt,{provide:Gn,useExisting:zt},{provide:Gt,useFactory:()=>h(vr,{optional:!0})??h(Hn)},{provide:Vn,useValue:uo,multi:!0}];for(let e of t)i.push(...e.\u0275providers);return Be(i)}var pr=new b("");function lo(){return Tr(Yt.LegacyInterceptors,[{provide:pr,useFactory:to},{provide:Vn,useExisting:pr,multi:!0}])}function ho(){return Tr(Yt.Fetch,[Ut,{provide:vr,useExisting:Ut},{provide:Gt,useExisting:Ut}])}var Oc=(()=>{class t{_doc;constructor(e){this._doc=e}getTitle(){return this._doc.title}setTitle(e){this._doc.title=e||""}static \u0275fac=function(n){return new(n||t)(p(I))};static \u0275prov=f({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var Zn=(()=>{class t{static \u0275fac=function(n){return new(n||t)};static \u0275prov=f({token:t,factory:function(n){let r=null;return n?r=new(n||t):r=p(fo),r},providedIn:"root"})}return t})(),fo=(()=>{class t extends Zn{_doc;constructor(e){super(),this._doc=e}sanitize(e,n){if(n==null)return null;switch(e){case X.NONE:return n;case X.HTML:return _e(n,"HTML")?he(n):mi(this._doc,String(n)).toString();case X.STYLE:return _e(n,"Style")?he(n):n;case X.SCRIPT:if(_e(n,"Script"))return he(n);throw new v(5200,!1);case X.URL:return _e(n,"URL")?he(n):gi(String(n));case X.RESOURCE_URL:if(_e(n,"ResourceURL"))return he(n);throw new v(5201,!1);default:throw new v(5202,!1)}}bypassSecurityTrustHtml(e){return li(e)}bypassSecurityTrustStyle(e){return di(e)}bypassSecurityTrustScript(e){return hi(e)}bypassSecurityTrustUrl(e){return fi(e)}bypassSecurityTrustResourceUrl(e){return pi(e)}static \u0275fac=function(n){return new(n||t)(p(I))};static \u0275prov=f({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var ct=class{},go=(()=>{class t{handle(e){return e.key}static \u0275fac=function(n){return new(n||t)};static \u0275prov=f({token:t,factory:t.\u0275fac})}return t})(),Ie=class{},mo=(()=>{class t extends Ie{compile(e,n){return e}compileTranslations(e,n){return e}static \u0275fac=(()=>{let e;return function(r){return(e||(e=pt(t)))(r||t)}})();static \u0275prov=f({token:t,factory:t.\u0275fac})}return t})(),Me=class{},Do=(()=>{class t extends Me{getTranslation(e){return ue({})}static \u0275fac=(()=>{let e;return function(r){return(e||(e=pt(t)))(r||t)}})();static \u0275prov=f({token:t,factory:t.\u0275fac})}return t})();function Wt(t,i){if(t===i)return!0;if(t===null||i===null)return!1;if(t!==t&&i!==i)return!0;let e=typeof t,n=typeof i,r;if(e==n&&e=="object")if(Array.isArray(t)){if(!Array.isArray(i))return!1;if((r=t.length)==i.length){for(let s=0;s<r;s++)if(!Wt(t[s],i[s]))return!1;return!0}}else{if(Array.isArray(i))return!1;if(oe(t)&&oe(i)){let s=Object.create(null);for(let o in t){if(!Wt(t[o],i[o]))return!1;s[o]=!0}for(let o in i)if(!(o in s)&&typeof i[o]<"u")return!1;return!0}}return!1}function ge(t){return typeof t<"u"&&t!==null}function _r(t){return t!==void 0}function oe(t){return ut(t)&&!Ee(t)&&t!==null}function ut(t){return typeof t=="object"&&t!==null}function Ee(t){return Array.isArray(t)}function Kt(t){return typeof t=="string"}function yo(t){return typeof t=="function"}function Xt(t){if(Ee(t))return t.map(i=>Xt(i));if(oe(t)){let i={};return Object.keys(t).forEach(e=>{i[e]=Xt(t[e])}),i}else return t}function Xn(t,i){if(!ut(t))return Xt(i);let e=Xt(t);return ut(e)&&ut(i)&&Object.keys(i).forEach(n=>{oe(i[n])?n in t?e[n]=Xn(t[n],i[n]):Object.assign(e,{[n]:i[n]}):Object.assign(e,{[n]:i[n]})}),e}function Ar(t,i){let e=i.split(".");i="";do{i+=e.shift();let n=!e.length;if(ge(t)){if(oe(t)&&_r(t[i])&&(oe(t[i])||Ee(t[i])||n)){t=t[i],i="";continue}if(Ee(t)){let r=parseInt(i,10);if(_r(t[r])&&(oe(t[r])||Ee(t[r])||n)){t=t[r],i="";continue}}}if(n){t=void 0;continue}i+="."}while(e.length);return t}function vo(t,i,e){return Xn(t,wo(i,e))}function wo(t,i){return t.split(".").reduceRight((e,n)=>({[n]:e}),i)}var Re=class{},Co=(()=>{class t extends Re{templateMatcher=/{{\s?([^{}\s]*)\s?}}/g;interpolate(e,n){if(Kt(e))return this.interpolateString(e,n);if(yo(e))return this.interpolateFunction(e,n)}interpolateFunction(e,n){return e(n)}interpolateString(e,n){return n?e.replace(this.templateMatcher,(r,s)=>{let o=this.getInterpolationReplacement(n,s);return o!==void 0?o:r}):e}getInterpolationReplacement(e,n){return this.formatValue(Ar(e,n))}formatValue(e){if(Kt(e))return e;if(typeof e=="number"||typeof e=="boolean")return e.toString();if(e===null)return"null";if(Ee(e))return e.join(", ");if(ut(e))return typeof e.toString=="function"&&e.toString!==Object.prototype.toString?e.toString():JSON.stringify(e)}static \u0275fac=(()=>{let e;return function(r){return(e||(e=pt(t)))(r||t)}})();static \u0275prov=f({token:t,factory:t.\u0275fac})}return t})(),Yn=(()=>{class t{_onTranslationChange=new N;_onLangChange=new N;_onFallbackLangChange=new N;fallbackLang=null;currentLang;translations={};languages=[];getTranslations(e){return this.translations[e]}setTranslations(e,n,r){this.translations[e]=r&&this.hasTranslationFor(e)?Xn(this.translations[e],n):n,this.addLanguages([e]),this._onTranslationChange.next({lang:e,translations:this.getTranslations(e)})}getLanguages(){return this.languages}getCurrentLang(){return this.currentLang}getFallbackLang(){return this.fallbackLang}setFallbackLang(e,n=!0){this.fallbackLang=e,n&&this._onFallbackLangChange.next({lang:e,translations:this.translations[e]})}setCurrentLang(e,n=!0){this.currentLang=e,n&&this._onLangChange.next({lang:e,translations:this.translations[e]})}get onTranslationChange(){return this._onTranslationChange.asObservable()}get onLangChange(){return this._onLangChange.asObservable()}get onFallbackLangChange(){return this._onFallbackLangChange.asObservable()}addLanguages(e){this.languages=Array.from(new Set([...this.languages,...e]))}hasTranslationFor(e){return typeof this.translations[e]<"u"}deleteTranslations(e){delete this.translations[e]}getTranslation(e){let n=this.getValue(this.currentLang,e);return n===void 0&&this.fallbackLang!=null&&this.fallbackLang!==this.currentLang&&(n=this.getValue(this.fallbackLang,e)),n}getValue(e,n){return Ar(this.getTranslations(e),n)}static \u0275fac=function(n){return new(n||t)};static \u0275prov=f({token:t,factory:t.\u0275fac})}return t})(),Wn=new b("TRANSLATE_CONFIG"),at=t=>me(t)?t:ue(t);var Kn=(()=>{class t{loadingTranslations;pending=!1;_translationRequests={};lastUseLanguage=null;currentLoader=h(Me);compiler=h(Ie);parser=h(Re);missingTranslationHandler=h(ct);store=h(Yn);extend=!1;get onTranslationChange(){return this.store.onTranslationChange}get onLangChange(){return this.store.onLangChange}get onFallbackLangChange(){return this.store.onFallbackLangChange}get onDefaultLangChange(){return this.store.onFallbackLangChange}constructor(){let e=_({extend:!1,fallbackLang:null},h(Wn,{optional:!0}));e.lang&&this.use(e.lang),e.fallbackLang&&this.setFallbackLang(e.fallbackLang),e.extend&&(this.extend=!0)}setFallbackLang(e){this.getFallbackLang()||this.store.setFallbackLang(e,!1);let n=this.loadOrExtendLanguage(e);return me(n)?(n.pipe(Ne(1)).subscribe({next:()=>{this.store.setFallbackLang(e)},error:()=>{}}),n):(this.store.setFallbackLang(e),ue(this.store.getTranslations(e)))}use(e){this.lastUseLanguage=e,this.getCurrentLang()||this.store.setCurrentLang(e,!1);let n=this.loadOrExtendLanguage(e);return me(n)?(n.pipe(Ne(1)).subscribe({next:()=>{this.changeLang(e)},error:()=>{}}),n):(this.changeLang(e),ue(this.store.getTranslations(e)))}loadOrExtendLanguage(e){if(!this.store.hasTranslationFor(e)||this.extend)return this._translationRequests[e]=this._translationRequests[e]||this.loadAndCompileTranslations(e),this._translationRequests[e]}changeLang(e){e===this.lastUseLanguage&&this.store.setCurrentLang(e)}getCurrentLang(){return this.store.getCurrentLang()}loadAndCompileTranslations(e){this.pending=!0;let n=this.currentLoader.getTranslation(e).pipe(nn(1),Ne(1));return this.loadingTranslations=n.pipe(ce(r=>this.compiler.compileTranslations(r,e)),nn(1),Ne(1)),this.loadingTranslations.subscribe({next:r=>{this.store.setTranslations(e,r,this.extend),this.pending=!1},error:r=>{this.pending=!1}}),n}setTranslation(e,n,r=!1){let s=this.compiler.compileTranslations(n,e);this.store.setTranslations(e,s,r||this.extend)}getLangs(){return this.store.getLanguages()}addLangs(e){this.store.addLanguages(e)}getParsedResultForKey(e,n){let r=this.getTextToInterpolate(e);if(ge(r))return this.runInterpolation(r,n);let s=this.missingTranslationHandler.handle(_({key:e,translateService:this},n!==void 0&&{interpolateParams:n}));return s!==void 0?s:e}getFallbackLang(){return this.store.getFallbackLang()}getTextToInterpolate(e){return this.store.getTranslation(e)}runInterpolation(e,n){if(ge(e))return Ee(e)?this.runInterpolationOnArray(e,n):oe(e)?this.runInterpolationOnDict(e,n):this.parser.interpolate(e,n)}runInterpolationOnArray(e,n){return e.map(r=>this.runInterpolation(r,n))}runInterpolationOnDict(e,n){let r={};for(let s in e){let o=this.runInterpolation(e[s],n);o!==void 0&&(r[s]=o)}return r}getParsedResult(e,n){return e instanceof Array?this.getParsedResultForArray(e,n):this.getParsedResultForKey(e,n)}getParsedResultForArray(e,n){let r={},s=!1;for(let a of e)r[a]=this.getParsedResultForKey(a,n),s=s||me(r[a]);if(!s)return r;let o=e.map(a=>at(r[a]));return ii(o).pipe(ce(a=>{let u={};return a.forEach((l,c)=>{u[e[c]]=l}),u}))}get(e,n){if(!ge(e)||!e.length)throw new Error('Parameter "key" is required and cannot be empty');return this.pending?this.loadingTranslations.pipe(dt(()=>at(this.getParsedResult(e,n)))):at(this.getParsedResult(e,n))}getStreamOnTranslationChange(e,n){if(!ge(e)||!e.length)throw new Error('Parameter "key" is required and cannot be empty');return Qt(en(()=>this.get(e,n)),this.onTranslationChange.pipe(xe(()=>{let r=this.getParsedResult(e,n);return at(r)})))}stream(e,n){if(!ge(e)||!e.length)throw new Error('Parameter "key" required');return Qt(en(()=>this.get(e,n)),this.onLangChange.pipe(xe(()=>{let r=this.getParsedResult(e,n);return at(r)})))}instant(e,n){if(!ge(e)||e.length===0)throw new Error('Parameter "key" is required and cannot be empty');let r=this.getParsedResult(e,n);return me(r)?Array.isArray(e)?e.reduce((s,o)=>(s[o]=o,s),{}):e:r}set(e,n,r=this.getCurrentLang()){this.store.setTranslations(r,vo(this.store.getTranslations(r),e,Kt(n)?this.compiler.compile(n,r):this.compiler.compileTranslations(n,r)),!1)}reloadLang(e){return this.resetLang(e),this.loadAndCompileTranslations(e)}resetLang(e){delete this._translationRequests[e],this.store.deleteTranslations(e)}static getBrowserLang(){if(typeof window>"u"||!window.navigator)return;let e=this.getBrowserCultureLang();return e?e.split(/[-_]/)[0]:void 0}static getBrowserCultureLang(){if(!(typeof window>"u"||typeof window.navigator>"u"))return window.navigator.languages?window.navigator.languages[0]:window.navigator.language||window.navigator.browserLanguage||window.navigator.userLanguage}getBrowserLang(){return t.getBrowserLang()}getBrowserCultureLang(){return t.getBrowserCultureLang()}get defaultLang(){return this.getFallbackLang()}get currentLang(){return this.store.getCurrentLang()}get langs(){return this.store.getLanguages()}setDefaultLang(e){return this.setFallbackLang(e)}getDefaultLang(){return this.getFallbackLang()}static \u0275fac=function(n){return new(n||t)};static \u0275prov=f({token:t,factory:t.\u0275fac})}return t})();var Hc=(()=>{class t{translate=h(Kn);_ref=h(Ge);value="";lastKey=null;lastParams=[];onTranslationChange;onLangChange;onFallbackLangChange;updateValue(e,n,r){let s=o=>{this.value=o!==void 0?o:e,this.lastKey=e,this._ref.markForCheck()};if(r){let o=this.translate.getParsedResult(e,n);me(o)?o.subscribe(s):s(o)}this.translate.get(e,n).subscribe(s)}transform(e,...n){if(!e||!e.length)return e;if(Wt(e,this.lastKey)&&Wt(n,this.lastParams))return this.value;let r;if(ge(n[0])&&n.length)if(Kt(n[0])&&n[0].length){let s=n[0].replace(/(')?([a-zA-Z0-9_]+)(')?(\s)?:/g,'"$2":').replace(/:(\s)?(')(.*?)(')/g,':"$3"');try{r=JSON.parse(s)}catch(o){throw new SyntaxError(`Wrong parameter in TranslatePipe. Expected a valid Object, received: ${n[0]}`)}}else oe(n[0])&&(r=n[0]);return this.lastKey=e,this.lastParams=n,this.updateValue(e,r),this._dispose(),this.onTranslationChange||(this.onTranslationChange=this.translate.onTranslationChange.subscribe(s=>{(this.lastKey&&s.lang===this.translate.getCurrentLang()||s.lang===this.translate.getFallbackLang())&&(this.lastKey=null,this.updateValue(e,r,s.translations))})),this.onLangChange||(this.onLangChange=this.translate.onLangChange.subscribe(s=>{this.lastKey&&(this.lastKey=null,this.updateValue(e,r,s.translations))})),this.onFallbackLangChange||(this.onFallbackLangChange=this.translate.onFallbackLangChange.subscribe(()=>{this.lastKey&&(this.lastKey=null,this.updateValue(e,r))})),this.value}_dispose(){typeof this.onTranslationChange<"u"&&(this.onTranslationChange.unsubscribe(),this.onTranslationChange=void 0),typeof this.onLangChange<"u"&&(this.onLangChange.unsubscribe(),this.onLangChange=void 0),typeof this.onFallbackLangChange<"u"&&(this.onFallbackLangChange.unsubscribe(),this.onFallbackLangChange=void 0)}ngOnDestroy(){this._dispose()}static \u0275fac=function(n){return new(n||t)};static \u0275pipe=fe({name:"translate",type:t,pure:!1});static \u0275prov=f({token:t,factory:t.\u0275fac})}return t})();function bo(t){return{provide:Me,useClass:t}}function Eo(t){return{provide:Ie,useClass:t}}function To(t){return{provide:Re,useClass:t}}function _o(t){return{provide:ct,useClass:t}}function Vc(t={}){return Ao(_({compiler:Eo(mo),parser:To(Co),loader:bo(Do),missingTranslationHandler:_o(go)},t),!0)}function Ao(t={},i){let e=[];t.loader&&e.push(t.loader),t.compiler&&e.push(t.compiler),t.parser&&e.push(t.parser),t.missingTranslationHandler&&e.push(t.missingTranslationHandler),i&&e.push(Yn),(t.useDefaultLang||t.defaultLanguage)&&(console.warn("The `useDefaultLang` and `defaultLanguage` options are deprecated. Please use `fallbackLang` instead."),t.useDefaultLang===!0&&t.defaultLanguage&&(t.fallbackLang=t.defaultLanguage));let n={fallbackLang:t.fallbackLang??null,lang:t.lang,extend:t.extend??!1};return e.push({provide:Wn,useValue:n}),e.push({provide:Kn,useClass:Kn,deps:[Yn,Me,Ie,Re,ct,Wn]}),e}var Sr=["toast-component",""];function So(t,i){if(t&1){let e=Dn();V(0,"button",5),ze("click",function(){sn(e);let r=j();return on(r.remove())}),V(1,"span",6),ee(2,"\xD7"),q()()}}function Fo(t,i){if(t&1&&(gn(0),ee(1),mn()),t&2){let e=j(2);O(),Ce("[",e.duplicatesCount+1,"]")}}function Io(t,i){if(t&1&&(V(0,"div"),ee(1),Ue(2,Fo,2,1,"ng-container",4),q()),t&2){let e=j();Q(e.options.titleClass),He("aria-label",e.title),O(),Ce(" ",e.title," "),O(),P("ngIf",e.duplicatesCount)}}function Mo(t,i){if(t&1&&Ve(0,"div",7),t&2){let e=j();Q(e.options.messageClass),P("innerHTML",e.message,hn)}}function Ro(t,i){if(t&1&&(V(0,"div",8),ee(1),q()),t&2){let e=j();Q(e.options.messageClass),He("aria-label",e.message),O(),Ce(" ",e.message," ")}}function Oo(t,i){if(t&1&&(V(0,"div"),Ve(1,"div",9),q()),t&2){let e=j();O(),we("width",e.width()+"%")}}function Lo(t,i){if(t&1){let e=Dn();V(0,"button",5),ze("click",function(){sn(e);let r=j();return on(r.remove())}),V(1,"span",6),ee(2,"\xD7"),q()()}}function Po(t,i){if(t&1&&(gn(0),ee(1),mn()),t&2){let e=j(2);O(),Ce("[",e.duplicatesCount+1,"]")}}function No(t,i){if(t&1&&(V(0,"div"),ee(1),Ue(2,Po,2,1,"ng-container",4),q()),t&2){let e=j();Q(e.options.titleClass),He("aria-label",e.title),O(),Ce(" ",e.title," "),O(),P("ngIf",e.duplicatesCount)}}function xo(t,i){if(t&1&&Ve(0,"div",7),t&2){let e=j();Q(e.options.messageClass),P("innerHTML",e.message,hn)}}function ko(t,i){if(t&1&&(V(0,"div",8),ee(1),q()),t&2){let e=j();Q(e.options.messageClass),He("aria-label",e.message),O(),Ce(" ",e.message," ")}}function Bo(t,i){if(t&1&&(V(0,"div"),Ve(1,"div",9),q()),t&2){let e=j();O(),we("width",e.width()+"%")}}var Jn=class{_attachedHost;component;viewContainerRef;injector;constructor(i,e){this.component=i,this.injector=e}attach(i,e){return this._attachedHost=i,i.attach(this,e)}detach(){let i=this._attachedHost;if(i)return this._attachedHost=void 0,i.detach()}get isAttached(){return this._attachedHost!=null}setAttachedHost(i){this._attachedHost=i}},qn=class{_attachedPortal;_disposeFn;attach(i,e){return this._attachedPortal=i,this.attachComponentPortal(i,e)}detach(){this._attachedPortal&&this._attachedPortal.setAttachedHost(),this._attachedPortal=void 0,this._disposeFn&&(this._disposeFn(),this._disposeFn=void 0)}setDisposeFn(i){this._disposeFn=i}},Qn=class{_overlayRef;componentInstance;duplicatesCount=0;_afterClosed=new N;_activate=new N;_manualClose=new N;_resetTimeout=new N;_countDuplicate=new N;constructor(i){this._overlayRef=i}manualClose(){this._manualClose.next(),this._manualClose.complete()}manualClosed(){return this._manualClose.asObservable()}timeoutReset(){return this._resetTimeout.asObservable()}countDuplicate(){return this._countDuplicate.asObservable()}close(){this._overlayRef.detach(),this._afterClosed.next(),this._manualClose.next(),this._afterClosed.complete(),this._manualClose.complete(),this._activate.complete(),this._resetTimeout.complete(),this._countDuplicate.complete()}afterClosed(){return this._afterClosed.asObservable()}isInactive(){return this._activate.isStopped}activate(){this._activate.next(),this._activate.complete()}afterActivate(){return this._activate.asObservable()}onDuplicate(i,e){i&&this._resetTimeout.next(),e&&this._countDuplicate.next(++this.duplicatesCount)}},Oe=class{toastId;config;message;title;toastType;toastRef;_onTap=new N;_onAction=new N;constructor(i,e,n,r,s,o){this.toastId=i,this.config=e,this.message=n,this.title=r,this.toastType=s,this.toastRef=o,this.toastRef.afterClosed().subscribe(()=>{this._onAction.complete(),this._onTap.complete()})}triggerTap(){this._onTap.next(),this.config.tapToDismiss&&this._onTap.complete()}onTap(){return this._onTap.asObservable()}triggerAction(i){this._onAction.next(i)}onAction(){return this._onAction.asObservable()}},Fr={maxOpened:0,autoDismiss:!1,newestOnTop:!0,preventDuplicates:!1,countDuplicates:!1,resetTimeoutOnDuplicate:!1,includeTitleDuplicates:!1,iconClasses:{error:"toast-error",info:"toast-info",success:"toast-success",warning:"toast-warning"},closeButton:!1,disableTimeOut:!1,timeOut:5e3,extendedTimeOut:1e3,enableHtml:!1,progressBar:!1,toastClass:"ngx-toastr",positionClass:"toast-top-right",titleClass:"toast-title",messageClass:"toast-message",easing:"ease-in",easeTime:300,tapToDismiss:!0,onActivateTick:!1,progressAnimation:"decreasing"},Ir=new b("ToastConfig"),ei=class extends qn{_hostDomElement;_componentFactoryResolver;_appRef;constructor(i,e,n){super(),this._hostDomElement=i,this._componentFactoryResolver=e,this._appRef=n}attachComponentPortal(i,e){let n=this._componentFactoryResolver.resolveComponentFactory(i.component),r;return r=n.create(i.injector),this._appRef.attachView(r.hostView),this.setDisposeFn(()=>{this._appRef.detachView(r.hostView),r.destroy()}),e?this._hostDomElement.insertBefore(this._getComponentRootNode(r),this._hostDomElement.firstChild):this._hostDomElement.appendChild(this._getComponentRootNode(r)),r}_getComponentRootNode(i){return i.hostView.rootNodes[0]}},jo=(()=>{class t{_document=h(I);_containerElement;ngOnDestroy(){this._containerElement&&this._containerElement.parentNode&&this._containerElement.parentNode.removeChild(this._containerElement)}getContainerElement(){return this._containerElement||this._createContainer(),this._containerElement}_createContainer(){let e=this._document.createElement("div");e.classList.add("overlay-container"),e.setAttribute("aria-live","polite"),this._document.body.appendChild(e),this._containerElement=e}static \u0275fac=function(n){return new(n||t)};static \u0275prov=f({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),ti=class{_portalHost;constructor(i){this._portalHost=i}attach(i,e=!0){return this._portalHost.attach(i,e)}detach(){return this._portalHost.detach()}},Uo=(()=>{class t{_overlayContainer=h(jo);_componentFactoryResolver=h(vi);_appRef=h($e);_document=h(I);_paneElements=new Map;create(e,n){return this._createOverlayRef(this.getPaneElement(e,n))}getPaneElement(e="",n){return this._paneElements.get(n)||this._paneElements.set(n,{}),this._paneElements.get(n)[e]||(this._paneElements.get(n)[e]=this._createPaneElement(e,n)),this._paneElements.get(n)[e]}_createPaneElement(e,n){let r=this._document.createElement("div");return r.id="toast-container",r.classList.add(e),r.classList.add("toast-container"),n?n.getContainerElement().appendChild(r):this._overlayContainer.getContainerElement().appendChild(r),r}_createPortalHost(e){return new ei(e,this._componentFactoryResolver,this._appRef)}_createOverlayRef(e){return new ti(this._createPortalHost(e))}static \u0275fac=function(n){return new(n||t)};static \u0275prov=f({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Mr=(()=>{class t{overlay;_injector;sanitizer;ngZone;toastrConfig;currentlyActive=0;toasts=[];overlayContainer;previousToastMessage;index=0;constructor(e,n,r,s,o){this.overlay=n,this._injector=r,this.sanitizer=s,this.ngZone=o,this.toastrConfig=_(_({},e.default),e.config),e.config.iconClasses&&(this.toastrConfig.iconClasses=_(_({},e.default.iconClasses),e.config.iconClasses))}show(e,n,r={},s=""){return this._preBuildNotification(s,e,n,this.applyConfig(r))}success(e,n,r={}){let s=this.toastrConfig.iconClasses.success||"";return this._preBuildNotification(s,e,n,this.applyConfig(r))}error(e,n,r={}){let s=this.toastrConfig.iconClasses.error||"";return this._preBuildNotification(s,e,n,this.applyConfig(r))}info(e,n,r={}){let s=this.toastrConfig.iconClasses.info||"";return this._preBuildNotification(s,e,n,this.applyConfig(r))}warning(e,n,r={}){let s=this.toastrConfig.iconClasses.warning||"";return this._preBuildNotification(s,e,n,this.applyConfig(r))}clear(e){for(let n of this.toasts)if(e!==void 0){if(n.toastId===e){n.toastRef.manualClose();return}}else n.toastRef.manualClose()}remove(e){let n=this._findToast(e);if(!n||(n.activeToast.toastRef.close(),this.toasts.splice(n.index,1),this.currentlyActive=this.currentlyActive-1,!this.toastrConfig.maxOpened||!this.toasts.length))return!1;if(this.currentlyActive<this.toastrConfig.maxOpened&&this.toasts[this.currentlyActive]){let r=this.toasts[this.currentlyActive].toastRef;r.isInactive()||(this.currentlyActive=this.currentlyActive+1,r.activate())}return!0}findDuplicate(e="",n="",r,s){let{includeTitleDuplicates:o}=this.toastrConfig;for(let a of this.toasts){let u=o&&a.title===e;if((!o||u)&&a.message===n)return a.toastRef.onDuplicate(r,s),a}return null}applyConfig(e={}){return _(_({},this.toastrConfig),e)}_findToast(e){for(let n=0;n<this.toasts.length;n++)if(this.toasts[n].toastId===e)return{index:n,activeToast:this.toasts[n]};return null}_preBuildNotification(e,n,r,s){return s.onActivateTick?this.ngZone.run(()=>this._buildNotification(e,n,r,s)):this._buildNotification(e,n,r,s)}_buildNotification(e,n,r,s){if(!s.toastComponent)throw new Error("toastComponent required");let o=this.findDuplicate(r,n,this.toastrConfig.resetTimeoutOnDuplicate&&s.timeOut>0,this.toastrConfig.countDuplicates);if((this.toastrConfig.includeTitleDuplicates&&r||n)&&this.toastrConfig.preventDuplicates&&o!==null)return o;this.previousToastMessage=n;let a=!1;this.toastrConfig.maxOpened&&this.currentlyActive>=this.toastrConfig.maxOpened&&(a=!0,this.toastrConfig.autoDismiss&&this.clear(this.toasts[0].toastId));let u=this.overlay.create(s.positionClass,this.overlayContainer);this.index=this.index+1;let l=n;n&&s.enableHtml&&(l=this.sanitizer.sanitize(X.HTML,n));let c=new Qn(u),d=new Oe(this.index,s,l,r,e,c),D=[{provide:Oe,useValue:d}],g=le.create({providers:D,parent:this._injector}),T=new Jn(s.toastComponent,g),A=u.attach(T,s.newestOnTop);c.componentInstance=A.instance;let m={toastId:this.index,title:r||"",message:n||"",toastRef:c,onShown:c.afterActivate(),onHidden:c.afterClosed(),onTap:d.onTap(),onAction:d.onAction(),portal:A};return a||(this.currentlyActive=this.currentlyActive+1,setTimeout(()=>{m.toastRef.activate()})),this.toasts.push(m),m}static \u0275fac=function(n){return new(n||t)(p(Ir),p(Uo),p(le),p(Zn),p(de))};static \u0275prov=f({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),$o=(()=>{class t{toastrService;toastPackage;ngZone;message;title;options;duplicatesCount;originalTimeout;width=je(-1);toastClasses="";state;get _state(){return this.state()}get displayStyle(){if(this.state().value==="inactive")return"none"}timeout;intervalId;hideTime;sub;sub1;sub2;sub3;constructor(e,n,r){this.toastrService=e,this.toastPackage=n,this.ngZone=r,this.message=n.message,this.title=n.title,this.options=n.config,this.originalTimeout=n.config.timeOut,this.toastClasses=`${n.toastType} ${n.config.toastClass}`,this.sub=n.toastRef.afterActivate().subscribe(()=>{this.activateToast()}),this.sub1=n.toastRef.manualClosed().subscribe(()=>{this.remove()}),this.sub2=n.toastRef.timeoutReset().subscribe(()=>{this.resetTimeout()}),this.sub3=n.toastRef.countDuplicate().subscribe(s=>{this.duplicatesCount=s}),this.state=je({value:"inactive",params:{easeTime:this.toastPackage.config.easeTime,easing:"ease-in"}})}ngOnDestroy(){this.sub.unsubscribe(),this.sub1.unsubscribe(),this.sub2.unsubscribe(),this.sub3.unsubscribe(),clearInterval(this.intervalId),clearTimeout(this.timeout)}activateToast(){this.state.update(e=>G(_({},e),{value:"active"})),!(this.options.disableTimeOut===!0||this.options.disableTimeOut==="timeOut")&&this.options.timeOut&&(this.outsideTimeout(()=>this.remove(),this.options.timeOut),this.hideTime=new Date().getTime()+this.options.timeOut,this.options.progressBar&&this.outsideInterval(()=>this.updateProgress(),10))}updateProgress(){if(this.width()===0||this.width()===100||!this.options.timeOut)return;let e=new Date().getTime(),n=this.hideTime-e;this.width.set(n/this.options.timeOut*100),this.options.progressAnimation==="increasing"&&this.width.update(r=>100-r),this.width()<=0&&this.width.set(0),this.width()>=100&&this.width.set(100)}resetTimeout(){clearTimeout(this.timeout),clearInterval(this.intervalId),this.state.update(e=>G(_({},e),{value:"active"})),this.outsideTimeout(()=>this.remove(),this.originalTimeout),this.options.timeOut=this.originalTimeout,this.hideTime=new Date().getTime()+(this.options.timeOut||0),this.width.set(-1),this.options.progressBar&&this.outsideInterval(()=>this.updateProgress(),10)}remove(){this.state().value!=="removed"&&(clearTimeout(this.timeout),this.state.update(e=>G(_({},e),{value:"removed"})),this.outsideTimeout(()=>this.toastrService.remove(this.toastPackage.toastId),+this.toastPackage.config.easeTime))}tapToast(){this.state().value!=="removed"&&(this.toastPackage.triggerTap(),this.options.tapToDismiss&&this.remove())}stickAround(){this.state().value!=="removed"&&this.options.disableTimeOut!=="extendedTimeOut"&&(clearTimeout(this.timeout),this.options.timeOut=0,this.hideTime=0,clearInterval(this.intervalId),this.width.set(0))}delayedHideToast(){this.options.disableTimeOut===!0||this.options.disableTimeOut==="extendedTimeOut"||this.options.extendedTimeOut===0||this.state().value==="removed"||(this.outsideTimeout(()=>this.remove(),this.options.extendedTimeOut),this.options.timeOut=this.options.extendedTimeOut,this.hideTime=new Date().getTime()+(this.options.timeOut||0),this.width.set(-1),this.options.progressBar&&this.outsideInterval(()=>this.updateProgress(),10))}outsideTimeout(e,n){this.ngZone?this.ngZone.runOutsideAngular(()=>this.timeout=setTimeout(()=>this.runInsideAngular(e),n)):this.timeout=setTimeout(()=>e(),n)}outsideInterval(e,n){this.ngZone?this.ngZone.runOutsideAngular(()=>this.intervalId=setInterval(()=>this.runInsideAngular(e),n)):this.intervalId=setInterval(()=>e(),n)}runInsideAngular(e){this.ngZone?this.ngZone.run(()=>e()):e()}static \u0275fac=function(n){return new(n||t)(S(Mr),S(Oe),S(de))};static \u0275cmp=pn({type:t,selectors:[["","toast-component",""]],hostVars:5,hostBindings:function(n,r){n&1&&ze("click",function(){return r.tapToast()})("mouseenter",function(){return r.stickAround()})("mouseleave",function(){return r.delayedHideToast()}),n&2&&(Ci("@flyInOut",r._state),Q(r.toastClasses),we("display",r.displayStyle))},attrs:Sr,decls:5,vars:5,consts:[["type","button","class","toast-close-button","aria-label","Close",3,"click",4,"ngIf"],[3,"class",4,"ngIf"],["role","alert",3,"class","innerHTML",4,"ngIf"],["role","alert",3,"class",4,"ngIf"],[4,"ngIf"],["type","button","aria-label","Close",1,"toast-close-button",3,"click"],["aria-hidden","true"],["role","alert",3,"innerHTML"],["role","alert"],[1,"toast-progress"]],template:function(n,r){n&1&&Ue(0,So,3,0,"button",0)(1,Io,3,5,"div",1)(2,Mo,1,3,"div",2)(3,Ro,2,4,"div",3)(4,Oo,2,2,"div",4),n&2&&(P("ngIf",r.options.closeButton),O(),P("ngIf",r.title),O(),P("ngIf",r.message&&r.options.enableHtml),O(),P("ngIf",r.message&&!r.options.enableHtml),O(),P("ngIf",r.options.progressBar))},dependencies:[Ot],encapsulation:2,data:{animation:[Cn("flyInOut",[We("inactive",Ye({opacity:0})),We("active",Ye({opacity:1})),We("removed",Ye({opacity:0})),Ct("inactive => active",wt("{{ easeTime }}ms {{ easing }}")),Ct("active => removed",wt("{{ easeTime }}ms {{ easing }}"))])]},changeDetection:0})}return t})(),Ho=G(_({},Fr),{toastComponent:$o}),yl=(t={})=>Be([{provide:Ir,useValue:{default:Ho,config:t}}]);var Vo=(()=>{class t{toastrService;toastPackage;appRef;message;title;options;duplicatesCount;originalTimeout;width=je(-1);toastClasses="";get displayStyle(){return this.state()==="inactive"?"none":null}state=je("inactive");timeout;intervalId;hideTime;sub;sub1;sub2;sub3;constructor(e,n,r){this.toastrService=e,this.toastPackage=n,this.appRef=r,this.message=n.message,this.title=n.title,this.options=n.config,this.originalTimeout=n.config.timeOut,this.toastClasses=`${n.toastType} ${n.config.toastClass}`,this.sub=n.toastRef.afterActivate().subscribe(()=>{this.activateToast()}),this.sub1=n.toastRef.manualClosed().subscribe(()=>{this.remove()}),this.sub2=n.toastRef.timeoutReset().subscribe(()=>{this.resetTimeout()}),this.sub3=n.toastRef.countDuplicate().subscribe(s=>{this.duplicatesCount=s})}ngOnDestroy(){this.sub.unsubscribe(),this.sub1.unsubscribe(),this.sub2.unsubscribe(),this.sub3.unsubscribe(),clearInterval(this.intervalId),clearTimeout(this.timeout)}activateToast(){this.state.set("active"),!(this.options.disableTimeOut===!0||this.options.disableTimeOut==="timeOut")&&this.options.timeOut&&(this.timeout=setTimeout(()=>{this.remove()},this.options.timeOut),this.hideTime=new Date().getTime()+this.options.timeOut,this.options.progressBar&&(this.intervalId=setInterval(()=>this.updateProgress(),10))),this.options.onActivateTick&&this.appRef.tick()}updateProgress(){if(this.width()===0||this.width()===100||!this.options.timeOut)return;let e=new Date().getTime(),n=this.hideTime-e;this.width.set(n/this.options.timeOut*100),this.options.progressAnimation==="increasing"&&this.width.update(r=>100-r),this.width()<=0&&this.width.set(0),this.width()>=100&&this.width.set(100)}resetTimeout(){clearTimeout(this.timeout),clearInterval(this.intervalId),this.state.set("active"),this.options.timeOut=this.originalTimeout,this.timeout=setTimeout(()=>this.remove(),this.originalTimeout),this.hideTime=new Date().getTime()+(this.originalTimeout||0),this.width.set(-1),this.options.progressBar&&(this.intervalId=setInterval(()=>this.updateProgress(),10))}remove(){this.state()!=="removed"&&(clearTimeout(this.timeout),this.state.set("removed"),this.timeout=setTimeout(()=>this.toastrService.remove(this.toastPackage.toastId)))}tapToast(){this.state()!=="removed"&&(this.toastPackage.triggerTap(),this.options.tapToDismiss&&this.remove())}stickAround(){this.state()!=="removed"&&(clearTimeout(this.timeout),this.options.timeOut=0,this.hideTime=0,clearInterval(this.intervalId),this.width.set(0))}delayedHideToast(){this.options.disableTimeOut===!0||this.options.disableTimeOut==="extendedTimeOut"||this.options.extendedTimeOut===0||this.state()==="removed"||(this.timeout=setTimeout(()=>this.remove(),this.options.extendedTimeOut),this.options.timeOut=this.options.extendedTimeOut,this.hideTime=new Date().getTime()+(this.options.timeOut||0),this.width.set(-1),this.options.progressBar&&(this.intervalId=setInterval(()=>this.updateProgress(),10)))}static \u0275fac=function(n){return new(n||t)(S(Mr),S(Oe),S($e))};static \u0275cmp=pn({type:t,selectors:[["","toast-component",""]],hostVars:4,hostBindings:function(n,r){n&1&&ze("click",function(){return r.tapToast()})("mouseenter",function(){return r.stickAround()})("mouseleave",function(){return r.delayedHideToast()}),n&2&&(Q(r.toastClasses),we("display",r.displayStyle))},attrs:Sr,decls:5,vars:5,consts:[["type","button","class","toast-close-button","aria-label","Close",3,"click",4,"ngIf"],[3,"class",4,"ngIf"],["role","alert",3,"class","innerHTML",4,"ngIf"],["role","alert",3,"class",4,"ngIf"],[4,"ngIf"],["type","button","aria-label","Close",1,"toast-close-button",3,"click"],["aria-hidden","true"],["role","alert",3,"innerHTML"],["role","alert"],[1,"toast-progress"]],template:function(n,r){n&1&&Ue(0,Lo,3,0,"button",0)(1,No,3,5,"div",1)(2,xo,1,3,"div",2)(3,ko,2,4,"div",3)(4,Bo,2,2,"div",4),n&2&&(P("ngIf",r.options.closeButton),O(),P("ngIf",r.title),O(),P("ngIf",r.message&&r.options.enableHtml),O(),P("ngIf",r.message&&!r.options.enableHtml),O(),P("ngIf",r.options.progressBar))},dependencies:[Ot],encapsulation:2,changeDetection:0})}return t})(),vl=G(_({},Fr),{toastComponent:Vo});var Rr={name:"homebridge-config-ui-x",displayName:"Homebridge UI",type:"module",version:"5.10.1-beta.1",description:"A web based management, configuration and control platform for Homebridge.",author:"oznu <dev@oz.nu>",license:"MIT",funding:[{type:"github",url:"https://github.com/sponsors/oznu"},{type:"paypal",url:"https://paypal.me/oznu"}],repository:{type:"git",url:"git+https://github.com/homebridge/homebridge-config-ui-x.git"},bugs:{url:"https://github.com/homebridge/homebridge-config-ui-x/issues"},keywords:["homebridge-plugin","ui","gui","web","homebridge","homebridge-config-ui-x","ui-x","config-ui-x","homebridge-x","homebridge server","homebridge ui","homebridge-ui","homebridge gui","homebridge-gui","web interface","config ui","management","config editor","linux","macOS","osx","windows","raspberry pi","accessory control","smart home","hb-service"],main:"./dist/index.js",bin:{"hb-service":"dist/bin/hb-service.js"},engines:{node:"^20.19.0 || ^22.12.0 || ^24.0.0",homebridge:"^1.8.0 || ^2.0.0-alpha.0"},scripts:{build:"npm run build:server && npm run build:ui","build:server":"rimraf dist && tsc -p tsconfig.build.json","build:ui":"npm run build --prefix ui",check:"npm run check:server && npm run check:ui","check:server":"npm install && npm outdated","check:ui":"npm install --prefix ui && npm outdated --prefix ui","lang-sync":"tsx scripts/lang-sync.ts",lint:"eslint . --max-warnings=0","lint:fix":"npm run lint -- --fix",prepublishOnly:"npm i --package-lock-only && npm run lint && npm run build",start:"tsx src/main.ts",test:"vitest run","test-coverage":"npm run test -- --coverage","upgrade-install":"./scripts/upgrade-install.sh",watch:'concurrently "npm run watch:ui" "npm run watch:server"',"watch:server":"nodemon","watch:ui":"npm run start --prefix ui"},dependencies:{"@fastify/helmet":"13.0.2","@fastify/multipart":"9.3.0","@fastify/static":"8.3.0","@homebridge/hap-client":"3.1.2","@homebridge/node-pty-prebuilt-multiarch":"0.13.1","@nestjs/axios":"4.0.1","@nestjs/common":"11.1.9","@nestjs/core":"11.1.9","@nestjs/jwt":"11.0.1","@nestjs/passport":"11.0.5","@nestjs/platform-fastify":"11.1.9","@nestjs/platform-socket.io":"11.1.9","@nestjs/swagger":"11.2.3","@nestjs/websockets":"11.1.9",axios:"1.13.2","bash-color":"0.0.4","bonjour-service":"1.3.0","class-transformer":"0.5.1","class-validator":"0.14.2",commander:"14.0.2",dayjs:"1.11.19",fastify:"5.6.2","fs-extra":"11.3.2",jsonwebtoken:"9.0.2",lodash:"4.17.21","node-cache":"5.1.2","node-forge":"1.3.1","node-schedule":"2.1.1",ora:"9.0.0",otplib:"12.0.1","p-limit":"7.2.0",passport:"0.7.0","passport-jwt":"4.0.1","reflect-metadata":"0.2.2",rxjs:"7.8.2",semver:"7.7.3",systeminformation:"5.27.11",tail:"2.2.6",tar:"7.5.2","tcp-port-used":"1.0.2",unzipper:"0.12.3"},devDependencies:{"@antfu/eslint-config":"^6.2.0","@nestjs/testing":"^11.1.9","@prettier/plugin-xml":"^3.4.2","@types/fs-extra":"^11.0.4","@types/lodash":"^4.17.21","@types/node":"^24.10.1","@types/node-forge":"^1.3.14","@types/node-schedule":"^2.1.8","@types/passport-jwt":"^4.0.1","@types/semver":"^7.7.1","@types/tail":"^2.2.3","@types/tcp-port-used":"^1.0.4","@types/unzipper":"^0.10.11","@vitest/coverage-v8":"^4.0.13",concurrently:"^9.2.1","eslint-plugin-format":"^1.0.2","form-data":"^4.0.4",nodemon:"^3.1.11",rimraf:"^6.1.2",tsx:"^4.20.6",typescript:"^5.9.3","unplugin-swc":"^1.5.8",vitest:"^4.0.13"},overrides:{"@homebridge/hap-client":{axios:"1.13.2"},"@nestjs/swagger":{"js-yaml":"4.1.1"}},maintainers:[{email:"bwp91@icloud.com",name:"bwp91"},{email:"dev@oz.nu",name:"oznu"},{email:"northern.man1@gmail.com",name:"northernman"},{email:"mail@anderl-bauer.de",name:"supereg"},{email:"khaos.tian@gmail.com",name:"khaost"},{email:"erik.baauw@xs4all.nl",name:"ebaauw"},{email:"donavan.becker@icloud.com",name:"donavanbecker"},{email:"dustin.greif@gmail.com",name:"dustin.greif"},{email:"nfarina@gmail.com",name:"nfarina"}],scarfSettings:{enabled:!1}};var Le={serverTarget:Rr.version,production:!0,socket:"",api:{base:(()=>{let i=document.querySelector("base")?.getAttribute("href")||"/";return i.endsWith("/")?`${i}api`:`${i}/api`})(),socket:`${window.location.protocol==="http:"?"ws://":"wss://"}${window.location.host}`,origin:window.location.origin},jwt:{tokenKey:"access_token",allowedDomains:[document.location.host],disallowedRoutes:[(()=>{let i=document.querySelector("base")?.getAttribute("href")||"/",e=i.endsWith("/")?`${i}api`:`${i}/api`;return`${window.location.protocol}//${document.location.host}${e}/auth/login`})()]},apiHttpOptions:{},owm:{appid:"fec67b55f7f74deaa28df89ba6a60821"}};var Il=(()=>{class t{$http=h(Zt);get(e,n){return this.$http.get(`${Le.api.base}${e}`,n)}post(e,n,r){return this.$http.post(`${Le.api.base}${e}`,n,r)}put(e,n,r){return this.$http.put(`${Le.api.base}${e}`,n,r)}patch(e,n,r){return this.$http.patch(`${Le.api.base}${e}`,n,r)}delete(e,n){return this.$http.delete(`${Le.api.base}${e}`,n)}static \u0275fac=function(n){return new(n||t)};static \u0275prov=f({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();export{te as a,bt as b,Oi as c,Ji as d,Ot as e,ts as f,ns as g,rs as h,ss as i,as as j,cs as k,ls as l,er as m,su as n,ou as o,au as p,uu as q,Bn as r,ks as s,re as t,se as u,Fe as v,Cr as w,Zt as x,co as y,lo as z,ho as A,Oc as B,Zn as C,Kn as D,Hc as E,Vc as F,Mr as G,yl as H,Le as I,Il as J};
|
package/public/chunk-KGOOP2T6.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a}from"./chunk-LJMU7UD3.js";import"./chunk-B4AJQJMI.js";export default a();
|
package/public/chunk-KMSHJTEM.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a}from"./chunk-EBFB2GZT.js";import"./chunk-B4AJQJMI.js";export default a();
|
package/public/chunk-L77RLTDM.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{e}from"./chunk-B4AJQJMI.js";var i=e((n,t)=>{t.exports={"accessories.accessory_info":"Accessory Information","accessories.bridge_ip":"Bridge IP","accessories.bridge_port":"Bridge Port","accessories.button_add_room":"Raum hinzuf\xFCgen","accessories.button_hidden_hide":"Versteckte ausblenden","accessories.button_hidden_show":"Versteckte einblenden","accessories.button_remove":"Aus dem Cache entfernen","accessories.control.adaptive_lighting":"Adaptive Lighting","accessories.control.adaptive_lighting_note":"Some plugins may automatically re-enable Adaptive Lighting when changing this.","accessories.control.auto":"Auto","accessories.control.away":"Abwesend","accessories.control.battery_charged":"Charged","accessories.control.battery_charging":"L\xE4dt","accessories.control.battery_low":"Battery Low","accessories.control.battery_notchargeable":"Nicht aufladbar","accessories.control.battery_notcharging":"Geladen","accessories.control.brightness":"Helligkeit","accessories.control.cleaning":"Cleaning","accessories.control.closed":"Geschlossen","accessories.control.closing":"Beim Schlie\xDFen","accessories.control.color_temperature":"Color Temperature","accessories.control.cool":"K\xFChlen","accessories.control.current":"Current","accessories.control.default_room":"Standardraum","accessories.control.dehumidify":"Dehumidify","accessories.control.detected":"Erkannt","accessories.control.direction_control":"Direction Control","accessories.control.drag_here":"Hierher ziehen","accessories.control.filter_level":"Filter Life","accessories.control.heat":"Heizen","accessories.control.home":"Anwesend","accessories.control.hue":"Hue","accessories.control.humidify":"Humidify","accessories.control.idle":"Idle","accessories.control.input":"Input List","accessories.control.input_control":"Input Control","accessories.control.jammed":"Blockiert","accessories.control.lock_auto":"Auto Lock Timer","accessories.control.locked":"Abgeschlossen","accessories.control.manual":"Manual","accessories.control.media_control":"Media Control","accessories.control.microphone":"Microphone","accessories.control.mode":"Mode","accessories.control.mode_control":"Mode Control","accessories.control.mute":"Stummschalten","accessories.control.mute_control":"Mute Control","accessories.control.night":"Nacht","accessories.control.no_data":"No Data","accessories.control.not_detected":"Nicht erkannt","accessories.control.not_mute":"An","accessories.control.obstructed":"Obstructed","accessories.control.off":"Aus","accessories.control.on":"An","accessories.control.open":"Offen","accessories.control.opening":"Beim \xD6ffnen","accessories.control.pause":"Pause","accessories.control.paused":"Paused","accessories.control.play":"Play","accessories.control.replace":"Replace","accessories.control.rotation_c_clockwise":"Gegen den Uhrzeigersinn","accessories.control.rotation_clockwise":"Im Uhrzeigersinn","accessories.control.rotation_direction":"Drehrichtung ","accessories.control.rotation_speed":"Umdrehungsgeschwindigkeit","accessories.control.running":"L\xE4uft","accessories.control.saturation":"Saturation","accessories.control.set_duration":"Set Duration","accessories.control.speaker":"Speaker","accessories.control.speaker_volume":"Lautst\xE4rke","accessories.control.state_control":"State Control","accessories.control.stateless":"Stateless","accessories.control.stop":"Stop","accessories.control.stopped":"Gestoppt","accessories.control.target":"Ziel","accessories.control.target_auto":"Auto Target","accessories.control.threshold_auto":"Auto Threshold","accessories.control.triggered":"Ausgel\xF6st","accessories.control.unknown":"Unbekannt","accessories.control.unlocked":"Aufgeschlossen","accessories.control_disabled":"Homebridge-Ger\xE4testeuerung deaktiviert","accessories.core.air_purifier":"Air Purifier","accessories.core.air_quality_sensor":"Air Quality Sensor","accessories.core.battery":"Battery","accessories.core.carbon_dioxide_sensor":"Carbon Dioxide Sensor","accessories.core.carbon_monoxide_sensor":"Carbon Monoxide Sensor","accessories.core.contact_sensor":"Contact Sensor","accessories.core.cooler":"Cooler","accessories.core.dehumidifier":"Dehumidifier","accessories.core.door":"Door","accessories.core.doorbell":"Doorbell","accessories.core.fan":"Fan","accessories.core.faucet_valve":"Valve","accessories.core.filter_maintenance":"Filter Maintenance","accessories.core.garage_door_opener":"Garage Door Opener","accessories.core.generic_valve":"Valve","accessories.core.heater":"Heater","accessories.core.heater_cooler":"Heater Cooler","accessories.core.humidifier":"Humidifier","accessories.core.humidifier_dehumidifier":"Humidifier Dehumidifier","accessories.core.humidity_sensor":"Humidity Sensor","accessories.core.irrigation_system":"Irrigation System","accessories.core.irrigation_valve":"Valve","accessories.core.leak_sensor":"Leak Sensor","accessories.core.light_sensor":"Light Sensor","accessories.core.lightbulb":"Lightbulb","accessories.core.lock_mechanism":"Lock Mechanism","accessories.core.microphone":"Microphone","accessories.core.motion_sensor":"Motion Sensor","accessories.core.occupancy_sensor":"Occupancy Sensor","accessories.core.on_off_light":"Lightbulb","accessories.core.on_off_light_switch":"Switch","accessories.core.on_off_plug_in_unit":"Outlet","accessories.core.outlet":"Outlet","accessories.core.robot_vacuum":"Robot Vacuum","accessories.core.robotic_vacuum_cleaner":"Robot Vacuum","accessories.core.security_system":"Security System","accessories.core.shower_head_valve":"Valve","accessories.core.smoke_sensor":"Smoke Sensor","accessories.core.speaker":"Speaker","accessories.core.stateless_programmable_switch":"Stateless Programmable Switch","accessories.core.switch":"Switch","accessories.core.television":"Television","accessories.core.temperature_sensor":"Temperature Sensor","accessories.core.thermostat":"Thermostat","accessories.core.valve":"Valve","accessories.core.washing_machine":"Washing Machine","accessories.core.window":"Window","accessories.core.window_covering":"Window Covering","accessories.custom_name":"Individueller Name","accessories.custom_type":"Custom Type","accessories.hide_this_accessory":"Ger\xE4t versteckt","accessories.message_must_use_insecure_mode":"Um deine Ger\xE4te zu steuern, musst du Homebridge im 'Insecure' Mode ausf\xFChren {{ link }}.","accessories.name":"Name","accessories.no_plugins.message_1":"Accessories are created and managed by Homebridge plugins.","accessories.no_plugins.message_2":"You can find and install plugins from the plugins page.","accessories.no_plugins.title":"No Plugins Installed","accessories.only_ui":"These settings are only for the Homebridge UI and <strong>will not be reflected in HomeKit</strong>.","accessories.only_ui_2":"These options are unique to your Homebridge UI account.","accessories.plugin":"Plugin","accessories.room_name":"Raumname","accessories.service":"Service","accessories.service_info":"Service Information","accessories.settings_link":"Sie k\xF6nnen die Homebridge-Einstellungen jederzeit \xFCber das Hauptmen\xFC oder durch Klicken auf das Zahnrad","accessories.show_on_dashboard":"Im Dashboard Widget anzeigen","accessories.support.acc_1":"Es kann einige Minuten dauern, bis das Zubeh\xF6r nach einem Neustart der Homebridge oder nach dem Hinzuf\xFCgen auf diesem Bildschirm angezeigt wird. Wenn das Zubeh\xF6r st\xE4ndig fehlt, versuchen Sie, den mDNS-Anbieter in den Einstellungen zu \xE4ndern.","accessories.support.acc_2":"You can change the type of certain accessories in the UI (like showing a switch as a heater). You can do this by clicking on the three bars that appear in the top-right corner of the accessory tile as you hover over it. A 'Custom Type' option will appear if the accessory supports this. Note this will not change the accessory in HomeKit (only a plugin can do this).","accessories.support.rooms_1":"Die R\xE4ume, die du hier erstellst, werden nicht in HomeKit erscheinen. Sie sind nur zum Ordnen der Ger\xE4te innerhalb von Homebridge UI gedacht.","accessories.support.rooms_2":"Um einen bestehenden Raum umzubenennen, erstellen Sie einen neuen Raum mit dem gew\xFCnschten Namen und verschieben Sie das Zubeh\xF6r in den neuen Raum.","accessories.support.rooms_3":"Um einen bestehenden Raum zu l\xF6schen, verschieben Sie das gesamte Zubeh\xF6r in einen anderen Raum und aktualisieren Sie die Seite.","accessories.title_rooms":"Rooms","backup.backup_delete_failed":"Das L\xF6schen des Backups ist fehlgeschlagen. Siehe Logs f\xFCr mehr Informationen.","backup.backup_download_failed":"Backup-Download fehlgeschlagen","backup.backup_exceeds_max_size":"Backup ({{ backupSize }}) \xFCberschreitet maximale Gr\xF6\xDFe der Backup-Datei von {{ maxBackupSizeText }}","backup.backup_help_one":"Lade ein Backup-Archiv deiner gesamten Homebridge-Umgebung herunter. Dies wird den gesamten Inhalt deines Homebridge-Speicherverzeichnisses sichern, welches du sp\xE4ter auf jeder Plattform, die Homebridge UI laufen lassen kann, wiederherstellen kannst.","backup.backup_help_two":"Plugins, welche nicht auf npm gehostet werden oder direkt installierte Plugins von GitHub, werden nicht im Backup enthalten sein bzw. nicht wiederhergestellt werden.","backup.backup_now":"Jetzt Backup erstellen","backup.backup_now_desc":"Erstelle und lade ein aktuelles Backup.","backup.backup_now_save_desc":"Generate an up-to-date backup file in your backup storage directory.","backup.backup_restored":"Backup-Archiv wiederhergestellt","backup.backup_warning":"Backup-Archive enhalten sensitive Informationen und sollten nicht mit anderen geteilt werden.","backup.files_auto":"Stored Backup Files","backup.label_extracting":"Extracting Archive","backup.label_uploading":"L\xE4dt hoch \u2026","backup.load_error":"Config-Backup konnte nicht geladen werden.","backup.restore_failed":"Wiederherstellung fehlgeschlagen","backup.restore_help_one":"Stelle ein Backup-Archiv, welches zuvor mit Homebridge UI erstellt wurde, wieder her. Deine Homebridge-Konfiguration, Ger\xE4te im Cache, HomeKit-Verbindungen und Homebridge UI-Benutzerkonten werden wiederhergestellt. Auch die Homebridge-Plugins, die du installiert hattest, werden \xFCber die npm Registry heruntergeladen.","backup.restore_help_two":"Du musst dich nach der Wiederherstellung mit den Anmeldedaten aus der wiederhergestellten Instanz bei Homebridge UI anmelden.","backup.restore_max_size":"Sie k\xF6nnen ein Backup-Archiv bis zu einer Gr\xF6\xDFe von {{ maxBackupSizeText }} wiederherstellen.","backup.restore_now":"Wiederherstellen","backup.restore_now_desc":"Wiederherstellung aus einem zuvor heruntergeladenen Backup.","backup.restore_warning":"Durch die Wiederherstellung von einem Backup wird die aktuelle Homebridge-Konfiguration unwiderruflich \xFCberschreiben.","backup.scheduled_backup_disabled":"Geplante Backups wurden \xFCber die Konfiguration deaktiviert.","backup.scheduled_backup_time":"Jeden Tag um {{ backupTime }} wird automatisch ein komplettes Backup der Homebridge-Instanz erstellt und f\xFCr {{ dayCount }} Tage gespeichert.","backup.settings_enable":"Enable Automated Backups","backup.settings_path":"Backup Storage Path","backup.settings_path_desc":"If you are changing this from the default, please ensure the directory exists and is writable by the Homebridge user.","backup.settings_title":"Backup Settings","backup.title_backup":"Backup & Wiederherstellen","child_bridge.about":"Homebridge erlaubt es dir, die Plattform oder Ger\xE4te deiner Plugins als eine isolierten Child-Bridge zu betreiben {{ link }}. Das kann die allgemeine Reaktionsf\xE4higkeit und Zuverl\xE4ssigkeit von Homebridge verbessern.","child_bridge.bridge_connect":"Verbinde zu HomeKit","child_bridge.bridge_settings":"Bridge Einstellungen","child_bridge.bridges":"Bridges","child_bridge.bridges_paired":"Jede Child-Bridge Plattform oder Ger\xE4t muss separat mit HomeKit gekoppelt werden.","child_bridge.bridges_paired_2":"Wenn Sie jetzt eine Child-Bridge einrichten und sie sp\xE4ter deaktivieren, wird jegliches Zubeh\xF6r auf dieser Bridge entfernt und auf der Haupt-Homebridge-Bridge neu erstellt.","child_bridge.config.accessory":"Zubeh\xF6r","child_bridge.config.debug":"Debug Modus","child_bridge.config.enable_hap":"Enable HAP","child_bridge.config.firmware":"Firmware Version","child_bridge.config.hide_pairing_alert":"Hide Pairing Alert","child_bridge.config.manufacturer":"Hersteller","child_bridge.config.matter_note_1":"Plugins must be updated by the developer to support Matter accessories. There is no use in enabling Matter here unless you definitely know the plugin supports it.","child_bridge.config.matter_note_2":"Matter accessories don't appear in the Homebridge UI accessories screen. They can be managed using the Home app or other Matter controllers.","child_bridge.config.model":"Model","child_bridge.config.name":"Name","child_bridge.config.or_link":"Verbinde bestehende Bridge","child_bridge.config.platform":"Plattform","child_bridge.config.port":"Port","child_bridge.config.prevent":"Eine Child-Bridge mit verkn\xFCpftem Zubeh\xF6r kann nicht deaktiviert werden.","child_bridge.config.select_existing":"W\xE4hlen Sie eine bestehende Bridge...","child_bridge.config.use":"Child-Bridge verwenden","child_bridge.confirm_delete_1":"Die folgenden Child-Bridges werden entfernt.","child_bridge.confirm_delete_2":"Sie m\xFCssen die gekoppelten Bridges manuell in der Home-App entfernen. Alle Zubeh\xF6rteile werden entfernt und auf der Haupt-Homebridge-Bridge neu erstellt.","child_bridge.must_configure_plugin":"Du musst dieses Plugin konfigurieren, bevor du dessen Bridge Einstellungen verwalten kannst.","child_bridge.reset_accessories":"Zubeh\xF6r zur\xFCcksetzen","child_bridge.restart":"Child-Bridge neustarten","child_bridge.restart_plural":"Child-Bridge neustarten","child_bridge.return_to_pair":"Zu dieser Seite zur\xFCckkehren, nachdem Homebridge neu gestartet wurde, um den Kopplungs-QR-Code zu sehen.","child_bridge.setup":"Child-Bridges einrichten","child_bridge.start":"Child-Bridge starten","child_bridge.start_plural":"Child-Bridges starten","child_bridge.stop":"Child-Bridge stoppen","child_bridge.stop_plural":"Child-Bridges stoppen","common.labels.beta":"beta","common.labels.no_confirmation":"There is no confirmation when clicking the button, it will immediately perform the action.","common.phrases.are_you_sure":"Sind Sie sicher, dass Sie trotzdem weitermachen wollen?","common.phrases.support":"Feel like there is something useful we could add here? Let us know on {{ github }} or {{ discord }}!","config.config_accessory_must_be_array":"accessories muss ein Array sein []","config.config_bridge_missing":"Bridge-Einstellungen fehlen","config.config_invalid_json":"Konfiguration enth\xE4lt ung\xFCltiges JSON","config.config_platform_must_be_array":"platforms muss ein Array sein []","config.config_saved":"Configuration Saved","config.config_username_error":"Der Bridge-Benutzername muss aus 6 Doppelpunkt-getrennten Hexadezimalzeichen (A-F 0-9) bestehen.","config.error_blocks_objects":"Alle {{ type }} Bl\xF6cke m\xFCssen Objekte sein.","config.error_blocks_type":"Alle {{ type }} Bl\xF6cke m\xFCssen {{ type }} Attribute verwenden.","config.error_string_array":"Jedes Element in {{ key }} Array muss ein String sein.","config.error_string_type":"Das {{ type }} Atteribut muss ein String sein.","config.failed_to_save_config":"Speichern der Konfiguration fehlgeschlagen","config.hide_hap_pairing":"Hide HAP Pairing Alert","config.hide_matter_pairing":"Hide Matter Pairing Alert","config.hide_plugin_updates":"Hide Plugin Updates For","config.no_restart":"A restart is not needed as no changes were made to the Homebridge configuration.","config.restore.confirm":"Klicke auf Speichern, um zu best\xE4tigen, dass dieses Backup wiederhergestellt werden soll.","config.restore.copy_to_editor":"In den Editor kopieren","config.restore.download":"Download your current configuration as a JSON file.","config.restore.help_1":"A backup of your config file is created each time it is updated from actions you take in the Homebridge UI.","config.restore.help_2":"You can restore a previous version of your config file by selecting it from the list below. You will be able to compare this version with your current config before deciding whether to restore it.","config.restore.title":"Config File Backup & Restore","config.restore.toast_backups_deleted":"Alle Backups gel\xF6scht","config.restore.view_inline":"Inline View","config.restore.view_side_by_side":"Side-By-Side View","config.title_backup_loaded":"Backup geladen","form.button_allow":"Allow","form.button_back":"Zur\xFCck","form.button_cancel":"Abbrechen","form.button_close":"Schlie\xDFen","form.button_continue":"Weiter","form.button_delete":"L\xF6schen","form.button_delete_all":"Delete All","form.button_disable":"Deaktivieren","form.button_download":"Download","form.button_edit":"Bearbeiten","form.button_enable":"Aktivieren","form.button_lock":"Sperren","form.button_more_info":"Mehr Informationen","form.button_remove":"Entfernen","form.button_reset":"Zur\xFCcksetzen","form.button_restore":"Wiederherstellen","form.button_save":"Speichern","form.button_show":"Anzeigen","form.button_unlock":"Freischalten","form.button_unpair":"Entkoppeln","form.label.changes_kept":"Beachte, dass bestehende Auswahlen/\xC4nderungen beim Umschalten zwischen Elementen erhalten bleiben.","form.label_invalid":"Konfigurations\xFCberpr\xFCfung fehlgeschlagen - \xC4nderungen k\xF6nnen dennoch gespeichert werden.","form.label_invalid_strict":"Konfigurations\xFCberpr\xFCfung fehlgeschlagen - bitte \xFCberpr\xFCfen Sie alles vor dem Speichern.","form.label_valid":"Konfigurations\xFCberpr\xFCfung bestanden.","form.optional":"Optional","form.search":"Search...","form.select.auto":"Automatisch (Browsereinstellungen verwenden)","login.invalid_code":"The code entered is incorrect or has expired","login.invalid_credentials":"Ung\xFCltiger Benutzername und / oder Passwort","login.invalid_credentials_2":"If you lose access, delete the <code>auth.json</code> file in your Homebridge storage directory and restart Homebridge. Then refresh this page to set up a new admin account. Your Homebridge/UI settings will remain unchanged, except for UI user accounts. The only user account will be the admin account that you are setting up now.","login.invalid_password":"Falsches Passwort","login.label_2fa_code":"Zwei-Faktor-Authentifizierungs-Code","logs.download.error":"Download der Log-Datei fehlgeschlagen.","logs.download_warning":"Homebridge-Log-Dateien k\xF6nnen pers\xF6nliche Informationen, Passw\xF6rter or Zugrifftokens beinhalten. Bitte sieh dir die Log-Datei an und entferne alle sensitiven Informationen, bevor du sie mit anderen teilst.","logs.log_file_truncated":"Log-Datei abgeschnitten.","logs.title_download_log_file":"Log-Datei herunterladen","logs.title_truncate_log_file":"Log-Datei abscheiden","logs.truncate.error":"K\xFCrzen der Log-Datei fehlgeschlagen.","logs.truncate_log_warning":"Durch diese Aktion werden deine bestehenden Homebridge-Log-Dateien unwiderruflich gel\xF6scht. Bist du sicher, dass du fortfahren willst?","matter_bridge.config.use":"Enable Matter","menu.config_json_editor":"JSON Config","menu.docker.restart_container":"Container neustarten","menu.docker.startup_script":"Start-Skript","menu.docker.terminal":"Konsole","menu.hbrestart.confirm_hb":"Homebridge neustarten","menu.hbrestart.confirm_ui":"HB Service & UI neustarten","menu.hbrestart.title":"Homebridge neustarten","menu.label_accessories":"Ger\xE4te","menu.label_plugins":"Plugins","menu.label_settings":"Einstellungen","menu.label_status":"Status","menu.linux.label_logs":"Logs","menu.linux.label_restart_server":"Server neustarten","menu.linux.label_shutdown_modal":"Are you sure you want to shut down the operating system? You will need physical access to turn it back on.","menu.linux.label_shutdown_server":"Server herunterfahren","menu.linux.label_terminal":"Konsole","menu.reload":"Neu laden","menu.restart.title":"Energieoptionen","menu.settings.title":"Einstellungen","menu.tooltip_logout":"Ausloggen","menu.tooltip_restart":"Neustart","menu.tooltip_user_accounts":"Benutzerkonten","menu.tooltip_view_logs":"Log anzeigen","platform.docker.container_restarted":"Docker-Container wurde neu gestartet","platform.docker.must_use_hashbang":"Skript muss #!/bin/sh hashbang verwenden.","platform.docker.restart_required":"Du musst diesen Docker-Container neu starten, damit die \xC4nderungen wirksam werden.","platform.docker.run_with_restart":"Stelle sicher, dass du den Docker-Container mit {{ command }} ausf\xFChrst","platform.docker.script_help":"Dieses Skript wird jedes Mal ausgef\xFChrt, wenn der Docker-Container gestartet wird. Du kannst damit zus\xE4tzliche Pakete installieren, die deine Plugins ben\xF6tigen, wie zB ffmpeg oder libpcap-dev.","platform.docker.script_saved":"Startskript gespeichert","platform.docker.server_long_time":"Der Neustart des Servers dauert sehr lange. M\xF6glicherweise musst du den Docker-Container manuell aufrufen.","platform.docker.title_restarting":"Docker-Container neu starten","platform.linux.long_time":"Der Neustart des Servers dauert l\xE4nger als gew\xF6hnlich. M\xF6glicherweise muss der Homebridge-Dienst manuell gestartet werden.","platform.linux.restart":"Bitte warten, diese Seite wird automatisch umgeleitet, wenn Homebridge wieder online ist.","platform.linux.restarting_server":"Neustart des Servers","platform.linux.server_restart_error":"Beim Senden des Neustartbefehls an den Server ist ein Fehler aufgetreten","platform.linux.server_restarted":"Server wurde neu gestartet","platform.linux.server_taking_long_time":"Der Server braucht lange, um wieder online zu gehen","platform.linux.server_will_power_down":"Der Server wird in K\xFCrze heruntergefahren.","platform.linux.shutting_down_server":"Herunterfahren des Servers","platform.terminal.terminate_message_1":"Navigating away from this page will terminate your current session, all foreground processes will be terminated.","platform.terminal.terminate_message_2":"To avoid this warning, enable <strong>Terminal Session Persistence</strong> from the settings page.","platform.terminal.terminate_title":"Session Termination","platform.terminal.terminate_unload":"Your terminal session will be terminated. Enable Terminal Session Persistence in Settings to prevent this.","platform.version.restart_required":"Homebridge UI v{{ uiVersion }} wurde installiert, aber der Serverdienst l\xE4uft immer noch mit v{{ serverVersion }}.","platform.version.service_restart_required":"Dienst-Neustart erforderlich","plugins.bridge.action_error":"Fehler bei {{ action }} der Child-Bridge(s).","plugins.bridge.name_error":"Bridge name must start and end with a letter or number, and can only contain letters, numbers, spaces, and apostrophes.","plugins.bridge.port_error":"{{ type }} port must be an integer between 1025 and 65533, excluding 5353, 8080, 8443 and any other already-configured port.","plugins.button_homepage":"Plugin-Homepage","plugins.button_set_up":"Einrichten","plugins.button_settings":"Einstellungen","plugins.button_uninstall":"Deinstallieren","plugins.button_update":"Aktualisieren","plugins.compat.hb_node_too_low":"{{ packageName }} v{{ latestVersion }} ben\xF6tigt Node.js v{{ minVersion }} oder neuer. Du nutzt derzeit Node.js {{ installedVersion }}.","plugins.compat.hb_too_low":"Das {{ pluginName }} Plugin ben\xF6tigt Homebridge v{{ minVersion }} oder neuer. Du nutzt derzeit Homebridge v{{ installedVersion }}.","plugins.compat.node_first":"Bitte update Node.js, bevor du {{ packageName }} updatest.","plugins.compat.node_link":"Wie man Node.js aktualisiert","plugins.compat.node_too_low":"Das {{ pluginName }}-Plugin empfiehlt Homebridge v{{ minVersion }} oder neuer. Du nutzt derzeit Homebridge v{{ installedVersion }}.","plugins.compat.title":"Kompatibilit\xE4tspr\xFCfung","plugins.config.load_error":"Fehler beim laden der Plugin-Konfiguration.","plugins.config.must_be_array":"Plugin-Konfiguration muss ein array sein.","plugins.config.must_be_array_objects":"Plugin-Konfigurationmsus ein Array aus Objekten sein.","plugins.config.must_be_object":"Config-Bl\xF6cke m\xFCssen Objekte seib.","plugins.config.name_property":'Accessory muss ein g\xFCltiges "name" Attribut besitzen',"plugins.config.please_fix":"Bitte beheben Sie Validierungsfehler, bevor Sie einen neuen Block hinzuf\xFCgen.","plugins.config.remove_error":"Plugin-Konfiguration konnte nicht entfernt werden.","plugins.disable.error":"Das Plugin konnte nicht deaktiviert werden.","plugins.donate.message_1":"Da immer mehr Benutzer ihre Plugins \xFCber die Homebridge-UI installieren, ist es weniger wahrscheinlich, dass sie die GitHub-Seite des Projekts besuchen, wo normalerweise die M\xF6glichkeiten zur Unterst\xFCtzung eines Entwicklers angezeigt werden.","plugins.donate.message_2":"Das Hinzuf\xFCgen von Spendenlinks direkt in der Homebridge-UI stellt sicher, dass die Benutzer wissen, wie sie die Homebridge-Entwickler unterst\xFCtzen k\xF6nnen, wenn sie dies w\xFCnschen.","plugins.donate.tile_donate_to":"An {{ author }} spenden","plugins.enable.error":"Das Plugin konnte nicht aktiviert werden.","plugins.manage.all_versions":"Alle Versionen","plugins.manage.backup":"Download a backup before updating?","plugins.manage.changelog":"Full Changelog","plugins.manage.changelog_none":"Could not retrieve changelog, perhaps this plugin does not provide a <code>CHANGELOG.md</code> file.","plugins.manage.child_bridge_restart":"Child-Bridge erfolgreich neugestartet.","plugins.manage.child_bridge_restart_failed":"Plugin-Neustart fehlgeschlagen. Bitte starte Homebridge manuell neu.","plugins.manage.confirm_disable":"Bist du sicher, dass du {{ pluginName }} deaktivieren m\xF6chtest?","plugins.manage.confirm_disable_accessory_1":"Alle Accessories, die von diesem Plugin angezeigt werden, werden aus Homebridge UI-Accessories und aus HomeKit entfernt.","plugins.manage.confirm_disable_accessory_2":"Wenn Sie das Plugin wieder aktivieren, wird das Zubeh\xF6r wieder in der Homebridge-UI und in HomeKit angezeigt. Die Accessories verlieren ihre HomeKit-Daten (wie zugeh\xF6rige Szenen und Automatisierungen).","plugins.manage.confirm_disable_platform_1":"Alle Accessories, die von diesem Plugin angezeigt werden, werden aus Homebridge UI-Accessorie der Homebridge-UI entfernt, bleiben aber in HomeKit mit dem Vermerk \u201EKeine Antwort\u201C erhalten.","plugins.manage.confirm_disable_platform_2":"Wenn Sie das Plugin wieder aktivieren, wird das Zubeh\xF6r wieder in der Homebridge-UI angezeigt und kann wieder \xFCber HomeKit gesteuert werden. Das Accessory verliert nicht seine HomeKit-Daten (wie zugeh\xF6rige Szenen und Automatisierungen).","plugins.manage.confirm_disable_setting":"Your setting for {{ setting }} is currently {{ value }}, therefore:","plugins.manage.confirm_enable":"Bist du sicher, dass du {{ pluginName }} aktivieren m\xF6chtest?","plugins.manage.disable":"Deaktivieren","plugins.manage.enable":"Aktivieren","plugins.manage.github_support":"Sie k\xF6nnen Ihre Unterst\xFCtzung zeigen, indem Sie dieses Plugin mit einem {{ iconStar }} (oder dem Release ein {{ iconThumbsUp }}) auf GitHub geben!","plugins.manage.hb_restart":"Homebridge and the UI will automatically restart after any version change.","plugins.manage.hide_updates":"Disable Update Notifications","plugins.manage.hide_updates_desc":"If you don't want to see update notifications for this plugin, you can turn them off here.","plugins.manage.information":"Plugin Information","plugins.manage.install":"Installieren","plugins.manage.installed":"Installiert","plugins.manage.json_config":"JSON Konfiguration","plugins.manage.manage_version":"Version verwalten","plugins.manage.manual_update_command":"Um das Paket zu aktualisieren, \xF6ffnen Sie eine Node.js-Eingabeaufforderung als Administrator und f\xFChren Sie die folgenden Befehle aus:","plugins.manage.more_info":"Weitere Informationen zu scoped {{ scopedLink }} und verifizierten {{ verifiedLink }} Plugins.","plugins.manage.notes":"Release Notes","plugins.manage.notes_beta_1":"Thank you for helping improve {{ pluginName }} by testing a pre-release version.","plugins.manage.notes_beta_2":"You can use the Homebridge UI to revert back to the stable version at any time.","plugins.manage.notes_beta_3":"Please remember this is a pre-release version, and report any issues to the plugin's GitHub repository page.","plugins.manage.notes_latest":"Release notes are only shown when updating to the latest version.","plugins.manage.notes_none":"Could not retrieve release notes, perhaps this version does not have a GitHub release.","plugins.manage.online_updates":"Online-Updates werden unter Windows nicht unterst\xFCtzt. Du musst Homebridge UI manuell aktualisieren, nachdem du den Homebridge-Dienst beendet hast","plugins.manage.plugin_logs":"Plugin Logs","plugins.manage.scoped.error":"Es ist ein Fehler aufgetreten. Sie k\xF6nnen die Logs unten herunterladen.","plugins.manage.scoped.info_1":"Homebridge scoped Plugins haben Namen, die mit {{ prefix }} beginnen.","plugins.manage.scoped.info_2":"Weitere Informationen \xFCber scoped Plugins und warum man wechseln sollte, finden Sie auf der Wiki-Seite {{ link }}.","plugins.manage.scoped.process":"Dieser Vorgang hat keine Auswirkungen auf Ihr Homebridge/HomeKit-Zubeh\xF6r. Sie k\xF6nnen den Vorgang nicht mehr abbrechen, sobald er begonnen hat. Er wird:","plugins.manage.scoped.switch":"Umschalten auf scoped Plugin","plugins.manage.scoped.windows":'Online-Updates werden unter Windows noch unterst\xFCtzt. Du solltest <span class="fw-bold">nicht</span> Homebridge neustarten bis beide Schritte abgeschlossen sind.',"plugins.manage.scoped_message":"Scoped Plugins verbessern die langfristige Zuverl\xE4ssigkeit und gew\xE4hrleisten eine konsistente Wartung, indem sie die zentrale \xDCberwachung durch das Homebridge-Team mit der kontinuierlichen Beteiligung des urspr\xFCnglichen Erstellers kombinieren.","plugins.manage.scoped_subtitle":"Dieses Plugin ist scoped und verifiziert.","plugins.manage.select_version":"Zu installierende Version ausw\xE4hlen","plugins.manage.uninstall":"Deinstallieren","plugins.manage.uninstalled":"Entfernt","plugins.manage.unverified_message":"Nicht verifizierte Homebridge-Plugins bedeuten, dass sie nicht vom Homebridge-Projektteam gepr\xFCft wurden. Eine fehlende \xDCberpr\xFCfung bedeutet nicht zwangsl\xE4ufig, dass sie ineffizient sind oder Sicherheitsbedenken bestehen. Die Autoren k\xF6nnen sich aus verschiedenen Gr\xFCnden daf\xFCr entschieden haben, keine \xDCberpr\xFCfung vorzunehmen.","plugins.manage.unverified_subtitle":"Dieses Plugin ist nicht verifiziert.","plugins.manage.update":"Aktualisieren","plugins.manage.updated":"aktualisiert","plugins.manage.verified_message":"Homebridge-Plugins, die als verifiziert gekennzeichnet sind, wurden vom Homebridge-Projektteam \xFCberpr\xFCft, um sicherzustellen, dass sie verschiedene Anforderungen erf\xFCllen, die Best Practices und eine problemlose Benutzererfahrung f\xF6rdern.","plugins.manage.verified_subtitle":"Dieses Plugin ist verifiziert.","plugins.placeholder_search_first":"Verwenden Sie die Suchleiste oben, um Ihr erstes Plugin zu finden","plugins.placeholder_search_none":"Keine Ergebnisse gefunden","plugins.placeholder_search_plugin":"Suche nach installierbaren Plugins \u2026","plugins.settings.custom.homebridge-gsh.label_account_linked":"Konto verbunden","plugins.settings.custom.homebridge-gsh.label_link_account":"Konto verbinden","plugins.settings.custom.homebridge-gsh.message_about":"Das Homebridge Google Smart Home-Plugin erlaubt es dir, deine Homebridge-Ger\xE4te durch einen Google Home-f\xE4higen smarten Lautsprecher oder durch die Google Home Mobile-App zu steuern.","plugins.settings.custom.homebridge-gsh.message_account_link_required":"Um diese Funktionalit\xE4t zu aktivieren, musst du dich mit deinem Google- or GitHub-Konto anmelden. Stelle sicher, dass du dasselbe Konto verwendest, wenn du die Homebridge-Aktion in der Google Home Mobile-App hinzuf\xFCgst.","plugins.settings.custom.homebridge-gsh.message_homebridge_restart_required":"Homebridge muss neugestartet werden, damit die \xC4nderungen wirksam werden.","plugins.settings.deconz.dump_no_exist":"Homebridge deCONZ Dump-Datei existiert noch nicht.","plugins.settings.hue.dump_no_exist":"Homebridge Hue Dump-Datei existiert noch nicht.","plugins.settings.label_open_config_editor":"Konfigurations-Editor \xF6ffnen","plugins.settings.message_consult_documentation":"Bitte lese die Plugin Dokumentation, um das Plugin korrekt zu konfigurieren.","plugins.settings.message_manual_config_required":"Dieses Plugin muss mithilfe des Homebridge UI Config Editors manuell konfiguriert werden.","plugins.settings.plugin_config_saved":"Plugin-Konfiguration gespeichert","plugins.settings.restart_required":"Starte Homebridge neu, um die \xC4nderungen zu \xFCbernehmen.","plugins.stats":"Plugin Statistics","plugins.stats_note":"Plugins cannot be installed from this page, this is provided just for interest.","plugins.status_disabled":"Deaktiviert","plugins.status_installed":"Installiert","plugins.support.list_1":"Homebridge plugins are the building blocks of Homebridge, allowing you to add support for new accessories and platforms. Plugins add support for smart lights, cameras, TVs, etc, for brands that don't natively support HomeKit. For example, to bring your Ring doorbells and cameras into HomeKit, you can install the <code>homebridge-ring</code> plugin.","plugins.support.list_2":"Homebridge plugins are created by public contributors in the Homebridge community, and are not typically associated with the Homebridge maintainers, nor with the manufacturers of the accessories themselves. If you have a question about a specific plugin, you should let the plugin developer know via the plugin's GitHub page.","plugins.support.list_3":"There are currently over 4,700 plugins available for Homebridge, so you should be able to find plugins to suit your needs. If you are a Javascript/TypeScript developer (or want to take the opportunity to learn), you can also create your own plugin and share it with the Homebridge community. Check out the Support section for some handy links to get you started.","plugins.support.list_4":"Some plugins allow you to create 'virtual/dummy' accessories, which are accessories that do not have a physical counterpart. These can be used to create virtual accessories in HomeKit, such as virtual switches, lights, or sensors. Try searching for <code>dummy</code> or <code>virtual</code> in the search bar to find some examples.","plugins.toast_failed_to_load_plugin_schema":"Plugin-Konfigurationsschema konnte nicht geladen werden.","plugins.toast_failed_to_load_plugins":"Fehler beim Laden der Plugins","plugins.uninstall_bridge_error":"Die Child-Bridge konnte nicht entfernt werden.","plugins.uninstall_remove_child_bridge":"Plugin-Child-Bridge entfernen?","plugins.uninstall_remove_child_bridges":"Entferne {{ count }} Plugin-Child-Bridges?","plugins.uninstall_remove_config_required":"Stelle sicher, dass wenn du dieses Plugin dauerhaft entfernst, jede Konfiguration f\xFCr dieses Plugin in der config.json entfernt hast, bevor du Homebridge neu startest.","plugins.uninstall_remove_confirmation":"Bist du sicher, dass du {{ pluginName }} entfernen m\xF6chtest?","plugins.uninstall_remove_plugin_config":"Plugin Konfiguration entfernen?","plugins.uninstall_warn_1":"Wenn Sie eine Child-Bridge entfernen, werden alle von dieser Bridge ver\xF6ffentlichten Zubeh\xF6rteile aus dem Homebridge-Cache entfernt.","plugins.uninstall_warn_2":"Das Zubeh\xF6r wird in HomeKit veraltet sein (es wird keine Reaktion angezeigt). Um es zu entfernen, m\xFCssen Sie diese Bridge manuell aus HomeKit entfernen. Sie k\xF6nnen dies in der Home-App im Abschnitt 'Home-Einstellungen' tun.","reset.accessory_all.desc":"Entfernen Sie alle Zubeh\xF6re aus dem Cache.","reset.accessory_all.list_1":"Wenn Sie auf die Schaltfl\xE4che 'Entfernen' unten klicken, wird Homebridge neu gestartet und alle Ihre vorhandenen Zubeh\xF6re wird von Homebridge und HomeKit entfernt.","reset.accessory_all.list_2":"Alle zugeh\xF6rigen HomeKit-Daten werden ebenfalls entfernt, einschlie\xDFlich Raumzuordnungen, Szenen und Automatisierungen, die dieses Zubeh\xF6r verwendet.","reset.accessory_all.list_3":"Nach dem Neustart von Homebridge f\xFCgen Ihre Plugins Zubeh\xF6re erneut hinzu, als ob das Plugin zum ersten Mal installiert worden w\xE4re.","reset.accessory_all.title":"Entferne alle Zubeh\xF6re","reset.accessory_ind.bridge":"Bridge","reset.accessory_ind.desc":"Entfernen Sie einzelnes Zubeh\xF6r aus dem Cache.","reset.accessory_ind.done":"Pr\xFCfen Sie nach dem Entfernen von Zubeh\xF6r aus dem Cache die Log-Datei auf Best\xE4tigung und/oder Fehler.","reset.accessory_ind.fail":"Das Zubeh\xF6r konnte nicht aus dem Cache entfernt werden, pr\xFCfen Sie die Log-Datei auf Fehler.","reset.accessory_ind.list_1":"Einige Plugins r\xE4umen nicht richtig hinter sich auf. Wenn Sie veraltetes Zubeh\xF6r haben, k\xF6nnen Sie es aus dem Cache entfernen. Diese Funktion kann auch verwendet werden, um ein vorhandenes Zubeh\xF6r in HomeKit zur\xFCckzusetzen.","reset.accessory_ind.list_2":"Das Zubeh\xF6r wird aus Homebridge und HomeKit entfernt, zusammen mit den zugeh\xF6rigen Raumzuordnungen, Szenen und Automatisierungen.","reset.accessory_ind.list_3":"Nach dem Neustart von Homebridge f\xFCgen Ihre Plugins entferntes Zubeh\xF6r wieder hinzu, als ob das Plugin zum ersten Mal installiert w\xFCrde.","reset.accessory_ind.title":"Individuelles Zubeh\xF6r entfernen","reset.accessory_ind.unknown":"Unbekannter Name","reset.accessory_reset":"Homebridge-Ger\xE4te zur\xFCcksetzen","reset.action_is_irreversible":"Diese Aktion ist nicht umkehrbar. Bitte pr\xFCfe sie sorgf\xE4ltig, bevor du fortf\xE4hrst.","reset.bridge_accessories.desc":"Entfernen aller von einer Child-Bridge ver\xF6ffentlichten Zubeh\xF6rteile aus dem Cache.","reset.bridge_accessories.empty":"Sie haben keine Bridges, von denen Sie Zubeh\xF6r entfernen k\xF6nnen.","reset.bridge_accessories.list_1":"Diese Funktion kann verwendet werden, um das vorhandene Zubeh\xF6r eines Plugins in HomeKit zur\xFCckzusetzen. Sie werden aus Homebridge und HomeKit entfernt und dann vom Plugin als neues Zubeh\xF6r wieder hinzugef\xFCgt.","reset.bridge_accessories.list_2":"Die Pairing-Details und der Status der Child-Bridge bleiben unver\xE4ndert.","reset.bridge_accessories.title":"Entferne Bridge Zubeh\xF6re","reset.bridge_all.desc":"Alle Bridges zur\xFCcksetzen, indem sie aus dem Cache entfernt werden. Dazu geh\xF6ren die Homebridge-Bridge, untergeordnete Bridges und Bridges f\xFCr externes Zubeh\xF6r.","reset.bridge_all.list_1":"Dadurch werden die Homebridge-Bridge, alle untergeordneten Bridges und Bridges f\xFCr externes Zubeh\xF6r von HomeKit zur\xFCckgesetzt.","reset.bridge_all.list_2":"Beachten Sie, dass Ihr Zubeh\xF6r in HomeKit weiterhin ohne Reaktion angezeigt werden, bis die Bridges manuell aus HomeKit entfernt werden. Sie k\xF6nnen dies in der Home-App erledigen, indem Sie Home-Einstellungen \u2192 Home Hubs & Bridges \u2192 {Bridge} \u2192 Bridge aus Home entfernen ausw\xE4hlen.","reset.bridge_all.list_3":"Alle Homebridge-zu-HomeKit-Accessories, -Szenen und -Automatisierungen m\xFCssen nach der Aufhebung des Pairings neu konfiguriert werden.","reset.bridge_all.list_4":"Der Pin f\xFCr die Kopplung Ihrer Homebridge-Bridge mit HomeKit wird ge\xE4ndert. Sie k\xF6nnen die neuen Werte in Ihrer Homebridge-Konfiguration nach der Aufhebung des Pairings sehen.","reset.bridge_all.title":"Alle Bridges zur\xFCcksetzen","reset.bridge_ind.desc":"Eine einzelne Bridge zur\xFCcksetzen, indem sie aus dem Cache entfernt wird. Dies kann eine Child-Bridge oder eine Bridge f\xFCr ein externes Zubeh\xF6r wie eine Kamera oder einen Fernseher sein.","reset.bridge_ind.desc_child_active":"Homebridge hat festgestellt, dass diese Child-Bridges verwendet werden. Sobald sie entfernt werden, wird ihr Zubeh\xF6r aus dem Homebridge-Cache entfernt. Wenn sie mit HomeKit gekoppelt sind, wird das Zubeh\xF6r der Bridge als 'Keine Antwort' angezeigt und die Bridge muss \xFCber die Home-App entfernt werden. Die Kopplungsinformationen der Child-Bridge werden ge\xE4ndert. Sobald Homebridge neu gestartet wurde, erstellt das Plugin die neue untergeordnete Bridge und das Zubeh\xF6r. Die neue Bridge muss erneut mit HomeKit gepaart werden. Sie k\xF6nnen die neuen Kopplungsinformationen auf der Seite mit den Bridge-Einstellungen des entsprechenden Plugins anzeigen.","reset.bridge_ind.desc_child_stale":"Homebridge hat festgestellt, dass diese Bridges nicht verwendet werden, aber \xFCberpr\xFCfen Sie diese dennoch vor dem L\xF6schen. Sie k\xF6nnten \xDCberbleibsel von zuvor deinstallierten Plugins sein","reset.bridge_ind.desc_non_child":"Homebridge hat festgestellt, dass diese Bridges verwendet werden. Sie k\xF6nnen sie aus dem Cache entfernen, aber sie werden wahrscheinlich vom Plugin wieder hinzugef\xFCgt, wenn Homebridge neu gestartet wird. Die Kopplungsinformationen bleiben unver\xE4ndert.","reset.bridge_ind.done":"Bridge zur\xFCckgesetzt, \xFCberpr\xFCfe die Log-Datei auf Best\xE4tigung und/oder Fehler.","reset.bridge_ind.fail":"Bridge zur\xFCcksetzen fehlgeschlagen, \xFCberpr\xFCfe die Log-Datei auf Fehler.","reset.bridge_ind.head_child_active":"Aktive Child-Bridges","reset.bridge_ind.head_child_stale":"Ung\xFCltige Child-Bridges","reset.bridge_ind.head_non_child":"Keine Child-Bridges","reset.bridge_ind.title":"Einzelne Bridges zur\xFCcksetzen","reset.bridges.desc":"Wenn Sie Probleme haben, Homebridge, ein externes Zubeh\xF6r oder eine Child-Bridge mit HomeKit zu koppeln, m\xFCssen Sie m\xF6glicherweise die Kopplung mit HomeKit aufheben, um neu zu beginnen.","reset.bridges.empty":"Sie haben keine Bridges zum Entkoppeln von HomeKit.","reset.bridges.title":"Bridges","reset.clear_cache_single.list_3":"Wenn Sie ein Zubeh\xF6r aus dem Cache entfernen, werden alle zugeh\xF6rigen HomeKit-Daten entfernt. Dazu geh\xF6ren alle zugeh\xF6rigen Szenen und Automatisierungen, die dieses Zubeh\xF6r verwendet.","reset.delete_success":"Homebridge wird neugestartet und Ger\xE4te-Cache wird entfernt.","reset.error_message":"Der Ger\xE4te-Cache konnte nicht geladen werden. Sie haben m\xF6glicherweise keine Ger\xE4te im Cache.","reset.failed_to_reset":"Homebridge konnte nicht zur\xFCckgesetzt werden. Siehe Logs.","reset.force_restart_hb_help_text":"Benutze diese Aktion, damit der hb-service Dienst einen vollst\xE4ndigen Neustart erzwingt.","reset.no_accessories":"Du hast kein zwischengespeichertes Zubeh\xF6r zum Entfernen.","restart.child_bridge_list":"Bitte starten Sie diese Child-Bridges neu, damit die \xC4nderungen wirksam werden:","restart.child_bridges":"Bitte starte die Child-Bridge des Plugins neu, damit die \xC4nderungen wirksam werden.","restart.label_restart_command_executed":"Neustart angesto\xDFen","restart.please_wait_while_server_restarts":"Bitte warte, du wirst automatisch umgeleitet, wenn der Server wieder online ist.","restart.server_is_taking_long_time_to_restart":"Der Neustart des Servers dauert l\xE4nger als gew\xF6hnlich. M\xF6glicherweise muss der Homebridge-Dienst manuell gestartet werden.","restart.service_ready":"Homebridge Server bereit","restart.title_restart":"Homebridge neustarten","restart.toast_server_restart_error":"Beim Senden des Neustartbefehls an den Server ist ein Fehler aufgetreten","restart.toast_server_restart_timeout":"Der Server braucht lange, um wieder online zu gehen","restart.toast_server_restarted":"Server wurde neu gestartet","restart.ui_online":"Homebridge UI Online","rpi.throttled.currently_message":"Dieser Raspberry Pi meldet, dass er derzeit unter zu niedriger Spannung steht; bitte \xFCberpr\xFCfen Sie, ob er an eine geeignete Stromversorgung angeschlossen ist. Eine Unterspannung kann zur Instabilit\xE4t des Systems und zur Besch\xE4digung der SD-Karte f\xFChren.","rpi.throttled.previously_message":"Dieser Raspberry Pi hat seit dem letzten Neustart ein Unterspannungsereignis gemeldet; bitte \xFCberpr\xFCfen Sie, ob er an eine geeignete Stromversorgung angeschlossen ist.","rpi.throttled.undervoltage_title":"Unterspannung","settings.accessory.debug":"Accessory Debug Mode","settings.accessory.debug_desc":"If enabled, the Homebridge UI will log debug level messages to the console.","settings.cache.desc":"Homebridge verwaltet Zubeh\xF6re im Cache, damit es nicht bei jedem Neustart von Homebridge entfernt und neu zu HomeKit hinzugef\xFCgt wird. Manchmal kann dieser Cache nicht mehr mit den tats\xE4chlichen Zubeh\xF6r in Homebridge synchronisiert werden.","settings.changes.saved":"Ihre \xC4nderungen wurden gespeichert und erfordern einen Neustart, um wirksam zu werden..","settings.datetime.incorrect":"Das Datum und die Uhrzeit auf Ihrem Homebridge-Server scheinen falsch zu sein. Dies kann zu unerwarteten Problemen f\xFChren. Klicken Sie hier f\xFCr weitere Informationen.","settings.display.blue":"Blau","settings.display.bluegrey":"Blau-Grau","settings.display.brown":"Braun","settings.display.cyan":"Cyan","settings.display.dark":"Dunkel","settings.display.deep_purple":"Dunkles Lila","settings.display.green":"Gr\xFCn","settings.display.grey":"Grau","settings.display.indigo":"Indigo","settings.display.lang":"Sprache","settings.display.light":"Hell","settings.display.lighting_mode":"Helligkeitsmodus","settings.display.menu_default":"Standard","settings.display.menu_freeze":"Geschlossen halten (auf dem Desktop)","settings.display.menu_mode":"Men\xFC-Modus","settings.display.orange":"Orange","settings.display.pink":"Rosa","settings.display.purple":"Lila","settings.display.red":"Rot","settings.display.show_betas":"Prefer Beta Versions","settings.display.teal":"T\xFCrkis","settings.display.temp_units":"Temperatureinheiten","settings.display.temp_units.c":"Celsius (\xB0C)","settings.display.temp_units.f":"Fahrenheit (\xB0F)","settings.display.theme":"Theme","settings.display.wallpaper":"Wallpaper","settings.display.wallpaper_intro":"Upload a wallpaper for your Homebridge UI. This is currently shown on the login screen.","settings.display.wallpaper_rule":"You can choose an image file which is up to {{ maxFileSizeText }}.","settings.display.wallpaper_rule2":"You will need to click Save to upload the wallpaper to your Homebridge storage directory.","settings.display.wallpaper_success":"Wallpaper was successfully updated.","settings.general.title_display":"Anzeige","settings.general.title_general":"Allgemein","settings.linux.restart":"Restart Command","settings.linux.restart_desc":"If no restart command is set the process will terminate with a non-zero exit code.","settings.linux.shutdown":"Shutdown Command","settings.linux.shutdown_desc":"If no shutdown command is set the process will terminate with a non-zero exit code.","settings.linux.temp":"Temperature File Path","settings.linux.temp_desc":"If you are running Homebridge on a Raspberry Pi, you can enter the path to the OS temperature file here. This will display the current temperature on the UI status page.","settings.matter.desc":"Enables Matter accessories on the main bridge. If only using Matter with child bridges, this setting does not need to be enabled - child bridges have independent Matter settings in their plugin bridge settings.","settings.matter.enabled":"Enabled","settings.matter.enabled_desc":"Whether to start a Matter instance and allow plugins to expose Matter accessories.","settings.matter.port":"Port","settings.matter.port_desc":"This must be between 1025 and 65533, and unique to any other configured port.","settings.matter.title":"Matter Settings","settings.mdns_advertiser":"mDNS Advertiser","settings.mdns_advertiser_exp":"experimentell","settings.mdns_advertiser_help":"Wenn du Probleme hast, dich mit Homebridge zu verbinden, versuche einen der alternativen mDNS Advertiser zu verwenden.","settings.mdns_advertiser_not_connected":"Nicht verbunden","settings.mdns_advertiser_rec":"empfohlen","settings.name":"Homebridge Name","settings.network.hb_package":"Homebridge Module Path","settings.network.hb_package_desc":"If you have multiple versions of Homebridge installed, you can specify the path to the version you want to use here.","settings.network.host":"Host IP Address","settings.network.host_desc":"The host IP address to listen on. In most cases this will be <code>::</code> or <code>0.0.0.0</code>.","settings.network.mdns_advertise":"Advertise Via mDNS","settings.network.mdns_advertise_help":"Enable mDNS advertising (using Bonjour) for your Homebridge UI, making it discoverable as an HTTP service on your local network.","settings.network.message_network_interface":"Wenn keine Netzwerkschnittstellen ausgew\xE4hlt sind, versucht Homebridge automatisch zu bestimmen, welche Schnittstellen angezeigt werden sollen.","settings.network.port_end":"End Port","settings.network.port_end_desc":"Control the end of the range of ports that separate accessories (like camera or television) should run on. This must be between 1025 and 65533, and higher than the start port above.","settings.network.port_hb":"Homebridge Port","settings.network.port_hb_desc":"Die Portnummer, unter der die Homebridge-Bridge ausgef\xFChrt werden soll. Diese muss zwischen 1025 und 65533 liegen und sollte nicht mit dem Port der Homebridge-Benutzeroberfl\xE4che \xFCbereinstimmen.","settings.network.port_start":"Start Port","settings.network.port_start_desc":"Control the start of the range of ports that separate accessories (like camera or television) should run on. This must be between 1025 and 65533, and lower than the end port below.","settings.network.port_ui":"UI Port","settings.network.port_ui_desc":"Die Portnummer, \xFCber die die Homebridge UI ausgef\xFChrt werden soll.","settings.network.proxy":"Reverse Proxy Hostname","settings.network.proxy_desc":"When running behind a reverse proxy you may need to enter the hostname you use to access the UI.","settings.network.title_network":"Netzwerk","settings.network.title_network_interfaces":"Netzwerkschnittstellen","settings.network.title_security":"Security","settings.network.title_terminal":"Logging & Terminal","settings.network.webroot":"Webroot Path","settings.network.webroot_desc":"This can be configured if you want to access the Homebridge UI under a specific URL path.","settings.reset_bridge.error":"Zur\xFCcksetzen der Bridge fehlgeschlagen.","settings.security.auth":"Authentication","settings.security.auth_desc":"Whether to enable authentication for the Homebridge UI with a username and password.","settings.security.cert":"Certificate Path","settings.security.https":"Enable HTTPS","settings.security.https_desc":"Enable HTTPS using an auto-generated self-signed certificate or by providing your own certificate files.","settings.security.https_keycert":"Private Key + Certificate","settings.security.https_pfx":"PKCS#12 Certificate + Passphrase","settings.security.https_raspbian":"HTTPS is already enabled by default when running the Homebridge Raspbian image {{ link }}.","settings.security.https_selfsigned":"Self-Signed Certificate","settings.security.key":"Private Key Path","settings.security.pass":"PKCS#12 Certificate Passphrase","settings.security.pfx":"PKCS#12 Certificate Path","settings.security.selfsigned_generate_keycert":"Generate Self\u2011Signed & Use as Key + Cert","settings.security.selfsigned_generate_selfsigned":"Generate & Enable Self\u2011Signed Mode","settings.security.selfsigned_generate_success_keycert":"Generated self\u2011signed certificate and set as Key + Cert","settings.security.selfsigned_generate_success_selfsigned":"Generated self\u2011signed certificate and enabled Self\u2011signed mode","settings.security.selfsigned_hostnames":"Certificate Hostnames","settings.security.selfsigned_hostnames_desc":"Comma-separated list of hostnames or IP addresses to include in the certificate (e.g., localhost, 127.0.0.1, homebridge.local, 192.168.1.100)","settings.security.ssl_upload_keycert_aria":"Upload private key and certificate","settings.security.ssl_upload_pfx_aria":"Upload PKCS#12 certificate","settings.security.ssl_upload_success_keycert":"Certificate and private key uploaded","settings.security.ssl_upload_success_pfx":"PKCS#12 certificate uploaded","settings.security.ssl_validate":"Validate SSL","settings.security.ssl_validate_error":"SSL configuration is invalid.","settings.security.ssl_validate_success":"SSL configuration is valid.","settings.security.ui_control":"Accessory Control Lists","settings.security.ui_control_desc":"Define which bridges and bridged accessories can be controlled or blocked by the Homebridge UI.","settings.security.ui_control_desc_2":"Allow the UI to control the accessories on a bridge by toggling on the switch below.","settings.service.debug_tooltip":"Bei einigen Plugins m\xFCssen Sie die Umgebungsvariable DEBUG setzen {{ link }}, um die Protokollierung auf Debug-Ebene zu aktivieren.","settings.service.node_tooltip":"Node.js-Laufzeitoptionen f\xFCr den Homebridge-Prozess. Dies sollte leer bleiben, wenn Sie nicht wissen, was Sie tun.","settings.startup.debug":"Homebridge 'Debug' Mode","settings.startup.debug_desc_v1":"Aktivieren Sie diese Option, wenn Homebridge ausf\xFChrlichere Logs ausgeben soll. Diese Einstellung gilt sowohl f\xFCr die Haupt-Homebridge als auch f\xFCr alle Child-Bridges. Einige Plugins k\xF6nnen sich auch an diese Einstellung halten und ausf\xFChrlichere Logs ausgeben.","settings.startup.debug_desc_v2":"Aktivieren Sie diese Option, wenn Homebridge ausf\xFChrlichere Logs ausgeben soll. Diese Einstellung gilt f\xFCr die Main-Homebridge-Bridge. Die Einstellung f\xFCr Child-Bridges finden Sie in der Child-Bridge-Konfiguration auf der Plugins-Seite. Einige Plugins k\xF6nnen sich auch an diese Einstellung halten und ausf\xFChrlichere Logs ausgeben.","settings.startup.insecure":"Enable UI Accessory Control","settings.startup.insecure_desc":"Um Ihre Zubeh\xF6r \xFCber die Homebridge-Benutzeroberfl\xE4che zu steuern, m\xFCssen Sie Homebridge im 'Insecure' Mode ausf\xFChren.","settings.startup.keep_accessories":"Behalte Zubeh\xF6re von nicht installierten Plugins","settings.startup.keep_accessories_desc":"Wenn diese Option aktiviert ist, verbleiben Zubeh\xF6re von Plattform-Plugins im Cache, auch wenn das Plugin deinstalliert wird. Dies kann n\xFCtzlich sein, wenn Sie planen, das Plugin sp\xE4ter erneut zu installieren.","settings.startup.metrics":"Enable Server Metric Monitoring","settings.startup.metrics_desc":"When enabled, the Homebridge UI will collect and show CPU and memory stats on the status page.","settings.startup.scheduled_restart":"Scheduled Restart Cron","settings.startup.scheduled_restart_desc":"Schedule automatic restarts relative to your timezone using a cron expression. Leave empty to disable. Create a cron expression {{ link }}.","settings.startup.scheduled_restart_desc_2":"You can apply this setting per child bridge from the plugin bridge configuration.","settings.startup.session":"Session Timeout","settings.startup.session_days":"days","settings.startup.session_desc":"The number of seconds before a user will be logged out of the UI. Defaults to 8 hours.","settings.startup.session_hours":"hours","settings.startup.session_inactivity_based":"Inactivity-Based Session Refresh","settings.startup.session_inactivity_based_desc":"When enabled, the session will automatically refresh on navigation to prevent logout during active use.","settings.startup.session_minutes":"minutes","settings.terminal.buffer_size":"Terminal Buffer Character Size","settings.terminal.buffer_size_help":"Amount of terminal output to preserve for persistent sessions. Larger values use more memory.","settings.terminal.log_max":"Log Max Size","settings.terminal.log_max_desc":"The max log size (bytes). Set to -1 to disable log truncation.","settings.terminal.log_truncate":"Log Truncate Size","settings.terminal.log_truncate_desc":"The size (bytes) to truncate the log to once it goes over the max size specified above.","settings.terminal.persistence":"Terminal Session Persistence","settings.terminal.persistence_confirm_message":"Disabling terminal session persistence will terminate your current terminal session.","settings.terminal.persistence_confirm_title":"Disable Terminal Session Persistence","settings.terminal.persistence_help":"When enabled, terminal sessions will persist when navigating away and can be resumed when returning to the terminal page (or status page widget). Terminal sessions are shared across Homebridge UI admin users.","settings.terminal.warning":"Hide Terminal Termination Warning","settings.terminal.warning_help":"When enabled, the warning dialog will not be shown before terminating non-persistent terminal sessions.","settings.title_startup_options":"Startoptionen","settings.unpair_bridge.load_error":"Gepairte Bridge konnten nicht geladen werden.","settings.warning_pwa":"This setting cannot be changed when accessing the UI from a PWA, please use a regular browser.","settings.warning_webroot":"Homebridge does not have write access to the served <code>index.html</code> file. To set up a webroot, please fix this issue and restart the Homebridge service.","setup.button_get_started":"Los geht's","setup.create_account":"Konto erstellen","setup.intro":"If you are setting up for the first time, or if you just need to reset the password for your existing Homebridge setup, then choose <strong>Get Started</strong>.","setup.welcome_to_homebridge":"Willkommen bei Homebridge",setup_wizard_complete:"Restore Complete!",setup_wizard_complete_title:"Herzlichen Gl\xFCckwunsch!",setup_wizard_completed:"Der Einrichtungsvorgang ist abgeschlossen und du kannst Homebridge jetzt verwenden.",setup_wizard_create_info:"Once Homebridge is set up, you can set up 2FA on your account, or disable the need for authentication altogether.",setup_wizard_page_title:"Setup Homebridge",setup_wizard_restore:"Wiederherstellen aus Backup",setup_wizard_restoring:"Restoring Backup...",setup_wizard_starting:"Starting Homebridge...","status.code_scan":"Scannen, um es zu HomeKit hinzuzuf\xFCgen","status.cpu.load":"Auslastung","status.cpu.temp":"Temperatur","status.cpu.title_cpu":"Prozessor","status.credits.plugins_thanks":"Homebridge plugins are created by awesome developers in the Homebridge community.","status.credits.supporters":"Supporters","status.credits.title":"Credits","status.credits.translations":"Translations","status.credits.translations_thanks":"Homebridge UI translations are provided by the community, with special thanks to:","status.homebridge.checking":"Nach Updates suchen \u2026","status.homebridge.up_to_date":"Auf dem neuesten Stand","status.memory.label_available":"Frei","status.memory.label_total":"Gesamt","status.memory.title_memory":"Arbeitsspeicher","status.network.received_per_second":"Empfangen","status.network.sent_per_second":"Gesendet","status.network.title_network":"Netzwerkaktivit\xE4ten","status.readiness.node_no":"Your version of Node.js is not compatible with {{ app }}.","status.readiness.node_yes":"Your version of Node.js is compatible with {{ app }}.","status.readiness.title":"{{ app }} Readiness","status.services.label_loading":"Loading...","status.services.label_not_enabled":"Not Enabled","status.services.label_not_running":"Gestoppt","status.services.label_running":"L\xE4uft","status.services.updates":"Update Information","status.uptime.title_uptime":"Betriebszeit","status.widget.accessories.choose_accessories":"W\xE4hle die Ger\xE4te, die in diesem Widget vom Ger\xE4te-Tab angezeigt werden sollen.","status.widget.account_1":"The widget layout is shared among all Homebridge UI users.","status.widget.account_2":"Admin users can modify the layout, while non-admin users cannot make changes.","status.widget.add.label_pairing_code":"Pairing-Code","status.widget.add.matter_pairing_code":"Matter Pairing Code","status.widget.bridge.restart_error":"Neustart der Child-Bridge fehlgeschlagen.","status.widget.clock":"Uhr","status.widget.clock_dateformat":"Datumsformat","status.widget.clock_timeformat":"Zeitformat","status.widget.expand_docker":"Expand Docker Container Information","status.widget.font_size":"Schriftgr\xF6\xDFe","status.widget.font_weight":"Schriftst\xE4rke","status.widget.hide_node_info":"Hide Node.js Updates","status.widget.hide_npm":"Show npm Version","status.widget.hide_on_mobile":"In kompakter Anzeige verbergen (mobile Bildschirme)","status.widget.homebridge_logs":"Homebridge Log","status.widget.info":"System Informationen","status.widget.info.arch":"Arch.","status.widget.info.config_path":"Konfigurationspfad","status.widget.info.docker":"Docker","status.widget.info.docker_update_message":"Updating the Docker container requires manually pulling the latest image and restarting the container. Homebridge does not perform this automatically. Refer to your Docker image's documentation for update instructions.","status.widget.info.docker_update_title":"Docker Container Update","status.widget.info.hostname":"Hostname","status.widget.info.ipv4":"IPv4","status.widget.info.ipv6":"IPv6","status.widget.info.no":"Nein","status.widget.info.node_major":"Node.js Major Versions","status.widget.info.node_next_no":"Your current architecture ({{ architecture }}) is 32-bit, which is not supported. You will need to migrate to a 64-bit system. Please use Node.js v22 instead, which we will be supporting until April 2027.","status.widget.info.node_next_yes":"Your current architecture ({{ architecture }}) supports Node.js v24, so you can upgrade when you are ready.","status.widget.info.node_unsupp":"Nicht unterst\xFCtzt","status.widget.info.node_unsupp_message":"Sie verwenden eine Version von Node.js, die nicht offiziell von Homebridge unterst\xFCtzt wird. Sie sollten den Wechsel zu einer unterst\xFCtzten Version in Betracht ziehen.","status.widget.info.node_update_message":"F\xFCr die Ausf\xFChrung von Homebridge muss Node.js auf Ihrem System installiert sein. Ab und an m\xFCssen Sie die Node.js-Laufzeitumgebung aktualisieren, um die Unterst\xFCtzung f\xFCr neue Funktionen zu aktivieren. Homebridge (und verifizierte Plugins) unterst\xFCtzen alle aktuellen Active und Maintenance LTS-Versionen von Node.js.","status.widget.info.node_update_message_2":"For Docker/Synology users, the Node.js version is managed by the Docker image or Synology package. You can hide Node.js update information using the widget settings.","status.widget.info.nodejs_path":"Node.js Pfad","status.widget.info.os":"OS","status.widget.info.plugin_path":"Pluginpfad","status.widget.info.service_user":"Benutzer","status.widget.info.storage_path":"Speicherpfad","status.widget.info.synology_package":"Synology-Paket","status.widget.info.timezone":"Zeitzone","status.widget.info.yes":"Ja","status.widget.network.history_items":"History Items","status.widget.network.items":"items","status.widget.network.network_interface":"Netzwerkschnittstelle","status.widget.network.none_selected":"Standard verwenden","status.widget.network.refresh_interval":"Aktualisierungsintervall","status.widget.network.seconds":"Sekunden","status.widget.qr_paired":"Gekoppelte","status.widget.qr_unpaired":"Nicht Gekoppelte","status.widget.show_hide":"Widgets anzeigen/verstecken","status.widget.title_manage_widget":"Widget verwalten","status.widget.update_node_no":"{{ pluginName }} is not compatible with Node {{ nodeVersion }}.","status.widget.update_node_unknown":"The developer of {{ pluginName }} has not specified the Node version compatibility.","status.widget.update_node_yes":"{{ pluginName }} is compatible with Node {{ nodeVersion }}.","status.widget.uptime.label_process":"Prozess","status.widget.uptime.label_server":"Server","status.widget.weather.label_config_required_help":"Bitte w\xE4hle deine Stadt in den Widget-Einstellungen.","status.widget.weather.label_search_for_your_city":"Suche nach deiner Stadt:","status.widget.weather.title_weather":"Wetter","support.dev.api":"Homebridge API","support.dev.api_hap":"HAP-NodeJS API","support.dev.api_hap_sub":"HAP-NodeJS ist eine Implementierung des HomeKit Accessory Server, wie er im HomeKit Accessory Protocol (HAP) spezifiziert ist, das von Apple als Teil des HomeKit Frameworks definiert wurde.","support.dev.api_sub":"Homebridge ist ein leichtgewichtiger Node.js-Server, den Sie in Ihrem Heimnetzwerk ausf\xFChren k\xF6nnen, um das HomeKit Accessory Protocol (HAP) zu emulieren.","support.dev.item_swagger":"Swagger Docs","support.dev.item_swagger_sub":"Die Homebridge REST API erm\xF6glicht Ihnen die Interaktion mit Ihrem Homebridge-Server \xFCber HTTP-Anfragen.","support.dev.template":"Plugin Template Repo","support.dev.template_sub":"Eine Vorlage f\xFCr ein Homebridge-Plugin, die als Basis f\xFCr die Entwicklung eines eigenen Plugins verwendet werden kann.","support.dev.title":"Entwickler","support.dev.verified":"Verified By Homebridge","support.dev.verified_sub":"Das Verified By Homebridge Programm erm\xF6glicht es Plugin-Entwicklern, ihre Plugins vom Homebridge-Projektteam pr\xFCfen und best\xE4tigen zu lassen.","support.links.discord":"Discord-Server","support.links.discord_sub":"Treten Sie dem Homebridge Discord-Server bei, um dich mit anderen Benutzern und Entwicklern auszutauschen.","support.links.documentation":"Dokumentation","support.links.documentation_sub":"Die Homebridge-Dokumentation bietet eine F\xFClle von Informationen zu den ersten Schritten mit Homebridge und zur L\xF6sung g\xE4ngiger Probleme.","support.links.issue":"Ein Problem melden","support.links.issue_sub":"Wenn Sie ein Problem mit Homebridge haben, \xF6ffnen Sie bitte ein neues Issue auf GitHub. Dies sollte nicht f\xFCr Probleme mit bestimmten Plugins verwendet werden.","support.links.reddit":"Reddit Community","support.links.reddit_sub":"Der Homebridge-Subreddit ist ein gro\xDFartiger Ort, um Ihre Homebridge-Einrichtung zu teilen und um Hilfe zu bitten.","support.links.title":"N\xFCtzliche Links","support.title":"Support","toast.no_auth":"Nur Administratoren k\xF6nnen diese Seite aufrufen.","toast.title_error":"Fehler","toast.title_success":"Erfolgreich durchgef\xFChrt","toast.title_warning":"Warnung","users.button_add_user":"Benutzer hinzuf\xFCgen","users.label_admin_user":"Admin-Benutzer?","users.label_confirm_password":"Best\xE4tige das Passwort","users.label_full_name":"Vollst\xE4ndiger Name","users.label_new_password":"Neues Passwort","users.label_password":"Passwort","users.label_username":"Nutzername","users.setup_2fa":"2FA-Einstellungen","users.setup_2fa_activate_error":"Beim Aktivieren der Zwei-Faktor-Authentifizierung ist ein Fehler aufgetreten","users.setup_2fa_cannot_setup_2fa":"2FA kann nicht eingerichtet werden","users.setup_2fa_disable":"2FA deaktivieren","users.setup_2fa_disable_current_password":"Gib dein aktuelles Passwort ein, um die Zwei-Faktor-Authentifizierung zu deaktivieren:","users.setup_2fa_disable_success":"Zwei-Faktor-Authentifizierung wurde deaktiviert.","users.setup_2fa_enable":"2FA aktivieren","users.setup_2fa_enable_error":"Beim Einrichten von 2FA ist ein Fehler aufgetreten","users.setup_2fa_enabled_success":"Zwei-Faktor-Authentifizierung wurde aktiviert.","users.setup_2fa_enter_code":"Gib den Code deiner Authentifikator-App ein:","users.setup_2fa_scan_qr_code":"Scanne den unten stehenden QR-Code mit deiner Authentifikator-App:","users.setup_2fa_scan_qr_manual":"If you cannot scan the QR code, you can enter the following secret key manually:","users.setup_2fa_server_time_out":"Deine Server-Uhr weicht um {{ timeDiffError }} ms ab. Der erlaubte Maximalwert betr\xE4gt +/-5000 ms.","users.setup_2fa_warning":"Die Zwei-Faktor-Authentifizierung verlangt, dass dein Homebridge-Server eine pr\xE4zise Datum- und Zeitangabe zum Anmelden aufweist. Sollte dein Server die aktuelle Zeit nicht pr\xE4zise angeben k\xF6nnen, solltest du 2FA nicht aktivieren. Andernfalls riskierst du, dass du dich nicht mehr in Homebridge UI anmelden kannst.","users.support.acc_1":"There are two types of users that can access the Homebridge UI: admin and non-admin users. Admins can access and control everything available in the UI. Non-admin users have a read-only view of the following pages:","users.support.acc_2":"2FA can only be set up on admin accounts, and must do this via the users page logged in as themselves.","users.support.control":"can be controlled","users.title_add_user":"Benutzer hinzuf\xFCgen","users.title_edit_user":"Benutzer bearbeiten","users.title_users":"Benutzer","users.toast_added_new_user":"Benutzer hinzugef\xFCgt","users.toast_failed_to_add_user":"Fehler beim Hinzuf\xFCgen des Benutzers","users.toast_failed_to_delete_user":"Fehler beim L\xF6schen des Benutzers","users.toast_updated_user":"Benutzer aktualisiert","users.toast_user_deleted":"Benutzer gel\xF6scht"}});export{i as a};
|