homebridge-config-ui-x 5.11.2-beta.2 → 5.11.2-beta.4
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 +19 -2
- package/dist/core/auth/auth.controller.d.ts +4 -0
- package/dist/core/config/config.interfaces.d.ts +14 -0
- package/dist/core/config/config.service.d.ts +6 -0
- package/dist/core/config/config.service.js +8 -0
- package/dist/core/config/config.service.js.map +1 -1
- package/dist/core/config/config.startup.js +48 -17
- package/dist/core/config/config.startup.js.map +1 -1
- package/dist/core/feature-flags/feature-flags.registry.js +5 -0
- package/dist/core/feature-flags/feature-flags.registry.js.map +1 -1
- package/dist/core/homebridge-ipc/homebridge-ipc.service.js +1 -0
- package/dist/core/homebridge-ipc/homebridge-ipc.service.js.map +1 -1
- package/dist/core/spa/spa-html.service.d.ts +5 -0
- package/dist/core/spa/spa-html.service.js +32 -0
- package/dist/core/spa/spa-html.service.js.map +1 -0
- package/dist/core/spa/spa.filter.d.ts +3 -0
- package/dist/core/spa/spa.filter.js +22 -2
- package/dist/core/spa/spa.filter.js.map +1 -1
- package/dist/core/ssl/ssl-cert-generator.service.d.ts +15 -0
- package/dist/core/ssl/ssl-cert-generator.service.js +125 -0
- package/dist/core/ssl/ssl-cert-generator.service.js.map +1 -0
- package/dist/globalDefaults.js +3 -0
- package/dist/globalDefaults.js.map +1 -1
- package/dist/main.js +18 -4
- package/dist/main.js.map +1 -1
- package/dist/modules/accessories/accessories.controller.d.ts +1 -1
- package/dist/modules/accessories/accessories.interfaces.d.ts +94 -0
- package/dist/modules/accessories/accessories.interfaces.js +2 -0
- package/dist/modules/accessories/accessories.interfaces.js.map +1 -0
- package/dist/modules/accessories/accessories.module.js +2 -0
- package/dist/modules/accessories/accessories.module.js.map +1 -1
- package/dist/modules/accessories/accessories.service.d.ts +21 -3
- package/dist/modules/accessories/accessories.service.js +280 -17
- package/dist/modules/accessories/accessories.service.js.map +1 -1
- package/dist/modules/child-bridges/child-bridges.interfaces.d.ts +9 -0
- package/dist/modules/config-editor/config-editor.controller.d.ts +4 -0
- package/dist/modules/config-editor/config-editor.controller.js +64 -0
- package/dist/modules/config-editor/config-editor.controller.js.map +1 -1
- package/dist/modules/config-editor/config-editor.service.d.ts +6 -1
- package/dist/modules/config-editor/config-editor.service.js +45 -1
- 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 +15 -0
- package/dist/modules/plugins/plugins.service.js.map +1 -1
- package/dist/modules/server/server.controller.d.ts +50 -0
- package/dist/modules/server/server.controller.js +201 -2
- package/dist/modules/server/server.controller.js.map +1 -1
- package/dist/modules/server/server.service.d.ts +48 -0
- package/dist/modules/server/server.service.js +502 -14
- package/dist/modules/server/server.service.js.map +1 -1
- package/dist/modules/status/status.gateway.d.ts +2 -0
- package/dist/modules/status/status.interfaces.d.ts +11 -0
- package/dist/modules/status/status.service.d.ts +4 -1
- package/dist/modules/status/status.service.js +21 -2
- package/dist/modules/status/status.service.js.map +1 -1
- package/docs/matter-todo.md +15 -0
- package/docs/ssl-upload-pr.md +103 -0
- package/package.json +3 -1
- package/public/3rdpartylicenses.txt +595 -621
- package/public/assets/matter.svg +8 -0
- package/public/assets/plugin-ui-utils/ui.js +3 -0
- package/public/assets/plugin-ui-utils/ui.js.map +1 -1
- package/public/chunk-2TQEV57U.js +2 -0
- package/public/chunk-2Y6QBPFY.js +1 -0
- package/public/chunk-3LKYOCGJ.js +1 -0
- package/public/chunk-3YTNATAH.js +1 -0
- package/public/chunk-42Y35W3J.js +2 -0
- package/public/chunk-47QTMPRY.js +1 -0
- package/public/chunk-4KXPUEE3.js +4 -0
- package/public/chunk-4PQ5WRGK.js +1 -0
- package/public/chunk-4TAGCB7R.js +1 -0
- package/public/chunk-4VLAXCSY.js +1 -0
- package/public/chunk-5K3S6ZXB.js +1 -0
- package/public/chunk-6BRZAIW2.js +3 -0
- package/public/chunk-6QJUZNZL.js +1 -0
- package/public/chunk-6ZOSTYPR.js +1 -0
- package/public/{chunk-ZV26JTV7.js → chunk-7JNVXXNR.js} +1 -1
- package/public/chunk-7PPGGAHV.js +1 -0
- package/public/chunk-AM5CKSLZ.js +1 -0
- package/public/chunk-B4AJQJMI.js +1 -0
- package/public/chunk-BBRC6PRL.js +1 -0
- package/public/chunk-BGCYR25X.js +1 -0
- package/public/chunk-BHA7V2NQ.js +1 -0
- package/public/{chunk-KI6BE77G.js → chunk-BMOLDRJ3.js} +1 -1
- package/public/chunk-BVJS76CN.js +1 -0
- package/public/chunk-CNUIQJSO.js +1 -0
- package/public/chunk-CPECPTSN.js +1 -0
- package/public/{chunk-75KR2TK6.js → chunk-DBMKB5Z2.js} +1 -1
- package/public/chunk-DEM3FH7C.js +1 -0
- package/public/chunk-E35SHTFY.js +1 -0
- package/public/chunk-EAYA44IV.js +1 -0
- package/public/chunk-EBHP3YOF.js +1 -0
- package/public/chunk-EMF6ZINV.js +4 -0
- package/public/chunk-FJB6YCFU.js +1 -0
- package/public/chunk-FKJY3Z2V.js +1 -0
- package/public/chunk-FQDRGOO5.js +1 -0
- package/public/chunk-FRMRAPF2.js +1 -0
- package/public/chunk-FYHEIYSO.js +5 -0
- package/public/chunk-GEQRIXEF.js +1 -0
- package/public/chunk-GJ42U6LP.js +16 -0
- package/public/chunk-GT2YL2TI.js +1 -0
- package/public/chunk-GTIVJH6Y.js +1 -0
- package/public/chunk-GYMWB5SQ.js +1 -0
- package/public/chunk-H2D3SCVU.js +1 -0
- package/public/{chunk-OMFNURQZ.js → chunk-H7F7H5MW.js} +1 -1
- package/public/chunk-HKOUIAFO.js +1 -0
- package/public/chunk-I5V7VF5M.js +1 -0
- package/public/chunk-IBFLM7UM.js +1 -0
- package/public/chunk-IZHFI46L.js +2 -0
- package/public/chunk-JNSPIONO.js +1 -0
- package/public/chunk-JUCPYKUR.js +1 -0
- package/public/chunk-KJH2IPMR.js +1 -0
- package/public/chunk-KPSGNAPN.js +1 -0
- package/public/chunk-LH4WRTR2.js +1 -0
- package/public/chunk-LHXNE56J.js +1 -0
- package/public/chunk-LOEOVQRM.js +1 -0
- package/public/chunk-LRB7FQNQ.js +1 -0
- package/public/chunk-LTYAICHT.js +1 -0
- package/public/chunk-LVBVUIJY.js +12 -0
- package/public/chunk-MKV5RAJQ.js +4 -0
- package/public/chunk-MPQEE6FH.js +1 -0
- package/public/chunk-MRPQNEON.js +35 -0
- package/public/chunk-MS4K4KAK.js +5 -0
- package/public/chunk-N6AN65NK.js +3 -0
- package/public/chunk-NCLG2ZY5.js +1 -0
- package/public/chunk-OHJQJ73S.js +1 -0
- package/public/chunk-P3DOEH3R.js +1 -0
- package/public/chunk-PEOTW7KR.js +1 -0
- package/public/chunk-PQM33D72.js +1 -0
- package/public/chunk-Q4PUZM2R.js +1 -0
- package/public/chunk-QBG7SKRK.js +68 -0
- package/public/chunk-QGLAR7UC.js +1 -0
- package/public/chunk-QK4CWVVD.js +1 -0
- package/public/chunk-QPGHC7OK.js +1 -0
- package/public/chunk-RAG53DHZ.js +1 -0
- package/public/chunk-RHJRKBK2.js +1 -0
- package/public/chunk-RQ42YKAP.js +1 -0
- package/public/chunk-S4BMZ4C4.js +1 -0
- package/public/chunk-S4O5HRCM.js +1 -0
- package/public/chunk-SE6AXFTZ.js +1 -0
- package/public/chunk-SIODBMHU.js +1 -0
- package/public/chunk-SS725Q7L.js +1 -0
- package/public/chunk-STXA2UWR.js +1 -0
- package/public/chunk-SVEGWVQJ.js +1 -0
- package/public/chunk-T472BWYK.js +1 -0
- package/public/chunk-TPGJVI7J.js +1 -0
- package/public/chunk-TRDYZJYI.js +1 -0
- package/public/chunk-TTX3XSDC.js +1 -0
- package/public/chunk-TVEZZ2CK.js +1 -0
- package/public/chunk-UDXPJS32.js +1 -0
- package/public/chunk-UO7KCTHV.js +1 -0
- package/public/chunk-UOOJPKZJ.js +1 -0
- package/public/chunk-VAD47NOZ.js +1 -0
- package/public/chunk-VBQ2CSUE.js +1 -0
- package/public/chunk-VWBS6KRT.js +1 -0
- package/public/chunk-VYAAI7PY.js +1 -0
- package/public/chunk-WBTFILXV.js +19 -0
- package/public/chunk-WO6QHRQI.js +1 -0
- package/public/chunk-WOMMYJV2.js +1 -0
- package/public/chunk-WOXYSKNU.js +1 -0
- package/public/{chunk-BKCIVF4W.js → chunk-WX345PMX.js} +52 -2
- package/public/chunk-XGK5YFH6.js +19 -0
- package/public/chunk-XLJ6VVK3.js +8 -0
- package/public/chunk-XPSIQPO4.js +1 -0
- package/public/chunk-XQXAVYM6.js +1 -0
- package/public/chunk-YBGB3IOQ.js +1 -0
- package/public/chunk-YHH6UACV.js +1 -0
- package/public/chunk-YLRX4V4V.js +1 -0
- package/public/chunk-YM6RL7NW.js +1 -0
- package/public/chunk-YMEXNW5V.js +1 -0
- package/public/chunk-YSJHLHJ6.js +1 -0
- package/public/chunk-ZCGZM7LU.js +1 -0
- package/public/chunk-ZDUAXPNP.js +1 -0
- package/public/index.html +2 -2
- package/public/main-SPPQL5YI.js +1 -0
- package/public/media/matter-P563JGDL.svg +8 -0
- package/public/polyfills-34U4WL3Z.js +1 -0
- package/public/styles-CT2LPGES.css +1 -0
- package/scripts/extract-plugin-alias.js +53 -2
- package/public/chunk-2VYCMFLK.js +0 -1
- package/public/chunk-337WAYBF.js +0 -1
- package/public/chunk-3F6KNL45.js +0 -5
- package/public/chunk-3GUIMBZA.js +0 -50
- package/public/chunk-4BH7J5ZU.js +0 -1
- package/public/chunk-4MSKGZXZ.js +0 -1
- package/public/chunk-4STYOKXR.js +0 -1
- package/public/chunk-5GRM2PNI.js +0 -8
- package/public/chunk-6C5CYDDU.js +0 -1
- package/public/chunk-6T52JN5R.js +0 -1
- package/public/chunk-7EKDGIG7.js +0 -1
- package/public/chunk-7O3SPIWC.js +0 -1
- package/public/chunk-ACK5QKZR.js +0 -1
- package/public/chunk-ADJ6TEYQ.js +0 -5
- package/public/chunk-ADWZU2CD.js +0 -1
- package/public/chunk-AGDDSLXN.js +0 -1
- package/public/chunk-ASZKPQUN.js +0 -1
- package/public/chunk-AZY2DNUN.js +0 -1
- package/public/chunk-B6MBMYJR.js +0 -1
- package/public/chunk-BBLJIMXX.js +0 -1
- package/public/chunk-BON2K2BD.js +0 -2
- package/public/chunk-BRP3EHP7.js +0 -1
- package/public/chunk-C5VP7CRC.js +0 -1
- package/public/chunk-C6X7E5CS.js +0 -1
- package/public/chunk-CM3N3C3W.js +0 -1
- package/public/chunk-CV2KW5FI.js +0 -1
- package/public/chunk-EDQF53QR.js +0 -1
- package/public/chunk-EZJQ5APU.js +0 -1
- package/public/chunk-FRNPHIV3.js +0 -1
- package/public/chunk-GBTKBQ2X.js +0 -16
- package/public/chunk-HDF4JHFI.js +0 -4
- package/public/chunk-JEUVQW5P.js +0 -1
- package/public/chunk-KWAS7MXI.js +0 -1
- package/public/chunk-KWC5QURK.js +0 -8
- package/public/chunk-KXNC6WH6.js +0 -1
- package/public/chunk-MMBLECEN.js +0 -1
- package/public/chunk-NQB7BEZZ.js +0 -1
- package/public/chunk-OKAPP6YO.js +0 -1
- package/public/chunk-OM7GHRRK.js +0 -1
- package/public/chunk-OOM2PIRM.js +0 -5
- package/public/chunk-OZKGVJ4N.js +0 -1
- package/public/chunk-PT24GQ5K.js +0 -1
- package/public/chunk-QPI2YWGC.js +0 -1
- package/public/chunk-QQRM2O4S.js +0 -3
- package/public/chunk-QXD4RXA4.js +0 -1
- package/public/chunk-QZU43P2A.js +0 -1
- package/public/chunk-R3Y3VSF7.js +0 -4
- package/public/chunk-R7Q4CXAE.js +0 -1
- package/public/chunk-RAG7VYNH.js +0 -40
- package/public/chunk-RY3E4AUI.js +0 -1
- package/public/chunk-SCWBTFUY.js +0 -1
- package/public/chunk-SRFINKMY.js +0 -1
- package/public/chunk-TRDROX2J.js +0 -1
- package/public/chunk-UH7ZNLL5.js +0 -19
- package/public/chunk-V2WJ2SKN.js +0 -1
- package/public/chunk-VZ3XY34I.js +0 -2
- package/public/chunk-W663VLRG.js +0 -1
- package/public/chunk-WDXU4PPN.js +0 -1
- package/public/chunk-WEXOQCVG.js +0 -1
- package/public/chunk-XDFBUXFD.js +0 -1
- package/public/chunk-XPGJPK66.js +0 -4
- package/public/chunk-YXLLPJEL.js +0 -1
- package/public/chunk-ZXUIFQS4.js +0 -51
- package/public/main-YD5INHXP.js +0 -1
- package/public/polyfills-5KWHJ7II.js +0 -2
- package/public/styles-7EFV5QBG.css +0 -1
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
<svg height="512px" width="512px" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<g transform="translate(256, 280) scale(1.37) translate(-256, -256)">
|
|
3
|
+
<path
|
|
4
|
+
fill="currentColor"
|
|
5
|
+
d="M256 212.26666666666665c-21.333333333333332 0 -41.421866666666666 -3.8218666666666667 -60.266666666666666 -11.466666666666665 -18.8448 -7.6448 -35.733333333333334 -18.0448 -50.666666666666664 -31.199999999999996l29.333333333333332 -17.599999999999998c8.533333333333333 6.3999999999999995 18.311466666666664 12 29.333333333333332 16.799999999999997 11.021866666666668 4.8 23.111466666666665 8.266666666666666 36.266666666666666 10.399999999999999V62.93333333333334L256 53.33333333333333l16 9.6v116.26666666666667c12.799999999999999 -2.1333333333333333 24.8 -5.6 36 -10.399999999999999 11.2 -4.8 21.066666666666666 -10.399999999999999 29.599999999999998 -16.799999999999997l29.333333333333332 17.599999999999998c-14.933333333333332 13.1552 -31.821866666666665 23.5552 -50.666666666666664 31.199999999999996C297.42186666666663 208.4448 277.3333333333333 212.26666666666665 256 212.26666666666665Zm-35.199999999999996 211.73333333333335 -29.866666666666664 -16c0.3552 -2.8447999999999998 0.6218666666666666 -5.511466666666667 0.7999999999999999 -8 0.1781333333333333 -2.4885333333333333 0.26666666666666666 -5.1552 0.26666666666666666 -8 0 -8.533333333333333 -0.9781333333333333 -17.511466666666664 -2.9333333333333336 -26.93333333333333 -1.9551999999999998 -9.421866666666666 -4.7114666666666665 -18.7552 -8.266666666666666 -28l-100.26666666666667 60.8L64 388.8V370.1333333333333l99.73333333333332 -60.266666666666666c-8.178133333333333 -9.6 -17.1552 -18.0448 -26.93333333333333 -25.333333333333332 -9.778133333333333 -7.2885333333333335 -19.821866666666665 -12.888533333333331 -30.133333333333333 -16.799999999999997v-34.13333333333333c34.13333333333333 10.311466666666666 62.22186666666667 29.955199999999998 84.26666666666667 58.93333333333334 22.0448 28.978133333333332 33.06666666666666 62.13333333333333 33.06666666666666 99.46666666666665 0 5.688533333333333 -0.26666666666666666 11.2 -0.7999999999999999 16.53333333333333 -0.5333333333333333 5.333333333333333 -1.3333333333333333 10.488533333333333 -2.4 15.466666666666665Zm70.39999999999999 0c-1.0666666666666667 -4.978133333333333 -1.8666666666666665 -10.133333333333333 -2.4 -15.466666666666665 -0.5333333333333333 -5.333333333333333 -0.7999999999999999 -10.8448 -0.7999999999999999 -16.53333333333333 0 -37.33333333333333 11.021866666666668 -70.48853333333332 33.06666666666666 -99.46666666666665 22.0448 -28.978133333333332 50.13333333333333 -48.62186666666666 84.26666666666667 -58.93333333333334v34.13333333333333c-10.311466666666666 3.9114666666666666 -20.3552 9.511466666666667 -30.133333333333333 16.799999999999997 -9.778133333333333 7.2885333333333335 -18.7552 15.733333333333334 -26.93333333333333 25.333333333333332L448 370.1333333333333v18.666666666666664l-16.53333333333333 9.066666666666666 -100.26666666666667 -60.8c-3.5551999999999997 9.2448 -6.311466666666666 18.578133333333334 -8.266666666666666 28 -1.9551999999999998 9.421866666666666 -2.9333333333333336 18.4 -2.9333333333333336 26.93333333333333 0 2.8447999999999998 0.08853333333333332 5.511466666666667 0.26666666666666666 8 0.1781333333333333 2.4885333333333333 0.4448 5.1552 0.7999999999999999 8l-29.866666666666664 16Z"
|
|
6
|
+
/>
|
|
7
|
+
</g>
|
|
8
|
+
</svg>
|
|
@@ -210,6 +210,9 @@ class HomebridgePluginUi extends EventTargetConstructor {
|
|
|
210
210
|
async getCachedAccessories() {
|
|
211
211
|
return await this._requestResponse({ action: 'cachedAccessories.get' });
|
|
212
212
|
}
|
|
213
|
+
async getCachedMatterAccessories() {
|
|
214
|
+
return await this._requestResponse({ action: 'cachedMatterAccessories.get' });
|
|
215
|
+
}
|
|
213
216
|
async request(path, body) {
|
|
214
217
|
return await this._requestResponse({ action: 'request', path, body });
|
|
215
218
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui.js","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ui.js","sourceRoot":"","sources":["../src/ui.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{$ as p,$a as yi,$c as Cn,Aa as _e,Ba as ui,Ca as ln,Da as ci,E as ht,Ea as mt,Fb as P,G as xe,Ga as dn,Gb as H,Ha as li,Hb as q,Ia as hn,Ib as ze,Ja as Dt,K as nn,Ka as he,Kc as vn,La as Ae,Ma as di,Mb as mn,N as rn,Na as hi,Nb as Dn,Oa as fi,Pa as pi,Q as ke,Qa as gi,Ra as mi,Rb as yn,Sa as Di,Sc as Ze,Ta as X,Tb as Ci,Tc as Ti,U as v,Ua as fn,Ub as Ei,Uc as wn,V as Be,Vb as B,Vc as _i,Wb as M,Wc as Ye,X as f,Xb as Ge,Xc as bn,Y as De,Za as O,Zb as j,_ as C,_a as ye,aa as h,ab as yt,ad as bt,ba as je,bb as vi,c as Qt,cd as Ke,d as N,da as oi,dd as We,ea as sn,eb as pn,ed as Ct,fa as ai,fb as wi,ga as on,gb as bi,ha as an,hb as vt,hc as we,i as ue,ib as S,jc as Q,k as me,ka as le,kb as wt,kc as ee,la as I,ma as ft,mc as be,n as Te,nb as gn,o as ce,ob as ve,pa as de,pb as J,qa as un,qb as fe,s as en,sa as Ue,t as tn,tb as $e,u as ri,ua as cn,xa as pt,xb as Ve,ya as gt,yb as He,z as si}from"./chunk-MKV5RAJQ.js";import{a as _,b as G,h as dt}from"./chunk-B4AJQJMI.js";var Fi=null;function te(){return Fi}function En(t){Fi??=t}var Xe=class{},Tn=(()=>{class t{historyGo(e){throw new Error("")}static \u0275fac=function(n){return new(n||t)};static \u0275prov=f({token:t,factory:()=>h(Ii),providedIn:"platform"})}return t})();var Ii=(()=>{class t extends Tn{_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 Mi(t,i){return t?i?t.endsWith("/")?i.startsWith("/")?t+i.slice(1):t+i:i.startsWith("/")?t+i:`${t}/${i}`:t:i}function Ai(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 Et=(()=>{class t{historyGo(e){throw new Error("")}static \u0275fac=function(n){return new(n||t)};static \u0275prov=f({token:t,factory:()=>h(Oi),providedIn:"root"})}return t})(),Ri=new C(""),Oi=(()=>{class t extends Et{_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 Mi(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(Tn),p(Ri,8))};static \u0275prov=f({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Li=(()=>{class t{_subject=new N;_basePath;_locationStrategy;_urlChangeListeners=[];_urlChangeSubscription=null;constructor(e){this._locationStrategy=e;let n=this._locationStrategy.getBaseHref();this._basePath=Nr(Ai(Si(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(Pr(this._basePath,Si(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=Mi;static stripTrailingSlash=Ai;static \u0275fac=function(n){return new(n||t)(p(Et))};static \u0275prov=f({token:t,factory:()=>Lr(),providedIn:"root"})}return t})();function Lr(){return new Li(p(Et))}function Pr(t,i){if(!t||!i.startsWith(t))return i;let e=i.substring(t.length);return e===""||["/",";","?","#"].includes(e[0])?e:i}function Si(t){return t.replace(/\/index.html$/,"")}function Nr(t){if(new RegExp("^(https?:)?//").test(t)){let[,e]=t.split(/\/\/[^\/]+/);return e}return t}var Mn=(function(t){return t[t.Decimal=0]="Decimal",t[t.Percent=1]="Percent",t[t.Currency=2]="Currency",t[t.Scientific=3]="Scientific",t})(Mn||{});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 ji(t){return B(t)[M.LocaleId]}function Ui(t,i,e){let n=B(t),r=[n[M.DayPeriodsFormat],n[M.DayPeriodsStandalone]],s=U(r,i);return U(s,e)}function $i(t,i,e){let n=B(t),r=[n[M.DaysFormat],n[M.DaysStandalone]],s=U(r,i);return U(s,e)}function Vi(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 Je(t,i){let e=B(t);return U(e[M.DateFormat],i)}function qe(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 zi(t,i){return B(t)[M.NumberFormats][i]}function Gi(t){if(!t[M.ExtraData])throw new v(2303,!1)}function Zi(t){let i=B(t);return Gi(i),(i[M.ExtraData][2]||[]).map(n=>typeof n=="string"?_n(n):[_n(n[0]),_n(n[1])])}function Yi(t,i,e){let n=B(t);Gi(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 _n(t){let[i,e]=t.split(":");return{hours:+i,minutes:+e}}var xr=/^(\d{4,})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/,Tt={},kr=/((?:[^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 Ki(t,i,e,n){let r=Zr(t);i=ie(e,i)||i;let o=[],a;for(;i;)if(a=kr.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=Xi(n,u),r=Gr(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 It(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=ji(t);if(Tt[e]??={},Tt[e][i])return Tt[e][i];let n="";switch(i){case"shortDate":n=Je(t,x.Short);break;case"mediumDate":n=Je(t,x.Medium);break;case"longDate":n=Je(t,x.Long);break;case"fullDate":n=Je(t,x.Full);break;case"shortTime":n=qe(t,x.Short);break;case"mediumTime":n=qe(t,x.Medium);break;case"longTime":n=qe(t,x.Long);break;case"fullTime":n=qe(t,x.Full);break;case"short":let r=ie(t,"shortTime"),s=ie(t,"shortDate");n=_t(Qe(t,x.Short),[r,s]);break;case"medium":let o=ie(t,"mediumTime"),a=ie(t,"mediumDate");n=_t(Qe(t,x.Medium),[o,a]);break;case"long":let u=ie(t,"longTime"),l=ie(t,"longDate");n=_t(Qe(t,x.Long),[u,l]);break;case"full":let c=ie(t,"fullTime"),d=ie(t,"fullDate");n=_t(Qe(t,x.Full),[c,d]);break}return n&&(Tt[e][i]=n),n}function _t(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 Br(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=jr(t,s);if((e>0||a>-e)&&(a+=e),t===3)a===0&&e===-12&&(a=12);else if(t===6)return Br(a,i);let u=Z(o,k.MinusSign);return z(a,i,u,n,r)}}function jr(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 Ur(r,s,t,i,e,n)}}function Ur(t,i,e,n,r,s){switch(e){case 2:return Vi(i,r,n)[t.getMonth()];case 1:return $i(i,r,n)[t.getDay()];case 0:let o=t.getHours(),a=t.getMinutes();if(s){let l=Zi(i),c=Yi(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 Ui(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 At(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 $r=0,Ft=4;function Vr(t){let i=It(t,$r,1).getDay();return It(t,0,1+(i<=Ft?Ft:Ft+7)-i)}function Wi(t){let i=t.getDay(),e=i===0?-3:Ft-i;return It(t.getFullYear(),t.getMonth(),t.getDate()+e)}function An(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=Vr(s.getFullYear()),a=s.getTime()-o.getTime();r=1+Math.round(a/6048e5)}return z(r,t,Z(n,k.MinusSign))}}function St(t,i=!1){return function(e,n){let s=Wi(e).getFullYear();return z(s,t,Z(n,k.MinusSign),i)}}var Sn={};function Hr(t){if(Sn[t])return Sn[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=St(1);break;case"YY":i=St(2,!0);break;case"YYY":i=St(3);break;case"YYYY":i=St(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=An(1);break;case"ww":i=An(2);break;case"W":i=An(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=At(0);break;case"ZZZZZ":i=At(3);break;case"O":case"OO":case"OOO":case"z":case"zz":case"zzz":i=At(1);break;case"OOOO":case"ZZZZ":case"zzzz":i=At(2);break;default:return null}return Sn[t]=i,i}function Xi(t,i){t=t.replace(/:/g,"");let e=Date.parse("Jan 01, 1970 00:00:00 "+t)/6e4;return isNaN(e)?i:e}function zr(t,i){return t=new Date(t.getTime()),t.setMinutes(t.getMinutes()+i),t}function Gr(t,i,e){let r=t.getTimezoneOffset(),s=Xi(i,r);return zr(t,-1*(s-r))}function Zr(t){if(Pi(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 It(r,s-1,o)}let e=parseFloat(t);if(!isNaN(t-e))return new Date(e);let n;if(n=t.match(xr))return Yr(n)}let i=new Date(t);if(!Pi(i))throw new v(2311,!1);return i}function Yr(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 Pi(t){return t instanceof Date&&!isNaN(t.valueOf())}var Kr=/^(\d+)?\.((\d+)(-(\d+))?)?$/,Ni=22,Mt=".",et="0",Wr=";",Xr=",",Fn="#";function Jr(t,i,e,n,r,s,o=!1){let a="",u=!1;if(!isFinite(t))a=Z(e,k.Infinity);else{let l=es(t);o&&(l=Qr(l));let c=i.minInt,d=i.minFrac,D=i.maxFrac;if(s){let F=s.match(Kr);if(F===null)throw new v(2306,!1);let $=F[1],b=F[3],V=F[5];$!=null&&(c=In($)),b!=null&&(d=In(b)),V!=null?D=In(V):b!=null&&d>D&&(D=d)}ts(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 Ji(t,i,e){let n=zi(i,Mn.Decimal),r=qr(n,Z(i,k.MinusSign));return Jr(t,r,i,k.Group,k.Decimal,e)}function qr(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(Mt)!==-1?r.split(Mt):[r.substring(0,r.lastIndexOf(et)+1),r.substring(r.lastIndexOf(et)+1)],a=o[0],u=o[1]||"";e.posPre=a.substring(0,a.indexOf(Fn));for(let c=0;c<u.length;c++){let d=u.charAt(c);d===et?e.minFrac=e.maxFrac=c+1:d===Fn?e.maxFrac=c+1:e.posSuf+=d}let l=a.split(Xr);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(Fn);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 es(t){let i=Math.abs(t)+"",e=0,n,r,s,o,a;for((r=i.indexOf(Mt))>-1&&(i=i.replace(Mt,"")),(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)===et;s++);if(s===(a=i.length))n=[0],r=1;else{for(a--;i.charAt(a)===et;)a--;for(r-=s,n=[],o=0;s<=a;s++,o++)n[o]=Number(i.charAt(s))}return r>Ni&&(n=n.splice(0,Ni-1),e=r-1,r=1),{digits:n,exponent:e,integerLen:r}}function ts(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 In(t){let i=parseInt(t);if(isNaN(i))throw new v(2305,!1);return i}var Rt=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}},qi=(()=>{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 Rt(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),xi(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);xi(s,r)})}static ngTemplateContextGuard(e,n){return!0}static \u0275fac=function(n){return new(n||t)(S(wt),S(pn),S(Ti))};static \u0275dir=J({type:t,selectors:[["","ngFor","","ngForOf",""]],inputs:{ngForOf:"ngForOf",ngForTrackBy:"ngForTrackBy",ngForTemplate:"ngForTemplate"}})}return t})();function xi(t,i){t.context.$implicit=i.item}var Lt=(()=>{class t{_viewContainer;_context=new Ot;_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){ki(e,!1),this._thenTemplateRef=e,this._thenViewRef=null,this._updateView()}set ngIfElse(e){ki(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(wt),S(pn))};static \u0275dir=J({type:t,selectors:[["","ngIf",""]],inputs:{ngIf:"ngIf",ngIfThen:"ngIfThen",ngIfElse:"ngIfElse"}})}return t})(),Ot=class{$implicit=null;ngIf=null};function ki(t,i){if(t&&!t.createEmbeddedView)throw new v(2020,!1)}var ns=(()=>{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(_e),S(wn),S(vt))};static \u0275dir=J({type:t,selectors:[["","ngStyle",""]],inputs:{ngStyle:"ngStyle"}})}return t})(),is=(()=>{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(wt))};static \u0275dir=J({type:t,selectors:[["","ngTemplateOutlet",""]],inputs:{ngTemplateOutletContext:"ngTemplateOutletContext",ngTemplateOutlet:"ngTemplateOutlet",ngTemplateOutletInjector:"ngTemplateOutletInjector"},features:[pt]})}return t})();function Pt(t,i){return new v(2100,!1)}var rs=/(?:[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,ss=(()=>{class t{transform(e){if(e==null)return null;if(typeof e!="string")throw Pt(t,e);return e.replace(rs,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})(),os=(()=>{class t{transform(e){if(e==null)return null;if(typeof e!="string")throw Pt(t,e);return e.toUpperCase()}static \u0275fac=function(n){return new(n||t)};static \u0275pipe=fe({name:"uppercase",type:t,pure:!0})}return t})(),as="mediumDate",Qi=new C(""),er=new C(""),us=(()=>{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??as,a=r??this.defaultOptions?.timezone??this.defaultTimezone??void 0;return Ki(e,o,s||this.locale,a)}catch(o){throw Pt(t,o.message)}}static \u0275fac=function(n){return new(n||t)(S(vn,16),S(Qi,24),S(er,24))};static \u0275pipe=fe({name:"date",type:t,pure:!0})}return t})();function cs(t,i){return{key:t,value:i}}var ls=(()=>{class t{differs;constructor(e){this.differs=e}differ;keyValues=[];compareFn=Bi;transform(e,n=Bi){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(cs(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(wn,16))};static \u0275pipe=fe({name:"keyvalue",type:t,pure:!1})}return t})();function Bi(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 ds=(()=>{class t{_locale;constructor(e){this._locale=e}transform(e,n,r){if(!hs(e))return null;r||=this._locale;try{let s=fs(e);return Ji(s,r,n)}catch(s){throw Pt(t,s.message)}}static \u0275fac=function(n){return new(n||t)(S(vn,16))};static \u0275pipe=fe({name:"number",type:t,pure:!0})}return t})();function hs(t){return!(t==null||t===""||t!==t)}function fs(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 tr=(()=>{class t{static \u0275fac=function(n){return new(n||t)};static \u0275mod=ve({type:t});static \u0275inj=De({})}return t})();function tt(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 Ce=class{};function au(t,i,e){return Ei(t,i,e)}var On="browser";function uu(t){return t===On}var cu=(()=>{class t{static \u0275prov=f({token:t,providedIn:"root",factory:()=>new Rn(h(I),window)})}return t})(),Rn=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=gs(this.document,i);n&&(this.scrollToElement(n,e),n.focus())}setHistoryScrollRestoration(i){try{this.window.history.scrollRestoration=i}catch{console.warn(Be(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 gs(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 ir=t=>t.src,ms=new C("",{factory:()=>ir});var nr=/^((\s*\d+w\s*(,|$)){1,})$/;var Ds=[1,2],ys=640;var vs=1920,ws=1080;var lu=(()=>{class t{imageLoader=h(ms);config=bs(h(hn));renderer=h(vt);imgElement=h(_e).nativeElement;injector=h(le);destroyRef=h(ft);lcpObserver;_renderedSrc=null;ngSrc;ngSrcset;sizes;width;height;decoding;loading;priority=!1;loaderParams;disableOptimizedSrcset=!1;fill=!1;placeholder;placeholderConfig;src;srcset;constructor(){}ngOnInit(){vi("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&&nr.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=nr.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>=ys)),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 Ds.map(n=>`${this.callImageLoader({src:this.ngSrc,width:this.width*n})} ${n}x`).join(", ")}shouldGenerateAutomaticSrcset(){let e=!1;return this.sizes||(e=this.width>vs||this.height>ws),!this.disableOptimizedSrcset&&!this.srcset&&this.imageLoader!==ir&&!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(Ze);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",Es],ngSrcset:"ngSrcset",sizes:"sizes",width:[2,"width","width",bn],height:[2,"height","height",bn],decoding:"decoding",loading:"loading",priority:[2,"priority","priority",Ye],loaderParams:"loaderParams",disableOptimizedSrcset:[2,"disableOptimizedSrcset","disableOptimizedSrcset",Ye],fill:[2,"fill","fill",Ye],placeholder:[2,"placeholder","placeholder",Ts],placeholderConfig:"placeholderConfig",src:"src",srcset:"srcset"},features:[pt]})}return t})();function bs(t){let i={};return t.breakpoints&&(i.breakpoints=t.breakpoints.sort((e,n)=>e-n)),Object.assign({},li,t,i)}function Cs(t,i){t.complete&&t.naturalWidth&&i()}function Es(t){return typeof t=="string"?t:he(t)}function Ts(t){return typeof t=="string"&&t!=="true"&&t!=="false"&&t!==""?t:Ye(t)}var nt=class{_doc;constructor(i){this._doc=i}manager},Nt=(()=>{class t extends nt{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})(),Bt=new C(""),xn=(()=>{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 Nt));this._plugins=r.slice().reverse();let s=e.find(o=>o instanceof Nt);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(Bt),p(de))};static \u0275prov=f({token:t,factory:t.\u0275fac})}return t})(),Ln="ng-app-id";function rr(t){for(let i of t)i.remove()}function sr(t,i){let e=i.createElement("style");return e.textContent=t,e}function _s(t,i,e,n){let r=t.head?.querySelectorAll(`style[${Ln}="${i}"],link[${Ln}="${i}"]`);if(r)for(let s of r)s.removeAttribute(Ln),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 Nn(t,i){let e=i.createElement("link");return e.setAttribute("rel","stylesheet"),e.setAttribute("href",t),e}var kn=(()=>{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,_s(e,n,this.inline,this.external),this.hosts.add(e.head)}addStyles(e,n){for(let r of e)this.addUsage(r,this.inline,sr);n?.forEach(r=>this.addUsage(r,this.external,Nn))}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&&(rr(r.elements),n.delete(e)))}ngOnDestroy(){for(let[,{elements:e}]of[...this.inline,...this.external])rr(e);this.hosts.clear()}addHost(e){this.hosts.add(e);for(let[n,{elements:r}]of this.inline)r.push(this.addElement(e,sr(n,this.doc)));for(let[n,{elements:r}]of this.external)r.push(this.addElement(e,Nn(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(ln),p(dn,8),p(mt))};static \u0275prov=f({token:t,factory:t.\u0275fac})}return t})(),Pn={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"},Bn=/%COMP%/g;var ar="%COMP%",As=`_nghost-${ar}`,Ss=`_ngcontent-${ar}`,Fs=!0,Is=new C("",{factory:()=>Fs});function Ms(t){return Ss.replace(Bn,t)}function Rs(t){return As.replace(Bn,t)}function ur(t,i){return i.map(e=>e.replace(Bn,t))}var jn=(()=>{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 it(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 kt?r.applyToHost(e):r instanceof rt&&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 Dt.Emulated:s=new kt(u,l,n,this.appId,c,o,a,d,D);break;case Dt.ShadowDom:return new xt(u,e,n,o,a,this.nonce,d,D,l);case Dt.ExperimentalIsolatedShadowDom:return new xt(u,e,n,o,a,this.nonce,d,D);default:s=new rt(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(xn),p(kn),p(ln),p(Is),p(I),p(de),p(dn),p(yt,8))};static \u0275prov=f({token:t,factory:t.\u0275fac})}return t})(),it=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(Pn[e]||e,i):this.doc.createElement(i)}createComment(i){return this.doc.createComment(i)}createText(i){return this.doc.createTextNode(i)}appendChild(i,e){(or(i)?i.content:i).appendChild(e)}insertBefore(i,e,n){i&&(or(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=Pn[r];s?i.setAttributeNS(s,e,n):i.setAttribute(e,n)}else i.setAttribute(e,n)}removeAttribute(i,e,n){if(n){let r=Pn[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 or(t){return t.tagName==="TEMPLATE"&&t.content!==void 0}var xt=class extends it{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=ur(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=Nn(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)}},rt=class extends it{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?ur(l,c):c,this.styleUrls=n.getExternalStyles?.(l)}applyStyles(){this.sharedStylesHost.addStyles(this.styles,this.styleUrls)}destroy(){this.removeStylesOnCompDestroy&&yi.size===0&&this.sharedStylesHost.removeStyles(this.styles,this.styleUrls)}},kt=class extends rt{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=Ms(c),this.hostAttr=Rs(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 jt=class t extends Xe{supportsDOMEvents=!0;static makeCurrent(){En(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=Ls();return e==null?null:Ps(e)}resetBaseElement(){st=null}getUserAgent(){return window.navigator.userAgent}getCookie(i){return tt(document.cookie,i)}},st=null;function Ls(){return st=st||document.head.querySelector("base"),st?st.getAttribute("href"):null}function Ps(t){return new URL(t,document.baseURI).pathname}var Ns=(()=>{class t{build(){return new XMLHttpRequest}static \u0275fac=function(n){return new(n||t)};static \u0275prov=f({token:t,factory:t.\u0275fac})}return t})(),cr=["alt","control","meta","shift"],xs={"\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"},ks={alt:t=>t.altKey,control:t=>t.ctrlKey,meta:t=>t.metaKey,shift:t=>t.shiftKey},lr=(()=>{class t extends nt{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."),cr.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=xs[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"),cr.forEach(o=>{if(o!==r){let a=ks[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 Bs(t,i,e){let n=_({rootComponent:t,platformRef:e?.platformRef},js(i));return _i(n)}function js(t){return{appProviders:[...zs,...t?.providers??[]],platformProviders:Hs}}function Us(){jt.makeCurrent()}function $s(){return new un}function Vs(){return ui(document),document}var Hs=[{provide:mt,useValue:On},{provide:ci,useValue:Us,multi:!0},{provide:I,useFactory:Vs}];var zs=[{provide:oi,useValue:"root"},{provide:un,useFactory:$s},{provide:Bt,useClass:Nt,multi:!0},{provide:Bt,useClass:lr,multi:!0},jn,kn,xn,{provide:bi,useExisting:jn},{provide:Ce,useClass:Ns},[]];var K=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 Vt=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 dr(i)}encodeValue(i){return dr(i)}decodeKey(i){return decodeURIComponent(i)}decodeValue(i){return decodeURIComponent(i)}};function Gs(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 Zs=/%(\d[a-f0-9])/gi,Ys={40:"@","3A":":",24:"$","2C":",","3B":";","3D":"=","3F":"?","2F":"/"};function dr(t){return encodeURIComponent(t).replace(Zs,(i,e)=>Ys[e]??i)}function Ut(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=Gs(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(Ut):[Ut(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(Ut(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(Ut(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 Ks(t){switch(t){case"DELETE":case"GET":case"HEAD":case"OPTIONS":case"JSONP":return!1;default:return!0}}function hr(t){return typeof ArrayBuffer<"u"&&t instanceof ArrayBuffer}function fr(t){return typeof Blob<"u"&&t instanceof Blob}function pr(t){return typeof FormData<"u"&&t instanceof FormData}function Ws(t){return typeof URLSearchParams<"u"&&t instanceof URLSearchParams}var ot="Content-Type",zt="Accept",mr="text/plain",Dr="application/json",yr=`${Dr}, ${mr}, */*`,Se=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(Ks(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 K,this.context??=new Vt,!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"||hr(this.body)||fr(this.body)||pr(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||pr(this.body)?null:fr(this.body)?this.body.type||null:hr(this.body)?null:typeof this.body=="string"?mr:this.body instanceof re?"application/x-www-form-urlencoded;charset=UTF-8":typeof this.body=="object"||typeof this.body=="number"||typeof this.body=="boolean"?Dr: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,b=i.params||this.params,V=i.context??this.context;return i.setHeaders!==void 0&&($=Object.keys(i.setHeaders).reduce((ae,W)=>ae.set(W,i.setHeaders[W]),$)),i.setParams&&(b=Object.keys(i.setParams).reduce((ae,W)=>ae.set(W,i.setParams[W]),b)),new t(e,n,m,{params:b,headers:$,context:V,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||{}),Fe=class{headers;status;statusText;url;ok;type;redirected;responseType;constructor(i,e=200,n="OK"){this.headers=i.headers||new K,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}},at=class t extends Fe{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})}},Ie=class t extends Fe{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 Fe{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}},vr=200,Xs=204;var Js=/^\)\]\}',?\n/,wr=new C(""),$t=(()=>{class t{fetchImpl=h($n,{optional:!0})?.fetch??((...e)=>globalThis.fetch(...e));ngZone=h(de);destroyRef=h(ft);handle(e){return new Qt(n=>{let r=new AbortController;this.doRequest(e,r.signal,n).then(Vn,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 dt(this,null,function*(){let s=this.createRequestInit(e),o;try{let A=this.ngZone.runOutsideAngular(()=>this.fetchImpl(e.urlWithParams,_({signal:n},s)));qs(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 K(o.headers),u=o.statusText,l=o.url||e.urlWithParams,c=o.status,d=null;if(e.reportProgress&&r.next(new at({headers:a,status:c,statusText:u,url:l})),o.body){let A=o.headers.get("content-length"),m=[],y=o.body.getReader(),F=0,$,b,V=typeof Zone<"u"&&Zone.current,ae=!1;if(yield this.ngZone.runOutsideAngular(()=>dt(this,null,function*(){for(;;){if(this.destroyRef.destroyed){yield y.cancel(),ae=!0;break}let{done:Ne,value:qt}=yield y.read();if(Ne)break;if(m.push(qt),F+=qt.length,e.reportProgress){b=e.responseType==="text"?(b??"")+($??=new TextDecoder).decode(qt,{stream:!0}):void 0;let ii=()=>r.next({type:se.DownloadProgress,total:A?+A:void 0,loaded:F,partialText:b});V?V.run(ii):ii()}}})),ae){r.complete();return}let W=this.concatChunks(m,F);try{let Ne=o.headers.get(ot)??"";d=this.parseBody(e,W,Ne,c)}catch(Ne){r.error(new Y({error:Ne,headers:new K(o.headers),status:o.status,statusText:o.statusText,url:o.url||e.urlWithParams}));return}}c===0&&(c=d?vr:0);let D=c>=200&&c<300,g=o.redirected,T=o.type;D?(r.next(new Ie({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(Js,"");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(zt)||(n[zt]=yr),!e.headers.has(ot)){let s=e.detectContentTypeHeader();s!==null&&(n[ot]=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})(),$n=class{};function Vn(){}function qs(t){t.then(Vn,Vn)}var Qs=/^\)\]\}',?\n/;var Hn=(()=>{class t{xhrFactory;tracingService=h(yt,{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(ke(()=>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(zt)||o.setRequestHeader(zt,yr),!e.headers.has(ot)){let m=e.detectContentTypeHeader();m!==null&&o.setRequestHeader(ot,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 K(o.getAllResponseHeaders()),F=o.responseURL||e.url;return u=new at({headers:y,status:o.status,statusText:m,url:F}),u},c=this.maybePropagateTrace(()=>{let{headers:m,status:y,statusText:F,url:$}=l(),b=null;y!==Xs&&(b=typeof o.response>"u"?o.responseText:o.response),y===0&&(y=b?vr:0);let V=y>=200&&y<300;if(e.responseType==="json"&&typeof b=="string"){let ae=b;b=b.replace(Qs,"");try{b=b!==""?JSON.parse(b):null}catch(W){b=ae,V&&(V=!1,b={error:W,text:b})}}V?(s.next(new Ie({body:b,headers:m,status:y,statusText:F,url:$||void 0})),s.complete()):s.error(new Y({error:b,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(Ce))};static \u0275prov=f({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function br(t,i){return i(t)}function eo(t,i){return(e,n)=>i.intercept(e,{handle:r=>t(r,n)})}function to(t,i,e){return(n,r)=>ai(e,()=>i(n,s=>t(s,r)))}var Cr=new C(""),zn=new C("",{factory:()=>[]}),Er=new C(""),Gn=new C("",{providedIn:"root",factory:()=>!0});function no(){let t=null;return(i,e)=>{t===null&&(t=(h(Cr,{optional:!0})??[]).reduceRight(eo,br));let n=h(cn);if(h(Gn)){let s=n.add();return t(i,e).pipe(nn(s))}else return t(i,e)}}var Zt=(()=>{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 Gt=(()=>{class t{backend;injector;chain=null;pendingTasks=h(cn);contributeToStability=h(Gn);constructor(e,n){this.backend=e,this.injector=n}handle(e){if(this.chain===null){let n=Array.from(new Set([...this.injector.get(zn),...this.injector.get(Er,[])]));this.chain=n.reduceRight((r,s)=>to(r,s,this.injector),br)}if(this.contributeToStability){let n=this.pendingTasks.add();return this.chain(e,r=>this.backend.handle(r)).pipe(nn(n))}else return this.chain(e,n=>this.backend.handle(n))}static \u0275fac=function(n){return new(n||t)(p(Zt),p(sn))};static \u0275prov=f({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),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(Gt),r},providedIn:"root"})}return t})();function Un(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 Yt=(()=>{class t{handler;constructor(e){this.handler=e}request(e,n,r={}){let s;if(e instanceof Se)s=e;else{let u;r.headers instanceof K?u=r.headers:u=new K(r.headers);let l;r.params&&(r.params instanceof re?l=r.params:l=new re({fromObject:r.params})),s=new Se(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(ht(u=>this.handler.handle(u)));if(e instanceof Se||r.observe==="events")return o;let a=o.pipe(si(u=>u instanceof Ie));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,Un(r,n))}post(e,n,r={}){return this.request("POST",e,Un(r,n))}put(e,n,r={}){return this.request("PUT",e,Un(r,n))}static \u0275fac=function(n){return new(n||t)(p(Zn))};static \u0275prov=f({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var io=new C("",{factory:()=>!0}),ro="XSRF-TOKEN",so=new C("",{providedIn:"root",factory:()=>ro}),oo="X-XSRF-TOKEN",ao=new C("",{providedIn:"root",factory:()=>oo}),uo=(()=>{class t{cookieName=h(so);doc=h(I);lastCookieString="";lastToken=null;parseCount=0;getToken(){let e=this.doc.cookie||"";return e!==this.lastCookieString&&(this.parseCount++,this.lastToken=tt(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})(),Tr=(()=>{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(uo),r},providedIn:"root"})}return t})(),co=/^(?:https?:)?\/\//i;function lo(t,i){if(!h(io)||t.method==="GET"||t.method==="HEAD"||co.test(t.url))return i(t);let e=h(Tr).getToken(),n=h(ao);return e!=null&&!t.headers.has(n)&&(t=t.clone({headers:t.headers.set(n,e)})),i(t)}var Kt=(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})(Kt||{});function _r(t,i){return{\u0275kind:t,\u0275providers:i}}function ho(...t){let i=[Yt,Gt,{provide:Zn,useExisting:Gt},{provide:Zt,useFactory:()=>h(wr,{optional:!0})??h(Hn)},{provide:zn,useValue:lo,multi:!0}];for(let e of t)i.push(...e.\u0275providers);return je(i)}var gr=new C("");function fo(){return _r(Kt.LegacyInterceptors,[{provide:gr,useFactory:no},{provide:zn,useExisting:gr,multi:!0}])}function po(){return _r(Kt.Fetch,[$t,{provide:wr,useExisting:$t},{provide:Zt,useExisting:$t}])}var Pc=(()=>{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 Yn=(()=>{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(go),r},providedIn:"root"})}return t})(),go=(()=>{class t extends Yn{_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 Ae(n,"HTML")?he(n):Di(this._doc,String(n)).toString();case X.STYLE:return Ae(n,"Style")?he(n):n;case X.SCRIPT:if(Ae(n,"Script"))return he(n);throw new v(5200,!1);case X.URL:return Ae(n,"URL")?he(n):mi(String(n));case X.RESOURCE_URL:if(Ae(n,"ResourceURL"))return he(n);throw new v(5201,!1);default:throw new v(5202,!1)}}bypassSecurityTrustHtml(e){return di(e)}bypassSecurityTrustStyle(e){return hi(e)}bypassSecurityTrustScript(e){return fi(e)}bypassSecurityTrustUrl(e){return pi(e)}bypassSecurityTrustResourceUrl(e){return gi(e)}static \u0275fac=function(n){return new(n||t)(p(I))};static \u0275prov=f({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();var lt=class{},Do=(()=>{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})(),Me=class{},yo=(()=>{class t extends Me{compile(e,n){return e}compileTranslations(e,n){return e}static \u0275fac=(()=>{let e;return function(r){return(e||(e=gt(t)))(r||t)}})();static \u0275prov=f({token:t,factory:t.\u0275fac})}return t})(),Re=class{},vo=(()=>{class t extends Re{getTranslation(e){return ue({})}static \u0275fac=(()=>{let e;return function(r){return(e||(e=gt(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 Ar(t){return t!==void 0}function oe(t){return ct(t)&&!Ee(t)&&t!==null}function ct(t){return typeof t=="object"&&t!==null}function Ee(t){return Array.isArray(t)}function Xt(t){return typeof t=="string"}function wo(t){return typeof t=="function"}function Jt(t){if(Ee(t))return t.map(i=>Jt(i));if(oe(t)){let i={};return Object.keys(t).forEach(e=>{i[e]=Jt(t[e])}),i}else return t}function Jn(t,i){if(!ct(t))return Jt(i);let e=Jt(t);return ct(e)&&ct(i)&&Object.keys(i).forEach(n=>{oe(i[n])?n in t?e[n]=Jn(t[n],i[n]):Object.assign(e,{[n]:i[n]}):Object.assign(e,{[n]:i[n]})}),e}function Sr(t,i){let e=i.split(".");i="";do{i+=e.shift();let n=!e.length;if(ge(t)){if(oe(t)&&Ar(t[i])&&(oe(t[i])||Ee(t[i])||n)){t=t[i],i="";continue}if(Ee(t)){let r=parseInt(i,10);if(Ar(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 bo(t,i,e){return Jn(t,Co(i,e))}function Co(t,i){return t.split(".").reduceRight((e,n)=>({[n]:e}),i)}var Oe=class{},Eo=(()=>{class t extends Oe{templateMatcher=/{{\s?([^{}\s]*)\s?}}/g;interpolate(e,n){if(Xt(e))return this.interpolateString(e,n);if(wo(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(Sr(e,n))}formatValue(e){if(Xt(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(ct(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=gt(t)))(r||t)}})();static \u0275prov=f({token:t,factory:t.\u0275fac})}return t})(),Kn=(()=>{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)?Jn(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 Sr(this.getTranslations(e),n)}static \u0275fac=function(n){return new(n||t)};static \u0275prov=f({token:t,factory:t.\u0275fac})}return t})(),Wn=new C("TRANSLATE_CONFIG"),ut=t=>me(t)?t:ue(t);var Xn=(()=>{class t{loadingTranslations;pending=!1;_translationRequests={};lastUseLanguage=null;currentLoader=h(Re);compiler=h(Me);parser=h(Oe);missingTranslationHandler=h(lt);store=h(Kn);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(xe(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(xe(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(rn(1),xe(1));return this.loadingTranslations=n.pipe(ce(r=>this.compiler.compileTranslations(r,e)),rn(1),xe(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=>ut(r[a]));return ri(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(ht(()=>ut(this.getParsedResult(e,n)))):ut(this.getParsedResult(e,n))}getStreamOnTranslationChange(e,n){if(!ge(e)||!e.length)throw new Error('Parameter "key" is required and cannot be empty');return en(tn(()=>this.get(e,n)),this.onTranslationChange.pipe(ke(()=>{let r=this.getParsedResult(e,n);return ut(r)})))}stream(e,n){if(!ge(e)||!e.length)throw new Error('Parameter "key" required');return en(tn(()=>this.get(e,n)),this.onLangChange.pipe(ke(()=>{let r=this.getParsedResult(e,n);return ut(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,bo(this.store.getTranslations(r),e,Xt(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 zc=(()=>{class t{translate=h(Xn);_ref=h(Ze);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(Xt(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 To(t){return{provide:Re,useClass:t}}function _o(t){return{provide:Me,useClass:t}}function Ao(t){return{provide:Oe,useClass:t}}function So(t){return{provide:lt,useClass:t}}function Gc(t={}){return Fo(_({compiler:_o(yo),parser:Ao(Eo),loader:To(vo),missingTranslationHandler:So(Do)},t),!0)}function Fo(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(Kn),(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:Xn,useClass:Xn,deps:[Kn,Re,Me,Oe,lt,Wn]}),e}var Fr=["toast-component",""];function Io(t,i){if(t&1){let e=yn();H(0,"button",5),Ge("click",function(){on(e);let r=j();return an(r.remove())}),H(1,"span",6),ee(2,"\xD7"),q()()}}function Mo(t,i){if(t&1&&(mn(0),ee(1),Dn()),t&2){let e=j(2);O(),be("[",e.duplicatesCount+1,"]")}}function Ro(t,i){if(t&1&&(H(0,"div"),ee(1),$e(2,Mo,2,1,"ng-container",4),q()),t&2){let e=j();Q(e.options.titleClass),He("aria-label",e.title),O(),be(" ",e.title," "),O(),P("ngIf",e.duplicatesCount)}}function Oo(t,i){if(t&1&&ze(0,"div",7),t&2){let e=j();Q(e.options.messageClass),P("innerHTML",e.message,fn)}}function Lo(t,i){if(t&1&&(H(0,"div",8),ee(1),q()),t&2){let e=j();Q(e.options.messageClass),He("aria-label",e.message),O(),be(" ",e.message," ")}}function Po(t,i){if(t&1&&(H(0,"div"),ze(1,"div",9),q()),t&2){let e=j();O(),we("width",e.width()+"%")}}function No(t,i){if(t&1){let e=yn();H(0,"button",5),Ge("click",function(){on(e);let r=j();return an(r.remove())}),H(1,"span",6),ee(2,"\xD7"),q()()}}function xo(t,i){if(t&1&&(mn(0),ee(1),Dn()),t&2){let e=j(2);O(),be("[",e.duplicatesCount+1,"]")}}function ko(t,i){if(t&1&&(H(0,"div"),ee(1),$e(2,xo,2,1,"ng-container",4),q()),t&2){let e=j();Q(e.options.titleClass),He("aria-label",e.title),O(),be(" ",e.title," "),O(),P("ngIf",e.duplicatesCount)}}function Bo(t,i){if(t&1&&ze(0,"div",7),t&2){let e=j();Q(e.options.messageClass),P("innerHTML",e.message,fn)}}function jo(t,i){if(t&1&&(H(0,"div",8),ee(1),q()),t&2){let e=j();Q(e.options.messageClass),He("aria-label",e.message),O(),be(" ",e.message," ")}}function Uo(t,i){if(t&1&&(H(0,"div"),ze(1,"div",9),q()),t&2){let e=j();O(),we("width",e.width()+"%")}}var qn=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}},ei=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)}},Le=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()}},Ir={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"},Mr=new C("ToastConfig"),ti=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]}},$o=(()=>{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})(),ni=class{_portalHost;constructor(i){this._portalHost=i}attach(i,e=!0){return this._portalHost.attach(i,e)}detach(){return this._portalHost.detach()}},Vo=(()=>{class t{_overlayContainer=h($o);_componentFactoryResolver=h(wi);_appRef=h(Ve);_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 ti(e,this._componentFactoryResolver,this._appRef)}_createOverlayRef(e){return new ni(this._createPortalHost(e))}static \u0275fac=function(n){return new(n||t)};static \u0275prov=f({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Rr=(()=>{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 ei(u),d=new Le(this.index,s,l,r,e,c),D=[{provide:Le,useValue:d}],g=le.create({providers:D,parent:this._injector}),T=new qn(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(Mr),p(Vo),p(le),p(Yn),p(de))};static \u0275prov=f({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})(),Ho=(()=>{class t{toastrService;toastPackage;ngZone;message;title;options;duplicatesCount;originalTimeout;width=Ue(-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=Ue({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(Rr),S(Le),S(de))};static \u0275cmp=gn({type:t,selectors:[["","toast-component",""]],hostVars:5,hostBindings:function(n,r){n&1&&Ge("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:Fr,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&&$e(0,Io,3,0,"button",0)(1,Ro,3,5,"div",1)(2,Oo,1,3,"div",2)(3,Lo,2,4,"div",3)(4,Po,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:[Lt],encapsulation:2,data:{animation:[Cn("flyInOut",[We("inactive",Ke({opacity:0})),We("active",Ke({opacity:1})),We("removed",Ke({opacity:0})),Ct("inactive => active",bt("{{ easeTime }}ms {{ easing }}")),Ct("active => removed",bt("{{ easeTime }}ms {{ easing }}"))])]},changeDetection:0})}return t})(),zo=G(_({},Ir),{toastComponent:Ho}),wl=(t={})=>je([{provide:Mr,useValue:{default:zo,config:t}}]);var Go=(()=>{class t{toastrService;toastPackage;appRef;message;title;options;duplicatesCount;originalTimeout;width=Ue(-1);toastClasses="";get displayStyle(){return this.state()==="inactive"?"none":null}state=Ue("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(Rr),S(Le),S(Ve))};static \u0275cmp=gn({type:t,selectors:[["","toast-component",""]],hostVars:4,hostBindings:function(n,r){n&1&&Ge("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:Fr,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&&$e(0,No,3,0,"button",0)(1,ko,3,5,"div",1)(2,Bo,1,3,"div",2)(3,jo,2,4,"div",3)(4,Uo,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:[Lt],encapsulation:2,changeDetection:0})}return t})(),bl=G(_({},Ir),{toastComponent:Go});var Or={name:"homebridge-config-ui-x",displayName:"Homebridge UI",type:"module",version:"5.11.2-beta.4",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.3",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.2","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.14",concurrently:"^9.2.1","eslint-plugin-format":"^1.0.2","form-data":"^4.0.5",nodemon:"^3.1.11",rimraf:"^6.1.2",tsx:"^4.20.6",typescript:"^5.9.3","unplugin-swc":"^1.5.9",vitest:"^4.0.14"},overrides:{"@homebridge/hap-client":{axios:"1.13.2"}},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 Pe={serverTarget:Or.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 Ol=(()=>{class t{$http=h(Yt);get(e,n){return Te(this.$http.get(`${Pe.api.base}${e}`,n))}post(e,n,r){return Te(this.$http.post(`${Pe.api.base}${e}`,n,r))}put(e,n,r){return Te(this.$http.put(`${Pe.api.base}${e}`,n,r))}patch(e,n,r){return Te(this.$http.patch(`${Pe.api.base}${e}`,n,r))}delete(e,n){return Te(this.$http.delete(`${Pe.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,Et as b,Li as c,qi as d,Lt as e,ns as f,is as g,ss as h,os as i,us as j,ls as k,ds as l,tr as m,au as n,uu as o,cu as p,lu as q,jn as r,Bs as s,re as t,se as u,Ie as v,Y as w,Cr as x,Yt as y,ho as z,fo as A,po as B,Pc as C,Yn as D,Xn as E,zc as F,Gc as G,Rr as H,wl as I,Pe as J,Ol as K};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{e}from"./chunk-B4AJQJMI.js";var t=e((i,s)=>{s.exports={"accessories.accessory_info":"Accessory Information","accessories.bridge_ip":"Bridge IP","accessories.bridge_port":"Bridge Port","accessories.button_add_room":"\u65B0\u589E\u623F\u9593","accessories.button_hidden_hide":"\u96B1\u85CF\u96B1\u85CF\u9805\u76EE","accessories.button_hidden_show":"\u986F\u793A\u96B1\u85CF\u9805\u76EE","accessories.button_remove":"Remove From Cache","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":"\u81EA\u52D5","accessories.control.away":"\u96E2\u958B","accessories.control.battery_charged":"Charged","accessories.control.battery_charging":"\u5145\u96FB\u4E2D","accessories.control.battery_low":"Battery Low","accessories.control.battery_notchargeable":"\u4E0D\u53EF\u5145\u96FB","accessories.control.battery_notcharging":"\u672A\u5145\u96FB","accessories.control.brightness":"\u4EAE\u5EA6","accessories.control.cleaning":"Cleaning","accessories.control.closed":"\u95DC\u9589","accessories.control.closing":"\u95DC\u9589\u4E2D","accessories.control.color_temperature":"Color Temperature","accessories.control.cool":"\u51B7\u6C23","accessories.control.current":"Current","accessories.control.default_room":"\u9810\u8A2D\u623F\u9593","accessories.control.dehumidify":"Dehumidify","accessories.control.detected":"Detected","accessories.control.direction_control":"Direction Control","accessories.control.drag_here":"\u62D6\u5230\u9019","accessories.control.filter_level":"Filter Life","accessories.control.heat":"\u6696\u6C23","accessories.control.home":"\u56DE\u5145","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":"\u5361\u4F4F","accessories.control.lock_auto":"Auto Lock Timer","accessories.control.locked":"\u5DF2\u4E0A\u9396","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":"\u975C\u97F3","accessories.control.mute_control":"Mute Control","accessories.control.night":"\u591C\u665A","accessories.control.no_data":"No Data","accessories.control.not_detected":"Not Detected","accessories.control.not_mute":"\u95DC\u9589\u975C\u97F3","accessories.control.obstructed":"Obstructed","accessories.control.off":"\u95DC\u9589","accessories.control.on":"\u958B\u555F","accessories.control.open":"\u958B\u555F","accessories.control.opening":"\u958B\u555F\u4E2D","accessories.control.pause":"Pause","accessories.control.paused":"Paused","accessories.control.play":"Play","accessories.control.replace":"Replace","accessories.control.rotation_c_clockwise":"Counter Clockwise","accessories.control.rotation_clockwise":"Clockwise","accessories.control.rotation_direction":"Rotation Direction","accessories.control.rotation_speed":"\u8F49\u901F","accessories.control.running":"\u57F7\u884C\u4E2D","accessories.control.saturation":"Saturation","accessories.control.set_duration":"Set Duration","accessories.control.speaker":"Speaker","accessories.control.speaker_volume":"\u97F3\u91CF","accessories.control.state_control":"State Control","accessories.control.stateless":"Stateless","accessories.control.stop":"Stop","accessories.control.stopped":"\u5DF2\u505C\u6B62","accessories.control.target":"\u76EE\u6A19","accessories.control.target_auto":"Auto Target","accessories.control.threshold_auto":"Auto Threshold","accessories.control.triggered":"\u5DF2\u89F8\u767C","accessories.control.unknown":"\u672A\u77E5","accessories.control.unlocked":"\u5DF2\u89E3\u9396","accessories.control_disabled":"Homebridge \u914D\u4EF6\u63A7\u5236\u5DF2\u95DC\u9589","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":"Custom Name","accessories.custom_type":"Custom Type","accessories.hide_this_accessory":"\u8A2D\u70BA\u96B1\u85CF","accessories.message_must_use_insecure_mode":"\u5982\u679C\u60F3\u8981\u63A7\u5236\u914D\u4EF6\u3001\u5FC5\u9808\u4EE5\u975E\u52A0\u5BC6\u6A21\u5F0F(-I)\u555F\u52D5 Homebridge {{ link }}\u3002","accessories.name":"\u540D\u7A31","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":"\u623F\u9593\u540D\u7A31","accessories.service":"Service","accessories.service_info":"Service Information","accessories.settings_link":"You can access the Homebridge Settings at any time from the cog icon in the side menu.","accessories.show_on_dashboard":"\u65BC Dashboard Widget \u986F\u793A","accessories.support.acc_1":"Accessories may take a few minutes to appear on this screen after a Homebridge restart or after being added. If accessories are consistently missing, try changing the mDNS advertiser in the settings.","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":"\u65B0\u589E\u7684\u623F\u9593\u4E26\u4E0D\u6703\u51FA\u73FE\u5728 HomeKit \u4E2D\uFF0C\u50C5\u5728 Homebridge UI \u4E2D\u4F7F\u7528","accessories.support.rooms_2":"To rename an existing room, create a new room with the desired name and move the accessories to the new room.","accessories.support.rooms_3":"To delete an existing room, move all its accessories to another room and refresh the page.","accessories.title_rooms":"Rooms","backup.backup_delete_failed":"Backup deletion failed. See logs for details.","backup.backup_download_failed":"\u4E0B\u8F09\u5099\u4EFD\u5931\u6557","backup.backup_exceeds_max_size":"Backup ({{ backupSize }}) exceeds maximum restore file size of {{ maxBackupSizeText }}","backup.backup_help_one":"\u4E0B\u8F09 Homebridge \u74B0\u5883\u5B8C\u6574\u5099\u4EFD\u6A94\u6848\u3002\u6B64\u52D5\u4F5C\u5C07\u6703\u5099\u4EFD\u5B8C\u6574\u7684 Homebridge \u5132\u5B58\u6587\u4EF6\u593E\u3001\u53EF\u65BC\u7A0D\u5F8C\u900F\u904E\u4EFB\u4F55\u57F7\u884C Homebridge UI \u7684\u5E73\u53F0\u9032\u884C\u56DE\u5FA9\u3002","backup.backup_help_two":"Plugins \u4E26\u672A\u7F6E\u653E\u65BC NPM\u3001\u6216\u76F4\u63A5\u7531 Github \u6240\u5B89\u88DD\u7684 Plugins \u5C07\u7121\u6CD5\u9032\u884C\u5099\u4EFD\u6216\u56DE\u5FA9\u3002","backup.backup_now":"Backup Now","backup.backup_now_desc":"Generate and download an up-to-date backup file.","backup.backup_now_save_desc":"Generate an up-to-date backup file in your backup storage directory.","backup.backup_restored":"\u5099\u4EFD\u6A94\u6848\u5DF2\u56DE\u5FA9","backup.backup_warning":"\u5099\u4EFD\u6A94\u6848\u5305\u542B\u654F\u611F\u8CC7\u8A0A\u3001\u8ACB\u4E0D\u8981\u96A8\u610F\u8207\u5176\u4ED6\u4EBA\u5171\u4EAB\u3002","backup.files_auto":"Stored Backup Files","backup.label_extracting":"Extracting Archive","backup.label_uploading":"\u4E0A\u50B3\u4E2D\u2026","backup.load_error":"Failed to load config backup.","backup.restore_failed":"\u56DE\u5FA9\u5931\u6557","backup.restore_help_one":"\u56DE\u5FA9\u5148\u524D\u900F\u904E Homebridge UI \u6240\u57F7\u884C\u7684\u5099\u4EFD\u6A94\u6848\u3002Homebridge config\u3001\u66AB\u5B58\u914D\u4EF6\u3001HomeKit \u914D\u5C0D\u8207 Homebridge UI \u4F7F\u7528\u8005\u5E33\u865F\u90FD\u6703\u9032\u884C\u56DE\u5FA9\u3002Homebridge \u6240\u5B89\u88DD\u7684 Plugins \u5247\u6703\u900F\u904E NPM \u9032\u884C\u4E0B\u8F09\u3002","backup.restore_help_two":"\u65BC\u56DE\u5FA9\u5F8C\uFF0C\u4F7F\u7528\u5099\u4EFD\u4E2D\u7684\u6191\u8B49\u6642\uFF0C\u5C07\u6703\u9700\u8981\u767B\u5165 Homebridge UI\u3002","backup.restore_max_size":"You can restore a backup archive up to {{ maxBackupSizeText }} in size.","backup.restore_now":"Restore Now","backup.restore_now_desc":"Restore from a previously downloaded backup file.","backup.restore_warning":"\u5F9E\u5099\u4EFD\u6062\u5FA9\u5C07\u6703\u5B8C\u5168\u8986\u84CB\u73FE\u6709\u7684 Homebridge \u8A2D\u5B9A\u3002","backup.scheduled_backup_disabled":"Scheduled backups have been disabled via the configuration.","backup.scheduled_backup_time":"\u6BCF\u5929 {{ backupTime }} \u6703\u81EA\u52D5\u5EFA\u7ACB Homebridge \u7684\u5B8C\u6574\u5099\u4EFD\uFF0C\u4E26\u4FDD\u7559 {{ dayCount }} \u5929\u3002","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 & Restore","child_bridge.about":"Homebridge \u5141\u8A31\u4EE5\u7368\u7ACB\u7684\u5B50 Bridge \u6A21\u5F0F\u57F7\u884C Plugin \u5E73\u53F0\u6216\u914D\u4EF6 {{ link }}\uFF0C\u5C07\u6709\u52A9\u65BC\u6539\u5584 Homebridge \u7684\u56DE\u61C9\u901F\u5EA6\u8207\u7A69\u5B9A\u5EA6\u3002","child_bridge.bridge_connect":"\u9023\u63A5 HomeKit","child_bridge.bridge_settings":"Bridge \u8A2D\u5B9A","child_bridge.bridges":"Bridges","child_bridge.bridges_paired":"\u6BCF\u4E00\u500B\u5B50 Bridge \u5E73\u53F0\u6216\u914D\u4EF6\u5C07\u9700\u8981\u5206\u5225\u8207 HomeKit \u9032\u884C\u914D\u5C0D\u3002","child_bridge.bridges_paired_2":"If you set up a child bridge now and later disable it, any accessories on this bridge will be removed and re-created on the main Homebridge bridge.","child_bridge.config.accessory":"Accessory","child_bridge.config.debug":"Debug Mode","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":"Manufacturer","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":"Link Existing Bridge","child_bridge.config.platform":"Platform","child_bridge.config.port":"Port","child_bridge.config.prevent":"Cannot disable a child bridge with linked accessories.","child_bridge.config.select_existing":"Select an existing bridge...","child_bridge.config.use":"Use Child Bridge","child_bridge.confirm_delete_1":"The following child bridges will be removed.","child_bridge.confirm_delete_2":"You will need to remove the paired bridges manually from the Home app. Any accessories will be removed and re-created on the main Homebridge bridge.","child_bridge.must_configure_plugin":"\u65BC\u7BA1\u7406\u8A72 Bridge \u8A2D\u5B9A\u4E4B\u524D\uFF0C\u9700\u8981\u5148\u8A2D\u5B9A\u6B64 Plugin\u3002","child_bridge.reset_accessories":"Reset Accessories","child_bridge.restart":"\u91CD\u555F \u5B50Bridges","child_bridge.restart_plural":"\u91CD\u555F\u5B50 Bridges","child_bridge.return_to_pair":"\u65BC Homebridge \u91CD\u555F\u5F8C\u3001\u56DE\u5230\u6B64\u756B\u9762\u4EE5\u6AA2\u8996\u914D\u5C0D\u4E4B QR \u78BC\u3002","child_bridge.setup":"\u8A2D\u5B9A \u5B50Bridge","child_bridge.start":"\u555F\u52D5 \u5B50bridge","child_bridge.start_plural":"\u555F\u52D5 \u5B50Bridges","child_bridge.stop":"\u505C\u6B62 \u5B50Bridge","child_bridge.stop_plural":"\u505C\u6B62 \u5B50Bridges","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":"Are you sure you want to continue anyway?","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":"\u914D\u4EF6\u5FC5\u9808\u662F\u6578\u7D44 []","config.config_bridge_missing":"\u907A\u5931\u6A4B\u63A5\u5668","config.config_invalid_json":"\u8A2D\u5B9A\u4E2D\u5305\u542B\u7121\u6548\u7684 JSON","config.config_platform_must_be_array":"\u5E73\u53F0\u5FC5\u9808\u662F\u6578\u7D44 []","config.config_saved":"Configuration Saved","config.config_username_error":"\u6A4B\u63A5\u5668\u7684\u4F7F\u7528\u8005\u540D\u7A31\u5FC5\u9808\u8981\u662F\u7531 6 \u500B\u4EE5\u5192\u865F\u5206\u9694\u958B\u3001\u4E14\u70BA\u5341\u516D\u9032\u4F4D\u5236\uFF08A-F 0-9\uFF09\u7684\u6578\u503C\u6240\u7D44\u6210","config.error_blocks_objects":"All {{ type }} blocks must be objects.","config.error_blocks_type":"All {{ type }} blocks must contain the {{ type }} attribute.","config.error_string_array":"Each item in the {{ key }} array must be a string.","config.error_string_type":"The {{ type }} attribute must be a string.","config.failed_to_save_config":"Config \u5B58\u6A94\u5931\u6557","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":"\u9EDE\u64CA\u300C\u5132\u5B58\u300D\u4EE5\u78BA\u8A8D\u56DE\u5FA9\u6B64\u5099\u4EFD\u3002","config.restore.copy_to_editor":"\u8907\u88FD\u5230\u7DE8\u8F2F\u5668","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":"\u5DF2\u522A\u9664\u6240\u6709\u5099\u4EFD","config.restore.view_inline":"Inline View","config.restore.view_side_by_side":"Side-By-Side View","config.title_backup_loaded":"\u5DF2\u8B80\u53D6\u5099\u4EFD","form.button_allow":"Allow","form.button_back":"Back","form.button_cancel":"\u53D6\u6D88","form.button_close":"\u95DC\u9589","form.button_continue":"Continue","form.button_delete":"\u522A\u9664","form.button_delete_all":"Delete All","form.button_disable":"\u505C\u7528","form.button_download":"\u4E0B\u8F09","form.button_edit":"\u7DE8\u8F2F","form.button_enable":"\u555F\u7528","form.button_lock":"\u4E0A\u9396","form.button_more_info":"\u66F4\u591A\u8CC7\u8A0A","form.button_remove":"\u79FB\u9664","form.button_reset":"\u91CD\u8A2D","form.button_restore":"\u5F9E\u5099\u4EFD\u56DE\u5FA9","form.button_save":"\u5132\u5B58","form.button_show":"Show","form.button_unlock":"\u89E3\u9396","form.button_unpair":"Unpair","form.label.changes_kept":"Note that existing selections/changes are preserved when switching between items.","form.label_invalid":"Config validation failed - you can still save your changes.","form.label_invalid_strict":"Config validation failed - please review the form before saving.","form.label_valid":"Config validation passed.","form.optional":"Optional","form.search":"Search...","form.select.auto":"Automatic (Use Browser Settings)","login.invalid_code":"The code entered is incorrect or has expired","login.invalid_credentials":"\u7121\u6548\u7684\u4F7F\u7528\u8005\u540D\u7A31\u548C\u5BC6\u78BC","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":"Invalid Password","login.label_2fa_code":"\u96D9\u91CD\u9A57\u8B49\u78BC","logs.download.error":"Failed to download log file.","logs.download_warning":"Homebridge \u65E5\u8A8C\u6A94\u6848\u53EF\u80FD\u5305\u542B\u90E8\u5206\u500B\u4EBA\u8CC7\u6599\u3001\u5BC6\u78BC\u6216\u5B58\u53D6\u5BC6\u9470\u3002\u8ACB\u65BC\u8207\u4ED6\u4EBA\u5206\u4EAB\u524D\u518D\u6B21\u78BA\u8A8D\u4E26\u79FB\u9664\u4EFB\u4F55\u654F\u611F\u8CC7\u8A0A\u3002","logs.log_file_truncated":"\u65E5\u8A8C\u6A94\u6848\u5DF2\u622A\u53BB\u3002","logs.placeholder_search_logs":"Search logs (min. 3 characters)...","logs.title_download_log_file":"\u4E0B\u8F09\u65E5\u8A8C\u6A94\u6848","logs.title_truncate_log_file":"\u622A\u53BB\u65E5\u8A8C\u6A94\u6848","logs.truncate.error":"Failed to truncate log file.","logs.truncate_log_warning":"\u6B64\u52D5\u4F5C\u5C07\u5B8C\u5168\u6C38\u4E45\u522A\u9664\u73FE\u6709\u7684 Homebridge \u65E5\u8A8C\u3002\u662F\u5426\u8981\u7E7C\u7E8C\uFF1F","matter_bridge.config.use":"Enable Matter","menu.config_json_editor":"JSON Config","menu.docker.restart_container":"\u91CD\u65B0\u555F\u52D5\u5BB9\u5668","menu.docker.startup_script":"\u555F\u52D5\u8173\u672C","menu.docker.terminal":"\u7D42\u7AEF","menu.hbrestart.confirm_hb":"Restart Homebridge","menu.hbrestart.confirm_ui":"Restart HB Service & UI","menu.hbrestart.title":"Restart Homebridge","menu.label_accessories":"\u914D\u4EF6","menu.label_plugins":"Plugins","menu.label_settings":"Settings","menu.label_status":"\u72C0\u614B","menu.linux.label_logs":"Logs","menu.linux.label_restart_server":"\u91CD\u65B0\u555F\u52D5 Homebridge","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":"\u95DC\u9589 Homebridge","menu.linux.label_terminal":"\u7D42\u7AEF\u6A5F","menu.reload":"Reload","menu.restart.title":"Power Options","menu.settings.title":"Settings","menu.tooltip_logout":"\u767B\u51FA","menu.tooltip_restart":"\u91CD\u65B0\u555F\u52D5","menu.tooltip_user_accounts":"\u4F7F\u7528\u8005\u5E33\u865F","menu.tooltip_view_logs":"\u67E5\u770B\u65E5\u8A8C","platform.docker.container_restarted":"Docker \u5BB9\u5668\u5DF2\u91CD\u65B0\u555F\u52D5","platform.docker.must_use_hashbang":"\u8173\u672C\u5FC5\u9808\u4F7F\u7528 #!/bin/sh hashbang\u3002","platform.docker.restart_required":"\u9700\u8981\u91CD\u65B0\u555F\u52D5 docker \u5BB9\u5668\u3001\u624D\u80FD\u4F7F\u8B8A\u66F4\u751F\u6548\u3002","platform.docker.run_with_restart":"\u8ACB\u78BA\u5B9A\u60A8\u4EE5{{ command }}\u53C3\u6578\u555F\u52D5\u57F7\u884C Docker","platform.docker.script_help":"\u6BCF\u6B21 Docker \u5BB9\u5668\u555F\u52D5\u6642\u90FD\u6703\u57F7\u884C\u6B64\u8173\u672C\uFF0C\u53EF\u4F7F\u7528\u4EE5\u5B89\u88DD\u4EFB\u4F55\u53EF\u80FD\u6240\u9700\u7684 Plugins\u3001\u4F8B\u5982 ffmpeg \u6216 libpcap-dev\u3002","platform.docker.script_saved":"\u555F\u52D5\u8173\u672C\u5DF2\u5132\u5B58","platform.docker.server_long_time":"\u4F3A\u670D\u5668\u91CD\u555F\u903E\u6642\u3001\u53EF\u80FD\u9700\u8981\u624B\u52D5\u555F\u52D5 Docker \u5BB9\u5668.","platform.docker.title_restarting":"\u6B63\u5728\u91CD\u65B0\u555F\u52D5 Docker \u5BB9\u5668","platform.linux.long_time":"\u4F3A\u670D\u5668\u91CD\u555F\u903E\u6642\u3001\u53EF\u80FD\u9700\u8981\u624B\u52D5\u91CD\u555F\u4F3A\u670D\u5668\u3002","platform.linux.restart":"\u8ACB\u7A0D\u5019\u3001\u9801\u9762\u5C07\u5728\u91CD\u65B0\u555F\u52D5\u5B8C\u6210\u5F8C\u81EA\u52D5\u91CD\u6574\u3002","platform.linux.restarting_server":"\u91CD\u65B0\u555F\u52D5\u4F3A\u670D\u5668","platform.linux.server_restart_error":"\u767C\u9001\u91CD\u555F\u547D\u4EE4\u81F3\u4F3A\u670D\u5668\u6642\u767C\u751F\u932F\u8AA4","platform.linux.server_restarted":"\u4F3A\u670D\u5668\u5DF2\u91CD\u65B0\u555F\u52D5","platform.linux.server_taking_long_time":"\u4F3A\u670D\u5668\u91CD\u65B0\u6062\u5FA9\u9023\u7DDA\u5DF2\u8D85\u6642","platform.linux.server_will_power_down":"\u4F3A\u670D\u5668\u5373\u5C07\u95DC\u6A5F\u3002","platform.linux.shutting_down_server":"\u6B63\u5728\u95DC\u9589\u4F3A\u670D\u5668","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 }} \u5DF2\u7D93\u5B89\u88DD, \u4F46\u662F\u4F3A\u670D\u5668\u4ECD\u7136\u5728\u57F7\u884C v{{ serverVersion }}.","platform.version.service_restart_required":"\u9700\u8981\u91CD\u65B0\u555F\u52D5\u670D\u52D9","plugins.bridge.action_error":"Failed to {{ action }} 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":"Set Up","plugins.button_settings":"\u8A2D\u5B9A","plugins.button_uninstall":"\u79FB\u9664","plugins.button_update":"\u66F4\u65B0","plugins.compat.hb_node_too_low":"{{ packageName }} v{{ latestVersion }} \u9700\u8981 Node.js v{{ minVersion }} \u6216\u66F4\u65B0\u7248\u672C\u3002\u76EE\u524D\u6240\u4F7F\u7528\u7684 Node.js \u7248\u672C\u70BA v{{ installedVersion }}\u3002","plugins.compat.hb_too_low":"{{ pluginName }} Plugin \u5EFA\u8B70\u4EE5 Homebridge v{{ minVersion }} \u6216\u66F4\u65B0\u7248\u672C\u57F7\u884C\u3002\u76EE\u524D\u6240\u4F7F\u7528\u7684 Homebridge \u7248\u672C\u70BA v{{ installedVersion }}\u3002","plugins.compat.node_first":"\u65BC\u66F4\u65B0 {{ packageName }} \u524D\u3001\u8ACB\u5148\u66F4\u65B0 Node.js\u3002","plugins.compat.node_link":"How To Update Node.js","plugins.compat.node_too_low":"{{ pluginName }} Plugin \u5EFA\u8B70\u4EE5 Node.js v{{ minVersion }} \u6216\u66F4\u65B0\u7248\u672C\u57F7\u884C\u3002\u76EE\u524D\u6240\u4F7F\u7528\u7684 Node.js \u7248\u672C\u70BA v{{ installedVersion }}\u3002","plugins.compat.title":"Compatibility Check","plugins.config.load_error":"Failed to load plugin config.","plugins.config.must_be_array":"Plugin config must be an array.","plugins.config.must_be_array_objects":"Plugin config must be an array of objects.","plugins.config.must_be_object":"Config block must be an object.","plugins.config.name_property":'Accessory must have a valid "name" attribute',"plugins.config.please_fix":"Please fix validation errors before adding a new block.","plugins.disable.error":"Failed to disable plugin.","plugins.donate.message_1":"As more users install their plugins through the Homebridge UI, they are less likely to visit the projects' GitHub page where the ways to support a developer would typically be displayed.","plugins.donate.message_2":"Adding donation links directly in the Homebridge UI ensures users know how to support Homebridge developers if they wish to do so.","plugins.donate.tile_donate_to":"\u8D0A\u52A9 {{ author }}","plugins.enable.error":"Failed to enable plugin.","plugins.manage.all_versions":"All versions","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 restarted successfully.","plugins.manage.child_bridge_restart_failed":"Plugin restart failed, please restart Homebridge manually.","plugins.manage.confirm_disable":"Are you sure you want to disable {{ pluginName }}?","plugins.manage.confirm_disable_accessory_1":"Any accessories exposed by this plugin will be removed from the Homebridge UI accessory screen and removed from HomeKit.","plugins.manage.confirm_disable_accessory_2":"When you re-enable the plugin, the accessories will reappear in the Homebridge UI and HomeKit. The accessories will lose their HomeKit data (like related scenes and automations).","plugins.manage.confirm_disable_platform_1":"Any accessories exposed by this plugin will be removed from the Homebridge UI accessory screen but remain in HomeKit with a 'No Response' label.","plugins.manage.confirm_disable_platform_2":"When you re-enable the plugin, the accessories will reappear in the Homebridge UI and become controllable again in HomeKit. The accessories will not lose their HomeKit data (like related scenes and automations).","plugins.manage.confirm_disable_setting":"Your setting for {{ setting }} is currently {{ value }}, therefore:","plugins.manage.confirm_enable":"\u78BA\u5B9A\u8981\u555F\u7528 {{ pluginName }} \u55CE\uFF1F","plugins.manage.disable":"\u95DC\u9589","plugins.manage.enable":"\u958B\u555F","plugins.manage.github_support":"You can show your support by giving this plugin a {{ iconStar }} (or the release a {{ iconThumbsUp }}) on GitHub!","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":"\u5B89\u88DD","plugins.manage.installed":"\u5DF2\u5B89\u88DD","plugins.manage.json_config":"JSON \u8A2D\u5B9A","plugins.manage.manage_version":"\u5B89\u88DD\u4EE5\u524D\u7684\u7248\u672C","plugins.manage.manual_update_command":"To upgrade the package, open a Node.js command prompt as an Administrator and run the following commands:","plugins.manage.more_info":"More information about scoped {{ scopedLink }} and verified {{ 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":"Windows \u7248\u4E0D\u652F\u63F4\u7DDA\u4E0A\u66F4\u65B0\u3002\u65BC\u505C\u6B62 Homebridge \u670D\u52D9\u5F8C\uFF0C\u5FC5\u9808\u624B\u52D5\u66F4\u65B0 Homebridge UI\u3002","plugins.manage.plugin_logs":"Plugin Logs","plugins.manage.scoped.error":"An error occurred. You can download the logs below.","plugins.manage.scoped.info_1":"Homebridge scoped plugins have names beginning with {{ prefix }}.","plugins.manage.scoped.info_2":"For more information about scoped plugins and why to switch, see the wiki page {{ link }}.","plugins.manage.scoped.process":"This process will not affect your Homebridge/HomeKit accessories. You will not be able to cancel the process once it has started. It will:","plugins.manage.scoped.switch":"Switch To Scoped Plugin","plugins.manage.scoped.windows":'Online updates are not supported on Windows. You will need to install the new plugin and uninstall the old plugin manually. You should <span class="fw-bold">not</span> restart Homebridge until both steps are complete.',"plugins.manage.scoped_message":"Scoped plugins improve long-term reliability and ensure consistent maintenance by combining centralized oversight from the Homebridge team with continued involvement from the original maintainer.","plugins.manage.scoped_subtitle":"This plugin is scoped and verified.","plugins.manage.select_version":"\u9078\u64C7\u8981\u5B89\u88DD\u7684\u7248\u672C","plugins.manage.uninstall":"\u79FB\u9664","plugins.manage.uninstalled":"\u5DF2\u79FB\u9664","plugins.manage.unverified_message":"Unverified Homebridge plugins indicate that they haven't undergone the review process by the Homebridge project team. Lack of verification does not necessarily imply inefficacy or safety concerns. Authors might have opted not to seek verification for various reasons.","plugins.manage.unverified_subtitle":"This plugin is not verified.","plugins.manage.update":"\u66F4\u65B0","plugins.manage.updated":"\u66F4\u65B0\u5B8C\u6210","plugins.manage.verified_message":"Homebridge plugins that are marked as verified have been reviewed by the Homebridge project team to ensure they meet various requirements that encourage best practices and a trouble-free user experience.","plugins.manage.verified_subtitle":"This plugin is verified.","plugins.placeholder_search_first":"Use the search bar above to find your first plugin","plugins.placeholder_search_none":"No results were found","plugins.placeholder_search_plugin":"\u641C\u5C0B Plugin \u4E26\u4E14\u5B89\u88DD\u2026","plugins.settings.custom.homebridge-gsh.label_account_linked":"\u5E33\u865F\u5DF2\u9023\u7D50","plugins.settings.custom.homebridge-gsh.label_link_account":"\u9023\u7D50\u5E33\u865F","plugins.settings.custom.homebridge-gsh.message_about":"Homebridge Google Smart Home Plugin \u53EF\u4F9B\u900F\u904E Google Home \u667A\u80FD\u97F3\u7BB1\u6216 Google Home app \u63A7\u5236 Homebridge \u914D\u4EF6\u3002","plugins.settings.custom.homebridge-gsh.message_account_link_required":"\u6B32\u555F\u7528\u6B64\u529F\u80FD\uFF0C\u5FC5\u9808\u5148\u767B\u5165 Google \u6216 Github \u5E33\u865F\uFF1B\u78BA\u5B9A\u65BC Google Home app \u4E2D\u65B0\u589E Homebridge \u6642\u4F7F\u7528\u4E86\u76F8\u540C\u7684\u5E33\u865F\u3002","plugins.settings.custom.homebridge-gsh.message_homebridge_restart_required":"Homebridge \u9700\u8981\u91CD\u65B0\u555F\u52D5\u4EE5\u671F\u8B8A\u66F4\u9032\u884C\u5957\u7528\u3002","plugins.settings.deconz.dump_no_exist":"Homebridge deCONZ dump file does not exist yet.","plugins.settings.hue.dump_no_exist":"Homebridge Hue dump file does not exist yet.","plugins.settings.label_open_config_editor":"\u958B\u555F Config \u7DE8\u8F2F\u5668","plugins.settings.message_consult_documentation":"\u8ACB\u53C3\u95B1 Plugin \u6587\u4EF6\u4EE5\u4E86\u89E3\u5982\u4F55\u6B63\u78BA\u7684\u8A2D\u5B9A\u6B64 Plugin\u3002","plugins.settings.message_manual_config_required":"\u6B64 Plugin \u5FC5\u9808\u4F7F\u7528 Homebridge UI Config \u7DE8\u8F2F\u5668\u9032\u884C\u624B\u52D5\u7DE8\u8F2F\u3002","plugins.settings.plugin_config_saved":"Plugin Config \u5DF2\u5132\u5B58","plugins.settings.restart_required":"\u91CD\u65B0\u555F\u52D5 Homebridge \u65B9\u80FD\u4F7F Config \u7684\u8B8A\u66F4\u751F\u6548\u3002","plugins.stats":"Plugin Statistics","plugins.stats_note":"Plugins cannot be installed from this page, this is provided just for interest.","plugins.status_disabled":"\u5DF2\u95DC\u9589","plugins.status_installed":"\u5DF2\u5B89\u88DD","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":"Failed to load plugin config schema.","plugins.toast_failed_to_load_plugins":"Plugins \u8F09\u5165\u5931\u6557","plugins.toast_failed_to_search_plugins":"Failed to search plugins","plugins.uninstall_remove_child_bridge":"Remove plugin child bridge?","plugins.uninstall_remove_child_bridges":"Remove {{ count }} plugin child bridges?","plugins.uninstall_remove_config_required":"\u5047\u5982\u8981\u6C38\u4E45\u6027\u7684\u79FB\u9664\u6B64 Plugin\u3001\u8ACB\u78BA\u5B9A\u65BC\u91CD\u65B0\u555F\u52D5 Homebridge \u524D\u79FB\u9664 config.json \u4E2D\u7684\u76F8\u95DC\u8A2D\u5B9A\u3002","plugins.uninstall_remove_confirmation":"\u78BA\u5B9A\u8981\u79FB\u9664 {{ pluginName }}\uFF1F","plugins.uninstall_remove_plugin_config":"\u79FB\u9664 plugin config\uFF1F","plugins.uninstall_warn_1":"When removing a child bridge, any accessories published by this bridge will be removed from the Homebridge cache.","plugins.uninstall_warn_2":"The accessories will become stale in HomeKit (showing no response). To remove them, you will need to manually remove this bridge from HomeKit. You can do this in the Home app from the Home Settings section.","reset.accessory_all.desc":"Remove all accessories from the cache.","reset.accessory_all.list_1":"When clicking on the remove button below, Homebridge will restart and all your existing accessories will be removed from Homebridge and HomeKit.","reset.accessory_all.list_2":"All associated HomeKit data will also be removed, this includes room associations, scenes and automations that this accessory uses.","reset.accessory_all.list_3":"After Homebridge restarts, your plugins will re-add any accessories as if the plugin was being installed for the first time.","reset.accessory_all.title":"Remove All Accessories","reset.accessory_ind.bridge":"Bridge","reset.accessory_ind.desc":"Remove individual accessories from the cache.","reset.accessory_ind.done":"Finished removing accessories from the cache, check the log for confirmation and/or errors.","reset.accessory_ind.fail":"Failed to remove accessories from cache, check the log for errors.","reset.accessory_ind.list_1":"Some plugins don't clean up after themselves properly. If you have stale accessories, you can remove them from the cache. This function can also be used to reset an existing accessory in HomeKit.","reset.accessory_ind.list_2":"The accessories will be removed from Homebridge and HomeKit, along with their related room associations, scenes and automations.","reset.accessory_ind.list_3":"After Homebridge restarts, your plugins will re-add any removed accessories as if the plugin was being installed for the first time.","reset.accessory_ind.title":"Remove Individual Accessories","reset.accessory_ind.unknown":"Unknown Name","reset.accessory_reset":"\u91CD\u7F6E Homebridge \u914D\u4EF6","reset.action_is_irreversible":"\u6B64\u884C\u70BA\u662F\u7121\u6CD5\u53D6\u6D88\u91CD\u4F86\u7684\uFF0C\u8ACB\u5728\u7E7C\u7E8C\u4E4B\u524D\u4ED4\u7D30\u95B1\u8B80\u3002","reset.bridge_accessories.desc":"Remove all accessories published by a child bridge from the cache.","reset.bridge_accessories.empty":"You have no bridges from which to remove accessories.","reset.bridge_accessories.list_1":"This function can be used to reset a plugin's existing accessories in HomeKit. They will be removed from Homebridge and HomeKit, and then re-added by the plugin as new accessories.","reset.bridge_accessories.list_2":"The child bridge's pairing details and status will remain the same.","reset.bridge_accessories.title":"Remove Bridge Accessories","reset.bridge_all.desc":"Reset all bridges by removing them from the cache. This includes the main Homebridge bridge, child bridges and bridges for external accessories.","reset.bridge_all.list_1":"This will reset the Homebridge bridge, all child bridges and bridges for external accessories from HomeKit.","reset.bridge_all.list_2":"Note that your accessories will continue to show in HomeKit as no response, until the bridges are manually removed from HomeKit. You can do this in the Home app, by accessing Home Settings \u2192 Home Hubs & Bridges \u2192 {Bridge} \u2192 Remove Bridge from Home.","reset.bridge_all.list_3":"All your Homebridge to HomeKit accessories, scenes and automations will need to be reconfigured after the unpairing.","reset.bridge_all.list_4":"The pin for pairing your Homebridge bridge to HomeKit will be changed. You can see the new values in your Homebridge config after the unpairing.","reset.bridge_all.title":"Reset All Bridges","reset.bridge_ind.desc":"Reset an individual bridge by removing it from the cache. This may be a child bridge or a bridge for an external accessory like a camera or TV.","reset.bridge_ind.desc_child_active":"Homebridge has detected that these child bridges are in-use. Once removed, their accessories will be removed from the Homebridge cache. If paired with HomeKit, the bridge's accessories will show as 'No Response', and the bridge will need to be removed via the Home app. The child bridge's pairing information will be changed. Once Homebridge has restarted, the plugin will create the new child bridge and accessories. The new bridge will need to be re-paired with HomeKit. You can view the new pairing information from the corresponding plugin's bridge settings page.","reset.bridge_ind.desc_child_stale":"Homebridge has detected that these bridges are not in-use, but double-check before deleting. They could be left-over from previously uninstalled plugins. If paired with HomeKit, the accessories will show as 'No Response', and the bridge will need to be removed via the Home app.","reset.bridge_ind.desc_non_child":"Homebridge has detected that these bridges are in-use. You can remove them from the cache, but they will likely be re-added by the plugin when Homebridge restarts. The pairing information will remain unchanged.","reset.bridge_ind.done":"Finished resetting bridges, check the log for confirmation and/or errors.","reset.bridge_ind.fail":"Failed to reset bridges, check the log for errors.","reset.bridge_ind.head_child_active":"Active Child Bridges","reset.bridge_ind.head_child_stale":"Stale Child Bridges","reset.bridge_ind.head_non_child":"Non Child Bridges","reset.bridge_ind.title":"Reset Individual Bridges","reset.bridges.desc":"If you are having trouble pairing Homebridge, an external accessory or a child bridge to HomeKit, you may need to unpair it from HomeKit to start again.","reset.bridges.empty":"You have no bridges to unpair from HomeKit.","reset.bridges.title":"Bridges","reset.clear_cache_single.list_3":"When removing an accessory from the cache, all its associated HomeKit data will be removed. This includes any associated scenes and automations that use this accessory.","reset.delete_success":"\u91CD\u65B0\u555F\u52D5 Homebridge \u4E26\u6E05\u9664\u914D\u4EF6\u66AB\u5B58\u3002","reset.error_message":"Accessory cache could not be loaded. You may not have any cached accessories.","reset.failed_to_reset":"\u7121\u6CD5\u91CD\u7F6E Homebridge\u3001\u8ACB\u53C3\u95B1\u65E5\u8A8C\u3002","reset.force_restart_hb_help_text":"\u6B64\u52D5\u4F5C\u5C07\u6703\u5F37\u5236 hb-service \u670D\u52D9\u9032\u884C\u5B8C\u5168\u91CD\u555F\u3002","reset.no_accessories":"You have no cached accessories to remove.","restart.child_bridge_list":"Please restart these child bridges for the changes to apply:","restart.child_bridges":"Please restart the plugin's child bridges for the changes to apply.","restart.label_restart_command_executed":"\u6B63\u5728\u57F7\u884C\u91CD\u65B0\u555F\u52D5\u547D\u4EE4","restart.please_wait_while_server_restarts":"\u8ACB\u7A0D\u5019\uFF0C\u6B64\u9801\u9762\u5C07\u5728\u91CD\u65B0\u555F\u52D5\u5B8C\u6210\u5F8C\u81EA\u52D5\u91CD\u6574\u3002","restart.server_is_taking_long_time_to_restart":"\u4F3A\u670D\u5668\u91CD\u65B0\u555F\u52D5\u5DF2\u8D85\u6642\u3002\u60A8\u53EF\u80FD\u9700\u8981\u624B\u52D5\u555F\u52D5 Homebridge \u670D\u52D9\u3002","restart.service_ready":"Homebridge \u4F3A\u670D\u5668\u5DF2\u5C31\u7DD2","restart.title_restart":"Homebridge \u6B63\u5728\u91CD\u65B0\u555F\u52D5","restart.toast_server_restart_error":"\u767C\u9001\u91CD\u65B0\u555F\u52D5\u547D\u4EE4\u6642\u51FA\u932F","restart.toast_server_restart_timeout":"\u4F3A\u670D\u5668\u91CD\u65B0\u555F\u52D5\u5DF2\u8D85\u6642","restart.toast_server_restarted":"\u5DF2\u91CD\u65B0\u555F\u52D5","restart.ui_online":"Homebridge UI \u4E0A\u7DDA","rpi.throttled.currently_message":"This Raspberry Pi is reporting it is currently under-voltage; please check it is connected to an appropriate power supply. Under-voltage can result in system instability and SD card corruption.","rpi.throttled.previously_message":"This Raspberry Pi has reported an under-voltage event since it was last rebooted; please check it is connected to an appropriate power supply.","rpi.throttled.undervoltage_title":"Under Voltage","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 maintains accessories in cache so they aren't removed and re-added to HomeKit each time Homebridge restarts. Sometimes this cache can become out of sync with the actual accessories in Homebridge.","settings.changes.saved":"Your changes have been saved and require a restart to take effect.","settings.datetime.incorrect":"The date and time on your Homebridge server seem to be incorrect. This may cause unexpected issues. Click here for more information.","settings.display.blue":"Blue","settings.display.bluegrey":"Blue Grey","settings.display.brown":"Brown","settings.display.cyan":"Cyan","settings.display.dark":"Dark","settings.display.deep_purple":"Deep Purple","settings.display.green":"Green","settings.display.grey":"Grey","settings.display.indigo":"Indigo","settings.display.lang":"Language","settings.display.light":"Light","settings.display.lighting_mode":"Lighting Mode","settings.display.menu_default":"Default","settings.display.menu_freeze":"Keep Closed (On Desktop)","settings.display.menu_mode":"Menu Mode","settings.display.orange":"Orange","settings.display.pink":"Pink","settings.display.purple":"Purple","settings.display.red":"Red","settings.display.show_betas":"Prefer Beta Versions","settings.display.teal":"Teal","settings.display.temp_units":"Temperature Units","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":"Display","settings.general.title_general":"General","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":"experimental","settings.mdns_advertiser_help":"\u5047\u5982\u65BC\u9023\u7DDA Homebridge \u6642\u9047\u5230\u554F\u984C\uFF0C\u8ACB\u8A66\u8457\u4F7F\u7528\u66FF\u4EE3\u7684 mDNS Advertiser\u3002","settings.mdns_advertiser_not_connected":"Not Connected","settings.mdns_advertiser_rec":"recommended","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":"\u5982\u679C\u6C92\u6709\u9078\u64C7\u7DB2\u8DEF\u4ECB\u9762\uFF0CHomebridge \u5C07\u6703\u81EA\u52D5\u5075\u6E2C\u6240\u8981\u4F7F\u7528\u7684\u7DB2\u8DEF\u4ECB\u9762\u3002","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":"The port number to run the Homebridge bridge on. This must be between 1025 and 65533, and should not be the same as the Homebridge UI port.","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":"The port number to run the Homebridge UI on.","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":"\u7DB2\u8DEF","settings.network.title_network_interfaces":"\u7DB2\u8DEF\u4ECB\u9762","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":"Failed to reset bridge.","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":"Some plugins require you to set the DEBUG environment variable {{ link }} to enable debug level logging.","settings.service.node_tooltip":"Node.js runtime options for this process. This should be kept blank unless you know what you are doing.","settings.startup.debug":"Homebridge Debug Mode","settings.startup.debug_desc_v1":"Enable this if you need Homebridge to output more detailed logs. This setting applies to the main Homebridge bridge as well as all child bridges. Some plugins may also adhere to this setting and output more detailed logs.","settings.startup.debug_desc_v2":"Enable this if you need Homebridge to output more detailed logs. This setting applies to the main Homebridge bridge. The setting for child bridges can be found in the child bridge configuration from the plugins page. Some plugins may also adhere to this setting and output more detailed logs.","settings.startup.insecure":"Enable UI Accessory Control","settings.startup.insecure_desc":"To control your accessories via the Homebridge UI you must be running Homebridge in insecure mode.","settings.startup.keep_accessories":"Keep Accessories Of Uninstalled Plugins","settings.startup.keep_accessories_desc":"If enabled, accessories of platform plugins will remain in the cache even after the plugin is uninstalled. This can be useful if you plan to reinstall the plugin later.","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":"\u555F\u52D5\u9078\u9805","settings.unpair_bridge.load_error":"Paired bridges could not be loaded.","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":"Get Started","setup.create_account":"Create Account","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":"Welcome to Homebridge",setup_wizard_complete:"Restore Complete!",setup_wizard_complete_title:"Congratulations!",setup_wizard_completed:"The setup procedure is complete and you are now ready to start using Homebridge.",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:"Restore From Backup",setup_wizard_restoring:"Restoring Backup...",setup_wizard_starting:"Starting Homebridge...","status.code_scan":"\u6383\u63CF\u52A0\u5165\u5230HomeKit","status.cpu.load":"\u8CA0\u8F09","status.cpu.temp":"\u6EAB\u5EA6","status.cpu.title_cpu":"CPU","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":"\u6B63\u5728\u6AA2\u67E5\u53EF\u7528\u66F4\u65B0\u2026","status.homebridge.up_to_date":"\u5DF2\u7D93\u662F\u6700\u65B0\u7248\u672C","status.memory.label_available":"\u9592\u7F6E","status.memory.label_total":"\u8A18\u61B6\u9AD4\u7E3D\u8A08","status.memory.title_memory":"\u8A18\u61B6\u9AD4","status.network.received_per_second":"Received","status.network.sent_per_second":"Sent","status.network.title_network":"Network Activity","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_not_enabled":"Not Enabled","status.services.label_not_running":"\u672A\u555F\u52D5","status.services.label_running":"\u57F7\u884C\u4E2D","status.services.updates":"Update Information","status.uptime.title_uptime":"\u7CFB\u7D71\u57F7\u884C\u6642\u9593","status.widget.accessories.choose_accessories":"\u65BC\u914D\u4EF6\u6B04\u4F4D\u4E2D\u9078\u64C7\u6240\u8981\u65BC Widget \u986F\u793A\u7684\u914D\u4EF6\u3002","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":"\u914D\u5C0D\u78BC","status.widget.add.matter_pairing_code":"Matter Pairing Code","status.widget.bridge.restart_error":"Failed to restart child bridge.","status.widget.clock":"\u6642\u9418","status.widget.clock_dateformat":"\u65E5\u671F\u683C\u5F0F","status.widget.clock_timeformat":"\u6642\u9593\u683C\u5F0F","status.widget.expand_docker":"Expand Docker Container Information","status.widget.font_size":"\u5B57\u578B\u5927\u5C0F","status.widget.font_weight":"\u5B57\u578B\u5BEC\u5EA6","status.widget.hide_node_info":"Hide Node.js Updates","status.widget.hide_npm":"Show npm Version","status.widget.hide_on_mobile":"\u65BC\u7CBE\u7C21\u6A21\u5F0F\u4E2D\u96B1\u85CF\uFF08\u884C\u52D5\u986F\u793A\uFF09","status.widget.homebridge_logs":"Homebridge \u65E5\u8A8C\u6A94","status.widget.info":"\u7CFB\u7D71\u8CC7\u8A0A","status.widget.info.arch":"Arch.","status.widget.info.config_path":"Config \u8DEF\u5F91","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":"No","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":"Unsupported","status.widget.info.node_unsupp_message":"You are running a version of Node.js that is not officially supported by Homebridge. You should consider changing to a supported version.","status.widget.info.node_update_message":"Homebridge requires Node.js installed on your system to run. From time to time, you will need to update the Node.js runtime to enable support for new features. Homebridge (and verified plugins) support all current Active and Maintenance LTS releases of 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 Path","status.widget.info.os":"OS","status.widget.info.plugin_path":"Plugin \u8DEF\u5F91","status.widget.info.service_user":"\u4F7F\u7528\u8005","status.widget.info.storage_path":"\u5132\u5B58\u8DEF\u5F91","status.widget.info.synology_package":"Synology Package","status.widget.info.timezone":"\u6642\u5340","status.widget.info.yes":"Yes","status.widget.network.history_items":"History Items","status.widget.network.items":"items","status.widget.network.network_interface":"Network Interface","status.widget.network.none_selected":"Using Default","status.widget.network.refresh_interval":"Refresh Interval","status.widget.network.seconds":"seconds","status.widget.qr_paired":"\u5DF2\u914D\u5C0D","status.widget.qr_unpaired":"\u672A\u914D\u5C0D","status.widget.show_hide":"Show/Hide Widgets","status.widget.title_manage_widget":"\u7BA1\u7406 Widget","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":"\u7A0B\u5E8F","status.widget.uptime.label_server":"\u4F3A\u670D\u5668","status.widget.weather.label_config_required_help":"\u8ACB\u65BC Widget \u8A2D\u5B9A\u4E2D\u9078\u64C7\u57CE\u5E02\u3002","status.widget.weather.label_search_for_your_city":"\u641C\u5C0B\u57CE\u5E02\uFF1A","status.widget.weather.title_weather":"\u5929\u6C23","support.dev.api":"Homebridge API","support.dev.api_hap":"HAP-NodeJS API","support.dev.api_hap_sub":"HAP-NodeJS is an implementation of the HomeKit Accessory Server as specified in the HomeKit Accessory Protocol (HAP), which is defined by Apple as part of the HomeKit Framework.","support.dev.api_sub":"Homebridge is a lightweight Node.js server you can run on your home network to emulate the HomeKit Accessory Protocol (HAP).","support.dev.item_swagger":"Swagger Docs","support.dev.item_swagger_sub":"The Homebridge REST API allows you to interact with your Homebridge server using HTTP requests.","support.dev.template":"Plugin Template Repo","support.dev.template_sub":"A template Homebridge plugin that can be used as a base to help you get started developing your own plugin.","support.dev.title":"Developers","support.dev.verified":"Verified By Homebridge","support.dev.verified_sub":"The Verified By Homebridge program allows plugin developers to get their plugins reviewed and endorsed by the Homebridge project team.","support.links.discord":"Discord Server","support.links.discord_sub":"Join the Homebridge Discord chat server to chat with other users and developers.","support.links.documentation":"Documentation","support.links.documentation_sub":"The Homebridge documentation provides a wealth of information on how to get started with Homebridge and common issue resolutions.","support.links.issue":"Report An Issue","support.links.issue_sub":"If you are experiencing an issue with Homebridge, please open a new issue on GitHub. This should not be used for issues with specific plugins.","support.links.reddit":"Reddit Community","support.links.reddit_sub":"The Homebridge subreddit is a great place to share your Homebridge setup and ask for help.","support.links.title":"Useful Links","support.title":"Support","toast.no_auth":"Only administrators may access the requested page.","toast.title_error":"\u932F\u8AA4","toast.title_success":"\u6210\u529F","toast.title_warning":"\u8B66\u544A","users.button_add_user":"\u65B0\u589E\u4F7F\u7528\u8005","users.label_admin_user":"\u7BA1\u7406\u54E1","users.label_confirm_password":"\u78BA\u8A8D\u5BC6\u78BC","users.label_full_name":"\u5168\u540D","users.label_new_password":"\u65B0\u5BC6\u78BC","users.label_password":"\u5BC6\u78BC","users.label_username":"\u4F7F\u7528\u8005\u540D\u7A31","users.setup_2fa":"Setup 2FA","users.setup_2fa_activate_error":"An error occurred activating 2FA","users.setup_2fa_cannot_setup_2fa":"\u7121\u6CD5\u8A2D\u5B9A\u96D9\u91CD\u9A57\u8B49","users.setup_2fa_disable":"\u95DC\u9589\u96D9\u91CD\u9A57\u8B49","users.setup_2fa_disable_current_password":"\u8F38\u5165\u5BC6\u78BC\u4EE5\u95DC\u9589\u96D9\u91CD\u9A57\u8B49\uFF1A","users.setup_2fa_disable_success":"\u96D9\u91CD\u9A57\u8B49\u5DF2\u95DC\u9589\u3002","users.setup_2fa_enable":"\u958B\u555F\u96D9\u91CD\u9A57\u8B49","users.setup_2fa_enable_error":"An error occurred setting up 2FA","users.setup_2fa_enabled_success":"\u96D9\u91CD\u9A57\u8B49\u5DF2\u958B\u555F\u3002","users.setup_2fa_enter_code":"\u8F38\u5165\u9A57\u8B49 App \u6240\u986F\u793A\u4E4B\u9A57\u8B49\u78BC\uFF1A","users.setup_2fa_scan_qr_code":"\u4EE5\u9A57\u8B49 App \u6383\u63CF\u4E0B\u65B9 QR \u78BC\uFF1A","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":"\u4F3A\u670D\u5668\u6642\u9593\u8AA4\u5DEE {{ timeDiffError }} ms\u3002\u6700\u5927\u5141\u8A31\u503C\u70BA +/-5000 ms\u3002","users.setup_2fa_warning":"\u96D9\u91CD\u9A57\u8B49\u9700\u8981 Homebridge \u4F3A\u670D\u5668\u4EE5\u76F8\u7576\u7CBE\u6E96\u7684\u6642\u9593\u53CA\u6642\u9593\u57F7\u884C\u3001\u4EE5\u9032\u884C\u767B\u5165\u52D5\u4F5C\u3002\u5047\u5982\u60A8\u7684\u4F3A\u670D\u5668\u7121\u6CD5\u4FDD\u6301\u6642\u9593\u7CBE\u6E96\u3001\u5EFA\u8B70\u4E0D\u8981\u958B\u555F\u96D9\u91CD\u9A57\u8B49\uFF0C\u4EE5\u907F\u514D Homebridge UI \u906D\u5230\u9396\u5B9A\u3002","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":"\u65B0\u589E\u4F7F\u7528\u8005","users.title_edit_user":"\u7DE8\u8F2F\u4F7F\u7528\u8005","users.title_users":"\u4F7F\u7528\u8005","users.toast_added_new_user":"\u5DF2\u65B0\u589E\u65B0\u4F7F\u7528\u8005","users.toast_failed_to_add_user":"\u65B0\u589E\u4F7F\u7528\u8005\u5931\u6557","users.toast_failed_to_delete_user":"\u522A\u9664\u4F7F\u7528\u8005\u5931\u6557","users.toast_updated_user":"\u4F7F\u7528\u8005\u8CC7\u6599\u5DF2\u66F4\u65B0","users.toast_user_deleted":"\u4F7F\u7528\u8005\u5DF2\u522A\u9664"}});export{t as a};
|