homebridge-config-ui-x 5.0.0-beta.6 → 5.0.0-beta.61
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 +385 -20
- package/CONTRIBUTING.md +5 -4
- package/LICENSE +1 -1
- package/config.schema.json +34 -144
- package/dist/bin/hb-service.d.ts +2 -2
- package/dist/bin/hb-service.js +51 -50
- package/dist/bin/hb-service.js.map +1 -1
- package/dist/bin/platforms/darwin.js +2 -2
- package/dist/bin/platforms/darwin.js.map +1 -1
- package/dist/bin/platforms/win32.js +4 -2
- package/dist/bin/platforms/win32.js.map +1 -1
- package/dist/bin/standalone.js +1 -0
- package/dist/bin/standalone.js.map +1 -1
- package/dist/core/auth/auth.controller.d.ts +2 -2
- package/dist/core/auth/auth.controller.js.map +1 -1
- package/dist/core/auth/auth.module.js +1 -1
- package/dist/core/auth/auth.module.js.map +1 -1
- package/dist/core/auth/auth.service.js +10 -10
- package/dist/core/auth/auth.service.js.map +1 -1
- package/dist/core/auth/jwt.strategy.d.ts +3 -1
- package/dist/core/config/config.service.d.ts +4 -6
- package/dist/core/config/config.service.js +9 -9
- package/dist/core/config/config.service.js.map +1 -1
- package/dist/core/config/config.startup.js +2 -2
- package/dist/core/config/config.startup.js.map +1 -1
- package/dist/core/homebridge-ipc/homebridge-ipc.service.js +3 -3
- package/dist/core/homebridge-ipc/homebridge-ipc.service.js.map +1 -1
- package/dist/index.js +6 -77
- package/dist/index.js.map +1 -1
- package/dist/main.js +1 -1
- package/dist/main.js.map +1 -1
- package/dist/modules/accessories/accessories.controller.js +5 -5
- package/dist/modules/accessories/accessories.controller.js.map +1 -1
- package/dist/modules/accessories/accessories.service.js +8 -7
- package/dist/modules/accessories/accessories.service.js.map +1 -1
- package/dist/modules/backup/backup.controller.js +7 -7
- package/dist/modules/backup/backup.controller.js.map +1 -1
- package/dist/modules/backup/backup.service.d.ts +1 -0
- package/dist/modules/backup/backup.service.js +57 -89
- package/dist/modules/backup/backup.service.js.map +1 -1
- package/dist/modules/child-bridges/child-bridges.service.js +0 -7
- package/dist/modules/child-bridges/child-bridges.service.js.map +1 -1
- package/dist/modules/config-editor/config-editor.controller.d.ts +1 -1
- package/dist/modules/config-editor/config-editor.controller.js +8 -8
- package/dist/modules/config-editor/config-editor.controller.js.map +1 -1
- package/dist/modules/config-editor/config-editor.service.d.ts +1 -1
- package/dist/modules/config-editor/config-editor.service.js +62 -64
- package/dist/modules/config-editor/config-editor.service.js.map +1 -1
- package/dist/modules/custom-plugins/plugins-settings-ui/plugins-settings-ui.service.d.ts +1 -1
- package/dist/modules/custom-plugins/plugins-settings-ui/plugins-settings-ui.service.js +13 -11
- package/dist/modules/custom-plugins/plugins-settings-ui/plugins-settings-ui.service.js.map +1 -1
- package/dist/modules/log/log.gateway.d.ts +2 -1
- package/dist/modules/log/log.gateway.js.map +1 -1
- package/dist/modules/log/log.service.js +3 -3
- package/dist/modules/log/log.service.js.map +1 -1
- package/dist/modules/platform-tools/docker/docker.controller.js +3 -3
- package/dist/modules/platform-tools/docker/docker.controller.js.map +1 -1
- package/dist/modules/platform-tools/docker/docker.service.js +1 -1
- package/dist/modules/platform-tools/docker/docker.service.js.map +1 -1
- package/dist/modules/platform-tools/hb-service/hb-service.controller.js +3 -3
- package/dist/modules/platform-tools/hb-service/hb-service.controller.js.map +1 -1
- package/dist/modules/platform-tools/hb-service/hb-service.service.js +6 -6
- package/dist/modules/platform-tools/hb-service/hb-service.service.js.map +1 -1
- package/dist/modules/platform-tools/linux/linux.controller.js +2 -2
- package/dist/modules/platform-tools/linux/linux.controller.js.map +1 -1
- package/dist/modules/platform-tools/linux/linux.service.js +2 -2
- package/dist/modules/platform-tools/linux/linux.service.js.map +1 -1
- package/dist/modules/platform-tools/terminal/terminal.gateway.d.ts +2 -1
- package/dist/modules/platform-tools/terminal/terminal.gateway.js.map +1 -1
- package/dist/modules/platform-tools/terminal/terminal.service.js +2 -2
- package/dist/modules/platform-tools/terminal/terminal.service.js.map +1 -1
- package/dist/modules/plugins/plugins.controller.js +4 -4
- package/dist/modules/plugins/plugins.controller.js.map +1 -1
- package/dist/modules/plugins/plugins.service.d.ts +4 -1
- package/dist/modules/plugins/plugins.service.js +174 -103
- package/dist/modules/plugins/plugins.service.js.map +1 -1
- package/dist/modules/server/server.controller.d.ts +22 -2
- package/dist/modules/server/server.controller.js +86 -18
- package/dist/modules/server/server.controller.js.map +1 -1
- package/dist/modules/server/server.service.d.ts +24 -6
- package/dist/modules/server/server.service.js +186 -67
- package/dist/modules/server/server.service.js.map +1 -1
- package/dist/modules/status/status.controller.d.ts +0 -1
- package/dist/modules/status/status.controller.js +3 -4
- package/dist/modules/status/status.controller.js.map +1 -1
- package/dist/modules/status/status.gateway.d.ts +1 -1
- package/dist/modules/status/status.service.d.ts +1 -1
- package/dist/modules/status/status.service.js +17 -41
- package/dist/modules/status/status.service.js.map +1 -1
- package/dist/modules/users/users.controller.js +7 -7
- package/dist/modules/users/users.controller.js.map +1 -1
- package/dist/self-check.js +6 -6
- package/dist/self-check.js.map +1 -1
- package/package.json +45 -43
- package/public/3rdpartylicenses.txt +119 -62
- package/public/assets/hap-icons/airpurifier.svg +49 -16
- package/public/assets/hap-icons/airquality.svg +24 -13
- package/public/assets/hap-icons/co-sensor.svg +72 -0
- package/public/assets/hap-icons/co2-sensor.svg +72 -0
- package/public/assets/hap-icons/contactsensor-closed.svg +35 -2
- package/public/assets/hap-icons/contactsensor-open.svg +80 -2
- package/public/assets/hap-icons/door-closed.svg +32 -2
- package/public/assets/hap-icons/door-open.svg +48 -2
- package/public/assets/hap-icons/fan-off.svg +24 -13
- package/public/assets/hap-icons/fan-on.svg +24 -13
- package/public/assets/hap-icons/garagedoor.svg +24 -13
- package/public/assets/hap-icons/humidity.svg +24 -13
- package/public/assets/hap-icons/irrigation-system.svg +47 -18
- package/public/assets/hap-icons/leaksensor.svg +52 -2
- package/public/assets/hap-icons/light.svg +47 -28
- package/public/assets/hap-icons/lightbulb.svg +24 -13
- package/public/assets/hap-icons/lock-locked.svg +24 -13
- package/public/assets/hap-icons/lock-unlocked.svg +24 -13
- package/public/assets/hap-icons/motionsensor.svg +100 -2
- package/public/assets/hap-icons/occupancysensor.svg +97 -2
- package/public/assets/hap-icons/outlet.svg +24 -13
- package/public/assets/hap-icons/securitysystem-active.svg +102 -2
- package/public/assets/hap-icons/securitysystem-off.svg +68 -2
- package/public/assets/hap-icons/smokesensor.svg +42 -9
- package/public/assets/hap-icons/speaker.svg +29 -13
- package/public/assets/hap-icons/statelessprogrammableswitch.svg +51 -2
- package/public/assets/hap-icons/switch.svg +24 -13
- package/public/assets/hap-icons/television.svg +15 -4
- package/public/assets/hap-icons/temperature.svg +24 -13
- package/public/assets/hap-icons/unknown.svg +24 -13
- package/public/assets/hap-icons/valve-generic.svg +27 -16
- package/public/assets/hap-icons/valve-irrigation.svg +37 -21
- package/public/assets/hap-icons/valve-showerhead.svg +52 -0
- package/public/assets/hap-icons/valve-waterfaucet.svg +21 -0
- package/public/assets/hap-icons/window-closed.svg +85 -2
- package/public/assets/hap-icons/window-open.svg +136 -2
- package/public/assets/hap-icons/windowcovering-closed.svg +45 -49
- package/public/assets/hap-icons/windowcovering-open.svg +40 -44
- package/public/assets/homebridge-color-round.svg +36 -1
- package/public/assets/homebridge-logo.svg +11 -1
- package/public/assets/mask-icon.svg +5 -1
- package/public/{chunk-NWD4LL6Q.js → chunk-2GVOK6BI.js} +1 -1
- package/public/chunk-2P6JPHXI.js +1 -0
- package/public/{chunk-CCUID66K.js → chunk-3NAAMMFZ.js} +1 -1
- package/public/chunk-42UKUWDD.js +1 -0
- package/public/{chunk-BKUGARB4.js → chunk-44K5XVZH.js} +1 -1
- package/public/chunk-4OUX4UQY.js +1 -0
- package/public/chunk-4UVD743J.js +1 -0
- package/public/chunk-5LBWTKKF.js +1 -0
- package/public/chunk-5YIASUJW.js +8 -0
- package/public/{chunk-NW6AFAD7.js → chunk-6OMIETCH.js} +1 -1
- package/public/chunk-6ZN4TBLM.js +7 -0
- package/public/chunk-7EOOXP3I.js +1 -0
- package/public/chunk-7NE26EL6.js +1 -0
- package/public/{chunk-QE7DO6J3.js → chunk-AFY7IWPI.js} +2 -2
- package/public/chunk-B5HKUCMN.js +1 -0
- package/public/chunk-BC4ZZQWV.js +1 -0
- package/public/chunk-BKSSD45L.js +1 -0
- package/public/{chunk-4IKE4OKZ.js → chunk-BQUVVOUW.js} +1 -1
- package/public/chunk-C7E6RDLL.js +1 -0
- package/public/chunk-CGQPMOSR.js +1 -0
- package/public/chunk-CR3VDLLZ.js +1 -0
- package/public/{chunk-WNWWUCCZ.js → chunk-CUKPSGYS.js} +1 -1
- package/public/{chunk-WHJSVGC7.js → chunk-D33FRRVF.js} +1 -1
- package/public/chunk-DBUCH6BG.js +1 -0
- package/public/chunk-DS75GNAL.js +1 -0
- package/public/chunk-EIHOKU54.js +1 -0
- package/public/chunk-FETTFNJ2.js +1 -0
- package/public/chunk-FMZZARWY.js +1 -0
- package/public/chunk-FUIS42EJ.js +1 -0
- package/public/chunk-FYUKPIEK.js +1 -0
- package/public/{chunk-6TCHCTXZ.js → chunk-G5LGUOIC.js} +1 -1
- package/public/chunk-GDFC3M3E.js +2 -0
- package/public/chunk-H27SDDCX.js +1 -0
- package/public/chunk-I275JECR.js +1 -0
- package/public/chunk-I2KUIMJX.js +6 -0
- package/public/{chunk-JZZQRLNW.js → chunk-I6OD3CV4.js} +1 -1
- package/public/chunk-ICIZAF7G.js +1 -0
- package/public/chunk-IGIZ77E4.js +1 -0
- package/public/chunk-K7DJFJZD.js +1 -0
- package/public/{chunk-7EUQWCP5.js → chunk-KPW2P5T4.js} +1 -1
- package/public/chunk-KYMGPDQN.js +1 -0
- package/public/chunk-L3LMIZ4T.js +1 -0
- package/public/chunk-LU6OEQYJ.js +1 -0
- package/public/chunk-MB2NVLXB.js +1 -0
- package/public/chunk-MQZKICE2.js +1 -0
- package/public/chunk-N6XRSUIB.js +20 -0
- package/public/chunk-NEGHHJIS.js +1 -0
- package/public/chunk-NEXSHIYQ.js +5 -0
- package/public/chunk-NLNP7SCN.js +1 -0
- package/public/chunk-NO7W5YAI.js +1 -0
- package/public/chunk-OLDGAQOK.js +1 -0
- package/public/chunk-ORBSZVUF.js +1 -0
- package/public/chunk-OXOBBTSH.js +1 -0
- package/public/chunk-PSHNN4VH.js +1 -0
- package/public/{chunk-EA5J2VEJ.js → chunk-QCVDY2FW.js} +1 -1
- package/public/{chunk-QXT6R24L.js → chunk-QTDJ54JB.js} +1 -1
- package/public/{chunk-3KDOQQBM.js → chunk-R5EOKUDT.js} +2 -2
- package/public/chunk-RB6CGL2N.js +1 -0
- package/public/chunk-RHUPLSY4.js +1 -0
- package/public/chunk-ROUD4I2C.js +1 -0
- package/public/chunk-SQG276V4.js +1 -0
- package/public/chunk-SYFO7BL7.js +1 -0
- package/public/chunk-SZKL6WZ7.js +1 -0
- package/public/chunk-TEFE7EK6.js +1 -0
- package/public/chunk-TLED5FNX.js +1 -0
- package/public/chunk-TPASMSSI.js +23 -0
- package/public/chunk-UNATDMH5.js +1 -0
- package/public/chunk-UXKQ6PIP.js +32 -0
- package/public/chunk-VL3O4ILB.js +1 -0
- package/public/chunk-VPQE7WRP.js +1 -0
- package/public/chunk-W2INV3O5.js +5 -0
- package/public/chunk-X4AOTN7R.js +1 -0
- package/public/chunk-XJG5222J.js +14 -0
- package/public/chunk-XSS6G7LC.js +1 -0
- package/public/chunk-Y6GOOB57.js +1 -0
- package/public/chunk-YEVI6ERU.js +1 -0
- package/public/chunk-YM3UWZ6I.js +1 -0
- package/public/chunk-YRKSTZPV.js +1 -0
- package/public/chunk-YZCOAAJB.js +1 -0
- package/public/chunk-ZBSCV5KR.js +1 -0
- package/public/chunk-ZIXTTJ4W.js +1 -0
- package/public/chunk-ZPHQO57O.js +1 -0
- package/public/chunk-ZTOLTRNF.js +1 -0
- package/public/index.html +2 -2
- package/public/main-VCGHYJKU.js +1 -0
- package/public/media/fa-brands-400-Q3XCMWHQ.woff2 +0 -0
- package/public/media/{fa-brands-400-KOKGDU7E.ttf → fa-brands-400-R2XQZCET.ttf} +0 -0
- package/public/media/fa-regular-400-QSNYFYRT.woff2 +0 -0
- package/public/media/{fa-regular-400-IPMAEX5Y.ttf → fa-regular-400-XUOPSR7E.ttf} +0 -0
- package/public/media/fa-solid-900-5ZUYHGA7.woff2 +0 -0
- package/public/media/{fa-solid-900-SRFFQLRM.ttf → fa-solid-900-PJNKLK6W.ttf} +0 -0
- package/public/polyfills-JFMQVUE2.js +2 -0
- package/public/styles-6IKEC5B4.css +1 -0
- package/scripts/upgrade-install-plugin.sh +1 -1
- package/public/chunk-2J6XFH3T.js +0 -1
- package/public/chunk-2KNNQ3N3.js +0 -1
- package/public/chunk-3FKHRKWG.js +0 -1
- package/public/chunk-3IX3CLER.js +0 -1
- package/public/chunk-3YHN3VHA.js +0 -1
- package/public/chunk-4AVEC3ZU.js +0 -1
- package/public/chunk-5BHGCTWL.js +0 -5
- package/public/chunk-62ADZGBJ.js +0 -6
- package/public/chunk-6GHV2TKM.js +0 -1
- package/public/chunk-6SC3OCKT.js +0 -8
- package/public/chunk-BCHM64F4.js +0 -1
- package/public/chunk-BPMSJ2VF.js +0 -1
- package/public/chunk-C2ERQ3FX.js +0 -1
- package/public/chunk-C6NH5RUO.js +0 -1
- package/public/chunk-CUPS2NE5.js +0 -1
- package/public/chunk-D6EUS4KM.js +0 -1
- package/public/chunk-DNZYDCPW.js +0 -1
- package/public/chunk-E3OHYYGW.js +0 -23
- package/public/chunk-EMKXES77.js +0 -14
- package/public/chunk-G7AVJCRN.js +0 -1
- package/public/chunk-HSJSWZHD.js +0 -1
- package/public/chunk-HYBTNEG3.js +0 -1
- package/public/chunk-J34SI644.js +0 -1
- package/public/chunk-JD7YSN6P.js +0 -1
- package/public/chunk-JL3HH376.js +0 -1
- package/public/chunk-JN46TW24.js +0 -1
- package/public/chunk-JPWCYJWM.js +0 -1
- package/public/chunk-JQVXXNK7.js +0 -1
- package/public/chunk-JW6PX64L.js +0 -1
- package/public/chunk-JXEJU7V3.js +0 -1
- package/public/chunk-K53Q52AX.js +0 -1
- package/public/chunk-KD3Z24TB.js +0 -1
- package/public/chunk-KPCZLNW7.js +0 -1
- package/public/chunk-KQJ7ONUG.js +0 -1
- package/public/chunk-KUOCPYMN.js +0 -1
- package/public/chunk-KXMGIDLQ.js +0 -1
- package/public/chunk-KZLHFU5K.js +0 -1
- package/public/chunk-LJHUPCL3.js +0 -32
- package/public/chunk-MTMEA6JC.js +0 -1
- package/public/chunk-N5BZ3IQD.js +0 -1
- package/public/chunk-N5UE2QRB.js +0 -1
- package/public/chunk-NGAJQJ5T.js +0 -1
- package/public/chunk-NNATGODS.js +0 -1
- package/public/chunk-NZNNTHFQ.js +0 -1
- package/public/chunk-ORPWYWCL.js +0 -5
- package/public/chunk-OSDZN4BY.js +0 -1
- package/public/chunk-PREJ7FYU.js +0 -1
- package/public/chunk-QHPDGSZ6.js +0 -1
- package/public/chunk-RBHJOIVB.js +0 -1
- package/public/chunk-RRHDXAZE.js +0 -1
- package/public/chunk-T7MCUROV.js +0 -1
- package/public/chunk-TCSXGQNF.js +0 -1
- package/public/chunk-TTENUNEO.js +0 -1
- package/public/chunk-TXOB7R5K.js +0 -7
- package/public/chunk-UEX6RTZJ.js +0 -1
- package/public/chunk-UG5DK2RQ.js +0 -2
- package/public/chunk-UG6ZOHXY.js +0 -1
- package/public/chunk-UN5422JY.js +0 -1
- package/public/chunk-VAJZ7KCO.js +0 -1
- package/public/chunk-VBCYNIMT.js +0 -1
- package/public/chunk-WHJOLAED.js +0 -1
- package/public/chunk-WJFAG3CM.js +0 -20
- package/public/chunk-YN5SJ37A.js +0 -1
- package/public/chunk-YR3ETJZY.js +0 -1
- package/public/chunk-YRD5IXFM.js +0 -1
- package/public/chunk-Z4A7KLCA.js +0 -1
- package/public/chunk-ZT23DWNL.js +0 -1
- package/public/main-LYJIIXIC.js +0 -1
- package/public/media/01-RQ3S2L53.png +0 -0
- package/public/media/02-VNCG2I2A.png +0 -0
- package/public/media/03-HI42L4ZG.png +0 -0
- package/public/media/04-FJLL55LZ.png +0 -0
- package/public/media/05-V3EO6SPT.png +0 -0
- package/public/media/06-EOJZCQZN.png +0 -0
- package/public/media/07-KMKB5PBD.png +0 -0
- package/public/media/08-UQJRF6B2.png +0 -0
- package/public/media/09-2DJQFRHH.png +0 -0
- package/public/media/arrow_left-CQT7FZM7.svg +0 -4
- package/public/media/arrow_right-SBUDRR2G.svg +0 -4
- package/public/media/fa-brands-400-6PJPV6JM.woff2 +0 -0
- package/public/media/fa-regular-400-OHB6J4OK.woff2 +0 -0
- package/public/media/fa-solid-900-ABTK6BNK.woff2 +0 -0
- package/public/polyfills-C6JHVXJJ.js +0 -2
- package/public/scripts-6GVLYD7F.js +0 -62
- package/public/styles-EG5MFQEM.css +0 -1
- /package/public/assets/{bootstrap-4 → bootstrap-5}/cssframework/assets.json +0 -0
package/public/chunk-QHPDGSZ6.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{Aa as g,Ab as Fe,D as Ee,Fa as y,Fb as F,Hb as u,Hc as we,Ja as O,Kc as Ie,Lb as Z,Lc as w,Mc as m,Ob as ae,Pc as le,a as h,b as f,cc as C,ea as $,ga as d,ia as q,jb as o,ka as M,n as be,pb as x,q as Ae,sb as z,tb as l,vc as c,wa as E,x as Me}from"./chunk-TXOB7R5K.js";var Te=(()=>{class n{_renderer;_elementRef;onChange=e=>{};onTouched=()=>{};constructor(e,i){this._renderer=e,this._elementRef=i}setProperty(e,i){this._renderer.setProperty(this._elementRef.nativeElement,e,i)}registerOnTouched(e){this.onTouched=e}registerOnChange(e){this.onChange=e}setDisabledState(e){this.setProperty("disabled",e)}static \u0275fac=function(i){return new(i||n)(o(x),o(O))};static \u0275dir=l({type:n})}return n})(),H=(()=>{class n extends Te{static \u0275fac=(()=>{let e;return function(r){return(e||(e=g(n)))(r||n)}})();static \u0275dir=l({type:n,features:[u]})}return n})(),b=new M(""),dt={provide:b,useExisting:d(()=>ct),multi:!0},ct=(()=>{class n extends H{writeValue(e){this.setProperty("checked",e)}static \u0275fac=(()=>{let e;return function(r){return(e||(e=g(n)))(r||n)}})();static \u0275dir=l({type:n,selectors:[["input","type","checkbox","formControlName",""],["input","type","checkbox","formControl",""],["input","type","checkbox","ngModel",""]],hostBindings:function(i,r){i&1&&C("change",function(a){return r.onChange(a.target.checked)})("blur",function(){return r.onTouched()})},standalone:!1,features:[c([dt]),u]})}return n})(),ht={provide:b,useExisting:d(()=>je),multi:!0};function ft(){let n=le()?le().getUserAgent():"";return/android (\d+)/.test(n.toLowerCase())}var pt=new M(""),je=(()=>{class n extends Te{_compositionMode;_composing=!1;constructor(e,i,r){super(e,i),this._compositionMode=r,this._compositionMode==null&&(this._compositionMode=!ft())}writeValue(e){let i=e==null?"":e;this.setProperty("value",i)}_handleInput(e){(!this._compositionMode||this._compositionMode&&!this._composing)&&this.onChange(e)}_compositionStart(){this._composing=!0}_compositionEnd(e){this._composing=!1,this._compositionMode&&this.onChange(e)}static \u0275fac=function(i){return new(i||n)(o(x),o(O),o(pt,8))};static \u0275dir=l({type:n,selectors:[["input","formControlName","",3,"type","checkbox"],["textarea","formControlName",""],["input","formControl","",3,"type","checkbox"],["textarea","formControl",""],["input","ngModel","",3,"type","checkbox"],["textarea","ngModel",""],["","ngDefaultControl",""]],hostBindings:function(i,r){i&1&&C("input",function(a){return r._handleInput(a.target.value)})("blur",function(){return r.onTouched()})("compositionstart",function(){return r._compositionStart()})("compositionend",function(a){return r._compositionEnd(a.target.value)})},standalone:!1,features:[c([ht]),u]})}return n})();function V(n){return n==null||(typeof n=="string"||Array.isArray(n))&&n.length===0}function Be(n){return n!=null&&typeof n.length=="number"}var A=new M(""),L=new M(""),gt=/^(?=.{1,254}$)(?=.{1,64}@)[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,Se=class{static min(t){return Ue(t)}static max(t){return He(t)}static required(t){return mt(t)}static requiredTrue(t){return _t(t)}static email(t){return vt(t)}static minLength(t){return yt(t)}static maxLength(t){return Ct(t)}static pattern(t){return Le(t)}static nullValidator(t){return Y(t)}static compose(t){return Xe(t)}static composeAsync(t){return Ye(t)}};function Ue(n){return t=>{if(V(t.value)||V(n))return null;let e=parseFloat(t.value);return!isNaN(e)&&e<n?{min:{min:n,actual:t.value}}:null}}function He(n){return t=>{if(V(t.value)||V(n))return null;let e=parseFloat(t.value);return!isNaN(e)&&e>n?{max:{max:n,actual:t.value}}:null}}function mt(n){return V(n.value)?{required:!0}:null}function _t(n){return n.value===!0?null:{required:!0}}function vt(n){return V(n.value)||gt.test(n.value)?null:{email:!0}}function yt(n){return t=>V(t.value)||!Be(t.value)?null:t.value.length<n?{minlength:{requiredLength:n,actualLength:t.value.length}}:null}function Ct(n){return t=>Be(t.value)&&t.value.length>n?{maxlength:{requiredLength:n,actualLength:t.value.length}}:null}function Le(n){if(!n)return Y;let t,e;return typeof n=="string"?(e="",n.charAt(0)!=="^"&&(e+="^"),e+=n,n.charAt(n.length-1)!=="$"&&(e+="$"),t=new RegExp(e)):(e=n.toString(),t=n),i=>{if(V(i.value))return null;let r=i.value;return t.test(r)?null:{pattern:{requiredPattern:e,actualValue:r}}}}function Y(n){return null}function We(n){return n!=null}function $e(n){return Fe(n)?Ae(n):n}function qe(n){let t={};return n.forEach(e=>{t=e!=null?h(h({},t),e):t}),Object.keys(t).length===0?null:t}function ze(n,t){return t.map(e=>e(n))}function Vt(n){return!n.validate}function Ze(n){return n.map(t=>Vt(t)?t:e=>t.validate(e))}function Xe(n){if(!n)return null;let t=n.filter(We);return t.length==0?null:function(e){return qe(ze(e,t))}}function fe(n){return n!=null?Xe(Ze(n)):null}function Ye(n){if(!n)return null;let t=n.filter(We);return t.length==0?null:function(e){let i=ze(e,t).map($e);return Ee(i).pipe(Me(qe))}}function pe(n){return n!=null?Ye(Ze(n)):null}function Ne(n,t){return n===null?[t]:Array.isArray(n)?[...n,t]:[n,t]}function Ke(n){return n._rawValidators}function Je(n){return n._rawAsyncValidators}function ue(n){return n?Array.isArray(n)?n:[n]:[]}function K(n,t){return Array.isArray(n)?n.includes(t):n===t}function Oe(n,t){let e=ue(t);return ue(n).forEach(r=>{K(e,r)||e.push(r)}),e}function xe(n,t){return ue(t).filter(e=>!K(n,e))}var J=class{get value(){return this.control?this.control.value:null}get valid(){return this.control?this.control.valid:null}get invalid(){return this.control?this.control.invalid:null}get pending(){return this.control?this.control.pending:null}get disabled(){return this.control?this.control.disabled:null}get enabled(){return this.control?this.control.enabled:null}get errors(){return this.control?this.control.errors:null}get pristine(){return this.control?this.control.pristine:null}get dirty(){return this.control?this.control.dirty:null}get touched(){return this.control?this.control.touched:null}get status(){return this.control?this.control.status:null}get untouched(){return this.control?this.control.untouched:null}get statusChanges(){return this.control?this.control.statusChanges:null}get valueChanges(){return this.control?this.control.valueChanges:null}get path(){return null}_composedValidatorFn;_composedAsyncValidatorFn;_rawValidators=[];_rawAsyncValidators=[];_setValidators(t){this._rawValidators=t||[],this._composedValidatorFn=fe(this._rawValidators)}_setAsyncValidators(t){this._rawAsyncValidators=t||[],this._composedAsyncValidatorFn=pe(this._rawAsyncValidators)}get validator(){return this._composedValidatorFn||null}get asyncValidator(){return this._composedAsyncValidatorFn||null}_onDestroyCallbacks=[];_registerOnDestroy(t){this._onDestroyCallbacks.push(t)}_invokeOnDestroyCallbacks(){this._onDestroyCallbacks.forEach(t=>t()),this._onDestroyCallbacks=[]}reset(t=void 0){this.control&&this.control.reset(t)}hasError(t,e){return this.control?this.control.hasError(t,e):!1}getError(t,e){return this.control?this.control.getError(t,e):null}},_=class extends J{name;get formDirective(){return null}get path(){return null}},v=class extends J{_parent=null;name=null;valueAccessor=null},Q=class{_cd;constructor(t){this._cd=t}get isTouched(){var t,e,i,r,s;return(i=(e=(t=this._cd)==null?void 0:t.control)==null?void 0:e._touched)==null||i.call(e),!!((s=(r=this._cd)==null?void 0:r.control)!=null&&s.touched)}get isUntouched(){var t,e;return!!((e=(t=this._cd)==null?void 0:t.control)!=null&&e.untouched)}get isPristine(){var t,e,i,r,s;return(i=(e=(t=this._cd)==null?void 0:t.control)==null?void 0:e._pristine)==null||i.call(e),!!((s=(r=this._cd)==null?void 0:r.control)!=null&&s.pristine)}get isDirty(){var t,e;return!!((e=(t=this._cd)==null?void 0:t.control)!=null&&e.dirty)}get isValid(){var t,e,i,r,s;return(i=(e=(t=this._cd)==null?void 0:t.control)==null?void 0:e._status)==null||i.call(e),!!((s=(r=this._cd)==null?void 0:r.control)!=null&&s.valid)}get isInvalid(){var t,e;return!!((e=(t=this._cd)==null?void 0:t.control)!=null&&e.invalid)}get isPending(){var t,e;return!!((e=(t=this._cd)==null?void 0:t.control)!=null&&e.pending)}get isSubmitted(){var t,e,i;return(e=(t=this._cd)==null?void 0:t._submitted)==null||e.call(t),!!((i=this._cd)!=null&&i.submitted)}},Dt={"[class.ng-untouched]":"isUntouched","[class.ng-touched]":"isTouched","[class.ng-pristine]":"isPristine","[class.ng-dirty]":"isDirty","[class.ng-valid]":"isValid","[class.ng-invalid]":"isInvalid","[class.ng-pending]":"isPending"},Dn=f(h({},Dt),{"[class.ng-submitted]":"isSubmitted"}),bn=(()=>{class n extends Q{constructor(e){super(e)}static \u0275fac=function(i){return new(i||n)(o(v,2))};static \u0275dir=l({type:n,selectors:[["","formControlName",""],["","ngModel",""],["","formControl",""]],hostVars:14,hostBindings:function(i,r){i&2&&ae("ng-untouched",r.isUntouched)("ng-touched",r.isTouched)("ng-pristine",r.isPristine)("ng-dirty",r.isDirty)("ng-valid",r.isValid)("ng-invalid",r.isInvalid)("ng-pending",r.isPending)},standalone:!1,features:[u]})}return n})(),An=(()=>{class n extends Q{constructor(e){super(e)}static \u0275fac=function(i){return new(i||n)(o(_,10))};static \u0275dir=l({type:n,selectors:[["","formGroupName",""],["","formArrayName",""],["","ngModelGroup",""],["","formGroup",""],["form",3,"ngNoForm",""],["","ngForm",""]],hostVars:16,hostBindings:function(i,r){i&2&&ae("ng-untouched",r.isUntouched)("ng-touched",r.isTouched)("ng-pristine",r.isPristine)("ng-dirty",r.isDirty)("ng-valid",r.isValid)("ng-invalid",r.isInvalid)("ng-pending",r.isPending)("ng-submitted",r.isSubmitted)},standalone:!1,features:[u]})}return n})();var P="VALID",X="INVALID",I="PENDING",k="DISABLED",D=class{},ee=class extends D{value;source;constructor(t,e){super(),this.value=t,this.source=e}},R=class extends D{pristine;source;constructor(t,e){super(),this.pristine=t,this.source=e}},T=class extends D{touched;source;constructor(t,e){super(),this.touched=t,this.source=e}},S=class extends D{status;source;constructor(t,e){super(),this.status=t,this.source=e}},de=class extends D{source;constructor(t){super(),this.source=t}},ce=class extends D{source;constructor(t){super(),this.source=t}};function ge(n){return(re(n)?n.validators:n)||null}function bt(n){return Array.isArray(n)?fe(n):n||null}function me(n,t){return(re(t)?t.asyncValidators:n)||null}function At(n){return Array.isArray(n)?pe(n):n||null}function re(n){return n!=null&&!Array.isArray(n)&&typeof n=="object"}function Qe(n,t,e){let i=n.controls;if(!(t?Object.keys(i):i).length)throw new $(1e3,"");if(!i[e])throw new $(1001,"")}function et(n,t,e){n._forEachChild((i,r)=>{if(e[r]===void 0)throw new $(1002,"")})}var j=class{_pendingDirty=!1;_hasOwnPendingAsyncValidator=null;_pendingTouched=!1;_onCollectionChange=()=>{};_updateOn;_parent=null;_asyncValidationSubscription;_composedValidatorFn;_composedAsyncValidatorFn;_rawValidators;_rawAsyncValidators;value;constructor(t,e){this._assignValidators(t),this._assignAsyncValidators(e)}get validator(){return this._composedValidatorFn}set validator(t){this._rawValidators=this._composedValidatorFn=t}get asyncValidator(){return this._composedAsyncValidatorFn}set asyncValidator(t){this._rawAsyncValidators=this._composedAsyncValidatorFn=t}get parent(){return this._parent}get status(){return m(this.statusReactive)}set status(t){m(()=>this.statusReactive.set(t))}_status=w(()=>this.statusReactive());statusReactive=F(void 0);get valid(){return this.status===P}get invalid(){return this.status===X}get pending(){return this.status==I}get disabled(){return this.status===k}get enabled(){return this.status!==k}errors;get pristine(){return m(this.pristineReactive)}set pristine(t){m(()=>this.pristineReactive.set(t))}_pristine=w(()=>this.pristineReactive());pristineReactive=F(!0);get dirty(){return!this.pristine}get touched(){return m(this.touchedReactive)}set touched(t){m(()=>this.touchedReactive.set(t))}_touched=w(()=>this.touchedReactive());touchedReactive=F(!1);get untouched(){return!this.touched}_events=new be;events=this._events.asObservable();valueChanges;statusChanges;get updateOn(){return this._updateOn?this._updateOn:this.parent?this.parent.updateOn:"change"}setValidators(t){this._assignValidators(t)}setAsyncValidators(t){this._assignAsyncValidators(t)}addValidators(t){this.setValidators(Oe(t,this._rawValidators))}addAsyncValidators(t){this.setAsyncValidators(Oe(t,this._rawAsyncValidators))}removeValidators(t){this.setValidators(xe(t,this._rawValidators))}removeAsyncValidators(t){this.setAsyncValidators(xe(t,this._rawAsyncValidators))}hasValidator(t){return K(this._rawValidators,t)}hasAsyncValidator(t){return K(this._rawAsyncValidators,t)}clearValidators(){this.validator=null}clearAsyncValidators(){this.asyncValidator=null}markAsTouched(t={}){var r;let e=this.touched===!1;this.touched=!0;let i=(r=t.sourceControl)!=null?r:this;this._parent&&!t.onlySelf&&this._parent.markAsTouched(f(h({},t),{sourceControl:i})),e&&t.emitEvent!==!1&&this._events.next(new T(!0,i))}markAllAsTouched(t={}){this.markAsTouched({onlySelf:!0,emitEvent:t.emitEvent,sourceControl:this}),this._forEachChild(e=>e.markAllAsTouched(t))}markAsUntouched(t={}){var r;let e=this.touched===!0;this.touched=!1,this._pendingTouched=!1;let i=(r=t.sourceControl)!=null?r:this;this._forEachChild(s=>{s.markAsUntouched({onlySelf:!0,emitEvent:t.emitEvent,sourceControl:i})}),this._parent&&!t.onlySelf&&this._parent._updateTouched(t,i),e&&t.emitEvent!==!1&&this._events.next(new T(!1,i))}markAsDirty(t={}){var r;let e=this.pristine===!0;this.pristine=!1;let i=(r=t.sourceControl)!=null?r:this;this._parent&&!t.onlySelf&&this._parent.markAsDirty(f(h({},t),{sourceControl:i})),e&&t.emitEvent!==!1&&this._events.next(new R(!1,i))}markAsPristine(t={}){var r;let e=this.pristine===!1;this.pristine=!0,this._pendingDirty=!1;let i=(r=t.sourceControl)!=null?r:this;this._forEachChild(s=>{s.markAsPristine({onlySelf:!0,emitEvent:t.emitEvent})}),this._parent&&!t.onlySelf&&this._parent._updatePristine(t,i),e&&t.emitEvent!==!1&&this._events.next(new R(!0,i))}markAsPending(t={}){var i;this.status=I;let e=(i=t.sourceControl)!=null?i:this;t.emitEvent!==!1&&(this._events.next(new S(this.status,e)),this.statusChanges.emit(this.status)),this._parent&&!t.onlySelf&&this._parent.markAsPending(f(h({},t),{sourceControl:e}))}disable(t={}){var r;let e=this._parentMarkedDirty(t.onlySelf);this.status=k,this.errors=null,this._forEachChild(s=>{s.disable(f(h({},t),{onlySelf:!0}))}),this._updateValue();let i=(r=t.sourceControl)!=null?r:this;t.emitEvent!==!1&&(this._events.next(new ee(this.value,i)),this._events.next(new S(this.status,i)),this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors(f(h({},t),{skipPristineCheck:e}),this),this._onDisabledChange.forEach(s=>s(!0))}enable(t={}){let e=this._parentMarkedDirty(t.onlySelf);this.status=P,this._forEachChild(i=>{i.enable(f(h({},t),{onlySelf:!0}))}),this.updateValueAndValidity({onlySelf:!0,emitEvent:t.emitEvent}),this._updateAncestors(f(h({},t),{skipPristineCheck:e}),this),this._onDisabledChange.forEach(i=>i(!1))}_updateAncestors(t,e){this._parent&&!t.onlySelf&&(this._parent.updateValueAndValidity(t),t.skipPristineCheck||this._parent._updatePristine({},e),this._parent._updateTouched({},e))}setParent(t){this._parent=t}getRawValue(){return this.value}updateValueAndValidity(t={}){var i;if(this._setInitialStatus(),this._updateValue(),this.enabled){let r=this._cancelExistingSubscription();this.errors=this._runValidator(),this.status=this._calculateStatus(),(this.status===P||this.status===I)&&this._runAsyncValidator(r,t.emitEvent)}let e=(i=t.sourceControl)!=null?i:this;t.emitEvent!==!1&&(this._events.next(new ee(this.value,e)),this._events.next(new S(this.status,e)),this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._parent&&!t.onlySelf&&this._parent.updateValueAndValidity(f(h({},t),{sourceControl:e}))}_updateTreeValidity(t={emitEvent:!0}){this._forEachChild(e=>e._updateTreeValidity(t)),this.updateValueAndValidity({onlySelf:!0,emitEvent:t.emitEvent})}_setInitialStatus(){this.status=this._allControlsDisabled()?k:P}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(t,e){if(this.asyncValidator){this.status=I,this._hasOwnPendingAsyncValidator={emitEvent:e!==!1};let i=$e(this.asyncValidator(this));this._asyncValidationSubscription=i.subscribe(r=>{this._hasOwnPendingAsyncValidator=null,this.setErrors(r,{emitEvent:e,shouldHaveEmitted:t})})}}_cancelExistingSubscription(){var t,e;if(this._asyncValidationSubscription){this._asyncValidationSubscription.unsubscribe();let i=(e=(t=this._hasOwnPendingAsyncValidator)==null?void 0:t.emitEvent)!=null?e:!1;return this._hasOwnPendingAsyncValidator=null,i}return!1}setErrors(t,e={}){this.errors=t,this._updateControlsErrors(e.emitEvent!==!1,this,e.shouldHaveEmitted)}get(t){let e=t;return e==null||(Array.isArray(e)||(e=e.split(".")),e.length===0)?null:e.reduce((i,r)=>i&&i._find(r),this)}getError(t,e){let i=e?this.get(e):this;return i&&i.errors?i.errors[t]:null}hasError(t,e){return!!this.getError(t,e)}get root(){let t=this;for(;t._parent;)t=t._parent;return t}_updateControlsErrors(t,e,i){this.status=this._calculateStatus(),t&&this.statusChanges.emit(this.status),(t||i)&&this._events.next(new S(this.status,e)),this._parent&&this._parent._updateControlsErrors(t,e,i)}_initObservables(){this.valueChanges=new y,this.statusChanges=new y}_calculateStatus(){return this._allControlsDisabled()?k:this.errors?X:this._hasOwnPendingAsyncValidator||this._anyControlsHaveStatus(I)?I:this._anyControlsHaveStatus(X)?X:P}_anyControlsHaveStatus(t){return this._anyControls(e=>e.status===t)}_anyControlsDirty(){return this._anyControls(t=>t.dirty)}_anyControlsTouched(){return this._anyControls(t=>t.touched)}_updatePristine(t,e){let i=!this._anyControlsDirty(),r=this.pristine!==i;this.pristine=i,this._parent&&!t.onlySelf&&this._parent._updatePristine(t,e),r&&this._events.next(new R(this.pristine,e))}_updateTouched(t={},e){this.touched=this._anyControlsTouched(),this._events.next(new T(this.touched,e)),this._parent&&!t.onlySelf&&this._parent._updateTouched(t,e)}_onDisabledChange=[];_registerOnCollectionChange(t){this._onCollectionChange=t}_setUpdateStrategy(t){re(t)&&t.updateOn!=null&&(this._updateOn=t.updateOn)}_parentMarkedDirty(t){let e=this._parent&&this._parent.dirty;return!t&&!!e&&!this._parent._anyControlsDirty()}_find(t){return null}_assignValidators(t){this._rawValidators=Array.isArray(t)?t.slice():t,this._composedValidatorFn=bt(this._rawValidators)}_assignAsyncValidators(t){this._rawAsyncValidators=Array.isArray(t)?t.slice():t,this._composedAsyncValidatorFn=At(this._rawAsyncValidators)}},B=class extends j{constructor(t,e,i){super(ge(e),me(i,e)),this.controls=t,this._initObservables(),this._setUpdateStrategy(e),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}controls;registerControl(t,e){return this.controls[t]?this.controls[t]:(this.controls[t]=e,e.setParent(this),e._registerOnCollectionChange(this._onCollectionChange),e)}addControl(t,e,i={}){this.registerControl(t,e),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}removeControl(t,e={}){this.controls[t]&&this.controls[t]._registerOnCollectionChange(()=>{}),delete this.controls[t],this.updateValueAndValidity({emitEvent:e.emitEvent}),this._onCollectionChange()}setControl(t,e,i={}){this.controls[t]&&this.controls[t]._registerOnCollectionChange(()=>{}),delete this.controls[t],e&&this.registerControl(t,e),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}contains(t){return this.controls.hasOwnProperty(t)&&this.controls[t].enabled}setValue(t,e={}){et(this,!0,t),Object.keys(t).forEach(i=>{Qe(this,!0,i),this.controls[i].setValue(t[i],{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e)}patchValue(t,e={}){t!=null&&(Object.keys(t).forEach(i=>{let r=this.controls[i];r&&r.patchValue(t[i],{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e))}reset(t={},e={}){this._forEachChild((i,r)=>{i.reset(t?t[r]:null,{onlySelf:!0,emitEvent:e.emitEvent})}),this._updatePristine(e,this),this._updateTouched(e,this),this.updateValueAndValidity(e)}getRawValue(){return this._reduceChildren({},(t,e,i)=>(t[i]=e.getRawValue(),t))}_syncPendingControls(){let t=this._reduceChildren(!1,(e,i)=>i._syncPendingControls()?!0:e);return t&&this.updateValueAndValidity({onlySelf:!0}),t}_forEachChild(t){Object.keys(this.controls).forEach(e=>{let i=this.controls[e];i&&t(i,e)})}_setUpControls(){this._forEachChild(t=>{t.setParent(this),t._registerOnCollectionChange(this._onCollectionChange)})}_updateValue(){this.value=this._reduceValue()}_anyControls(t){for(let[e,i]of Object.entries(this.controls))if(this.contains(e)&&t(i))return!0;return!1}_reduceValue(){let t={};return this._reduceChildren(t,(e,i,r)=>((i.enabled||this.disabled)&&(e[r]=i.value),e))}_reduceChildren(t,e){let i=t;return this._forEachChild((r,s)=>{i=e(i,r,s)}),i}_allControlsDisabled(){for(let t of Object.keys(this.controls))if(this.controls[t].enabled)return!1;return Object.keys(this.controls).length>0||this.disabled}_find(t){return this.controls.hasOwnProperty(t)?this.controls[t]:null}};var Mn=B;var N=new M("CallSetDisabledState",{providedIn:"root",factory:()=>se}),se="always";function tt(n,t){return[...t.path,n]}function U(n,t,e=se){var i,r;_e(n,t),t.valueAccessor.writeValue(n.value),(n.disabled||e==="always")&&((r=(i=t.valueAccessor).setDisabledState)==null||r.call(i,n.disabled)),Et(n,t),wt(n,t),Ft(n,t),Mt(n,t)}function te(n,t,e=!0){let i=()=>{};t.valueAccessor&&(t.valueAccessor.registerOnChange(i),t.valueAccessor.registerOnTouched(i)),ie(n,t),n&&(t._invokeOnDestroyCallbacks(),n._registerOnCollectionChange(()=>{}))}function ne(n,t){n.forEach(e=>{e.registerOnValidatorChange&&e.registerOnValidatorChange(t)})}function Mt(n,t){if(t.valueAccessor.setDisabledState){let e=i=>{t.valueAccessor.setDisabledState(i)};n.registerOnDisabledChange(e),t._registerOnDestroy(()=>{n._unregisterOnDisabledChange(e)})}}function _e(n,t){let e=Ke(n);t.validator!==null?n.setValidators(Ne(e,t.validator)):typeof e=="function"&&n.setValidators([e]);let i=Je(n);t.asyncValidator!==null?n.setAsyncValidators(Ne(i,t.asyncValidator)):typeof i=="function"&&n.setAsyncValidators([i]);let r=()=>n.updateValueAndValidity();ne(t._rawValidators,r),ne(t._rawAsyncValidators,r)}function ie(n,t){let e=!1;if(n!==null){if(t.validator!==null){let r=Ke(n);if(Array.isArray(r)&&r.length>0){let s=r.filter(a=>a!==t.validator);s.length!==r.length&&(e=!0,n.setValidators(s))}}if(t.asyncValidator!==null){let r=Je(n);if(Array.isArray(r)&&r.length>0){let s=r.filter(a=>a!==t.asyncValidator);s.length!==r.length&&(e=!0,n.setAsyncValidators(s))}}}let i=()=>{};return ne(t._rawValidators,i),ne(t._rawAsyncValidators,i),e}function Et(n,t){t.valueAccessor.registerOnChange(e=>{n._pendingValue=e,n._pendingChange=!0,n._pendingDirty=!0,n.updateOn==="change"&&nt(n,t)})}function Ft(n,t){t.valueAccessor.registerOnTouched(()=>{n._pendingTouched=!0,n.updateOn==="blur"&&n._pendingChange&&nt(n,t),n.updateOn!=="submit"&&n.markAsTouched()})}function nt(n,t){n._pendingDirty&&n.markAsDirty(),n.setValue(n._pendingValue,{emitModelToViewChange:!1}),t.viewToModelUpdate(n._pendingValue),n._pendingChange=!1}function wt(n,t){let e=(i,r)=>{t.valueAccessor.writeValue(i),r&&t.viewToModelUpdate(i)};n.registerOnChange(e),t._registerOnDestroy(()=>{n._unregisterOnChange(e)})}function it(n,t){n==null,_e(n,t)}function It(n,t){return ie(n,t)}function ve(n,t){if(!n.hasOwnProperty("model"))return!1;let e=n.model;return e.isFirstChange()?!0:!Object.is(t,e.currentValue)}function St(n){return Object.getPrototypeOf(n.constructor)===H}function rt(n,t){n._syncPendingControls(),t.forEach(e=>{let i=e.control;i.updateOn==="submit"&&i._pendingChange&&(e.viewToModelUpdate(i._pendingValue),i._pendingChange=!1)})}function ye(n,t){if(!t)return null;Array.isArray(t);let e,i,r;return t.forEach(s=>{s.constructor===je?e=s:St(s)?i=s:r=s}),r||i||e||null}function Nt(n,t){let e=n.indexOf(t);e>-1&&n.splice(e,1)}var Ot={provide:_,useExisting:d(()=>xt)},G=Promise.resolve(),xt=(()=>{class n extends _{callSetDisabledState;get submitted(){return m(this.submittedReactive)}_submitted=w(()=>this.submittedReactive());submittedReactive=F(!1);_directives=new Set;form;ngSubmit=new y;options;constructor(e,i,r){super(),this.callSetDisabledState=r,this.form=new B({},fe(e),pe(i))}ngAfterViewInit(){this._setUpdateStrategy()}get formDirective(){return this}get control(){return this.form}get path(){return[]}get controls(){return this.form.controls}addControl(e){G.then(()=>{let i=this._findContainer(e.path);e.control=i.registerControl(e.name,e.control),U(e.control,e,this.callSetDisabledState),e.control.updateValueAndValidity({emitEvent:!1}),this._directives.add(e)})}getControl(e){return this.form.get(e.path)}removeControl(e){G.then(()=>{let i=this._findContainer(e.path);i&&i.removeControl(e.name),this._directives.delete(e)})}addFormGroup(e){G.then(()=>{let i=this._findContainer(e.path),r=new B({});it(r,e),i.registerControl(e.name,r),r.updateValueAndValidity({emitEvent:!1})})}removeFormGroup(e){G.then(()=>{let i=this._findContainer(e.path);i&&i.removeControl(e.name)})}getFormGroup(e){return this.form.get(e.path)}updateModel(e,i){G.then(()=>{this.form.get(e.path).setValue(i)})}setValue(e){this.control.setValue(e)}onSubmit(e){var i;return this.submittedReactive.set(!0),rt(this.form,this._directives),this.ngSubmit.emit(e),((i=e==null?void 0:e.target)==null?void 0:i.method)==="dialog"}onReset(){this.resetForm()}resetForm(e=void 0){this.form.reset(e),this.submittedReactive.set(!1)}_setUpdateStrategy(){this.options&&this.options.updateOn!=null&&(this.form._updateOn=this.options.updateOn)}_findContainer(e){return e.pop(),e.length?this.form.get(e):this.form}static \u0275fac=function(i){return new(i||n)(o(A,10),o(L,10),o(N,8))};static \u0275dir=l({type:n,selectors:[["form",3,"ngNoForm","",3,"formGroup",""],["ng-form"],["","ngForm",""]],hostBindings:function(i,r){i&1&&C("submit",function(a){return r.onSubmit(a)})("reset",function(){return r.onReset()})},inputs:{options:[0,"ngFormOptions","options"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],standalone:!1,features:[c([Ot]),u]})}return n})();function Pe(n,t){let e=n.indexOf(t);e>-1&&n.splice(e,1)}function ke(n){return typeof n=="object"&&n!==null&&Object.keys(n).length===2&&"value"in n&&"disabled"in n}var Ce=class extends j{defaultValue=null;_onChange=[];_pendingValue;_pendingChange=!1;constructor(t=null,e,i){super(ge(e),me(i,e)),this._applyFormState(t),this._setUpdateStrategy(e),this._initObservables(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator}),re(e)&&(e.nonNullable||e.initialValueIsDefault)&&(ke(t)?this.defaultValue=t.value:this.defaultValue=t)}setValue(t,e={}){this.value=this._pendingValue=t,this._onChange.length&&e.emitModelToViewChange!==!1&&this._onChange.forEach(i=>i(this.value,e.emitViewToModelChange!==!1)),this.updateValueAndValidity(e)}patchValue(t,e={}){this.setValue(t,e)}reset(t=this.defaultValue,e={}){this._applyFormState(t),this.markAsPristine(e),this.markAsUntouched(e),this.setValue(this.value,e),this._pendingChange=!1}_updateValue(){}_anyControls(t){return!1}_allControlsDisabled(){return this.disabled}registerOnChange(t){this._onChange.push(t)}_unregisterOnChange(t){Pe(this._onChange,t)}registerOnDisabledChange(t){this._onDisabledChange.push(t)}_unregisterOnDisabledChange(t){Pe(this._onDisabledChange,t)}_forEachChild(t){}_syncPendingControls(){return this.updateOn==="submit"&&(this._pendingDirty&&this.markAsDirty(),this._pendingTouched&&this.markAsTouched(),this._pendingChange)?(this.setValue(this._pendingValue,{onlySelf:!0,emitModelToViewChange:!1}),!0):!1}_applyFormState(t){ke(t)?(this.value=this._pendingValue=t.value,t.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this.value=this._pendingValue=t}},Fn=Ce,Pt=n=>n instanceof Ce;var kt={provide:v,useExisting:d(()=>Gt)},Ge=Promise.resolve(),Gt=(()=>{class n extends v{_changeDetectorRef;callSetDisabledState;control=new Ce;static ngAcceptInputType_isDisabled;_registered=!1;viewModel;name="";isDisabled;model;options;update=new y;constructor(e,i,r,s,a,p){super(),this._changeDetectorRef=a,this.callSetDisabledState=p,this._parent=e,this._setValidators(i),this._setAsyncValidators(r),this.valueAccessor=ye(this,s)}ngOnChanges(e){if(this._checkForErrors(),!this._registered||"name"in e){if(this._registered&&(this._checkName(),this.formDirective)){let i=e.name.previousValue;this.formDirective.removeControl({name:i,path:this._getPath(i)})}this._setUpControl()}"isDisabled"in e&&this._updateDisabled(e),ve(e,this.viewModel)&&(this._updateValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}get path(){return this._getPath(this.name)}get formDirective(){return this._parent?this._parent.formDirective:null}viewToModelUpdate(e){this.viewModel=e,this.update.emit(e)}_setUpControl(){this._setUpdateStrategy(),this._isStandalone()?this._setUpStandalone():this.formDirective.addControl(this),this._registered=!0}_setUpdateStrategy(){this.options&&this.options.updateOn!=null&&(this.control._updateOn=this.options.updateOn)}_isStandalone(){return!this._parent||!!(this.options&&this.options.standalone)}_setUpStandalone(){U(this.control,this,this.callSetDisabledState),this.control.updateValueAndValidity({emitEvent:!1})}_checkForErrors(){this._isStandalone()||this._checkParentType(),this._checkName()}_checkParentType(){}_checkName(){this.options&&this.options.name&&(this.name=this.options.name),!this._isStandalone()&&this.name}_updateValue(e){Ge.then(()=>{var i;this.control.setValue(e,{emitViewToModelChange:!1}),(i=this._changeDetectorRef)==null||i.markForCheck()})}_updateDisabled(e){let i=e.isDisabled.currentValue,r=i!==0&&Ie(i);Ge.then(()=>{var s;r&&!this.control.disabled?this.control.disable():!r&&this.control.disabled&&this.control.enable(),(s=this._changeDetectorRef)==null||s.markForCheck()})}_getPath(e){return this._parent?tt(e,this._parent):[e]}static \u0275fac=function(i){return new(i||n)(o(_,9),o(A,10),o(L,10),o(b,10),o(we,8),o(N,8))};static \u0275dir=l({type:n,selectors:[["","ngModel","",3,"formControlName","",3,"formControl",""]],inputs:{name:"name",isDisabled:[0,"disabled","isDisabled"],model:[0,"ngModel","model"],options:[0,"ngModelOptions","options"]},outputs:{update:"ngModelChange"},exportAs:["ngModel"],standalone:!1,features:[c([kt]),u,E]})}return n})(),wn=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275dir=l({type:n,selectors:[["form",3,"ngNoForm","",3,"ngNativeValidate",""]],hostAttrs:["novalidate",""],standalone:!1})}return n})(),Rt={provide:b,useExisting:d(()=>Tt),multi:!0},Tt=(()=>{class n extends H{writeValue(e){let i=e==null?"":e;this.setProperty("value",i)}registerOnChange(e){this.onChange=i=>{e(i==""?null:parseFloat(i))}}static \u0275fac=(()=>{let e;return function(r){return(e||(e=g(n)))(r||n)}})();static \u0275dir=l({type:n,selectors:[["input","type","number","formControlName",""],["input","type","number","formControl",""],["input","type","number","ngModel",""]],hostBindings:function(i,r){i&1&&C("input",function(a){return r.onChange(a.target.value)})("blur",function(){return r.onTouched()})},standalone:!1,features:[c([Rt]),u]})}return n})();var Ve=new M(""),jt={provide:v,useExisting:d(()=>Bt)},Bt=(()=>{class n extends v{_ngModelWarningConfig;callSetDisabledState;viewModel;form;set isDisabled(e){}model;update=new y;static _ngModelWarningSentOnce=!1;_ngModelWarningSent=!1;constructor(e,i,r,s,a){super(),this._ngModelWarningConfig=s,this.callSetDisabledState=a,this._setValidators(e),this._setAsyncValidators(i),this.valueAccessor=ye(this,r)}ngOnChanges(e){if(this._isControlChanged(e)){let i=e.form.previousValue;i&&te(i,this,!1),U(this.form,this,this.callSetDisabledState),this.form.updateValueAndValidity({emitEvent:!1})}ve(e,this.viewModel)&&(this.form.setValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.form&&te(this.form,this,!1)}get path(){return[]}get control(){return this.form}viewToModelUpdate(e){this.viewModel=e,this.update.emit(e)}_isControlChanged(e){return e.hasOwnProperty("form")}static \u0275fac=function(i){return new(i||n)(o(A,10),o(L,10),o(b,10),o(Ve,8),o(N,8))};static \u0275dir=l({type:n,selectors:[["","formControl",""]],inputs:{form:[0,"formControl","form"],isDisabled:[0,"disabled","isDisabled"],model:[0,"ngModel","model"]},outputs:{update:"ngModelChange"},exportAs:["ngForm"],standalone:!1,features:[c([jt]),u,E]})}return n})(),Ut={provide:_,useExisting:d(()=>Ht)},Ht=(()=>{class n extends _{callSetDisabledState;get submitted(){return m(this._submittedReactive)}set submitted(e){this._submittedReactive.set(e)}_submitted=w(()=>this._submittedReactive());_submittedReactive=F(!1);_oldForm;_onCollectionChange=()=>this._updateDomValue();directives=[];form=null;ngSubmit=new y;constructor(e,i,r){super(),this.callSetDisabledState=r,this._setValidators(e),this._setAsyncValidators(i)}ngOnChanges(e){this._checkFormPresent(),e.hasOwnProperty("form")&&(this._updateValidators(),this._updateDomValue(),this._updateRegistrations(),this._oldForm=this.form)}ngOnDestroy(){this.form&&(ie(this.form,this),this.form._onCollectionChange===this._onCollectionChange&&this.form._registerOnCollectionChange(()=>{}))}get formDirective(){return this}get control(){return this.form}get path(){return[]}addControl(e){let i=this.form.get(e.path);return U(i,e,this.callSetDisabledState),i.updateValueAndValidity({emitEvent:!1}),this.directives.push(e),i}getControl(e){return this.form.get(e.path)}removeControl(e){te(e.control||null,e,!1),Nt(this.directives,e)}addFormGroup(e){this._setUpFormContainer(e)}removeFormGroup(e){this._cleanUpFormContainer(e)}getFormGroup(e){return this.form.get(e.path)}addFormArray(e){this._setUpFormContainer(e)}removeFormArray(e){this._cleanUpFormContainer(e)}getFormArray(e){return this.form.get(e.path)}updateModel(e,i){this.form.get(e.path).setValue(i)}onSubmit(e){var i;return this._submittedReactive.set(!0),rt(this.form,this.directives),this.ngSubmit.emit(e),this.form._events.next(new de(this.control)),((i=e==null?void 0:e.target)==null?void 0:i.method)==="dialog"}onReset(){this.resetForm()}resetForm(e=void 0){this.form.reset(e),this._submittedReactive.set(!1),this.form._events.next(new ce(this.form))}_updateDomValue(){this.directives.forEach(e=>{let i=e.control,r=this.form.get(e.path);i!==r&&(te(i||null,e),Pt(r)&&(U(r,e,this.callSetDisabledState),e.control=r))}),this.form._updateTreeValidity({emitEvent:!1})}_setUpFormContainer(e){let i=this.form.get(e.path);it(i,e),i.updateValueAndValidity({emitEvent:!1})}_cleanUpFormContainer(e){if(this.form){let i=this.form.get(e.path);i&&It(i,e)&&i.updateValueAndValidity({emitEvent:!1})}}_updateRegistrations(){this.form._registerOnCollectionChange(this._onCollectionChange),this._oldForm&&this._oldForm._registerOnCollectionChange(()=>{})}_updateValidators(){_e(this.form,this),this._oldForm&&ie(this._oldForm,this)}_checkFormPresent(){this.form}static \u0275fac=function(i){return new(i||n)(o(A,10),o(L,10),o(N,8))};static \u0275dir=l({type:n,selectors:[["","formGroup",""]],hostBindings:function(i,r){i&1&&C("submit",function(a){return r.onSubmit(a)})("reset",function(){return r.onReset()})},inputs:{form:[0,"formGroup","form"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],standalone:!1,features:[c([Ut]),u,E]})}return n})();var Lt={provide:v,useExisting:d(()=>Wt)},Wt=(()=>{class n extends v{_ngModelWarningConfig;_added=!1;viewModel;control;name=null;set isDisabled(e){}model;update=new y;static _ngModelWarningSentOnce=!1;_ngModelWarningSent=!1;constructor(e,i,r,s,a){super(),this._ngModelWarningConfig=a,this._parent=e,this._setValidators(i),this._setAsyncValidators(r),this.valueAccessor=ye(this,s)}ngOnChanges(e){this._added||this._setUpControl(),ve(e,this.viewModel)&&(this.viewModel=this.model,this.formDirective.updateModel(this,this.model))}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}viewToModelUpdate(e){this.viewModel=e,this.update.emit(e)}get path(){return tt(this.name==null?this.name:this.name.toString(),this._parent)}get formDirective(){return this._parent?this._parent.formDirective:null}_checkParentType(){}_setUpControl(){this._checkParentType(),this.control=this.formDirective.addControl(this),this._added=!0}static \u0275fac=function(i){return new(i||n)(o(_,13),o(A,10),o(L,10),o(b,10),o(Ve,8))};static \u0275dir=l({type:n,selectors:[["","formControlName",""]],inputs:{name:[0,"formControlName","name"],isDisabled:[0,"disabled","isDisabled"],model:[0,"ngModel","model"]},outputs:{update:"ngModelChange"},standalone:!1,features:[c([Lt]),u,E]})}return n})(),$t={provide:b,useExisting:d(()=>ot),multi:!0};function st(n,t){return n==null?`${t}`:(t&&typeof t=="object"&&(t="Object"),`${n}: ${t}`.slice(0,50))}function qt(n){return n.split(":")[0]}var ot=(()=>{class n extends H{value;_optionMap=new Map;_idCounter=0;set compareWith(e){this._compareWith=e}_compareWith=Object.is;writeValue(e){this.value=e;let i=this._getOptionId(e),r=st(i,e);this.setProperty("value",r)}registerOnChange(e){this.onChange=i=>{this.value=this._getOptionValue(i),e(this.value)}}_registerOption(){return(this._idCounter++).toString()}_getOptionId(e){for(let i of this._optionMap.keys())if(this._compareWith(this._optionMap.get(i),e))return i;return null}_getOptionValue(e){let i=qt(e);return this._optionMap.has(i)?this._optionMap.get(i):e}static \u0275fac=(()=>{let e;return function(r){return(e||(e=g(n)))(r||n)}})();static \u0275dir=l({type:n,selectors:[["select","formControlName","",3,"multiple",""],["select","formControl","",3,"multiple",""],["select","ngModel","",3,"multiple",""]],hostBindings:function(i,r){i&1&&C("change",function(a){return r.onChange(a.target.value)})("blur",function(){return r.onTouched()})},inputs:{compareWith:"compareWith"},standalone:!1,features:[c([$t]),u]})}return n})(),In=(()=>{class n{_element;_renderer;_select;id;constructor(e,i,r){this._element=e,this._renderer=i,this._select=r,this._select&&(this.id=this._select._registerOption())}set ngValue(e){this._select!=null&&(this._select._optionMap.set(this.id,e),this._setElementValue(st(this.id,e)),this._select.writeValue(this._select.value))}set value(e){this._setElementValue(e),this._select&&this._select.writeValue(this._select.value)}_setElementValue(e){this._renderer.setProperty(this._element.nativeElement,"value",e)}ngOnDestroy(){this._select&&(this._select._optionMap.delete(this.id),this._select.writeValue(this._select.value))}static \u0275fac=function(i){return new(i||n)(o(O),o(x),o(ot,9))};static \u0275dir=l({type:n,selectors:[["option"]],inputs:{ngValue:"ngValue",value:"value"},standalone:!1})}return n})(),zt={provide:b,useExisting:d(()=>at),multi:!0};function Re(n,t){return n==null?`${t}`:(typeof t=="string"&&(t=`'${t}'`),t&&typeof t=="object"&&(t="Object"),`${n}: ${t}`.slice(0,50))}function Zt(n){return n.split(":")[0]}var at=(()=>{class n extends H{value;_optionMap=new Map;_idCounter=0;set compareWith(e){this._compareWith=e}_compareWith=Object.is;writeValue(e){this.value=e;let i;if(Array.isArray(e)){let r=e.map(s=>this._getOptionId(s));i=(s,a)=>{s._setSelected(r.indexOf(a.toString())>-1)}}else i=(r,s)=>{r._setSelected(!1)};this._optionMap.forEach(i)}registerOnChange(e){this.onChange=i=>{let r=[],s=i.selectedOptions;if(s!==void 0){let a=s;for(let p=0;p<a.length;p++){let W=a[p],oe=this._getOptionValue(W.value);r.push(oe)}}else{let a=i.options;for(let p=0;p<a.length;p++){let W=a[p];if(W.selected){let oe=this._getOptionValue(W.value);r.push(oe)}}}this.value=r,e(r)}}_registerOption(e){let i=(this._idCounter++).toString();return this._optionMap.set(i,e),i}_getOptionId(e){for(let i of this._optionMap.keys())if(this._compareWith(this._optionMap.get(i)._value,e))return i;return null}_getOptionValue(e){let i=Zt(e);return this._optionMap.has(i)?this._optionMap.get(i)._value:e}static \u0275fac=(()=>{let e;return function(r){return(e||(e=g(n)))(r||n)}})();static \u0275dir=l({type:n,selectors:[["select","multiple","","formControlName",""],["select","multiple","","formControl",""],["select","multiple","","ngModel",""]],hostBindings:function(i,r){i&1&&C("change",function(a){return r.onChange(a.target)})("blur",function(){return r.onTouched()})},inputs:{compareWith:"compareWith"},standalone:!1,features:[c([zt]),u]})}return n})(),Sn=(()=>{class n{_element;_renderer;_select;id;_value;constructor(e,i,r){this._element=e,this._renderer=i,this._select=r,this._select&&(this.id=this._select._registerOption(this))}set ngValue(e){this._select!=null&&(this._value=e,this._setElementValue(Re(this.id,e)),this._select.writeValue(this._select.value))}set value(e){this._select?(this._value=e,this._setElementValue(Re(this.id,e)),this._select.writeValue(this._select.value)):this._setElementValue(e)}_setElementValue(e){this._renderer.setProperty(this._element.nativeElement,"value",e)}_setSelected(e){this._renderer.setProperty(this._element.nativeElement,"selected",e)}ngOnDestroy(){this._select&&(this._select._optionMap.delete(this.id),this._select.writeValue(this._select.value))}static \u0275fac=function(i){return new(i||n)(o(O),o(x),o(at,9))};static \u0275dir=l({type:n,selectors:[["option"]],inputs:{ngValue:"ngValue",value:"value"},standalone:!1})}return n})();function lt(n){return typeof n=="number"?n:parseFloat(n)}var De=(()=>{class n{_validator=Y;_onChange;_enabled;ngOnChanges(e){if(this.inputName in e){let i=this.normalizeInput(e[this.inputName].currentValue);this._enabled=this.enabled(i),this._validator=this._enabled?this.createValidator(i):Y,this._onChange&&this._onChange()}}validate(e){return this._validator(e)}registerOnValidatorChange(e){this._onChange=e}enabled(e){return e!=null}static \u0275fac=function(i){return new(i||n)};static \u0275dir=l({type:n,features:[E]})}return n})(),Xt={provide:A,useExisting:d(()=>Yt),multi:!0},Yt=(()=>{class n extends De{max;inputName="max";normalizeInput=e=>lt(e);createValidator=e=>He(e);static \u0275fac=(()=>{let e;return function(r){return(e||(e=g(n)))(r||n)}})();static \u0275dir=l({type:n,selectors:[["input","type","number","max","","formControlName",""],["input","type","number","max","","formControl",""],["input","type","number","max","","ngModel",""]],hostVars:1,hostBindings:function(i,r){i&2&&Z("max",r._enabled?r.max:null)},inputs:{max:"max"},standalone:!1,features:[c([Xt]),u]})}return n})(),Kt={provide:A,useExisting:d(()=>Jt),multi:!0},Jt=(()=>{class n extends De{min;inputName="min";normalizeInput=e=>lt(e);createValidator=e=>Ue(e);static \u0275fac=(()=>{let e;return function(r){return(e||(e=g(n)))(r||n)}})();static \u0275dir=l({type:n,selectors:[["input","type","number","min","","formControlName",""],["input","type","number","min","","formControl",""],["input","type","number","min","","ngModel",""]],hostVars:1,hostBindings:function(i,r){i&2&&Z("min",r._enabled?r.min:null)},inputs:{min:"min"},standalone:!1,features:[c([Kt]),u]})}return n})();var Qt={provide:A,useExisting:d(()=>en),multi:!0},en=(()=>{class n extends De{pattern;inputName="pattern";normalizeInput=e=>e;createValidator=e=>Le(e);static \u0275fac=(()=>{let e;return function(r){return(e||(e=g(n)))(r||n)}})();static \u0275dir=l({type:n,selectors:[["","pattern","","formControlName",""],["","pattern","","formControl",""],["","pattern","","ngModel",""]],hostVars:1,hostBindings:function(i,r){i&2&&Z("pattern",r._enabled?r.pattern:null)},inputs:{pattern:"pattern"},standalone:!1,features:[c([Qt]),u]})}return n})();var ut=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=z({type:n});static \u0275inj=q({})}return n})(),he=class extends j{constructor(t,e,i){super(ge(e),me(i,e)),this.controls=t,this._initObservables(),this._setUpdateStrategy(e),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}controls;at(t){return this.controls[this._adjustIndex(t)]}push(t,e={}){this.controls.push(t),this._registerControl(t),this.updateValueAndValidity({emitEvent:e.emitEvent}),this._onCollectionChange()}insert(t,e,i={}){this.controls.splice(t,0,e),this._registerControl(e),this.updateValueAndValidity({emitEvent:i.emitEvent})}removeAt(t,e={}){let i=this._adjustIndex(t);i<0&&(i=0),this.controls[i]&&this.controls[i]._registerOnCollectionChange(()=>{}),this.controls.splice(i,1),this.updateValueAndValidity({emitEvent:e.emitEvent})}setControl(t,e,i={}){let r=this._adjustIndex(t);r<0&&(r=0),this.controls[r]&&this.controls[r]._registerOnCollectionChange(()=>{}),this.controls.splice(r,1),e&&(this.controls.splice(r,0,e),this._registerControl(e)),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}get length(){return this.controls.length}setValue(t,e={}){et(this,!1,t),t.forEach((i,r)=>{Qe(this,!1,r),this.at(r).setValue(i,{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e)}patchValue(t,e={}){t!=null&&(t.forEach((i,r)=>{this.at(r)&&this.at(r).patchValue(i,{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e))}reset(t=[],e={}){this._forEachChild((i,r)=>{i.reset(t[r],{onlySelf:!0,emitEvent:e.emitEvent})}),this._updatePristine(e,this),this._updateTouched(e,this),this.updateValueAndValidity(e)}getRawValue(){return this.controls.map(t=>t.getRawValue())}clear(t={}){this.controls.length<1||(this._forEachChild(e=>e._registerOnCollectionChange(()=>{})),this.controls.splice(0),this.updateValueAndValidity({emitEvent:t.emitEvent}))}_adjustIndex(t){return t<0?t+this.length:t}_syncPendingControls(){let t=this.controls.reduce((e,i)=>i._syncPendingControls()?!0:e,!1);return t&&this.updateValueAndValidity({onlySelf:!0}),t}_forEachChild(t){this.controls.forEach((e,i)=>{t(e,i)})}_updateValue(){this.value=this.controls.filter(t=>t.enabled||this.disabled).map(t=>t.value)}_anyControls(t){return this.controls.some(e=>e.enabled&&t(e))}_setUpControls(){this._forEachChild(t=>this._registerControl(t))}_allControlsDisabled(){for(let t of this.controls)if(t.enabled)return!1;return this.controls.length>0||this.disabled}_registerControl(t){t.setParent(this),t._registerOnCollectionChange(this._onCollectionChange)}_find(t){var e;return(e=this.at(t))!=null?e:null}},Nn=he;var On=(()=>{class n{static withConfig(e){var i;return{ngModule:n,providers:[{provide:N,useValue:(i=e.callSetDisabledState)!=null?i:se}]}}static \u0275fac=function(i){return new(i||n)};static \u0275mod=z({type:n});static \u0275inj=q({imports:[ut]})}return n})(),xn=(()=>{class n{static withConfig(e){var i,r;return{ngModule:n,providers:[{provide:Ve,useValue:(i=e.warnOnNgModelWithFormControl)!=null?i:"always"},{provide:N,useValue:(r=e.callSetDisabledState)!=null?r:se}]}}static \u0275fac=function(i){return new(i||n)};static \u0275mod=z({type:n});static \u0275inj=q({imports:[ut]})}return n})();export{b as a,ct as b,je as c,Se as d,bn as e,An as f,B as g,Mn as h,xt as i,Ce as j,Fn as k,Gt as l,wn as m,Tt as n,Bt as o,Ht as p,Wt as q,ot as r,In as s,Sn as t,Yt as u,Jt as v,en as w,Nn as x,On as y,xn as z};
|
package/public/chunk-RBHJOIVB.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as h}from"./chunk-5BHGCTWL.js";import{b}from"./chunk-3IX3CLER.js";import{Bc as y,Cc as T,Gb as c,Wb as r,Xb as o,Yb as p,cc as u,gb as l,ib as s,kc as f,lc as v,n as m,na as a,nc as g,oc as w,rb as d}from"./chunk-TXOB7R5K.js";var C=["terminaloutput"],k=(()=>{class t{$terminal=a(h);termTarget=c("terminaloutput");resizeEvent=new m;onWindowResize(){this.resizeEvent.next(void 0)}ngOnInit(){window.document.querySelector("body").classList.add("bg-black"),this.$terminal.startTerminal(this.termTarget(),{},this.resizeEvent),this.$terminal.term.focus()}ngOnDestroy(){window.document.querySelector("body").classList.remove("bg-black"),this.$terminal.destroyTerminal()}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=d({type:t,selectors:[["ng-component"]],viewQuery:function(e,n){e&1&&f(n.termTarget,C,5),e&2&&v()},hostBindings:function(e,n){e&1&&u("resize",function(x){return n.onWindowResize(x)},!1,l)},decls:8,vars:3,consts:[["terminaloutput",""],[1,"row","mb-3"],[1,"col-12"],[1,"primary-text","m-0"],[1,"flex-column","d-flex","align-items-stretch","adjust-for-mobile"],["id","docker-terminal",1,"align-self-end","w-100","h-100","mb-1"]],template:function(e,n){e&1&&(r(0,"div",1)(1,"div",2)(2,"h3",3),g(3),y(4,"translate"),o()()(),r(5,"div",4),p(6,"div",5,0),o()),e&2&&(s(3),w(T(4,1,"menu.linux.label_terminal")))},dependencies:[b],encapsulation:2})}return t})();export{k as a};
|
package/public/chunk-RRHDXAZE.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as D}from"./chunk-QXT6R24L.js";import{d as B}from"./chunk-NZNNTHFQ.js";import{b as R}from"./chunk-J34SI644.js";import{b as k,j as O}from"./chunk-3YHN3VHA.js";import{a as I,b as E}from"./chunk-3IX3CLER.js";import{$b as $,Bc as s,Cc as o,Kb as h,Mb as f,Rb as d,Wb as r,Xb as n,Yb as v,ad as T,cc as S,dc as _,ib as i,na as c,nc as a,oc as p,pc as x,rb as w,xa as C,xc as b,ya as y,yc as g}from"./chunk-TXOB7R5K.js";var F=(t,l)=>({"fas fa-fw fa-spinner fa-spin":t,"far fa-fw fa-check-circle":l}),j=t=>({"grey-text":t}),M=(t,l)=>({"far fa-fw fa-circle":t,"fas fa-fw fa-spinner fa-spin":l});function P(t,l){t&1&&(r(0,"p",7),a(1),s(2,"translate"),n()),t&2&&(i(),p(o(2,1,"restart.please_wait_while_server_restarts")))}function U(t,l){if(t&1&&(r(0,"div",8),a(1),n()),t&2){let e=_();i(),p(e.error)}}function V(t,l){if(t&1&&(r(0,"div",9)(1,"div",10)(2,"span"),v(3,"i",11),a(4),s(5,"translate"),n()(),r(6,"div",10)(7,"span",11),v(8,"i",11),a(9),s(10,"translate"),n()()()),t&2){let e=_();i(3),f("ngClass",g(9,F,!e.uiOnline,e.uiOnline)),i(),x(" ",o(5,5,"restart.ui_online")," "),i(3),f("ngClass",b(12,j,!e.uiOnline)),i(),f("ngClass",g(14,M,!e.uiOnline,e.uiOnline)),i(),x(" ",o(10,7,"restart.service_ready")," ")}}function z(t,l){if(t&1){let e=$();r(0,"p",14)(1,"button",15),S("click",function(){C(e);let m=_(2);return y(m.viewLogs())}),a(2),s(3,"translate"),n()()}t&2&&(i(2),p(o(3,1,"menu.tooltip_view_logs")))}function A(t,l){if(t&1&&(r(0,"div")(1,"div",12)(2,"p"),a(3),s(4,"translate"),n(),r(5,"p",13),a(6),s(7,"translate"),r(8,"code"),a(9),n()(),h(10,z,4,3,"p",14),n()()),t&2){let e=_();i(3),p(o(4,4,"restart.server_is_taking_long_time_to_restart")),i(3),x(" ",o(7,6,"restart.label_restart_command_executed"),": "),i(3),p(e.resp.command||"End Process"),i(),d(e.uiOnline?10:-1)}}var Y=(()=>{class t{$api=c(k);$router=c(B);$settings=c(R);$toastr=c(O);$translate=c(I);$ws=c(D);checkTimeout;checkDelay;resp={};timeout=!1;error=!1;uiOnline=!1;io;ngOnInit(){this.io=this.$ws.connectToNamespace("status"),this.io.connected.subscribe(()=>{this.io.socket.emit("monitor-server-status"),this.$settings.getAppSettings().catch()}),this.$api.put("/server/restart",{}).subscribe({next:e=>{this.resp=e,this.checkIfServerUp(),e.restartingUI||(this.uiOnline=!0)},error:e=>{console.error(e),this.error=this.$translate.instant("restart.toast_server_restart_error"),this.$toastr.error(this.$translate.instant("restart.toast_server_restart_error"),this.$translate.instant("toast.title_error"))}})}checkIfServerUp(){this.checkDelay=setTimeout(()=>{this.io.socket.on("homebridge-status",e=>{this.uiOnline=!0,(e.status==="up"||e.status==="pending")&&(this.$toastr.success(this.$translate.instant("restart.toast_server_restarted"),this.$translate.instant("toast.title_success")),this.$router.navigate(["/"]))})},7e3),this.checkTimeout=setTimeout(()=>{this.$toastr.warning(this.$translate.instant("restart.toast_server_restart_timeout"),this.$translate.instant("toast.title_warning"),{timeOut:1e4}),this.timeout=!0},4e4)}viewLogs(){this.$router.navigate(["/logs"])}ngOnDestroy(){this.io.end(),clearTimeout(this.checkDelay),clearTimeout(this.checkTimeout)}static \u0275fac=function(u){return new(u||t)};static \u0275cmp=w({type:t,selectors:[["ng-component"]],decls:15,vars:10,consts:[[1,"d-flex","justify-content-between"],[1,"primary-text","m-0"],[1,"my-4","align-items-center",2,"max-width","1000px","margin","auto"],[1,"w-100","text-center","primary-text","mb-5"],[1,"fas","fa-fw","fa-power-off",2,"font-size","75px"],[1,"text-center"],[1,"primary-text","mb-4"],[1,"grey-text"],[1,"alert","alert-error","my-4"],[1,"justify-content-center","my-4"],[1,"restart-progress-box","primary-text"],[3,"ngClass"],[1,"alert","alert-warning","my-4"],[1,"grey-text","mb-0"],[1,"mt-2","mb-0"],[1,"btn","btn-primary","mb-0",3,"click"]],template:function(u,m){u&1&&(r(0,"div",0)(1,"h3",1),a(2),s(3,"translate"),n()(),r(4,"div",2)(5,"div",3),v(6,"i",4),n(),r(7,"div",5)(8,"h4",6),a(9),s(10,"translate"),n(),h(11,P,3,3,"p",7)(12,U,2,1,"div",8)(13,V,11,17,"div",9)(14,A,11,8,"div"),n()()),u&2&&(i(2),p(o(3,6,"menu.restart.title")),i(7),p(o(10,8,"restart.title_restart")),i(2),d(m.error?-1:11),i(),d(m.error?12:-1),i(),d(m.error?-1:13),i(),d(m.timeout?14:-1))},dependencies:[T,E],styles:[".restart-progress-box[_ngcontent-%COMP%]{font-size:22px;margin-top:15px}"]})}return t})();export{Y as a};
|
package/public/chunk-T7MCUROV.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as he,b as be}from"./chunk-ZT23DWNL.js";import{a as _e}from"./chunk-6TCHCTXZ.js";import{o as Ce,w as j}from"./chunk-LJHUPCL3.js";import{a as R}from"./chunk-EMKXES77.js";import{a as A}from"./chunk-BPMSJ2VF.js";import{a as fe}from"./chunk-JZZQRLNW.js";import{a as me}from"./chunk-KQJ7ONUG.js";import{h as le,i as re,j as se,k as de,l as pe,m as ce,n as ue,o as ge}from"./chunk-ORPWYWCL.js";import{c as K,d as Q,e as X,f as Y,g as Z,j as ee,m as ie,p as te,q as ne,y as ae,z as oe}from"./chunk-QHPDGSZ6.js";import{a as H}from"./chunk-QXT6R24L.js";import{a as W,d as J}from"./chunk-NZNNTHFQ.js";import{b as N}from"./chunk-J34SI644.js";import{b as E,j as D}from"./chunk-3YHN3VHA.js";import{a as M,b as T}from"./chunk-3IX3CLER.js";import{$b as h,Bc as c,Cc as u,Dc as O,Kb as v,Lb as y,Mb as x,Rb as d,Tb as U,Ub as z,Vb as q,Wb as o,Xb as l,Yb as r,ad as L,cc as m,dc as p,eb as I,h as S,ib as n,kd as G,na as w,nc as g,oc as k,pc as b,rb as V,w as B,xa as _,ya as C,yc as F}from"./chunk-TXOB7R5K.js";function ke(t,s){if(t&1){let e=h();o(0,"button",15),m("click",function(){_(e);let i=p();return C(i.$activeModal.dismiss("Dismiss"))}),g(1),c(2,"translate"),l()}t&2&&(n(),b(" ",u(2,1,"form.button_close")," "))}function Se(t,s){if(t&1){let e=h();o(0,"button",15),m("click",function(){_(e);let i=p();return C(i.$activeModal.dismiss("Dismiss"))}),g(1),c(2,"translate"),l()}t&2&&(n(),b(" ",u(2,1,"form.button_close")," "))}function ye(t,s){if(t&1&&(o(0,"a",14),g(1),c(2,"translate"),r(3,"i",16),l()),t&2){let e=p();x("href",e.plugin.links.homepage||e.plugin.links.npm,I),n(),b(" ",u(2,2,"plugins.button_homepage")," ")}}var xe=(()=>{class t{$activeModal=w(ce);plugin;defaultIcon="assets/hb-icon.png";ngOnInit(){this.plugin.icon||(this.plugin.icon=this.defaultIcon)}handleIconError(){this.plugin.icon=this.defaultIcon}static \u0275fac=function(a){return new(a||t)};static \u0275cmp=V({type:t,selectors:[["ng-component"]],inputs:{plugin:"plugin"},decls:26,vars:14,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-dismiss","modal",1,"close",3,"click"],["aria-hidden","true"],[1,"modal-body","w-100","text-center"],["alt","Plugin Icon",1,"mb-3","plugin-icon",3,"error","src"],[1,"my-3"],[1,"m-0","grey-text"],[1,"modal-footer","justify-content-between"],[1,"text-left"],["type","button","data-dismiss","modal",1,"btn","btn-elegant"],[1,"text-center"],[1,"text-right"],["target","_blank","rel","noopener noreferrer",1,"btn","btn-primary","text-decoration-none",3,"href"],["type","button","data-dismiss","modal",1,"btn","btn-elegant",3,"click"],[1,"fas","fa-fw","fa-external-link-alt"]],template:function(a,i){a&1&&(o(0,"div",0)(1,"div",1)(2,"h5",2),g(3),c(4,"translate"),l(),o(5,"button",3),c(6,"translate"),m("click",function(){return i.$activeModal.dismiss("Dismiss")}),o(7,"span",4),g(8,"\xD7"),l()()(),o(9,"div",5)(10,"img",6),m("error",function(){return i.handleIconError()}),l(),o(11,"h4"),g(12),l(),o(13,"p",7),g(14),l(),o(15,"p",8),g(16),l(),o(17,"p",8),g(18),l()(),o(19,"div",9)(20,"div",10),v(21,ke,3,3,"button",11),l(),o(22,"div",12),v(23,Se,3,3,"button",11),l(),o(24,"div",13),v(25,ye,4,4,"a",14),l()()()),a&2&&(n(3),k(u(4,10,"plugins.manage.information")),n(2),y("aria-label",u(6,12,"form.button_close")),n(5),x("src",i.plugin.icon,I),n(2),k(i.plugin.displayName||i.plugin.name),n(2),k(i.plugin.description),n(2),k(i.plugin.name),n(2),b("@",i.plugin.author,""),n(3),d(i.plugin.links.homepage||i.plugin.links.npm?21:-1),n(2),d(!i.plugin.links.homepage&&!i.plugin.links.npm?23:-1),n(2),d(i.plugin.links.homepage||i.plugin.links.npm?25:-1))},dependencies:[T],styles:[".plugin-icon[_ngcontent-%COMP%]{height:75px;width:75px;border-radius:15px;border:1px solid #222222}"]})}return t})();var Be=(t,s)=>({"fa-bridge-circle-exclamation orange-text":t,"fa-bridge-circle-xmark red-text":s});function Ie(t,s){t&1&&r(0,"i",25)}function Ve(t,s){t&1&&r(0,"i",26)}function Te(t,s){if(t&1){let e=h();o(0,"a",24),m("click",function(){_(e);let i=p();return C(i.openHb2InfoModal())}),v(1,Ie,1,0,"i",25)(2,Ve,1,0,"i",26),l()}if(t&2){let e=p();x("ngbTooltip","Homebridge v2.0 Readiness")("placement","right"),n(),d(e.hb2Status==="supported"?1:-1),n(),d(e.hb2Status==="unknown"?2:-1)}}function $e(t,s){if(t&1){let e=h();o(0,"a",27),c(1,"translate"),c(2,"translate"),m("click",function(){_(e);let i=p();return C(i.$plugin.checkAndUpdatePlugin(i.plugin,i.plugin.updateTag||"latest"))}),r(3,"i",28),l()}t&2&&(x("ngbTooltip",u(1,2,"plugins.button_update")),y("aria-label",u(2,4,"plugins.button_update")))}function Ee(t,s){if(t&1){let e=h();o(0,"a",27),c(1,"translate"),c(2,"translate"),m("click",function(){_(e);let i=p();return C(i.$plugin.switchToScoped(i.plugin))}),r(3,"i",29),l()}t&2&&(x("ngbTooltip",u(1,2,"plugins.manage.scoped.switch")),y("aria-label",u(2,4,"plugins.manage.scoped.switch")))}function Me(t,s){if(t&1){let e=h();o(0,"a",27),c(1,"translate"),c(2,"translate"),m("click",function(){_(e);let i=p();return C(i.$plugin.settings(i.plugin))}),r(3,"i",30),l()}t&2&&(x("ngbTooltip",u(1,2,"plugins.button_set_up")),y("aria-label",u(2,4,"plugins.button_set_up")))}function De(t,s){if(t&1){let e=h();o(0,"a",27),c(1,"translate"),c(2,"translate"),m("click",function(){_(e);let i=p();return C(i.$plugin.bridgeSettings(i.plugin))}),r(3,"i",31),l()}t&2&&(x("ngbTooltip",u(1,2,"child_bridge.setup")),y("aria-label",u(2,4,"child_bridge.setup")))}function Ne(t,s){if(t&1){let e=h();o(0,"a",27),c(1,"translate"),c(2,"translate"),m("click",function(){_(e);let i=p();return C(i.$plugin.bridgeSettings(i.plugin))}),r(3,"i",32),l()}t&2&&(x("ngbTooltip",u(1,2,"child_bridge.bridge_connect")),y("aria-label",u(2,4,"child_bridge.bridge_connect")))}function He(t,s){if(t&1&&r(0,"i",13),t&2){let e=p();x("ngClass",F(1,Be,e.childBridgeStatus==="pending",e.childBridgeStatus==="down"))}}function je(t,s){if(t&1){let e=h();o(0,"p",18)(1,"a",33),m("click",function(){_(e);let i=p();return C(i.openVerifiedModal())}),r(2,"i",34),o(3,"span",17),g(4),c(5,"translate"),l()()()}t&2&&(n(4),k(u(5,1,"plugins.donate.button_verified")))}function Ae(t,s){if(t&1){let e=h();o(0,"p",18)(1,"a",35),m("click",function(){_(e);let i=p();return C(i.openVerifiedModal())}),r(2,"i",36),o(3,"span",17),g(4),c(5,"translate"),l()()()}t&2&&(n(4),k(u(5,1,"plugins.donate.button_not_verified")))}function Re(t,s){if(t&1){let e=h();o(0,"a",37),m("click",function(){_(e);let i=p();return C(i.openFundingModal(i.plugin))}),r(1,"i",38),o(2,"span",17),g(3),l()()}if(t&2){let e=p();n(3),b("@",e.plugin.author,"")}}function Ue(t,s){if(t&1&&(o(0,"span",17),r(1,"i",39),g(2),l()),t&2){let e=p();n(2),b("@",e.plugin.author," ")}}function ze(t,s){if(t&1&&(o(0,"span"),g(1),c(2,"date"),l()),t&2){let e=p(2);n(),b("(",O(2,1,e.plugin.lastUpdated,"yyyy-MM-dd"),")")}}function qe(t,s){if(t&1&&(o(0,"span"),r(1,"i",40),o(2,"span",17),g(3),v(4,ze,3,4,"span"),l()()),t&2){let e=p();n(3),b("v",e.plugin.latestVersion," "),n(),d(e.plugin.lastUpdated?4:-1)}}function Fe(t,s){if(t&1&&(o(0,"span"),r(1,"i",41),g(2),l()),t&2){let e=p();n(2),b("v",e.plugin.installedVersion," ")}}function Oe(t,s){if(t&1){let e=h();o(0,"a",27),c(1,"translate"),m("click",function(){_(e);let i=p();return C(i.doChildBridgeAction("restart"))}),r(2,"i",42),l()}if(t&2){let e=p();x("ngbTooltip",u(1,1,e.setChildBridges.length>1?"child_bridge.restart_plural":"child_bridge.restart"))}}function Le(t,s){if(t&1){let e=h();o(0,"a",43),m("click",function(){_(e);let i=p();return C(i.enablePlugin(i.plugin))}),r(1,"i",44),c(2,"translate"),l()}t&2&&(n(),x("ngbTooltip",u(2,1,"plugins.status_disabled")))}function Ge(t,s){if(t&1){let e=h();o(0,"a",45),m("click",function(){_(e);let i=p();return C(i.$plugin.installAlternateVersion(i.plugin))}),r(1,"i",46),l()}}function We(t,s){if(t&1){let e=h();o(0,"button",50),m("click",function(){_(e);let i=p(2);return C(i.viewPluginLog(i.plugin))}),r(1,"i",55),g(2),c(3,"translate"),l()}t&2&&(n(2),b(" ",u(3,1,"plugins.manage.plugin_logs")," "))}function Je(t,s){if(t&1){let e=h();o(0,"button",50),m("click",function(){_(e);let i=p(2);return C(i.$plugin.installAlternateVersion(i.plugin))}),r(1,"i",56),g(2),c(3,"translate"),l()}t&2&&(n(2),b(" ",u(3,1,"plugins.manage.manage_version")," "))}function Ke(t,s){if(t&1){let e=h();o(0,"button",50),m("click",function(){_(e);let i=p(2);return C(i.$plugin.jsonEditor(i.plugin))}),r(1,"i",57),g(2),c(3,"translate"),l()}t&2&&(n(2),b(" ",u(3,1,"plugins.manage.json_config")," "))}function Qe(t,s){if(t&1){let e=h();o(0,"button",50),m("click",function(){_(e);let i=p(2);return C(i.disablePlugin(i.plugin))}),r(1,"i",58),g(2),c(3,"translate"),l()}t&2&&(n(2),b(" ",u(3,1,"plugins.manage.disable")," "))}function Xe(t,s){if(t&1){let e=h();o(0,"button",50),m("click",function(){_(e);let i=p(2);return C(i.enablePlugin(i.plugin))}),r(1,"i",59),g(2),c(3,"translate"),l()}t&2&&(n(2),b(" ",u(3,1,"plugins.manage.enable")," "))}function Ye(t,s){if(t&1){let e=h();o(0,"button",50),m("click",function(){_(e);let i=p(2);return C(i.$plugin.uninstallPlugin(i.plugin,i.setChildBridges))}),r(1,"i",60),g(2),c(3,"translate"),l()}t&2&&(n(2),b(" ",u(3,1,"plugins.button_uninstall")," "))}function Ze(t,s){t&1&&r(0,"div",53)}function ei(t,s){if(t&1){let e=h();o(0,"button",50),m("click",function(){_(e);let i=p(3);return C(i.doChildBridgeAction("restart"))}),r(1,"i",62),g(2),c(3,"translate"),l()}if(t&2){let e=p(3);n(2),b(" ",u(3,1,e.setChildBridges.length>1?"child_bridge.restart_plural":"child_bridge.restart")," ")}}function ii(t,s){if(t&1){let e=h();o(0,"button",50),m("click",function(){_(e);let i=p(3);return C(i.doChildBridgeAction("stop"))}),r(1,"i",63),g(2),c(3,"translate"),l()}if(t&2){let e=p(3);n(2),b(" ",u(3,1,e.setChildBridges.length>1?"child_bridge.stop_plural":"child_bridge.stop")," ")}}function ti(t,s){if(t&1){let e=h();o(0,"button",50),m("click",function(){_(e);let i=p(3);return C(i.doChildBridgeAction("start"))}),r(1,"i",64),g(2),c(3,"translate"),l()}if(t&2){let e=p(3);n(2),b(" ",u(3,1,e.setChildBridges.length>1?"child_bridge.start_plural":"child_bridge.start")," ")}}function ni(t,s){if(t&1){let e=h();o(0,"button",50),m("click",function(){_(e);let i=p(3);return C(i.$plugin.resetChildBridges(i.setChildBridges))}),r(1,"i",65),g(2),c(3,"translate"),l()}t&2&&(n(2),b(" ",u(3,1,"child_bridge.reset_accessories")," "))}function ai(t,s){if(t&1){let e=h();o(0,"button",50),m("click",function(){_(e);let i=p(2);return C(i.$plugin.bridgeSettings(i.plugin))}),r(1,"i",61),g(2),c(3,"translate"),l(),v(4,ei,4,3,"button",52)(5,ii,4,3,"button",52)(6,ti,4,3,"button",52)(7,ni,4,3,"button",52)}if(t&2){let e=p(2);n(2),b(" ",u(3,5,"child_bridge.bridge_settings")," "),n(2),d(e.childBridgeRestartInProgress?-1:4),n(),d(e.allChildBridgesStopped?-1:5),n(),d(e.allChildBridgesStopped?6:-1),n(),d(e.$settings.env.serviceMode?7:-1)}}function oi(t,s){t&1&&r(0,"div",53)}function li(t,s){if(t&1){let e=h();o(0,"button",50),m("click",function(){_(e);let i=p(2);return C(i.$plugin.bridgeSettings(i.plugin))}),r(1,"i",66),g(2),c(3,"translate"),l()}t&2&&(n(2),b(" ",u(3,1,"child_bridge.setup")," "))}function ri(t,s){t&1&&r(0,"div",53)}function si(t,s){if(t&1){let e=h();o(0,"button",50),m("click",function(){_(e);let i=p(2);return C(i.$plugin.bridgeSettings(i.plugin))}),r(1,"i",66),g(2),c(3,"translate"),l()}t&2&&(n(2),b(" ",u(3,1,"child_bridge.setup")," "))}function di(t,s){t&1&&r(0,"div",53)}function pi(t,s){if(t&1&&(o(0,"a",54),r(1,"i",67),g(2),c(3,"translate"),l()),t&2){let e=p(2);x("href",e.plugin.links.bugs,I),n(2),b(" ",u(3,2,"support.links.issue")," ")}}function ci(t,s){if(t&1){let e=h();o(0,"span",23)(1,"a",47),r(2,"i",48),l(),o(3,"div",49)(4,"button",50),m("click",function(){_(e);let i=p();return C(i.$plugin.settings(i.plugin))}),r(5,"i",51),g(6),c(7,"translate"),l(),v(8,We,4,3,"button",52)(9,Je,4,3,"button",52)(10,Ke,4,3,"button",52)(11,Qe,4,3,"button",52)(12,Xe,4,3,"button",52)(13,Ye,4,3,"button",52)(14,Ze,1,0,"div",53)(15,ai,8,7)(16,oi,1,0,"div",53)(17,li,4,3,"button",52)(18,ri,1,0,"div",53)(19,si,4,3,"button",52)(20,di,1,0,"div",53)(21,pi,4,4,"a",54),l()()}if(t&2){let e=p();n(),y("aria-label","Plugin Actions Dropdown"),n(5),b(" ",u(7,16,"plugins.button_settings")," "),n(2),d(e.plugin.isConfigured&&!e.plugin.disabled?8:-1),n(),d(e.plugin.publicPackage?9:-1),n(),d(!e.isMobile&&e.plugin.name!=="homebridge-config-ui-x"?10:-1),n(),d(e.plugin.name!=="homebridge-config-ui-x"&&!e.plugin.disabled?11:-1),n(),d(e.plugin.name!=="homebridge-config-ui-x"&&e.plugin.disabled?12:-1),n(),d(e.plugin.name!=="homebridge-config-ui-x"?13:-1),n(),d(!e.plugin.disabled&&e.plugin.isConfigured&&e.plugin.hasChildBridges&&e.plugin.installedVersion&&e.plugin.name!=="homebridge-config-ui-x"?14:-1),n(),d(e.plugin.hasChildBridges&&!e.plugin.disabled?15:-1),n(),d(e.plugin.isConfigured&&!e.plugin.hasChildBridges&&!e.plugin.disabled&&!e.plugin.recommendChildBridge?16:-1),n(),d(e.plugin.isConfigured&&!e.plugin.hasChildBridges&&!e.plugin.disabled&&!e.plugin.recommendChildBridge?17:-1),n(),d(e.plugin.isConfigured&&!e.plugin.hasChildBridges&&!e.plugin.disabled&&e.plugin.recommendChildBridge&&e.plugin.updateAvailable?18:-1),n(),d(e.plugin.isConfigured&&!e.plugin.hasChildBridges&&!e.plugin.disabled&&e.plugin.recommendChildBridge&&e.plugin.updateAvailable?19:-1),n(),d(e.plugin.links!=null&&e.plugin.links.bugs?20:-1),n(),d(e.plugin.links!=null&&e.plugin.links.bugs?21:-1)}}var we=(()=>{class t{$api=w(E);$md=w(fe);$modal=w(ue);$plugin=w(j);$settings=w(N);$toastr=w(D);$translate=w(M);$ws=w(H);plugin;hasChildBridges=!1;hasUnpairedChildBridges=!1;allChildBridgesStopped=!1;childBridgeStatus="pending";childBridgeRestartInProgress=!1;defaultIcon="assets/hb-icon.png";isMobile;setChildBridges=[];prettyDisplayName="";hb2Status="unknown";io;set childBridges(e){var f,$;this.hasChildBridges=e.length>0,this.hasUnpairedChildBridges=e.filter(P=>P.paired===!1).length>0,this.allChildBridgesStopped=e.filter(P=>P.manuallyStopped===!0).length===e.length,this.hasChildBridges&&(e.some(P=>P.status==="down")?this.childBridgeStatus="down":e.some(P=>P.status==="pending")?this.childBridgeStatus="pending":e.some(P=>P.status==="ok")&&(this.childBridgeStatus="ok")),this.setChildBridges=e;let a=this.$settings.env.homebridgeVersion.split(".")[0],i=(($=(f=this.plugin.engines)==null?void 0:f.homebridge)==null?void 0:$.split("||").map(P=>P.trim()))||[];this.hb2Status=a==="2"?"hide":i.some(P=>P.startsWith("^2")||P.startsWith(">=2"))?"supported":this.hb2Status}ngOnInit(){this.isMobile=this.$md.detect.mobile(),this.prettyDisplayName=this.prettifyName(),this.io=this.$ws.getExistingNamespace("child-bridges"),this.plugin.icon||(this.plugin.icon=this.defaultIcon)}openFundingModal(e){let a=this.$modal.open(be,{size:"lg",backdrop:"static"});a.componentInstance.plugin=e}openVerifiedModal(){let e=this.$modal.open(A,{size:"lg",backdrop:"static"});this.plugin.verifiedPlugin||this.plugin.verifiedPlusPlugin?(e.componentInstance.title=this.$translate.instant("plugins.manage.verified_title"),e.componentInstance.subtitle=this.$translate.instant("plugins.manage.verified_subtitle",{pluginName:this.plugin.displayName||this.plugin.name}),e.componentInstance.message=this.$translate.instant("plugins.manage.verified_message"),e.componentInstance.faIconClass="fa-shield-alt green-text"):(e.componentInstance.title=this.$translate.instant("plugins.manage.unverified_title"),e.componentInstance.subtitle=this.$translate.instant("plugins.manage.unverified_subtitle",{pluginName:this.plugin.displayName||this.plugin.name}),e.componentInstance.message=this.$translate.instant("plugins.manage.unverified_message"),e.componentInstance.faIconClass="fa-shield-alt grey-text"),e.componentInstance.ctaButtonLabel=this.$translate.instant("form.button_more_info"),e.componentInstance.ctaButtonLink="https://github.com/homebridge/homebridge/wiki/verified-Plugins"}pluginInfoModal(e){let a=this.$modal.open(xe,{size:"lg",backdrop:"static"});a.componentInstance.plugin=e}disablePlugin(e){let a=this.$modal.open(he,{size:"lg",backdrop:"static"});a.componentInstance.pluginName=e.name,a.componentInstance.isConfigured=e.isConfigured,a.componentInstance.isConfiguredDynamicPlatform=e.isConfiguredDynamicPlatform,a.result.then(()=>S(this,null,function*(){try{yield B(this.$api.put(`/config-editor/plugin/${encodeURIComponent(e.name)}/disable`,{})),e.disabled=!0,this.hasChildBridges&&this.doChildBridgeAction("stop"),this.$modal.open(R,{size:"lg",backdrop:"static"})}catch(i){console.error(i),this.$toastr.error(this.$translate.instant("plugins.disable.error"),this.$translate.instant("toast.title_error"))}}))}enablePlugin(e){let a=this.$modal.open(me,{size:"lg",backdrop:"static"});a.componentInstance.title=`${this.$translate.instant("plugins.manage.enable")}: ${e.name}`,a.componentInstance.message=this.$translate.instant("plugins.manage.confirm_enable",{pluginName:e.name}),a.componentInstance.confirmButtonLabel=this.$translate.instant("plugins.manage.enable"),a.componentInstance.faIconClass="fa-circle-play primary-text",a.result.then(()=>S(this,null,function*(){try{yield B(this.$api.put(`/config-editor/plugin/${encodeURIComponent(e.name)}/enable`,{})),e.disabled=!1,this.hasChildBridges&&(yield this.doChildBridgeAction("start")),this.$modal.open(R,{size:"lg",backdrop:"static"})}catch(i){console.error(i),this.$toastr.error(this.$translate.instant("plugins.enable.error"),this.$translate.instant("toast.title_error"))}}))}viewPluginLog(e){let a=this.$modal.open(Ce,{size:"xl",backdrop:"static"});a.componentInstance.plugin=e}doChildBridgeAction(e){return S(this,null,function*(){this.childBridgeRestartInProgress=!0;try{for(let a of this.setChildBridges)yield B(this.io.request(`${e}-child-bridge`,a.username))}catch(a){console.error(a),this.$toastr.error(this.$translate.instant("plugins.bridge.action_error",{action:e}),this.$translate.instant("toast.title_error")),this.childBridgeRestartInProgress=!1}finally{setTimeout(()=>{this.childBridgeRestartInProgress=!1},e==="restart"?12e3:e==="stop"?6e3:1e3)}})}handleIconError(){this.plugin.icon=this.defaultIcon}prettifyName(){let e=this.plugin.displayName||(this.plugin.name.charAt(0)==="@"?this.plugin.name.split("/")[1]:this.plugin.name);return e=e.replace(/-/g," "),this.isMobile&&e.toLowerCase().startsWith("homebridge ")&&(e=e.replace(/^homebridge /i,"")),this.plugin.displayName||(e=e.replace(/\w\S*/g,a=>a.charAt(0).toUpperCase()+a.substring(1).toLowerCase())),e}openHb2InfoModal(){let e=this.$modal.open(A,{size:"lg",backdrop:"static"});e.componentInstance.title="Plugin Readiness",this.hb2Status==="supported"?(e.componentInstance.subtitle=`${this.plugin.displayName||this.plugin.name} is ready for Homebridge v2.0`,e.componentInstance.message="The developer has specifically marked your installed version of the plugin as compatible with Homebridge v2.0.",e.componentInstance.faIconClass="fa-check-circle green-text"):(e.componentInstance.subtitle=`${this.plugin.displayName||this.plugin.name} might not be ready for Homebridge v2.0`,e.componentInstance.message="The developer has not specifically marked your installed version of the plugin as compatible with Homebridge v2.0, but it may still work.",e.componentInstance.faIconClass="fa-question-circle orange-text"),e.componentInstance.ctaButtonLabel=this.$translate.instant("form.button_more_info"),e.componentInstance.ctaButtonLink="https://github.com/homebridge/homebridge/wiki/Updating-To-Homebridge-v2.0"}static \u0275fac=function(a){return new(a||t)};static \u0275cmp=V({type:t,selectors:[["app-plugin-card"]],inputs:{plugin:"plugin",childBridges:"childBridges"},decls:38,vars:21,consts:[[1,"card","card-body","mb-3"],[1,"d-flex","flex-row","justify-content-between"],[1,"d-flex","flex-column","mr-3","align-items-center","justify-content-between"],["alt","Plugin Icon",1,"plugin-icon-card","mb-3",3,"error","src"],["href","javascript:void(0)","container","body","openDelay","150","triggers","hover","aria-label","Homebridge v2.0 Readiness",3,"ngbTooltip","placement"],[1,"d-flex","flex-column","justify-content-between",2,"min-width","calc(100% - 80px)"],[1,"d-flex","flex-row","align-items-end"],[1,"d-flex","flex-column","w-100"],[1,"d-flex","flex-row"],[1,"card-title","mb-2","text-truncate"],[1,"ml-auto"],["href","javascript:void(0)","container","body","openDelay","150","triggers","hover",1,"card-link",3,"ngbTooltip"],[1,"fas","fa-fw","fa-spinner","fa-pulse","fa-lg","grey-text","ml-3",3,"hidden"],[1,"fas","fa-fw","fa-lg","ml-3",3,"ngClass"],[1,"card-text","mb-2","text-truncate"],["href","javascript:void(0)",1,"card-link","grey-text",3,"click"],[1,"fas","fa-fw","fa-info-circle","fa-lg","mr-1"],[1,"grey-text"],[1,"card-text","mb-2"],["href","javascript:void(0)",1,"card-link","pink-text"],[1,"card-text","mb-0","grey-text"],["href","javascript:void(0)",1,"card-link","red-text"],["href","javascript:void(0)"],["ngbDropdown","","placement","left",1,"d-inline-block","ml-3","mt-auto"],["href","javascript:void(0)","container","body","openDelay","150","triggers","hover","aria-label","Homebridge v2.0 Readiness",3,"click","ngbTooltip","placement"],["aria-label","The developer has specifically marked this plugin as compatible with Homebridge v2.0",1,"fas","fa-check-circle","green-text","fa-xl"],["aria-label","The developer has not specifically marked this plugin as compatible with Homebridge v2.0, but it may still work.",1,"fas","fa-question-circle","orange-text","fa-xl"],["href","javascript:void(0)","container","body","openDelay","150","triggers","hover",1,"card-link",3,"click","ngbTooltip"],[1,"far","fa-fw","fa-arrow-alt-circle-up","primary-text","fa-lg","fa-fade","ml-3",2,"--fa-animation-duration","2s"],[1,"fas","fa-fw","fa-arrow-right-arrow-left","primary-text","fa-lg","fa-fade","ml-3",2,"--fa-animation-duration","2s"],[1,"fas","fa-fw","fa-sliders","primary-text","fa-lg","fa-fade","ml-3",2,"--fa-animation-duration","2s"],[1,"icon-button","fas","fa-fw","fa-bridge","primary-text","fa-lg","fa-fade","ml-3",2,"--fa-animation-duration","2s"],[1,"icon-button","fas","fa-fw","fa-qrcode","primary-text","fa-lg","fa-fade","ml-3",2,"--fa-animation-duration","2s"],["href","javascript:void(0)",1,"card-link","green-text",3,"click"],[1,"fas","fa-fw","fa-shield-alt","fa-lg","mr-1"],["href","javascript:void(0)",1,"card-link",3,"click"],[1,"fas","fa-fw","fa-shield-alt","fa-lg","mr-1",2,"opacity","0.25"],["href","javascript:void(0)",1,"card-link","pink-text",3,"click"],[1,"fas","fa-fw","fa-heart","fa-lg","mr-1"],[1,"fas","fa-fw","fa-heart","fa-lg","mr-1",2,"opacity","0.5"],[1,"far","fa-fw","fa-circle-dot","fa-lg","mr-1"],[1,"far","fa-fw","fa-circle-check","fa-lg","mr-1"],[1,"fas","fa-fw","fa-lg","fa-power-off","ml-3"],["href","javascript:void(0)",1,"card-link","red-text",3,"click"],["container","body","openDelay","150","triggers","hover",1,"far","fa-fw","fa-pause-circle","fa-lg",3,"ngbTooltip"],["href","javascript:void(0)",3,"click"],[1,"far","fa-fw","fa-arrow-alt-circle-down","fa-lg"],["href","javascript:void(0)","ngbDropdownToggle","",1,"card-link","text-decoration-none","mt-auto",2,"outline","none"],[1,"fa-solid","fa-fw","fa-ellipsis-v","fa-lg"],["ngbDropdownMenu","","aria-labelledby","Plugin Actions Dropdown"],["ngbDropdownItem","",3,"click"],[1,"fas","fa-fw","fa-sliders"],["ngbDropdownItem",""],[1,"dropdown-divider"],["ngbDropdownItem","","rel","noopener noreferrer","target","_blank",3,"href"],[1,"fas","fa-fw","fa-wave-square"],[1,"fas","fa-fw","fa-code-compare"],[1,"fas","fa-fw","fa-code"],[1,"far","fa-fw","fa-circle-pause"],[1,"far","fa-fw","fa-circle-play"],[1,"fas","fa-fw","fa-trash"],[1,"fas","fa-fw","fa-bridge"],[1,"fa-fw","icon-button","fas","fa-fw","fa-power-off"],[1,"fas","fa-fw","fa-stop"],[1,"fas","fa-fw","fa-play"],[1,"fas","fa-fw","fa-broom"],[1,"icon-button","fas","fa-fw","fa-bridge"],[1,"icon-button","fa","fa-fw","fa-question-circle-o"]],template:function(a,i){a&1&&(o(0,"div",0)(1,"div",1)(2,"div",2)(3,"img",3),m("error",function(){return i.handleIconError()}),l(),v(4,Te,3,4,"a",4),l(),o(5,"div",5)(6,"div",6)(7,"div",7)(8,"div",8)(9,"h5",9),g(10),l(),o(11,"div",10),v(12,$e,4,6,"a",11)(13,Ee,4,6,"a",11)(14,Me,4,6,"a",11)(15,De,4,6,"a",11)(16,Ne,4,6,"a",11),r(17,"i",12),v(18,He,1,4,"i",13),l()(),o(19,"p",14)(20,"a",15),m("click",function(){return i.pluginInfoModal(i.plugin)}),r(21,"i",16),o(22,"span",17),g(23),l()()(),v(24,je,6,3,"p",18)(25,Ae,6,3,"p",18),o(26,"p",18),v(27,Re,4,1,"a",19)(28,Ue,3,1,"span",17),l(),o(29,"div",8)(30,"p",20),v(31,qe,5,2,"span")(32,Fe,3,1,"span"),l(),o(33,"div",10),v(34,Oe,3,3,"a",11)(35,Le,3,3,"a",21)(36,Ge,2,0,"a",22)(37,ci,22,18,"span",23),l()()()()()()()),a&2&&(n(3),x("src",i.plugin.icon,I),n(),d(i.plugin.installedVersion&&i.hb2Status!=="hide"?4:-1),n(6),k(i.prettyDisplayName),n(2),d(i.plugin.installedVersion&&i.plugin.updateAvailable&&!i.childBridgeRestartInProgress?12:-1),n(),d(i.plugin.installedVersion&&(i.plugin.newHbScope==null?null:i.plugin.newHbScope.switch)===i.plugin.installedVersion&&!i.childBridgeRestartInProgress?13:-1),n(),d(i.plugin.installedVersion&&(!i.plugin.newHbScope||i.plugin.newHbScope.switch!==i.plugin.installedVersion)&&!i.plugin.updateAvailable&&!i.plugin.isConfigured&&!i.childBridgeRestartInProgress?14:-1),n(),d(i.plugin.installedVersion&&(!i.plugin.newHbScope||i.plugin.newHbScope.switch!==i.plugin.installedVersion)&&!i.plugin.updateAvailable&&i.plugin.isConfigured&&!i.plugin.hasChildBridges&&!i.plugin.disabled&&i.plugin.recommendChildBridge&&!i.childBridgeRestartInProgress?15:-1),n(),d(i.plugin.installedVersion&&(!i.plugin.newHbScope||i.plugin.newHbScope.switch!==i.plugin.installedVersion)&&!i.plugin.updateAvailable&&i.plugin.isConfigured&&i.plugin.hasChildBridges&&!i.childBridgeRestartInProgress&&i.hasUnpairedChildBridges&&i.childBridgeStatus==="ok"&&!i.plugin.disabled?16:-1),n(),x("hidden",!i.childBridgeRestartInProgress),n(),d(i.plugin.installedVersion&&(!i.plugin.newHbScope||i.plugin.newHbScope.switch!==i.plugin.installedVersion)&&!i.plugin.updateAvailable&&i.plugin.isConfigured&&i.plugin.hasChildBridges&&!i.childBridgeRestartInProgress&&!i.hasUnpairedChildBridges&&i.childBridgeStatus!=="ok"&&!i.plugin.disabled?18:-1),n(5),k(i.plugin.name),n(),d(i.plugin.verifiedPlugin||i.plugin.verifiedPlusPlugin?24:-1),n(),d(!i.plugin.verifiedPlugin&&!i.plugin.verifiedPlusPlugin?25:-1),n(2),d((i.plugin.verifiedPlugin||i.plugin.verifiedPlusPlugin)&&i.plugin.funding?27:-1),n(),d((i.plugin.verifiedPlugin||i.plugin.verifiedPlusPlugin)&&i.plugin.funding?-1:28),n(3),d(i.plugin.publicPackage&&!i.plugin.installedVersion?31:-1),n(),d(i.plugin.installedVersion?32:-1),n(2),d(!i.plugin.disabled&&i.plugin.hasChildBridges&&i.childBridgeStatus==="ok"?34:-1),n(),d(i.plugin.installedVersion&&i.plugin.disabled?35:-1),n(),d(i.plugin.publicPackage&&!i.plugin.installedVersion?36:-1),n(),d(i.plugin.installedVersion?37:-1))},dependencies:[ge,L,pe,de,se,re,le,G,T],encapsulation:2})}return t})();function ui(t,s){t&1&&r(0,"app-spinner")}function gi(t,s){t&1&&r(0,"i",8)}function mi(t,s){if(t&1&&(o(0,"div",10),r(1,"app-plugin-card",12),l()),t&2){let e=s.$implicit,a=p();n(),x("plugin",e)("childBridges",a.getPluginChildBridges(e))}}function fi(t,s){t&1&&(o(0,"div",11),r(1,"i",13),o(2,"p"),g(3),c(4,"translate"),l()()),t&2&&(n(3),k(u(4,1,"plugins.placeholder_search_first")))}var at=(()=>{class t{$api=w(E);$plugin=w(j);$router=w(J);$settings=w(N);$toastr=w(D);$translate=w(M);$ws=w(H);loading=!0;installedPlugins=[];childBridges=[];form=new Z({query:new ee("",[Q.required])});io;navigationSubscription;ngOnInit(){return S(this,null,function*(){this.io=this.$ws.connectToNamespace("child-bridges"),this.io.connected.subscribe(()=>S(this,null,function*(){this.getChildBridgeMetadata(),this.io.socket.emit("monitor-child-bridge-status"),yield this.loadInstalledPlugins();let e=this.$router.parseUrl(this.$router.url).queryParams.installed;if(e){let a=this.installedPlugins.find(i=>i.name===e);a&&!a.isConfigured&&this.$plugin.settings(a),this.$router.navigate(["/plugins"])}})),this.io.socket.on("child-bridge-status-update",e=>{let a=this.childBridges.find(i=>i.username===e.username);a?Object.assign(a,e):this.childBridges.push(e)}),this.navigationSubscription=this.$router.events.subscribe(e=>{e instanceof W&&this.loadInstalledPlugins()})})}loadInstalledPlugins(){return S(this,null,function*(){this.form.setValue({query:""}),this.installedPlugins=[],this.loading=!0;try{let e=yield B(this.$api.get("/plugins"));this.installedPlugins=e.filter(i=>i.name!=="homebridge-config-ui-x"),yield this.appendMetaInfo();let a=this.installedPlugins.sort((i,f)=>i.updateAvailable!==f.updateAvailable?i.updateAvailable?-1:1:i.newHbScope&&!f.newHbScope?-1:i.disabled!==f.disabled?i.disabled?1:-1:i.isConfigured!==f.isConfigured?i.isConfigured?1:-1:i.hasChildBridgesUnpaired!==f.hasChildBridgesUnpaired?i.hasChildBridgesUnpaired?-1:1:i.hasChildBridges!==f.hasChildBridges&&this.$settings.env.recommendChildBridges?i.hasChildBridges?1:-1:i.name.localeCompare(f.name));return this.loading=!1,a}catch(e){console.error(e),this.$toastr.error(this.$translate.instant("plugins.toast_failed_to_load_plugins"),this.$translate.instant("toast.title_error"))}})}appendMetaInfo(){return S(this,null,function*(){yield Promise.all(this.installedPlugins.filter(e=>e.installedVersion).map(e=>S(this,null,function*(){try{let a=yield B(this.$api.get(`/config-editor/plugin/${encodeURIComponent(e.name)}`));e.isConfigured=a.length>0,e.isConfiguredDynamicPlatform=e.isConfigured&&Object.prototype.hasOwnProperty.call(a[0],"platform"),e.recommendChildBridge=e.isConfiguredDynamicPlatform&&this.$settings.env.recommendChildBridges&&this.$settings.env.serviceMode&&!["homebridge","homebridge-config-ui-x"].includes(e.name),e.hasChildBridges=e.isConfigured&&a.some(f=>f._bridge&&f._bridge.username);let i=this.getPluginChildBridges(e);e.hasChildBridgesUnpaired=i.some(f=>!f.paired)}catch{e.isConfigured=!0,e.hasChildBridges=!0}})))})}search(){this.installedPlugins=[],this.loading=!0,this.$api.get(`/plugins/search/${encodeURIComponent(this.form.value.query)}`).subscribe({next:e=>{let a=new Set;this.installedPlugins=e.sort((i,f)=>i.newHbScope&&!f.newHbScope?-1:!i.newHbScope&&f.newHbScope?1:0).reduce((i,f)=>{if(f.name==="homebridge-config-ui-x"||a.has(f.name))return i;if(f.newHbScope){let $=f.newHbScope.to,P=e.some(Pe=>Pe.name===$);(f.installedVersion||!P)&&(a.add($),i.push(f))}else i.push(f);return i},[]).sort((i,f)=>i.installedVersion!==f.installedVersion?i.installedVersion?-1:1:0),this.appendMetaInfo(),this.loading=!1},error:e=>{this.loading=!1,console.error(e),this.$toastr.error(e.error.message||e.message,this.$translate.instant("toast.title_error")),this.loadInstalledPlugins()}})}onClearSearch(){this.form.setValue({query:""}),this.loadInstalledPlugins()}onSubmit({value:e}){e.query.length?this.search():this.loadInstalledPlugins()}getChildBridgeMetadata(){this.io.request("get-homebridge-child-bridge-status").subscribe(e=>{this.childBridges=e})}getPluginChildBridges(e){return this.childBridges.filter(a=>a.plugin===e.name)}ngOnDestroy(){this.navigationSubscription&&this.navigationSubscription.unsubscribe(),this.io.end()}static \u0275fac=function(a){return new(a||t)};static \u0275cmp=V({type:t,selectors:[["ng-component"]],decls:17,vars:10,consts:[[1,"row","mb-3"],[1,"col-12"],[1,"primary-text","m-0"],[1,"row"],[1,"col-md-12"],["novalidate","",3,"ngSubmit","formGroup"],["type","text","formControlName","query",1,"hb-npm-search",3,"placeholder"],["href","javascript:void(0)",1,"hb-npm-search-clear",3,"click"],[1,"far","fa-fw","fa-times-circle"],[1,"d-flex","flex-wrap","justify-content-between"],[1,"hb-plugin-space-between"],[1,"alert","alert-info","mt-4","text-center","w-100"],[3,"plugin","childBridges"],[1,"fas","fa-fw","fa-magnifying-glass","primary-text","my-3",2,"font-size","75px"]],template:function(a,i){a&1&&(v(0,ui,1,0,"app-spinner"),o(1,"div",0)(2,"div",1)(3,"h3",2),g(4),c(5,"translate"),l()()(),o(6,"div",3)(7,"div",4)(8,"form",5),m("ngSubmit",function(){return i.onSubmit(i.form)}),r(9,"input",6),c(10,"translate"),o(11,"a",7),m("click",function(){return i.onClearSearch()}),v(12,gi,1,0,"i",8),l()()()(),o(13,"div",9),z(14,mi,2,2,"div",10,U),v(16,fi,5,3,"div",11),l()),a&2&&(d(i.loading?0:-1),n(4),k(u(5,6,"menu.label_plugins")),n(4),x("formGroup",i.form),n(),x("placeholder",u(10,8,"plugins.placeholder_search_plugin")),n(3),d(i.form.controls.query.value?12:-1),n(2),q(i.installedPlugins),n(2),d(i.installedPlugins.length===0&&!i.loading?16:-1))},dependencies:[_e,ae,ie,K,X,Y,oe,te,ne,we,T],styles:[".hb-npm-search[_ngcontent-%COMP%]{outline:none;box-sizing:inherit!important;background-color:inherit;height:50px!important;width:100%;border-width:.5px;padding:10px;margin-bottom:15px}@media (hover: hover){.hb-npm-search[_ngcontent-%COMP%]:hover{border:1px solid #000000}}.hb-npm-search[_ngcontent-%COMP%]:focus{border:1px solid #000000;box-shadow:0 1px #000}.hb-npm-search-clear[_ngcontent-%COMP%]{position:absolute;right:25px;font-size:35px;color:#d0d0d0;line-height:50px;cursor:pointer}.hb-plugin-space-between[_ngcontent-%COMP%]{box-sizing:border-box;width:calc(50% - 6.6666666667px)}@media only screen and (max-width: 991px){.hb-plugin-space-between[_ngcontent-%COMP%]{width:100%}}"]})}return t})();export{at as a};
|
package/public/chunk-TCSXGQNF.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./chunk-NW6AFAD7.js";import{q as u}from"./chunk-ORPWYWCL.js";import{z as n}from"./chunk-QHPDGSZ6.js";import{g as i}from"./chunk-NZNNTHFQ.js";import"./chunk-UG5DK2RQ.js";import{c as p}from"./chunk-3IX3CLER.js";import{ia as t,md as m,sb as r}from"./chunk-TXOB7R5K.js";var l=[{path:"",loadComponent:()=>import("./chunk-HSJSWZHD.js").then(o=>o.SupportComponent)}],d=(()=>{class o{static \u0275fac=function(e){return new(e||o)};static \u0275mod=r({type:o});static \u0275inj=t({imports:[i.forChild(l),i]})}return o})();var R=(()=>{class o{static \u0275fac=function(e){return new(e||o)};static \u0275mod=r({type:o});static \u0275inj=t({imports:[m,d,u,n,p]})}return o})();export{R as SupportModule};
|
package/public/chunk-TTENUNEO.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{f as a}from"./chunk-62ADZGBJ.js";import"./chunk-5BHGCTWL.js";import"./chunk-YR3ETJZY.js";import"./chunk-WHJSVGC7.js";import"./chunk-6TCHCTXZ.js";import"./chunk-LJHUPCL3.js";import"./chunk-EMKXES77.js";import"./chunk-7EUQWCP5.js";import"./chunk-WNWWUCCZ.js";import"./chunk-6SC3OCKT.js";import"./chunk-CCUID66K.js";import"./chunk-QE7DO6J3.js";import"./chunk-BKUGARB4.js";import"./chunk-BPMSJ2VF.js";import"./chunk-WHJOLAED.js";import"./chunk-JZZQRLNW.js";import"./chunk-KQJ7ONUG.js";import"./chunk-ORPWYWCL.js";import"./chunk-QHPDGSZ6.js";import"./chunk-QXT6R24L.js";import"./chunk-NZNNTHFQ.js";import"./chunk-4IKE4OKZ.js";import"./chunk-J34SI644.js";import"./chunk-3YHN3VHA.js";import"./chunk-UG5DK2RQ.js";import"./chunk-3IX3CLER.js";import"./chunk-TXOB7R5K.js";export{a as StatusComponent};
|