UNPKG

homebridge-config-ui-x

Version:

A web based management, configuration and control platform for Homebridge.

2 lines (1 loc) • 49 kB
import{a as Oe,c as le}from"./chunk-KXWBSG5F.js";import"./chunk-4IBV7BRV.js";import"./chunk-ZJFU36MA.js";import"./chunk-RBTY27L3.js";import{a as F}from"./chunk-A2ANF3NM.js";import{a as Re}from"./chunk-I5W4KUW4.js";import{a as Ae}from"./chunk-CWNUGQTB.js";import{a as Ne}from"./chunk-HKSUEG7C.js";import"./chunk-JV663RTB.js";import"./chunk-NHCHC3LD.js";import{a as $e}from"./chunk-ZIPKQJZO.js";import"./chunk-M5NPMQ5Y.js";import{a as te}from"./chunk-GXCQWWJO.js";import{p as Me}from"./chunk-NAG4LCT2.js";import{a as De,c as j,f as Ve,j as oe}from"./chunk-CG4JSQF7.js";import"./chunk-B5QIREVT.js";import"./chunk-EP2NVMBU.js";import"./chunk-CUY6HWWM.js";import"./chunk-3AI6EKM7.js";import"./chunk-2KV2L7HE.js";import"./chunk-IKTVH6LN.js";import"./chunk-4G2XYXT5.js";import"./chunk-T43PZS3N.js";import"./chunk-7KZ77E2Z.js";import"./chunk-QLNGMKWW.js";import"./chunk-DYYSQPHA.js";import"./chunk-AIIMV7FR.js";import"./chunk-KNS7MZUM.js";import"./chunk-YAKFETOG.js";import"./chunk-3L64227F.js";import"./chunk-NVSGHRYE.js";import"./chunk-ZECOZYXL.js";import"./chunk-EJLAU4L4.js";import"./chunk-OIP5BJMA.js";import"./chunk-KWIPHOFZ.js";import"./chunk-F5JHUVM3.js";import"./chunk-YBQFZBC5.js";import"./chunk-KPZK4T3G.js";import"./chunk-MW7EO4UO.js";import"./chunk-M4XHMFKM.js";import{a as He,b as je,c as qe,d as Ue,e as ze}from"./chunk-L4FSQXFY.js";import{a as Le}from"./chunk-BHEY3G3X.js";import{a as ae}from"./chunk-YMS6PENN.js";import{s as L,t as ne}from"./chunk-YATM6BZO.js";import{b as be,e as ve}from"./chunk-ODMFCOQJ.js";import{a as se}from"./chunk-XPK2EQJA.js";import{c as ie}from"./chunk-2GN26TCR.js";import{C as Te,D as Ie,c as xe,e as ye,f as Pe,g as we,j as Se,m as Be,r as Ee,s as ke}from"./chunk-ORSKS7BY.js";import{b as ee}from"./chunk-4NRNA47I.js";import{C as z,D as I,F as Y,I as Z,h as Ce}from"./chunk-QCMOCU6Q.js";import{Ab as _,Ac as K,Cb as Q,Db as W,Dc as a,Eb as J,Ec as l,Fb as S,Fc as A,Gb as r,Hb as s,Ib as c,Jb as y,Kb as P,Lb as V,Lc as fe,Pc as re,Qc as he,Sb as w,Ta as D,Tb as U,Ua as N,Va as ue,Xb as f,Ya as o,Yb as O,Zb as m,aa as C,ea as pe,ec as ge,fc as _e,ga as v,ha as x,ic as $,jc as R,kc as d,lb as q,lc as b,ma as ce,mb as T,mc as h,n as de,sa as E,va as me,xb as B,zb as g,zc as X}from"./chunk-ZMC752RO.js";import"./chunk-HHSHX5JT.js";import"./chunk-3ZMAXAHP.js";import"./chunk-DHLHKSWH.js";import"./chunk-M7FRJSLH.js";import"./chunk-MHY7DWGU.js";import"./chunk-CNG3C27N.js";import{h as M}from"./chunk-B4AJQJMI.js";var Ke=t=>({pluginName:t}),Ye=(t,p)=>({setting:t,value:p});function Ze(t,p){t&1&&(r(0,"li"),d(1),a(2,"translate"),s(),r(3,"li"),d(4),a(5,"translate"),s()),t&2&&(o(),b(l(2,2,"plugins.manage.confirm_disable_platform_1")),o(3),b(l(5,4,"plugins.manage.confirm_disable_platform_2")))}function ei(t,p){t&1&&(r(0,"li"),d(1),a(2,"translate"),s(),r(3,"li"),d(4),a(5,"translate"),s()),t&2&&(o(),b(l(2,2,"plugins.manage.confirm_disable_accessory_1")),o(3),b(l(5,4,"plugins.manage.confirm_disable_accessory_2")))}function ii(t,p){if(t&1&&(r(0,"ul",15),c(1,"li",16),a(2,"translate"),r(3,"ul",17),g(4,Ze,6,6)(5,ei,6,6),s()()),t&2){let e=m(2);o(),S("innerHtml",A(2,2,"plugins.manage.confirm_disable_setting",K(5,Ye,e.keepOrphansName,e.keepOrphansValue)),D),o(3),_(e.keepOrphans?4:5)}}function ti(t,p){t&1&&(r(0,"ul",15)(1,"li"),d(2),a(3,"translate"),s(),r(4,"li"),d(5),a(6,"translate"),s()()),t&2&&(o(2),b(l(3,2,"plugins.manage.confirm_disable_accessory_1")),o(3),b(l(6,4,"plugins.manage.confirm_disable_accessory_2")))}function ni(t,p){if(t&1&&g(0,ii,6,8,"ul",15)(1,ti,7,6,"ul",15),t&2){let e=m();_(e.isConfiguredDynamicPlatform?0:1)}}var Fe=(()=>{class t{$activeModal=C(L);$translate=C(z);modalData=C(oe);pluginName=this.modalData.pluginName;isConfigured=this.modalData.isConfigured??!1;isConfiguredDynamicPlatform=this.modalData.isConfiguredDynamicPlatform??!1;keepOrphans=this.modalData.keepOrphans??!1;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(n){return new(n||t)};static \u0275cmp=T({type:t,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(n,i){n&1&&(r(0,"div",0)(1,"div",1)(2,"h5",2),d(3),s(),r(4,"button",3),a(5,"translate"),f("click",function(){return i.dismissModal()}),s()(),r(6,"div",4)(7,"div",5),c(8,"i",6),s(),g(9,ni,2,1),r(10,"ngb-alert",7)(11,"p",8),d(12),a(13,"translate"),s()()(),r(14,"div",9)(15,"div",10)(16,"button",11),a(17,"translate"),f("click",function(){return i.dismissModal()}),d(18),a(19,"translate"),s()(),c(20,"div",12),r(21,"div",13)(22,"button",14),f("click",function(){return i.closeModal()}),d(23),a(24,"translate"),s()()()()),n&2&&(o(3),b(i.pluginName),o(),B("aria-label",l(5,8,"form.button_close")),o(5),_(i.isConfigured?9:-1),o(),S("dismissible",!1),o(2),h(" ",A(13,10,"plugins.manage.confirm_disable",X(19,Ke,i.pluginName))," "),o(4),B("aria-label",l(17,13,"form.button_close")),o(2),h(" ",l(19,15,"form.button_close")," "),o(5),h(" ",l(24,17,"plugins.manage.disable")," "))},dependencies:[Le,I],encapsulation:2,changeDetection:0})}return t})();var oi=t=>({author:t});function ai(t,p){if(t&1&&(y(0,"li",9),V(1,"i"),y(2,"a",15),d(3),P()()),t&2){let e=p.$implicit,n=m();o(),R(`me-3 my-4 primary-text fa-2xl ${n.getIconClass(e.type)}`),o(),U("href",e.url,N),o(),b(e.url)}}var Ge=(()=>{class t{$activeModal=C(L);modalData=C(j);plugin=this.modalData.plugin;fundingOptions=E([]);authorName=E("");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 n=e.map(i=>{if(typeof i=="string")return{type:"other",url:i};if(typeof i=="object")return{type:i.type||"other",url:i.url}}).filter(Boolean);this.fundingOptions.set(n)}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";default:return"fas fa-link"}}dismissModal(){this.$activeModal.dismiss("Dismiss")}static \u0275fac=function(n){return new(n||t)};static \u0275cmp=T({type:t,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(n,i){n&1&&(y(0,"div",0)(1,"div",1)(2,"h5",2),d(3),a(4,"translate"),P(),y(5,"button",3),a(6,"translate"),O("click",function(){return i.dismissModal()}),P()(),y(7,"div",4)(8,"div",5),V(9,"i",6),P(),y(10,"ul",7)(11,"li"),d(12),a(13,"translate"),P(),y(14,"li"),d(15),a(16,"translate"),P()(),y(17,"ul",8),W(18,ai,4,4,"li",9,Q),P()(),y(20,"div",10),V(21,"div",11),y(22,"div",12)(23,"button",13),a(24,"translate"),O("click",function(){return i.dismissModal()}),d(25),a(26,"translate"),P()(),V(27,"div",14),P()()),n&2&&(o(3),b(A(4,6,"plugins.donate.tile_donate_to",X(19,oi,`@${i.authorName()}`))),o(2),B("aria-label",l(6,9,"form.button_close")),o(7),b(l(13,11,"plugins.donate.message_1")),o(3),b(l(16,13,"plugins.donate.message_2")),o(3),J(i.fundingOptions()),o(5),B("aria-label",l(24,15,"form.button_close")),o(2),h(" ",l(26,17,"form.button_close")," "))},dependencies:[I],styles:[".text-break-all[_ngcontent-%COMP%]{word-break:break-all}"],changeDetection:0})}return t})();var li=(t,p)=>({scopedLink:t,verifiedLink:p});function ri(t,p){t&1&&(y(0,"h6",18),d(1),a(2,"translate"),P(),y(3,"p",19),d(4),a(5,"translate"),P(),y(6,"p",19),d(7),a(8,"translate"),P()),t&2&&(o(),b(l(2,3,"plugins.manage.scoped_subtitle")),o(3),b(l(5,5,"plugins.manage.scoped_message")),o(3),b(l(8,7,"plugins.manage.verified_message")))}function si(t,p){t&1&&(y(0,"h6",18),d(1),a(2,"translate"),P(),y(3,"p",19),d(4),a(5,"translate"),P()),t&2&&(o(),b(l(2,2,"plugins.manage.verified_subtitle")),o(3),b(l(5,4,"plugins.manage.verified_message")))}function di(t,p){t&1&&(y(0,"h6",18),d(1),a(2,"translate"),P(),y(3,"p",19),d(4),a(5,"translate"),P()),t&2&&(o(),b(l(2,2,"plugins.manage.unverified_subtitle")),o(3),b(l(5,4,"plugins.manage.unverified_message")))}function pi(t,p){if(t&1){let e=w();y(0,"button",20),O("click",function(){v(e);let i=m();return x(i.dismissModal())}),d(1),a(2,"translate"),P()}t&2&&(o(),h(" ",l(2,1,"form.button_close")," "))}function ci(t,p){if(t&1){let e=w();y(0,"button",20),O("click",function(){v(e);let i=m();return x(i.dismissModal())}),d(1),a(2,"translate"),P()}t&2&&(o(),h(" ",l(2,1,"form.button_close")," "))}function mi(t,p){if(t&1&&(y(0,"a",17),d(1),a(2,"translate"),V(3,"i",21),P()),t&2){let e=m();U("href",e.plugin.links.homepage||e.plugin.links.npm,N),o(),h(" ",l(2,2,"plugins.button_homepage")," ")}}var Qe=(()=>{class t{$activeModal=C(L);modalData=C(j);plugin=this.modalData.plugin;iconError=E(!1);pluginIcon=fe(()=>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(!0)}dismissModal(){this.$activeModal.dismiss("Dismiss")}static \u0275fac=function(n){return new(n||t)};static \u0275cmp=T({type:t,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"],[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"],[1,"fas","fa-external-link-alt"]],template:function(n,i){n&1&&(y(0,"div",0)(1,"div",1)(2,"h5",2),d(3),a(4,"translate"),P(),y(5,"button",3),a(6,"translate"),O("click",function(){return i.dismissModal()}),P()(),y(7,"div",4)(8,"img",5),O("error",function(){return i.handleIconError()}),P(),y(9,"h4",6),d(10),P(),y(11,"p",7),d(12),P(),y(13,"p",8),d(14),P(),y(15,"p",9),d(16),P(),V(17,"i",10)(18,"i",10)(19,"i",10),g(20,ri,9,9),g(21,si,6,6),g(22,di,6,6),V(23,"p",11),a(24,"translate"),P(),y(25,"div",12)(26,"div",13),g(27,pi,3,3,"button",14),P(),y(28,"div",15),g(29,ci,3,3,"button",14),P(),y(30,"div",16),g(31,mi,4,4,"a",17),P()()()),n&2&&(o(3),b(l(4,32,"plugins.manage.information")),o(2),B("aria-label",l(6,34,"form.button_close")),o(3),U("src",i.pluginIcon(),N),o(2),b(i.plugin.displayName),o(2),b(i.plugin.name),o(2),h("@",i.plugin.author),o(2),b(i.plugin.description),o(),$("orange-text",!i.plugin.verifiedPlugin&&!i.plugin.verifiedPlusPlugin)("grey-text",i.plugin.verifiedPlugin||i.plugin.verifiedPlusPlugin)("opacity-muted",i.plugin.verifiedPlugin||i.plugin.verifiedPlusPlugin),o(),$("green-text",!i.plugin.isHbScoped&&(i.plugin.verifiedPlugin||i.plugin.verifiedPlusPlugin))("grey-text",i.plugin.isHbScoped||!i.plugin.verifiedPlugin&&!i.plugin.verifiedPlusPlugin)("opacity-muted",i.plugin.isHbScoped||!i.plugin.verifiedPlugin&&!i.plugin.verifiedPlusPlugin),o(),$("purple-text",i.plugin.isHbScoped)("grey-text",!i.plugin.isHbScoped)("opacity-muted",!i.plugin.isHbScoped),o(),_(i.plugin.isHbScoped?20:-1),o(),_(!i.plugin.isHbScoped&&(i.plugin.verifiedPlugin||i.plugin.verifiedPlusPlugin)?21:-1),o(),_(!i.plugin.verifiedPlugin&&!i.plugin.verifiedPlusPlugin?22:-1),o(),U("innerHTML",A(24,36,"plugins.manage.more_info",K(39,li,i.linkScoped,i.linkVerified)),D),o(4),_(i.plugin.links.homepage||i.plugin.links.npm?27:-1),o(2),_(!i.plugin.links.homepage&&!i.plugin.links.npm?29:-1),o(2),_(i.plugin.links.homepage||i.plugin.links.npm?31:-1))},dependencies:[I],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}"],changeDetection:0})}return t})();function ui(t,p){if(t&1){let e=w();r(0,"a",21),a(1,"translate"),a(2,"translate"),f("click",function(){v(e);let i=m(2);return x(i.checkAndUpdatePlugin())}),c(3,"i",22),s()}t&2&&(S("openDelay",150)("ngbTooltip",l(1,3,"plugins.button_update")),B("aria-label",l(2,5,"plugins.button_update")))}function gi(t,p){if(t&1){let e=w();r(0,"a",21),a(1,"translate"),a(2,"translate"),f("click",function(){v(e);let i=m(2);return x(i.switchToScoped())}),c(3,"i",23),s()}t&2&&(S("openDelay",150)("ngbTooltip",l(1,3,"plugins.manage.scoped.switch")),B("aria-label",l(2,5,"plugins.manage.scoped.switch")))}function _i(t,p){if(t&1){let e=w();r(0,"a",24),a(1,"translate"),a(2,"translate"),f("click",function(){v(e);let i=m(2);return x(i.openSettings())}),c(3,"i",25),s()}t&2&&(S("ngbTooltip",l(1,3,"plugins.button_set_up"))("openDelay",150),B("aria-label",l(2,5,"plugins.button_set_up")))}function fi(t,p){if(t&1){let e=w();r(0,"a",24),a(1,"translate"),a(2,"translate"),f("click",function(){v(e);let i=m(2);return x(i.openBridgeSettings())}),c(3,"i",26),s()}t&2&&(S("ngbTooltip",l(1,3,"child_bridge.setup"))("openDelay",150),B("aria-label",l(2,5,"child_bridge.setup")))}function hi(t,p){if(t&1){let e=w();r(0,"a",24),a(1,"translate"),a(2,"translate"),f("click",function(){v(e);let i=m(2);return x(i.openBridgeSettings())}),c(3,"i",27),s()}t&2&&(S("ngbTooltip",l(1,3,"child_bridge.bridge_connect"))("openDelay",150),B("aria-label",l(2,5,"child_bridge.bridge_connect")))}function Ci(t,p){if(t&1&&c(0,"i",28),t&2){let e=m(2);$("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 bi(t,p){if(t&1&&(r(0,"div",9),g(1,ui,4,7,"a",17),g(2,gi,4,7,"a",17),g(3,_i,4,7,"a",18),g(4,fi,4,7,"a",18),g(5,hi,4,7,"a",18),c(6,"i",19),g(7,Ci,1,8,"i",20),s()),t&2){let e,n=m();o(),_(n.plugin().installedVersion&&n.plugin().updateAvailable&&!n.childBridgeRestartInProgress()?1:-1),o(),_(n.plugin().installedVersion&&((e=n.plugin().newHbScope)==null?null:e.switch)===n.plugin().installedVersion&&!n.childBridgeRestartInProgress()?2:-1),o(),_(n.plugin().installedVersion&&(!n.plugin().newHbScope||n.plugin().newHbScope.switch!==n.plugin().installedVersion)&&!n.plugin().updateAvailable&&!n.plugin().isConfigured&&!n.childBridgeRestartInProgress()&&!n.plugin().disabled?3:-1),o(),_(n.plugin().installedVersion&&(!n.plugin().newHbScope||n.plugin().newHbScope.switch!==n.plugin().installedVersion)&&!n.plugin().updateAvailable&&n.plugin().isConfigured&&!n.plugin().hasChildBridges&&!n.plugin().disabled&&n.plugin().recommendChildBridge&&!n.childBridgeRestartInProgress()?4:-1),o(),_(n.plugin().installedVersion&&(!n.plugin().newHbScope||n.plugin().newHbScope.switch!==n.plugin().installedVersion)&&!n.plugin().updateAvailable&&n.plugin().isConfigured&&n.plugin().hasChildBridges&&!n.childBridgeRestartInProgress()&&n.plugin().hasChildBridgesUnpaired&&n.childBridgeStatus()==="ok"&&!n.plugin().disabled?5:-1),o(),S("hidden",!n.childBridgeRestartInProgress()),o(),_(n.plugin().installedVersion&&(!n.plugin().newHbScope||n.plugin().newHbScope.switch!==n.plugin().installedVersion)&&!n.plugin().updateAvailable&&n.plugin().isConfigured&&n.plugin().hasChildBridges&&!n.childBridgeRestartInProgress()&&!n.plugin().hasChildBridgesUnpaired&&n.childBridgeStatus()!=="ok"&&!n.plugin().disabled?7:-1)}}function vi(t,p){if(t&1){let e=w();r(0,"a",11),f("click",function(){v(e);let i=m();return x(i.openFundingModal(i.plugin()))}),c(1,"i",29),r(2,"span",13),d(3),s()()}if(t&2){let e=m();o(3),h("@",e.plugin().author)}}function xi(t,p){if(t&1&&(r(0,"span",13),c(1,"i",30),d(2),s()),t&2){let e=m();o(2),h("@",e.plugin().author," ")}}function yi(t,p){if(t&1&&(r(0,"span"),d(1),a(2,"date"),s()),t&2){let e=m(2);o(),h("(",A(2,1,e.plugin().lastUpdated,"yyyy-MM-dd"),")")}}function Pi(t,p){if(t&1&&(r(0,"span"),c(1,"i",31),r(2,"span",13),d(3),g(4,yi,3,4,"span"),s()()),t&2){let e=m();o(3),h("v",e.plugin().latestVersion," "),o(),_(e.plugin().lastUpdated?4:-1)}}function wi(t,p){if(t&1&&(c(0,"i",32),d(1)),t&2){let e=m();o(),h("v",e.plugin().installedVersion," ")}}function Si(t,p){if(t&1){let e=w();r(0,"a",21),a(1,"translate"),f("click",function(){v(e);let i=m(2);return x(i.doChildBridgeAction("restart"))}),c(2,"i",36),s()}if(t&2){let e=m(2);S("openDelay",150)("ngbTooltip",l(1,2,e.setChildBridges().length>1?"child_bridge.restart_plural":"child_bridge.restart"))}}function Bi(t,p){if(t&1){let e=w();r(0,"a",37),f("click",function(){v(e);let i=m(2);return x(i.enablePlugin(i.plugin()))}),c(1,"i",38),a(2,"translate"),s()}t&2&&(o(),S("ngbTooltip",l(2,2,"common.labels.disabled"))("openDelay",150))}function Ei(t,p){if(t&1){let e=w();r(0,"a",39),f("click",function(){v(e);let i=m(2);return x(i.installAlternateVersion())}),c(1,"i",40),s()}}function ki(t,p){if(t&1){let e=w();r(0,"button",44),f("click",function(){v(e);let i=m(3);return x(i.viewPluginLog())}),c(1,"i",49),d(2),a(3,"translate"),s()}t&2&&(o(2),h(" ",l(3,1,"plugins.manage.plugin_logs")," "))}function Ti(t,p){if(t&1){let e=w();r(0,"button",44),f("click",function(){v(e);let i=m(3);return x(i.installAlternateVersion())}),c(1,"i",50),d(2),a(3,"translate"),s()}t&2&&(o(2),h(" ",l(3,1,"plugins.manage.manage_version")," "))}function Ii(t,p){if(t&1){let e=w();r(0,"button",44),f("click",function(){v(e);let i=m(3);return x(i.openJsonEditor())}),c(1,"i",51),d(2),a(3,"translate"),s()}t&2&&(o(2),h(" ",l(3,1,"plugins.manage.json_config")," "))}function Mi(t,p){if(t&1){let e=w();r(0,"button",44),f("click",function(){v(e);let i=m(3);return x(i.disablePlugin(i.plugin()))}),c(1,"i",52),d(2),a(3,"translate"),s()}t&2&&(o(2),h(" ",l(3,1,"plugins.manage.disable")," "))}function Di(t,p){if(t&1){let e=w();r(0,"button",44),f("click",function(){v(e);let i=m(3);return x(i.enablePlugin(i.plugin()))}),c(1,"i",53),d(2),a(3,"translate"),s()}t&2&&(o(2),h(" ",l(3,1,"plugins.manage.enable")," "))}function Vi(t,p){if(t&1){let e=w();r(0,"button",44),f("click",function(){v(e);let i=m(3);return x(i.uninstallPlugin())}),c(1,"i",54),d(2),a(3,"translate"),s()}t&2&&(o(2),h(" ",l(3,1,"plugins.button_uninstall")," "))}function $i(t,p){t&1&&c(0,"div",47)}function Ai(t,p){if(t&1){let e=w();r(0,"button",44),f("click",function(){v(e);let i=m(4);return x(i.doChildBridgeAction("restart"))}),c(1,"i",57),d(2),a(3,"translate"),s()}if(t&2){let e=m(4);o(2),h(" ",l(3,1,e.setChildBridges().length>1?"child_bridge.restart_plural":"child_bridge.restart")," ")}}function Ni(t,p){if(t&1){let e=w();r(0,"button",44),f("click",function(){v(e);let i=m(4);return x(i.doChildBridgeAction("stop"))}),c(1,"i",58),d(2),a(3,"translate"),s()}if(t&2){let e=m(4);o(2),h(" ",l(3,1,e.setChildBridges().length>1?"child_bridge.stop_plural":"child_bridge.stop")," ")}}function Oi(t,p){if(t&1){let e=w();r(0,"button",44),f("click",function(){v(e);let i=m(4);return x(i.doChildBridgeAction("start"))}),c(1,"i",59),d(2),a(3,"translate"),s()}if(t&2){let e=m(4);o(2),h(" ",l(3,1,e.setChildBridges().length>1?"child_bridge.start_plural":"child_bridge.start")," ")}}function Li(t,p){if(t&1){let e=w();r(0,"button",44),f("click",function(){v(e);let i=m(3);return x(i.openBridgeSettings())}),c(1,"i",55),d(2),a(3,"translate"),s(),g(4,Ai,4,3,"button",46),g(5,Ni,4,3,"button",46)(6,Oi,4,3,"button",46),r(7,"button",44),f("click",function(){v(e);let i=m(3);return x(i.resetChildBridges())}),c(8,"i",56),d(9),a(10,"translate"),s()}if(t&2){let e=m(3);o(2),h(" ",l(3,4,"child_bridge.bridge_settings")," "),o(2),_(e.childBridgeRestartInProgress()?-1:4),o(),_(e.allChildBridgesStopped()?6:5),o(4),h(" ",l(10,6,"child_bridge.reset_accessories")," ")}}function Hi(t,p){t&1&&c(0,"div",47)}function ji(t,p){if(t&1){let e=w();r(0,"button",44),f("click",function(){v(e);let i=m(3);return x(i.openBridgeSettings())}),c(1,"i",60),d(2),a(3,"translate"),s()}t&2&&(o(2),h(" ",l(3,1,"child_bridge.setup")," "))}function qi(t,p){t&1&&c(0,"div",47)}function Ui(t,p){if(t&1){let e=w();r(0,"button",44),f("click",function(){v(e);let i=m(3);return x(i.openBridgeSettings())}),c(1,"i",60),d(2),a(3,"translate"),s()}t&2&&(o(2),h(" ",l(3,1,"child_bridge.setup")," "))}function zi(t,p){t&1&&c(0,"div",47)}function Ri(t,p){if(t&1&&(r(0,"a",48),c(1,"i",61),d(2),a(3,"translate"),s()),t&2){let e=m(3);S("href",e.plugin().links.bugs,N),o(2),h(" ",l(3,2,"support.links.issue")," ")}}function Fi(t,p){if(t&1){let e=w();r(0,"span",35)(1,"a",41),c(2,"i",42),s(),r(3,"div",43)(4,"button",44),f("click",function(){v(e);let i=m(2);return x(i.openSettings())}),c(5,"i",45),d(6),a(7,"translate"),s(),g(8,ki,4,3,"button",46),g(9,Ti,4,3,"button",46),g(10,Ii,4,3,"button",46),g(11,Mi,4,3,"button",46),g(12,Di,4,3,"button",46),g(13,Vi,4,3,"button",46),g(14,$i,1,0,"div",47),g(15,Li,11,8),g(16,Hi,1,0,"div",47),g(17,ji,4,3,"button",46),g(18,qi,1,0,"div",47),g(19,Ui,4,3,"button",46),g(20,zi,1,0,"div",47),g(21,Ri,4,4,"a",48),s()()}if(t&2){let e,n,i=m(2);o(),B("aria-label","Plugin Actions Dropdown"),o(5),h(" ",l(7,16,"plugins.button_settings")," "),o(2),_(i.plugin().isConfigured&&!i.plugin().disabled?8:-1),o(),_(i.plugin().publicPackage?9:-1),o(),_(!i.isMobile()&&i.plugin().name!=="homebridge-config-ui-x"?10:-1),o(),_(i.plugin().name!=="homebridge-config-ui-x"&&!i.plugin().disabled?11:-1),o(),_(i.plugin().name!=="homebridge-config-ui-x"&&i.plugin().disabled?12:-1),o(),_(i.plugin().name!=="homebridge-config-ui-x"?13:-1),o(),_(!i.plugin().disabled&&i.plugin().isConfigured&&i.plugin().hasChildBridges&&i.plugin().installedVersion&&i.plugin().name!=="homebridge-config-ui-x"?14:-1),o(),_(i.plugin().hasChildBridges&&!i.plugin().disabled?15:-1),o(),_(i.plugin().isConfigured&&!i.plugin().hasChildBridges&&!i.plugin().disabled&&!i.plugin().recommendChildBridge?16:-1),o(),_(i.plugin().isConfigured&&!i.plugin().hasChildBridges&&!i.plugin().disabled&&!i.plugin().recommendChildBridge?17:-1),o(),_(i.plugin().isConfigured&&!i.plugin().hasChildBridges&&!i.plugin().disabled&&i.plugin().recommendChildBridge&&i.plugin().updateAvailable?18:-1),o(),_(i.plugin().isConfigured&&!i.plugin().hasChildBridges&&!i.plugin().disabled&&i.plugin().recommendChildBridge&&i.plugin().updateAvailable?19:-1),o(),_((e=i.plugin().links)!=null&&e.bugs?20:-1),o(),_((n=i.plugin().links)!=null&&n.bugs?21:-1)}}function Gi(t,p){if(t&1&&(r(0,"div",9),g(1,Si,3,4,"a",17),g(2,Bi,3,4,"a",33),g(3,Ei,2,0,"a",34),g(4,Fi,22,18,"span",35),s()),t&2){let e=m();o(),_(!e.plugin().disabled&&e.plugin().hasChildBridges&&e.childBridgeStatus()==="ok"?1:-1),o(),_(e.plugin().installedVersion&&e.plugin().disabled?2:-1),o(),_(e.plugin().publicPackage&&!e.plugin().installedVersion?3:-1),o(),_(e.plugin().installedVersion?4:-1)}}var We=(()=>{class t{injector=C(pe);$api=C(Z);$auth=C(ie);$md=C(Ne);$modal=C(ne);$plugin=C(le);$settings=C(ee);$toastr=C(Y);$translate=C(z);$ws=C(te);plugin=re.required();childBridges=re.required();io;defaultIcon="assets/hb-icon.png";isAdmin=this.$auth.user.admin;hasChildBridges=E(!1);allChildBridgesStopped=E(!1);childBridgeStatus=E("pending");childBridgeRestartInProgress=E(!1);isMobile=E("");setChildBridges=E([]);constructor(){me(()=>{let e=this.childBridges();this.hasChildBridges.set(e.length>0),this.allChildBridgesStopped.set(e.every(n=>n.manuallyStopped===!0)),this.hasChildBridges()&&(e.some(n=>n.status==="down")?this.childBridgeStatus.set("down"):e.some(n=>n.status==="pending")?this.childBridgeStatus.set("pending"):e.some(n=>n.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(Me,"")),this.plugin().icon||(this.plugin().icon=this.defaultIcon)}openFundingModal(e){let n=q([{provide:j,useValue:{plugin:e}}],this.injector);this.$modal.open(Ge,{size:"lg",backdrop:"static",injector:n})}pluginInfoModal(e){let n=q([{provide:j,useValue:{plugin:e}}],this.injector);this.$modal.open(Qe,{size:"lg",backdrop:"static",injector:n})}disablePlugin(e){return M(this,null,function*(){let n=q([{provide:oe,useValue:{pluginName:e.displayName||e.name,isConfigured:e.isConfigured,isConfiguredDynamicPlatform:e.isConfiguredDynamicPlatform,keepOrphans:this.$settings.keepOrphans}}],this.injector),i=this.$modal.open(Fe,{size:"lg",backdrop:"static",injector:n});try{yield i.result;try{yield this.$api.put(`/config-editor/plugin/${encodeURIComponent(e.name)}/disable`,{}),e.disabled=!0,this.hasChildBridges()&&this.doChildBridgeAction("stop"),this.$modal.open(F,{size:"lg",backdrop:"static"})}catch(u){console.error(u),this.$toastr.error(this.$translate.instant("plugins.disable.error"),this.$translate.instant("toast.title_error"))}}catch(u){}})}enablePlugin(e){return M(this,null,function*(){let n=q([{provide:De,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),i=this.$modal.open($e,{size:"lg",backdrop:"static",injector:n});try{yield i.result;try{yield this.$api.put(`/config-editor/plugin/${encodeURIComponent(e.name)}/enable`,{}),e.disabled=!1,this.hasChildBridges()&&(yield this.doChildBridgeAction("start")),this.$modal.open(F,{size:"lg",backdrop:"static"})}catch(u){console.error(u),this.$toastr.error(this.$translate.instant("plugins.enable.error"),this.$translate.instant("toast.title_error"))}}catch(u){}})}viewPluginLog(){let e=q([{provide:Ve,useValue:{plugin:this.plugin(),childBridges:this.setChildBridges()}}],this.injector);this.$modal.open(Oe,{size:"xl",backdrop:"static",injector:e})}doChildBridgeAction(e){return M(this,null,function*(){this.childBridgeRestartInProgress.set(!0);try{for(let n of this.setChildBridges())yield de(this.io.request(`${e}-child-bridge`,n.username))}catch(n){console.error(n),this.$toastr.error(this.$translate.instant("plugins.bridge.action_error",{action:e}),this.$translate.instant("toast.title_error")),this.childBridgeRestartInProgress.set(!1)}finally{setTimeout(()=>{this.childBridgeRestartInProgress.set(!1)},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())}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(n){return new(n||t)};static \u0275cmp=T({type:t,selectors:[["app-plugin-card"]],inputs:{plugin:[1,"plugin"],childBridges:[1,"childBridges"]},decls:24,vars:15,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","Plugin Icon",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"],["href","javascript:void(0)",1,"card-link",3,"click"],[1,"fas","fa-shield-alt","fa-lg","me-1"],[1,"grey-text"],[1,"card-text","mb-2"],["href","javascript:void(0)",1,"card-link"],[1,"card-text","mb-0","grey-text"],["href","javascript:void(0)","container","body","triggers","hover",1,"card-link",3,"openDelay","ngbTooltip"],["href","javascript:void(0)","container","body","triggers","hover",1,"card-link",3,"ngbTooltip","openDelay"],[1,"fas","fa-circle-notch","fa-spin","fa-lg","grey-text","ms-3",3,"hidden"],[1,"fas","fa-lg","ms-3",3,"fa-bridge-circle-exclamation","orange-text","fa-bridge-circle-xmark","red-text"],["href","javascript:void(0)","container","body","triggers","hover",1,"card-link",3,"click","openDelay","ngbTooltip"],[1,"far","fa-arrow-alt-circle-up","primary-text","fa-lg","fa-fade","fa-spin-slow","ms-3"],[1,"fas","fa-arrow-right-arrow-left","primary-text","fa-lg","fa-fade","fa-spin-slow","ms-3"],["href","javascript:void(0)","container","body","triggers","hover",1,"card-link",3,"click","ngbTooltip","openDelay"],[1,"fas","fa-sliders","primary-text","fa-lg","fa-fade","fa-spin-slow","ms-3"],[1,"icon-button","fas","fa-bridge","primary-text","fa-lg","fa-fade","fa-spin-slow","ms-3"],[1,"icon-button","fas","fa-qrcode","primary-text","fa-lg","fa-fade","fa-spin-slow","ms-3"],[1,"fas","fa-lg","ms-3"],[1,"fas","fa-heart","fa-lg","me-1","pink-text"],[1,"fas","fa-heart","fa-lg","me-1","heart-muted"],[1,"far","fa-circle-dot","fa-lg","me-1"],[1,"far","fa-circle-check","fa-lg","me-1"],["href","javascript:void(0)",1,"card-link","red-text"],["href","javascript:void(0)"],["ngbDropdown","","placement","left",1,"d-inline-block","ms-3","mt-auto"],[1,"fas","fa-lg","fa-power-off","ms-3"],["href","javascript:void(0)",1,"card-link","red-text",3,"click"],["container","body","triggers","hover",1,"far","fa-pause-circle","fa-lg",3,"ngbTooltip","openDelay"],["href","javascript:void(0)",3,"click"],[1,"far","fa-arrow-alt-circle-down","fa-lg"],["href","javascript:void(0)","ngbDropdownToggle","",1,"card-link","text-decoration-none","mt-auto","dropdown-toggle-no-outline"],[1,"fa-solid","fa-ellipsis-v","fa-lg"],["ngbDropdownMenu","","aria-labelledby","Plugin Actions Dropdown"],["type","button","ngbDropdownItem","",3,"click"],[1,"fas","fa-sliders"],["type","button","ngbDropdownItem",""],[1,"dropdown-divider"],["ngbDropdownItem","","rel","noopener noreferrer","target","_blank",3,"href"],[1,"fas","fa-wave-square"],[1,"fas","fa-code-compare"],[1,"fas","fa-code"],[1,"far","fa-circle-pause"],[1,"far","fa-circle-play"],[1,"fas","fa-trash"],[1,"fas","fa-bridge"],[1,"fas","fa-broom"],[1,"icon-button","fas","fa-power-off"],[1,"fas","fa-stop"],[1,"fas","fa-play"],[1,"icon-button","fas","fa-bridge"],[1,"icon-button","fa","fa-question-circle-o"]],template:function(n,i){n&1&&(r(0,"div",0)(1,"div",1)(2,"div",2)(3,"img",3),f("error",function(){return i.handleIconError()}),s()(),r(4,"div",4)(5,"div",5)(6,"div",6)(7,"div",7)(8,"h5",8),d(9),s(),g(10,bi,8,7,"div",9),s(),r(11,"p",10)(12,"a",11),f("click",function(){return i.pluginInfoModal(i.plugin())}),c(13,"i",12),r(14,"span",13),d(15),s()()(),r(16,"p",14),g(17,vi,4,1,"a",15),g(18,xi,3,1,"span",13),s(),r(19,"div",7)(20,"p",16),g(21,Pi,5,2,"span"),g(22,wi,2,1),s(),g(23,Gi,5,4,"div",9),s()()()()()()),n&2&&(o(3),S("src",i.plugin().icon,N),o(6),b(i.plugin().displayName),o(),_(i.isAdmin?10:-1),o(3),$("purple-text",i.plugin().isHbScoped)("green-text",!i.plugin().isHbScoped&&(i.plugin().verifiedPlugin||i.plugin().verifiedPlusPlugin))("orange-text",!i.plugin().isHbScoped&&!i.plugin().verifiedPlugin&&!i.plugin().verifiedPlusPlugin),o(2),b(i.plugin().name),o(2),_((i.plugin().verifiedPlugin||i.plugin().verifiedPlusPlugin)&&i.plugin().funding?17:-1),o(),_((i.plugin().verifiedPlugin||i.plugin().verifiedPlusPlugin)&&i.plugin().funding?-1:18),o(3),_(i.plugin().publicPackage&&!i.plugin().installedVersion?21:-1),o(),_(i.plugin().installedVersion?22:-1),o(),_(i.isAdmin?23:-1))},dependencies:[ae,ze,Ue,qe,je,He,Ce,I],styles:[".plugin-content[_ngcontent-%COMP%]{min-width:calc(100% - 80px)}.heart-muted[_ngcontent-%COMP%]{opacity:.5}.dropdown-toggle-no-outline[_ngcontent-%COMP%]{outline:none}"],changeDetection:0})}return t})();var Je=(()=>{class t{$activeModal=C(L);dismissModal(){this.$activeModal.dismiss("Dismiss")}static \u0275fac=function(n){return new(n||t)};static \u0275cmp=T({type:t,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,"fa","fa-question-circle-o","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(n,i){n&1&&(r(0,"div",0)(1,"form")(2,"div",1)(3,"h5",2),d(4),a(5,"translate"),s(),r(6,"button",3),a(7,"translate"),f("click",function(){return i.dismissModal()}),s()(),r(8,"div",4)(9,"div",5),c(10,"i",6),s(),r(11,"ul",7),c(12,"li",8),a(13,"translate"),c(14,"li",8),a(15,"translate"),c(16,"li",8),a(17,"translate"),c(18,"li",8),a(19,"translate"),s(),c(20,"app-support-banner"),s(),r(21,"div",9),c(22,"div",10),r(23,"div",11)(24,"button",12),f("click",function(){return i.dismissModal()}),d(25),a(26,"translate"),s()(),c(27,"div",13),s()()()),n&2&&(B("aria-labelledby","plugin-support-modal-title"),o(4),b(l(5,8,"support.title")),o(2),B("aria-label",l(7,10,"form.button_close")),o(6),S("innerHTML",l(13,12,"plugins.support.list_1"),D),o(2),S("innerHTML",l(15,14,"plugins.support.list_2"),D),o(2),S("innerHTML",l(17,16,"plugins.support.list_3"),D),o(2),S("innerHTML",l(19,18,"plugins.support.list_4"),D),o(7),h(" ",l(26,20,"form.button_close")," "))},dependencies:[Re,I],encapsulation:2,changeDetection:0})}return t})();var Qi=["searchInput"];function Wi(t,p){t&1&&c(0,"app-spinner")}function Ji(t,p){if(t&1){let e=w();r(0,"button",7),a(1,"translate"),a(2,"translate"),f("click",function(){v(e);let i=m();return x(i.showSearch())}),c(3,"i"),s(),r(4,"button",8),a(5,"translate"),a(6,"translate"),f("click",function(){v(e);let i=m();return x(i.showStats())}),c(7,"i"),s()}if(t&2){let e=m();S("openDelay",150)("ngbTooltip",l(1,10,"form.search")),B("aria-label",l(2,12,"form.search")),o(3),R(`fas fa-search${e.showSearchBar()?" primary-text":""}`),o(),S("openDelay",150)("ngbTooltip",l(5,14,"plugins.stats")),B("aria-label",l(6,16,"plugins.stats")),o(3),R(`fas fa-sliders${e.tab()==="stats"?" primary-text":""}`)}}function Xi(t,p){if(t&1){let e=w();r(0,"button",15),a(1,"translate"),f("click",function(){v(e);let i=m(3);return x(i.onClearSearch())}),c(2,"i",16),s()}t&2&&B("aria-label",l(1,1,"form.button_clear"))}function Ki(t,p){if(t&1){let e=w();r(0,"div",9)(1,"div",11)(2,"form",12),f("ngSubmit",function(){v(e);let i=m(2);return x(i.onSubmit(i.form))}),c(3,"input",13,0),a(5,"translate"),g(6,Xi,3,3,"button",14),s()()()}if(t&2){let e,n=m(2);o(2),S("formGroup",n.form),o(),S("placeholder",l(5,3,"plugins.placeholder_search_plugin")),o(3),_((e=n.form.get("query"))!=null&&e.value?6:-1)}}function Yi(t,p){if(t&1&&(r(0,"div",17),c(1,"app-plugin-card",19),s()),t&2){let e=p.$implicit,n=m(3);o(),S("plugin",e)("childBridges",n.getPluginChildBridges(e))}}function Zi(t,p){if(t&1&&(r(0,"div",18),c(1,"i",20),r(2,"p"),d(3),a(4,"translate"),s()()),t&2){let e=m(3);o(),$("fa-magnifying-glass",!e.showExitButton())("fa-exclamation-circle",e.showExitButton()),o(2),h(" ",l(4,5,e.showExitButton()?"plugins.placeholder_search_none":"plugins.placeholder_search_first")," ")}}function et(t,p){if(t&1&&(r(0,"div",10),W(1,Yi,2,2,"div",17,Q),g(3,Zi,5,7,"div",18),s()),t&2){let e=m(2);o(),J(e.installedPlugins()),o(2),_(e.installedPlugins().length===0&&!e.loading()&&!e.mainError()?3:-1)}}function it(t,p){if(t&1&&(g(0,Ki,7,5,"div",9),g(1,et,4,1,"div",10)),t&2){let e=m();_(e.showSearchBar()?0:-1),o(),_(e.loading()?-1:1)}}function tt(t,p){t&1&&(r(0,"div",21)(1,"div",22)(2,"code"),d(3,"https://developers.homebridge.io/analytics "),r(4,"a",23),c(5,"i",24),s()()(),r(6,"div",25),d(7),a(8,"translate"),s()(),c(9,"iframe",26)),t&2&&(o(7),b(l(8,1,"plugins.stats_note")))}var Sn=(()=>{class t{destroyRef=C(ce);$api=C(Z);$auth=C(ie);$modal=C(ne);$plugin=C(le);$router=C(ve);$settings=C(ee);$toastr=C(Y);$translate=C(z);$ws=C(te);searchInput=he("searchInput");mainError=E(!1);loading=E(!0);tab=E("main");installedPlugins=E([]);childBridges=E([]);showSearchBar=E(!1);showExitButton=E(!1);isSearchMode=E(!1);io;isAdmin=this.$auth.user.admin;form=new we({query:new Se("")});ngOnInit(){let e=this.$translate.instant("menu.label_plugins");this.$settings.setPageTitle(e),this.$plugin.onPluginListRefresh.pipe(se(this.destroyRef)).subscribe(()=>{this.loadInstalledPlugins(),this.getChildBridgeMetadata()}),this.io=this.$ws.connectToNamespace("child-bridges"),this.io.connected.subscribe(()=>{this.initialize()}),this.io.socket.connected&&this.initialize(),this.io.socket.on("child-bridge-status-update",n=>{let i=this.childBridges().find(u=>u.username===n.username);i?(Object.assign(i,n),this.childBridges.set([...this.childBridges()])):this.childBridges.update(u=>[...u,n])}),this.$router.events.pipe(se(this.destroyRef)).subscribe(n=>{n instanceof be&&this.loadInstalledPlugins()})}search(){return M(this,null,function*(){this.installedPlugins.set([]),this.loading.set(!0),this.showExitButton.set(!0);try{let e=yield this.$api.get(`/plugins/search/${encodeURIComponent(this.form.value.query)}`),n=new Set,i=new Map(e.map(u=>[u.name,u]));this.installedPlugins.set(e.reduce((u,k)=>{if(k.name==="homebridge-config-ui-x"||n.has(k.name))return u;if(k.newHbScope){let H=k.newHbScope.to,Xe=i.has(H);(k.installedVersion||!Xe)&&(n.add(H),u.push(k))}else u.push(k);return u},[])),yield this.appendMetaInfo()}catch(e){this.isSearchMode.set(!1),console.error(e);let n=e instanceof Error?e.message:this.$translate.instant("plugins.toast_failed_to_search_plugins");this.$toastr.error(n,this.$translate.instant("toast.title_error")),this.loadInstalledPlugins()}finally{this.loading.set(!1)}})}onClearSearch(){this.form.setValue({query:""}),this.showExitButton.set(!1),this.isSearchMode()&&(this.isSearchMode.set(!1),this.loadInstalledPlugins())}onSubmit({value:e}){e.query.length?(this.isSearchMode.set(!0),this.search()):(this.isSearchMode()&&(this.isSearchMode.set(!1),this.loadInstalledPlugins()),this.showSearchBar.set(!1))}showSearch(){if(this.showSearchBar())this.showSearchBar.set(!1),this.isSearchMode()&&(this.isSearchMode.set(!1),this.form.setValue({query:""}),this.loadInstalledPlugins());else{window.document.querySelector("body")?.classList.remove("bg-black"),this.tab.set("main"),this.showSearchBar.set(!0);let e=this.searchInput();e&&setTimeout(()=>e.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"),n=document.getElementById("stats-iframe");e&&n&&(e.classList.add("fade-out"),n.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(!1),this.$settings.actualLightingMode==="light"&&(window.document.querySelector("body").classList.add("light-mode"),setTimeout(()=>{let e=document.getElementById("stats-header"),n=document.getElementById("stats-iframe");e&&n&&(e.classList.add("light-mode"),n.classList.add("light-mode"))},0))}openSupport(){this.$modal.open(Je,{size:"lg",backdrop:"static"})}canDeactivate(e){if(this.tab()!=="stats")return!0;if(this.$settings.actualLightingMode!=="light")return window.document.querySelector("body").classList.remove("bg-black"),Promise.resolve(!0);window.document.querySelector("body").classList.remove("light-mode");let n=e&&(e.includes("/platform-tools/terminal")||e.includes("/logs"));return new Promise(i=>{let u=document.getElementById("stats-header"),k=document.getElementById("stats-iframe");u&&k&&(u.classList.add("fade-out"),k.classList.add("fade-out")),n?setTimeout(()=>{i(!0)},250):(setTimeout(()=>{window.document.querySelector("body").classList.remove("bg-black")},250),setTimeout(()=>{i(!0)},500))})}ngOnDestroy(){window.document.querySelector("body").classList.remove("light-mode"),this.io?.end?.()}getPluginChildBridges(e){return this.childBridges().filter(n=>n.plugin===e.name)}initialize(){return M(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:n}=this.$router.parseUrl(this.$router.url).queryParams;if(e){let i=this.installedPlugins().find(u=>u.name===n);e==="just-installed"&&i&&(i.isConfigured?this.$modal.open(F,{size:"lg",backdrop:"static"}):this.$plugin.settings(i)),this.$router.navigate([],{queryParams:{},replaceUrl:!0,queryParamsHandling:""})}})}loadInstalledPlugins(){return M(this,null,function*(){this.form.setValue({query:""}),this.showExitButton.set(!1),this.installedPlugins.set([]),this.loading.set(!0),this.mainError.set(!1);try{let e=yield this.$api.get("/plugins");this.installedPlugins.set(e.filter(i=>i.name!=="homebridge-config-ui-x")),yield this.appendMetaInfo();let n=this.installedPlugins().sort((i,u)=>{let k=(i.updateAvailable?1e3:0)+(i.newHbScope?100:0)+(i.disabled?-10:0)+(i.isConfigured?-20:0)+(i.hasChildBridgesUnpaired?5:0)+(i.hasChildBridges&&this.$settings.env.recommendChildBridges?-1:0),H=(u.updateAvailable?1e3:0)+(u.newHbScope?100:0)+(u.disabled?-10:0)+(u.isConfigured?-20:0)+(u.hasChildBridgesUnpaired?5:0)+(u.hasChildBridges&&this.$settings.env.recommendChildBridges?-1:0);return k!==H?H-k:i.name.localeCompare(u.name)});return this.installedPlugins.set(n),n}catch(e){console.error(e);let n=e instanceof Error?e.message:this.$translate.instant("plugins.toast_failed_to_load_plugins");this.$toastr.error(n,this.$translate.instant("toast.title_error")),this.mainError.set(!0);return}finally{this.loading.set(!1)}})}appendMetaInfo(){return M(this,null,function*(){this.isAdmin&&(yield Promise.all(this.installedPlugins().filter(e=>e.installedVersion).map(e=>M(this,null,function*(){try{let n=yield this.$api.get(`/config-editor/plugin/${encodeURIComponent(e.name)}`);e.isConfigured=n.length>0,e.isConfiguredDynamicPlatform=e.isConfigured&&Object.hasOwn(n[0],"platform"),e.recommendChildBridge=e.isConfigured&&this.$settings.env.recommendChildBridges&&!["homebridge","homebridge-config-ui-x"].includes(e.name),e.hasChildBridges=e.isConfigured&&n.some(u=>u._bridge&&u._bridge.username);let i=this.getPluginChildBridges(e);e.hasChildBridgesUnpaired=i.some(u=>{let k=u.paired===!1&&!this.isBridgeAlertHidden(u.username,"hap"),H=u.matterConfig&&u.matterCommissioned===!1&&!this.isBridgeAlertHidden(u.username,"matter");return k||H}),this.$settings.env.plugins?.hideUpdatesFor?.includes(e.name)&&(e.updateAvailable=!1)}catch(n){console.error(`Failed to load config for ${e.name}:`,n),e.isConfigured=!0,e.hasChildBridges=!0}}))))})}getChildBridgeMetadata(){this.io.request("get-homebridge-child-bridge-status").subscribe(e=>{this.childBridges.set(e)})}isBridgeAlertHidden(e,n){let i=this.$settings.env.bridges?.find(u=>u.username.toUpperCase()===e.toUpperCase());return i?n==="hap"?!!i.hideHapAlert:!!i.hideMatterAlert:!1}static \u0275fac=function(n){return new(n||t)};static \u0275cmp=T({type:t,selectors:[["app-plugins"]],viewQuery:function(n,i){n&1&&ge(i.searchInput,Qi,5),n&2&&_e()},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"],[1,"fa","fa-question-circle-o"],["type","button","container","body","placement","bottom","triggers","hover",1,"btn","btn-elegant","my-0","me-2",3,"click","openDelay","ngbTooltip"],["type","button","container","body","placement","bottom","triggers","hover",1,"btn","btn-elegant","my-0","me-2","d-none","d-md-inline-block",3,"click","openDelay","ngbTooltip"],[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"],["type","button",1,"search-bar-clear"],["type","button",1,"search-bar-clear",3,"click"],["aria-hidden","true",1,"fas","fa-square-xmark"],[1,"hb-plugin-space-between"],[1,"alert","alert-info","mt-4","text-center","w-100"],[3,"plugin","childBridges"],[1,"fas","primary-text","my-3","icon-xl"],["id","stats-header",1,"w-100","py-3","hb-stats-header","text-white","text-center"],[1,"mb-2"],["href","https://developers.homebridge.io/analytics","target","_blank"],[1,"fa","fa-external-link"],[1,"small","grey-text"],["src",ue`https://developers.homebridge.io/analytics/`,"id","stats-iframe","sandbox","allow-scripts allow-same-origin allow-popups","referrerpolicy","no-referrer",1,"hb-stats"]],template:function(n,i){n&1&&(g(0,Wi,1,0,"app-spinner"),r(1,"div",1)(2,"div",2)(3,"h3",3),d(4),a(5,"translate"),s()(),r(6,"div",4),g(7,Ji,8,18),r(8,"button",5),a(9,"translate"),f("click",function(){return i.openSupport()}),c(10,"i",6),s()()(),g(11,it,2,2)(12,tt,10,3)),n&2&&(_(i.loading()?0:-1),o(4),b(l(5,5,"menu.label_plugins")),o(3),_(i.isAdmin?7:-1),o(),B("aria-label",l(9,7,"support.title")),o(3),_(i.tab()==="main"?11:i.tab()==="stats"?12:-1))},dependencies:[Ae,Te,Be,xe,ye,Pe,Ie,ke,Ee,We,ae,I],styles:["form[_ngcontent-%COMP%]{position:relative}.search-bar[_ngcontent-%COMP%]{outline:none;box-sizing:inherit!important;background-color:inherit;height:50px!important;width:100%;border-width:.5px;padding:10px 45px 10px 10px;margin-bottom:15px}@media(hover:hover){.search-bar[_ngcontent-%COMP%]:hover{border:1px solid #000000}}.search-bar[_ngcontent-%COMP%]:focus{border:1px solid #000000;box-shadow:0 1px #000}.search-bar-clear[_ngcontent-%COMP%]{position:absolute;right:8px;top:25px;height:50px;background:transparent;border:none;font-size:20px;color:#d0d0d0;cursor:pointer;padding:0 8px;display:flex;align-items:center}.search-bar-clear[_ngcontent-%COMP%]:hover{color:#a0a0a0}.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%}}.hb-stats-header[_ngcontent-%COMP%]{background:#242424;border-top-left-radius:.5rem;border-top-right-radius:.5rem}.hb-stats-header.light-mode[_ngcontent-%COMP%]{opacity:0;animation:_ngcontent-%COMP%_fadeIn .25s ease-in-out .25s forwards}.hb-stats-header.light-mode.fade-out[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_fadeOut .25s ease-in-out forwards!important;opacity:1}.hb-stats-header[_ngcontent-%COMP%] code[_ngcontent-%COMP%]{border:1px solid grey;border-radius:5px;padding:5px;font-size:.8rem;color:#d3d3d3}.hb-stats[_ngcontent-%COMP%]{height:calc(100% - 121px);width:100%;overflow:hidden;border-bottom-left-radius:.5rem;border-bottom-right-radius:.5rem}.hb-stats.light-mode[_ngcontent-%COMP%]{opacity:0;animation:_ngcontent-%COMP%_fadeIn .25s ease-in-out .25s forwards}.hb-stats.light-mode.fade-out[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_fadeOut .25s ease-in-out forwards!important;opacity:1}@media(max-width:767px){.hb-stats[_ngcontent-%COMP%]{height:calc(100% - 60px)}}@keyframes _ngcontent-%COMP%_fadeIn{to{opacity:1}}@keyframes _ngcontent-%COMP%_fadeOut{to{opacity:0}}"],changeDetection:0})}return t})();export{Sn as PluginsComponent};