homebridge-config-ui-x 5.2.1-beta.3 → 5.2.1-beta.4
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/CHANGELOG.md +1 -0
- package/package.json +1 -1
- package/public/3rdpartylicenses.txt +42 -42
- package/public/{chunk-FHKNGSN4.js → chunk-44D3RT6C.js} +1 -1
- package/public/{chunk-5LVPMXW6.js → chunk-46RUL2XE.js} +1 -1
- package/public/{chunk-F3RZH23D.js → chunk-4LVGGRJG.js} +1 -1
- package/public/{chunk-PYSX24ZW.js → chunk-4YD636D6.js} +1 -1
- package/public/{chunk-DYJIASZY.js → chunk-5VPU2MAW.js} +1 -1
- package/public/{chunk-2G2G5D2C.js → chunk-636IQVQ6.js} +1 -1
- package/public/{chunk-G4N6TU5A.js → chunk-6N55TNJG.js} +1 -1
- package/public/{chunk-VAL7FQ44.js → chunk-726ATBO7.js} +1 -1
- package/public/{chunk-IF2MY3JI.js → chunk-75KAGSZ4.js} +1 -1
- package/public/{chunk-6BCYYWML.js → chunk-BBTNODGX.js} +1 -1
- package/public/{chunk-CTPZNDZV.js → chunk-BDGX3TPD.js} +1 -1
- package/public/{chunk-63ZAX4W7.js → chunk-BVZWVIXL.js} +1 -1
- package/public/{chunk-XDR6SZ6V.js → chunk-CE7OVISJ.js} +1 -1
- package/public/{chunk-D7ZJGJFL.js → chunk-D32NXBKL.js} +1 -1
- package/public/{chunk-DYCIGMJH.js → chunk-DA3GZP6L.js} +1 -1
- package/public/{chunk-WBYZSZSQ.js → chunk-F6WTXQF2.js} +1 -1
- package/public/{chunk-KBB4HBFD.js → chunk-F7KN6SGX.js} +1 -1
- package/public/{chunk-AIQQGFRW.js → chunk-GBYD7PEO.js} +1 -1
- package/public/{chunk-XP7YJNXR.js → chunk-GVBPTSHE.js} +1 -1
- package/public/{chunk-YXXZXBDD.js → chunk-JORJGGYF.js} +1 -1
- package/public/{chunk-SQ2NNUW2.js → chunk-JUNUASP3.js} +1 -1
- package/public/{chunk-ENGXYMKB.js → chunk-JYDMQWOG.js} +1 -1
- package/public/{chunk-FBUXDF7O.js → chunk-KSAOC3CS.js} +1 -1
- package/public/{chunk-ZM3OKI4W.js → chunk-KX3A2TMK.js} +1 -1
- package/public/{chunk-34CFUFM4.js → chunk-LBTU3QZ3.js} +1 -1
- package/public/{chunk-2JQYF33Q.js → chunk-LTGIRFYB.js} +1 -1
- package/public/chunk-MEKSPPI3.js +28 -0
- package/public/{chunk-SUZY3J7O.js → chunk-OR2NR7FR.js} +1 -1
- package/public/chunk-OY4HWAQQ.js +1 -0
- package/public/{chunk-P5U4CYHB.js → chunk-PK3IEBRR.js} +1 -1
- package/public/{chunk-CBXKL2D4.js → chunk-PSGAWGOS.js} +1 -1
- package/public/{chunk-IMN7H4JK.js → chunk-PURQ26Z3.js} +1 -1
- package/public/{chunk-2IJIUQHS.js → chunk-R4QPH5AB.js} +1 -1
- package/public/{chunk-GPUZPTN4.js → chunk-ROEV5JQZ.js} +1 -1
- package/public/{chunk-MY2GNSS3.js → chunk-TIO3GNB7.js} +1 -1
- package/public/{chunk-VH7BMERV.js → chunk-UB3D74GZ.js} +1 -1
- package/public/{chunk-YCH3UKFR.js → chunk-UZZQ6FK7.js} +1 -1
- package/public/{chunk-FBYHCCLN.js → chunk-V5OEAUHL.js} +1 -1
- package/public/{chunk-2OFCKVVD.js → chunk-VQVQ7IY7.js} +1 -1
- package/public/chunk-WGY4AVVT.js +20 -0
- package/public/{chunk-R3ZK4BA7.js → chunk-X3JAGHJK.js} +1 -1
- package/public/{chunk-2SPNEO5Z.js → chunk-X5UDVMII.js} +1 -1
- package/public/{chunk-6UTN7LNS.js → chunk-XBVV5T2W.js} +1 -1
- package/public/chunk-XDDPTQEI.js +14 -0
- package/public/{chunk-BXK2GHAW.js → chunk-YPSEKDJZ.js} +1 -1
- package/public/{chunk-UPXAGR47.js → chunk-Z5CQQDBM.js} +1 -1
- package/public/{chunk-WGDEWOJU.js → chunk-ZNKFUL7Z.js} +1 -1
- package/public/index.html +1 -1
- package/public/main-7B7QR472.js +1 -0
- package/public/chunk-2EA5UCBE.js +0 -20
- package/public/chunk-2RKUDCJ6.js +0 -28
- package/public/chunk-CP4425IM.js +0 -1
- package/public/chunk-PJDX7TKL.js +0 -14
- package/public/main-ZXPYW5WY.js +0 -1
package/public/chunk-2EA5UCBE.js
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import{a as re}from"./chunk-WAEIH452.js";import{a as ne}from"./chunk-QLQG37MU.js";import{a as oe,b as me}from"./chunk-PJDX7TKL.js";import{a as X,b as Z}from"./chunk-ZT56WXIZ.js";import{a as ie}from"./chunk-P3TP4J62.js";import{m as D,n as G,t as Q}from"./chunk-PSSVCFFV.js";import{c as K,e as U,l as W,z as Y}from"./chunk-K2NEWUWG.js";import{b as ee}from"./chunk-QRQBCPWO.js";import{b as te}from"./chunk-YXXZXBDD.js";import{k as I,n as j}from"./chunk-CTPZNDZV.js";import{a as A,b as S}from"./chunk-ZG3HINDJ.js";import"./chunk-K7QEGT3E.js";import{Hb as C,Hc as r,Ib as m,Ic as a,Jb as p,Jc as z,Lb as B,Mb as L,Nb as O,Ob as k,Pb as f,Qb as d,Rb as v,Sb as g,Tb as _,Ub as V,_b as w,ab as n,bc as E,cc as M,dc as l,fb as R,g as ce,h as H,la as c,mb as T,pd as J,qc as y,ra as h,rc as x,sa as b,sc as $,w as P,xc as N,yc as q,zc as F}from"./chunk-V7SOQAC5.js";var de=ce(me(),1);var se=(()=>{class o{$activeModal=c(D);dismissModal(){this.$activeModal.dismiss("Dismiss")}static \u0275fac=function(i){return new(i||o)};static \u0275cmp=T({type:o,selectors:[["ng-component"]],decls:19,vars:9,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click"],[1,"modal-body"],[1,"text-center","mb-3"],[1,"fa","fa-fw","fa-question-circle-o","primary-text",2,"font-size","75px"],[1,"modal-footer","justify-content-between"],[1,"text-start"],[1,"text-center"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],[1,"text-end"]],template:function(i,t){i&1&&(f(0,"div",0)(1,"form")(2,"div",1)(3,"h5",2),y(4),r(5,"translate"),d(),f(6,"button",3),r(7,"translate"),E("click",function(){return t.dismissModal()}),d()(),f(8,"div",4)(9,"div",5),v(10,"i",6),d(),v(11,"app-support-banner"),d(),f(12,"div",7),v(13,"div",8),f(14,"div",9)(15,"button",10),E("click",function(){return t.dismissModal()}),y(16),r(17,"translate"),d()(),v(18,"div",11),d()()()),i&2&&(n(4),x(a(5,3,"support.title")),n(2),C("aria-label",a(7,5,"form.button_close")),n(10),$(" ",a(17,7,"form.button_close")," "))},dependencies:[ne,S],encapsulation:2})}return o})();function pe(o,u){o&1&&(g(0,"div",5),V(1,"i",12),_())}function fe(o,u){if(o&1){let e=w();g(0,"li",17),y(1),r(2,"date"),g(3,"button",18),r(4,"translate"),M("click",function(){let t=h(e).$implicit,s=l(3);return b(s.restore(t.id))}),V(5,"i",19),_()()}if(o&2){let e=u.$implicit;n(),$(" ",z(2,2,e.timestamp,"medium")," "),n(2),C("aria-label",a(4,5,"config.restore.copy_to_editor"))}}function ge(o,u){if(o&1&&(g(0,"ul",15),L(1,fe,6,7,"li",17,B),_()),o&2){let e=l(2);n(),O(e.backupList)}}function ue(o,u){o&1&&(g(0,"p",16),y(1),r(2,"translate"),_()),o&2&&(n(),x(a(2,1,"config.restore.no_backups")))}function he(o,u){if(o&1&&(g(0,"div",13),V(1,"i",14),_(),g(2,"p",13),y(3),r(4,"translate"),_(),m(5,ge,3,0,"ul",15),m(6,ue,3,3,"p",16)),o&2){let e=l();n(3),x(a(4,3,"config.restore.title_restore_homebridge_backup")),n(2),p(e.backupList&&e.backupList.length?5:-1),n(),p(!e.backupList||!e.backupList.length?6:-1)}}function be(o,u){if(o&1){let e=w();g(0,"button",20),r(1,"translate"),M("click",function(){h(e);let t=l();return b(t.dismissModal())}),y(2),r(3,"translate"),_()}o&2&&(C("aria-label",a(1,2,"form.button_close")),n(2),$(" ",a(3,4,"form.button_close")," "))}function _e(o,u){if(o&1){let e=w();g(0,"button",20),r(1,"translate"),M("click",function(){h(e);let t=l();return b(t.dismissModal())}),y(2),r(3,"translate"),_()}o&2&&(C("aria-label",a(1,2,"form.button_close")),n(2),$(" ",a(3,4,"form.button_close")," "))}function Ce(o,u){if(o&1){let e=w();g(0,"button",21),r(1,"translate"),M("click",function(){h(e);let t=l();return b(t.deleteAllBackups())}),y(2),r(3,"translate"),_()}o&2&&(C("aria-label",a(1,2,"form.button_remove")),n(2),$(" ",a(3,4,"form.button_remove")," "))}var le=(()=>{class o{$activeModal=c(D);$api=c(j);$toastr=c(I);$translate=c(A);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"))}})}dismissModal(){this.$activeModal.dismiss("Dismiss")}static \u0275fac=function(i){return new(i||o)};static \u0275cmp=T({type:o,selectors:[["ng-component"]],decls:17,vars:11,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click"],[1,"modal-body"],[1,"text-center","primary-text"],[1,"modal-footer","justify-content-between"],[1,"text-start"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant"],[1,"text-center"],[1,"text-end"],["type","button",1,"btn","btn-danger","me-auto"],[1,"fa","fa-fw","fa-cog","fa-spin",2,"font-size","75px"],[1,"text-center","mb-3"],[1,"fas","fa-fw","fa-history","primary-text",2,"font-size","75px"],[1,"list-group","list-group-box"],[1,"text-center","mb-0"],[1,"list-group-item","d-flex","justify-content-between","align-items-center"],[1,"btn","btn-primary","m-0","ms-3",3,"click"],[1,"fas","fa-fw","fa-arrow-right"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],["type","button",1,"btn","btn-danger","me-auto",3,"click"]],template:function(i,t){i&1&&(g(0,"div",0)(1,"div",1)(2,"h5",2),y(3),r(4,"translate"),_(),g(5,"button",3),r(6,"translate"),M("click",function(){return t.dismissModal()}),_()(),g(7,"div",4),m(8,pe,2,0,"div",5),m(9,he,7,5),_(),g(10,"div",6)(11,"div",7),m(12,be,4,6,"button",8),_(),g(13,"div",9),m(14,_e,4,6,"button",8),_(),g(15,"div",10),m(16,Ce,4,6,"button",11),_()()()),i&2&&(n(3),x(a(4,7,"form.button_restore")),n(2),C("aria-label",a(6,9,"form.button_close")),n(3),p(t.loading?8:-1),n(),p(t.loading?-1:9),n(3),p(!t.loading&&t.backupList.length?12:-1),n(2),p(t.loading||!t.loading&&!t.backupList.length?14:-1),n(2),p(!t.loading&&t.backupList.length?16:-1))},dependencies:[J,S],encapsulation:2})}return o})();function ye(o,u){if(o&1){let e=w();f(0,"button",16),r(1,"translate"),r(2,"translate"),E("click",function(){h(e);let t=l();return b(t.onExportConfig())}),v(3,"i",17),d()}o&2&&(k("ngbTooltip",a(1,2,"form.button_download")),C("aria-label",a(2,4,"form.button_download")))}function ve(o,u){if(o&1){let e=w();f(0,"button",18),r(1,"translate"),r(2,"translate"),E("click",function(){h(e);let t=l();return b(t.onCancelRestore())}),v(3,"i",19),d()}if(o&2){let e=l();k("disabled",e.saveInProgress)("ngbTooltip",a(1,3,"form.button_cancel")),C("aria-label",a(2,5,"form.button_cancel"))}}function we(o,u){if(o&1){let e=w();f(0,"button",20),r(1,"translate"),r(2,"translate"),E("click",function(){h(e);let t=l();return b(t.onRestore())}),v(3,"i",21),d()}o&2&&(k("ngbTooltip",a(1,2,"form.button_restore")),C("aria-label",a(2,4,"form.button_restore")))}function Ee(o,u){o&1&&v(0,"i",9)}function xe(o,u){o&1&&v(0,"i",10)}function ke(o,u){if(o&1){let e=w();f(0,"ngx-monaco-editor",22),E("onInit",function(t){h(e);let s=l();return b(s.onEditorInit(t))})("keydown.control.s",function(t){h(e);let s=l();return t.preventDefault(),b(s.onSave())})("keydown.meta.s",function(t){h(e);let s=l();return t.preventDefault(),b(s.onSave())}),d()}if(o&2){let e=l();k("options",e.editorOptions)("model",e.monacoEditorModel)}}function $e(o,u){if(o&1){let e=w();f(0,"ngx-monaco-diff-editor",23),E("onInit",function(t){h(e);let s=l();return b(s.onInitDiffEditor(t))})("keydown.control.s",function(t){h(e);let s=l();return t.preventDefault(),b(s.onSave())})("keydown.meta.s",function(t){h(e);let s=l();return t.preventDefault(),b(s.onSave())}),d()}if(o&2){let e=l();k("options",e.editorOptions)("originalModel",e.monacoEditorModel)("modifiedModel",e.monacoEditorModel)}}function Te(o,u){if(o&1){let e=w();f(0,"textarea",24),F("ngModelChange",function(t){h(e);let s=l();return q(s.homebridgeConfig,t)||(s.homebridgeConfig=t),b(t)}),y(1," "),d()}if(o&2){let e=l();N("ngModel",e.homebridgeConfig)}}var rt=(()=>{class o{$api=c(j);$md=c(ie);$modal=c(G);$monacoEditor=c(re);$route=c(ee);$renderer=c(R);$settings=c(te);$toastr=c(I);$translate=c(A);editorDecorations=[];lastHeight;visualViewPortEventCallback;homebridgeConfig;originalConfig;saveInProgress;isMobile=!1;monacoEditor;editorOptions;monacoEditorModel;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 H(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}})}onRestore(){this.$modal.open(le,{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=""}openSupport(){this.$modal.open(se,{size:"lg",backdrop:"static"})}ngOnDestroy(){let e=document.querySelector(".content");this.$renderer.removeStyle(e,"height"),window.visualViewport&&(window.visualViewport.removeEventListener("resize",this.visualViewPortEventCallback,!0),this.$md.enableTouchMove()),this.monacoEditor&&this.monacoEditor.dispose()}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
|
-
`).map(i=>` ${i}`).join(`
|
|
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
|
-
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).
|
|
5
|
-
You should change this pin if you need to re-pair your instance with HomeKit.
|
|
6
|
-
Example: 0E:89:49:64:91:86`,default:"0E:89:49:64:91:86",pattern:"^([A-Fa-f0-9]{2}:){5}[A-Fa-f0-9]{2}$"},port:{type:"number",description:`The port Homebridge listens on.
|
|
7
|
-
If running more than one instance of Homebridge on the same server make sure each instance is given a unique port.`,default:51173,minimum:1025,maximum:65534},pin:{type:"string",description:`The Homebridge instance pin.
|
|
8
|
-
This is used when pairing Homebridge to HomeKit.
|
|
9
|
-
Example: 630-27-655`,default:"630-27-655",pattern:"^([0-9]{3}-[0-9]{2}-[0-9]{3})$"},manufacturer:{type:"string",description:"The bridge manufacturer to be displayed in HomeKit"},firmwareRevision:{type:"string",description:"The bridge firmware version to be displayed in HomeKit"},model:{type:"string",description:"The bridge model to be displayed in HomeKit"},bind:{description:`A string or an array of strings with the name(s) of the network interface(s) Homebridge should bind to.
|
|
10
|
-
|
|
11
|
-
Requires Homebridge v1.3 or later.`,type:["string","array"],items:{type:"string",description:"Network Interface name that Homebridge should bind to."}}},default:{name:"Homebridge",username:"0E:89:49:64:91:86",port:51173,pin:"6302-7655"}},mdns:{type:"object",properties:{interface:{type:"string",description:`The interface or IP address of the interface you want Homebridge to listen on. This is useful if your server has multiple interfaces.
|
|
12
|
-
|
|
13
|
-
Deprecated as of Homebridge v1.3.0 - use bridge.bind instead.`},legacyAdvertiser:{type:"boolean",description:"Set to `false` to use the new mdns library, ciao."}},default:{legacyAdvertiser:!1}},plugins:{type:"array",description:"An array of plugins that should be selectively enabled. Remove this array to enable all plugins.",items:{type:"string",description:`The full plugin npm package name.
|
|
14
|
-
Example: homebridge-dummy`},default:["homebridge-config-ui-x"]},disabledPlugins:{type:"array",description:`An array of plugins that should be disabled.
|
|
15
|
-
|
|
16
|
-
Requires Homebridge v1.3 or later.`,items:{type:"string",description:`The full plugin npm package name.
|
|
17
|
-
Example: homebridge-dummy`},default:[]},ports:{type:"object",description:"The range of ports that should be used for certain accessories like cameras and TVs",required:["start","end"],properties:{start:{type:"number",default:52100,minimum:1025,maximum:65534},end:{type:"number",default:52150,minimum:1025,maximum:65534}},default:{start:52100,end:52150}},platforms:{type:"array",description:`Any plugin that exposes a platform should have its config entered in this array.
|
|
18
|
-
Separate each plugin config block using a comma.`,items:{type:"object",required:["platform"],anyOf:[{type:"object",required:["platform"],properties:{platform:{type:"string",description:"This is used by Homebridge to identify which plugin this platform belongs to.",not:{enum:["config"]}},name:{type:"string",description:"The name of the platform."}}},{type:"object",properties:{platform:{type:"string",description:`Homebridge UI platform name must be set to "config".
|
|
19
|
-
Do Not Change!`,oneOf:[{enum:"config"}]},name:{type:"string",description:"The name used in the Homebridge log."}}}]}},accessories:{type:"array",description:`Any plugin that exposes an accessory should have its config entered in this array.
|
|
20
|
-
Separate each plugin config block using a comma.`,items:{type:"object",required:["accessory","name"],properties:{accessory:{type:"string",description:"This is used by Homebridge to identify which plugin this accessory belongs to."},name:{type:"string",description:"The name of the accessory."}}}}}}}]}),this.monacoEditorModel.uri=monaco.Uri.parse("a://homebridge/config.json")}visualViewPortChanged(){this.lastHeight<window.visualViewport.height&&document.activeElement.blur(),window.visualViewport.height<window.innerHeight?(this.$md.enableTouchMove(),this.lastHeight=window.visualViewport.height):window.visualViewport.height===window.innerHeight&&(this.$md.disableTouchMove(),this.lastHeight=window.visualViewport.height)}saveConfig(e){return H(this,null,function*(){try{let i=yield P(this.$api.post("/config-editor",e));this.homebridgeConfig=JSON.stringify(i,null,4),this.$modal.open(oe,{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"))}})}parseConfigFromEditor(){try{return JSON.parse(this.homebridgeConfig)}catch{let i=de.default.parse(this.homebridgeConfig);return this.homebridgeConfig=JSON.stringify(i,null,4),this.monacoEditor&&this.monacoEditor.getModel().setValue(this.homebridgeConfig),i}}static \u0275fac=function(i){return new(i||o)};static \u0275cmp=T({type:o,selectors:[["ng-component"]],decls:21,vars:21,consts:[[1,"flex-column","d-flex","align-items-stretch","h-100"],[1,"row"],[1,"col-6"],[1,"primary-text","m-0"],[1,"col-6","text-end"],["container","body","placement","bottom","openDelay","150","triggers","hover",1,"btn","btn-elegant","waves-effect","my-0","me-2","d-none","d-sm-inline-block",3,"ngbTooltip"],["container","body","placement","bottom","openDelay","150","triggers","hover",1,"btn","btn-danger","waves-effect","my-0","me-2",3,"disabled","ngbTooltip"],["container","body","placement","bottom","openDelay","150","triggers","hover",1,"btn","btn-elegant","waves-effect","my-0","me-2",3,"ngbTooltip"],["container","body","placement","bottom","openDelay","150","triggers","hover",1,"btn","btn-elegant","waves-effect","my-0","me-2",3,"click","disabled","ngbTooltip"],[1,"fas","fa-fw","fa-floppy-disk"],[1,"fas","fa-fw","fa-spinner","fa-pulse"],["type","button",1,"btn","btn-elegant","my-0","me-0",3,"click"],[1,"fa","fa-fw","fa-question-circle-o"],[1,"flex-grow-1","h-100","w-100","mt-3","mb-0",3,"options","model"],[1,"flex-grow-1","h-100","w-100","mt-3","mb-0",3,"options","originalModel","modifiedModel"],["wrap","off","autocomplete","off","autocorrect","off","autocapitalize","off","spellcheck","false",1,"hb-plain-text-editor","align-self-end","h-100","w-100","my-3",3,"ngModel"],["container","body","placement","bottom","openDelay","150","triggers","hover",1,"btn","btn-elegant","waves-effect","my-0","me-2","d-none","d-sm-inline-block",3,"click","ngbTooltip"],[1,"fas","fa-fw","fa-download"],["container","body","placement","bottom","openDelay","150","triggers","hover",1,"btn","btn-danger","waves-effect","my-0","me-2",3,"click","disabled","ngbTooltip"],[1,"fas","fa-fw","fa-times"],["container","body","placement","bottom","openDelay","150","triggers","hover",1,"btn","btn-elegant","waves-effect","my-0","me-2",3,"click","ngbTooltip"],[1,"fas","fa-fw","fa-history"],[1,"flex-grow-1","h-100","w-100","mt-3","mb-0",3,"onInit","keydown.control.s","keydown.meta.s","options","model"],[1,"flex-grow-1","h-100","w-100","mt-3","mb-0",3,"onInit","keydown.control.s","keydown.meta.s","options","originalModel","modifiedModel"],["wrap","off","autocomplete","off","autocorrect","off","autocapitalize","off","spellcheck","false",1,"hb-plain-text-editor","align-self-end","h-100","w-100","my-3",3,"ngModelChange","ngModel"]],template:function(i,t){i&1&&(f(0,"div",0)(1,"div",1)(2,"div",2)(3,"h3",3),y(4),r(5,"translate"),d()(),f(6,"div",4),m(7,ye,4,6,"button",5),m(8,ve,4,7,"button",6),m(9,we,4,6,"button",7),f(10,"button",8),r(11,"translate"),r(12,"translate"),E("click",function(){return t.onSave()}),m(13,Ee,1,0,"i",9),m(14,xe,1,0,"i",10),d(),f(15,"button",11),r(16,"translate"),E("click",function(){return t.openSupport()}),v(17,"i",12),d()()(),m(18,ke,1,2,"ngx-monaco-editor",13),m(19,$e,1,3,"ngx-monaco-diff-editor",14),m(20,Te,2,1,"textarea",15),d()),i&2&&(n(4),x(a(5,13,"menu.config_json_editor")),n(3),p(t.originalConfig?-1:7),n(),p(t.originalConfig?8:-1),n(),p(t.originalConfig?-1:9),n(),k("disabled",t.saveInProgress)("ngbTooltip",a(11,15,"form.button_save")),C("aria-label",a(12,17,"form.button_save")),n(3),p(t.saveInProgress?-1:13),n(),p(t.saveInProgress?14:-1),n(),C("aria-label",a(16,19,"support.title")),n(3),p(!t.isMobile&&!t.originalConfig?18:-1),n(),p(!t.isMobile&&t.originalConfig?19:-1),n(),p(t.isMobile?20:-1))},dependencies:[Q,X,Z,Y,K,U,W,S],encapsulation:2})}return o})();export{rt as ConfigEditorComponent};
|