Software: Apache/2.4.41 (Ubuntu). PHP/8.0.30 uname -a: Linux apirnd 5.4.0-204-generic #224-Ubuntu SMP Thu Dec 5 13:38:28 UTC 2024 x86_64 uid=33(www-data) gid=33(www-data) groups=33(www-data) Safe-mode: OFF (not secure) /usr/local/lib/node_modules/homebridge-config-ui-x/public/ drwxr-xr-x | |
| Viewing file: Select action/file-type: (self.webpackChunkui=self.webpackChunkui||[]).push([[909],{18909:function(t,e,i){"use strict";i.r(e),i.d(e,{ConfigEditorModule:function(){return H}});var o=i(38583),n=i(3679),s=i(95935),r=i(36592),a=i(63423),c=i(64762),l=i(88701),d=i(37716),g=i(71271),f=i(49344),u=i(79274);const h=["class","restore-backup"];function m(t,e){1&t&&(d.TgZ(0,"div",12),d._UZ(1,"i",13),d.qZA())}function p(t,e){if(1&t){const t=d.EpF();d.TgZ(0,"tr"),d.TgZ(1,"td",16),d._uU(2),d.ALo(3,"date"),d.qZA(),d.TgZ(4,"td",17),d.TgZ(5,"a",18),d.NdJ("click",function(){const e=d.CHM(t).$implicit;return d.oxw(2).restore(e.id)}),d._uU(6),d.ALo(7,"translate"),d._UZ(8,"i",19),d.qZA(),d.qZA(),d.qZA()}if(2&t){const t=e.$implicit;d.xp6(2),d.Oqu(d.xi3(3,2,t.timestamp,"medium")),d.xp6(4),d.hij("",d.lcZ(7,5,"config.restore.message_copy_to_editor")," ")}}function b(t,e){if(1&t&&(d.TgZ(0,"table",14),d.TgZ(1,"tbody"),d.YNc(2,p,9,7,"tr",15),d.qZA(),d.qZA()),2&t){const t=d.oxw();d.xp6(2),d.Q6J("ngForOf",t.backupList)}}function y(t,e){1&t&&(d.TgZ(0,"div"),d.TgZ(1,"h3",20),d._uU(2,"No Backups"),d.qZA(),d.qZA()),2&t&&(d.xp6(1),d.Q6J("translate","config.restore.message_no_backups"))}function w(t,e){if(1&t){const t=d.EpF();d.TgZ(0,"button",21),d.NdJ("click",function(){return d.CHM(t),d.oxw().deleteAllBackups()}),d._uU(1,"Remove All Backups"),d.qZA()}2&t&&d.Q6J("translate","config.restore.button_remote_all_backups")}let v=(()=>{class t{constructor(t,e,i,o){this.activeModal=t,this.translate=e,this.$toastr=i,this.$api=o,this.loading=!0,this.backupList=[]}ngOnInit(){this.$api.get("/config-editor/backups").subscribe(t=>{this.loading=!1,this.backupList=t},t=>{this.loading=!1,this.$toastr.error(t.error.message,this.translate.instant("config.restore.toast_failed_to_load_backups"))})}restore(t){return this.activeModal.close(t)}deleteAllBackups(){return this.$api.delete("/config-editor/backups").subscribe(t=>{this.activeModal.dismiss(),this.$toastr.success(this.translate.instant("config.restore.toast_backups_deleted"),this.translate.instant("toast.title_success"))},t=>this.$toastr.error(t.error.message,this.translate.instant("config.restore.toast_failed_to_delete_backups")))}}return t.\u0275fac=function(e){return new(e||t)(d.Y36(g.Kz),d.Y36(s.sK),d.Y36(f._W),d.Y36(u.s))},t.\u0275cmp=d.Xpm({type:t,selectors:[["app-config",8,"restore-backup"]],attrs:h,decls:15,vars:6,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title",3,"translate"],["type","button","data-dismiss","modal","aria-label","Close",1,"close",3,"click"],["aria-hidden","true"],[1,"modal-body"],["class","text-center primary-text",4,"ngIf"],["class","table table-borderless table-hover table-sm",4,"ngIf"],[4,"ngIf"],[1,"modal-footer"],["type","button","class","btn btn-elegant mr-auto",3,"translate","click",4,"ngIf"],["type","button","data-dismiss","modal",1,"btn","btn-primary",3,"translate","click"],[1,"text-center","primary-text"],[1,"fa","fa-cog","fa-spin",2,"font-size","72px"],[1,"table","table-borderless","table-hover","table-sm"],[4,"ngFor","ngForOf"],[1,"w-100"],["nowrap",""],[1,"card-link",3,"click"],[1,"fas","fa-arrow-right"],[1,"text-center",3,"translate"],["type","button",1,"btn","btn-elegant","mr-auto",3,"translate","click"]],template:function(t,e){1&t&&(d.TgZ(0,"div",0),d.TgZ(1,"div",1),d.TgZ(2,"h5",2),d._uU(3," Restore Homebridge Config Backup "),d.qZA(),d.TgZ(4,"button",3),d.NdJ("click",function(){return e.activeModal.dismiss("Cross click")}),d.TgZ(5,"span",4),d._uU(6,"\xd7"),d.qZA(),d.qZA(),d.qZA(),d.TgZ(7,"div",5),d.YNc(8,m,2,0,"div",6),d.YNc(9,b,3,1,"table",7),d.YNc(10,y,3,1,"div",8),d.qZA(),d.TgZ(11,"div",9),d.YNc(12,w,2,1,"button",10),d.TgZ(13,"button",11),d.NdJ("click",function(){return e.activeModal.dismiss("Cross click")}),d._uU(14,"Cancel"),d.qZA(),d.qZA(),d.qZA()),2&t&&(d.xp6(2),d.Q6J("translate","config.restore.title_restore_homebridge_backup"),d.xp6(6),d.Q6J("ngIf",e.loading),d.xp6(1),d.Q6J("ngIf",!e.loading&&e.backupList&&e.backupList.length),d.xp6(1),d.Q6J("ngIf",!(e.loading||e.backupList&&e.backupList.length)),d.xp6(2),d.Q6J("ngIf",!e.loading&&e.backupList.length),d.xp6(1),d.Q6J("translate","form.button_cancel"))},directives:[s.Pi,o.O5,o.sg],pipes:[o.uU,s.X$],encapsulation:2}),t})();var _=i(92503),k=i(58605),x=i(64959),A=i(37319);function C(t,e){if(1&t){const t=d.EpF();d.TgZ(0,"button",15),d.NdJ("click",function(){return d.CHM(t),d.oxw().onCancelRestore()}),d.qZA()}if(2&t){const t=d.oxw();d.Q6J("disabled",t.saveInProgress)}}function Z(t,e){1&t&&d._UZ(0,"i",16)}function M(t,e){if(1&t){const t=d.EpF();d.TgZ(0,"ngx-monaco-editor",17),d.NdJ("onInit",function(e){return d.CHM(t),d.oxw().onEditorInit(e)})("keydown.control.s",function(e){d.CHM(t);const i=d.oxw();return e.preventDefault(),i.onSave()})("keydown.meta.s",function(e){d.CHM(t);const i=d.oxw();return e.preventDefault(),i.onSave()}),d.qZA()}if(2&t){const t=d.oxw();d.Q6J("options",t.editorOptions)("model",t.monacoEditorModel)}}function E(t,e){if(1&t){const t=d.EpF();d.TgZ(0,"ngx-monaco-diff-editor",18),d.NdJ("onInit",function(e){return d.CHM(t),d.oxw().onInitDiffEditor(e)})("keydown.control.s",function(e){d.CHM(t);const i=d.oxw();return e.preventDefault(),i.onSave()})("keydown.meta.s",function(e){d.CHM(t);const i=d.oxw();return e.preventDefault(),i.onSave()}),d.qZA()}if(2&t){const t=d.oxw();d.Q6J("options",t.editorOptions)("originalModel",t.monacoEditorModel)("modifiedModel",t.monacoEditorModel)}}function $(t,e){if(1&t){const t=d.EpF();d.TgZ(0,"textarea",19),d.NdJ("ngModelChange",function(e){return d.CHM(t),d.oxw().homebridgeConfig=e}),d._uU(1," "),d.qZA()}if(2&t){const t=d.oxw();d.Q6J("ngModel",t.homebridgeConfig)}}let T=(()=>{class t{constructor(t,e,i,o,n,s,r,a,c){this.$settings=t,this.$api=e,this.$md=i,this.$monacoEditor=o,this.$notification=n,this.$toastr=s,this.$route=r,this.translate=a,this.modalService=c,this.isMobile=!1,this.editorOptions={language:"json",theme:this.$settings.theme.startsWith("dark-mode")?"vs-dark":"vs-light",automaticLayout:!0},this.editorDecoractions=[],this.isMobile=this.$md.detect.mobile()}ngOnInit(){this.visualViewPortEventCallback=()=>this.visualViewPortChanged(),this.lastHeight=window.innerHeight,window.visualViewport&&!this.isMobile&&(window.visualViewport.addEventListener("resize",this.visualViewPortEventCallback,!0),this.$md.disableTouchMove()),this.$route.data.subscribe(t=>{this.homebridgeConfig=t.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(t){this.monacoEditor=t,this.monacoEditor.getModel().setValue(this.homebridgeConfig),window.editor=t}onInitDiffEditor(t){this.monacoEditor=t.modifiedEditor,t.getModel().original.setValue(this.originalConfig),t.getModel().modified.setValue(this.homebridgeConfig),window.editor=t}onSave(){return(0,c.mG)(this,void 0,void 0,function*(){if(!this.saveInProgress){this.monacoEditor&&(this.editorDecoractions=this.monacoEditor.deltaDecorations(this.editorDecoractions,[])),this.saveInProgress=!0;try{if(!this.isMobile){yield this.monacoEditor.getAction("editor.action.formatDocument").run();const t=window.monaco.editor.getModelMarkers({owner:"json"});for(const e of t)if("Duplicate object key"===e.message)return this.saveInProgress=!1,void this.$toastr.error(this.translate.instant("config.toast_config_invalid_json"),this.translate.instant("config.toast_title_config_syntax_error"));this.homebridgeConfig=this.monacoEditor.getModel().getValue()}const t=this.parseConfigFromEditor();this.homebridgeConfig=JSON.stringify(t,null,4),"object"!=typeof t.bridge?this.$toastr.error(this.translate.instant("config.toast_config_bridge_missing"),this.translate.instant("config.toast_title_config_error")):/^([0-9A-Fa-f]{2}[:]){5}([0-9A-Fa-f]{2})$/.test(t.bridge.username)?t.accessories&&!Array.isArray(t.accessories)?this.$toastr.error(this.translate.instant("config.toast_config_accessory_must_be_array"),this.translate.instant("config.toast_title_config_error")):t.platforms&&!Array.isArray(t.platforms)?this.$toastr.error(this.translate.instant("config.toast_config_platform_must_be_array"),this.translate.instant("config.toast_title_config_error")):t.platforms&&Array.isArray(t.platforms)&&!this.validateSection(t.platforms,"platform")||t.accessories&&Array.isArray(t.accessories)&&!this.validateSection(t.accessories,"accessory")||t.plugins&&Array.isArray(t.plugins)&&!this.validatePlugins(t.plugins,"plugins")||t.disabledPlugins&&Array.isArray(t.disabledPlugins)&&!this.validatePlugins(t.disabledPlugins,"disabledPlugins")||(yield this.saveConfig(t),this.originalConfig=""):this.$toastr.error(this.translate.instant("config.toast_config_username_format_error"),this.translate.instant("config.toast_title_config_error"))}catch(t){this.$toastr.error(this.translate.instant("config.toast_config_invalid_json"),this.translate.instant("config.toast_title_config_syntax_error"))}this.saveInProgress=!1}})}parseConfigFromEditor(){try{return JSON.parse(this.homebridgeConfig)}catch(t){const e=l.parse(this.homebridgeConfig);return this.homebridgeConfig=JSON.stringify(e,null,4),this.monacoEditor&&this.monacoEditor.getModel().setValue(this.homebridgeConfig),e}}saveConfig(t){return this.$api.post("/config-editor",t).toPromise().then(t=>{this.$notification.configUpdated.next(),this.$toastr.success(this.translate.instant("config.toast_config_saved"),this.translate.instant("toast.title_success")),this.homebridgeConfig=JSON.stringify(t,null,4)}).catch(t=>{this.$toastr.error(this.translate.instant("config.toast_failed_to_save_config"),this.translate.instant("toast.title_error"))})}onRestore(){this.modalService.open(v,{size:"lg"}).result.then(t=>{this.originalConfig||(this.originalConfig=this.homebridgeConfig),this.$api.get(`/config-editor/backups/${t}`).subscribe(t=>{this.$toastr.warning(this.translate.instant("config.toast_click_save_to_confirm_backup_restore"),this.translate.instant("config.toast_title_backup_loaded")),this.homebridgeConfig=JSON.stringify(t,null,4),this.monacoEditor&&window.editor.modifiedEditor&&(this.editorDecoractions=this.monacoEditor.deltaDecorations(this.editorDecoractions,[]),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}]))},t=>this.$toastr.error(t.error.message||"Failed to load config backup",this.translate.instant("toast.title_error")))}).catch(()=>{})}onExportConfig(){const t="data:text/json;charset=utf-8,"+encodeURIComponent(this.homebridgeConfig),e=document.createElement("a");e.setAttribute("href",t),e.setAttribute("download","config.json"),document.body.appendChild(e),e.click(),e.remove()}onCancelRestore(){this.homebridgeConfig=this.originalConfig,this.originalConfig=""}validateSection(t,e){for(const i of t){if("object"!=typeof i||Array.isArray(i))return this.$toastr.error(`All ${e} blocks must be objects.`),this.highlightOffendingArrayItem(i),!1;if(!i[e])return this.$toastr.error(`All ${e} blocks must contain the "${e}" attribute.`),this.highlightOffendingArrayItem(i),!1;if("string"!=typeof i[e])return this.$toastr.error(`The "${e}" attribute must be a string.`),this.highlightOffendingArrayItem(i),!1}return!0}validatePlugins(t,e){for(const i of t)if("string"!=typeof i)return this.$toastr.error(`Each item in the ${e} array must be a string.`),!1;return!0}highlightOffendingArrayItem(t){this.monacoEditor&&(t=JSON.stringify(t,null,4).split("\n").map(t=>" "+t).join("\n"),setTimeout(()=>{const e=this.monacoEditor.getModel().findMatches(t);if(e.length){const t=e[0].range,i=new monaco.Range(t.startLineNumber,t.startColumn,t.endLineNumber,t.endColumn);this.editorDecoractions=this.monacoEditor.deltaDecorations(this.editorDecoractions,[{range:i,options:{isWholeLine:!0,linesDecorationsClassName:"hb-monaco-editor-line-error"}}])}},200))}setMonacoEditorModel(){if(window.monaco.languages.json.jsonDefaults.diagnosticsOptions.schemas.some(t=>"http://homebridge/config.json"===t.uri))return;const t=monaco.Uri.parse("a://homebridge/config.json");window.monaco.languages.json.jsonDefaults.setDiagnosticsOptions({allowComments:!1,validate:!0,schemas:[{uri:"http://homebridge/config.json",fileMatch:[t.toString()],schema:{type:"object",required:["bridge"],properties:{bridge:{type:"object",required:["name","username","port","pin"],properties:{name:{type:"string",description:"The Homebridge instance name.\nThis 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).\nYou should change this pin if you need to re-pair your instance with HomeKit.\nExample: 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.\nIf 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.\nThis is used when pairing Homebridge to HomeKit.\nExample: 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"},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.\n\nRequires 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:"630-27-655"}},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. \n\nDepreciated 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.\nExample: homebridge-dummy"},default:["homebridge-config-ui-x"]},disabledPlugins:{type:"array",description:"An array of plugins that should be disabled.\n\nRequires Homebridge v1.3 or later.",items:{type:"string",description:"The full plugin npm package name.\nExample: 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:'Plugins that expose a "Platform" should have there config entered in this array.\nSeperate 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 Config UI X platform name must be set to "config".\nDo Not Change!',oneOf:[{enum:"config"}]},name:{type:"string",description:"The name used in the Homebridge log"}}}]}},accessories:{type:"array",description:'Plugins that expose a "Accessory" should have there config entered in this array.\nSeperate 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)}ngOnDestroy(){window.visualViewport&&(window.visualViewport.removeEventListener("resize",this.visualViewPortEventCallback,!0),this.$md.enableTouchMove()),this.monacoEditor&&this.monacoEditor.dispose()}}return t.\u0275fac=function(e){return new(e||t)(d.Y36(_.g),d.Y36(u.s),d.Y36(k.L),d.Y36(x.L),d.Y36(A.g),d.Y36(f._W),d.Y36(a.gz),d.Y36(s.sK),d.Y36(g.FF))},t.\u0275cmp=d.Xpm({type:t,selectors:[["app-config"]],decls:21,vars:16,consts:[[1,"flex-column","d-flex","align-items-stretch","h-100"],[1,"row"],[1,"col-sm-6","d-none","d-sm-block"],[1,"primary-text","m-0"],[1,"d-none","d-md-inline"],[1,"col-sm-6","text-right"],[1,"btn","btn-elegant","waves-effect",3,"translate","click"],["container","body",1,"btn","btn-elegant","waves-effect",3,"ngbTooltip","click"],[1,"fas","fa-download"],["class","btn btn-danger waves-effect","translate","form.button_cancel",3,"disabled","click",4,"ngIf"],[1,"btn","btn-primary","waves-effect",3,"disabled","click"],["class","fas fa-spinner fa-pulse",4,"ngIf"],["class","flex-grow-1 h-100 w-100 mb-3 mt-3",3,"options","model","onInit","keydown.control.s","keydown.meta.s",4,"ngIf"],["class","flex-grow-1 h-100 w-100 mb-3 mt-3",3,"options","originalModel","modifiedModel","onInit","keydown.control.s","keydown.meta.s",4,"ngIf"],["wrap","off","class","hb-plain-text-editor align-self-end h-100 w-100 mb-3 mt-3","autocomplete","off","autocorrect","off","autocapitalize","off","spellcheck","false",3,"ngModel","ngModelChange",4,"ngIf"],["translate","form.button_cancel",1,"btn","btn-danger","waves-effect",3,"disabled","click"],[1,"fas","fa-spinner","fa-pulse"],[1,"flex-grow-1","h-100","w-100","mb-3","mt-3",3,"options","model","onInit","keydown.control.s","keydown.meta.s"],[1,"flex-grow-1","h-100","w-100","mb-3","mt-3",3,"options","originalModel","modifiedModel","onInit","keydown.control.s","keydown.meta.s"],["wrap","off","autocomplete","off","autocorrect","off","autocapitalize","off","spellcheck","false",1,"hb-plain-text-editor","align-self-end","h-100","w-100","mb-3","mt-3",3,"ngModel","ngModelChange"]],template:function(t,e){1&t&&(d.TgZ(0,"div",0),d.TgZ(1,"div",1),d.TgZ(2,"div",2),d.TgZ(3,"h3",3),d.TgZ(4,"span",4),d._uU(5,"Homebridge"),d.qZA(),d._uU(6),d.ALo(7,"translate"),d.qZA(),d.qZA(),d.TgZ(8,"div",5),d.TgZ(9,"button",6),d.NdJ("click",function(){return e.onRestore()}),d.qZA(),d.TgZ(10,"button",7),d.NdJ("click",function(){return e.onExportConfig()}),d.ALo(11,"translate"),d._UZ(12,"i",8),d.qZA(),d.YNc(13,C,1,1,"button",9),d.TgZ(14,"button",10),d.NdJ("click",function(){return e.onSave()}),d._uU(15),d.ALo(16,"translate"),d.YNc(17,Z,1,0,"i",11),d.qZA(),d.qZA(),d.qZA(),d.YNc(18,M,1,2,"ngx-monaco-editor",12),d.YNc(19,E,1,3,"ngx-monaco-diff-editor",13),d.YNc(20,$,2,1,"textarea",14),d.qZA()),2&t&&(d.xp6(6),d.hij(" ",d.lcZ(7,10,"config.title_config")," "),d.xp6(3),d.Q6J("translate","config.button_restore"),d.xp6(1),d.s9C("ngbTooltip",d.lcZ(11,12,"logs.label_download")),d.xp6(3),d.Q6J("ngIf",e.originalConfig),d.xp6(1),d.Q6J("disabled",e.saveInProgress),d.xp6(1),d.hij(" ",d.lcZ(16,14,"form.button_save")," "),d.xp6(2),d.Q6J("ngIf",e.saveInProgress),d.xp6(1),d.Q6J("ngIf",!e.isMobile&&!e.originalConfig),d.xp6(1),d.Q6J("ngIf",!e.isMobile&&e.originalConfig),d.xp6(1),d.Q6J("ngIf",e.isMobile))},directives:[s.Pi,g._L,o.O5,r.PG,r.Jj,n.Fj,n.JJ,n.On],pipes:[s.X$],encapsulation:2}),t})(),I=(()=>{class t{constructor(t,e,i){this.$api=t,this.$toastr=e,this.$router=i}resolve(t,e){return this.$api.get("/config-editor").toPromise().then(t=>JSON.stringify(t,null,4)).catch(t=>{this.$toastr.error(t.message,"Failed to Load Config"),this.$router.navigate(["/"])})}}return t.\u0275fac=function(e){return new(e||t)(d.LFG(u.s),d.LFG(f._W),d.LFG(a.F0))},t.\u0275prov=d.Yz7({token:t,factory:t.\u0275fac}),t})();const J=[{path:"",component:T,resolve:{config:I}}];let q=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=d.oAB({type:t}),t.\u0275inj=d.cJS({imports:[[a.Bz.forChild(J)],a.Bz]}),t})(),H=(()=>{class t{}return t.\u0275fac=function(e){return new(e||t)},t.\u0275mod=d.oAB({type:t}),t.\u0275inj=d.cJS({providers:[I],imports:[[o.ez,n.u5,n.UX,r.nm,g.IJ,s.aw.forChild(),q]]}),t})()}}]); |
:: Command execute :: | |
--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0056 ]-- |