homebridge-config-ui-x 5.12.1-beta.2 → 5.12.1-beta.3

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.
Files changed (176) hide show
  1. package/CHANGELOG.md +0 -4
  2. package/package.json +6 -6
  3. package/public/chunk-2FXKHKRF.js +1 -0
  4. package/public/chunk-2J2ADNZ3.js +2 -0
  5. package/public/chunk-2ZERFNLG.js +1 -0
  6. package/public/chunk-3IQMKSYT.js +1 -0
  7. package/public/chunk-3LXZS65D.js +1 -0
  8. package/public/{chunk-CELBAHUT.js → chunk-5ADKC7QH.js} +1 -1
  9. package/public/chunk-5GJ7VEN2.js +1 -0
  10. package/public/chunk-5J5BKS6V.js +1 -0
  11. package/public/{chunk-XAUQZEVR.js → chunk-5JY2IGJ4.js} +1 -1
  12. package/public/chunk-5LEUA5ML.js +1 -0
  13. package/public/{chunk-G53OXLP6.js → chunk-5QQ2XMII.js} +1 -1
  14. package/public/{chunk-MBM625YK.js → chunk-627DHRQR.js} +1 -1
  15. package/public/{chunk-N2C63RVR.js → chunk-6JORSDRO.js} +1 -1
  16. package/public/{chunk-DDJZVSZF.js → chunk-7DSHUQQE.js} +1 -1
  17. package/public/{chunk-ZDKU7C7X.js → chunk-7O34GFCK.js} +1 -1
  18. package/public/chunk-7SG2F2V4.js +1 -0
  19. package/public/chunk-7YP6YRCQ.js +1 -0
  20. package/public/chunk-A6ZF4UAT.js +1 -0
  21. package/public/{chunk-TEU5YY42.js → chunk-AGMIR63R.js} +1 -1
  22. package/public/chunk-ANHKZLHH.js +1 -0
  23. package/public/chunk-ANK4KDVK.js +1 -0
  24. package/public/chunk-AUQDKQJK.js +1 -0
  25. package/public/chunk-BUH4KDH4.js +1 -0
  26. package/public/{chunk-GTDQP2AN.js → chunk-C64AHVUO.js} +1 -1
  27. package/public/{chunk-U6VZTQOE.js → chunk-CJ4RHJAH.js} +1 -1
  28. package/public/chunk-CRZNK2EK.js +1 -0
  29. package/public/{chunk-VOS6USVC.js → chunk-CSG2SHBW.js} +1 -1
  30. package/public/chunk-D5VO4XPO.js +1 -0
  31. package/public/chunk-DJ2EJOEH.js +1 -0
  32. package/public/{chunk-VXY7XPAX.js → chunk-DZ4GN7CJ.js} +1 -1
  33. package/public/chunk-E6DYTMWA.js +1 -0
  34. package/public/chunk-E7TDUWKH.js +1 -0
  35. package/public/chunk-EQED4CZQ.js +1 -0
  36. package/public/chunk-F5MBSCH4.js +4 -0
  37. package/public/chunk-FE2ZONWW.js +1 -0
  38. package/public/{chunk-AKBDMFNY.js → chunk-FNRDBHYN.js} +1 -1
  39. package/public/chunk-FPSFZSJ3.js +1 -0
  40. package/public/{chunk-M4AG6QQU.js → chunk-G26XQPM7.js} +1 -1
  41. package/public/chunk-G2NY3ZCN.js +1 -0
  42. package/public/chunk-GEGSB4GN.js +1 -0
  43. package/public/chunk-GN7QPRR6.js +1 -0
  44. package/public/{chunk-TS4TGXTB.js → chunk-HH2FDI7W.js} +1 -1
  45. package/public/chunk-HH2POB4I.js +1 -0
  46. package/public/{chunk-DPOOINVO.js → chunk-HMF2EYMY.js} +1 -1
  47. package/public/chunk-HWDBPX2Z.js +1 -0
  48. package/public/{chunk-ZKWE65PF.js → chunk-I4UJLAVJ.js} +1 -1
  49. package/public/chunk-IDS6VUDM.js +1 -0
  50. package/public/{chunk-NJRKOKSU.js → chunk-IHAA5URA.js} +1 -1
  51. package/public/chunk-IR6ZCGVC.js +1 -0
  52. package/public/{chunk-4MY4WY4Y.js → chunk-JBCO5ZGG.js} +1 -1
  53. package/public/{chunk-XW47YBLS.js → chunk-JDMMT5L4.js} +1 -1
  54. package/public/{chunk-L4IWIWT2.js → chunk-JXGR2UI3.js} +1 -1
  55. package/public/{chunk-PXHERBFM.js → chunk-K3WEJJSS.js} +1 -1
  56. package/public/chunk-K6KSPMJA.js +1 -0
  57. package/public/chunk-KB7D5SFS.js +1 -0
  58. package/public/{chunk-MOJIJ4KI.js → chunk-KEESKHLN.js} +1 -1
  59. package/public/chunk-KJJHXJSC.js +1 -0
  60. package/public/{chunk-LJ2TL6FU.js → chunk-KQSUQYOI.js} +1 -1
  61. package/public/{chunk-AG63JY5Y.js → chunk-KU7MI4EL.js} +1 -1
  62. package/public/chunk-LBYOA4VH.js +1 -0
  63. package/public/chunk-LJ22FMGM.js +1 -0
  64. package/public/{chunk-XGVNG2RP.js → chunk-LKA3HBCU.js} +1 -1
  65. package/public/{chunk-PUHVTSJH.js → chunk-LNVODE7E.js} +1 -1
  66. package/public/chunk-LXQKJPCB.js +1 -0
  67. package/public/{chunk-QMG4EHL7.js → chunk-MAQWGSNZ.js} +1 -1
  68. package/public/chunk-NEMS53PP.js +1 -0
  69. package/public/chunk-NNZ55R3M.js +1 -0
  70. package/public/chunk-NP4HRPHU.js +1 -0
  71. package/public/{chunk-WR3QTFHE.js → chunk-NSDUWTNB.js} +1 -1
  72. package/public/{chunk-E6JKJ4SR.js → chunk-O7ASY26P.js} +1 -1
  73. package/public/chunk-OEWYBM4X.js +1 -0
  74. package/public/chunk-OOIPUQER.js +1 -0
  75. package/public/{chunk-6BJX5CLA.js → chunk-OTMZDL7S.js} +1 -1
  76. package/public/chunk-P2GGGU2Y.js +1 -0
  77. package/public/{chunk-UCN23NIX.js → chunk-PIZ742XO.js} +2 -2
  78. package/public/{chunk-SWNRIKJQ.js → chunk-Q4ALB4PG.js} +1 -1
  79. package/public/chunk-QAK4LTJK.js +1 -0
  80. package/public/chunk-QKVFC7F5.js +1 -0
  81. package/public/{chunk-DYMBIGE6.js → chunk-RDHUW73W.js} +1 -1
  82. package/public/chunk-RVX73CVN.js +1 -0
  83. package/public/{chunk-YTS2HZ4E.js → chunk-S2NF675V.js} +1 -1
  84. package/public/chunk-SJDRQIN5.js +1 -0
  85. package/public/chunk-SKRVTKE3.js +68 -0
  86. package/public/{chunk-4KYVVTGG.js → chunk-SKTRHOM7.js} +1 -1
  87. package/public/chunk-T6FOXECG.js +1 -0
  88. package/public/{chunk-H7VV626G.js → chunk-TIETFXW3.js} +1 -1
  89. package/public/{chunk-WBOY7NZ2.js → chunk-TXSHVS35.js} +1 -1
  90. package/public/chunk-U5PCRNWX.js +1 -0
  91. package/public/chunk-UB77D3LN.js +1 -0
  92. package/public/{chunk-O4N7TQYF.js → chunk-UHG23NUX.js} +1 -1
  93. package/public/{chunk-Z6WBGM7E.js → chunk-UQTV3KLJ.js} +1 -1
  94. package/public/chunk-USNKVK3T.js +1 -0
  95. package/public/{chunk-7ZXYLVBT.js → chunk-UTK5QYBZ.js} +1 -1
  96. package/public/{chunk-LBHYTPQT.js → chunk-UU4H7O22.js} +12 -12
  97. package/public/{chunk-NXZQXLGL.js → chunk-UVWXUC5Y.js} +1 -1
  98. package/public/chunk-VCQXRYFP.js +1 -0
  99. package/public/{chunk-BOC4GPPW.js → chunk-VCWYDWAJ.js} +1 -1
  100. package/public/chunk-VF77U6IG.js +1 -0
  101. package/public/chunk-VS2RZZM2.js +1 -0
  102. package/public/{chunk-FKOFLPTH.js → chunk-VZQ3UMBD.js} +1 -1
  103. package/public/chunk-WLG7PGUZ.js +1 -0
  104. package/public/{chunk-YCP75D2G.js → chunk-X66UFY6K.js} +1 -1
  105. package/public/chunk-XFEUNVVJ.js +1 -0
  106. package/public/{chunk-UZAMPJXO.js → chunk-XFKYZXKP.js} +1 -1
  107. package/public/{chunk-KJCR3URD.js → chunk-Y6DNZAC2.js} +1 -1
  108. package/public/chunk-Y7EASXJH.js +1 -0
  109. package/public/chunk-YM24O4KE.js +1 -0
  110. package/public/{chunk-NIIKMOHL.js → chunk-YUXVWURK.js} +1 -1
  111. package/public/{chunk-ET2AGGLD.js → chunk-Z56QIJS3.js} +1 -1
  112. package/public/{chunk-2HVLTYRG.js → chunk-ZBIB5CY4.js} +1 -1
  113. package/public/{chunk-RB55HUXA.js → chunk-ZBNB3EPH.js} +1 -1
  114. package/public/chunk-ZR36K7FI.js +1 -0
  115. package/public/index.html +1 -1
  116. package/public/{main-E4NWGQN5.js → main-B3YXUAIV.js} +1 -1
  117. package/public/chunk-2OYRXBN2.js +0 -1
  118. package/public/chunk-2RZGQOIV.js +0 -1
  119. package/public/chunk-2TYRSR7L.js +0 -1
  120. package/public/chunk-2ZONQRJY.js +0 -1
  121. package/public/chunk-346MBK4E.js +0 -2
  122. package/public/chunk-3SEP5DLZ.js +0 -1
  123. package/public/chunk-3Z2ANIU6.js +0 -1
  124. package/public/chunk-3ZAUWVFS.js +0 -1
  125. package/public/chunk-4SYWCOWD.js +0 -1
  126. package/public/chunk-5BNEKASD.js +0 -1
  127. package/public/chunk-5GLW5TDA.js +0 -1
  128. package/public/chunk-5RBSEAWH.js +0 -1
  129. package/public/chunk-6J2OZXHX.js +0 -1
  130. package/public/chunk-6JD6QYDM.js +0 -1
  131. package/public/chunk-6PJ56ZYO.js +0 -1
  132. package/public/chunk-6TVBUEIO.js +0 -1
  133. package/public/chunk-725QXWIS.js +0 -1
  134. package/public/chunk-7UVP7RXM.js +0 -1
  135. package/public/chunk-AMYBOLIJ.js +0 -1
  136. package/public/chunk-AVNUTXZU.js +0 -1
  137. package/public/chunk-B7HJCRSF.js +0 -1
  138. package/public/chunk-B7M44SMZ.js +0 -1
  139. package/public/chunk-DIANFPJO.js +0 -1
  140. package/public/chunk-DIV6SBSA.js +0 -1
  141. package/public/chunk-EGSAGFD6.js +0 -1
  142. package/public/chunk-ELBRHYEQ.js +0 -1
  143. package/public/chunk-FE2B7I65.js +0 -1
  144. package/public/chunk-GTYX4TNN.js +0 -68
  145. package/public/chunk-GUGASWDS.js +0 -1
  146. package/public/chunk-HBKEAKUY.js +0 -1
  147. package/public/chunk-HPMVQQCQ.js +0 -1
  148. package/public/chunk-HYXVTKH5.js +0 -1
  149. package/public/chunk-IEA4TRJP.js +0 -1
  150. package/public/chunk-KII4A2TO.js +0 -1
  151. package/public/chunk-LHNLN7G4.js +0 -1
  152. package/public/chunk-MQYFARVS.js +0 -1
  153. package/public/chunk-N5RLFJCF.js +0 -1
  154. package/public/chunk-NE5TKDBZ.js +0 -1
  155. package/public/chunk-OEMJNAOZ.js +0 -1
  156. package/public/chunk-OKDYJSK3.js +0 -1
  157. package/public/chunk-OMS2DGGK.js +0 -1
  158. package/public/chunk-OXW7WUD2.js +0 -1
  159. package/public/chunk-OYAUZ7WO.js +0 -1
  160. package/public/chunk-P36LCHFC.js +0 -1
  161. package/public/chunk-P46NZURT.js +0 -1
  162. package/public/chunk-PQBOVKF6.js +0 -1
  163. package/public/chunk-STYJ7GX2.js +0 -1
  164. package/public/chunk-T5HDXHUI.js +0 -1
  165. package/public/chunk-TJM4IBUQ.js +0 -1
  166. package/public/chunk-TKQVPB3N.js +0 -1
  167. package/public/chunk-TNHQCJ4K.js +0 -1
  168. package/public/chunk-UQ6A4TOF.js +0 -1
  169. package/public/chunk-UX5CFJ7O.js +0 -4
  170. package/public/chunk-W4IPMDNP.js +0 -1
  171. package/public/chunk-XO4RLEIC.js +0 -1
  172. package/public/chunk-XYOWFUTO.js +0 -1
  173. package/public/chunk-Z5ETX2UJ.js +0 -1
  174. package/public/chunk-ZO7KUAS7.js +0 -1
  175. package/public/chunk-ZSOLIIEA.js +0 -1
  176. package/public/chunk-ZTOOYWTR.js +0 -1
@@ -1 +1 @@
1
- import{e as T}from"./chunk-DDJZVSZF.js";import{a as $,b as O}from"./chunk-GTDQP2AN.js";import{b as G}from"./chunk-UZAMPJXO.js";import{B as Z,C as ee,D as te,c as Q,d as u,e as U,f as W,g as j,j as y,m as J,r as K,s as X,z as Y}from"./chunk-4MY4WY4Y.js";import{b as A}from"./chunk-VXY7XPAX.js";import{D as z,H,o as D}from"./chunk-346MBK4E.js";import{Ab as f,Dc as l,Ec as d,F as k,Fb as m,Gb as a,Hb as o,Ib as r,Oc as w,P as N,Ua as S,Xb as P,Za as n,Zb as V,aa as c,ec as L,fc as F,hc as q,ic as b,kc as v,lc as C,ma as E,mc as B,n as I,nb as R,o as M,sa as p,zb as g}from"./chunk-UX5CFJ7O.js";import{h as x}from"./chunk-B4AJQJMI.js";var ie=["password"],ne=["username"],oe=["otp"];function ae(i,_){if(i&1&&(a(0,"div",8)(1,"span",12),r(2,"i",13),o(),r(3,"input",14,0),l(5,"translate"),o(),a(6,"div",8)(7,"span",12),r(8,"i",15),o(),r(9,"input",16,1),l(11,"translate"),o()),i&2){let t=V();n(3),b("is-invalid",t.form.controls.username.dirty&&t.form.controls.username.errors),m("placeholder",d(5,6,"users.label_username")),n(6),b("is-invalid",t.form.controls.password.dirty&&t.form.controls.password.errors),m("placeholder",d(11,8,"users.label_password"))}}function re(i,_){i&1&&(a(0,"div",8)(1,"span",12),r(2,"i",17),o(),r(3,"input",18,2),l(5,"translate"),o()),i&2&&(n(3),m("placeholder",d(5,1,"login.label_2fa_code")))}function se(i,_){i&1&&(a(0,"div",9)(1,"div",12),r(2,"i",19),o(),a(3,"div",20)(4,"div",21),v(5),l(6,"translate"),o(),r(7,"div",22),l(8,"translate"),o()()),i&2&&(n(5),C(d(6,2,"login.invalid_credentials")),n(2),m("innerHTML",d(8,4,"login.invalid_credentials_2"),S))}function le(i,_){i&1&&(a(0,"div",9)(1,"div",12),r(2,"i",19),o(),a(3,"div",20)(4,"div",21),v(5),l(6,"translate"),o(),r(7,"div",22),l(8,"translate"),o()()),i&2&&(n(5),C(d(6,2,"login.invalid_code")),n(2),m("innerHTML",d(8,4,"login.invalid_credentials_2"),S))}var xe=(()=>{class i{destroyRef=c(E);$auth=c(G);$router=c(T);$settings=c(A);targetRoute;validNonAdminRoutes=["/accessories","/plugins","/logs","/support"];passwordInput=w("password");usernameInput=w("username");otpInput=w("otp");backgroundStyle=p("");invalidCredentials=p(!1);invalid2faCode=p(!1);twoFactorCodeRequired=p(!1);inProgress=p(!1);form=new j({username:new y("",{nonNullable:!0,validators:[u.required]}),password:new y("",{nonNullable:!0,validators:[u.required]}),otp:new y("",{nonNullable:!0})});formInvalid=O(this.form.statusChanges.pipe(N(this.form.status),M(()=>this.form.invalid)),{initialValue:this.form.invalid});ngOnInit(){this.form.valueChanges.pipe(k(500),$(this.destroyRef)).subscribe(()=>{let t=this.passwordInput()?.nativeElement.value;t&&t!==this.form.controls.password.value&&this.form.controls.password.setValue(t)}),this.targetRoute=window.sessionStorage.getItem("target_route")||"",this.setBackground()}onSubmit(){return x(this,null,function*(){this.invalidCredentials.set(!1),this.invalid2faCode.set(!1),this.inProgress.set(!0),document.getElementById("submit-button")?.blur();let t=this.passwordInput()?.nativeElement.value;t&&t!==this.form.controls.password.value&&this.form.controls.password.setValue(t);let s=this.usernameInput()?.nativeElement.value;if(s&&s!==this.form.controls.username.value&&this.form.controls.username.setValue(s),this.twoFactorCodeRequired()){let e=this.otpInput()?.nativeElement.value;e&&e!==this.form.controls.otp.value&&this.form.controls.otp.setValue(e)}try{yield this.$auth.login(this.form.getRawValue()),!this.$auth.user.admin&&!this.validNonAdminRoutes.includes(this.targetRoute)&&(this.targetRoute="/"),this.$router.navigateByUrl(this.targetRoute),window.sessionStorage.removeItem("target_route")}catch(e){if(e.status===412){let h=this.form.controls.otp;this.twoFactorCodeRequired()?(h.setErrors({invalidCode:!0}),this.invalid2faCode.set(!0)):(h.setValidators([u.required,u.minLength(6),u.maxLength(6)]),h.updateValueAndValidity()),this.twoFactorCodeRequired.set(!0),setTimeout(()=>{document.getElementById("form-ota")?.focus()},100)}else this.invalidCredentials.set(!0)}this.inProgress.set(!1)})}setBackground(){return x(this,null,function*(){if(this.$settings.settingsLoaded||(yield I(this.$settings.onSettingsLoaded)),this.$settings.env.customWallpaperHash){let t=`${H.api.base}/auth/wallpaper/${this.$settings.env.customWallpaperHash}`;this.backgroundStyle.set(`url('${t}') center/cover`)}})}static \u0275fac=function(s){return new(s||i)};static \u0275cmp=R({type:i,selectors:[["ng-component"]],viewQuery:function(s,e){s&1&&L(e.passwordInput,ie,5)(e.usernameInput,ne,5)(e.otpInput,oe,5),s&2&&F(3)},decls:15,vars:16,consts:[["username",""],["password",""],["otp",""],[1,"login-container","gradient","d-flex","align-items-start","justify-content-center"],[1,"w-100","login-card","d-flex","py-4","flex-column"],["ngSrc","assets/homebridge-color-round.svg","alt","Homebridge Logo","height","100","width","100","priority","true",1,"homebridge-logo","mx-auto","my-3"],["novalidate","",3,"ngSubmit","formGroup"],[1,"mb-4","text-center"],[1,"input-group","mb-4"],[1,"input-group","no-border","mb-4"],[1,"text-center"],["tabindex","3","id","submit-button","type","submit",1,"btn","btn-primary","mb-2",3,"disabled"],[1,"input-group-text","custom-input"],[1,"fas","fa-user","primary-text","fa-lg"],["formControlName","username","type","text","id","form-username","autofocus","","autocomplete","username","autocapitalize","none","tabindex","1","required","",1,"form-control","custom-input",3,"placeholder"],[1,"fas","fa-lock","primary-text","fa-lg"],["formControlName","password","type","password","id","form-pass","autocomplete","current-password","tabindex","2","required","",1,"form-control","custom-input",3,"placeholder"],[1,"fas","fa-key","primary-text","fa-lg"],["formControlName","otp","type","text","id","form-ota","autofocus","","autocomplete","one-time-code","autocapitalize","none","inputmode","numeric","pattern","[0-9]*","tabindex","1",1,"form-control","custom-input",3,"placeholder"],[1,"fas","fa-exclamation-triangle","pink-text","fa-lg"],[1,"form-control","custom-input"],[1,"small","grey-text","fw-semibold"],[1,"small","grey-text",3,"innerHTML"]],template:function(s,e){s&1&&(a(0,"div",3)(1,"div",4),r(2,"img",5),a(3,"form",6),P("ngSubmit",function(){return e.onSubmit()}),a(4,"h4",7),v(5),l(6,"translate"),o(),g(7,ae,12,10),g(8,re,6,3,"div",8),g(9,se,9,6,"div",9),g(10,le,9,6,"div",9),a(11,"div",10)(12,"button",11),v(13),l(14,"translate"),o()()()()()),s&2&&(q("background",e.backgroundStyle()),b("anim",!e.backgroundStyle()),n(3),m("formGroup",e.form),n(2),C(d(6,12,"setup.welcome_to_homebridge")),n(2),f(e.twoFactorCodeRequired()?-1:7),n(),f(e.twoFactorCodeRequired()?8:-1),n(),f(e.invalidCredentials()?9:-1),n(),f(e.invalid2faCode()?10:-1),n(2),m("disabled",e.formInvalid()),n(),B(" ",d(14,14,"form.button_continue")," "))},dependencies:[ee,J,Q,U,W,Y,Z,te,X,K,D,z],styles:["body{overflow:scroll!important} body.dark-mode .login-card{background-color:#2b2b2b;color:#fff}.login-container[_ngcontent-%COMP%]{z-index:-1;padding-top:2em;padding-bottom:2em;min-height:100%;background-size:300% 300%}.anim[_ngcontent-%COMP%]{-webkit-animation:_ngcontent-%COMP%_gradient 20s ease infinite;-moz-animation:gradient 20s ease infinite;animation:_ngcontent-%COMP%_gradient 20s ease infinite}@keyframes _ngcontent-%COMP%_gradient{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}.login-card[_ngcontent-%COMP%]{max-width:550px;border-radius:1rem;padding-right:25px;padding-left:25px;background-color:#ffffffe6}.login-card[_ngcontent-%COMP%] .form-control[_ngcontent-%COMP%]:focus{background-color:inherit!important}@media screen and (max-width:575px){.login-card[_ngcontent-%COMP%]{margin-left:1em;margin-right:1em}}.homebridge-logo[_ngcontent-%COMP%]{margin-bottom:10px}"]})}return i})();export{xe as LoginComponent};
1
+ import{e as T}from"./chunk-7DSHUQQE.js";import{a as $,b as O}from"./chunk-C64AHVUO.js";import{b as G}from"./chunk-XFKYZXKP.js";import{B as Z,C as ee,D as te,c as Q,d as u,e as U,f as W,g as j,j as y,m as J,r as K,s as X,z as Y}from"./chunk-JBCO5ZGG.js";import{b as A}from"./chunk-DZ4GN7CJ.js";import{D as z,H,o as D}from"./chunk-2J2ADNZ3.js";import{Ab as f,Dc as l,Ec as d,F as k,Fb as m,Gb as a,Hb as o,Ib as r,Oc as w,P as N,Ua as S,Xb as P,Za as n,Zb as V,aa as c,ec as L,fc as F,hc as q,ic as b,kc as v,lc as C,ma as E,mc as B,n as I,nb as R,o as M,sa as p,zb as g}from"./chunk-F5MBSCH4.js";import{h as x}from"./chunk-B4AJQJMI.js";var ie=["password"],ne=["username"],oe=["otp"];function ae(i,_){if(i&1&&(a(0,"div",8)(1,"span",12),r(2,"i",13),o(),r(3,"input",14,0),l(5,"translate"),o(),a(6,"div",8)(7,"span",12),r(8,"i",15),o(),r(9,"input",16,1),l(11,"translate"),o()),i&2){let t=V();n(3),b("is-invalid",t.form.controls.username.dirty&&t.form.controls.username.errors),m("placeholder",d(5,6,"users.label_username")),n(6),b("is-invalid",t.form.controls.password.dirty&&t.form.controls.password.errors),m("placeholder",d(11,8,"users.label_password"))}}function re(i,_){i&1&&(a(0,"div",8)(1,"span",12),r(2,"i",17),o(),r(3,"input",18,2),l(5,"translate"),o()),i&2&&(n(3),m("placeholder",d(5,1,"login.label_2fa_code")))}function se(i,_){i&1&&(a(0,"div",9)(1,"div",12),r(2,"i",19),o(),a(3,"div",20)(4,"div",21),v(5),l(6,"translate"),o(),r(7,"div",22),l(8,"translate"),o()()),i&2&&(n(5),C(d(6,2,"login.invalid_credentials")),n(2),m("innerHTML",d(8,4,"login.invalid_credentials_2"),S))}function le(i,_){i&1&&(a(0,"div",9)(1,"div",12),r(2,"i",19),o(),a(3,"div",20)(4,"div",21),v(5),l(6,"translate"),o(),r(7,"div",22),l(8,"translate"),o()()),i&2&&(n(5),C(d(6,2,"login.invalid_code")),n(2),m("innerHTML",d(8,4,"login.invalid_credentials_2"),S))}var xe=(()=>{class i{destroyRef=c(E);$auth=c(G);$router=c(T);$settings=c(A);targetRoute;validNonAdminRoutes=["/accessories","/plugins","/logs","/support"];passwordInput=w("password");usernameInput=w("username");otpInput=w("otp");backgroundStyle=p("");invalidCredentials=p(!1);invalid2faCode=p(!1);twoFactorCodeRequired=p(!1);inProgress=p(!1);form=new j({username:new y("",{nonNullable:!0,validators:[u.required]}),password:new y("",{nonNullable:!0,validators:[u.required]}),otp:new y("",{nonNullable:!0})});formInvalid=O(this.form.statusChanges.pipe(N(this.form.status),M(()=>this.form.invalid)),{initialValue:this.form.invalid});ngOnInit(){this.form.valueChanges.pipe(k(500),$(this.destroyRef)).subscribe(()=>{let t=this.passwordInput()?.nativeElement.value;t&&t!==this.form.controls.password.value&&this.form.controls.password.setValue(t)}),this.targetRoute=window.sessionStorage.getItem("target_route")||"",this.setBackground()}onSubmit(){return x(this,null,function*(){this.invalidCredentials.set(!1),this.invalid2faCode.set(!1),this.inProgress.set(!0),document.getElementById("submit-button")?.blur();let t=this.passwordInput()?.nativeElement.value;t&&t!==this.form.controls.password.value&&this.form.controls.password.setValue(t);let s=this.usernameInput()?.nativeElement.value;if(s&&s!==this.form.controls.username.value&&this.form.controls.username.setValue(s),this.twoFactorCodeRequired()){let e=this.otpInput()?.nativeElement.value;e&&e!==this.form.controls.otp.value&&this.form.controls.otp.setValue(e)}try{yield this.$auth.login(this.form.getRawValue()),!this.$auth.user.admin&&!this.validNonAdminRoutes.includes(this.targetRoute)&&(this.targetRoute="/"),this.$router.navigateByUrl(this.targetRoute),window.sessionStorage.removeItem("target_route")}catch(e){if(e.status===412){let h=this.form.controls.otp;this.twoFactorCodeRequired()?(h.setErrors({invalidCode:!0}),this.invalid2faCode.set(!0)):(h.setValidators([u.required,u.minLength(6),u.maxLength(6)]),h.updateValueAndValidity()),this.twoFactorCodeRequired.set(!0),setTimeout(()=>{document.getElementById("form-ota")?.focus()},100)}else this.invalidCredentials.set(!0)}this.inProgress.set(!1)})}setBackground(){return x(this,null,function*(){if(this.$settings.settingsLoaded||(yield I(this.$settings.onSettingsLoaded)),this.$settings.env.customWallpaperHash){let t=`${H.api.base}/auth/wallpaper/${this.$settings.env.customWallpaperHash}`;this.backgroundStyle.set(`url('${t}') center/cover`)}})}static \u0275fac=function(s){return new(s||i)};static \u0275cmp=R({type:i,selectors:[["ng-component"]],viewQuery:function(s,e){s&1&&L(e.passwordInput,ie,5)(e.usernameInput,ne,5)(e.otpInput,oe,5),s&2&&F(3)},decls:15,vars:16,consts:[["username",""],["password",""],["otp",""],[1,"login-container","gradient","d-flex","align-items-start","justify-content-center"],[1,"w-100","login-card","d-flex","py-4","flex-column"],["ngSrc","assets/homebridge-color-round.svg","alt","Homebridge Logo","height","100","width","100","priority","true",1,"homebridge-logo","mx-auto","my-3"],["novalidate","",3,"ngSubmit","formGroup"],[1,"mb-4","text-center"],[1,"input-group","mb-4"],[1,"input-group","no-border","mb-4"],[1,"text-center"],["tabindex","3","id","submit-button","type","submit",1,"btn","btn-primary","mb-2",3,"disabled"],[1,"input-group-text","custom-input"],[1,"fas","fa-user","primary-text","fa-lg"],["formControlName","username","type","text","id","form-username","autofocus","","autocomplete","username","autocapitalize","none","tabindex","1","required","",1,"form-control","custom-input",3,"placeholder"],[1,"fas","fa-lock","primary-text","fa-lg"],["formControlName","password","type","password","id","form-pass","autocomplete","current-password","tabindex","2","required","",1,"form-control","custom-input",3,"placeholder"],[1,"fas","fa-key","primary-text","fa-lg"],["formControlName","otp","type","text","id","form-ota","autofocus","","autocomplete","one-time-code","autocapitalize","none","inputmode","numeric","pattern","[0-9]*","tabindex","1",1,"form-control","custom-input",3,"placeholder"],[1,"fas","fa-exclamation-triangle","pink-text","fa-lg"],[1,"form-control","custom-input"],[1,"small","grey-text","fw-semibold"],[1,"small","grey-text",3,"innerHTML"]],template:function(s,e){s&1&&(a(0,"div",3)(1,"div",4),r(2,"img",5),a(3,"form",6),P("ngSubmit",function(){return e.onSubmit()}),a(4,"h4",7),v(5),l(6,"translate"),o(),g(7,ae,12,10),g(8,re,6,3,"div",8),g(9,se,9,6,"div",9),g(10,le,9,6,"div",9),a(11,"div",10)(12,"button",11),v(13),l(14,"translate"),o()()()()()),s&2&&(q("background",e.backgroundStyle()),b("anim",!e.backgroundStyle()),n(3),m("formGroup",e.form),n(2),C(d(6,12,"setup.welcome_to_homebridge")),n(2),f(e.twoFactorCodeRequired()?-1:7),n(),f(e.twoFactorCodeRequired()?8:-1),n(),f(e.invalidCredentials()?9:-1),n(),f(e.invalid2faCode()?10:-1),n(2),m("disabled",e.formInvalid()),n(),B(" ",d(14,14,"form.button_continue")," "))},dependencies:[ee,J,Q,U,W,Y,Z,te,X,K,D,z],styles:["body{overflow:scroll!important} body.dark-mode .login-card{background-color:#2b2b2b;color:#fff}.login-container[_ngcontent-%COMP%]{z-index:-1;padding-top:2em;padding-bottom:2em;min-height:100%;background-size:300% 300%}.anim[_ngcontent-%COMP%]{-webkit-animation:_ngcontent-%COMP%_gradient 20s ease infinite;-moz-animation:gradient 20s ease infinite;animation:_ngcontent-%COMP%_gradient 20s ease infinite}@keyframes _ngcontent-%COMP%_gradient{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}.login-card[_ngcontent-%COMP%]{max-width:550px;border-radius:1rem;padding-right:25px;padding-left:25px;background-color:#ffffffe6}.login-card[_ngcontent-%COMP%] .form-control[_ngcontent-%COMP%]:focus{background-color:inherit!important}@media screen and (max-width:575px){.login-card[_ngcontent-%COMP%]{margin-left:1em;margin-right:1em}}.homebridge-logo[_ngcontent-%COMP%]{margin-bottom:10px}"]})}return i})();export{xe as LoginComponent};
@@ -0,0 +1 @@
1
+ import{a}from"./chunk-5LEUA5ML.js";import"./chunk-B4AJQJMI.js";export default a();