homebridge-config-ui-x 5.11.2-alpha.0 → 5.11.2-alpha.1
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/package.json +1 -1
- package/public/{chunk-SOEFKTV3.js → chunk-3ND4FTJL.js} +1 -1
- package/public/{chunk-UR7BEPD4.js → chunk-4HRXISNZ.js} +1 -1
- package/public/{chunk-HGB7JMQB.js → chunk-4KYVPUTG.js} +1 -1
- package/public/{chunk-FXM34P2Q.js → chunk-6G6325AZ.js} +1 -1
- package/public/{chunk-W6MP663P.js → chunk-6IPZ57S4.js} +1 -1
- package/public/{chunk-63DEF4BP.js → chunk-74KAKFTX.js} +1 -1
- package/public/{chunk-G4TMATE3.js → chunk-77KQMZKD.js} +1 -1
- package/public/{chunk-P3D45344.js → chunk-7IMDRRHF.js} +1 -1
- package/public/{chunk-NF7H6G7M.js → chunk-7MHPXFPT.js} +1 -1
- package/public/{chunk-M5KMDWMD.js → chunk-A2VBYQGU.js} +1 -1
- package/public/{chunk-M5U3WH6U.js → chunk-AM2AGROH.js} +1 -1
- package/public/{chunk-22B4UCUR.js → chunk-BCAWAC5S.js} +1 -1
- package/public/{chunk-4X67MV5P.js → chunk-BRUFPV4S.js} +1 -1
- package/public/{chunk-PXNJ4PSF.js → chunk-CAB2VD3D.js} +1 -1
- package/public/{chunk-FIF6GB4H.js → chunk-CQHE4TU3.js} +1 -1
- package/public/{chunk-GARJCQR2.js → chunk-CZBBUBTH.js} +1 -1
- package/public/{chunk-S52YHDRI.js → chunk-F344NE7H.js} +1 -1
- package/public/{chunk-ZI6P36I2.js → chunk-FDD3SM5M.js} +1 -1
- package/public/{chunk-4KBAYZP7.js → chunk-FJCRSYAB.js} +1 -1
- package/public/{chunk-M72FKTRG.js → chunk-FL4D5IR7.js} +1 -1
- package/public/{chunk-4G547VQH.js → chunk-FOAHTHQO.js} +1 -1
- package/public/{chunk-LT4LVLTJ.js → chunk-GAI5J4YQ.js} +1 -1
- package/public/{chunk-P7RLJ6EQ.js → chunk-GV5JF2YJ.js} +1 -1
- package/public/{chunk-QOXXKL5T.js → chunk-GWQFQK2F.js} +1 -1
- package/public/{chunk-T5WI6HLG.js → chunk-IIAESTI5.js} +1 -1
- package/public/{chunk-CR6W3PUA.js → chunk-KTLG6VZT.js} +1 -1
- package/public/{chunk-YZZ7SAON.js → chunk-MW6H5Z5G.js} +1 -1
- package/public/{chunk-N2IMTG2V.js → chunk-O6MJC7P2.js} +1 -1
- package/public/{chunk-4O7BLLBH.js → chunk-OWEBBEZA.js} +1 -1
- package/public/{chunk-5QXXJI43.js → chunk-QPYSLZDC.js} +1 -1
- package/public/{chunk-S6JEMYUK.js → chunk-R24RQS2V.js} +3 -3
- package/public/{chunk-LPZZFOKR.js → chunk-R3PJ6UT3.js} +1 -1
- package/public/{chunk-JC74NWLG.js → chunk-RRYSODYJ.js} +1 -1
- package/public/{chunk-WYJ4N4TV.js → chunk-SIIM6WZ6.js} +3 -3
- package/public/{chunk-5YRG477U.js → chunk-TWVOLPMB.js} +1 -1
- package/public/{chunk-UQGRSMY3.js → chunk-UTCW7GEG.js} +1 -1
- package/public/{chunk-7D5NLF5A.js → chunk-VNSIIEIM.js} +1 -1
- package/public/{chunk-EVNAB6KB.js → chunk-VTSSBPGB.js} +1 -1
- package/public/{chunk-M4OD2EYP.js → chunk-W2OS6MJH.js} +1 -1
- package/public/{chunk-DGBI427A.js → chunk-ZAKTSIL5.js} +1 -1
- package/public/index.html +1 -1
- package/public/{main-QSNNOJ3S.js → main-HATN2V6Z.js} +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b as D,c as N,d as S}from"./chunk-
|
|
1
|
+
import{b as D,c as N,d as S}from"./chunk-FL4D5IR7.js";import{m as T}from"./chunk-GAI5J4YQ.js";import{F as L}from"./chunk-MW6H5Z5G.js";import{Ab as l,Ec as u,Fb as g,Fc as _,Gb as o,Hb as a,Ib as c,Oc as r,Rb as h,Ua as C,Va as v,Xb as M,Za as i,Zb as m,aa as O,ga as k,ha as P,jc as I,kc as b,lc as w,mc as x,nb as y,vc as B,yb as f,zb as d}from"./chunk-ZPXACREZ.js";function H(t,s){if(t&1&&c(0,"i",16),t&2){let n=m();I(B("fas ",n.faIconClass," mb-3"))}}function E(t,s){if(t&1&&c(0,"h5",6),t&2){let n=m();g("innerHTML",n.subtitle,C)}}function z(t,s){if(t&1&&c(0,"p",8),t&2){let n=m();g("innerHTML",n.message2,C)}}function V(t,s){if(t&1&&c(0,"markdown",9),t&2){let n=m();g("data",n.markdownMessage2)}}function q(t,s){if(t&1){let n=h();o(0,"button",17),u(1,"translate"),M("click",function(){k(n);let e=m();return P(e.dismissModal())}),b(2),u(3,"translate"),a()}t&2&&(f("aria-label",_(1,2,"form.button_close")),i(2),x(" ",_(3,4,"form.button_close")," "))}function j(t,s){if(t&1){let n=h();o(0,"button",17),u(1,"translate"),M("click",function(){k(n);let e=m();return P(e.dismissModal())}),b(2),u(3,"translate"),a()}t&2&&(f("aria-label",_(1,2,"form.button_close")),i(2),x(" ",_(3,4,"form.button_close")," "))}function A(t,s){if(t&1&&(o(0,"a",15),b(1),c(2,"i",18),a()),t&2){let n=m();g("href",n.ctaButtonLink,v),i(),x(" ",n.ctaButtonLabel," ")}}var X=(()=>{class t{$activeModal=O(T);title=r.required({});subtitle=r(void 0,{});message=r.required({});message2=r(void 0,{});ctaButtonLabel=r(void 0,{});ctaButtonLink=r(void 0,{});faIconClass=r.required({});markdownMessage2=r(void 0,{});dismissModal(){this.$activeModal.dismiss("Dismiss")}static \u0275fac=function(p){return new(p||t)};static \u0275cmp=y({type:t,selectors:[["ng-component"]],inputs:{title:[1,"title"],subtitle:[1,"subtitle"],message:[1,"message"],message2:[1,"message2"],ctaButtonLabel:[1,"ctaButtonLabel"],ctaButtonLink:[1,"ctaButtonLink"],faIconClass:[1,"faIconClass"],markdownMessage2:[1,"markdownMessage2"]},decls:19,vars:13,consts:[["role","dialog","aria-modal","true",1,"modal-content"],[1,"modal-header"],["id","information-modal-title",1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click"],[1,"modal-body","text-center"],[2,"font-size","75px",3,"class"],[1,"mb-3",3,"innerHTML"],[1,"mb-0",3,"innerHTML"],[1,"mb-0","mt-3",3,"innerHTML"],[1,"plugin-md",3,"data"],[1,"modal-footer","justify-content-between"],[1,"text-start"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant"],[1,"text-center"],[1,"text-end"],["target","_blank","rel","noopener noreferrer",1,"btn","btn-primary","text-decoration-none",3,"href"],[2,"font-size","75px"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],[1,"fas","fa-external-link-alt"]],template:function(p,e){p&1&&(o(0,"div",0)(1,"div",1)(2,"h5",2),b(3),a(),o(4,"button",3),u(5,"translate"),M("click",function(){return e.dismissModal()}),a()(),o(6,"div",4),d(7,H,1,3,"i",5),d(8,E,1,1,"h5",6),c(9,"p",7),d(10,z,1,1,"p",8),d(11,V,1,1,"markdown",9),a(),o(12,"div",10)(13,"div",11),d(14,q,4,6,"button",12),a(),o(15,"div",13),d(16,j,4,6,"button",12),a(),o(17,"div",14),d(18,A,3,2,"a",15),a()()()),p&2&&(f("aria-labelledby","information-modal-title"),i(3),w(e.title),i(),f("aria-label",_(5,11,"form.button_close")),i(3),l(e.faIconClass?7:-1),i(),l(e.subtitle?8:-1),i(),g("innerHTML",e.message,C),i(),l(e.message2?10:-1),i(),l(e.markdownMessage2?11:-1),i(3),l(e.ctaButtonLink?14:-1),i(2),l(e.ctaButtonLink?-1:16),i(2),l(e.ctaButtonLink?18:-1))},dependencies:[N,D,S,L],styles:["[_nghost-%COMP%] .plugin-md{display:block!important;background-color:#f6f8fa!important;border-radius:6px!important;padding:16px!important;margin:16px auto!important;width:100%!important;max-width:632px!important}[_nghost-%COMP%] .plugin-md table{width:100%;max-width:600px;margin:0 auto!important;border-collapse:collapse;border:1px solid #d0d7de!important;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif!important;font-size:14px!important;color:#24292e!important}[_nghost-%COMP%] .plugin-md th, [_nghost-%COMP%] .plugin-md td{padding:6px 13px!important;border:1px solid #d0d7de!important;text-align:left;color:#24292e!important}[_nghost-%COMP%] .plugin-md th{background-color:#f6f8fa!important;font-weight:600!important;text-align:center!important}[_nghost-%COMP%] .plugin-md td[align=center]{text-align:center!important}[_nghost-%COMP%] .plugin-md tr{color:#24292e!important}[_nghost-%COMP%] .plugin-md tr:nth-child(odd){background-color:#fff!important}[_nghost-%COMP%] .plugin-md tr:nth-child(2n){background-color:#f6f8fa!important}[_nghost-%COMP%] .plugin-md tr:hover{background-color:#f0f2f5!important}[_nghost-%COMP%] body.dark-mode[_ngcontent-%COMP%] .plugin-md[_ngcontent-%COMP%]{background-color:#2b2b2b!important;color:#fff!important}[_nghost-%COMP%] body.dark-mode[_ngcontent-%COMP%] .plugin-md[_ngcontent-%COMP%] table[_ngcontent-%COMP%], [_nghost-%COMP%] body.dark-mode[_ngcontent-%COMP%] .plugin-md[_ngcontent-%COMP%] tr[_ngcontent-%COMP%], [_nghost-%COMP%] body.dark-mode[_ngcontent-%COMP%] .plugin-md[_ngcontent-%COMP%] th[_ngcontent-%COMP%], [_nghost-%COMP%] body.dark-mode[_ngcontent-%COMP%] .plugin-md[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{color:#fff!important}[_nghost-%COMP%] body.dark-mode[_ngcontent-%COMP%] .plugin-md[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{background-color:#3c3c3c!important}[_nghost-%COMP%] body.dark-mode[_ngcontent-%COMP%] .plugin-md[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:nth-child(odd){background-color:#323232!important}[_nghost-%COMP%] body.dark-mode[_ngcontent-%COMP%] .plugin-md[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:nth-child(2n){background-color:#2b2b2b!important}[_nghost-%COMP%] body.dark-mode[_ngcontent-%COMP%] .plugin-md[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:hover{background-color:#454545!important}"]})}return t})();export{X as a};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as z,b as S,c as F}from"./chunk-BMOLDRJ3.js";import{a}from"./chunk-
|
|
1
|
+
import{a as z,b as S,c as F}from"./chunk-BMOLDRJ3.js";import{a}from"./chunk-74KAKFTX.js";import{F as c,X as f,aa as u,d as m}from"./chunk-ZPXACREZ.js";import{g as h}from"./chunk-B4AJQJMI.js";var d=h(z(),1),p=h(S(),1),b=h(F(),1);var B=(()=>{class s{$ws=u(a);io;fitAddon;webLinksAddon;resize;elementResize;pluginName;connectedSubscription;resizeSubscription;elementResizeSubscription;searchFilter=null;logBuffer=[];maxBufferSize=1e3;term;startTerminal(e,r={},n,w){this.pluginName=w,this.elementResize=n,this.io=this.$ws.connectToNamespace("log"),this.fitAddon=new d.FitAddon,this.webLinksAddon=new p.WebLinksAddon,this.term=new b.Terminal(r),this.term.loadAddon(this.fitAddon),this.term.loadAddon(this.webLinksAddon),this.resize=new m,this.term.open(e.nativeElement),setTimeout(()=>{this.fitAddon.fit()}),this.connectedSubscription=this.io.connected.subscribe(()=>{this.term.reset(),this.logBuffer=[],this.io.socket.emit("tail-log",{cols:this.term.cols,rows:this.term.rows})}),this.io.socket.connected&&this.io.socket.emit("tail-log",{cols:this.term.cols,rows:this.term.rows}),this.io.socket.on("disconnect",()=>{this.term.write(`
|
|
2
2
|
\r
|
|
3
3
|
\rWebsocket failed to connect. Is the server running?
|
|
4
4
|
\r
|
|
@@ -7,6 +7,6 @@ import{a as z,b as S,c as F}from"./chunk-BMOLDRJ3.js";import{a}from"./chunk-63DE
|
|
|
7
7
|
\r`);return}o.includes(`36m[${this.pluginName}]`)&&(this.term.write(`${o}
|
|
8
8
|
\r`),t=!0)}})}else this.logBuffer.push(i),this.logBuffer.length>this.maxBufferSize&&this.logBuffer.shift(),this.searchFilter?i.split(`
|
|
9
9
|
\r`).forEach(t=>{t&&this.lineMatchesFilter(t)&&this.term.write(`${t}
|
|
10
|
-
\r`)}):this.term.write(i)}),this.term.onResize(i=>{this.resize.next(i)}),this.elementResize&&(this.elementResizeSubscription=this.elementResize.pipe(c(100)).subscribe({next:()=>{this.fitAddon.fit()}}))}setSearchFilter(e){this.searchFilter=e.toLowerCase(),this.redrawTerminalWithFilter()}clearSearchFilter(){this.searchFilter=null,this.redrawTerminalWithFilter()}getSearchFilter(){return this.searchFilter}lineMatchesFilter(e){return this.searchFilter?e.replace(/\x1b\[[0-9;]*m/g,"").toLowerCase().includes(this.searchFilter):!0}redrawTerminalWithFilter(){this.term&&(this.term.clear(),this.logBuffer.forEach(e=>{this.searchFilter?e.split(`
|
|
10
|
+
\r`)}):this.term.write(i)}),this.term.onResize(i=>{this.resize.next(i)}),this.elementResize&&(this.elementResizeSubscription=this.elementResize.pipe(c(100)).subscribe({next:()=>{this.fitAddon.fit()}}))}setSearchFilter(e){this.searchFilter=e.toLowerCase(),this.redrawTerminalWithFilter()}clearSearchFilter(){this.searchFilter=null,this.redrawTerminalWithFilter()}getSearchFilter(){return this.searchFilter}scrollToBottom(){this.term&&setTimeout(()=>this.term.scrollToLine(this.term.buffer.active.length),10)}lineMatchesFilter(e){return this.searchFilter?e.replace(/\x1b\[[0-9;]*m/g,"").toLowerCase().includes(this.searchFilter):!0}redrawTerminalWithFilter(){this.term&&(this.term.clear(),this.logBuffer.forEach(e=>{this.searchFilter?e.split(`
|
|
11
11
|
\r`).forEach(n=>{n&&this.lineMatchesFilter(n)&&this.term.write(`${n}
|
|
12
|
-
\r`)}):this.term.write(e)}))}destroyTerminal(){this.connectedSubscription&&(this.connectedSubscription.unsubscribe(),this.connectedSubscription=null),this.resizeSubscription&&(this.resizeSubscription.unsubscribe(),this.resizeSubscription=null),this.elementResizeSubscription&&(this.elementResizeSubscription.unsubscribe(),this.elementResizeSubscription=null),this.io&&this.io.socket&&(this.io.socket.removeAllListeners("stdout"),this.io.socket.removeAllListeners("disconnect")),this.io&&this.io.end(),this.term&&this.term.dispose(),this.resize&&this.resize.complete(),this.elementResize&&this.elementResize.complete(),this.logBuffer=[],this.searchFilter=null}static \u0275fac=function(r){return new(r||s)};static \u0275prov=f({token:s,factory:s.\u0275fac,providedIn:"root"})}return s})();export{
|
|
12
|
+
\r`)}):this.term.write(e)}))}destroyTerminal(){this.connectedSubscription&&(this.connectedSubscription.unsubscribe(),this.connectedSubscription=null),this.resizeSubscription&&(this.resizeSubscription.unsubscribe(),this.resizeSubscription=null),this.elementResizeSubscription&&(this.elementResizeSubscription.unsubscribe(),this.elementResizeSubscription=null),this.io&&this.io.socket&&(this.io.socket.removeAllListeners("stdout"),this.io.socket.removeAllListeners("disconnect")),this.io&&this.io.end(),this.term&&this.term.dispose(),this.resize&&this.resize.complete(),this.elementResize&&this.elementResize.complete(),this.logBuffer=[],this.searchFilter=null}static \u0275fac=function(r){return new(r||s)};static \u0275prov=f({token:s,factory:s.\u0275fac,providedIn:"root"})}return s})();export{B as a};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as ve}from"./chunk-2W47TKRP.js";import{a as xe}from"./chunk-4O7BLLBH.js";import{g as ee,m as D,n as _e}from"./chunk-LT4LVLTJ.js";import{c as ue}from"./chunk-DGBI427A.js";import{a as ce}from"./chunk-JLNKCN3A.js";import{b as Q}from"./chunk-CR6W3PUA.js";import{B as be,C as G,D as P,b as H,c as V,d as w,e as N,f as K,g as A,j as E,m as W,q as X,r as Y,s as Z}from"./chunk-N2IMTG2V.js";import{a as $e,b as fe}from"./chunk-PXNJ4PSF.js";import{E as B,F as $,H as M,K as I}from"./chunk-YZZ7SAON.js";import{Ab as h,Cb as re,Db as ae,Eb as oe,Ec as a,Fb as g,Fc as o,Gb as r,Gc as pe,Hb as i,Ib as p,Jb as y,Kb as U,Lb as j,Oc as J,Rb as F,Sb as O,Xb as _,Yb as q,Za as e,Zb as f,aa as c,ga as k,ha as T,ic as z,jc as se,kc as m,lc as d,ma as L,mc as v,nb as S,nc as le,sa as ne,yb as u,yc as me,zb as C,zc as de}from"./chunk-ZPXACREZ.js";import{g as ye,h as ie}from"./chunk-B4AJQJMI.js";function Ue(n,x){n&1&&(r(0,"ngb-alert",13)(1,"p",20),m(2),a(3,"translate"),i()()),n&2&&(g("dismissible",!1),e(2),d(o(3,2,"login.invalid_password")))}var Ce=(()=>{class n{$activeModal=c(D);$api=c(I);$toastr=c(M);$translate=c(B);invalidCredentials=!1;formGroup=new A({password:new E("",[w.required])});disable2fa(){this.invalidCredentials=!1,this.$api.post("/users/otp/deactivate",this.formGroup.value).then(()=>{this.$activeModal.close(),this.$toastr.success(this.$translate.instant("users.setup_2fa_disable_success"),this.$translate.instant("toast.title_success"))}).catch(()=>{this.formGroup.setValue({password:""}),this.invalidCredentials=!0})}dismissModal(){this.$activeModal.dismiss("Dismiss")}static \u0275fac=function(s){return new(s||n)};static \u0275cmp=S({type:n,selectors:[["ng-component"]],decls:34,vars:27,consts:[[1,"modal-content",2,"min-height","300px"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click"],[1,"modal-body"],[1,"text-center","mb-3"],[1,"fas","fa-key","primary-text",2,"font-size","75px"],[1,"mb-3"],[1,"list-group","list-group-box","mb-0"],[1,"list-group-item","d-flex","flex-column","flex-md-row","align-items-center"],[1,"mb-2","mb-md-0","w-100","w-md-50"],[1,"text-start","text-md-end","w-100","w-md-50"],["type","password","autocomplete","current-password",1,"form-control","custom-input",3,"formControl","placeholder"],["type","error",1,"mt-3","mb-0",3,"dismissible"],[1,"modal-footer","justify-content-between"],[1,"text-start"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],[1,"text-center"],[1,"text-end"],["type","button","data-bs-dismiss","modal",1,"btn","btn-danger",3,"click","disabled"],[1,"mb-0"]],template:function(s,l){s&1&&(r(0,"div",0)(1,"div",1)(2,"h5",2),m(3),a(4,"translate"),i(),r(5,"button",3),a(6,"translate"),_("click",function(){return l.dismissModal()}),i()(),r(7,"div",4)(8,"div",5),p(9,"i",6),i(),r(10,"ul",7)(11,"li"),m(12),a(13,"translate"),i()(),r(14,"ul",8)(15,"li",9)(16,"label",10),m(17),a(18,"translate"),i(),r(19,"div",11),p(20,"input",12),a(21,"translate"),i()()(),C(22,Ue,4,4,"ngb-alert",13),i(),r(23,"div",14)(24,"div",15)(25,"button",16),a(26,"translate"),_("click",function(){return l.dismissModal()}),m(27),a(28,"translate"),i()(),p(29,"div",17),r(30,"div",18)(31,"button",19),_("click",function(){return l.disable2fa()}),m(32),a(33,"translate"),i()()()()),s&2&&(e(3),d(o(4,11,"users.setup_2fa_disable")),e(2),u("aria-label",o(6,13,"form.button_close")),e(7),d(o(13,15,"users.setup_2fa_disable_current_password")),e(5),d(o(18,17,"users.label_password")),e(3),g("formControl",l.formGroup.controls.password)("placeholder",o(21,19,"users.label_password")),e(2),h(l.invalidCredentials&&!l.formGroup.controls.password.value?22:-1),e(3),u("aria-label",o(26,21,"form.button_close")),e(2),v(" ",o(28,23,"form.button_close")," "),e(4),g("disabled",l.formGroup.invalid),e(),v(" ",o(33,25,"form.button_disable")," "))},dependencies:[G,V,N,P,X,ee,$],encapsulation:2})}return n})();var he=ye($e(),1);var ke=n=>({timeDiffError:n});function Te(n,x){n&1&&(r(0,"li"),m(1),a(2,"translate"),i()),n&2&&(e(),d(o(2,1,"users.setup_2fa_scan_qr_code")))}function Be(n,x){if(n&1&&(r(0,"ngb-alert",8)(1,"p",16),m(2),a(3,"translate"),i(),r(4,"p",17),m(5),a(6,"translate"),i()()),n&2){let t=f();g("dismissible",!1),e(2),d(o(3,3,"users.setup_2fa_cannot_setup_2fa")),e(3),d(pe(6,5,"users.setup_2fa_server_time_out",me(8,ke,t.timeDiffError)))}}function Me(n,x){n&1&&p(0,"i",27)}function Ie(n,x){n&1&&p(0,"i",28)}function De(n,x){if(n&1){let t=F();r(0,"div",21),m(1),a(2,"translate"),p(3,"br"),m(4),r(5,"a",26),_("click",function(){k(t);let l=f(2);return T(l.copySecretToClipboard())}),C(6,Me,1,0,"i",27)(7,Ie,1,0,"i",28),i()()}if(n&2){let t=f(2);e(),v(" ",o(2,3,"users.setup_2fa_scan_qr_manual")),e(3),v(" ",t.otpSecret," "),e(2),h(t.secretCopied?6:7)}}function Fe(n,x){if(n&1&&(r(0,"ul",9)(1,"li",18)(2,"div",19),p(3,"app-qrcode",20),i(),C(4,De,8,5,"div",21),i(),r(5,"li",22)(6,"label",23),m(7),a(8,"translate"),i(),r(9,"div",24),p(10,"input",25),i()()()),n&2){let t=f();e(3),g("data",t.otpString),e(),h(t.otpSecret?4:-1),e(3),d(o(8,4,"users.setup_2fa_enter_code")),e(3),g("formControl",t.formGroup.controls.code)}}function Ve(n,x){if(n&1){let t=F();r(0,"button",29),a(1,"translate"),_("click",function(){k(t);let l=f();return T(l.dismissModal())}),m(2),a(3,"translate"),i()}n&2&&(u("aria-label",o(1,2,"form.button_close")),e(2),v(" ",o(3,4,"form.button_close")," "))}function Ne(n,x){if(n&1){let t=F();r(0,"button",29),a(1,"translate"),_("click",function(){k(t);let l=f();return T(l.dismissModal())}),m(2),a(3,"translate"),i()}n&2&&(u("aria-label",o(1,2,"form.button_close")),e(2),v(" ",o(3,4,"form.button_close")," "))}function Ae(n,x){if(n&1){let t=F();r(0,"button",30),_("click",function(){k(t);let l=f();return T(l.enable2fa())}),m(1),a(2,"translate"),i()}if(n&2){let t=f();g("disabled",t.formGroup.invalid),e(),v(" ",o(2,2,"form.button_enable")," ")}}var we=(()=>{class n{$activeModal=c(D);$api=c(I);$toastr=c(M);$translate=c(B);copyTimeout=null;user=J.required({});timeDiffError=null;otpString;otpSecret;secretCopied=!1;formGroup=new A({code:new E("",[w.required,w.minLength(6),w.maxLength(6)])});ngOnInit(){this.$api.post("/users/otp/setup",{}).then(t=>{this.checkTimeDiff(t.timestamp),this.timeDiffError||(this.otpString=t.otpauth,this.otpSecret=new URL(this.otpString).searchParams.get("secret")||"")}).catch(t=>{this.$activeModal.dismiss(),console.error(t),this.$toastr.error(this.$translate.instant("users.setup_2fa_enable_error"),this.$translate.instant("toast.title_error"))})}enable2fa(){this.$api.post("/users/otp/activate",this.formGroup.value).then(()=>{this.$toastr.success(this.$translate.instant("users.setup_2fa_enabled_success"),this.$translate.instant("toast.title_success")),this.$activeModal.close()}).catch(t=>{console.error(t),this.$toastr.error(this.$translate.instant("users.setup_2fa_activate_error"),this.$translate.instant("toast.title_error"))})}copySecretToClipboard(){return ie(this,null,function*(){yield navigator.clipboard.writeText(this.otpSecret),this.secretCopied=!0,this.copyTimeout&&clearTimeout(this.copyTimeout),this.copyTimeout=setTimeout(()=>{this.secretCopied=!1},3e3)})}dismissModal(){this.$activeModal.dismiss("Dismiss")}checkTimeDiff(t){let s=(0,he.default)(t).diff(new Date,"millisecond");s<-5e3||s>5e3?this.timeDiffError=s:this.timeDiffError=null}static \u0275fac=function(s){return new(s||n)};static \u0275cmp=S({type:n,selectors:[["ng-component"]],inputs:{user:[1,"user"]},decls:24,vars:15,consts:[[1,"modal-content","setup2fa"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click"],[1,"modal-body"],[1,"text-center","mb-3"],[1,"fas","fa-key","primary-text",2,"font-size","75px"],[1,"mb-3"],["type","error",1,"mb-0",3,"dismissible"],[1,"list-group","list-group-box","mb-0"],[1,"modal-footer","justify-content-between"],[1,"text-start"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant"],[1,"text-center"],[1,"text-end"],["type","button","data-bs-dismiss","modal",1,"btn","btn-primary",3,"disabled"],[1,"fw-bold","mb-1"],[1,"mb-0"],[1,"list-group-item","text-center"],[1,"text-center","w-100","d-flex","justify-content-center","my-2"],[1,"mx-auto",2,"width","175px","height","175px",3,"data"],[1,"grey-text","small","mt-0","mb-1"],[1,"list-group-item","d-flex","flex-column","flex-md-row","align-items-center"],[1,"mb-2","mb-md-0","w-100","w-md-50"],[1,"text-start","text-md-end","w-100","w-md-50"],["type","text","placeholder","eg. 123456","autocomplete","one-time-code","autocapitalize","none","inputmode","numeric","pattern","[0-9]*",1,"form-control","custom-input",3,"formControl"],["href","javascript:void(0)",1,"ms-1","text-primary",3,"click"],[1,"fas","fa-check","green-text"],[1,"fas","fa-copy"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],["type","button","data-bs-dismiss","modal",1,"btn","btn-primary",3,"click","disabled"]],template:function(s,l){s&1&&(r(0,"div",0)(1,"div",1)(2,"h5",2),m(3),a(4,"translate"),i(),r(5,"button",3),a(6,"translate"),_("click",function(){return l.dismissModal()}),i()(),r(7,"div",4)(8,"div",5),p(9,"i",6),i(),r(10,"ul",7)(11,"li"),m(12),a(13,"translate"),i(),C(14,Te,3,3,"li"),i(),C(15,Be,7,10,"ngb-alert",8),C(16,Fe,11,6,"ul",9),i(),r(17,"div",10)(18,"div",11),C(19,Ve,4,6,"button",12),i(),r(20,"div",13),C(21,Ne,4,6,"button",12),i(),r(22,"div",14),C(23,Ae,3,4,"button",15),i()()()),s&2&&(e(3),d(o(4,9,"users.setup_2fa")),e(2),u("aria-label",o(6,11,"form.button_close")),e(7),d(o(13,13,"users.setup_2fa_warning")),e(2),h(l.timeDiffError?-1:14),e(),h(l.timeDiffError?15:-1),e(),h(l.timeDiffError?-1:16),e(3),h(l.timeDiffError?-1:19),e(2),h(l.timeDiffError?21:-1),e(2),h(l.timeDiffError?-1:23))},dependencies:[ee,ve,G,V,N,be,P,X,$],encapsulation:2})}return n})();var Ee=(()=>{class n{$activeModal=c(D);$api=c(I);$toastr=c(M);$translate=c(B);form=new A({username:new E("",[w.required]),name:new E("",[w.required]),password:new E("",[w.compose([w.required,w.minLength(4)])]),passwordConfirm:new E("",[w.required]),admin:new E(!0)},this.matchPassword);onSubmit({value:t}){this.$api.post("/users",t).then(()=>{this.$activeModal.close(),this.$toastr.success(this.$translate.instant("users.toast_added_new_user"),this.$translate.instant("toast.title_success"))}).catch(s=>{this.$toastr.error(s.error.message||this.$translate.instant("users.toast_failed_to_add_user"),this.$translate.instant("toast.title_error"))})}dismissModal(){this.$activeModal.dismiss("Dismiss")}matchPassword(t){let s=t.get("password").value,l=t.get("passwordConfirm").value;if(s!==l)t.get("passwordConfirm").setErrors({matchPassword:!0});else return null}static \u0275fac=function(s){return new(s||n)};static \u0275cmp=S({type:n,selectors:[["ng-component"]],decls:58,vars:48,consts:[[1,"modal-content"],["novalidate","",3,"ngSubmit","formGroup"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click"],[1,"modal-body"],[1,"text-center","mb-3"],[1,"fas","fa-user-plus","primary-text",2,"font-size","75px"],[1,"list-group","list-group-box","mb-0"],[1,"list-group-item","d-flex","flex-column","flex-md-row","align-items-center"],["for","form-username",1,"mb-2","mb-md-0","w-100","w-md-50"],[1,"text-start","text-md-end","w-100","w-md-50"],["formControlName","username","type","text","id","form-username","autocomplete","username","autocapitalize","none",1,"form-control","custom-input"],["for","form-name",1,"mb-2","mb-md-0","w-100","w-md-50"],["formControlName","name","type","text","id","form-name","autocomplete","name",1,"form-control","custom-input"],["for","form-pass",1,"mb-2","mb-md-0","w-100","w-md-50"],["formControlName","password","type","password","autocomplete","new-password","id","form-pass",1,"form-control","custom-input"],["for","form-pass-confirm",1,"mb-2","mb-md-0","w-100","w-md-50"],["formControlName","passwordConfirm","type","password","autocomplete","new-password","id","form-pass-confirm",1,"form-control","custom-input"],[1,"list-group-item","d-flex","justify-content-between","align-items-center","flex-row","pb-2"],[1,"text-start"],[1,"text-end","grey-text","d-flex","align-items-center"],["formControlName","admin","type","checkbox","id","isAdmin",1,"rendux-input"],["for","isAdmin",1,"rendux-label","ms-3"],[1,"modal-footer","justify-content-between"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],[1,"text-center"],[1,"text-end"],["type","submit",1,"btn","btn-primary",3,"disabled"]],template:function(s,l){s&1&&(r(0,"div",0)(1,"form",1),_("ngSubmit",function(){return l.onSubmit(l.form)}),r(2,"div",2)(3,"h5",3),m(4),a(5,"translate"),i(),r(6,"button",4),a(7,"translate"),_("click",function(){return l.dismissModal()}),i()(),r(8,"div",5)(9,"div",6),p(10,"i",7),i(),r(11,"ul",8)(12,"li",9)(13,"label",10),m(14),a(15,"translate"),i(),r(16,"div",11),p(17,"input",12),a(18,"translate"),i()(),r(19,"li",9)(20,"label",13),m(21),a(22,"translate"),i(),r(23,"div",11),p(24,"input",14),a(25,"translate"),i()(),r(26,"li",9)(27,"label",15),m(28),a(29,"translate"),i(),r(30,"div",11),p(31,"input",16),a(32,"translate"),i()(),r(33,"li",9)(34,"label",17),m(35),a(36,"translate"),i(),r(37,"div",11),p(38,"input",18),a(39,"translate"),i()(),r(40,"li",19)(41,"span",20),m(42),a(43,"translate"),i(),r(44,"div",21),p(45,"input",22),a(46,"translate"),p(47,"label",23),i()()()(),r(48,"div",24)(49,"div",20)(50,"button",25),_("click",function(){return l.dismissModal()}),m(51),a(52,"translate"),i()(),p(53,"div",26),r(54,"div",27)(55,"button",28),m(56),a(57,"translate"),i()()()()()),s&2&&(e(),g("formGroup",l.form),e(3),d(o(5,20,"users.title_add_user")),e(2),u("aria-label",o(7,22,"form.button_close")),e(8),d(o(15,24,"users.label_username")),e(3),u("aria-label",o(18,26,"users.label_username")),e(4),d(o(22,28,"users.label_full_name")),e(3),u("aria-label",o(25,30,"users.label_full_name")),e(4),d(o(29,32,"users.label_password")),e(3),z("is-invalid",l.form.controls.password.dirty&&l.form.controls.password.errors),u("aria-label",o(32,34,"users.label_password")),e(4),d(o(36,36,"users.label_confirm_password")),e(3),z("is-invalid",l.form.controls.passwordConfirm.dirty&&l.form.controls.passwordConfirm.errors),u("aria-label",o(39,38,"users.label_confirm_password")),e(4),d(o(43,40,"users.label_admin_user")),e(3),u("aria-label",o(46,42,"users.label_admin_user")),e(6),v(" ",o(52,44,"form.button_close")," "),e(4),g("disabled",!l.form.valid),e(),v(" ",o(57,46,"form.button_save")," "))},dependencies:[G,W,V,H,N,K,P,Z,Y,$],encapsulation:2})}return n})();function Ge(n,x){if(n&1&&(r(0,"li",9)(1,"label",27),m(2),a(3,"translate"),i(),r(4,"div",11),p(5,"input",28),a(6,"translate"),i()()),n&2){let t=f();e(2),d(o(3,4,"users.label_confirm_password")),e(3),z("is-invalid",t.form.controls.passwordConfirm.dirty&&t.form.controls.passwordConfirm.errors),u("aria-label",o(6,6,"users.label_confirm_password"))}}var ge=(()=>{class n{destroyRef=c(L);$activeModal=c(D);$api=c(I);$auth=c(Q);$toastr=c(M);$translate=c(B);initialFormValue={};user=J.required({});isCurrentUser=ne(!1,{});form=new A({username:new E("",[w.required]),name:new E("",[w.required]),password:new E(""),passwordConfirm:new E(""),admin:new E(!0)},this.matchPassword);ngOnInit(){this.isCurrentUser.set(this.$auth.user.username===this.user().username),this.form.patchValue(this.user()),this.initialFormValue=this.form.getRawValue()}onSubmit({value:t}){this.$api.patch(`/users/${this.user().id}`,t).then(()=>{this.$activeModal.close(),this.$toastr.success(this.$translate.instant("users.toast_updated_user"),this.$translate.instant("toast.title_success")),this.isCurrentUser()&&t.username!==this.$auth.user.username&&this.$auth.logout()}).catch(s=>{console.error(s),this.$toastr.error(s.error?.message||this.$translate.instant("users.toast_failed_to_add_user"),this.$translate.instant("toast.title_error"))})}isFormUnchanged(){return this.form.controls.password.value?!1:JSON.stringify(this.form.getRawValue())===JSON.stringify(this.initialFormValue)}dismissModal(){this.$activeModal.dismiss("Dismiss")}matchPassword(t){let s=t.get("password").value,l=t.get("passwordConfirm").value;if(s!==l)t.get("passwordConfirm").setErrors({matchPassword:!0});else return null}static \u0275fac=function(s){return new(s||n)};static \u0275cmp=S({type:n,selectors:[["ng-component"]],inputs:{user:[1,"user"]},decls:52,vars:41,consts:[[1,"modal-content"],["novalidate","",3,"ngSubmit","formGroup"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click"],[1,"modal-body"],[1,"text-center","mb-3"],[1,"fas","fa-user-pen","primary-text",2,"font-size","75px"],[1,"list-group","list-group-box","mb-0"],[1,"list-group-item","d-flex","flex-column","flex-md-row","align-items-center"],["for","form-username",1,"mb-2","mb-md-0","w-100","w-md-50"],[1,"text-start","text-md-end","w-100","w-md-50"],["formControlName","username","type","text","id","form-username","autocomplete","off","autocapitalize","none",1,"form-control","custom-input"],["for","form-name",1,"mb-2","mb-md-0","w-100","w-md-50"],["formControlName","name","type","text","id","form-name","autocomplete","name",1,"form-control","custom-input"],["for","form-pass",1,"mb-2","mb-md-0","w-100","w-md-50"],["formControlName","password","type","password","autocomplete","new-password","id","form-pass",1,"form-control","custom-input"],[1,"list-group-item","d-flex","justify-content-between","align-items-center","flex-row","pb-2"],[1,"text-start"],[1,"text-end","grey-text","d-flex","align-items-center"],["type","checkbox","formControlName","admin","id","isAdmin",1,"rendux-input"],["for","isAdmin",1,"rendux-label","ms-3"],[1,"modal-footer","justify-content-between"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],[1,"text-center"],[1,"text-end"],["type","submit",1,"btn","btn-primary",3,"disabled"],["for","form-pass-confirm",1,"mb-2","mb-md-0","w-100","w-md-50"],["formControlName","passwordConfirm","type","password","autocomplete","new-password","id","form-pass-confirm",1,"form-control","custom-input"]],template:function(s,l){s&1&&(r(0,"div",0)(1,"form",1),_("ngSubmit",function(){return l.onSubmit(l.form)}),r(2,"div",2)(3,"h5",3),m(4),a(5,"translate"),i(),r(6,"button",4),a(7,"translate"),_("click",function(){return l.dismissModal()}),i()(),r(8,"div",5)(9,"div",6),p(10,"i",7),i(),r(11,"ul",8)(12,"li",9)(13,"label",10),m(14),a(15,"translate"),i(),r(16,"div",11),p(17,"input",12),a(18,"translate"),i()(),r(19,"li",9)(20,"label",13),m(21),a(22,"translate"),i(),r(23,"div",11),p(24,"input",14),a(25,"translate"),i()(),r(26,"li",9)(27,"label",15),m(28),a(29,"translate"),i(),r(30,"div",11),p(31,"input",16),a(32,"translate"),i()(),C(33,Ge,7,8,"li",9),r(34,"li",17)(35,"span",18),m(36),a(37,"translate"),i(),r(38,"div",19),p(39,"input",20),a(40,"translate"),p(41,"label",21),i()()()(),r(42,"div",22)(43,"div",18)(44,"button",23),_("click",function(){return l.dismissModal()}),m(45),a(46,"translate"),i()(),p(47,"div",24),r(48,"div",25)(49,"button",26),m(50),a(51,"translate"),i()()()()()),s&2&&(e(),g("formGroup",l.form),e(3),d(o(5,17,"users.title_edit_user")),e(2),u("aria-label",o(7,19,"form.button_close")),e(8),d(o(15,21,"users.label_username")),e(3),u("aria-label",o(18,23,"users.label_username")),e(4),d(o(22,25,"users.label_full_name")),e(3),u("aria-label",o(25,27,"users.label_full_name")),e(4),d(o(29,29,"users.label_new_password")),e(3),z("is-invalid",l.form.controls.password.dirty&&l.form.controls.password.errors),u("aria-label",o(32,31,"users.label_new_password")),e(2),h(l.form.controls.password.value?33:-1),e(3),d(o(37,33,"users.label_admin_user")),e(3),u("aria-label",o(40,35,"users.label_admin_user")),e(6),v(" ",o(46,37,"form.button_close")," "),e(4),g("disabled",!l.form.valid||l.isFormUnchanged()),e(),v(" ",o(51,39,"form.button_save")," "))},dependencies:[G,W,V,H,N,K,P,Z,Y,$],encapsulation:2})}return n})();var Se=(()=>{class n{$activeModal=c(D);dismissModal(){this.$activeModal.dismiss("Dismiss")}static \u0275fac=function(s){return new(s||n)};static \u0275cmp=S({type:n,selectors:[["ng-component"]],decls:46,vars:36,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click"],[1,"modal-body"],[1,"text-center","mb-3"],[1,"fa","fa-question-circle-o","primary-text",2,"font-size","75px"],[1,"ms-2"],[1,"mb-0"],[1,"mb-2","grey-text"],[1,"modal-footer","justify-content-between"],[1,"text-start"],[1,"text-center"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],[1,"text-end"]],template:function(s,l){s&1&&(r(0,"div",0)(1,"form")(2,"div",1)(3,"h5",2),m(4),a(5,"translate"),i(),r(6,"button",3),a(7,"translate"),_("click",function(){return l.dismissModal()}),i()(),r(8,"div",4)(9,"div",5),p(10,"i",6),i(),r(11,"h5",7),m(12),a(13,"translate"),i(),r(14,"ul",8)(15,"li"),m(16),a(17,"translate"),i(),r(18,"ul",9)(19,"li"),m(20),a(21,"translate"),i(),r(22,"li"),m(23),a(24,"translate"),i(),r(25,"li"),m(26),a(27,"translate"),a(28,"translate"),i(),r(29,"li"),m(30),a(31,"translate"),i(),r(32,"li"),m(33),a(34,"translate"),i()(),r(35,"li"),m(36),a(37,"translate"),i()(),p(38,"app-support-banner"),i(),r(39,"div",10),p(40,"div",11),r(41,"div",12)(42,"button",13),_("click",function(){return l.dismissModal()}),m(43),a(44,"translate"),i()(),p(45,"div",14),i()()()),s&2&&(e(4),d(o(5,12,"support.title")),e(2),u("aria-label",o(7,14,"form.button_close")),e(6),d(o(13,16,"users.title_users")),e(4),d(o(17,18,"users.support.acc_1")),e(4),d(o(21,20,"menu.label_status")),e(3),d(o(24,22,"menu.label_plugins")),e(3),le("",o(27,24,"menu.label_accessories")," (",o(28,26,"users.support.control"),")"),e(4),d(o(31,28,"menu.linux.label_logs")),e(3),d(o(34,30,"support.title")),e(3),d(o(37,32,"users.support.acc_2")),e(7),v(" ",o(44,34,"form.button_close")," "))},dependencies:[xe,$],encapsulation:2})}return n})();var Pe=(n,x)=>({"fa-user-secret":n,"fa-user":x});function je(n,x){if(n&1){let t=F();y(0,"button",23),q("click",function(){k(t);let l=f(2).$implicit,b=f();return T(b.disable2fa(l))}),m(1),a(2,"translate"),U()}if(n&2){let t=f(2).$implicit,s=f();O("disabled",t.username!==s.username),e(),v(" ",o(2,2,"users.setup_2fa_disable")," ")}}function qe(n,x){if(n&1){let t=F();y(0,"button",24),q("click",function(){k(t);let l=f(2).$implicit,b=f();return T(b.setup2fa(l))}),m(1),a(2,"translate"),U()}if(n&2){let t=f(2).$implicit,s=f();O("disabled",t.username!==s.username),e(),v(" ",o(2,2,"users.setup_2fa")," ")}}function ze(n,x){if(n&1&&C(0,je,3,4,"button",21)(1,qe,3,4,"button",22),n&2){let t=f().$implicit;h(t.otpActive?0:1)}}function Re(n,x){n&1&&j(0,"div")}function Le(n,x){if(n&1){let t=F();y(0,"div",9)(1,"div",10)(2,"div",11)(3,"div",12)(4,"span",13)(5,"h4"),m(6),U(),y(7,"h5",14),j(8,"i",15),m(9),U()()(),y(10,"div",16),C(11,ze,2,1)(12,Re,1,0,"div"),y(13,"div")(14,"button",17),a(15,"translate"),q("click",function(){let l=k(t).$implicit,b=f();return T(b.openEditUser(l))}),j(16,"i",18),U(),y(17,"button",19),a(18,"translate"),q("click",function(){let l=k(t).$implicit,b=f();return T(b.deleteUser(l.id))}),j(19,"i",20),U()()()()()()}if(n&2){let t=x.$implicit,s=f();e(6),d(t.name),e(2),se(de(12,Pe,t.admin,!t.admin)),e(),v(" ",t.username," "),e(2),h(t.admin?11:12),e(3),u("aria-label",o(15,8,"form.button_edit")),e(3),O("disabled",s.username===t.username),u("aria-label",o(18,10,"form.button_delete"))}}var Qt=(()=>{class n{destroyRef=c(L);$api=c(I);$auth=c(Q);$modal=c(_e);$route=c(ue);$settings=c(fe);$toastr=c(M);$translate=c(B);homebridgeUsers=[];username=this.$auth.user.username;isAdmin=this.$auth.user.admin;ngOnInit(){let t=this.$translate.instant("users.title_users");this.$settings.setPageTitle(t),this.$route.data.pipe(ce(this.destroyRef)).subscribe(s=>{this.homebridgeUsers=s.homebridgeUsers})}reloadUsers(){return this.$api.get("/users").then(t=>{this.homebridgeUsers=t})}openAddNewUser(){this.$modal.open(Ee,{size:"lg",backdrop:"static"}).result.finally(()=>{this.reloadUsers()})}openEditUser(t){let s=this.$modal.open(ge,{size:"lg",backdrop:"static"});s.componentInstance.user=t,s.result.finally(()=>{this.reloadUsers()})}deleteUser(t){this.$api.delete(`/users/${t}`).then(()=>{this.$toastr.success(this.$translate.instant("users.toast_user_deleted"),this.$translate.instant("toast.title_success")),this.reloadUsers()}).catch(s=>{console.error(s),this.$toastr.error(s.error?.message||this.$translate.instant("users.toast_failed_to_delete_user"),this.$translate.instant("toast.title_error"))})}setup2fa(t){let s=this.$modal.open(we,{size:"lg",backdrop:"static"});s.componentInstance.user=t,s.result.finally(()=>{this.reloadUsers()})}disable2fa(t){let s=this.$modal.open(Ce,{size:"lg",backdrop:"static"});s.componentInstance.user=t,s.result.finally(()=>{this.reloadUsers()})}openSupport(){this.$modal.open(Se,{size:"lg",backdrop:"static"})}static \u0275fac=function(s){return new(s||n)};static \u0275cmp=S({type:n,selectors:[["app-users"]],decls:15,vars:9,consts:[[1,"row","mb-3"],[1,"col-6"],[1,"primary-text","m-0"],[1,"col-6","text-end"],[1,"btn","btn-elegant","waves-effect","m-0","me-2",3,"click"],[1,"fas","fa-user-plus"],["type","button",1,"btn","btn-elegant","my-0","me-0",3,"click"],[1,"fa","fa-question-circle-o"],[1,"row"],[1,"col-md-6","mb-4"],[1,"card","card-body"],[1,"d-flex","flex-column"],[1,"d-flex","flex-row","mb-3"],[1,"me-auto","my-0"],[1,"small","text-truncate","grey-text"],[1,"fas"],[1,"d-flex","flex-row","justify-content-between"],[1,"btn","btn-elegant","m-0",3,"click"],[1,"fas","fa-user-pen"],[1,"btn","btn-danger","m-0","ms-2",3,"click","disabled"],[1,"fas","fa-trash"],[1,"btn","btn-elegant","m-0",3,"disabled"],[1,"btn","btn-primary","m-0",3,"disabled"],[1,"btn","btn-elegant","m-0",3,"click","disabled"],[1,"btn","btn-primary","m-0",3,"click","disabled"]],template:function(s,l){s&1&&(y(0,"div",0)(1,"div",1)(2,"h3",2),m(3),a(4,"translate"),U()(),y(5,"div",3)(6,"button",4),a(7,"translate"),q("click",function(){return l.openAddNewUser()}),j(8,"i",5),U(),y(9,"button",6),a(10,"translate"),q("click",function(){return l.openSupport()}),j(11,"i",7),U()()(),y(12,"div",8),ae(13,Le,20,15,"div",9,re),U()),s&2&&(e(3),d(o(4,3,"users.title_users")),e(3),u("aria-label",o(7,5,"users.button_add_user")),e(3),u("aria-label",o(10,7,"support.title")),e(4),oe(l.homebridgeUsers))},dependencies:[$],encapsulation:2})}return n})();export{Qt as UsersComponent};
|
|
1
|
+
import{a as ve}from"./chunk-2W47TKRP.js";import{a as xe}from"./chunk-OWEBBEZA.js";import{g as ee,m as D,n as _e}from"./chunk-GAI5J4YQ.js";import{c as ue}from"./chunk-ZAKTSIL5.js";import{a as ce}from"./chunk-JLNKCN3A.js";import{b as Q}from"./chunk-KTLG6VZT.js";import{B as be,C as G,D as P,b as H,c as V,d as w,e as N,f as K,g as A,j as E,m as W,q as X,r as Y,s as Z}from"./chunk-O6MJC7P2.js";import{a as $e,b as fe}from"./chunk-CAB2VD3D.js";import{E as B,F as $,H as M,K as I}from"./chunk-MW6H5Z5G.js";import{Ab as h,Cb as re,Db as ae,Eb as oe,Ec as a,Fb as g,Fc as o,Gb as r,Gc as pe,Hb as i,Ib as p,Jb as y,Kb as U,Lb as j,Oc as J,Rb as F,Sb as O,Xb as _,Yb as q,Za as e,Zb as f,aa as c,ga as k,ha as T,ic as z,jc as se,kc as m,lc as d,ma as L,mc as v,nb as S,nc as le,sa as ne,yb as u,yc as me,zb as C,zc as de}from"./chunk-ZPXACREZ.js";import{g as ye,h as ie}from"./chunk-B4AJQJMI.js";function Ue(n,x){n&1&&(r(0,"ngb-alert",13)(1,"p",20),m(2),a(3,"translate"),i()()),n&2&&(g("dismissible",!1),e(2),d(o(3,2,"login.invalid_password")))}var Ce=(()=>{class n{$activeModal=c(D);$api=c(I);$toastr=c(M);$translate=c(B);invalidCredentials=!1;formGroup=new A({password:new E("",[w.required])});disable2fa(){this.invalidCredentials=!1,this.$api.post("/users/otp/deactivate",this.formGroup.value).then(()=>{this.$activeModal.close(),this.$toastr.success(this.$translate.instant("users.setup_2fa_disable_success"),this.$translate.instant("toast.title_success"))}).catch(()=>{this.formGroup.setValue({password:""}),this.invalidCredentials=!0})}dismissModal(){this.$activeModal.dismiss("Dismiss")}static \u0275fac=function(s){return new(s||n)};static \u0275cmp=S({type:n,selectors:[["ng-component"]],decls:34,vars:27,consts:[[1,"modal-content",2,"min-height","300px"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click"],[1,"modal-body"],[1,"text-center","mb-3"],[1,"fas","fa-key","primary-text",2,"font-size","75px"],[1,"mb-3"],[1,"list-group","list-group-box","mb-0"],[1,"list-group-item","d-flex","flex-column","flex-md-row","align-items-center"],[1,"mb-2","mb-md-0","w-100","w-md-50"],[1,"text-start","text-md-end","w-100","w-md-50"],["type","password","autocomplete","current-password",1,"form-control","custom-input",3,"formControl","placeholder"],["type","error",1,"mt-3","mb-0",3,"dismissible"],[1,"modal-footer","justify-content-between"],[1,"text-start"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],[1,"text-center"],[1,"text-end"],["type","button","data-bs-dismiss","modal",1,"btn","btn-danger",3,"click","disabled"],[1,"mb-0"]],template:function(s,l){s&1&&(r(0,"div",0)(1,"div",1)(2,"h5",2),m(3),a(4,"translate"),i(),r(5,"button",3),a(6,"translate"),_("click",function(){return l.dismissModal()}),i()(),r(7,"div",4)(8,"div",5),p(9,"i",6),i(),r(10,"ul",7)(11,"li"),m(12),a(13,"translate"),i()(),r(14,"ul",8)(15,"li",9)(16,"label",10),m(17),a(18,"translate"),i(),r(19,"div",11),p(20,"input",12),a(21,"translate"),i()()(),C(22,Ue,4,4,"ngb-alert",13),i(),r(23,"div",14)(24,"div",15)(25,"button",16),a(26,"translate"),_("click",function(){return l.dismissModal()}),m(27),a(28,"translate"),i()(),p(29,"div",17),r(30,"div",18)(31,"button",19),_("click",function(){return l.disable2fa()}),m(32),a(33,"translate"),i()()()()),s&2&&(e(3),d(o(4,11,"users.setup_2fa_disable")),e(2),u("aria-label",o(6,13,"form.button_close")),e(7),d(o(13,15,"users.setup_2fa_disable_current_password")),e(5),d(o(18,17,"users.label_password")),e(3),g("formControl",l.formGroup.controls.password)("placeholder",o(21,19,"users.label_password")),e(2),h(l.invalidCredentials&&!l.formGroup.controls.password.value?22:-1),e(3),u("aria-label",o(26,21,"form.button_close")),e(2),v(" ",o(28,23,"form.button_close")," "),e(4),g("disabled",l.formGroup.invalid),e(),v(" ",o(33,25,"form.button_disable")," "))},dependencies:[G,V,N,P,X,ee,$],encapsulation:2})}return n})();var he=ye($e(),1);var ke=n=>({timeDiffError:n});function Te(n,x){n&1&&(r(0,"li"),m(1),a(2,"translate"),i()),n&2&&(e(),d(o(2,1,"users.setup_2fa_scan_qr_code")))}function Be(n,x){if(n&1&&(r(0,"ngb-alert",8)(1,"p",16),m(2),a(3,"translate"),i(),r(4,"p",17),m(5),a(6,"translate"),i()()),n&2){let t=f();g("dismissible",!1),e(2),d(o(3,3,"users.setup_2fa_cannot_setup_2fa")),e(3),d(pe(6,5,"users.setup_2fa_server_time_out",me(8,ke,t.timeDiffError)))}}function Me(n,x){n&1&&p(0,"i",27)}function Ie(n,x){n&1&&p(0,"i",28)}function De(n,x){if(n&1){let t=F();r(0,"div",21),m(1),a(2,"translate"),p(3,"br"),m(4),r(5,"a",26),_("click",function(){k(t);let l=f(2);return T(l.copySecretToClipboard())}),C(6,Me,1,0,"i",27)(7,Ie,1,0,"i",28),i()()}if(n&2){let t=f(2);e(),v(" ",o(2,3,"users.setup_2fa_scan_qr_manual")),e(3),v(" ",t.otpSecret," "),e(2),h(t.secretCopied?6:7)}}function Fe(n,x){if(n&1&&(r(0,"ul",9)(1,"li",18)(2,"div",19),p(3,"app-qrcode",20),i(),C(4,De,8,5,"div",21),i(),r(5,"li",22)(6,"label",23),m(7),a(8,"translate"),i(),r(9,"div",24),p(10,"input",25),i()()()),n&2){let t=f();e(3),g("data",t.otpString),e(),h(t.otpSecret?4:-1),e(3),d(o(8,4,"users.setup_2fa_enter_code")),e(3),g("formControl",t.formGroup.controls.code)}}function Ve(n,x){if(n&1){let t=F();r(0,"button",29),a(1,"translate"),_("click",function(){k(t);let l=f();return T(l.dismissModal())}),m(2),a(3,"translate"),i()}n&2&&(u("aria-label",o(1,2,"form.button_close")),e(2),v(" ",o(3,4,"form.button_close")," "))}function Ne(n,x){if(n&1){let t=F();r(0,"button",29),a(1,"translate"),_("click",function(){k(t);let l=f();return T(l.dismissModal())}),m(2),a(3,"translate"),i()}n&2&&(u("aria-label",o(1,2,"form.button_close")),e(2),v(" ",o(3,4,"form.button_close")," "))}function Ae(n,x){if(n&1){let t=F();r(0,"button",30),_("click",function(){k(t);let l=f();return T(l.enable2fa())}),m(1),a(2,"translate"),i()}if(n&2){let t=f();g("disabled",t.formGroup.invalid),e(),v(" ",o(2,2,"form.button_enable")," ")}}var we=(()=>{class n{$activeModal=c(D);$api=c(I);$toastr=c(M);$translate=c(B);copyTimeout=null;user=J.required({});timeDiffError=null;otpString;otpSecret;secretCopied=!1;formGroup=new A({code:new E("",[w.required,w.minLength(6),w.maxLength(6)])});ngOnInit(){this.$api.post("/users/otp/setup",{}).then(t=>{this.checkTimeDiff(t.timestamp),this.timeDiffError||(this.otpString=t.otpauth,this.otpSecret=new URL(this.otpString).searchParams.get("secret")||"")}).catch(t=>{this.$activeModal.dismiss(),console.error(t),this.$toastr.error(this.$translate.instant("users.setup_2fa_enable_error"),this.$translate.instant("toast.title_error"))})}enable2fa(){this.$api.post("/users/otp/activate",this.formGroup.value).then(()=>{this.$toastr.success(this.$translate.instant("users.setup_2fa_enabled_success"),this.$translate.instant("toast.title_success")),this.$activeModal.close()}).catch(t=>{console.error(t),this.$toastr.error(this.$translate.instant("users.setup_2fa_activate_error"),this.$translate.instant("toast.title_error"))})}copySecretToClipboard(){return ie(this,null,function*(){yield navigator.clipboard.writeText(this.otpSecret),this.secretCopied=!0,this.copyTimeout&&clearTimeout(this.copyTimeout),this.copyTimeout=setTimeout(()=>{this.secretCopied=!1},3e3)})}dismissModal(){this.$activeModal.dismiss("Dismiss")}checkTimeDiff(t){let s=(0,he.default)(t).diff(new Date,"millisecond");s<-5e3||s>5e3?this.timeDiffError=s:this.timeDiffError=null}static \u0275fac=function(s){return new(s||n)};static \u0275cmp=S({type:n,selectors:[["ng-component"]],inputs:{user:[1,"user"]},decls:24,vars:15,consts:[[1,"modal-content","setup2fa"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click"],[1,"modal-body"],[1,"text-center","mb-3"],[1,"fas","fa-key","primary-text",2,"font-size","75px"],[1,"mb-3"],["type","error",1,"mb-0",3,"dismissible"],[1,"list-group","list-group-box","mb-0"],[1,"modal-footer","justify-content-between"],[1,"text-start"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant"],[1,"text-center"],[1,"text-end"],["type","button","data-bs-dismiss","modal",1,"btn","btn-primary",3,"disabled"],[1,"fw-bold","mb-1"],[1,"mb-0"],[1,"list-group-item","text-center"],[1,"text-center","w-100","d-flex","justify-content-center","my-2"],[1,"mx-auto",2,"width","175px","height","175px",3,"data"],[1,"grey-text","small","mt-0","mb-1"],[1,"list-group-item","d-flex","flex-column","flex-md-row","align-items-center"],[1,"mb-2","mb-md-0","w-100","w-md-50"],[1,"text-start","text-md-end","w-100","w-md-50"],["type","text","placeholder","eg. 123456","autocomplete","one-time-code","autocapitalize","none","inputmode","numeric","pattern","[0-9]*",1,"form-control","custom-input",3,"formControl"],["href","javascript:void(0)",1,"ms-1","text-primary",3,"click"],[1,"fas","fa-check","green-text"],[1,"fas","fa-copy"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],["type","button","data-bs-dismiss","modal",1,"btn","btn-primary",3,"click","disabled"]],template:function(s,l){s&1&&(r(0,"div",0)(1,"div",1)(2,"h5",2),m(3),a(4,"translate"),i(),r(5,"button",3),a(6,"translate"),_("click",function(){return l.dismissModal()}),i()(),r(7,"div",4)(8,"div",5),p(9,"i",6),i(),r(10,"ul",7)(11,"li"),m(12),a(13,"translate"),i(),C(14,Te,3,3,"li"),i(),C(15,Be,7,10,"ngb-alert",8),C(16,Fe,11,6,"ul",9),i(),r(17,"div",10)(18,"div",11),C(19,Ve,4,6,"button",12),i(),r(20,"div",13),C(21,Ne,4,6,"button",12),i(),r(22,"div",14),C(23,Ae,3,4,"button",15),i()()()),s&2&&(e(3),d(o(4,9,"users.setup_2fa")),e(2),u("aria-label",o(6,11,"form.button_close")),e(7),d(o(13,13,"users.setup_2fa_warning")),e(2),h(l.timeDiffError?-1:14),e(),h(l.timeDiffError?15:-1),e(),h(l.timeDiffError?-1:16),e(3),h(l.timeDiffError?-1:19),e(2),h(l.timeDiffError?21:-1),e(2),h(l.timeDiffError?-1:23))},dependencies:[ee,ve,G,V,N,be,P,X,$],encapsulation:2})}return n})();var Ee=(()=>{class n{$activeModal=c(D);$api=c(I);$toastr=c(M);$translate=c(B);form=new A({username:new E("",[w.required]),name:new E("",[w.required]),password:new E("",[w.compose([w.required,w.minLength(4)])]),passwordConfirm:new E("",[w.required]),admin:new E(!0)},this.matchPassword);onSubmit({value:t}){this.$api.post("/users",t).then(()=>{this.$activeModal.close(),this.$toastr.success(this.$translate.instant("users.toast_added_new_user"),this.$translate.instant("toast.title_success"))}).catch(s=>{this.$toastr.error(s.error.message||this.$translate.instant("users.toast_failed_to_add_user"),this.$translate.instant("toast.title_error"))})}dismissModal(){this.$activeModal.dismiss("Dismiss")}matchPassword(t){let s=t.get("password").value,l=t.get("passwordConfirm").value;if(s!==l)t.get("passwordConfirm").setErrors({matchPassword:!0});else return null}static \u0275fac=function(s){return new(s||n)};static \u0275cmp=S({type:n,selectors:[["ng-component"]],decls:58,vars:48,consts:[[1,"modal-content"],["novalidate","",3,"ngSubmit","formGroup"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click"],[1,"modal-body"],[1,"text-center","mb-3"],[1,"fas","fa-user-plus","primary-text",2,"font-size","75px"],[1,"list-group","list-group-box","mb-0"],[1,"list-group-item","d-flex","flex-column","flex-md-row","align-items-center"],["for","form-username",1,"mb-2","mb-md-0","w-100","w-md-50"],[1,"text-start","text-md-end","w-100","w-md-50"],["formControlName","username","type","text","id","form-username","autocomplete","username","autocapitalize","none",1,"form-control","custom-input"],["for","form-name",1,"mb-2","mb-md-0","w-100","w-md-50"],["formControlName","name","type","text","id","form-name","autocomplete","name",1,"form-control","custom-input"],["for","form-pass",1,"mb-2","mb-md-0","w-100","w-md-50"],["formControlName","password","type","password","autocomplete","new-password","id","form-pass",1,"form-control","custom-input"],["for","form-pass-confirm",1,"mb-2","mb-md-0","w-100","w-md-50"],["formControlName","passwordConfirm","type","password","autocomplete","new-password","id","form-pass-confirm",1,"form-control","custom-input"],[1,"list-group-item","d-flex","justify-content-between","align-items-center","flex-row","pb-2"],[1,"text-start"],[1,"text-end","grey-text","d-flex","align-items-center"],["formControlName","admin","type","checkbox","id","isAdmin",1,"rendux-input"],["for","isAdmin",1,"rendux-label","ms-3"],[1,"modal-footer","justify-content-between"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],[1,"text-center"],[1,"text-end"],["type","submit",1,"btn","btn-primary",3,"disabled"]],template:function(s,l){s&1&&(r(0,"div",0)(1,"form",1),_("ngSubmit",function(){return l.onSubmit(l.form)}),r(2,"div",2)(3,"h5",3),m(4),a(5,"translate"),i(),r(6,"button",4),a(7,"translate"),_("click",function(){return l.dismissModal()}),i()(),r(8,"div",5)(9,"div",6),p(10,"i",7),i(),r(11,"ul",8)(12,"li",9)(13,"label",10),m(14),a(15,"translate"),i(),r(16,"div",11),p(17,"input",12),a(18,"translate"),i()(),r(19,"li",9)(20,"label",13),m(21),a(22,"translate"),i(),r(23,"div",11),p(24,"input",14),a(25,"translate"),i()(),r(26,"li",9)(27,"label",15),m(28),a(29,"translate"),i(),r(30,"div",11),p(31,"input",16),a(32,"translate"),i()(),r(33,"li",9)(34,"label",17),m(35),a(36,"translate"),i(),r(37,"div",11),p(38,"input",18),a(39,"translate"),i()(),r(40,"li",19)(41,"span",20),m(42),a(43,"translate"),i(),r(44,"div",21),p(45,"input",22),a(46,"translate"),p(47,"label",23),i()()()(),r(48,"div",24)(49,"div",20)(50,"button",25),_("click",function(){return l.dismissModal()}),m(51),a(52,"translate"),i()(),p(53,"div",26),r(54,"div",27)(55,"button",28),m(56),a(57,"translate"),i()()()()()),s&2&&(e(),g("formGroup",l.form),e(3),d(o(5,20,"users.title_add_user")),e(2),u("aria-label",o(7,22,"form.button_close")),e(8),d(o(15,24,"users.label_username")),e(3),u("aria-label",o(18,26,"users.label_username")),e(4),d(o(22,28,"users.label_full_name")),e(3),u("aria-label",o(25,30,"users.label_full_name")),e(4),d(o(29,32,"users.label_password")),e(3),z("is-invalid",l.form.controls.password.dirty&&l.form.controls.password.errors),u("aria-label",o(32,34,"users.label_password")),e(4),d(o(36,36,"users.label_confirm_password")),e(3),z("is-invalid",l.form.controls.passwordConfirm.dirty&&l.form.controls.passwordConfirm.errors),u("aria-label",o(39,38,"users.label_confirm_password")),e(4),d(o(43,40,"users.label_admin_user")),e(3),u("aria-label",o(46,42,"users.label_admin_user")),e(6),v(" ",o(52,44,"form.button_close")," "),e(4),g("disabled",!l.form.valid),e(),v(" ",o(57,46,"form.button_save")," "))},dependencies:[G,W,V,H,N,K,P,Z,Y,$],encapsulation:2})}return n})();function Ge(n,x){if(n&1&&(r(0,"li",9)(1,"label",27),m(2),a(3,"translate"),i(),r(4,"div",11),p(5,"input",28),a(6,"translate"),i()()),n&2){let t=f();e(2),d(o(3,4,"users.label_confirm_password")),e(3),z("is-invalid",t.form.controls.passwordConfirm.dirty&&t.form.controls.passwordConfirm.errors),u("aria-label",o(6,6,"users.label_confirm_password"))}}var ge=(()=>{class n{destroyRef=c(L);$activeModal=c(D);$api=c(I);$auth=c(Q);$toastr=c(M);$translate=c(B);initialFormValue={};user=J.required({});isCurrentUser=ne(!1,{});form=new A({username:new E("",[w.required]),name:new E("",[w.required]),password:new E(""),passwordConfirm:new E(""),admin:new E(!0)},this.matchPassword);ngOnInit(){this.isCurrentUser.set(this.$auth.user.username===this.user().username),this.form.patchValue(this.user()),this.initialFormValue=this.form.getRawValue()}onSubmit({value:t}){this.$api.patch(`/users/${this.user().id}`,t).then(()=>{this.$activeModal.close(),this.$toastr.success(this.$translate.instant("users.toast_updated_user"),this.$translate.instant("toast.title_success")),this.isCurrentUser()&&t.username!==this.$auth.user.username&&this.$auth.logout()}).catch(s=>{console.error(s),this.$toastr.error(s.error?.message||this.$translate.instant("users.toast_failed_to_add_user"),this.$translate.instant("toast.title_error"))})}isFormUnchanged(){return this.form.controls.password.value?!1:JSON.stringify(this.form.getRawValue())===JSON.stringify(this.initialFormValue)}dismissModal(){this.$activeModal.dismiss("Dismiss")}matchPassword(t){let s=t.get("password").value,l=t.get("passwordConfirm").value;if(s!==l)t.get("passwordConfirm").setErrors({matchPassword:!0});else return null}static \u0275fac=function(s){return new(s||n)};static \u0275cmp=S({type:n,selectors:[["ng-component"]],inputs:{user:[1,"user"]},decls:52,vars:41,consts:[[1,"modal-content"],["novalidate","",3,"ngSubmit","formGroup"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click"],[1,"modal-body"],[1,"text-center","mb-3"],[1,"fas","fa-user-pen","primary-text",2,"font-size","75px"],[1,"list-group","list-group-box","mb-0"],[1,"list-group-item","d-flex","flex-column","flex-md-row","align-items-center"],["for","form-username",1,"mb-2","mb-md-0","w-100","w-md-50"],[1,"text-start","text-md-end","w-100","w-md-50"],["formControlName","username","type","text","id","form-username","autocomplete","off","autocapitalize","none",1,"form-control","custom-input"],["for","form-name",1,"mb-2","mb-md-0","w-100","w-md-50"],["formControlName","name","type","text","id","form-name","autocomplete","name",1,"form-control","custom-input"],["for","form-pass",1,"mb-2","mb-md-0","w-100","w-md-50"],["formControlName","password","type","password","autocomplete","new-password","id","form-pass",1,"form-control","custom-input"],[1,"list-group-item","d-flex","justify-content-between","align-items-center","flex-row","pb-2"],[1,"text-start"],[1,"text-end","grey-text","d-flex","align-items-center"],["type","checkbox","formControlName","admin","id","isAdmin",1,"rendux-input"],["for","isAdmin",1,"rendux-label","ms-3"],[1,"modal-footer","justify-content-between"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],[1,"text-center"],[1,"text-end"],["type","submit",1,"btn","btn-primary",3,"disabled"],["for","form-pass-confirm",1,"mb-2","mb-md-0","w-100","w-md-50"],["formControlName","passwordConfirm","type","password","autocomplete","new-password","id","form-pass-confirm",1,"form-control","custom-input"]],template:function(s,l){s&1&&(r(0,"div",0)(1,"form",1),_("ngSubmit",function(){return l.onSubmit(l.form)}),r(2,"div",2)(3,"h5",3),m(4),a(5,"translate"),i(),r(6,"button",4),a(7,"translate"),_("click",function(){return l.dismissModal()}),i()(),r(8,"div",5)(9,"div",6),p(10,"i",7),i(),r(11,"ul",8)(12,"li",9)(13,"label",10),m(14),a(15,"translate"),i(),r(16,"div",11),p(17,"input",12),a(18,"translate"),i()(),r(19,"li",9)(20,"label",13),m(21),a(22,"translate"),i(),r(23,"div",11),p(24,"input",14),a(25,"translate"),i()(),r(26,"li",9)(27,"label",15),m(28),a(29,"translate"),i(),r(30,"div",11),p(31,"input",16),a(32,"translate"),i()(),C(33,Ge,7,8,"li",9),r(34,"li",17)(35,"span",18),m(36),a(37,"translate"),i(),r(38,"div",19),p(39,"input",20),a(40,"translate"),p(41,"label",21),i()()()(),r(42,"div",22)(43,"div",18)(44,"button",23),_("click",function(){return l.dismissModal()}),m(45),a(46,"translate"),i()(),p(47,"div",24),r(48,"div",25)(49,"button",26),m(50),a(51,"translate"),i()()()()()),s&2&&(e(),g("formGroup",l.form),e(3),d(o(5,17,"users.title_edit_user")),e(2),u("aria-label",o(7,19,"form.button_close")),e(8),d(o(15,21,"users.label_username")),e(3),u("aria-label",o(18,23,"users.label_username")),e(4),d(o(22,25,"users.label_full_name")),e(3),u("aria-label",o(25,27,"users.label_full_name")),e(4),d(o(29,29,"users.label_new_password")),e(3),z("is-invalid",l.form.controls.password.dirty&&l.form.controls.password.errors),u("aria-label",o(32,31,"users.label_new_password")),e(2),h(l.form.controls.password.value?33:-1),e(3),d(o(37,33,"users.label_admin_user")),e(3),u("aria-label",o(40,35,"users.label_admin_user")),e(6),v(" ",o(46,37,"form.button_close")," "),e(4),g("disabled",!l.form.valid||l.isFormUnchanged()),e(),v(" ",o(51,39,"form.button_save")," "))},dependencies:[G,W,V,H,N,K,P,Z,Y,$],encapsulation:2})}return n})();var Se=(()=>{class n{$activeModal=c(D);dismissModal(){this.$activeModal.dismiss("Dismiss")}static \u0275fac=function(s){return new(s||n)};static \u0275cmp=S({type:n,selectors:[["ng-component"]],decls:46,vars:36,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click"],[1,"modal-body"],[1,"text-center","mb-3"],[1,"fa","fa-question-circle-o","primary-text",2,"font-size","75px"],[1,"ms-2"],[1,"mb-0"],[1,"mb-2","grey-text"],[1,"modal-footer","justify-content-between"],[1,"text-start"],[1,"text-center"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],[1,"text-end"]],template:function(s,l){s&1&&(r(0,"div",0)(1,"form")(2,"div",1)(3,"h5",2),m(4),a(5,"translate"),i(),r(6,"button",3),a(7,"translate"),_("click",function(){return l.dismissModal()}),i()(),r(8,"div",4)(9,"div",5),p(10,"i",6),i(),r(11,"h5",7),m(12),a(13,"translate"),i(),r(14,"ul",8)(15,"li"),m(16),a(17,"translate"),i(),r(18,"ul",9)(19,"li"),m(20),a(21,"translate"),i(),r(22,"li"),m(23),a(24,"translate"),i(),r(25,"li"),m(26),a(27,"translate"),a(28,"translate"),i(),r(29,"li"),m(30),a(31,"translate"),i(),r(32,"li"),m(33),a(34,"translate"),i()(),r(35,"li"),m(36),a(37,"translate"),i()(),p(38,"app-support-banner"),i(),r(39,"div",10),p(40,"div",11),r(41,"div",12)(42,"button",13),_("click",function(){return l.dismissModal()}),m(43),a(44,"translate"),i()(),p(45,"div",14),i()()()),s&2&&(e(4),d(o(5,12,"support.title")),e(2),u("aria-label",o(7,14,"form.button_close")),e(6),d(o(13,16,"users.title_users")),e(4),d(o(17,18,"users.support.acc_1")),e(4),d(o(21,20,"menu.label_status")),e(3),d(o(24,22,"menu.label_plugins")),e(3),le("",o(27,24,"menu.label_accessories")," (",o(28,26,"users.support.control"),")"),e(4),d(o(31,28,"menu.linux.label_logs")),e(3),d(o(34,30,"support.title")),e(3),d(o(37,32,"users.support.acc_2")),e(7),v(" ",o(44,34,"form.button_close")," "))},dependencies:[xe,$],encapsulation:2})}return n})();var Pe=(n,x)=>({"fa-user-secret":n,"fa-user":x});function je(n,x){if(n&1){let t=F();y(0,"button",23),q("click",function(){k(t);let l=f(2).$implicit,b=f();return T(b.disable2fa(l))}),m(1),a(2,"translate"),U()}if(n&2){let t=f(2).$implicit,s=f();O("disabled",t.username!==s.username),e(),v(" ",o(2,2,"users.setup_2fa_disable")," ")}}function qe(n,x){if(n&1){let t=F();y(0,"button",24),q("click",function(){k(t);let l=f(2).$implicit,b=f();return T(b.setup2fa(l))}),m(1),a(2,"translate"),U()}if(n&2){let t=f(2).$implicit,s=f();O("disabled",t.username!==s.username),e(),v(" ",o(2,2,"users.setup_2fa")," ")}}function ze(n,x){if(n&1&&C(0,je,3,4,"button",21)(1,qe,3,4,"button",22),n&2){let t=f().$implicit;h(t.otpActive?0:1)}}function Re(n,x){n&1&&j(0,"div")}function Le(n,x){if(n&1){let t=F();y(0,"div",9)(1,"div",10)(2,"div",11)(3,"div",12)(4,"span",13)(5,"h4"),m(6),U(),y(7,"h5",14),j(8,"i",15),m(9),U()()(),y(10,"div",16),C(11,ze,2,1)(12,Re,1,0,"div"),y(13,"div")(14,"button",17),a(15,"translate"),q("click",function(){let l=k(t).$implicit,b=f();return T(b.openEditUser(l))}),j(16,"i",18),U(),y(17,"button",19),a(18,"translate"),q("click",function(){let l=k(t).$implicit,b=f();return T(b.deleteUser(l.id))}),j(19,"i",20),U()()()()()()}if(n&2){let t=x.$implicit,s=f();e(6),d(t.name),e(2),se(de(12,Pe,t.admin,!t.admin)),e(),v(" ",t.username," "),e(2),h(t.admin?11:12),e(3),u("aria-label",o(15,8,"form.button_edit")),e(3),O("disabled",s.username===t.username),u("aria-label",o(18,10,"form.button_delete"))}}var Qt=(()=>{class n{destroyRef=c(L);$api=c(I);$auth=c(Q);$modal=c(_e);$route=c(ue);$settings=c(fe);$toastr=c(M);$translate=c(B);homebridgeUsers=[];username=this.$auth.user.username;isAdmin=this.$auth.user.admin;ngOnInit(){let t=this.$translate.instant("users.title_users");this.$settings.setPageTitle(t),this.$route.data.pipe(ce(this.destroyRef)).subscribe(s=>{this.homebridgeUsers=s.homebridgeUsers})}reloadUsers(){return this.$api.get("/users").then(t=>{this.homebridgeUsers=t})}openAddNewUser(){this.$modal.open(Ee,{size:"lg",backdrop:"static"}).result.finally(()=>{this.reloadUsers()})}openEditUser(t){let s=this.$modal.open(ge,{size:"lg",backdrop:"static"});s.componentInstance.user=t,s.result.finally(()=>{this.reloadUsers()})}deleteUser(t){this.$api.delete(`/users/${t}`).then(()=>{this.$toastr.success(this.$translate.instant("users.toast_user_deleted"),this.$translate.instant("toast.title_success")),this.reloadUsers()}).catch(s=>{console.error(s),this.$toastr.error(s.error?.message||this.$translate.instant("users.toast_failed_to_delete_user"),this.$translate.instant("toast.title_error"))})}setup2fa(t){let s=this.$modal.open(we,{size:"lg",backdrop:"static"});s.componentInstance.user=t,s.result.finally(()=>{this.reloadUsers()})}disable2fa(t){let s=this.$modal.open(Ce,{size:"lg",backdrop:"static"});s.componentInstance.user=t,s.result.finally(()=>{this.reloadUsers()})}openSupport(){this.$modal.open(Se,{size:"lg",backdrop:"static"})}static \u0275fac=function(s){return new(s||n)};static \u0275cmp=S({type:n,selectors:[["app-users"]],decls:15,vars:9,consts:[[1,"row","mb-3"],[1,"col-6"],[1,"primary-text","m-0"],[1,"col-6","text-end"],[1,"btn","btn-elegant","waves-effect","m-0","me-2",3,"click"],[1,"fas","fa-user-plus"],["type","button",1,"btn","btn-elegant","my-0","me-0",3,"click"],[1,"fa","fa-question-circle-o"],[1,"row"],[1,"col-md-6","mb-4"],[1,"card","card-body"],[1,"d-flex","flex-column"],[1,"d-flex","flex-row","mb-3"],[1,"me-auto","my-0"],[1,"small","text-truncate","grey-text"],[1,"fas"],[1,"d-flex","flex-row","justify-content-between"],[1,"btn","btn-elegant","m-0",3,"click"],[1,"fas","fa-user-pen"],[1,"btn","btn-danger","m-0","ms-2",3,"click","disabled"],[1,"fas","fa-trash"],[1,"btn","btn-elegant","m-0",3,"disabled"],[1,"btn","btn-primary","m-0",3,"disabled"],[1,"btn","btn-elegant","m-0",3,"click","disabled"],[1,"btn","btn-primary","m-0",3,"click","disabled"]],template:function(s,l){s&1&&(y(0,"div",0)(1,"div",1)(2,"h3",2),m(3),a(4,"translate"),U()(),y(5,"div",3)(6,"button",4),a(7,"translate"),q("click",function(){return l.openAddNewUser()}),j(8,"i",5),U(),y(9,"button",6),a(10,"translate"),q("click",function(){return l.openSupport()}),j(11,"i",7),U()()(),y(12,"div",8),ae(13,Le,20,15,"div",9,re),U()),s&2&&(e(3),d(o(4,3,"users.title_users")),e(3),u("aria-label",o(7,5,"users.button_add_user")),e(3),u("aria-label",o(10,7,"support.title")),e(4),oe(l.homebridgeUsers))},dependencies:[$],encapsulation:2})}return n})();export{Qt as UsersComponent};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as Y}from"./chunk-TUN7H57E.js";import{a as ee}from"./chunk-JC74NWLG.js";import{a as Z}from"./chunk-5IRYX3WN.js";import{a as re}from"./chunk-M72FKTRG.js";import{a as Q}from"./chunk-SOEFKTV3.js";import{a as J}from"./chunk-63DEF4BP.js";import{a as G}from"./chunk-UR7BEPD4.js";import{n as B}from"./chunk-LT4LVLTJ.js";import{a as N,b as R,d as W,e as $,f as H,g as j}from"./chunk-DGBI427A.js";import{a as E}from"./chunk-JLNKCN3A.js";import{b as I}from"./chunk-CR6W3PUA.js";import"./chunk-N2IMTG2V.js";import{b as A}from"./chunk-PXNJ4PSF.js";import{E as V,F as X,J as T,q}from"./chunk-YZZ7SAON.js";import{Ab as y,Ec as d,Fb as g,Fc as l,Gb as i,Hb as a,Ib as p,Oc as K,Rb as S,Xb as u,Za as n,Zb as C,aa as c,ga as b,ha as x,hb as F,ic as P,kc as _,lc as v,ma as D,n as U,nb as O,sa as M,xc as f,yb as m,zb as w}from"./chunk-ZPXACREZ.js";import{g as ne,h as L}from"./chunk-B4AJQJMI.js";var ie=ne(re(),1);var z=()=>["/"],ae=()=>({exact:!0}),se=()=>["/plugins"],de=()=>["/accessories"],le=()=>["/logs"],pe=()=>["/support"],ce=()=>["/platform-tools/terminal"],me=()=>["/config"],ue=()=>["/settings"],_e=()=>["/power-options"];function ge(s,k){if(s&1){let e=S();i(0,"div",10)(1,"div",20),d(2,"translate"),d(3,"translate"),u("click",function(){b(e);let t=C();return x(t.openUnderVoltageModal())})("keydown",function(t){b(e);let r=C();return x(r.handleKeydown(t))}),i(4,"div",12),p(5,"i",21),a(),i(6,"div",14),_(7),d(8,"translate"),a()()()}s&2&&(n(),m("aria-label",l(2,2,"rpi.throttled.undervoltage_title")+" - "+l(3,4,"rpi.throttled.undervoltage_description")),n(6),v(l(8,6,"rpi.throttled.undervoltage_title")))}function he(s,k){if(s&1){let e=S();i(0,"div",10)(1,"div",15),d(2,"translate"),u("keydown",function(t){b(e);let r=C();return x(r.handleKeydown(t))}),i(3,"div",12),p(4,"i",22),a(),i(5,"div",14),_(6),d(7,"translate"),a()()()}s&2&&(n(),g("routerLink",f(8,ce))("routerLinkActive","active"),m("aria-label",l(2,4,"menu.linux.label_terminal")),n(5),v(l(7,6,"menu.linux.label_terminal")))}function ve(s,k){if(s&1){let e=S();i(0,"div",10)(1,"div",15),d(2,"translate"),u("keydown",function(t){b(e);let r=C();return x(r.handleKeydown(t))}),i(3,"div",12),p(4,"i",23),a(),i(5,"div",14),_(6),d(7,"translate"),a()()()}s&2&&(n(),g("routerLink",f(8,me))("routerLinkActive","active"),m("aria-label",l(2,4,"menu.config_json_editor")),n(5),v(l(7,6,"menu.config_json_editor")))}function fe(s,k){if(s&1){let e=S();i(0,"div",10)(1,"div",15),d(2,"translate"),u("keydown",function(t){b(e);let r=C();return x(r.handleKeydown(t))}),i(3,"div",12),p(4,"i",24),a(),i(5,"div",14),_(6),d(7,"translate"),a()()()}s&2&&(n(),g("routerLink",f(8,ue))("routerLinkActive","active"),m("aria-label",l(2,4,"menu.label_settings")),n(5),v(l(7,6,"menu.label_settings")))}function be(s,k){if(s&1){let e=S();i(0,"div",10)(1,"div",15),d(2,"translate"),u("keydown",function(t){b(e);let r=C();return x(r.handleKeydown(t))}),i(3,"div",12),p(4,"i",25),a(),i(5,"div",14),_(6),d(7,"translate"),a()()()}s&2&&(n(),g("routerLink",f(8,_e))("routerLinkActive","active"),m("aria-label",l(2,4,"menu.restart.title")),n(5),v(l(7,6,"menu.restart.title")))}function xe(s,k){if(s&1){let e=S();i(0,"div",10)(1,"div",20),d(2,"translate"),u("click",function(){b(e);let t=C();return x(t.reloadPage())})("keydown",function(t){b(e);let r=C();return x(r.handleKeydown(t))}),i(3,"div",12),p(4,"i",26),a(),i(5,"div",14),_(6),d(7,"translate"),a()()()}s&2&&(n(),m("aria-label",l(2,2,"menu.reload")),n(5),v(l(7,4,"menu.reload")))}function Ce(s,k){if(s&1){let e=S();i(0,"div",10)(1,"div",20),d(2,"translate"),u("click",function(){b(e);let t=C();return x(t.logout())})("keydown",function(t){b(e);let r=C();return x(r.handleKeydown(t))}),i(3,"div",12),p(4,"i",27),a(),i(5,"div",14),_(6),d(7,"translate"),a()()()}s&2&&(n(),m("aria-label",l(2,2,"menu.tooltip_logout")),n(5),v(l(7,4,"menu.tooltip_logout")))}var te=(()=>{class s{destroyRef=c(D);$auth=c(I);$authHelper=c(G);$settings=c(A);$modal=c(B);$notification=c(Z);$renderer=c(F);$router=c($);$translate=c(V);initialIsExpanded=K(!1,{});isExpanded=M(!1,{});formAuth=M(this.$settings.formAuth,{});isAdmin=this.$auth.user.admin;enableTerminalAccess=this.$settings.env.enableTerminalAccess;rPiCurrentlyUnderVoltage=M(!1,{});rPiWasUnderVoltage=M(!1,{});isMobile=!1;freezeMenu=M(!1,{});isPwa=Y();sidebarMouseEnterListener=()=>this.openSidebar();sidebarMouseLeaveListener=()=>this.closeSidebar();touchstartListener;clickListener;constructor(){this.isMobile=window.innerWidth<768;let e;window.addEventListener("resize",()=>{clearTimeout(e),e=setTimeout(()=>{this.updateListeners()},500)}),this.$router.events.pipe(E()).subscribe(o=>L(this,null,function*(){if(o instanceof N&&this.$settings.formAuth&&o.url!=="/login"&&!(yield this.$authHelper.isAuthenticated())){window.sessionStorage.setItem("target_route",o.url),yield this.$router.navigate(["/login"]);return}o instanceof R&&queueMicrotask(()=>{this.closeSidebar(),this.freezeMenu.set(!0),setTimeout(()=>{this.freezeMenu.set(!1)},750)})}))}ngOnInit(){this.isExpanded.set(this.initialIsExpanded()),this.$notification.raspberryPiThrottled.pipe(E(this.destroyRef)).subscribe(r=>{r["Under Voltage"]&&this.rPiCurrentlyUnderVoltage.set(!0),r["Under-voltage has occurred"]&&this.rPiWasUnderVoltage.set(!0)}),this.$notification.formAuthEnabled.pipe(E(this.destroyRef)).subscribe(r=>{this.formAuth.set(r)});let e=document.querySelector(".sidebar"),o=document.querySelector(".m-header"),t=document.querySelector(".content");this.isMobile?(this.touchstartListener=r=>{if(t.contains(r.target)&&this.isExpanded()){r.preventDefault(),this.toggleSidebar();return}!e.contains(r.target)&&!o.contains(r.target)&&this.isExpanded()&&(r.preventDefault(),this.closeSidebar())},document.addEventListener("touchstart",this.touchstartListener,{passive:!1})):(this.updateListeners(),o.addEventListener("mouseenter",this.sidebarMouseEnterListener,{passive:!1}),o.addEventListener("mouseleave",this.sidebarMouseLeaveListener,{passive:!1}),this.clickListener=r=>{e.contains(r.target)&&r.clientX>60&&this.closeSidebar()},document.addEventListener("click",this.clickListener,{passive:!1}))}toggleSidebar(){this.freezeMenu()||(this.isExpanded.set(!this.isExpanded()),this.updateContentStyles())}openUnderVoltageModal(){let e=this.$modal.open(ee,{size:"lg",backdrop:"static"});e.componentInstance.title=this.$translate.instant("rpi.throttled.undervoltage_title"),e.componentInstance.message=this.$translate.instant(this.rPiCurrentlyUnderVoltage()?"rpi.throttled.currently_message":"rpi.throttled.previously_message"),e.componentInstance.ctaButtonLabel=this.$translate.instant("form.button_more_info"),e.componentInstance.faIconClass="fas fa-bolt yellow-text",e.componentInstance.ctaButtonLink="https://pimylifeup.com/raspberry-pi-low-voltage-warning"}handleKeydown(e){if(e.key==="Enter"){let o=e.target;["menuitem","button"].includes(o.getAttribute("role"))&&o.click()}}reloadPage(){window.location.reload()}ngOnDestroy(){this.touchstartListener&&document.removeEventListener("touchstart",this.touchstartListener),this.clickListener&&document.removeEventListener("click",this.clickListener);let e=document.querySelector(".sidebar"),o=document.querySelector(".m-header");e&&(e.removeEventListener("mouseenter",this.sidebarMouseEnterListener),e.removeEventListener("mouseleave",this.sidebarMouseLeaveListener)),o&&(o.removeEventListener("mouseenter",this.sidebarMouseEnterListener),o.removeEventListener("mouseleave",this.sidebarMouseLeaveListener))}logout(){this.$auth.logout()}openSidebar(){this.freezeMenu()||(this.isExpanded.set(!0),this.updateContentStyles())}closeSidebar(){this.freezeMenu()||(this.isExpanded.set(!1),this.updateContentStyles())}updateContentStyles(){let e=document.querySelector(".content");this.isExpanded()?(this.$renderer.setStyle(e,"opacity","20%"),this.$renderer.setStyle(e,"pointer-events","none"),this.$renderer.setStyle(e,"overflow","hidden")):(this.$renderer.removeStyle(e,"opacity"),this.$renderer.removeStyle(e,"pointer-events"),this.$renderer.removeStyle(e,"overflow"))}updateListeners(){this.isMobile=window.innerWidth<768;let e=document.querySelector(".sidebar");e.removeEventListener("mouseenter",this.sidebarMouseEnterListener),e.removeEventListener("mouseleave",this.sidebarMouseLeaveListener),(this.isMobile||!this.isMobile&&this.$settings.menuMode!=="freeze")&&(e.addEventListener("mouseenter",this.sidebarMouseEnterListener,{passive:!1}),e.addEventListener("mouseleave",this.sidebarMouseLeaveListener,{passive:!1}))}static \u0275fac=function(o){return new(o||s)};static \u0275cmp=O({type:s,selectors:[["app-sidebar"]],inputs:{initialIsExpanded:[1,"initialIsExpanded"]},decls:68,vars:73,consts:[["tabindex","0","role","button",1,"m-header","text-end",3,"click","keydown"],[1,"me-2","d-block","d-lg-none",2,"font-size","0.9rem","color","#dddddd"],[3,"routerLink"],["ngSrc","assets/homebridge-logo.svg","alt","HB Logo","height","35","width","35",2,"height","35px","width","35px"],[1,"hb-logo-text-mobile"],[1,"hamburger-icon"],["role","navigation","id","sidebar",1,"sidebar"],["tabindex","0","role","button",1,"header",3,"click","keydown"],[1,"hb-logo-text"],[1,"link-wrapper"],[1,"link"],["role","menuitem","tabindex","0",1,"link-row",3,"keydown","routerLink","routerLinkActive","routerLinkActiveOptions"],[1,"icon"],[1,"fa","fa-house"],[1,"title"],["role","menuitem","tabindex","0",1,"link-row",3,"keydown","routerLink","routerLinkActive"],[1,"fa","fa-plug"],[1,"fa","fa-lightbulb"],[1,"fa","fa-wave-square"],[1,"fa","fa-question-circle-o"],["role","menuitem","tabindex","0",1,"link-row",3,"click","keydown"],[1,"fas","fa-bolt","fa-beat","yellow-text",2,"--fa-beat-scale","1.5"],[1,"fa","fa-terminal"],[1,"fa","fa-code"],[1,"fa","fa-cog"],[1,"fa","fa-power-off"],[1,"fa","fa-refresh"],[1,"fa","fa-right-from-bracket"]],template:function(o,t){o&1&&(i(0,"div",0),d(1,"translate"),u("click",function(){return t.toggleSidebar()})("keydown",function(h){return t.handleKeydown(h)}),p(2,"span",1),i(3,"a",2),d(4,"translate"),p(5,"img",3),i(6,"div",4),_(7,"Homebridge"),a()(),i(8,"div",5),p(9,"span")(10,"span")(11,"span")(12,"span"),a()(),i(13,"div",6)(14,"div",7),u("click",function(){return t.toggleSidebar()})("keydown",function(h){return t.handleKeydown(h)}),i(15,"a",2),d(16,"translate"),p(17,"img",3),i(18,"div",8),_(19,"Homebridge"),a()()(),i(20,"div",9)(21,"div",10)(22,"div",11),d(23,"translate"),u("keydown",function(h){return t.handleKeydown(h)}),i(24,"div",12),p(25,"i",13),a(),i(26,"div",14),_(27),d(28,"translate"),a()()(),w(29,ge,9,8,"div",10),i(30,"div",10)(31,"div",15),d(32,"translate"),u("keydown",function(h){return t.handleKeydown(h)}),i(33,"div",12),p(34,"i",16),a(),i(35,"div",14),_(36),d(37,"translate"),a()()(),i(38,"div",10)(39,"div",15),d(40,"translate"),u("keydown",function(h){return t.handleKeydown(h)}),i(41,"div",12),p(42,"i",17),a(),i(43,"div",14),_(44),d(45,"translate"),a()()(),i(46,"div",10)(47,"div",15),d(48,"translate"),u("keydown",function(h){return t.handleKeydown(h)}),i(49,"div",12),p(50,"i",18),a(),i(51,"div",14),_(52),d(53,"translate"),a()()(),w(54,he,8,9,"div",10),w(55,ve,8,9,"div",10),w(56,fe,8,9,"div",10),i(57,"div",10)(58,"div",15),d(59,"translate"),u("keydown",function(h){return t.handleKeydown(h)}),i(60,"div",12),p(61,"i",19),a(),i(62,"div",14),_(63),d(64,"translate"),a()()(),w(65,be,8,9,"div",10),w(66,xe,8,6,"div",10),w(67,Ce,8,6,"div",10),a()()),o&2&&(m("aria-expanded",t.isExpanded()?"true":"false")("aria-controls","sidebar")("aria-label",l(1,39,"menu.sidebar.aria_menu")),n(3),g("routerLink",f(65,z)),m("aria-label",l(4,41,"menu.label_status")),n(5),P("hamburger-icon-cross",t.isExpanded()),n(5),P("expanded",t.isExpanded()),n(2),g("routerLink",f(66,z)),m("aria-label",l(16,43,"menu.label_status")),n(7),g("routerLink",f(67,z))("routerLinkActive","active")("routerLinkActiveOptions",f(68,ae)),m("aria-label",l(23,45,"menu.label_status")),n(5),v(l(28,47,"menu.label_status")),n(2),y(t.rPiWasUnderVoltage()||t.rPiCurrentlyUnderVoltage()?29:-1),n(2),g("routerLink",f(69,se))("routerLinkActive","active"),m("aria-label",l(32,49,"menu.label_plugins")),n(5),v(l(37,51,"menu.label_plugins")),n(3),g("routerLink",f(70,de))("routerLinkActive","active"),m("aria-label",l(40,53,"menu.label_accessories")),n(5),v(l(45,55,"menu.label_accessories")),n(3),g("routerLink",f(71,le))("routerLinkActive","active"),m("aria-label",l(48,57,"menu.linux.label_logs")),n(5),v(l(53,59,"menu.linux.label_logs")),n(2),y(t.enableTerminalAccess&&t.isAdmin?54:-1),n(),y(t.isAdmin?55:-1),n(),y(t.isAdmin?56:-1),n(2),g("routerLink",f(72,pe))("routerLinkActive","active"),m("aria-label",l(59,61,"support.title")),n(5),v(l(64,63,"support.title")),n(2),y(t.isAdmin?65:-1),n(),y(t.isPwa?66:-1),n(),y(t.formAuth()?67:-1))},dependencies:[H,q,j,X],styles:[".m-header[_ngcontent-%COMP%]{position:fixed;top:0;left:0;width:100%;height:65px;z-index:510;display:flex;align-items:center;padding-left:3px;padding-right:3px}.m-header[_ngcontent-%COMP%]:hover{cursor:pointer}@media(min-width:768px){.m-header[_ngcontent-%COMP%]{display:none}}.sidebar[_ngcontent-%COMP%]{position:fixed;left:0;top:0;height:100vh;transition:.3s;width:60px;z-index:500}.sidebar[_ngcontent-%COMP%] .header[_ngcontent-%COMP%]{display:flex;flex-direction:column;justify-content:center;padding:15px 10px 15px 11px;font-size:.85rem}.sidebar[_ngcontent-%COMP%] .header[_ngcontent-%COMP%]:hover{cursor:pointer}.sidebar[_ngcontent-%COMP%] .link-wrapper[_ngcontent-%COMP%]{overflow-x:hidden;overflow-y:auto;max-height:calc(100vh - 80px)!important;scrollbar-width:thin}@media(max-width:767px){.sidebar[_ngcontent-%COMP%] .link-wrapper[_ngcontent-%COMP%]{padding-bottom:60px}}.sidebar[_ngcontent-%COMP%] .link-wrapper[_ngcontent-%COMP%] .link[_ngcontent-%COMP%] .link-row[_ngcontent-%COMP%]{display:flex;align-items:center;padding:15px 10px;cursor:pointer;transition:.2s;font-size:17px}.sidebar[_ngcontent-%COMP%] .link-wrapper[_ngcontent-%COMP%] .link[_ngcontent-%COMP%] .link-row[_ngcontent-%COMP%] .icon[_ngcontent-%COMP%]{flex:0 0 38px;display:flex;align-items:center;justify-content:center}.sidebar[_ngcontent-%COMP%] .link-wrapper[_ngcontent-%COMP%] .link[_ngcontent-%COMP%] .link-row[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{flex:1;transition:.3s;max-width:0;overflow:hidden;white-space:nowrap}@media(max-width:767px){.sidebar[_ngcontent-%COMP%]{width:0}.sidebar[_ngcontent-%COMP%] .link-wrapper[_ngcontent-%COMP%]{display:none}}.sidebar.expanded[_ngcontent-%COMP%]{width:210px}@media(max-width:767px){.sidebar.expanded[_ngcontent-%COMP%]{width:210px}.sidebar.expanded[_ngcontent-%COMP%] .link-wrapper[_ngcontent-%COMP%]{display:block}}.sidebar.expanded[_ngcontent-%COMP%] .link-wrapper[_ngcontent-%COMP%] .link[_ngcontent-%COMP%] .link-row[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{max-width:150px;padding-left:10px}.hamburger-icon[_ngcontent-%COMP%]{margin:-7px 0 0 25px}@media(min-width:768px){.hb-logo-text[_ngcontent-%COMP%]{color:#fff;position:absolute;top:17px;font-size:22px;padding-left:3px}.sidebar.expanded[_ngcontent-%COMP%] .hb-logo-text[_ngcontent-%COMP%]{opacity:1;left:55px;transition:.3s}.sidebar[_ngcontent-%COMP%]:not(.expanded) .hb-logo-text[_ngcontent-%COMP%]{opacity:0;left:40px;transition:.3s}.hb-logo-text-mobile[_ngcontent-%COMP%], .hamburger-icon[_ngcontent-%COMP%]{display:none!important}}@media(max-width:767px){.hb-logo-text[_ngcontent-%COMP%]{display:none!important}.hb-logo-text-mobile[_ngcontent-%COMP%]{color:#fff;position:absolute;top:17px;font-size:22px;padding-left:3px;opacity:1;left:55px}.hamburger-icon[_ngcontent-%COMP%]{position:absolute;right:10px;top:28px;width:30px;transform:rotate(0);transition:.5s ease-in-out;cursor:pointer}.hamburger-icon[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{display:block;position:absolute;height:2px;width:100%;background-color:#fff;border-radius:9px;opacity:1;left:0;transform:rotate(0);transition:.25s ease-in-out}.hamburger-icon[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:nth-child(1){top:0}.hamburger-icon[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:nth-child(2), .hamburger-icon[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:nth-child(3){top:10px}.hamburger-icon[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:nth-child(4){top:20px}.hamburger-icon-cross[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:nth-child(1){top:10px;width:0;left:50%}.hamburger-icon-cross[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:nth-child(2){transform:rotate(45deg)}.hamburger-icon-cross[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:nth-child(3){transform:rotate(-45deg)}.hamburger-icon-cross[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:nth-child(4){top:10px;width:0;left:50%}}"]})}return s})();var Ge=(()=>{class s{$auth=c(I);$modal=c(B);$router=c($);$settings=c(A);$translate=c(V);$ws=c(J);io;sidebarExpanded=!1;ngOnInit(){this.io=this.$ws.connectToNamespace("app"),this.io.socket.on("reconnect",()=>{this.$auth.checkToken()}),this.compareServerUiVersion()}compareServerUiVersion(){return L(this,null,function*(){if(this.$settings.settingsLoaded||(yield U(this.$settings.onSettingsLoaded)),!this.$router.url.endsWith("/restart")&&(0,ie.lt)(this.$settings.uiVersion,T.serverTarget)){console.log(`Server restart required. UI Version: ${T.serverTarget} - Server Version: ${this.$settings.uiVersion} `);let e=this.$modal.open(Q,{size:"lg",backdrop:"static"});e.componentInstance.title=this.$translate.instant("platform.version.service_restart_required"),e.componentInstance.message=this.$translate.instant("platform.version.restart_required",{serverVersion:this.$settings.uiVersion,uiVersion:T.serverTarget}),e.componentInstance.confirmButtonLabel=this.$translate.instant("menu.tooltip_restart"),e.componentInstance.faIconClass="fas fa-power-off orange-text",e.result.then(()=>this.$router.navigate(["/restart"])).catch(()=>{})}})}static \u0275fac=function(o){return new(o||s)};static \u0275cmp=O({type:s,selectors:[["app-layout"]],decls:3,vars:3,consts:[[3,"initialIsExpanded"],[1,"content","px-3","p-md-4"]],template:function(o,t){o&1&&(p(0,"app-sidebar",0),i(1,"div",1),p(2,"router-outlet"),a()),o&2&&(g("initialIsExpanded",t.sidebarExpanded),n(),P("sidebarExpanded",t.sidebarExpanded))},dependencies:[te,W],styles:[".content[_ngcontent-%COMP%]{margin-left:60px;transition:.3s;height:100%}@media(max-width:767px){.content[_ngcontent-%COMP%]{margin-left:0;padding-top:85px!important}}@media(min-width:768px){.content[_ngcontent-%COMP%]{height:100%}}a[_ngcontent-%COMP%]:hover{text-decoration:none!important}"]})}return s})();export{Ge as LayoutComponent};
|
|
1
|
+
import{a as Y}from"./chunk-TUN7H57E.js";import{a as ee}from"./chunk-RRYSODYJ.js";import{a as Z}from"./chunk-5IRYX3WN.js";import{a as re}from"./chunk-FL4D5IR7.js";import{a as Q}from"./chunk-3ND4FTJL.js";import{a as J}from"./chunk-74KAKFTX.js";import{a as G}from"./chunk-4HRXISNZ.js";import{n as B}from"./chunk-GAI5J4YQ.js";import{a as N,b as R,d as W,e as $,f as H,g as j}from"./chunk-ZAKTSIL5.js";import{a as E}from"./chunk-JLNKCN3A.js";import{b as I}from"./chunk-KTLG6VZT.js";import"./chunk-O6MJC7P2.js";import{b as A}from"./chunk-CAB2VD3D.js";import{E as V,F as X,J as T,q}from"./chunk-MW6H5Z5G.js";import{Ab as y,Ec as d,Fb as g,Fc as l,Gb as i,Hb as a,Ib as p,Oc as K,Rb as S,Xb as u,Za as n,Zb as C,aa as c,ga as b,ha as x,hb as F,ic as P,kc as _,lc as v,ma as D,n as U,nb as O,sa as M,xc as f,yb as m,zb as w}from"./chunk-ZPXACREZ.js";import{g as ne,h as L}from"./chunk-B4AJQJMI.js";var ie=ne(re(),1);var z=()=>["/"],ae=()=>({exact:!0}),se=()=>["/plugins"],de=()=>["/accessories"],le=()=>["/logs"],pe=()=>["/support"],ce=()=>["/platform-tools/terminal"],me=()=>["/config"],ue=()=>["/settings"],_e=()=>["/power-options"];function ge(s,k){if(s&1){let e=S();i(0,"div",10)(1,"div",20),d(2,"translate"),d(3,"translate"),u("click",function(){b(e);let t=C();return x(t.openUnderVoltageModal())})("keydown",function(t){b(e);let r=C();return x(r.handleKeydown(t))}),i(4,"div",12),p(5,"i",21),a(),i(6,"div",14),_(7),d(8,"translate"),a()()()}s&2&&(n(),m("aria-label",l(2,2,"rpi.throttled.undervoltage_title")+" - "+l(3,4,"rpi.throttled.undervoltage_description")),n(6),v(l(8,6,"rpi.throttled.undervoltage_title")))}function he(s,k){if(s&1){let e=S();i(0,"div",10)(1,"div",15),d(2,"translate"),u("keydown",function(t){b(e);let r=C();return x(r.handleKeydown(t))}),i(3,"div",12),p(4,"i",22),a(),i(5,"div",14),_(6),d(7,"translate"),a()()()}s&2&&(n(),g("routerLink",f(8,ce))("routerLinkActive","active"),m("aria-label",l(2,4,"menu.linux.label_terminal")),n(5),v(l(7,6,"menu.linux.label_terminal")))}function ve(s,k){if(s&1){let e=S();i(0,"div",10)(1,"div",15),d(2,"translate"),u("keydown",function(t){b(e);let r=C();return x(r.handleKeydown(t))}),i(3,"div",12),p(4,"i",23),a(),i(5,"div",14),_(6),d(7,"translate"),a()()()}s&2&&(n(),g("routerLink",f(8,me))("routerLinkActive","active"),m("aria-label",l(2,4,"menu.config_json_editor")),n(5),v(l(7,6,"menu.config_json_editor")))}function fe(s,k){if(s&1){let e=S();i(0,"div",10)(1,"div",15),d(2,"translate"),u("keydown",function(t){b(e);let r=C();return x(r.handleKeydown(t))}),i(3,"div",12),p(4,"i",24),a(),i(5,"div",14),_(6),d(7,"translate"),a()()()}s&2&&(n(),g("routerLink",f(8,ue))("routerLinkActive","active"),m("aria-label",l(2,4,"menu.label_settings")),n(5),v(l(7,6,"menu.label_settings")))}function be(s,k){if(s&1){let e=S();i(0,"div",10)(1,"div",15),d(2,"translate"),u("keydown",function(t){b(e);let r=C();return x(r.handleKeydown(t))}),i(3,"div",12),p(4,"i",25),a(),i(5,"div",14),_(6),d(7,"translate"),a()()()}s&2&&(n(),g("routerLink",f(8,_e))("routerLinkActive","active"),m("aria-label",l(2,4,"menu.restart.title")),n(5),v(l(7,6,"menu.restart.title")))}function xe(s,k){if(s&1){let e=S();i(0,"div",10)(1,"div",20),d(2,"translate"),u("click",function(){b(e);let t=C();return x(t.reloadPage())})("keydown",function(t){b(e);let r=C();return x(r.handleKeydown(t))}),i(3,"div",12),p(4,"i",26),a(),i(5,"div",14),_(6),d(7,"translate"),a()()()}s&2&&(n(),m("aria-label",l(2,2,"menu.reload")),n(5),v(l(7,4,"menu.reload")))}function Ce(s,k){if(s&1){let e=S();i(0,"div",10)(1,"div",20),d(2,"translate"),u("click",function(){b(e);let t=C();return x(t.logout())})("keydown",function(t){b(e);let r=C();return x(r.handleKeydown(t))}),i(3,"div",12),p(4,"i",27),a(),i(5,"div",14),_(6),d(7,"translate"),a()()()}s&2&&(n(),m("aria-label",l(2,2,"menu.tooltip_logout")),n(5),v(l(7,4,"menu.tooltip_logout")))}var te=(()=>{class s{destroyRef=c(D);$auth=c(I);$authHelper=c(G);$settings=c(A);$modal=c(B);$notification=c(Z);$renderer=c(F);$router=c($);$translate=c(V);initialIsExpanded=K(!1,{});isExpanded=M(!1,{});formAuth=M(this.$settings.formAuth,{});isAdmin=this.$auth.user.admin;enableTerminalAccess=this.$settings.env.enableTerminalAccess;rPiCurrentlyUnderVoltage=M(!1,{});rPiWasUnderVoltage=M(!1,{});isMobile=!1;freezeMenu=M(!1,{});isPwa=Y();sidebarMouseEnterListener=()=>this.openSidebar();sidebarMouseLeaveListener=()=>this.closeSidebar();touchstartListener;clickListener;constructor(){this.isMobile=window.innerWidth<768;let e;window.addEventListener("resize",()=>{clearTimeout(e),e=setTimeout(()=>{this.updateListeners()},500)}),this.$router.events.pipe(E()).subscribe(o=>L(this,null,function*(){if(o instanceof N&&this.$settings.formAuth&&o.url!=="/login"&&!(yield this.$authHelper.isAuthenticated())){window.sessionStorage.setItem("target_route",o.url),yield this.$router.navigate(["/login"]);return}o instanceof R&&queueMicrotask(()=>{this.closeSidebar(),this.freezeMenu.set(!0),setTimeout(()=>{this.freezeMenu.set(!1)},750)})}))}ngOnInit(){this.isExpanded.set(this.initialIsExpanded()),this.$notification.raspberryPiThrottled.pipe(E(this.destroyRef)).subscribe(r=>{r["Under Voltage"]&&this.rPiCurrentlyUnderVoltage.set(!0),r["Under-voltage has occurred"]&&this.rPiWasUnderVoltage.set(!0)}),this.$notification.formAuthEnabled.pipe(E(this.destroyRef)).subscribe(r=>{this.formAuth.set(r)});let e=document.querySelector(".sidebar"),o=document.querySelector(".m-header"),t=document.querySelector(".content");this.isMobile?(this.touchstartListener=r=>{if(t.contains(r.target)&&this.isExpanded()){r.preventDefault(),this.toggleSidebar();return}!e.contains(r.target)&&!o.contains(r.target)&&this.isExpanded()&&(r.preventDefault(),this.closeSidebar())},document.addEventListener("touchstart",this.touchstartListener,{passive:!1})):(this.updateListeners(),o.addEventListener("mouseenter",this.sidebarMouseEnterListener,{passive:!1}),o.addEventListener("mouseleave",this.sidebarMouseLeaveListener,{passive:!1}),this.clickListener=r=>{e.contains(r.target)&&r.clientX>60&&this.closeSidebar()},document.addEventListener("click",this.clickListener,{passive:!1}))}toggleSidebar(){this.freezeMenu()||(this.isExpanded.set(!this.isExpanded()),this.updateContentStyles())}openUnderVoltageModal(){let e=this.$modal.open(ee,{size:"lg",backdrop:"static"});e.componentInstance.title=this.$translate.instant("rpi.throttled.undervoltage_title"),e.componentInstance.message=this.$translate.instant(this.rPiCurrentlyUnderVoltage()?"rpi.throttled.currently_message":"rpi.throttled.previously_message"),e.componentInstance.ctaButtonLabel=this.$translate.instant("form.button_more_info"),e.componentInstance.faIconClass="fas fa-bolt yellow-text",e.componentInstance.ctaButtonLink="https://pimylifeup.com/raspberry-pi-low-voltage-warning"}handleKeydown(e){if(e.key==="Enter"){let o=e.target;["menuitem","button"].includes(o.getAttribute("role"))&&o.click()}}reloadPage(){window.location.reload()}ngOnDestroy(){this.touchstartListener&&document.removeEventListener("touchstart",this.touchstartListener),this.clickListener&&document.removeEventListener("click",this.clickListener);let e=document.querySelector(".sidebar"),o=document.querySelector(".m-header");e&&(e.removeEventListener("mouseenter",this.sidebarMouseEnterListener),e.removeEventListener("mouseleave",this.sidebarMouseLeaveListener)),o&&(o.removeEventListener("mouseenter",this.sidebarMouseEnterListener),o.removeEventListener("mouseleave",this.sidebarMouseLeaveListener))}logout(){this.$auth.logout()}openSidebar(){this.freezeMenu()||(this.isExpanded.set(!0),this.updateContentStyles())}closeSidebar(){this.freezeMenu()||(this.isExpanded.set(!1),this.updateContentStyles())}updateContentStyles(){let e=document.querySelector(".content");this.isExpanded()?(this.$renderer.setStyle(e,"opacity","20%"),this.$renderer.setStyle(e,"pointer-events","none"),this.$renderer.setStyle(e,"overflow","hidden")):(this.$renderer.removeStyle(e,"opacity"),this.$renderer.removeStyle(e,"pointer-events"),this.$renderer.removeStyle(e,"overflow"))}updateListeners(){this.isMobile=window.innerWidth<768;let e=document.querySelector(".sidebar");e.removeEventListener("mouseenter",this.sidebarMouseEnterListener),e.removeEventListener("mouseleave",this.sidebarMouseLeaveListener),(this.isMobile||!this.isMobile&&this.$settings.menuMode!=="freeze")&&(e.addEventListener("mouseenter",this.sidebarMouseEnterListener,{passive:!1}),e.addEventListener("mouseleave",this.sidebarMouseLeaveListener,{passive:!1}))}static \u0275fac=function(o){return new(o||s)};static \u0275cmp=O({type:s,selectors:[["app-sidebar"]],inputs:{initialIsExpanded:[1,"initialIsExpanded"]},decls:68,vars:73,consts:[["tabindex","0","role","button",1,"m-header","text-end",3,"click","keydown"],[1,"me-2","d-block","d-lg-none",2,"font-size","0.9rem","color","#dddddd"],[3,"routerLink"],["ngSrc","assets/homebridge-logo.svg","alt","HB Logo","height","35","width","35",2,"height","35px","width","35px"],[1,"hb-logo-text-mobile"],[1,"hamburger-icon"],["role","navigation","id","sidebar",1,"sidebar"],["tabindex","0","role","button",1,"header",3,"click","keydown"],[1,"hb-logo-text"],[1,"link-wrapper"],[1,"link"],["role","menuitem","tabindex","0",1,"link-row",3,"keydown","routerLink","routerLinkActive","routerLinkActiveOptions"],[1,"icon"],[1,"fa","fa-house"],[1,"title"],["role","menuitem","tabindex","0",1,"link-row",3,"keydown","routerLink","routerLinkActive"],[1,"fa","fa-plug"],[1,"fa","fa-lightbulb"],[1,"fa","fa-wave-square"],[1,"fa","fa-question-circle-o"],["role","menuitem","tabindex","0",1,"link-row",3,"click","keydown"],[1,"fas","fa-bolt","fa-beat","yellow-text",2,"--fa-beat-scale","1.5"],[1,"fa","fa-terminal"],[1,"fa","fa-code"],[1,"fa","fa-cog"],[1,"fa","fa-power-off"],[1,"fa","fa-refresh"],[1,"fa","fa-right-from-bracket"]],template:function(o,t){o&1&&(i(0,"div",0),d(1,"translate"),u("click",function(){return t.toggleSidebar()})("keydown",function(h){return t.handleKeydown(h)}),p(2,"span",1),i(3,"a",2),d(4,"translate"),p(5,"img",3),i(6,"div",4),_(7,"Homebridge"),a()(),i(8,"div",5),p(9,"span")(10,"span")(11,"span")(12,"span"),a()(),i(13,"div",6)(14,"div",7),u("click",function(){return t.toggleSidebar()})("keydown",function(h){return t.handleKeydown(h)}),i(15,"a",2),d(16,"translate"),p(17,"img",3),i(18,"div",8),_(19,"Homebridge"),a()()(),i(20,"div",9)(21,"div",10)(22,"div",11),d(23,"translate"),u("keydown",function(h){return t.handleKeydown(h)}),i(24,"div",12),p(25,"i",13),a(),i(26,"div",14),_(27),d(28,"translate"),a()()(),w(29,ge,9,8,"div",10),i(30,"div",10)(31,"div",15),d(32,"translate"),u("keydown",function(h){return t.handleKeydown(h)}),i(33,"div",12),p(34,"i",16),a(),i(35,"div",14),_(36),d(37,"translate"),a()()(),i(38,"div",10)(39,"div",15),d(40,"translate"),u("keydown",function(h){return t.handleKeydown(h)}),i(41,"div",12),p(42,"i",17),a(),i(43,"div",14),_(44),d(45,"translate"),a()()(),i(46,"div",10)(47,"div",15),d(48,"translate"),u("keydown",function(h){return t.handleKeydown(h)}),i(49,"div",12),p(50,"i",18),a(),i(51,"div",14),_(52),d(53,"translate"),a()()(),w(54,he,8,9,"div",10),w(55,ve,8,9,"div",10),w(56,fe,8,9,"div",10),i(57,"div",10)(58,"div",15),d(59,"translate"),u("keydown",function(h){return t.handleKeydown(h)}),i(60,"div",12),p(61,"i",19),a(),i(62,"div",14),_(63),d(64,"translate"),a()()(),w(65,be,8,9,"div",10),w(66,xe,8,6,"div",10),w(67,Ce,8,6,"div",10),a()()),o&2&&(m("aria-expanded",t.isExpanded()?"true":"false")("aria-controls","sidebar")("aria-label",l(1,39,"menu.sidebar.aria_menu")),n(3),g("routerLink",f(65,z)),m("aria-label",l(4,41,"menu.label_status")),n(5),P("hamburger-icon-cross",t.isExpanded()),n(5),P("expanded",t.isExpanded()),n(2),g("routerLink",f(66,z)),m("aria-label",l(16,43,"menu.label_status")),n(7),g("routerLink",f(67,z))("routerLinkActive","active")("routerLinkActiveOptions",f(68,ae)),m("aria-label",l(23,45,"menu.label_status")),n(5),v(l(28,47,"menu.label_status")),n(2),y(t.rPiWasUnderVoltage()||t.rPiCurrentlyUnderVoltage()?29:-1),n(2),g("routerLink",f(69,se))("routerLinkActive","active"),m("aria-label",l(32,49,"menu.label_plugins")),n(5),v(l(37,51,"menu.label_plugins")),n(3),g("routerLink",f(70,de))("routerLinkActive","active"),m("aria-label",l(40,53,"menu.label_accessories")),n(5),v(l(45,55,"menu.label_accessories")),n(3),g("routerLink",f(71,le))("routerLinkActive","active"),m("aria-label",l(48,57,"menu.linux.label_logs")),n(5),v(l(53,59,"menu.linux.label_logs")),n(2),y(t.enableTerminalAccess&&t.isAdmin?54:-1),n(),y(t.isAdmin?55:-1),n(),y(t.isAdmin?56:-1),n(2),g("routerLink",f(72,pe))("routerLinkActive","active"),m("aria-label",l(59,61,"support.title")),n(5),v(l(64,63,"support.title")),n(2),y(t.isAdmin?65:-1),n(),y(t.isPwa?66:-1),n(),y(t.formAuth()?67:-1))},dependencies:[H,q,j,X],styles:[".m-header[_ngcontent-%COMP%]{position:fixed;top:0;left:0;width:100%;height:65px;z-index:510;display:flex;align-items:center;padding-left:3px;padding-right:3px}.m-header[_ngcontent-%COMP%]:hover{cursor:pointer}@media(min-width:768px){.m-header[_ngcontent-%COMP%]{display:none}}.sidebar[_ngcontent-%COMP%]{position:fixed;left:0;top:0;height:100vh;transition:.3s;width:60px;z-index:500}.sidebar[_ngcontent-%COMP%] .header[_ngcontent-%COMP%]{display:flex;flex-direction:column;justify-content:center;padding:15px 10px 15px 11px;font-size:.85rem}.sidebar[_ngcontent-%COMP%] .header[_ngcontent-%COMP%]:hover{cursor:pointer}.sidebar[_ngcontent-%COMP%] .link-wrapper[_ngcontent-%COMP%]{overflow-x:hidden;overflow-y:auto;max-height:calc(100vh - 80px)!important;scrollbar-width:thin}@media(max-width:767px){.sidebar[_ngcontent-%COMP%] .link-wrapper[_ngcontent-%COMP%]{padding-bottom:60px}}.sidebar[_ngcontent-%COMP%] .link-wrapper[_ngcontent-%COMP%] .link[_ngcontent-%COMP%] .link-row[_ngcontent-%COMP%]{display:flex;align-items:center;padding:15px 10px;cursor:pointer;transition:.2s;font-size:17px}.sidebar[_ngcontent-%COMP%] .link-wrapper[_ngcontent-%COMP%] .link[_ngcontent-%COMP%] .link-row[_ngcontent-%COMP%] .icon[_ngcontent-%COMP%]{flex:0 0 38px;display:flex;align-items:center;justify-content:center}.sidebar[_ngcontent-%COMP%] .link-wrapper[_ngcontent-%COMP%] .link[_ngcontent-%COMP%] .link-row[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{flex:1;transition:.3s;max-width:0;overflow:hidden;white-space:nowrap}@media(max-width:767px){.sidebar[_ngcontent-%COMP%]{width:0}.sidebar[_ngcontent-%COMP%] .link-wrapper[_ngcontent-%COMP%]{display:none}}.sidebar.expanded[_ngcontent-%COMP%]{width:210px}@media(max-width:767px){.sidebar.expanded[_ngcontent-%COMP%]{width:210px}.sidebar.expanded[_ngcontent-%COMP%] .link-wrapper[_ngcontent-%COMP%]{display:block}}.sidebar.expanded[_ngcontent-%COMP%] .link-wrapper[_ngcontent-%COMP%] .link[_ngcontent-%COMP%] .link-row[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{max-width:150px;padding-left:10px}.hamburger-icon[_ngcontent-%COMP%]{margin:-7px 0 0 25px}@media(min-width:768px){.hb-logo-text[_ngcontent-%COMP%]{color:#fff;position:absolute;top:17px;font-size:22px;padding-left:3px}.sidebar.expanded[_ngcontent-%COMP%] .hb-logo-text[_ngcontent-%COMP%]{opacity:1;left:55px;transition:.3s}.sidebar[_ngcontent-%COMP%]:not(.expanded) .hb-logo-text[_ngcontent-%COMP%]{opacity:0;left:40px;transition:.3s}.hb-logo-text-mobile[_ngcontent-%COMP%], .hamburger-icon[_ngcontent-%COMP%]{display:none!important}}@media(max-width:767px){.hb-logo-text[_ngcontent-%COMP%]{display:none!important}.hb-logo-text-mobile[_ngcontent-%COMP%]{color:#fff;position:absolute;top:17px;font-size:22px;padding-left:3px;opacity:1;left:55px}.hamburger-icon[_ngcontent-%COMP%]{position:absolute;right:10px;top:28px;width:30px;transform:rotate(0);transition:.5s ease-in-out;cursor:pointer}.hamburger-icon[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{display:block;position:absolute;height:2px;width:100%;background-color:#fff;border-radius:9px;opacity:1;left:0;transform:rotate(0);transition:.25s ease-in-out}.hamburger-icon[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:nth-child(1){top:0}.hamburger-icon[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:nth-child(2), .hamburger-icon[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:nth-child(3){top:10px}.hamburger-icon[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:nth-child(4){top:20px}.hamburger-icon-cross[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:nth-child(1){top:10px;width:0;left:50%}.hamburger-icon-cross[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:nth-child(2){transform:rotate(45deg)}.hamburger-icon-cross[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:nth-child(3){transform:rotate(-45deg)}.hamburger-icon-cross[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:nth-child(4){top:10px;width:0;left:50%}}"]})}return s})();var Ge=(()=>{class s{$auth=c(I);$modal=c(B);$router=c($);$settings=c(A);$translate=c(V);$ws=c(J);io;sidebarExpanded=!1;ngOnInit(){this.io=this.$ws.connectToNamespace("app"),this.io.socket.on("reconnect",()=>{this.$auth.checkToken()}),this.compareServerUiVersion()}compareServerUiVersion(){return L(this,null,function*(){if(this.$settings.settingsLoaded||(yield U(this.$settings.onSettingsLoaded)),!this.$router.url.endsWith("/restart")&&(0,ie.lt)(this.$settings.uiVersion,T.serverTarget)){console.log(`Server restart required. UI Version: ${T.serverTarget} - Server Version: ${this.$settings.uiVersion} `);let e=this.$modal.open(Q,{size:"lg",backdrop:"static"});e.componentInstance.title=this.$translate.instant("platform.version.service_restart_required"),e.componentInstance.message=this.$translate.instant("platform.version.restart_required",{serverVersion:this.$settings.uiVersion,uiVersion:T.serverTarget}),e.componentInstance.confirmButtonLabel=this.$translate.instant("menu.tooltip_restart"),e.componentInstance.faIconClass="fas fa-power-off orange-text",e.result.then(()=>this.$router.navigate(["/restart"])).catch(()=>{})}})}static \u0275fac=function(o){return new(o||s)};static \u0275cmp=O({type:s,selectors:[["app-layout"]],decls:3,vars:3,consts:[[3,"initialIsExpanded"],[1,"content","px-3","p-md-4"]],template:function(o,t){o&1&&(p(0,"app-sidebar",0),i(1,"div",1),p(2,"router-outlet"),a()),o&2&&(g("initialIsExpanded",t.sidebarExpanded),n(),P("sidebarExpanded",t.sidebarExpanded))},dependencies:[te,W],styles:[".content[_ngcontent-%COMP%]{margin-left:60px;transition:.3s;height:100%}@media(max-width:767px){.content[_ngcontent-%COMP%]{margin-left:0;padding-top:85px!important}}@media(min-width:768px){.content[_ngcontent-%COMP%]{height:100%}}a[_ngcontent-%COMP%]:hover{text-decoration:none!important}"]})}return s})();export{Ge as LayoutComponent};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b as C}from"./chunk-
|
|
1
|
+
import{b as C}from"./chunk-CAB2VD3D.js";import{E as I,F as y,J as w}from"./chunk-MW6H5Z5G.js";import{Ab as g,Ec as i,Fc as n,Jb as t,Kb as a,Lb as p,Sb as k,Va as S,Yb as f,Za as e,Zb as B,aa as v,jc as h,kc as r,lc as m,mc as d,nb as _,yb as l,zb as b,zc as x}from"./chunk-ZPXACREZ.js";import"./chunk-B4AJQJMI.js";var F=(o,E)=>({"fa-chevron-down":o,"fa-chevron-right":E});function P(o,E){o&1&&(t(0,"ul",6)(1,"li",9)(2,"span",10),r(3),i(4,"translate"),p(5,"br"),t(6,"small",11),r(7),i(8,"translate"),a()(),t(9,"a",12),i(10,"translate"),p(11,"i",13),a()(),t(12,"li",9)(13,"span",10),r(14),i(15,"translate"),p(16,"br"),t(17,"small",11),r(18),i(19,"translate"),a()(),t(20,"a",14),i(21,"translate"),p(22,"i",13),a()(),t(23,"li",9)(24,"span",10),r(25),i(26,"translate"),p(27,"br"),t(28,"small",11),r(29),i(30,"translate"),a()(),t(31,"a",15),i(32,"translate"),p(33,"i",13),a()(),t(34,"li",9)(35,"span",10),r(36),i(37,"translate"),p(38,"br"),t(39,"small",11),r(40),i(41,"translate"),a()(),t(42,"a",16),i(43,"translate"),p(44,"i",13),a()()()),o&2&&(e(3),d(" ",n(4,12,"support.links.documentation")),e(4),m(n(8,14,"support.links.documentation_sub")),e(2),l("aria-label",n(10,16,"support.links.documentation")),e(5),d(" ",n(15,18,"support.links.issue")),e(4),m(n(19,20,"support.links.issue_sub")),e(2),l("aria-label",n(21,22,"support.links.issue")),e(5),d(" ",n(26,24,"support.links.discord")),e(4),m(n(30,26,"support.links.discord_sub")),e(2),l("aria-label",n(32,28,"support.links.discord")),e(5),d(" ",n(37,30,"support.links.reddit")),e(4),m(n(41,32,"support.links.reddit_sub")),e(2),l("aria-label",n(43,34,"support.links.reddit")))}function $(o,E){if(o&1&&(t(0,"ul",8)(1,"li",9)(2,"span",10),r(3),i(4,"translate"),p(5,"br"),t(6,"small",11),r(7),i(8,"translate"),a()(),t(9,"a",17),i(10,"translate"),p(11,"i",13),a()(),t(12,"li",9)(13,"span",10),r(14),i(15,"translate"),p(16,"br"),t(17,"small",11),r(18),i(19,"translate"),a()(),t(20,"a",18),i(21,"translate"),p(22,"i",13),a()(),t(23,"li",9)(24,"span",10),r(25),i(26,"translate"),p(27,"br"),t(28,"small",11),r(29),i(30,"translate"),a()(),t(31,"a",19),i(32,"translate"),p(33,"i",13),a()(),t(34,"li",9)(35,"span",10),r(36),i(37,"translate"),p(38,"br"),t(39,"small",11),r(40),i(41,"translate"),a()(),t(42,"a",20),i(43,"translate"),p(44,"i",13),a()(),t(45,"li",9)(46,"span",10),r(47),i(48,"translate"),p(49,"br"),t(50,"small",11),r(51),i(52,"translate"),a()(),t(53,"a",21),i(54,"translate"),p(55,"i",13),a()()()),o&2){let c=B();e(3),d(" ",n(4,16,"support.dev.item_swagger")),e(4),m(n(8,18,"support.dev.item_swagger_sub")),e(2),k("href",c.swaggerUrl,S),l("aria-label",n(10,20,"support.dev.item_swagger")),e(5),d(" ",n(15,22,"support.dev.api")),e(4),m(n(19,24,"support.dev.api_sub")),e(2),l("aria-label",n(21,26,"support.dev.api")),e(5),d(" ",n(26,28,"support.dev.api_hap")),e(4),m(n(30,30,"support.dev.api_hap_sub")),e(2),l("aria-label",n(32,32,"support.dev.api_hap")),e(5),d(" ",n(37,34,"support.dev.template")),e(4),m(n(41,36,"support.dev.template_sub")),e(2),l("aria-label",n(43,38,"support.dev.template")),e(5),d(" ",n(48,40,"support.dev.verified")),e(4),m(n(52,42,"support.dev.verified_sub")),e(2),l("aria-label",n(54,44,"support.dev.verified"))}}var q=(()=>{class o{$settings=v(C);$translate=v(I);swaggerEndpoint="/swagger";showFields={general:!0,dev:!0};ngOnInit(){let c=this.$translate.instant("support.title");this.$settings.setPageTitle(c)}get swaggerUrl(){return w.production?this.swaggerEndpoint:`${w.api.origin}${this.swaggerEndpoint}`}toggleSection(c){this.showFields[c]=!this.showFields[c]}static \u0275fac=function(u){return new(u||o)};static \u0275cmp=_({type:o,selectors:[["ng-component"]],decls:18,vars:25,consts:[[1,"d-flex","justify-content-between"],[1,"primary-text","m-0"],[1,"mb-4"],["role","button","tabindex","0",1,"mt-3","hover-pointer",3,"click"],[1,"primary-text"],[1,"fa"],["id","fieldsGeneral",1,"list-group","list-group-box","mt-2","mx-0"],[1,"pb-3"],["id","fieldsDev",1,"list-group","list-group-box","mt-2","mx-0"],[1,"list-group-item","d-flex","justify-content-between","align-items-center"],[1,"pe-2"],[1,"grey-text","pe-2"],["href","https://github.com/homebridge/homebridge/wiki","target","_blank","rel","noopener noreferrer",1,"btn","btn-primary","waves-effect","m-0",2,"min-width","50px"],[1,"fas","fa-external-link-alt"],["href","https://github.com/homebridge/homebridge-config-ui-x/issues/new/choose","target","_blank","rel","noopener noreferrer",1,"btn","btn-primary","waves-effect","m-0",2,"min-width","50px"],["href","https://discord.gg/C87Pvq3","target","_blank","rel","noopener noreferrer",1,"btn","btn-primary","waves-effect","m-0",2,"min-width","50px"],["href","https://www.reddit.com/r/homebridge/","target","_blank","rel","noopener noreferrer",1,"btn","btn-primary","waves-effect","m-0",2,"min-width","50px"],["target","_blank","rel","noopener noreferrer",1,"btn","btn-primary","waves-effect","m-0",2,"min-width","50px",3,"href"],["href","https://developers.homebridge.io/#/","target","_blank","rel","noopener noreferrer",1,"btn","btn-primary","waves-effect","m-0",2,"min-width","50px"],["href","https://developers.homebridge.io/HAP-NodeJS/","target","_blank","rel","noopener noreferrer",1,"btn","btn-primary","waves-effect","m-0",2,"min-width","50px"],["href","https://github.com/homebridge/homebridge-plugin-template","target","_blank","rel","noopener noreferrer",1,"btn","btn-primary","waves-effect","m-0",2,"min-width","50px"],["href","https://github.com/homebridge/homebridge/wiki/Verified-Plugins","target","_blank","rel","noopener noreferrer",1,"btn","btn-primary","waves-effect","m-0",2,"min-width","50px"]],template:function(u,s){u&1&&(t(0,"div",0)(1,"h3",1),r(2),i(3,"translate"),a()(),t(4,"div",2)(5,"div",3),f("click",function(){return s.toggleSection("general")}),t(6,"h5",4),p(7,"i",5),r(8),i(9,"translate"),a()(),b(10,P,45,36,"ul",6),a(),t(11,"div",7)(12,"div",3),f("click",function(){return s.toggleSection("dev")}),t(13,"h5",4),p(14,"i",5),r(15),i(16,"translate"),a()(),b(17,$,56,46,"ul",8),a()),u&2&&(e(2),m(n(3,13,"support.title")),e(3),l("aria-expanded",s.showFields.general?"true":"false")("aria-controls","fieldsGeneral"),e(2),h(x(19,F,s.showFields.general,!s.showFields.general)),e(),d(" ",n(9,15,"support.links.title")," "),e(2),g(s.showFields.general?10:-1),e(2),l("aria-expanded",s.showFields.dev?"true":"false")("aria-controls","fieldsDev"),e(2),h(x(22,F,s.showFields.dev,!s.showFields.dev)),e(),d(" ",n(16,17,"support.dev.title")," "),e(2),g(s.showFields.dev?17:-1))},dependencies:[y],encapsulation:2})}return o})();export{q as SupportComponent};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as H}from"./chunk-QRWK7JO5.js";import{a as O}from"./chunk-
|
|
1
|
+
import{a as H}from"./chunk-QRWK7JO5.js";import{a as O}from"./chunk-GWQFQK2F.js";import{c as V}from"./chunk-ZAKTSIL5.js";import{C as D,c as T,e as P,l as I}from"./chunk-O6MJC7P2.js";import{b as $}from"./chunk-CAB2VD3D.js";import{E,H as y,K as k}from"./chunk-MW6H5Z5G.js";import{Ab as u,Fb as f,Gb as d,Hb as s,Ib as w,Rb as g,Xb as _,Za as p,Zb as a,aa as r,ga as l,ha as c,kc as v,nb as C,rc as x,sc as b,tc as M,zb as m}from"./chunk-ZPXACREZ.js";import{h as S}from"./chunk-B4AJQJMI.js";function z(i,h){i&1&&w(0,"i",6)}function A(i,h){i&1&&w(0,"i",7)}function L(i,h){if(i&1){let t=g();d(0,"ngx-monaco-editor",10),_("onInit",function(e){l(t);let o=a();return c(o.onEditorInit(e))})("keydown.control.s",function(e){l(t);let o=a();return e.preventDefault(),c(o.onSave())})("keydown.meta.s",function(e){l(t);let o=a();return e.preventDefault(),c(o.onSave())}),s()}if(i&2){let t=a();f("options",t.editorOptions)("model",t.monacoEditorModel)}}function W(i,h){if(i&1){let t=g();d(0,"textarea",11),M("ngModelChange",function(e){l(t);let o=a();return b(o.startupScript,e)||(o.startupScript=e),c(e)}),v(1," "),s()}if(i&2){let t=a();x("ngModel",t.startupScript)}}var Y=(()=>{class i{$api=r(k);$md=r(H);$route=r(V);$settings=r($);$toastr=r(y);$translate=r(E);lastHeight;visualViewPortEventCallback;startupScript;saveInProgress;isMobile=!1;options={printMargin:!1};monacoEditor;editorOptions;monacoEditorModel;constructor(){this.isMobile=this.$md.detect.mobile()}ngOnInit(){this.editorOptions={language:"shell",theme:this.$settings.actualLightingMode==="dark"?"vs-dark":"vs-light"},this.visualViewPortEventCallback=()=>this.visualViewPortChanged(),this.lastHeight=window.innerHeight,window.visualViewport&&!this.isMobile&&(window.visualViewport.addEventListener("resize",this.visualViewPortEventCallback,!0),this.$md.disableTouchMove()),this.$route.data.subscribe(t=>{this.startupScript=t.startupScript.script}),this.monacoEditorModel={value:"",language:"shell"}}onEditorInit(t){this.monacoEditor=t,this.monacoEditor.getModel().setValue(this.startupScript)}onSave(){return S(this,null,function*(){if(!this.saveInProgress){if(this.saveInProgress=!0,this.isMobile||(yield this.monacoEditor.getAction("editor.action.formatDocument").run(),this.startupScript=this.monacoEditor.getModel().getValue()),!["#!/bin/sh","#!/bin/bash"].includes(this.startupScript.split(`
|
|
2
2
|
`)[0].trim())){this.$toastr.error(this.$translate.instant("platform.docker.must_use_hashbang"),this.$translate.instant("toast.title_error")),this.startupScript=`#!/bin/sh
|
|
3
3
|
|
|
4
4
|
${this.startupScript}`,this.isMobile||this.monacoEditor.getModel().setValue(this.startupScript),this.saveInProgress=!1;return}try{yield this.$api.put("/platform-tools/docker/startup-script",{script:this.startupScript}),this.$toastr.success(this.$translate.instant("platform.docker.restart_required"),this.$translate.instant("platform.docker.script_saved"))}catch(t){console.error(t),this.$toastr.error(t.message,this.$translate.instant("toast.title_error"))}this.saveInProgress=!1}})}ngOnDestroy(){window.visualViewport&&(window.visualViewport.removeEventListener("resize",this.visualViewPortEventCallback,!0),this.$md.enableTouchMove()),this.monacoEditor&&this.monacoEditor.dispose()}visualViewPortChanged(){this.lastHeight<window.visualViewport.height&&document.activeElement.blur(),window.visualViewport.height<window.innerHeight?(this.$md.enableTouchMove(),this.lastHeight=window.visualViewport.height):window.visualViewport.height===window.innerHeight&&(this.$md.disableTouchMove(),this.lastHeight=window.visualViewport.height)}static \u0275fac=function(n){return new(n||i)};static \u0275cmp=C({type:i,selectors:[["ng-component"]],decls:11,vars:4,consts:[[1,"flex-column","d-flex","align-items-stretch","h-100"],[1,"row","mb-3"],[1,"col-6"],[1,"primary-text","m-0","font-monospace"],[1,"col-6","text-end"],[1,"btn","btn-primary","waves-effect","m-0",3,"click","disabled"],[1,"fas","fa-spinner","fa-pulse"],[1,"fas","fa-floppy-disk"],[1,"flex-grow-1","h-100","w-100","my-2",3,"options","model"],["wrap","off","autocomplete","off","autocorrect","off","autocapitalize","off","spellcheck","false",1,"hb-plain-text-editor","align-self-end","h-100","w-100","my-2",3,"ngModel"],[1,"flex-grow-1","h-100","w-100","my-2",3,"onInit","keydown.control.s","keydown.meta.s","options","model"],["wrap","off","autocomplete","off","autocorrect","off","autocapitalize","off","spellcheck","false",1,"hb-plain-text-editor","align-self-end","h-100","w-100","my-2",3,"ngModelChange","ngModel"]],template:function(n,e){n&1&&(d(0,"div",0)(1,"div",1)(2,"div",2)(3,"h3",3),v(4,"startup.sh"),s()(),d(5,"div",4)(6,"button",5),_("click",function(){return e.onSave()}),m(7,z,1,0,"i",6)(8,A,1,0,"i",7),s()()(),m(9,L,1,2,"ngx-monaco-editor",8),m(10,W,2,1,"textarea",9),s()),n&2&&(p(6),f("disabled",e.saveInProgress),p(),u(e.saveInProgress?7:8),p(2),u(e.isMobile?-1:9),p(),u(e.isMobile?10:-1))},dependencies:[O,D,T,P,I],encapsulation:2})}return i})();export{Y as StartupScriptComponent};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as W}from"./chunk-
|
|
1
|
+
import{a as W}from"./chunk-74KAKFTX.js";import{e as T}from"./chunk-ZAKTSIL5.js";import{a as C}from"./chunk-JLNKCN3A.js";import"./chunk-KTLG6VZT.js";import{b as P}from"./chunk-CAB2VD3D.js";import{E as B,F as N,H as U,K as A}from"./chunk-MW6H5Z5G.js";import{Ab as v,Ec as c,Fc as l,Jb as a,Kb as n,Lb as f,Lc as E,Qc as M,Rb as O,Yb as R,Za as e,Zb as u,aa as m,ga as y,ha as I,ic as D,jc as b,kc as o,lc as d,ma as S,mc as _,nb as k,sa as p,w as x,zb as h}from"./chunk-ZPXACREZ.js";import{h as $}from"./chunk-B4AJQJMI.js";function j(i,g){if(i&1&&(a(0,"div",7),o(1),n()),i&2){let t=u();e(),d(t.error())}}function q(i,g){if(i&1&&(a(0,"p",9),o(1),c(2,"translate"),n(),a(3,"div",10)(4,"div",11)(5,"span"),f(6,"i"),o(7),c(8,"translate"),n()(),a(9,"div",11)(10,"span"),f(11,"i"),o(12),c(13,"translate"),n()()()),i&2){let t=u();e(),d(l(2,9,"restart.please_wait_while_server_restarts")),e(5),b(t.uiIcon()),e(),_(" ",l(8,11,"restart.ui_online")," "),e(3),D("grey-text",!t.uiOnline()),e(),b(t.serviceIcon()),e(),_(" ",l(13,13,"restart.service_ready")," ")}}function z(i,g){if(i&1){let t=O();a(0,"p",14)(1,"button",15),R("click",function(){y(t);let s=u(2);return I(s.viewLogs())}),o(2),c(3,"translate"),n()()}i&2&&(e(2),d(l(3,1,"menu.tooltip_view_logs")))}function L(i,g){if(i&1&&(a(0,"div",8)(1,"p"),o(2),c(3,"translate"),n(),a(4,"p",12),o(5),c(6,"translate"),a(7,"span",13),o(8),n()(),h(9,z,4,3,"p",14),n()),i&2){let t=u();e(2),d(l(3,4,"restart.server_is_taking_long_time_to_restart")),e(3),_(" ",l(6,6,"restart.label_restart_command_executed"),": "),e(3),d(t.resp().command||"End Process"),e(),v(t.uiOnline()?9:-1)}}var et=(()=>{class i{$api=m(A);$router=m(T);$settings=m(P);$toastr=m(U);$translate=m(B);$ws=m(W);destroyRef=m(S);uiOnline=p(!1,{});error=p(!1,{});resp=p({},{});timeout=p(!1,{});uiIcon=E(()=>this.uiOnline()?"far fa-check-circle":"fas fa-spinner fa-spin",{});serviceIcon=E(()=>this.uiOnline()?"fas fa-spinner fa-spin":"far fa-circle",{});io;webrootChanged=!1;statusCheckActive=p(!1,{});ngOnInit(){this.io=this.$ws.connectToNamespace("status"),this.io.connected.subscribe(()=>{this.io.socket.emit("monitor-server-status"),this.$settings.getAppSettings().catch(()=>{})}),this.io.socket.on("homebridge-status",s=>{if(this.statusCheckActive()&&(this.uiOnline.set(!0),s.status==="ok"||s.status==="pending"))if(this.$toastr.success(this.$translate.instant("restart.toast_server_restarted"),this.$translate.instant("toast.title_success")),this.webrootChanged&&!M()){let w=this.$settings.webroot?.replace(/^\/+|\/+$/g,"")||"";window.location.href=w?`/${w}/`:"/"}else this.$router.navigate(["/"])}),this.$router.parseUrl(this.$router.url).queryParams.restarting==="true"?(this.uiOnline.set(!0),this.checkIfServerUp()):this.performRestart()}ngOnDestroy(){this.io.end(),this.statusCheckActive.set(!1)}viewLogs(){this.$router.navigate(["/logs"])}performRestart(){return $(this,null,function*(){try{let t=this.$settings.originalWebroot||"",r=this.$settings.webroot||"";this.webrootChanged=t!==r&&t!==globalThis.webroot.errorCode,this.webrootChanged&&(yield this.$api.put("/server/webroot",{webroot:r}));try{let s=yield this.$api.put("/server/restart",{});this.resp.set(s),this.checkIfServerUp(),s.restartingUI||this.uiOnline.set(!0)}catch(s){console.error(s),this.error.set(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"))}}catch(t){console.error("Failed to update webroot:",t);try{let r=yield this.$api.put("/server/restart",{});this.resp.set(r),this.checkIfServerUp(),r.restartingUI||this.uiOnline.set(!0)}catch(r){console.error(r),this.error.set(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(){x(7e3).pipe(C(this.destroyRef)).subscribe(()=>{this.statusCheckActive.set(!0)}),x(4e4).pipe(C(this.destroyRef)).subscribe(()=>{this.$toastr.warning(this.$translate.instant("restart.toast_server_restart_timeout"),this.$translate.instant("toast.title_warning"),{timeOut:1e4}),this.timeout.set(!0)})}static \u0275fac=function(r){return new(r||i)};static \u0275cmp=k({type:i,selectors:[["ng-component"]],decls:14,vars:8,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-power-off",2,"font-size","75px"],[1,"text-center"],[1,"primary-text","mb-4"],[1,"alert","alert-error","my-4"],[1,"alert","alert-warning","my-4"],[1,"grey-text"],[1,"justify-content-center","my-4"],[1,"restart-progress-box","primary-text"],[1,"grey-text","mb-0"],[1,"font-monospace"],[1,"mt-2","mb-0"],[1,"btn","btn-primary","mb-0",3,"click"]],template:function(r,s){r&1&&(a(0,"div",0)(1,"h3",1),o(2),c(3,"translate"),n()(),a(4,"div",2)(5,"div",3),f(6,"i",4),n(),a(7,"div",5)(8,"h4",6),o(9),c(10,"translate"),n(),h(11,j,2,1,"div",7)(12,q,14,15),h(13,L,10,8,"div",8),n()()),r&2&&(e(2),d(l(3,4,"menu.restart.title")),e(7),d(l(10,6,"restart.title_restart")),e(2),v(s.error()?11:12),e(2),v(s.timeout()?13:-1))},dependencies:[N],styles:[".restart-progress-box[_ngcontent-%COMP%]{font-size:22px;font-weight:300;margin-top:15px}"]})}return i})();export{et as RestartComponent};
|