homebridge-config-ui-x 5.0.0-beta.16 → 5.0.0-beta.17
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/dist/core/auth/auth.module.js +1 -1
- package/dist/core/auth/auth.module.js.map +1 -1
- package/package.json +12 -12
- package/public/3rdpartylicenses.txt +26 -0
- package/public/{chunk-4SW3QBET.js → chunk-23SC6OTA.js} +1 -1
- package/public/chunk-2BGPGGYD.js +1 -0
- package/public/{chunk-B6GMK4UO.js → chunk-365YECXT.js} +1 -1
- package/public/{chunk-76TBS5AV.js → chunk-3U4CGZIH.js} +1 -1
- package/public/{chunk-A5GSY3XX.js → chunk-3UALBXOK.js} +1 -1
- package/public/{chunk-2IF5OARU.js → chunk-3X5XS2GD.js} +1 -1
- package/public/chunk-4CCYVRCF.js +1 -0
- package/public/chunk-4RNBU3VW.js +1 -0
- package/public/{chunk-D7MNIAWD.js → chunk-4TULJPPN.js} +1 -1
- package/public/chunk-543TBOCI.js +1 -0
- package/public/chunk-57BF34CN.js +1 -0
- package/public/{chunk-JZZQRLNW.js → chunk-5PPIFCVN.js} +1 -1
- package/public/chunk-5X6YZZ4Y.js +1 -0
- package/public/{chunk-UG5DK2RQ.js → chunk-5XVPFQGJ.js} +2 -2
- package/public/{chunk-3ZMHJQIE.js → chunk-63XMAKXM.js} +1 -1
- package/public/{chunk-EL7BORJ3.js → chunk-64IHA4FC.js} +1 -1
- package/public/{chunk-MI5DOO72.js → chunk-6HBV2ISU.js} +1 -1
- package/public/{chunk-AJAYFTBK.js → chunk-6LC56BB2.js} +1 -1
- package/public/{chunk-WHJSVGC7.js → chunk-6T627TGJ.js} +1 -1
- package/public/{chunk-XK24XTED.js → chunk-7A7LGGLW.js} +1 -1
- package/public/{chunk-BTOSHKFS.js → chunk-7LWT67IC.js} +1 -1
- package/public/chunk-7Y43GPTE.js +1 -0
- package/public/{chunk-HX4ZYQRQ.js → chunk-AOWN5XN4.js} +1 -1
- package/public/chunk-BPOLCGDU.js +1 -0
- package/public/{chunk-6ZD3BBNQ.js → chunk-CNALPQMI.js} +1 -1
- package/public/{chunk-ZT23DWNL.js → chunk-DCVSB5TS.js} +1 -1
- package/public/chunk-DCZ5JR2G.js +1 -0
- package/public/chunk-DF55XFMJ.js +1 -0
- package/public/{chunk-BL5MHRAN.js → chunk-DPWWPEH7.js} +1 -1
- package/public/chunk-E5UG6JK3.js +1 -0
- package/public/{chunk-QE7DO6J3.js → chunk-ENEUSDNM.js} +2 -2
- package/public/chunk-EOXKG2LG.js +1 -0
- package/public/chunk-ESPZTQEE.js +1 -0
- package/public/{chunk-CCUID66K.js → chunk-FGUBIKM4.js} +1 -1
- package/public/{chunk-QHPDGSZ6.js → chunk-FLUSPBPU.js} +1 -1
- package/public/{chunk-M75FNX4G.js → chunk-FS5PEVUD.js} +1 -1
- package/public/chunk-FZHTR526.js +1 -0
- package/public/chunk-G43POB7Z.js +1 -0
- package/public/{chunk-WNWWUCCZ.js → chunk-GPSZWI6A.js} +1 -1
- package/public/{chunk-WCRC47TH.js → chunk-IK23UVWP.js} +1 -1
- package/public/{chunk-7EUQWCP5.js → chunk-IRGLFC77.js} +1 -1
- package/public/{chunk-G2GECCZT.js → chunk-JNR4NFBN.js} +4 -4
- package/public/{chunk-5XXU24EV.js → chunk-KCZAAXJW.js} +1 -1
- package/public/{chunk-XHKS6AM7.js → chunk-KKSO2HY6.js} +1 -1
- package/public/{chunk-3IX3CLER.js → chunk-KTW5C5OW.js} +1 -1
- package/public/{chunk-VNWAKNQB.js → chunk-MAQWVLGF.js} +1 -1
- package/public/{chunk-3N2Q7IWD.js → chunk-MLA3CVFN.js} +1 -1
- package/public/{chunk-6TCHCTXZ.js → chunk-MO6NBKKU.js} +1 -1
- package/public/chunk-N7JBAWYM.js +7 -0
- package/public/{chunk-EA5J2VEJ.js → chunk-NGW5QYCP.js} +1 -1
- package/public/{chunk-JEX77RUF.js → chunk-O7NQNFEF.js} +1 -1
- package/public/{chunk-KQJ7ONUG.js → chunk-OHVZQ3PT.js} +1 -1
- package/public/chunk-OURIKF5N.js +1 -0
- package/public/chunk-POWTBOBI.js +1 -0
- package/public/chunk-Q26XGS2B.js +1 -0
- package/public/chunk-QCVYCZ4W.js +1 -0
- package/public/chunk-RAXZ2SF5.js +1 -0
- package/public/{chunk-BKUGARB4.js → chunk-RBDXIYQQ.js} +1 -1
- package/public/{chunk-6G4RAFVI.js → chunk-RJ3W3SKJ.js} +1 -1
- package/public/chunk-RL7EFFVY.js +1 -0
- package/public/{chunk-7UUAVPXG.js → chunk-RUR5SLUK.js} +1 -1
- package/public/{chunk-BPMSJ2VF.js → chunk-S4MRBFHA.js} +1 -1
- package/public/chunk-SE4FUIH2.js +1 -0
- package/public/{chunk-NW6AFAD7.js → chunk-SHHUZA33.js} +1 -1
- package/public/{chunk-VKCF7BAJ.js → chunk-SLIBOJ4D.js} +1 -1
- package/public/{chunk-3BG7PDOZ.js → chunk-T2HX34UO.js} +1 -1
- package/public/{chunk-NZNNTHFQ.js → chunk-TKQHVRJM.js} +1 -1
- package/public/chunk-TPI5UJRN.js +1 -0
- package/public/{chunk-2VYW436W.js → chunk-TVL46Z6J.js} +1 -1
- package/public/chunk-VGIYOOUW.js +1 -0
- package/public/{chunk-WHJOLAED.js → chunk-WFMX2K5O.js} +1 -1
- package/public/chunk-WRHGUSTU.js +1 -0
- package/public/chunk-WXTCD4TR.js +1 -0
- package/public/{chunk-4GXE2TG4.js → chunk-WYHLVQUV.js} +1 -1
- package/public/{chunk-ORPWYWCL.js → chunk-X3WXF4QL.js} +3 -3
- package/public/{chunk-SYQZ4PD4.js → chunk-Y4Q7QEO5.js} +1 -1
- package/public/chunk-YEGQBMEO.js +1 -0
- package/public/chunk-YKCV4SM3.js +1 -0
- package/public/{chunk-XLIFCBEO.js → chunk-YLB3DTWS.js} +1 -1
- package/public/{chunk-DG5IOZTF.js → chunk-ZWPSPZX2.js} +1 -1
- package/public/{chunk-3BJWZ2RN.js → chunk-ZYYW5TAU.js} +1 -1
- package/public/index.html +1 -1
- package/public/main-JTPPMUKD.js +1 -0
- package/public/chunk-24ULZ3BT.js +0 -1
- package/public/chunk-575Y7TVV.js +0 -1
- package/public/chunk-75XYWONG.js +0 -1
- package/public/chunk-A2N2Q4LU.js +0 -1
- package/public/chunk-CIHQVIKG.js +0 -1
- package/public/chunk-CN3OMB2Y.js +0 -1
- package/public/chunk-ETLJLL32.js +0 -1
- package/public/chunk-FHH52I62.js +0 -1
- package/public/chunk-FXCBJ67V.js +0 -1
- package/public/chunk-HSJSWZHD.js +0 -1
- package/public/chunk-LWETKFFL.js +0 -1
- package/public/chunk-MM6P6S4W.js +0 -1
- package/public/chunk-MPQUGKWM.js +0 -1
- package/public/chunk-O6R4MYOK.js +0 -1
- package/public/chunk-PJXR7GKO.js +0 -1
- package/public/chunk-PU3JBLLD.js +0 -1
- package/public/chunk-QKW5HJGC.js +0 -1
- package/public/chunk-QTQTMHO2.js +0 -1
- package/public/chunk-RHQMX4CH.js +0 -1
- package/public/chunk-SHEWI2SS.js +0 -1
- package/public/chunk-SVWATWZN.js +0 -1
- package/public/chunk-TCSXGQNF.js +0 -1
- package/public/chunk-TX6DNJTK.js +0 -1
- package/public/chunk-TXOB7R5K.js +0 -7
- package/public/chunk-U5R5M7K5.js +0 -1
- package/public/chunk-UC3YKZKI.js +0 -1
- package/public/chunk-VBT4PKHK.js +0 -1
- package/public/chunk-YODW2WL7.js +0 -1
- package/public/chunk-ZYDWBTMP.js +0 -1
- package/public/main-5X5SCFC2.js +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as U}from"./chunk-
|
|
1
|
+
import{a as U}from"./chunk-FGUBIKM4.js";import{a as S,b as O}from"./chunk-RBDXIYQQ.js";import{a as g}from"./chunk-AOWN5XN4.js";import{M as w,e as x,g as h,ha as E,n as R,na as L}from"./chunk-N7JBAWYM.js";var F=x((v,b)=>{(function(a,l){typeof define=="function"&&define.amd?define([],l):typeof v<"u"?l():(l(),a.FileSaver={})})(v,function(){"use strict";function a(e,t){return typeof t>"u"?t={autoBom:!1}:typeof t!="object"&&(console.warn("Deprecated: Expected third argument to be a object"),t={autoBom:!t}),t.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type)?new Blob(["\uFEFF",e],{type:e.type}):e}function l(e,t,n){var i=new XMLHttpRequest;i.open("GET",e),i.responseType="blob",i.onload=function(){r(i.response,t,n)},i.onerror=function(){console.error("could not download file")},i.send()}function d(e){var t=new XMLHttpRequest;t.open("HEAD",e,!1);try{t.send()}catch{}return 200<=t.status&&299>=t.status}function c(e){try{e.dispatchEvent(new MouseEvent("click"))}catch{var t=document.createEvent("MouseEvents");t.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),e.dispatchEvent(t)}}var s=typeof window=="object"&&window.window===window?window:typeof self=="object"&&self.self===self?self:typeof global=="object"&&global.global===global?global:void 0,m=s.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),r=s.saveAs||(typeof window!="object"||window!==s?function(){}:"download"in HTMLAnchorElement.prototype&&!m?function(e,t,n){var i=s.URL||s.webkitURL,o=document.createElement("a");t=t||e.name||"download",o.download=t,o.rel="noopener",typeof e=="string"?(o.href=e,o.origin===location.origin?c(o):d(o.href)?l(e,t,n):c(o,o.target="_blank")):(o.href=i.createObjectURL(e),setTimeout(function(){i.revokeObjectURL(o.href)},4e4),setTimeout(function(){c(o)},0))}:"msSaveOrOpenBlob"in navigator?function(e,t,n){if(t=t||e.name||"download",typeof e!="string")navigator.msSaveOrOpenBlob(a(e,n),t);else if(d(e))l(e,t,n);else{var i=document.createElement("a");i.href=e,i.target="_blank",setTimeout(function(){c(i)})}}:function(e,t,n,i){if(i=i||open("","_blank"),i&&(i.document.title=i.document.body.innerText="downloading..."),typeof e=="string")return l(e,t,n);var o=e.type==="application/octet-stream",z=/constructor/i.test(s.HTMLElement)||s.safari,y=/CriOS\/[\d]+/.test(navigator.userAgent);if((y||o&&z||m)&&typeof FileReader<"u"){var u=new FileReader;u.onloadend=function(){var f=u.result;f=y?f:f.replace(/^data:[^;]*;/,"data:attachment/file;"),i?i.location.href=f:location=f,i=null},u.readAsDataURL(e)}else{var A=s.URL||s.webkitURL,p=A.createObjectURL(e);i?i.location=p:location.href=p,i=null,setTimeout(function(){A.revokeObjectURL(p)},4e4)}});s.saveAs=r.saveAs=r,typeof b<"u"&&(b.exports=r)})});var k=h(S(),1),j=h(O(),1),T=h(U(),1);var W=(()=>{class a{$ws=L(g);term;io;fitAddon;webLinksAddon;resize;elementResize;pluginName;startTerminal(d,c={},s,m){this.pluginName=m,this.elementResize=s,this.io=this.$ws.connectToNamespace("log"),this.term=new k.Terminal(c),setTimeout(()=>{this.term.loadAddon(this.fitAddon),this.term.loadAddon(this.webLinksAddon)}),this.fitAddon=new j.FitAddon,this.webLinksAddon=new T.WebLinksAddon,this.resize=new R,this.term.open(d.nativeElement),setTimeout(()=>{this.fitAddon.activate(this.term),this.fitAddon.fit()}),this.io.connected.subscribe(()=>{this.term.reset(),this.io.socket.emit("tail-log",{cols:this.term.cols,rows:this.term.rows})}),this.io.socket.on("disconnect",()=>{this.term.write(`
|
|
2
2
|
\r
|
|
3
3
|
\rWebsocket failed to connect. Is the server running?
|
|
4
4
|
\r
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as he,b as be}from"./chunk-ZT23DWNL.js";import{a as _e}from"./chunk-6TCHCTXZ.js";import{o as Ce,w as j}from"./chunk-G2GECCZT.js";import{a as R}from"./chunk-6ZD3BBNQ.js";import{a as A}from"./chunk-BPMSJ2VF.js";import{a as fe}from"./chunk-JZZQRLNW.js";import{a as me}from"./chunk-KQJ7ONUG.js";import{h as le,i as re,j as se,k as de,l as pe,m as ce,n as ue,o as ge}from"./chunk-ORPWYWCL.js";import{c as K,d as Q,e as X,f as Y,g as Z,j as ee,m as ie,p as te,q as ne,y as ae,z as oe}from"./chunk-QHPDGSZ6.js";import{a as H}from"./chunk-HX4ZYQRQ.js";import{a as W,d as J}from"./chunk-NZNNTHFQ.js";import{b as N}from"./chunk-WCRC47TH.js";import{b as E,j as D}from"./chunk-TX6DNJTK.js";import{a as M,b as T}from"./chunk-3IX3CLER.js";import{$b as h,Bc as c,Cc as u,Dc as O,Kb as v,Lb as y,Mb as x,Rb as d,Tb as U,Ub as z,Vb as q,Wb as o,Xb as l,Yb as r,ad as L,cc as m,dc as p,eb as I,h as S,ib as n,kd as G,na as w,nc as g,oc as k,pc as b,rb as V,w as B,xa as _,ya as C,yc as F}from"./chunk-TXOB7R5K.js";function ke(t,s){if(t&1){let e=h();o(0,"button",15),m("click",function(){_(e);let i=p();return C(i.$activeModal.dismiss("Dismiss"))}),g(1),c(2,"translate"),l()}t&2&&(n(),b(" ",u(2,1,"form.button_close")," "))}function Se(t,s){if(t&1){let e=h();o(0,"button",15),m("click",function(){_(e);let i=p();return C(i.$activeModal.dismiss("Dismiss"))}),g(1),c(2,"translate"),l()}t&2&&(n(),b(" ",u(2,1,"form.button_close")," "))}function ye(t,s){if(t&1&&(o(0,"a",14),g(1),c(2,"translate"),r(3,"i",16),l()),t&2){let e=p();x("href",e.plugin.links.homepage||e.plugin.links.npm,I),n(),b(" ",u(2,2,"plugins.button_homepage")," ")}}var xe=(()=>{class t{$activeModal=w(ce);plugin;defaultIcon="assets/hb-icon.png";ngOnInit(){this.plugin.icon||(this.plugin.icon=this.defaultIcon)}handleIconError(){this.plugin.icon=this.defaultIcon}static \u0275fac=function(a){return new(a||t)};static \u0275cmp=V({type:t,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","data-dismiss","modal",1,"btn","btn-elegant"],[1,"text-center"],[1,"text-right"],["target","_blank","rel","noopener noreferrer",1,"btn","btn-primary","text-decoration-none",3,"href"],["type","button","data-dismiss","modal",1,"btn","btn-elegant",3,"click"],[1,"fas","fa-fw","fa-external-link-alt"]],template:function(a,i){a&1&&(o(0,"div",0)(1,"div",1)(2,"h5",2),g(3),c(4,"translate"),l(),o(5,"button",3),c(6,"translate"),m("click",function(){return i.$activeModal.dismiss("Dismiss")}),o(7,"span",4),g(8,"\xD7"),l()()(),o(9,"div",5)(10,"img",6),m("error",function(){return i.handleIconError()}),l(),o(11,"h4"),g(12),l(),o(13,"p",7),g(14),l(),o(15,"p",8),g(16),l(),o(17,"p",8),g(18),l()(),o(19,"div",9)(20,"div",10),v(21,ke,3,3,"button",11),l(),o(22,"div",12),v(23,Se,3,3,"button",11),l(),o(24,"div",13),v(25,ye,4,4,"a",14),l()()()),a&2&&(n(3),k(u(4,10,"plugins.manage.information")),n(2),y("aria-label",u(6,12,"form.button_close")),n(5),x("src",i.plugin.icon,I),n(2),k(i.plugin.displayName||i.plugin.name),n(2),k(i.plugin.description),n(2),k(i.plugin.name),n(2),b("@",i.plugin.author,""),n(3),d(i.plugin.links.homepage||i.plugin.links.npm?21:-1),n(2),d(!i.plugin.links.homepage&&!i.plugin.links.npm?23:-1),n(2),d(i.plugin.links.homepage||i.plugin.links.npm?25:-1))},dependencies:[T],styles:[".plugin-icon[_ngcontent-%COMP%]{height:75px;width:75px;border-radius:15px;border:1px solid #222222}"]})}return t})();var Be=(t,s)=>({"fa-bridge-circle-exclamation orange-text":t,"fa-bridge-circle-xmark red-text":s});function Ie(t,s){t&1&&r(0,"i",25)}function Ve(t,s){t&1&&r(0,"i",26)}function Te(t,s){if(t&1){let e=h();o(0,"a",24),m("click",function(){_(e);let i=p();return C(i.openHb2InfoModal())}),v(1,Ie,1,0,"i",25)(2,Ve,1,0,"i",26),l()}if(t&2){let e=p();x("ngbTooltip","Homebridge v2.0 Readiness")("placement","right"),n(),d(e.hb2Status==="supported"?1:-1),n(),d(e.hb2Status==="unknown"?2:-1)}}function $e(t,s){if(t&1){let e=h();o(0,"a",27),c(1,"translate"),c(2,"translate"),m("click",function(){_(e);let i=p();return C(i.$plugin.checkAndUpdatePlugin(i.plugin,i.plugin.updateTag||"latest"))}),r(3,"i",28),l()}t&2&&(x("ngbTooltip",u(1,2,"plugins.button_update")),y("aria-label",u(2,4,"plugins.button_update")))}function Ee(t,s){if(t&1){let e=h();o(0,"a",27),c(1,"translate"),c(2,"translate"),m("click",function(){_(e);let i=p();return C(i.$plugin.switchToScoped(i.plugin))}),r(3,"i",29),l()}t&2&&(x("ngbTooltip",u(1,2,"plugins.manage.scoped.switch")),y("aria-label",u(2,4,"plugins.manage.scoped.switch")))}function Me(t,s){if(t&1){let e=h();o(0,"a",27),c(1,"translate"),c(2,"translate"),m("click",function(){_(e);let i=p();return C(i.$plugin.settings(i.plugin))}),r(3,"i",30),l()}t&2&&(x("ngbTooltip",u(1,2,"plugins.button_set_up")),y("aria-label",u(2,4,"plugins.button_set_up")))}function De(t,s){if(t&1){let e=h();o(0,"a",27),c(1,"translate"),c(2,"translate"),m("click",function(){_(e);let i=p();return C(i.$plugin.bridgeSettings(i.plugin))}),r(3,"i",31),l()}t&2&&(x("ngbTooltip",u(1,2,"child_bridge.setup")),y("aria-label",u(2,4,"child_bridge.setup")))}function Ne(t,s){if(t&1){let e=h();o(0,"a",27),c(1,"translate"),c(2,"translate"),m("click",function(){_(e);let i=p();return C(i.$plugin.bridgeSettings(i.plugin))}),r(3,"i",32),l()}t&2&&(x("ngbTooltip",u(1,2,"child_bridge.bridge_connect")),y("aria-label",u(2,4,"child_bridge.bridge_connect")))}function He(t,s){if(t&1&&r(0,"i",13),t&2){let e=p();x("ngClass",F(1,Be,e.childBridgeStatus==="pending",e.childBridgeStatus==="down"))}}function je(t,s){if(t&1){let e=h();o(0,"p",18)(1,"a",33),m("click",function(){_(e);let i=p();return C(i.openVerifiedModal())}),r(2,"i",34),o(3,"span",17),g(4),c(5,"translate"),l()()()}t&2&&(n(4),k(u(5,1,"plugins.donate.button_verified")))}function Ae(t,s){if(t&1){let e=h();o(0,"p",18)(1,"a",35),m("click",function(){_(e);let i=p();return C(i.openVerifiedModal())}),r(2,"i",36),o(3,"span",17),g(4),c(5,"translate"),l()()()}t&2&&(n(4),k(u(5,1,"plugins.donate.button_not_verified")))}function Re(t,s){if(t&1){let e=h();o(0,"a",37),m("click",function(){_(e);let i=p();return C(i.openFundingModal(i.plugin))}),r(1,"i",38),o(2,"span",17),g(3),l()()}if(t&2){let e=p();n(3),b("@",e.plugin.author,"")}}function Ue(t,s){if(t&1&&(o(0,"span",17),r(1,"i",39),g(2),l()),t&2){let e=p();n(2),b("@",e.plugin.author," ")}}function ze(t,s){if(t&1&&(o(0,"span"),g(1),c(2,"date"),l()),t&2){let e=p(2);n(),b("(",O(2,1,e.plugin.lastUpdated,"yyyy-MM-dd"),")")}}function qe(t,s){if(t&1&&(o(0,"span"),r(1,"i",40),o(2,"span",17),g(3),v(4,ze,3,4,"span"),l()()),t&2){let e=p();n(3),b("v",e.plugin.latestVersion," "),n(),d(e.plugin.lastUpdated?4:-1)}}function Fe(t,s){if(t&1&&(o(0,"span"),r(1,"i",41),g(2),l()),t&2){let e=p();n(2),b("v",e.plugin.installedVersion," ")}}function Oe(t,s){if(t&1){let e=h();o(0,"a",27),c(1,"translate"),m("click",function(){_(e);let i=p();return C(i.doChildBridgeAction("restart"))}),r(2,"i",42),l()}if(t&2){let e=p();x("ngbTooltip",u(1,1,e.setChildBridges.length>1?"child_bridge.restart_plural":"child_bridge.restart"))}}function Le(t,s){if(t&1){let e=h();o(0,"a",43),m("click",function(){_(e);let i=p();return C(i.enablePlugin(i.plugin))}),r(1,"i",44),c(2,"translate"),l()}t&2&&(n(),x("ngbTooltip",u(2,1,"plugins.status_disabled")))}function Ge(t,s){if(t&1){let e=h();o(0,"a",45),m("click",function(){_(e);let i=p();return C(i.$plugin.installAlternateVersion(i.plugin))}),r(1,"i",46),l()}}function We(t,s){if(t&1){let e=h();o(0,"button",50),m("click",function(){_(e);let i=p(2);return C(i.viewPluginLog(i.plugin))}),r(1,"i",55),g(2),c(3,"translate"),l()}t&2&&(n(2),b(" ",u(3,1,"plugins.manage.plugin_logs")," "))}function Je(t,s){if(t&1){let e=h();o(0,"button",50),m("click",function(){_(e);let i=p(2);return C(i.$plugin.installAlternateVersion(i.plugin))}),r(1,"i",56),g(2),c(3,"translate"),l()}t&2&&(n(2),b(" ",u(3,1,"plugins.manage.manage_version")," "))}function Ke(t,s){if(t&1){let e=h();o(0,"button",50),m("click",function(){_(e);let i=p(2);return C(i.$plugin.jsonEditor(i.plugin))}),r(1,"i",57),g(2),c(3,"translate"),l()}t&2&&(n(2),b(" ",u(3,1,"plugins.manage.json_config")," "))}function Qe(t,s){if(t&1){let e=h();o(0,"button",50),m("click",function(){_(e);let i=p(2);return C(i.disablePlugin(i.plugin))}),r(1,"i",58),g(2),c(3,"translate"),l()}t&2&&(n(2),b(" ",u(3,1,"plugins.manage.disable")," "))}function Xe(t,s){if(t&1){let e=h();o(0,"button",50),m("click",function(){_(e);let i=p(2);return C(i.enablePlugin(i.plugin))}),r(1,"i",59),g(2),c(3,"translate"),l()}t&2&&(n(2),b(" ",u(3,1,"plugins.manage.enable")," "))}function Ye(t,s){if(t&1){let e=h();o(0,"button",50),m("click",function(){_(e);let i=p(2);return C(i.$plugin.uninstallPlugin(i.plugin,i.setChildBridges))}),r(1,"i",60),g(2),c(3,"translate"),l()}t&2&&(n(2),b(" ",u(3,1,"plugins.button_uninstall")," "))}function Ze(t,s){t&1&&r(0,"div",53)}function ei(t,s){if(t&1){let e=h();o(0,"button",50),m("click",function(){_(e);let i=p(3);return C(i.doChildBridgeAction("restart"))}),r(1,"i",62),g(2),c(3,"translate"),l()}if(t&2){let e=p(3);n(2),b(" ",u(3,1,e.setChildBridges.length>1?"child_bridge.restart_plural":"child_bridge.restart")," ")}}function ii(t,s){if(t&1){let e=h();o(0,"button",50),m("click",function(){_(e);let i=p(3);return C(i.doChildBridgeAction("stop"))}),r(1,"i",63),g(2),c(3,"translate"),l()}if(t&2){let e=p(3);n(2),b(" ",u(3,1,e.setChildBridges.length>1?"child_bridge.stop_plural":"child_bridge.stop")," ")}}function ti(t,s){if(t&1){let e=h();o(0,"button",50),m("click",function(){_(e);let i=p(3);return C(i.doChildBridgeAction("start"))}),r(1,"i",64),g(2),c(3,"translate"),l()}if(t&2){let e=p(3);n(2),b(" ",u(3,1,e.setChildBridges.length>1?"child_bridge.start_plural":"child_bridge.start")," ")}}function ni(t,s){if(t&1){let e=h();o(0,"button",50),m("click",function(){_(e);let i=p(3);return C(i.$plugin.resetChildBridges(i.setChildBridges))}),r(1,"i",65),g(2),c(3,"translate"),l()}t&2&&(n(2),b(" ",u(3,1,"child_bridge.reset_accessories")," "))}function ai(t,s){if(t&1){let e=h();o(0,"button",50),m("click",function(){_(e);let i=p(2);return C(i.$plugin.bridgeSettings(i.plugin))}),r(1,"i",61),g(2),c(3,"translate"),l(),v(4,ei,4,3,"button",52)(5,ii,4,3,"button",52)(6,ti,4,3,"button",52)(7,ni,4,3,"button",52)}if(t&2){let e=p(2);n(2),b(" ",u(3,5,"child_bridge.bridge_settings")," "),n(2),d(e.childBridgeRestartInProgress?-1:4),n(),d(e.allChildBridgesStopped?-1:5),n(),d(e.allChildBridgesStopped?6:-1),n(),d(e.$settings.env.serviceMode?7:-1)}}function oi(t,s){t&1&&r(0,"div",53)}function li(t,s){if(t&1){let e=h();o(0,"button",50),m("click",function(){_(e);let i=p(2);return C(i.$plugin.bridgeSettings(i.plugin))}),r(1,"i",66),g(2),c(3,"translate"),l()}t&2&&(n(2),b(" ",u(3,1,"child_bridge.setup")," "))}function ri(t,s){t&1&&r(0,"div",53)}function si(t,s){if(t&1){let e=h();o(0,"button",50),m("click",function(){_(e);let i=p(2);return C(i.$plugin.bridgeSettings(i.plugin))}),r(1,"i",66),g(2),c(3,"translate"),l()}t&2&&(n(2),b(" ",u(3,1,"child_bridge.setup")," "))}function di(t,s){t&1&&r(0,"div",53)}function pi(t,s){if(t&1&&(o(0,"a",54),r(1,"i",67),g(2),c(3,"translate"),l()),t&2){let e=p(2);x("href",e.plugin.links.bugs,I),n(2),b(" ",u(3,2,"support.links.issue")," ")}}function ci(t,s){if(t&1){let e=h();o(0,"span",23)(1,"a",47),r(2,"i",48),l(),o(3,"div",49)(4,"button",50),m("click",function(){_(e);let i=p();return C(i.$plugin.settings(i.plugin))}),r(5,"i",51),g(6),c(7,"translate"),l(),v(8,We,4,3,"button",52)(9,Je,4,3,"button",52)(10,Ke,4,3,"button",52)(11,Qe,4,3,"button",52)(12,Xe,4,3,"button",52)(13,Ye,4,3,"button",52)(14,Ze,1,0,"div",53)(15,ai,8,7)(16,oi,1,0,"div",53)(17,li,4,3,"button",52)(18,ri,1,0,"div",53)(19,si,4,3,"button",52)(20,di,1,0,"div",53)(21,pi,4,4,"a",54),l()()}if(t&2){let e=p();n(),y("aria-label","Plugin Actions Dropdown"),n(5),b(" ",u(7,16,"plugins.button_settings")," "),n(2),d(e.plugin.isConfigured&&!e.plugin.disabled?8:-1),n(),d(e.plugin.publicPackage?9:-1),n(),d(!e.isMobile&&e.plugin.name!=="homebridge-config-ui-x"?10:-1),n(),d(e.plugin.name!=="homebridge-config-ui-x"&&!e.plugin.disabled?11:-1),n(),d(e.plugin.name!=="homebridge-config-ui-x"&&e.plugin.disabled?12:-1),n(),d(e.plugin.name!=="homebridge-config-ui-x"?13:-1),n(),d(!e.plugin.disabled&&e.plugin.isConfigured&&e.plugin.hasChildBridges&&e.plugin.installedVersion&&e.plugin.name!=="homebridge-config-ui-x"?14:-1),n(),d(e.plugin.hasChildBridges&&!e.plugin.disabled?15:-1),n(),d(e.plugin.isConfigured&&!e.plugin.hasChildBridges&&!e.plugin.disabled&&!e.plugin.recommendChildBridge?16:-1),n(),d(e.plugin.isConfigured&&!e.plugin.hasChildBridges&&!e.plugin.disabled&&!e.plugin.recommendChildBridge?17:-1),n(),d(e.plugin.isConfigured&&!e.plugin.hasChildBridges&&!e.plugin.disabled&&e.plugin.recommendChildBridge&&e.plugin.updateAvailable?18:-1),n(),d(e.plugin.isConfigured&&!e.plugin.hasChildBridges&&!e.plugin.disabled&&e.plugin.recommendChildBridge&&e.plugin.updateAvailable?19:-1),n(),d(e.plugin.links!=null&&e.plugin.links.bugs?20:-1),n(),d(e.plugin.links!=null&&e.plugin.links.bugs?21:-1)}}var we=(()=>{class t{$api=w(E);$md=w(fe);$modal=w(ue);$plugin=w(j);$settings=w(N);$toastr=w(D);$translate=w(M);$ws=w(H);plugin;hasChildBridges=!1;hasUnpairedChildBridges=!1;allChildBridgesStopped=!1;childBridgeStatus="pending";childBridgeRestartInProgress=!1;defaultIcon="assets/hb-icon.png";isMobile;setChildBridges=[];prettyDisplayName="";hb2Status="unknown";io;set childBridges(e){var f,$;this.hasChildBridges=e.length>0,this.hasUnpairedChildBridges=e.filter(P=>P.paired===!1).length>0,this.allChildBridgesStopped=e.filter(P=>P.manuallyStopped===!0).length===e.length,this.hasChildBridges&&(e.some(P=>P.status==="down")?this.childBridgeStatus="down":e.some(P=>P.status==="pending")?this.childBridgeStatus="pending":e.some(P=>P.status==="ok")&&(this.childBridgeStatus="ok")),this.setChildBridges=e;let a=this.$settings.env.homebridgeVersion.split(".")[0],i=(($=(f=this.plugin.engines)==null?void 0:f.homebridge)==null?void 0:$.split("||").map(P=>P.trim()))||[];this.hb2Status=a==="2"?"hide":i.some(P=>P.startsWith("^2")||P.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(e){let a=this.$modal.open(be,{size:"lg",backdrop:"static"});a.componentInstance.plugin=e}openVerifiedModal(){let e=this.$modal.open(A,{size:"lg",backdrop:"static"});this.plugin.verifiedPlugin||this.plugin.verifiedPlusPlugin?(e.componentInstance.title=this.$translate.instant("plugins.manage.verified_title"),e.componentInstance.subtitle=this.$translate.instant("plugins.manage.verified_subtitle",{pluginName:this.plugin.displayName||this.plugin.name}),e.componentInstance.message=this.$translate.instant("plugins.manage.verified_message"),e.componentInstance.faIconClass="fa-shield-alt green-text"):(e.componentInstance.title=this.$translate.instant("plugins.manage.unverified_title"),e.componentInstance.subtitle=this.$translate.instant("plugins.manage.unverified_subtitle",{pluginName:this.plugin.displayName||this.plugin.name}),e.componentInstance.message=this.$translate.instant("plugins.manage.unverified_message"),e.componentInstance.faIconClass="fa-shield-alt grey-text"),e.componentInstance.ctaButtonLabel=this.$translate.instant("form.button_more_info"),e.componentInstance.ctaButtonLink="https://github.com/homebridge/homebridge/wiki/verified-Plugins"}pluginInfoModal(e){let a=this.$modal.open(xe,{size:"lg",backdrop:"static"});a.componentInstance.plugin=e}disablePlugin(e){let a=this.$modal.open(he,{size:"lg",backdrop:"static"});a.componentInstance.pluginName=e.name,a.componentInstance.isConfigured=e.isConfigured,a.componentInstance.isConfiguredDynamicPlatform=e.isConfiguredDynamicPlatform,a.result.then(()=>S(this,null,function*(){try{yield B(this.$api.put(`/config-editor/plugin/${encodeURIComponent(e.name)}/disable`,{})),e.disabled=!0,this.hasChildBridges&&this.doChildBridgeAction("stop"),this.$modal.open(R,{size:"lg",backdrop:"static"})}catch(i){console.error(i),this.$toastr.error(this.$translate.instant("plugins.disable.error"),this.$translate.instant("toast.title_error"))}}))}enablePlugin(e){let a=this.$modal.open(me,{size:"lg",backdrop:"static"});a.componentInstance.title=`${this.$translate.instant("plugins.manage.enable")}: ${e.name}`,a.componentInstance.message=this.$translate.instant("plugins.manage.confirm_enable",{pluginName:e.name}),a.componentInstance.confirmButtonLabel=this.$translate.instant("plugins.manage.enable"),a.componentInstance.faIconClass="fa-circle-play primary-text",a.result.then(()=>S(this,null,function*(){try{yield B(this.$api.put(`/config-editor/plugin/${encodeURIComponent(e.name)}/enable`,{})),e.disabled=!1,this.hasChildBridges&&(yield this.doChildBridgeAction("start")),this.$modal.open(R,{size:"lg",backdrop:"static"})}catch(i){console.error(i),this.$toastr.error(this.$translate.instant("plugins.enable.error"),this.$translate.instant("toast.title_error"))}}))}viewPluginLog(e){let a=this.$modal.open(Ce,{size:"xl",backdrop:"static"});a.componentInstance.plugin=e}doChildBridgeAction(e){return S(this,null,function*(){this.childBridgeRestartInProgress=!0;try{for(let a of this.setChildBridges)yield B(this.io.request(`${e}-child-bridge`,a.username))}catch(a){console.error(a),this.$toastr.error(this.$translate.instant("plugins.bridge.action_error",{action:e}),this.$translate.instant("toast.title_error")),this.childBridgeRestartInProgress=!1}finally{setTimeout(()=>{this.childBridgeRestartInProgress=!1},e==="restart"?12e3:e==="stop"?6e3:1e3)}})}handleIconError(){this.plugin.icon=this.defaultIcon}prettifyName(){let e=this.plugin.displayName||(this.plugin.name.charAt(0)==="@"?this.plugin.name.split("/")[1]:this.plugin.name);return e=e.replace(/-/g," "),this.isMobile&&e.toLowerCase().startsWith("homebridge ")&&(e=e.replace(/^homebridge /i,"")),this.plugin.displayName||(e=e.replace(/\w\S*/g,a=>a.charAt(0).toUpperCase()+a.substring(1).toLowerCase())),e}openHb2InfoModal(){let e=this.$modal.open(A,{size:"lg",backdrop:"static"});e.componentInstance.title="Plugin Readiness",this.hb2Status==="supported"?(e.componentInstance.subtitle=`${this.plugin.displayName||this.plugin.name} is ready for Homebridge v2.0`,e.componentInstance.message="The developer has specifically marked your installed version of the plugin as compatible with Homebridge v2.0.",e.componentInstance.faIconClass="fa-check-circle green-text"):(e.componentInstance.subtitle=`${this.plugin.displayName||this.plugin.name} might not be ready for Homebridge v2.0`,e.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.",e.componentInstance.faIconClass="fa-question-circle orange-text"),e.componentInstance.ctaButtonLabel=this.$translate.instant("form.button_more_info"),e.componentInstance.ctaButtonLink="https://github.com/homebridge/homebridge/wiki/Updating-To-Homebridge-v2.0"}static \u0275fac=function(a){return new(a||t)};static \u0275cmp=V({type:t,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"],[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)","container","body","openDelay","150","triggers","hover",1,"card-link",3,"ngbTooltip"],[1,"fas","fa-fw","fa-spinner","fa-pulse","fa-lg","grey-text","ml-3",3,"hidden"],[1,"fas","fa-fw","fa-lg","ml-3",3,"ngClass"],[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"],[1,"card-text","mb-2"],["href","javascript:void(0)",1,"card-link","pink-text"],[1,"card-text","mb-0","grey-text"],["href","javascript:void(0)",1,"card-link","red-text"],["href","javascript:void(0)"],["ngbDropdown","","placement","left",1,"d-inline-block","ml-3","mt-auto"],["href","javascript:void(0)","container","body","openDelay","150","triggers","hover","aria-label","Homebridge v2.0 Readiness",3,"click","ngbTooltip","placement"],["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"],["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"],["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",""],[1,"dropdown-divider"],["ngbDropdownItem","","rel","noopener noreferrer","target","_blank",3,"href"],[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,"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"],[1,"icon-button","fa","fa-fw","fa-question-circle-o"]],template:function(a,i){a&1&&(o(0,"div",0)(1,"div",1)(2,"div",2)(3,"img",3),m("error",function(){return i.handleIconError()}),l(),v(4,Te,3,4,"a",4),l(),o(5,"div",5)(6,"div",6)(7,"div",7)(8,"div",8)(9,"h5",9),g(10),l(),o(11,"div",10),v(12,$e,4,6,"a",11)(13,Ee,4,6,"a",11)(14,Me,4,6,"a",11)(15,De,4,6,"a",11)(16,Ne,4,6,"a",11),r(17,"i",12),v(18,He,1,4,"i",13),l()(),o(19,"p",14)(20,"a",15),m("click",function(){return i.pluginInfoModal(i.plugin)}),r(21,"i",16),o(22,"span",17),g(23),l()()(),v(24,je,6,3,"p",18)(25,Ae,6,3,"p",18),o(26,"p",18),v(27,Re,4,1,"a",19)(28,Ue,3,1,"span",17),l(),o(29,"div",8)(30,"p",20),v(31,qe,5,2,"span")(32,Fe,3,1,"span"),l(),o(33,"div",10),v(34,Oe,3,3,"a",11)(35,Le,3,3,"a",21)(36,Ge,2,0,"a",22)(37,ci,22,18,"span",23),l()()()()()()()),a&2&&(n(3),x("src",i.plugin.icon,I),n(),d(i.plugin.installedVersion&&i.hb2Status!=="hide"?4:-1),n(6),k(i.prettyDisplayName),n(2),d(i.plugin.installedVersion&&i.plugin.updateAvailable&&!i.childBridgeRestartInProgress?12:-1),n(),d(i.plugin.installedVersion&&(i.plugin.newHbScope==null?null:i.plugin.newHbScope.switch)===i.plugin.installedVersion&&!i.childBridgeRestartInProgress?13:-1),n(),d(i.plugin.installedVersion&&(!i.plugin.newHbScope||i.plugin.newHbScope.switch!==i.plugin.installedVersion)&&!i.plugin.updateAvailable&&!i.plugin.isConfigured&&!i.childBridgeRestartInProgress?14:-1),n(),d(i.plugin.installedVersion&&(!i.plugin.newHbScope||i.plugin.newHbScope.switch!==i.plugin.installedVersion)&&!i.plugin.updateAvailable&&i.plugin.isConfigured&&!i.plugin.hasChildBridges&&!i.plugin.disabled&&i.plugin.recommendChildBridge&&!i.childBridgeRestartInProgress?15:-1),n(),d(i.plugin.installedVersion&&(!i.plugin.newHbScope||i.plugin.newHbScope.switch!==i.plugin.installedVersion)&&!i.plugin.updateAvailable&&i.plugin.isConfigured&&i.plugin.hasChildBridges&&!i.childBridgeRestartInProgress&&i.hasUnpairedChildBridges&&i.childBridgeStatus==="ok"&&!i.plugin.disabled?16:-1),n(),x("hidden",!i.childBridgeRestartInProgress),n(),d(i.plugin.installedVersion&&(!i.plugin.newHbScope||i.plugin.newHbScope.switch!==i.plugin.installedVersion)&&!i.plugin.updateAvailable&&i.plugin.isConfigured&&i.plugin.hasChildBridges&&!i.childBridgeRestartInProgress&&!i.hasUnpairedChildBridges&&i.childBridgeStatus!=="ok"&&!i.plugin.disabled?18:-1),n(5),k(i.plugin.name),n(),d(i.plugin.verifiedPlugin||i.plugin.verifiedPlusPlugin?24:-1),n(),d(!i.plugin.verifiedPlugin&&!i.plugin.verifiedPlusPlugin?25:-1),n(2),d((i.plugin.verifiedPlugin||i.plugin.verifiedPlusPlugin)&&i.plugin.funding?27:-1),n(),d((i.plugin.verifiedPlugin||i.plugin.verifiedPlusPlugin)&&i.plugin.funding?-1:28),n(3),d(i.plugin.publicPackage&&!i.plugin.installedVersion?31:-1),n(),d(i.plugin.installedVersion?32:-1),n(2),d(!i.plugin.disabled&&i.plugin.hasChildBridges&&i.childBridgeStatus==="ok"?34:-1),n(),d(i.plugin.installedVersion&&i.plugin.disabled?35:-1),n(),d(i.plugin.publicPackage&&!i.plugin.installedVersion?36:-1),n(),d(i.plugin.installedVersion?37:-1))},dependencies:[ge,L,pe,de,se,re,le,G,T],encapsulation:2})}return t})();function ui(t,s){t&1&&r(0,"app-spinner")}function gi(t,s){t&1&&r(0,"i",8)}function mi(t,s){if(t&1&&(o(0,"div",10),r(1,"app-plugin-card",12),l()),t&2){let e=s.$implicit,a=p();n(),x("plugin",e)("childBridges",a.getPluginChildBridges(e))}}function fi(t,s){t&1&&(o(0,"div",11),r(1,"i",13),o(2,"p"),g(3),c(4,"translate"),l()()),t&2&&(n(3),k(u(4,1,"plugins.placeholder_search_first")))}var at=(()=>{class t{$api=w(E);$plugin=w(j);$router=w(J);$settings=w(N);$toastr=w(D);$translate=w(M);$ws=w(H);loading=!0;installedPlugins=[];childBridges=[];form=new Z({query:new ee("",[Q.required])});io;navigationSubscription;ngOnInit(){return S(this,null,function*(){this.io=this.$ws.connectToNamespace("child-bridges"),this.io.connected.subscribe(()=>S(this,null,function*(){this.getChildBridgeMetadata(),this.io.socket.emit("monitor-child-bridge-status"),yield this.loadInstalledPlugins();let e=this.$router.parseUrl(this.$router.url).queryParams.installed;if(e){let a=this.installedPlugins.find(i=>i.name===e);a&&!a.isConfigured&&this.$plugin.settings(a),this.$router.navigate(["/plugins"])}})),this.io.socket.on("child-bridge-status-update",e=>{let a=this.childBridges.find(i=>i.username===e.username);a?Object.assign(a,e):this.childBridges.push(e)}),this.navigationSubscription=this.$router.events.subscribe(e=>{e instanceof W&&this.loadInstalledPlugins()})})}loadInstalledPlugins(){return S(this,null,function*(){this.form.setValue({query:""}),this.installedPlugins=[],this.loading=!0;try{let e=yield B(this.$api.get("/plugins"));this.installedPlugins=e.filter(i=>i.name!=="homebridge-config-ui-x"),yield this.appendMetaInfo();let a=this.installedPlugins.sort((i,f)=>i.updateAvailable!==f.updateAvailable?i.updateAvailable?-1:1:i.newHbScope&&!f.newHbScope?-1:i.disabled!==f.disabled?i.disabled?1:-1:i.isConfigured!==f.isConfigured?i.isConfigured?1:-1:i.hasChildBridgesUnpaired!==f.hasChildBridgesUnpaired?i.hasChildBridgesUnpaired?-1:1:i.hasChildBridges!==f.hasChildBridges&&this.$settings.env.recommendChildBridges?i.hasChildBridges?1:-1:i.name.localeCompare(f.name));return this.loading=!1,a}catch(e){console.error(e),this.$toastr.error(this.$translate.instant("plugins.toast_failed_to_load_plugins"),this.$translate.instant("toast.title_error"))}})}appendMetaInfo(){return S(this,null,function*(){yield Promise.all(this.installedPlugins.filter(e=>e.installedVersion).map(e=>S(this,null,function*(){try{let a=yield B(this.$api.get(`/config-editor/plugin/${encodeURIComponent(e.name)}`));e.isConfigured=a.length>0,e.isConfiguredDynamicPlatform=e.isConfigured&&Object.prototype.hasOwnProperty.call(a[0],"platform"),e.recommendChildBridge=e.isConfiguredDynamicPlatform&&this.$settings.env.recommendChildBridges&&this.$settings.env.serviceMode&&!["homebridge","homebridge-config-ui-x"].includes(e.name),e.hasChildBridges=e.isConfigured&&a.some(f=>f._bridge&&f._bridge.username);let i=this.getPluginChildBridges(e);e.hasChildBridgesUnpaired=i.some(f=>!f.paired)}catch{e.isConfigured=!0,e.hasChildBridges=!0}})))})}search(){this.installedPlugins=[],this.loading=!0,this.$api.get(`/plugins/search/${encodeURIComponent(this.form.value.query)}`).subscribe({next:e=>{let a=new Set;this.installedPlugins=e.sort((i,f)=>i.newHbScope&&!f.newHbScope?-1:!i.newHbScope&&f.newHbScope?1:0).reduce((i,f)=>{if(f.name==="homebridge-config-ui-x"||a.has(f.name))return i;if(f.newHbScope){let $=f.newHbScope.to,P=e.some(Pe=>Pe.name===$);(f.installedVersion||!P)&&(a.add($),i.push(f))}else i.push(f);return i},[]).sort((i,f)=>i.installedVersion!==f.installedVersion?i.installedVersion?-1:1:0),this.appendMetaInfo(),this.loading=!1},error:e=>{this.loading=!1,console.error(e),this.$toastr.error(e.error.message||e.message,this.$translate.instant("toast.title_error")),this.loadInstalledPlugins()}})}onClearSearch(){this.form.setValue({query:""}),this.loadInstalledPlugins()}onSubmit({value:e}){e.query.length?this.search():this.loadInstalledPlugins()}getChildBridgeMetadata(){this.io.request("get-homebridge-child-bridge-status").subscribe(e=>{this.childBridges=e})}getPluginChildBridges(e){return this.childBridges.filter(a=>a.plugin===e.name)}ngOnDestroy(){this.navigationSubscription&&this.navigationSubscription.unsubscribe(),this.io.end()}static \u0275fac=function(a){return new(a||t)};static \u0275cmp=V({type:t,selectors:[["ng-component"]],decls:17,vars:10,consts:[[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"],[1,"far","fa-fw","fa-times-circle"],[1,"d-flex","flex-wrap","justify-content-between"],[1,"hb-plugin-space-between"],[1,"alert","alert-info","mt-4","text-center","w-100"],[3,"plugin","childBridges"],[1,"fas","fa-fw","fa-magnifying-glass","primary-text","my-3",2,"font-size","75px"]],template:function(a,i){a&1&&(v(0,ui,1,0,"app-spinner"),o(1,"div",0)(2,"div",1)(3,"h3",2),g(4),c(5,"translate"),l()()(),o(6,"div",3)(7,"div",4)(8,"form",5),m("ngSubmit",function(){return i.onSubmit(i.form)}),r(9,"input",6),c(10,"translate"),o(11,"a",7),m("click",function(){return i.onClearSearch()}),v(12,gi,1,0,"i",8),l()()()(),o(13,"div",9),z(14,mi,2,2,"div",10,U),v(16,fi,5,3,"div",11),l()),a&2&&(d(i.loading?0:-1),n(4),k(u(5,6,"menu.label_plugins")),n(4),x("formGroup",i.form),n(),x("placeholder",u(10,8,"plugins.placeholder_search_plugin")),n(3),d(i.form.controls.query.value?12:-1),n(2),q(i.installedPlugins),n(2),d(i.installedPlugins.length===0&&!i.loading?16:-1))},dependencies:[_e,ae,ie,K,X,Y,oe,te,ne,we,T],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%}}"]})}return t})();export{at as a};
|
|
1
|
+
import{a as he,b as be}from"./chunk-DCVSB5TS.js";import{a as _e}from"./chunk-MO6NBKKU.js";import{o as Ce,w as j}from"./chunk-JNR4NFBN.js";import{a as R}from"./chunk-CNALPQMI.js";import{a as A}from"./chunk-S4MRBFHA.js";import{a as fe}from"./chunk-5PPIFCVN.js";import{a as me}from"./chunk-OHVZQ3PT.js";import{h as le,i as re,j as se,k as de,l as pe,m as ce,n as ue,o as ge}from"./chunk-X3WXF4QL.js";import{c as K,d as Q,e as X,f as Y,g as Z,j as ee,m as ie,p as te,q as ne,y as ae,z as oe}from"./chunk-FLUSPBPU.js";import{a as H}from"./chunk-AOWN5XN4.js";import{a as W,d as J}from"./chunk-TKQHVRJM.js";import{b as N}from"./chunk-IK23UVWP.js";import{b as E,j as D}from"./chunk-5X6YZZ4Y.js";import{a as M,b as T}from"./chunk-KTW5C5OW.js";import{$b as h,Bb as v,Bc as c,Cc as u,Dc as O,Lb as y,Mb as x,Rb as d,Tb as U,Ub as z,Vb as q,Wb as o,Xb as l,Yb as r,ad as L,cc as m,dc as p,eb as I,h as S,ib as n,kd as G,na as w,nc as g,oc as k,pc as b,ub as V,w as B,xa as _,ya as C,yc as F}from"./chunk-N7JBAWYM.js";function ke(t,s){if(t&1){let e=h();o(0,"button",15),m("click",function(){_(e);let i=p();return C(i.$activeModal.dismiss("Dismiss"))}),g(1),c(2,"translate"),l()}t&2&&(n(),b(" ",u(2,1,"form.button_close")," "))}function Se(t,s){if(t&1){let e=h();o(0,"button",15),m("click",function(){_(e);let i=p();return C(i.$activeModal.dismiss("Dismiss"))}),g(1),c(2,"translate"),l()}t&2&&(n(),b(" ",u(2,1,"form.button_close")," "))}function ye(t,s){if(t&1&&(o(0,"a",14),g(1),c(2,"translate"),r(3,"i",16),l()),t&2){let e=p();x("href",e.plugin.links.homepage||e.plugin.links.npm,I),n(),b(" ",u(2,2,"plugins.button_homepage")," ")}}var xe=(()=>{class t{$activeModal=w(ce);plugin;defaultIcon="assets/hb-icon.png";ngOnInit(){this.plugin.icon||(this.plugin.icon=this.defaultIcon)}handleIconError(){this.plugin.icon=this.defaultIcon}static \u0275fac=function(a){return new(a||t)};static \u0275cmp=V({type:t,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","data-dismiss","modal",1,"btn","btn-elegant"],[1,"text-center"],[1,"text-right"],["target","_blank","rel","noopener noreferrer",1,"btn","btn-primary","text-decoration-none",3,"href"],["type","button","data-dismiss","modal",1,"btn","btn-elegant",3,"click"],[1,"fas","fa-fw","fa-external-link-alt"]],template:function(a,i){a&1&&(o(0,"div",0)(1,"div",1)(2,"h5",2),g(3),c(4,"translate"),l(),o(5,"button",3),c(6,"translate"),m("click",function(){return i.$activeModal.dismiss("Dismiss")}),o(7,"span",4),g(8,"\xD7"),l()()(),o(9,"div",5)(10,"img",6),m("error",function(){return i.handleIconError()}),l(),o(11,"h4"),g(12),l(),o(13,"p",7),g(14),l(),o(15,"p",8),g(16),l(),o(17,"p",8),g(18),l()(),o(19,"div",9)(20,"div",10),v(21,ke,3,3,"button",11),l(),o(22,"div",12),v(23,Se,3,3,"button",11),l(),o(24,"div",13),v(25,ye,4,4,"a",14),l()()()),a&2&&(n(3),k(u(4,10,"plugins.manage.information")),n(2),y("aria-label",u(6,12,"form.button_close")),n(5),x("src",i.plugin.icon,I),n(2),k(i.plugin.displayName||i.plugin.name),n(2),k(i.plugin.description),n(2),k(i.plugin.name),n(2),b("@",i.plugin.author,""),n(3),d(i.plugin.links.homepage||i.plugin.links.npm?21:-1),n(2),d(!i.plugin.links.homepage&&!i.plugin.links.npm?23:-1),n(2),d(i.plugin.links.homepage||i.plugin.links.npm?25:-1))},dependencies:[T],styles:[".plugin-icon[_ngcontent-%COMP%]{height:75px;width:75px;border-radius:15px;border:1px solid #222222}"]})}return t})();var Be=(t,s)=>({"fa-bridge-circle-exclamation orange-text":t,"fa-bridge-circle-xmark red-text":s});function Ie(t,s){t&1&&r(0,"i",25)}function Ve(t,s){t&1&&r(0,"i",26)}function Te(t,s){if(t&1){let e=h();o(0,"a",24),m("click",function(){_(e);let i=p();return C(i.openHb2InfoModal())}),v(1,Ie,1,0,"i",25)(2,Ve,1,0,"i",26),l()}if(t&2){let e=p();x("ngbTooltip","Homebridge v2.0 Readiness")("placement","right"),n(),d(e.hb2Status==="supported"?1:-1),n(),d(e.hb2Status==="unknown"?2:-1)}}function $e(t,s){if(t&1){let e=h();o(0,"a",27),c(1,"translate"),c(2,"translate"),m("click",function(){_(e);let i=p();return C(i.$plugin.checkAndUpdatePlugin(i.plugin,i.plugin.updateTag||"latest"))}),r(3,"i",28),l()}t&2&&(x("ngbTooltip",u(1,2,"plugins.button_update")),y("aria-label",u(2,4,"plugins.button_update")))}function Ee(t,s){if(t&1){let e=h();o(0,"a",27),c(1,"translate"),c(2,"translate"),m("click",function(){_(e);let i=p();return C(i.$plugin.switchToScoped(i.plugin))}),r(3,"i",29),l()}t&2&&(x("ngbTooltip",u(1,2,"plugins.manage.scoped.switch")),y("aria-label",u(2,4,"plugins.manage.scoped.switch")))}function Me(t,s){if(t&1){let e=h();o(0,"a",27),c(1,"translate"),c(2,"translate"),m("click",function(){_(e);let i=p();return C(i.$plugin.settings(i.plugin))}),r(3,"i",30),l()}t&2&&(x("ngbTooltip",u(1,2,"plugins.button_set_up")),y("aria-label",u(2,4,"plugins.button_set_up")))}function De(t,s){if(t&1){let e=h();o(0,"a",27),c(1,"translate"),c(2,"translate"),m("click",function(){_(e);let i=p();return C(i.$plugin.bridgeSettings(i.plugin))}),r(3,"i",31),l()}t&2&&(x("ngbTooltip",u(1,2,"child_bridge.setup")),y("aria-label",u(2,4,"child_bridge.setup")))}function Ne(t,s){if(t&1){let e=h();o(0,"a",27),c(1,"translate"),c(2,"translate"),m("click",function(){_(e);let i=p();return C(i.$plugin.bridgeSettings(i.plugin))}),r(3,"i",32),l()}t&2&&(x("ngbTooltip",u(1,2,"child_bridge.bridge_connect")),y("aria-label",u(2,4,"child_bridge.bridge_connect")))}function He(t,s){if(t&1&&r(0,"i",13),t&2){let e=p();x("ngClass",F(1,Be,e.childBridgeStatus==="pending",e.childBridgeStatus==="down"))}}function je(t,s){if(t&1){let e=h();o(0,"p",18)(1,"a",33),m("click",function(){_(e);let i=p();return C(i.openVerifiedModal())}),r(2,"i",34),o(3,"span",17),g(4),c(5,"translate"),l()()()}t&2&&(n(4),k(u(5,1,"plugins.donate.button_verified")))}function Ae(t,s){if(t&1){let e=h();o(0,"p",18)(1,"a",35),m("click",function(){_(e);let i=p();return C(i.openVerifiedModal())}),r(2,"i",36),o(3,"span",17),g(4),c(5,"translate"),l()()()}t&2&&(n(4),k(u(5,1,"plugins.donate.button_not_verified")))}function Re(t,s){if(t&1){let e=h();o(0,"a",37),m("click",function(){_(e);let i=p();return C(i.openFundingModal(i.plugin))}),r(1,"i",38),o(2,"span",17),g(3),l()()}if(t&2){let e=p();n(3),b("@",e.plugin.author,"")}}function Ue(t,s){if(t&1&&(o(0,"span",17),r(1,"i",39),g(2),l()),t&2){let e=p();n(2),b("@",e.plugin.author," ")}}function ze(t,s){if(t&1&&(o(0,"span"),g(1),c(2,"date"),l()),t&2){let e=p(2);n(),b("(",O(2,1,e.plugin.lastUpdated,"yyyy-MM-dd"),")")}}function qe(t,s){if(t&1&&(o(0,"span"),r(1,"i",40),o(2,"span",17),g(3),v(4,ze,3,4,"span"),l()()),t&2){let e=p();n(3),b("v",e.plugin.latestVersion," "),n(),d(e.plugin.lastUpdated?4:-1)}}function Fe(t,s){if(t&1&&(o(0,"span"),r(1,"i",41),g(2),l()),t&2){let e=p();n(2),b("v",e.plugin.installedVersion," ")}}function Oe(t,s){if(t&1){let e=h();o(0,"a",27),c(1,"translate"),m("click",function(){_(e);let i=p();return C(i.doChildBridgeAction("restart"))}),r(2,"i",42),l()}if(t&2){let e=p();x("ngbTooltip",u(1,1,e.setChildBridges.length>1?"child_bridge.restart_plural":"child_bridge.restart"))}}function Le(t,s){if(t&1){let e=h();o(0,"a",43),m("click",function(){_(e);let i=p();return C(i.enablePlugin(i.plugin))}),r(1,"i",44),c(2,"translate"),l()}t&2&&(n(),x("ngbTooltip",u(2,1,"plugins.status_disabled")))}function Ge(t,s){if(t&1){let e=h();o(0,"a",45),m("click",function(){_(e);let i=p();return C(i.$plugin.installAlternateVersion(i.plugin))}),r(1,"i",46),l()}}function We(t,s){if(t&1){let e=h();o(0,"button",50),m("click",function(){_(e);let i=p(2);return C(i.viewPluginLog(i.plugin))}),r(1,"i",55),g(2),c(3,"translate"),l()}t&2&&(n(2),b(" ",u(3,1,"plugins.manage.plugin_logs")," "))}function Je(t,s){if(t&1){let e=h();o(0,"button",50),m("click",function(){_(e);let i=p(2);return C(i.$plugin.installAlternateVersion(i.plugin))}),r(1,"i",56),g(2),c(3,"translate"),l()}t&2&&(n(2),b(" ",u(3,1,"plugins.manage.manage_version")," "))}function Ke(t,s){if(t&1){let e=h();o(0,"button",50),m("click",function(){_(e);let i=p(2);return C(i.$plugin.jsonEditor(i.plugin))}),r(1,"i",57),g(2),c(3,"translate"),l()}t&2&&(n(2),b(" ",u(3,1,"plugins.manage.json_config")," "))}function Qe(t,s){if(t&1){let e=h();o(0,"button",50),m("click",function(){_(e);let i=p(2);return C(i.disablePlugin(i.plugin))}),r(1,"i",58),g(2),c(3,"translate"),l()}t&2&&(n(2),b(" ",u(3,1,"plugins.manage.disable")," "))}function Xe(t,s){if(t&1){let e=h();o(0,"button",50),m("click",function(){_(e);let i=p(2);return C(i.enablePlugin(i.plugin))}),r(1,"i",59),g(2),c(3,"translate"),l()}t&2&&(n(2),b(" ",u(3,1,"plugins.manage.enable")," "))}function Ye(t,s){if(t&1){let e=h();o(0,"button",50),m("click",function(){_(e);let i=p(2);return C(i.$plugin.uninstallPlugin(i.plugin,i.setChildBridges))}),r(1,"i",60),g(2),c(3,"translate"),l()}t&2&&(n(2),b(" ",u(3,1,"plugins.button_uninstall")," "))}function Ze(t,s){t&1&&r(0,"div",53)}function ei(t,s){if(t&1){let e=h();o(0,"button",50),m("click",function(){_(e);let i=p(3);return C(i.doChildBridgeAction("restart"))}),r(1,"i",62),g(2),c(3,"translate"),l()}if(t&2){let e=p(3);n(2),b(" ",u(3,1,e.setChildBridges.length>1?"child_bridge.restart_plural":"child_bridge.restart")," ")}}function ii(t,s){if(t&1){let e=h();o(0,"button",50),m("click",function(){_(e);let i=p(3);return C(i.doChildBridgeAction("stop"))}),r(1,"i",63),g(2),c(3,"translate"),l()}if(t&2){let e=p(3);n(2),b(" ",u(3,1,e.setChildBridges.length>1?"child_bridge.stop_plural":"child_bridge.stop")," ")}}function ti(t,s){if(t&1){let e=h();o(0,"button",50),m("click",function(){_(e);let i=p(3);return C(i.doChildBridgeAction("start"))}),r(1,"i",64),g(2),c(3,"translate"),l()}if(t&2){let e=p(3);n(2),b(" ",u(3,1,e.setChildBridges.length>1?"child_bridge.start_plural":"child_bridge.start")," ")}}function ni(t,s){if(t&1){let e=h();o(0,"button",50),m("click",function(){_(e);let i=p(3);return C(i.$plugin.resetChildBridges(i.setChildBridges))}),r(1,"i",65),g(2),c(3,"translate"),l()}t&2&&(n(2),b(" ",u(3,1,"child_bridge.reset_accessories")," "))}function ai(t,s){if(t&1){let e=h();o(0,"button",50),m("click",function(){_(e);let i=p(2);return C(i.$plugin.bridgeSettings(i.plugin))}),r(1,"i",61),g(2),c(3,"translate"),l(),v(4,ei,4,3,"button",52)(5,ii,4,3,"button",52)(6,ti,4,3,"button",52)(7,ni,4,3,"button",52)}if(t&2){let e=p(2);n(2),b(" ",u(3,5,"child_bridge.bridge_settings")," "),n(2),d(e.childBridgeRestartInProgress?-1:4),n(),d(e.allChildBridgesStopped?-1:5),n(),d(e.allChildBridgesStopped?6:-1),n(),d(e.$settings.env.serviceMode?7:-1)}}function oi(t,s){t&1&&r(0,"div",53)}function li(t,s){if(t&1){let e=h();o(0,"button",50),m("click",function(){_(e);let i=p(2);return C(i.$plugin.bridgeSettings(i.plugin))}),r(1,"i",66),g(2),c(3,"translate"),l()}t&2&&(n(2),b(" ",u(3,1,"child_bridge.setup")," "))}function ri(t,s){t&1&&r(0,"div",53)}function si(t,s){if(t&1){let e=h();o(0,"button",50),m("click",function(){_(e);let i=p(2);return C(i.$plugin.bridgeSettings(i.plugin))}),r(1,"i",66),g(2),c(3,"translate"),l()}t&2&&(n(2),b(" ",u(3,1,"child_bridge.setup")," "))}function di(t,s){t&1&&r(0,"div",53)}function pi(t,s){if(t&1&&(o(0,"a",54),r(1,"i",67),g(2),c(3,"translate"),l()),t&2){let e=p(2);x("href",e.plugin.links.bugs,I),n(2),b(" ",u(3,2,"support.links.issue")," ")}}function ci(t,s){if(t&1){let e=h();o(0,"span",23)(1,"a",47),r(2,"i",48),l(),o(3,"div",49)(4,"button",50),m("click",function(){_(e);let i=p();return C(i.$plugin.settings(i.plugin))}),r(5,"i",51),g(6),c(7,"translate"),l(),v(8,We,4,3,"button",52)(9,Je,4,3,"button",52)(10,Ke,4,3,"button",52)(11,Qe,4,3,"button",52)(12,Xe,4,3,"button",52)(13,Ye,4,3,"button",52)(14,Ze,1,0,"div",53)(15,ai,8,7)(16,oi,1,0,"div",53)(17,li,4,3,"button",52)(18,ri,1,0,"div",53)(19,si,4,3,"button",52)(20,di,1,0,"div",53)(21,pi,4,4,"a",54),l()()}if(t&2){let e=p();n(),y("aria-label","Plugin Actions Dropdown"),n(5),b(" ",u(7,16,"plugins.button_settings")," "),n(2),d(e.plugin.isConfigured&&!e.plugin.disabled?8:-1),n(),d(e.plugin.publicPackage?9:-1),n(),d(!e.isMobile&&e.plugin.name!=="homebridge-config-ui-x"?10:-1),n(),d(e.plugin.name!=="homebridge-config-ui-x"&&!e.plugin.disabled?11:-1),n(),d(e.plugin.name!=="homebridge-config-ui-x"&&e.plugin.disabled?12:-1),n(),d(e.plugin.name!=="homebridge-config-ui-x"?13:-1),n(),d(!e.plugin.disabled&&e.plugin.isConfigured&&e.plugin.hasChildBridges&&e.plugin.installedVersion&&e.plugin.name!=="homebridge-config-ui-x"?14:-1),n(),d(e.plugin.hasChildBridges&&!e.plugin.disabled?15:-1),n(),d(e.plugin.isConfigured&&!e.plugin.hasChildBridges&&!e.plugin.disabled&&!e.plugin.recommendChildBridge?16:-1),n(),d(e.plugin.isConfigured&&!e.plugin.hasChildBridges&&!e.plugin.disabled&&!e.plugin.recommendChildBridge?17:-1),n(),d(e.plugin.isConfigured&&!e.plugin.hasChildBridges&&!e.plugin.disabled&&e.plugin.recommendChildBridge&&e.plugin.updateAvailable?18:-1),n(),d(e.plugin.isConfigured&&!e.plugin.hasChildBridges&&!e.plugin.disabled&&e.plugin.recommendChildBridge&&e.plugin.updateAvailable?19:-1),n(),d(e.plugin.links!=null&&e.plugin.links.bugs?20:-1),n(),d(e.plugin.links!=null&&e.plugin.links.bugs?21:-1)}}var we=(()=>{class t{$api=w(E);$md=w(fe);$modal=w(ue);$plugin=w(j);$settings=w(N);$toastr=w(D);$translate=w(M);$ws=w(H);plugin;hasChildBridges=!1;hasUnpairedChildBridges=!1;allChildBridgesStopped=!1;childBridgeStatus="pending";childBridgeRestartInProgress=!1;defaultIcon="assets/hb-icon.png";isMobile;setChildBridges=[];prettyDisplayName="";hb2Status="unknown";io;set childBridges(e){var f,$;this.hasChildBridges=e.length>0,this.hasUnpairedChildBridges=e.filter(P=>P.paired===!1).length>0,this.allChildBridgesStopped=e.filter(P=>P.manuallyStopped===!0).length===e.length,this.hasChildBridges&&(e.some(P=>P.status==="down")?this.childBridgeStatus="down":e.some(P=>P.status==="pending")?this.childBridgeStatus="pending":e.some(P=>P.status==="ok")&&(this.childBridgeStatus="ok")),this.setChildBridges=e;let a=this.$settings.env.homebridgeVersion.split(".")[0],i=(($=(f=this.plugin.engines)==null?void 0:f.homebridge)==null?void 0:$.split("||").map(P=>P.trim()))||[];this.hb2Status=a==="2"?"hide":i.some(P=>P.startsWith("^2")||P.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(e){let a=this.$modal.open(be,{size:"lg",backdrop:"static"});a.componentInstance.plugin=e}openVerifiedModal(){let e=this.$modal.open(A,{size:"lg",backdrop:"static"});this.plugin.verifiedPlugin||this.plugin.verifiedPlusPlugin?(e.componentInstance.title=this.$translate.instant("plugins.manage.verified_title"),e.componentInstance.subtitle=this.$translate.instant("plugins.manage.verified_subtitle",{pluginName:this.plugin.displayName||this.plugin.name}),e.componentInstance.message=this.$translate.instant("plugins.manage.verified_message"),e.componentInstance.faIconClass="fa-shield-alt green-text"):(e.componentInstance.title=this.$translate.instant("plugins.manage.unverified_title"),e.componentInstance.subtitle=this.$translate.instant("plugins.manage.unverified_subtitle",{pluginName:this.plugin.displayName||this.plugin.name}),e.componentInstance.message=this.$translate.instant("plugins.manage.unverified_message"),e.componentInstance.faIconClass="fa-shield-alt grey-text"),e.componentInstance.ctaButtonLabel=this.$translate.instant("form.button_more_info"),e.componentInstance.ctaButtonLink="https://github.com/homebridge/homebridge/wiki/verified-Plugins"}pluginInfoModal(e){let a=this.$modal.open(xe,{size:"lg",backdrop:"static"});a.componentInstance.plugin=e}disablePlugin(e){let a=this.$modal.open(he,{size:"lg",backdrop:"static"});a.componentInstance.pluginName=e.name,a.componentInstance.isConfigured=e.isConfigured,a.componentInstance.isConfiguredDynamicPlatform=e.isConfiguredDynamicPlatform,a.result.then(()=>S(this,null,function*(){try{yield B(this.$api.put(`/config-editor/plugin/${encodeURIComponent(e.name)}/disable`,{})),e.disabled=!0,this.hasChildBridges&&this.doChildBridgeAction("stop"),this.$modal.open(R,{size:"lg",backdrop:"static"})}catch(i){console.error(i),this.$toastr.error(this.$translate.instant("plugins.disable.error"),this.$translate.instant("toast.title_error"))}}))}enablePlugin(e){let a=this.$modal.open(me,{size:"lg",backdrop:"static"});a.componentInstance.title=`${this.$translate.instant("plugins.manage.enable")}: ${e.name}`,a.componentInstance.message=this.$translate.instant("plugins.manage.confirm_enable",{pluginName:e.name}),a.componentInstance.confirmButtonLabel=this.$translate.instant("plugins.manage.enable"),a.componentInstance.faIconClass="fa-circle-play primary-text",a.result.then(()=>S(this,null,function*(){try{yield B(this.$api.put(`/config-editor/plugin/${encodeURIComponent(e.name)}/enable`,{})),e.disabled=!1,this.hasChildBridges&&(yield this.doChildBridgeAction("start")),this.$modal.open(R,{size:"lg",backdrop:"static"})}catch(i){console.error(i),this.$toastr.error(this.$translate.instant("plugins.enable.error"),this.$translate.instant("toast.title_error"))}}))}viewPluginLog(e){let a=this.$modal.open(Ce,{size:"xl",backdrop:"static"});a.componentInstance.plugin=e}doChildBridgeAction(e){return S(this,null,function*(){this.childBridgeRestartInProgress=!0;try{for(let a of this.setChildBridges)yield B(this.io.request(`${e}-child-bridge`,a.username))}catch(a){console.error(a),this.$toastr.error(this.$translate.instant("plugins.bridge.action_error",{action:e}),this.$translate.instant("toast.title_error")),this.childBridgeRestartInProgress=!1}finally{setTimeout(()=>{this.childBridgeRestartInProgress=!1},e==="restart"?12e3:e==="stop"?6e3:1e3)}})}handleIconError(){this.plugin.icon=this.defaultIcon}prettifyName(){let e=this.plugin.displayName||(this.plugin.name.charAt(0)==="@"?this.plugin.name.split("/")[1]:this.plugin.name);return e=e.replace(/-/g," "),this.isMobile&&e.toLowerCase().startsWith("homebridge ")&&(e=e.replace(/^homebridge /i,"")),this.plugin.displayName||(e=e.replace(/\w\S*/g,a=>a.charAt(0).toUpperCase()+a.substring(1).toLowerCase())),e}openHb2InfoModal(){let e=this.$modal.open(A,{size:"lg",backdrop:"static"});e.componentInstance.title="Plugin Readiness",this.hb2Status==="supported"?(e.componentInstance.subtitle=`${this.plugin.displayName||this.plugin.name} is ready for Homebridge v2.0`,e.componentInstance.message="The developer has specifically marked your installed version of the plugin as compatible with Homebridge v2.0.",e.componentInstance.faIconClass="fa-check-circle green-text"):(e.componentInstance.subtitle=`${this.plugin.displayName||this.plugin.name} might not be ready for Homebridge v2.0`,e.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.",e.componentInstance.faIconClass="fa-question-circle orange-text"),e.componentInstance.ctaButtonLabel=this.$translate.instant("form.button_more_info"),e.componentInstance.ctaButtonLink="https://github.com/homebridge/homebridge/wiki/Updating-To-Homebridge-v2.0"}static \u0275fac=function(a){return new(a||t)};static \u0275cmp=V({type:t,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"],[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)","container","body","openDelay","150","triggers","hover",1,"card-link",3,"ngbTooltip"],[1,"fas","fa-fw","fa-spinner","fa-pulse","fa-lg","grey-text","ml-3",3,"hidden"],[1,"fas","fa-fw","fa-lg","ml-3",3,"ngClass"],[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"],[1,"card-text","mb-2"],["href","javascript:void(0)",1,"card-link","pink-text"],[1,"card-text","mb-0","grey-text"],["href","javascript:void(0)",1,"card-link","red-text"],["href","javascript:void(0)"],["ngbDropdown","","placement","left",1,"d-inline-block","ml-3","mt-auto"],["href","javascript:void(0)","container","body","openDelay","150","triggers","hover","aria-label","Homebridge v2.0 Readiness",3,"click","ngbTooltip","placement"],["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"],["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"],["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",""],[1,"dropdown-divider"],["ngbDropdownItem","","rel","noopener noreferrer","target","_blank",3,"href"],[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,"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"],[1,"icon-button","fa","fa-fw","fa-question-circle-o"]],template:function(a,i){a&1&&(o(0,"div",0)(1,"div",1)(2,"div",2)(3,"img",3),m("error",function(){return i.handleIconError()}),l(),v(4,Te,3,4,"a",4),l(),o(5,"div",5)(6,"div",6)(7,"div",7)(8,"div",8)(9,"h5",9),g(10),l(),o(11,"div",10),v(12,$e,4,6,"a",11)(13,Ee,4,6,"a",11)(14,Me,4,6,"a",11)(15,De,4,6,"a",11)(16,Ne,4,6,"a",11),r(17,"i",12),v(18,He,1,4,"i",13),l()(),o(19,"p",14)(20,"a",15),m("click",function(){return i.pluginInfoModal(i.plugin)}),r(21,"i",16),o(22,"span",17),g(23),l()()(),v(24,je,6,3,"p",18)(25,Ae,6,3,"p",18),o(26,"p",18),v(27,Re,4,1,"a",19)(28,Ue,3,1,"span",17),l(),o(29,"div",8)(30,"p",20),v(31,qe,5,2,"span")(32,Fe,3,1,"span"),l(),o(33,"div",10),v(34,Oe,3,3,"a",11)(35,Le,3,3,"a",21)(36,Ge,2,0,"a",22)(37,ci,22,18,"span",23),l()()()()()()()),a&2&&(n(3),x("src",i.plugin.icon,I),n(),d(i.plugin.installedVersion&&i.hb2Status!=="hide"?4:-1),n(6),k(i.prettyDisplayName),n(2),d(i.plugin.installedVersion&&i.plugin.updateAvailable&&!i.childBridgeRestartInProgress?12:-1),n(),d(i.plugin.installedVersion&&(i.plugin.newHbScope==null?null:i.plugin.newHbScope.switch)===i.plugin.installedVersion&&!i.childBridgeRestartInProgress?13:-1),n(),d(i.plugin.installedVersion&&(!i.plugin.newHbScope||i.plugin.newHbScope.switch!==i.plugin.installedVersion)&&!i.plugin.updateAvailable&&!i.plugin.isConfigured&&!i.childBridgeRestartInProgress?14:-1),n(),d(i.plugin.installedVersion&&(!i.plugin.newHbScope||i.plugin.newHbScope.switch!==i.plugin.installedVersion)&&!i.plugin.updateAvailable&&i.plugin.isConfigured&&!i.plugin.hasChildBridges&&!i.plugin.disabled&&i.plugin.recommendChildBridge&&!i.childBridgeRestartInProgress?15:-1),n(),d(i.plugin.installedVersion&&(!i.plugin.newHbScope||i.plugin.newHbScope.switch!==i.plugin.installedVersion)&&!i.plugin.updateAvailable&&i.plugin.isConfigured&&i.plugin.hasChildBridges&&!i.childBridgeRestartInProgress&&i.hasUnpairedChildBridges&&i.childBridgeStatus==="ok"&&!i.plugin.disabled?16:-1),n(),x("hidden",!i.childBridgeRestartInProgress),n(),d(i.plugin.installedVersion&&(!i.plugin.newHbScope||i.plugin.newHbScope.switch!==i.plugin.installedVersion)&&!i.plugin.updateAvailable&&i.plugin.isConfigured&&i.plugin.hasChildBridges&&!i.childBridgeRestartInProgress&&!i.hasUnpairedChildBridges&&i.childBridgeStatus!=="ok"&&!i.plugin.disabled?18:-1),n(5),k(i.plugin.name),n(),d(i.plugin.verifiedPlugin||i.plugin.verifiedPlusPlugin?24:-1),n(),d(!i.plugin.verifiedPlugin&&!i.plugin.verifiedPlusPlugin?25:-1),n(2),d((i.plugin.verifiedPlugin||i.plugin.verifiedPlusPlugin)&&i.plugin.funding?27:-1),n(),d((i.plugin.verifiedPlugin||i.plugin.verifiedPlusPlugin)&&i.plugin.funding?-1:28),n(3),d(i.plugin.publicPackage&&!i.plugin.installedVersion?31:-1),n(),d(i.plugin.installedVersion?32:-1),n(2),d(!i.plugin.disabled&&i.plugin.hasChildBridges&&i.childBridgeStatus==="ok"?34:-1),n(),d(i.plugin.installedVersion&&i.plugin.disabled?35:-1),n(),d(i.plugin.publicPackage&&!i.plugin.installedVersion?36:-1),n(),d(i.plugin.installedVersion?37:-1))},dependencies:[ge,L,pe,de,se,re,le,G,T],encapsulation:2})}return t})();function ui(t,s){t&1&&r(0,"app-spinner")}function gi(t,s){t&1&&r(0,"i",8)}function mi(t,s){if(t&1&&(o(0,"div",10),r(1,"app-plugin-card",12),l()),t&2){let e=s.$implicit,a=p();n(),x("plugin",e)("childBridges",a.getPluginChildBridges(e))}}function fi(t,s){t&1&&(o(0,"div",11),r(1,"i",13),o(2,"p"),g(3),c(4,"translate"),l()()),t&2&&(n(3),k(u(4,1,"plugins.placeholder_search_first")))}var at=(()=>{class t{$api=w(E);$plugin=w(j);$router=w(J);$settings=w(N);$toastr=w(D);$translate=w(M);$ws=w(H);loading=!0;installedPlugins=[];childBridges=[];form=new Z({query:new ee("",[Q.required])});io;navigationSubscription;ngOnInit(){return S(this,null,function*(){this.io=this.$ws.connectToNamespace("child-bridges"),this.io.connected.subscribe(()=>S(this,null,function*(){this.getChildBridgeMetadata(),this.io.socket.emit("monitor-child-bridge-status"),yield this.loadInstalledPlugins();let e=this.$router.parseUrl(this.$router.url).queryParams.installed;if(e){let a=this.installedPlugins.find(i=>i.name===e);a&&!a.isConfigured&&this.$plugin.settings(a),this.$router.navigate(["/plugins"])}})),this.io.socket.on("child-bridge-status-update",e=>{let a=this.childBridges.find(i=>i.username===e.username);a?Object.assign(a,e):this.childBridges.push(e)}),this.navigationSubscription=this.$router.events.subscribe(e=>{e instanceof W&&this.loadInstalledPlugins()})})}loadInstalledPlugins(){return S(this,null,function*(){this.form.setValue({query:""}),this.installedPlugins=[],this.loading=!0;try{let e=yield B(this.$api.get("/plugins"));this.installedPlugins=e.filter(i=>i.name!=="homebridge-config-ui-x"),yield this.appendMetaInfo();let a=this.installedPlugins.sort((i,f)=>i.updateAvailable!==f.updateAvailable?i.updateAvailable?-1:1:i.newHbScope&&!f.newHbScope?-1:i.disabled!==f.disabled?i.disabled?1:-1:i.isConfigured!==f.isConfigured?i.isConfigured?1:-1:i.hasChildBridgesUnpaired!==f.hasChildBridgesUnpaired?i.hasChildBridgesUnpaired?-1:1:i.hasChildBridges!==f.hasChildBridges&&this.$settings.env.recommendChildBridges?i.hasChildBridges?1:-1:i.name.localeCompare(f.name));return this.loading=!1,a}catch(e){console.error(e),this.$toastr.error(this.$translate.instant("plugins.toast_failed_to_load_plugins"),this.$translate.instant("toast.title_error"))}})}appendMetaInfo(){return S(this,null,function*(){yield Promise.all(this.installedPlugins.filter(e=>e.installedVersion).map(e=>S(this,null,function*(){try{let a=yield B(this.$api.get(`/config-editor/plugin/${encodeURIComponent(e.name)}`));e.isConfigured=a.length>0,e.isConfiguredDynamicPlatform=e.isConfigured&&Object.prototype.hasOwnProperty.call(a[0],"platform"),e.recommendChildBridge=e.isConfiguredDynamicPlatform&&this.$settings.env.recommendChildBridges&&this.$settings.env.serviceMode&&!["homebridge","homebridge-config-ui-x"].includes(e.name),e.hasChildBridges=e.isConfigured&&a.some(f=>f._bridge&&f._bridge.username);let i=this.getPluginChildBridges(e);e.hasChildBridgesUnpaired=i.some(f=>!f.paired)}catch{e.isConfigured=!0,e.hasChildBridges=!0}})))})}search(){this.installedPlugins=[],this.loading=!0,this.$api.get(`/plugins/search/${encodeURIComponent(this.form.value.query)}`).subscribe({next:e=>{let a=new Set;this.installedPlugins=e.sort((i,f)=>i.newHbScope&&!f.newHbScope?-1:!i.newHbScope&&f.newHbScope?1:0).reduce((i,f)=>{if(f.name==="homebridge-config-ui-x"||a.has(f.name))return i;if(f.newHbScope){let $=f.newHbScope.to,P=e.some(Pe=>Pe.name===$);(f.installedVersion||!P)&&(a.add($),i.push(f))}else i.push(f);return i},[]).sort((i,f)=>i.installedVersion!==f.installedVersion?i.installedVersion?-1:1:0),this.appendMetaInfo(),this.loading=!1},error:e=>{this.loading=!1,console.error(e),this.$toastr.error(e.error.message||e.message,this.$translate.instant("toast.title_error")),this.loadInstalledPlugins()}})}onClearSearch(){this.form.setValue({query:""}),this.loadInstalledPlugins()}onSubmit({value:e}){e.query.length?this.search():this.loadInstalledPlugins()}getChildBridgeMetadata(){this.io.request("get-homebridge-child-bridge-status").subscribe(e=>{this.childBridges=e})}getPluginChildBridges(e){return this.childBridges.filter(a=>a.plugin===e.name)}ngOnDestroy(){this.navigationSubscription&&this.navigationSubscription.unsubscribe(),this.io.end()}static \u0275fac=function(a){return new(a||t)};static \u0275cmp=V({type:t,selectors:[["ng-component"]],decls:17,vars:10,consts:[[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"],[1,"far","fa-fw","fa-times-circle"],[1,"d-flex","flex-wrap","justify-content-between"],[1,"hb-plugin-space-between"],[1,"alert","alert-info","mt-4","text-center","w-100"],[3,"plugin","childBridges"],[1,"fas","fa-fw","fa-magnifying-glass","primary-text","my-3",2,"font-size","75px"]],template:function(a,i){a&1&&(v(0,ui,1,0,"app-spinner"),o(1,"div",0)(2,"div",1)(3,"h3",2),g(4),c(5,"translate"),l()()(),o(6,"div",3)(7,"div",4)(8,"form",5),m("ngSubmit",function(){return i.onSubmit(i.form)}),r(9,"input",6),c(10,"translate"),o(11,"a",7),m("click",function(){return i.onClearSearch()}),v(12,gi,1,0,"i",8),l()()()(),o(13,"div",9),z(14,mi,2,2,"div",10,U),v(16,fi,5,3,"div",11),l()),a&2&&(d(i.loading?0:-1),n(4),k(u(5,6,"menu.label_plugins")),n(4),x("formGroup",i.form),n(),x("placeholder",u(10,8,"plugins.placeholder_search_plugin")),n(3),d(i.form.controls.query.value?12:-1),n(2),q(i.installedPlugins),n(2),d(i.installedPlugins.length===0&&!i.loading?16:-1))},dependencies:[_e,ae,ie,K,X,Y,oe,te,ne,we,T],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%}}"]})}return t})();export{at as a};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Aa as y,B as V,C as F,D as q,Fa as f,Hc as Z,L as J,O as C,Z as P,a as _,aa as R,ha as h,ia as X,jb as M,ka as v,ma as o,r as L,sb as z,t as c,ub as W,x as I}from"./chunk-TXOB7R5K.js";var d=class{},Q=(()=>{class n extends d{getTranslation(e){return L({})}static \u0275fac=(()=>{let e;return function(s){return(e||(e=y(n)))(s||n)}})();static \u0275prov=h({token:n,factory:n.\u0275fac})}return n})(),m=class{},Y=(()=>{class n{handle(e){return e.key}static \u0275fac=function(t){return new(t||n)};static \u0275prov=h({token:n,factory:n.\u0275fac})}return n})();function E(n,r){if(n===r)return!0;if(n===null||r===null)return!1;if(n!==n&&r!==r)return!0;let e=typeof n,t=typeof r,s,i,a;if(e==t&&e=="object")if(Array.isArray(n)){if(!Array.isArray(r))return!1;if((s=n.length)==r.length){for(i=0;i<s;i++)if(!E(n[i],r[i]))return!1;return!0}}else{if(Array.isArray(r))return!1;a=Object.create(null);for(i in n){if(!E(n[i],r[i]))return!1;a[i]=!0}for(i in r)if(!(i in a)&&typeof r[i]<"u")return!1;return!0}return!1}function u(n){return typeof n<"u"&&n!==null}function D(n){return S(n)&&!H(n)}function S(n){return typeof n=="object"}function H(n){return Array.isArray(n)}function $(n){return typeof n=="string"}function ne(n){return typeof n=="function"}function N(n,r){let e=Object.assign({},n);return S(n)?(S(n)&&S(r)&&Object.keys(r).forEach(t=>{D(r[t])?t in n?e[t]=N(n[t],r[t]):Object.assign(e,{[t]:r[t]}):Object.assign(e,{[t]:r[t]})}),e):N({},r)}function K(n,r){let e=r.split(".");r="";do r+=e.shift(),u(n)&&u(n[r])&&(D(n[r])||H(n[r])||!e.length)?(n=n[r],r=""):e.length?r+=".":n=void 0;while(e.length);return n}function se(n,r,e){let t=r.split("."),s=n;for(let i=0;i<t.length;i++){let a=t[i];i===t.length-1?s[a]=e:((!s[a]||!D(s[a]))&&(s[a]={}),s=s[a])}}var g=class{},k=(()=>{class n extends g{templateMatcher=/{{\s?([^{}\s]*)\s?}}/g;interpolate(e,t){if($(e))return this.interpolateString(e,t);if(ne(e))return this.interpolateFunction(e,t)}interpolateFunction(e,t){return e(t)}interpolateString(e,t){return t?e.replace(this.templateMatcher,(s,i)=>{let a=K(t,i);return u(a)?a:s}):e}static \u0275fac=(()=>{let e;return function(s){return(e||(e=y(n)))(s||n)}})();static \u0275prov=h({token:n,factory:n.\u0275fac})}return n})(),p=class{},ee=(()=>{class n extends p{compile(e,t){return e}compileTranslations(e,t){return e}static \u0275fac=(()=>{let e;return function(s){return(e||(e=y(n)))(s||n)}})();static \u0275prov=h({token:n,factory:n.\u0275fac})}return n})(),j=class{defaultLang;currentLang=this.defaultLang;translations={};langs=[];onTranslationChange=new f;onLangChange=new f;onDefaultLangChange=new f},x=new v("ISOALTE_TRANSLATE_SERVICE"),O=new v("USE_DEFAULT_LANG"),U=new v("DEFAULT_LANGUAGE"),B=new v("USE_EXTEND"),b=n=>c(n)?n:L(n),G=(()=>{class n{store;currentLoader;compiler;parser;missingTranslationHandler;useDefaultLang;isolate;extend;loadingTranslations;pending=!1;_onTranslationChange=new f;_onLangChange=new f;_onDefaultLangChange=new f;_defaultLang;_currentLang;_langs=[];_translations={};_translationRequests={};lastUseLanguage=null;get onTranslationChange(){return this.isolate?this._onTranslationChange:this.store.onTranslationChange}get onLangChange(){return this.isolate?this._onLangChange:this.store.onLangChange}get onDefaultLangChange(){return this.isolate?this._onDefaultLangChange:this.store.onDefaultLangChange}get defaultLang(){return this.isolate?this._defaultLang:this.store.defaultLang}set defaultLang(e){this.isolate?this._defaultLang=e:this.store.defaultLang=e}get currentLang(){return this.isolate?this._currentLang:this.store.currentLang}set currentLang(e){this.isolate?this._currentLang=e:this.store.currentLang=e}get langs(){return this.isolate?this._langs:this.store.langs}set langs(e){this.isolate?this._langs=e:this.store.langs=e}get translations(){return this.isolate?this._translations:this.store.translations}set translations(e){this.isolate?this._translations=e:this.store.translations=e}constructor(e,t,s,i,a,A=!0,l=!1,T=!1,w){this.store=e,this.currentLoader=t,this.compiler=s,this.parser=i,this.missingTranslationHandler=a,this.useDefaultLang=A,this.isolate=l,this.extend=T,w&&this.setDefaultLang(w)}setDefaultLang(e){if(e===this.defaultLang)return;let t=this.retrieveTranslations(e);typeof t<"u"?(this.defaultLang==null&&(this.defaultLang=e),t.pipe(C(1)).subscribe(()=>{this.changeDefaultLang(e)})):this.changeDefaultLang(e)}getDefaultLang(){return this.defaultLang}use(e){if(this.lastUseLanguage=e,e===this.currentLang)return L(this.translations[e]);this.currentLang||(this.currentLang=e);let t=this.retrieveTranslations(e);return c(t)?(t.pipe(C(1)).subscribe(()=>{this.changeLang(e)}),t):(this.changeLang(e),L(this.translations[e]))}changeLang(e){e===this.lastUseLanguage&&(this.currentLang=e,this.onLangChange.emit({lang:e,translations:this.translations[e]}),this.defaultLang==null&&this.changeDefaultLang(e))}retrieveTranslations(e){if(typeof this.translations[e]>"u"||this.extend)return this._translationRequests[e]=this._translationRequests[e]||this.loadAndCompileTranslations(e),this._translationRequests[e]}getTranslation(e){return this.loadAndCompileTranslations(e)}loadAndCompileTranslations(e){this.pending=!0;let t=this.currentLoader.getTranslation(e).pipe(P(1),C(1));return this.loadingTranslations=t.pipe(I(s=>this.compiler.compileTranslations(s,e)),P(1),C(1)),this.loadingTranslations.subscribe({next:s=>{this.translations[e]=this.extend&&this.translations[e]?_(_({},s),this.translations[e]):s,this.updateLangs(),this.pending=!1},error:s=>{this.pending=!1}}),t}setTranslation(e,t,s=!1){let i=this.compiler.compileTranslations(t,e);(s||this.extend)&&this.translations[e]?this.translations[e]=N(this.translations[e],i):this.translations[e]=i,this.updateLangs(),this.onTranslationChange.emit({lang:e,translations:this.translations[e]})}getLangs(){return this.langs}addLangs(e){e.forEach(t=>{this.langs.indexOf(t)===-1&&this.langs.push(t)})}updateLangs(){this.addLangs(Object.keys(this.translations))}getParsedResultForKey(e,t,s){let i;if(e&&(i=this.runInterpolation(K(e,t),s)),i===void 0&&this.defaultLang!=null&&this.defaultLang!==this.currentLang&&this.useDefaultLang&&(i=this.runInterpolation(K(this.translations[this.defaultLang],t),s)),i===void 0){let a={key:t,translateService:this};typeof s<"u"&&(a.interpolateParams=s),i=this.missingTranslationHandler.handle(a)}return i!==void 0?i:t}runInterpolation(e,t){if(H(e))return e.map(s=>this.runInterpolation(s,t));if(D(e)){let s={};for(let i in e)s[i]=this.runInterpolation(e[i],t);return s}else return this.parser.interpolate(e,t)}getParsedResult(e,t,s){if(t instanceof Array){let i={},a=!1;for(let l of t)i[l]=this.getParsedResultForKey(e,l,s),a=a||c(i[l]);if(!a)return i;let A=t.map(l=>b(i[l]));return q(A).pipe(I(l=>{let T={};return l.forEach((w,te)=>{T[t[te]]=w}),T}))}return this.getParsedResultForKey(e,t,s)}get(e,t){if(!u(e)||!e.length)throw new Error('Parameter "key" is required and cannot be empty');return this.pending?this.loadingTranslations.pipe(J(s=>b(this.getParsedResult(s,e,t)))):b(this.getParsedResult(this.translations[this.currentLang],e,t))}getStreamOnTranslationChange(e,t){if(!u(e)||!e.length)throw new Error('Parameter "key" is required and cannot be empty');return V(F(()=>this.get(e,t)),this.onTranslationChange.pipe(R(s=>{let i=this.getParsedResult(s.translations,e,t);return b(i)})))}stream(e,t){if(!u(e)||!e.length)throw new Error('Parameter "key" required');return V(F(()=>this.get(e,t)),this.onLangChange.pipe(R(s=>{let i=this.getParsedResult(s.translations,e,t);return b(i)})))}instant(e,t){if(!u(e)||e.length===0)throw new Error('Parameter "key" is required and cannot be empty');let s=this.getParsedResult(this.translations[this.currentLang],e,t);return c(s)?Array.isArray(e)?e.reduce((i,a)=>(i[a]=a,i),{}):e:s}set(e,t,s=this.currentLang){se(this.translations[s],e,$(t)?this.compiler.compile(t,s):this.compiler.compileTranslations(t,s)),this.updateLangs(),this.onTranslationChange.emit({lang:s,translations:this.translations[s]})}changeDefaultLang(e){this.defaultLang=e,this.onDefaultLangChange.emit({lang:e,translations:this.translations[e]})}reloadLang(e){return this.resetLang(e),this.loadAndCompileTranslations(e)}resetLang(e){delete this._translationRequests[e],delete this.translations[e]}getBrowserLang(){if(typeof window>"u"||!window.navigator)return;let e=this.getBrowserCultureLang();return e?e.split(/[-_]/)[0]:void 0}getBrowserCultureLang(){if(!(typeof window>"u"||typeof window.navigator>"u"))return window.navigator.languages?window.navigator.languages[0]:window.navigator.language||window.navigator.browserLanguage||window.navigator.userLanguage}static \u0275fac=function(t){return new(t||n)(o(j),o(d),o(p),o(g),o(m),o(O),o(x),o(B),o(U))};static \u0275prov=h({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();var Ce=(()=>{class n{translate;_ref;value="";lastKey=null;lastParams=[];onTranslationChange;onLangChange;onDefaultLangChange;constructor(e,t){this.translate=e,this._ref=t}updateValue(e,t,s){let i=a=>{this.value=a!==void 0?a:e,this.lastKey=e,this._ref.markForCheck()};if(s){let a=this.translate.getParsedResult(s,e,t);c(a)?a.subscribe(i):i(a)}this.translate.get(e,t).subscribe(i)}transform(e,...t){if(!e||!e.length)return e;if(E(e,this.lastKey)&&E(t,this.lastParams))return this.value;let s;if(u(t[0])&&t.length)if($(t[0])&&t[0].length){let i=t[0].replace(/(')?([a-zA-Z0-9_]+)(')?(\s)?:/g,'"$2":').replace(/:(\s)?(')(.*?)(')/g,':"$3"');try{s=JSON.parse(i)}catch(a){throw new SyntaxError(`Wrong parameter in TranslatePipe. Expected a valid Object, received: ${t[0]}`)}}else D(t[0])&&(s=t[0]);return this.lastKey=e,this.lastParams=t,this.updateValue(e,s),this._dispose(),this.onTranslationChange||(this.onTranslationChange=this.translate.onTranslationChange.subscribe(i=>{this.lastKey&&i.lang===this.translate.currentLang&&(this.lastKey=null,this.updateValue(e,s,i.translations))})),this.onLangChange||(this.onLangChange=this.translate.onLangChange.subscribe(i=>{this.lastKey&&(this.lastKey=null,this.updateValue(e,s,i.translations))})),this.onDefaultLangChange||(this.onDefaultLangChange=this.translate.onDefaultLangChange.subscribe(()=>{this.lastKey&&(this.lastKey=null,this.updateValue(e,s))})),this.value}_dispose(){typeof this.onTranslationChange<"u"&&(this.onTranslationChange.unsubscribe(),this.onTranslationChange=void 0),typeof this.onLangChange<"u"&&(this.onLangChange.unsubscribe(),this.onLangChange=void 0),typeof this.onDefaultLangChange<"u"&&(this.onDefaultLangChange.unsubscribe(),this.onDefaultLangChange=void 0)}ngOnDestroy(){this._dispose()}static \u0275fac=function(t){return new(t||n)(M(G,16),M(Z,16))};static \u0275pipe=W({name:"translate",type:n,pure:!1});static \u0275prov=h({token:n,factory:n.\u0275fac})}return n})();var ve=(()=>{class n{static forRoot(e={}){return{ngModule:n,providers:[e.loader||{provide:d,useClass:Q},e.compiler||{provide:p,useClass:ee},e.parser||{provide:g,useClass:k},e.missingTranslationHandler||{provide:m,useClass:Y},j,{provide:x,useValue:e.isolate},{provide:O,useValue:e.useDefaultLang},{provide:B,useValue:e.extend},{provide:U,useValue:e.defaultLanguage},G]}}static forChild(e={}){return{ngModule:n,providers:[e.loader||{provide:d,useClass:Q},e.compiler||{provide:p,useClass:ee},e.parser||{provide:g,useClass:k},e.missingTranslationHandler||{provide:m,useClass:Y},{provide:x,useValue:e.isolate},{provide:O,useValue:e.useDefaultLang},{provide:B,useValue:e.extend},{provide:U,useValue:e.defaultLanguage},G]}}static \u0275fac=function(t){return new(t||n)};static \u0275mod=z({type:n});static \u0275inj=X({})}return n})();export{G as a,Ce as b,ve as c};
|
|
1
|
+
import{Aa as y,B as V,C as F,D as q,Fa as f,Hc as Z,L as J,O as C,Z as P,a as _,aa as R,ha as h,ia as X,jb as M,ka as v,ma as o,r as L,t as c,vb as z,x as I,xb as W}from"./chunk-N7JBAWYM.js";var d=class{},Q=(()=>{class n extends d{getTranslation(e){return L({})}static \u0275fac=(()=>{let e;return function(s){return(e||(e=y(n)))(s||n)}})();static \u0275prov=h({token:n,factory:n.\u0275fac})}return n})(),m=class{},Y=(()=>{class n{handle(e){return e.key}static \u0275fac=function(t){return new(t||n)};static \u0275prov=h({token:n,factory:n.\u0275fac})}return n})();function E(n,r){if(n===r)return!0;if(n===null||r===null)return!1;if(n!==n&&r!==r)return!0;let e=typeof n,t=typeof r,s,i,a;if(e==t&&e=="object")if(Array.isArray(n)){if(!Array.isArray(r))return!1;if((s=n.length)==r.length){for(i=0;i<s;i++)if(!E(n[i],r[i]))return!1;return!0}}else{if(Array.isArray(r))return!1;a=Object.create(null);for(i in n){if(!E(n[i],r[i]))return!1;a[i]=!0}for(i in r)if(!(i in a)&&typeof r[i]<"u")return!1;return!0}return!1}function u(n){return typeof n<"u"&&n!==null}function D(n){return S(n)&&!H(n)}function S(n){return typeof n=="object"}function H(n){return Array.isArray(n)}function $(n){return typeof n=="string"}function ne(n){return typeof n=="function"}function N(n,r){let e=Object.assign({},n);return S(n)?(S(n)&&S(r)&&Object.keys(r).forEach(t=>{D(r[t])?t in n?e[t]=N(n[t],r[t]):Object.assign(e,{[t]:r[t]}):Object.assign(e,{[t]:r[t]})}),e):N({},r)}function K(n,r){let e=r.split(".");r="";do r+=e.shift(),u(n)&&u(n[r])&&(D(n[r])||H(n[r])||!e.length)?(n=n[r],r=""):e.length?r+=".":n=void 0;while(e.length);return n}function se(n,r,e){let t=r.split("."),s=n;for(let i=0;i<t.length;i++){let a=t[i];i===t.length-1?s[a]=e:((!s[a]||!D(s[a]))&&(s[a]={}),s=s[a])}}var g=class{},k=(()=>{class n extends g{templateMatcher=/{{\s?([^{}\s]*)\s?}}/g;interpolate(e,t){if($(e))return this.interpolateString(e,t);if(ne(e))return this.interpolateFunction(e,t)}interpolateFunction(e,t){return e(t)}interpolateString(e,t){return t?e.replace(this.templateMatcher,(s,i)=>{let a=K(t,i);return u(a)?a:s}):e}static \u0275fac=(()=>{let e;return function(s){return(e||(e=y(n)))(s||n)}})();static \u0275prov=h({token:n,factory:n.\u0275fac})}return n})(),p=class{},ee=(()=>{class n extends p{compile(e,t){return e}compileTranslations(e,t){return e}static \u0275fac=(()=>{let e;return function(s){return(e||(e=y(n)))(s||n)}})();static \u0275prov=h({token:n,factory:n.\u0275fac})}return n})(),j=class{defaultLang;currentLang=this.defaultLang;translations={};langs=[];onTranslationChange=new f;onLangChange=new f;onDefaultLangChange=new f},x=new v("ISOALTE_TRANSLATE_SERVICE"),O=new v("USE_DEFAULT_LANG"),U=new v("DEFAULT_LANGUAGE"),B=new v("USE_EXTEND"),b=n=>c(n)?n:L(n),G=(()=>{class n{store;currentLoader;compiler;parser;missingTranslationHandler;useDefaultLang;isolate;extend;loadingTranslations;pending=!1;_onTranslationChange=new f;_onLangChange=new f;_onDefaultLangChange=new f;_defaultLang;_currentLang;_langs=[];_translations={};_translationRequests={};lastUseLanguage=null;get onTranslationChange(){return this.isolate?this._onTranslationChange:this.store.onTranslationChange}get onLangChange(){return this.isolate?this._onLangChange:this.store.onLangChange}get onDefaultLangChange(){return this.isolate?this._onDefaultLangChange:this.store.onDefaultLangChange}get defaultLang(){return this.isolate?this._defaultLang:this.store.defaultLang}set defaultLang(e){this.isolate?this._defaultLang=e:this.store.defaultLang=e}get currentLang(){return this.isolate?this._currentLang:this.store.currentLang}set currentLang(e){this.isolate?this._currentLang=e:this.store.currentLang=e}get langs(){return this.isolate?this._langs:this.store.langs}set langs(e){this.isolate?this._langs=e:this.store.langs=e}get translations(){return this.isolate?this._translations:this.store.translations}set translations(e){this.isolate?this._translations=e:this.store.translations=e}constructor(e,t,s,i,a,A=!0,l=!1,T=!1,w){this.store=e,this.currentLoader=t,this.compiler=s,this.parser=i,this.missingTranslationHandler=a,this.useDefaultLang=A,this.isolate=l,this.extend=T,w&&this.setDefaultLang(w)}setDefaultLang(e){if(e===this.defaultLang)return;let t=this.retrieveTranslations(e);typeof t<"u"?(this.defaultLang==null&&(this.defaultLang=e),t.pipe(C(1)).subscribe(()=>{this.changeDefaultLang(e)})):this.changeDefaultLang(e)}getDefaultLang(){return this.defaultLang}use(e){if(this.lastUseLanguage=e,e===this.currentLang)return L(this.translations[e]);this.currentLang||(this.currentLang=e);let t=this.retrieveTranslations(e);return c(t)?(t.pipe(C(1)).subscribe(()=>{this.changeLang(e)}),t):(this.changeLang(e),L(this.translations[e]))}changeLang(e){e===this.lastUseLanguage&&(this.currentLang=e,this.onLangChange.emit({lang:e,translations:this.translations[e]}),this.defaultLang==null&&this.changeDefaultLang(e))}retrieveTranslations(e){if(typeof this.translations[e]>"u"||this.extend)return this._translationRequests[e]=this._translationRequests[e]||this.loadAndCompileTranslations(e),this._translationRequests[e]}getTranslation(e){return this.loadAndCompileTranslations(e)}loadAndCompileTranslations(e){this.pending=!0;let t=this.currentLoader.getTranslation(e).pipe(P(1),C(1));return this.loadingTranslations=t.pipe(I(s=>this.compiler.compileTranslations(s,e)),P(1),C(1)),this.loadingTranslations.subscribe({next:s=>{this.translations[e]=this.extend&&this.translations[e]?_(_({},s),this.translations[e]):s,this.updateLangs(),this.pending=!1},error:s=>{this.pending=!1}}),t}setTranslation(e,t,s=!1){let i=this.compiler.compileTranslations(t,e);(s||this.extend)&&this.translations[e]?this.translations[e]=N(this.translations[e],i):this.translations[e]=i,this.updateLangs(),this.onTranslationChange.emit({lang:e,translations:this.translations[e]})}getLangs(){return this.langs}addLangs(e){e.forEach(t=>{this.langs.indexOf(t)===-1&&this.langs.push(t)})}updateLangs(){this.addLangs(Object.keys(this.translations))}getParsedResultForKey(e,t,s){let i;if(e&&(i=this.runInterpolation(K(e,t),s)),i===void 0&&this.defaultLang!=null&&this.defaultLang!==this.currentLang&&this.useDefaultLang&&(i=this.runInterpolation(K(this.translations[this.defaultLang],t),s)),i===void 0){let a={key:t,translateService:this};typeof s<"u"&&(a.interpolateParams=s),i=this.missingTranslationHandler.handle(a)}return i!==void 0?i:t}runInterpolation(e,t){if(H(e))return e.map(s=>this.runInterpolation(s,t));if(D(e)){let s={};for(let i in e)s[i]=this.runInterpolation(e[i],t);return s}else return this.parser.interpolate(e,t)}getParsedResult(e,t,s){if(t instanceof Array){let i={},a=!1;for(let l of t)i[l]=this.getParsedResultForKey(e,l,s),a=a||c(i[l]);if(!a)return i;let A=t.map(l=>b(i[l]));return q(A).pipe(I(l=>{let T={};return l.forEach((w,te)=>{T[t[te]]=w}),T}))}return this.getParsedResultForKey(e,t,s)}get(e,t){if(!u(e)||!e.length)throw new Error('Parameter "key" is required and cannot be empty');return this.pending?this.loadingTranslations.pipe(J(s=>b(this.getParsedResult(s,e,t)))):b(this.getParsedResult(this.translations[this.currentLang],e,t))}getStreamOnTranslationChange(e,t){if(!u(e)||!e.length)throw new Error('Parameter "key" is required and cannot be empty');return V(F(()=>this.get(e,t)),this.onTranslationChange.pipe(R(s=>{let i=this.getParsedResult(s.translations,e,t);return b(i)})))}stream(e,t){if(!u(e)||!e.length)throw new Error('Parameter "key" required');return V(F(()=>this.get(e,t)),this.onLangChange.pipe(R(s=>{let i=this.getParsedResult(s.translations,e,t);return b(i)})))}instant(e,t){if(!u(e)||e.length===0)throw new Error('Parameter "key" is required and cannot be empty');let s=this.getParsedResult(this.translations[this.currentLang],e,t);return c(s)?Array.isArray(e)?e.reduce((i,a)=>(i[a]=a,i),{}):e:s}set(e,t,s=this.currentLang){se(this.translations[s],e,$(t)?this.compiler.compile(t,s):this.compiler.compileTranslations(t,s)),this.updateLangs(),this.onTranslationChange.emit({lang:s,translations:this.translations[s]})}changeDefaultLang(e){this.defaultLang=e,this.onDefaultLangChange.emit({lang:e,translations:this.translations[e]})}reloadLang(e){return this.resetLang(e),this.loadAndCompileTranslations(e)}resetLang(e){delete this._translationRequests[e],delete this.translations[e]}getBrowserLang(){if(typeof window>"u"||!window.navigator)return;let e=this.getBrowserCultureLang();return e?e.split(/[-_]/)[0]:void 0}getBrowserCultureLang(){if(!(typeof window>"u"||typeof window.navigator>"u"))return window.navigator.languages?window.navigator.languages[0]:window.navigator.language||window.navigator.browserLanguage||window.navigator.userLanguage}static \u0275fac=function(t){return new(t||n)(o(j),o(d),o(p),o(g),o(m),o(O),o(x),o(B),o(U))};static \u0275prov=h({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();var Ce=(()=>{class n{translate;_ref;value="";lastKey=null;lastParams=[];onTranslationChange;onLangChange;onDefaultLangChange;constructor(e,t){this.translate=e,this._ref=t}updateValue(e,t,s){let i=a=>{this.value=a!==void 0?a:e,this.lastKey=e,this._ref.markForCheck()};if(s){let a=this.translate.getParsedResult(s,e,t);c(a)?a.subscribe(i):i(a)}this.translate.get(e,t).subscribe(i)}transform(e,...t){if(!e||!e.length)return e;if(E(e,this.lastKey)&&E(t,this.lastParams))return this.value;let s;if(u(t[0])&&t.length)if($(t[0])&&t[0].length){let i=t[0].replace(/(')?([a-zA-Z0-9_]+)(')?(\s)?:/g,'"$2":').replace(/:(\s)?(')(.*?)(')/g,':"$3"');try{s=JSON.parse(i)}catch(a){throw new SyntaxError(`Wrong parameter in TranslatePipe. Expected a valid Object, received: ${t[0]}`)}}else D(t[0])&&(s=t[0]);return this.lastKey=e,this.lastParams=t,this.updateValue(e,s),this._dispose(),this.onTranslationChange||(this.onTranslationChange=this.translate.onTranslationChange.subscribe(i=>{this.lastKey&&i.lang===this.translate.currentLang&&(this.lastKey=null,this.updateValue(e,s,i.translations))})),this.onLangChange||(this.onLangChange=this.translate.onLangChange.subscribe(i=>{this.lastKey&&(this.lastKey=null,this.updateValue(e,s,i.translations))})),this.onDefaultLangChange||(this.onDefaultLangChange=this.translate.onDefaultLangChange.subscribe(()=>{this.lastKey&&(this.lastKey=null,this.updateValue(e,s))})),this.value}_dispose(){typeof this.onTranslationChange<"u"&&(this.onTranslationChange.unsubscribe(),this.onTranslationChange=void 0),typeof this.onLangChange<"u"&&(this.onLangChange.unsubscribe(),this.onLangChange=void 0),typeof this.onDefaultLangChange<"u"&&(this.onDefaultLangChange.unsubscribe(),this.onDefaultLangChange=void 0)}ngOnDestroy(){this._dispose()}static \u0275fac=function(t){return new(t||n)(M(G,16),M(Z,16))};static \u0275pipe=W({name:"translate",type:n,pure:!1});static \u0275prov=h({token:n,factory:n.\u0275fac})}return n})();var ve=(()=>{class n{static forRoot(e={}){return{ngModule:n,providers:[e.loader||{provide:d,useClass:Q},e.compiler||{provide:p,useClass:ee},e.parser||{provide:g,useClass:k},e.missingTranslationHandler||{provide:m,useClass:Y},j,{provide:x,useValue:e.isolate},{provide:O,useValue:e.useDefaultLang},{provide:B,useValue:e.extend},{provide:U,useValue:e.defaultLanguage},G]}}static forChild(e={}){return{ngModule:n,providers:[e.loader||{provide:d,useClass:Q},e.compiler||{provide:p,useClass:ee},e.parser||{provide:g,useClass:k},e.missingTranslationHandler||{provide:m,useClass:Y},{provide:x,useValue:e.isolate},{provide:O,useValue:e.useDefaultLang},{provide:B,useValue:e.extend},{provide:U,useValue:e.defaultLanguage},G]}}static \u0275fac=function(t){return new(t||n)};static \u0275mod=z({type:n});static \u0275inj=X({})}return n})();export{G as a,Ce as b,ve as c};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as b}from"./chunk-
|
|
1
|
+
import{a as b}from"./chunk-FGUBIKM4.js";import{a as p,b as w}from"./chunk-RBDXIYQQ.js";import{a as d}from"./chunk-AOWN5XN4.js";import{M as i,g as o,ha as m,n,na as h}from"./chunk-N7JBAWYM.js";var c=o(p(),1),a=o(w(),1),l=o(b(),1);var v=(()=>{class t{$ws=h(d);term;io;fitAddon;webLinksAddon;resize;elementResize;destroyTerminal(){this.io.end(),this.term.dispose(),this.resize.complete(),this.elementResize&&this.elementResize.complete()}startTerminal(r,s={},f){this.elementResize=f,this.io=this.$ws.connectToNamespace("platform-tools/terminal"),this.term=new c.Terminal(s),setTimeout(()=>{this.term.loadAddon(this.fitAddon),this.term.loadAddon(this.webLinksAddon)}),this.fitAddon=new a.FitAddon,this.webLinksAddon=new l.WebLinksAddon,this.resize=new n,this.term.open(r.nativeElement),setTimeout(()=>{this.fitAddon.activate(this.term),this.fitAddon.fit()}),this.io.connected.pipe(i(200)).subscribe(()=>{this.startSession()}),this.io.socket.on("disconnect",()=>{this.term.write(`
|
|
2
2
|
\r
|
|
3
3
|
\rTerminal disconnected. Is the server running?
|
|
4
4
|
\r
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as N,b as U}from"./chunk-
|
|
1
|
+
import{a as N,b as U}from"./chunk-RBDXIYQQ.js";import{m as H}from"./chunk-X3WXF4QL.js";import{a as D}from"./chunk-AOWN5XN4.js";import{d as V}from"./chunk-TKQHVRJM.js";import{b as E,j as z}from"./chunk-5X6YZZ4Y.js";import{c as I,d as w}from"./chunk-5XVPFQGJ.js";import{a as P,b as A}from"./chunk-KTW5C5OW.js";import{$b as R,Bb as f,Bc as l,Cc as d,Dc as F,Lb as S,Mb as b,Rb as c,Wb as a,Xb as o,Yb as u,cc as x,dc as p,g as $,h as k,ib as i,na as _,nc as s,oc as h,pc as v,ub as y,xa as C,xc as B,ya as g}from"./chunk-N7JBAWYM.js";var M=$(N(),1),W=$(U(),1);var j=t=>({maxBackupSizeText:t});function q(t,m){if(t&1&&(a(0,"div"),u(1,"input",11),o()),t&2){let e=p(2);i(),b("value",e.selectedBackup.fileName)}}function O(t,m){if(t&1){let e=R();a(0,"div",10)(1,"input",12),x("change",function(n){C(e);let T=p(2);return g(T.handleRestoreFileInput(n.target.files))}),o(),a(2,"label",13),s(3),l(4,"translate"),o()()}if(t&2){let e=p(2);i(3),v(" ",d(4,1,(e.selectedFile==null?null:e.selectedFile.name)||"backup.label_choose_backup_file_to_restore")," ")}}function G(t,m){if(t&1&&(a(0,"div",5)(1,"div",8),u(2,"i",9),o(),a(3,"p"),s(4),l(5,"translate"),o(),a(6,"ul")(7,"li"),s(8),l(9,"translate"),o(),a(10,"li"),s(11),l(12,"translate"),o(),a(13,"li"),s(14),l(15,"translate"),o()(),f(16,q,2,1,"div")(17,O,5,3,"div",10),o()),t&2){let e=p();i(4),h(d(5,6,"backup.restore_help_one")),i(4),h(d(9,8,"backup.restore_help_two")),i(3),h(F(12,10,"backup.restore_max_size",B(15,j,e.maxFileSizeText))),i(3),h(d(15,13,"backup.restore_warning")),i(2),c(e.selectedBackup?16:-1),i(),c(e.selectedBackup?-1:17)}}function J(t,m){t&1&&u(0,"i",19)}function K(t,m){if(t&1&&(a(0,"span"),s(1),o()),t&2){let e=p(3);i(),v("",e.uploadPercent,"% - ")}}function L(t,m){t&1&&(a(0,"span"),s(1," Extracting Archive"),o())}function Q(t,m){t&1&&(a(0,"span"),s(1),l(2,"translate"),o()),t&2&&(i(),v(" ",d(2,1,"backup.label_uploading"),""))}function X(t,m){if(t&1&&(a(0,"span"),f(1,J,1,0,"i",19)(2,K,2,1,"span")(3,L,2,0,"span")(4,Q,3,3,"span"),o()),t&2){let e=p(2);i(),c(!e.uploadPercent||e.uploadPercent===100?1:-1),i(),c(e.uploadPercent&&e.uploadPercent!==100?2:-1),i(),c(e.uploadPercent===100?3:-1),i(),c(e.uploadPercent!==100?4:-1)}}function Y(t,m){t&1&&(a(0,"span"),s(1),l(2,"translate"),o()),t&2&&(i(),h(d(2,1,"form.button_restore")))}function Z(t,m){if(t&1){let e=R();a(0,"div",7)(1,"div",14)(2,"button",15),l(3,"translate"),x("click",function(){C(e);let n=p();return g(n.$activeModal.dismiss("Dismiss"))}),s(4),l(5,"translate"),o()(),u(6,"div",16),a(7,"div",17)(8,"button",18),x("click",function(){C(e);let n=p();return g(n.onRestoreBackupClick())}),f(9,X,5,4,"span")(10,Y,3,3,"span"),o()()()}if(t&2){let e=p();i(2),b("disabled",e.clicked),S("aria-label",d(3,6,"form.button_close")),i(2),v(" ",d(5,8,"form.button_close")," "),i(4),b("disabled",!e.selectedBackup&&!e.selectedFile||e.clicked),i(),c(e.clicked?9:-1),i(),c(e.clicked?-1:10)}}function ee(t,m){if(t&1){let e=R();a(0,"div",7),u(1,"div",14),a(2,"div",16)(3,"button",20),x("click",function(){C(e);let n=p();return g(n.postBackupRestart())}),s(4),l(5,"translate"),o()(),u(6,"div",17),o()}t&2&&(i(4),v(" ",d(5,1,"menu.hbrestart.title")," "))}var me=(()=>{class t{$activeModal=_(H);$api=_(E);$route=_(V);$toastr=_(z);$translate=_(P);$ws=_(D);setupWizardRestore=!1;selectedBackup=null;clicked=!1;maxFileSizeText=globalThis.backup.maxBackupSizeText;selectedFile;restoreInProgress=!1;restoreStarted=!1;restoreFailed=!1;restoreArchiveType="homebridge";uploadPercent=0;term=new M.Terminal;termTarget;fitAddon=new W.FitAddon;io;ngOnInit(){return k(this,null,function*(){this.io=this.$ws.connectToNamespace("backup"),this.termTarget=document.getElementById("plugin-log-output"),this.term.open(this.termTarget),this.fitAddon.fit(),this.io.socket.on("stdout",e=>{this.term.write(e)}),this.setupWizardRestore&&(this.restoreStarted=!0,this.restoreInProgress=!0,this.startRestore())})}onRestoreBackupClick(){this.selectedBackup?this.restoreScheduledBackup():this.restoreArchiveType==="homebridge"?this.uploadHomebridgeArchive():this.restoreArchiveType==="hbfx"&&this.uploadHbfxArchive()}uploadHomebridgeArchive(){this.term.reset(),this.clicked=!0;let e=new FormData;e.append("restoreArchive",this.selectedFile,this.selectedFile.name),this.$api.post("/backup/restore",e).subscribe({next:()=>{this.restoreStarted=!0,this.restoreInProgress=!0,setTimeout(()=>{this.startRestore()},500),this.clicked=!1},error:r=>{var n;console.error(r),this.$toastr.error(((n=r.error)==null?void 0:n.message)||this.$translate.instant("backup.restore_failed"),this.$translate.instant("toast.title_error")),this.clicked=!1}})}restoreScheduledBackup(){return k(this,null,function*(){this.term.reset(),this.clicked=!0,this.$api.post(`/backup/scheduled-backups/${this.selectedBackup.id}/restore`,{}).subscribe({next:()=>{this.restoreStarted=!0,this.restoreInProgress=!0,setTimeout(()=>{this.startRestore()},500),this.clicked=!1},error:e=>{var r;console.error(e),this.$toastr.error(((r=e.error)==null?void 0:r.message)||this.$translate.instant("backup.restore_failed"),this.$translate.instant("toast.title_error")),this.clicked=!1}})})}startRestore(){return k(this,null,function*(){this.io.request("do-restore").subscribe({next:()=>{this.restoreInProgress=!1,this.$toastr.success(this.$translate.instant("backup.backup_restored"),this.$translate.instant("toast.title_success")),this.setupWizardRestore&&this.postBackupRestart()},error:e=>{this.restoreFailed=!0,console.error(e),this.$toastr.error(this.$translate.instant("backup.restore_failed"),this.$translate.instant("toast.title_error"))}})})}uploadHbfxArchive(){this.term.reset(),this.clicked=!0;let e=new FormData;e.append("restoreArchive",this.selectedFile,this.selectedFile.name),this.$api.post("/backup/restore/hbfx",e,{reportProgress:!0,observe:"events"}).subscribe({next:r=>{r.type===I.UploadProgress?this.uploadPercent=Math.round(100*r.loaded/r.total):r instanceof w&&(this.restoreStarted=!0,this.restoreInProgress=!0,setTimeout(()=>{this.startHbfxRestore()},500),this.clicked=!1)},error:r=>{var n;this.clicked=!1,console.error(r),this.$toastr.error(((n=r.error)==null?void 0:n.message)||this.$translate.instant("backup.restore_failed"),this.$translate.instant("toast.title_error"))}})}startHbfxRestore(){return k(this,null,function*(){this.io.request("do-restore-hbfx").subscribe({next:()=>{this.restoreInProgress=!1,this.$toastr.success(this.$translate.instant("backup.backup_restored"),this.$translate.instant("toast.title_success"))},error:e=>{this.restoreFailed=!0,console.error(e),this.$toastr.error(this.$translate.instant("backup.restore_failed"),this.$translate.instant("toast.title_error"))}})})}handleRestoreFileInput(e){e.length?(this.selectedFile=e[0],this.selectedFile.name.endsWith(".hbfx")?this.restoreArchiveType="hbfx":this.restoreArchiveType="homebridge"):delete this.selectedFile}postBackupRestart(){this.$api.put("/backup/restart",{}).subscribe({next:()=>{this.$activeModal.close(!0),this.$route.navigate(["/"])},error:()=>{}})}ngOnDestroy(){this.io.end()}static \u0275fac=function(r){return new(r||t)};static \u0275cmp=y({type:t,selectors:[["ng-component"]],inputs:{setupWizardRestore:"setupWizardRestore",selectedBackup:"selectedBackup"},decls:13,vars:11,consts:[[1,"modal-content","hb-backup-modal"],[1,"modal-header"],[1,"modal-title"],["type","button","data-dismiss","modal",1,"close",3,"click","disabled"],["aria-hidden","true"],[1,"modal-body"],["id","plugin-log-output",1,"modal-body",3,"hidden"],[1,"modal-footer","justify-content-between"],[1,"text-center","mt-2","mb-3"],[1,"fas","fa-fw","fa-hard-drive","primary-text",2,"font-size","75px"],[1,"custom-file"],["type","text","disabled","",1,"form-control","custom-input",3,"value"],["type","file","id","restoreFileUpload","accept","application/gzip, .gz, .hbfx",1,"custom-file-input",3,"change"],["for","restoreFileUpload",1,"custom-file-label"],[1,"text-left"],["type","button","data-dismiss","modal",1,"btn","btn-elegant",3,"click","disabled"],[1,"text-center"],[1,"text-right"],["type","button","data-dismiss","modal",1,"btn","btn-primary",3,"click","disabled"],[1,"fa","fa-fw","fa-circle-notch","fa-spin"],["type","button","data-dismiss","modal",1,"btn","btn-primary",3,"click"]],template:function(r,n){r&1&&(a(0,"div",0)(1,"div",1)(2,"h5",2),s(3),l(4,"translate"),o(),a(5,"button",3),l(6,"translate"),x("click",function(){return n.$activeModal.dismiss("Dismiss")}),a(7,"span",4),s(8,"\xD7"),o()()(),f(9,G,18,17,"div",5),u(10,"div",6),f(11,Z,11,10,"div",7)(12,ee,7,3,"div",7),o()),r&2&&(i(3),h(d(4,7,"form.button_restore")),i(2),b("disabled",n.restoreInProgress),S("aria-label",d(6,9,"form.button_close")),i(4),c(!n.restoreStarted&&!n.setupWizardRestore?9:-1),i(),b("hidden",!n.restoreStarted),i(),c(!n.restoreStarted||n.restoreFailed===!0?11:-1),i(),c(!n.restoreInProgress&&n.restoreStarted?12:-1))},dependencies:[A],encapsulation:2})}return t})();export{me as a};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Wb as t,Xb as r,Yb as i,
|
|
1
|
+
import{Wb as t,Xb as r,Yb as i,ub as a,za as o}from"./chunk-N7JBAWYM.js";var m=(()=>{class e{constructor(){}static \u0275fac=function(n){return new(n||e)};static \u0275cmp=a({type:e,selectors:[["app-spinner"]],decls:7,vars:0,consts:[[1,"app-spinner-container"],[1,"animate_loader"],["xmlns","http://www.w3.org/2000/svg",0,"xmlns","xlink","http://www.w3.org/1999/xlink","width","200px","height","200px","viewBox","0 0 100 100","preserveAspectRatio","xMidYMid",2,"margin","auto","display","block"],["cx","50","cy","50","r","32","stroke-width","8","stroke-dasharray","50.26548245743669 50.26548245743669","fill","none","stroke-linecap","round","transform","rotate(327.259 50 50)",1,"spinner_outer"],["attributeName","transform","type","rotate","dur","2s","repeatCount","indefinite","keyTimes","0;1","values","0 50 50;360 50 50"],["cx","50","cy","50","r","23","stroke-width","8","stroke","#f8b26a","stroke-dasharray","36.12831551628262 36.12831551628262","stroke-dashoffset","36.12831551628262","fill","none","stroke-linecap","round","transform","rotate(-327.259 50 50)",1,"spinner_inner"],["attributeName","transform","type","rotate","dur","2s","repeatCount","indefinite","keyTimes","0;1","values","0 50 50;-360 50 50"]],template:function(n,p){n&1&&(t(0,"div",0)(1,"div",1),o(),t(2,"svg",2)(3,"circle",3),i(4,"animateTransform",4),r(),t(5,"circle",5),i(6,"animateTransform",6),r()()()())},styles:[".app-spinner-container[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:0;right:0;display:flex;align-items:center;justify-content:center;z-index:1000}.animate_loader[_ngcontent-%COMP%] svg[_ngcontent-%COMP%]{position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;width:200px;overflow:visible}"]})}return e})();export{m as a};
|