homebridge-config-ui-x
Version:
A web based management, configuration and control platform for Homebridge.
1 lines • 53.3 kB
JavaScript
import {M as Me,W as We,e as en}from'./chunk-D6tmoFhC.js';import {P}from'./chunk-MBL0f7eL.js';import'./chunk-DMIeeBQR.js';import {o as oe}from'./chunk-B6VUt1El.js';import {v}from'./chunk-CG3i5q02.js';import {N}from'./chunk-DBaXd1B9.js';import'./chunk-b_mHvpXA.js';import'./chunk-BwPN3JEB.js';import'./chunk-CCTcrEQI.js';import {g,n as ne,X as I3,a as ae,ah as si$1,l as le,z as zt,a1 as M0,a2 as bf,B as BH,W,$,S as Se,A as An,aq as k,E,J as Ja,ci as uw,av as fe,aH as X,ag as we,an as PH,ao as ei$1,ai as ty,F as Fn,b_ as X$1,k as K8,m as La,s as At,R as Rd,t as f_,q as rc,o as dy,u as Re,y as ie,N as Ny,a6 as vr,G as h_,O as Oe,D as ly,I as Rt,bk as g_,bw as a_,az as ke,aA as Je,aB as _i$1,aC as Dr,b1 as dT,bv as lT,b4 as fT,aD as bi$1,x as Cy,bx as c_,bj as Y,cj as U,ck as re,cl as $$1,cm as se,cn as Q,bg as AS,K as Kn,d as zn,Y as Ye,e as Hn,L as Ln,i as Jn,C as Cn,_ as _n,M as Ey,P as ST,U as ye,aw as Qt,a8 as nc,a9 as Go,aa as Wo,ax as Wg,V as Ha,Q as KC,T as JC}from'./main-ONDCASUV.js';import {O}from'./chunk-BtxeAJ3m.js';import'./chunk-vqqeWC6a.js';import {y}from'./chunk-D9P3QF_y.js';import {T,a,A,M}from'./chunk-BWu8OGjA.js';import {d as dr}from'./chunk-KTYlT6lA.js';import {S}from'./chunk-WUyBXYN7.js';import'./chunk-DL7vVfE4.js';import'./chunk-Cy08K-Mh.js';import'./chunk-C8ZPrgbC.js';import'./chunk-doMANZyQ.js';import'./chunk-B2HnQlJt.js';import'./chunk-b3up2ArD.js';import'./chunk-7svcfPtx.js';import'./chunk-C4ubcADd.js';import'./chunk-QDhEG-Xh.js';import'./chunk-BidAOGy6.js';import'./chunk-lMjhVFUB.js';import'./chunk-CzRg8YX8.js';import'./chunk-DAyV9xsz.js';import'./chunk-B41tnDbB.js';import'./chunk-DqdSMBKI.js';import'./chunk-DoPE3N3z.js';import'./chunk-D-E7ed-H.js';import'./chunk-Ds4JiOhb.js';import'./chunk-BaKTdomc.js';import'./chunk-CSWVRWgN.js';import'./chunk-u2FneiiB.js';import'./chunk-DuKttKIp.js';import'./chunk-CgMQTfWL.js';import'./chunk-BC_vNxU2.js';import'./chunk-C-jJI3wF.js';import'./chunk-C3fDPXbF.js';import'./chunk-B09onH1d.js';import'./chunk-DIIPo35n.js';import'./chunk-BVt7fy49.js';import'./chunk-DcTLbPux.js';var ri=i=>({pluginName:i}),si=(i,p)=>({setting:i,value:p});function di(i,p){i&1&&(La(0,"li"),At(1),f_(2,"translate"),Rd(),La(3,"li"),At(4),f_(5,"translate"),Rd()),i&2&&(ie(),Ny(h_(2,2,"plugins.manage.confirm_disable_platform_1")),ie(3),Ny(h_(5,4,"plugins.manage.confirm_disable_platform_2")));}function pi(i,p){i&1&&(La(0,"li"),At(1),f_(2,"translate"),Rd(),La(3,"li"),At(4),f_(5,"translate"),Rd()),i&2&&(ie(),Ny(h_(2,2,"plugins.manage.confirm_disable_accessory_1")),ie(3),Ny(h_(5,4,"plugins.manage.confirm_disable_accessory_2")));}function ci(i,p){if(i&1&&(La(0,"ul",15),dy(1,"li",16),f_(2,"translate"),La(3,"ul",17),Re(4,di,6,6)(5,pi,6,6),Rd()()),i&2){let e=ye(2);ie(),ly("innerHtml",g_(2,2,"plugins.manage.confirm_disable_setting",c_(5,si,e.keepOrphansName,e.keepOrphansValue)),Ha),ie(3),Oe(e.keepOrphans?4:5);}}function ui(i,p){i&1&&(La(0,"ul",15)(1,"li"),At(2),f_(3,"translate"),Rd(),La(4,"li"),At(5),f_(6,"translate"),Rd()()),i&2&&(ie(2),Ny(h_(3,2,"plugins.manage.confirm_disable_accessory_1")),ie(3),Ny(h_(6,4,"plugins.manage.confirm_disable_accessory_2")));}function mi(i,p){if(i&1&&Re(0,ci,6,8,"ul",15)(1,ui,7,6,"ul",15),i&2){let e=ye();Oe(e.isConfiguredDynamicPlatform?0:1);}}var Ze=(()=>{class i{$activeModal=g(fe);$translate=g(bf);modalData=g(T);pluginName=this.modalData.pluginName;isConfigured=this.modalData.isConfigured??false;isConfiguredDynamicPlatform=this.modalData.isConfiguredDynamicPlatform??false;keepOrphans=this.modalData.keepOrphans??false;keepOrphansName=`<code>${this.$translate.instant("settings.startup.keep_accessories")}</code>`;get keepOrphansValue(){return `<code>${this.keepOrphans}</code>`}dismissModal(){this.$activeModal.dismiss("Dismiss");}closeModal(){this.$activeModal.close();}static \u0275fac=function(o){return new(o||i)};static \u0275cmp=Ja({type:i,selectors:[["app-disable-plugin"]],decls:25,vars:21,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click"],[1,"modal-body"],[1,"mb-3","text-center"],[1,"fas","fa-circle-pause","primary-text","icon-xl"],["type","warning",1,"mb-0",3,"dismissible"],[1,"w-100","text-center","mb-0"],[1,"modal-footer","justify-content-between"],[1,"text-start"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],[1,"text-center"],[1,"text-end"],["type","button","data-bs-dismiss","modal",1,"btn","btn-danger",3,"click"],[1,"mb-3"],[3,"innerHtml"],[1,"mb-1"]],template:function(o,t){o&1&&(La(0,"div",0)(1,"div",1)(2,"h5",2),At(3),Rd(),La(4,"button",3),f_(5,"translate"),rc("click",function(){return t.dismissModal()}),Rd()(),La(6,"div",4)(7,"div",5),dy(8,"i",6),Rd(),Re(9,mi,2,1),La(10,"ngb-alert",7)(11,"p",8),At(12),f_(13,"translate"),Rd()()(),La(14,"div",9)(15,"div",10)(16,"button",11),f_(17,"translate"),rc("click",function(){return t.dismissModal()}),At(18),f_(19,"translate"),Rd()(),dy(20,"div",12),La(21,"div",13)(22,"button",14),rc("click",function(){return t.closeModal()}),At(23),f_(24,"translate"),Rd()()()()),o&2&&(ie(3),Ny(t.pluginName),ie(),vr("aria-label",h_(5,8,"form.button_close")),ie(5),Oe(t.isConfigured?9:-1),ie(),ly("dismissible",false),ie(2),Rt(" ",g_(13,10,"plugins.manage.confirm_disable",a_(19,ri,t.pluginName))," "),ie(4),vr("aria-label",h_(17,13,"form.button_close")),ie(2),Rt(" ",h_(19,15,"form.button_close")," "),ie(5),Rt(" ",h_(24,17,"plugins.manage.disable")," "));},dependencies:[X$1,K8],encapsulation:2})}return i})();var gi=i=>({author:i});function _i(i,p){if(i&1&&(ke(0,"li",9),Dr(1,"i"),ke(2,"a",15),At(3),Je()()),i&2){let e=p.$implicit,o=ye();ie(),Qt(`me-3 my-4 primary-text fa-2xl ${o.getIconClass(e.type)}`),ie(),bi$1("href",e.url,Wg),ie(),Ny(e.url);}}var ei=(()=>{class i{$activeModal=g(fe);modalData=g(a);plugin=this.modalData.plugin;fundingOptions=W([]);authorName=W("");ngOnInit(){this.initialize();}initialize(){if(!this.plugin||!this.plugin.funding){this.$activeModal.close();return}this.authorName.set(this.plugin.name==="homebridge-config-ui-x"?"oznu":this.plugin.author);let e=this.plugin.funding;if(Array.isArray(e)){let o=e.map(t=>{if(typeof t=="string")return {type:"other",url:t};if(typeof t=="object")return {type:t.type||"other",url:t.url}}).filter(Boolean);this.fundingOptions.set(o);}else typeof e=="string"?this.fundingOptions.set([{type:"other",url:e}]):typeof e=="object"&&e!==null&&this.fundingOptions.set([{type:e.type||"other",url:e.url}]);}getIconClass(e){switch(e.toLowerCase()){case "paypal":return "fab fa-paypal";case "github":return "fab fa-github";case "patreon":return "fab fa-patreon";case "kofi":case "ko-fi":return "fab fa-ko-fi";case "venmo":return "fab fa-venmo-v";default:return "fas fa-link"}}dismissModal(){this.$activeModal.dismiss("Dismiss");}static \u0275fac=function(o){return new(o||i)};static \u0275cmp=Ja({type:i,selectors:[["app-donate"]],decls:28,vars:21,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click"],[1,"modal-body"],[1,"text-center","pink-text","mb-3"],[1,"fas","fa-heart","icon-xl"],[1,"mb-3"],[1,"list-group","list-group-box"],[1,"list-group-item","d-flex","align-items-center"],[1,"modal-footer","justify-content-between"],[1,"text-start"],[1,"text-center"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],[1,"text-end"],["target","_blank","rel","noopener noreferrer",1,"text-break-all","fs-6",3,"href"]],template:function(o,t){o&1&&(ke(0,"div",0)(1,"div",1)(2,"h5",2),At(3),f_(4,"translate"),Je(),ke(5,"button",3),f_(6,"translate"),_i$1("click",function(){return t.dismissModal()}),Je()(),ke(7,"div",4)(8,"div",5),Dr(9,"i",6),Je(),ke(10,"ul",7)(11,"li"),At(12),f_(13,"translate"),Je(),ke(14,"li"),At(15),f_(16,"translate"),Je()(),ke(17,"ul",8),dT(18,_i,4,4,"li",9,lT),Je()(),ke(20,"div",10),Dr(21,"div",11),ke(22,"div",12)(23,"button",13),f_(24,"translate"),_i$1("click",function(){return t.dismissModal()}),At(25),f_(26,"translate"),Je()(),Dr(27,"div",14),Je()()),o&2&&(ie(3),Ny(g_(4,6,"plugins.donate.tile_donate_to",a_(19,gi,`@${t.authorName()}`))),ie(2),vr("aria-label",h_(6,9,"form.button_close")),ie(7),Ny(h_(13,11,"plugins.donate.message_1")),ie(3),Ny(h_(16,13,"plugins.donate.message_2")),ie(3),fT(t.fundingOptions()),ie(5),vr("aria-label",h_(24,15,"form.button_close")),ie(2),Rt(" ",h_(26,17,"form.button_close")," "));},dependencies:[K8],styles:[".text-break-all[_ngcontent-%COMP%]{word-break:break-all}"]})}return i})();var fi=(i,p)=>({scopedLink:i,verifiedLink:p});function hi(i,p){i&1&&(ke(0,"h6",18),At(1),f_(2,"translate"),Je(),ke(3,"p",19),At(4),f_(5,"translate"),Je(),ke(6,"p",19),At(7),f_(8,"translate"),Je()),i&2&&(ie(),Ny(h_(2,3,"plugins.manage.scoped_subtitle")),ie(3),Ny(h_(5,5,"plugins.manage.scoped_message")),ie(3),Ny(h_(8,7,"plugins.manage.verified_message")));}function Ci(i,p){i&1&&(ke(0,"h6",18),At(1),f_(2,"translate"),Je(),ke(3,"p",19),At(4),f_(5,"translate"),Je()),i&2&&(ie(),Ny(h_(2,2,"plugins.manage.verified_subtitle")),ie(3),Ny(h_(5,4,"plugins.manage.verified_message")));}function bi(i,p){i&1&&(ke(0,"h6",18),At(1),f_(2,"translate"),Je(),ke(3,"p",19),At(4),f_(5,"translate"),Je()),i&2&&(ie(),Ny(h_(2,2,"plugins.manage.unverified_subtitle")),ie(3),Ny(h_(5,4,"plugins.manage.unverified_message")));}function xi(i,p){if(i&1){let e=nc();ke(0,"button",20),_i$1("click",function(){Go(e);let t=ye();return Wo(t.dismissModal())}),At(1),f_(2,"translate"),Je();}i&2&&(ie(),Rt(" ",h_(2,1,"form.button_close")," "));}function vi(i,p){if(i&1){let e=nc();ke(0,"button",20),_i$1("click",function(){Go(e);let t=ye();return Wo(t.dismissModal())}),At(1),f_(2,"translate"),Je();}i&2&&(ie(),Rt(" ",h_(2,1,"form.button_close")," "));}function yi(i,p){if(i&1&&(ke(0,"a",17),At(1),f_(2,"translate"),Dr(3,"i",21),Je()),i&2){let e=ye();bi$1("href",e.plugin.links.homepage||e.plugin.links.npm,Wg),ie(),Rt(" ",h_(2,2,"plugins.button_homepage")," ");}}var ii=(()=>{class i{$activeModal=g(fe);modalData=g(a);plugin=this.modalData.plugin;iconError=W(false);pluginIcon=X(()=>this.plugin?.icon&&!this.iconError()?this.plugin.icon:this.defaultIcon);defaultIcon="assets/hb-icon.png";linkScoped='<a href="https://github.com/homebridge/plugins/wiki/Scoped-Plugins" target="_blank"><i class="fas fa-external-link-alt primary-text"></i></a>';linkVerified='<a href="https://github.com/homebridge/plugins/wiki/Verified-Plugins" target="_blank"><i class="fas fa-external-link-alt primary-text"></i></a>';handleIconError(){this.iconError.set(true);}dismissModal(){this.$activeModal.dismiss("Dismiss");}static \u0275fac=function(o){return new(o||i)};static \u0275cmp=Ja({type:i,selectors:[["app-plugin-info"]],decls:32,vars:42,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click"],[1,"modal-body","text-center"],["alt","Plugin Icon",1,"mb-3","plugin-icon-card",3,"error","src"],[1,"mb-1"],[1,"grey-text","mb-0","font-monospace"],[1,"grey-text","mb-1","font-monospace"],[1,"mb-3"],["aria-hidden","true",1,"fas","fa-shield-alt","mb-3","shield-icon"],[1,"mb-0","grey-text",3,"innerHTML"],[1,"modal-footer","justify-content-between"],[1,"text-start"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant"],[1,"text-center"],[1,"text-end"],["target","_blank","rel","noopener noreferrer",1,"btn","btn-primary","text-decoration-none",3,"href"],[1,"mb-2"],[1,"mb-1","grey-text"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],["aria-hidden","true",1,"fas","fa-external-link-alt"]],template:function(o,t){o&1&&(ke(0,"div",0)(1,"div",1)(2,"h5",2),At(3),f_(4,"translate"),Je(),ke(5,"button",3),f_(6,"translate"),_i$1("click",function(){return t.dismissModal()}),Je()(),ke(7,"div",4)(8,"img",5),_i$1("error",function(){return t.handleIconError()}),Je(),ke(9,"h4",6),At(10),Je(),ke(11,"p",7),At(12),Je(),ke(13,"p",8),At(14),Je(),ke(15,"p",9),At(16),Je(),Dr(17,"i",10)(18,"i",10)(19,"i",10),Re(20,hi,9,9),Re(21,Ci,6,6),Re(22,bi,6,6),Dr(23,"p",11),f_(24,"translate"),Je(),ke(25,"div",12)(26,"div",13),Re(27,xi,3,3,"button",14),Je(),ke(28,"div",15),Re(29,vi,3,3,"button",14),Je(),ke(30,"div",16),Re(31,yi,4,4,"a",17),Je()()()),o&2&&(ie(3),Ny(h_(4,32,"plugins.manage.information")),ie(2),vr("aria-label",h_(6,34,"form.button_close")),ie(3),bi$1("src",t.pluginIcon(),Wg),ie(2),Ny(t.plugin.displayName),ie(2),Ny(t.plugin.name),ie(2),Rt("@",t.plugin.author),ie(2),Ny(t.plugin.description),ie(),Cy("orange-text",!t.plugin.verifiedPlugin&&!t.plugin.verifiedPlusPlugin)("grey-text",t.plugin.verifiedPlugin||t.plugin.verifiedPlusPlugin)("opacity-muted",t.plugin.verifiedPlugin||t.plugin.verifiedPlusPlugin),ie(),Cy("green-text",!t.plugin.isHbScoped&&(t.plugin.verifiedPlugin||t.plugin.verifiedPlusPlugin))("grey-text",t.plugin.isHbScoped||!t.plugin.verifiedPlugin&&!t.plugin.verifiedPlusPlugin)("opacity-muted",t.plugin.isHbScoped||!t.plugin.verifiedPlugin&&!t.plugin.verifiedPlusPlugin),ie(),Cy("purple-text",t.plugin.isHbScoped)("grey-text",!t.plugin.isHbScoped)("opacity-muted",!t.plugin.isHbScoped),ie(),Oe(t.plugin.isHbScoped?20:-1),ie(),Oe(!t.plugin.isHbScoped&&(t.plugin.verifiedPlugin||t.plugin.verifiedPlusPlugin)?21:-1),ie(),Oe(!t.plugin.verifiedPlugin&&!t.plugin.verifiedPlusPlugin?22:-1),ie(),bi$1("innerHTML",g_(24,36,"plugins.manage.more_info",c_(39,fi,t.linkScoped,t.linkVerified)),Ha),ie(4),Oe(t.plugin.links.homepage||t.plugin.links.npm?27:-1),ie(2),Oe(!t.plugin.links.homepage&&!t.plugin.links.npm?29:-1),ie(2),Oe(t.plugin.links.homepage||t.plugin.links.npm?31:-1));},dependencies:[K8],styles:[".plugin-icon[_ngcontent-%COMP%]{height:75px;width:75px;border-radius:15px;border:1px solid #222222}.shield-icon[_ngcontent-%COMP%]{font-size:48px}.opacity-muted[_ngcontent-%COMP%]{opacity:.25}"]})}return i})();var Pi=i=>({author:i});function wi(i,p){if(i&1){let e=nc();La(0,"button",22),f_(1,"translate"),f_(2,"translate"),rc("click",function(){Go(e);let t=ye(2);return Wo(t.checkAndUpdatePlugin())}),dy(3,"i",23),Rd();}i&2&&(ly("openDelay",150)("ngbTooltip",h_(1,3,"plugins.button_update")),vr("aria-label",h_(2,5,"plugins.button_update")));}function Si(i,p){if(i&1){let e=nc();La(0,"button",22),f_(1,"translate"),f_(2,"translate"),rc("click",function(){Go(e);let t=ye(2);return Wo(t.switchToScoped())}),dy(3,"i",24),Rd();}i&2&&(ly("openDelay",150)("ngbTooltip",h_(1,3,"plugins.manage.scoped.switch")),vr("aria-label",h_(2,5,"plugins.manage.scoped.switch")));}function Bi(i,p){if(i&1){let e=nc();La(0,"button",25),f_(1,"translate"),f_(2,"translate"),rc("click",function(){Go(e);let t=ye(2);return Wo(t.openSettings())}),dy(3,"i",26),Rd();}i&2&&(ly("ngbTooltip",h_(1,3,"plugins.button_set_up"))("openDelay",150),vr("aria-label",h_(2,5,"plugins.button_set_up")));}function Ei(i,p){if(i&1){let e=nc();La(0,"button",25),f_(1,"translate"),f_(2,"translate"),rc("click",function(){Go(e);let t=ye(2);return Wo(t.openBridgeSettings())}),dy(3,"i",27),Rd();}i&2&&(ly("ngbTooltip",h_(1,3,"child_bridge.setup"))("openDelay",150),vr("aria-label",h_(2,5,"child_bridge.setup")));}function ki(i,p){if(i&1){let e=nc();La(0,"button",25),f_(1,"translate"),f_(2,"translate"),rc("click",function(){Go(e);let t=ye(2);return Wo(t.openBridgeSettings())}),dy(3,"i",28),Rd();}i&2&&(ly("ngbTooltip",h_(1,3,"child_bridge.bridge_connect"))("openDelay",150),vr("aria-label",h_(2,5,"child_bridge.bridge_connect")));}function Ti(i,p){if(i&1&&dy(0,"i",29),i&2){let e=ye(2);Cy("fa-bridge-circle-exclamation",e.childBridgeStatus()==="pending")("orange-text",e.childBridgeStatus()==="pending")("fa-bridge-circle-xmark",e.childBridgeStatus()==="down")("red-text",e.childBridgeStatus()==="down");}}function Ii(i,p){if(i&1&&(La(0,"div",9),Re(1,wi,4,7,"button",18),Re(2,Si,4,7,"button",18),Re(3,Bi,4,7,"button",19),Re(4,Ei,4,7,"button",19),Re(5,ki,4,7,"button",19),dy(6,"i",20),Re(7,Ti,1,8,"i",21),Rd()),i&2){let e=ye();ie(),Oe(e.plugin().installedVersion&&e.plugin().updateAvailable&&!e.childBridgeRestartInProgress()?1:-1),ie(),Oe(e.plugin().installedVersion&&e.plugin().newHbScope?.switch===e.plugin().installedVersion&&!e.childBridgeRestartInProgress()?2:-1),ie(),Oe(e.plugin().installedVersion&&(!e.plugin().newHbScope||e.plugin().newHbScope?.switch!==e.plugin().installedVersion)&&!e.plugin().updateAvailable&&!e.plugin().isConfigured&&!e.childBridgeRestartInProgress()&&!e.plugin().disabled?3:-1),ie(),Oe(e.plugin().installedVersion&&(!e.plugin().newHbScope||e.plugin().newHbScope?.switch!==e.plugin().installedVersion)&&!e.plugin().updateAvailable&&e.plugin().isConfigured&&!e.plugin().hasChildBridges&&!e.plugin().disabled&&e.plugin().recommendChildBridge&&!e.childBridgeRestartInProgress()?4:-1),ie(),Oe(e.plugin().installedVersion&&(!e.plugin().newHbScope||e.plugin().newHbScope?.switch!==e.plugin().installedVersion)&&!e.plugin().updateAvailable&&e.plugin().isConfigured&&e.plugin().hasChildBridges&&!e.childBridgeRestartInProgress()&&e.plugin().hasChildBridgesUnpaired&&e.childBridgeStatus()==="ok"&&!e.plugin().disabled?5:-1),ie(),ly("hidden",!e.childBridgeRestartInProgress()),ie(),Oe(e.plugin().installedVersion&&(!e.plugin().newHbScope||e.plugin().newHbScope?.switch!==e.plugin().installedVersion)&&!e.plugin().updateAvailable&&e.plugin().isConfigured&&e.plugin().hasChildBridges&&!e.childBridgeRestartInProgress()&&!e.plugin().hasChildBridgesUnpaired&&e.childBridgeStatus()!=="ok"&&!e.plugin().disabled?7:-1);}}function Mi(i,p){if(i&1){let e=nc();La(0,"button",11),f_(1,"translate"),rc("click",function(){Go(e);let t=ye();return Wo(t.openFundingModal(t.plugin()))}),dy(2,"i",30),La(3,"span",16),At(4),Rd()();}if(i&2){let e=ye();vr("aria-label",g_(1,2,"plugins.donate.tile_donate_to",a_(5,Pi,e.plugin().author))),ie(4),Rt("@",e.plugin().author);}}function Vi(i,p){if(i&1&&(La(0,"span",16),dy(1,"i",31),At(2),Rd()),i&2){let e=ye();ie(2),Rt("@",e.plugin().author," ");}}function Di(i,p){if(i&1&&(La(0,"span"),At(1),f_(2,"date"),Rd()),i&2){let e=ye(2);ie(),Rt("(",g_(2,1,e.plugin().lastUpdated,"yyyy-MM-dd"),")");}}function $i(i,p){if(i&1&&(La(0,"span"),dy(1,"i",32),La(2,"span",16),At(3),Re(4,Di,3,4,"span"),Rd()()),i&2){let e=ye();ie(3),Rt("v",e.plugin().latestVersion," "),ie(),Oe(e.plugin().lastUpdated?4:-1);}}function Ai(i,p){if(i&1&&(dy(0,"i",33),At(1)),i&2){let e=ye();ie(),Rt("v",e.plugin().installedVersion," ");}}function Ni(i,p){if(i&1){let e=nc();La(0,"button",22),f_(1,"translate"),f_(2,"translate"),rc("click",function(){Go(e);let t=ye(2);return Wo(t.doChildBridgeAction("restart"))}),dy(3,"i",36),Rd();}if(i&2){let e=ye(2);ly("openDelay",150)("ngbTooltip",h_(1,3,e.setChildBridges().length>1?"child_bridge.restart_plural":"child_bridge.restart")),vr("aria-label",h_(2,5,e.setChildBridges().length>1?"child_bridge.restart_plural":"child_bridge.restart"));}}function Li(i,p){if(i&1){let e=nc();La(0,"button",37),f_(1,"translate"),rc("click",function(){Go(e);let t=ye(2);return Wo(t.enablePlugin(t.plugin()))}),dy(2,"i",38),f_(3,"translate"),Rd();}i&2&&(vr("aria-label",h_(1,3,"common.labels.disabled")),ie(2),ly("ngbTooltip",h_(3,5,"common.labels.disabled"))("openDelay",150));}function Oi(i,p){if(i&1){let e=nc();La(0,"button",22),f_(1,"translate"),f_(2,"translate"),rc("click",function(){Go(e);let t=ye(2);return Wo(t.installAlternateVersion())}),dy(3,"i",39),Rd();}i&2&&(ly("openDelay",150)("ngbTooltip",h_(1,3,"plugins.manage.install")),vr("aria-label",h_(2,5,"plugins.manage.install")));}function Hi(i,p){if(i&1){let e=nc();La(0,"button",43),rc("click",function(){Go(e);let t=ye(3);return Wo(t.viewPluginLog())}),dy(1,"i",48),At(2),f_(3,"translate"),Rd();}i&2&&(ie(2),Rt(" ",h_(3,1,"plugins.manage.plugin_logs")," "));}function Fi(i,p){if(i&1){let e=nc();La(0,"button",43),rc("click",function(){Go(e);let t=ye(3);return Wo(t.installAlternateVersion())}),dy(1,"i",49),At(2),f_(3,"translate"),Rd();}i&2&&(ie(2),Rt(" ",h_(3,1,"plugins.manage.manage_version")," "));}function qi(i,p){if(i&1){let e=nc();La(0,"button",43),rc("click",function(){Go(e);let t=ye(3);return Wo(t.openJsonEditor())}),dy(1,"i",50),At(2),f_(3,"translate"),Rd();}i&2&&(ie(2),Rt(" ",h_(3,1,"plugins.manage.json_config")," "));}function ji(i,p){if(i&1){let e=nc();La(0,"button",43),rc("click",function(){Go(e);let t=ye(3);return Wo(t.disablePlugin(t.plugin()))}),dy(1,"i",51),At(2),f_(3,"translate"),Rd();}i&2&&(ie(2),Rt(" ",h_(3,1,"plugins.manage.disable")," "));}function Ri(i,p){if(i&1){let e=nc();La(0,"button",43),rc("click",function(){Go(e);let t=ye(3);return Wo(t.enablePlugin(t.plugin()))}),dy(1,"i",52),At(2),f_(3,"translate"),Rd();}i&2&&(ie(2),Rt(" ",h_(3,1,"plugins.manage.enable")," "));}function Ui(i,p){if(i&1){let e=nc();La(0,"button",43),rc("click",function(){Go(e);let t=ye(3);return Wo(t.uninstallPlugin())}),dy(1,"i",53),At(2),f_(3,"translate"),Rd();}i&2&&(ie(2),Rt(" ",h_(3,1,"plugins.button_uninstall")," "));}function zi(i,p){i&1&&dy(0,"div",46);}function Gi(i,p){if(i&1){let e=nc();La(0,"button",43),rc("click",function(){Go(e);let t=ye(4);return Wo(t.doChildBridgeAction("restart"))}),dy(1,"i",56),At(2),f_(3,"translate"),Rd();}if(i&2){let e=ye(4);ie(2),Rt(" ",h_(3,1,e.setChildBridges().length>1?"child_bridge.restart_plural":"child_bridge.restart")," ");}}function Qi(i,p){if(i&1){let e=nc();La(0,"button",43),rc("click",function(){Go(e);let t=ye(4);return Wo(t.doChildBridgeAction("stop"))}),dy(1,"i",57),At(2),f_(3,"translate"),Rd();}if(i&2){let e=ye(4);ie(2),Rt(" ",h_(3,1,e.setChildBridges().length>1?"child_bridge.stop_plural":"child_bridge.stop")," ");}}function Wi(i,p){if(i&1){let e=nc();La(0,"button",43),rc("click",function(){Go(e);let t=ye(4);return Wo(t.doChildBridgeAction("start"))}),dy(1,"i",58),At(2),f_(3,"translate"),Rd();}if(i&2){let e=ye(4);ie(2),Rt(" ",h_(3,1,e.setChildBridges().length>1?"child_bridge.start_plural":"child_bridge.start")," ");}}function Ji(i,p){if(i&1){let e=nc();La(0,"button",43),rc("click",function(){Go(e);let t=ye(3);return Wo(t.openBridgeSettings())}),dy(1,"i",54),At(2),f_(3,"translate"),Rd(),Re(4,Gi,4,3,"button",45),Re(5,Qi,4,3,"button",45)(6,Wi,4,3,"button",45),La(7,"button",43),rc("click",function(){Go(e);let t=ye(3);return Wo(t.resetChildBridges())}),dy(8,"i",55),At(9),f_(10,"translate"),Rd();}if(i&2){let e=ye(3);ie(2),Rt(" ",h_(3,4,"child_bridge.bridge_settings")," "),ie(2),Oe(e.childBridgeRestartInProgress()?-1:4),ie(),Oe(e.allChildBridgesStopped()?6:5),ie(4),Rt(" ",h_(10,6,"child_bridge.reset_accessories")," ");}}function Xi(i,p){i&1&&dy(0,"div",46);}function Ki(i,p){if(i&1){let e=nc();Re(0,Xi,1,0,"div",46),La(1,"button",43),rc("click",function(){Go(e);let t=ye(3);return Wo(t.openExternalAccessories())}),dy(2,"i",59),At(3),f_(4,"translate"),Rd();}if(i&2){let e=ye(3);Oe(e.plugin().hasChildBridges?-1:0),ie(3),Rt(" ",h_(4,2,"external_accessories.menu_label")," ");}}function Yi(i,p){i&1&&dy(0,"div",46);}function Zi(i,p){if(i&1){let e=nc();La(0,"button",43),rc("click",function(){Go(e);let t=ye(3);return Wo(t.openBridgeSettings())}),dy(1,"i",60),At(2),f_(3,"translate"),Rd();}i&2&&(ie(2),Rt(" ",h_(3,1,"child_bridge.setup")," "));}function et(i,p){i&1&&dy(0,"div",46);}function it(i,p){if(i&1){let e=nc();La(0,"button",43),rc("click",function(){Go(e);let t=ye(3);return Wo(t.openBridgeSettings())}),dy(1,"i",60),At(2),f_(3,"translate"),Rd();}i&2&&(ie(2),Rt(" ",h_(3,1,"child_bridge.setup")," "));}function tt(i,p){i&1&&dy(0,"div",46);}function nt(i,p){if(i&1&&(La(0,"a",47),dy(1,"i",61),At(2),f_(3,"translate"),Rd()),i&2){let e=ye(3);ly("href",e.plugin().links.bugs,Wg),ie(2),Rt(" ",h_(3,2,"support.links.issue")," ");}}function ot(i,p){if(i&1){let e=nc();La(0,"span",35)(1,"button",40),f_(2,"translate"),dy(3,"i",41),Rd(),La(4,"div",42)(5,"button",43),rc("click",function(){Go(e);let t=ye(2);return Wo(t.openSettings())}),dy(6,"i",44),At(7),f_(8,"translate"),Rd(),Re(9,Hi,4,3,"button",45),Re(10,Fi,4,3,"button",45),Re(11,qi,4,3,"button",45),Re(12,ji,4,3,"button",45),Re(13,Ri,4,3,"button",45),Re(14,Ui,4,3,"button",45),Re(15,zi,1,0,"div",46),Re(16,Ji,11,8),Re(17,Ki,5,4),Re(18,Yi,1,0,"div",46),Re(19,Zi,4,3,"button",45),Re(20,et,1,0,"div",46),Re(21,it,4,3,"button",45),Re(22,tt,1,0,"div",46),Re(23,nt,4,4,"a",47),Rd()();}if(i&2){let e=ye(2);ie(),vr("aria-label",h_(2,17,"plugins.button_actions")),ie(6),Rt(" ",h_(8,19,"plugins.button_settings")," "),ie(2),Oe(e.plugin().isConfigured&&!e.plugin().disabled?9:-1),ie(),Oe(e.plugin().publicPackage?10:-1),ie(),Oe(e.plugin().name!=="homebridge-config-ui-x"?11:-1),ie(),Oe(e.plugin().name!=="homebridge-config-ui-x"&&!e.plugin().disabled?12:-1),ie(),Oe(e.plugin().name!=="homebridge-config-ui-x"&&e.plugin().disabled?13:-1),ie(),Oe(e.plugin().name!=="homebridge-config-ui-x"?14:-1),ie(),Oe(!e.plugin().disabled&&e.plugin().isConfigured&&e.plugin().hasChildBridges&&e.plugin().installedVersion&&e.plugin().name!=="homebridge-config-ui-x"?15:-1),ie(),Oe(e.plugin().hasChildBridges&&!e.plugin().disabled?16:-1),ie(),Oe(e.plugin().hasExternalAccessories&&!e.plugin().disabled?17:-1),ie(),Oe(e.plugin().isConfigured&&!e.plugin().hasChildBridges&&!e.plugin().disabled&&!e.plugin().recommendChildBridge?18:-1),ie(),Oe(e.plugin().isConfigured&&!e.plugin().hasChildBridges&&!e.plugin().disabled&&!e.plugin().recommendChildBridge?19:-1),ie(),Oe(e.plugin().isConfigured&&!e.plugin().hasChildBridges&&!e.plugin().disabled&&e.plugin().recommendChildBridge&&e.plugin().updateAvailable?20:-1),ie(),Oe(e.plugin().isConfigured&&!e.plugin().hasChildBridges&&!e.plugin().disabled&&e.plugin().recommendChildBridge&&e.plugin().updateAvailable?21:-1),ie(),Oe(e.plugin().links.bugs?22:-1),ie(),Oe(e.plugin().links.bugs?23:-1);}}function at(i,p){if(i&1&&(La(0,"div",9),Re(1,Ni,4,7,"button",18),Re(2,Li,4,7,"button",34),Re(3,Oi,4,7,"button",18),Re(4,ot,24,21,"span",35),Rd()),i&2){let e=ye();ie(),Oe(!e.plugin().disabled&&e.plugin().hasChildBridges&&e.childBridgeStatus()==="ok"?1:-1),ie(),Oe(e.plugin().installedVersion&&e.plugin().disabled?2:-1),ie(),Oe(e.plugin().publicPackage&&!e.plugin().installedVersion?3:-1),ie(),Oe(e.plugin().installedVersion?4:-1);}}var ti=(()=>{class i{injector=g(we);$api=g(I3);$auth=g(ae);$md=g(N);$modal=g(si$1);$plugin=g(Me);$pluginsCache=g(We);$settings=g(zt);$toastr=g(M0);$translate=g(bf);$ws=g(dr);plugin=PH.required();childBridges=PH.required();io;defaultIcon="assets/hb-icon.png";isAdmin=this.$auth.user.admin;hasChildBridges=W(false);allChildBridgesStopped=W(false);childBridgeStatus=W("pending");childBridgeRestartInProgress=W(false);isMobile=W("");setChildBridges=W([]);constructor(){ei$1(()=>{let e=this.childBridges();this.hasChildBridges.set(e.length>0),this.allChildBridgesStopped.set(e.every(o=>o.manuallyStopped===true)),this.hasChildBridges()&&(e.some(o=>o.status==="down")?this.childBridgeStatus.set("down"):e.some(o=>o.status==="pending")?this.childBridgeStatus.set("pending"):e.some(o=>o.status==="ok")&&this.childBridgeStatus.set("ok")),this.setChildBridges.set(e);});}ngOnInit(){this.isMobile.set(this.$md.detect.mobile()||""),this.io=this.$ws.getExistingNamespace("child-bridges"),this.isMobile()&&this.plugin().displayName.toLowerCase().startsWith("homebridge ")&&(this.plugin().displayName=this.plugin().displayName.replace(S,"")),this.plugin().icon||(this.plugin().icon=this.defaultIcon);}openFundingModal(e){let o=ty([{provide:a,useValue:{plugin:e}}],this.injector);this.$modal.open(ei,{size:"lg",backdrop:"static",injector:o});}pluginInfoModal(e){let o=ty([{provide:a,useValue:{plugin:e}}],this.injector);this.$modal.open(ii,{size:"lg",backdrop:"static",injector:o});}disablePlugin(e){return E(this,null,function*(){let o=ty([{provide:T,useValue:{pluginName:e.displayName||e.name,isConfigured:e.isConfigured,isConfiguredDynamicPlatform:e.isConfiguredDynamicPlatform,keepOrphans:this.$settings.keepOrphans}}],this.injector),t=this.$modal.open(Ze,{size:"lg",backdrop:"static",injector:o});try{yield t.result;try{yield this.$api.put(`/config-editor/plugin/${encodeURIComponent(e.name)}/disable`,{}),this.$pluginsCache.invalidate(),e.disabled=!0,this.hasChildBridges()&&this.doChildBridgeAction("stop"),this.$modal.open(oe,{size:"lg",backdrop:"static"});}catch(f){console.error(f),this.$toastr.error(this.$translate.instant("plugins.disable.error"),this.$translate.instant("toast.title_error"));}}catch(f){}})}enablePlugin(e){return E(this,null,function*(){let o=ty([{provide:A,useValue:{title:e.name,message:this.$translate.instant("plugins.manage.confirm_enable",{pluginName:e.displayName}),confirmButtonLabel:this.$translate.instant("plugins.manage.enable"),faIconClass:"fa-circle-play primary-text"}}],this.injector),t=this.$modal.open(O,{size:"lg",backdrop:"static",injector:o});try{yield t.result;try{yield this.$api.put(`/config-editor/plugin/${encodeURIComponent(e.name)}/enable`,{}),this.$pluginsCache.invalidate(),e.disabled=!1,this.hasChildBridges()&&(yield this.doChildBridgeAction("start")),this.$modal.open(oe,{size:"lg",backdrop:"static"});}catch(f){console.error(f),this.$toastr.error(this.$translate.instant("plugins.enable.error"),this.$translate.instant("toast.title_error"));}}catch(f){}})}viewPluginLog(){let e=ty([{provide:M,useValue:{plugin:this.plugin(),childBridges:this.setChildBridges()}}],this.injector);this.$modal.open(en,{size:"xl",backdrop:"static",injector:e});}doChildBridgeAction(e){return E(this,null,function*(){this.childBridgeRestartInProgress.set(true);try{for(let o of this.setChildBridges())yield Fn(this.io.request(`${e}-child-bridge`,o.username));}catch(o){console.error(o),this.$toastr.error(this.$translate.instant("plugins.bridge.action_error",{action:e}),this.$translate.instant("toast.title_error")),this.childBridgeRestartInProgress.set(false);}finally{setTimeout(()=>{this.childBridgeRestartInProgress.set(false);},e==="restart"?12e3:e==="stop"?6e3:1e3);}})}handleIconError(){this.plugin().icon=this.defaultIcon;}checkAndUpdatePlugin(){this.$plugin.checkAndUpdatePlugin(this.plugin(),this.plugin().latestVersion);}openSettings(){this.$plugin.settings(this.plugin());}openBridgeSettings(){this.$plugin.bridgeSettings(this.plugin());}openExternalAccessories(){this.$plugin.externalAccessories(this.plugin());}switchToScoped(){this.$plugin.switchToScoped(this.plugin());}installAlternateVersion(){this.$plugin.installAlternateVersion(this.plugin());}openJsonEditor(){this.$plugin.jsonEditor(this.plugin());}uninstallPlugin(){this.$plugin.uninstallPlugin(this.plugin(),this.setChildBridges());}resetChildBridges(){this.$plugin.resetChildBridges(this.setChildBridges());}static \u0275fac=function(o){return new(o||i)};static \u0275cmp=Ja({type:i,selectors:[["app-plugin-card"]],inputs:{plugin:[1,"plugin"],childBridges:[1,"childBridges"]},decls:25,vars:18,consts:[[1,"card","card-body","mb-3"],[1,"d-flex","flex-row","justify-content-between"],[1,"d-flex","flex-column","me-3","align-items-center","justify-content-between"],["alt","","aria-hidden","true",1,"plugin-icon-card","mb-3",3,"error","src"],[1,"d-flex","flex-column","justify-content-between","plugin-content"],[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,"ms-auto"],[1,"card-text","mb-2","text-truncate"],["type","button",1,"card-link","btn","btn-link","p-0","text-decoration-none",3,"click"],["aria-hidden","true",1,"fas","fa-shield-alt","fa-lg","me-1"],["aria-hidden","true",1,"grey-text"],[1,"card-text","mb-2"],["type","button",1,"card-link","btn","btn-link","p-0","text-decoration-none"],[1,"grey-text"],[1,"card-text","mb-0","grey-text"],["type","button","container","body","triggers","hover",1,"card-link","btn","btn-link","p-0","text-decoration-none",3,"openDelay","ngbTooltip"],["type","button","container","body","triggers","hover",1,"card-link","btn","btn-link","p-0","text-decoration-none",3,"ngbTooltip","openDelay"],["aria-hidden","true",1,"fas","fa-circle-notch","fa-spin","fa-lg","grey-text","ms-3",3,"hidden"],["aria-hidden","true",1,"fas","fa-lg","ms-3",3,"fa-bridge-circle-exclamation","orange-text","fa-bridge-circle-xmark","red-text"],["type","button","container","body","triggers","hover",1,"card-link","btn","btn-link","p-0","text-decoration-none",3,"click","openDelay","ngbTooltip"],["aria-hidden","true",1,"far","fa-arrow-alt-circle-up","primary-text","fa-lg","fa-fade","fa-spin-slow","ms-3"],["aria-hidden","true",1,"fas","fa-arrow-right-arrow-left","primary-text","fa-lg","fa-fade","fa-spin-slow","ms-3"],["type","button","container","body","triggers","hover",1,"card-link","btn","btn-link","p-0","text-decoration-none",3,"click","ngbTooltip","openDelay"],["aria-hidden","true",1,"fas","fa-sliders","primary-text","fa-lg","fa-fade","fa-spin-slow","ms-3"],["aria-hidden","true",1,"icon-button","fas","fa-bridge","primary-text","fa-lg","fa-fade","fa-spin-slow","ms-3"],["aria-hidden","true",1,"icon-button","fas","fa-qrcode","primary-text","fa-lg","fa-fade","fa-spin-slow","ms-3"],["aria-hidden","true",1,"fas","fa-lg","ms-3"],["aria-hidden","true",1,"fas","fa-heart","fa-lg","me-1","pink-text"],["aria-hidden","true",1,"fas","fa-heart","fa-lg","me-1","heart-muted"],["aria-hidden","true",1,"far","fa-circle-dot","fa-lg","me-1"],["aria-hidden","true",1,"far","fa-circle-check","fa-lg","me-1"],["type","button",1,"card-link","btn","btn-link","p-0","text-decoration-none","red-text"],["ngbDropdown","","placement","left bottom-end top-end",1,"d-inline-block","ms-3","mt-auto"],["aria-hidden","true",1,"fas","fa-lg","fa-power-off","ms-3"],["type","button",1,"card-link","btn","btn-link","p-0","text-decoration-none","red-text",3,"click"],["aria-hidden","true","container","body","triggers","hover",1,"far","fa-pause-circle","fa-lg",3,"ngbTooltip","openDelay"],["aria-hidden","true",1,"far","fa-arrow-alt-circle-down","fa-lg"],["type","button","ngbDropdownToggle","",1,"card-link","btn","btn-link","p-0","text-decoration-none","mt-auto","dropdown-toggle-no-outline"],["aria-hidden","true",1,"fa-solid","fa-ellipsis-v","fa-lg"],["ngbDropdownMenu",""],["type","button","ngbDropdownItem","",3,"click"],["aria-hidden","true",1,"fas","fa-sliders"],["type","button","ngbDropdownItem",""],[1,"dropdown-divider"],["ngbDropdownItem","","rel","noopener noreferrer","target","_blank",3,"href"],["aria-hidden","true",1,"fas","fa-wave-square"],["aria-hidden","true",1,"fas","fa-code-compare"],["aria-hidden","true",1,"fas","fa-code"],["aria-hidden","true",1,"far","fa-circle-pause"],["aria-hidden","true",1,"far","fa-circle-play"],["aria-hidden","true",1,"fas","fa-trash"],["aria-hidden","true",1,"fas","fa-bridge"],["aria-hidden","true",1,"fas","fa-broom"],["aria-hidden","true",1,"icon-button","fas","fa-power-off"],["aria-hidden","true",1,"fas","fa-stop"],["aria-hidden","true",1,"fas","fa-play"],["aria-hidden","true",1,"fas","fa-qrcode"],["aria-hidden","true",1,"icon-button","fas","fa-bridge"],["aria-hidden","true",1,"icon-button","far","fa-circle-question"]],template:function(o,t){o&1&&(La(0,"div",0)(1,"div",1)(2,"div",2)(3,"img",3),rc("error",function(){return t.handleIconError()}),Rd()(),La(4,"div",4)(5,"div",5)(6,"div",6)(7,"div",7)(8,"h5",8),At(9),Rd(),Re(10,Ii,8,7,"div",9),Rd(),La(11,"p",10)(12,"button",11),f_(13,"translate"),rc("click",function(){return t.pluginInfoModal(t.plugin())}),dy(14,"i",12),La(15,"span",13),At(16),Rd()()(),La(17,"p",14),Re(18,Mi,5,7,"button",15),Re(19,Vi,3,1,"span",16),Rd(),La(20,"div",7)(21,"p",17),Re(22,$i,5,2,"span"),Re(23,Ai,2,1),Rd(),Re(24,at,5,4,"div",9),Rd()()()()()()),o&2&&(ie(3),ly("src",t.plugin().icon,Wg),ie(6),Ny(t.plugin().displayName),ie(),Oe(t.isAdmin?10:-1),ie(2),vr("aria-label",h_(13,16,"plugins.button_info")),ie(2),Cy("purple-text",t.plugin().isHbScoped)("green-text",!t.plugin().isHbScoped&&(t.plugin().verifiedPlugin||t.plugin().verifiedPlusPlugin))("orange-text",!t.plugin().isHbScoped&&!t.plugin().verifiedPlugin&&!t.plugin().verifiedPlusPlugin),ie(2),Ny(t.plugin().name),ie(2),Oe((t.plugin().verifiedPlugin||t.plugin().verifiedPlusPlugin)&&t.plugin().funding?18:-1),ie(),Oe((t.plugin().verifiedPlugin||t.plugin().verifiedPlusPlugin)&&t.plugin().funding?-1:19),ie(3),Oe(t.plugin().publicPackage&&!t.plugin().installedVersion?22:-1),ie(),Oe(t.plugin().installedVersion?23:-1),ie(),Oe(t.isAdmin?24:-1));},dependencies:[Y,U,re,$$1,se,Q,AS,K8],styles:[".plugin-content[_ngcontent-%COMP%]{min-width:calc(100% - 80px)}.card-link[_ngcontent-%COMP%]{font-weight:inherit}.heart-muted[_ngcontent-%COMP%]{opacity:.5}.dropdown-toggle-no-outline[_ngcontent-%COMP%]{outline:none}"]})}return i})();var ni=(()=>{class i{$activeModal=g(fe);dismissModal(){this.$activeModal.dismiss("Dismiss");}static \u0275fac=function(o){return new(o||i)};static \u0275cmp=Ja({type:i,selectors:[["app-plugin-support"]],decls:28,vars:22,consts:[["role","dialog","aria-modal","true",1,"modal-content"],[1,"modal-header"],["id","plugin-support-modal-title",1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click"],[1,"modal-body"],[1,"text-center","mb-3"],[1,"far","fa-circle-question","primary-text","icon-xl"],[1,"mb-0"],[3,"innerHTML"],[1,"modal-footer","justify-content-between"],[1,"text-start"],[1,"text-center"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],[1,"text-end"]],template:function(o,t){o&1&&(La(0,"div",0)(1,"form")(2,"div",1)(3,"h5",2),At(4),f_(5,"translate"),Rd(),La(6,"button",3),f_(7,"translate"),rc("click",function(){return t.dismissModal()}),Rd()(),La(8,"div",4)(9,"div",5),dy(10,"i",6),Rd(),La(11,"ul",7),dy(12,"li",8),f_(13,"translate"),dy(14,"li",8),f_(15,"translate"),dy(16,"li",8),f_(17,"translate"),dy(18,"li",8),f_(19,"translate"),Rd(),dy(20,"app-support-banner"),Rd(),La(21,"div",9),dy(22,"div",10),La(23,"div",11)(24,"button",12),rc("click",function(){return t.dismissModal()}),At(25),f_(26,"translate"),Rd()(),dy(27,"div",13),Rd()()()),o&2&&(vr("aria-labelledby","plugin-support-modal-title"),ie(4),Ny(h_(5,8,"support.title")),ie(2),vr("aria-label",h_(7,10,"form.button_close")),ie(6),ly("innerHTML",h_(13,12,"plugins.support.list_1"),Ha),ie(2),ly("innerHTML",h_(15,14,"plugins.support.list_2"),Ha),ie(2),ly("innerHTML",h_(17,16,"plugins.support.list_3"),Ha),ie(2),ly("innerHTML",h_(19,18,"plugins.support.list_4"),Ha),ie(7),Rt(" ",h_(26,20,"form.button_close")," "));},dependencies:[y,K8],encapsulation:2})}return i})();var lt=["searchInput"];function rt(i,p){i&1&&dy(0,"app-spinner");}function st(i,p){if(i&1){let e=nc();La(0,"button",7),f_(1,"translate"),f_(2,"translate"),rc("click",function(){Go(e);let t=ye();return Wo(t.showSearch())}),dy(3,"i",8),Rd(),La(4,"button",9),f_(5,"translate"),f_(6,"translate"),rc("click",function(){Go(e);let t=ye();return Wo(t.showStats())}),dy(7,"i",8),Rd();}if(i&2){let e=ye();ly("openDelay",150)("ngbTooltip",h_(1,12,"form.search")),vr("aria-label",h_(2,14,"form.search"))("aria-expanded",e.showSearchBar()),ie(3),Qt(`fas fa-search${e.showSearchBar()?" primary-text":""}`),ie(),ly("openDelay",150)("ngbTooltip",h_(5,16,"plugins.stats")),vr("aria-label",h_(6,18,"plugins.stats"))("aria-expanded",e.tab()==="stats"),ie(3),Qt(`fas fa-sliders${e.tab()==="stats"?" primary-text":""}`);}}function dt(i,p){if(i&1){let e=nc();La(0,"button",16),f_(1,"translate"),rc("click",function(){Go(e);let t=ye(3);return Wo(t.onClearSearch())}),dy(2,"i",17),Rd();}i&2&&vr("aria-label",h_(1,1,"form.button_clear"));}function pt(i,p){if(i&1){let e=nc();La(0,"div",10)(1,"div",12)(2,"form",13),rc("ngSubmit",function(){Go(e);let t=ye(2);return Wo(t.onSubmit(t.form))}),dy(3,"input",14,0),f_(5,"translate"),f_(6,"translate"),KC(),Re(7,dt,3,3,"button",15),Rd()()();}if(i&2){let e=ye(2);ie(2),ly("formGroup",e.form),ie(),ly("placeholder",h_(5,4,"plugins.placeholder_search_plugin")),vr("aria-label",h_(6,6,"plugins.placeholder_search_plugin")),JC(),ie(4),Oe(e.form.get("query")?.value?7:-1);}}function ct(i,p){if(i&1&&(La(0,"div",18),dy(1,"app-plugin-card",20),Rd()),i&2){let e=p.$implicit,o=ye(3);ie(),ly("plugin",e)("childBridges",o.getPluginChildBridges(e));}}function ut(i,p){if(i&1&&(La(0,"div",19),dy(1,"i",21),La(2,"p"),At(3),f_(4,"translate"),Rd()()),i&2){let e=ye(3);ie(),Cy("fa-magnifying-glass",!e.showExitButton())("fa-exclamation-circle",e.showExitButton()),ie(2),Rt(" ",h_(4,5,e.showExitButton()?"plugins.placeholder_search_none":"plugins.placeholder_search_first")," ");}}function mt(i,p){if(i&1&&(La(0,"div",11),dT(1,ct,2,2,"div",18,lT),Re(3,ut,5,7,"div",19),Rd()),i&2){let e=ye(2);ie(),fT(e.installedPlugins()),ie(2),Oe(e.installedPlugins().length===0&&!e.loading()&&!e.mainError()?3:-1);}}function gt(i,p){if(i&1&&(Re(0,pt,8,8,"div",10),Re(1,mt,4,1,"div",11)),i&2){let e=ye();Oe(e.showSearchBar()?0:-1),ie(),Oe(e.loading()?-1:1);}}function _t(i,p){i&1&&(La(0,"div",22)(1,"div",23)(2,"code"),At(3,"https://developers.homebridge.io/analytics "),La(4,"a",24),f_(5,"translate"),dy(6,"i",25),Rd()()(),La(7,"div",26),At(8),f_(9,"translate"),Rd()(),dy(10,"iframe",27)),i&2&&(ie(4),vr("aria-label",h_(5,2,"plugins.stats_open_in_new_tab")),ie(4),Ny(h_(9,4,"plugins.stats_note")));}var qn=(()=>{class i{destroyRef=g(ne);$api=g(I3);$auth=g(ae);$modal=g(si$1);$plugin=g(Me);$pluginsCache=g(We);$pairingsCache=g(v);$router=g(le);$settings=g(zt);$toastr=g(M0);$translate=g(bf);$ws=g(dr);searchInput=BH("searchInput");mainError=W(false);loading=W(true);tab=W("main");installedPlugins=W([]);childBridges=W([]);showSearchBar=W(false);showExitButton=W(false);isSearchMode=W(false);io;inFlightLoad;isAdmin=this.$auth.user.admin;form=new $({query:new Se("")});ngOnInit(){let e=this.$translate.instant("menu.label_plugins");this.$settings.setPageTitle(e),this.$plugin.onPluginListRefresh.pipe(An(this.destroyRef)).subscribe(()=>{this.loadInstalledPlugins(),this.getChildBridgeMetadata();}),this.io=this.$ws.connectToNamespace("child-bridges"),this.io.connected.pipe(An(this.destroyRef)).subscribe(()=>{this.initialize();}),this.io.socket.on("child-bridge-status-update",o=>{let t=this.childBridges().find(f=>f.username===o.username);t?(Object.assign(t,o),this.childBridges.set([...this.childBridges()])):this.childBridges.update(f=>[...f,o]);}),this.$router.events.pipe(An(this.destroyRef)).subscribe(o=>{o instanceof k&&this.loadInstalledPlugins();});}search(){return E(this,null,function*(){this.loading.set(true),this.installedPlugins.set([]),this.showExitButton.set(true);try{let e=yield this.$api.get(`/plugins/search/${encodeURIComponent(this.form.value.query)}`),o=new Set,t=new Map(e.map(k=>[k.name,k])),f=e.reduce((k,I)=>{if(I.name==="homebridge-config-ui-x"||o.has(I.name))return k;if(I.newHbScope){let O=I.newHbScope.to,h=t.has(O);(I.installedVersion||!h)&&(o.add(O),k.push(I));}else k.push(I);return k},[]);yield this.appendMetaInfo(f),this.installedPlugins.set(f);}catch(e){this.isSearchMode.set(false),console.error(e);let o=e instanceof Error?e.message:this.$translate.instant("plugins.toast_failed_to_search_plugins");this.$toastr.error(o,this.$translate.instant("toast.title_error")),this.loadInstalledPlugins();}finally{this.loading.set(false);}})}onClearSearch(){this.form.setValue({query:""}),this.showExitButton.set(false),this.isSearchMode()&&(this.isSearchMode.set(false),this.loadInstalledPlugins());}onSubmit({value:e}){e.query?.length?(this.isSearchMode.set(true),this.search()):(this.isSearchMode()&&(this.isSearchMode.set(false),this.loadInstalledPlugins()),this.showSearchBar.set(false));}showSearch(){this.showSearchBar()?(this.showSearchBar.set(false),this.isSearchMode()&&(this.isSearchMode.set(false),this.form.setValue({query:""}),this.loadInstalledPlugins())):(window.document.querySelector("body")?.classList.remove("bg-black"),this.tab.set("main"),this.showSearchBar.set(true),setTimeout(()=>this.searchInput()?.nativeElement.focus(),0));}showStats(){if(this.tab()==="stats"){if(this.$settings.actualLightingMode!=="light"){window.document.querySelector("body").classList.remove("bg-black"),this.tab.set("main");return}window.document.querySelector("body").classList.remove("light-mode");let e=document.getElementById("stats-header"),o=document.getElementById("stats-iframe");e&&o&&(e.classList.add("fade-out"),o.classList.add("fade-out")),setTimeout(()=>{window.document.querySelector("body").classList.remove("bg-black"),setTimeout(()=>{this.tab.set("main");},250);},250);}else window.document.querySelector("body").classList.add("bg-black"),this.tab.set("stats"),this.showSearchBar.set(false),this.$settings.actualLightingMode==="light"&&(window.document.querySelector("body").classList.add("light-mode"),setTimeout(()=>{let e=document.getElementById("stats-header"),o=document.getElementById("stats-iframe");e&&o&&(e.classList.add("light-mode"),o.classList.add("light-mode"));},0));}openSupport(){this.$modal.open(ni,{size:"lg",backdrop:"static"});}canDeactivate(e){if(this.tab()!=="stats")return true;if(this.$settings.actualLightingMode!=="light")return window.document.querySelector("body").classList.remove("bg-black"),Promise.resolve(true);window.document.querySelector("body").classList.remove("light-mode");let o=e&&(e.includes("/platform-tools/terminal")||e.includes("/logs"));return new Promise(t=>{let f=document.getElementById("stats-header"),k=document.getElementById("stats-iframe");f&&k&&(f.classList.add("fade-out"),k.classList.add("fade-out")),o?setTimeout(()=>{t(true);},250):(setTimeout(()=>{window.document.querySelector("body").classList.remove("bg-black");},250),setTimeout(()=>{t(true);},500));})}ngOnDestroy(){window.document.querySelector("body").classList.remove("light-mode"),this.io?.end?.();}getPluginChildBridges(e){return this.childBridges().filter(o=>o.plugin===e.name)}initialize(){return E(this,null,function*(){this.getChildBridgeMetadata(),this.io.socket.emit("monitor-child-bridge-status"),yield this.loadInstalledPlugins(),this.installedPlugins().length||this.showSearch();let{action:e,plugin:o}=this.$router.parseUrl(this.$router.url).queryParams;if(e){let t=this.installedPlugins().find(f=>f.name===o);e==="just-installed"&&t&&(t.isConfigured?this.$modal.open(oe,{size:"lg",backdrop:"static"}):this.$plugin.settings(t)),this.$router.navigate([],{queryParams:{},replaceUrl:true,queryParamsHandling:""});}})}loadInstalledPlugins(){return this.inFlightLoad?this.inFlightLoad:(this.inFlightLoad=this.runLoadInstalledPlugins().finally(()=>{this.inFlightLoad=void 0;}),this.inFlightLoad)}runLoadInstalledPlugins(){return E(this,null,function*(){this.form.setValue({query:""}),this.showExitButton.set(false),this.loading.set(true),this.installedPlugins.set([]),this.mainError.set(false);try{let o=(yield this.$pluginsCache.get()).filter(f=>f.name!=="homebridge-config-ui-x");yield this.appendMetaInfo(o);let t=this.sortPlugins(o);return this.installedPlugins.set(t),t}catch(e){console.error(e);let o=e instanceof Error?e.message:this.$translate.instant("plugins.toast_failed_to_load_plugins");this.$toastr.error(o,this.$translate.instant("toast.title_error")),this.mainError.set(true);return}finally{this.loading.set(false);}})}sortPlugins(e){let o=this.$settings.env.recommendChildBridges,t=this.$settings.env.plugins?.hideChildBridgeSetupFor??[],f=k=>o&&(k.hasChildBridges||t.includes(k.name));return [...e].sort((k,I)=>{let O=(k.updateAvailable?1e3:0)+(k.newHbScope?100:0)+(k.disabled?-10:0)+(k.isConfigured?-20:0)+(k.hasChildBridgesUnpaired?5:0)+(f(k)?-1:0),h=(I.updateAvailable?1e3:0)+(I.newHbScope?100:0)+(I.disabled?-10:0)+(I.isConfigured?-20:0)+(I.hasChildBridgesUnpaired?5:0)+(f(I)?-1:0);return O!==h?h-O:k.name.localeCompare(I.name)})}appendMetaInfo(e){return E(this,null,function*(){if(!this.isAdmin)return;let o=e.some(h=>h.installedVersion&&h.config===void 0),t=this.$settings.isFeatureEnabled("externalAccessoriesAttribution"),[f,k]=yield Promise.all([o?this.$pluginsCache.get():Promise.resolve(null),t?this.$pairingsCache.get().catch(()=>[]):Promise.resolve([])]),I=f?new Map(f.map(h=>[h.name,h.config??[]])):null,O=new Set;for(let h of k??[])typeof h?._plugin=="string"&&(h._isExternal===true||h._matterOnly===true)&&O.add(h._plugin);for(let h of e)if(h.installedVersion)try{let W=h.config??I?.get(h.name)??[];h.isConfigured=W.length>0,h.isConfiguredDynamicPlatform=h.isConfigured&&Object.hasOwn(W[0],"platform"),h.recommendChildBridge=h.isConfigured&&this.$settings.env.recommendChildBridges&&!["homebridge","homebridge-config-ui-x"].includes(h.name)&&!this.$settings.env.plugins?.hideChildBridgeSetupFor?.includes(h.name),h.hasChildBridges=h.isConfigured&&W.some(H=>H._bridge&&H._bridge.username),h.hasExternalAccessories=t&&O.has(h.name);let oi=this.getPluginChildBridges(h);h.hasChildBridgesUnpaired=oi.some(H=>{let ai=H.paired===!1&&!this.isBridgeAlertHidden(H.username,"hap"),li=H.matterConfig&&H.matterCommissioned===!1&&!this.isBridgeAlertHidden(H.username,"matter");return ai||li}),this.$settings.env.plugins?.hideUpdatesFor?.includes(h.name)&&(h.updateAvailable=!1);}catch(W){console.error(`Failed to derive metadata for ${h.name}:`,W),h.isConfigured=true,h.hasChildBridges=true,h.hasExternalAccessories=false;}})}getChildBridgeMetadata(){this.io.request("get-homebridge-child-bridge-status").subscribe(e=>{this.childBridges.set(e);});}isBridgeAlertHidden(e,o){let t=this.$settings.env.bridges?.find(f=>f.username.toUpperCase()===e.toUpperCase());return t?o==="hap"?!!t.hideHapAlert:!!t.hideMatterAlert:false}static \u0275fac=function(o){return new(o||i)};static \u0275cmp=Ja({type:i,selectors:[["app-plugins"]],viewQuery:function(o,t){o&1&&Ey(t.searchInput,lt,5),o&2&&ST();},decls:13,vars:9,consts:[["searchInput",""],[1,"row","mb-3"],[1,"col-6"],[1,"primary-text","m-0"],[1,"col-6","text-end"],["type","button",1,"btn","btn-elegant","my-0","me-0",3,"click"],["aria-hidden","true",1,"far","fa-circle-question"],["type","button","container","body","placement","bottom","triggers","hover","aria-controls","plugin-search-region",1,"btn","btn-elegant","my-0","me-2",3,"click","openDelay","ngbTooltip"],["aria-hidden","true"],["type","button","container","body","placement","bottom","triggers","hover","aria-controls","stats-header stats-iframe",1,"btn","btn-elegant","my-0","me-2","d-none","d-md-inline-block",3,"click","openDelay","ngbTooltip"],["id","plugin-search-region",1,"row"],[1,"d-flex","flex-wrap","justify-content-between"],[1,"col-md-12"],["novalidate","",3,"ngSubmit","formGroup"],["type","text","formControlName","query",1,"search-bar",3,"placeholder"],