homebridge-config-ui-x 4.63.0 → 5.0.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +46 -5
- package/config.schema.json +1 -0
- package/dist/bin/hb-service.js +1 -7
- package/dist/bin/hb-service.js.map +1 -1
- package/dist/bin/platforms/darwin.js +23 -35
- package/dist/bin/platforms/darwin.js.map +1 -1
- package/dist/bin/platforms/linux.js +20 -34
- package/dist/bin/platforms/linux.js.map +1 -1
- package/dist/core/auth/auth.controller.d.ts +0 -1
- package/dist/core/config/config.service.d.ts +0 -2
- package/dist/core/config/config.service.js +0 -2
- package/dist/core/config/config.service.js.map +1 -1
- package/dist/modules/plugins/plugins.service.d.ts +9 -10
- package/dist/modules/plugins/plugins.service.js +71 -46
- package/dist/modules/plugins/plugins.service.js.map +1 -1
- package/dist/modules/status/status.gateway.d.ts +2 -5
- package/dist/modules/status/status.gateway.js +2 -28
- package/dist/modules/status/status.gateway.js.map +1 -1
- package/dist/modules/status/status.service.d.ts +1 -0
- package/dist/modules/status/status.service.js +5 -7
- package/dist/modules/status/status.service.js.map +1 -1
- package/dist/self-check.js +4 -12
- package/dist/self-check.js.map +1 -1
- package/package.json +4 -9
- package/public/chunk-3KSUXL3K.js +20 -0
- package/public/{chunk-SXAWP4QF.js → chunk-422JXES4.js} +1 -1
- package/public/{chunk-VDTNNTX2.js → chunk-4R6MSI5I.js} +1 -1
- package/public/{chunk-4VTTWHHL.js → chunk-5UYN5OWH.js} +1 -1
- package/public/{chunk-AU5G3BVJ.js → chunk-6QEO3BTW.js} +1 -1
- package/public/{chunk-FHXSXVSD.js → chunk-7564WJJL.js} +1 -1
- package/public/{chunk-MD2LKTX2.js → chunk-7R6JSPNH.js} +1 -1
- package/public/{chunk-GCBIN3BZ.js → chunk-B6C32ZRK.js} +1 -1
- package/public/{chunk-MYOOAGZ7.js → chunk-B6G7GTDI.js} +1 -1
- package/public/{chunk-A7KY6MAW.js → chunk-BQLALGZ5.js} +1 -1
- package/public/{chunk-TLJQR7GW.js → chunk-BROUJ7PT.js} +1 -1
- package/public/{chunk-4OEIPK6B.js → chunk-C4OONTE3.js} +1 -1
- package/public/{chunk-HWMIXXWR.js → chunk-DOLYKWZH.js} +1 -1
- package/public/{chunk-H3ASY46R.js → chunk-DRWF7R4E.js} +1 -1
- package/public/{chunk-YCUV4ZTO.js → chunk-F22FMU37.js} +1 -1
- package/public/{chunk-753ABYT7.js → chunk-FBP5C7VG.js} +1 -1
- package/public/{chunk-W75IQVVC.js → chunk-FPOZAQLC.js} +1 -1
- package/public/{chunk-7QKEKEAJ.js → chunk-GNQUXZMN.js} +1 -1
- package/public/chunk-IGUSDGD6.js +8 -0
- package/public/{chunk-K343FEZX.js → chunk-JM7QCDMZ.js} +1 -1
- package/public/{chunk-7T2EEIVD.js → chunk-K3YXRBTH.js} +1 -1
- package/public/{chunk-NG7QY7UH.js → chunk-K6TZNXIW.js} +1 -1
- package/public/{chunk-BQVZQ5VX.js → chunk-LS7T2AVU.js} +1 -1
- package/public/{chunk-7MWYYMRO.js → chunk-NZPTOWFC.js} +1 -1
- package/public/{chunk-5ATXV5LK.js → chunk-RID7V4NP.js} +1 -1
- package/public/{chunk-4S2ZV5SB.js → chunk-RIWBPQF3.js} +1 -1
- package/public/chunk-S4SOWUAW.js +1 -0
- package/public/{chunk-H4GRUHC6.js → chunk-SJTXTMYT.js} +1 -1
- package/public/{chunk-GAKIVDIC.js → chunk-T5QVI4H2.js} +1 -1
- package/public/{chunk-6TKWYL3O.js → chunk-TBJQ2Y3M.js} +1 -1
- package/public/{chunk-46QIUWKL.js → chunk-THFLPY67.js} +1 -1
- package/public/{chunk-FQZPJTDM.js → chunk-TS27NWVA.js} +1 -1
- package/public/{chunk-AZLQQM4X.js → chunk-VROGSJLF.js} +1 -1
- package/public/chunk-VVILZWTF.js +1 -0
- package/public/{chunk-L27ILYMM.js → chunk-WCDFKYP6.js} +1 -1
- package/public/{chunk-SXBKAANV.js → chunk-WCQIGCXO.js} +1 -1
- package/public/chunk-Z47RP4BH.js +1 -0
- package/public/{chunk-UFBNFHDQ.js → chunk-ZEONO5N6.js} +1 -1
- package/public/index.html +2 -2
- package/public/main-VTRWQ63R.js +6 -0
- package/public/{styles-KB74XXJT.css → styles-7ETWN6DQ.css} +1 -1
- package/public/chunk-3NQEXKA4.js +0 -8
- package/public/chunk-643PTHKL.js +0 -17
- package/public/chunk-7COUXZR3.js +0 -1
- package/public/chunk-DOXG4MVV.js +0 -1
- package/public/chunk-NVLTF77N.js +0 -1
- package/public/main-OQXSK5YY.js +0 -6
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as Ve,b as Te,c as $e}from"./chunk-DOLYKWZH.js";import{a as ye,d as L,f as Be}from"./chunk-422JXES4.js";import{a as Se,d as q}from"./chunk-3KSUXL3K.js";import"./chunk-4R6MSI5I.js";import"./chunk-SJTXTMYT.js";import"./chunk-6QEO3BTW.js";import{a as Pe}from"./chunk-B6C32ZRK.js";import"./chunk-LS7T2AVU.js";import"./chunk-GNQUXZMN.js";import"./chunk-THFLPY67.js";import{a as F}from"./chunk-7564WJJL.js";import"./chunk-TS27NWVA.js";import{a as G}from"./chunk-7R6JSPNH.js";import{a as ke}from"./chunk-JM7QCDMZ.js";import"./chunk-RIWBPQF3.js";import{H as fe,I as _e,J as he,K as be,L as Ce,M as ve,N as xe,O as we,Q as Ie,c as ae,d as re,e as le,f as oe,g as se,j as pe,m as de,p as ce,q as ge,y as ue,z as me}from"./chunk-WCDFKYP6.js";import{c as A,k as R,m as U}from"./chunk-S4SOWUAW.js";import{a as H,b as M,c as ne}from"./chunk-F22FMU37.js";import{$ as T,$b as ee,Ab as Q,Ga as I,Ka as B,La as s,Pb as X,Qb as Y,Rb as E,Ua as o,Va as p,Wa as c,X as D,Xa as W,Ya as J,Za as v,Zb as Z,aa as N,ab as h,bb as g,h as d,ha as b,i as k,ia as C,jb as _,kb as P,lb as x,pc as ie,sc as te,t as V,ua as $,vb as K,vc as O,wa as r,xa as y,yb as u,zb as m}from"./chunk-IGUSDGD6.js";function Ue(e,l){if(e&1){let a=v();o(0,"button",15),h("click",function(){b(a);let t=g();return C(t.$activeModal.dismiss("Dismiss"))}),_(1),u(2,"translate"),p()}e&2&&(r(),x(" ",m(2,1,"form.button_close")," "))}function Fe(e,l){if(e&1){let a=v();o(0,"button",15),h("click",function(){b(a);let t=g();return C(t.$activeModal.dismiss("Dismiss"))}),_(1),u(2,"translate"),p()}e&2&&(r(),x(" ",m(2,1,"form.button_close")," "))}function qe(e,l){if(e&1&&(o(0,"a",16),_(1),u(2,"translate"),c(3,"i",17),p()),e&2){let a=g();s("href",a.plugin.links.homepage||a.plugin.links.npm,$),r(),x(" ",m(2,2,"plugins.button_homepage")," ")}}var je=(()=>{let l=class l{constructor(i){d(this,"$activeModal");d(this,"plugin");d(this,"defaultIcon","assets/hb-icon.png");this.$activeModal=i}ngOnInit(){this.plugin.icon||(this.plugin.icon=this.defaultIcon)}handleIconError(){this.plugin.icon=this.defaultIcon}};d(l,"\u0275fac",function(t){return new(t||l)(y(ve))}),d(l,"\u0275cmp",T({type:l,selectors:[["ng-component"]],inputs:{plugin:"plugin"},decls:26,vars:14,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","w-100","text-center"],["alt","Plugin Icon",1,"mb-3","plugin-icon",3,"error","src"],[1,"my-3"],[1,"m-0","grey-text"],[1,"modal-footer","justify-content-between"],[1,"text-left"],["type","button","class","btn btn-elegant","data-dismiss","modal",3,"click",4,"ngIf"],[1,"text-center"],[1,"text-right"],["class","btn btn-primary text-decoration-none","target","_blank","rel","noopener noreferrer",3,"href",4,"ngIf"],["type","button","data-dismiss","modal",1,"btn","btn-elegant",3,"click"],["target","_blank","rel","noopener noreferrer",1,"btn","btn-primary","text-decoration-none",3,"href"],[1,"fas","fa-fw","fa-external-link-alt"]],template:function(t,n){t&1&&(o(0,"div",0)(1,"div",1)(2,"h5",2),_(3),u(4,"translate"),p(),o(5,"button",3),u(6,"translate"),h("click",function(){return n.$activeModal.dismiss("Dismiss")}),o(7,"span",4),_(8,"\xD7"),p()()(),o(9,"div",5)(10,"img",6),h("error",function(){return n.handleIconError()}),p(),o(11,"h4"),_(12),p(),o(13,"p",7),_(14),p(),o(15,"p",8),_(16),p(),o(17,"p",8),_(18),p()(),o(19,"div",9)(20,"div",10),I(21,Ue,3,3,"button",11),p(),o(22,"div",12),I(23,Fe,3,3,"button",11),p(),o(24,"div",13),I(25,qe,4,4,"a",14),p()()()),t&2&&(r(3),P(m(4,10,"plugins.manage.information")),r(2),B("aria-label",m(6,12,"form.button_close")),r(5),s("src",n.plugin.icon,$),r(2),P(n.plugin.displayName||n.plugin.name),r(2),P(n.plugin.description),r(2),P(n.plugin.name),r(2),x("@",n.plugin.author,""),r(3),s("ngIf",n.plugin.links.homepage||n.plugin.links.npm),r(2),s("ngIf",!n.plugin.links.homepage&&!n.plugin.links.npm),r(2),s("ngIf",n.plugin.links.homepage||n.plugin.links.npm))},dependencies:[E,M],styles:[".plugin-icon[_ngcontent-%COMP%]{height:75px;width:75px;border-radius:15px;border:1px solid #222222}"]}));let e=l;return e})();var Je=(e,l)=>({"fa-bridge-circle-exclamation orange-text":e,"fa-bridge-circle-xmark red-text":l});function Ke(e,l){e&1&&c(0,"i",30)}function Qe(e,l){e&1&&c(0,"i",31)}function Xe(e,l){if(e&1){let a=v();o(0,"a",27),h("click",function(){b(a);let t=g();return C(t.openHb2InfoModal())}),I(1,Ke,1,0,"i",28)(2,Qe,1,0,"i",29),p()}if(e&2){let a=g();s("ngbTooltip","Homebridge v2.0 Readiness")("placement","right"),r(),s("ngIf",a.hb2Status==="supported"),r(),s("ngIf",a.hb2Status==="unknown")}}function Ye(e,l){if(e&1){let a=v();o(0,"a",32),u(1,"translate"),u(2,"translate"),h("click",function(){b(a);let t=g();return C(t.$plugin.checkAndUpdatePlugin(t.plugin,t.plugin.updateTag||"latest"))}),c(3,"i",33),p()}e&2&&(s("ngbTooltip",m(1,2,"plugins.button_update")),B("aria-label",m(2,4,"plugins.button_update")))}function Ze(e,l){if(e&1){let a=v();o(0,"a",32),u(1,"translate"),u(2,"translate"),h("click",function(){b(a);let t=g();return C(t.$plugin.switchToScoped(t.plugin))}),c(3,"i",34),p()}e&2&&(s("ngbTooltip",m(1,2,"plugins.manage.scoped.switch")),B("aria-label",m(2,4,"plugins.manage.scoped.switch")))}function ei(e,l){if(e&1){let a=v();o(0,"a",32),u(1,"translate"),u(2,"translate"),h("click",function(){b(a);let t=g();return C(t.$plugin.settings(t.plugin))}),c(3,"i",35),p()}e&2&&(s("ngbTooltip",m(1,2,"plugins.button_set_up")),B("aria-label",m(2,4,"plugins.button_set_up")))}function ii(e,l){if(e&1){let a=v();o(0,"a",32),u(1,"translate"),u(2,"translate"),h("click",function(){b(a);let t=g();return C(t.$plugin.bridgeSettings(t.plugin))}),c(3,"i",36),p()}e&2&&(s("ngbTooltip",m(1,2,"child_bridge.setup")),B("aria-label",m(2,4,"child_bridge.setup")))}function ti(e,l){if(e&1){let a=v();o(0,"a",32),u(1,"translate"),u(2,"translate"),h("click",function(){b(a);let t=g();return C(t.$plugin.bridgeSettings(t.plugin))}),c(3,"i",37),p()}e&2&&(s("ngbTooltip",m(1,2,"child_bridge.bridge_connect")),B("aria-label",m(2,4,"child_bridge.bridge_connect")))}function ni(e,l){if(e&1&&c(0,"i",38),e&2){let a=g();s("ngClass",K(1,Je,a.childBridgeStatus==="pending",a.childBridgeStatus==="down"))}}function ai(e,l){if(e&1){let a=v();o(0,"p",19)(1,"a",39),h("click",function(){b(a);let t=g();return C(t.openVerifiedModal())}),c(2,"i",40),o(3,"span",17),_(4),u(5,"translate"),p()()()}e&2&&(r(4),P(m(5,1,"plugins.donate.button_verified")))}function ri(e,l){if(e&1){let a=v();o(0,"p",19)(1,"a",41),h("click",function(){b(a);let t=g();return C(t.openVerifiedModal())}),c(2,"i",42),o(3,"span",17),_(4),u(5,"translate"),p()()()}e&2&&(r(4),P(m(5,1,"plugins.donate.button_not_verified")))}function li(e,l){if(e&1){let a=v();o(0,"a",43),h("click",function(){b(a);let t=g();return C(t.openFundingModal(t.plugin))}),c(1,"i",44),o(2,"span",17),_(3),p()()}if(e&2){let a=g();r(3),x("@",a.plugin.author,"")}}function oi(e,l){if(e&1&&(o(0,"span",17),c(1,"i",45),_(2),p()),e&2){let a=g();r(2),x("@",a.plugin.author," ")}}function si(e,l){if(e&1&&(o(0,"span"),_(1),u(2,"date"),p()),e&2){let a=g(2);r(),x("(",Q(2,1,a.plugin.lastUpdated,"yyyy-MM-dd"),")")}}function pi(e,l){if(e&1&&(o(0,"span"),c(1,"i",46),o(2,"span",17),_(3),I(4,si,3,4,"span",23),p()()),e&2){let a=g();r(3),x("v",a.plugin.latestVersion," "),r(),s("ngIf",a.plugin.lastUpdated)}}function di(e,l){if(e&1&&(o(0,"span"),c(1,"i",47),_(2),p()),e&2){let a=g();r(2),x("v",a.plugin.installedVersion," ")}}function ci(e,l){if(e&1){let a=v();o(0,"a",32),u(1,"translate"),h("click",function(){b(a);let t=g();return C(t.doChildBridgeAction("restart"))}),c(2,"i",48),p()}if(e&2){let a=g();s("ngbTooltip",m(1,1,a.setChildBridges.length>1?"child_bridge.restart_plural":"child_bridge.restart"))}}function gi(e,l){if(e&1){let a=v();o(0,"a",49),h("click",function(){b(a);let t=g();return C(t.enablePlugin(t.plugin))}),c(1,"i",50),u(2,"translate"),p()}e&2&&(r(),s("ngbTooltip",m(2,1,"plugins.status_disabled")))}function ui(e,l){if(e&1){let a=v();o(0,"a",51),h("click",function(){b(a);let t=g();return C(t.$plugin.installAlternateVersion(t.plugin))}),c(1,"i",52),p()}}function mi(e,l){if(e&1){let a=v();o(0,"button",57),h("click",function(){b(a);let t=g(2);return C(t.viewPluginLog(t.plugin))}),c(1,"i",62),_(2),u(3,"translate"),p()}e&2&&(r(2),x(" ",m(3,1,"plugins.manage.plugin_logs")," "))}function fi(e,l){if(e&1){let a=v();o(0,"button",57),h("click",function(){b(a);let t=g(2);return C(t.$plugin.installAlternateVersion(t.plugin))}),c(1,"i",63),_(2),u(3,"translate"),p()}e&2&&(r(2),x(" ",m(3,1,"plugins.manage.manage_version")," "))}function _i(e,l){if(e&1){let a=v();o(0,"button",57),h("click",function(){b(a);let t=g(2);return C(t.$plugin.jsonEditor(t.plugin))}),c(1,"i",64),_(2),u(3,"translate"),p()}e&2&&(r(2),x(" ",m(3,1,"plugins.manage.json_config")," "))}function hi(e,l){if(e&1){let a=v();o(0,"button",57),h("click",function(){b(a);let t=g(2);return C(t.disablePlugin(t.plugin))}),c(1,"i",65),_(2),u(3,"translate"),p()}e&2&&(r(2),x(" ",m(3,1,"plugins.manage.disable")," "))}function bi(e,l){if(e&1){let a=v();o(0,"button",57),h("click",function(){b(a);let t=g(2);return C(t.enablePlugin(t.plugin))}),c(1,"i",66),_(2),u(3,"translate"),p()}e&2&&(r(2),x(" ",m(3,1,"plugins.manage.enable")," "))}function Ci(e,l){if(e&1){let a=v();o(0,"button",57),h("click",function(){b(a);let t=g(2);return C(t.$plugin.uninstallPlugin(t.plugin,t.setChildBridges))}),c(1,"i",67),_(2),u(3,"translate"),p()}e&2&&(r(2),x(" ",m(3,1,"plugins.button_uninstall")," "))}function vi(e,l){e&1&&c(0,"div",68)}function xi(e,l){if(e&1){let a=v();o(0,"button",57),h("click",function(){b(a);let t=g(3);return C(t.doChildBridgeAction("restart"))}),c(1,"i",70),_(2),u(3,"translate"),p()}if(e&2){let a=g(3);r(2),x(" ",m(3,1,a.setChildBridges.length>1?"child_bridge.restart_plural":"child_bridge.restart")," ")}}function wi(e,l){if(e&1){let a=v();o(0,"button",57),h("click",function(){b(a);let t=g(3);return C(t.doChildBridgeAction("stop"))}),c(1,"i",71),_(2),u(3,"translate"),p()}if(e&2){let a=g(3);r(2),x(" ",m(3,1,a.setChildBridges.length>1?"child_bridge.stop_plural":"child_bridge.stop")," ")}}function Ii(e,l){if(e&1){let a=v();o(0,"button",57),h("click",function(){b(a);let t=g(3);return C(t.doChildBridgeAction("start"))}),c(1,"i",72),_(2),u(3,"translate"),p()}if(e&2){let a=g(3);r(2),x(" ",m(3,1,a.setChildBridges.length>1?"child_bridge.start_plural":"child_bridge.start")," ")}}function yi(e,l){if(e&1){let a=v();o(0,"button",57),h("click",function(){b(a);let t=g(3);return C(t.$plugin.resetChildBridges(t.setChildBridges))}),c(1,"i",73),_(2),u(3,"translate"),p()}e&2&&(r(2),x(" ",m(3,1,"child_bridge.reset_accessories")," "))}function Pi(e,l){if(e&1){let a=v();W(0),o(1,"button",57),h("click",function(){b(a);let t=g(2);return C(t.$plugin.bridgeSettings(t.plugin))}),c(2,"i",69),_(3),u(4,"translate"),p(),I(5,xi,4,3,"button",59)(6,wi,4,3,"button",59)(7,Ii,4,3,"button",59)(8,yi,4,3,"button",59),J()}if(e&2){let a=g(2);r(3),x(" ",m(4,5,"child_bridge.bridge_settings")," "),r(2),s("ngIf",!a.childBridgeRestartInProgress),r(),s("ngIf",!a.allChildBridgesStopped),r(),s("ngIf",a.allChildBridgesStopped),r(),s("ngIf",a.$settings.env.serviceMode)}}function ki(e,l){e&1&&c(0,"div",68)}function Si(e,l){if(e&1){let a=v();o(0,"button",57),h("click",function(){b(a);let t=g(2);return C(t.$plugin.bridgeSettings(t.plugin))}),c(1,"i",74),_(2),u(3,"translate"),p()}e&2&&(r(2),x(" ",m(3,1,"child_bridge.setup")," "))}function Bi(e,l){e&1&&c(0,"div",68)}function Vi(e,l){if(e&1){let a=v();o(0,"button",57),h("click",function(){b(a);let t=g(2);return C(t.$plugin.bridgeSettings(t.plugin))}),c(1,"i",74),_(2),u(3,"translate"),p()}e&2&&(r(2),x(" ",m(3,1,"child_bridge.setup")," "))}function Ti(e,l){e&1&&c(0,"div",68)}function $i(e,l){if(e&1&&(o(0,"a",75),c(1,"i",76),_(2),u(3,"translate"),p()),e&2){let a=g(2);s("href",a.plugin.links.bugs,$),r(2),x(" ",m(3,2,"support.links.issue")," ")}}function Ei(e,l){if(e&1){let a=v();o(0,"span",53)(1,"a",54),c(2,"i",55),p(),o(3,"div",56)(4,"button",57),h("click",function(){b(a);let t=g();return C(t.$plugin.settings(t.plugin))}),c(5,"i",58),_(6),u(7,"translate"),p(),I(8,mi,4,3,"button",59)(9,fi,4,3,"button",59)(10,_i,4,3,"button",59)(11,hi,4,3,"button",59)(12,bi,4,3,"button",59)(13,Ci,4,3,"button",59)(14,vi,1,0,"div",60)(15,Pi,9,7,"ng-container",23)(16,ki,1,0,"div",60)(17,Si,4,3,"button",59)(18,Bi,1,0,"div",60)(19,Vi,4,3,"button",59)(20,Ti,1,0,"div",60)(21,$i,4,4,"a",61),p()()}if(e&2){let a=g();r(),B("aria-label","Plugin Actions Dropdown"),r(5),x(" ",m(7,16,"plugins.button_settings")," "),r(2),s("ngIf",a.plugin.isConfigured&&!a.plugin.disabled),r(),s("ngIf",a.plugin.publicPackage),r(),s("ngIf",!a.isMobile&&a.plugin.name!=="homebridge-config-ui-x"),r(),s("ngIf",a.plugin.name!=="homebridge-config-ui-x"&&!a.plugin.disabled),r(),s("ngIf",a.plugin.name!=="homebridge-config-ui-x"&&a.plugin.disabled),r(),s("ngIf",a.plugin.name!=="homebridge-config-ui-x"),r(),s("ngIf",!a.plugin.disabled&&a.plugin.isConfigured&&a.plugin.hasChildBridges&&a.plugin.installedVersion&&a.plugin.name!=="homebridge-config-ui-x"),r(),s("ngIf",a.plugin.hasChildBridges&&!a.plugin.disabled),r(),s("ngIf",a.plugin.isConfigured&&!a.plugin.hasChildBridges&&!a.plugin.disabled&&!a.plugin.recommendChildBridge),r(),s("ngIf",a.plugin.isConfigured&&!a.plugin.hasChildBridges&&!a.plugin.disabled&&!a.plugin.recommendChildBridge),r(),s("ngIf",a.plugin.isConfigured&&!a.plugin.hasChildBridges&&!a.plugin.disabled&&a.plugin.recommendChildBridge&&a.plugin.updateAvailable),r(),s("ngIf",a.plugin.isConfigured&&!a.plugin.hasChildBridges&&!a.plugin.disabled&&a.plugin.recommendChildBridge&&a.plugin.updateAvailable),r(),s("ngIf",a.plugin.links==null?null:a.plugin.links.bugs),r(),s("ngIf",a.plugin.links==null?null:a.plugin.links.bugs)}}var De=(()=>{let l=class l{constructor(i,t,n,f,S,w,j,Ae){d(this,"$api");d(this,"$md");d(this,"$modal");d(this,"$plugin");d(this,"$settings");d(this,"$toastr");d(this,"$translate");d(this,"$ws");d(this,"plugin");d(this,"hasChildBridges",!1);d(this,"hasUnpairedChildBridges",!1);d(this,"allChildBridgesStopped",!1);d(this,"childBridgeStatus","pending");d(this,"childBridgeRestartInProgress",!1);d(this,"defaultIcon","assets/hb-icon.png");d(this,"isMobile");d(this,"setChildBridges",[]);d(this,"prettyDisplayName","");d(this,"hb2Status","unknown");d(this,"io");this.$api=i,this.$md=t,this.$modal=n,this.$plugin=f,this.$settings=S,this.$toastr=w,this.$translate=j,this.$ws=Ae}set childBridges(i){var f,S;this.hasChildBridges=i.length>0,this.hasUnpairedChildBridges=i.filter(w=>w.paired===!1).length>0,this.allChildBridgesStopped=i.filter(w=>w.manuallyStopped===!0).length===i.length,this.hasChildBridges&&(i.some(w=>w.status==="down")?this.childBridgeStatus="down":i.some(w=>w.status==="pending")?this.childBridgeStatus="pending":i.some(w=>w.status==="ok")&&(this.childBridgeStatus="ok")),this.setChildBridges=i;let t=this.$settings.env.homebridgeVersion.split(".")[0],n=((S=(f=this.plugin.engines)==null?void 0:f.homebridge)==null?void 0:S.split("||").map(w=>w.trim()))||[];this.hb2Status=t==="2"?"hide":n.some(w=>w.startsWith("^2")||w.startsWith(">=2"))?"supported":this.hb2Status}ngOnInit(){this.isMobile=this.$md.detect.mobile(),this.prettyDisplayName=this.prettifyName(),this.io=this.$ws.getExistingNamespace("child-bridges"),this.plugin.icon||(this.plugin.icon=this.defaultIcon)}openFundingModal(i){let t=this.$modal.open(Te,{size:"lg",backdrop:"static"});t.componentInstance.plugin=i}openVerifiedModal(){let i=this.$modal.open(L,{size:"lg",backdrop:"static"});this.plugin.verifiedPlugin||this.plugin.verifiedPlusPlugin?(i.componentInstance.title=this.$translate.instant("plugins.manage.verified_title"),i.componentInstance.subtitle=this.$translate.instant("plugins.manage.verified_subtitle",{pluginName:this.plugin.displayName||this.plugin.name}),i.componentInstance.message=this.$translate.instant("plugins.manage.verified_message"),i.componentInstance.faIconClass="fa-shield-alt green-text"):(i.componentInstance.title=this.$translate.instant("plugins.manage.unverified_title"),i.componentInstance.subtitle=this.$translate.instant("plugins.manage.unverified_subtitle",{pluginName:this.plugin.displayName||this.plugin.name}),i.componentInstance.message=this.$translate.instant("plugins.manage.unverified_message"),i.componentInstance.faIconClass="fa-shield-alt grey-text"),i.componentInstance.ctaButtonLabel=this.$translate.instant("form.button_more_info"),i.componentInstance.ctaButtonLink="https://github.com/homebridge/homebridge/wiki/verified-Plugins"}pluginInfoModal(i){let t=this.$modal.open(je,{size:"lg",backdrop:"static"});t.componentInstance.plugin=i}disablePlugin(i){let t=this.$modal.open(Ve,{size:"lg",backdrop:"static"});t.componentInstance.pluginName=i.name,t.componentInstance.isConfigured=i.isConfigured,t.componentInstance.isConfiguredDynamicPlatform=i.isConfiguredDynamicPlatform,t.result.then(()=>k(this,null,function*(){try{yield V(this.$api.put(`/config-editor/plugin/${encodeURIComponent(i.name)}/disable`,{})),i.disabled=!0,this.hasChildBridges&&this.doChildBridgeAction("stop"),this.$modal.open(G,{size:"lg",backdrop:"static"})}catch(n){console.error(n),this.$toastr.error(this.$translate.instant("plugins.disable.error"),this.$translate.instant("toast.title_error"))}}))}enablePlugin(i){let t=this.$modal.open(ke,{size:"lg",backdrop:"static"});t.componentInstance.title=`${this.$translate.instant("plugins.manage.enable")}: ${i.name}`,t.componentInstance.message=this.$translate.instant("plugins.manage.confirm_enable",{pluginName:i.name}),t.componentInstance.confirmButtonLabel=this.$translate.instant("plugins.manage.enable"),t.componentInstance.faIconClass="fa-circle-play primary-text",t.result.then(()=>k(this,null,function*(){try{yield V(this.$api.put(`/config-editor/plugin/${encodeURIComponent(i.name)}/enable`,{})),i.disabled=!1,this.hasChildBridges&&(yield this.doChildBridgeAction("start")),this.$modal.open(G,{size:"lg",backdrop:"static"})}catch(n){console.error(n),this.$toastr.error(this.$translate.instant("plugins.enable.error"),this.$translate.instant("toast.title_error"))}}))}viewPluginLog(i){let t=this.$modal.open(Se,{size:"xl",backdrop:"static"});t.componentInstance.plugin=i}doChildBridgeAction(i){return k(this,null,function*(){this.childBridgeRestartInProgress=!0;try{for(let t of this.setChildBridges)yield V(this.io.request(`${i}-child-bridge`,t.username))}catch(t){console.error(t),this.$toastr.error(this.$translate.instant("plugins.bridge.action_error",{action:i}),this.$translate.instant("toast.title_error")),this.childBridgeRestartInProgress=!1}finally{setTimeout(()=>{this.childBridgeRestartInProgress=!1},i==="restart"?12e3:i==="stop"?6e3:1e3)}})}handleIconError(){this.plugin.icon=this.defaultIcon}prettifyName(){let i=this.plugin.displayName||(this.plugin.name.charAt(0)==="@"?this.plugin.name.split("/")[1]:this.plugin.name);return i=i.replace(/-/g," "),this.isMobile&&i.toLowerCase().startsWith("homebridge ")&&(i=i.replace(/^homebridge /i,"")),this.plugin.displayName||(i=i.replace(/\w\S*/g,t=>t.charAt(0).toUpperCase()+t.substring(1).toLowerCase())),i}openHb2InfoModal(){let i=this.$modal.open(L,{size:"lg",backdrop:"static"});i.componentInstance.title="Plugin Readiness",this.hb2Status==="supported"?(i.componentInstance.subtitle=`${this.plugin.displayName||this.plugin.name} is ready for Homebridge v2.0`,i.componentInstance.message="The developer has specifically marked your installed version of the plugin as compatible with Homebridge v2.0.",i.componentInstance.faIconClass="fa-check-circle green-text"):(i.componentInstance.subtitle=`${this.plugin.displayName||this.plugin.name} might not be ready for Homebridge v2.0`,i.componentInstance.message="The developer has not specifically marked your installed version of the plugin as compatible with Homebridge v2.0, but it may still work.",i.componentInstance.faIconClass="fa-question-circle orange-text"),i.componentInstance.ctaButtonLabel=this.$translate.instant("form.button_more_info"),i.componentInstance.ctaButtonLink="https://github.com/homebridge/homebridge/wiki/Updating-To-Homebridge-v2.0"}};d(l,"\u0275fac",function(t){return new(t||l)(y(A),y(Pe),y(xe),y(q),y(U),y(R),y(H),y(F))}),d(l,"\u0275cmp",T({type:l,selectors:[["app-plugin-card"]],inputs:{plugin:"plugin",childBridges:"childBridges"},decls:38,vars:21,consts:[[1,"card","card-body","mb-3"],[1,"d-flex","flex-row","justify-content-between"],[1,"d-flex","flex-column","mr-3","align-items-center","justify-content-between"],["alt","Plugin Icon",1,"plugin-icon-card","mb-3",3,"error","src"],["href","javascript:void(0)","container","body","openDelay","150","triggers","hover","aria-label","Homebridge v2.0 Readiness",3,"ngbTooltip","placement","click",4,"ngIf"],[1,"d-flex","flex-column","justify-content-between",2,"min-width","calc(100% - 80px)"],[1,"d-flex","flex-row","align-items-end"],[1,"d-flex","flex-column","w-100"],[1,"d-flex","flex-row"],[1,"card-title","mb-2","text-truncate"],[1,"ml-auto"],["href","javascript:void(0)","class","card-link","container","body","openDelay","150","triggers","hover",3,"ngbTooltip","click",4,"ngIf"],[1,"fas","fa-fw","fa-spinner","fa-pulse","fa-lg","grey-text","ml-3",3,"hidden"],["class","fas fa-fw fa-lg ml-3",3,"ngClass",4,"ngIf"],[1,"card-text","mb-2","text-truncate"],["href","javascript:void(0)",1,"card-link","grey-text",3,"click"],[1,"fas","fa-fw","fa-info-circle","fa-lg","mr-1"],[1,"grey-text"],["class","card-text mb-2",4,"ngIf"],[1,"card-text","mb-2"],["href","javascript:void(0)","class","card-link pink-text",3,"click",4,"ngIf"],["class","grey-text",4,"ngIf"],[1,"card-text","mb-0","grey-text"],[4,"ngIf"],["href","javascript:void(0)","class","card-link red-text",3,"click",4,"ngIf"],["href","javascript:void(0)",3,"click",4,"ngIf"],["ngbDropdown","","placement","left","class","d-inline-block ml-3 mt-auto",4,"ngIf"],["href","javascript:void(0)","container","body","openDelay","150","triggers","hover","aria-label","Homebridge v2.0 Readiness",3,"click","ngbTooltip","placement"],["class","fas fa-check-circle green-text fa-xl","aria-label","The developer has specifically marked this plugin as compatible with Homebridge v2.0",4,"ngIf"],["class","fas fa-question-circle orange-text fa-xl","aria-label","The developer has not specifically marked this plugin as compatible with Homebridge v2.0, but it may still work.",4,"ngIf"],["aria-label","The developer has specifically marked this plugin as compatible with Homebridge v2.0",1,"fas","fa-check-circle","green-text","fa-xl"],["aria-label","The developer has not specifically marked this plugin as compatible with Homebridge v2.0, but it may still work.",1,"fas","fa-question-circle","orange-text","fa-xl"],["href","javascript:void(0)","container","body","openDelay","150","triggers","hover",1,"card-link",3,"click","ngbTooltip"],[1,"far","fa-fw","fa-arrow-alt-circle-up","primary-text","fa-lg","fa-fade","ml-3",2,"--fa-animation-duration","2s"],[1,"fas","fa-fw","fa-arrow-right-arrow-left","primary-text","fa-lg","fa-fade","ml-3",2,"--fa-animation-duration","2s"],[1,"fas","fa-fw","fa-sliders","primary-text","fa-lg","fa-fade","ml-3",2,"--fa-animation-duration","2s"],[1,"icon-button","fas","fa-fw","fa-bridge","primary-text","fa-lg","fa-fade","ml-3",2,"--fa-animation-duration","2s"],[1,"icon-button","fas","fa-fw","fa-qrcode","primary-text","fa-lg","fa-fade","ml-3",2,"--fa-animation-duration","2s"],[1,"fas","fa-fw","fa-lg","ml-3",3,"ngClass"],["href","javascript:void(0)",1,"card-link","green-text",3,"click"],[1,"fas","fa-fw","fa-shield-alt","fa-lg","mr-1"],["href","javascript:void(0)",1,"card-link",3,"click"],[1,"fas","fa-fw","fa-shield-alt","fa-lg","mr-1",2,"opacity","0.25"],["href","javascript:void(0)",1,"card-link","pink-text",3,"click"],[1,"fas","fa-fw","fa-heart","fa-lg","mr-1"],[1,"fas","fa-fw","fa-heart","fa-lg","mr-1",2,"opacity","0.5"],[1,"far","fa-fw","fa-circle-dot","fa-lg","mr-1"],[1,"far","fa-fw","fa-circle-check","fa-lg","mr-1"],[1,"fas","fa-fw","fa-lg","fa-power-off","ml-3"],["href","javascript:void(0)",1,"card-link","red-text",3,"click"],["container","body","openDelay","150","triggers","hover",1,"far","fa-fw","fa-pause-circle","fa-lg",3,"ngbTooltip"],["href","javascript:void(0)",3,"click"],[1,"far","fa-fw","fa-arrow-alt-circle-down","fa-lg"],["ngbDropdown","","placement","left",1,"d-inline-block","ml-3","mt-auto"],["href","javascript:void(0)","ngbDropdownToggle","",1,"card-link","text-decoration-none","mt-auto",2,"outline","none"],[1,"fa-solid","fa-fw","fa-ellipsis-v","fa-lg"],["ngbDropdownMenu","","aria-labelledby","Plugin Actions Dropdown"],["ngbDropdownItem","",3,"click"],[1,"fas","fa-fw","fa-sliders"],["ngbDropdownItem","",3,"click",4,"ngIf"],["class","dropdown-divider",4,"ngIf"],["ngbDropdownItem","","rel","noopener noreferrer","target","_blank",3,"href",4,"ngIf"],[1,"fas","fa-fw","fa-wave-square"],[1,"fas","fa-fw","fa-code-compare"],[1,"fas","fa-fw","fa-code"],[1,"far","fa-fw","fa-circle-pause"],[1,"far","fa-fw","fa-circle-play"],[1,"fas","fa-fw","fa-trash"],[1,"dropdown-divider"],[1,"fas","fa-fw","fa-bridge"],[1,"fa-fw","icon-button","fas","fa-fw","fa-power-off"],[1,"fas","fa-fw","fa-stop"],[1,"fas","fa-fw","fa-play"],[1,"fas","fa-fw","fa-broom"],[1,"icon-button","fas","fa-fw","fa-bridge"],["ngbDropdownItem","","rel","noopener noreferrer","target","_blank",3,"href"],[1,"icon-button","fa","fa-fw","fa-question-circle-o"]],template:function(t,n){t&1&&(o(0,"div",0)(1,"div",1)(2,"div",2)(3,"img",3),h("error",function(){return n.handleIconError()}),p(),I(4,Xe,3,4,"a",4),p(),o(5,"div",5)(6,"div",6)(7,"div",7)(8,"div",8)(9,"h5",9),_(10),p(),o(11,"div",10),I(12,Ye,4,6,"a",11)(13,Ze,4,6,"a",11)(14,ei,4,6,"a",11)(15,ii,4,6,"a",11)(16,ti,4,6,"a",11),c(17,"i",12),I(18,ni,1,4,"i",13),p()(),o(19,"p",14)(20,"a",15),h("click",function(){return n.pluginInfoModal(n.plugin)}),c(21,"i",16),o(22,"span",17),_(23),p()()(),I(24,ai,6,3,"p",18)(25,ri,6,3,"p",18),o(26,"p",19),I(27,li,4,1,"a",20)(28,oi,3,1,"span",21),p(),o(29,"div",8)(30,"p",22),I(31,pi,5,2,"span",23)(32,di,3,1,"span",23),p(),o(33,"div",10),I(34,ci,3,3,"a",11)(35,gi,3,3,"a",24)(36,ui,2,0,"a",25)(37,Ei,22,18,"span",26),p()()()()()()()),t&2&&(r(3),s("src",n.plugin.icon,$),r(),s("ngIf",n.plugin.installedVersion&&n.hb2Status!=="hide"),r(6),P(n.prettyDisplayName),r(2),s("ngIf",n.plugin.installedVersion&&n.plugin.updateAvailable&&!n.childBridgeRestartInProgress),r(),s("ngIf",n.plugin.installedVersion&&(n.plugin.newHbScope==null?null:n.plugin.newHbScope.switch)===n.plugin.installedVersion&&!n.childBridgeRestartInProgress),r(),s("ngIf",n.plugin.installedVersion&&(!n.plugin.newHbScope||n.plugin.newHbScope.switch!==n.plugin.installedVersion)&&!n.plugin.updateAvailable&&!n.plugin.isConfigured&&!n.childBridgeRestartInProgress),r(),s("ngIf",n.plugin.installedVersion&&(!n.plugin.newHbScope||n.plugin.newHbScope.switch!==n.plugin.installedVersion)&&!n.plugin.updateAvailable&&n.plugin.isConfigured&&!n.plugin.hasChildBridges&&!n.plugin.disabled&&n.plugin.recommendChildBridge&&!n.childBridgeRestartInProgress),r(),s("ngIf",n.plugin.installedVersion&&(!n.plugin.newHbScope||n.plugin.newHbScope.switch!==n.plugin.installedVersion)&&!n.plugin.updateAvailable&&n.plugin.isConfigured&&n.plugin.hasChildBridges&&!n.childBridgeRestartInProgress&&n.hasUnpairedChildBridges&&n.childBridgeStatus==="ok"&&!n.plugin.disabled),r(),s("hidden",!n.childBridgeRestartInProgress),r(),s("ngIf",n.plugin.installedVersion&&(!n.plugin.newHbScope||n.plugin.newHbScope.switch!==n.plugin.installedVersion)&&!n.plugin.updateAvailable&&n.plugin.isConfigured&&n.plugin.hasChildBridges&&!n.childBridgeRestartInProgress&&!n.hasUnpairedChildBridges&&n.childBridgeStatus!=="ok"&&!n.plugin.disabled),r(5),P(n.plugin.name),r(),s("ngIf",n.plugin.verifiedPlugin||n.plugin.verifiedPlusPlugin),r(),s("ngIf",!n.plugin.verifiedPlugin&&!n.plugin.verifiedPlusPlugin),r(2),s("ngIf",(n.plugin.verifiedPlugin||n.plugin.verifiedPlusPlugin)&&n.plugin.funding),r(),s("ngIf",!((n.plugin.verifiedPlugin||n.plugin.verifiedPlusPlugin)&&n.plugin.funding)),r(3),s("ngIf",n.plugin.publicPackage&&!n.plugin.installedVersion),r(),s("ngIf",n.plugin.installedVersion),r(2),s("ngIf",!n.plugin.disabled&&n.plugin.hasChildBridges&&n.childBridgeStatus==="ok"),r(),s("ngIf",n.plugin.installedVersion&&n.plugin.disabled),r(),s("ngIf",n.plugin.publicPackage&&!n.plugin.installedVersion),r(),s("ngIf",n.plugin.installedVersion))},dependencies:[X,E,Ce,be,he,fe,_e,we,Z,M],encapsulation:2}));let e=l;return e})();function ji(e,l){e&1&&c(0,"app-spinner")}function Di(e,l){e&1&&c(0,"i",13)}function Ni(e,l){if(e&1&&(o(0,"div",14),c(1,"app-plugin-card",15),p()),e&2){let a=l.$implicit,i=g();r(),s("plugin",a)("childBridges",i.getPluginChildBridges(a))}}function Hi(e,l){e&1&&(o(0,"div",16),c(1,"i",17),o(2,"p"),_(3),u(4,"translate"),p()()),e&2&&(r(3),P(m(4,1,"plugins.placeholder_search_first")))}var Ne=(()=>{let l=class l{constructor(i,t,n,f,S,w,j){d(this,"$api");d(this,"$plugin");d(this,"$router");d(this,"$settings");d(this,"$toastr");d(this,"$translate");d(this,"$ws");d(this,"loading",!0);d(this,"installedPlugins",[]);d(this,"childBridges",[]);d(this,"form",new se({query:new pe("",[re.required])}));d(this,"io");d(this,"navigationSubscription");this.$api=i,this.$plugin=t,this.$router=n,this.$settings=f,this.$toastr=S,this.$translate=w,this.$ws=j}ngOnInit(){return k(this,null,function*(){this.io=this.$ws.connectToNamespace("child-bridges"),this.io.connected.subscribe(()=>k(this,null,function*(){this.getChildBridgeMetadata(),this.io.socket.emit("monitor-child-bridge-status"),yield this.loadInstalledPlugins();let i=this.$router.parseUrl(this.$router.url).queryParams.installed;if(i){let t=this.installedPlugins.find(n=>n.name===i);t&&!t.isConfigured&&this.$plugin.settings(t),this.$router.navigate(["/plugins"])}})),this.io.socket.on("child-bridge-status-update",i=>{let t=this.childBridges.find(n=>n.username===i.username);t?Object.assign(t,i):this.childBridges.push(i)}),this.navigationSubscription=this.$router.events.subscribe(i=>{i instanceof ie&&this.loadInstalledPlugins()})})}loadInstalledPlugins(){return k(this,null,function*(){this.form.setValue({query:""}),this.installedPlugins=[],this.loading=!0;try{let i=yield V(this.$api.get("/plugins"));this.installedPlugins=i.filter(n=>n.name!=="homebridge-config-ui-x"),yield this.appendMetaInfo();let t=this.installedPlugins.sort((n,f)=>n.updateAvailable!==f.updateAvailable?n.updateAvailable?-1:1:n.newHbScope&&!f.newHbScope?-1:n.disabled!==f.disabled?n.disabled?1:-1:n.isConfigured!==f.isConfigured?n.isConfigured?1:-1:n.hasChildBridgesUnpaired!==f.hasChildBridgesUnpaired?n.hasChildBridgesUnpaired?-1:1:n.hasChildBridges!==f.hasChildBridges&&this.$settings.env.recommendChildBridges?n.hasChildBridges?1:-1:n.name.localeCompare(f.name));return this.loading=!1,t}catch(i){console.error(i),this.$toastr.error(this.$translate.instant("plugins.toast_failed_to_load_plugins"),this.$translate.instant("toast.title_error"))}})}appendMetaInfo(){return k(this,null,function*(){yield Promise.all(this.installedPlugins.filter(i=>i.installedVersion).map(i=>k(this,null,function*(){try{let t=yield V(this.$api.get(`/config-editor/plugin/${encodeURIComponent(i.name)}`));i.isConfigured=t.length>0,i.isConfiguredDynamicPlatform=i.isConfigured&&Object.prototype.hasOwnProperty.call(t[0],"platform"),i.recommendChildBridge=i.isConfiguredDynamicPlatform&&this.$settings.env.recommendChildBridges&&this.$settings.env.serviceMode&&!["homebridge","homebridge-config-ui-x"].includes(i.name),i.hasChildBridges=i.isConfigured&&t.some(f=>f._bridge&&f._bridge.username);let n=this.getPluginChildBridges(i);i.hasChildBridgesUnpaired=n.some(f=>!f.paired)}catch{i.isConfigured=!0,i.hasChildBridges=!0}})))})}search(){this.installedPlugins=[],this.loading=!0,this.$api.get(`/plugins/search/${encodeURIComponent(this.form.value.query)}`).subscribe({next:i=>{let t=new Set;this.installedPlugins=i.sort((n,f)=>n.newHbScope&&!f.newHbScope?-1:!n.newHbScope&&f.newHbScope?1:0).reduce((n,f)=>{if(f.name==="homebridge-config-ui-x"||t.has(f.name))return n;if(f.newHbScope){let S=f.newHbScope.to,w=i.some(j=>j.name===S);(f.installedVersion||!w)&&(t.add(S),n.push(f))}else n.push(f);return n},[]).sort((n,f)=>n.installedVersion!==f.installedVersion?n.installedVersion?-1:1:0),this.appendMetaInfo(),this.loading=!1},error:i=>{this.loading=!1,console.error(i),this.$toastr.error(i.error.message||i.message,this.$translate.instant("toast.title_error")),this.loadInstalledPlugins()}})}onClearSearch(){this.form.setValue({query:""}),this.loadInstalledPlugins()}onSubmit({value:i}){i.query.length?this.search():this.loadInstalledPlugins()}getChildBridgeMetadata(){this.io.request("get-homebridge-child-bridge-status").subscribe(i=>{this.childBridges=i})}getPluginChildBridges(i){return this.childBridges.filter(t=>t.plugin===i.name)}ngOnDestroy(){this.navigationSubscription&&this.navigationSubscription.unsubscribe(),this.io.end()}};d(l,"\u0275fac",function(t){return new(t||l)(y(A),y(q),y(te),y(U),y(R),y(H),y(F))}),d(l,"\u0275cmp",T({type:l,selectors:[["ng-component"]],decls:16,vars:11,consts:[[4,"ngIf"],[1,"row","mb-3"],[1,"col-12"],[1,"primary-text","m-0"],[1,"row"],[1,"col-md-12"],["novalidate","",3,"ngSubmit","formGroup"],["type","text","formControlName","query",1,"hb-npm-search",3,"placeholder"],["href","javascript:void(0)",1,"hb-npm-search-clear",3,"click"],["class","far fa-fw fa-times-circle",4,"ngIf"],[1,"d-flex","flex-wrap","justify-content-between"],["class","hb-plugin-space-between",4,"ngFor","ngForOf"],["class","alert alert-info mt-4 text-center w-100",4,"ngIf"],[1,"far","fa-fw","fa-times-circle"],[1,"hb-plugin-space-between"],[3,"plugin","childBridges"],[1,"alert","alert-info","mt-4","text-center","w-100"],[1,"fas","fa-fw","fa-magnifying-glass","primary-text","my-3",2,"font-size","75px"]],template:function(t,n){t&1&&(I(0,ji,1,0,"app-spinner",0),o(1,"div",1)(2,"div",2)(3,"h3",3),_(4),u(5,"translate"),p()()(),o(6,"div",4)(7,"div",5)(8,"form",6),h("ngSubmit",function(){return n.onSubmit(n.form)}),c(9,"input",7),u(10,"translate"),o(11,"a",8),h("click",function(){return n.onClearSearch()}),I(12,Di,1,0,"i",9),p()()()(),o(13,"div",10),I(14,Ni,2,2,"div",11)(15,Hi,5,3,"div",12),p()),t&2&&(s("ngIf",n.loading),r(4),P(m(5,7,"menu.label_plugins")),r(4),s("formGroup",n.form),r(),s("placeholder",m(10,9,"plugins.placeholder_search_plugin")),r(3),s("ngIf",n.form.controls.query.value),r(2),s("ngForOf",n.installedPlugins),r(),s("ngIf",n.installedPlugins.length===0&&!n.loading))},dependencies:[Y,E,de,ae,le,oe,ce,ge,ye,De,M],styles:[".hb-npm-search[_ngcontent-%COMP%]{outline:none;box-sizing:inherit!important;background-color:inherit;height:50px!important;width:100%;border-width:.5px;padding:10px;margin-bottom:15px}@media (hover: hover){.hb-npm-search[_ngcontent-%COMP%]:hover{border:1px solid #000000}}.hb-npm-search[_ngcontent-%COMP%]:focus{border:1px solid #000000;box-shadow:0 1px #000}.hb-npm-search-clear[_ngcontent-%COMP%]{position:absolute;right:25px;font-size:35px;color:#d0d0d0;line-height:50px;cursor:pointer}.hb-plugin-space-between[_ngcontent-%COMP%]{box-sizing:border-box;width:calc(50% - 6.6666666667px)}@media only screen and (max-width: 991px){.hb-plugin-space-between[_ngcontent-%COMP%]{width:100%}}"]}));let e=l;return e})();var Ai=[{path:"",component:Ne}],He=(()=>{let l=class l{};d(l,"\u0275fac",function(t){return new(t||l)}),d(l,"\u0275mod",N({type:l})),d(l,"\u0275inj",D({imports:[O.forChild(Ai),O]}));let e=l;return e})();var wt=(()=>{let l=class l{};d(l,"\u0275fac",function(t){return new(t||l)}),d(l,"\u0275mod",N({type:l})),d(l,"\u0275inj",D({imports:[ee,ue,me,ne.forChild(),Ie,Be,$e,He]}));let e=l;return e})();export{wt as PluginsModule};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as O,b as G}from"./chunk-
|
|
1
|
+
import{a as O,b as G}from"./chunk-THFLPY67.js";import{a as j}from"./chunk-7564WJJL.js";import{M as H}from"./chunk-WCDFKYP6.js";import{c as D,k as M}from"./chunk-S4SOWUAW.js";import{a as z,b as V}from"./chunk-F22FMU37.js";import{$ as C,Ab as w,Ga as b,Ka as S,La as p,Rb as F,Ua as o,Va as a,Wa as h,Za as $,ab as x,bb as f,fc as E,g as R,gc as P,h as n,ha as I,i as g,ia as y,jb as d,kb as v,lb as k,sc as A,ub as B,wa as r,xa as _,yb as m,zb as u}from"./chunk-IGUSDGD6.js";var W=R(O(),1),N=R(G(),1);var J=e=>({maxBackupSizeText:e});function K(e,c){if(e&1&&(o(0,"div"),h(1,"input",13),a()),e&2){let t=f(2);r(),p("value",t.selectedBackup.fileName)}}function L(e,c){if(e&1){let t=$();o(0,"div",14)(1,"input",15),x("change",function(i){I(t);let l=f(2);return y(l.handleRestoreFileInput(i.target.files))}),a(),o(2,"label",16),d(3),m(4,"translate"),a()()}if(e&2){let t=f(2);r(3),k(" ",u(4,1,(t.selectedFile==null?null:t.selectedFile.name)||"backup.label_choose_backup_file_to_restore")," ")}}function Q(e,c){if(e&1&&(o(0,"div",8)(1,"div",9),h(2,"i",10),a(),o(3,"p"),d(4),m(5,"translate"),a(),o(6,"ul")(7,"li"),d(8),m(9,"translate"),a(),o(10,"li"),d(11),m(12,"translate"),a(),o(13,"li"),d(14),m(15,"translate"),a()(),b(16,K,2,1,"div",11)(17,L,5,3,"div",12),a()),e&2){let t=f();r(4),v(u(5,6,"backup.restore_help_one")),r(4),v(u(9,8,"backup.restore_help_two")),r(3),v(w(12,10,"backup.restore_max_size",B(15,J,t.maxFileSizeText))),r(3),v(u(15,13,"backup.restore_warning")),r(2),p("ngIf",t.selectedBackup),r(),p("ngIf",!t.selectedBackup)}}function X(e,c){e&1&&h(0,"i",24)}function Y(e,c){if(e&1&&(o(0,"span"),d(1),a()),e&2){let t=f(3);r(),k("",t.uploadPercent,"% - ")}}function Z(e,c){e&1&&(o(0,"span"),d(1," Extracting Archive"),a())}function ee(e,c){e&1&&(o(0,"span"),d(1),m(2,"translate"),a()),e&2&&(r(),k(" ",u(2,1,"backup.label_uploading"),""))}function te(e,c){if(e&1&&(o(0,"span"),b(1,X,1,0,"i",23)(2,Y,2,1,"span",11)(3,Z,2,0,"span",11)(4,ee,3,3,"span",11),a()),e&2){let t=f(2);r(),p("ngIf",!t.uploadPercent||t.uploadPercent===100),r(),p("ngIf",t.uploadPercent&&t.uploadPercent!==100),r(),p("ngIf",t.uploadPercent===100),r(),p("ngIf",t.uploadPercent!==100)}}function ie(e,c){e&1&&(o(0,"span"),d(1),m(2,"translate"),a()),e&2&&(r(),v(u(2,1,"form.button_restore")))}function re(e,c){if(e&1){let t=$();o(0,"div",17)(1,"div",18)(2,"button",19),m(3,"translate"),x("click",function(){I(t);let i=f();return y(i.$activeModal.dismiss("Dismiss"))}),d(4),m(5,"translate"),a()(),h(6,"div",20),o(7,"div",21)(8,"button",22),x("click",function(){I(t);let i=f();return y(i.onRestoreBackupClick())}),b(9,te,5,4,"span",11)(10,ie,3,3,"span",11),a()()()}if(e&2){let t=f();r(2),p("disabled",t.clicked),S("aria-label",u(3,6,"form.button_close")),r(2),k(" ",u(5,8,"form.button_close")," "),r(4),p("disabled",!t.selectedBackup&&!t.selectedFile||t.clicked),r(),p("ngIf",t.clicked),r(),p("ngIf",!t.clicked)}}function se(e,c){if(e&1){let t=$();o(0,"div",17),h(1,"div",18),o(2,"div",20)(3,"button",25),x("click",function(){I(t);let i=f();return y(i.postBackupRestart())}),d(4),m(5,"translate"),a()(),h(6,"div",21),a()}e&2&&(r(4),k(" ",u(5,1,"menu.hbrestart.title")," "))}var fe=(()=>{let c=class c{constructor(s,i,l,T,U,q){n(this,"$activeModal");n(this,"$api");n(this,"$route");n(this,"$toastr");n(this,"$translate");n(this,"$ws");n(this,"setupWizardRestore",!1);n(this,"selectedBackup",null);n(this,"clicked",!1);n(this,"maxFileSizeText",globalThis.backup.maxBackupSizeText);n(this,"selectedFile");n(this,"restoreInProgress",!1);n(this,"restoreStarted",!1);n(this,"restoreFailed",!1);n(this,"restoreArchiveType","homebridge");n(this,"uploadPercent",0);n(this,"term",new W.Terminal);n(this,"termTarget");n(this,"fitAddon",new N.FitAddon);n(this,"io");this.$activeModal=s,this.$api=i,this.$route=l,this.$toastr=T,this.$translate=U,this.$ws=q}ngOnInit(){return g(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",s=>{this.term.write(s)}),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 s=new FormData;s.append("restoreArchive",this.selectedFile,this.selectedFile.name),this.$api.post("/backup/restore",s).subscribe({next:()=>{this.restoreStarted=!0,this.restoreInProgress=!0,setTimeout(()=>{this.startRestore()},500),this.clicked=!1},error:i=>{var l;console.error(i),this.$toastr.error(((l=i.error)==null?void 0:l.message)||this.$translate.instant("backup.restore_failed"),this.$translate.instant("toast.title_error")),this.clicked=!1}})}restoreScheduledBackup(){return g(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:s=>{var i;console.error(s),this.$toastr.error(((i=s.error)==null?void 0:i.message)||this.$translate.instant("backup.restore_failed"),this.$translate.instant("toast.title_error")),this.clicked=!1}})})}startRestore(){return g(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:s=>{this.restoreFailed=!0,console.error(s),this.$toastr.error(this.$translate.instant("backup.restore_failed"),this.$translate.instant("toast.title_error"))}})})}uploadHbfxArchive(){this.term.reset(),this.clicked=!0;let s=new FormData;s.append("restoreArchive",this.selectedFile,this.selectedFile.name),this.$api.post("/backup/restore/hbfx",s,{reportProgress:!0,observe:"events"}).subscribe({next:i=>{i.type===E.UploadProgress?this.uploadPercent=Math.round(100*i.loaded/i.total):i instanceof P&&(this.restoreStarted=!0,this.restoreInProgress=!0,setTimeout(()=>{this.startHbfxRestore()},500),this.clicked=!1)},error:i=>{var l;this.clicked=!1,console.error(i),this.$toastr.error(((l=i.error)==null?void 0:l.message)||this.$translate.instant("backup.restore_failed"),this.$translate.instant("toast.title_error"))}})}startHbfxRestore(){return g(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:s=>{this.restoreFailed=!0,console.error(s),this.$toastr.error(this.$translate.instant("backup.restore_failed"),this.$translate.instant("toast.title_error"))}})})}handleRestoreFileInput(s){s.length?(this.selectedFile=s[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()}};n(c,"\u0275fac",function(i){return new(i||c)(_(H),_(D),_(A),_(M),_(z),_(j))}),n(c,"\u0275cmp",C({type:c,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"],["class","modal-body",4,"ngIf"],["id","plugin-log-output",1,"modal-body",3,"hidden"],["class","modal-footer justify-content-between",4,"ngIf"],[1,"modal-body"],[1,"text-center","mt-2","mb-3"],[1,"fas","fa-fw","fa-hard-drive","primary-text",2,"font-size","75px"],[4,"ngIf"],["class","custom-file",4,"ngIf"],["type","text","disabled","",1,"form-control","custom-input",3,"value"],[1,"custom-file"],["type","file","id","restoreFileUpload","accept","application/gzip, .gz, .hbfx",1,"custom-file-input",3,"change"],["for","restoreFileUpload",1,"custom-file-label"],[1,"modal-footer","justify-content-between"],[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"],["class","fa fa-fw fa-circle-notch fa-spin",4,"ngIf"],[1,"fa","fa-fw","fa-circle-notch","fa-spin"],["type","button","data-dismiss","modal",1,"btn","btn-primary",3,"click"]],template:function(i,l){i&1&&(o(0,"div",0)(1,"div",1)(2,"h5",2),d(3),m(4,"translate"),a(),o(5,"button",3),m(6,"translate"),x("click",function(){return l.$activeModal.dismiss("Dismiss")}),o(7,"span",4),d(8,"\xD7"),a()()(),b(9,Q,18,17,"div",5),h(10,"div",6),b(11,re,11,10,"div",7)(12,se,7,3,"div",7),a()),i&2&&(r(3),v(u(4,7,"form.button_restore")),r(2),p("disabled",l.restoreInProgress),S("aria-label",u(6,9,"form.button_close")),r(4),p("ngIf",!l.restoreStarted&&!l.setupWizardRestore),r(),p("hidden",!l.restoreStarted),r(),p("ngIf",!l.restoreStarted||l.restoreFailed===!0),r(),p("ngIf",!l.restoreInProgress&&l.restoreStarted))},dependencies:[F,V],encapsulation:2}));let e=c;return e})();export{fe as a};
|
package/public/index.html
CHANGED
|
@@ -16,9 +16,9 @@
|
|
|
16
16
|
<link rel="manifest" href="/assets/manifest.webmanifest"/>
|
|
17
17
|
<meta name="theme-color" content="#140a33" media="(prefers-color-scheme: light)"/>
|
|
18
18
|
<meta name="theme-color" content="#0f0f0f" media="(prefers-color-scheme: dark)"/>
|
|
19
|
-
<link rel="stylesheet" href="styles-
|
|
19
|
+
<link rel="stylesheet" href="styles-7ETWN6DQ.css" crossorigin="use-credentials"></head>
|
|
20
20
|
|
|
21
21
|
<body>
|
|
22
22
|
<app-root></app-root>
|
|
23
|
-
<link rel="modulepreload" href="chunk-
|
|
23
|
+
<link rel="modulepreload" href="chunk-FPOZAQLC.js"><link rel="modulepreload" href="chunk-5UYN5OWH.js"><link rel="modulepreload" href="chunk-DOLYKWZH.js"><link rel="modulepreload" href="chunk-BROUJ7PT.js"><link rel="modulepreload" href="chunk-VROGSJLF.js"><link rel="modulepreload" href="chunk-422JXES4.js"><link rel="modulepreload" href="chunk-K3YXRBTH.js"><link rel="modulepreload" href="chunk-3KSUXL3K.js"><link rel="modulepreload" href="chunk-4R6MSI5I.js"><link rel="modulepreload" href="chunk-SJTXTMYT.js"><script src="polyfills-CE2SNIQF.js" type="module" crossorigin="use-credentials"></script><script src="scripts-6GVLYD7F.js" defer crossorigin="use-credentials"></script><script src="main-VTRWQ63R.js" type="module" crossorigin="use-credentials"></script></body>
|
|
24
24
|
</html>
|