homebridge-config-ui-x 5.4.2-beta.23 → 5.4.2-beta.24
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-MBCRYZPI.js → chunk-2KSHEZ7K.js} +1 -1
- package/public/{chunk-UMIOQGEX.js → chunk-4CRIOBSX.js} +1 -1
- package/public/{chunk-HODZZ7CF.js → chunk-4L5O5EO5.js} +1 -1
- package/public/{chunk-E7N2RQ74.js → chunk-4N74OA7O.js} +1 -1
- package/public/{chunk-PKUKNT5A.js → chunk-52OL2HBC.js} +1 -1
- package/public/{chunk-YRIU42GG.js → chunk-72WRYJ76.js} +1 -1
- package/public/{chunk-BRN4YJET.js → chunk-AC4QHHFI.js} +1 -1
- package/public/{chunk-USIOJNKF.js → chunk-AJRSYXVM.js} +1 -1
- package/public/{chunk-6I5OK7UZ.js → chunk-ATNHS6ZA.js} +1 -1
- package/public/{chunk-GSFBIFYG.js → chunk-AV3YAWRS.js} +1 -1
- package/public/{chunk-TABKUE4U.js → chunk-B2AY5DYR.js} +1 -1
- package/public/{chunk-7PLVLWDU.js → chunk-BGL7N3FE.js} +1 -1
- package/public/{chunk-URMO766P.js → chunk-BJPJYZFV.js} +17 -17
- package/public/{chunk-52ALUNIF.js → chunk-BNB5222D.js} +1 -1
- package/public/{chunk-P5H3A6F2.js → chunk-CBMYKPDD.js} +1 -1
- package/public/{chunk-MODI53YD.js → chunk-D6L2OLVA.js} +1 -1
- package/public/{chunk-RJQ5AVJV.js → chunk-DHOBUXNF.js} +1 -1
- package/public/{chunk-HWHVCFQ3.js → chunk-DQGPKZOA.js} +1 -1
- package/public/{chunk-3QWJJHAU.js → chunk-DU4XPB2F.js} +1 -1
- package/public/{chunk-7JNOB42D.js → chunk-EUEXF6XE.js} +1 -1
- package/public/{chunk-Q354EN77.js → chunk-F5PAE56H.js} +1 -1
- package/public/{chunk-44KPC7NW.js → chunk-FEZ6FL2D.js} +1 -1
- package/public/{chunk-LKT3W4VQ.js → chunk-FQLQJOL3.js} +1 -1
- package/public/{chunk-Q2CIMOUK.js → chunk-GLH2W7K3.js} +1 -1
- package/public/{chunk-YBVDZA6Y.js → chunk-JUKSM6XE.js} +1 -1
- package/public/{chunk-UJ6JMLQC.js → chunk-KNBHSKQI.js} +1 -1
- package/public/{chunk-O67URGXE.js → chunk-KSQNFVX2.js} +1 -1
- package/public/{chunk-4NMGMGZF.js → chunk-L7RN66ZU.js} +1 -1
- package/public/{chunk-DA7DFESY.js → chunk-MRLWK34X.js} +1 -1
- package/public/{chunk-NO3N2UL5.js → chunk-N2USULJ6.js} +1 -1
- package/public/chunk-O5TK5PGM.js +1 -0
- package/public/{chunk-NBYDDORE.js → chunk-ODUS7XXD.js} +1 -1
- package/public/{chunk-7CVX65WW.js → chunk-OXBHZWJK.js} +1 -1
- package/public/{chunk-5RYHRIVX.js → chunk-PEEXIMRP.js} +1 -1
- package/public/{chunk-K6T2NIWT.js → chunk-PHUWWX5Y.js} +1 -1
- package/public/{chunk-DO7P3JHK.js → chunk-PK2VQ6X2.js} +1 -1
- package/public/{chunk-QHAXHOEE.js → chunk-POKTDHSN.js} +1 -1
- package/public/{chunk-3AS3W2JT.js → chunk-PSSEY43O.js} +1 -1
- package/public/{chunk-IKCCTXEH.js → chunk-Q5C2KSHJ.js} +1 -1
- package/public/{chunk-DMYTURW6.js → chunk-R5CJGO3S.js} +1 -1
- package/public/{chunk-5LWWKZGN.js → chunk-R5GKRON3.js} +1 -1
- package/public/{chunk-RQBBIL4L.js → chunk-RHWN3MQ5.js} +1 -1
- package/public/{chunk-AEL7UA74.js → chunk-SN3I4GAX.js} +1 -1
- package/public/{chunk-6UEXCRUG.js → chunk-TQ4LLXA3.js} +1 -1
- package/public/{chunk-CRXCDFGV.js → chunk-VDHC4UF7.js} +1 -1
- package/public/{chunk-BBPWAZNA.js → chunk-VJPOZBAR.js} +1 -1
- package/public/{chunk-JTTGQROS.js → chunk-VXKOJVNR.js} +1 -1
- package/public/{chunk-5VD46E2V.js → chunk-WQK4PDQM.js} +1 -1
- package/public/chunk-XAJSGOVR.js +1 -0
- package/public/{chunk-3IGIVFAO.js → chunk-XNYS72OQ.js} +1 -1
- package/public/{chunk-H73F2YG5.js → chunk-ZFR3B2BT.js} +1 -1
- package/public/{chunk-YEUQUAGZ.js → chunk-ZM2VPTOK.js} +1 -1
- package/public/index.html +1 -1
- package/public/{main-WPY27HRP.js → main-ZCGVY2WH.js} +1 -1
- package/public/chunk-AP2V6WYH.js +0 -1
- package/public/chunk-GNQG7N2O.js +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as xe}from"./chunk-5WYRGCHF.js";import{b as B,e as Ce,f as ve,g as Pe}from"./chunk-DA7DFESY.js";import{a as be,b as _e}from"./chunk-M7Q6VBJE.js";import{a as we}from"./chunk-KNZTEJFP.js";import{a as je}from"./chunk-KXMDG63G.js";import{m as ue,n as he,t as D}from"./chunk-BQMDK4YS.js";import{B as pe,C as ge,c as ce,e as me,l as fe}from"./chunk-AM53KSWA.js";import{b as I,d as O}from"./chunk-MDV2S56W.js";import{b as ye}from"./chunk-NO3N2UL5.js";import{k as R,l as j,n as P,q as H}from"./chunk-AEL7UA74.js";import{Db as S,Gb as b,Ib as m,Jc as le,La as r,Pa as ee,Qc as de,Tb as ne,Vb as _,Wa as A,Wb as k,Xb as T,a as G,ac as re,b as Q,bc as se,cc as ae,d as X,g as Z,h as C,hc as z,ja as p,kb as w,lb as v,mb as x,mc as s,nc as l,oa as u,ob as te,oc as K,pa as h,pb as ie,qb as oe,rb as g,sb as a,tb as d,ub as f,w as $}from"./chunk-3LEW5FOJ.js";var $e=Z(Pe(),1);var Ee=Z(je(),1);var Se=(n,y)=>({"fa-trash":n,"fa-cog fa-spin":y});function Oe(n,y){n&1&&(a(0,"div",13),f(1,"i",20),d())}function He(n,y){if(n&1){let e=S();a(0,"li",9)(1,"span"),_(2),s(3,"date"),f(4,"br"),a(5,"span",21),_(6),s(7,"date"),d()(),a(8,"span",22)(9,"button",25),s(10,"translate"),s(11,"translate"),b("click",function(){let i=u(e).$implicit,o=m(2);return h(o.restore(i.id))}),f(12,"i",26),d(),a(13,"button",27),s(14,"translate"),s(15,"translate"),b("click",function(){let i=u(e).$implicit,o=m(2);return h(o.download(i.id))}),f(16,"i",28),d(),a(17,"button",23),s(18,"translate"),s(19,"translate"),b("click",function(){let i=u(e).$implicit,o=m(2);return h(o.delete(i.id))}),f(20,"i",24),d()()()}if(n&2){let e=y.$implicit,t=m(2);r(2),T(" ",K(3,15,e.timestamp,"mediumDate")),r(4),k(K(7,18,e.timestamp,"shortTime")),r(3),g("disabled",t.clicked||t.deleting)("ngbTooltip",l(10,21,"config.restore.copy_to_editor"))("openDelay",150),w("aria-label",l(11,23,"config.restore.copy_to_editor")),r(4),g("disabled",t.clicked||t.deleting)("ngbTooltip",l(14,25,"form.button_download"))("openDelay",150),w("aria-label",l(15,27,"form.button_download")),r(4),g("disabled",t.clicked||t.deleting)("ngbTooltip",l(18,29,"form.button_delete"))("openDelay",150),w("aria-label",l(19,31,"form.button_delete")),r(3),g("ngClass",z(33,Se,e.id!==t.deleting,e.id===t.deleting))}}function Ne(n,y){if(n&1){let e=S();a(0,"ul",14),ie(1,He,21,36,"li",9,te),a(3,"li",9)(4,"span"),_(5),s(6,"translate"),f(7,"br"),a(8,"span",21),_(9),s(10,"translate"),d()(),a(11,"span",22)(12,"button",23),s(13,"translate"),s(14,"translate"),b("click",function(){u(e);let i=m();return h(i.deleteAllBackups())}),f(15,"i",24),d()()()()}if(n&2){let e=m();r(),oe(e.backupList),r(4),T(" ",l(6,7,"form.button_delete_all")),r(4),T(" ",l(10,9,"common.labels.no_confirmation")," "),r(3),g("disabled",e.clicked||e.deleting)("ngbTooltip",l(13,11,"form.button_delete_all"))("openDelay",150),w("aria-label",l(14,13,"form.button_delete")),r(3),g("ngClass",z(15,Se,e.deleting!=="all",e.deleting==="all"))}}var ke=(()=>{class n{$activeModal=p(ue);$api=p(H);$route=p(I);$router=p(O);$toastr=p(P);$translate=p(R);currentConfig;fromSettings=!1;loading=!0;backupList=[];clicked=!1;deleting=null;ngOnInit(){this.getConfigBackups()}getConfigBackups(){return C(this,null,function*(){try{let e=yield $(this.$api.get("/config-editor/backups"));this.loading=!1,this.backupList=e}catch(e){this.loading=!1,console.error(e),this.$toastr.error(e.error?.message||e.message,this.$translate.instant("toast.title_error")),this.dismissModal()}})}restore(e){return this.$activeModal.close(e)}download(e){return C(this,null,function*(){this.clicked=!0;try{let t=yield $(this.$api.get(`/config-editor/backups/${e}`)),i=JSON.stringify(t,null,4),o=new Blob([i],{type:"application/json"}),E=`config-backup-${e}.json`;(0,Ee.saveAs)(o,E),this.clicked=!1}catch(t){this.clicked=!1,this.$toastr.error(t.error?.message||t.message,this.$translate.instant("toast.title_error")),console.error(t)}})}downloadCurrentConfig(){let e=`data:text/json;charset=utf-8,${encodeURIComponent(this.currentConfig)}`,t=document.createElement("a");t.setAttribute("href",e),t.setAttribute("download","config.json"),document.body.appendChild(t),t.click(),t.remove()}delete(e){return C(this,null,function*(){this.deleting=e;try{yield $(this.$api.delete(`/config-editor/backups/${e}`)),yield this.getConfigBackups(),this.deleting=null}catch(t){this.deleting=null,this.$toastr.error(t.error?.message||t.message,this.$translate.instant("toast.title_error")),console.error(t)}})}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(e){this.$toastr.error(e.error?.message||e.message,this.$translate.instant("toast.title_error")),console.error(e),this.deleting=null}})}dismissModal(){this.fromSettings&&this.$router.navigate(["/settings"],{relativeTo:this.$route}),this.$activeModal.dismiss("Dismiss")}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=A({type:n,selectors:[["ng-component"]],inputs:{currentConfig:"currentConfig",fromSettings:"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-fw","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",3,"click","disabled"],[1,"fas","fa-fw","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-fw","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","fa-fw",3,"ngClass"],["placement","bottom","container","modal","triggers","hover",1,"btn","btn-primary","m-0","ms-3",3,"click","disabled","ngbTooltip","openDelay"],[1,"fas","fa-fw","fa-history"],["placement","bottom","container","modal","triggers","hover",1,"btn","btn-primary","m-0","ms-2",3,"click","disabled","ngbTooltip","openDelay"],[1,"fas","fa-fw","fa-download"]],template:function(t,i){t&1&&(a(0,"div",0)(1,"div",1)(2,"h5",2),_(3),s(4,"translate"),d(),a(5,"button",3),s(6,"translate"),b("click",function(){return i.dismissModal()}),d()(),a(7,"div",4)(8,"div",5),f(9,"i",6),d(),a(10,"ul",7)(11,"li"),_(12),s(13,"translate"),d(),a(14,"li"),_(15),s(16,"translate"),d()(),a(17,"ul",8)(18,"li",9)(19,"div")(20,"span"),_(21),s(22,"translate"),d(),f(23,"br"),a(24,"small",10),_(25),s(26,"translate"),d()(),a(27,"button",11),s(28,"translate"),b("click",function(){return i.downloadCurrentConfig()}),f(29,"i",12),d()()(),v(30,Oe,2,0,"div",13)(31,Ne,16,18,"ul",14),d(),a(32,"div",15),f(33,"div",16),a(34,"div",17)(35,"button",18),s(36,"translate"),b("click",function(){return i.dismissModal()}),_(37),s(38,"translate"),d()(),f(39,"div",19),d()()),t&2&&(r(3),k(l(4,13,"config.restore.title")),r(2),g("disabled",i.clicked||i.deleting),w("aria-label",l(6,15,"form.button_close")),r(7),k(l(13,17,"config.restore.help_1")),r(3),k(l(16,19,"config.restore.help_2")),r(6),k(l(22,21,"form.button_download")),r(4),k(l(26,23,"config.restore.download")),r(2),g("disabled",i.clicked||i.deleting),w("aria-label",l(28,25,"backup.backup_now")),r(3),x(i.loading?30:i.backupList.length?31:-1),r(5),g("disabled",i.clicked||i.deleting),w("aria-label",l(36,27,"form.button_close")),r(2),T(" ",l(38,29,"form.button_close")," "))},dependencies:[D,le,ge,de,j],encapsulation:2})}return n})();function qe(n,y){if(n&1){let e=S();a(0,"button",13),s(1,"translate"),s(2,"translate"),b("click",function(){u(e);let i=m();return h(i.onCancelRestore())}),f(3,"i",14),d()}if(n&2){let e=m();g("disabled",e.saveInProgress)("openDelay",150)("ngbTooltip",l(1,4,"form.button_cancel")),w("aria-label",l(2,6,"form.button_cancel"))}}function Fe(n,y){if(n&1){let e=S();a(0,"button",15),s(1,"translate"),s(2,"translate"),b("click",function(){u(e);let i=m();return h(i.onRestore())}),f(3,"i",16),d()}n&2&&(g("openDelay",150)("ngbTooltip",l(1,3,"form.button_restore")),w("aria-label",l(2,5,"form.button_restore")))}function Je(n,y){if(n&1){let e=S();a(0,"button",15),s(1,"translate"),s(2,"translate"),b("click",function(){u(e);let i=m();return h(i.toggleSideBySide())}),f(3,"i",17),d()}if(n&2){let e=m();g("openDelay",150)("ngbTooltip",l(1,7,e.renderSideBySide?"config.restore.view_inline":"config.restore.view_side_by_side")),w("aria-label",l(2,9,e.renderSideBySide?"config.restore.view_inline":"config.restore.view_side_by_side")),r(3),ne("fa-columns",!e.renderSideBySide)("fa-bars",e.renderSideBySide)}}function Le(n,y){n&1&&f(0,"i",8)}function Ue(n,y){n&1&&f(0,"i",9)}function ze(n,y){if(n&1){let e=S();a(0,"ngx-monaco-editor",18),b("onInit",function(i){u(e);let o=m();return h(o.onEditorInit(i))})("keydown.control.s",function(i){u(e);let o=m();return i.preventDefault(),h(o.onSave())})("keydown.meta.s",function(i){u(e);let o=m();return i.preventDefault(),h(o.onSave())}),d()}if(n&2){let e=m();g("options",e.editorOptions)("model",e.monacoEditorModel)}}function Ke(n,y){if(n&1){let e=S();a(0,"ngx-monaco-diff-editor",19),b("onInit",function(i){u(e);let o=m();return h(o.onInitDiffEditor(i))})("keydown.control.s",function(i){u(e);let o=m();return i.preventDefault(),h(o.onSave())})("keydown.meta.s",function(i){u(e);let o=m();return i.preventDefault(),h(o.onSave())}),d()}if(n&2){let e=m();g("options",e.editorOptions)("originalModel",e.diffOriginalModel)("modifiedModel",e.diffModifiedModel)}}function We(n,y){if(n&1){let e=S();a(0,"textarea",20),ae("ngModelChange",function(i){u(e);let o=m();return se(o.homebridgeConfig,i)||(o.homebridgeConfig=i),h(i)}),_(1," "),d()}if(n&2){let e=m();re("ngModel",e.homebridgeConfig)}}var $t=(()=>{class n{$api=p(H);$md=p(we);$modal=p(he);$monacoEditor=p(xe);$route=p(I);$renderer=p(ee);$router=p(O);$settings=p(ye);$toastr=p(P);$translate=p(R);editorDecorations=[];lastHeight;visualViewPortEventCallback;latestSavedConfig;childBridgesToRestart=[];hbPendingRestart=!1;homebridgeConfig;originalConfig;saveInProgress;isMobile=!1;monacoEditor;editorOptions;monacoEditorModel;diffOriginalModel;diffModifiedModel;renderSideBySide=!1;constructor(){this.isMobile=this.$md.detect.mobile()}ngOnInit(){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(i=>{this.homebridgeConfig=i.config,this.latestSavedConfig=JSON.parse(i.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.subscribe({next:()=>this.setMonacoEditorModel()});let{action:t}=this.$router.parseUrl(this.$router.url).queryParams;if(t){switch(t){case"restore":{this.onRestore(!0);break}}this.$router.navigate([],{queryParams:{},replaceUrl:!0,queryParamsHandling:"",relativeTo:this.$route})}}onEditorInit(e){window.editor=e,this.monacoEditor=e,this.monacoEditor.getModel().setValue(this.homebridgeConfig)}onInitDiffEditor(e){this.monacoEditor=e.getModifiedEditor(),this.updateDiffModels(),window.editor=e}updateDiffModels(){if(this.diffOriginalModel&&(this.diffOriginalModel.code=this.originalConfig||""),this.diffModifiedModel&&(this.diffModifiedModel.code=this.homebridgeConfig||"{}"),window.editor&&window.editor.getOriginalEditor){let e=window.editor.getOriginalEditor(),t=window.editor.getModifiedEditor();if(e&&t){let i=e.getModel(),o=t.getModel();i&&i.setValue(this.originalConfig||""),o&&o.setValue(this.homebridgeConfig||"{}")}}}onSave(){return C(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 t=window.monaco.editor.getModelMarkers({owner:"json"});for(let i of t)if(i.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}})}onRestore(e=!1){let t=this.$modal.open(ke,{size:"lg",backdrop:"static"});t.componentInstance.currentConfig=this.homebridgeConfig,t.componentInstance.fromSettings=e,t.result.then(i=>{this.originalConfig||(this.originalConfig=this.homebridgeConfig,this.updateDiffModels()),this.$api.get(`/config-editor/backups/${i}`).subscribe({next:o=>{this.$toastr.info(this.$translate.instant("config.restore.confirm"),this.$translate.instant("config.title_backup_loaded")),this.homebridgeConfig=JSON.stringify(o,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}]))},error:o=>{console.error(o),this.$toastr.error(o.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=this.originalConfig,this.originalConfig="",this.renderSideBySide&&this.toggleSideBySide(),this.updateDiffModels(),this.onRestore()}toggleSideBySide(){this.renderSideBySide=!this.renderSideBySide,this.editorOptions=Q(G({},this.editorOptions),{renderSideBySide:this.renderSideBySide})}ngOnDestroy(){let e=document.querySelector(".content");this.$renderer.removeStyle(e,"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 t=window.monaco.Uri.parse("file:///original.json"),i=window.monaco.Uri.parse("file:///modified.json"),o=window.monaco.editor.getModel(t);o&&o.dispose();let E=window.monaco.editor.getModel(i);E&&E.dispose()}this.monacoEditor&&this.monacoEditor.dispose()}catch{}}validateSection(e,t){for(let i of e){if(typeof i!="object"||Array.isArray(i))return this.$toastr.error(this.$translate.instant("config.error_blocks_objects",{type:t}),this.$translate.instant("toast.title_error")),this.highlightOffendingArrayItem(i),!1;if(!i[t])return this.$toastr.error(this.$translate.instant("config.error_blocks_type",{type:t}),this.$translate.instant("toast.title_error")),this.highlightOffendingArrayItem(i),!1;if(typeof i[t]!="string")return this.$toastr.error(this.$translate.instant("config.error_string_type",{type:t}),this.$translate.instant("toast.title_error")),this.highlightOffendingArrayItem(i),!1}return!0}validatePlugins(e,t){for(let i of e)if(typeof i!="string")return this.$toastr.error(this.$translate.instant("config.error_string_array",{key:t}),this.$translate.instant("toast.title_error")),!1;return!0}highlightOffendingArrayItem(e){this.monacoEditor&&(e=JSON.stringify(e,null,4).split(`
|
|
1
|
+
import{a as xe}from"./chunk-5WYRGCHF.js";import{b as B,e as Ce,f as ve,g as Pe}from"./chunk-MRLWK34X.js";import{a as be,b as _e}from"./chunk-M7Q6VBJE.js";import{a as we}from"./chunk-KNZTEJFP.js";import{a as je}from"./chunk-KXMDG63G.js";import{m as ue,n as he,t as D}from"./chunk-BQMDK4YS.js";import{B as pe,C as ge,c as ce,e as me,l as fe}from"./chunk-AM53KSWA.js";import{b as I,d as O}from"./chunk-MDV2S56W.js";import{b as ye}from"./chunk-N2USULJ6.js";import{k as R,l as j,n as P,q as H}from"./chunk-SN3I4GAX.js";import{Db as S,Gb as b,Ib as m,Jc as le,La as r,Pa as ee,Qc as de,Tb as ne,Vb as _,Wa as A,Wb as k,Xb as T,a as G,ac as re,b as Q,bc as se,cc as ae,d as X,g as Z,h as C,hc as z,ja as p,kb as w,lb as v,mb as x,mc as s,nc as l,oa as u,ob as te,oc as K,pa as h,pb as ie,qb as oe,rb as g,sb as a,tb as d,ub as f,w as $}from"./chunk-3LEW5FOJ.js";var $e=Z(Pe(),1);var Ee=Z(je(),1);var Se=(n,y)=>({"fa-trash":n,"fa-cog fa-spin":y});function Oe(n,y){n&1&&(a(0,"div",13),f(1,"i",20),d())}function He(n,y){if(n&1){let e=S();a(0,"li",9)(1,"span"),_(2),s(3,"date"),f(4,"br"),a(5,"span",21),_(6),s(7,"date"),d()(),a(8,"span",22)(9,"button",25),s(10,"translate"),s(11,"translate"),b("click",function(){let i=u(e).$implicit,o=m(2);return h(o.restore(i.id))}),f(12,"i",26),d(),a(13,"button",27),s(14,"translate"),s(15,"translate"),b("click",function(){let i=u(e).$implicit,o=m(2);return h(o.download(i.id))}),f(16,"i",28),d(),a(17,"button",23),s(18,"translate"),s(19,"translate"),b("click",function(){let i=u(e).$implicit,o=m(2);return h(o.delete(i.id))}),f(20,"i",24),d()()()}if(n&2){let e=y.$implicit,t=m(2);r(2),T(" ",K(3,15,e.timestamp,"mediumDate")),r(4),k(K(7,18,e.timestamp,"shortTime")),r(3),g("disabled",t.clicked||t.deleting)("ngbTooltip",l(10,21,"config.restore.copy_to_editor"))("openDelay",150),w("aria-label",l(11,23,"config.restore.copy_to_editor")),r(4),g("disabled",t.clicked||t.deleting)("ngbTooltip",l(14,25,"form.button_download"))("openDelay",150),w("aria-label",l(15,27,"form.button_download")),r(4),g("disabled",t.clicked||t.deleting)("ngbTooltip",l(18,29,"form.button_delete"))("openDelay",150),w("aria-label",l(19,31,"form.button_delete")),r(3),g("ngClass",z(33,Se,e.id!==t.deleting,e.id===t.deleting))}}function Ne(n,y){if(n&1){let e=S();a(0,"ul",14),ie(1,He,21,36,"li",9,te),a(3,"li",9)(4,"span"),_(5),s(6,"translate"),f(7,"br"),a(8,"span",21),_(9),s(10,"translate"),d()(),a(11,"span",22)(12,"button",23),s(13,"translate"),s(14,"translate"),b("click",function(){u(e);let i=m();return h(i.deleteAllBackups())}),f(15,"i",24),d()()()()}if(n&2){let e=m();r(),oe(e.backupList),r(4),T(" ",l(6,7,"form.button_delete_all")),r(4),T(" ",l(10,9,"common.labels.no_confirmation")," "),r(3),g("disabled",e.clicked||e.deleting)("ngbTooltip",l(13,11,"form.button_delete_all"))("openDelay",150),w("aria-label",l(14,13,"form.button_delete")),r(3),g("ngClass",z(15,Se,e.deleting!=="all",e.deleting==="all"))}}var ke=(()=>{class n{$activeModal=p(ue);$api=p(H);$route=p(I);$router=p(O);$toastr=p(P);$translate=p(R);currentConfig;fromSettings=!1;loading=!0;backupList=[];clicked=!1;deleting=null;ngOnInit(){this.getConfigBackups()}getConfigBackups(){return C(this,null,function*(){try{let e=yield $(this.$api.get("/config-editor/backups"));this.loading=!1,this.backupList=e}catch(e){this.loading=!1,console.error(e),this.$toastr.error(e.error?.message||e.message,this.$translate.instant("toast.title_error")),this.dismissModal()}})}restore(e){return this.$activeModal.close(e)}download(e){return C(this,null,function*(){this.clicked=!0;try{let t=yield $(this.$api.get(`/config-editor/backups/${e}`)),i=JSON.stringify(t,null,4),o=new Blob([i],{type:"application/json"}),E=`config-backup-${e}.json`;(0,Ee.saveAs)(o,E),this.clicked=!1}catch(t){this.clicked=!1,this.$toastr.error(t.error?.message||t.message,this.$translate.instant("toast.title_error")),console.error(t)}})}downloadCurrentConfig(){let e=`data:text/json;charset=utf-8,${encodeURIComponent(this.currentConfig)}`,t=document.createElement("a");t.setAttribute("href",e),t.setAttribute("download","config.json"),document.body.appendChild(t),t.click(),t.remove()}delete(e){return C(this,null,function*(){this.deleting=e;try{yield $(this.$api.delete(`/config-editor/backups/${e}`)),yield this.getConfigBackups(),this.deleting=null}catch(t){this.deleting=null,this.$toastr.error(t.error?.message||t.message,this.$translate.instant("toast.title_error")),console.error(t)}})}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(e){this.$toastr.error(e.error?.message||e.message,this.$translate.instant("toast.title_error")),console.error(e),this.deleting=null}})}dismissModal(){this.fromSettings&&this.$router.navigate(["/settings"],{relativeTo:this.$route}),this.$activeModal.dismiss("Dismiss")}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=A({type:n,selectors:[["ng-component"]],inputs:{currentConfig:"currentConfig",fromSettings:"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-fw","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",3,"click","disabled"],[1,"fas","fa-fw","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-fw","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","fa-fw",3,"ngClass"],["placement","bottom","container","modal","triggers","hover",1,"btn","btn-primary","m-0","ms-3",3,"click","disabled","ngbTooltip","openDelay"],[1,"fas","fa-fw","fa-history"],["placement","bottom","container","modal","triggers","hover",1,"btn","btn-primary","m-0","ms-2",3,"click","disabled","ngbTooltip","openDelay"],[1,"fas","fa-fw","fa-download"]],template:function(t,i){t&1&&(a(0,"div",0)(1,"div",1)(2,"h5",2),_(3),s(4,"translate"),d(),a(5,"button",3),s(6,"translate"),b("click",function(){return i.dismissModal()}),d()(),a(7,"div",4)(8,"div",5),f(9,"i",6),d(),a(10,"ul",7)(11,"li"),_(12),s(13,"translate"),d(),a(14,"li"),_(15),s(16,"translate"),d()(),a(17,"ul",8)(18,"li",9)(19,"div")(20,"span"),_(21),s(22,"translate"),d(),f(23,"br"),a(24,"small",10),_(25),s(26,"translate"),d()(),a(27,"button",11),s(28,"translate"),b("click",function(){return i.downloadCurrentConfig()}),f(29,"i",12),d()()(),v(30,Oe,2,0,"div",13)(31,Ne,16,18,"ul",14),d(),a(32,"div",15),f(33,"div",16),a(34,"div",17)(35,"button",18),s(36,"translate"),b("click",function(){return i.dismissModal()}),_(37),s(38,"translate"),d()(),f(39,"div",19),d()()),t&2&&(r(3),k(l(4,13,"config.restore.title")),r(2),g("disabled",i.clicked||i.deleting),w("aria-label",l(6,15,"form.button_close")),r(7),k(l(13,17,"config.restore.help_1")),r(3),k(l(16,19,"config.restore.help_2")),r(6),k(l(22,21,"form.button_download")),r(4),k(l(26,23,"config.restore.download")),r(2),g("disabled",i.clicked||i.deleting),w("aria-label",l(28,25,"backup.backup_now")),r(3),x(i.loading?30:i.backupList.length?31:-1),r(5),g("disabled",i.clicked||i.deleting),w("aria-label",l(36,27,"form.button_close")),r(2),T(" ",l(38,29,"form.button_close")," "))},dependencies:[D,le,ge,de,j],encapsulation:2})}return n})();function qe(n,y){if(n&1){let e=S();a(0,"button",13),s(1,"translate"),s(2,"translate"),b("click",function(){u(e);let i=m();return h(i.onCancelRestore())}),f(3,"i",14),d()}if(n&2){let e=m();g("disabled",e.saveInProgress)("openDelay",150)("ngbTooltip",l(1,4,"form.button_cancel")),w("aria-label",l(2,6,"form.button_cancel"))}}function Fe(n,y){if(n&1){let e=S();a(0,"button",15),s(1,"translate"),s(2,"translate"),b("click",function(){u(e);let i=m();return h(i.onRestore())}),f(3,"i",16),d()}n&2&&(g("openDelay",150)("ngbTooltip",l(1,3,"form.button_restore")),w("aria-label",l(2,5,"form.button_restore")))}function Je(n,y){if(n&1){let e=S();a(0,"button",15),s(1,"translate"),s(2,"translate"),b("click",function(){u(e);let i=m();return h(i.toggleSideBySide())}),f(3,"i",17),d()}if(n&2){let e=m();g("openDelay",150)("ngbTooltip",l(1,7,e.renderSideBySide?"config.restore.view_inline":"config.restore.view_side_by_side")),w("aria-label",l(2,9,e.renderSideBySide?"config.restore.view_inline":"config.restore.view_side_by_side")),r(3),ne("fa-columns",!e.renderSideBySide)("fa-bars",e.renderSideBySide)}}function Le(n,y){n&1&&f(0,"i",8)}function Ue(n,y){n&1&&f(0,"i",9)}function ze(n,y){if(n&1){let e=S();a(0,"ngx-monaco-editor",18),b("onInit",function(i){u(e);let o=m();return h(o.onEditorInit(i))})("keydown.control.s",function(i){u(e);let o=m();return i.preventDefault(),h(o.onSave())})("keydown.meta.s",function(i){u(e);let o=m();return i.preventDefault(),h(o.onSave())}),d()}if(n&2){let e=m();g("options",e.editorOptions)("model",e.monacoEditorModel)}}function Ke(n,y){if(n&1){let e=S();a(0,"ngx-monaco-diff-editor",19),b("onInit",function(i){u(e);let o=m();return h(o.onInitDiffEditor(i))})("keydown.control.s",function(i){u(e);let o=m();return i.preventDefault(),h(o.onSave())})("keydown.meta.s",function(i){u(e);let o=m();return i.preventDefault(),h(o.onSave())}),d()}if(n&2){let e=m();g("options",e.editorOptions)("originalModel",e.diffOriginalModel)("modifiedModel",e.diffModifiedModel)}}function We(n,y){if(n&1){let e=S();a(0,"textarea",20),ae("ngModelChange",function(i){u(e);let o=m();return se(o.homebridgeConfig,i)||(o.homebridgeConfig=i),h(i)}),_(1," "),d()}if(n&2){let e=m();re("ngModel",e.homebridgeConfig)}}var $t=(()=>{class n{$api=p(H);$md=p(we);$modal=p(he);$monacoEditor=p(xe);$route=p(I);$renderer=p(ee);$router=p(O);$settings=p(ye);$toastr=p(P);$translate=p(R);editorDecorations=[];lastHeight;visualViewPortEventCallback;latestSavedConfig;childBridgesToRestart=[];hbPendingRestart=!1;homebridgeConfig;originalConfig;saveInProgress;isMobile=!1;monacoEditor;editorOptions;monacoEditorModel;diffOriginalModel;diffModifiedModel;renderSideBySide=!1;constructor(){this.isMobile=this.$md.detect.mobile()}ngOnInit(){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(i=>{this.homebridgeConfig=i.config,this.latestSavedConfig=JSON.parse(i.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.subscribe({next:()=>this.setMonacoEditorModel()});let{action:t}=this.$router.parseUrl(this.$router.url).queryParams;if(t){switch(t){case"restore":{this.onRestore(!0);break}}this.$router.navigate([],{queryParams:{},replaceUrl:!0,queryParamsHandling:"",relativeTo:this.$route})}}onEditorInit(e){window.editor=e,this.monacoEditor=e,this.monacoEditor.getModel().setValue(this.homebridgeConfig)}onInitDiffEditor(e){this.monacoEditor=e.getModifiedEditor(),this.updateDiffModels(),window.editor=e}updateDiffModels(){if(this.diffOriginalModel&&(this.diffOriginalModel.code=this.originalConfig||""),this.diffModifiedModel&&(this.diffModifiedModel.code=this.homebridgeConfig||"{}"),window.editor&&window.editor.getOriginalEditor){let e=window.editor.getOriginalEditor(),t=window.editor.getModifiedEditor();if(e&&t){let i=e.getModel(),o=t.getModel();i&&i.setValue(this.originalConfig||""),o&&o.setValue(this.homebridgeConfig||"{}")}}}onSave(){return C(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 t=window.monaco.editor.getModelMarkers({owner:"json"});for(let i of t)if(i.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}})}onRestore(e=!1){let t=this.$modal.open(ke,{size:"lg",backdrop:"static"});t.componentInstance.currentConfig=this.homebridgeConfig,t.componentInstance.fromSettings=e,t.result.then(i=>{this.originalConfig||(this.originalConfig=this.homebridgeConfig,this.updateDiffModels()),this.$api.get(`/config-editor/backups/${i}`).subscribe({next:o=>{this.$toastr.info(this.$translate.instant("config.restore.confirm"),this.$translate.instant("config.title_backup_loaded")),this.homebridgeConfig=JSON.stringify(o,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}]))},error:o=>{console.error(o),this.$toastr.error(o.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=this.originalConfig,this.originalConfig="",this.renderSideBySide&&this.toggleSideBySide(),this.updateDiffModels(),this.onRestore()}toggleSideBySide(){this.renderSideBySide=!this.renderSideBySide,this.editorOptions=Q(G({},this.editorOptions),{renderSideBySide:this.renderSideBySide})}ngOnDestroy(){let e=document.querySelector(".content");this.$renderer.removeStyle(e,"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 t=window.monaco.Uri.parse("file:///original.json"),i=window.monaco.Uri.parse("file:///modified.json"),o=window.monaco.editor.getModel(t);o&&o.dispose();let E=window.monaco.editor.getModel(i);E&&E.dispose()}this.monacoEditor&&this.monacoEditor.dispose()}catch{}}validateSection(e,t){for(let i of e){if(typeof i!="object"||Array.isArray(i))return this.$toastr.error(this.$translate.instant("config.error_blocks_objects",{type:t}),this.$translate.instant("toast.title_error")),this.highlightOffendingArrayItem(i),!1;if(!i[t])return this.$toastr.error(this.$translate.instant("config.error_blocks_type",{type:t}),this.$translate.instant("toast.title_error")),this.highlightOffendingArrayItem(i),!1;if(typeof i[t]!="string")return this.$toastr.error(this.$translate.instant("config.error_string_type",{type:t}),this.$translate.instant("toast.title_error")),this.highlightOffendingArrayItem(i),!1}return!0}validatePlugins(e,t){for(let i of e)if(typeof i!="string")return this.$toastr.error(this.$translate.instant("config.error_string_array",{key:t}),this.$translate.instant("toast.title_error")),!1;return!0}highlightOffendingArrayItem(e){this.monacoEditor&&(e=JSON.stringify(e,null,4).split(`
|
|
2
2
|
`).map(t=>` ${t}`).join(`
|
|
3
3
|
`),setTimeout(()=>{let t=this.monacoEditor.getModel().findMatches(e);if(t.length){let i=t[0].range,o=new monaco.Range(i.startLineNumber,i.startColumn,i.endLineNumber,i.endColumn);this.editorDecorations=this.monacoEditor.deltaDecorations(this.editorDecorations,[{range:o,options:{isWholeLine:!0,linesDecorationsClassName:"hb-monaco-editor-line-error"}}])}},200))}setMonacoEditorModel(){if(window.monaco.languages.json.jsonDefaults.diagnosticsOptions.schemas.some(t=>t.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{g as r}from"./chunk-MDV2S56W.js";import{Xa as o,fa as e}from"./chunk-3LEW5FOJ.js";var m=[{path:"",loadComponent:()=>import("./chunk-
|
|
1
|
+
import{g as r}from"./chunk-MDV2S56W.js";import{Xa as o,fa as e}from"./chunk-3LEW5FOJ.js";var m=[{path:"",loadComponent:()=>import("./chunk-ZFR3B2BT.js").then(t=>t.TerminalComponent),canDeactivate:[t=>t.canDeactivate?t.canDeactivate():!0]}],n=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=o({type:t});static \u0275inj=e({imports:[r.forChild(m),r]})}return t})();var s=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=o({type:t});static \u0275inj=e({imports:[n]})}return t})();export{s as TerminalModule};
|