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,4 +1,4 @@
|
|
|
1
|
-
import{a as _t,b as yt,c as Rt,d as vt}from"./chunk-P7RLJ6EQ.js";import{a as bt}from"./chunk-QRWK7JO5.js";import{a as jt}from"./chunk-H7F7H5MW.js";import{a as $t}from"./chunk-QIW6VVBV.js";import{b as B}from"./chunk-ZCGZM7LU.js";import{a as wt,b as Ct}from"./chunk-QOXXKL5T.js";import{m as ht,n as ut,t as U}from"./chunk-LT4LVLTJ.js";import{c as lt,e as I}from"./chunk-DGBI427A.js";import"./chunk-JLNKCN3A.js";import{C as mt,D as ft,c as ct,e as pt,l as gt}from"./chunk-N2IMTG2V.js";import{b as dt}from"./chunk-PXNJ4PSF.js";import{E as H,F as O,H as N,K as F,j as at}from"./chunk-YZZ7SAON.js";import{Ab as x,Cb as nt,Db as st,Eb as ot,Ec as r,Fb as u,Fc as l,Gb as a,Gc as Y,Hb as d,Ib as g,Oc as Q,Rb as S,Xb as b,Za as o,Zb as p,aa as m,ga as f,ha as h,hb as it,ic as rt,jc as K,kc as y,lc as E,mc as V,nb as R,sa as T,yb as v,zb as k,zc as G}from"./chunk-ZPXACREZ.js";import{a as j,b as W,d as tt,g as et,h as C}from"./chunk-B4AJQJMI.js";var Et=et(Rt(),1);var kt=et(jt(),1);var xt=(s,w)=>({"fa-trash":s,"fa-cog fa-spin":w});function It(s,w){s&1&&(a(0,"div",13),g(1,"i",20),d())}function Ht(s,w){if(s&1){let t=S();a(0,"li",9)(1,"span"),y(2),r(3,"date"),g(4,"br"),a(5,"span",21),y(6),r(7,"date"),d()(),a(8,"span",22)(9,"button",25),r(10,"translate"),r(11,"translate"),b("click",function(){let i=f(t).$implicit,n=p(2);return h(n.restore(i.id))}),g(12,"i",26),d(),a(13,"button",27),r(14,"translate"),r(15,"translate"),b("click",function(){let i=f(t).$implicit,n=p(2);return h(n.download(i.id))}),g(16,"i",28),d(),a(17,"button",23),r(18,"translate"),r(19,"translate"),b("click",function(){let i=f(t).$implicit,n=p(2);return h(n.delete(i.id))}),g(20,"i",24),d()()()}if(s&2){let t=w.$implicit,e=p(2);o(2),V(" ",Y(3,16,t.timestamp,"mediumDate")),o(4),E(Y(7,19,t.timestamp,"shortTime")),o(3),u("disabled",e.clicked||e.deleting)("ngbTooltip",l(10,22,"config.restore.copy_to_editor"))("openDelay",150),v("aria-label",l(11,24,"config.restore.copy_to_editor")),o(4),u("disabled",e.clicked||e.deleting)("ngbTooltip",l(14,26,"form.button_download"))("openDelay",150),v("aria-label",l(15,28,"form.button_download")),o(4),u("disabled",e.clicked||e.deleting)("ngbTooltip",l(18,30,"form.button_delete"))("openDelay",150),v("aria-label",l(19,32,"form.button_delete")),o(3),K(G(34,xt,t.id!==e.deleting,t.id===e.deleting))}}function Ot(s,w){if(s&1){let t=S();a(0,"ul",14),st(1,Ht,21,37,"li",9,nt),a(3,"li",9)(4,"span"),y(5),r(6,"translate"),g(7,"br"),a(8,"span",21),y(9),r(10,"translate"),d()(),a(11,"span",22)(12,"button",23),r(13,"translate"),r(14,"translate"),b("click",function(){f(t);let i=p();return h(i.deleteAllBackups())}),g(15,"i",24),d()()()()}if(s&2){let t=p();o(),ot(t.backupList),o(4),V(" ",l(6,8,"form.button_delete_all")),o(4),E(l(10,10,"common.labels.no_confirmation")),o(3),u("disabled",t.clicked||t.deleting)("ngbTooltip",l(13,12,"form.button_delete_all"))("openDelay",150),v("aria-label",l(14,14,"form.button_delete")),o(3),K(G(16,xt,t.deleting!=="all",t.deleting==="all"))}}var St=(()=>{class s{$activeModal=m(ht);$api=m(F);$router=m(I);$toastr=m(N);$translate=m(H);currentConfig=Q.required({});fromSettings=Q(!1,{});loading=!0;backupList=[];clicked=!1;deleting=null;ngOnInit(){this.getConfigBackups()}getConfigBackups(){return C(this,null,function*(){try{let t=yield this.$api.get("/config-editor/backups");this.loading=!1,this.backupList=t}catch(t){this.loading=!1,console.error(t),this.$toastr.error(t.error?.message||t.message,this.$translate.instant("toast.title_error")),this.dismissModal()}})}restore(t){return this.$activeModal.close(t)}download(t){return C(this,null,function*(){this.clicked=!0;try{let e=yield this.$api.get(`/config-editor/backups/${t}`),i=JSON.stringify(e,null,4),n=new Blob([i],{type:"application/json"}),$=`config-backup-${t}.json`;(0,kt.saveAs)(n,$),this.clicked=!1}catch(e){this.clicked=!1,this.$toastr.error(e.error?.message||e.message,this.$translate.instant("toast.title_error")),console.error(e)}})}downloadCurrentConfig(){let t=`data:text/json;charset=utf-8,${encodeURIComponent(this.currentConfig())}`,e=document.createElement("a");e.setAttribute("href",t),e.setAttribute("download","config.json"),document.body.appendChild(e),e.click(),e.remove()}delete(t){return C(this,null,function*(){this.deleting=t;try{yield this.$api.delete(`/config-editor/backups/${t}`),yield this.getConfigBackups(),this.deleting=null}catch(e){this.deleting=null,this.$toastr.error(e.error?.message||e.message,this.$translate.instant("toast.title_error")),console.error(e)}})}deleteAllBackups(){return C(this,null,function*(){this.deleting="all";try{yield this.$api.delete("/config-editor/backups"),this.$toastr.success(this.$translate.instant("config.restore.toast_backups_deleted"),this.$translate.instant("toast.title_success")),this.backupList=[],this.deleting=null}catch(t){this.$toastr.error(t.error?.message||t.message,this.$translate.instant("toast.title_error")),console.error(t),this.deleting=null}})}dismissModal(){this.fromSettings&&this.$router.navigate(["/settings"]),this.$activeModal.dismiss("Dismiss")}static \u0275fac=function(e){return new(e||s)};static \u0275cmp=R({type:s,selectors:[["ng-component"]],inputs:{currentConfig:[1,"currentConfig"],fromSettings:[1,"fromSettings"]},decls:40,vars:31,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click","disabled"],[1,"modal-body"],[1,"text-center","mb-3"],[1,"fas","fa-history","primary-text",2,"font-size","75px"],[1,"mb-3"],[1,"list-group","list-group-box","mb-0"],[1,"list-group-item","d-flex","justify-content-between","align-items-center"],[1,"grey-text"],[1,"btn","btn-primary","m-0","ms-3","py-1",3,"click","disabled"],[1,"fas","fa-arrow-right"],[1,"text-center","primary-text"],[1,"list-group","list-group-box","mt-3"],[1,"modal-footer","justify-content-between"],[1,"text-start"],[1,"text-center"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click","disabled"],[1,"text-end"],[1,"fa","fa-cog","fa-spin","mt-3",2,"font-size","75px"],[1,"grey-text","small"],[2,"display","flex","flex-wrap","nowrap"],["placement","bottom","container","modal","triggers","hover",1,"btn","btn-danger","m-0","ms-2",3,"click","disabled","ngbTooltip","openDelay"],[1,"fas"],["placement","bottom","container","modal","triggers","hover",1,"btn","btn-primary","m-0","ms-3","py-1",3,"click","disabled","ngbTooltip","openDelay"],[1,"fas","fa-history"],["placement","bottom","container","modal","triggers","hover",1,"btn","btn-primary","m-0","ms-2",3,"click","disabled","ngbTooltip","openDelay"],[1,"fas","fa-download"]],template:function(e,i){e&1&&(a(0,"div",0)(1,"div",1)(2,"h5",2),y(3),r(4,"translate"),d(),a(5,"button",3),r(6,"translate"),b("click",function(){return i.dismissModal()}),d()(),a(7,"div",4)(8,"div",5),g(9,"i",6),d(),a(10,"ul",7)(11,"li"),y(12),r(13,"translate"),d(),a(14,"li"),y(15),r(16,"translate"),d()(),a(17,"ul",8)(18,"li",9)(19,"div")(20,"span"),y(21),r(22,"translate"),d(),g(23,"br"),a(24,"small",10),y(25),r(26,"translate"),d()(),a(27,"button",11),r(28,"translate"),b("click",function(){return i.downloadCurrentConfig()}),g(29,"i",12),d()()(),k(30,It,2,0,"div",13)(31,Ot,16,19,"ul",14),d(),a(32,"div",15),g(33,"div",16),a(34,"div",17)(35,"button",18),r(36,"translate"),b("click",function(){return i.dismissModal()}),y(37),r(38,"translate"),d()(),g(39,"div",19),d()()),e&2&&(o(3),E(l(4,13,"config.restore.title")),o(2),u("disabled",i.clicked||i.deleting),v("aria-label",l(6,15,"form.button_close")),o(7),E(l(13,17,"config.restore.help_1")),o(3),E(l(16,19,"config.restore.help_2")),o(6),E(l(22,21,"form.button_download")),o(4),E(l(26,23,"config.restore.download")),o(2),u("disabled",i.clicked||i.deleting),v("aria-label",l(28,25,"backup.backup_now")),o(3),x(i.loading?30:i.backupList.length?31:-1),o(5),u("disabled",i.clicked||i.deleting),v("aria-label",l(36,27,"form.button_close")),o(2),V(" ",l(38,29,"form.button_close")," "))},dependencies:[U,ft,at,O],encapsulation:2})}return s})();function Nt(s,w){if(s&1){let t=S();a(0,"button",13),r(1,"translate"),r(2,"translate"),b("click",function(){f(t);let i=p();return h(i.onCancelRestore())}),g(3,"i",14),d()}if(s&2){let t=p();u("disabled",t.saveInProgress())("openDelay",150)("ngbTooltip",l(1,4,"form.button_cancel")),v("aria-label",l(2,6,"form.button_cancel"))}}function Ft(s,w){if(s&1){let t=S();a(0,"button",15),r(1,"translate"),r(2,"translate"),b("click",function(){f(t);let i=p();return h(i.onRestore())}),g(3,"i",16),d()}s&2&&(u("openDelay",150)("ngbTooltip",l(1,3,"form.button_restore")),v("aria-label",l(2,5,"form.button_restore")))}function Ut(s,w){if(s&1){let t=S();a(0,"button",15),r(1,"translate"),r(2,"translate"),b("click",function(){f(t);let i=p();return h(i.toggleSideBySide())}),g(3,"i",17),d()}if(s&2){let t=p();u("openDelay",150)("ngbTooltip",l(1,7,t.renderSideBySide()?"config.restore.view_inline":"config.restore.view_side_by_side")),v("aria-label",l(2,9,t.renderSideBySide()?"config.restore.view_inline":"config.restore.view_side_by_side")),o(3),rt("fa-columns",!t.renderSideBySide())("fa-bars",t.renderSideBySide())}}function qt(s,w){s&1&&g(0,"i",8)}function zt(s,w){s&1&&g(0,"i",9)}function Jt(s,w){if(s&1){let t=S();a(0,"ngx-monaco-editor",18),b("onInit",function(i){f(t);let n=p();return h(n.onEditorInit(i))})("keydown.control.s",function(i){f(t);let n=p();return i.preventDefault(),h(n.onSave())})("keydown.meta.s",function(i){f(t);let n=p();return i.preventDefault(),h(n.onSave())}),d()}if(s&2){let t=p();u("options",t.editorOptions)("model",t.monacoEditorModel)}}function Lt(s,w){if(s&1){let t=S();a(0,"ngx-monaco-diff-editor",19),b("onInit",function(i){f(t);let n=p();return h(n.onInitDiffEditor(i))})("keydown.control.s",function(i){f(t);let n=p();return i.preventDefault(),h(n.onSave())})("keydown.meta.s",function(i){f(t);let n=p();return i.preventDefault(),h(n.onSave())}),d()}if(s&2){let t=p();u("options",t.editorOptions)("originalModel",t.diffOriginalModel)("modifiedModel",t.diffModifiedModel)}}function Wt(s,w){if(s&1){let t=S();a(0,"textarea",20),b("ngModelChange",function(i){f(t);let n=p();return h(n.homebridgeConfig.set(i))}),y(1," "),d()}if(s&2){let t=p();u("ngModel",t.homebridgeConfig())}}var ke=(()=>{class s{$api=m(F);$md=m(bt);$modal=m(ut);$monacoEditor=m($t);$renderer=m(it);$route=m(lt);$router=m(I);$settings=m(dt);$toastr=m(N);$translate=m(H);editorDecorations=[];lastHeight;visualViewPortEventCallback;latestSavedConfig;childBridgesToRestart=[];hbPendingRestart=!1;isDebugModeEnabled=this.$settings.isFeatureEnabled("childBridgeDebugMode");isMatterSupported=this.$settings.isFeatureEnabled("matterSupport");homebridgeConfig=T("",{});originalConfig=T("",{});saveInProgress=T(!1,{});isMobile=T(!1,{});monacoEditor;editorOptions;monacoEditorModel;diffOriginalModel;diffModifiedModel;renderSideBySide=T(!1,{});constructor(){this.isMobile.set(this.$md.detect.mobile())}ngOnInit(){let t=this.$translate.instant("menu.config_json_editor");this.$settings.setPageTitle(t),this.editorOptions={language:"json",theme:this.$settings.actualLightingMode==="dark"?"vs-dark":"vs-light",renderSideBySide:this.renderSideBySide(),renderIndicators:!0,ignoreTrimWhitespace:!1,glyphMargin:!0};let e=document.querySelector(".content");this.$renderer.setStyle(e,"height","100%"),this.visualViewPortEventCallback=()=>this.visualViewPortChanged(),this.lastHeight=window.innerHeight,window.visualViewport&&!this.isMobile()&&(window.visualViewport.addEventListener("resize",this.visualViewPortEventCallback,!0),this.$md.disableTouchMove()),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(n=>{this.homebridgeConfig.set(n.config),this.latestSavedConfig=JSON.parse(n.config),this.diffModifiedModel&&this.updateDiffModels()}),this.monacoEditorModel={value:"{}",language:"json",uri:window.monaco?window.monaco.Uri.parse("a://homebridge/config.json"):void 0},this.diffOriginalModel={code:"",language:"json"},this.diffModifiedModel={code:this.homebridgeConfig()||"{}",language:"json"},window.monaco?this.setMonacoEditorModel():this.$monacoEditor.readyEvent.toPromise().then(()=>this.setMonacoEditorModel()).catch(n=>{console.error("Failed to wait for monaco ready event:",n)});let{action:i}=this.$router.parseUrl(this.$router.url).queryParams;if(i){switch(i){case"restore":{this.onRestore(!0);break}}this.$router.navigate([],{queryParams:{},replaceUrl:!0,queryParamsHandling:""})}}onEditorInit(t){window.editor=t,this.monacoEditor=t,this.monacoEditor.getModel().setValue(this.homebridgeConfig())}onInitDiffEditor(t){this.monacoEditor=t.getModifiedEditor(),this.updateDiffModels(),window.editor=t}updateDiffModels(){if(this.diffOriginalModel&&(this.diffOriginalModel.code=this.originalConfig()||""),this.diffModifiedModel&&(this.diffModifiedModel.code=this.homebridgeConfig()||"{}"),window.editor&&window.editor.getOriginalEditor){let t=window.editor.getOriginalEditor(),e=window.editor.getModifiedEditor();if(t&&e){let i=t.getModel(),n=e.getModel();i&&i.setValue(this.originalConfig()||""),n&&n.setValue(this.homebridgeConfig()||"{}")}}}onSave(){return C(this,null,function*(){if(!this.saveInProgress()){this.monacoEditor&&(this.editorDecorations=this.monacoEditor.deltaDecorations(this.editorDecorations,[])),this.saveInProgress.set(!0);try{if(!this.isMobile()){yield this.monacoEditor.getAction("editor.action.formatDocument").run();let e=window.monaco.editor.getModelMarkers({owner:"json"});for(let i of e)if(i.message==="Duplicate object key"){this.saveInProgress.set(!1),this.$toastr.error(this.$translate.instant("config.config_invalid_json"),this.$translate.instant("toast.title_error"));return}this.homebridgeConfig.set(this.monacoEditor.getModel().getValue())}let t=this.parseConfigFromEditor();this.homebridgeConfig.set(JSON.stringify(t,null,4)),typeof t.bridge!="object"?this.$toastr.error(this.$translate.instant("config.config_bridge_missing"),this.$translate.instant("toast.title_error")):/^(?:[0-9A-F]{2}:){5}[0-9A-F]{2}$/i.test(t.bridge.username)?t.accessories&&!Array.isArray(t.accessories)?this.$toastr.error(this.$translate.instant("config.config_accessory_must_be_array"),this.$translate.instant("toast.title_error")):t.platforms&&!Array.isArray(t.platforms)?this.$toastr.error(this.$translate.instant("config.config_platform_must_be_array"),this.$translate.instant("toast.title_error")):t.platforms&&Array.isArray(t.platforms)&&!this.validateSection(t.platforms,"platform")||t.accessories&&Array.isArray(t.accessories)&&!this.validateSection(t.accessories,"accessory")||t.plugins&&Array.isArray(t.plugins)&&!this.validatePlugins(t.plugins,"plugins")||t.disabledPlugins&&Array.isArray(t.disabledPlugins)&&!this.validatePlugins(t.disabledPlugins,"disabledPlugins")||(yield this.saveConfig(t),this.originalConfig.set("")):this.$toastr.error(this.$translate.instant("config.config_username_error"),this.$translate.instant("toast.title_error"))}catch(t){console.error(t),this.$toastr.error(this.$translate.instant("config.config_invalid_json"),this.$translate.instant("toast.title_error"))}this.saveInProgress.set(!1)}})}onRestore(t=!1){let e=this.$modal.open(St,{size:"lg",backdrop:"static"});e.componentInstance.currentConfig=this.homebridgeConfig(),e.componentInstance.fromSettings=t,e.result.then(i=>C(this,null,function*(){try{this.originalConfig()||(this.originalConfig.set(this.homebridgeConfig()),this.updateDiffModels());let n=yield this.$api.get(`/config-editor/backups/${i}`);this.$toastr.info(this.$translate.instant("config.restore.confirm"),this.$translate.instant("config.title_backup_loaded")),this.homebridgeConfig.set(JSON.stringify(n,null,4)),this.updateDiffModels(),this.monacoEditor&&window.editor.modifiedEditor&&(this.editorDecorations=this.monacoEditor.deltaDecorations(this.editorDecorations,[]),this.monacoEditor.executeEdits("beautifier",[{identifier:"delete",range:new monaco.Range(1,1,this.monacoEditor.getModel().getLineCount()+10,1),text:"",forceMoveMarkers:!0}]),this.monacoEditor.executeEdits("beautifier",[{identifier:"insert",range:new monaco.Range(1,1,1,1),text:this.homebridgeConfig,forceMoveMarkers:!0}]))}catch(n){console.error(n),this.$toastr.error(n.error?.message||this.$translate.instant("backup.load_error"),this.$translate.instant("toast.title_error"))}})).catch(()=>{})}onCancelRestore(){if(window.editor&&window.editor.dispose)try{window.editor.dispose(),window.editor=void 0}catch{}this.homebridgeConfig.set(this.originalConfig()),this.originalConfig.set(""),this.renderSideBySide()&&this.toggleSideBySide(),this.updateDiffModels(),this.onRestore()}toggleSideBySide(){this.renderSideBySide.set(!this.renderSideBySide),this.editorOptions=W(j({},this.editorOptions),{renderSideBySide:this.renderSideBySide()})}ngOnDestroy(){let t=document.querySelector(".content");this.$renderer.removeStyle(t,"height"),window.visualViewport&&(window.visualViewport.removeEventListener("resize",this.visualViewPortEventCallback,!0),this.$md.enableTouchMove());try{if(window.editor&&window.editor.dispose&&(window.editor.dispose(),window.editor=void 0),window.monaco){let e=window.monaco.Uri.parse("file:///original.json"),i=window.monaco.Uri.parse("file:///modified.json"),n=window.monaco.editor.getModel(e);n&&n.dispose();let $=window.monaco.editor.getModel(i);$&&$.dispose();let M=(window.monaco.languages.json.jsonDefaults.diagnosticsOptions.schemas||[]).filter(P=>P.uri!=="http://homebridge/config.json");window.monaco.languages.json.jsonDefaults.setDiagnosticsOptions({validate:!0,allowComments:!1,schemas:M})}this.monacoEditor&&this.monacoEditor.dispose()}catch{}}validateSection(t,e){for(let i of t){if(typeof i!="object"||Array.isArray(i))return this.$toastr.error(this.$translate.instant("config.error_blocks_objects",{type:e}),this.$translate.instant("toast.title_error")),this.highlightOffendingArrayItem(i),!1;if(!i[e])return this.$toastr.error(this.$translate.instant("config.error_blocks_type",{type:e}),this.$translate.instant("toast.title_error")),this.highlightOffendingArrayItem(i),!1;if(typeof i[e]!="string")return this.$toastr.error(this.$translate.instant("config.error_string_type",{type:e}),this.$translate.instant("toast.title_error")),this.highlightOffendingArrayItem(i),!1}return!0}validatePlugins(t,e){for(let i of t)if(typeof i!="string")return this.$toastr.error(this.$translate.instant("config.error_string_array",{key:e}),this.$translate.instant("toast.title_error")),!1;return!0}highlightOffendingArrayItem(t){this.monacoEditor&&(t=JSON.stringify(t,null,4).split(`
|
|
1
|
+
import{a as _t,b as yt,c as Rt,d as vt}from"./chunk-GV5JF2YJ.js";import{a as bt}from"./chunk-QRWK7JO5.js";import{a as jt}from"./chunk-H7F7H5MW.js";import{a as $t}from"./chunk-QIW6VVBV.js";import{b as B}from"./chunk-ZCGZM7LU.js";import{a as wt,b as Ct}from"./chunk-GWQFQK2F.js";import{m as ht,n as ut,t as U}from"./chunk-GAI5J4YQ.js";import{c as lt,e as I}from"./chunk-ZAKTSIL5.js";import"./chunk-JLNKCN3A.js";import{C as mt,D as ft,c as ct,e as pt,l as gt}from"./chunk-O6MJC7P2.js";import{b as dt}from"./chunk-CAB2VD3D.js";import{E as H,F as O,H as N,K as F,j as at}from"./chunk-MW6H5Z5G.js";import{Ab as x,Cb as nt,Db as st,Eb as ot,Ec as r,Fb as u,Fc as l,Gb as a,Gc as Y,Hb as d,Ib as g,Oc as Q,Rb as S,Xb as b,Za as o,Zb as p,aa as m,ga as f,ha as h,hb as it,ic as rt,jc as K,kc as y,lc as E,mc as V,nb as R,sa as T,yb as v,zb as k,zc as G}from"./chunk-ZPXACREZ.js";import{a as j,b as W,d as tt,g as et,h as C}from"./chunk-B4AJQJMI.js";var Et=et(Rt(),1);var kt=et(jt(),1);var xt=(s,w)=>({"fa-trash":s,"fa-cog fa-spin":w});function It(s,w){s&1&&(a(0,"div",13),g(1,"i",20),d())}function Ht(s,w){if(s&1){let t=S();a(0,"li",9)(1,"span"),y(2),r(3,"date"),g(4,"br"),a(5,"span",21),y(6),r(7,"date"),d()(),a(8,"span",22)(9,"button",25),r(10,"translate"),r(11,"translate"),b("click",function(){let i=f(t).$implicit,n=p(2);return h(n.restore(i.id))}),g(12,"i",26),d(),a(13,"button",27),r(14,"translate"),r(15,"translate"),b("click",function(){let i=f(t).$implicit,n=p(2);return h(n.download(i.id))}),g(16,"i",28),d(),a(17,"button",23),r(18,"translate"),r(19,"translate"),b("click",function(){let i=f(t).$implicit,n=p(2);return h(n.delete(i.id))}),g(20,"i",24),d()()()}if(s&2){let t=w.$implicit,e=p(2);o(2),V(" ",Y(3,16,t.timestamp,"mediumDate")),o(4),E(Y(7,19,t.timestamp,"shortTime")),o(3),u("disabled",e.clicked||e.deleting)("ngbTooltip",l(10,22,"config.restore.copy_to_editor"))("openDelay",150),v("aria-label",l(11,24,"config.restore.copy_to_editor")),o(4),u("disabled",e.clicked||e.deleting)("ngbTooltip",l(14,26,"form.button_download"))("openDelay",150),v("aria-label",l(15,28,"form.button_download")),o(4),u("disabled",e.clicked||e.deleting)("ngbTooltip",l(18,30,"form.button_delete"))("openDelay",150),v("aria-label",l(19,32,"form.button_delete")),o(3),K(G(34,xt,t.id!==e.deleting,t.id===e.deleting))}}function Ot(s,w){if(s&1){let t=S();a(0,"ul",14),st(1,Ht,21,37,"li",9,nt),a(3,"li",9)(4,"span"),y(5),r(6,"translate"),g(7,"br"),a(8,"span",21),y(9),r(10,"translate"),d()(),a(11,"span",22)(12,"button",23),r(13,"translate"),r(14,"translate"),b("click",function(){f(t);let i=p();return h(i.deleteAllBackups())}),g(15,"i",24),d()()()()}if(s&2){let t=p();o(),ot(t.backupList),o(4),V(" ",l(6,8,"form.button_delete_all")),o(4),E(l(10,10,"common.labels.no_confirmation")),o(3),u("disabled",t.clicked||t.deleting)("ngbTooltip",l(13,12,"form.button_delete_all"))("openDelay",150),v("aria-label",l(14,14,"form.button_delete")),o(3),K(G(16,xt,t.deleting!=="all",t.deleting==="all"))}}var St=(()=>{class s{$activeModal=m(ht);$api=m(F);$router=m(I);$toastr=m(N);$translate=m(H);currentConfig=Q.required({});fromSettings=Q(!1,{});loading=!0;backupList=[];clicked=!1;deleting=null;ngOnInit(){this.getConfigBackups()}getConfigBackups(){return C(this,null,function*(){try{let t=yield this.$api.get("/config-editor/backups");this.loading=!1,this.backupList=t}catch(t){this.loading=!1,console.error(t),this.$toastr.error(t.error?.message||t.message,this.$translate.instant("toast.title_error")),this.dismissModal()}})}restore(t){return this.$activeModal.close(t)}download(t){return C(this,null,function*(){this.clicked=!0;try{let e=yield this.$api.get(`/config-editor/backups/${t}`),i=JSON.stringify(e,null,4),n=new Blob([i],{type:"application/json"}),$=`config-backup-${t}.json`;(0,kt.saveAs)(n,$),this.clicked=!1}catch(e){this.clicked=!1,this.$toastr.error(e.error?.message||e.message,this.$translate.instant("toast.title_error")),console.error(e)}})}downloadCurrentConfig(){let t=`data:text/json;charset=utf-8,${encodeURIComponent(this.currentConfig())}`,e=document.createElement("a");e.setAttribute("href",t),e.setAttribute("download","config.json"),document.body.appendChild(e),e.click(),e.remove()}delete(t){return C(this,null,function*(){this.deleting=t;try{yield this.$api.delete(`/config-editor/backups/${t}`),yield this.getConfigBackups(),this.deleting=null}catch(e){this.deleting=null,this.$toastr.error(e.error?.message||e.message,this.$translate.instant("toast.title_error")),console.error(e)}})}deleteAllBackups(){return C(this,null,function*(){this.deleting="all";try{yield this.$api.delete("/config-editor/backups"),this.$toastr.success(this.$translate.instant("config.restore.toast_backups_deleted"),this.$translate.instant("toast.title_success")),this.backupList=[],this.deleting=null}catch(t){this.$toastr.error(t.error?.message||t.message,this.$translate.instant("toast.title_error")),console.error(t),this.deleting=null}})}dismissModal(){this.fromSettings&&this.$router.navigate(["/settings"]),this.$activeModal.dismiss("Dismiss")}static \u0275fac=function(e){return new(e||s)};static \u0275cmp=R({type:s,selectors:[["ng-component"]],inputs:{currentConfig:[1,"currentConfig"],fromSettings:[1,"fromSettings"]},decls:40,vars:31,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click","disabled"],[1,"modal-body"],[1,"text-center","mb-3"],[1,"fas","fa-history","primary-text",2,"font-size","75px"],[1,"mb-3"],[1,"list-group","list-group-box","mb-0"],[1,"list-group-item","d-flex","justify-content-between","align-items-center"],[1,"grey-text"],[1,"btn","btn-primary","m-0","ms-3","py-1",3,"click","disabled"],[1,"fas","fa-arrow-right"],[1,"text-center","primary-text"],[1,"list-group","list-group-box","mt-3"],[1,"modal-footer","justify-content-between"],[1,"text-start"],[1,"text-center"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click","disabled"],[1,"text-end"],[1,"fa","fa-cog","fa-spin","mt-3",2,"font-size","75px"],[1,"grey-text","small"],[2,"display","flex","flex-wrap","nowrap"],["placement","bottom","container","modal","triggers","hover",1,"btn","btn-danger","m-0","ms-2",3,"click","disabled","ngbTooltip","openDelay"],[1,"fas"],["placement","bottom","container","modal","triggers","hover",1,"btn","btn-primary","m-0","ms-3","py-1",3,"click","disabled","ngbTooltip","openDelay"],[1,"fas","fa-history"],["placement","bottom","container","modal","triggers","hover",1,"btn","btn-primary","m-0","ms-2",3,"click","disabled","ngbTooltip","openDelay"],[1,"fas","fa-download"]],template:function(e,i){e&1&&(a(0,"div",0)(1,"div",1)(2,"h5",2),y(3),r(4,"translate"),d(),a(5,"button",3),r(6,"translate"),b("click",function(){return i.dismissModal()}),d()(),a(7,"div",4)(8,"div",5),g(9,"i",6),d(),a(10,"ul",7)(11,"li"),y(12),r(13,"translate"),d(),a(14,"li"),y(15),r(16,"translate"),d()(),a(17,"ul",8)(18,"li",9)(19,"div")(20,"span"),y(21),r(22,"translate"),d(),g(23,"br"),a(24,"small",10),y(25),r(26,"translate"),d()(),a(27,"button",11),r(28,"translate"),b("click",function(){return i.downloadCurrentConfig()}),g(29,"i",12),d()()(),k(30,It,2,0,"div",13)(31,Ot,16,19,"ul",14),d(),a(32,"div",15),g(33,"div",16),a(34,"div",17)(35,"button",18),r(36,"translate"),b("click",function(){return i.dismissModal()}),y(37),r(38,"translate"),d()(),g(39,"div",19),d()()),e&2&&(o(3),E(l(4,13,"config.restore.title")),o(2),u("disabled",i.clicked||i.deleting),v("aria-label",l(6,15,"form.button_close")),o(7),E(l(13,17,"config.restore.help_1")),o(3),E(l(16,19,"config.restore.help_2")),o(6),E(l(22,21,"form.button_download")),o(4),E(l(26,23,"config.restore.download")),o(2),u("disabled",i.clicked||i.deleting),v("aria-label",l(28,25,"backup.backup_now")),o(3),x(i.loading?30:i.backupList.length?31:-1),o(5),u("disabled",i.clicked||i.deleting),v("aria-label",l(36,27,"form.button_close")),o(2),V(" ",l(38,29,"form.button_close")," "))},dependencies:[U,ft,at,O],encapsulation:2})}return s})();function Nt(s,w){if(s&1){let t=S();a(0,"button",13),r(1,"translate"),r(2,"translate"),b("click",function(){f(t);let i=p();return h(i.onCancelRestore())}),g(3,"i",14),d()}if(s&2){let t=p();u("disabled",t.saveInProgress())("openDelay",150)("ngbTooltip",l(1,4,"form.button_cancel")),v("aria-label",l(2,6,"form.button_cancel"))}}function Ft(s,w){if(s&1){let t=S();a(0,"button",15),r(1,"translate"),r(2,"translate"),b("click",function(){f(t);let i=p();return h(i.onRestore())}),g(3,"i",16),d()}s&2&&(u("openDelay",150)("ngbTooltip",l(1,3,"form.button_restore")),v("aria-label",l(2,5,"form.button_restore")))}function Ut(s,w){if(s&1){let t=S();a(0,"button",15),r(1,"translate"),r(2,"translate"),b("click",function(){f(t);let i=p();return h(i.toggleSideBySide())}),g(3,"i",17),d()}if(s&2){let t=p();u("openDelay",150)("ngbTooltip",l(1,7,t.renderSideBySide()?"config.restore.view_inline":"config.restore.view_side_by_side")),v("aria-label",l(2,9,t.renderSideBySide()?"config.restore.view_inline":"config.restore.view_side_by_side")),o(3),rt("fa-columns",!t.renderSideBySide())("fa-bars",t.renderSideBySide())}}function qt(s,w){s&1&&g(0,"i",8)}function zt(s,w){s&1&&g(0,"i",9)}function Jt(s,w){if(s&1){let t=S();a(0,"ngx-monaco-editor",18),b("onInit",function(i){f(t);let n=p();return h(n.onEditorInit(i))})("keydown.control.s",function(i){f(t);let n=p();return i.preventDefault(),h(n.onSave())})("keydown.meta.s",function(i){f(t);let n=p();return i.preventDefault(),h(n.onSave())}),d()}if(s&2){let t=p();u("options",t.editorOptions)("model",t.monacoEditorModel)}}function Lt(s,w){if(s&1){let t=S();a(0,"ngx-monaco-diff-editor",19),b("onInit",function(i){f(t);let n=p();return h(n.onInitDiffEditor(i))})("keydown.control.s",function(i){f(t);let n=p();return i.preventDefault(),h(n.onSave())})("keydown.meta.s",function(i){f(t);let n=p();return i.preventDefault(),h(n.onSave())}),d()}if(s&2){let t=p();u("options",t.editorOptions)("originalModel",t.diffOriginalModel)("modifiedModel",t.diffModifiedModel)}}function Wt(s,w){if(s&1){let t=S();a(0,"textarea",20),b("ngModelChange",function(i){f(t);let n=p();return h(n.homebridgeConfig.set(i))}),y(1," "),d()}if(s&2){let t=p();u("ngModel",t.homebridgeConfig())}}var ke=(()=>{class s{$api=m(F);$md=m(bt);$modal=m(ut);$monacoEditor=m($t);$renderer=m(it);$route=m(lt);$router=m(I);$settings=m(dt);$toastr=m(N);$translate=m(H);editorDecorations=[];lastHeight;visualViewPortEventCallback;latestSavedConfig;childBridgesToRestart=[];hbPendingRestart=!1;isDebugModeEnabled=this.$settings.isFeatureEnabled("childBridgeDebugMode");isMatterSupported=this.$settings.isFeatureEnabled("matterSupport");homebridgeConfig=T("",{});originalConfig=T("",{});saveInProgress=T(!1,{});isMobile=T(!1,{});monacoEditor;editorOptions;monacoEditorModel;diffOriginalModel;diffModifiedModel;renderSideBySide=T(!1,{});constructor(){this.isMobile.set(this.$md.detect.mobile())}ngOnInit(){let t=this.$translate.instant("menu.config_json_editor");this.$settings.setPageTitle(t),this.editorOptions={language:"json",theme:this.$settings.actualLightingMode==="dark"?"vs-dark":"vs-light",renderSideBySide:this.renderSideBySide(),renderIndicators:!0,ignoreTrimWhitespace:!1,glyphMargin:!0};let e=document.querySelector(".content");this.$renderer.setStyle(e,"height","100%"),this.visualViewPortEventCallback=()=>this.visualViewPortChanged(),this.lastHeight=window.innerHeight,window.visualViewport&&!this.isMobile()&&(window.visualViewport.addEventListener("resize",this.visualViewPortEventCallback,!0),this.$md.disableTouchMove()),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(n=>{this.homebridgeConfig.set(n.config),this.latestSavedConfig=JSON.parse(n.config),this.diffModifiedModel&&this.updateDiffModels()}),this.monacoEditorModel={value:"{}",language:"json",uri:window.monaco?window.monaco.Uri.parse("a://homebridge/config.json"):void 0},this.diffOriginalModel={code:"",language:"json"},this.diffModifiedModel={code:this.homebridgeConfig()||"{}",language:"json"},window.monaco?this.setMonacoEditorModel():this.$monacoEditor.readyEvent.toPromise().then(()=>this.setMonacoEditorModel()).catch(n=>{console.error("Failed to wait for monaco ready event:",n)});let{action:i}=this.$router.parseUrl(this.$router.url).queryParams;if(i){switch(i){case"restore":{this.onRestore(!0);break}}this.$router.navigate([],{queryParams:{},replaceUrl:!0,queryParamsHandling:""})}}onEditorInit(t){window.editor=t,this.monacoEditor=t,this.monacoEditor.getModel().setValue(this.homebridgeConfig())}onInitDiffEditor(t){this.monacoEditor=t.getModifiedEditor(),this.updateDiffModels(),window.editor=t}updateDiffModels(){if(this.diffOriginalModel&&(this.diffOriginalModel.code=this.originalConfig()||""),this.diffModifiedModel&&(this.diffModifiedModel.code=this.homebridgeConfig()||"{}"),window.editor&&window.editor.getOriginalEditor){let t=window.editor.getOriginalEditor(),e=window.editor.getModifiedEditor();if(t&&e){let i=t.getModel(),n=e.getModel();i&&i.setValue(this.originalConfig()||""),n&&n.setValue(this.homebridgeConfig()||"{}")}}}onSave(){return C(this,null,function*(){if(!this.saveInProgress()){this.monacoEditor&&(this.editorDecorations=this.monacoEditor.deltaDecorations(this.editorDecorations,[])),this.saveInProgress.set(!0);try{if(!this.isMobile()){yield this.monacoEditor.getAction("editor.action.formatDocument").run();let e=window.monaco.editor.getModelMarkers({owner:"json"});for(let i of e)if(i.message==="Duplicate object key"){this.saveInProgress.set(!1),this.$toastr.error(this.$translate.instant("config.config_invalid_json"),this.$translate.instant("toast.title_error"));return}this.homebridgeConfig.set(this.monacoEditor.getModel().getValue())}let t=this.parseConfigFromEditor();this.homebridgeConfig.set(JSON.stringify(t,null,4)),typeof t.bridge!="object"?this.$toastr.error(this.$translate.instant("config.config_bridge_missing"),this.$translate.instant("toast.title_error")):/^(?:[0-9A-F]{2}:){5}[0-9A-F]{2}$/i.test(t.bridge.username)?t.accessories&&!Array.isArray(t.accessories)?this.$toastr.error(this.$translate.instant("config.config_accessory_must_be_array"),this.$translate.instant("toast.title_error")):t.platforms&&!Array.isArray(t.platforms)?this.$toastr.error(this.$translate.instant("config.config_platform_must_be_array"),this.$translate.instant("toast.title_error")):t.platforms&&Array.isArray(t.platforms)&&!this.validateSection(t.platforms,"platform")||t.accessories&&Array.isArray(t.accessories)&&!this.validateSection(t.accessories,"accessory")||t.plugins&&Array.isArray(t.plugins)&&!this.validatePlugins(t.plugins,"plugins")||t.disabledPlugins&&Array.isArray(t.disabledPlugins)&&!this.validatePlugins(t.disabledPlugins,"disabledPlugins")||(yield this.saveConfig(t),this.originalConfig.set("")):this.$toastr.error(this.$translate.instant("config.config_username_error"),this.$translate.instant("toast.title_error"))}catch(t){console.error(t),this.$toastr.error(this.$translate.instant("config.config_invalid_json"),this.$translate.instant("toast.title_error"))}this.saveInProgress.set(!1)}})}onRestore(t=!1){let e=this.$modal.open(St,{size:"lg",backdrop:"static"});e.componentInstance.currentConfig=this.homebridgeConfig(),e.componentInstance.fromSettings=t,e.result.then(i=>C(this,null,function*(){try{this.originalConfig()||(this.originalConfig.set(this.homebridgeConfig()),this.updateDiffModels());let n=yield this.$api.get(`/config-editor/backups/${i}`);this.$toastr.info(this.$translate.instant("config.restore.confirm"),this.$translate.instant("config.title_backup_loaded")),this.homebridgeConfig.set(JSON.stringify(n,null,4)),this.updateDiffModels(),this.monacoEditor&&window.editor.modifiedEditor&&(this.editorDecorations=this.monacoEditor.deltaDecorations(this.editorDecorations,[]),this.monacoEditor.executeEdits("beautifier",[{identifier:"delete",range:new monaco.Range(1,1,this.monacoEditor.getModel().getLineCount()+10,1),text:"",forceMoveMarkers:!0}]),this.monacoEditor.executeEdits("beautifier",[{identifier:"insert",range:new monaco.Range(1,1,1,1),text:this.homebridgeConfig,forceMoveMarkers:!0}]))}catch(n){console.error(n),this.$toastr.error(n.error?.message||this.$translate.instant("backup.load_error"),this.$translate.instant("toast.title_error"))}})).catch(()=>{})}onCancelRestore(){if(window.editor&&window.editor.dispose)try{window.editor.dispose(),window.editor=void 0}catch{}this.homebridgeConfig.set(this.originalConfig()),this.originalConfig.set(""),this.renderSideBySide()&&this.toggleSideBySide(),this.updateDiffModels(),this.onRestore()}toggleSideBySide(){this.renderSideBySide.set(!this.renderSideBySide),this.editorOptions=W(j({},this.editorOptions),{renderSideBySide:this.renderSideBySide()})}ngOnDestroy(){let t=document.querySelector(".content");this.$renderer.removeStyle(t,"height"),window.visualViewport&&(window.visualViewport.removeEventListener("resize",this.visualViewPortEventCallback,!0),this.$md.enableTouchMove());try{if(window.editor&&window.editor.dispose&&(window.editor.dispose(),window.editor=void 0),window.monaco){let e=window.monaco.Uri.parse("file:///original.json"),i=window.monaco.Uri.parse("file:///modified.json"),n=window.monaco.editor.getModel(e);n&&n.dispose();let $=window.monaco.editor.getModel(i);$&&$.dispose();let M=(window.monaco.languages.json.jsonDefaults.diagnosticsOptions.schemas||[]).filter(P=>P.uri!=="http://homebridge/config.json");window.monaco.languages.json.jsonDefaults.setDiagnosticsOptions({validate:!0,allowComments:!1,schemas:M})}this.monacoEditor&&this.monacoEditor.dispose()}catch{}}validateSection(t,e){for(let i of t){if(typeof i!="object"||Array.isArray(i))return this.$toastr.error(this.$translate.instant("config.error_blocks_objects",{type:e}),this.$translate.instant("toast.title_error")),this.highlightOffendingArrayItem(i),!1;if(!i[e])return this.$toastr.error(this.$translate.instant("config.error_blocks_type",{type:e}),this.$translate.instant("toast.title_error")),this.highlightOffendingArrayItem(i),!1;if(typeof i[e]!="string")return this.$toastr.error(this.$translate.instant("config.error_string_type",{type:e}),this.$translate.instant("toast.title_error")),this.highlightOffendingArrayItem(i),!1}return!0}validatePlugins(t,e){for(let i of t)if(typeof i!="string")return this.$toastr.error(this.$translate.instant("config.error_string_array",{key:e}),this.$translate.instant("toast.title_error")),!1;return!0}highlightOffendingArrayItem(t){this.monacoEditor&&(t=JSON.stringify(t,null,4).split(`
|
|
2
2
|
`).map(e=>` ${e}`).join(`
|
|
3
3
|
`),requestAnimationFrame(()=>{let e=this.monacoEditor.getModel().findMatches(t);if(e.length){let i=e[0].range,n=new monaco.Range(i.startLineNumber,i.startColumn,i.endLineNumber,i.endColumn);this.editorDecorations=this.monacoEditor.deltaDecorations(this.editorDecorations,[{range:n,options:{isWholeLine:!0,linesDecorationsClassName:"hb-monaco-editor-line-error"}}])}}))}setMonacoEditorModel(){if(window.monaco.languages.json.jsonDefaults.diagnosticsOptions.schemas.some(i=>i.uri==="http://homebridge/config.json"))return;let t=monaco.Uri.parse("a://homebridge/config.json"),e=vt(this.$translate,{isDebugModeEnabled:this.isDebugModeEnabled,isMatterSupported:this.isMatterSupported});window.monaco.languages.json.jsonDefaults.setDiagnosticsOptions({allowComments:!1,validate:!0,schemas:[{uri:"http://homebridge/config.json",fileMatch:[t.toString()],schema:{type:"object",additionalProperties:!1,required:["bridge"],properties:{bridge:{type:"object",additionalProperties:!1,required:["name","username","port","pin"],properties:j({name:{type:"string",title:this.$translate.instant("settings.name"),description:`The Homebridge instance name.
|
|
4
4
|
This should be unique if you are running multiple instances of Homebridge.`,default:"Homebridge"},username:{type:"string",title:this.$translate.instant("users.label_username"),description:`Homebridge username must be 6 pairs of colon-separated hexadecimal characters (A-F 0-9).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as E}from"./chunk-
|
|
1
|
+
import{a as E}from"./chunk-7MHPXFPT.js";import{a as S}from"./chunk-QPYSLZDC.js";import"./chunk-BMOLDRJ3.js";import"./chunk-3ND4FTJL.js";import"./chunk-74KAKFTX.js";import"./chunk-GAI5J4YQ.js";import"./chunk-JLNKCN3A.js";import"./chunk-KTLG6VZT.js";import"./chunk-O6MJC7P2.js";import{b as C}from"./chunk-CAB2VD3D.js";import{E as b,F as w}from"./chunk-MW6H5Z5G.js";import{Ec as T,Fc as y,Jb as s,Kb as l,Lb as u,Pc as $,Xb as h,Ya as a,Za as d,aa as n,d as m,ec as v,fc as f,kc as g,lc as p,nb as c}from"./chunk-ZPXACREZ.js";import"./chunk-B4AJQJMI.js";var B=["terminaloutput"],L=(()=>{class r{$terminal=n(S);$settings=n(C);$navigationGuard=n(E);$translate=n(b);resizeEvent=new m;termTarget=$("terminaloutput",{});onWindowResize(){this.resizeEvent.next(void 0)}onBeforeUnload(i){return this.$navigationGuard.handleBeforeUnload(i)}onWindowFocus(){this.activateTerminal()}onClick(){this.activateTerminal()}activateTerminal(){this.$terminal.isTerminalReady()&&this.$terminal.term&&this.$terminal.term.focus()}ngOnInit(){let i=this.$translate.instant("menu.linux.label_terminal");this.$settings.setPageTitle(i),window.document.querySelector("body").classList.add("bg-black"),this.$terminal.isTerminalReady()&&this.$terminal.destroyTerminal(),this.$settings.env.terminal?.persistence&&this.$terminal.hasActiveSession()?this.$terminal.reconnectTerminal(this.termTarget(),{},this.resizeEvent):(!this.$settings.env.terminal?.persistence&&this.$terminal.hasActiveSession()&&this.$terminal.destroyPersistentSession(),this.$terminal.startTerminal(this.termTarget(),{},this.resizeEvent)),requestAnimationFrame(()=>{this.activateTerminal()})}ngAfterViewInit(){document.addEventListener("visibilitychange",this.onVisibilityChange.bind(this))}onVisibilityChange(){!document.hidden&&this.$terminal.isTerminalReady()&&requestAnimationFrame(()=>{this.activateTerminal()})}canDeactivate(){return this.$navigationGuard.canDeactivate()}ngOnDestroy(){document.removeEventListener("visibilitychange",this.onVisibilityChange.bind(this)),window.document.querySelector("body").classList.remove("bg-black"),this.$settings.env.terminal?.persistence?this.$terminal.detachTerminal():this.$terminal.destroyPersistentSession()}static \u0275fac=function(e){return new(e||r)};static \u0275cmp=c({type:r,selectors:[["ng-component"]],viewQuery:function(e,t){e&1&&v(t.termTarget,B,5),e&2&&f()},hostBindings:function(e,t){e&1&&h("resize",function(){return t.onWindowResize()},a)("beforeunload",function(_){return t.onBeforeUnload(_)},a)("focus",function(){return t.onWindowFocus()},a)("click",function(){return t.onClick()})},decls:8,vars:3,consts:[["terminaloutput",""],[1,"row","mb-3"],[1,"col-12"],[1,"primary-text","m-0"],[1,"flex-column","d-flex","align-items-stretch","adjust-for-mobile"],["id","docker-terminal",1,"align-self-end","w-100","h-100","mb-1"]],template:function(e,t){e&1&&(s(0,"div",1)(1,"div",2)(2,"h3",3),g(3),T(4,"translate"),l()()(),s(5,"div",4),u(6,"div",5,0),l()),e&2&&(d(3),p(y(4,1,"menu.linux.label_terminal")))},dependencies:[w],encapsulation:2})}return r})();export{L as TerminalComponent};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{C as G,E as X,H as tt,K as et}from"./chunk-YZZ7SAON.js";import{L as Q,X as R,aa as W,d as P}from"./chunk-ZPXACREZ.js";import{e as at,g as ut,h as z}from"./chunk-B4AJQJMI.js";var it=at((B,U)=>{(function(w,k){typeof B=="object"&&typeof U<"u"?U.exports=k():typeof define=="function"&&define.amd?define(k):(w=typeof globalThis<"u"?globalThis:w||self).dayjs=k()})(B,function(){"use strict";var w=1e3,k=6e4,s=36e5,h="millisecond",d="second",m="minute",v="hour",y="day",f="week",L="month",J="quarter",S="year",_="date",K="Invalid Date",st=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,nt=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,rt={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(r){var i=["th","st","nd","rd"],t=r%100;return"["+r+(i[(t-20)%10]||i[t]||i[0])+"]"}},F=function(r,i,t){var n=String(r);return!n||n.length>=i?r:""+Array(i+1-n.length).join(t)+r},ot={s:F,z:function(r){var i=-r.utcOffset(),t=Math.abs(i),n=Math.floor(t/60),e=t%60;return(i<=0?"+":"-")+F(n,2,"0")+":"+F(e,2,"0")},m:function r(i,t){if(i.date()<t.date())return-r(t,i);var n=12*(t.year()-i.year())+(t.month()-i.month()),e=i.clone().add(n,L),o=t-e<0,a=i.clone().add(n+(o?-1:1),L);return+(-(n+(t-e)/(o?e-a:a-e))||0)},a:function(r){return r<0?Math.ceil(r)||0:Math.floor(r)},p:function(r){return{M:L,y:S,w:f,d:y,D:_,h:v,m,s:d,ms:h,Q:J}[r]||String(r||"").toLowerCase().replace(/s$/,"")},u:function(r){return r===void 0}},I="en",D={};D[I]=rt;var q="$isDayjsObject",N=function(r){return r instanceof C||!(!r||!r[q])},Y=function r(i,t,n){var e;if(!i)return I;if(typeof i=="string"){var o=i.toLowerCase();D[o]&&(e=o),t&&(D[o]=t,e=o);var a=i.split("-");if(!e&&a.length>1)return r(a[0])}else{var c=i.name;D[c]=i,e=c}return!n&&e&&(I=e),e||!n&&I},g=function(r,i){if(N(r))return r.clone();var t=typeof i=="object"?i:{};return t.date=r,t.args=arguments,new C(t)},u=ot;u.l=Y,u.i=N,u.w=function(r,i){return g(r,{locale:i.$L,utc:i.$u,x:i.$x,$offset:i.$offset})};var C=(function(){function r(t){this.$L=Y(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[q]=!0}var i=r.prototype;return i.parse=function(t){this.$d=(function(n){var e=n.date,o=n.utc;if(e===null)return new Date(NaN);if(u.u(e))return new Date;if(e instanceof Date)return new Date(e);if(typeof e=="string"&&!/Z$/i.test(e)){var a=e.match(st);if(a){var c=a[2]-1||0,l=(a[7]||"0").substring(0,3);return o?new Date(Date.UTC(a[1],c,a[3]||1,a[4]||0,a[5]||0,a[6]||0,l)):new Date(a[1],c,a[3]||1,a[4]||0,a[5]||0,a[6]||0,l)}}return new Date(e)})(t),this.init()},i.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},i.$utils=function(){return u},i.isValid=function(){return this.$d.toString()!==K},i.isSame=function(t,n){var e=g(t);return this.startOf(n)<=e&&e<=this.endOf(n)},i.isAfter=function(t,n){return g(t)<this.startOf(n)},i.isBefore=function(t,n){return this.endOf(n)<g(t)},i.$g=function(t,n,e){return u.u(t)?this[n]:this.set(e,t)},i.unix=function(){return Math.floor(this.valueOf()/1e3)},i.valueOf=function(){return this.$d.getTime()},i.startOf=function(t,n){var e=this,o=!!u.u(n)||n,a=u.p(t),c=function(x,M){var T=u.w(e.$u?Date.UTC(e.$y,M,x):new Date(e.$y,M,x),e);return o?T:T.endOf(y)},l=function(x,M){return u.w(e.toDate()[x].apply(e.toDate("s"),(o?[0,0,0,0]:[23,59,59,999]).slice(M)),e)},$=this.$W,p=this.$M,b=this.$D,H="set"+(this.$u?"UTC":"");switch(a){case S:return o?c(1,0):c(31,11);case L:return o?c(1,p):c(0,p+1);case f:var O=this.$locale().weekStart||0,j=($<O?$+7:$)-O;return c(o?b-j:b+(6-j),p);case y:case _:return l(H+"Hours",0);case v:return l(H+"Minutes",1);case m:return l(H+"Seconds",2);case d:return l(H+"Milliseconds",3);default:return this.clone()}},i.endOf=function(t){return this.startOf(t,!1)},i.$set=function(t,n){var e,o=u.p(t),a="set"+(this.$u?"UTC":""),c=(e={},e[y]=a+"Date",e[_]=a+"Date",e[L]=a+"Month",e[S]=a+"FullYear",e[v]=a+"Hours",e[m]=a+"Minutes",e[d]=a+"Seconds",e[h]=a+"Milliseconds",e)[o],l=o===y?this.$D+(n-this.$W):n;if(o===L||o===S){var $=this.clone().set(_,1);$.$d[c](l),$.init(),this.$d=$.set(_,Math.min(this.$D,$.daysInMonth())).$d}else c&&this.$d[c](l);return this.init(),this},i.set=function(t,n){return this.clone().$set(t,n)},i.get=function(t){return this[u.p(t)]()},i.add=function(t,n){var e,o=this;t=Number(t);var a=u.p(n),c=function(p){var b=g(o);return u.w(b.date(b.date()+Math.round(p*t)),o)};if(a===L)return this.set(L,this.$M+t);if(a===S)return this.set(S,this.$y+t);if(a===y)return c(1);if(a===f)return c(7);var l=(e={},e[m]=k,e[v]=s,e[d]=w,e)[a]||1,$=this.$d.getTime()+t*l;return u.w($,this)},i.subtract=function(t,n){return this.add(-1*t,n)},i.format=function(t){var n=this,e=this.$locale();if(!this.isValid())return e.invalidDate||K;var o=t||"YYYY-MM-DDTHH:mm:ssZ",a=u.z(this),c=this.$H,l=this.$m,$=this.$M,p=e.weekdays,b=e.months,H=e.meridiem,O=function(M,T,A,V){return M&&(M[T]||M(n,o))||A[T].slice(0,V)},j=function(M){return u.s(c%12||12,M,"0")},x=H||function(M,T,A){var V=M<12?"AM":"PM";return A?V.toLowerCase():V};return o.replace(nt,function(M,T){return T||(function(A){switch(A){case"YY":return String(n.$y).slice(-2);case"YYYY":return u.s(n.$y,4,"0");case"M":return $+1;case"MM":return u.s($+1,2,"0");case"MMM":return O(e.monthsShort,$,b,3);case"MMMM":return O(b,$);case"D":return n.$D;case"DD":return u.s(n.$D,2,"0");case"d":return String(n.$W);case"dd":return O(e.weekdaysMin,n.$W,p,2);case"ddd":return O(e.weekdaysShort,n.$W,p,3);case"dddd":return p[n.$W];case"H":return String(c);case"HH":return u.s(c,2,"0");case"h":return j(1);case"hh":return j(2);case"a":return x(c,l,!0);case"A":return x(c,l,!1);case"m":return String(l);case"mm":return u.s(l,2,"0");case"s":return String(n.$s);case"ss":return u.s(n.$s,2,"0");case"SSS":return u.s(n.$ms,3,"0");case"Z":return a}return null})(M)||a.replace(":","")})},i.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},i.diff=function(t,n,e){var o,a=this,c=u.p(n),l=g(t),$=(l.utcOffset()-this.utcOffset())*k,p=this-l,b=function(){return u.m(a,l)};switch(c){case S:o=b()/12;break;case L:o=b();break;case J:o=b()/3;break;case f:o=(p-$)/6048e5;break;case y:o=(p-$)/864e5;break;case v:o=p/s;break;case m:o=p/k;break;case d:o=p/w;break;default:o=p}return e?o:u.a(o)},i.daysInMonth=function(){return this.endOf(L).$D},i.$locale=function(){return D[this.$L]},i.locale=function(t,n){if(!t)return this.$L;var e=this.clone(),o=Y(t,n,!0);return o&&(e.$L=o),e},i.clone=function(){return u.w(this.$d,this)},i.toDate=function(){return new Date(this.valueOf())},i.toJSON=function(){return this.isValid()?this.toISOString():null},i.toISOString=function(){return this.$d.toISOString()},i.toString=function(){return this.$d.toUTCString()},r})(),Z=C.prototype;return g.prototype=Z,[["$ms",h],["$s",d],["$m",m],["$H",v],["$W",y],["$M",L],["$y",S],["$D",_]].forEach(function(r){Z[r[1]]=function(i){return this.$g(i,r[0],r[1])}}),g.extend=function(r,i){return r.$i||(r(i,C,g),r.$i=!0),g},g.locale=Y,g.isDayjs=N,g.unix=function(r){return g(1e3*r)},g.en=D[I],g.Ls=D,g.p={},g})});var E=ut(it(),1);var vt=(()=>{class w{$api=W(et);$title=W(G);$toastr=W(tt);$translate=W(X);settingsLoadedSubject=new P;defaultTheme="deep-purple";forbiddenKeys=["__proto__","constructor","prototype"];serverTimeToastSubscription;restartToastRef=null;env={};host;proxyHost;webroot;originalWebroot;formAuth=!0;sessionTimeout=28800;sessionTimeoutInactivityBased=!1;uiVersion;theme;lightingMode;currentLightingMode;actualLightingMode;browserLightingMode;menuMode;keepOrphans;wallpaper;serverTimeOffset=0;rtl=!1;browserLang;onSettingsLoaded=this.settingsLoadedSubject.pipe(Q());settingsLoaded=!1;themeList=["orange","red","pink","purple","deep-purple","indigo","blue","blue-grey","cyan","green","teal","grey","brown"];constructor(){this.getAppSettings()}getAppSettings(){return z(this,null,function*(){let s=yield this.$api.get("/auth/settings");this.formAuth=s.formAuth,this.sessionTimeout=s.sessionTimeout,this.sessionTimeoutInactivityBased=s.sessionTimeoutInactivityBased,this.env=s.env,this.host=s.host,this.webroot=s.webroot,this.originalWebroot=s.originalWebroot,this.proxyHost=s.proxyHost,this.lightingMode=s.lightingMode,this.wallpaper=s.wallpaper,this.setLightingMode(this.lightingMode,"user"),this.setTheme(s.theme),this.setMenuMode(s.menuMode),this.setKeepOrphans(s.keepOrphans),this.setTitle(this.env.homebridgeInstanceName),this.checkServerTime(s.serverTimestamp),this.setUiVersion(s.env.packageVersion),this.setLang(this.env.lang),this.settingsLoaded=!0,this.settingsLoadedSubject.next(void 0),this.browserLang=this.$translate.getBrowserCultureLang()})}setBrowserLightingMode(s){this.browserLightingMode=s,this.lightingMode==="auto"&&this.setLightingMode(s,"browser")}setLightingMode(s,h){h==="user"&&(this.lightingMode=s),this.currentLightingMode=s,this.actualLightingMode=this.currentLightingMode==="auto"?this.browserLightingMode:this.currentLightingMode,this.theme&&this.setTheme(this.theme)}setTheme(s){(!s||!this.themeList.includes(s))&&(s=this.defaultTheme,this.$api.put("/config-editor/ui",{key:"theme",value:s}).catch(m=>console.error("Error saving setTheme:",m)));let h=window.document.querySelector("body");h.classList.remove(`config-ui-x-${this.theme}`),h.classList.remove(`config-ui-x-dark-mode-${this.theme}`),this.theme=s,this.actualLightingMode==="dark"?(h.classList.add(`config-ui-x-dark-mode-${this.theme}`),h.classList.contains("dark-mode")||h.classList.add("dark-mode")):(h.classList.add(`config-ui-x-${this.theme}`),h.classList.contains("dark-mode")&&h.classList.remove("dark-mode")),window.document.querySelectorAll("iframe").forEach((m,v)=>{try{let y=m.contentDocument;if(y){let f=y.body;this.actualLightingMode==="dark"?(f.classList.contains(`config-ui-x-${this.theme}`)&&f.classList.remove(`config-ui-x-${this.theme}`),f.classList.contains(`config-ui-x-dark-mode-${this.theme}`)||f.classList.add(`config-ui-x-dark-mode-${this.theme}`),f.classList.contains("dark-mode")||f.classList.add("dark-mode"),f.style.backgroundColor="#242424 !important",f.style.color="#ffffff !important"):(f.classList.contains(`config-ui-x-${this.theme}`)||f.classList.add(`config-ui-x-${this.theme}`),f.classList.contains(`config-ui-x-dark-mode-${this.theme}`)&&f.classList.remove(`config-ui-x-dark-mode-${this.theme}`),f.classList.contains("dark-mode")&&f.classList.remove("dark-mode"),f.style.backgroundColor="#ffffff !important",f.style.color="#000000 !important"),m.contentWindow.postMessage({type:"theme-update",isDark:this.actualLightingMode==="dark",theme:s},window.location.origin)}}catch(y){console.warn(`Iframe ${v}: Access denied (cross-origin?)`,{error:y,src:m.src})}})}setMenuMode(s){this.menuMode=s}setKeepOrphans(s){this.keepOrphans=s}setLang(s){s?this.$translate.use(s):s="auto",this.env.lang=s}setItem(s,h){this[s]=h}setEnvItem(s,h){if(s.includes(".")){let d=s.split("."),m=this.env;for(let v=0;v<d.length-1;v+=1){if(this.forbiddenKeys.includes(d[v]))return;m[d[v]]||(m[d[v]]={}),m=m[d[v]]}this.forbiddenKeys.includes(d[d.length-1])||(m[d[d.length-1]]=h)}else this.env[s]=h}checkServerTime(s){let d=(0,E.default)(s).diff((0,E.default)(),"hour");if(this.serverTimeOffset=d*60*60,d>=8||d<=-8){let m=this.$toastr.warning(this.$translate.instant("settings.datetime.incorrect"),this.$translate.instant("toast.title_warning"),{timeOut:2e4,tapToDismiss:!1});this.serverTimeToastSubscription&&this.serverTimeToastSubscription.unsubscribe(),this.serverTimeToastSubscription=m.onTap.subscribe(()=>{window.open("https://homebridge.io/w/JqTFs","_blank")})}}setUiVersion(s){this.uiVersion||(this.uiVersion=s)}setTitle(s){this.$title.setTitle(s||"Homebridge")}setPageTitle(s){let h=this.env.homebridgeInstanceName||"Homebridge";s?this.$title.setTitle(`${h} \u2014 ${s}`):this.$title.setTitle(h)}isFeatureEnabled(s){return this.env.featureFlags?.[s]??!1}static \u0275fac=function(h){return new(h||w)};static \u0275prov=R({token:w,factory:w.\u0275fac,providedIn:"root"})}return w})();export{it as a,vt as b};
|
|
1
|
+
import{C as G,E as X,H as tt,K as et}from"./chunk-MW6H5Z5G.js";import{L as Q,X as R,aa as W,d as P}from"./chunk-ZPXACREZ.js";import{e as at,g as ut,h as z}from"./chunk-B4AJQJMI.js";var it=at((B,U)=>{(function(w,k){typeof B=="object"&&typeof U<"u"?U.exports=k():typeof define=="function"&&define.amd?define(k):(w=typeof globalThis<"u"?globalThis:w||self).dayjs=k()})(B,function(){"use strict";var w=1e3,k=6e4,s=36e5,h="millisecond",d="second",m="minute",v="hour",y="day",f="week",L="month",J="quarter",S="year",_="date",K="Invalid Date",st=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,nt=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,rt={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(r){var i=["th","st","nd","rd"],t=r%100;return"["+r+(i[(t-20)%10]||i[t]||i[0])+"]"}},F=function(r,i,t){var n=String(r);return!n||n.length>=i?r:""+Array(i+1-n.length).join(t)+r},ot={s:F,z:function(r){var i=-r.utcOffset(),t=Math.abs(i),n=Math.floor(t/60),e=t%60;return(i<=0?"+":"-")+F(n,2,"0")+":"+F(e,2,"0")},m:function r(i,t){if(i.date()<t.date())return-r(t,i);var n=12*(t.year()-i.year())+(t.month()-i.month()),e=i.clone().add(n,L),o=t-e<0,a=i.clone().add(n+(o?-1:1),L);return+(-(n+(t-e)/(o?e-a:a-e))||0)},a:function(r){return r<0?Math.ceil(r)||0:Math.floor(r)},p:function(r){return{M:L,y:S,w:f,d:y,D:_,h:v,m,s:d,ms:h,Q:J}[r]||String(r||"").toLowerCase().replace(/s$/,"")},u:function(r){return r===void 0}},I="en",D={};D[I]=rt;var q="$isDayjsObject",N=function(r){return r instanceof C||!(!r||!r[q])},Y=function r(i,t,n){var e;if(!i)return I;if(typeof i=="string"){var o=i.toLowerCase();D[o]&&(e=o),t&&(D[o]=t,e=o);var a=i.split("-");if(!e&&a.length>1)return r(a[0])}else{var c=i.name;D[c]=i,e=c}return!n&&e&&(I=e),e||!n&&I},g=function(r,i){if(N(r))return r.clone();var t=typeof i=="object"?i:{};return t.date=r,t.args=arguments,new C(t)},u=ot;u.l=Y,u.i=N,u.w=function(r,i){return g(r,{locale:i.$L,utc:i.$u,x:i.$x,$offset:i.$offset})};var C=(function(){function r(t){this.$L=Y(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[q]=!0}var i=r.prototype;return i.parse=function(t){this.$d=(function(n){var e=n.date,o=n.utc;if(e===null)return new Date(NaN);if(u.u(e))return new Date;if(e instanceof Date)return new Date(e);if(typeof e=="string"&&!/Z$/i.test(e)){var a=e.match(st);if(a){var c=a[2]-1||0,l=(a[7]||"0").substring(0,3);return o?new Date(Date.UTC(a[1],c,a[3]||1,a[4]||0,a[5]||0,a[6]||0,l)):new Date(a[1],c,a[3]||1,a[4]||0,a[5]||0,a[6]||0,l)}}return new Date(e)})(t),this.init()},i.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},i.$utils=function(){return u},i.isValid=function(){return this.$d.toString()!==K},i.isSame=function(t,n){var e=g(t);return this.startOf(n)<=e&&e<=this.endOf(n)},i.isAfter=function(t,n){return g(t)<this.startOf(n)},i.isBefore=function(t,n){return this.endOf(n)<g(t)},i.$g=function(t,n,e){return u.u(t)?this[n]:this.set(e,t)},i.unix=function(){return Math.floor(this.valueOf()/1e3)},i.valueOf=function(){return this.$d.getTime()},i.startOf=function(t,n){var e=this,o=!!u.u(n)||n,a=u.p(t),c=function(x,M){var T=u.w(e.$u?Date.UTC(e.$y,M,x):new Date(e.$y,M,x),e);return o?T:T.endOf(y)},l=function(x,M){return u.w(e.toDate()[x].apply(e.toDate("s"),(o?[0,0,0,0]:[23,59,59,999]).slice(M)),e)},$=this.$W,p=this.$M,b=this.$D,H="set"+(this.$u?"UTC":"");switch(a){case S:return o?c(1,0):c(31,11);case L:return o?c(1,p):c(0,p+1);case f:var O=this.$locale().weekStart||0,j=($<O?$+7:$)-O;return c(o?b-j:b+(6-j),p);case y:case _:return l(H+"Hours",0);case v:return l(H+"Minutes",1);case m:return l(H+"Seconds",2);case d:return l(H+"Milliseconds",3);default:return this.clone()}},i.endOf=function(t){return this.startOf(t,!1)},i.$set=function(t,n){var e,o=u.p(t),a="set"+(this.$u?"UTC":""),c=(e={},e[y]=a+"Date",e[_]=a+"Date",e[L]=a+"Month",e[S]=a+"FullYear",e[v]=a+"Hours",e[m]=a+"Minutes",e[d]=a+"Seconds",e[h]=a+"Milliseconds",e)[o],l=o===y?this.$D+(n-this.$W):n;if(o===L||o===S){var $=this.clone().set(_,1);$.$d[c](l),$.init(),this.$d=$.set(_,Math.min(this.$D,$.daysInMonth())).$d}else c&&this.$d[c](l);return this.init(),this},i.set=function(t,n){return this.clone().$set(t,n)},i.get=function(t){return this[u.p(t)]()},i.add=function(t,n){var e,o=this;t=Number(t);var a=u.p(n),c=function(p){var b=g(o);return u.w(b.date(b.date()+Math.round(p*t)),o)};if(a===L)return this.set(L,this.$M+t);if(a===S)return this.set(S,this.$y+t);if(a===y)return c(1);if(a===f)return c(7);var l=(e={},e[m]=k,e[v]=s,e[d]=w,e)[a]||1,$=this.$d.getTime()+t*l;return u.w($,this)},i.subtract=function(t,n){return this.add(-1*t,n)},i.format=function(t){var n=this,e=this.$locale();if(!this.isValid())return e.invalidDate||K;var o=t||"YYYY-MM-DDTHH:mm:ssZ",a=u.z(this),c=this.$H,l=this.$m,$=this.$M,p=e.weekdays,b=e.months,H=e.meridiem,O=function(M,T,A,V){return M&&(M[T]||M(n,o))||A[T].slice(0,V)},j=function(M){return u.s(c%12||12,M,"0")},x=H||function(M,T,A){var V=M<12?"AM":"PM";return A?V.toLowerCase():V};return o.replace(nt,function(M,T){return T||(function(A){switch(A){case"YY":return String(n.$y).slice(-2);case"YYYY":return u.s(n.$y,4,"0");case"M":return $+1;case"MM":return u.s($+1,2,"0");case"MMM":return O(e.monthsShort,$,b,3);case"MMMM":return O(b,$);case"D":return n.$D;case"DD":return u.s(n.$D,2,"0");case"d":return String(n.$W);case"dd":return O(e.weekdaysMin,n.$W,p,2);case"ddd":return O(e.weekdaysShort,n.$W,p,3);case"dddd":return p[n.$W];case"H":return String(c);case"HH":return u.s(c,2,"0");case"h":return j(1);case"hh":return j(2);case"a":return x(c,l,!0);case"A":return x(c,l,!1);case"m":return String(l);case"mm":return u.s(l,2,"0");case"s":return String(n.$s);case"ss":return u.s(n.$s,2,"0");case"SSS":return u.s(n.$ms,3,"0");case"Z":return a}return null})(M)||a.replace(":","")})},i.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},i.diff=function(t,n,e){var o,a=this,c=u.p(n),l=g(t),$=(l.utcOffset()-this.utcOffset())*k,p=this-l,b=function(){return u.m(a,l)};switch(c){case S:o=b()/12;break;case L:o=b();break;case J:o=b()/3;break;case f:o=(p-$)/6048e5;break;case y:o=(p-$)/864e5;break;case v:o=p/s;break;case m:o=p/k;break;case d:o=p/w;break;default:o=p}return e?o:u.a(o)},i.daysInMonth=function(){return this.endOf(L).$D},i.$locale=function(){return D[this.$L]},i.locale=function(t,n){if(!t)return this.$L;var e=this.clone(),o=Y(t,n,!0);return o&&(e.$L=o),e},i.clone=function(){return u.w(this.$d,this)},i.toDate=function(){return new Date(this.valueOf())},i.toJSON=function(){return this.isValid()?this.toISOString():null},i.toISOString=function(){return this.$d.toISOString()},i.toString=function(){return this.$d.toUTCString()},r})(),Z=C.prototype;return g.prototype=Z,[["$ms",h],["$s",d],["$m",m],["$H",v],["$W",y],["$M",L],["$y",S],["$D",_]].forEach(function(r){Z[r[1]]=function(i){return this.$g(i,r[0],r[1])}}),g.extend=function(r,i){return r.$i||(r(i,C,g),r.$i=!0),g},g.locale=Y,g.isDayjs=N,g.unix=function(r){return g(1e3*r)},g.en=D[I],g.Ls=D,g.p={},g})});var E=ut(it(),1);var vt=(()=>{class w{$api=W(et);$title=W(G);$toastr=W(tt);$translate=W(X);settingsLoadedSubject=new P;defaultTheme="deep-purple";forbiddenKeys=["__proto__","constructor","prototype"];serverTimeToastSubscription;restartToastRef=null;env={};host;proxyHost;webroot;originalWebroot;formAuth=!0;sessionTimeout=28800;sessionTimeoutInactivityBased=!1;uiVersion;theme;lightingMode;currentLightingMode;actualLightingMode;browserLightingMode;menuMode;keepOrphans;wallpaper;serverTimeOffset=0;rtl=!1;browserLang;onSettingsLoaded=this.settingsLoadedSubject.pipe(Q());settingsLoaded=!1;themeList=["orange","red","pink","purple","deep-purple","indigo","blue","blue-grey","cyan","green","teal","grey","brown"];constructor(){this.getAppSettings()}getAppSettings(){return z(this,null,function*(){let s=yield this.$api.get("/auth/settings");this.formAuth=s.formAuth,this.sessionTimeout=s.sessionTimeout,this.sessionTimeoutInactivityBased=s.sessionTimeoutInactivityBased,this.env=s.env,this.host=s.host,this.webroot=s.webroot,this.originalWebroot=s.originalWebroot,this.proxyHost=s.proxyHost,this.lightingMode=s.lightingMode,this.wallpaper=s.wallpaper,this.setLightingMode(this.lightingMode,"user"),this.setTheme(s.theme),this.setMenuMode(s.menuMode),this.setKeepOrphans(s.keepOrphans),this.setTitle(this.env.homebridgeInstanceName),this.checkServerTime(s.serverTimestamp),this.setUiVersion(s.env.packageVersion),this.setLang(this.env.lang),this.settingsLoaded=!0,this.settingsLoadedSubject.next(void 0),this.browserLang=this.$translate.getBrowserCultureLang()})}setBrowserLightingMode(s){this.browserLightingMode=s,this.lightingMode==="auto"&&this.setLightingMode(s,"browser")}setLightingMode(s,h){h==="user"&&(this.lightingMode=s),this.currentLightingMode=s,this.actualLightingMode=this.currentLightingMode==="auto"?this.browserLightingMode:this.currentLightingMode,this.theme&&this.setTheme(this.theme)}setTheme(s){(!s||!this.themeList.includes(s))&&(s=this.defaultTheme,this.$api.put("/config-editor/ui",{key:"theme",value:s}).catch(m=>console.error("Error saving setTheme:",m)));let h=window.document.querySelector("body");h.classList.remove(`config-ui-x-${this.theme}`),h.classList.remove(`config-ui-x-dark-mode-${this.theme}`),this.theme=s,this.actualLightingMode==="dark"?(h.classList.add(`config-ui-x-dark-mode-${this.theme}`),h.classList.contains("dark-mode")||h.classList.add("dark-mode")):(h.classList.add(`config-ui-x-${this.theme}`),h.classList.contains("dark-mode")&&h.classList.remove("dark-mode")),window.document.querySelectorAll("iframe").forEach((m,v)=>{try{let y=m.contentDocument;if(y){let f=y.body;this.actualLightingMode==="dark"?(f.classList.contains(`config-ui-x-${this.theme}`)&&f.classList.remove(`config-ui-x-${this.theme}`),f.classList.contains(`config-ui-x-dark-mode-${this.theme}`)||f.classList.add(`config-ui-x-dark-mode-${this.theme}`),f.classList.contains("dark-mode")||f.classList.add("dark-mode"),f.style.backgroundColor="#242424 !important",f.style.color="#ffffff !important"):(f.classList.contains(`config-ui-x-${this.theme}`)||f.classList.add(`config-ui-x-${this.theme}`),f.classList.contains(`config-ui-x-dark-mode-${this.theme}`)&&f.classList.remove(`config-ui-x-dark-mode-${this.theme}`),f.classList.contains("dark-mode")&&f.classList.remove("dark-mode"),f.style.backgroundColor="#ffffff !important",f.style.color="#000000 !important"),m.contentWindow.postMessage({type:"theme-update",isDark:this.actualLightingMode==="dark",theme:s},window.location.origin)}}catch(y){console.warn(`Iframe ${v}: Access denied (cross-origin?)`,{error:y,src:m.src})}})}setMenuMode(s){this.menuMode=s}setKeepOrphans(s){this.keepOrphans=s}setLang(s){s?this.$translate.use(s):s="auto",this.env.lang=s}setItem(s,h){this[s]=h}setEnvItem(s,h){if(s.includes(".")){let d=s.split("."),m=this.env;for(let v=0;v<d.length-1;v+=1){if(this.forbiddenKeys.includes(d[v]))return;m[d[v]]||(m[d[v]]={}),m=m[d[v]]}this.forbiddenKeys.includes(d[d.length-1])||(m[d[d.length-1]]=h)}else this.env[s]=h}checkServerTime(s){let d=(0,E.default)(s).diff((0,E.default)(),"hour");if(this.serverTimeOffset=d*60*60,d>=8||d<=-8){let m=this.$toastr.warning(this.$translate.instant("settings.datetime.incorrect"),this.$translate.instant("toast.title_warning"),{timeOut:2e4,tapToDismiss:!1});this.serverTimeToastSubscription&&this.serverTimeToastSubscription.unsubscribe(),this.serverTimeToastSubscription=m.onTap.subscribe(()=>{window.open("https://homebridge.io/w/JqTFs","_blank")})}}setUiVersion(s){this.uiVersion||(this.uiVersion=s)}setTitle(s){this.$title.setTitle(s||"Homebridge")}setPageTitle(s){let h=this.env.homebridgeInstanceName||"Homebridge";s?this.$title.setTitle(`${h} \u2014 ${s}`):this.$title.setTitle(h)}isFeatureEnabled(s){return this.env.featureFlags?.[s]??!1}static \u0275fac=function(h){return new(h||w)};static \u0275prov=R({token:w,factory:w.\u0275fac,providedIn:"root"})}return w})();export{it as a,vt as b};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as d}from"./chunk-H7F7H5MW.js";import{E as n,H as c,K as p}from"./chunk-
|
|
1
|
+
import{a as d}from"./chunk-H7F7H5MW.js";import{E as n,H as c,K as p}from"./chunk-MW6H5Z5G.js";import{X as r,aa as a}from"./chunk-ZPXACREZ.js";import{g as b,h as s}from"./chunk-B4AJQJMI.js";var m=b(d(),1);var v=(()=>{class e{$api=a(p);$toastr=a(c);$translate=a(n);downloadBackup(){return s(this,null,function*(){let t=yield this.$api.get("/backup/download",{observe:"response",responseType:"blob"}),i=t.headers.get("File-Name")||"homebridge-backup.tar.gz",o=t.body.size;if(o>globalThis.backup.maxBackupSize){let l=this.$translate.instant("backup.backup_exceeds_max_size",{maxBackupSizeText:globalThis.backup.maxBackupSizeText,size:`${(o/1048576).toFixed(1)}MB`});this.$toastr.warning(l,this.$translate.instant("toast.title_warning"))}(0,m.saveAs)(t.body,i)})}static \u0275fac=function(i){return new(i||e)};static \u0275prov=r({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();export{v as a};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{e as F}from"./chunk-
|
|
1
|
+
import{e as F}from"./chunk-ZAKTSIL5.js";import{a as D}from"./chunk-JLNKCN3A.js";import{b as q}from"./chunk-KTLG6VZT.js";import{B as J,C as K,D as X,c as z,d as w,e as H,f as A,g as G,j as y,m as Q,r as U,s as j,z as W}from"./chunk-O6MJC7P2.js";import{b as T}from"./chunk-CAB2VD3D.js";import{F as $,J as O,q as B}from"./chunk-MW6H5Z5G.js";import{Ab as g,Ec as d,F as M,Fb as m,Fc as l,Gb as r,Hb as a,Ib as s,Pc as C,Ua as S,Xb as P,Za as i,Zb as R,aa as u,ec as v,fc as N,hc as L,ic as h,kc as f,lc as b,ma as k,mc as V,n as I,nb as E,sa as p,zb as c}from"./chunk-ZPXACREZ.js";import{h as x}from"./chunk-B4AJQJMI.js";var Y=["password"],Z=["username"],ee=["otp"];function te(t,_){if(t&1&&(r(0,"div",8)(1,"span",12),s(2,"i",13),a(),s(3,"input",14,0),d(5,"translate"),a(),r(6,"div",8)(7,"span",12),s(8,"i",15),a(),s(9,"input",16,1),d(11,"translate"),a()),t&2){let n=R();i(3),h("is-invalid",n.form.controls.username.dirty&&n.form.controls.username.errors),m("placeholder",l(5,6,"users.label_username")),i(6),h("is-invalid",n.form.controls.password.dirty&&n.form.controls.password.errors),m("placeholder",l(11,8,"users.label_password"))}}function ie(t,_){t&1&&(r(0,"div",8)(1,"span",12),s(2,"i",17),a(),s(3,"input",18,2),d(5,"translate"),a()),t&2&&(i(3),m("placeholder",l(5,1,"login.label_2fa_code")))}function ne(t,_){t&1&&(r(0,"div",9)(1,"div",12),s(2,"i",19),a(),r(3,"div",20)(4,"div",21),f(5),d(6,"translate"),a(),s(7,"div",22),d(8,"translate"),a()()),t&2&&(i(5),b(l(6,2,"login.invalid_credentials")),i(2),m("innerHTML",l(8,4,"login.invalid_credentials_2"),S))}function oe(t,_){t&1&&(r(0,"div",9)(1,"div",12),s(2,"i",19),a(),r(3,"div",20)(4,"div",21),f(5),d(6,"translate"),a(),s(7,"div",22),d(8,"translate"),a()()),t&2&&(i(5),b(l(6,2,"login.invalid_code")),i(2),m("innerHTML",l(8,4,"login.invalid_credentials_2"),S))}var we=(()=>{class t{destroyRef=u(k);$auth=u(q);$router=u(F);$settings=u(T);targetRoute;validNonAdminRoutes=["/accessories","/plugins","/logs","/support"];passwordInput=C("password",{});usernameInput=C("username",{});otpInput=C("otp",{});backgroundStyle=p("",{});invalidCredentials=p(!1,{});invalid2faCode=p(!1,{});twoFactorCodeRequired=p(!1,{});inProgress=p(!1,{});form;ngOnInit(){this.form=new G({username:new y(""),password:new y("")}),this.form.valueChanges.pipe(M(500),D(this.destroyRef)).subscribe(n=>{let o=this.passwordInput()?.nativeElement.value;o&&o!==n.password&&this.form.controls.password.setValue(o)}),this.targetRoute=window.sessionStorage.getItem("target_route")||"",this.setBackground()}onSubmit(){return x(this,null,function*(){this.invalidCredentials.set(!1),this.invalid2faCode.set(!1),this.inProgress.set(!0),document.getElementById("submit-button")?.blur();let n=this.passwordInput()?.nativeElement.value;n&&n!==this.form.get("password").value&&this.form.controls.password.setValue(n);let o=this.usernameInput()?.nativeElement.value;if(o&&o!==this.form.get("username").value&&this.form.controls.username.setValue(o),this.twoFactorCodeRequired()){let e=this.otpInput()?.nativeElement.value;e&&e!==this.form.get("otp").value&&this.form.controls.username.setValue(e)}try{yield this.$auth.login(this.form.getRawValue()),!this.$auth.user.admin&&!this.validNonAdminRoutes.includes(this.targetRoute)&&(this.targetRoute="/"),this.$router.navigateByUrl(this.targetRoute),window.sessionStorage.removeItem("target_route")}catch(e){e.status===412?(this.form.controls.otp?(this.form.controls.otp.setErrors(["Invalid Code"]),this.invalid2faCode.set(!0)):this.form.addControl("otp",new y("",[w.required,w.minLength(6),w.maxLength(6)])),this.twoFactorCodeRequired.set(!0),setTimeout(()=>{document.getElementById("form-ota").focus()},100)):this.invalidCredentials.set(!0)}this.inProgress.set(!1)})}setBackground(){return x(this,null,function*(){if(this.$settings.settingsLoaded||(yield I(this.$settings.onSettingsLoaded)),this.$settings.env.customWallpaperHash){let n=`${O.api.base}/auth/wallpaper/${this.$settings.env.customWallpaperHash}`;this.backgroundStyle.set(`url('${n}') center/cover`)}})}static \u0275fac=function(o){return new(o||t)};static \u0275cmp=E({type:t,selectors:[["ng-component"]],viewQuery:function(o,e){o&1&&(v(e.passwordInput,Y,5),v(e.usernameInput,Z,5),v(e.otpInput,ee,5)),o&2&&N(3)},decls:15,vars:16,consts:[["username",""],["password",""],["otp",""],[1,"login-container","gradient","d-flex","align-items-start","justify-content-center"],[1,"w-100","login-card","d-flex","py-4","flex-column"],["ngSrc","assets/homebridge-color-round.svg","alt","Homebridge Logo","height","100","width","100","priority","true",1,"homebridge-logo","mx-auto","my-3"],["novalidate","",3,"ngSubmit","formGroup"],[1,"mb-4","text-center"],[1,"input-group","mb-4"],[1,"input-group","no-border","mb-4"],[1,"text-center"],["tabindex","3","id","submit-button","type","submit",1,"btn","btn-primary","mb-2",3,"disabled"],[1,"input-group-text","custom-input"],[1,"fas","fa-user","primary-text","fa-lg"],["formControlName","username","type","text","id","form-username","autofocus","","autocomplete","username","autocapitalize","none","tabindex","1","required","",1,"form-control","custom-input",3,"placeholder"],[1,"fas","fa-lock","primary-text","fa-lg"],["formControlName","password","type","password","id","form-pass","autocomplete","current-password","tabindex","2","required","",1,"form-control","custom-input",3,"placeholder"],[1,"fas","fa-key","primary-text","fa-lg"],["formControlName","otp","type","text","id","form-ota","autofocus","","autocomplete","one-time-code","autocapitalize","none","inputmode","numeric","pattern","[0-9]*","tabindex","1",1,"form-control","custom-input",3,"placeholder"],[1,"fas","fa-exclamation-triangle","pink-text","fa-lg"],[1,"form-control","custom-input"],[1,"small","grey-text","fw-semibold"],[1,"small","grey-text",3,"innerHTML"]],template:function(o,e){o&1&&(r(0,"div",3)(1,"div",4),s(2,"img",5),r(3,"form",6),P("ngSubmit",function(){return e.onSubmit()}),r(4,"h4",7),f(5),d(6,"translate"),a(),c(7,te,12,10),c(8,ie,6,3,"div",8),c(9,ne,9,6,"div",9),c(10,oe,9,6,"div",9),r(11,"div",10)(12,"button",11),f(13),d(14,"translate"),a()()()()()),o&2&&(L("background",e.backgroundStyle()),h("anim",!e.backgroundStyle()),i(3),m("formGroup",e.form),i(2),b(l(6,12,"setup.welcome_to_homebridge")),i(2),g(e.twoFactorCodeRequired()?-1:7),i(),g(e.twoFactorCodeRequired()?8:-1),i(),g(e.invalidCredentials()?9:-1),i(),g(e.invalid2faCode()?10:-1),i(2),m("disabled",e.form.invalid),i(),V(" ",l(14,14,"form.button_continue")," "))},dependencies:[K,Q,z,H,A,W,J,X,j,U,B,$],styles:["body{overflow:scroll!important} body.dark-mode .login-card{background-color:#2b2b2b;color:#fff}.login-container[_ngcontent-%COMP%]{z-index:-1;padding-top:2em;padding-bottom:2em;min-height:100%;background-size:300% 300%}.anim[_ngcontent-%COMP%]{-webkit-animation:_ngcontent-%COMP%_gradient 20s ease infinite;-moz-animation:gradient 20s ease infinite;-o-animation:gradient 20s ease infinite;animation:_ngcontent-%COMP%_gradient 20s ease infinite}@keyframes _ngcontent-%COMP%_gradient{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}.login-card[_ngcontent-%COMP%]{max-width:550px;border-radius:1rem;padding-right:25px;padding-left:25px;background-color:#ffffffe6}.login-card[_ngcontent-%COMP%] .form-control[_ngcontent-%COMP%]:focus{background-color:inherit!important}@media screen and (max-width:575px){.login-card[_ngcontent-%COMP%]{margin-left:1em;margin-right:1em}}.homebridge-logo[_ngcontent-%COMP%]{margin-bottom:10px}"]})}return t})();export{we as LoginComponent};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as re}from"./chunk-
|
|
1
|
+
import{a as re}from"./chunk-74KAKFTX.js";import{b as K}from"./chunk-KTLG6VZT.js";import{C as ie,D as ne,c as A,d as S,e as J,f as Q,g as X,j as $,m as Y,r as Z,s as ee,z as te}from"./chunk-O6MJC7P2.js";import{b as D}from"./chunk-CAB2VD3D.js";import{C as R,E as N,F as q,H as G,J as E,K as j,q as H}from"./chunk-MW6H5Z5G.js";import{Ab as F,Ec as a,Fb as _,Fc as s,Gb as o,Hb as r,Ib as m,Rb as T,Ua as W,Xb as x,Za as n,Zb as u,aa as h,ga as w,ha as b,hc as P,ic as U,jc as I,kc as l,lc as g,mc as f,nb as V,xc as L,yb as O,zb as z,zc as B}from"./chunk-ZPXACREZ.js";import{h as y}from"./chunk-B4AJQJMI.js";var se=()=>["restoring","restarting","restore-complete"],M=(t,d)=>({"is-valid":t,"is-invalid":d});function le(t,d){if(t&1){let e=T();o(0,"div",5)(1,"h4",6),l(2),a(3,"translate"),r(),m(4,"div",7),a(5,"translate"),o(6,"button",8),x("click",function(){w(e);let i=u();return b(i.onClickGettingStarted())}),l(7),a(8,"translate"),r(),o(9,"a",9),x("click",function(){w(e);let i=u();return b(i.onClickRestoreBackup())}),l(10),a(11,"translate"),r()()}t&2&&(n(2),g(s(3,4,"setup.welcome_to_homebridge")),n(2),_("innerHTML",s(5,6,"setup.intro"),W),n(3),f(" ",s(8,8,"setup.button_get_started")," "),n(3),g(s(11,10,"setup_wizard_restore")))}function pe(t,d){if(t&1){let e=T();o(0,"div",5)(1,"h4",6),l(2),a(3,"translate"),r(),o(4,"div",10),l(5),a(6,"translate"),r(),o(7,"div",11)(8,"form",12),x("ngSubmit",function(){w(e);let i=u();return b(i.createFirstUser())}),o(9,"div",13)(10,"span",14),m(11,"i",15),r(),m(12,"input",16),a(13,"translate"),r(),o(14,"div",13)(15,"span",14),m(16,"i",17),r(),m(17,"input",18),a(18,"translate"),r(),o(19,"div",13)(20,"span",14),m(21,"i",17),r(),m(22,"input",19),a(23,"translate"),r(),o(24,"div",20)(25,"button",21),x("click",function(){w(e);let i=u();return b(i.onClickCancelRestore())}),l(26),a(27,"translate"),r(),o(28,"button",22),l(29),a(30,"translate"),r()()()()()}if(t&2){let e=u();n(2),g(s(3,19,"setup.create_account")),n(3),g(s(6,21,"setup_wizard_create_info")),n(3),_("formGroup",e.createUserForm),n(4),I(B(33,M,e.createUserForm.controls.username.dirty&&e.createUserForm.controls.username.valid,e.createUserForm.controls.username.dirty&&e.createUserForm.controls.username.invalid)),_("readonly",e.loading)("placeholder",s(13,23,"users.label_username")),n(5),I(B(36,M,e.createUserForm.controls.password.dirty&&e.createUserForm.controls.password.valid,e.createUserForm.controls.password.dirty&&e.createUserForm.controls.password.errors)),_("readonly",e.loading)("placeholder",s(18,25,"users.label_password")),n(5),I(B(39,M,e.createUserForm.controls.passwordConfirm.dirty&&e.createUserForm.controls.passwordConfirm.valid,e.createUserForm.controls.passwordConfirm.dirty&&e.createUserForm.controls.passwordConfirm.errors)),_("readonly",e.loading)("placeholder",s(23,27,"users.label_confirm_password")),n(3),_("disabled",e.restoreUploading),n(),f(" ",s(27,29,"form.button_back")," "),n(2),_("disabled",e.createUserForm.invalid||e.loading),n(),f(" ",s(30,31,"form.button_continue")," ")}}function de(t,d){t&1&&(m(0,"i",25),l(1),a(2,"translate")),t&2&&(n(),f(" ",s(2,1,"backup.label_uploading")," "))}function ce(t,d){t&1&&(l(0),a(1,"translate")),t&2&&f(" ",s(1,1,"form.button_continue")," ")}function me(t,d){if(t&1){let e=T();o(0,"div",5)(1,"h4",6),l(2),a(3,"translate"),r(),o(4,"div",10),l(5),a(6,"translate"),r(),o(7,"input",23),x("change",function(i){w(e);let k=u();return b(k.handleRestoreFileInput(i.target.files))}),r(),o(8,"div",20)(9,"button",21),x("click",function(){w(e);let i=u();return b(i.onClickCancelRestore())}),l(10),a(11,"translate"),r(),o(12,"button",24),x("click",function(){w(e);let i=u();return b(i.onRestoreBackupClick())}),z(13,de,3,3)(14,ce,2,3),r()()()}if(t&2){let e=u();n(2),g(s(3,6,"setup_wizard_restore")),n(3),g(s(6,8,"backup.restore_help_one")),n(4),_("disabled",e.restoreUploading),n(),f(" ",s(11,10,"form.button_back")," "),n(2),_("disabled",e.restoreUploading||!e.selectedFile),n(),F(e.restoreUploading?13:14)}}function ue(t,d){t&1&&(l(0),a(1,"translate")),t&2&&f(" ",s(1,1,"setup_wizard_restoring")," ")}function ge(t,d){t&1&&(l(0),a(1,"translate")),t&2&&f(" ",s(1,1,"setup_wizard_starting")," ")}function _e(t,d){t&1&&(l(0),a(1,"translate")),t&2&&f(" ",s(1,1,"setup_wizard_complete")," ")}function fe(t,d){t&1&&(o(0,"a",27),l(1),a(2,"translate"),r()),t&2&&(n(),g(s(2,1,"form.button_continue")))}function he(t,d){if(t&1&&(o(0,"div",5)(1,"h4",6),z(2,ue,2,3)(3,ge,2,3)(4,_e,2,3),r(),m(5,"div",26),z(6,fe,3,3,"a",27),r()),t&2){let e=u();n(2),F(e.step==="restoring"?2:e.step==="restarting"?3:e.step==="restore-complete"?4:-1),n(4),F(e.step==="restore-complete"?6:-1)}}function we(t,d){t&1&&(o(0,"div",5)(1,"h4",28),l(2),a(3,"translate"),r(),o(4,"div",10),l(5),a(6,"translate"),r(),o(7,"a",29),l(8),a(9,"translate"),r()()),t&2&&(n(2),g(s(3,3,"setup_wizard_complete_title")),n(3),g(s(6,5,"setup_wizard_completed")),n(3),g(s(9,7,"form.button_continue")))}var Ue=(()=>{class t{$api=h(j);$auth=h(K);$settings=h(D);$title=h(R);$toastr=h(G);$translate=h(N);$ws=h(re);io;step="welcome";backgroundStyle;progress=1;restoreInProgress=!1;restoreStarted=!1;restoreFailed=!1;loading=!1;selectedFile;restoreUploading=!1;createUserForm=new X({username:new $("",[S.required]),password:new $("",[S.compose([S.required,S.minLength(4)])]),passwordConfirm:new $("",[S.required])},this.matchPassword);ngOnInit(){return y(this,null,function*(){this.$title.setTitle(this.$translate.instant("setup_wizard_page_title")),yield this.setBackground()})}onClickGettingStarted(){this.step="create-account",this.progress=50}onClickRestoreBackup(){this.step="restore-backup",this.progress=20}onClickCancelRestore(){this.selectedFile=null,this.step="welcome",this.progress=1}createFirstUser(){return y(this,null,function*(){this.loading=!0,this.progress=75;let e=this.createUserForm.getRawValue();e.name=e.username;try{yield this.$api.post("/setup-wizard/create-first-user",e),this.$settings.env.setupWizardComplete=!0,this.progress=100,this.loading=!1,yield this.$auth.login({username:e.username,password:e.password}),this.step="setup-complete"}catch(p){this.loading=!1,this.progress=50,console.error(p),this.$toastr.error(p.message,this.$translate.instant("toast.title_error"))}})}handleRestoreFileInput(e){e.length?(this.selectedFile=e[0],this.progress=40):(delete this.selectedFile,this.progress=20)}onRestoreBackupClick(){return y(this,null,function*(){this.restoreUploading=!0,this.step="restoring",this.progress=60;try{let e=yield this.$api.get("/setup-wizard/get-setup-wizard-token");window.localStorage.setItem(E.jwt.tokenKey,e.access_token),this.$auth.token=e.access_token,this.progress=65;let p=new FormData;p.append("restoreArchive",this.selectedFile,this.selectedFile.name),yield this.$api.post("/backup/restore",p),this.progress=70,this.io=this.$ws.connectToNamespace("backup");let i=document.getElementById("output");this.io.socket.on("stdout",c=>{c.split(`
|
|
2
2
|
\r`).forEach(C=>{if(C&&!/^[⠇⠏⠋⠙⠹⠸]+$/.test(C)){let v=document.createElement("div"),ae=/\x1B\[(\d{1,2}(;\d{1,2})?)?[mGK]/g;v.innerHTML=C.replace(ae,""),C.includes("[0;31m")?v.classList.add("red-text"):C.includes("[0;32m")?v.classList.add("green-text"):C.includes("[0;33m")?v.classList.add("orange-text"):C.includes("[0;36m")&&v.classList.add("cyan-text"),i.appendChild(v),i.scrollTop=i.scrollHeight}})}),this.restoreStarted=!0,this.restoreInProgress=!0,this.progress=75,yield this.io.request("do-restore").toPromise(),this.progress=80,this.restoreInProgress=!1,yield this.$api.put("/backup/restart",{}),this.step="restarting",this.progress=85,window.localStorage.removeItem(E.jwt.tokenKey),this.$auth.token=null;let k=document.createElement("div");k.classList.add("orange-text"),k.innerHTML="Starting Homebridge, please wait...",i.appendChild(k),i.scrollTop=i.scrollHeight,yield new Promise(c=>setTimeout(c,3e3)),this.progress=88,yield new Promise(c=>setTimeout(c,3e3)),this.progress=91,yield new Promise(c=>setTimeout(c,3e3)),this.progress=94,yield new Promise(c=>setTimeout(c,3e3)),this.progress=97,yield new Promise(c=>setTimeout(c,3e3)),this.progress=99;let oe=setInterval(()=>y(this,null,function*(){try{yield this.$api.get("/auth/settings"),clearInterval(oe),this.progress=100,this.restoreUploading=!1,this.step="restore-complete"}catch{}}),1e3)}catch(e){console.error(e),this.restoreUploading=!1,this.restoreFailed=!0,this.progress=20,this.step="restore-backup",this.$toastr.error(e.message,this.$translate.instant("toast.title_error"))}finally{this.io&&this.io.end()}})}setBackground(){return y(this,null,function*(){if(this.$settings.settingsLoaded||(yield this.$settings.onSettingsLoaded.toPromise()),this.$settings.env.customWallpaperHash){let e=`${E.api.base}/auth/wallpaper/${this.$settings.env.customWallpaperHash}`;this.backgroundStyle=`url('${e}') center/cover`}})}matchPassword(e){let p=e.get("password").value,i=e.get("passwordConfirm").value;if(p!==i)e.get("passwordConfirm").setErrors({matchPassword:!0});else return null}static \u0275fac=function(p){return new(p||t)};static \u0275cmp=V({type:t,selectors:[["ng-component"]],decls:10,vars:11,consts:[[1,"setup-container","gradient","d-flex","align-items-start","justify-content-center"],[1,"w-100","setup-card","d-flex","py-4","flex-column"],["ngSrc","assets/homebridge-color-round.svg","alt","Homebridge Logo","height","100","width","100","priority","true",1,"homebridge-logo","mx-auto","my-3"],[1,"progress","w-100","my-4"],["role","progressbar","aria-valuemin","0","aria-valuemax","100",1,"progress-bar","progress-bar-striped","bg-success"],[1,"w-100","d-flex","flex-column","align-items-center","mb-2"],[1,"mb-3","text-center"],[1,"mb-4","small","grey-text","text-center",3,"innerHTML"],["type","button",1,"btn","btn-lg","btn-primary","mb-4",3,"click"],["href","javascript:void(0)",1,"grey-text",3,"click"],[1,"mb-4","small","grey-text","text-center"],[1,"w-100"],["novalidate","",3,"ngSubmit","formGroup"],[1,"input-group","mb-4"],[1,"input-group-text","custom-input"],[1,"fas","fa-user","primary-text","fa-lg"],["formControlName","username","type","text","id","form-username","autocomplete","username","autocapitalize","none","tabindex","1","required","",1,"form-control","custom-input",3,"readonly","placeholder"],[1,"fas","fa-lock","primary-text","fa-lg"],["formControlName","password","type","password","id","form-pass","autocomplete","new-password","tabindex","2","required","",1,"form-control","custom-input",3,"readonly","placeholder"],["formControlName","passwordConfirm","type","password","id","form-pass-confirm","autocomplete","new-password","tabindex","2","required","",1,"form-control","custom-input",3,"readonly","placeholder"],[1,"mt-3","w-100","d-flex","justify-content-between"],["type","button",1,"btn","btn-elegant","ms-0",3,"click","disabled"],["type","submit",1,"btn","btn-primary",3,"disabled"],["type","file","id","restoreFileUpload","accept","application/gzip, .gz",1,"form-control","custom-input","mb-3",3,"change"],["type","button",1,"btn","btn-primary","me-0",3,"click","disabled"],[1,"fas","fa-spinner","fa-pulse"],["id","output",1,"font-monospace","small","alert","alert-info","w-100","text-start","mt-1","mb-0"],["href","/login",1,"btn","btn-lg","btn-primary","mt-4"],[1,"mb-3"],["href","/",1,"btn","btn-lg","btn-primary"]],template:function(p,i){p&1&&(o(0,"div",0)(1,"div",1),m(2,"img",2),o(3,"div",3),m(4,"div",4),r(),z(5,le,12,12,"div",5)(6,pe,31,42,"div",5)(7,me,15,12,"div",5)(8,he,7,2,"div",5)(9,we,10,9,"div",5),r()()),p&2&&(P("background",i.backgroundStyle),U("anim",!i.backgroundStyle),n(4),P("width",i.progress+"%"),U("progress-bar-animated",i.loading||i.restoreUploading),O("aria-valuenow",i.progress),n(),F(i.step==="welcome"?5:i.step==="create-account"?6:i.step==="restore-backup"?7:L(10,se).includes(i.step)?8:i.step==="setup-complete"?9:-1))},dependencies:[H,ie,Y,A,J,Q,te,ne,ee,Z,q],styles:["body{overflow:scroll!important} body.dark-mode .setup-card{background-color:#2b2b2b;color:#fff}.setup-container[_ngcontent-%COMP%]{z-index:-1;padding-top:2em;padding-bottom:2em;min-height:100%;background-size:300% 300%}.anim[_ngcontent-%COMP%]{-webkit-animation:_ngcontent-%COMP%_gradient 20s ease infinite;-moz-animation:gradient 20s ease infinite;-o-animation:gradient 20s ease infinite;animation:_ngcontent-%COMP%_gradient 20s ease infinite}@keyframes _ngcontent-%COMP%_gradient{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}.setup-card[_ngcontent-%COMP%]{max-width:550px;border-radius:1rem;padding-right:25px;padding-left:25px;background-color:#ffffffe6}.setup-card[_ngcontent-%COMP%] .form-control[_ngcontent-%COMP%]:focus{background-color:inherit!important}@media screen and (max-width:575px){.setup-card[_ngcontent-%COMP%]{margin-left:1em;margin-right:1em}}.homebridge-logo[_ngcontent-%COMP%]{margin-bottom:10px}.progress[_ngcontent-%COMP%]{background-color:#ddd}#output[_ngcontent-%COMP%]{height:200px;overflow-y:scroll;white-space:pre-wrap}"]})}return t})();export{Ue as SetupWizardComponent};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as w}from"./chunk-
|
|
1
|
+
import{a as w}from"./chunk-74KAKFTX.js";import{e as E}from"./chunk-ZAKTSIL5.js";import{a as h}from"./chunk-JLNKCN3A.js";import"./chunk-KTLG6VZT.js";import{b as C}from"./chunk-CAB2VD3D.js";import{E as b,F as S,H as $,K as k}from"./chunk-MW6H5Z5G.js";import{Ab as u,Ec as m,Fc as p,Jb as o,Kb as i,Lb as f,Za as r,Zb as y,aa as n,kc as s,lc as a,ma as g,nb as _,w as c,zb as d}from"./chunk-ZPXACREZ.js";import"./chunk-B4AJQJMI.js";function T(t,x){if(t&1&&(o(0,"div",7),s(1),i()),t&2){let e=y();r(),a(e.error)}}function R(t,x){t&1&&(o(0,"p",9),s(1),m(2,"translate"),i(),o(3,"div",10)(4,"div",11),f(5,"i",12),i()()),t&2&&(r(),a(p(2,1,"restart.please_wait_while_server_restarts")))}function D(t,x){t&1&&(o(0,"div",8),s(1),m(2,"translate"),i()),t&2&&(r(),a(p(2,1,"platform.linux.long_time")))}var N=(()=>{class t{$api=n(k);$router=n(E);$settings=n(C);$toastr=n($);$translate=n(b);$ws=n(w);destroyRef=n(g);checkTimeoutSubscription=null;checkDelaySubscription=null;io;resp={};timeout=!1;error=!1;ngOnInit(){this.io=this.$ws.connectToNamespace("status"),this.io.connected.subscribe(()=>{this.io.socket.emit("monitor-server-status"),this.$settings.getAppSettings().catch(()=>{})}),this.$api.put("/platform-tools/linux/restart-host",{}).then(e=>{this.resp=e,this.checkIfServerUp()}).catch(e=>{console.error(e),this.error=this.$translate.instant("platform.linux.server_restart_error"),this.$toastr.error(this.$translate.instant("platform.linux.server_restart_error"),this.$translate.instant("toast.title_error"))})}ngOnDestroy(){this.io.end(),this.checkDelaySubscription&&this.checkDelaySubscription.unsubscribe(),this.checkTimeoutSubscription&&this.checkTimeoutSubscription.unsubscribe()}checkIfServerUp(){this.checkDelaySubscription=c(3e4).pipe(h(this.destroyRef)).subscribe(()=>{this.io.socket.on("homebridge-status",e=>{(e.status==="ok"||e.status==="pending")&&(this.$toastr.success(this.$translate.instant("platform.linux.server_restarted"),this.$translate.instant("toast.title_success")),this.$router.navigate(["/"]))})}),this.checkTimeoutSubscription=c(12e4).pipe(h(this.destroyRef)).subscribe(()=>{this.$toastr.warning(this.$translate.instant("platform.linux.server_taking_long_time"),this.$translate.instant("toast.title_warning"),{timeOut:1e4}),this.timeout=!0})}static \u0275fac=function(l){return new(l||t)};static \u0275cmp=_({type:t,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,"fas","fa-spinner","fa-spin"]],template:function(l,v){l&1&&(o(0,"div",0)(1,"h3",1),s(2),m(3,"translate"),i()(),o(4,"div",2)(5,"div",3),f(6,"i",4),i(),o(7,"div",5)(8,"h4",6),s(9),m(10,"translate"),i(),d(11,T,2,1,"div",7)(12,R,6,3),d(13,D,3,3,"div",8),i()()),l&2&&(r(2),a(p(3,4,"menu.restart.title")),r(7),a(p(10,6,"platform.linux.restarting_server")),r(2),u(v.error?11:12),r(2),u(v.timeout?13:-1))},dependencies:[S],styles:[".restart-progress-box[_ngcontent-%COMP%]{font-size:22px;font-weight:300;margin-top:15px}"]})}return t})();export{N as RestartLinuxComponent};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as V}from"./chunk-
|
|
1
|
+
import{a as V}from"./chunk-3ND4FTJL.js";import{n as P,t as O}from"./chunk-GAI5J4YQ.js";import{e as T}from"./chunk-ZAKTSIL5.js";import"./chunk-JLNKCN3A.js";import"./chunk-O6MJC7P2.js";import{b as R}from"./chunk-CAB2VD3D.js";import{E as S,F as k,H as y,K as I}from"./chunk-MW6H5Z5G.js";import{Ab as h,Ec as a,Fb as x,Fc as s,Gb as r,Hb as o,Ib as C,Rb as v,Xb as m,Za as i,Zb as g,aa as c,ga as u,ha as _,kc as p,lc as $,mc as d,nb as w,zb as f}from"./chunk-ZPXACREZ.js";import"./chunk-B4AJQJMI.js";function E(e,b){if(e&1){let t=v();r(0,"p",5)(1,"button",6),m("click",function(){u(t);let n=g();return _(n.restartServer())}),p(2),a(3,"translate"),o()()}e&2&&(i(2),d(" ",s(3,1,"menu.linux.label_restart_server")," "))}function H(e,b){if(e&1){let t=v();r(0,"p",5)(1,"button",6),m("click",function(){u(t);let n=g();return _(n.shutdownServer())}),p(2),a(3,"translate"),o()()}e&2&&(i(2),d(" ",s(3,1,"menu.linux.label_shutdown_server")," "))}function D(e,b){if(e&1){let t=v();r(0,"p",5)(1,"button",6),m("click",function(){u(t);let n=g();return _(n.dockerRestartContainer())}),p(2),a(3,"translate"),o()()}e&2&&(i(2),d(" ",s(3,1,"menu.docker.restart_container")," "))}var K=(()=>{class e{$api=c(I);$modal=c(P);$router=c(T);$settings=c(R);$toastr=c(y);$translate=c(S);canShutdownRestartHost=this.$settings.env.canShutdownRestartHost;runningInDocker=this.$settings.env.runningInDocker;ngOnInit(){let t=this.$translate.instant("menu.restart.title");this.$settings.setPageTitle(t)}closeRestartToast(){this.$settings.restartToastRef&&(this.$toastr.clear(this.$settings.restartToastRef.toastId),this.$settings.restartToastRef=null)}restartHomebridge(){this.closeRestartToast(),this.$router.navigate(["/restart"])}restartHomebridgeService(){this.closeRestartToast(),this.$api.put("/platform-tools/hb-service/set-full-service-restart-flag",{}).then(()=>{this.$router.navigate(["/restart"])}).catch(t=>{console.error(t),this.$toastr.error(t.message,this.$translate.instant("toast.title_error"))})}restartServer(){this.closeRestartToast(),this.$router.navigate(["/platform-tools/linux/restart-server"])}shutdownServer(){this.closeRestartToast();let t=this.$modal.open(V,{size:"lg",backdrop:"static"});t.componentInstance.title=this.$translate.instant("menu.linux.label_shutdown_server"),t.componentInstance.message=this.$translate.instant("menu.linux.label_shutdown_modal"),t.componentInstance.confirmButtonLabel=this.$translate.instant("form.button_continue"),t.componentInstance.faIconClass="fa fa-power-off primary-text",t.result.then(()=>{this.$router.navigate(["/platform-tools/linux/shutdown-server"])}).catch(()=>{})}dockerRestartContainer(){this.closeRestartToast(),this.$router.navigate(["/platform-tools/docker/restart-container"])}static \u0275fac=function(l){return new(l||e)};static \u0275cmp=w({type:e,selectors:[["ng-component"]],decls:19,vars:16,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,"w-100","text-center","my-5"],["type","button",1,"btn","btn-primary","p-3","my-0",2,"width","85%",3,"click"],["type","button","container","body","triggers","hover",1,"btn","btn-primary","p-3","my-0",2,"width","85%",3,"click","openDelay","ngbTooltip"]],template:function(l,n){l&1&&(r(0,"div",0)(1,"h3",1),p(2),a(3,"translate"),o()(),r(4,"div",2)(5,"div",3),C(6,"i",4),o(),r(7,"p",5)(8,"button",6),m("click",function(){return n.restartHomebridge()}),p(9),a(10,"translate"),o()(),r(11,"p",5)(12,"button",7),a(13,"translate"),m("click",function(){return n.restartHomebridgeService()}),p(14),a(15,"translate"),o()(),f(16,E,4,3,"p",5),f(17,H,4,3,"p",5),f(18,D,4,3,"p",5),o()),l&2&&(i(2),$(s(3,8,"menu.restart.title")),i(7),d(" ",s(10,10,"menu.hbrestart.confirm_hb")," "),i(3),x("openDelay",150)("ngbTooltip",s(13,12,"reset.force_restart_hb_help_text")),i(2),d(" ",s(15,14,"menu.hbrestart.confirm_ui")," "),i(2),h(n.canShutdownRestartHost?16:-1),i(),h(n.canShutdownRestartHost?17:-1),i(),h(n.runningInDocker?18:-1))},dependencies:[O,k],encapsulation:2})}return e})();export{K as PowerOptionsComponent};
|