homebridge-config-ui-x 5.0.0-beta.5 → 5.0.0-beta.6
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/dist/bin/fork.js +17 -7
- package/dist/bin/fork.js.map +1 -1
- package/dist/bin/hb-service.js +17 -7
- package/dist/bin/hb-service.js.map +1 -1
- package/dist/bin/standalone.js +17 -7
- package/dist/bin/standalone.js.map +1 -1
- package/dist/index.js +17 -7
- package/dist/index.js.map +1 -1
- package/dist/modules/config-editor/config-editor.controller.d.ts +1 -1
- package/dist/modules/config-editor/config-editor.service.d.ts +1 -1
- package/package.json +2 -2
- package/public/{chunk-6I6PSM5Y.js → chunk-2J6XFH3T.js} +1 -1
- package/public/{chunk-MP3LZHQU.js → chunk-2KNNQ3N3.js} +1 -1
- package/public/{chunk-UFDZ4SFB.js → chunk-3FKHRKWG.js} +1 -1
- package/public/{chunk-D6RX5SPU.js → chunk-3KDOQQBM.js} +1 -1
- package/public/{chunk-M3N7PSSC.js → chunk-3YHN3VHA.js} +1 -1
- package/public/{chunk-RN75UMGP.js → chunk-4AVEC3ZU.js} +1 -1
- package/public/{chunk-SJHJKPSQ.js → chunk-4IKE4OKZ.js} +1 -1
- package/public/{chunk-4WTXJHZA.js → chunk-5BHGCTWL.js} +1 -1
- package/public/{chunk-LBTLF3MZ.js → chunk-62ADZGBJ.js} +1 -1
- package/public/{chunk-XNCOF5TV.js → chunk-6GHV2TKM.js} +1 -1
- package/public/{chunk-BNVAYTYZ.js → chunk-6SC3OCKT.js} +1 -1
- package/public/chunk-BCHM64F4.js +1 -0
- package/public/chunk-C2ERQ3FX.js +1 -0
- package/public/{chunk-OZ6IXX3E.js → chunk-C6NH5RUO.js} +1 -1
- package/public/{chunk-72QXF2GF.js → chunk-CUPS2NE5.js} +1 -1
- package/public/{chunk-XEVIOBJR.js → chunk-D6EUS4KM.js} +1 -1
- package/public/chunk-DNZYDCPW.js +1 -0
- package/public/{chunk-W4MTVPF3.js → chunk-E3OHYYGW.js} +1 -1
- package/public/{chunk-7JR63ERC.js → chunk-EMKXES77.js} +1 -1
- package/public/chunk-G7AVJCRN.js +1 -0
- package/public/{chunk-KJHDP3ZC.js → chunk-HYBTNEG3.js} +1 -1
- package/public/{chunk-UC2NMLJ6.js → chunk-J34SI644.js} +1 -1
- package/public/{chunk-3YKYXC2T.js → chunk-JD7YSN6P.js} +1 -1
- package/public/{chunk-F3EORWUJ.js → chunk-JL3HH376.js} +1 -1
- package/public/{chunk-CNJMINEX.js → chunk-JN46TW24.js} +1 -1
- package/public/chunk-JPWCYJWM.js +1 -0
- package/public/{chunk-KPVA6CSL.js → chunk-JQVXXNK7.js} +1 -1
- package/public/{chunk-7K5J3AOO.js → chunk-JW6PX64L.js} +1 -1
- package/public/{chunk-G4CGNDAD.js → chunk-JXEJU7V3.js} +1 -1
- package/public/chunk-K53Q52AX.js +1 -0
- package/public/{chunk-SIQ2FHQL.js → chunk-KD3Z24TB.js} +1 -1
- package/public/chunk-KPCZLNW7.js +1 -0
- package/public/{chunk-7DTAFWJ7.js → chunk-KUOCPYMN.js} +1 -1
- package/public/chunk-KXMGIDLQ.js +1 -0
- package/public/chunk-KZLHFU5K.js +1 -0
- package/public/{chunk-ZJ4LBIOD.js → chunk-LJHUPCL3.js} +1 -1
- package/public/{chunk-BVDMEFSJ.js → chunk-MTMEA6JC.js} +1 -1
- package/public/{chunk-A7YWFX6I.js → chunk-N5BZ3IQD.js} +1 -1
- package/public/{chunk-LQ6YDB4A.js → chunk-N5UE2QRB.js} +1 -1
- package/public/{chunk-G4TRVUCL.js → chunk-NGAJQJ5T.js} +1 -1
- package/public/{chunk-ZHMC7KSZ.js → chunk-NNATGODS.js} +1 -1
- package/public/{chunk-5S4H26Y6.js → chunk-NWD4LL6Q.js} +1 -1
- package/public/chunk-OSDZN4BY.js +1 -0
- package/public/{chunk-WJNSNBGE.js → chunk-PREJ7FYU.js} +1 -1
- package/public/{chunk-GETFKFI6.js → chunk-QXT6R24L.js} +1 -1
- package/public/{chunk-BIDQZJXT.js → chunk-RBHJOIVB.js} +1 -1
- package/public/{chunk-ZYZBMA5E.js → chunk-RRHDXAZE.js} +1 -1
- package/public/{chunk-Z7AUXG5E.js → chunk-T7MCUROV.js} +1 -1
- package/public/chunk-TTENUNEO.js +1 -0
- package/public/chunk-UEX6RTZJ.js +1 -0
- package/public/{chunk-74VT5JYS.js → chunk-UG6ZOHXY.js} +1 -1
- package/public/{chunk-5XU3C2P2.js → chunk-UN5422JY.js} +1 -1
- package/public/{chunk-JBM7KQHD.js → chunk-VAJZ7KCO.js} +1 -1
- package/public/{chunk-S3XAJEVU.js → chunk-VBCYNIMT.js} +1 -1
- package/public/{chunk-J26JMISE.js → chunk-WJFAG3CM.js} +1 -1
- package/public/{chunk-QOKEWT7C.js → chunk-YN5SJ37A.js} +1 -1
- package/public/{chunk-XXJO3JY3.js → chunk-YR3ETJZY.js} +1 -1
- package/public/{chunk-4DLA2ICF.js → chunk-YRD5IXFM.js} +1 -1
- package/public/chunk-Z4A7KLCA.js +1 -0
- package/public/index.html +1 -1
- package/public/{main-TQOXBTSD.js → main-LYJIIXIC.js} +1 -1
- package/public/chunk-5HCG4CER.js +0 -1
- package/public/chunk-BVK7NCGF.js +0 -1
- package/public/chunk-DNLDZVVB.js +0 -1
- package/public/chunk-I544XQGS.js +0 -1
- package/public/chunk-J3XWQZ5N.js +0 -1
- package/public/chunk-MSXXP7RE.js +0 -1
- package/public/chunk-RD4QIA6H.js +0 -1
- package/public/chunk-TWQP6XJT.js +0 -1
- package/public/chunk-UCB7UE24.js +0 -1
- package/public/chunk-WRDG5DTE.js +0 -1
- package/public/chunk-XDGJOFX2.js +0 -1
- package/public/chunk-YJ7ICNKX.js +0 -1
- package/public/chunk-ZBNZILWV.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./chunk-
|
|
1
|
+
import"./chunk-JW6PX64L.js";import"./chunk-PREJ7FYU.js";import"./chunk-QXT6R24L.js";import{g as n}from"./chunk-NZNNTHFQ.js";import"./chunk-4IKE4OKZ.js";import"./chunk-J34SI644.js";import"./chunk-3YHN3VHA.js";import"./chunk-UG5DK2RQ.js";import{c as m}from"./chunk-3IX3CLER.js";import{ia as t,md as i,sb as r}from"./chunk-TXOB7R5K.js";var d=[{path:"",redirectTo:"/",pathMatch:"full"},{path:"restart-server",loadComponent:()=>import("./chunk-UEX6RTZJ.js").then(o=>o.RestartLinuxComponent)},{path:"shutdown-server",loadComponent:()=>import("./chunk-UN5422JY.js").then(o=>o.ShutdownLinuxComponent)}],u=(()=>{class o{static \u0275fac=function(e){return new(e||o)};static \u0275mod=r({type:o});static \u0275inj=t({imports:[n.forChild(d),n]})}return o})();var g=(()=>{class o{static \u0275fac=function(e){return new(e||o)};static \u0275mod=r({type:o});static \u0275inj=t({imports:[i,m.forChild(),u]})}return o})();export{g as LinuxModule};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a}from"./chunk-
|
|
1
|
+
import{a}from"./chunk-PREJ7FYU.js";import"./chunk-3YHN3VHA.js";import"./chunk-UG5DK2RQ.js";import"./chunk-3IX3CLER.js";import"./chunk-TXOB7R5K.js";export{a as ShutdownLinuxComponent};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as f}from"./chunk-
|
|
1
|
+
import{a as f}from"./chunk-E3OHYYGW.js";import{a as s}from"./chunk-T7MCUROV.js";import"./chunk-ZT23DWNL.js";import"./chunk-6TCHCTXZ.js";import"./chunk-LJHUPCL3.js";import"./chunk-EMKXES77.js";import"./chunk-7EUQWCP5.js";import"./chunk-WNWWUCCZ.js";import"./chunk-6SC3OCKT.js";import"./chunk-CCUID66K.js";import"./chunk-QE7DO6J3.js";import"./chunk-BKUGARB4.js";import"./chunk-BPMSJ2VF.js";import"./chunk-WHJOLAED.js";import"./chunk-JZZQRLNW.js";import"./chunk-KQJ7ONUG.js";import{q as p}from"./chunk-ORPWYWCL.js";import{y as u,z as l}from"./chunk-QHPDGSZ6.js";import"./chunk-QXT6R24L.js";import{g as e}from"./chunk-NZNNTHFQ.js";import"./chunk-4IKE4OKZ.js";import"./chunk-J34SI644.js";import"./chunk-3YHN3VHA.js";import"./chunk-UG5DK2RQ.js";import{c as m}from"./chunk-3IX3CLER.js";import{ia as t,md as n,sb as r}from"./chunk-TXOB7R5K.js";var g=[{path:"",loadComponent:()=>import("./chunk-KZLHFU5K.js").then(o=>o.PluginsComponent)}],d=(()=>{class o{static \u0275fac=function(i){return new(i||o)};static \u0275mod=r({type:o});static \u0275inj=t({imports:[e.forChild(g),e]})}return o})();var v=(()=>{class o{static \u0275fac=function(i){return new(i||o)};static \u0275mod=r({type:o});static \u0275inj=t({imports:[n,u,l,m.forChild(),p,f,d,s]})}return o})();export{v as PluginsModule};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as C,b as y,c as $,d as j}from"./chunk-
|
|
1
|
+
import{a as C,b as y,c as $,d as j}from"./chunk-D6EUS4KM.js";import"./chunk-QE7DO6J3.js";import{q as h}from"./chunk-ORPWYWCL.js";import{y as g,z as v}from"./chunk-QHPDGSZ6.js";import{d as U,g as n}from"./chunk-NZNNTHFQ.js";import"./chunk-4IKE4OKZ.js";import"./chunk-J34SI644.js";import{b as c,j as M}from"./chunk-3YHN3VHA.js";import"./chunk-UG5DK2RQ.js";import{a as u,c as d}from"./chunk-3IX3CLER.js";import{h as a,ha as f,ia as i,md as l,na as e,sb as s,w as p}from"./chunk-TXOB7R5K.js";var m=(()=>{class r{$api=e(c);$router=e(U);$toastr=e(M);$translate=e(u);resolve(){return a(this,null,function*(){try{return yield p(this.$api.get("/users"))}catch(o){console.error(o),this.$toastr.error(o.message,this.$translate.instant("toast.title_error")),this.$router.navigate(["/"])}})}static \u0275fac=function(t){return new(t||r)};static \u0275prov=f({token:r,factory:r.\u0275fac})}return r})();var F=[{path:"",loadComponent:()=>import("./chunk-DNZYDCPW.js").then(r=>r.UsersComponent),resolve:{homebridgeUsers:m}}],b=(()=>{class r{static \u0275fac=function(t){return new(t||r)};static \u0275mod=s({type:r});static \u0275inj=i({imports:[n.forChild(F),n]})}return r})();var Y=(()=>{class r{static \u0275fac=function(t){return new(t||r)};static \u0275mod=s({type:r});static \u0275inj=i({providers:[m],imports:[l,g,v,d.forChild(),h,b,$,j,y,C]})}return r})();export{Y as UsersModule};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as ee}from"./chunk-EA5J2VEJ.js";import{a as Q,b as ne}from"./chunk-7JR63ERC.js";import{a as X,b as Z}from"./chunk-7EUQWCP5.js";import{a as G}from"./chunk-JZZQRLNW.js";import{m as U,n as W,o as Y}from"./chunk-ORPWYWCL.js";import{c as q,e as z,l as J,y as K}from"./chunk-QHPDGSZ6.js";import{b as F}from"./chunk-NZNNTHFQ.js";import{b as N}from"./chunk-UC2NMLJ6.js";import{b as k,j as V}from"./chunk-M3N7PSSC.js";import{a as T,b as M}from"./chunk-3IX3CLER.js";import{$b as C,Bc as l,Cc as c,Dc as O,Kb as w,Lb as y,Mb as v,Rb as g,Tb as I,Ub as H,Vb as j,Wb as r,Xb as a,Yb as _,cc as h,dc as d,g as oe,h as S,ib as n,kd as L,na as m,nc as b,oc as x,pb as D,pc as $,rb as E,sc as P,tc as R,uc as B,w as A,xa as p,ya as f}from"./chunk-TXOB7R5K.js";function ae(o,u){o&1&&(r(0,"div",6),_(1,"i",14),a())}function se(o,u){if(o&1){let e=C();r(0,"tr")(1,"td",15),b(2),l(3,"date"),a(),r(4,"td",16)(5,"a",17),h("click",function(){let t=p(e).$implicit,s=d(2);return f(s.restore(t.id))}),b(6),l(7,"translate"),_(8,"i",18),a()()()}if(o&2){let e=u.$implicit;n(2),x(O(3,2,e.timestamp,"medium")),n(4),$(" ",c(7,5,"config.restore.copy_to_editor")," ")}}function le(o,u){if(o&1&&(r(0,"table",7)(1,"tbody"),H(2,se,9,7,"tr",null,I),a()()),o&2){let e=d();n(2),j(e.backupList)}}function de(o,u){o&1&&(r(0,"div")(1,"h3",11),b(2),l(3,"translate"),a()()),o&2&&(n(2),x(c(3,1,"config.restore.no_backups")))}function ce(o,u){if(o&1){let e=C();r(0,"button",19),l(1,"translate"),h("click",function(){p(e);let t=d();return f(t.deleteAllBackups())}),b(2),l(3,"translate"),a()}o&2&&(y("aria-label",c(1,2,"form.button_remove")),n(2),$(" ",c(3,4,"form.button_remove")," "))}var te=(()=>{class o{$activeModal=m(U);$api=m(k);$toastr=m(V);$translate=m(T);loading=!0;backupList=[];ngOnInit(){this.$api.get("/config-editor/backups").subscribe({next:e=>{this.loading=!1,this.backupList=e},error:e=>{this.loading=!1,console.error(e),this.$toastr.error(e.error.message||e.message,this.$translate.instant("toast.title_error"))}})}restore(e){return this.$activeModal.close(e)}deleteAllBackups(){return this.$api.delete("/config-editor/backups").subscribe({next:()=>{this.$activeModal.dismiss(),this.$toastr.success(this.$translate.instant("config.restore.toast_backups_deleted"),this.$translate.instant("toast.title_success"))},error:e=>{console.error(e),this.$toastr.error(e.error.message||e.message,this.$translate.instant("toast.title_error"))}})}static \u0275fac=function(i){return new(i||o)};static \u0275cmp=E({type:o,selectors:[["ng-component"]],decls:22,vars:16,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-dismiss","modal",1,"close",3,"click"],["aria-hidden","true"],[1,"modal-body"],[1,"text-center","primary-text"],[1,"table","table-borderless","table-hover","table-sm"],[1,"modal-footer","justify-content-between"],[1,"text-left"],["type","button","data-dismiss","modal",1,"btn","btn-elegant",3,"click"],[1,"text-center"],[1,"text-right"],["type","button",1,"btn","btn-danger","mr-auto"],[1,"fa","fa-fw","fa-cog","fa-spin",2,"font-size","75px"],[1,"w-100"],["nowrap",""],[1,"card-link",3,"click"],[1,"fas","fa-fw","fa-arrow-right"],["type","button",1,"btn","btn-danger","mr-auto",3,"click"]],template:function(i,t){i&1&&(r(0,"div",0)(1,"div",1)(2,"h5",2),b(3),l(4,"translate"),a(),r(5,"button",3),l(6,"translate"),h("click",function(){return t.$activeModal.dismiss("Dismiss")}),r(7,"span",4),b(8,"\xD7"),a()()(),r(9,"div",5),w(10,ae,2,0,"div",6)(11,le,4,0,"table",7)(12,de,4,3,"div"),a(),r(13,"div",8)(14,"div",9)(15,"button",10),l(16,"translate"),h("click",function(){return t.$activeModal.dismiss("Dismiss")}),b(17),l(18,"translate"),a()(),_(19,"div",11),r(20,"div",12),w(21,ce,4,6,"button",13),a()()()),i&2&&(n(3),x(c(4,8,"config.restore.title_restore_homebridge_backup")),n(2),y("aria-label",c(6,10,"form.button_close")),n(5),g(t.loading?10:-1),n(),g(!t.loading&&t.backupList&&t.backupList.length?11:-1),n(),g(!t.loading&&(!t.backupList||!t.backupList.length)?12:-1),n(3),y("aria-label",c(16,12,"form.button_close")),n(2),$(" ",c(18,14,"form.button_close")," "),n(4),g(!t.loading&&t.backupList.length?21:-1))},dependencies:[L,M],encapsulation:2})}return o})();var ie=oe(ne(),1);function me(o,u){if(o&1){let e=C();r(0,"button",13),l(1,"translate"),l(2,"translate"),h("click",function(){p(e);let t=d();return f(t.onExportConfig())}),_(3,"i",14),a()}o&2&&(v("ngbTooltip",c(1,2,"form.button_download")),y("aria-label",c(2,4,"form.button_download")))}function pe(o,u){if(o&1){let e=C();r(0,"button",15),l(1,"translate"),l(2,"translate"),h("click",function(){p(e);let t=d();return f(t.onCancelRestore())}),_(3,"i",16),a()}if(o&2){let e=d();v("disabled",e.saveInProgress)("ngbTooltip",c(1,3,"form.button_cancel")),y("aria-label",c(2,5,"form.button_cancel"))}}function fe(o,u){if(o&1){let e=C();r(0,"button",13),l(1,"translate"),l(2,"translate"),h("click",function(){p(e);let t=d();return f(t.onRestore())}),_(3,"i",17),a()}o&2&&(v("ngbTooltip",c(1,2,"form.button_restore")),y("aria-label",c(2,4,"form.button_restore")))}function ge(o,u){o&1&&_(0,"i",8)}function ue(o,u){o&1&&_(0,"i",9)}function he(o,u){if(o&1){let e=C();r(0,"ngx-monaco-editor",18),h("onInit",function(t){p(e);let s=d();return f(s.onEditorInit(t))})("keydown.control.s",function(t){p(e);let s=d();return t.preventDefault(),f(s.onSave())})("keydown.meta.s",function(t){p(e);let s=d();return t.preventDefault(),f(s.onSave())}),a()}if(o&2){let e=d();v("options",e.editorOptions)("model",e.monacoEditorModel)}}function be(o,u){if(o&1){let e=C();r(0,"ngx-monaco-diff-editor",19),h("onInit",function(t){p(e);let s=d();return f(s.onInitDiffEditor(t))})("keydown.control.s",function(t){p(e);let s=d();return t.preventDefault(),f(s.onSave())})("keydown.meta.s",function(t){p(e);let s=d();return t.preventDefault(),f(s.onSave())}),a()}if(o&2){let e=d();v("options",e.editorOptions)("originalModel",e.monacoEditorModel)("modifiedModel",e.monacoEditorModel)}}function _e(o,u){if(o&1){let e=C();r(0,"textarea",20),B("ngModelChange",function(t){p(e);let s=d();return R(s.homebridgeConfig,t)||(s.homebridgeConfig=t),f(t)}),b(1," "),a()}if(o&2){let e=d();P("ngModel",e.homebridgeConfig)}}var qe=(()=>{class o{$api=m(k);$md=m(G);$modal=m(W);$monacoEditor=m(ee);$route=m(F);$renderer=m(D);$settings=m(N);$toastr=m(V);$translate=m(T);homebridgeConfig;originalConfig;saveInProgress;isMobile=!1;monacoEditor;editorOptions;monacoEditorModel;editorDecorations=[];lastHeight;visualViewPortEventCallback;constructor(){this.isMobile=this.$md.detect.mobile()}ngOnInit(){this.editorOptions={language:"json",theme:this.$settings.actualLightingMode==="dark"?"vs-dark":"vs-light",automaticLayout:!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(i=>{this.homebridgeConfig=i.config}),this.monacoEditorModel={value:"{}",language:"json",uri:window.monaco?window.monaco.Uri.parse("a://homebridge/config.json"):void 0},window.monaco?this.setMonacoEditorModel():this.$monacoEditor.readyEvent.subscribe({next:()=>{this.setMonacoEditorModel()}})}onEditorInit(e){window.editor=e,this.monacoEditor=e,this.monacoEditor.getModel().setValue(this.homebridgeConfig)}onInitDiffEditor(e){this.monacoEditor=e.modifiedEditor,e.getModel().original.setValue(this.originalConfig),e.getModel().modified.setValue(this.homebridgeConfig),window.editor=e}onSave(){return S(this,null,function*(){if(!this.saveInProgress){this.monacoEditor&&(this.editorDecorations=this.monacoEditor.deltaDecorations(this.editorDecorations,[])),this.saveInProgress=!0;try{if(!this.isMobile){yield this.monacoEditor.getAction("editor.action.formatDocument").run();let i=window.monaco.editor.getModelMarkers({owner:"json"});for(let t of i)if(t.message==="Duplicate object key"){this.saveInProgress=!1,this.$toastr.error(this.$translate.instant("config.config_invalid_json"),this.$translate.instant("toast.title_error"));return}this.homebridgeConfig=this.monacoEditor.getModel().getValue()}let e=this.parseConfigFromEditor();this.homebridgeConfig=JSON.stringify(e,null,4),typeof e.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(e.bridge.username)?e.accessories&&!Array.isArray(e.accessories)?this.$toastr.error(this.$translate.instant("config.config_accessory_must_be_array"),this.$translate.instant("toast.title_error")):e.platforms&&!Array.isArray(e.platforms)?this.$toastr.error(this.$translate.instant("config.config_platform_must_be_array"),this.$translate.instant("toast.title_error")):e.platforms&&Array.isArray(e.platforms)&&!this.validateSection(e.platforms,"platform")||e.accessories&&Array.isArray(e.accessories)&&!this.validateSection(e.accessories,"accessory")||e.plugins&&Array.isArray(e.plugins)&&!this.validatePlugins(e.plugins,"plugins")||e.disabledPlugins&&Array.isArray(e.disabledPlugins)&&!this.validatePlugins(e.disabledPlugins,"disabledPlugins")||(yield this.saveConfig(e),this.originalConfig=""):this.$toastr.error(this.$translate.instant("config.config_username_error"),this.$translate.instant("toast.title_error"))}catch(e){console.error(e),this.$toastr.error(this.$translate.instant("config.config_invalid_json"),this.$translate.instant("toast.title_error"))}this.saveInProgress=!1}})}parseConfigFromEditor(){try{return JSON.parse(this.homebridgeConfig)}catch{let i=ie.default.parse(this.homebridgeConfig);return this.homebridgeConfig=JSON.stringify(i,null,4),this.monacoEditor&&this.monacoEditor.getModel().setValue(this.homebridgeConfig),i}}saveConfig(e){return S(this,null,function*(){try{let i=yield A(this.$api.post("/config-editor",e));this.homebridgeConfig=JSON.stringify(i,null,4),this.$modal.open(Q,{size:"lg",backdrop:"static"})}catch(i){console.error(i),this.$toastr.error(this.$translate.instant("config.failed_to_save_config"),this.$translate.instant("toast.title_error"))}})}onRestore(){this.$modal.open(te,{size:"lg",backdrop:"static"}).result.then(e=>{this.originalConfig||(this.originalConfig=this.homebridgeConfig),this.$api.get(`/config-editor/backups/${e}`).subscribe({next:i=>{this.$toastr.info(this.$translate.instant("config.restore.confirm"),this.$translate.instant("config.title_backup_loaded")),this.homebridgeConfig=JSON.stringify(i,null,4),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}]))},error:i=>{console.error(i),this.$toastr.error(i.error.message||this.$translate.instant("backup.load_error"),this.$translate.instant("toast.title_error"))}})}).catch(()=>{})}onExportConfig(){let e=`data:text/json;charset=utf-8,${encodeURIComponent(this.homebridgeConfig)}`,i=document.createElement("a");i.setAttribute("href",e),i.setAttribute("download","config.json"),document.body.appendChild(i),i.click(),i.remove()}onCancelRestore(){this.homebridgeConfig=this.originalConfig,this.originalConfig=""}validateSection(e,i){for(let t of e){if(typeof t!="object"||Array.isArray(t))return this.$toastr.error(this.$translate.instant("config.error_blocks_objects",{type:i}),this.$translate.instant("toast.title_error")),this.highlightOffendingArrayItem(t),!1;if(!t[i])return this.$toastr.error(this.$translate.instant("config.error_blocks_type",{type:i}),this.$translate.instant("toast.title_error")),this.highlightOffendingArrayItem(t),!1;if(typeof t[i]!="string")return this.$toastr.error(this.$translate.instant("config.error_string_type",{type:i}),this.$translate.instant("toast.title_error")),this.highlightOffendingArrayItem(t),!1}return!0}validatePlugins(e,i){for(let t of e)if(typeof t!="string")return this.$toastr.error(this.$translate.instant("config.error_string_array",{key:i}),this.$translate.instant("toast.title_error")),!1;return!0}highlightOffendingArrayItem(e){this.monacoEditor&&(e=JSON.stringify(e,null,4).split(`
|
|
1
|
+
import{a as ee}from"./chunk-EA5J2VEJ.js";import{a as Q,b as ne}from"./chunk-EMKXES77.js";import{a as X,b as Z}from"./chunk-7EUQWCP5.js";import{a as G}from"./chunk-JZZQRLNW.js";import{m as U,n as W,o as Y}from"./chunk-ORPWYWCL.js";import{c as q,e as z,l as J,y as K}from"./chunk-QHPDGSZ6.js";import{b as F}from"./chunk-NZNNTHFQ.js";import{b as N}from"./chunk-J34SI644.js";import{b as k,j as V}from"./chunk-3YHN3VHA.js";import{a as T,b as M}from"./chunk-3IX3CLER.js";import{$b as C,Bc as l,Cc as c,Dc as O,Kb as w,Lb as y,Mb as v,Rb as g,Tb as I,Ub as H,Vb as j,Wb as r,Xb as a,Yb as _,cc as h,dc as d,g as oe,h as S,ib as n,kd as L,na as m,nc as b,oc as x,pb as D,pc as $,rb as E,sc as P,tc as R,uc as B,w as A,xa as p,ya as f}from"./chunk-TXOB7R5K.js";function ae(o,u){o&1&&(r(0,"div",6),_(1,"i",14),a())}function se(o,u){if(o&1){let e=C();r(0,"tr")(1,"td",15),b(2),l(3,"date"),a(),r(4,"td",16)(5,"a",17),h("click",function(){let t=p(e).$implicit,s=d(2);return f(s.restore(t.id))}),b(6),l(7,"translate"),_(8,"i",18),a()()()}if(o&2){let e=u.$implicit;n(2),x(O(3,2,e.timestamp,"medium")),n(4),$(" ",c(7,5,"config.restore.copy_to_editor")," ")}}function le(o,u){if(o&1&&(r(0,"table",7)(1,"tbody"),H(2,se,9,7,"tr",null,I),a()()),o&2){let e=d();n(2),j(e.backupList)}}function de(o,u){o&1&&(r(0,"div")(1,"h3",11),b(2),l(3,"translate"),a()()),o&2&&(n(2),x(c(3,1,"config.restore.no_backups")))}function ce(o,u){if(o&1){let e=C();r(0,"button",19),l(1,"translate"),h("click",function(){p(e);let t=d();return f(t.deleteAllBackups())}),b(2),l(3,"translate"),a()}o&2&&(y("aria-label",c(1,2,"form.button_remove")),n(2),$(" ",c(3,4,"form.button_remove")," "))}var te=(()=>{class o{$activeModal=m(U);$api=m(k);$toastr=m(V);$translate=m(T);loading=!0;backupList=[];ngOnInit(){this.$api.get("/config-editor/backups").subscribe({next:e=>{this.loading=!1,this.backupList=e},error:e=>{this.loading=!1,console.error(e),this.$toastr.error(e.error.message||e.message,this.$translate.instant("toast.title_error"))}})}restore(e){return this.$activeModal.close(e)}deleteAllBackups(){return this.$api.delete("/config-editor/backups").subscribe({next:()=>{this.$activeModal.dismiss(),this.$toastr.success(this.$translate.instant("config.restore.toast_backups_deleted"),this.$translate.instant("toast.title_success"))},error:e=>{console.error(e),this.$toastr.error(e.error.message||e.message,this.$translate.instant("toast.title_error"))}})}static \u0275fac=function(i){return new(i||o)};static \u0275cmp=E({type:o,selectors:[["ng-component"]],decls:22,vars:16,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-dismiss","modal",1,"close",3,"click"],["aria-hidden","true"],[1,"modal-body"],[1,"text-center","primary-text"],[1,"table","table-borderless","table-hover","table-sm"],[1,"modal-footer","justify-content-between"],[1,"text-left"],["type","button","data-dismiss","modal",1,"btn","btn-elegant",3,"click"],[1,"text-center"],[1,"text-right"],["type","button",1,"btn","btn-danger","mr-auto"],[1,"fa","fa-fw","fa-cog","fa-spin",2,"font-size","75px"],[1,"w-100"],["nowrap",""],[1,"card-link",3,"click"],[1,"fas","fa-fw","fa-arrow-right"],["type","button",1,"btn","btn-danger","mr-auto",3,"click"]],template:function(i,t){i&1&&(r(0,"div",0)(1,"div",1)(2,"h5",2),b(3),l(4,"translate"),a(),r(5,"button",3),l(6,"translate"),h("click",function(){return t.$activeModal.dismiss("Dismiss")}),r(7,"span",4),b(8,"\xD7"),a()()(),r(9,"div",5),w(10,ae,2,0,"div",6)(11,le,4,0,"table",7)(12,de,4,3,"div"),a(),r(13,"div",8)(14,"div",9)(15,"button",10),l(16,"translate"),h("click",function(){return t.$activeModal.dismiss("Dismiss")}),b(17),l(18,"translate"),a()(),_(19,"div",11),r(20,"div",12),w(21,ce,4,6,"button",13),a()()()),i&2&&(n(3),x(c(4,8,"config.restore.title_restore_homebridge_backup")),n(2),y("aria-label",c(6,10,"form.button_close")),n(5),g(t.loading?10:-1),n(),g(!t.loading&&t.backupList&&t.backupList.length?11:-1),n(),g(!t.loading&&(!t.backupList||!t.backupList.length)?12:-1),n(3),y("aria-label",c(16,12,"form.button_close")),n(2),$(" ",c(18,14,"form.button_close")," "),n(4),g(!t.loading&&t.backupList.length?21:-1))},dependencies:[L,M],encapsulation:2})}return o})();var ie=oe(ne(),1);function me(o,u){if(o&1){let e=C();r(0,"button",13),l(1,"translate"),l(2,"translate"),h("click",function(){p(e);let t=d();return f(t.onExportConfig())}),_(3,"i",14),a()}o&2&&(v("ngbTooltip",c(1,2,"form.button_download")),y("aria-label",c(2,4,"form.button_download")))}function pe(o,u){if(o&1){let e=C();r(0,"button",15),l(1,"translate"),l(2,"translate"),h("click",function(){p(e);let t=d();return f(t.onCancelRestore())}),_(3,"i",16),a()}if(o&2){let e=d();v("disabled",e.saveInProgress)("ngbTooltip",c(1,3,"form.button_cancel")),y("aria-label",c(2,5,"form.button_cancel"))}}function fe(o,u){if(o&1){let e=C();r(0,"button",13),l(1,"translate"),l(2,"translate"),h("click",function(){p(e);let t=d();return f(t.onRestore())}),_(3,"i",17),a()}o&2&&(v("ngbTooltip",c(1,2,"form.button_restore")),y("aria-label",c(2,4,"form.button_restore")))}function ge(o,u){o&1&&_(0,"i",8)}function ue(o,u){o&1&&_(0,"i",9)}function he(o,u){if(o&1){let e=C();r(0,"ngx-monaco-editor",18),h("onInit",function(t){p(e);let s=d();return f(s.onEditorInit(t))})("keydown.control.s",function(t){p(e);let s=d();return t.preventDefault(),f(s.onSave())})("keydown.meta.s",function(t){p(e);let s=d();return t.preventDefault(),f(s.onSave())}),a()}if(o&2){let e=d();v("options",e.editorOptions)("model",e.monacoEditorModel)}}function be(o,u){if(o&1){let e=C();r(0,"ngx-monaco-diff-editor",19),h("onInit",function(t){p(e);let s=d();return f(s.onInitDiffEditor(t))})("keydown.control.s",function(t){p(e);let s=d();return t.preventDefault(),f(s.onSave())})("keydown.meta.s",function(t){p(e);let s=d();return t.preventDefault(),f(s.onSave())}),a()}if(o&2){let e=d();v("options",e.editorOptions)("originalModel",e.monacoEditorModel)("modifiedModel",e.monacoEditorModel)}}function _e(o,u){if(o&1){let e=C();r(0,"textarea",20),B("ngModelChange",function(t){p(e);let s=d();return R(s.homebridgeConfig,t)||(s.homebridgeConfig=t),f(t)}),b(1," "),a()}if(o&2){let e=d();P("ngModel",e.homebridgeConfig)}}var qe=(()=>{class o{$api=m(k);$md=m(G);$modal=m(W);$monacoEditor=m(ee);$route=m(F);$renderer=m(D);$settings=m(N);$toastr=m(V);$translate=m(T);homebridgeConfig;originalConfig;saveInProgress;isMobile=!1;monacoEditor;editorOptions;monacoEditorModel;editorDecorations=[];lastHeight;visualViewPortEventCallback;constructor(){this.isMobile=this.$md.detect.mobile()}ngOnInit(){this.editorOptions={language:"json",theme:this.$settings.actualLightingMode==="dark"?"vs-dark":"vs-light",automaticLayout:!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(i=>{this.homebridgeConfig=i.config}),this.monacoEditorModel={value:"{}",language:"json",uri:window.monaco?window.monaco.Uri.parse("a://homebridge/config.json"):void 0},window.monaco?this.setMonacoEditorModel():this.$monacoEditor.readyEvent.subscribe({next:()=>{this.setMonacoEditorModel()}})}onEditorInit(e){window.editor=e,this.monacoEditor=e,this.monacoEditor.getModel().setValue(this.homebridgeConfig)}onInitDiffEditor(e){this.monacoEditor=e.modifiedEditor,e.getModel().original.setValue(this.originalConfig),e.getModel().modified.setValue(this.homebridgeConfig),window.editor=e}onSave(){return S(this,null,function*(){if(!this.saveInProgress){this.monacoEditor&&(this.editorDecorations=this.monacoEditor.deltaDecorations(this.editorDecorations,[])),this.saveInProgress=!0;try{if(!this.isMobile){yield this.monacoEditor.getAction("editor.action.formatDocument").run();let i=window.monaco.editor.getModelMarkers({owner:"json"});for(let t of i)if(t.message==="Duplicate object key"){this.saveInProgress=!1,this.$toastr.error(this.$translate.instant("config.config_invalid_json"),this.$translate.instant("toast.title_error"));return}this.homebridgeConfig=this.monacoEditor.getModel().getValue()}let e=this.parseConfigFromEditor();this.homebridgeConfig=JSON.stringify(e,null,4),typeof e.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(e.bridge.username)?e.accessories&&!Array.isArray(e.accessories)?this.$toastr.error(this.$translate.instant("config.config_accessory_must_be_array"),this.$translate.instant("toast.title_error")):e.platforms&&!Array.isArray(e.platforms)?this.$toastr.error(this.$translate.instant("config.config_platform_must_be_array"),this.$translate.instant("toast.title_error")):e.platforms&&Array.isArray(e.platforms)&&!this.validateSection(e.platforms,"platform")||e.accessories&&Array.isArray(e.accessories)&&!this.validateSection(e.accessories,"accessory")||e.plugins&&Array.isArray(e.plugins)&&!this.validatePlugins(e.plugins,"plugins")||e.disabledPlugins&&Array.isArray(e.disabledPlugins)&&!this.validatePlugins(e.disabledPlugins,"disabledPlugins")||(yield this.saveConfig(e),this.originalConfig=""):this.$toastr.error(this.$translate.instant("config.config_username_error"),this.$translate.instant("toast.title_error"))}catch(e){console.error(e),this.$toastr.error(this.$translate.instant("config.config_invalid_json"),this.$translate.instant("toast.title_error"))}this.saveInProgress=!1}})}parseConfigFromEditor(){try{return JSON.parse(this.homebridgeConfig)}catch{let i=ie.default.parse(this.homebridgeConfig);return this.homebridgeConfig=JSON.stringify(i,null,4),this.monacoEditor&&this.monacoEditor.getModel().setValue(this.homebridgeConfig),i}}saveConfig(e){return S(this,null,function*(){try{let i=yield A(this.$api.post("/config-editor",e));this.homebridgeConfig=JSON.stringify(i,null,4),this.$modal.open(Q,{size:"lg",backdrop:"static"})}catch(i){console.error(i),this.$toastr.error(this.$translate.instant("config.failed_to_save_config"),this.$translate.instant("toast.title_error"))}})}onRestore(){this.$modal.open(te,{size:"lg",backdrop:"static"}).result.then(e=>{this.originalConfig||(this.originalConfig=this.homebridgeConfig),this.$api.get(`/config-editor/backups/${e}`).subscribe({next:i=>{this.$toastr.info(this.$translate.instant("config.restore.confirm"),this.$translate.instant("config.title_backup_loaded")),this.homebridgeConfig=JSON.stringify(i,null,4),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}]))},error:i=>{console.error(i),this.$toastr.error(i.error.message||this.$translate.instant("backup.load_error"),this.$translate.instant("toast.title_error"))}})}).catch(()=>{})}onExportConfig(){let e=`data:text/json;charset=utf-8,${encodeURIComponent(this.homebridgeConfig)}`,i=document.createElement("a");i.setAttribute("href",e),i.setAttribute("download","config.json"),document.body.appendChild(i),i.click(),i.remove()}onCancelRestore(){this.homebridgeConfig=this.originalConfig,this.originalConfig=""}validateSection(e,i){for(let t of e){if(typeof t!="object"||Array.isArray(t))return this.$toastr.error(this.$translate.instant("config.error_blocks_objects",{type:i}),this.$translate.instant("toast.title_error")),this.highlightOffendingArrayItem(t),!1;if(!t[i])return this.$toastr.error(this.$translate.instant("config.error_blocks_type",{type:i}),this.$translate.instant("toast.title_error")),this.highlightOffendingArrayItem(t),!1;if(typeof t[i]!="string")return this.$toastr.error(this.$translate.instant("config.error_string_type",{type:i}),this.$translate.instant("toast.title_error")),this.highlightOffendingArrayItem(t),!1}return!0}validatePlugins(e,i){for(let t of e)if(typeof t!="string")return this.$toastr.error(this.$translate.instant("config.error_string_array",{key:i}),this.$translate.instant("toast.title_error")),!1;return!0}highlightOffendingArrayItem(e){this.monacoEditor&&(e=JSON.stringify(e,null,4).split(`
|
|
2
2
|
`).map(i=>` ${i}`).join(`
|
|
3
3
|
`),setTimeout(()=>{let i=this.monacoEditor.getModel().findMatches(e);if(i.length){let t=i[0].range,s=new monaco.Range(t.startLineNumber,t.startColumn,t.endLineNumber,t.endColumn);this.editorDecorations=this.monacoEditor.deltaDecorations(this.editorDecorations,[{range:s,options:{isWholeLine:!0,linesDecorationsClassName:"hb-monaco-editor-line-error"}}])}},200))}setMonacoEditorModel(){if(window.monaco.languages.json.jsonDefaults.diagnosticsOptions.schemas.some(i=>i.uri==="http://homebridge/config.json"))return;let e=monaco.Uri.parse("a://homebridge/config.json");window.monaco.languages.json.jsonDefaults.setDiagnosticsOptions({allowComments:!1,validate:!0,schemas:[{uri:"http://homebridge/config.json",fileMatch:[e.toString()],schema:{type:"object",required:["bridge"],properties:{bridge:{type:"object",required:["name","username","port","pin"],properties:{name:{type:"string",description:`The Homebridge instance name.
|
|
4
4
|
This should be unique if you are running multiple instances of Homebridge.`,default:"Homebridge"},username:{type:"string",description:`Homebridge username must be 6 pairs of colon-separated hexadecimal characters (A-F 0-9).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as N,b as U}from"./chunk-BKUGARB4.js";import{m as H}from"./chunk-ORPWYWCL.js";import{a as D}from"./chunk-
|
|
1
|
+
import{a as N,b as U}from"./chunk-BKUGARB4.js";import{m as H}from"./chunk-ORPWYWCL.js";import{a as D}from"./chunk-QXT6R24L.js";import{d as V}from"./chunk-NZNNTHFQ.js";import{b as E,j as z}from"./chunk-3YHN3VHA.js";import{c as I,d as w}from"./chunk-UG5DK2RQ.js";import{a as P,b as A}from"./chunk-3IX3CLER.js";import{$b as R,Bc as l,Cc as d,Dc as F,Kb as f,Lb as S,Mb as b,Rb as c,Wb as a,Xb as o,Yb as u,cc as x,dc as p,g as $,h as k,ib as i,na as _,nc as s,oc as h,pc as v,rb as y,xa as C,xc as B,ya as g}from"./chunk-TXOB7R5K.js";var M=$(N(),1),W=$(U(),1);var j=t=>({maxBackupSizeText:t});function q(t,m){if(t&1&&(a(0,"div"),u(1,"input",11),o()),t&2){let e=p(2);i(),b("value",e.selectedBackup.fileName)}}function O(t,m){if(t&1){let e=R();a(0,"div",10)(1,"input",12),x("change",function(n){C(e);let T=p(2);return g(T.handleRestoreFileInput(n.target.files))}),o(),a(2,"label",13),s(3),l(4,"translate"),o()()}if(t&2){let e=p(2);i(3),v(" ",d(4,1,(e.selectedFile==null?null:e.selectedFile.name)||"backup.label_choose_backup_file_to_restore")," ")}}function G(t,m){if(t&1&&(a(0,"div",5)(1,"div",8),u(2,"i",9),o(),a(3,"p"),s(4),l(5,"translate"),o(),a(6,"ul")(7,"li"),s(8),l(9,"translate"),o(),a(10,"li"),s(11),l(12,"translate"),o(),a(13,"li"),s(14),l(15,"translate"),o()(),f(16,q,2,1,"div")(17,O,5,3,"div",10),o()),t&2){let e=p();i(4),h(d(5,6,"backup.restore_help_one")),i(4),h(d(9,8,"backup.restore_help_two")),i(3),h(F(12,10,"backup.restore_max_size",B(15,j,e.maxFileSizeText))),i(3),h(d(15,13,"backup.restore_warning")),i(2),c(e.selectedBackup?16:-1),i(),c(e.selectedBackup?-1:17)}}function J(t,m){t&1&&u(0,"i",19)}function K(t,m){if(t&1&&(a(0,"span"),s(1),o()),t&2){let e=p(3);i(),v("",e.uploadPercent,"% - ")}}function L(t,m){t&1&&(a(0,"span"),s(1," Extracting Archive"),o())}function Q(t,m){t&1&&(a(0,"span"),s(1),l(2,"translate"),o()),t&2&&(i(),v(" ",d(2,1,"backup.label_uploading"),""))}function X(t,m){if(t&1&&(a(0,"span"),f(1,J,1,0,"i",19)(2,K,2,1,"span")(3,L,2,0,"span")(4,Q,3,3,"span"),o()),t&2){let e=p(2);i(),c(!e.uploadPercent||e.uploadPercent===100?1:-1),i(),c(e.uploadPercent&&e.uploadPercent!==100?2:-1),i(),c(e.uploadPercent===100?3:-1),i(),c(e.uploadPercent!==100?4:-1)}}function Y(t,m){t&1&&(a(0,"span"),s(1),l(2,"translate"),o()),t&2&&(i(),h(d(2,1,"form.button_restore")))}function Z(t,m){if(t&1){let e=R();a(0,"div",7)(1,"div",14)(2,"button",15),l(3,"translate"),x("click",function(){C(e);let n=p();return g(n.$activeModal.dismiss("Dismiss"))}),s(4),l(5,"translate"),o()(),u(6,"div",16),a(7,"div",17)(8,"button",18),x("click",function(){C(e);let n=p();return g(n.onRestoreBackupClick())}),f(9,X,5,4,"span")(10,Y,3,3,"span"),o()()()}if(t&2){let e=p();i(2),b("disabled",e.clicked),S("aria-label",d(3,6,"form.button_close")),i(2),v(" ",d(5,8,"form.button_close")," "),i(4),b("disabled",!e.selectedBackup&&!e.selectedFile||e.clicked),i(),c(e.clicked?9:-1),i(),c(e.clicked?-1:10)}}function ee(t,m){if(t&1){let e=R();a(0,"div",7),u(1,"div",14),a(2,"div",16)(3,"button",20),x("click",function(){C(e);let n=p();return g(n.postBackupRestart())}),s(4),l(5,"translate"),o()(),u(6,"div",17),o()}t&2&&(i(4),v(" ",d(5,1,"menu.hbrestart.title")," "))}var me=(()=>{class t{$activeModal=_(H);$api=_(E);$route=_(V);$toastr=_(z);$translate=_(P);$ws=_(D);setupWizardRestore=!1;selectedBackup=null;clicked=!1;maxFileSizeText=globalThis.backup.maxBackupSizeText;selectedFile;restoreInProgress=!1;restoreStarted=!1;restoreFailed=!1;restoreArchiveType="homebridge";uploadPercent=0;term=new M.Terminal;termTarget;fitAddon=new W.FitAddon;io;ngOnInit(){return k(this,null,function*(){this.io=this.$ws.connectToNamespace("backup"),this.termTarget=document.getElementById("plugin-log-output"),this.term.open(this.termTarget),this.fitAddon.fit(),this.io.socket.on("stdout",e=>{this.term.write(e)}),this.setupWizardRestore&&(this.restoreStarted=!0,this.restoreInProgress=!0,this.startRestore())})}onRestoreBackupClick(){this.selectedBackup?this.restoreScheduledBackup():this.restoreArchiveType==="homebridge"?this.uploadHomebridgeArchive():this.restoreArchiveType==="hbfx"&&this.uploadHbfxArchive()}uploadHomebridgeArchive(){this.term.reset(),this.clicked=!0;let e=new FormData;e.append("restoreArchive",this.selectedFile,this.selectedFile.name),this.$api.post("/backup/restore",e).subscribe({next:()=>{this.restoreStarted=!0,this.restoreInProgress=!0,setTimeout(()=>{this.startRestore()},500),this.clicked=!1},error:r=>{var n;console.error(r),this.$toastr.error(((n=r.error)==null?void 0:n.message)||this.$translate.instant("backup.restore_failed"),this.$translate.instant("toast.title_error")),this.clicked=!1}})}restoreScheduledBackup(){return k(this,null,function*(){this.term.reset(),this.clicked=!0,this.$api.post(`/backup/scheduled-backups/${this.selectedBackup.id}/restore`,{}).subscribe({next:()=>{this.restoreStarted=!0,this.restoreInProgress=!0,setTimeout(()=>{this.startRestore()},500),this.clicked=!1},error:e=>{var r;console.error(e),this.$toastr.error(((r=e.error)==null?void 0:r.message)||this.$translate.instant("backup.restore_failed"),this.$translate.instant("toast.title_error")),this.clicked=!1}})})}startRestore(){return k(this,null,function*(){this.io.request("do-restore").subscribe({next:()=>{this.restoreInProgress=!1,this.$toastr.success(this.$translate.instant("backup.backup_restored"),this.$translate.instant("toast.title_success")),this.setupWizardRestore&&this.postBackupRestart()},error:e=>{this.restoreFailed=!0,console.error(e),this.$toastr.error(this.$translate.instant("backup.restore_failed"),this.$translate.instant("toast.title_error"))}})})}uploadHbfxArchive(){this.term.reset(),this.clicked=!0;let e=new FormData;e.append("restoreArchive",this.selectedFile,this.selectedFile.name),this.$api.post("/backup/restore/hbfx",e,{reportProgress:!0,observe:"events"}).subscribe({next:r=>{r.type===I.UploadProgress?this.uploadPercent=Math.round(100*r.loaded/r.total):r instanceof w&&(this.restoreStarted=!0,this.restoreInProgress=!0,setTimeout(()=>{this.startHbfxRestore()},500),this.clicked=!1)},error:r=>{var n;this.clicked=!1,console.error(r),this.$toastr.error(((n=r.error)==null?void 0:n.message)||this.$translate.instant("backup.restore_failed"),this.$translate.instant("toast.title_error"))}})}startHbfxRestore(){return k(this,null,function*(){this.io.request("do-restore-hbfx").subscribe({next:()=>{this.restoreInProgress=!1,this.$toastr.success(this.$translate.instant("backup.backup_restored"),this.$translate.instant("toast.title_success"))},error:e=>{this.restoreFailed=!0,console.error(e),this.$toastr.error(this.$translate.instant("backup.restore_failed"),this.$translate.instant("toast.title_error"))}})})}handleRestoreFileInput(e){e.length?(this.selectedFile=e[0],this.selectedFile.name.endsWith(".hbfx")?this.restoreArchiveType="hbfx":this.restoreArchiveType="homebridge"):delete this.selectedFile}postBackupRestart(){this.$api.put("/backup/restart",{}).subscribe({next:()=>{this.$activeModal.close(!0),this.$route.navigate(["/"])},error:()=>{}})}ngOnDestroy(){this.io.end()}static \u0275fac=function(r){return new(r||t)};static \u0275cmp=y({type:t,selectors:[["ng-component"]],inputs:{setupWizardRestore:"setupWizardRestore",selectedBackup:"selectedBackup"},decls:13,vars:11,consts:[[1,"modal-content","hb-backup-modal"],[1,"modal-header"],[1,"modal-title"],["type","button","data-dismiss","modal",1,"close",3,"click","disabled"],["aria-hidden","true"],[1,"modal-body"],["id","plugin-log-output",1,"modal-body",3,"hidden"],[1,"modal-footer","justify-content-between"],[1,"text-center","mt-2","mb-3"],[1,"fas","fa-fw","fa-hard-drive","primary-text",2,"font-size","75px"],[1,"custom-file"],["type","text","disabled","",1,"form-control","custom-input",3,"value"],["type","file","id","restoreFileUpload","accept","application/gzip, .gz, .hbfx",1,"custom-file-input",3,"change"],["for","restoreFileUpload",1,"custom-file-label"],[1,"text-left"],["type","button","data-dismiss","modal",1,"btn","btn-elegant",3,"click","disabled"],[1,"text-center"],[1,"text-right"],["type","button","data-dismiss","modal",1,"btn","btn-primary",3,"click","disabled"],[1,"fa","fa-fw","fa-circle-notch","fa-spin"],["type","button","data-dismiss","modal",1,"btn","btn-primary",3,"click"]],template:function(r,n){r&1&&(a(0,"div",0)(1,"div",1)(2,"h5",2),s(3),l(4,"translate"),o(),a(5,"button",3),l(6,"translate"),x("click",function(){return n.$activeModal.dismiss("Dismiss")}),a(7,"span",4),s(8,"\xD7"),o()()(),f(9,G,18,17,"div",5),u(10,"div",6),f(11,Z,11,10,"div",7)(12,ee,7,3,"div",7),o()),r&2&&(i(3),h(d(4,7,"form.button_restore")),i(2),b("disabled",n.restoreInProgress),S("aria-label",d(6,9,"form.button_close")),i(4),c(!n.restoreStarted&&!n.setupWizardRestore?9:-1),i(),b("hidden",!n.restoreStarted),i(),c(!n.restoreStarted||n.restoreFailed===!0?11:-1),i(),c(!n.restoreInProgress&&n.restoreStarted?12:-1))},dependencies:[A],encapsulation:2})}return t})();export{me as a};
|